2008-03-29

Irregularly Scheduled Update

Hurrah, the school semester is almost over. This will be my last semester on campus. I actually need one more German course that I hope I will be able to take via distance ed. from the University of Waterloo, and then have my degree conferred unto me in October.

Responsibilities left to me include a 5 page paper for Trends In Distributed Information Systems and a paper assignment in Databases. I have had a very slow start to to-day, so I will have to surrender part of my night to this.

I keep having things to write about and feeling I haven't the time. I used to make the time, as this was a desirable method of procrastination. I have more preferred methods of procrastination. Oh well.

Tech Tidbits

An update on Belladonna: she refuses to boot up again. Now that I know that a problem still exists in the current configuration, I can try replacing the hard drive and seeing if that will repair the issue.

Tourniquet II, my old desktop, has been resurrected at my father's home, and I set it up, connected it to the Internet, set up a dynamic DNS hostname for it and an SSH server, ensured it would connect to the Internet on boot without having to log in (silly Network Manager), and enabled firewalling, filtering all except port 22. Then, I decided I didn't like runlevel 5 and changed it to runlevel 3. Sure, X doesn't come up anymore, but I forgot that the SSH server was only activated for runlevel 5. I tested that the machine still connected to the Internet (by SSHing into my school's network) but failed to SSH back :( Ah well. I'll be visiting home again next weekend before exams (likely to do my taxes). I am really interested in having a remote server that I can use. However, I can't rely on my father to troubleshoot any issues (he has never even used a computer's keyboard before) beyond pressing the power button. Sigh.

Teachers and Scripts

I am a TA for CIS*1200 at my university. It teaches first year students how to use Office applications (hopefully to good effect), and how to build cursory web pages (via a combination of Microsoft Web Expression, HTML, and JavaScript). We have spent a lot of time (3 weeks) on JavaScript and the learning process is quite painful. I wonder whether this relates to the nature of the instruction they receive, and whether it is appropriate. I didn't know much about computer programming when I took CIS*1650 in first year, but it didn't prove challenging. Two of my good friends later took it at my recommendation and they both enjoyed it, one taking the follow-up course CIS*2650 the next semester. We TAs are also under instruction on how to assist. There are some ... stylistic choices that are being enforced for managing cheating that I don't think are appropriate. The assignment that they've had to do and the non-human resources they've had to help them are ambiguous and confusing.

I have helped quite a few people gain the insight they need to complete their assignments, and while it feels rewarding, it begins to wear me down, seeing the same systemic issue again and again and not being allowed to fix it at the source. I am quite happy with how much effort a number of the students have put into it. Someone called them ``keeners'' which I think is supposed to have a negative connotation, but I don't think it applies to them (let alone that it should be negative). Interacting with them (and the rather large class in general) has helped my social skills, I think. I am much more comfortable presenting in front of large audiences now (well, drama had gotten me half-way there in high school). I think I can also help people without actually doing the work for them, or seeming too condescending. I very much like helping people, but want to do so in non-repetitive ways. I hope to never do tech support :)

A very nice effect of helping people beyond satisfaction for me is self-esteem. This isn't very nice, but when I can confer assistance onto someone else, this means I have succeed somewhere in life and am not "lagging behind". Sigh me.

Medicinal Uses

The man whom I call my best friend attends medical school. I now like to say, when giving amateur advice on medical concerns is ``I'm not a doctor, but my best friend is.'' I suppose he is not yet, but that won't stop me. I can also assert things about animalia, stating ``I'm not a zoologist, but my girlfriend is.'' Tee-hee. Authority via acquaintance. I haven't seen my medical friend in a while, and haven't communicated with him much either. I tend to drift between best friends, using the term to classify the person who best provides friendship at a given moment. Tee-hee. I may not get to see him for another 2 years given my current plans, but more on that below.

An Adventure Begins, Fatalism Be Damned

Will my father survive my absence? I wonder quite a bit. I am not very concerned. As my girlfriend points out, despite his age, he is in very good condition (note how I refrain from using ``excellent''?). Also, and not to be callous, he will die eventually, and I can't postpone life to wait for it (which I expect will take multiple decades, anyway :) Anyway, the absence that makes my mind wonder about such consequences in time is my great Westward Adventure. I have gone to B.C. before and now I go again, but it is only a stop along the road this time. A long stop, but still. I head to New Zealand in pursuit of graduate studies.

I am not sure how things will work out. Whether I will be accepted into a graduate programme. Whether I will be able to afford tuition, let alone the flight. Whether I'll be able to work in between, so that I can raise the necessary funds and whittle away my student debt. My girlfriend comes along and shares in the academic quest. In medieval fashion, our adventure begins in April and we don't expect to arrive until December, regardless of the air speed velocity of a swallow, laden or not. The first leg is on the cheap (you always pay more for the second), and we fly cross-country via Greyhound. (This journey will be the inspiration behind the preconceived G21.)

Are these plans tentative? Well, we're betting a few hundred dollars that they're not, as we purchased our tickets to-day (for BC, as we cannot afford NZ quite yet). Employment must still be found, accommodations acquired, and a new way of living prepared. I'm going sparse (on my person, Flesherton will bulge with my history of acquisitions). 5 days worth of clothes, not a full week. A violin. A 11.5" tablet. A camera, its bag wither batteries. Keys, a swiss army knife, chopsticks. Identification and a much lightened wallet. Keys? For what? Alright, one less thing. Except for the clothing and violin, all my life will be carried in a little, spiffy and new satchel at my side. Steal it and you steal me- I hope you don't mind vegetarians.

Incidentally, my sister will get to see me again while my father won't. My brother? Due to his surprise pregnancy, I hope to not have to return for his wedding (it likely being postponed). Good bye Spade. I will try to run with you a few last times before the end.

A Near Miss

It hasn't quite hit me, this ending of University. I think that, had certain opportunities been taken, had I been more diligent about a few things, I would already miss it much more. But I do not. I will miss Vlad a bit, but hope to meet up with him again past 2010. The ``elevensees'' have a somewhat analogous group here. A year behind, and easily impressed by `gdb' :) Actually, I think it all maps quite well to the end of high school (except I enjoyed high school more at the end). Guelph wins for my girlfriend's presence, though :).

Particular professors? I never made very strong bonds. My best professors were not the type I could really associate with outside of class, even in an academic capacity. High school teachers were much cooler for that. Perhaps if I had gotten more involved earlier on, I would have developed stronger attachments. Ah well, there's always grad school.

The city? I began to appreciate it more since dating my girlfriend, but it's been winter here, and it's not easy enjoying it through the bitter cold. I won't have much winter for the next two years at least, so I suppose I should do what I can to maximise my experience with it :) Housing? I haven't had a very enjoyable arrangement in almost a year. I mean, I enjoy living with my girlfriend, but I have had massive issues with the cleanliness of the kitchen. The place before had coldness. The place before that what was the Waterloo Wastehole.

I was frequently told that my years at University would be the best of my life. I am glad to say I expect to have many greater ones to come.

Back to the Future

So, there is a lot I hope to do before death. Make my girlfriend smile. Again. And again. And again and again and again. Contribute to open source. Contribute to the world. Be of use. Be of the world. I will write on this when I have more time, when I should not be writing portions of my paper. Au revoir.

2008-03-10

more computeries

the undead acer

I haven't been able to make Belladonna reproduce its hard drive errors it was experiencing so readily the other week. I did run badblocks on it via `e2fsck -c -c' (two -c's for safe read-write, instead of just read). It was kind of annoying, because, though I was running it from a LiveCD, it kept complaining that the drive I was trying to run it on, /dev/sda5, was already mounted. I had not mounted it, and mount knew nothing about it, of course. I think it has something to do with the logical volume manager. I ended up running something like

e2fsck -c -c /dev/VolGroup00/LogVol00
Which got the job done. It claimed my file system had been modified at the end but didn't report having found any badblocks. Running
smartctl --test=long /dev/sda
also claimed that no errors were found. Since I activatd smartd, I have 141 UDMA CRC errors:
199 UDMA_CRC_Error_Count    0x000a   200   200   000    Old_age   Always       -       141
But that's without experiencing any of the failure I was seeing before. Sigh.

So, I'm making use of Belladonna at home, but I'm not trusting it with any important data yet. It has to regain my confidence (which I'm not sure if I should eer give it :) It just gets to be of use here. I think I might like to set it up as a sort of desktop, but that would require desk space and I'll have to check with Liv about its availability. It would be much more convenient than my CRT monitor :) When I get my other ``new'' USB disk (that I'm purchasing off my brother), I could set up a software RAID between it and my other one (named after my hometown).

computer sales

I am pleased to see a $450 PC at Future Shop that has all the specs (and more) that I'd recommend to any PC seeking friend. It is 64-bit, dual core, AMD-rated at 4400+. For memory and storage, it has 2GB DDR2 memory, a 320GB HDD at 7200RPM, and a 16x dual-layer DVD burner. Sadly, the video card is an awful integrated ATI Radeon X1200 and the OS is Windows Vista Home.

Recently someone said that ultraportable and inexpensive laptops like the Asus Eee PC would provoke a ``race to the bottom'', where power-driven innovation would slow down. I'm not opposed?

2008-03-07

The Management

So the demise of Belladonna hasn't had too great a negative impact. I seem to have been able to rescue all (?) of my data onto my external hard drive and my tablet PC skedge suffices for all my needs. However, in quite a few ways, I don't feel comfortable making Skedge my primary system yet. Consequently, a lot of things I used to have set-up aren't. For example, encryption for Pidgin. I am setting that up now, but I've let things go for a while without. My finances are in limbo, in that I haven't updated my budget (and due to a certain sublettee). A dozen desktop customisations that I miss remain missing. I don't even have half of the scripts I used to use so frequently. School puts everything on pause, it feels :| Changes I'm thinking about is to start using public key encryption more, employ content versioning for my /etc, ~/.gnome2 and other configuration directories, get a server running near constantly, etc.

2008-03-02

synergy meets cartography

Yay for aliases in synergy.conf.

I now have a more generic synergy.conf that uses west, centre, east as hostnames and just assign aliases to whichever boxes I'm using at the moment. That'll make editing it when I come into the lab a bit easier.

It's kind of funny, though, the lag of my laptop when typing in blogger. It's pretty significant when I couple it with the network lag of synergy. Haha. I think I won't edit much in here ...

Victory is Mine

So, I can finally use synergy securely in Thornbrough now.

install synergy
I need to install synergy. However, I'm a mere user on Ubuntu Feisty, and I can't compile it. Compilation complains about a missing Xtst library, which is present in a fashion, and which I can persuade it through any means known to me to detect it. However, it's not very necessary, as I can download the .deb via http://packages.ubuntu.com and use dpkg -x to extract it into my $HOME/local. Yay.
configure synergy
This was simple. I copied the example configure file I had extracted to $HOME/.synergy.conf and set the right hostnames.
secure it
The synergy website recommends, on the clients, forwarding the server's port locally to the synergy server host via SSH, and then connecting the client to the server 'locally' (the traffic of which is all sent encrypted over the wire/air).
ssh -f -N -L 24800:server-hostname:24800 server-hostname
That's a great idea, except that the machines here don't have sshd installed. Consequently, I can't log into the synergy server host to forward the port.
install sshd
Alright, back to packages.ubuntu.com, download openssh-server, and extract it to $HOME/local. Try to run - uh oh, this will require some configuration.
configure sshd
  1. sshd re-exec requires execution with an absolute path
    So, first, it needs to be run via its absolute path. Alright, create a wrapper script in $HOME/local/bin to it.
  2. /etc/ssh/sshd_config: No such file or directory
    Then, it needs to find a configuration file. Let's add an empty $HOME/local/etc/ssh/sshd_config and pass it as an argument to sshd's -f option in my wrapper script.
  3. Could not load host key: /etc/ssh/ssh_host_key
    Could not load host key: /etc/ssh/ssh_host_rsa_key
    Could not load host key: /etc/ssh/ssh_host_dsa_key
    Disabling protocol version 1. Could not load host key
    Privilege separation user sshd does not exist
    Now, there's no host keys found. Alright, let's use ssh-keygen to generate some.
    ssh-keygen -f $HOME/local/etc/ssh/ssh_host_rsa_key
    And specify the file location in the config file.
  4. Disabling protocol version 1. Could not load host key
    Privilege separation user sshd does not exist
    Hmm, it's complaining that it can't find one for protocol 1. Let's tell it to use protocol 2.
  5. Privilege separation user sshd does not exist
    Can't use privilege separation because of no user sshd, eh? I guess we'll have to do without :( Add another config line.
  6. Silent death? Try '-D -e' options.
    Bind to port 22 on 0.0.0.0 failed: Permission denied.
    Cannot bind any address.
    Right, can't bind to port 22 as a stupid user. Well, there's plenty of ports I can bind to (like 3636). Another line in the config.
  7. Still fails, '-D -e' again.
    Couldn't create pid file "/var/run/sshd.pid": Permission denied
    Alright, I bet I can change the PID file path in the config - yup, set a new line.
  8. Just for the heck of it, let's say yes to PubkeyAuthentication and X11Forwarding, just in case.
run sshd
Finally, everything seems to work. I have to add `-p 3636` to the ssh forwarding statement to ensure it can find the port I'm using for the sshd server. I run sshd with '-D -e' so I can see any errors.
run synergys
Runs as normal on the server host (the one with the keyboard and mouse to be shared)
run synergyc
On the clients (the ones whose keyboards don't matter)
$ ssh -f -N -L 24800:SYNSERVERHOSTNAME:24800 SYNSERVERHOSTNAME -p 3636
$ synergyc -f localhost

For those it might interest, here's my final sshd_config file, mildly censored.

Port 3636
Protocol 2
UsePrivilegeSeparation no
HostKey /path/to/my/ssh_host_rsa_key
X11Forwarding yes
PidFile /path/to/some/user/writable/run/sshd.pid
PubkeyAuthentication yes

And here is my sshd wrapper

#!/bin/sh

$HOME/local/usr/sbin/sshd -e -f $HOME/local/etc/ssh/sshd_config "$@"

For those not in the know, $@ in bash matches arguments I passed to the script. '-e' is to print to stderr rather than the syslog.

Watch as I type!

Good news, bad news.

My keystrokes are currently traveling in plain text across the Thornbrough lab's LAN. This is because I got synergy working again. Previously, I use to compile synergy for my usage. I can no longer since the latest system upgrade. I have discovered, at least, how I can sort-of install things without root in Ubuntu.

Essentially, I use this command:

dpkg -x <packagename>.deb <pathtoinstall>

I generally install local things I built to $HOME/local or $HOME/.local. I am wondering in which cases Ubuntu packages would fail when simply doing `dpkg -x`. I should learn more about how such things work. Now, if only I could SSH from one machine into another for my greater security.

Oh, and isn't it scandalous that classes here still recommend FTP and telnet over SFTP and SSH? I believe it has something to do with Windows OSes only providing the former by default. Nargery.

TERM: undefined variable

So, I have had issues with scp'ing and sftp'ing into machines that change from csh to bash via .cshrc. The protocols for both SCP and SFTP operate over an SSH shell, so if strange text is delivered to them and they can't handle it, they fail. If the first thing that happens when they SSH into the machine is that the shell underneath changes from csh to bash, they get confused and fail or hang. Consequently, I had added the following code snippet to .cshrc on such machines:

if ("$TERM" != "dumb") then
    exec bash
    exit
endif

However, on one of them, I then see printed to my screen "TERM: Undefined variable". So, I have now updated the .cshrc to check whether it's defined, too:

if ("$?TERM") then
    if ("$TERM" != "dumb") then
        exec bash
        exit
    endif
endif

Yay, better workiness.

Spangled with stars

"The New York Philharmonic becomes the first Western orchestra to perform a concert in North Korea." - The Wikipedia

Neat!

she smells like roses

A reminder of what was once, and what could be yet again. Fond memories are excellent. I haven't had much time to indulge in many recently. I'm very satisfied, except with my workload. I will appreciate working again, where I can be saturated and feel productive, rather than oversaturated and feeling foolish.

I'm very glad that I resumed working in the labs this semester. It's in part due to my TA-ship which sees me scheduled almost every week day in the labs for a couple hours, as well as a reunion with a good friend from first year. It's always a bit frustrating dealing using a computer administered by someone else. At least I can compile most of the applications I need (yay emacs), but there are others that prove more difficult (synergy). The labs also give me the opportunity to help peers who find themselves in the odd quagmires. It helps vindicate some of my programming and learning practises.

Leaving campus on the late bus this evening, my girlfriend and I were joined by two of my peers, each with their own qualities. One is lofty, the other remarkably level-headed. It occurred to me that the group wouldn't make a miserable cast for a Digimon season.

Labels

#Microblog #General friends gnome google #School blogger linux school food web fedora life music bugs guelph technology #GNOME development kendo kosmokaryote ta vegan cell phones firefox open source computers internet picasaweb skedge speech Flesherton android birthday future git happy iaido jodo nlp security sleep vegetarianism winter work dad evolution gxml libgdata nature pidgin reading speechdispatcher stress vancouver christmas genderguesser liv phone travel ubuntu vala wind mobile #Development acer blogging canada dreams fun gitorious nightmares snow video writing xorg Nintendo ai anime baking cake cold cookies css djaqua family gdom german gseta halloween new years new zealand night people rhythmbox tablet x11 New York Toronto animal welfare art autumn bc books breath of fire II cat chocolate comments communication conversation dataloss duplicity environment flight gdata greyhound gtk home humanity laptop love math money morning movies nz pizza poverty programming psychology rain responsibility shopping sick tea the legend of zelda uoguelph vonage Hugo Nexus One Sudbury adventure age animals apple audible bash busy computer science data loss emacs encryption failure fedora 12 fedora 16 galaxy nexus germany gnome blog goals green health icarus im japan java laundry libxml2 magic mail mail-notification materialism memory muffins nerdfighteria netflix pets photography play politics privacy python quiet thrill receipts research rogers skating sound soy milk space sports stars style sushi synergy transit university value village video games weather web development webschwerver xml yojimbo Blassreiter CIS*2750 CIS*6890 Dutch Blitz Electric Networked Vehicle Empathy John Green Lord of the Rings OCUS Scott Pilgrim Thanksgiving The Frames Trick or Eat US animalia arboretum argument backup bad movies banana beard belladonna beta birds blogs brain breakfast browsers bus business calm catastrophe chat childhood clock colour confidence context cooking corporations cottage cthulhu culture dbus decay depth design discomfort dns dodgeball emusic energy english enhanced history evil exercise exhausted facebook fail feelings ferry film free friend fruit games gardening ghetto ghosts gmail google reader google wave google+ green roofs gsoc hair heat hungry ice cream imaqua instant messaging intelligence interest internet explorer japanese javascript joy knowledge language light loss lost macbook meaning melancholy memories mom namespaces neural networks news nintendo 3ds oceans oh the humanity pain past patches perl philanthropy pie pirates politeness preupgrade productivity pulseaudio purple quidditch recipes redundancy rpm rss rsync sadness science seasons senility sentimental sewing sharing sheep silicon motion sleep deprivation sleeping in smells software songs ssh star wars summer technical communication and research methods telephone test time time and space tired tragedy upgrade urban ecosystems via vihart vlogbrothers voice walking warmth water wave web design wild wireless wonder world youtube yum zellers #Wishlist 1602 1984 24fps 404 API All My Children Argentina Avatar: The Last Airbender Businesses CIS*6050 Christopher Plummer Claymore Con-G Creatures Darker than Black David Attenborough Dear Wendy Docking Station Dollhouse Dunedin Elliott Brood England Europe February Fergus Final Fantasy IX GNOME 3 HTC Hank Green I believe in a thing called love Ireland JRR Tolkien Melodies of Life Montréal Mother Mother Neil Gaiman Network Manager New York Philharmonic Nintendorks Norns North Korea NotesFromNewYork Ontario Orphen Oscars PEAP Pete Peterson Planet Fedora Questionable Content SIM Wireless Samsung Santa Claus Sauble Beach Snakes and Lattes Star Trek Steve Grand The Darkness The Hobbit The Stand Tianjin Tolkien UK Wolves in the Wall WordPerfect abrt advertisement aeroport airport express ajax al gore alarm clock aldiko algonquin alien alone ambition amusing amy winfrey angry birds anhosting anime north anon anxiety apology arcade ask assignments association analysis asynchronous ati automarker autonomous automobiles avatars awesome backtrack3 backyard bounty bandwidth banks baseball bathroom bats battery beaches beauty bed bees beetles bellaqua berlin bertrand russell bill gates biometrics black and white blockbuster bloomberg blue bohemian bonds book border boredom branding buffy buses buttons c# c++ cafe calligraphy camera cancer candy cards careless cars cast causality cbc celebrate certainty cgi challenger chaos theory charity charm cheap cherry blossoms chickens china chopsticks christianity chrome cities clarity classes clean cleaning clorox clorox green works cloud clubs cname codeviz coins comfort community compassion competence competition compiler compliments concert conservation consumption contagion contributing convenience convention cookie copyright corpses country court crafts crashes crates creative commons creativity criminals crosscanada cry cryptic csh cult current tv customer service cvs dance dark themes data mining databases death debug symbols debugging decor democracy desktop desktop summit despair digimon digital receipts disabilities disaster dispute dissection kit diy doubt dpkg drab dragon drano drano prevention drawing dress dtwydt dust dynamic typing e-mail earth earth day easy eating ebooks ecards economy editors education eeetop eggs el paso elections electronic receipts email enchant enterprising environmental science symposium eog epiphany eplugin equality equipment errors ether evoaqua expectations exploring ext3 extortion faery fest falafel fall familiarity fan favicon fears fedora 11 feed me fibonacci fiction file systems fire fireworks fish flexibility focus fonts forceps forgottotagit fork formal fortunate frameworks freedom freezing french fries friend's wedding fspot full moon funny furniture game boards garden gay rights gdb geek gifts gimp gio globalnewtgames glory gloves glue gm gnome keyring go ninja go goodbye goodfella's google books google talk government gp2x grad gratitude grey county groceries groups guerilla gardening guts habits haircut hal harry potter hdtv heart break help hewlett packard hijinx history holidays homelessness homework homosexuality horatio hornblower horror hot house howl hp hp lovecraft html humblebundle humour hyrule i am a carpet ibm thinkpad x41 ice ice cream sandwich ill inadequacy inconvenience industry information ink innovation integration interlocutor internet tv io irish it it is indigo jabber james bond jedi jobs julie thiel justice kayak kernel keyboard killme kinder kirby kiva knife knots koodo labels labs landau sacamoto languages late laurena law learning letstrace letter writing letters libnotify librpm libxml lilo limericks limits linksys live wallpapers livejournal loans local local food local install losher lyrics mac mini madness majesty malaria mario marketing martial arts massages matrices meat in vitro medicine meow metacity metadata microfinancing micropayments microsoft microwaves milk mind mindhacks missed the boat missing mold monitors monologue mood moon mosquitoes moss motivation mozilla mtp muffin muffinfilms mundane murder mushroom soup mystery nameservers nasa national treasure nausicaa navigating neighbours netgear network new users next year ninja turtles ninjas nodelist nointernet noise noisy non-root normality nostalgia notebooks notification-daemon novels november fair nuclear war numbers obscure obsolescence ocz olap olive open formats open music open souce open standards optimism orcas orchestra oreo oreos oscar otr overheat packing pan panda pants paper papers patience pattern recognition peanut butter pen pence pender penguins penmanship perfection performance personal pet rocks peterborough philosophy php pickman's model picnik pidgin plugins pintsize pizza hut planning plans plants pleasant plushies podcast pomplamoose positions posse power ppc practise premier preparation pressure private processes progress promise pumpkin pumpkin pie purchases qt quote rad radeon randall munroe raop rats reagan reality refactoring reflection refrigerators release religion resumes reuters rhino rhps road trips roar rot rtm sad salsa samurai sand scary scary movies scheduling schneier schwarting scp script seals search secrets self-interest self-navigating car senescence sensitivity sessions setbuilder sftp shame sheepo pistachio sherlock holmes ships shogun shoulder bag sigh sim city simafort simple sincerity skill skunks sky slackware slashdot sliver smiling snowboarding social society soft someonesmotherwantstoadoptme song sorrow soup sparklers speech dispatcher spellchecking spies spilt milk splendid splinter sshd stanley park starving steampunk storage streamlines stupid sucks sun super mario super mario land 3d surprise surrender survival skills suspense sweet swimming swings swords symphony tabs tasks technocracy teddy bears temperature term termcap testing tests texting the duke the fault in our stars the hulk the onion themes theory thingsidon'twanttodo thinking thought thoughts thrift stores tim mcgraw tim tams timber timbre time management time travel tin tin tools touch screen touchpack tour tourniquet trac tracker tradition trailer translation trees treestyle view trivia trouble truth turtles tv tx2500 tx2617 ugly logos un dinaru underwold unemployment united states updates upgrades uploading urban agriculture usb utopia vampires vanilla ice vday veggie challenge velociraptors velvet burger version control vi violin vlog voip waf waffles wahoo wanting waste web hosting webcomic webfonts webkit weekend weird werewolves what a wonderful town whic are also lazer powered white spot wifi wii wikisource williams wings wizard wordplay working writing voice xenophobia xephyr xkcd xmpp yoga youth z-index zoo

Blog Archive

About Me

My Photo
I am aeronautical, vanship-style.  I am olympic and mythical.  I rest on my laurels.