Choose. But choose wisely.

It appears there are two possibilities: a) Windows hardware manufacturers do not understand marketing or b) Apple is seriously undervalued because they make good hardware and know how to sell it.

Let’s compare this situation to a familiar occurrence:
It is time for your group to be seated at the dinner table in a crowded restaurant. Where should I sit? If I sit by Ron, then I have to listen to him complain about his ex again. Gene knows really good stories, but his wife Jenny tells them better. But Jenny likes to hang with Ron. And Pete, Mr. Comedy, hasn’t even shown up yet.

Who do I sit with? Choose well and I get a conversation worth having. Poorly and I’ll have to listen to drivel all night, wasting one of the few opportunities a busy father of three gets to get out of the house.

 

A friend recently asked for some help choosing a new computer for schoolwork. He’s starting a new school and his old PowerPC Mac is far too old to even watch the lecture videos. Windows is cheaper than Mac, so he said go ahead. And thus begins the nightmare of too much choice.

First off, things would have been fine if the people who repackaged the factory refurb 14″ had simply done their job. Factory refurb suggests someone has gone through it and fixed any issues. Nobody apparently checks that the battery actually fits. But this was not the case. This was discovered only after having fixed the faulty spacebar on the keyboard.

So I undertake the two hour round trip to return this machine. Note that this is why I do not purchase a windows box online, for this same reason: I have to check everything myself, since clearly nobody else thought it was their job to check it.

I did my homework up to this point: I have two machines lined up as alternatives in case they do not have an exact replacement. And sure enough, they do not. Okay, I tell myself, I am prepared for that.

So I start with he first one in the list. It takes them fifteen minutes to find it in the back while the kids wait in the car. So I go through and check it for everything I can think of, the battery, the keyboard. they comp me the ten dollars difference in price for my trouble.

As I walk out I realize the processor is not the same i3 the first had, it is a Pentium. That can’t be so bad, can it? One google search later reveals that the Pentium is very poor compared. What? After all that effort in making sure these people did their jobs, I still get it wrong.

 

Conversely, how about a Mac purchase? You need to know only two pieces of information: what form factor you need, and whether or not a little power is good enough or not. That is it. I can order it online because I know what I get will be correct the first time. Period.

A month ago I attended a local c# developer conference. Many people had Macs. Every one I asked said they just use them to boot Windows.

Out of all the manufacturers, it seems that the only contender on par with Apple is Samsung. And even they have six different laptop offerings.

What really confuses me is that a lot of people were expecting more from Apple’s WWDC address last week. Their stock price has been in free fall for months. Why? They clearly understand how to make solid hardware, not even opening the floodgates of the OS debate.

But in the same breath, I’ve been really annoyed at many of the hardware and software decisions Apple has been making lately. Xcode 4 is no better than Eclipse or Visual Studio. There is no 17″ MacBook Pro for my ailing eyesight.

So why isn’t anyone else trying this simplified hardware model in the Windows world?

 

A new machine purchase is something has to be lived with for at least a couple of years, let alone just one night. It’s clearly important. And yet it is still so complicated to decide the “right” one.

At that dinner, I handed the Pentium machine to Pete and had a grand old time. The machine seems to be working fine.

UFOs and the aliens that drive them

At one point in every coder's career, you will get that one requirement that you just don't understand why they would have such an inane requirement. Thanks to a good presentation, I can now close the book on the worst one of my career.

 

Once upon a time I worked at a place that wanted something better. They wanted reusable code. This was the early 2000's and we were coding in perl. This company was built on custom cgi servers written in c, and we used perl for all the admin/backend stuff. It worked for us. It was perfectly fine that they wanted something better. The catch was, they had no idea what "better" looked like. But I'm getting ahead of myself.

So they hire a java guy with a pretty certificate he propped on the windowsill behind some glass. This did not bother me. They told me, him, and our user interface artist to rebuild an existing administration website using a reusable object model. This bothered me – I had written the current site (in perl), and it worked.

Being a professional, I got down to business. Learned enough Java and the Tomcat environment to put an active website together. Listened to the new guy about designing the site in five "layers."

  • Presentation: the browser
  • UI: converts data to html for display
  • Business Logic: application specific decision logic
  • Data Access: intermediary to Database
  • Database: actual data store

And that's what we did. It worked, but only barely. It took far longer than just writing the app with the previous standard perl did. And the code was terrible. Most of it was very delicate, and in no way reusable. When the bosses wanted a new field, we had to literally edit ten different places to do it.

So we presented this project to the bosses. And what did they say? "We don't like it. Clean it up and do it all over again. You have a week."

At the beginning of that week, I thought it should not take long to clean it up. But as each day passed, the nights got later, and the goal got further and further away. The due day came, and we had absolutely nothing to show for it. At nine years in, already anything but a spring chicken, I had my first and only panic attack. I had never failed so utterly before or since.

 

Fast forward another decade. I'm regularly working with people who were children when I started coding. Makes me feel old. Along comes the Kansas City Developer Conference (http://kcdc.info). For two days, I go to every code design presentation that I could, barring one presentation about making good presentations. But I digress.

There it was: "Pragmatic Architecture in .Net," hosted by Cory House (http://www.bitnative.com). One presentation, just one hour, I am introduced to some things that answered every question about why that project failed so many years before.

In game development, typically the most abstract you get is MVC if you are lucky, spaghetti code if you are not so lucky. I've been hearing things like Service Oriented Architectures (SOA) for a few years along with a host of other acronyms. But as far as I could tell, they had no real bearing on game development. Finding simple explanations was fairly difficult, just from the plethora of acronyms available these days.

At the time it seemed unreal to have every layer need a separate declaration of the exact same block of data. Or why I should need a completely separate object just to run a SQL query that literally populated a flat datablock. Or how many places needed to be touched every time we wanted to add a single new data field.

Learning from past mistakes is something I care deeply about. For the first time, I could finally understand the fundamental principles they were asking me to implement on that job so many years ago. More importantly, I can now recognize the proper use of those principles. Were I to go back in time, I could have argued with the bosses much more convincingly: they were asking for a SOA design, yet their business needs were truly served better by the simpler Active Record approach.

 

Disclaimer: this post was not solicited in any way. For years I've been the fix-it guy for many projects and it's about time I started expounding so someone else might avoid making the mistakes I've seen. Therefore these writings are entirely self-serving because I don't want to be the one to fix it anymore!

I had *no* idea.

From Slashdot (http://entertainment.slashdot.org/article.pl?sid=09/05/25/132203)…

“Today, as every May 25th, geeks all over the world celebrate Towel Day and carry a towel in honor of Douglas Adams. The popular author of The Hitchhiker’s Guide to the Galaxy died in 2001 at the age of 49, but his work lives on. According to the book, a towel is about the most massively useful thing an interstellar hitchhiker can have. Hence its symbolic role in this celebration. This year, for the first time as far as we know, Towel Day is being supported by the British publisher of Adams’ books, who organizes a photo competition.”

Web searches – too much!

DNS is *not* the place to insert a search page, when an error occurs. There is a reason errors occur – to let the client computer know something is wrong. It is not simple to ‘guess’ that something is wrong since you idiots at Time warner cable and OpenDNS.org seem to think “oh, they must have typed something wrong.” No, I didn’t! And it shouldn’t be failing in the first place! It’s a perfectly valid lookup! Why your servers respond with fails for 3 out of 10 times for the same request is beyond my understanding!