Give Credit Where It’s Due

Update: After talking with some people, I realized that all of this was worded pretty harshly. It was intended only to be a request for what I wanted people to do when they use my photos. My apologies to everybody.

Recently, I’ve noticed on more than one occasion people using my photos for their profile pictures on various social media websites. I think that’s great; it’s good publicity for myself and it shows that the photos are liked. Unfortunately, I’ve seen the growing trend of some photos getting cropped, removing the URL from the image. Most of the time this is unintentional. If this happens, don’t worry; just give me credit in the photo description.

Here’s my requests for my photo use:

  • Feel free to use the photos on any social website, provided that you give me credit. This can be either by:
    • Leaving the original URL watermark in tact, or
    • Giving credit in the description or caption, using both my name and website URL
  • Unless I give specific permission, I would not like my photos used for derivative works. Chances are just asking will result in a “yes”; I simply want to know where my photos are being used.

I believe that credit should be given where it’s due (not to mention that it’s a copyright violation). If you want to use my photos, just give me credit. Hopefully I won’t have to put watermarks in more obstructive locations in the future.

Hopefully that clears things up a bit. Again, for those that read this before the update, sorry about how harsh it came across. I guess that’s what Mondays do to me.

A Reflection on Being President Of A University Club

Over the past year and a half, I’ve been presented with the unique opportunity to be on the executive committee for one of the largest university groups on my campus; UMSwing has grown to be one of the most popular interest groups, and I would like to think that it has something to do with the executive committees of years past.

I love every minute that I spend working for the club, not because I think it’s good resume padding (my last job at the RCMP does a much better job of that) or that I think I will get some benefit from it; I love it because I am glad to give back to a community that has given a lot to me. It’s exciting to be in a position to shape the future of such a prominent student group.

The position I’m in takes up a lot of my time. I show up to almost every lesson to supervise, design all of the graphics-related materials for the club, as well as coordinate and chair executive meetings. I’d say on average I spend 10-12 hours/week during the middle of the semester (when there are no events in the works) on UMSwing stuff, and between double to triple that at the beginning of the semester.

Upon reflection however, I feel like I’m losing touch with some of the reasons I joined UMSwing in the first place. UMSwing was a place to learn something new, make some great new friends, get some self-confidence, and get in shape. Back when I was a member, I accomplished all of that and then some. I attended as many lessons as possible and met some friends who will be with me for the rest of my life. This year, I’ve only participated in one lesson as a student, and that was because we were drastically short leads. The unfortunate side-effect of this is that I don’t get the opportunity to meet any of the new members. To them, I’m simply somebody that signs members in and supervises lessons.

I find myself in the unfortunate situation where my friends, who are participating in the lessons, are meeting new people, making friends, and getting so much more out of the club than I am able to in my position. It’s a shame that I am only able to enjoy the fruits of my labours by watching our members enjoy themselves. Being in a work term next semester only means that I will have less of an opportunity to meet the members.

That being said, I’m glad that our members are getting so much out of the club. After all, they are the ones paying for lessons, and they are the priority. I’m glad to have been a part of the team that has given them the opportunity to meet new people and learn something new, and I hope they all enjoy the lessons, social events, and the friendships they will forge on the dance floor.

Ruby Documentation Sucks

Okay, this is going up a day late. My bad. I’ve been busy. Regardless, I have a rant which any programmer can sympathize with.

I’ve been recently programming a proxy in the Ruby programming language, which is known for its code elegance. When you know how to use it, it’s a great language. The problem, however, comes when to learning about the API in the language. To put it bluntly, the documentation is crap. To be more specific, a good amount of it is incomplete, and those sections that are completed fail to follow a consistent fashion. To put things in perspective, there are 108 core libraries included in the Ruby documentation; over half of those libraries have incomplete documentation.

Now, this isn’t that much of an issue if you know how to use the language; after all, there’s no need to go to the documentation when you know the language. The problem comes when you are like me, learning how to use the language, and don’t know what any of the constants for the sockets library do, which is a bit of a problem when you need to program a proxy. See where I’m going with this?

Maybe I’m complaining because I’ve been spoiled on PHP‘s phenomenal documentation, which is an amazing feat when it comes to documentation. All of the functions are properly laid out with plenty of cross-references, and tell you exactly what to expect for each and every function. The documentation is a work of art, I kid you not. Don’t believe me? Try learning how to do something complex in PHP using the documentation only, then try to do the same in Ruby.

I have heard some people make the argument that Ruby is open source and relies on its members to do the documentation, hence the lack of it. While I understand this argument, it doesn’t entirely make sense. Ruby has a large band of dedicated followers (think Jehovah’s Witnesses-style) who should have filled in the 1.9 documentation by now. Thinking about it from another perspective, PHP is a free and open source language as well, and look at the detail in there compared to Ruby.

All I’m saying is that Ruby needs to step up its game a bit, otherwise it will have trouble competing for those people looking at learning a new language. If it wasn’t for an amazing IBM document on Ruby socket programming, I would have moved on to another language by now.

Anyways, tune in this Friday for something different. I realize programming isn’t everybody’s cup of tea, so I’m hoping to branch off into something a little different for those of you who either find computers boring, or those of you that simply don’t understand them. As always, I appreciate you reading, and I appreciate even more those of you who tell a friend about my blog :).


In my area of the city, we recently underwent construction on the busiest 4-way stop in the neighborhood. Every rush hour, the intersection was the main source of congestion, and traffic backed up on to Bishop Grandin. So, they decided that a roundabout would be a better option rather than the 4-way stop.

It was a good idea; they are very common in Europe, and help traffic flow smoothly and evenly. The intersection has been open for less than a week, however, and I’m quite concerned with the performance of it so far. I can conclude one of two possible reasons for this. The first option is that people simply aren’t used to this new intersection. The other option is that we as drivers are too primative of a society to use such an advanced technology. For some reason, I feel compelled to go with the latter of the two options.

One thing that might cause this opinion is the lack of confidence that I have of Winnipeg drivers. Sorry Winnipeg, but we have terrible drivers. Really terrible. As in, if I had a choice, I would stay off the roads entirely. That would unfortunately cut down on a number of opportunities that I’m not willing to pass up, such as the ability to go out and buy food.

Thankfully, there are other ways out of my neighborhood. Perhaps I will stick to those routes until those who venture through said intersection can be trusted. Something about living makes me feel all warm and fuzzy inside, and I very much like to feel warm and fuzzy.


Over the next few weeks, there will be a lot changing in my life in many different aspects. I expect it might be an interesting experience.

As many of you may know, I run a site called H2H Security Group, which has been an ethical hacking knowledge base. Over the past few months, there has been little-to-no contributions to it, and it doesn’t seem reasonable to keep the site up and running without any participation from other members. My interests have also shifted (matured, if you will) to encompass development-related topics rather than hacking, and I believe that another style of site would suit my interests more than this one. As such, I have decided to take down H2H. It was a hard decision to make, but I believe that my knowledge and expertise would be more suitable in a development site. Therefore, rather than simply removing a part of myself from the internet, I have decided to replace it with a development site. I realize that there are a lot of them out there, but this is something that I am much more passionate about, and will coincide much more with my interests in web development. Hopefully I will be able to attract more people interested in topics similar to this.

H2H spent a lot of time up and running because of its members. Specifically, I need to personally thank Aaron Goldsmith (aka AltonRashmire) and Sam Jenkins (aka Satal Keto) for their donations, dedication, and hard work. Their support, both technically and monetarily, has meant that H2H has survived for much longer than expected. They have earned both my respect and my friendship, and I will no doubt keep in touch with them, hopefully on my new development site.

One thing that certainly held H2H back was the hosting I went with. I have been with Lunarpages for 2 years now, and I have decided to move on due to lackluster tech support (a phone call I made to them which was not toll-free resulted in me yelling at the person because he was completely unaware of the DNS exploit which resulted around that time which crippled my site) and significant downtime as of late, which has been severe enough to even take down their own site. Add to that the additional costs for simple things like installing SSL certificates, and you have one unhappy customer. I am now starting a web hosting company with a few friends, which will be an eco-friendly web host. If you are looking for a good deal on hosting, contact me; mention this blog post, and I’ll take $1 off per month, which works out to 20% off (this offer good until the end of September 2009). I’ll bring you more information on the new host when it is purchased.

Finally, I start my new job in a week and a half, at the Manitoba Information Protection Centre. I have been looking forward to this for quite a while, and I expect it to be an amazing experience. This will certainly be a great learning experience, and definitely be a great source of income, which will be needed to fund my technology addiction.

That’s all for now. More later. Sorry for not following my schedule. I’ll work on that.


For the past two years, I have been running a small personal server out of my house. Well, I guess “small” is a relative term. To be more specific, it was a Fedora 8 server with 2 terabytes of storage for my backups, music, and Subversion repositories. Along with my desktop, it was my pride and joy; everything was custom-built, the distro was actively maintained, and all of the configuration was done by a two-factor encrypted console.

Notice the use of the past tense. Was. On Monday I noticed that I was getting read errors on my drives, although I wasn’t sure which one (I had 4 drives). Although I went to bed with a (mostly) working server, I woke up to a system that wouldn’t boot up because the partition information. After fumbling with different recovery methods to try and get my data off, I came to the conclusion that I wasn’t going to get the data off; it was gone, possibly because of my recovery actions.

Needless to say, I was more than a little devastated. Although I can rerip my music, I can’t get back the Subversion repositories; those are all gone, along with all of the revisions I’ve made on projects.

Despite my demotivation, I took this as one huge learning experience. Although I had made backups of some of my work, it was still on the same drive and partition, and I should have considered them just as vulnerable as the originals. When you can’t make consistent backups on a different system, RAID your drives.

I’ve since reinstalled my server as a 1TB RAID10. Alrhough this means I have half the space to work with, it also means that I have 100% redundancy. So, if one of my drives fails like what happened to me, all I have to do is pull out the drive, put a replacement in, and the system will copy all of the data over to the new drive. The best part about all of this is that this all happens on-the-fly; no downtime, no rebooting, and no manual work except for adding the drive to the RAID configuration.

In short, if you take one thing away from this, remember to back up your stuff frequently, even if it’s just on a flash drive or external hard drive. When your original fails, you’ll thank yourself for that backup.

Education, Please

Sometimes it scares me how woefully uninformed some people are.

I realize that this sounds like I’m bashing people for not knowing about [insert subject here]. I don’t mean that. Really.What I mean by this is that it worries me how some people will talk about topics like they are educated about a topic clearly without doing any prior research about it. More specifically, it worries me how some people who are in positions of teaching, say, as my professor, will talk about some of these topics.

I’m sitting in my economics class one day, and we happen to be discussing monopolies in microeconomics. At some point, my professor starts discussing examples of monopolies, and happens to bring up Microsoft as a monopoly. Now, me being me, I am quick to object and quickly raise my hand, politely correcting her that Microsoft hasn’t been a monopoly for several years; rather, it still (disappointingly) holds a majority share of the market. (Aside: although Windows is on about 55% of servers, I couldn’t find any recent numbers for desktops. Let me know if you find it). She continues on like I didn’t mention anything.

The crème de la crop, however, happens to be her discussion about the Microsoft legal battle regarding patents a few years ago. For those of you which have not heard about this (and there’s nothing wrong with that – providing you’re not talking about it like you do), Microsoft faced a legal battle regarding patent issues with its Microsoft product Word. Rather than having done this research before, my professor instead decided to describe it in her own words, which came out something like this: “Microsoft was sued for putting special codes in the programs that they made so that people who didn’t use Windows couldn’t use the programs, and Microsoft refused to release the special codes”.
This seemed about the right time for a strong face-palm. It doesn’t take a third-year computer science student as I am to figure out that she has no idea what she is talking about; rather, anyone who has an idea about how computer programs are made knows that she hasn’t said anything right. If she had done her research about the legal case, which certainly isn’t hard to do with our good friend Google, she would have found that not only that she wasn’t saying anything right about source code, but that what she described was not even what the legal case was about.

I have no qualms about those who have a fact or two slightly off when talking about a particular subject which doesn’t happen to be their forte, but I feel it increasingly hard to sympathize with people who talk about topics in which they have no real knowledge. For clarification, the “special codes” that my professor described is called “source code” which is how people write programs, keeping a program closed source (ie. Not releasing the source code) is perfectly legal, and a company is under absolutely no obligation to compile their software to work with all operating systems on the market.

Perhaps the lack of knowledge of how programs are made is a moot point, seeing as how the legal case didn’t even involve programming at all. I guess my point, if one even has one when rhetorically ranting to the world, is that it frustrates me when those in a knowledge-distributing position (ie. A professor) distributes information without doing the proper research on it. The only part of the legal battle that my professor had right was that Microsoft was involved. I realize that this is a monumental, nay impossible, problem to combat, yet it still feels like a rantable topic. Rest assured, when I pass along information to the masses, you won’t need to put a [citation needed] tag after everything I write. [citation needed]