As part of my new job, I’ve moved across the country to live alone for the first time in my life. I’d never been to Alberta (a province, for the non-Canadians) before, much less Edmonton itself. I’ve also never lived alone, unless you count a week maximum while parents might have been away. I’ve never gone hunting for accommodations, or debated the pros and cons of living in one house vs another. And I’ve never been this far from the people I love - a $400+ flight each way is a much higher barrier than a 5-15 minute walk or drive.
So, this is pretty big for me.
I was set to start work on May 1st, and my mom helped me book a direct flight early that morning. We were expecting to pay a lot, but apparently we were right in time for a sale, because the flight cost just shy of $300 after tax. We got a direct return flight, too, for the end of August - just at a slightly higher price. At any rate, even if it was as cheap as $600 round-trip, I don’t know if it’s worth it for me to go back home. Living expenses are cutting out a huge chunk of my income (nearly half, even if I’m frugal).
Thankfully, parental contribution means I’ll get at least one visit from my girlfriend… But I’m already feeling a lot like a bachelor after being here for a week. Eating the same pizza for supper three nights in a row, anyone?
Anyway, so that’s how I got here. In terms of putting a roof over my head, there happened to be an info session in Ottawa for the UARE program. Just a few days after I found out I’d be applying, in fact! When I went, I found out about the housing “board” run (in part) by the university’s Student Union. Through there, I found a room to rent in a house just one kilometer away - a 15 minute walk, essentially. It’s $650 a month, compared to $500/month for places further away - but I also get a private bathroom and a fridge to myself.
So far: no regrets on the pricier place. I’m loving the location. I can wake up and get to work within an hour if I want. The extra $600 over the course of the summer will be entirely worth it, I think. I love being able to walk whenever I want, instead of having to obey the bus schedule (something I’ve never gotten used to, even after three years in Ottawa). Even though I’m theoretically 30 minutes away from campus in Ottawa, in practice it tends to take an hour for the trip. So there’s a triple benefit of freedom, exercise, and reduced transit time.
On the last point: if we say I travel to campus 20 days out of the month, I’m gaining 13 hours each month in exchange for the $150. Not a bad trade, I think.
I haven’t been here long enough to really evaluate my job itself, but I can say a few things about the University of Alberta campus. First of all, it’s really big. Or at least, it feels big, because their quad is a gigantic, flat, open space. They also have an indoor mall on campus, and today a food cart set itself up in the middle of the quad. I mean, you tell me - do those sound like things that would happen on a normally sized campus? (Though I’ve just realized that the one floor of their mall is probably equivalent to the four floors of Carleton’s University Centre, just horizontal. Still.)
I do need to figure out an ergonomic situation for using my laptop at home, though. I also need to… maybe… meet some of the other three(?) tenants. Find out which name goes with which person. Maybe have one or two conversations with them, even. I’m debating paying for fencing classes while I’m here, though sadly they’re not within walking distance. Still, it worked for me in first year to get a bit of social interaction after I moved to Ottawa. Anyway, those are both aspects of getting settled in.
The other thing where I don’t feel totally settled is food - I’m wary of buying too much, but I’d also like to have some variety. I’m kinda binary when it comes to how much I feel like cooking, and a parent’s well-stocked cupboards at home can support that. The space under the counter where I keep my food, not so much.
Anyway, I just have to treat living alone and moving away as a set of exciting new challenges. The former is tiring to deal with at times, and the latter has left me lonely and restless at times, too. But it’s all part of the grand plan of my life, and four months can go by pretty fast if things are going well.
Speaking of which, I haven’t written anything about my experiences this past school year, or summed up my thoughts about the summer of 2012…
Summer Job, 2013 edition
[[Granted, most people close to me are well aware of this, so it’s not exactly breaking news. To be fair, it’s only been about a month since the job was confirmed. This post isn’t that far past its expiry date… unlike some of the other drafts I have in the works]]
I’m officially working at the University of Alberta for the summer of 2013! I’m part of the inaugural Canadian group of the University of Alberta Research Experience program. In particular, I’m working for the summer with Professors Greg Kondrak and David Beck on a project that was listed on Kondrak’s website. It is, in a word, awesome. It’s going to be great experience, and it’ll be awesome to have references from another university. Also, it means living alone in Edmonton, which I’ll talk about in another post.
But, for now, I’ll settle for talking about how I got the job. A life lesson, so to speak. Step 0 is to know that these kinds of opportunities exist - so you’ve got that one covered, dear readers. In Canada, NSERC and SSHRC have summer internships, the details of which vary from one school to the next - but the basic gist is you need to find someone with funding, and offer to work on something with them. The funding agency (or the school, if the program is like UARE) will cover most of the cost, and the professor pays a much smaller portion of your salary. It’s a pretty good deal for them, too.
For my job last summer, I got started just by asking the head of my department who had funding from those agencies. This year, I told my supervisor, Robert Biddle, that I wanted to work on something that would take me closer to computational linguistics. He racked his brains and realized that he knew of someone at University of Toronto who did work in the area, Gerald Penn, and helped me with my introduction and asking for a phone interview. We spoke, and Penn told me about UTRECS at UofT, as well as UARE. Unfortunately, the deadline was long past for UTREC, but I get the feeling most of Penn’s work isn’t really undergraduate-level anyway.
So then I googled “University of Alberta computational linguistics”, and found this page. The rest, as they say, is history.
And that’s how a plain old interview (which I fervently hoped would turn into a job interview) indirectly got me a job! Networking, y’all. Well, no, networking involves actually building a network. Audacity and asking questions, I guess.
Whatever you call it, the point is you don’t have to graduate from university without any experience. Continuing from above, here’s some steps to follow:
- Pick a thing you think might be interesting, like computational linguistics for me, even if you don’t know the first thing about it. You’ll learn as you go along.
- Then use the internet to find people working in the area, and send a really nice e-mail telling them how great you think they are.
- Tell the great person you’d like to work with how great you are. First, don’t lie. Second, tell them interesting and only slightly off-topic things like “I use Emacs” and “I think Haskell is cool”, which (in my opinion) make you sound genuine and help you stand out a bit. Third, if you’re lucky, have some kind of reference they can contact (can be as simple as mentioning who you’ve worked with before, and on what).
- Admittedly, Step 3 isn’t exactly a perfect set of instructions. Ask someone to look over your e-mail before you send it! They’ll tell you if you sound desperate. Hopefully. Consider asking another academic, like a professor of a class you took, what they’d like to hear in an e-mail from a random student.
- Don’t assume your first attempt will work out, or any of your attempts really. If you get multiple offers and they have conflicting deadlines, be clear with everyone involved where you stand - there was no problem with me saying “hey, I’ll accept this for now, but if I hear back from University of Alberta I’m going there”. Odds are they have backup candidates who are a bit less great than you, but will do an alright job anyway.
You probably won’t be so lucky as to find a professor with a webpage that says “hey, here’s things I’d hire you for” but they may still have something of the right size for four months of full-time work. If you’re feeling shy about contacting strangers, it may help to remember that if you do wind up working with them, it’s a mutually beneficial relationship. If it’s not going to work out, they probably won’t even reply, or they’ll just say “no” and not much more. And that’s okay!
Anyway, next time I’ll talk more specifically about the job and what it’s been like moving out to live on my own for the first time. Spoiler: I haven’t died yet, but on the other hand, I only ate two meals today. Oops.
Firefox summed up in one screenshot.@demi’s reply: you forgot to mention the restarting in order to apply a theme ;}
However, to be fair, these seem like themes. And themes are wonky voodoo magic, and aside from requiring a lot of effort, nobody gives a damn about your work. I’d say themes and other aesthetic extensions get abandoned far more often than extensions that add functionality.
Also Classic Compact is the best theme forever.
Aside from that, it’s pretty easy to force Firefox to accept add-ons that you know are working. Slight problem: if you update and an extension really doesn’t work, you’ll be sad. Anyway, I think this extension is the current solution. Alternatively, Is It Compatible? will let you know when to wait to upgrade Firefox.
PS: I can’t help being a Mozilla apologist, okay! In principle, though, I like that you can dig around in the guts of Firefox beyond anything that Chrome’s API supports. On the other hand, I can’t help but be envious of a lot of Chrome extensions that have no Firefox equivalent because they’re so much easier to make. All of which is to say that I realize I am a flawed human with illogical software preferences!
Board Game Café
600 Bloor St West, Toronto, Canada.
FUCK I WANTED TO DO THIS
how is it possible that i want to live in toronto more
I FOUND ANOTHER REASON TO MOVE TO TORONTO.
I want to go here…
There’s supposed to be something similar opening in Ottawa! It’s called Monopolatte. Unfortunately, it’s been “coming soon” for more than a year, and apparently they’ve had tons of delays with stuff like the ventilation system getting in the way.
Still, let’s hope that it exists some day~
The highest minimum wage in the nation is set to rise again in 2013, as San Francisco’s low-end compensation rate will increase from $10.24 to $10.55 per hour.
In 2003, voters approved a local ordinance tying the minimum wage to the regional rate of inflation in San Francisco, Oakland and San Jose. Set at $8.50 per hour when the law took effect, The City’s minimum wage has increased in every year but one since 2004.
City officials and low-wage worker advocate groups have long argued that increasing the minimum wage helps the local economy by giving service industry workers more disposable income to spend.
In addition, a 2004 peer-reviewed UC Berkeley study found that the rising minimum wage had no impact on jobs or the propensity of employers to leave the area. Instead, it concluded that restaurants in particular passed on increased costs to customers, with prices rising 6.2 percent for fast food and 1.8 percent at sit-down eateries.
A sterling example of how increasing the minimum wage does not hurt jobs.
If you’re American, you should really look at the way minimum wage is handled in Canada. I freaked out a bit when I watched the first episode of Morgan Spurlock’s 30 Days, where he said that the minimum wage in the US was around $5 at the time. In fact, if you’re interested, you should watch that episode. Basically, Spurlock and his then-fiancée tried to survive on minimum wage for thirty days. It’s been a while, but I seem to recall a terrifying visit to a hospital, too.
At the time, I was earning $8.50/hour (I think) working at a convenience store in PEI. I think this was slightly above minimum wage, and if I remember correctly, after working there for two years I was making a bit above $10/hour due to increases in minimum wage. And people still argue that our minimum wages aren’t livable (and in a lot of places, they probably aren’t).
Maybe it costs half as much to live in the United States. Somehow, I doubt it.
Better browsing with an Xbox controller
About a year ago, Lifehacker had an article called “How I Improved My Life with a PS3 Controller”. I cheered inside a bit at the controller choice, because I find the shape of Sony controllers incredibly comfortable. Also, I’ve previously used a PS3 controller to play emulated games, and it was pretty good. However, Bluetooth has never worked on my old laptop (for other devices), and I suspect it’s from installing the janky MotionInJoy drivers. They actually replace the default Bluetooth driver, and so whenever you try to connect another device, it just plain doesn’t work. At least, it didn’t for me - I’d love to have my cake and eat it too, if anyone has had experience with this.
That being said, a lot of PC games have support out-of-the-digital-box for Xbox 360 controllers. I suspect there are ways to emulate experience for PS3 controllers with MotionInJoy or other tools, but realistically it’s never going to be quite right. So for Christmas I asked for a nice wired Xbox 360 controller. I figured I could play more games on my PC if I didn’t have to go through the pain that mouse and keyboard games give me, and actually had sort of forgotten about this Lifehacker article.
Unsurprisingly, I’ve only used the controller to play games three times in the last couple months.
A few weeks ago, as I was cleaning my room, I wondered how I could make better use of the controller. I suddenly remembered the above Lifehacker article, and searched the Internet for a bit to find better software than AutoHotKey and Joy2Key for supporting the controller.
Enter Xpadder. It costs ten bucks, though you can get an older version of the program for free. It works flawlessly, though, and surprisingly enough, has all the sorts of flexibility I would get from AutoHotKey (though you may need to read the tutorial posts to figure everything out). For instance, AutoProfiles allow you to switch profiles based on the current program. I haven’t started using the feature yet, because I’m such a keyboard junkie, but I guess I can imagine setting up various program specific shortcuts.
It’s actually been surprisingly useful for web browsing. I basically copied the layout from the Lifehacker post. I actually browsed without using my keyboard or mouse at all one afternoon, and for a period of time where I couldn’t use my touchpad, controlling the mouse with the analog sticks was totally workable. My one complaint is that it has to be an all-or-nothing affair: it’s never going to be worth moving my hands way from the keyboard/mouse to hit a controller button. And the controller is only worth using if it can be independent. Luckily it can be, as long as you’re just consuming information.
Anyway, I’ve put my config files on GitHub if you’re interested. The .xpaddercontroller files are controller specific setup stuff, if you also have a Razer Onza. The .xpadderprofile files have all the button assignments (you’ll need to have two sticks and… 16 buttons?). There’s only one right now, but I figured if I create more, GitHub is a good place to share them. The one thing that was hard to setup was alt+tabbing - I asked on the Xpadder forum and got a really quick response, which was nice. You can see the required settings for repeated alt+tab in the GUI here. Or just copy to your own profile the lines that involve Alt+Tab in my profile (including the turbo settings).
I’m actually considering upgrading from the Razer Onza to the Razer Sabretooth, which reportedly has better build quality and some other niceties. I won’t unless my Onza really starts to get screwy, though. If I do, I’ll upload the controller configuration there too.
PS: Ironically, I have never owned an Xbox system, because there’s too few exclusives I care about for me to take the leap. They just don’t really make third-party PS3 controllers that are any good (possibly because of the Sixaxis bits - remember that?). The adjustment has been pretty easy, though, and the level of OS support is way better.
Summer 2012 in Desktop Shells
rabbit hole alert: I wrote far more about this than most sane people will want to read, feel free to skip it
“What’s a desktop shell?” I hear the non-Unix folks out there asking. Glad you asked! See, the thing you see when you boot up your computer is a “graphical shell”. On Windows, it’s Explorer.exe, and so on. And there are actually people who try to reimplement all those features and do one better. Or, more commonly, port over stuff that Unix folks have had for a long time (see the many and impossible to keep track of ports of Blackbox for Windows). Because the first one is hard.
Aside from being incredibly ambitious and challenging to complete, replacement shells haven’t been terribly popular lately because since it’s really hard for them to compete with the years of work that have gone into modern graphical shells. It’s pretty hard to get the hackiest Windows replacement shells running on Windows 7 (or at least, on a 64-bit OS) because they’re from the days of Windows XP. And the people who develop them seem to be XP holdouts as well, and so they don’t know what sorts of features they’re trying to compete with for Win7 users.
So where I’m headed for this is that I spent time over the summer crashing Explorer and replacing it with other things and then having to reboot my laptop when they didn’t work. SharpEnviro was okay, and pretty easy to get going, but it didn’t offer a whole lot over the default and had too many rounded corners and pointless chrome. I’ve read some claims that LiteStep works on Win7 x64, but I never really got it functioning properly.
Then there’s the grand mess of Blackbox clones, which allegedly work great - if you read some forum posts that no longer exist and download the right revision of the right code branch which is actually a mod three times removed from the original source. Or something. There’s a really difficult to follow list of forks on BB4Win’s SourceForge website, which is somehow one of the two main hubs for Blackbox. There’s also BB4Win.org, not to be confused with the former, which seems to actually have a community. Oh yeah, and then there’s boxshots.org and LostInTheBox has a forum for shells and sub-forums for BB4Win and its descendents (click the previous link, you’l see them).
Anyway, near as I can tell most plugins are compatible with every version. Unless you’re using an 64-bit build, but then it may just be better to stick with 32-bit builds. So! BBLean, xoblite, and Blackbox Zero seem to be the only modern-ish ones. The former, while old, has a 64-bit build and can be downloaded here. xoblite has a release candidate from 2005, but it also has a nightly build from 2011. I think it’s only 32-bit, though. If you try out xoblite, there’s a pretty comprehensive FAQ available. Finally, there’s Blackbox Zero, which seems to be the most recent of all. It has, I think anyway, builds for 64-bit. And, thankfully, it’s fairly well-documented (in the sense that there’s no hidden options that require you to ask the developer, like in xoblite). Anyway, this post on DeviantArt also recommends just using BBLean - there’s some useful stuff in the comments, too.
So the moral of the story is that Emerge Desktop is the most functional option out of the box. Even though it has an intentionally bad first time user experience. To teach you how to make it not-ugly, I guess. Anyway, once I made all the icons small, minimized the chrome or made it invisible, I got this user interface that I really fell in love with. I had a 32 pixel tall border along the top of the screen for the “taskbar” replacement, and a 32 pixel wide border along the left side for app and folder launchers, and that was it. Nothing extraneous to waste precious pixels on my laptop’s screen. I just had to smile whenever anyone wanted to use my laptop and yelled about how they couldn’t find anything.
But I was always bumping into little annoyances. Things I missed from the Win7 version of Explorer. As you can see in that thread I linked to, I was considering contributing to Emerge. And I made myself a list of tasks to work on. I thought about how cool it would be to be the guy who merges Emerge’s “running programs” functionality with its “app launcher” functionality (something XP lacked, but Win7 makes you wonder how you lived without it). To write code and improve the software I was using right away.
It was, to be honest, an… ambitious list of things I wanted to improve. I probably couldn’t have found time for more than one of those features, since things are never as easy to implement as they are to think up. There were eleven items on the list, and maybe that doesn’t seem like a lot if you’ve never written a decent amount of C++ code. Granted, some of them are on the scale of small bugifxes - at the time, it was possible to scroll past objects placed at the corner of your screen, so that you wouldn’t be able to interact with them. There’s probably a better way to do it, but you could easily hack it together by resetting their cursor position whenever it goes outside their current resolution’s height/width. Then there were whole new features, like adding support for the Windows 7 jumplists, Aero Snap, and that cool progress bar thing you can get in the taskbar.
So, full of the confidence of the young, I figured I could guesstimate how to implement all those things in C++ by myself. If I had infinite time, sure; but as the summer progressed, I realized that I didn’t really want to be a C++ ninja. So I set these goals aside and never even looked at the code for Emerge.
Still, I’m posting this list of things for their sake. Just in case some C++ wizard decides to do the world a favour. I’ve submitted them as feature requests, too. So maybe someone will act on them.
- Jumplists in Launchers for Win7
- Key to minimize/maximize current window
- Aero snap with win+arrow
- Default launcher keys for one launcher, ie, Win+#
- System tray that expands better - scrolling?
- System tray upper level hitbox - can’t mouse above it
- Notify on window title change (ie download compeleted)
- Flashing for notification (ie new message in Miranda)
- Download progress?
- Combined launcher and emergeTasks, or quick transfer of running program to launcher (this is a HUGE annoyance - in order to add an item to a launcher, you have to open up its configuration GUI, click through a few things, go browsing through your entire PC for the executable you want to add, and then a few more clicks to finish. Realizing that a program you’re currently running is one you’d like to have easy access to is a practice in weighing short term pain for long term benefits, and for me, laziness often won out)
- Bettery system tray hiding (see SysTray from the AutoHotKey forums on how to interact with the system tray)
- Something like Desktop Media
Summer 2012 in Games
The last section on my Summer 2012 to-do list was video games. Just for fun, I set aside five games I would have liked to finish. Just in case I fell into a time warp and found myself with infinite time and really needed some way to relax and keep myself entertained. Literally none of these got finished, and that’s okay. I don’t know what games I did actually play, unfortunately - it’s been too long.
- Final Fantasy VI Advance (GBA)
I don’t think I played the game all year, still halfway through.
- Dark Souls (PS3)
I set it aside when our PS3 died, and have yet to go back. I think I’m around Gapping Dragon…
- Nier (PS3)
I’ve finished the first playthrough recently, and continue to be in deep romantic love with the soundtrack. It’s a beautiful gem of a game, albeit one with a lot of rough edges. Probably a few entirely rough, even unhewn sides if we’re being honest. I’ve forced myself to do all the sidequests, with only two left to finish (one of which is absolutely awful, and the other of which was couldn’t be completed after a certain point in my first game and has yet to appear in the second) so I’m extremely overpowered. Because of that, in a couple of hours I’ve nearly finished the first New Game+, which is really more like 60%-of-the-game+, and it’s done a few rather interesting things. I don’t want to spoil it, but you really do have to play it more than once.
- Xenoblade (Wii)
About halfway through this one as well, and I think it’s probably the first true successor to what PS2 era jRPGs were trying to accomplish. Ni no Kuni (PS3) is another, but it’s newer so shh. Enjoyed the heck out of it, and I could generally be found grinning ear-to-ear as I ran around the world and completed stupid sidequests. The hour-at-a-time inventory management sessions were less joyous, but I suffered them gladly. Highly recommended.
- Last Story (Wii)
A bit less far in this, but early impressions are good. I missed the days when jRPGs had stupid frog catching minigames (FF IX and Quina, ‘nuff said), or rewarded you for smacking your head on signs and slipping on oranges. The fact that you can hit your head on low-hanging signs makes me really happy. There are character animations for walking through tight spaces, and lots of other things. It’s very, very polished. However, in retrospect a lot of things in the first few hours were too simplistic to be fun… My brother and girlfriend have both finished it and enjoyed it, so I suppose I’ll go back to see if I can find what they saw in it.
Summer 2012 Projects II
Welcome to part two of the post about my summer projects! Odds are the only person who will read this is me from the future, so hello to future me. If you’re not me, you are probably going to be bored. Just so you know.
- Automatic backup - NAS?
I got my mom an NAS so we could share files with each other, backup to it, stream media to various things, etc. We haven’t really gotten into the optimal usage of it, but it’s been useful for me. I’ve offloaded all my music and other media to it, and just go without when I’m away from home. I’m sure I could access the files elsewhere, but surely that would require uploading from our home network? Which is a hard sell with limited bandwidth. Also, around Christmas I got us a one year CrashPlan+ account for offsite backup (on sale 94% off!), which makes the NAS slightly less important. Nothing set up at dad’s yet, though.
- Website - matthewdarling.com
- Make a professional CV
As of January 2013, matthewdarling.com exists by leeching off of Vael’s web hosting. Yay! As for the CV… I… really need to do that, and I intend to do it before the end of reading week.
- Home Theatre PC (henceforth HTPC)
I initially gave up on this one, because I decided it wasn’t worth spending my own money on. It also wasn’t a whole lot of fun to mess with because there seemed to be so much work involved, even though it’s simple in theory. However, as of 2013, I’m very close to having a system set up on a Raspberry Pi at my dad’s house…
Stuff I gave up on
- COMP 2004 Assignment 4
I didn’t do the last assignment for my C++ class, because I was just noticing I had RSI when it reached an intensity that has thankfully not been the norm. I knew there was no way I could type enough code to finish the assignment, which was fine because our grade was based on our best three assignments. I just studied the material in theory rather than in practice. Thankfully, I did fairly well on the final exam.
Fun fact: I’ve never typed any templated C++ code, but I have written it in pencil for the final exam. Anyway, I wanted to go back and do it for my own benefit, but. Eh. Heavily OOP C++ code. Having to write eight constructors + destructors, yet another linked list class (this time with templates!), a display based on ncurses. Educational, sure, but incredibly tedious.
- Install and test out Conkeror
I cancelled this one because I couldn’t, for the life of me, figure out how to actually install and use Conkeror. I was obviously missing something important, somewhere, but after trying a few things and reading a few wiki pages I decided it wasn’t worth it. Still, an Emacs-esque browser that from my understanding supports my wacky Firefox extensions and userscripts and so on… Actually, I recently discovered it doesn’t support LastPass, which pretty much makes it a no-go for me. Ah well.
Stuff I didn’t touch
- Copy ATMouse in AutoHotKey
I guarantee there’s a lot of similar software, but I thought it would be fun to make this. However, I’ve found an alternative solution that you’ll read about when this series is done!
- Combine f.lux, the Ikea Dioder, a hack that makes it USB-based, and write some messy Python code/shell script to create lights that change with the time of day
I still really want to do this, but a more robust home automation solution may be a better route to take.
- Miranda IM - fix the Xfire plugin’s interaction with the Metacontacts plugin
This seems to have resolved itself, or I’ve just found a way around the issue, but I was originally going to go into uber C++ debugging mode and write whatever patches I needed to get them to play nicely.
- Set up the perfect home office
If I had the money for this, and to do it at both of my parents’ houses…