Something that caught me by surprise was the release of libbdplus which happened almost exactly one year ago. This filled a gap in the free software community that had been open since 2007 when the first BD+ discs came out.
The story here is that Bluray discs won the format war against HD-DVD because they don't just encrypt their files with AACS. They include a diabolical piece of self-modifying code called BD+ which gained an early reputation for thwarting decryption efforts. For many years, open source Bluray decryption tools only existed for discs that were BD+ free. Those cracking tougher nuts had to use MakeMKV and AnyDVD which kept the source code hidden thereby making important knowledge vulnerable to censorship.
In 2009, when I first heard about VideoLAN's plan to develop libbdplus, the lack of a git repository was suspicious. Why would a group known for prompt code releases in all of their other projects suddenly decide to develop one behind closed doors? Especially the most anticipated advancement since libdvdcss. Years went by and rumours of an imminent release became less frequent. Not only that, but other BD+ projects ceased development because they saw no need to duplicate effort. By 2013, I was not just accusing the developers of changing their minds, but causing outright damage to free software in the process. The end of December 2013, when they released libbdplus after all, was the time for me to take it all back. But hey, it's Christmas... a time to be pleasantly surprised!
I need to mention a fun thing that I did almost exactly when this site went offline. I signed up to volunteer in an RCMP training exercise scheduled for June 18, 2013. At the information session, the head of Risk Management UBC told us that one could either get up at 8am to play a regular hostage or get up at 6am to play a hostage wearing bullet hole makeup. I chose the former.
My site has been down since mid-2013 but I finally got it back up about a week ago. Much has happened in that time (such as starting a new degree) and I plan to post some random anecdotes from the past year as if the down-time never happened. If you are worried about the site going down again, don't be. I am now paying $10 per month to Linode which is very organized. To make a long story short, Justin Hayes stuck it out well all this time, but after high school, most people just have too much uncertainty in their lives to be reliable web hosts.
Since 2004, I've owned a ThinkPad A22m - a laptop that came out in 2001. Much to the dismay of certain friends, I still feel no need to purchase a newer computer. I've often said that this old hardware can do everything I need while still letting me run modern software. However, it now seems like I will have to take some responsibility for the code if I want that to still be true in the future.
Specifically, I am talking about open source ATI drivers on GNU / Linux. The four main video card lines released by ATI (now owned by AMD) have been Wonder, Mach, Rage and Radeon. I don't think Wonder cards have any features that would warrant the development of a dedicated driver but Linux drivers for the other three have been written.
The Radeon driver is actively maintained by software engineers at AMD and some people who work for other software companies. The other two? Not so much. The Rage 128 driver was especially in need of a major update recently. And since my computer has a Rage Mobility graphics card, I felt motivated to start working on the code even though I had never hacked such a low-level piece of software before. Since the effort has largely succeeded, I would like to share my experiences with editing an open source video driver. The learning curve was quite steep and when I first started reading documentation, it seemed like it was written for a different audience. This post is going to be an unadultered attempt to get a completely new reader to catch on to what I did. I'm sure I will later find out that many things written in this post are technically incorrect, but I will not edit them. I want the only knowledge communicated in this piece to be the knowledge that one might reasonably be expected to have after jumping into driver development for the first time.