Free the Net!

no comments

I'm sitting in gastown right now surfing the net on Bryght's "Free the net" node. Free the Net is a grass roots project who's goal is to implement free, city-wide wifi. The idea behind FtN is simple, to let individuals and businesses share their wifi bandwidth for all to use.

The current goal is to try to get FtN wifi coverage of gastown. The project has only been running for a few weeks and there's already a big following and a lot of interest. If you want to learn more you can check out their website and join the google group.

usernames and passwords


I just came to the sad realization that I have more different usernames than I have different passwords. Of course, as someone who likes to emphasize good security practices I probably shouldn't be telling everyone how hypocritical I am. But it gets better too. My usernames change more frequently than my passwords do.

Just thinking about the prospect of changing all of my passwords on all of the different sites and servers I use makes me shudder. So... instead of taking personal responsibility for my bad password habits, I will blame it on the whole username/password system and look forward to future authentication/authorization mechanisms that don't leave the security of servers and web sites I'm not responsible for in my hands, or at the very least, make it more transparent.


no comments

I'm currently taking a directed reading course on the peer-to-patent project. My first assignment has been to read through all of the patents currently active on the site and write a summary about each. I thought I should share this sentence:

The cipher method involves a decryption of the encrypted user data key with a decryption key in response to an initiation of a decryption of the encrypted user data with the user data key as decrypted with the description key, a decryption of the verification text with the user data key as decrypted with the decryption key, and a validation/invalidation of a use of the user data key as decrypted with the decryption key to decrypt the encrypted user data in response to a matched/unmatched comparison of the verification text as decrypted with the user data key and an intermixing of a known text and a random text.

I wonder if patent lawyers have little challenges between themselves for things like "longest sentence", "hardest sentence to read 3 times in a row fast", "most repetition of a word in a single sentence". The people who write this kind of stuff must get a kick out of it, right?

please put your garbage in the provided receptacles

no comments

I've been reading microserfs and am really enjoying it. I don't think it's quite as funny as jpod, but definitely has a lot to think about it. It's also kind of a funny flash back to the mid-nineties tech culture. Remember the "Information Superhighway". Or how everyone pretended to hate emoticons. Ahh, the good old days.... when i was 12. Hmm... remember how on Peewee's Playhouse (man, what a freaking odd name for a show!) he had those awesome video phones. Video chat always seemed so sci fi and far away in the distance... heck, I figured we'd have flying cars before video chat. I'd probably be hard pressed to find more than a handful of my friends/family who have never done a video chat. Whereas it's a lot easier to find people who still haven't used a flying car.

By the way, has anyone else been annoyed by the stupid skytrain messages they started playing every 2 minutes telling you to "help keep the skytrain clean" and throw out your garbage. Honestly!? If someones just tossing their garbage on the ground... an annoying message isn't about to stop them. It's practically annoying me enough that if it keeps up I might have to break down and buy a car to get around. Either that or drop out of university so I don't have to commute to surrey/burnaby anymore. Wouldn't that be funny... I dropped out of university because I couldn't handle the annoying skytrain messages.

Drupalcon - part 2... testing


There were a lot of very interesting sessions at Drupalcon, 4 full days packed with them in fact. Some of my personal favorites were openid, form api 3, panels 2, and the Drupal association panel. One of the things that really stood out (and I also really enjoyed) was the configuration management discussions. A decent percentage of the talks covered or had some overlap with configuration management and testing. Automated testing is a huge issue for "Enterprise" Drupal right now. There's not really a "safe" way to upgrade a Drupal site at the moment. A major upgrade pretty much goes as follows:

  1. backup
  2. upgrade the code
  3. update the database
  4. cross your fingers
  5. tap your toes
  6. hope it works.
  7. repeat if necessary (*always* repeat if necessary ;-))

Once you've upgraded you can manually go through the pages and try to find any glitches in the site, and if you're lucky you'll get them. Maybe the users of the site will find and report the errors. If you're lucky you won't lose any data. There's currently no unit testing, regession testing or smoke testing (sure, there's some test code... but as far as I'm concerned the amount that exists is really only proof of concept that it can be done). There's roughly half a dozen companies that put the majority of paid development into Drupal and are also hiring up most of the good Drupal developers. These companies have a vested interest in getting automated testing working in Drupal.

At one of the more ad hoc sessions (which included people from most of the big Drupal comapnies and prominent community members) NowPublic promised a large chunk of one of their developers' time to work exclusively on writing unit tests. There was obviously a lot of support for this. This session was more or less a discussion of how to approach the problem and solve it and I think some good ideas and points came out of it.

Writing tests is a bitch. I can say this as I use to write *very* extensive tests for code I wrote (python has some very nice tools for unit testing that I miss in almost every other language I use). The test code can often be significantly larger than the code it's testing. It was kind of fun at first, but all the typing and copy-and-pasting quickly started aggrevating the carpel tunnel ;). Writing the tests is the easy part. Keeping the tests up to date is the tough part. Getting developers to keep improving the code at the same rate while forcing them to write and update the test code on a mostly volunteer project... I don't even know if that's possible.

There's a popular idea in the Drupal business community that if you develop something, give it back to the community and let the community maintain it. I think this works great for both the companies developing Drupal and the volunteers working on the project. Keeping their code a secret hurts both parties. Let the company pay for the initial development of the code, and if there's interest someone will pick it up. Unfortunately, I don't see this working for testing. Even if the initial set of tests is paid for, I really can't see the "community" picking up the maintenance of the tests. It's a bitch, and doesn't scratch enough peoples' itch.

Regardless, automated testing in Drupal will be a Good Thing. And what do I know, maybe volunteer developers will be totally into keeping the test code up to date. "All tests passed" messages make people feel warm and fuzzy inside :).

One last point... since I'm in a ranty mood. This is to the person who likes to preach "...every time you touch a contrib module ... run coder module ... write and update simpletest tests ... yada yada". Perhaps it's about time you put your money where your mouth is and start getting your own developers to do it. :-p

Drupalcon Barcelona trip wrap-up

1 comment

...because your tiny amount of liquids won't explode if they're in little plastic bags...

I'm just on my way back to Vancouver from Barcelona, sitting in the Barcelona Airport.
It's been a pretty intense week, to say the least. Let me just say, Drupalcon Barcelona, effing awesome. Met lots of awesome people, who I'll hopefully be able to keep in contact with a bit still.

We (Boris, Steven, Djun, and I) arrived Sunday night after about 20h of travelling the trip there was pretty uneventful... ran into walkah in the bathroom of the Amsterdam airport, which was nice, because I was starting to get tired of Steven ;).

Monday we did a brief walking tour of Barcelona, stopped in at the Market and grabbed a quick bite to eat. We met up with a dude from the Zope project for dinner later that day and had some great techie conversations. Ended up cleaning out the beer selection at the place we were eating too.

On Tuesday, Boris and I decided we needed to cook a BIG "spanish" dinner. We hooked up with the Now Public crew at the Market and made a quick dash to get all the food we needed for the night, with only minutes to spare before everything closed for siesta. Boris is an awesome chef. Let's see if I can remember even half of what we cooked... muscles, prawns, baby octupus, squid, guacamole, lamb, fish, sausage (numerous varieties), and I'm sure a ton of stuff that I'm missing. We went through about a litre of olive oil, and basically ended up drinking and eating for 12 straight hours and the Now Public apartment, which was a pretty sweet place... almost had a bit of a greek feel to it, actually. Afterwards we hit up La Ramblas for some more beers, where I /may/ have stolen a 1.5L glass... attempting to hide it by stuffing it under my shirt... because I'm classy like that.

The conference ran from Wednesday through Saturday. I gave a pretty brief presentation of my loadtest module Wednesday afternoon and it went better than I thought it would. Ican't remember what happened Wednesday night, so it must have been pretty low key.

Thursday we hit an Irish pub. Yeah, nuff said.

Friday, Djun and I decided to pick up some food to cook and just chill and have a romantic Dinner with the two of us. Then we went out and took photos from 11:30-2am around the town.

Last night can't be discussed.

Went to bed at 5am, got up at 7am to head for my flight. I decided it would be a bright idea to catch the metro as we never really cracked the code for cabs in this city :). Unfortunately I went the wrong way down the line. Though I managed to realize early enough and hopped on a train back downtown, at which point I decided to grab a cab :). I'm now in Amsterdam, running on 2h of sleep for the past 30h and still have 12h left of travelling. Nnnst! I'll post some pics when I get back. I promise :).

GSoC - Loadtest module


As some of you know, I did Google's Summer of Code this summer. The result of that ended up being the loadtest module. This entry is basically just a description of how to use the module... so if you're not interested, please move along :-P.

The first part of this module lets you define and configure "states" for your site that you can run tests against.

You can use these states in two different ways:

  1. When running a loadtest, using the loadtest module, you can choose the state you wish to test.
  2. If you want to run more comprehensive tests using an external application such as ab, you can switch between states remotely allowing you to more easily script your benchmark tests.

The following screenshot is of the main testing interface. Each part of this form is described below.

  • The label is used for you to identify your test run at a later date. Each label will automatically have the timestamp for the test run appended to it.
  • A test suite is the "type" of test to run. By default there are two: "Single run", which just runs the selected tests once and "Test individual modules" which autotmatically disables all of the modules and then enables each module one at a time running tests at each step. Test suites can be added by module programmers as well so they can build tests that are more suited to their specific modules.
  • You can select a state from any of your pre-configured states. Leaving this empty will simply use the sites current settings.
  • There are currently two default tests that are included with the module:
    1. RequestRandomNodes - which does just that, page requests on random nodes. This is mostly just for testing, not overly useful for running load tests as you would probably want to compare test runs against identical page requests.
    2. RequestPages - This test requests a set of select pages a certain number of times. By default the pages "frontpage" and "tracker" are requested 10 times.

Unlike simpletest tests, loadtest tests can have individual configuration options that can be set through Drupal. The RequestPages test lets a user define which pages they want to request and how many times each page should be requested.

Depending on the options you choose running a test could take several minutes. Since site settings may be modified on the fly during a test run, it is important that you don't use this module on a production site, and don't interrupt it while it's running.

Finally, once the test has been run, you can view your statistics and compare multiple tests.

The code can be downloaded from the tarball on the module page, but I'd recommend taking it directly from CVS:

cvs -z6 checkout -d loadtest contributions/modules/loadtest

Barcamp Vancouver 007. Nnnst!

no comments

Only hours away from Barcamp Vancouver and it's looking like it should be a pretty fun event this year. Barcamp is an "unconference" which will probably end up being targeted towards the tech and web crowds and digital media. The basic idea, is that on the morning of the conference all of the attendees meet and everyone who wants to present something posts their idea. The ideas then get voted on by the attendees to decide which presentations will happen. It actually works out really great and the material presented is totally targeted for the audience (since it's also presented by the audience :)).

Thanks to all the organizers and sponsors who are putting this event on. It's gonna be awesome.

Food, Procrastination, and Driving (or lack thereof)

no comments

I've been procrastinating like crazy lately. It's really bad. In my fit of procrastination, I started thinking about how much harder it is to procrastinate without a TV. Almost so hard it's not even worth it. Sure, Facebook and YouTube help, but you're constantly searching for stuff. I stumbled across this article about active vs. passive procrastination. I'm happy to say most of my procrastination is active, unfortunately, just not today (though blogging probably counts as active :)).

I realized shortly after I starting my psuedo-100-mile-diet that my rule of being able to purchase produced foods as long as it was produced locally would be ok, was a bit of a joke. Why is it any better for me to purchase produced non-local food if I could just buy the non-local food myself and then make it (for example, fresh salsa). So I decided that it's only ok if the raw ingredients can't be purchased locally. So, pretty much all of the ingredients in the Granola King's granola is non-local, regardless of the fact that much of it could be purchased locally, therefore Granola King is out.

With regards to my meals, I've got breakfast and lunch pretty much down. For breakfast I've been eating local yogurt (non-sweetened because all the sugar comes from far away) with honey (I can't stand plain yogurt :)). Usually sandwitches for lunch. But dinner I'm still not too good at, this is probably due to part laziness, part lack of creativity. What I need is a local seasonal recipe book. Has anyone ever heard of something like that? I think it could be a good seller these days.

I finally posted some pics from the Commercial Drive "Drive Fest" from a couple weekends back. Oh yeah, and critical mass is starting in a few minutes, should be a massive turnout this month. I went for my first time last month and it was pretty awesome. I hope you didn't drive into the downtown core for work today :). Aight, I'm off.

EDIT: One last thing... Scott's b-day party is this weekend, and we're starting off tomorrow with a brunch at my place (that's right, waffles, eggs, bacon, cinnamon buns, pancakes, omlettes, vodka, same old stuff), so let me know if wanna drop by (and I might even give you my address).

Farmers Markets


First off... I had a bit of a mental lapse on my last post, with regards to the Granville Island beer. I had somehow forgot that almost all Granville Island beer is actually brewed in Kelowna... therefore, GIB is out (though I still have to finish the case in my fridge). On the bright side... I tried the Phillips Draft Dogder yesterday, and I'm gonna have to concede that it's my new favorite all around beer. Even more so than New Belgium's Fat Tire.

Anyway, the west end farmer's market started today, so I decided to walk over and see if I could find some good stuff. I ended spending almost $70 on food (a little more than planned, but hey, what can you do?). The west end farmers market is at most 1/2 the size of the trout lake one, but still good variety. I was hoping I'd be able to find some more fruit there, but I guess a lot of it doesn't come out until more mid-summer. I ended up buying salmon (smoked and fresh), cheese, beef, strawberries, raspberries, bread, some veggies, salsa, and a few other things. The cheese was from Little Qualicum Cheeseworks in Parksville. From what I've been able to find so far, they seem like one of the few local cheesemakers that makes both hard and soft cheeses (I'm pretty sure all of the gulf islands ones just do soft cheeses for the most part). The beef and strawberries came from Forstbauer natural foods. They seem pretty cool, all their beef is grass fed and they also sell eggs and a variety of fruits and veggies... they're a "biodynamic" farm just outside of Abbotsford. I'll let you know if I think can taste a difference from the "grain fed" beef I've always eaten.

Random fact #1: 100 mile house is 100 miles from Lillooet.

Random fact #2: Apparently my blog is the 2,261,228th most visited site on the web. w00t!. I think my goal for 2007 is going to be to get it below 1,000,000. Of course, that might mean blogging more frequently, but whatever.



I'm currently reading the Omnivores Dilemma, which is a far cry from my standard reading list of reference manuals and api documentation. I use to think I knew a little bit about food, I generally try to buy organic and local foods if I can. If I've learned one thing from this book it's how little I actually know, both about processed and organic foods. If anything, it's solidified my belief that buying local is the way to go, for several reasons. I was briefly chatting with someone about the book the other day and he brought up the 100 mile diet (the 100 mile diet, is a diet that permits eating any food grown [and processed] within 100 miles of where you live). I guess that triggered something for me, because since then I've been all like "dang. i should get on that 100 mile diet bandwagon".

So, to the point of my post... I'm going to try and do a [somewhat half assed] hundred mile diet this summer. I'm not sure of the best approach to get started, but for the sake of my sanity, and health, going cold turkey off non local food might be a bad idea. Some of my thoughts...

  • I'm gonna start with trying to just do 2-4 days of "100 mile" food.
  • As I get into it I'd like to do full weeks, but I still want to be able to eat out occasionally and have dinner at friends' places. So I'll need to make some provisions there... and find some good not-to-crazy-expensive restaurants that serve local food.
  • On the topic of restaurants though... even to start with (on non-100 mile days) I'll be trying to support restaurants with a more local food selection (even if it's just the lettuce, beer, and wine).
  • Foods that I can't "live" without... olive oil, balsamic vinegar, chocolate, etc. I think that perhaps if the food can't be grown in this climate, I can probably make an exception for it :). My only restriction here is that it needs to be (animal and human) cruelty free.
  • Beer, bread, and other locally produced food (yes, beer is food). While it is possible to get wheat and barley within 100 miles of Vancouver... there's not much, and I would imagine that 99.99% of all bread and beer made within 100 miles of Vancouver is using prarie grain. For my sanity... locally made beer and bread are OK. Of course, this means one of my favorite breweries as of late, Nelson, is out. But Russell, R&B, Phillips, Red Truck (i.e. Yaletown), Storm, and of course Granville Island, are all a-ok.
  • Okanagan fruit. I don't know what to do about this one yet. I guess I'll see what's available in the lower mainland first.

So I think that's my plan for now. I'm pretty sure the condiments are gonna get me though. It should be pretty fun though, especially in the summer. Vancouver's hundred miles has a ton of variety.

Pet Peeves


Happy Friday :). I'm feeling kind of ranty today, so... here are some of my pet peeves for Friday, June 1, 2007:

  1. When it's 21 Degrees outside (actually, probably hotter than that where I am), why am I cold while inside? 15 Degrees isn't a good temperature to work in... even when it's hot outside. PLEASE turn down your air conditioner! (and by "down" I mean, make it hotter) Honestly, people complain for months that they want summer and hot weather... then as soon as it comes, crank up the A/C, so much so that you have to wear a jacket inside to be comfortable.
  2. I realize that you don't know me... but does that mean you can't even acknowledge my existence when you're about to travel between 2 and 19 stories in a 3'x6' elevator with me? When someone says "hey", or "hi", or nods (often accompanied by some sort of grunting sound), the common protocol is to at least acknowledge them back. Maybe it's just those dang Yaletown people.
  3. The term "pet peeves", wtf does that even mean? I hate the term... please stop using it. Thank you.
  4. The boringness of my blog. You know, like content, look and feel, etc. What do you mean that's my fault?
  5. When people follow a sentence about global warming, with a sentence bitching about the "high" gas prices. This is mostly the "news", mind you, as opposed to individuals. While I'm on the topic... a 1L bottle of water from the same gas station you're buying the gas from is gonna cost you more than 1L of gasoline.

That's all for now (at least for the next few minutes, until I remember a really good one, that I forgot to post here). The weather's great, so let's all go outside for a smoke... oh, and be sure to stand directly in front of the entrance so that everyone has to fight through a cloud of smoke to get through.

Google Summer of Code

no comments

As some of you already know, I'll be doing the Google Summer of Code this summer. For those of you who just asked "WTF is Google Summer of Code?", it's basically (to sum up in one sentence) Google sponsored and organized open source development. Basically, Google is paying me (and ~900 other students) to work on an open source project. If you're still curious, you can visit here or here, for more info. The basic premise is to raise awareness for open source and get more people (specifically students) involved in open source development.

GSoC officially begins on Monday and I'll be working on the Drupal project, my project proposal consists of developing a framework for allowing Drupal admins to load test their sites and more easily determine bottlenecks and such. I have a more detailed description on the Drupal SoC group, if you want to learn more. I figured it made good sense to do a Drupal project... considering about 90% of my contract work at the moment is Drupal related. What's Drupal? I think you already asked that question, Carla. It's a content management system (CMS). What's a CMS? Yeah, I don't know, really. But basically Drupal helps you build ultra sweet community based websites in like no time at all, and that's all that really matters.

Anyway, I'll probably be posting other random tech stuff here about my project... so fell free to ignore my posts tagged with Drupal and GSoC if you don't wanna hear about benchmarking, bottlenecks, scalability, load balancing, unit testing, or other such terms, my feelings will only be mildly hurt.

My thoughts, for Earth Day 2007


Happy birthday Earth! That's right, the earth was born 4.57 billion years ago on this day. The environmental topic for the media these days seems to be global warming, so I'll talk about it too. A couple weeks back I found this great "right wing" t-shirt stop global whining. I liked it, both because of the irony of me wearing it, and because I was already starting to get pissed off with all the global warming BS. Not because I don't think it's an issue, but because there are so many other issues getting swept under the carpet because of it. Apparently everything negative is caused by global warming now, too hot, too cold, rain storms, wind storms, earthquakes, hurricanes, car accidents, obesity, seal hunting, etc. (and no, I have no references to backup my claims :)). Sure, the earth warming up a few degrees is bound to cause problems, and reducing green house gasses is probably a Good Thing. But you know what, dumping raw and toxic sewage in our oceans, lakes, and rivers, clear cutting tropical rain forests, over fishing, GMO food, pesticides, lacing everything we use and wear with poisonous chemicals such as fire retardant and Teflon, nuclear waste, and filling up our landfills with toxins and materials that won't degrade for thousands of years aren't so great either. Most of those things can be much more easily fixed than global warming and may possibly have a much greater long term impact (did you know that half of Earth's oxygen comes from plankton, you thought the polar ice caps melting was bad news... wait until we run out of oxygen).

In addition to everything being caused by global warming, apparently everything is also a solution to global warming. From emitting more green house gasses to dumping iron in the oceans to urban planning (imagine, not commuting 100km to work everyday, I can't!). Don't even get me started on hybrids (dang! you just did). Honestly, you think a car that gets you 10 more miles to the gallon in city driving is going to save the environment? And who's buying the hybrid SUVs? Are you serious? Hey, I just bought an SUV, I'm saving the environment! How about considering the harmful effects of building and disposing of batteries used in hybrids (oh, but that doesn't cause global warming, so it must be ok). Buy a second hand fuel efficient car if you want to help. The Real Cost (tm) is in production and disposal anyway. So, in summary, stop whining about global warming and do something about it (buying a new hybrid and watching an inconvenient truth don't count, sorry).

Now, onto another topic... tupperware! FUN! I was eating out with Ariane the other night (someone who ALWAYS takes home a doggy bag :-p) and we've talked about bringing our own tupperware to bring home restaurant leftovers before, but this time I got a wicked idea. First, think of the benefits:

  1. reusable containers to reduce waste
  2. you don't have to wait for your server to bring your food back to the kitchen
  3. if you had someone who may have been rude to your server, you can be sure that nothing will happen to your food when it goes back to the kitchen (cause it won't be going back :)).

Out in the 'burbs it may not have been so embarrassing to take some tupperwares to dinner... however, in Yaletown, I've noticed that some people can be a bit snobby (or at least that's the stereo type, which is good enough for me ;)), and may give you dirty looks for bringing in 15 year old tupperwares to pack your food in. So... wait for it... stylish tupperwares! That's right, tupperwares that even a classic Yaletown yuppie would be seen walking around with.

I don't know if they exist already, but if someone's going to buy an SUV to help save the environment, someone will surely buy stylish tupperware (like me!).