Finding things

Heh.  Someone out there needs to know what to do in a snowstorm.  How do I know?  Well, weblogs.asp.net now has a cool stats section that shows referrers (thanks Scott!).  Someone did a Yahoo! search for “what to do in a snowstorm” which returned one of my posts: “Do that newsgroup thing…”  So remember, the next time you’re stuck in a snowstorm… post to a newsgroup.  :o)

A cool thing (or perhaps not) is that my post on “”403 Access Forbidden” when attempting to create an ASP.NET web project” has been referred to a ton of times by people looking for answers.  Hopefully I added some value with that post.

Agility

Scott Stanfield from Vertigo Software gave a talk last night at the Portland Area Dot Net User Group (PADNUG).

He made an interesting comment, with the net of:  If you’re going to fail, you want to fail fast.  That way you can figure out what went wrong, make changes, and try out something else.

If you are going to fail, fail fast.  Then get on to something new. 

Cool thought.

He said this during a discussion about the number of lines of code it takes to write a program.  He said that lines of code are like inventory.  And just as less inventory on hand can make a business more agile, fewer lines of code can make a software project more agile.

I tend to agree, unless reducing the lines of code turns it into obfuscated code.

He also showed one of the patterns from the patterns and practices group at MS – the Data Access Architecture Guide (DAAG).  By using the DAAG he was able to reduce the # of lines of code in his data access layer significantly.

Things like the DAAG and the .NET Framework itself can help reduce the number of lines of code you have to write.  There’s so much built in.  After the user group meeting ended, at the bar across the street, Rory said he didn’t know how many times he’s written a particular routine, then he discovered that that very thing was built into the System.IO namespace.

It all makes programming fun.  Write fewer lines of code.  Get paid more.  Have a blast.  Have fun with the .NET Framework.

[Bliz thought patrol:  OK.  THIS IS STARTING TO SOUND LIKE A COMMERCIAL.  TIME TO STOP BLATHERING.]

What’s in a name?

Quite a bit.  Otherwise, why would a grown man, driving to work in his car, have tears coming down his face while listening to names being read by children?  September 11, 2003.  Two years later, and it still seems just like it was yesterday.

Now that’s the way a Pocket PC Phone should work!

I upgraded my sorry Pocket PC phone’s operating system to Pocket PC 2003 and a new radio stack.  Bingo!  Home run!

Connectivity issues are a thing of the past.  I can finally use IM on the thing.  And it synch’s with Exchange automatically every 10 minutes (I set the schedule).  And I can confidently reply to e-mail and know that it will get sent.

It’s snappy, dependable, and it has a cool new game that comes with it!

Good job, mobility team.

Getting certified

So how did you prepare to take a certification test?  Did you use the MS Press study guides? Exam Cram series?  Other non-study-guide books?  Hands-on experience?  Sample exams?  Newsgroups?  MSDN?  GotDotNet?  Quickstarts?  WWW.ASP.NET?  Other?  Did you buddy-up with anyone or go it alone?

What worked for you?  What didn’t work for you?

Just curious…

Follow up: So far, the comments I’ve received all say that practical experience beats the study guides every time. I found that to be true, too. I opened one Exam Cram book for about 15 minutes before I re-took 70-300. The other tests I took to pass the MCSD .NET I did without specific studying for the tests. (There was plenty of time in MSDN Library, newsgroups, and getting my hands dirty in code, though.)

I do think the study aids do have their place, though… if nothing than to help focus your studies before taking a test.

What do you think?

Chicago, hear me roar

I’m sitting through day 1 of a 2-day planning session, with about 100 people in attendance.  If I see another presenter get up and say the words “I know you can’t read this slide…” I believe I’ll scream.  (Everyone in the Chicago area, keep your ears open, because it will happen.)

Please, please, please, if you ever have to give a presentation, be prepared.

Email and Pocket PC phone. OK for reading, poor for replying…

After using the PPC phone for a while, I’ve decided not to use it to reply to e-mail.  Connectivity is the main issue.  Sometimes the thing syncs up without a problem.  Sometimes I can’t connect at all.

What’s most frustrating is when it quickly and effortlessly connects and pulls down e-mail…. then I type a reply (tap a reply — kinda like morse code)… and then I click to sync and send my reply.  Can’t connect.  It’s very annoying.  And it’s happened so many times that I’ve decided to use the device as a reading device, not a writing device.  I still like the larger screen form factor over the smaller smartphone screen.  But I’m not going to use it as an input device anymore.

If I see an e-mail that requires a quick response, the integrated contacts feature is super.  I can call the person back and address the issue.

What the heck? More places parens aren’t required…

I work with the Boise .NET Developers User Group (NETDUG — gotta luv that name).  They’ve started an MCAD SIG, so I work the study guide labs along with them.  I wanted to do some cross-language inheritance from VB (parent) to C# (child), just to see how MustInherit, MustOverride, etc. in VB would force the issue in C#.

I was using Notepad as my editor, and as I typed my VB class I forgot to put the parens after a subroutine name, such as
Public Sub fNoAttributes
Return
End Sub
(Simple repro example.)
I compiled the class, and what do you know… the VB .NET compiler allowed this method definition.  GROAN!  The VB .NET environment in VS.NET tacks the parens on there if you leave them off, knowing they should be there for consistency and all reasonableness.  But no, they’re not required by the VB.NET compiler.  Ugh.

I looked at the generated class using ILDASM and saw the method defined as
.method public instance void  fNoAttributes() cil managed
{
// Code size       3 (0x3)
.maxstack  8
IL_0000:  br.s       IL_0002
IL_0002:  ret
} // end of method Foo::fNoAttributes

Just for grins I removed the parens from a C# method (again, using notepad) and the C# compiler squawked at me.  Thank you, C# compiler writers!

I complained earlier about the VB.NET environment removing the parens from instance creation:
Dim f as New Foo

But for methods they tack parens on, even though the compiler doesn’t require them.

Heh.  What were those VB.NET guys smokin’?  Certainly not the consistency weed.