Monday, August 25, 2008

Teaching programming

It occurred to me that I've never blogged about my work, so why don't I start...

My thesis work is centered around the use of a visual programming environment (VPE) to teach students new to computer programming how to construct software. This isn't a new idea of course, others have done so (Alice, Squeak, etc), however use of a VPE based upon the functional programming paradigm in educational settings is rather uncommon. The VPE I'm using is known as the Gem Cutter, which is a part of the OpenQuark framework originally developed at Business Objects.

To give a bit of background: OpenQuark is a framework which consists of a language called CAL which is a very Haskell-like language which compiles down to Java bytecode, and thus is interoperable with existing Java code. The Gem Cutter is a VPE which is built upon the CAL language (that is, all components or gems in the Gem Cutter correspond to CAL functions, or imported Java routines). Much more info can be found on the Wikipedia page on CAL and Quark, as well as the main homepage. It is similar in some ways to the Scala programming language, although Scala is intended as a language by itself (and compiles down to Java bytecode) whereas CAL is intended as a way to bring the functional paradigm to Java.

The reason that I find the Gem Cutter interesting is because typically I've found VPE's counterintuitive, not particularly useful, or "dumbed-down". For example, I've always found Alice a bit hard to take seriously (to be fair it has been designed to be friendly to younger audiences) due to the emphasis on kid-like "toy" animations rather than general programming constructs.

The Gem Cutter OTOH is a tool designed for and made by professional software developers working at a major software company. In particular, the functional paradigm seems particularly well suited to this, as (like dataflow programming) it has a natural visual mapping of having functions (or "gems" in Gem Cutter terminology) composed together with outputs of one feeding into the inputs (or arguments) to another. So rather than seemingly bending the paradigm to fit the visual model, it seems to be a much more natural fit.

Now you're probably thinking I'm overselling Gem Cutter, and I am. There are warts on it. Numerous times while working with it I've run into bugs, or "gotchas". Part of my thesis will be the exposition of these issues from the perspective of one trying to use the tool in a learning environment. Having said that however, it really is a cool piece of software to play around with, and in particular if you're a Java developer who's ever had the desire to pass around higher order functions then I highly recommend checking it all out. And more imporantly, it's all open source released under a BSD-like license so you can do pretty well whatever you want with it.

Firefox 3.0 revision 2 (or okay it's growing on me)

Well, I was somewhat critical of the newest version of Firefox before, but I'd have to say that it really is growing on me. The fact that my extensions including the two "cannot live without" ones (Session Manager and All in One Gestures) have now been made to be FF 3.0 compatible.

I still haven't run into any real technical issues, although in spite of claims about improved memory usage, FF is still a pig when it comes to using memory (as I write this on my Windows XP machine it reports ~128MB of memory usage with 7 tabs open). Occasionally I get CPU usage spikes, but they're thankfully quite rare.

All-in-all it is working well.

Monday, August 4, 2008

My streak is now done....

Well, I was on quite a roll this year, keeping a (I think) pretty impressive achievement streak going, but alas, as the cliche goes, all good things must come to an end. I'm currently away from home in the Kooteneys doing a combination of work and visiting family. I brought a 360 with me, but after the 9+ hour drive yesterday I didn't find the time to get any gaming in and as a result my 216 day achievement streak came to an end.

I really gotta tip my hat to people like Knuckles Dawson who did close to 2 solid years getting at least one achievement a day. That's incredible perseverance.

Oh well, maybe now I'll get that masters degree finished. :p

Some stats about my streak:
  • Length: 216 days (Dec 31, 2007 to Aug 2, 2008)
  • Total Gamerscore gained: 33,808
  • Total Number of achievements: 1,475
  • Number of Games 100% Completed during the streak: 23 (20 retail and 3 arcade)
And for the record, during my streak I also was doing full time studies at the University of Victoria working on my masters degree. I'm also married, to a wonderful woman who for some strange reason didn't divorce me even though I spent many an evening cursing at pixelated bad guys on the TV. I also taught in the months January to April. So yes, I did have a life while doing this.

Monday, June 23, 2008

Firefox 3.0

So, those of you who read this and know me will know I'm a fairly strong supporter of the Foxy web browser known as Firefox. This past week Mozilla released version 3.0 of Firefox, and I wanted to share some thoughts.

It wasn't a good start: upon installation 6/16 of my extensions (including 2 absolutely "cannot live without" ones) weren't compatible. The new address-bar is interesting, but I'm wondering where it pulls data from, as upon installation it knew I liked achievement sites, and yet I have my history disabled. As a privacy nut, I have concerns about what's being stored, and what isn't (if I say don't remember any history, it shouldn't remember anything about where I've been).

Haven't had any problems with speed/performance at all. Some have raved about how smooth the page scrolling is, but it looks the same to me as any other version. Memory usage seems to be slightly better, although it's WAY to early to say for sure (and to be honest, the mem usage problems of FF are somewhat exaggerated).

Haven't decided yet if I'll go back or not, but my initial impressions are not good. Admittedly though, I'm tough to please, most people will be completely tickled with this version. I just don't see any reason to stick with v3, but a lot of reasons not to. Perhaps if my "must-have" extensions become compatible then I might be more inclined to stick with v3, but given that there are extensions which aren't even v2 compatible that I really love and that have made me want to stay with v1.5.x on most of my machines I won't hold my breath.

Now for the rant:

I've been with FF since pre-version 1.0. It's amusing to me to look at its evolution as it started out as a lean no-frills browser that was supposed to be for the hardcore crowd. The idea being that if you didn't want a feature, you wouldn't have to have it, and if you did want a feature, that's where extensions came in. Now, it seems that feature-bloat has occurred with it, as with each version comes new advanced features that I don't really want, but are added from a marketing POV (so that when tech blogs & such can do those side-by-side comparisons of FF vs IE it doesn't look one-sided). I want the old FF back, where the goal is to create a minimal platform where extensions provide the functionality. If that were the case, then one of the big goals would be extension compatibility. One of the problems for me with FF is that I don't really care for the browser, but love the extensions, and as such I become very dependent upon them. The problem though is that every time a new version of FF comes out, half the extensions I use are no longer compatible (it's one of the reasons I still use v1.5.x on most of my machines). For me, that's a showstopping problem, and I'm not convinced the FF devs realize how much of an issue it is. I find myself now in a position on this machine where I either A) have to live without functionality I've become used to, or B) go through the pain-in-the-ass process of uninstalling v3 and reinstalling an older version along with all my extensions. That's not the kind of situation that is going to win support and/or adoption of the browser from the masses. One of the big criticisms of Microsoft is that they force features down your throat that you simply don't want. Now we see the same thing happening with the Mozilla team with Firefox, and the hacker in me can't help but feel his heart hurt a bit at that realization. I'm not going to go all hippie-ish and say that they "sold out", but there is a greater sense that there's less of a difference between FF and IE now (security issues aside) than there used to be.

Thursday, May 22, 2008

I should quit now, but only one round to go (round 4 predictions)

Okay, admittedly my predictions this year have been less than stellar, but only one more series to go:

Detroit vs Pittsburgh - Tough series, both teams are on huge rolls right now. Both are looking extremely impressive, and both have been dominating the competition thus far. They match up very well too, both have great offense, solid goaltending, and solid defence. I'd give the slight edge in defence to Detroit, and the slight edge in offense to Pittsburgh, and goaltending I'd say they're about equal (Osgood has been much better than his stats indicate, and Fleury hasn't quite been as spectacular as his stats would indicate). Tough series to call, but I'll give the edge to the Wings for two reasons: home ice and experience. My prediction: Detroit in 6.

Tuesday, May 6, 2008

Round 3 predictions

I don't even want to think about my round 2 results (LOL), so I'm going straight to round 3 predictions. Hopefully I'll do better (I suppose I couldn't do any worse....)

Eastern Conference

Pittsburgh Penguins vs Philadelphia Flyers - Interesting matchup. So far the Pens have absolutely dominated the competition, whereas the Flyers barely squeaked by the Caps, and then had a relatively easy go against the suddenly inconsistent Habs. This will be a much different test for Pittsburgh, as neither Ottawa nor New York had anywhere near the physical presence or defensive mindset of the Flyers. As well, Biron is simply playing outstanding. Really tough one to call, but I can't see the Pens completely falling apart given their outstanding start. My prediction: Pittsburgh in 6.

Western Conference

Detroit Red Wings vs Dallas Stars - Holy crap is Marty Turco a goaltending god or what? I watched all 4 OT periods of that last Sharks/Stars game and he was simply amazing. Looking extremely calm and confident right now. The team playing in front of him looks pretty good too, they looked a bit shaky at times vs the Sharks, but managed to persevere and come through. Detroit OTOH completely obliterated Colorado in round 2, and is simply on a roll right now. Really close matchup, in many ways this matchup was destined to happen -- the two teams were #1 and #2 in the Western conference for a good chunk of the season until Dallas slipped a bit in the later going. Flip a coin, but I really like Dallas's experience, and even though Osgood is playing about as well as he ever has, there's no doubt which team has the better 'tender. My prediction: Dallas in 6.

Wednesday, April 23, 2008

Xbox Live Orientation

Came across this while watching the latest Sessler's Soapbox. It's a funny vid of a hypothetical Xbox Live Orienation, and it's gets everything just about completely bang on.

http://www.g4tv.com/xplay/videos/21418/Xbox_Live_Orientation.html

Round 2 - My wife's predictions

My wife's turn:

Eastern Conference

Detroit vs Colorado - Colorado in 6
San Jose vs Dallas - Sharks in 6

Western Conference

Pittsburgh vs New York - Pittsburgh in 6
Montreal vs Philly - Montreal in 7

Round 2 Predictions

Okay, now that round 1 is over and it's already official I won't do as well this year as last year (I was wrong with only 1 series in all of last year's playoffs), it's time to move on to round 2. Here's my pics:

Eastern Conference

Montreal vs Philadelphia - I watched a good chunk of the Flyers/Caps series, and in particular that game 7 in which the Capitals were flat out robbed by some absolutely horrible officiating. The Flyers were clearly outplayed by a younger, more enthusiastic Capitals team, but found themselves on the winning side of the series due more to luck than anything else (IMHO). And that was against an (at-best) average Capitals team. Montreal looked rock solid in all but 2 of the games against Boston (the execptions being #5 and #6 where they really looked tentative). They're young, but unlike the Capitals they are a much more complete team, and are coming off of a very strong performance in game 7 against Boston. I don't think this one's even going to be close. If there's a sweep in round 2, this will be it. My prediction: Montreal in 4.

Pittsburgh vs New York - Wow, how about that Malkin guy eh? Sidney who? ;) Okay okay, maybe that's a bit of an exaggeration, but right now the Pens look like the team to beat in the East. Everybody knew the offense would be there, but Fleury looked absolutely rock-solid in net and goaltending was the biggest question mark about this team going into the post-season. If Fleury can keep it up, the Pens could very easily go all the way this year. New York played very well against a completely flat New Jersey team, but they are an aging team, and I don't think they have the depth, enthusiasm, or determination to get past the Pens. My prediction: Pittsburgh in 6.

Western Conference

Detroit vs Colorado - DING! Fight! This should be the best series of round 2. These two teams have history going back a long ways, and it's the first time they've met in the post-season in a long time. A lot of people are looking at Detroit as the clear favourite, but I actually think this series is quite close. Colorado looked very good disposing of Minnesota, and Detroit looked quite shaky at times vs Nashville. This one may very well come down to goaltending, and I don't think there's any question that the Avs have the edge in that regard. Should be close, but my prediction: Colorado in 7.

San Jose vs Dallas - This one's also pretty tough to call. San Jose looked very vulnerable against a gritty Calgary team in round 1, and Joe Thornton played well in game 7, but was almost invisible for the rest of the series. Dallas on the other hand surprised many with their "upset" of the defending Stanley Cup champs. Really close series, but San Jose is still my pick to go all the way. My prediction: San Jose in 7.

Round 1 - Comparison With TSN

Another thing I commonly do is compare my predictions with those of the "experts" at TSN. For those unfamiliar, they have a panel of hockey people who make predictions along with a monkey who spins a wheel to randomly pick a winner for a series. What's interesting is that oftentimes the monkey does better than the experts. :)

The picks from the people at TSN for this year can be found here.

So how did I do? Here's the breakdown:

Bob McKenzie 6-2
Mike Milbury 5-3
Darren Pang 5-3
James Duthie 5-3
Maggie the Monkey 5-3
Adam "Pedle Zelnip" 5-3
My wife 2-6

So basically I was about the same as the people at TSN. Here's hoping I can improve in round #2.

Round 1 Results

Okay, round 1 is now over, time to summarize.

Also as well, I didn't mention this in the blog post relating to my initial predictions, but every year my wife and I compete to see who has the better predictions. To resolve this argument we needed some sort of quantifiable, mathematical evaluation scheme. In the past what we've done is we awarded 1 point for predicting the correct winner of a series, and another point for predicting the correct number of games. Thus each series was worth a maximum of 2 points.

However, this year we're changing the formula, now predicting the winner is 2 points, and predicting the correct number of games is 1 point, for a total of 3 possible per series.

So, how does this play out with this year's round 1? Well, I had two perfect predictions (Colorado in 6 and San Jose in 7), and 3 where I predicted the correct winner (but not the correct number of games) so I have:

2 x 3 + 3 * 2 = 12 points

She had two perfect predictions (Colorado in 6 and Montreal in 7), and 4 where she predicted the correct number of games (but not the winner), so she has:

2 x 3 + 4 x 1 = 10 points

So yes, that's right, I'm currently whooping her. :)

Wednesday, April 9, 2008

My wife's turn....

And here's her predictions for this year's NHL playoffs:

Eastern Conference
Ottawa vs Pittsburgh - Ottawa in 6
New Jersey vs New York - New Jersey in 5
Washington vs Philadelphia - Washington in 7
Montreal vs Boston - Montreal in 7

Western Conference
San Jose vs Calgary - Calgary in 7
Anaheim vs Dallas - Anaheim in 6
Detroit vs Nashville - Nashville in 7 (HA HA!)
Minnesota vs Colorado - Colorado in 6

Monday, April 7, 2008

And the playoffs are here....

So, as per usual, it's about time for me to make my predictions about the 2K8 version of the NHL playoffs. Will I be able to repeat my 14 correct predictions out of 15 performance from a year ago? Let's find out:

Western Conference

Detroit Red Wings vs Nashville Predators - for me, this is the only series in this years playoffs where there is a clear, definite favourite. If Nashville wins this, pigs will fly, hell will get frosty and I'll give up my Xbox (okay, maybe not....). My prediction: Detroit in 5.

San Jose Sharks vs Calgary Flames - SJ is my pick to win it all this year (although I've been saying that for the last 2 or 3 years....). They are a rock solid team, with lots of post-season experience, and should be desperate for some success. It's a shame Calgary ends up meeting these guys in the first round as I think if they had ended up playing Minnesota in the first round they would've done quite well. This one should be fairly hard faught, and I don't think an upset here would be all that surprising (Kipper, Iginla and Phaneuf could easily cause some real headaches for the Sharks) but my prediction: San Jose in 7.

Minnesota Wild vs Colorado Avalanche - The Wild are the only team in the west with home ice advantage who I think are also favoured to lose. The Avs really stacked up at the deadline, played very well down the stretch, have a tradition of post season success, and Theodore is actually starting to look like the MVP from Montreal again. This one shouldn't be too much of a battle. My prediction: Colorado in 6.

Anaheim Ducks vs Dallas Stars - Funny how if these two teams would've met 4 months ago people would've picked the Stars hands down, but now the tables have turned somewhat. Dallas more-or-less limped into the post season, whereas Anaheim really started to pick things up and look like defending champs as the season wore on. The Ducks are largely the same team that one it all last year with the punishing defense and tenacious forwards, so my money's on them for this series. My prediction: Anaheim in 4.

Eastern Conference

Montreal Canadiens vs Boston Bruins - ahhh yes, the classic Habs/B's rivalry renewed. The Habs were this years Cinderella story, achieving far higher than anyone expected. Having said that, I still don't think they have what it takes to go deep, and they're still a very young and relatively inexperienced team (particularly in goal). However, I do think they'll have a lot of enthusiasm for the first round, and the Montreal fans will most definitely be a boost (it's been a long time since fans in Hab-land could feel as though their team is a favourite). Should be a good series either way, but my prediction: Montreal in 6.

Pittsburgh Penguins vs Ottawa Senators - Wow, how about these Pens? A lot of people thought they'd improve over last year as all those young stars matured, but I don't think too many people thought they'd be the #2 seed in the east (narrowly missing the #1 spot). And that was with their biggest star player in Crosby injured for much of the stretch. This is a fun team to watch with an insane amount of depth up-front. Goaltending is still a question mark, as is the defence and leadership. Ottawa went all the way to the final round last season, and at times this season had some of that form, but this still doesn't look like they are a cohesive unit right now, and the injury to Alfredsson is huge. I hate to say it as if it's true heads will roll in the nation's capital during the off-season, but my prediction: Pittsburgh in 5.

Washington Captials vs Philadelphia Flyers - As surprising as the Pens were this season, I don't think anyone would disagree that the Caps were an even greater surprise. Just a few weeks ago it didn't look like they'd make the playoffs and now they're the #3 seed. Ovechkin is coming off of a possibly Hart-like season (in addition to Rocket Richard and Art Ross trophies) and this will be his first taste of post-season play. Philly on the other hand just doesn't look like a team to me, but rather a collection of off-season free-agents that at times looked great and at other times looked completely mediocre. I don't think they'll go far after this round, but my money's on the Caps for this one. My prediction: Washington in 6.

New Jersey Devils vs New York Rangers - This should be a great battle, as these two teams are great rivals. Brodeur is coming off of yet another Vezina like season, and for much of the year the Devils looked like the team to beat in the east. New York should make this one interesting, but I don't see them getting past the Devils. My prediction: New Jersey in 7.

And there you have it. Usually what happens as well is my wife makes her predictions and we have a friendly little competition to see who ends up doing a better job of predicting the playoffs so I'll post her predictions once she gives them to me.

At any rate, even though my boys (the Canucks) aren't there this year, I'm really looking forward to the playoffs this year. As mentioned earlier San Jose is my pick for the west and to win it all. The east is much tougher to call, so much parity in the Eastern Conference and moreover a lot of the high seeds are teams that are new to being high seeds. If push came to shove at this point I'd pick the Devils in the East, but I could just as easily see Crosby going on a tear and taking the Pens to the finals. Stay tuned....