Predictions for 2006

Post ImageWith the new year fast approaching, I thought it would be a good time for predictions. Not resolutions, but predictions. If you’d like to see some predictions from around the web, Alex Barnett has compiled a very interesting collection. Here are some of my predictions for the coming year, some specific and some more vague, in no particular order:

  1. Canada will win both the World Juniors Hockey Championship, and the gold medal in hockey at the Olympics.
  2. RIM will prevail in their legal troubles and will find success beyond the corporate market in 2006.
  3. The Indianapolis Colts will win the Superbowl.
  4. 2006 will finally be the year of Internet connected devices that make sense, are inexpensive, and are adopted widely. I am thinking of devices like digital cameras, little tablets for living room access, etc.
  5. Toyota will overtake General Motors as the world’s largest automaker, and GM shares will continue to plummet.
  6. Sony will launch the Playstation 3, but due to incredibly high prices, it will not match the success of it’s predecessor, nor the Xbox 360, except in Japan.
  7. The Ottawa Senators will win the Stanley Cup (at least I hope so, if Edmonton can’t).
  8. Windows Vista will RTM in September. Apple fans will claim too much is copied from OS X, and Linux fans will come out with roadmaps to copy all the functionality found in Vista.
  9. We’ll see a new Halo game (Halo 3 maybe) for the Xbox 360 sometime around November.
  10. iTunes and iPod will begin to lose their grip on the digital music market.
  11. Apple will successfully launch their Intel based machines and their market share will reach 6%.
  12. Michael Schumacher will win his 8th world drivers championship and then retire.
  13. A major security/antivirus/antispyware company will launch a lawsuit against Microsoft over Windows Vista, Windows OneCare, or other competing products.
  14. Movies, television shows, and other forms of video content will be sold in big numbers online in 2006, with almost every major content company taking part.
  15. Someone is going to buy TiVo before the year is over.
  16. The Liberals will once again win the upcoming Canadian election.
  17. It’s not really my prediction, but I agree with John Battelle who thinks Google will stumble in 2006.
  18. The Da Vinci Code will be in the top three movies at the boxoffice.
  19. The United States will invade Iran.

And in my final prediction, I am going to disagree with Jason Calacanis, who made the following prediction on December 27th:

12. No podcasting company will have any significant success in 2006, but a number of podcasters will be offered great jobs at Sirius and XM Radio.

I am going to predict that at least one company will be successful in 2006, and I fully intend to have Paramagnus be that company!

JavaSchools are not the problem

Post ImageJoel Spolsky is one of the most famous and respected software development commentators, so when he writes an article, it is usually a good idea to take notice. His latest article, The Perils of JavaSchools, was published today and is definitely worth reading. I think Joel makes some good points, but I don’t agree with his entire argument. I don’t think JavaSchools, as Joel describes them, are the problem.

First, Joel mentions that in the old days programmers chose C as their language of choice whereas now they choose Java. His first claim is that Java “is not, generally, a hard enough programming language that it can be used to discriminate between great programmers and mediocre programmers.” He goes on to say that pointers and recursion, two of the most difficult concepts to understand, are no longer taught in so called “weed out” courses.

The lucky kids of JavaSchools are never going to get weird segfaults trying to implement pointer-based hash tables. They’re never going to go stark, raving mad trying to pack things into bits. They’ll never have to get their head around how, in a purely functional program, the value of a variable never changes, and yet, it changes all the time! A paradox!

The first problem with this argument is that pointers are rarely required anymore, and functional programming just isn’t used much. Joel himself identifies both of these facts. He also mentions that to work on an operating system, you pretty much have to understand pointers. That’s the second problem – while that may be the case today, it probably will not always be the case!

I don’t think that a programmer has to learn a really hard language with really hard concepts to be a great programmer. I don’t think it matters much if someone is an expert at recursion and pointers, or if they are an expert at object oriented programming instead.

How is anyone supposed to learn anything if the curriculum has been carefully designed to make everything easier than it already is?

I don’t think that you need to learn the hard way in order to learn anything.

The fact is, things are getting easier than Joel makes them out to be. Managed code is quite a bit easier to write than traditional unmanaged code, but that doesn’t mean it is limited. There is already a research project at Microsoft to build an operating system using managed code (almost entirely). And we’re inching closer and closer to a time when efficient programming is more important than figuring out all of the different ways to solve a problem and then finding the fastest one, or the one that uses the least amount of memory, or separating them on some other heuristic. We’re going to need rapid application development to get things done quickly.

Consider manufacturing. Do you have to know how all of the little pieces work together in a widget in order to make a useful contribution to the team building that widget? What if the widget has wheels, do you need to completely understand the wheel? All of the angles, the way it works, the problems it may encounter? I would argue that the best way to make a useful contribution is to specialize in a particular part of that widget, or even better, the process of building part of the widget. We’d be able to build far more widgets, far more efficiently, if everyone specialized in something than having to understand everything.

Medicine works the same way. All doctors have to learn the same basic stuff, but then they specialize in a particular field. The difference with computing sciences is that we don’t yet know what that “same basic stuff” should be. Is it object oriented programming, or something else? Certainly the conventional wisdom is that you should learn OOP, and thus we teach Java. The “same basic stuff” has become Java, and I have no doubt it will change again in the future.

Second, Joel seems to suggest that the only good programmers are ones with lots and lots of education.

But what about the CS mission of CS departments? They’re not vocational schools! It shouldn’t be their job to train people to work in industry. That’s for community colleges and government retraining programs for displaced workers, they will tell you. They’re supposed to be giving students the fundamental tools to live their lives, not preparing them for their first weeks on the job. Right? Still.

I can’t understand why the professors on the curriculum committees at CS schools have allowed their programs to be dumbed down to the point where not only can’t they produce working programmers, they can’t even produce CS grad students who might get PhDs and compete for their jobs.

I agree that CS students really should learn to do some actual programming rather than just theorizing about it. I don’t agree though, that a good programmer should be defined by their level of education! I think what needs to happen is a separation of what we currently call “computing scientists.” Those with the PhD’s, and those who like to do the research and try and wrap their heads around weird concepts should be the computer scientists. Those who are trained as good programmers, able to solve problems and actually implement solutions should be computer engineers.

Take my school, for example. We have Computing Sciences and we have Computer Engineering – but the two do not match up to the two types of people I just described. Currently, Computing Sciences encompasses both computer scientists and computer engineers. That needs to change. There should be different curriculum for each.

Joel says:

I’m going back to ones and zeros.

That’s too bad, because Joel is a very smart guy and could probably make a difference in how we move forward. The problem is not with JavaSchools. The problem is that the same school is trying to teach two totally different types of people.

Read: Joel on Software

Birthday!

Today is my 22nd birthday, and although the Oilers lost (4-2), I did get some cool gifts like Wedding Crashers on DVD, and Call of Duty 2 for Xbox 360. I played the first two missions of COD2, and damn, what an amazing game! The graphics are awesome, the gameplay feels very realistic, and everything is fast and streamlined. Could be my favorite 360 game so far!

Virus disguised as MSN Messenger beta

Post ImageIf you’re like me and you don’t mind installing a beta or two to check out new software, you might want to be careful about trying to install a beta for MSN Messenger 8:

A virus masquerading as a new beta version of Microsoft’s MSN Messenger has begun circulating, antivirus company F-Secure said on its blog Tuesday.

The virus, which F-Secure calls Virkel.F, comes as a file called BETA8WEBINSTALL.EXE that can be downloaded from a Web site. Running the program installs not a new MSN Messenger beta, but rather a virus that sends download links to a computer user’s MSN Messenger buddies. The virus falsely labels the link as “MSN Messenger 8 Working BETA.”

Of course, the filename may be something different so don’t watch only for that one. Nothing like a good virus for the holidays, eh?

Read: CNET News.com

2005 – Year in Review

Post ImageThe year 2005 is almost over, so I thought it would be a good time to take a look back at the past year through the eyes of my blog. Here is a selection of some interesting posts on my blog from each of the last twelve months:

There you have it! There’s lots more “2005 in review” lists and posts out there. Here are some of the ones I found interesting:

Definitely check out that last link…it’ll keep you busy for a while!

New Feed Icon

Post ImageYou might have read lately that Microsoft and Mozilla have decided to standardize their icons for feeds on the one used in Firefox. The Microsoft RSS Team reported they would adopt the Firefox icon a couple weeks ago:

We’ll be using the icon in the IE7 command bar whenever a page has a feed associated with it, and we’ll also use it in other places in the browser whenever we need a visual to represent RSS and feeds.

The Outlook 12 team has announced they’ll be using the same icon. Great news!

I think it is great news indeed! A standard icon will go a long way towards making web feeds even more mainstream, especially since I would expect many other companies to now adopt the icon as well. I have added the icon to my website, which you’ll see on the black bar above, next to the web feed icon. I haven’t yet decided if I’ll get rid of the web feed icon or keep it. I guess the new icon is really the “web feed icon” now!

The new icon is a departure from the RSS or XML icons, which is very good. Here’s what I wrote in August:

There’s some really simple reasons that we should be calling them web feeds. When you ask your friend or co-worker about something on the Internet, do you talk about visiting an “HTML page” or a “web page”? Does your web browser (not “HTML page browser”) load up “HTML pages” or “web pages”? Clearly, you talk about web pages, and that’s what your browser loads. There are three very good reasons we use the term web pages…For the very same reasons, we should be using web feeds, not RSS feeds.

Now that the graphic no longer says “rss” or “xml” or any word or acronym at all, I think it will become much easier to adopt the name “web feed”. And yes, we still need a name you can say in words, just like Prince was still called Prince after he adopted an icon to represent himself!

Xbox 360 on HDTV

Post ImageMy brother gave me King Kong the game for Xbox 360 for Christmas, so we hooked it all up to my Dad’s high definition TV and tried it out. And then we played Halo 2 as well, just to see what it was like on the HDTV. Everything you might have heard about the Xbox 360 needing an HDTV, is pretty much true.

Xbox 360 on HDTV is HARDCORE!

The minute you turn the system on, you see the difference. Even the dashboard is much, much better looking on the HDTV. King Kong, while being a relatively dark game, was pretty intense. Even Halo 2 looks much better on the 360 with HDTV than a normal TV on either the 360 or original Xbox.

I really want an HDTV now!

Twelve Hours to Inuvik

Tom and I left Edmonton at 10 AM yesterday morning, as scheduled. We got to the airport relatively early, watched the sports news while we waited, and everything was going good. When we gave the people at the gate our boarding passes, we were told that our flight was “green stickered” for Inuvik, which meant that we were landing subject to weather. The last time my Mom flew, she had the same thing happen. In fifteen years of flying to and from Inuvik, I don’t ever recall a plane not being able to land.

We arrived in Yellowknife on time, the only stop between Edmonton and Inuvik, and we had to get off the plane. Tom seemed to think that was weird, saying usually we’re allowed to stay on the plane while they add some cargo and take some off, and get any new passengers. So we got off the plane, and it wasn’t very long before we were informed that our flight had been canceled due to poor weather in Inuvik. They told us the runway was in poor condition, and it was extremely foggy. Then we found out we’d be able to fly out of Yellowknife at 9:45 PM, almost 8 hours after we should have landed in Inuvik.

So Tom and I spent from noon yesterday until around 10:15 PM when the flight finally left in the Yellowknife airport, some pictures of which are here. You might think that’s not so bad, but with no Internet, only a few power outlets, no coffee shops or restaurants except for one that is mostly a bar, and absolutely no TV’s, people, or anything really, it was kind of dumb. Tom played FIFA 06 on his laptop while I tracked down open network ports and tried to get online. Throughout our time in the airport, we started to find out more and more about our canceled flight, from other people who came and went, and from my parents on the phone.

We were on First Air, and the other airline that flys to Inuvik is Canadian North. We found out that Canadian North landed in Inuvik at 2:30 PM, and hour later than scheduled, but only 15 minutes after our flight was supposed to land. So clearly, weather in Inuvik was not an issue. After we got to Inuvik at midnight, it became clear that First Air knew all along we wouldn’t be landing in the afternoon, and the weather excuse was exactly that, an excuse. Needless to say, I was not amused.

Anyway, I am in Inuvik now, finally. I don’t remember it being so dry here, but I keep shocking myself everywhere! There is so much snow it’s insane. Not as cold as it could be, but still cold. I haven’t really been anywhere in town yet, but already I have seen so much different. Lots of new hotels for the pipeline project. In fact, there are about 350 hotels room in a town of only 3000 people – insanity. More later!

Off to Inuvik

Tom and I are sitting in the Edmonton Airport, getting ready for our flight to Inuvik which leaves just after 10 AM. There are two wireless networks here, one costs money and one is free. Makes you wonder why they have the paid one!

I will be in Inuvik until January 2nd, so the best way to get a hold of me will be with email, but you can also look for me on MSN using my “other” account – mack@mastermaq.ca. I’ll be posting normally too, so feel free to leave a comment 😉

Happy Holidays!