Tuesday, December 28, 2010

Doom and Gloom Redux: Much Less Gloom


I was planning on doing a review of my new Kindle tonight, but I'm already up way too late, so I'm pushing that off 'til Wednesday and moving Wednesday's post to tonight. Got it? Okay then.

Back in my Doom and Gloom post I made a few predictions about the lame duck Congressional session. Now that it's over, I thought it was time to take stock and see how it panned out. In order:
  • All of the Bush tax cuts will be extended: This happened, but surprisingly enough it went down as less a total capitulation and more as a negotiated settlement that sorted out the problem of expiring unemployment benefits.
  • DREAM and DADT will be killed in favor of the new START treaty: This sort of happened, in that DREAM and DADT in their original incarnations both failed. However, a last-ditch push by Joe freaking Lieberman of all people got DADT passed as a standalone bill, with a surprisingly comfortable majority in favor of it.
  • Republicans will run out the clock on new START: Did not happen. Some of the leadership continued to make a stink about it, but not enough of one to keep the rank and file from voting however they wished when the treaty came up for ratification.
  • The food safety bill will die in a procedural clustersnuggle: I wasn't paying as much attention to this as I was to everything else, but the procedural SNAFU was sorted out.
So, huzzah! Compared to what I was expecting things went very well. I was amazed at how quickly the tax cut debate was resolved: there'll be trouble down the line, still, but for now the compromise is (arguably) a good thing. The passage of DADT was a pure win, and so was the ratification of START. DREAM is probably dead for the immediate future, which is a shame; hopefully something similar will come up in a more comprehensive immigration reform bill down the line.

Going forward, I'm hoping Congress continues its recent spurt of productivity through 2012; which is to say, I'm hoping that Congress doesn't deadlock and shut the government down in 2011, and gets some more appointments sorted out. Filibuster reform wouldn't be a bad start; I love Mr. Smith Goes to Washington, and I'm all for requiring an actual filibuster when a Senator wants to filibuster something. Also, gentlemen, let's drop this anonymous holds nonsense, okay? It's a stupid, ugly practice with no redeeming value that makes the Senate look bad. No more.

Okay then. Sleep now.

Friday, December 24, 2010

Merry Christmas!

Really, what else is there to say? Oh yeah: Enjoy some Christmas Corgis!

Thursday, December 23, 2010

Ack Ack Ack

Today's going to be a short post. My best friend just blew into town from Cincinnati to spend the holidays with his family, so I ended up playing co-op Plants vs. Zombies and New Super Mario Bros. for much longer than I planned and now I really need to get ready for bed.

Happily I do have some content! Just from other people.

First up is an excellent blog post from Kevin Smith (the Clerks guy), in which he talks about the creative process for film making, and how important it is to go out and do what you want to do, rather than waiting until you're somehow qualified to do it.

Second (and last) is The Penmonkey's Paean, which I am officially declaring a must-read blog post. In fact, you know what? You'll need to print this one out and tack it up on your wall, right behind your desk. Because when you're burnt out in the middle of a book or you're sick of editing for the tenth time, you will want to read this.

Monday, December 20, 2010

Learning Real-World Programming

My apologies for the missed blog post on Friday. I got caught up reading Prospero Burns and honestly forgot that I had a post lined up. Hey, there are worse excuses for missing an update.

Anyway, I responded to a forum question a while back about what to study if you're thinking about a career in computer science (which I took to read "programmer"). The rest of this post is a cleaned-up version of my response, based on about five years' experience writing code for a living. If you think I'm going too far off-mission, well, tough. Go suffer the wrath of Trollquotes.

First off, you want to learn Unix or Linux if you want to be a well-rounded programmer. For all of Windows's dominance of the desktop PC market, most servers run on some flavor of *nix, so you're going to have to learn to love the command line. Ubuntu is easy to use as a desktop, comes on a live disc so you don't have to nerf your Windows gaming box, and has the full command line experience for you to play with. (If you don't know what a live disc is, God help you, and don't come crying to me when you reformat your hard drive.) Make sure you work out how to type in emacs or vi as part of your command line tour.

While I was in college I learned to program in C++ and Java. These are useful languages to learn from, because they're strongly defined, well supported, and complex enough that you can port your skills to just about any other language without too much difficulty. But as a practical consideration, well, I haven't touched C in years and only rarely use the Java. (That'll probably drop to "never use Java" now that Oracle seems bound and determined to screw it up. I still feel bad for Professor Lobo, who was firmly convinced Java was the language of the future. Now, I suspect, not so much. But I digress...)

Code gets compiled, and you will need to know how to do that. Not everybody gets to use an IDE. If you're learning C or C++, make sure you play with gcc and make. Visual Studio is fine, but will only take you so far. If you're learning Java, start compiling with javac before anything else. Once you're comfortable with that, Ant is a great tool for building larger projects.

Now, other languages. HTML and CSS aren't programming languages, but a basic knowledge of the tags is important if you want to be a web programmer. In which case you'll also need to be able to set up an Apache web server, which is not at all difficult after a few Google searches. Many *nix systems will come with it installed or as an easy add-on in any case.

Java servlets are good to know for web programming, but will require Apache Tomcat or Glassfish as your web server. These are both still easy to set up.

Javascript and Java are two different things - Javascript is generally the one that does all the fancy web graphics on Facebook or Twitter. Learn it if you need it.

For a simple introduction to modern web programming (i.e. Web 2.0, SOA, The Cloud), you might consider checking out Ruby and it's expansion pack, Ruby on Rails. It's got a very simple syntax that does a lot in a hurry, and Rails was designed to handle buzzwords like SOAP and Ajax with ease.

On to the nitty-gritty! Perl is the #1 language in parsing text files, so if you're planning on server programming, learn it as your second language. The syntax is (arguably) a little too confusing to start learning with, but once you get the knack for it you'll be fine. You'll also want to learn a bit of shell coding to go along with the Perl.

If you're interested in games programming, XNA is the simplest way to get started in 3D gaming. That means learning C#, which is about the only reason I know of to use that particular language. It's a lot like Java, so you won't have too much trouble getting spun up.

Avoid LISP like the plague unless you like artificial intelligence.

The best programming books I've found that are up to date belong to the Head First series. These are very accessible, and entertaining, but still give you a strong introduction to their particular subject. Beyond that, the O'Reilly tech books are rarely bad, so investigate them thoroughly whenever you want to learn about a new subject.

Programming can be a lot of fun, even if you never do it for anything other than a hobby. As a profession, it won't be a blast everyday; but at its best programming is a creative, rewarding way to make a living. So if you're in school and thinking about what career path you want to follow (or, like me, you want to be a writer but like to have money for food), give coding some consideration. If nothing else, hey, you can write a Pong clone for your own amusement.

Wednesday, December 15, 2010

Lunchtime at Bugaboo Creek

Today was my office holiday get-together, and as it is written in the ancient scrolls we went out to lunch at a nearby restaurant. This year the Bugaboo Creek Steak House was selected. It's a U.S. steak house chain, but there are moose and mounties in it so I think it secretly wants to be Canadian.

Let me get this out of the way: The food was great. Excellent ribs, excellent mashed potatoes, and very good french fries. Yes I got two starches in my lunch, don't judge me.

Here's the thing. I walked into the restaurant and suddenly I'm in a taxidermist's dream world. There are heads just about everywhere. Moose heads, deer heads, bear heads. There's some kind of rodent dangling from the roof via a string. It's the sort of place that would give Sarah the fear, and the sort of place that my dad would get a big kick out of.

My coworkers and I walk over to our table, which is in the dead center of the restaurant. We're surrounded by dead animals. There's a giant buffalo's head right behind me. As I sit down, one of the guys who had gotten there a few minutes ahead of us says "Hey. Fair warning, the buffalo talks."

What?

"Yeah, it scared the shit out of me. It's really loud. Be careful."

So now we spend the next half hour ordering drinks and looking at the menu and being terrified that this head's going to start talking. And as this is going on I'm noticing what looks like poltergeist activity all around me. A skunk is popping up out of a tin can, looking around, and hiding again. The dangling squirrel is swinging from side to side, even though the squirrel never moves. I'm half expecting the Candarian Demon Moose to turn up and kick off a jaunty musical number.

gif gifs
Moose are not musically inclined.

Finally at 11:30 on the dot, the buffalo turns it's head and blinks at me. The dead animal is blinking at me. Then it opens its mouth and says:

"Well hi there! I'm Bill the Buffalo. You know why they call me 'Wild Bill'? A lot of people think I'm named after that other guy, but that's not it. It's 'cause I came here and I ate all this delicious food, like the Lodge Center Cut Fillet, and by the time I was done I worked up a 'wild bill'!"

And then it shut up.

...

It really was good food though.