Re-posting old essays

A while ago, Vael and I started talking about my experience learning French and generally being bilingual. Then I realized, oh yeah, I wrote an essay about this already! So I started thinking about what portions of my schoolwork might actually be interesting to you folk, and I’ve come up with a rough list of my least esoteric (and least embarrassing) essays. I’ll post, maybe, one per week, in chronological order. I’m not going to edit them, so it should be fun to look back at how I used to write.

I went through all the essays I’ve kept copies of, and came up with three I’d like to post. There are a lot of others I looked at and decided not to post because I failed to make a good argument, said nothing of interest, or picked a terrible thesis and struggled to do anything with it. I was hoping to post more, honestly, but just because I can doesn’t mean I should. Making my other essays worth your time, dear reader, would require a complete re-write and I’m not that excited about any of the topics I’ve previously written about.

If a given essay seems to require a lot of background knowledge on the topic, that’s entirely my fault. Most assignment descriptions say something like “write as if your audience knows nothing about this subject,” but it’s really hard to do that when there’s a hard limit to the length of your essay. I don’t doubt that it’s possible to completely explain several pages of philosophy writing in a few hundred words, but it’s incredibly difficult and would require a lot of editing time. Still, I hope some of you find some of it interesting.

Papers I’ll be posting:

  • Applied Linguistics and Discourse Studies 1001 paper, written October 20th, 2010 - French Immersion in Anglophone Canada
  • Linguistics 1001 bonus assignment, written December 7th, 2010 - Response to R. M. W. Dixon’s The Rise and Fall of Languages
  • Intro to Philosophy of Mind paper, written October 26th, 2011 - Non-verbal minds

Co-op employer panel notes

[Earlier this week, I went to a panel hosted by my university’s co-op program. A handful of employers agreed to come talk to students about how they hire at their company. Interestingly, it was fairly skewed towards programming/engineering employers, but then again, about 75% of the audience was in the engineering department. At any rate, I took notes on paper for my own benefit, but I figured I may as well post them and free myself from a few pieces of paper. Assume any errors in, say, last names or job titles is my fault.]

Participants

Shopify - Doug, recruiter

  • Interns at Shopify are put on par with all the other developers

Smart Technologies - Jennifer

  • Located in Kanata
  • Make interactive whiteboards, historically for educators
  • Actively hiring sales reps, but also software engineers

Adobe - Tia Murphy

  • Moving towards Software as a Service
  • New job postings every quarter, which last for three months

Immigration Services (Federal government) - Jacquelin Cote

  • Handles employer outreach and research on the part of immigrants
  • Event coordination and management of programs with non-government employers

Solar Logics - Calvin Adams

  • Hires a lot of engineering students

Teldeo - Casey Li

  • App developers for two-way radios, used in places where cell signal is unreliable
  • Use C, Java, and Ruby on Rails for development
  • One of several incubator startups in a group

Q&A

What are dealbreakers for you on a resume?

  • 5 page resumes for someone in university - stick to 1-2 pages
  • You should be specific about any experience you have that’s relevant to the job you’re applying for
  • Spelling and grammar mistakes are pretty much disqualifiers
  • You should try to find out “to whom it may concern” actually refers to, and address the person who will be reading the letter
  • Follow the directions in the job posting, don’t send in the wrong document format
  • Have someone review your resume
  • List all the skills the job posting asks for directly on your resume - don’t make the employer infer your skills from job descriptions
  • Think about what your “unrelated” jobs may have taught you
  • Use LinkedIn, or something like that, to look up the people who will be hiring you - then tailor your resume to them
  • Prove you can do what they’re hiring for, or that you have the passion to learn how
  • Try to give more information than just a list of bullet points
  • Don’t assume your employer is familiar with your school program - tell them what relevant courses you took
  • Consider the culture of the company you’re applying for, and what level of formality they expect

Should you stick exactly to a one page or two page resume, or can you have a page and a half? Answer: A page and a half is fine

Submitting the classes you’ve taken and your grades (aka your transcript) with your resume is helpful

  • However, they may not go looking for details on the classes you took
  • Providing class descriptions (at least, for every class) is probably overkill

Listing bursaries and other testaments to your skill is worthwhile, as it helps make you stand out

  • But beware the generic bursaries you automatically get for, say, having a certain GPA - these aren’t exactly prestigious, and their names mean nothing

Being bilingual isn’t needed in most co-op positions, but it is necessary for government jobs in the long run

  • For languages other than French, the government has professional translators
  • In addition, if two people have the same skills but one is bilingual, the person who is bilingual will likely get the position/promotion

Regarding objective statements, they can help illustrate where you’re headed in your career

  • This kind of detail may be better placed in your cover letter
  • If you’re putting it in your cover letter, you can give it a bit more breathing room - you can provide a paragraph about why you want to be hired and how it fits into your overarching plan
  • Include one if you can find a single sentence that completely summarizes you, and you’re really passionate about it

You should absolutely tailor your resumes to each job posting

Highlight your student projects and why you think they’re significant - the project itself may not be important, but it probably taught you a lot

Try to build a story that leads from your personal history to the job you’re applying for

  • This is part of where you want to go and how the company can help you get there
  • It helps to have a history of work that’s relevant to the job

You should highlight things you’ve done outside of class - things that other students might not have learned

  • Personal projects say a lot about you - the things you do in your spare time for your own benefit say a lot about your personal character

Don’t stop at saying “took a course in Java,” describe the things you learned from the course

Having worked for a company’s competitor is still a significant achievement, don’t take it off your resume for fear of offending someone

Be picky about what jobs you’re going to take

  • On the other hand, taking an imperfect job is still good for networking and may help to build the skills that will take you where you want to go

Investigate the employer, in particular the people who will be involved with hiring you

  • “Tell me what you know about us” is a common question in interviews

Say you’re willing to relocate on your resume, they may forward your resume to another branch and give you a chance there

Non-family member references are your best bet, but if you’ve only ever worked for a family business, look for some non-family members in the organization to give you a reference (if possible)

  • At the very least, you want them to be specific about what you did on the job, rather than saying how smart you are or some other generic thing

On letters of reference:

  • Opinions were divided on whether letters of reference would actually be read
  • A letter of reference is usually written under duress, so their value is suspect
  • A list of references on your resume is good, though, because they can contact your references if they want to hear from them
  • Personal recommendations from people have a lot of value
  • Generic letters of reference will probably only hurt you
  • Getting a reference on LinkedIn is really valuable to recruiters who use the service
  • Include letters of reference only from professors who actually know you well - the key question is “Will you give me a good reference?”
  • Another option is to provide a list of professors who could be contacted, rather than including a bundle of letters of reference - this is even better if your program is closely related to the field and your professors are well-known
  • Let people know in advance you’re using them as a reference, and provide them with your resume and the job description
  • You can also coach them on what they can say about you, but this could backfire
  • If it’s been a while since you worked with them, you can remind them what you did for them
  • Character references are useful, but it’s better if they’ve worked with you/for you/were your boss

Windows 8 Pro for $40 - probably worth it

I was checking out a Maximum PC article about reorganizing your music library with MediaMonkey when I stumbled onto their review for Windows 8. It’s a fairly measured review of what Windows 8 has to offer for a happy user of Windows 7 on the desktop. They don’t spend any time on the touch controls, or what the OS means for tablet users, or any of the sort of thing you’d find in Ars Technica’s wonderful coverage.

If you happen to be one of those users, it’s probably worth a read to decide if an upgrade is worth it. It’s actually fairly concise, but for your benefit and my own, here’s a quick reference:

  • The second page touches on using Metro and the state of multi-monitor support in Windows 8. The moral of the story being “Tablet Mode probably has nothing to offer for you on a desktop” (but you may be able to hack it away with the free Classic Shell or RetroUI which is $5 for three PCs)
  • Third page discusses the improvements to the desktop experience - most notably startup speed (which, in terms of time saved per day, could be worth a lot of money over time)
  • Fourth page is short and mentions some other new features, noting that it’s probably worth $40 for an upgrade to Windows 8 Pro (from XP through to Win7)
  • Fifth page has some performance analysis of Win 7 vs Win 8 (surprise: there are pretty much no downsides to Win 8), talk about price, provide a few recommendations for minimizing the Tablet Mode side of things, and list a lot of miscellaneous improvements (better USB 3.0 drivers, better rendering stuff, and suspending desktop processes)

So, the thing about this upgrade is that it doesn’t have a lot of immediate value, but it has a lot of long term value. Some time next year when almost everything is compatible with Win8 (and tools to remove the Tablet Mode are perfect), the improvements would be nice to have - but not quite $200 worth of nice. But definitely $40 worth of nice. I guess January 31st is plenty of time to buy in, but I might hold the license a bit longer than that before using it. Even if there are restrictions on the $40 digital version, it would probably still be worth $60 for the physical version.

Plus, this is an upgrade to Windows 8 Pro - there are a number of nice features in the Pro versions of Windows, especially when it comes to compatibility. For example, Win7 Pro has “Windows XP mode” which is either a virtualization tool or a super-powered compatibility mode (I don’t know which, I haven’t used it). Win 8 Pro would probably have that and a similar mode for Win 7, if things do go wrong.

All in all, I actually think this is worth jumping on. Write the license key down and hold onto it for a while. Don’t worry about the touch stuff, don’t worry about the Windows Store, because it sounds like they’re entirely optional (provided you can stay in desktop mode). Everything from Windows 7 should work the same way, but with some bonuses. As a bonus, QTTabBar sounds like it will support Win8 fairly quickly so you can make Explorer not suck and, hopefully, remove the Ribbon.

Well, I’ve convinced myself that I should invest in this. Hopefully you’re convinced, too.

(this is actually an even better deal for me and anyone else who buys a Win7 PC between June 2nd and January 31st, 2013 - just $15)

Adventures in New Laptopia, Pt 1: Security

Running as a non-admin in Windows, for the first time ever

Before I started laptop shopping, I stumbled onto a pair of blog posts suggesting that you should run as a standard user. The first is from Jeff Atwood, and the best part is the quoted list of stuff in the middle of stuff you’re protected against by being a standard user. Somewhere around the same time, I found a blog post about configuring Windows 7 to run primarily as a standard user. Unfortunately, there’s not enough info in that blog post on the pros and cons of running as a limited user, but here’s what I’ve found in the last few days:

  • Some regular actions will prompt you for admin rights on a daily basis (eg Lenovo updater service). This is an absolute pain and I so dearly wish to figure out a way to make exceptions for specific applications. I’m investigating a few options right now, but I’ll update if I find a perfect solution.
  • You can’t add administrator privileges to a program that’s already running, and you won’t get a UAC prompt when you need them. The program will just fail with some cryptic message. You probably won’t think of it until it becomes a problem. Example that I dealt with on three separate occasions today as I was setting up new software: I wanted to edit a configuration file stored in Program Files. I open my editor, make minor changes, then try to save. “Access denied”. I have to save my new version as a copy in a folder I own, open explorer, and cut+paste my edited version into Program Files. Explorer, thankfully, can prompt when I need admin privileges.
  • The “Run as administrater” option, and the command line utility runas don’t work the way sudo does in Unix. Unlike sudo, they suck terribly. SuperUser has a pretty good explanation of how they actually work and one answer recommends Sudo for Windows, which is complicated but seems workable. If you do check out Sudo for Windows, the Wayback Machine has rescued its documentation from the depths of Internet history (the year 2007).
  • If you leave it with the default settings, MediaMonkey (which seems quite awesome so far - check out the files to edit section of your library! *swoon*) will re-check file associations every time you start it. For some unknown reason, while this can be done without admin rights in some other programs, MM will prompt you for admin rights/UAC whenever it starts. If you turn that option off, it seems to work fine. Extremely thankful to this thread for helping me out on that.
  • Otherwise, everything seems to work more or less fine. Because I’m running as a standard user all the time, I don’t run into issues with files having different ownership thanks to the terribleness of “run as administrator”. Having to enter a password to install software really didn’t bother me, even though I installed a ton of stuff on this computer. The problems I’ve had so far have mainly been centered around common actions requiring admin privileges, and as mentioned above, I’m looking into ways to make exceptions.

Hardware security features

My new laptop is a Lenovo, and I’ve jokingly told people that I needed one because I am a serious business person working at a serious business. It’s quite a change from my consumer/media focused HP Pavillion laptop. For instance, I added a fingerprint reader for twenty bucks. Hard to tell so far whether it’s actually useful or just a novelty, but it’s generally faster than typing a password to login. At least, once I figured out that it only works if you swipe left-to-right (but it doesn’t say that anyewhere). Now, I know fairly well just how imperfect finger prints are as a biometric, considering I read a handful of papers comparing different biometric approaches over the summer (they can be fooled by replicas and other means, your fingers can be cut off, not 100% reliable, etc). I definitely don’t want to rely on it (aside: but then, Windows passwords aren’t particularly hard to reset…). Not to mention that shoddy firmware can make you less secure than ever. Still, it’s convenient to have it as an option alongside my password.

However, let it be known that I’m prepared for the worst. Lenovo’s software allows you to register any fingers you want for the scanner, so I’ve registered my least useful fingers. If you want into my laptop that badly, please, just take my left pinky.

Some other things that provide hardware security in a different way:

  • “Airbag protection” for my inexpensive spinning platter harddrive. If excessive motion is detected by the system, it will turn off the disk so that it isn’t damaged (or at least, not so badly damaged?)
  • They have some pretty good diagnostics of the health of your hardware, like the battery. For instance, they have a measure of your battery’s “wear” - how much its max capacity has decreased from its theoretical maximum. It’s a very welcome feature after the silently degrading health of the batteries for my previous laptop (its original battery is nigh-unusable now).
  • There’s a yellow warning icon in my taskbar chiding me for not having a backup solution yet. Sheesh, I’m still investigating rdiff-backup and saving money for a NAS at my dad’s!

I haven’t dug too deeply into all the pre-installed stuff, because consumer focused OEM software is either crappy or driven by greed… often both. Some of Lenovo’s original stuff seems like it might not suck, so I’ll definitely have to investigate. The above are a few examples of things that have yet to annoy me - and in fact, I’m actually glad to have - which is pretty high praise for OEM stuff from someone used to Dell and HP.

As for the pre-installed software they didn’t make… The less said about their generous offer of a free 5 gb SugarSync account (as if that’s somehow a special offer), the better.

Interactive fiction jam results

Summary: The theme we wound up with was Metaverse. Four hours wasn’t a whole lot of time for us to get familiar with Inform 7 and create something interesting. Managing scope is really important!

So, we ran a little bit late and started around 12:30, but most everyone was able to stay until 4:30 so it worked out. Unfortunately, announcing the theme at the start of the timer might not have been the best idea - I don’t know about everyone else, but I spent at least 30 minutes brainstorming. Still debating with myself whether picking the theme in advance and dedicating the four hours to implementation would have been better.

On the other hand, being a prolific writer, Crate was able to mostly finish what he had in mind. Not sure if it’s because he had a better idea of the scope of what you can write in 4 hours, or simply because he wrote so much faster than I did. Either way, good on him! For what it’s worth, Inform 7 source code is measured in words, and I had 800 vs his 1600. Still, I know I wouldn’t have my initial idea “completed” even if I had close to 2000 words. Vael and Maryanna are in a similar boat, I think. So much for putting our completed work online after four hours!

We all had fun, though, barring the occasional frustration with learning some of the more complex idioms of Inform 7. So we’ve agreed to get together once a week, for an hour or so, and continue working on our ideas. I don’t know how long we’ll keep it up, but it should be fun.

Lessons learned:

  • The metaverse theme inspired me (and possibly the others) to work on a much grander scope than was actually reasonable. Most metaverses are developed over the course of multiple novel-length works. That usually takes longer than four hours.
  • Creating an environment for your player to mess around with is difficult. There are a lot of tiny details to take care of when their actions have no constraints. What if they want to lick the torches you put on the walls? What if they try to run off with a giant stone statue? You have to decide early on how you want your game to deal with that kind of behaviour. Maybe for the theme of your game, it’s better to insert funny easter eggs everywhere. Or maybe you should have a terse “I don’t see any reason to do that” response to all unintended commands.
  • Writing descriptions of all the areas and objects your player will see is time-consuming. I spent almost all of my time doing that, in fact, and ran out of time before I could introduce the player to their first NPC and have them learn their first spell. So what I ended up with, after four hours, was five areas and a handful of objects, all with nice descriptions in case the player decides to examine everything. Oh, and I had a sweet door connecting two areas. Also, I had some plural objects I’m pretty happy about ( eg: The pews are here. They are scenery.They are supporters. The description is “Some pews.” – I would like to be able to say “their description is”, however)
  • Working with NPCs in Inform 7 wasn’t as immediately obvious as I had hoped it would be. Having conversation that doesn’t rely on “tell NPC hello” or other awkward constructions requires a bit of research. I’d like to find a way to have dialogue “come from” an NPC instead of the standard narrator. It seems more natural to write something like ‘NPC, say “Blah”’ in my code than 'say “NPC says blah”’. I assume it’s possible, but I didn’t have time to find out in the last 20 minutes. But perhaps I’m just being too object oriented, and there’s no real difference between the two.
  • The documentation support in the Inform 7 IDE is pretty awesome. The manual for the entire language, and a pretty extensive Recipe Book, has built-in search from the IDE. The index is even better, though - among other things, it lists all the objects you’ve declared and allows you to navigate to their definition with a click, all the rules that have been defined, all the verbs the player can enter, all the phrases you can use in your code (with examples and links to the manual), the entire object hierarchy of your game… It took me a while to notice all of this stuff was there, but once I started exploring the index, I was able to find most anything I wanted from within the IDE.
  • DSLs can be pretty cool! Everything about Inform 7 is focused on making interactive fiction, and it’s a superb tool for that task.

I put my code up on GitHub in case there’s any useful tricks in my source (warning: doesn’t compile right now). One thing I will point your attention to is the use of square brackets around the names of objects in prose - I learned that from a blog post by Aaron Reed, and I think it’s a great idea. Essentially, all you have to do is put square brackets around the names of nouns in your descriptions of locations. What this does is send the compiler looking for an object that can be referred to by the bracketed text, and if the compiler can’t resolve that name to an actual object, you get an error. If you wanted the object to exist, this is a good warning. If you don’t want such an object to exist, then you have to change the description so that it doesn’t imply there’s an object that the player can’t actually interact with.

As a bonus, if you find yourself using too many nouns, you have to get a bit more creative with your prose - I happen to love the noun-less version of the second description. I’m used to that sort of intense editing, though, and maybe you’re horrified by the idea of spending so much time thinking about every little sentence. That’s perfectly ok, because it is time-consuming. But in the long run, I’d much rather play a game full of awesome prose like that second version. Plus I wouldn’t wind up wasting time playing around with non-existent objects. Think of your players! Think of your satisfaction as you read your beautiful prose in the future! I’m often pleasantly surprised by the writing in my old blog posts, when I go digging through the archive, so obviously I think it’s worth putting in the effort.

Interactive fiction jam delayed; more resources

Rather than lose ¼ of my participants, I got everyone to agree on moving the date to Monday instead of today. Which works out well because it’s Labour Day, a useless holiday that has no festivities to keep people busy! Of course, the people participating who have spoken to me already know this, but who knows - there could be lurkers.

Anyway, I’ve been realizing the kind of effort that goes into making an awesome Inform 7 game like Violet. It would take more than four hours to produce something like that, especially as complete beginners. So I’m thinking that we’re going to have to tend more towards creating short stories with a bit of interactivity, for fear of having things spiral out of control.

At a bare minimum, I’m thinking of suggesting that everyone watch this video by Aaron Reed to get a basic introduction to Inform 7 and its integrated development environment (IDE). Then, go through this tutorial by Stephen Granade for a more hands-on introduction to the system - learning to create rooms, props, and rules. I’m hoping that’s a good enough baseline to produce something in a few hours without losing time on learning the basics.

Aside from all of that I’ve been busy looking into a variety of Inform 7 things. I get to be like that when presented with an extensible system. Rather than clog up my tumblr with a huge list of stuff, I’ve put everything I’ve found up on SimpleNote:

It’s worth looking through to see if there’s anything that inspires you. Maybe you want to make a really conversation heavy game - if so, check out Eric Eve’s numerous conversation-related extensions (among other things). Maybe you want to make something modern involving computers and other real life objects - Emily Short has some extensions for that (again alongside a lot of other stuff). She also has an extension for incorporating mood variations in your non-player characters… And now I’m just repeating everything I wrote in SimpleNote. Go on through the general notes for some information on best practices and other junk, and then the extensions one for fiddly stuff you might like.

Finally: I’m working on making a list of themes to pick from. I’d be happy to take suggestions. My intent is for the theme to provide a mental challenge, since you can’t just write whatever you want. At the same time, it should be broad enough that different interpretations are possible. So here’s what I’ve got so far:

  • Companionship (writing other people/creatures is hard, this may be a cruel option)
  • Underwater (courtesy of Vael, though I’d rather we didn’t all write some Atlantis/BioShock story)
  • Possession (interpret any way you please)
  • Metaverse
  • Duality (courtesy of Crate, but I dunno - contrasting two disparate parts or elements is a pretty abstract theme)
  • Underworld (Crate)
  • Recycling/renewal (Crate)
  • Hostile negotiations/enemy of your enemy (Crate)

I know, it’s not a terribly impressive list. I thought of a few more but.. uh… I forgot to write them down. So, please do suggest more! Just don’t say Brave New World or Stranger In A Strange Land or anything like that. Come now, we’re better than that. To make life easier, I’m also going to suggest we avoid high fantasy sort of stuff because it’s incredibly difficult to do well.

So yeah, that’s where we’re at! I’m having a lot of fun with this.

**Link to a .rar of extensions I thought might be useful, up to date as of September 2nd 2012: http://uninotes.thebcn.net/i7x.rar

Installation instructions: * Extract all .i7x files into one folder (note the ATTACK extension in its own folder) * Open the Inform IDE * Click File * Click “Install extensions” * Ctrl+a to select all files * Click ok

Bonus: documentation for all extensions is available once they’re installed. Go to the Documentation pane, click on “Installed extensions” below the final chapter of the manual, and then click on the name of an extension.**

Things Tumblr Does For You

A while ago I added search through Swiftype to my tumblr. It’s really quite effective, especially considering your alternative is the funtionally useless default tumblr search. It has never worked for me on other people’s sites, and on my own, it returned no results when I searched for “the”.

Yeah, you should probably get Swiftype.File “site search” as something Tumblr doesn’t do for you. So sign up for a free account on Swiftype, grab the code representing the search bar, and look through the HTML for your theme for “search” and try to replace that with the Swiftype stuff.

Anyway, they recently sent out an e-mail with a bunch of new stuff they added. One of those things was support for a sitemap, which lists all the pages of your site and some metadata about them. So I looked into it a little and discovered that yourtumblrname.tumblr.com/sitemap.xml is automatically generated for you. sitemap-pages.xml lists the things you’ve added via Tumblr’s Pages, and sitemap1.xml lists all the posts you’ve ever made and the last time they were modified.

Next discovery I made was yourtumblrname.tumblr.com/robots.txt, which tells polite search engines where to find your sitemap and what parts of your domain to exclude. Wikipedia’s got a little page about it. If you go to that file, you’ll see that it asks web crawlers not to look at your private posts - they don’t have to do that, though. By sheer brute force they could easily discover all your private posts, as could anyone else willing to try the various random numbers inserted in the url of a private post.

The one issue I have with this stuff is that I don’t know how you could modify them. Still, it’s really nice to have this stuff done for you already. You’d never need to know this stuff exists, no matter how much you use Tumblr, and that’s a good choice on their part.

I turned 20

…and forgot to tell the internet about it

              So yeah, I turned 20 more than two weeks ago. Wasn’t a huge spectacle, though an old friend from PEI happened to be visiting his aunt so we brought him along to dinner. We went to a new burger place near Dad’s, which was decent. I didn’t really want to throw a party or anything, but I still didn’t have time to sit down and write. I realize nobody was on the edge of their seats waiting for me to bore them with personal junk, but in case you were, that’s my excuse.

              I feel like I should write about what happened during my 19th year, if only for posterity. Trouble is, there hasn’t been a whole lot of spectacle in my life lately. If anything, I’ve achieved a stratospheric level of mellow-ness. Still, a quick scroll down my archive has brought up a few interesting things to talk about. On an unrelated note, this is my four hundredth post. Holy crap.

              Easy cop-out solution to recapping the last year: referencing previous recaps! The last five posts of my 2011 recap happened after my birthday, so that counts. I assume 2011 in review gives a good idea of what the 2011 part of being 19 was like. I distinctly remember being very morose on New Year’s Eve, though, so that played a part in the tone of the review post. Not the recap post, mind you. Sorry about that, it’s confusing in retrospect.


              Anyway, onto more substantial discussion. I wrote during winter break about some goals for 2012, but had a hard time coming up with anything significant. I said I’d like to be consistently happy, but lamented my choice of solitary hobbies. I also said (hang on, have to re-read the sentence five times…) that “I might be miserable because I don’t have any close friends in Ottawa”, or something along those lines. “Might also be good if I were to talk to people, or spend time with them”. Hilariously enough, I resolved all those things… without… really… meaning to. Now, this might be obvious to you, but hanging out with people who share your hobbies turns out to be a two birds, one stone sort of deal. Watching anime, playing games, and reading may be primarily silent activities I do on my own - but it’s just as nice to be alone together, i.e. doing so with someone else engaged in their own game/book. Having hobbies in common also netted me a friend who is close physically as well as emotionally, and it’s nice to have that again.

              I’m also getting pretty good at gathering a group of people and hosting a relatively low-key nerdfest event at home. This allows me to safely avoid individual invitations while still gradually getting to know people. Next step should probably be expanding on the set of people I can comfortably invite to hang out individually. Which isn’t to say that I prefer quantity over quality, but generally you deal with a quantity of quality larger than one. One person is significantly better than an empty set, but it just seems like I’d benefit if I wasn’t so damn scared to say “hey we should hang out and bond over *insert shared hobby*”.

              Related to that is my post about decreasing my misery quotient, which still seems like it’s going to be a valid strategy. But aside from that, I am much more consistently pleased with life than I used to be. As it turns out, computers and video games provide a lot less emotional support (active and passive) than real, live humans. Hooray for nice people!

              I posted near the end of the school year about some goals I had for 2012 and where I was at in life. That was pretty good, and I think it’s still pretty relevant to where I am now. Regarding my second goal, I’ve been reading (thus, learning) voraciously - I cleared out almost all of my list on Read It Later (now Pocket, but the new name doesn’t give you any idea of what the service is about). And then I filled it up again. At any rate, I’m starting to put stars on things I really like and delete things that were lame, so there should be a higher signal/noise ratio in my archive. As for books, you can see what I’ve read over on GoodReads, which I like more and more as time goes on. It’s funny when I recognize names of reviewers on programming books from StackOverflow and parts of the Emacs community. All in all, I think I’ve learned a lot of good stuff over the summer.

              Something I never wrote about was that my roommate is no longer staying with us. Or speaking to me, for that matter. It’s unfortunate, but life goes on. I wish her the best, truly. Don’t be concerned by how little I’m talking about this seemingly significant event; it’s not really fit for public consumption. I’m older (lol 20 isn’t old) and wiser and have a better idea of what I should/shouldn’t post publicly. This is one of the things I shouldn’t write about.

              There’s one small benefit of the above, though - I’ve got my own bedroom back at mom’s. Which is kind of nice, because living in the basement sucked in subtle ways. Meanwhile, I’m getting an awesome place in the basement at my dad’s. It’s still under construction, but I expect it will be nice to have when it’s done.


              Anyway, things are winding down for my work at HotSoft. My project didn’t yield a lot of fruit this summer, but we’re on hold for a week or two to await some information about some of the software we depend on. If the information doesn’t show up, we may plot a fairly different course from here. We’re having a picnic tomorrow and I’m bringing delicious cake. So that will be nice!

              Classes start a week from today, so between now and then I’ve got a couple hundred bucks to drop on textbooks and some time to spend on my own stuff. Not sure yet what I’ll focus on, but I’ve been getting Emacs set up for Python programming lately. Spent hours looking into it and I’m still not done, because there’s literally three solutions to every problem. Sigh.

              Oh, right, I ordered a new laptop! I’ll post more details when it arrives, which should be soon. It’ll be a good opportunity for me to sit down and get digitally organized. This post is mostly about life, though, so I’ll save the tech for another post.

Meaning through Game Mechanics

image courtesy of the Winter Voices site[image courtesy of the Winter Voices site]

A few years ago, I came across a game on Steam called Winter Voices. It was an episodic RPG for PC by a small French developer, but they only released Episodes 0-4 (with 5 and 6 unreleased) before going bankrupt late last year. Because the company dissolved, the game has been removed from Steam and most honest digital distribution platforms. I don’t know what the game’s sales were like, but it didn’t get very much press and most people couldn’t recommend the game wholeheartedly. The rough state of the game at launch and bittersweet press response probably hurt the game a lot. But for the people who played it, Winter Voices provided a unique experience that truly deserved more exposure than it received.

        The game stars a young woman whose father has just died. She has returned to the small northern village where she grew up in order to attend his funeral, with the implication that she had gone off to make the most of her life elsewhere. Winter Voices begins when she arrives - correction: when you arrive - at the village a few hours before the funeral. [correction: I e-mailed this post to the game’s author, and the heroine did *not* leave the village - that was a miscommunication with the people who made the game’s intro video] You choose a variety of stats relating to your character’s personality, like humour and memory, and set off to talk to people and wander around the village.

        Whenever you run into nostalgic or otherwise emotional situations, you enter grid-based battle arenas where you struggle against shadows representing grief, painful memories, and other psychological trauma. However, there’s no “combat” as such - you can’t defeat grief by brute force. All you can do is try to withstand it. Most battles have goals like “get to the other side of the map” or “survive for 5 turns”. It’s a great metaphor, and Winter Voices may be the only game to imbue these common battle mechanics with actual meaning.

        It gets even more interesting when you see the game’s skill tree. Here’s an image of your initial skill choices, courtesy of Rock, Paper, Shotgun:

image courtesy of Rock, Paper, Shotgun

        The skill in the very center is Repulsion, which lets you push enemies a very short distance away. Generally, they can move much farther than you can push them, so it’s a fairly ineffectual defense - but initially it’s all your character is capable of mustering. As you gain experience from dealing with your emotions and talking to others, you can gain new skills that are connected to the ones you’ve already learned (in the above image, the highlighted circles are skills that player is able to pick). To quote the description from RPS:

You start at the centre, and each direction represents a different way of dealing with grief. See the yellow-looking skills towards the bottom right? They relate to regressing into your own imagination. The orange skills above those are all to do with being sociable, and the power of friends. An example of a skill that lies between both of those areas is Imaginary Friend, which summons an ally that will hold enemies back.

        The skill tree is another beautiful metaphor, and I think it makes for an awesomely individual experience for each player. Instinctively, you might think that everyone will experience the same “story” when playing Winter Voices - the one the game’s writers came up with, focused a woman dealing with the death of her father. However, the important story in Winter Voices - what I think of as its “narrative” - is the one enabled by the gameplay mechanics. Everything that you do in a game contributes to its narrative, and most designers and writers ignore this at their peril. Almost every game in the strategy/RPG genre relies on generic player statistics like strength, agility, etc. and skills that focus on faster or more exciting ways to kill things. This makes it very difficult for them to have a narrative that doesn’t involve faster and more exciting ways of killing stuff, because that’s the main form of conflict resolution. Then the writers are forced to craft a story with a lot of combat opportunities, stifling a huge swath of meaningful stories and narratives.

image courtesy of the Winter Voices site[image courtesy of the Winter Voices site]

        Rather than following the combat-focused trend, Winter Voices makes a metaphorical narrative out of your choice of which skills and stats to invest in. Every player builds their own, personal narrative about who the main character is and how she learns to cope with (and hopefully overcome) her emotional anguish. It’s possible to play Winter Voices without thinking about the story behind your gameplay choices - your narrative - but I expect that few players would. It’s just more fun to construct a story to make sense of the choices the game has provided for you, and that’s what makes Winter Voices so amazing. The sheer size of the game’s skill tree (you can only see a fraction of it above) also contributes to this phenomenon, because there are a lot of valid ways to play the game. Since they’re all equally efficient, the player will probably wind up making some personal choice in how they decide to play. Metaphorically speaking, each potential set of choices represents a different coping strategy.

        This sort of narrative complexity, which is generated by a mechanical system, fits poorly in other mediums. There are twelve mechanically (what they do for you) and narratively (what they say about your character) distinct skills you can choose when you gain your first skill point, and the number of possible paths only expands from there. That level of choice enables a wide variety of narratives, and it would be difficult to provide all of them in a single traditional novel or film. Moreover, the systems in Winter Voices provide an environment in which to make interesting choices. The skill tree in particular provides a handful of meaningful choices, each time you level up, about how your character deals with her emotional problems.

        On the other hand, it also provides constraints that make each choice more meaningful. If you could have every skill in the game at once, your choice of skills doesn’t really matter in the long run to the narrative. If you could have ten arbitrary skills from the entire set, the choice would have less narrative meaning - there would be less logical progression in the way that your character solves her problems. The end result is that your character builds on basic, foundational skills to learn more advanced and more effective abilities, which have a logical grounding in what she chose to learn in the past. The choices and constraints in Winter Voices enable a wide variety of possible narratives, and that’s what makes it so fascinating. To me, that’s the essence of video games.

        Having played Winter Voices when it was on Steam, I think it provides a valuable experience. If you spend an hour or two playing Winter Voices, you’ll experience a powerful argument for video games being art. The sort of argument you just can’t convey by letting people look at (but not touch!) games in a museum. It’s not a game for everyone, but you can get the game’s prologue for a few dollars, and I guarantee it’s worth at least that much money and a few hours of your time.


        There’s roughly three reasons why I wrote this post: one, the game is set to be re-released soon with a plethora of improvements from when Rock, Paper, Shotgun played the game. Two, I was disappointed by the Smithsonian exhibit linked above and I wanted to provide a compelling argument for why games are art. And finally, Extra Credits just released a compelling two-part series about game mechanics as metaphors.

        Regarding the first point: Some members of the original development team reformed under a new name, bought the IP back from the French government, and are currently running a beta test of a huuuuuuuuuuugely improved version of the game through Steam. If you’d like to try it out after reading this post, you can send them an e-mail at betatest@innerseas.com with the subject “Winter Voices EP5 - Beta Test”, with at least your Steam user name in it (maybe with some info about your computer’s hardware and such, too).

        It sounds like they’re looking for people to test the game from start to finish right now because of a big engine update a few days ago, so they’d probably be happy to have your help. Otherwise, they’re hoping to have the game back on Steam in a couple of weeks. So even if you don’t get into the beta test, please do give the game a shot - with the improvements they’ve listed in the Steam forums, I expect I’ll be able to recommend the game without any reservations now.

[Thanks to Vael Victus, M-. and Sarah for reviewing and helping me edit. Also, if your viewing experience sucked, you’re probably using the Tumblr dashboard - blame their elimination of a lot of basic HTML stuff.]