Tuesday, November 21, 2006

Learning to Write Software

I was first exposed to personal computers when I was in the 2nd grade (sometime around 1986). I still remember the computer lab vividly -- a room lit subtly by the monochrome glow of tiny, low resolution monitors. The machines were Apple IIe's running Terrapin Logo. As I reflect now, I realize there must be something deep within me that draws me to this technology, because I instantly "got it" and fell in love. I begged my parents to get me a computer for my birthday, and I can still picture my father bringing home the Apple IIc on September 22nd, 1987.



One of the great things about these Apples was that they had a built-in BASIC interpreter. (BASIC, or the Beginner's All-purpose Symbolic Instruction Code, is a simple, high-level programming language.) What this means is that an 8 year old with neither software nor documentation can program a computer (wow, right?). A friend of mine from school had some experience with BASIC and taught me a few commands, and the rest I literally learned by hours and hours of experimentation in front of that screen... a true labor of love, I suppose, and probably the reason I don't tan well today. By the way, my one regret is that I never thought to ask for a BASIC manual, which I think would have accelerated my learning on the order of years. Whatever... I was just a runt.

As time went on, personal computers became faster and more capable, and the software they ran became more layered and complex. Today there are so many development environments to choose from, and documentation is widely available on the web, but how is a novice to begin to unravel the complexities of APIs, DLLs, SDKs, IDEs, the wealth of programming languages available and the learning curves that each brings? I've heard this problem referred to as "The Little Coder's Predicament", and I first came across a good discussion of it here.

I know a lot of people who've expressed curiosity in writing software, but -- needless to say -- they're intimidated by the process. (As a sidenote, this means that people who consider themselves tech-savvy but don't write code regard us with a certain awe, which is neat.) I wish I could show them that it's really not that difficult, and that it can be extraordinarily rewarding to do. Imagine -- you have virtually unlimited resources at your disposal (most computers today have greater than 1 billion bytes of RAM and more than 100 billion bytes of hard disk storage -- and even saying that will probably date this post immediately). You can create almost any piece of software that you can dream up. It's like having infinite clean slates.

So, what would help a beginning programmer (at any age) be productive and have fun? I'll take a stab at it:
  1. Free development tools that allow you to be productive without requiring tedious effort or excessive learning beforehand
  2. Guidance -- lessons, examples, and practice problems
  3. Personal support -- real-time or otherwise
  4. (later) Good references and/or manuals

Microsoft recently released so called "express" (that is, feature-reduced and no-cost) versions of their excellent development environments. They position Visual Basic 2005, Express Edition as "Productivity that is ideal for first time or casual Windows programming." In my opinion, it easily fulfills the first requirement above; the language is easy to learn, the environment is relatively easy to use, and you can be productive quickly (drag-and-drop to create graphical applications, for example).

It appears they've done a great job in helping users get started, too. They have 16 lessons in the "Absolute Beginner’s Video Series" alone! Then there are the forums, and webcasts, and endless other resources that you'll find with a Google search.

Microsoft's motivation in softening the learning curve for new developers is likely to ensure the continued tightening of its hold on the personal computer market; more people developing for Windows means more Windows software, which in turn means more of a reason for end-users to stick with Windows. Regardless, I am impressed and excited to see such a great opportunity for people to discover programming. And besides, the lessons a new developer will learn from Microsoft's tools and training will set the groundwork for creating software on any platform. I want to have a hand in this business of making programming more accessible. If you read this and have questions, or doubts, or resistance, please write a chat client and send me a message (or just send me an email).

Friday, October 20, 2006

Getting FLAC from the Philly Orchestra

As I had mentioned I would, I emailed the Philly Orchestra's music store's support folks. The response below (from Fred) made me feel a) wrong, and b) cheap. Apparently the store's MP3s are all 256kbps VBR... and, no, they won't give me a free FLAC download to evaluate the difference ("it's only $5, you cheap bastard").

So what's up with mplayer?

Opening audio decoder: [mp3lib] MPEG layer-2, layer-3
AUDIO: 44100 Hz, 2 ch, s16le, 128.0 kbit/9.07% (ratio: 16000->176400)

(maybe that 9% means it's 9% sure it's 128kbps :)

Anyway, here's Fred's email. On the bright side, it made me realize that I don't know enough people named Fred.

Dear Haig Didizian,
>> When I realized your MP3 downloads are fairly low quality (128kbps),
Actually they are encoded at 256 kbps. Please see the FAQ: "The standard MP3 files, encoded at 256 kbps VB "
Sorry I can not give you a free flac download.
If you want to try out flac downloads thay are not very expensive, only about $5.

Please let us know if you require further assistance.

Thanks for supporting livedownloads.com!

--Fred

Saturday, October 14, 2006

Philly Orchestra Online Music Store

The Philadelphia Orchestra recently opened an online music store to host their recordings.

For a limited time, you can download a 2005 performance of Beethoven's 5th Symphony for free. This one was recorded under the direction of Christoph Eschenbach.

Two things of note:
  • It looks as if most recordings are $5 (Beethoven's 9th is $10, however). That's more reasonable than iTunes, though not quite as "reasonable" as AllOfMP3 -- and by reasonable I mean "probably illegal". I'm not complaining... no, no...
  • They provide recordings in FLAC, or the Free Lossless Audio Codec. It's slightly more expensive, but it's neat because it compresses the audio data without removing sound information. If you can hear compression artifacts in 128kbps MP3s (which is what the new orchestra store sells), you'll probably want to check out the FLAC versions. Problem is, your iPod won't know what to do with FLAC files. The Wikipedia entry has sections for software and hardware support.
I'm a bit bummed that the free download offer doesn't extend to the FLAC files for this recording... otherwise, I'd be able to download both and compare. I'm feeling activist today, so I'll write an email.

Friday, October 13, 2006

Anthem of the Week -- October 13th

I plan to post a song once a week that captures the spirit of the week past. I've been trying to figure out why I want to do this, but I can't really verbalize it. Actually, I can. But it sounds ridiculous and cliche.

So. I think Friday's a good day to post a song, so I can play the song to death over the weekend.

Now, for the first installment of Anthem of the Week:

Title: Smoke It
Artist: The Dandy Warhols
Album: Odditorium, or Warlords of Mars

Listen | Lyrics

Why this song: I was having a conversation on Wednesday night with some folks who are a little bit older than I am (I'm 26). We started talking about how most of my close friends are focused (for whatever reason) on professional success and personal stability (money, mortgage, kids, pets, blah)... and I realized that there's still a significant part of me that just wants to be a kid. And, you know what? I'm cool with that - adults are boring.

The chorus of "Smoke It" starts: "Smoke it just as long as you can smoke it." Awesome.

Welcome

So I caved and created a blog... now I can be unique and interesting like everyone else. I tend to be 2-3 years behind trends... so I suppose this is about right. That reminds me -- I need to post a picture of myself with a trucker hat 20 degrees off center.