December 29, 2005

Party Cometh Soon

The party is coming up quickly. Saturday, my place, around 7. People are going to be here all day, so if you want to get here early - go for it. There'll be food. They'll be drink. They'll be all manner of things.

Posted: 7:48 PM // Comments: 1

December 27, 2005

Tripping Over Holidays

My parents house is built in the middle of a valley. Not a valley in the sense of mountains with sheep, lederhosen, and pine trees; but a valley in the way the midwest has valleys. A small bit of land that is lower than the bits around it. It's enough to turn the winds coming thru here from cold to colder. Combined with the substandard construction of my parents house, and the shower becomes how I image running out of a Finnish sauna into the snowy ford feels like. It's a mad dash to get dry before hypothermia sets in and you loose a toe.

So as I walk in the valley of the frozen toe, I take stock of this year that was.

Buy

Structure is a good thing. A job would have done the exact same thing, but having class to get to day after day is good. When you have nothing to do every day, the idea of doing anything seems insurmountable. I'm never doing a year with nothing to do again.

Hold

The new NHL. Crack down on interference: good. No two line pass rule: good. Shootouts: gimmicky, but good. No one paying a price to go to the net: bad. Puck handling rules for goalies: bad. Salary cap: too low.

Sell

2005 won't go down as the year when Microsoft died, but it certainly will go down as the year it was revealed to be mortal. No major product launches, a string of dire security flaws, no games and too few units at the 360 launch, and Google is still wiping the floor with MS on internet searching. Longhorn needs to hit it deep, and I mean deep, or MS is going to go down the long road to irrelevancy.

Buy

HDTV. Yes, there are way too many options for the consumer. Yes, there are too few channels broadcasting in hi-def. Yes, we still don't have a hi-def DVD standard. No, that doesn't matter. Watch one football game in HD and you'll never go back to that screen door you called a television.

Sell

Bush. Katrina, Iraq, Miers, domestic surveillance, indictments, social security reform dead on arrival, approval numbers in the Nixon range, ongoing investigations of a national security breach in the Vice Presidents office, oil prices - oh so high, deficits, cronyism, the boy in the bubble and the baby with the baboon heart. Utter failure.

Hold

Video iPod. I love my 60 gigger. It holds a lot of stuff, has a great screen, and a killer battery life. I'm not completely convinced of the model of selling video on the iTunes store. Right now, I'm much more tempted to rip DVDs to my pod. There just isn't content on the store, and I can't watch what I do get from the store on my TV with any quality.

Sell

Blogs. Blogs are on their way out. You heard it here first. On a blog. Irony man. Irony.

Buy

Roller Coasters. In my youth I loved roller coasters. In college my interest waned, but it seems to have come back. I've been playing with roller coaster simulators, reading up on rides, planning trips for the summer, and learning some of the math behind coaster designs. Next step: get a place to build my own.

Sell

The Red Sox. I'm a big Red Sox fan. I have been for a while because no one can be a Tigers fan right now and be happy. That being said, the front office is a mess right now; they're dysfunctional. They're bleeding quality players, which is a sign that they have lost their commitment to winning. Worse than that, the team simply isn't as good as it was 2 months ago and the front office doesn't seem to care. Someone needs to keep the Yankees down and I'm worried that there's no one left to do the job.

Hold

Tivo. They look to be near death, but they just won't die. Ten bucks that they bleed to death by August.

Posted: 11:27 PM // Comments: 2

December 24, 2005

Returns From The Magi

So I have been busting butt getting things for a party I'm having here tomorrow. It's for family, something that never happens at my house, so I'm a bit stressed about it. Well, I'll be honest, I'm not stressed about that. I'm stressed because it is entirely possible that I've stirred the pot. Stirred the pot all over the place.

The problem is that my personality is wired to be very good at mixing things up. I'm honest, brutally honest. The sort of honesty that hits you between the eyes and gives you a five alarm hangover in seconds flat. Usually I can keep in check. Usually the words are only part of my inner dialog. But not tonight - tonight I said somethings. Things that were perfectly true. Things that people are probably better off knowing. Things that have stirred the pot up around here to the point that there is a residual charge in the air. My hair is half sticking up and I'm afraid to touch the doorknob.

All this on Christmas eve. It's the season of joy, a time of wonder and magic. It's Christmas. It's Hanukkah. It's Quansa. It's festivus. And here I sit, hip deep in pie, scared to touch anything grounded. I would like to hit the big undo button in the sky. I'd like to return these particular Christmas "gifts."

Ok ok. That's a bit over dramatic. It'll all work out fine in the end, and how couldn't it? It's Christmas.

So Merry Christmas everybody. Get off your computer and spend sometime with those that you care for. And do try to keep the honesty till January 2nd.

Posted: 3:40 AM // Comments: 1

December 22, 2005

Programming Classes

I recently finished a programming class at eastern. It was, in the end, incredibly easy. I don't think it was that easy for the rest of the class, but for someone that already knows the concepts and practices, it's a very easy class. We had a group project in that class, and I was squeezed into leading that project. That was a real learning experience.

First thing I learned: when you're learning how to code you can't write code very fast. I wrote a version of the project in a couple hours early on in the project. It took the class weeks to write that. I'm not calling the class stupid or slow, in fact I though some of the people in the class were highly intelligent. What I am saying is that once you stop thinking about how to write the code, and start thinking about how to write the program things get a lot easier. I'm looking forward to seeing people in the class get to that point. It's a rewarding moment in a programmer's life.

Hard things turn out to be easy, and easy things become hard. This happens all the time in the real word, so I should have seen it coming in academia. I thought for sure that part foo of the code would be easy and bar would be hard, and I was completely wrong. They worked thru it though, and that's what counts.

The book for the class was a complete disappointment. First off, there are many factual errors in the book. For example, the book's definition of polymorphism:

Polymorphism refers to the ability to associate many meanings to one method name by means of the late binding mechanism. Thus, polymorphism and late binding are really the same topic.

That's not right. That's not even wrong.

More than that, the book tries to keep each chapter independent. Chapter 15 doesn't require you to know chapter 7 for example. This sounds like a good idea in theory, but in practice it means that new important ideas are not reinforced. Exception handling is covered and then never discussed in later chapters. It goes completely against the fact that in computer science ideas are built atop other ideas.

The examples are trite and often fail to reinforce modularity. There are now ten people in a computer science class at eastern that have been taught that it's perfectly alright for a library to print error messages to standard out - even though they've been taught exceptions!

Posted: 10:36 PM // Comments: 0

Three Quotes

Nicole has started this thing with quotes. I, like a sheep, shall follow.

  1. Three o'clock is always too late or too early for anything you want to do. --Jean-Paul Sartre
  2. That's the whole problem with science. You've got a bunch of empiricists trying to describe things of unimaginable wonder. --Calvin (& Hobbes)
  3. This crime called blasphemy was invented by priests for the purpose of defending doctrines not able to take care of themselves. --Robert G. Ingersoll

Mine: Fear leads to cats. (On how fear of social situations can lead to being a cat lady.)

Posted: 8:50 PM // Comments: 0

December 13, 2005

There Be Bad Code Here

In computer science education the idea that only concepts need really be taught is entrenched so deeply you'd need spelunking gear to find it and rip it out. The argument tends to be that if anything other than concepts are taught students will become tied into a language and their skills will be doomed to eventual obsolescence. To a certain extend I agree with this, the goal of a computer science curriculum is to make a person a computer scientist (as much as I hate that term) - not a java programmer. To do this, students need to understand high level concepts: data-structures, algorithmic efficiency, language design, systems theory, etc... Along the way though, they should be pulled aside and given some hints on how to write good code.

Good code is like good writing. There are no hard and fast rules for identifying it, but you know it when you see it. The corollary is also true. You know bad code when you see it. This is a little easier to make rules for. Bear in mind, each one of the rules can be broken at any time if you know what you're doing.

First off, variable names are important. Really important. If you need to comment on your variable names, then you need better names. If you have foo and foo2 as variables, then you probably need to rethink things. A variable name of one of two characters is almost always a bad idea. The name should tell you what it is. The name is there for your sake, not the computers.

Functions (or methods, or subroutines, or definitions) shouldn't be too long. A function that is your entire program is probably too long. A function that you have to scroll thru over and over just to understand is probably too long. A function should do one thing, do it well, and then quit while it's ahead.

Mark Jason Dominus said it best:

Well, if you don't know what it does, why did you put it in your program? That's like taking a crap on somebody's doorstep and then ringing the door bell to ask for toilet paper.
You should have a understanding of what the code you're writing it supposed to do. If you don't know what it's supposed to do, how is anyone else supposed to know? Let alone the computer. Remember that you're not a programmer, you're a writer. You need to write for comprehension, and to write about something you first need to understand it.

People often say that you can't try to teach things like this to beginners. They say that novice programmers need to concentrate on getting their code to compile and work. Nonsense. You have to start teaching good habits early. If you spent 5% of the curriculum on good coding and writing, not only would students be much more employable, but they would be much better computer scientists.

Posted: 11:03 PM // Comments: 1

December 8, 2005

Christian Persecution

Christians are not persecuted in this country.

Christians are persecuted in North Korea.

Christians are persecuted in China.

Christians have never been persecuted in this country.

Christians are 76.5% of the US population.

Christians control the House, the Senate, the White House, the State Legislators, and are fast gaining on the Supreme Court.

Blacks have been persecuted.

Jews have been persecuted.

Native Americans have been persecuted.

Christians are not being persecuted.

Christmas is not under attack.

...

Put me on your list Bill. Please.

Posted: 5:51 PM // Comments: 0

The Daily Tivo

I tivo the Daily Show every night. Usually I find it quite funny, but from time to time... well... it's better than just quite funny. Every once and while it's the shit. Last night was one of those nights.

BTW - Happy Holidays!

Posted: 5:14 PM // Comments: 0

December 5, 2005

New Years II - Too Big For One House

New years party, my house, December 31st 2005 A.D.

There will be good food, fine wine, and people you need to spend time with. So much of all three that we had to expand to two houses. Be there.

Posted: 2:01 AM // Comments: 2

Once Again, I Tell This Tale

Jon did what he tends to do from time to time, he came out to Ann Arbor. We did the three things we always do in Ann Arbor: we ate, we drank, we talked to girls. I suppose there are better things to do with a Friday night, but I'm not sure I need better things. Those three seem to be enough, especially if you like the food, like the drink, and fancy the women.

I was not having a good day on Thursday. I had overslept, missed a class, lost the capacity to connect to the internet, and been generally glum. The internet thing was particularly irksome. It was a complicated problem, and to truly understand it you would need to have at least an intermediate knowledge of both the transmission control protocol and BGP routing tables, but to sum it up - I forgot to pay the bill. It was just one of those weeks.

Then Jon came. We ate, we drank, and we talked to girls. And all was well.

The next day, we were to make dinner for the women folk in the house next to mine. We had to go to Bed Bath and Beyond to get a few things, and we were checked out by a very pretty girl named Tiffani. Tiffani was blonde, with two blue eyes sunk deep into her face. She would have been striking, if not for her makeup trying desperately to make her striking. She bagged the purchases. I swiped my debit card. Next please.

Whole foods in Ann Arbor is like a church to good food. You want it? Need it? They have it. We got shrimp. Organic butter. Peppers. Blocks of fine belgian bittersweet chocolate. We checked out with Sarah. Sarah the fun. Jon, her, and I got into a conversation. We were all charming and funny; like you see in movies and magazines.

Back to Bed, Bath and Beyond. We dove straight into the beyond section for a few things we forgot. Quickly to checkout. Tiffani again. For a moment she wanted the moment of déjà vu to be funny, but she didn't let the thought linger. She pushed a laugh down. We had already noticed how sad she had seemed, but now it was staring us in the face. Was it a bad day? week? year? life? I'll never know, but I like to think that it was a bad week and maybe her bad week, like mine, turned good at the end.

Posted: 1:57 AM // Comments: 0