Becoming a .Net Programmer

Robert Scoble wants to be a .Net programmer. He’s getting a lot of good advice, and I thought that I’d toss my ten cents in. I think there are 4 areas to be concerned with:

  1. the tools
  2. the language
  3. the craft of programming
  4. .Net

The Tools: Since he’s committed to Windows, I think he should dive right into Visual Studio. I haven’t used the latest set of tutorials, but Microsoft did a great job putting together tutorials in the use of previous versions of Visual Studio and I’d expect the latest tutorials to be just as good. I would start by focusing on learning the language, building applications, and debugging applications.

The Language: VB for a desktop application and C# otherwise. I haven’t got around to installing my VS .Net upgrade, but VB was the best way to build a UI in the past and Joel likes VB too. One of the problems with ASP was that you typically used VB Script on the front end and something else on the back. C# gives you commonality between the two.

The Craft: I think that this is where hitting the books can pay off. Programming Pearls is out in a new second edition and it would be a great place to start. I’ve always liked Robert Sedgewick’s books on Algorithms. Unfortunately, he hasn’t done a version in C#. Despite that, I’d think about picking up Algorithms in Java, Parts 1-4.

.Net: Didn’t I say that I haven’t installed my VS .Net upgrade? But this is probably the deep end of the pool, so I’d defer this until I was was comfortable with the rest.

Lacking Standard Digital Media

Bill Palmer thinks that SonicBlue killed itself. I agree for the most part, but they were also seriously hurt by the lack of a standard digital media card. I’ve got access to a Sony mini-disc player, a Canon digital camera, an iPod, and an iRock mp3 player (the latter two via my girlfriend). So we’ve got mini-disc, compactflash, smartmedia and hard disk based consumer electronics. And the storage media played a role in the selection of each of these devices.

The camera was first. I was going on vacation for two weeks and I wanted to take a digital camera and leave my laptop at home. That meant I needed a camera that accepted an IBM micro-drive (compactflash 2). With an existing investment in compactflash, I tried in vain to find a compatible mp3 player. I ended up getting the mini-disc player to take advantage of the low media cost. My girlfriend is an avid runner and listens to the iRock on the track. And finally, the iPod lets her keep all her music on one device.

We’ve ended up with 3 music devices and each has it’s advantages. My girlfriend still uses the iRock on the track. It’s light and has the lowest replacement cost in case of breakage. But she uses the iPod on business trips because it’s got everything on it. I still like the mini-disc on trips because it takes an AA battery. So I put up with the handfull of discs in exchange for the ease of an AA battery (I use rechargables at home and throwaways on the road).

The Unix Programming Environment

Reading this story reminded me of my first encounter with The Unix Programming Environment by Kernighan and Pike. I was working on aerospace control systems when I picked it up and it [and Unix] were pivotal in my transition to software. The 80’s were an exciting time for Unix. The Unix super mini computer was the hot thing and Unix was poised to take over computing. But the Unix community frittered the momentum away and the moment was lost. Now, with Linux and OS X, Unix is back.

Freelance journalist Bob McMillan talks to Eric about UNIX programming, the open source revolution, and why IDEs don’t make sense for UNIX development.

What's the deal with XML and Content Management?

It seems that XML is in the process of taking over the technology world and content management is no different. While most everyone else is interested in the exchange of data via XML, CM is focused on the separation of content from presentation and access to content structure.

Let’s start with yet another description of XML. I consider XML to be the latest incarnation of self describing data. In a conventional data file, the number 516.1 might appear by itself. In a self describing data file, that same number might be accompanied by descriptors that qualify it as being a checking account balance in US Dollars. Self describing data has been around for a while (see More Programming Pearls by Jon Bentley, 1988), but XML provides a standard methodology for describing, writing, transforming, and reading the data.

Separation of Data from Presentation: This is one of the mantras of XML. Separation allows the presentation to be customized for multiple purposes. While very effective for XML data, this tends to be less effective for XML prose. Because data is generally generated by a computer while prose is generally authored by a person, XML data tends to have a finer granularity with more precisely defined elements. Consequently, presentation rules generally have greater flexibility in handling XML data than XML prose.

Let’s consider the presentation of a table. It is likely that the underlying data is contained in the XML data file, and that the presenation rules are responsible for determining what data to present and how to present it. However, a prose table is probably specified as a table and the presentation rules have no flexibility.

Exposing the Content Structure: Content Management Systems treat most content as an atomic type. No attempt is made to open the content up and treat the pieces independently, because there generally isn’t enough information to treat the pieces intelligently. XML changes this by exposing the content structure, making it possible to make intelligent use of the pieces.

Only making it possible, because the content must also be structured in a meaningful way. Identifying sections and paragraphs is nice, but doesn’t provide any information on why section two should be treated differently than section four. When structure exposes the introduction, summary, and other meaningful components, then it becomes possible to treat the independent components in an intelligent fashion.

March Sadness

So much for my good feeling. I must have missed the memo that none of the 4 seeds would make the second week of the men’s tournament and that none of the 3 seeds would make the second week of the women’s tournament.

The traditional achilles heel of the Stanford men is quickness. Not this time around, this time UConn came out in the second half and just out desired and out pushed Stanford. I don’t think that Stanford was prepared for the physicality of UConn. Still, all in all, it was a good year for the Stanford men. With Jacobsen and Borchardt leaving early for the NBA and Hernandez going down to injury, it had the potential to be a truly ugly year.

The Stanford women went into a funk at the end of the first half that continued through the start of the second. During that 10 minute span, Minnesota went on a 14-0 run. While Stanford did not go down for the count (first closing to one with about 8 minutes to play, and later closing to five with about 2%frac12 minutes to play), the hole was just too deep for them to climb out of. A disappointing loss on a home court and a disappointing end to a season.

Microsoft's Dilemma

Microsoft needs to wake up and smell the coffee. Nothing that they ever do again will match the success of their two great platforms: Microsoft Windows and Microsoft Office. Their latest attempts to match those platforms are those success stories known as the XBox and the Microsoft Smartphone.

Apparently, the memo went out to give Microsoft free advice this weekend. Dave Winer thinks they should show ISV’s the money and Robert Scoble thinks they should help the VC’s jumpstart new innovation. My advice is to take the Innovator’s Dilemma to heart and spin some companies off. My sense is that ISV’s want to hit singles for high average, VC’s want to hit home runs and Microsoft wants to hit 10-run grand slams.

Microsoft may need those 10-run slams. Options are the golden handcuffs that keep the machine oiled and running smooth. Given Microsoft’s current situation, a normal slam might not be enough to keep new options in the money. But a small spinoff only needs to hit singles. And that spinoff, operating without a safety net, might just find the next big thing.

And Bill, about Crossgain, don’t let that happen again. Get a piece of the action and shower them with love. You can grind them under your heel after they find a market for you to take from them.

A Victim of its own Success

Scoble is surprised that Microsoft doesn’t own the smartphone market. He shouldn’t be. Microsoft has become a victim of its own success. For starters, it is so big that it just about has to shoot the moon on every hand. A success that would have a small company dancing in the aisles doesn’t make a dent in its earnings. Then toss in the fact that it has taught everyone that complete domination of a popular platform leads to incredible profit. Everyone expects them to make a power play to dominate smartphones. The established cell phone players are all afraid that they’ll become the IBM of cell phones. So they distance themselves from Microsoft and they game against a Microsoft powerplay.

23 Mar: I should have mentioned Sendo is a cautionary tale in dancing with the devil.

Accounting Transparency is Good for Everyone

When it comes to regulation, most businesses subscribe to the Russell Long school of thought: Don’t tax you, Don’t tax me, Tax the man behind that tree. They forget that regulations also serve to level the playing field. Worldcom’s bankruptcy was bad enough. But even worse, the entire telecom industry tried to match their business model in an attempt to match their illusionary profits. AT&T and Sprint would gladly exchange tighter accounting rules over the last decade for an honest look at Worldcom’s numbers over that same period.

[From WorldCom, an Amazing View of a Bloated Industry][1]. We now know in quantifiable, stupefying terms, just how much WorldCom overpaid for the telecommunications network it built.

Just what I need to forget

Only one 16 seed has ever beaten a 1 seed in the NCAA tournament. It’s something that I would like to forget, but someone always reminds me that the 1998 Stanford women were the unlucky 1 seed. In defense of that 98 squad, I’d like to point out that two starters (Kristen Folkl and Vanessa Nygaard) went down with injuries in the week before that game. With a handful of practices to adjust to a missing 30+ ppg, Stanford lost 71-67. If any 1 seed loses two starters to injury this week, feel free to pick the upset.

A Good Feeling

March Madness starts this week. The Stanford men got a 4 seed and the women got a 3 seed. While you can always complain about the brackets, I think both teams should be pleased about the outcome. The men get a easy commute to Spokane. And the women go to the Final Four if they can go 4-0 at home.

I have a good feeling about the tournament this year. It’s odd to say, but I think the men’s team has been too talented the past few years. I think that Coach Montgomery is at his best when he’s working with more limited talent within a system. Ten years ago, the women’s team was at the top. They have slid down into the second tier since, but they could easily ride the home court advantage into the final four.