Blog Entries
I will start by saying, Doctor Horrible is great. It’s a story about an evil genius, Doctor Horrible, and his arch-nemesis, Captain Hammer (what a great name). Written by the amazing Joss Whedon and starring NPH who plays the Doctor and Nathan Fillion as Captain Hammer. The writing is typical Whedon: witty, sarcastic, and instantly enjoyable. I really see this project becoming a huge phenomenon.
However, those of you who’d like to catch it online will probably have little luck unless you’re an iTunes customer and willing to pony up. Looks like someone behind the project wants to make sure you can only watch it “under the sheets at night when no one is around.” They are streaming each show for a limited time off their VERY limited servers. The international launch came this morning and within a few hours the site has been unavailable. Without any mirrors or any other Internet love, the streaming scheme is proving to be less than savoury. Expect that the next two episodes will be completely unavailable the moment they’re released.
The official b-line from the crew is to buy it from iTunes of course. That or wait until the servers come back up. This is of course, unlikely to happen any time soon and people want it NOW. They really missed the mark on this one IMO. Only North American customers of iTunes are able to see it if they’re willing to pay — of course this means one must be either a Windows or Mac user with iTunes installed. How corporate.
I really hope they show some love for their fans. If you’re going to do an Internet project, do it right. The Internet isn’t about managing scarcity and controlling content. Stick to TV if that’s what you’re going for. It’s really disappointing to see these media companies trying to be progressive but fail miserably because of their ultra-conservative and narrow-minded views. Stop being so exclusionary and let the fans have at it already.
Being a loyal Whedon fan, it’s seeing things like this that really tempt to put me off.
It’s almost official — I’m going to Japan! The only thing that is close to getting in the way is my passport. What should have been a relatively easy task has become a rather difficult endeavor, but I hope to resolve it soon. I’m assured that if I really needed to, I could pay the government a little “kick in the ass” fee to get them to process my documents faster. I’m not too worried though; I’m already way too excited!
I’m planning to go for a couple weeks in July. I’m going to stay at a ryokan in the heart of Tokyo. It’s sort of a traditional Japanese style inn with straw tatami floors and futon mats! Hopefully I’ll be there in time to catch the Fuji Rock festival, the pride parade, and have enough time to soak it all in. Two weeks is probably not long enough to get a real feel for a place, but it’ll have to do.
I’ll be sure to blog my experience. I’ll post the details on where to follow my adventures here soon.
Until then.. counting down the days.
Update!
My travel site just went up! Check out jimgoestojapan.com to follow my exploits and see lots of cool photos and videos I will be posting. 21 more days!
If you haven’t figured it out already, making video games is hard work. It’s a multi-disciplinary act of creation requiring skills in programming, mathematics, art, animation, game theory, sound design, and music. That amount of work required to produce a game is directly congruent to the amount of ambition for the game in question. Think Spore is going to be a good game? Think it took too long to be released?
Here’s a challenge that might put things in perspective and change your mind: try making a game.
I’m not suggesting going out and making your own Spore. I couldn’t do that on my own and no mere mortal could either without investing their entire lives to the effort. I am suggesting you start with something relatively small like a Donkey Kong or Frogger clone. Building your own game might help you to appreciate someone else’s a little more.
Once you have gained your new found appreciation for the amount of work required to develop a video game, you might start to reconsider “pirating” games. After all, if some of those bigger-budget games required the labour of dozens or even hundreds of people; the company that spent all that money producing it probably needs to make some of that money back in profits to pay those people. Suddenly “pirating” games seems a little… cheap.
However, there is still a big problem with the gaming industry. First off, the budgets are astronomical. In turn this makes the prices astronomical. Which leads to more people choosing the thriftier option. This makes the margins at the game companies shrink. It becomes a vicious circle. Piracy is just a symptom of this circle, and hopefully we’ll all find a way to fix it.
I think digital distribution is one step in the right direction. Trimming those budgets in order to trim those prices would probably help too. Finally, if gamers were more sympathetic, they might think about shelling out in order to support game developers. Digital distribution helps the industry because it cuts the cost of stocking shelves and is able to satisfy the urge for immediate gratification from gamers.
While it may be crazy to expect to throw down a hundred bucks for every new release that comes out, I hope that you consider at least paying for a few of those games. It’s not crazy to pirate a game; but if you can afford it you, you should probably buy it instead. After all, a lot of work went into your enjoyment (unless of course it was a rubbish game and you want your money back…
)
Disclaimer:
I might someday finish one of the many games I am working on and decide that one of them might be good enough to charge for. So this post might have sounded a little biased. Sorry about that, but it’s just how I feel.
Also in the sake of disclosure; I have pirated games before, but I’ve also paid for a tonne of them too. It’s hard on the wallet these days, but it’s still worth it for those special ones.
Luddites, radical politicos, and the self-righteous be damned — we need to colonize Mars. Yes, we are extincting species left and right with the way we have been handling things on Earth. More importantly, we’re not far from being next on the list. Whoever thinks it is our duty to protect the Earth is in a dire need of a reality check — just ask George Carlin.
We are about as significant to Earth as the bacteria that might or might not be surviving on Mars. In Earth’s four-billion year history it has suffered far worse blights than the human race. Life here has lived on through mass-extinctions on scales we can’t even comprehend. The fact that we’re here is a complete and random accident (though wonderful and very interesting). Who’s to say that one day another life form won’t rise up out of the biosphere and annihilate us without thinking? We’re talking about survival here. The bacteria on Mars may get the short end of the stick, but guess who’s the bigger, badder species?
Warren Ellis makes a point. We need to go to Mars. We’re going to need more space to continue to grow. It’s time we stop thinking about it as fantasy and make it a reality. There was a time after all when the Earth was flat.
Far be it from me to predict the death of PHP, arguably one of the most popular languages for building web applications. It is practically guaranteed to be installed on any web host imaginable, is well documented online, and has a strong following of developers. Such factors would normally ensure the continued long life of a language. However, PHP is now officially way behind the curve and is risking becoming obsolete.
IBM Developer Works recently previewed the new features in PHP 6.0. Chiefly among them is the late introduction of name spaces. A fundamental OO feature, name spaces protect software developers from the trouble of co-ordinating the names of objects and variables in the software they develop together. The concept has been around since the late 1960’s and is present in every respectable language. Without it, managing large software projects becomes very difficult and aggravating.
Consider the following example code:
<?php
// I'm not sure why I would implement my own XMLWriter, but at least
// the name of this one won't collide with the one built in to PHP
namespace NathanAGood;
class XMLWriter
{
// Implementation here...
}
$writer = new NathanAGood::XMLWriter();
?>
The grammar and syntax used is essentially lifted straight from Perl 4! It uses a keyword and argument to define a name space. It then uses the double-colon syntax for referencing names within the space (ie: “NathanAGood::XMLWriter()”). The only major difference is the keyword (Perl uses the “package” keyword). Other differences may surface in the implementation, but superficially it appears the same.
The reason why I am claiming the death of PHP is that it is introducing very fundamental language features many years behind the competition. In the technology world, you can get away with being a few months behind or maybe a year at most. However, it’s 2008 and PHP is only now introducing name spaces. I might have stayed with the development of PHP had it been baked with name spaces from the onset. It’s too late to be thinking about this stuff now when it is so common place and robust else where. PHP as a language still has a long way to go. The only thing keeping it going may simply be the footholds it has managed to entrench itself in. Only time will tell how long it can hold on.
GoboLinux is a modular Linux distribution: it organizes the programs in your system in a new, logical way. Instead of having parts of a program thrown at /usr/bin, other parts at /etc and yet more parts thrown at /usr/share/something/or/another, each program gets its own directory tree, keeping them all neatly separated and allowing you to see everything that’s installed in the system and which files belong to which programs in a simple and obvious way.
After reading the overview of GoboLinux, I decided immediately that I had to check it out. The rare people who’ve seen my home path know that I am a stickler for organization. I keep it organized and linked in such a way as to make it intuitive for myself and my backup scripts. I rarely every have use for a desktop search tool because of this — a few shell scripts and common unix tools are all I need. Needless to say, while I understand the Linux file-system hierarchy; it leaves something to be desired from my obsessive tendencies. That’s what made GoboLinux so appealing. Its organization and design philosophy mirrored my own greatly, and it wasn’t such a radical departure that I wouldn’t be able to run my favorite programs — the whole file-system is backwards compatible with the traditional Linux layout. Perfect.
So I created a new partition and installed Gobo… the experience was hopeful, but it wasn’t the dream I was hoping for.
One thing still lacks with Gobo: hardware support. It only gives you the bare essentials and expects you to take it from there. That means configuring your own network interfaces, wireless devices, video cards, and so forth. Each piece will require you to at least edit some configuration files, boot scripts, and start services manually. Essentially, stuff that we’ve been too spoiled to do with most modern distributions.
However, Gobo is still a very young project. Its development community is very small. However, it is growing. There is a lot of heated debate over its file system structure. I side with the developers however; I think their design will prove to be robust and useful in the long run. It just needs time and commitment from more talented people to bring it to that level where it can compete with the likes of Ubuntu, Mandriva, and the like.
Unfortunately, I have neither the time or patience to deal with the lacking hardware support. I think I will be sticking with Ubuntu for now. I hope that perhaps in time Ubuntu will see the merits of the Gobo file system design and make it an optional layout for interested users. Until Gobo matures, it’s Ubuntu for me — quirks, nuisances, and all.
I still use Ubuntu on my laptop. Over the years it has become a slight bit of a mess. Libraries, tools, and programs I’ve installed but no longer use are cluttering up my system, prompting me to run
apt-get autoremove
rather frequently. Tangles of dependencies all over the place. This has been a bit of a headache for me in the latest distribution update.
Distribution upgrades always tend to be a pain. Almost without fail there will be one or more libraries or packages that will require some out-of-date package to be installed. The missing package of course will have been removed or deprecated in the repositories. This leads to manual compiles or hack-ish work-arounds that may break at the next update. The casual user may never actually encounter such problems (hopefully); but for developers who may have hundreds of disparate libraries running amok on their system, distribution upgrades become something to dread.
My recent adventure was with Hardy Heron. I decided to wait out the rush and do the upgrade a couple weeks after launch. During the first week or so, Canonical’s servers and mirrors are hit pretty hard, making package downloads slow to a crawl. Distribution upgrades can be hundreds (if not thousands) of megabytes in size, so be prepared to wait a while if you try to update right away.
The upgrade this time wasn’t nearly as tragic as some have been in the past. When I upgraded to Dapper, I had nearly lost all of my files and had to reconfigure and reinstall the entire system from CD. Gutsy went a little smoother. Heron was even more smooth; but it is still not painless. While I didn’t have to reinstall the entire OS from the CD this time or restore my personal configurations from backups, I did have to deal with a lot more dependency issues (which may or may not have to do with the fact that Heron is an LTS release).
My biggest gripe was Firefox. They switched it out from under our feet for the latest beta build of Firefox 3. Almost none of my extensions and plugins worked right out of the box. I am horrendously addicted to my extensions and cannot fathom using Firefox without them — in my experience, my customized Firefox IS Firefox and nothing else will substitute.
The solution in the end was to backup my bookmarks and wipe out my profile. I then had to install Firefox 2 from the repositories, re-install all my extensions, restore my bookmarks, de-select Firefox 3, and update my toolbar shortcuts. Not a big deal, but a major pain in the ass.
Lastly, dependency issues. The distribution swapped out X11 for a newer version instead of keeping the older ones and allow users to upgrade. This cause some haskell graphics packages to whine and complain, prompting me to use a hack-ish workaround until the maintainers fix the package. A few other libraries were also affected by version replacements all around — which could be expected; but really shouldn’t have to be, even for developers. It’s easy enough to work around, but it’s still a pain.
Overall however, Heron seems to be a fairly decent upgrade. I like Tracker and its continued integration, better bluetooth apps, and am looking forward to see if any updates have been done to Network Manager (which has, in my opinion, been the worst Gnome application in existence). I recommend the upgrade, just be wary for the tricks and switches.
I recently upgraded my Wordpress install to the latest version. Sadly it’s one of those things that has taken me a while — Wordpress tends to be one of those things I install and forget about. I suspect that’s how most casual Wordpress users feel. The upgrade itself was painless for someone of my technical acumen and I suspect that is the reason why most people avoid it. Far be it from me to gloat, but this is still a difficult process. Despite that, I am rather happy with the upgrade.
Firstly, as everyone has been talking about for some time, the new administration interface is beautiful. The colour-scheme has been updated, the layout has been re-arranged, and most pages have gotten a touch of the accessibility bug. I’m really impressed with the thoughtfulness that has gone into the alterations to the post page and plugin management pages. The additional features integrate seamlessly into the work-flow. It’s really quite an achievement.
One thing of concern to me is the addition of tags; a feature that has been long addressed with plugins. I use one such plugin to add Technorati tags to to my posts. In the meantime I intend to continue to use said plugin. If I decide to switch over to the built-in Wordpress tag system I will be faced with the problem of extracting the old tags from my posts and re-saving them in the new system. Although I appreciate the new feature, I’m curious how other people have felt about it. The tag-void has been filled so long now, adding the feature is more of a pain in the ass than a benefit I imagine.
Overall, I think I will be pleased with the latest version. The only drawback is still the upgrade process; but at this point it should be incredibly easy to include a script that can do it automatically. Hopefully someone on the Wordpress team will take a crack at it and include the script in a future release. Until then, if you are capable, I do recommend upgrading your Wordpress right away. It’s really worth it.
My previous post on Google App Engine looked more at the hosting model of the product. I touched lightly on some technical considerations and tried to avoid getting too detailed. Unfortunately, I didn’t get my invite to be one of the first 10 000 testers and therefore couldn’t really do an in-depth review beyond the superficial stuff that anyone can read about already anyway.
Niall Kennedy however, got right into it and gives us the details. His review is succinct and to the point. Just the meat and potatoes that us developers are looking for. I was actually rather surprised about some of the quota and resource limitations he reviewed in the later parts of the article.
Google App Engine is still in early stages — but is this it? It does seem to lack some rather important features common to more traditional web hosting providers; key libraries such as PIL are not available as SSL are not either. We’ll have to wait and see how it pans out to answer such questions regarding viability. So far, the verdict seems to be that most developers won’t trust it to run production-scale applications and would prefer to use it for prototyping or small throw-away applications.

Ever try to manually stitch together a series of photos into a gorgeous panorama? Ever try to use some software to assist you in the process? It turns out that creating panoramas from stitched together images is a more difficult problem than one may realize. Camera orientation, shutter settings, exposures, light levels — all of these factors can really change from shot to shot, making the process difficult and desired results elusive.
Autostitch can take away all of those concerns. It’s a fully automated process for stitching together photos into panoramas. It can take any series of photos; even photos that aren’t part of the panorama. It then automatically positions and blends the photos together without any human intervention. It’s really quite amazing.
Autostitch is based on two years of research by M. Browne and D.G. Lowe; both researchers at the University of British Columbia. Thankfully, they’ve published the results of their work for the world to review and learn from (pdf). Their hard work is marvelous.
I’m personally really excited about it. When a friend of mine showed it to me recently, I found myself awestruck and dead to the world as my brain rushed to figure out how it works. I’ve been really interested in graphics, visualization, and pattern recognition since I started my new job. Seeing the Autostitch program at work had really inspired me.
Thankfully, I’ve been given the go ahead at Digisphere to work on my own adaption of their recognition techniques. I had been challenged by a colleague to propose how I’d solve the problem myself without looking up any solutions. I went with my first rough estimate and after reading the Browne and Lowe paper, it turns out I was pretty close. There are still a few things I don’t understand that they only make reference to (geometry recognition in photos), but I figure I can try and wing it by heading down to my local library. I’m really stoked by the problem and now its an official side-project at work. Awesome!





