Rants, rambles, news and notes from another geek

Geek Notes 2003-12-07

Busy busy… had an unexpected cube move on Friday afternoon, then forgot to bring my power adapter home, so I couldn’t post this until this morning. Oops.

December Meeting of the Denver Pragmatic Practitioners

December Meeting of the Denver Pragmatic Practitioners

Date: Monday December 15, 2003 5:30PM - 8:00PM

Location: Interlink Group Offices, 98 Inverness Drive East, Suite 150, Englewood CO 80112 [Map]

Topic:Â Unit Testing and Test-Driven Development

After our spirited discussion in November about Source Control, we decided that we would discuss Unit Testing and TDD at our next meeting. Have you done TDD? What were your experiences like? Do you use JUnit, NUnit or one of the other unit testing frameworks? If we have time, we’ll try to have a chat about FIT testing as well. Join the Denver Pragmatic Practitioners for a round-table discussion with your peers about what has worked and hasn’t worked.

We look forward to seeing you there.

Geek Notes 2003-12-03

I spent yesterday afternoon at the ASP.NET Exposed Roadshow with a number of co-workers, then this morning at the Microsoft ISV Roundtable. Damn… these working social events are making it hard to get work done! :)

Geek Notes 2003-12-02

Its amazing how much time it actually takes to keep up with my feeds. On Sunday I was caught up and now I’m way behind again. Oh well…

Response.End in ASP.NET and HTTP Handlers

I’m currently sitting through the ASP.NET Exposed Roadshow here in Denver and I just saw something on the screen that caught my eye.

Rob Howard had an ASPX page that was pulling documents out of a database. After putting the content out and writing it back to the Response.OutputStream, he called Response.End. Now this was a nice demo of using File upload into and out of a database, but like so many MS demos, it could easily mislead novices.

Now I seem to recall someone writing somewhere that Response.End (and Response.Redirect for that matter) actually do some very nasty things deep down inside of the .NET runtime. From what I recall, they both cause some pretty nasty stuff to occur deep down inside of .NET (exceptions… forceably terminated threads… etc.)

The right answer of course, is to use an HTTP Handler (ASHX) file. ASHX files let you create an HTTP endpoint that can return any content type that you want.

Later on, Ron demoed how to create an image on the fly using ASP.NET. Once again he used an ASPX file instead of an ASHX file. I understand that introducing ASHX files to a group of potential newbies is risky, but I’m really getting tired of running into “experienced” .NET developers who copy the things they see in these demos and put it in production code.

Test-First Challenge

While doing research for a TDD presentation I’m giving this week, I stumbled across Bill Wake’s site XP123. He has tons of useful tidbits in there, but the one that really caught my eye was his Test-First Challenge.

Basically it is a series of practice exercises for doing TDD. He provides the tests and you do the implementation. Check it out. (The tests are all Java, but it should be pretty straightforward to convert them to C#.)

Agile Construction

Steve Eichert shares a story that sounds familiar:

When she started her basement project she had no idea what she wanted.├é She knew she wanted a finished basement but she didn’t know any of the details.├é When Sonny (the contractor) asked her to tell him what she wanted she didn’t know what to say.├é Rather then try and force my mom into a strict plan Sonny decided to start with the most important aspects of the basement, walls!├é As he finished each stage, he would come back to my mom (and dad) and ask them what was next.├é A couple of times Sonny would finish something, but would then tear it down and do it another way based on the feedback he received from my parents.├é Had the project been done differently this would not have been possible.├é The incremental construction allowed my Mom and Dad to take a step back if they didn’t like something, and it also allowed them to put off some of the details they weren’t ready to think about.├é In the end they probably spent a little bit more money, but, they were a LOT more happy.

The reason this sounds so familiar is that this same thing happened to me and my wife. Granted I was the contractor and she was the customer, but the process was the same. At first she knew she wanted a bedroom in the basement. She didn’t really know how she wanted the hall layed out, where she wanted the doors or closets, etc. So I drew some chaulk lines on the floor and got her to talk about how it felt. Then I framed in the walls. During the framing we realized that one of the doors wasn’t in a very efficient place, so we moved it. After the framing was done and the drywall was about halfway up, we realized that we should put a coat closet in. So down came a small chunk of the framing, in went a new pocket door and a closet was added.

This kind of thing is the essence of agile project management.

BTW, I don’t know if I already mentioned it here, but you should read Lean Development and the Predictability Paradox by Mary Poppendieck.

eMbedded Visual C++ in a VPC Session

Today I installed eMbedded Visual Tools in one of my VPC Development images. The installation went smoothly. The system runs fine.

But when you try to compile a solution, after the compilation is complete it says, “Starting Emulator Startup Server” and displays a progress indicator.

Then an error box pops up that says, “Emulator for Windows CE will not run within another copy of Emulator for Windows CE. You just had to try didn’t you?”

I click OK and then it times out with the error message, “The Emulator Startup Server connection has failed. Please make sure Emulator Startup Server is running and retry the download by Rebuild All or Update Remote Output File(s). Also make sure that you have selected the correct platform.”

So are you telling me that Emulator for Windows CE thinks VPC is another instance of itself? This is crap.

Does anyone know what it is checking for so maybe I can find a workaround? I really want to write some code for my Smartphone but I don’t want to install the dev tools on my laptop.

Geek Notes 2003-12-01

As expected, there was a lot more content on the feeds this morning. I can’t believe it is December already! Wow.

  • ASP.NET Common Web Page Class Library - I haven’t tried out the code yet, but this set of ASP.NET classes sure looks useful. Eric Woodruff provides base classes for your pages that have templating-like features, data notification, can email their rendered content and more. Part 1, Part 2, Part 3 and Part 4.
  • Cell Phone Vigilantism - This reminds me of a scene in David Brin’s novel Earth where the kids are being monitored by old people with digital cameras built in to their eyeglasses. In this case the roles were reversed with a kid taking a picture of cops being bad.
  • Printing Confidential Docs - I wonder if this trick works on all printers or just some? My guess is that it is a feature of his printer. Cool nonetheless.
  • Will TiVo Destroy Ad-Supported Television? - An interesting article in Television week asks a question that I’ve been asking since getting my TiVo. [via Slashdot]
  • SCCBridge - A freeware alternative to SourceOffSite for remote access to your Source Safe repositories. [via Korby Parnell]
  • Visual Studio Tools for Office Developer’s Center - At the PDC I heard one of the VSTO guys mention that tons of new content was coming soon and it looks like they are delivering on that promise.

And here is a funny quote for today from Win Tech Off Topic:

SteveC: “Is it me, or is Google the new Wizard of Oz?”

John Kale: “You mean you get the most success when you use it with Dark Side of the Moon playing in the background?”

And as a final note, go to the Campbell’s Chunky site and pick your favorite NFL team. For each person who votes, Campbell gives a can of soup to the needy.

Geek Notes 2003-11-29

After spending most of yesterday and some of this morning updating my weblog theme, I didn’t get around to posting a Geek Notes. Sorry.

Not much stuff for skipping two days, eh? Oh well. I’m sure Monday will be plenty contentful. :)