Sunday, March 30, 2003

David and a bunch of other people seem to have misunderstood the recent court case on the Pledge.

It's not about making it mandatory. Students can still say the pledge. It's not banned. What is banned is the school (a public, government-funded institution) endorsing these notions by leading and arranging a pledge recitation.

It's about a government institution endorsing a particular set of religous beliefs: theism, monotheism, and the U.S.A. as a god-endorsed country. Even if you agree with each of these beliefs, think you would feel if the phrase was changed to "under the gods", or "under Buddha". Wouldn't like it, would you?

How about we remove the phrase? Schools can then keep arranging the pledge, legally. I would still argue that it shouldn't be made mandatory, but that's for another posting.

I'm watching Unsolved History's episode on the worse naval disaster in history. It's not the Titanic. It's the Wilhelm Gustloff. The program hired people to run computer simulations and other naval architectural analysis. It was sunk by a Soviet submarine in 1945, while full of more than 10,000 German refugees. Over 8,000 people died. That's several times more than the Titanic. What's the most unsolved piece to me, though, is that this disaster is so unknown. Why?

David Stone likes my advice below, except that he would recommend C# over VB.NET. I was mostly using VB.NET below as an example. It could also be C#, and most of the advice would still be true. But, VB.NET does offer some features that help lower the irratation level for begining coders: case correction, no need to remember semi-colons, and line compilation while still editing. Either one would work though. I really don't think learning VB.NET would hamper anyone much, or prevent you from moving on to C# someday. As Joel says: 80% of what you learn is about which method to call in the framework anyways.

Saturday, March 29, 2003

Scoble wants to transition from advanced user to programmer. He's asking, and getting, some nice advice. As someone who's turned three of my friends into programmers, taught programming to many clients, and who's also taught guitar off and on, I figured I should add my two cents in.

Ignore the advice to start without VS.NET or VB since they "hide things from you".
Taken to it's logical conclusion, this would mean you should start with assembler. The hardest thing to do while learning to program is keeping motivated. If you start too low-level, the irratation can lead to discouragement. When I teach guitar, I tune the guitar to an "open chord" tuning. This allows students to lay the finger across and just move that barred finger from position to another. They leave the first lesson playing a song credibly.

If you start teaching guitar by explaning music theory, only the most gifted and motivated students will advance. If you start with some gratification, most people will advance. And, trust me, the gifted student will still progress as fast as he would have otherwise.

Start with VB.NET and VS.NET. Create a new windows application project. Drag and drop a button onto the form. Double-click the button and write code. Hit F5.

Write an application that solves a problem you have now.
Play a little at first. Feel good about what you've done. But, within a few days, you need to try and solve a real problem. Make sure it's a problem you have. This will start you on the road of building applications that satisfy users. This kind of motivation and problem solving will satisfy you, and will bring you into interesting areas of technology almost immediately, in a way that isn't academic or boring.

For instance, do you have a machine that's always running out space? Do you wish you could easily get a report of each directory on your system that has more than Xmegabytes inside it? Well, there's no application out there that does that. Write it. You'll need to learn to: take input from users, write out a report text file, scan directories recuresively, and learn how big a directory is. Once your done, use it. Heck, I'll buy a copy from you for $10.

Friday, March 21, 2003

I never anticipated a spec as much as WS-Addressing. So why is WS-Addressing such a big deal? It puts several pieces of information that were previously at the transport level, and places them in the message itself. This allows the message to be self-contained. Why is self-containment nice? It allows a message to traverse time and space (and multiple transport protocols) before it is delivered and processed.

Tuesday, March 04, 2003

Great article on finding what to do with your life.

Monday, March 03, 2003

Another review of the book can be found on this page. Thanks Ali.

Sunday, March 02, 2003

I've posted the code listings for Chapters 3 through 5 today. Enjoy!