Feed on
Posts
Comments

I’m about 90% sure that Microsoft has chosen the real name for the next version of Windows.  They certainly can’t sink lower than the awful ‘Windows Me’ label applied a few years ago.  I have it from a few usually reliable sources that the new name is ‘Windows Vista’.  How’s that grab you?

Hmmm. Still thinking…


Code Camps are coming to the West Coast. My friends in Boston have been bragging about their Code Camps, how fun they are, how they are strengthening ties in the community. They also sure to point out that Code Camps started on the East Coast, that they’ve had several successful camps and why hasn’t anybody over on the Pacific side of the continent seen the light.

What is a Code camp?

Thom Robbins posts the Code camp manifesto here.

  1. By and For the Developer Community. Code Camps are about the developer community at large. They are meant to be a place for developers to come and learn from their peers. Topics are always based on community interest and never determined by anyone other than the community.
  2. Always Free. Code Camps are always free for attendees.
  3. Community Developed Material. The success of the Code Camps is that they are based on community content. All content that is delivered is original. All presentation content must be provided completely (including Code) without any restriction. If you have content you don’t want to share or provide to attendees then the Code Camp is not the place for you.
  4. No Fluff only Code Code Camps are about showing the code. Refer to rule #1 if you have any questions on this.
  5. Community Ownership. The most important element of the Code Camp is always the developer community. All are welcome to attend and speak and do so without expectation of payment or any other compensation other than their participation in the community.
  6. Never occur during work hours. We need to understand that many times people cant leave work for a day or two to attend training or even seminars. The beauty of the Code Camp is that they always occur on weekends.
My Talks

I’m happy to note that the Code Camp track chairs picked some of my talks for the event. I’ll be doing a couple of smart client talks and one ASP.NET talk. See details at the Code Camp site.

More camps coming this year

If you can’t make it to Portland this Summer keep your eyes open for a Code Camp in your city. Rumor has it that one is coming to your neighborhood real soon.

 

Comments

I’m going to be there, but only one Sunday. Maybe I’ll see your WinForms talk.


Google is eager to index your website or blog.  How eager? Seems that they have created an API that unleashes the Google search spiders on your site.  All you need to do is send Google an XML file.

Google Sitemaps is still in beta (aren’t most Google tools) and it’s very easy to use.  The hardest part about using the service is creating the sitemap XML file.  There is a simple tool available from Google.

If you create ASP.NET websites try out this new tool, Sitemap.NET, that generates Google Sitemaps from your website.

You’ve got to like the price. Sitemap.NET is free.


Gnomedex Envy

“I wish I could go to every conference,” I said.

”Yeah, right,” Junko replied, “that’s a bit grandiose don’t you think?” 

“You’re right. Crazy idea.”   I mumbled,  “I wish I could go to every ‘technical’ conference.“

Junko rolled his eyes. “How you going to afford that?  You can’t convince every software conference to hire you as a speaker.  Not going to happen“.

“We’ll see about that,“ I snapped back.  But I knew he was right.

“’Anyway, you  still couldn’t make it to every show,“ he laughed.  “Sometimes they overlap.”  Junko took a slow breath: “Matt and I are going to Gnomedex this week.” Another long exhale.   “What about you?  Aren’t you supposed to fly to Boston on Friday?

“Yeah,“ I replied, “It should be fun too.  I’m going to be real busy.“

“Doing what? Eating out every night?“ he teased, “Planning on wandering around the MIT campus to see the new computer science building. I hear it’s pretty slick.  Designed by Frank Gehry, ya know?“

“No, you dork,“ I said, “I’m speaking at VSLive.  Thanks for reminding me about MIT though.  Amy and I will have to check it out“.

Junko looked at me, a triumphant gleam in his eye. ”See,“ he said, “You can’t go to Gnomedex after all.  You’ll be out of town.“

Gnomedex

I do wish I could make it to Gnomedex this year.  It’s here in Seattle so I wouldn’t have to hop on a plane to attend.  But, like so many times in life, I have other plans.  VSLive is going to be great.  I’ll get to see a lot of my speaker friends (the ones I only see when on the road) and I have some great talks planned.  That’s what I think anyway. I guess I will have to wait and see what you think about the talks.

Chris Pirillo and Ponzi put on a great show too. Gnomedex is sold out however, so if you don’t have your tickets you’re out of luck.

I hear O’Reilly is giving away their cool new ‘Make’  magazine.  I’d attend just to get a free copy .

Scott Hanselman must love spending time seeking out productivity tools for developers.  He has outdone himself, compiling a huge list of developer tools for you and me.

I suspect that most of us are always looking out for the next great tool.  I’ll bet that many of you also think about writing your own custom tools whenever you find yourself repeating the same boring chores again and again. What sets Scott apart from the crowd is that he makes time to write about what he finds.  Plus he categorizes the information and writes loving descriptions about each one. When I read his list I find myself wanting to download every single tool– even the ones that I already use.

Set aside a few hours and read Hanslman’s Gigantic List of Developer Tools.  If you don’t find a least one new utility from his list I’ll be very surprised.

Highly recommended.

It’s common in web programming to place links to resources on a page.  The hyperlink tag is on nearly every page on your website.  But what about Windows Forms?

In .NET it is easy to add a hyperlink to a form.  At least it looks and acts like a hyperlink.

  1. Add a LinkLabel to the form.
  2. Change the text to the web address (example http://www.waltritscher.com/ )
  3. In the LinkClicked event add one line of code.
   1: Private Sub LinkLabel1_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked
   2:         Process.Start(LinkLabel1.Text)
   3: 
   4:     End Sub

This works because Windows knows that a string with http:// is a web address and will launch the users default web browser.  Process.Start merely asks Windows to launch a process based on the file/URL string being passed as parameter.

Comments

I am teaching myself how to program MS Visual Basic 2005 and creating a database and wanted to place a hyperlink on it directing users to my company web site and I been reading and searching how to do this for days and finally I’ve come across your site and it worked. A simple 3 liner. Thanks a bunch. Brian

I’d like to talk to the PM at Microsoft that approved this feature.  This has to be the lamest, stupidest thing I’ve seen in a Microsoft product in a while.  What were you thinking?

I opened a PowerPoint presentation that was saved 18 months ago.  I immediately see a message I’ve not seen before.

"This presentation cannot be edited because it contains a read-only embedded font."
the full issue can be read here:
http://support.microsoft.com/default.aspx?scid=kb;en-us;827405

The problem stems from PowerPoint determining that my computer doesn’t have a license for one of the embedded fonts. I don’t have any problems with Microsoft preventing me from using unlicensed material.  No, that’s not it. It’s the way PowerPoint prevents me from doing anything intelligent with my document.  Yes, a document that I wrote. Not something that was written by another author, not one that I found on the Internet. No da**it, it’s my presentation.

How lame you ask?

  1. The document is read only – so I can’t edit it
  2. I cannot copy any of the slides to the clipboard so I can’t move my content to another document
  3. I cannot change the font because the document is locked.
  4. All the fonts in the document are ‘ Windows standard’ fonts.  Arial, Arial Black, Courier New, Times New Roman.

Point #3 is particularly stupid.   I cannot change the font to a licensed version and then save the document.  And I have legal copies of the fonts anyway.  Seems like a bug to me.  Lame, lame, lame.  

I suspect this happen after installing the Office SP1

Quotes from other frustrated customers

Justin Woodson on Google News puts it this way.

The infuriating thing is that this renders any such file as not-editable.  I purchased some fonts and thought i was using them legally, but much to my dismay I discovered that these fonts had only "print and preview embedding  rights".   the vast majority of my work is now completely unusable due to mandatory software upgrades at work with no apparent way to salvage the files.  this problem occurs in spite of installing these very same fonts on the computer properly!! (contrary to what MS’s help files are saying)

Or read this thread over at http://www.officefrustration.com/q-t_91585-PowerPoint-2003-Embedded-Fonts-problem.html

Quote from Muppet

I have this problem with presentations I created in ppt 2002, even though I only used the STANDARD Windows fonts: Arial, Arial Black,
Verdana, Times New Roman & Comic Sans MS. They’re all present/installed on the PC I’m using. According to MS’s font properties extension, all these have "installable embedding allowed".  So does this new 2003 ‘enhancement’ have bugs ???  & yes I have run office update & got the SP1 and the ppt critical update

Comments

6/1/2005 9:15 AM Wei Cheng

I ran into above page, but the multimedia link on the above page are not working, I wonder whether I could get them somewhere else. I am interested in the new controls came with VS 2005 myself.
Thanks!

# http://www.ftponline.com/vsm/2004_en/magazine/online/ritscher/ 6/1/2005 9:17 AM Wei Cheng

Here is the FPOLine URL

6/1/2005 10:37 AM Brian

Hey Walt,
There’s gotta be a way to hack the file to reference only a single font, so at least you could open it and save.

6/1/2005 4:39 PM Walt Ritscher

Brian. I tried looking for the font inside the PPT file and couldn’t figure out how to turn it off.

6/1/2005 6:42 PM Walt Ritscher

Wei Chang
Fawcette Publishing created the videos and is responsible for managing them. I don’t have a copy, I sorry to say. Did you try emailing their tech support?

I keep finding new things to like about Google maps.  First is was the drag-a-bility of the maps.  Then the local search feature.  Plus the satellite overlay is simple to cool for words. 

Today, I learned about the  ‘to’ operator.    If you want a quick simple map from one city to another try this.

  • seattle wa to portland or
  • san francisco ca to san diego ca

Simple and direct.  I like it.

I finally had a chance to sit down and play with MbUnit last week.  What is MbUnit you say?  It’s a unit testing tool that works very much like NUnit.  NUnit, in case you’ve been living in a cave for the last year or so, is the ‘standard’  unit testing software for .NET framework applications.  It’s become a standard due to a couple factors.  First, it was one of the earliest unit testing apps created during the .Net 1.0 beta.  Second reason — exposure.  It receives continual free publicity from book authors, websites and developer magazines. Most authors use it as the de facto unit testing tool  therefore it gets lots and lots of free press. 

Why do authors pick it?   Because it was available early on and because it is FREE.  No need to worry if their readers have another unit test application.  They can download NUnit if needed.

There a number of other unit testing tools — some commercial versions, other open source ones, each in various stages of development..  Plus, don’t forget that Microsoft is including unit testing in Visual Studio Team System although the licensing costs are not cheap (~$5000 to $10,000).  Due the the attention that NUnit receives these programs are often ignored.

Why am I looking at MbUnit then? I’ve heard countless good things about it, that’s one explanation.  I’ve also heard that it simplify testing because it has test fixtures that automate complicated test patterns.

Another incentive has to do with NUnit itself. It is open source and developed by people who have other jobs.  Which means that has suffered in the past from neglect and has gone through months of stagnation and non development.  It seems to be in one such slump currently — probably due to the fact the Microsoft hired James W. Newkirk, the former NUnit Developer Lead, for their Platform Architecture Guidance team. Which means that it is not being improved very much lately. There are 5-6 other people working on NUnit but I haven’t seen much progress on new features.

MbUnit on the other hand seems to be rocketing forward with tons of new features  being adding every month.  It was designed to be extendable and flexible and that means that it is easy to add new functionality to the tests without having to constantly compile the core runtime. 

Note: I just found out the Jonathon de Halleux, originator of MbUnit, is working at Microsoft now.  Looks like Microsoft is scooping up all the unit testing experts.  Therefore the development of MbUnit falls into the hands of Jamie Cansdale, developer of TestDriven.Net .

TestDriven.NET

The rest of this post assumes you have worked with NUnit and are familiar with its object model.  I’m  writing about the features that are available in MbUnit and not part of  NUnit. 

Basic Features

The MbUnit GUI has several features that I find useful.  The most useful is the report generator.  It can create a report in several formats, XML, Text, Dox and Html.  I’m biased toward the HTML one, it look pretty good.  If you are using TestDriven.Net and run your test within Visual Studio TestDriven.NET  will include a link to the HTML report after running the tests.

Assert Class

The main workhorse in unit testing is the Assert class and it’s methods.

Here a list of the extra methods that are in MbUnit

  • In – Assert  that an object is in a list or dictionary
  • NotIn – Assert that an object is not in a list or dictionary
  • AreNotSame – Asset the two references are not referencing the same objec
  • AreValueEqual – not sure what this one does yet.
  • GreaterEqualThan
  • GreaterThan
  • LowerEqualThan
  • LowerThan
  • These four methods test whether a value is above or below another value
  • IncrementAssertCount – not sure what this does yet
  • ResetAssertCount
  • NotBetween – Assert a value is outside a min and max value
  • Between – Assert a value is between two other values
  • Warning
Other Classes

There is a rich set of classes that can greatly simplify your tests.  Here is the list

  • ArrayAssert
  • ConsoleTester
  • ControlAssert
  • CountdownTimer
  • DataAssert
  • FileAssert
  • PerfCounterInfo
  • ReflectionAssert
  • SecurityAssert
  • SerialAssert
  • StringAssert
  • XmlAssert

New Atttributes

Some delightful new attributes to decorate your test code.

  • AssemblyCleanup
  • AssemblyDependsOn
  • Author
  • ConditionalException
  • Copy
  • CopyToProvider
  • CurrentFixture
  • DataProvider
  • DecoratorPatthern
  • DependsOn
  • Duration
  • Factory
  • Fill
  • FixtureCategory
  • FixtureDecorationPattern
  • Importance
  • IndexProvider
  • Information
  • IntIndesorProvider
  • MultipleCulture
  • NamespaceProvider
  • NonTestPattern
  • Pattern
  • PerfCounter
  • PostIt
  • Provider
  • ProviderFactory
  • ProviderFixturrePatternDecorator
  • Read
  • Repeat
  • TestFixturePattern
  • TestFixtureSetup andTestFixtureTeardown
  • TestSetup and TestTeardown
  • TestPattern
  • TestsOn
  • TestSequence
  • ThreadedRepeat
  • Write
  • XML

Other Types of  Tests

I’m still looking through the object model, I know that I haven’t covered everything.  One last item to stimulate your curiosity.  RowTesting.  Pass in rows of test data to your test method.

VB

<TestFixture()> _
Public Class DivisionFixture
<RowTest(), _

   Row(1000, 10, 100.0), _
   Row(- 1000, 10, – 100.0), _
   Row(1000, 7, 142.85715), _
   Row(1000, 1E-05, 100000000), _
    Row(4195835, 3145729, 1.3338196)> _
    Sub DivisionTest(numerator As Double, denominator As Double, expectedResult As Double)
        Assert.AreEqual(expectedResult, numerator / denominator, 1E-05)
    End Sub ‘DivisionTest
End Class

C#

[TestFixture]
public class DivisionFixture
{
    [RowTest]
    [Row(1000,10,100.0000)]
    [Row(-1000,10,-100.0000)]
    [Row(1000,7,142.85715)]
    [Row(1000,0.00001,100000000)]
    [Row(4195835,3145729,1.3338196)]
public void DivisionTest(double numerator, double denominator, double expectedResult)
    {
        Assert.AreEqual(expectedResult, numerator/ denominator, 0.00001 );
    }
}

Where to find

MbUnit is now part of the TestDriven.Net distribution and not available as a separate download.  That’s OK because you should be using Testdriven.Net anyway.  Another superb free tool TestDriven.NET belongs in your toolbox. I use it every day.

Conclusion

I’m impressed with the amount of new functionality provided in the latest release of MbUnit.  It has become my number one choice for unit testing.  I will report more as I use it in some real projects.

When the original Design Patterns (GOF) book was published back in 1995 it defined 20+  object patterns.  These patterns, the book argued,  were standard ways to combine objects in order to solve common software problems.  Fast forward to 2005 and it becomes apparent that more and more software companies are choosing to implement patterns.  And it’s not just companies either.  Book authors are writing books explaining how to write patterns in particular languages (Design Patterns C# Head First Design Patterns (Java) Microsoft Visual Basic Design Patterns )  Other authors are proposing new  patterns, in essence extending the  original couple dozen patterns with fresh new ones that solve other software problems.

There is a web site that gathers all the patterns currently published in one central location.  http://www.patternshare.org/   Use it to search through patterns and find the book or website that contains more details about your desired pattern.

Guess who the major motivator is behind this site?  Microsoft.  Surprised?  Don’t be.  There is a major push at Microsoft to promote patterns, standard architecture, code blocks and much more.  Just take a trip to http://www.microsoft.com/resources/practices/default.mspx  and see for yourself

« Newer Posts - Older Posts »