August 27, 2010 in Personal | Comments (0)
Tags: networking
I’ve posted this elsewhere, but I feel comfortable now posting it publicly.
There’s this problem of having to have a password for every website you have an account with, which is a serious problem if you have an account on a lot of sites. OpenID was supposed to solve this problem by allowing you to — securely — share one account across multiple sites, but never took off due to a chicken-and-egg problem: almost no one uses OpenID which means almost no sites feel the need to support it. Most web browsers will store passwords for you, but that doesn’t do you any good if you want to access one of your accounts from a different computer.
You can use the same password — or the same few passwords — across multiple sites, but this is actually a real security risk and is something that should be avoided if possible.
So I put together a wee bit of Javascript to help manage passwords. You have to remember one base password — which should not be from the dictionary, but otherwise has no constraints — and from that password it will automatically generate what your particular password is for any given site. Your base password is never transmitted across the network. The generated passwords should hopefully meet the criteria of any site you come across: they all contain one uppercase letter, one punctuation mark and one numeric digit. If some unscrupulous website owner gets your password to one site, it is veritably intractable for them to determine your base password or your password to any other site. And it requires you to only remember one site.
I post it in case anyone finds it useful or wants to use it for their own purposes. If you do want to use it, follow these steps:
- Steal my HTML document and change around the style, etc., to suit your needs.
- Find a place to host the HTML document.
- Come up with a base password, hopefully something harder to guess than “galvatron”.
- Determine the SHA1 hash of your base password. You can find online SHA1 calculators, but from a security standpoint it would be preferable to calculate the hash on your home computer (e.g., on a Unix-based operating system with OpenSSL installed, one can do something like echo –n “galvatron” | openssl sha1 to calculate the hash).
- In the HTML document, modify the Javascript variable password_hash according to what you just calculated.
The script will then give you passwords that you should use for sites you sign up for in the future, which you will then never have to remember.
I’ve posted this elsewhere, but I feel comfortable now posting it publicly.
There’s this problem of having to have a password for every website you have an account with, which is a serious problem if you have an account on a lot of sites. OpenID was supposed to solve this problem by allowing you to — securely — share one account across multiple sites, but never took off due to a chicken-and-egg problem: almost no one uses OpenID which means almost no sites feel the need to support it. Most web browsers will store passwords for you, but that doesn’t do you any good if you want to access one of your accounts from a different computer.
You can use the same password — or the same few passwords — across multiple sites, but this is actually a real security risk and is something that should be avoided if possible.
So I put together a wee bit of Javascript to help manage passwords. You have to remember one base password — which should not be from the dictionary, but otherwise has no constraints — and from th
July 26, 2010 in Personal | Comments (3)
Tags: silly
I can finally show off my weekend project! Well okay the vestiges of it started a couple weekends ago and it bled into this morning by a couple hours, but I think it still counts as a weekend project.

Jasna and I don’t have cable or an antenna for our TV, which means we download everything we watch, or borrow it from friends on rare occasions. My MacBook was starting to run near the end of its useful life as my main work computer — the trackpad was becoming unusable which meant I couldn’t depend on it when travelling — but it’s still got some life in it as a server. It was wireless networking (no cables to string around), uses very little power, is completely silent, comes with media software (Front Row) and comes with a remote control, is really small (less than 2cm tall), which makes it more or less the perfect media server.
The only downside is it was a pain to get shows onto it to watch, as you have to search for the shows manually, download them, then copy them manually over to the server. So, I decided to make a web interface.
Check here for screenshots of the new web interface for the media server. EasyNews, our Usenet provider, provides very handy services like global searches, thumbnails and AutoUnRARing. A big benefit to this is not having to wait until something has finished downloading it before watching it. So far I’ve got services for downloading from Usenet — which is where we get almost all of our TV shows to watch, downloading CFL games from TSN and just uploading individual files from your browser. At some point I need to set up scheduling so that it automatically downloads new episodes of shows when they’re released, but I guess that’s for another weekend.
I’m kind of embarrassed at how proud I am to have actually finished it in a weekend like I’d planned, especially considering I haven’t done any web development in years and years. The astute of you may have noticed I used straight-up CGI instead of technologies the cool kids are using: no love from me for PHP or RoR or Ajax or anything. Since I haven’t put any password security in yet — that’s for another weekend yet — and the box is publicly addressable via IPv6 I’ve had access to the web interface to just within our local network, but if IPv6 takes off some day it’ll be cool to be able to download movies while I’m away from home.
I can finally show off my weekend project! Well okay the vestiges of it started a couple weekends ago and it bled into this morning by a couple hours, but I think it still counts as a weekend project.
Jasna and I don’t have cable or an antenna for our TV, which means we download everything we watch, or borrow it from friends on rare occasions. My MacBook was starting to run near the end of its useful life as my main work computer — the trackpad was becoming unusable which meant I couldn’t depend on it when travelling — but it’s still got some life in it as a server. It was wireless networking (no cables to string around), uses very little power, is completely silent, comes with media software (Front Row) and comes with a remote control, is really small (less than 2cm tall), which makes it more or less the perfect media server.
The only downside is it was a pain to get shows onto it to watch, as you have to search for the shows manually, download them, then copy them manually over to the server. So,
July 23, 2010 in Personal | Comments (0)
Tags: holiday, Jasna, thesis
Jasna and I just got back today from a spur-of-the-moment camping trip. We’d been wanting to have a couple days just for the two of us for a while now, and our schedules aligned, so why not? We thought camping would be more fun and relaxing than anything else, and I’ve wanted to see the towns along the Grand River forever, so we combined the two and went to Rock Point Provincial Park: it’s virtually right where the Grand River empties into Lake Erie and necessitates driving along the Grand River, a fairly nice drive.
I’ve got a grand total of 3 pictures from the trip and I’m happy with that. It wasn’t the sort of trip to you take to take pictures of. Apparently the park is known for its fossils, but we didn’t go hunting for those, either. We went down to the beach a few times — twice for moonlight swims — and spent most of the rest of our time in our campsite sitting around and talking and enjoying one another. We got a nice campsite with fairly good privacy and shade, and none of the campsites directly around us were taken. It was pretty much the perfect couple of days, only because we were together.
Jasna bought me an e-reader! She actually bought it before we’d planned on going on the trip, but I guess this seemed a good time to give it to me, and give me an easier time reading. It’s a Kobo, which I adore. I’m actually a bit of a freak in that I’m somewhat anti-paper: I often prefer reading on screen to reading on paper; maybe it’s a side-effect of growing up with a computer. The Kobo has a really beautiful display and is easier for me to read than anything I’ve ever read from, CRT, LCD or paper. The display can’t refresh very often — maybe once a second or something like that — and it’s super low-powered which makes it unsuitable for anything but reading, which suits me fine. I have only two complaints: firstly, that the font size is typically too big, but that’s a criticism of the books that are formatted for it, not the device itself; and secondly, that it’s really difficult to skip forward or backward a lot of pages at a time. With paper it’s easy to do a binary search for the page you want, but the Kobo seems determined to make you do a linear search.
I did bring my laptop, but only so I could do just enough work to make my guilt levels fall to the point where I could genuinely relax. It turns out that’s about half an hour, ha! I’m still more or less pleased with how the thesis is progressing.
Jasna and I just got back today from a spur-of-the-moment camping trip. We’d been wanting to have a couple days just for the two of us for a while now, and our schedules aligned, so why not? We thought camping would be more fun and relaxing than anything else, and I’ve wanted to see the towns along the Grand River forever, so we combined the two and went to Rock Point Provincial Park: it’s virtually right where the Grand River empties into Lake Erie and necessitates driving along the Grand River, a fairly nice drive.
I’ve got a grand total of 3 pictures from the trip and I’m happy with that. It wasn’t the sort of trip to you take to take pictures of. Apparently the park is known for its fossils, but we didn’t go hunting for those, either. We went down to the beach a few times — twice for moonlight swims — and spent most of the rest of our time in our campsite sitting around and talking and enjoying one another. We got a nice campsite with fairly good privacy and shade, and none of the campsites directly ar
July 2, 2010 in Personal | Comments (5)
This article is for you if you’re a Canadian football fan, you don’t have cable TV, you use an operating system which doesn’t run Microsoft Silverlight (such as Linux) and you can’t afford to go out to the bar all the time to watch football games. I may have described only one person (myself), but just in case there’s another person out there, I will describe to you how to watch your football games. I should say that while I’m no lawyer, my understanding is that what I describe here could become illegal should Bill C-32 pass, and we all hope it won’t.
The first and most important part is to install rtmpdump, a utility which you will use to actually download the video stream. I’m using a relatively ancient version of rtmpdump and I don’t think it matters particularly which version you use.
From there all that is needed is a way to get the rtmp URLs of the game you want. To use the script below, you give it a link to a game you want to download — something of the form http://watch.tsn.ca/cfl-games-on-demand/week-1-alouettes-vs-roughriders/ (one of the best football games I’ve seen in a long time, incidentally) — as an argument. It then extracts the clip IDs for each quarter (including overtime, if needed), determines the rtmp URL for each video clip, and downloads the video files in sequence.
#!/bin/bash
match_name=$(echo “$1″ | sed ‘s,\(http://.*\)\(week-[^/]*\)\(.*\),\2,’)
q=0
# get through all the videos (quarters) linked to by the given game (“episode”)
for i in $(wget –q –O — “$1″ | fgrep ‘#clip’ | sed ‘s/\(.*#clip\)\([0 – 9]*\)\(.*\)/\2/’ | uniq) ; do
src=$(wget –q –O — “http://esi.ctv.ca/datafeed/flv/urlgenjs.aspx?vid=$i” | sed ‘s@\(.*\)\(rtmp://.*\.flv\)\(.*\)@\2@’ | tr –d ‘\n\r ‘)
echo “saving from $src“
echo “saving to $match_name-$q.flv“
rtmpdump –r “$src” –o “$match_name-$q.flv“
q=$(($q + 1))
done
# create dummy file so we don’t know beforehand if a game went into overtime
if [ $q –eq 4 ] ; then
touch “$match_name-$q.flv“
fi
It’s worked well for me but there are certainly no guarantees about it. CTV could break it easily if they so wanted (if you’re reading this, CTV, please don’t be meanies. Let’s be BFFs). The only unfortunate downside to it is that CTV potentially loses out on some advertising revenue. My recommendation is to stare extra hard at the commercials to make up for it on the days you do go out to the bar to watch a game. Heading out to the stadium — at the very least whenever the Riders are in town — would also be a nice way to support the league and TSN for putting games up online.
This article is for you if you’re a Canadian football fan, you don’t have cable TV, you use an operating system which doesn’t run Microsoft Silverlight (such as Linux) and you can’t afford to go out to the bar all the time to watch football games. I may have described only one person (myself), but just in case there’s another person out there, I will describe to you how to watch your football games. I should say that while I’m no lawyer, my understanding is that what I describe here could become illegal should Bill C-32 pass, and we all hope it won’t.
The first and most important part is to install rtmpdump, a utility which you will use to actually download the video stream. I’m using a relatively ancient version of rtmpdump and I don’t think it matters particularly which version you use.
From there all that is needed is a way to get the rtmp URLs of the game you want. To use the script below, you give it a link to a game you want to download — something of the form http://watch.tsn.ca/cfl-games-on-dema
June 9, 2010 in Personal | Comments (4)
Tags: operating systems, rants
I bought a new laptop a couple days ago. For the past 6 years I’ve been using Macs just about exclusively; for the past 3 years or so it’s been my MacBook that’s been my main machine. However, for the past several months I’ve been increasingly annoyed with the MacBook: the case is cracking; the trackpad button is sticking; and, something which matters to very people other than me, Apple has been slow in fixing some bugs and the source code wasn’t available for me to fix them myself. So, after much deliberation, a couple days ago I picked up a Toshiba Satellite, on sale and marked down even further because it was a demo model. According to the specifications it’s better than a modern MacBook in pretty well every way, and at about one quarter the price. The only downside was it didn’t run OS X, which I was becoming disillusioned with anyway.
I intended to run OpenSolaris on it because I quite like the technologies in OpenSolaris. Unfortunately OpenSolaris’s hardware support is very poor, but the laptop I bought looked like it had the highest chances of working, and it was very highly rated by Consumer Reports as well. After trying various OpenSolaris distributions and developer builds, I’ve come to the conclusion that it’s not going to work, at least not yet. It was probably naïve of me to think I could get my wireless card working under OpenSolaris.
(more…)
I bought a new laptop a couple days ago. For the past 6 years I’ve been using Macs just about exclusively; for the past 3 years or so it’s been my MacBook that’s been my main machine. However, for the past several months I’ve been increasingly annoyed with the MacBook: the case is cracking; the trackpad button is sticking; and, something which matters to very people other than me, Apple has been slow in fixing some bugs and the source code wasn’t available for me to fix them myself. So, after much deliberation, a couple days ago I picked up a Toshiba Satellite, on sale and marked down even further because it was a demo model. According to the specifications it’s better than a modern MacBook in pretty well every way, and at about one quarter the price. The only downside was it didn’t run OS X, which I was becoming disillusioned with anyway.
I intended to run OpenSolaris on it because I quite like the technologies in OpenSolaris. Unfortunately OpenSolaris’s hardware support is very poor, but the laptop I bou
May 29, 2010 in Personal | Comments (1)
Tags: space
Every now and then I find something that blows my mind at how awesome the Internet is. The first mind-blowing experience for me was more than 15 years ago, when I discovered the Future Crew’s home BBS in Helsinki, Metropoli, was online, and I wouldn’t have to wait months to get the latest demos out of Finland anymore.
Today it was finding 360º panoramas of the moon. Check it out right now. I’ve always wondered what it would be like to stand on a foreign world. And yes, I’ve seen the movie Moon, but it didn’t quite do it for me. These panoramas were really amazing for me, though, probably the closest I’ll ever get to standing on the moon myself.
The Apollo 17 panorama is probably my favourite due to the geography of the area, the boulders and “mountains”. The Apollo 12 panorama is nice just to appreciate how ghetto the lander was and how incredible it is that NASA was able to pull the missions off so well given the technology of the time.
Every now and then I find something that blows my mind at how awesome the Internet is. The first mind-blowing experience for me was more than 15 years ago, when I discovered the Future Crew’s home BBS in Helsinki, Metropoli, was online, and I wouldn’t have to wait months to get the latest demos out of Finland anymore.
Today it was finding 360º panoramas of the moon. Check it out right now. I’ve always wondered what it would be like to stand on a foreign world. And yes, I’ve seen the movie Moon, but it didn’t quite do it for me. These panoramas were really amazing for me, though, probably the closest I’ll ever get to standing on the moon myself.
The Apollo 17 panorama is probably my favourite due to the geography of the area, the boulders and “mountains”. The Apollo 12 panorama is nice just to appreciate how ghetto the lander was and how incredible it is that NASA was able to pull the missions off so well given the technology of the time.
May 22, 2010 in Personal | Comments (1)
Tags: rants
Today’s xkcd is so validating. I first stumbled across the GNU manifesto probably in 1996, when I was in high school. I wanted to teach myself C and a good way to do that was to use the DJGPP compiler, which led me to GNU. I didn’t really think much of it at the time except that these “Free Software Foundation” people took software way too seriously, but I was happy to have a free compiler to play with.
(more…)
Today’s xkcd is so validating. I first stumbled across the GNU manifesto probably in 1996, when I was in high school. I wanted to teach myself C and a good way to do that was to use the DJGPP compiler, which led me to GNU. I didn’t really think much of it at the time except that these “Free Software Foundation” people took software way too seriously, but I was happy to have a free compiler to play with.
About two years after that, I installed Slackware Linux. It was the first Unix I’d ever used and, consequently, the only logical operating system I’d used up to that point. I fell in love with it immediately. Unix itself was fun, but the fact that the source code was available for everything and I could tinker with everything was a big draw. I fell in love with free software almost as quickly as I fell in love with Unix.
I spent the end of my high school days and all of my undergraduate days with Slackware, making little contributions to free software projects here and there where I found the time. I als
May 3, 2010 in Personal,Research | Comments (0)
Tags: assembly, Itanium
This is a follow-up to this post. Mark was magnanimously amazing and bought an Itanium machine for “the lab”. It’s currently sitting in my apartment. I’ll make another post tomorrow, I expect, where I actually get to play with it properly, but I thought at the very least I’d make a post about the headaches of actually getting it working.
Go through the pictures and read the running commentary because I’m not going to repeat the pictures here.
Sadly the machine is noisy and relatedly probably quite a power sucker. It’s in the corner of the living room, not far from where Jasna’s office is so I’m not going to be able to leave it on very often, I don’t think. The noise would probably drive Jasna crazy.
I should say I still haven’t got a chance to really sit down and play with it — namely play with the assembler — like I planned because HP-UX needs so much more setting up. I’m going to have to install pretty well the entire GNU userland because HP’s userland is absolute garbage.
This is a follow-up to this post. Mark was magnanimously amazing and bought an Itanium machine for “the lab”. It’s currently sitting in my apartment. I’ll make another post tomorrow, I expect, where I actually get to play with it properly, but I thought at the very least I’d make a post about the headaches of actually getting it working.
Go through the pictures and read the running commentary because I’m not going to repeat the pictures here.
Sadly the machine is noisy and relatedly probably quite a power sucker. It’s in the corner of the living room, not far from where Jasna’s office is so I’m not going to be able to leave it on very often, I don’t think. The noise would probably drive Jasna crazy.
I should say I still haven’t got a chance to really sit down and play with it — namely play with the assembler — like I planned because HP-UX needs so much more setting up. I’m going to have to install pretty well the entire GNU userland because HP’s userland is absolute garbage.
April 26, 2010 in Personal | Comments (0)

Don’t worry: I haven’t actually lost my cat. A year ago I did temporarily — for about a day. I made up a flyer and was going to get it printed in the morning, but thankfully she came back during the night.
I just stumbled upon this flyer and thought maybe it could be some use to someone. A quick Google search shows there isn’t much out there for lost pet flyer templates specific to iWork’s Pages application. Maybe this template could save someone a few minutes of work; who knows.
I’ve provided a PDF preview of the template, as well. The flyer was designed to have very little information — only the important information — and to be highly visible. I think it should work well in black and white, though I haven’t tried it. I’m not a graphic artist and I can’t claim it’s good, but in my opinion it’s at least not terrible.
Without further ado, here is the lost cat flyer template specific for iWork Pages.
Don’t worry: I haven’t actually lost my cat. A year ago I did temporarily — for about a day. I made up a flyer and was going to get it printed in the morning, but thankfully she came back during the night.
I just stumbled upon this flyer and thought maybe it could be some use to someone. A quick Google search shows there isn’t much out there for lost pet flyer templates specific to iWork’s Pages application. Maybe this template could save someone a few minutes of work; who knows.
I’ve provided a PDF preview of the template, as well. The flyer was designed to have very little information — only the important information — and to be highly visible. I think it should work well in black and white, though I haven’t tried it. I’m not a graphic artist and I can’t claim it’s good, but in my opinion it’s at least not terrible.
Without further ado, here is the lost cat flyer template specific for iWork Pages.