Firstly, we survived and we are awesome. There are few things better than seeing 5 groups send files back and forth over wireless modems on a protocol we designed and then being told that you are the first group in 20 years to accomplish that.

What was interesting for me (between periods of frantic bug hunting) was watching how people worked, how they tried to solve problems, and how they handled things going wrong. From watching that, I’ve realised some things.
I need to be less… controlling about things. I try to always be open to new ideas and new methods, but I always try to ensure that everything is done the way I would do it. This leads to other people feeling useless, and me reaching the point of burnout from trying to do everything. I will always have a need to know how the project as a whole works and how all the pieces fit together, I’m definitely not one for blackboxing. But I need to trust other people to do things, and trust that they can be help responsible for what they’ve done.
Almost as importantly, someone needs to hold me to similar standards. There should be debate about how to do something, and someone’s idea should not be used simply because it’s easy, or it sounds good. I should need to prove my reasons to people before I’m simply given the freedom to implement it.

Those of you who felt like you couldn’t contribute anything, or (worse) those of you who got stuck writing documentation at the last minute: Don’t let me do that to you again.

Gwibber, or “Planning for Plugins”

I have been consistently pleased with Gwibber as a Twitter client over the past year or so, and I’ve seen some very nice improvements over that time (support for new services like Buzz and Digg, support for displaying thumbnails of Twitpics, etc.). Yesterday I was working on a simple prototype for fetching status updates from a web service, and thought Gwibber would be a good place to integrate it.

While I was (mostly) successful, the experience left me with some questions about plans for extensibility by 3rd party modules for Gwibber. Every service is implemented in its own Python file in a directory, adding the class for a new service was easy. Making Gwibber load it was much more difficult.

Gwibber’s client file explicitly imports all of the service modules. This is a problem: if I want to add my own service, I need to edit core Gwibber files. Not to mention, those files are of course in /usr which means I need superuser permissions to do so, and any Gwibber updates will overwrite those changes. I’m certain that there are “plugin” module loaders out there for Python, and if there aren’t any that are suitable it’s easy to write your own (I’ve done so in the past for a different project).
The second part of that problem is that simply importing the module isn’t enough, I also had to edit a dictionary in the client file to add my service to the list of recognised services.

Success… in some ways. The problem now is actually adding the account. Gwibber’s UI stuff seems to be entirely separate from the core, and each service defines its own UI file. I had to create another py file to tell it which UI to use (I cheated and re-used an existing UI, otherwise I would have had to create that as well).

Gwibber is a good program that works well, I wouldn’t have chosen it as my test area if I didn’t like using it. The actual service modules follow a reasonable structure (although some are inconsistent, and there is no documented API). The problem is that everything is hardcoded into the client.
I’ve seen feature requests for other services in Gwibber, but at the moment it isn’t feasible to write support for those as some sort of plugin.

Maybe I’ve been hanging around Pidgin too long, but I think the concept of every service/protocol being a plugin that is loaded dynamically is a very good one; and something that would make Gwibber feel a lot more open to 3rd party development.

Moodle 2.0 Theme Contest: Silvern

Announced at, I decided that this was the perfect excuse to actually finish the theme that I’ve been developing for over a year.

That year has been interesting, since almost every single piece of code related to themes has changes multiple times, requiring a number of theme rewrites to keep it all up-to-date. I seem to repeatedly have this issue with writing lots of code for something that’s in active development, and then rewriting that code to keep up with the API changes. >.>

The theme uses one of the new custom renderer classes to output HTML5, and includes a number of admin-configurable settings such as colours, welcome text, and the site logo.
My entry is called Silvern.

Silvern Moodle Theme

Silvern Moodle Theme

Edit: I almost forgot to mention: All the code for this theme is available on my github account. Enjoy :)


Yes, I know I haven’t updated recently… Here’s a basic summary:
Oh noes! Grad cut-off and chaos!
SSGH fun.
w00t! Graduation!
Geography exams make me a sad llama.
BBQs are awesome.

Anyways, I’m heading off camping again. :D Tofino for a week (leaving tomorrow), and then Barkerville for a week after that. Both are a lotof fun, and both should yield some amazing textures :P

Victoria, Day III

The 3rd day is always the least eventful, and involves a lot of travelling. We walked to Timmies early this morning, and then got on the bus to head to Fort Rodd Hill. We spent close to two hours at Fort Rodd before heading to the ferry to get back to the mainland. The best part of these trips (especially Connections trips) is sitting up near the front and listening to the teachers talk. This is how one learns interesting things, such as the taste-saturating abilities of ketchup.

Overall, the trip was great, and I had a lot of fun again :D

Victoria, Day II

Woke up early this morning (although not quite as early as yesterday) in preparation to head out to visit Frances Kelsey, the only other self-directed school in the province. Stopped at Timmies for breakfast (<3) and went to FKSS. Got a tour by some of their leadership students, played a bit of capture the flag, and then ate pizza with their grade 12 cooking students. I was also introduced as an “invaluable and crucial developer of [my school]’s website” and gave my name to some teachers at FKSS who were hoping to start their own website using the Moodle Project. FKSS is very different from our school, and yet so similar. They have two blocked classes for every subject, and then fewer “flex” times. While our school has a number of very large work areas, FKSS has many smaller work areas, and many more seminar rooms (interesting politics behind that… very interesting politics, that I often see mirrored at our school). We headed back to downtown Victoria afterward, and the grade 11s started the Amazing Race. Jessica, Maggie, and I walked up to Craigdarroch Castle and spent about an hour touring it. Still as wonderful as ever, and still where I one day dream of setting up my residence ;). Then we caught a bus up to UVIC. Not just any bus… a double decker bus! It was amazing to feel so high and superior to all of the other cars on the road, while actually using public transit. Jessica loved the bunnies at UVIC, and she spent 10 minutes or so futilely trying to pick one up in hopes of taking it home. We caught the bus back downtown and grabbed a snack before meeting Godfrey in Bastion Square. Ah, the annual “Food Eating Contest” where each team tries to find something absolutely disgusting and eat it. One team this year had gone to a market in Chinatown to buy their foods, and misheard the cashier say “semen fungus” in place of “persimmon fruit”. I swear Godfrey was howling with laughter for almost half an hour. After the contest, which was filled with its own surprises (btw, congrats Mallika for eating her own, and everybody else’s concoctions). We went to Earl’s for dinner, which was good food, but rather slow service. Then Mallika, Maggie, and I went to take more photos in HDR :D. Came back to the hotel and had a small, short-lived game of football, before heading in for the night.

Victoria, Day I

Woke up at an entirely unreasonable hour (4:30) today to be at school for the bus. Trip to the ferry was rather uneventful, although filled with delicious candy. Ferry trip itself was a bit boring, a number of us were hoping for wireless Internet on the boat, but unfortunately there was none to be found. A few of us played cheat for a while after heading up on the deck. Arrived in Victoria and had some free time for lunch (food court of course! :D) and then a tour of the legislature buildings. The tour this year was much better than last, and I learnt a few things that I hadn’t known before. Then we headed back to check into the hotel, and get things organized. We went out for the group dinner, which unfortunately was to a Chinese buffet-style restaurant. I, alas, am not a big Chinese-food eater. We then walked around downtown for a bit, where Mallika and I took some of the most amazing photographs with Mr. Biggar’s D300 camera. HDR is so definitely FTW! Ghost tour started soon after, and was much like the tour last year, although slightly less exciting IMO. Got back to the hotel, and did a quick Timmies run before bed.

Random fact time: There is only one flavour of ketchup, because ketchup reaches all of the taste areas of the tongue, and in fact saturates them entirely. Ketchup cannot be more “ketchupy” because it’s already overloading the taste sensors in your mouth. This is also why ketchup is so perfect for disguising foods that you don’t like.

Lost in Eternity

Okay, a few reason why my blogging ability fails:

  1. I have Twitter, which is great for those short things that I want to share. Blogs are fairly boring when each post is only 140 characters…
  2. Although I often want to respond to Uru forums posts or other blog posts (such as vaaht’s recent post) I generally don’t (especially forum posts, since people seem to take offense to my criticising of their stupidity) or give my thoughts over IMs.
  3. I have issues with getting my thoughts onto a tangible medium in a way that keeps them intact. I make abstractly logical associations in my head that don’t communicate well… anywhere outside of my head :P
  4. Usually anything personally ends up in IMs, because I have this fear that my blog will turn into an emo-fest. That, and my personal stuff always seems so mediocre and meaningless in the long run.

So, the past two months in recap? $cat < /dev/dox
Melissa got me hooked on A Softer World; and just yesterday Chacal posted a link to Sequential Art. Those are likely two comics that I will follow irregularly, along with my devotion to XKCD.
I’ve decided/discovered that my favourite time was my grade 10 year, the year I started this blog. Despite what it might seem, that year was a lot of fun and if I could build a time machine, you’d find me in spring 2007.
Grad is coming up, and my ambivalence to the world is apparently an issue for some people. I do care about things, just evidently not the things that I’m supposed to care about.
School is both amazing and boring me to death. I’d really like nothing better than to sit in 2029 all day with friends and read, but some people seem to think that my marks aren’t good enough to merit enjoyment and fun. I’ll be spending the next week in physics.
I’m passive aggressive. Deal with it.
I can fill in the entire periodic table on in under 4 minutes. Spring break didn’t go entirely to waste. :P (Incidentally, my friend use spring break to learn all 53 countries of Africa on sporcle.)
I’m doing some work on Ahra Pahts, and there are some days that PyPRP makes me want to shoot myself.
I have 3 computers in my room, with RAM sticks on the floor like candy wrappers. Streaming media server: here we come!

Some days, everything seems blurry and disconnected… like it’s impossible to focus on one thing for very long, or pay attention to conversations… Sometimes I like that, and sometimes you go through a day hearing all the conversations that just catch in your mind and won’t let you think.

Day 3

Headed back home today, fairly uneventful trip back. Didn’t get stuck on any turns with the bus this time :P. Stopped in the old mining town of Hedley to wander around for a bit. I personally love the little town, although it’s mostly dead. Lots of cool things and crazy people. Someone built a domed roof out of car windshields, which is a pretty cool thing to see. Stopped in Princeton again for lunch, and then drove pretty much all the way home without stopping. It was a very fun trip, lots to see and do, but I am glad to be home where I can sit down and have a cup of tea in an actual cup (as opposed to a bowl or mixing container).

Day 2

Woke up today and decided we’d head out snowshoeing at 13:00, so we spent most of the morning in the hostel. Cooked up our pasta for lunch and then headed out for snowshoeing. It was a lot of fun, and we went quite a ways. No major incidents for me, although one girl broke her collarbone and had to take an ambulance back to Pentiction to get it set. Went skating on the outdoor loop for a while, then headed out for dinner at the local restaurant. Came back to skate a bit again and then headed in. Really nice weather today, lots of sun and lots of nice snow.