A month in Edmonton pt 2

        As far as work goes, I’m learning a lot of valuable stuff about natural language processing! I’ve been attending weekly meetings of the NLP research group, and going to AI seminars when the topic seems interesting. I’ll put up some notes from the good ones, I think. Anyway, I’ve been writing a lot of Python code, some of which I think is quite nice. I’ve learned how to process XML data with Python’s iterparse(), which is far more intuitive than any of the DOM-esque approaches I’ve looked at in the past. XML had never really “clicked” with me before this. I’ve also been parsing command line arguments for the first time, using argparse. Similar to the XML thing, I looked at optparse when I first started with Python 2.6, and it seemed sucky. Maybe argparse is a big improvement, or maybe I’m just “better” than I was then - either way, it’s a good skill to have.

        One other thing I’ve learned is that I hate working on things that don’t seem like they’re going to do any good. There was a period of a week or two where I was struggling to get to a point where we could evaluate the real-world performance of some programs we were looking at (more on this in another post). In the interim, I tested the programs on data from English, and the results were really not good. It later turned out that my calculation of the results was wrong (I tried to be Pythonic at the wrong time), and that a non-sensical tweak vastly improved the results.

        But even though the results did get a bit better, I got really demotivated, because I knew I had to keep working on the task. But I also thought that I already knew how it was going to turn out (badly), and felt like I was wasting my time. In the end, things were better than I expected, and we’re back to making forward progress - but it was sucky for a little bit.

        About two weeks ago, I worked up the courage to e-mail the university’s fencing club. I kinda figured I’d never get a response, but it turns out they answer their e-mails pretty quickly! So last week I went out to practice with them, got introduced to everyone, and so on. First, everyone there seems cool (not being facetious, I mean I should hang out with them some time). Second, my co-worker also fences, which is hilariously improbable. Third, man am I out of shape after not fencing for eight months. I could probably fence a few bouts to 15 a year ago, and last week I practically collapsed after five bouts to 3. This week we did drills, and I got some perfectly deserved advice/criticism from the foil coach. But I felt really, really good as I was walking home after practice. It’s nice to be back.

        The hardest part, I think, is being far away from my girlfriend. For as long as we’ve known each other, we’ve generally spent a significant portion of our time together. We text each other daily, chat on the phone every couple of days, and spend an hour or two on Skype watching Adventure Time on the weekends. We’ve got about half of Season 4 left to watch, then it’s probably on to the newest season of Game of Thrones. But anyway, it’s still a lot less time together than I’m used to.

        She’s going to visit in July, as a birthday gift from her parents. Which is sort of the most boring part of the summer, because her birthday is in June, while August has Animethon and my birthday. It’s the best time logistically, but still. I don’t think we’ll be able to scrounge up funds for a second trip, anyway.

        But I’m fine! Life is pretty good. I’ve got summer projects planned, but I don’t know which ones I’ll follow through on. Some things to get ready for September. I’ve got some physical and social activity outside of work. So stop asking me if I regret accepting this job every time we talk! glare

A month in Edmonton pt 1

I’ve been in Edmonton for a month now as of today. I’m definitely settled in, though there’s plenty of things I miss from home. I can’t really claim to have seen the city and formed an opinion on it, because I haven’t been anywhere that takes more than 30 minutes to walk to. But I’m happy about that! It’s really nice not having to deal with public transit. Also, walking gives me time to play video games.

        I started writing parts of this two weeks ago, but got kinda sidetracked. I’ll try to run quickly through a few big events…

        On May 10th, I got a tour of the “Linguistics department”, which is about one and a half floors of a building on the far side of campus. I learned that we have a lounge with a fridge and some other appliances, and that the department sells shirts that say “If you can read this, you must be a linguist” in IPA. Which is the best thing ever. I also got introduced to a lot of people. The whole process took… about two and a half hours. I got home around 7pm and was completely exhausted.

        I haven’t had an incredibly varied diet, except when I get lazy and waste money buying food on campus. Mostly it’s been pasta, rice, cereal, bread + peanut butter, and a couple of frozen pizzas when I got lazy. It’s strange being transplanted into someone else’s kitchen, where you know the things you want are somewhere, but you have no idea where. At any rate, I should really get around to buying cold cuts and other sandwich materials, plus meat and vegetables and such to add to rice and pasta…

        There’s a few niggling things about the furniture in my room. The desk and chair aren’t really home office quality. Which would be fine for lots of people, but I can’t keep going to bed sore because I was on my computer for more than an hour. But I’m not sure to what degree I can do something about that. I suppose I should talk to the home owners about it, but I don’t know what the etiquette on that is.

        Speaking of which, for the few weeks I only ever saw Mike, the husband. Last weekend, when he came back from Calgary on Sunday, he brought his wife back with him. They arrived around 9pm, and Cindy proceeded to spend three hours cleaning, decorating, baking, and more. It was really nice meeting her - she gave the distinct impression that they treat this place much like they treat their bed and breakfast near Ottawa. She said she’d clean my bathroom for me, fix the headboard on my bed, buy a slow cooker, and a bunch of other stuff. I mean, I’d totally survive if she didn’t do any of those things! But she said she’d take care of it all, which is super nice.

        My shower has apparently been leaking into the basement - turns out water was getting through some of the tiles and rotted out a part of the wall. So someone’s coming in to fix that at some point. Until then, I’ve been showering in the basement, which is fine. The other exciting not-living-at-home-anymore event was deciding to turn off the mini-fridge that came with my room. I uh… learned a bit too late not to unplug the power from a fridge and leave it closed afterwards. Apparently everyone knows that except me - I never asked why my mom does that with the spare fridge at our house… Had to clean it out, got water all over, but it’s good now.

        This got long, so I’ll post the rest in a few days.

Tumblesocks is all caught up!

sneakygcr:

Back to 0 open issues, 0 open pull requests on Tumblesocks. Feels good 8)

A new version is out, by the way. This just fixes a few cosmetic bugs and typos, along with working around a Tumblr API change, so if you’re getting errors, consider upgrading to 0.0.6, available from Marmalade or (soon) MELPA.

The best part about this is that five minutes before you started dealing with issues, I had been checking to see if there was a new version. There wasn’t, which was sad because I was on an updating spree, but then I got an e-mail from GitHub and was happy.

For my followers, Tumblesocks is one of my favourite Emacs things (and there’s a lot of competition). It’s Tumblr within Emacs, which is to say, writing posts doesn’t suck anymore. Stuff like expand-region is just not going to happen in Tumblr’s editing box. Plus, you can keep Markdown copies of your posts on your local harddrive, or work on posts while offline. To me, those two things make it infinitely better than the default “rich text” Tumblr editing.

Also I fixed some dumb bugs in my Emacs configuration today and that makes me happy. I’ve been using Emacs for work (messing with XML files, writing Python code) - which means this is probably my first period of daily Emacs use. Which means I’m getting annoyed by little things, and now fixing some of them. Still, I won’t rest until I have the most bloated and amazing Emacs ever. It’ll be great.

Edmonton

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:

  1. 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.
  2. 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.
  3. 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).
  4. 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.
  5. 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.

vael:
“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,...

vael:

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!

PPS: If you have to restart Firefox to use an extension/apply a theme, it’s because it uses an older API for Firefox. Which, I believe, uses an ugly mix of C++ and JavaScript. “Restartless” extensions use a newer JavaScript API, which is still a work in progress by my understanding. It’s more in line with what Chrome offers, but I don’t know if you sacrifice anything by leaving behind the double-edged sword that is C++.

lacealchemy:
“thatchickfrompittswall-incognito:
“ brittachristmasbot:
“ super1eklectic:
“ goldfarts:
“ Snakes & Lattes
Board Game Café
600 Bloor St West, Toronto, Canada.
Hours: 11am-2am
” ”
FUCK I WANTED TO DO THIS
how is it possible that i want to...
ZoomInfo
lacealchemy:
“thatchickfrompittswall-incognito:
“ brittachristmasbot:
“ super1eklectic:
“ goldfarts:
“ Snakes & Lattes
Board Game Café
600 Bloor St West, Toronto, Canada.
Hours: 11am-2am
” ”
FUCK I WANTED TO DO THIS
how is it possible that i want to...
ZoomInfo
lacealchemy:
“thatchickfrompittswall-incognito:
“ brittachristmasbot:
“ super1eklectic:
“ goldfarts:
“ Snakes & Lattes
Board Game Café
600 Bloor St West, Toronto, Canada.
Hours: 11am-2am
” ”
FUCK I WANTED TO DO THIS
how is it possible that i want to...
ZoomInfo
lacealchemy:
“thatchickfrompittswall-incognito:
“ brittachristmasbot:
“ super1eklectic:
“ goldfarts:
“ Snakes & Lattes
Board Game Café
600 Bloor St West, Toronto, Canada.
Hours: 11am-2am
” ”
FUCK I WANTED TO DO THIS
how is it possible that i want to...
ZoomInfo
lacealchemy:
“thatchickfrompittswall-incognito:
“ brittachristmasbot:
“ super1eklectic:
“ goldfarts:
“ Snakes & Lattes
Board Game Café
600 Bloor St West, Toronto, Canada.
Hours: 11am-2am
” ”
FUCK I WANTED TO DO THIS
how is it possible that i want to...
ZoomInfo
lacealchemy:
“thatchickfrompittswall-incognito:
“ brittachristmasbot:
“ super1eklectic:
“ goldfarts:
“ Snakes & Lattes
Board Game Café
600 Bloor St West, Toronto, Canada.
Hours: 11am-2am
” ”
FUCK I WANTED TO DO THIS
how is it possible that i want to...
ZoomInfo

lacealchemy:

thatchickfrompittswall-incognito:

brittachristmasbot:

super1eklectic:

goldfarts:

Snakes & Lattes

Board Game Café

600 Bloor St West, Toronto, Canada.

Hours: 11am-2am

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~

stfuconservatives:
“ diegueno:
“ 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...

stfuconservatives:

diegueno:

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.