The lows are low, but the highs are home

Month
Filter by post type
All posts

Text
Photo
Quote
Link
Chat
Audio
Video
Ask

July 2013

carry-on-my-wayward-butt:

walkingmyhellhound:

If I’ve learned anything from video games, it is that when you meet enemies, it means that you’re going in the right direction.

that’s really inspiring

Also, going the wrong way always leads to treasure.

(though this analogy breaks when you remember that video game dungeons only have one exit, I still like the exploring for treasure bit)

Jul 3, 2013 936,369 notes
#gaming

June 2013

Reflecting on the visit pt 2

Honestly, when I was asking people what to do in Edmonton, I didn’t get a lot of suggestions. Whyte Avenue is close to where I live, and to the university, so a lot of people recommended it. There’s the West Edmonton Mall, obviously (look it up - I’ll wait). After that, most people struggled for a few minutes to come up with things. We did wind up collecting some suggestions for nice places to eat, trails to bike down, etc - but never wound up taking advantage of any of those.

        We did explore Whyte Avenue a bit. The Chapters I mentioned in the last post was the farthest we went, though - about fifteen minutes of walking, maybe. Aside from browsing different small shops, we tried and failed repeatedly to get decent sustenance. We got ice cream at a really disappointing Dairy Queen near the University (it’s by Sobeys, don’t go there). We also had an atrocious milkshake from a place called Mike’s Famous that, as I later learned, tends to mostly serve drunk people (also on Whyte Avenue, and best avoided).

        Then we got dinner at an Irish pub, where the wait for food and our bill was long, and the service was… well, there wasn’t really much service at all. Every patron who wandered in spent five minutes looking for a place to sit, because they give you the liberty of seating yourself. We had a nice spot by the entrance, where we got to watch the confusion first-hand. So that was our evening entertainment, free of charge!

        We went to West Edmonton Mall for an entire day, just shopping and looking for stores that Ottawa doesn’t have. I bought a light cotton hoodie to replace my trusty old XKCD one, now stained one time too many. M- felt that green went well with my complexion, and like most things she tells me about fashion, she was right. She mostly browsed, but tried on one extra-small dress at Suzy Shears that didn’t quite fit. One of the cashiers got the item code for us, though, so she could get her mother’s expert opinion on whether it could be altered to fit. Incidentally, the cashier was a neuroscience student at UofA, and generally a lovely person. She told us we seemed like a great couple, which was cute.

        We actually went back a few days later to see the amusement park. Back to the West Edmonton Mall, I mean - you know it has an amusement park inside, right? And a water park, and a hotel, and two mini-putt places. It was Friday when we went, though, which is apparently a bad idea - that’s when nearby schools send their kids on field trips to the park. The folks at the information booth were kind enough to let us transfer our passes to Saturday, actually, which was pretty smart. Otherwise I’d be telling you about how we wasted sixty bucks!

        Instead, I’m here to tell you that it’s a pretty alright amusement park. Admittedly, it was more to M-’s taste than mine. I’m a fan of variety and medium-ish adrenaline - I’m generally satisfied if I do a roller coaster once, and even then I’m not big on the craziest ones. Neither of those things are true of my wonderful partner in crime. There aren’t really that many rides in the amusement park, actually, so M- did a couple things multiple times while I sat aside and read. I went on most of them once, for her sake. Oh, and we bought all the pictures where we were visible, at least one of which shows us grimacing painfully.

        Eventually we moved on to Southgate Mall, where a new Lego store had opened more than a week ago. They were having a grand opening event this particular weekend: visitors could help build an 8-foot tall statue of Yoda. M- and I contributed one “brick” each (mine constructed with painful slowness), which we built according to instructions out of 39 regularly sized bricks. They were having a prize draw for the 50 people with the best estimates on the number of bricks used in the entire statue, and we spent some time trying to calculate the number. Pretty quickly I gave in to pessimism and let her work it out, which I’m not proud of, but there you go. The actual store itself had a two-hour long line to get in, despite being empty when I was there a week ago. Needless to say, we didn’t wait.

        We took buses to travel to/from the malls, which cost $2.50/person each way. You get a three-hour (I think) transfer slip, but unlike in Ottawa, taking a new bus doesn’t renew your transfer. The buses themselves were a bit less… advanced? than Ottawa - ours have a speaker that declares the next stop, a display for the stop name, and have recently moved to an NFC-enabled bus pass. Luckily for us, it’s obvious when you’ve arrived at the West Edmonton Mall, but we could easily have missed our stop if we were going to a street address.

        We also borrowed bikes from two of the linguistics PhD students. However, M- nor I really knew how to adjust them, and both bikes needed it badly. So we never used them. After M- had left, my landlord and I rode the bikes to campus to return them. At this point, I realized that I hadn’t ridden a bike since 6th grade (plus or minus a year). Also, the helmet didn’t seem to fasten correctly. So while we were riding down the back streets, I was utterly terrified of all the potholes. I went pretty slowly the whole way, and in the end I did survive. But I had to be reminded that the bike had handbrakes and kicking the ground wasn’t the best way to slow down.

        Oh! And we also went to the farmer’s market early Saturday morning. Didn’t buy much, but M- grabbed business cards from the interesting spots. I tried to buy Belgian waffles, except they only took cash, and I had none on me. But one of these days I’ll go and stock up and then have waffles and be happy.

Jun 25, 2013
Reflecting on the visit pt 1

Surely you’re asking yourself: how was your girlfriend’s visit, Matt? Well, I’ve got two posts lined up to tell you! This one is a bit more personal, the next one is a bit more about the city itself.

        We hadn’t seen each other for just shy of a month and a half. On April 28th, M- went to Paris with her family. We’d spent an hour or two together the night before, after I finished my last term paper. On their way to the airport, they stopped by for a brief visit. I spent the next few days preparing to leave, then I left for Edmonton on May 1st. We didn’t see each other in the flesh until June 9th.

        It was hardest when she was in Paris, when the time zone difference made it hard to exchange e-mail more than once per day. When they got home, things were better - we could text and IM and Skype, without the distractions of Paris (said if flowery French). But even so, we’d never been apart for more than a few days since we met - we bonded quickly, shared most of our classes, and we worked together over the summer in 2012. So this was a test of our relationship!

        For a variety of reasons, the stars didn’t align for M- to start working until late May. I got a bit excited when I heard of the first delay - perhaps she could visit before starting work! I may have been a bit of a pest for a couple of weeks. When the first good sale came up, she booked the nearest flight that had a reasonable arrival/departure time. I wound up with a week for warning of her visit, but it was a lovely surprise.

        To be honest, we didn’t do anything terribly interesting. We curled up on the couch to finish the fourth season of Adventure Time. Over the course of the week, we caught up on the third season of Game of Thrones (her family has HBO!) We spent an hour in Chapters, browsing the manga, sci-fi and fantasy sections at length.

        We tried to play Final Fantasy: The 4 Heroes of Light in co-op again, only to be utterly baffled after being away from it for months. We laid in bed and held hands and chatted about fanfiction for an hour before going to sleep. We learned about communicating expectations, and that opening my e-mail on my phone and saying “hey, did you see this thing I sent you?” is not the best way to guarantee an answer. Read receipts are way better - I’m using Boomerang for Gmail now.

        I managed to convince her to make use of the Pokemon TCG cards I’d bought and left in Ottawa for her (one pack of cards for every week that I’m away!). Or, at least, she decided she could suffer a little to make me happy. At any rate, we played two games, and I was right in the end - she enjoyed herself and asked if we could play again in the future. Though I suspect we’ll need to beef up our decks a bit, because our second game was painfully long. But with that fixed, this may be our activity when we sync up on weekends from now on.

        I think it was good for us to be on our own for a week! We cooked together and did dishes together. We ate more dessert than we should have. It was, generally, a lot like living together. We managed fairly well! Granted, it’s nicer by far to be home with my parents, or with hers. But we didn’t get in each other’s way, and nobody died - both good signs. It was lovely to see her again, truly. I got sad during our last evening together, but like usual, she cheered me up pretty quickly. I did have trouble getting back into the rhythm of a full workday, but now I’m feeling pretty good. Only two months until we see each other again! I can manage that. I think.

Jun 23, 2013
#personal
A visitor appears!

A week ago (published Tuesday), I wrote:

The hardest part, I think, is being far away from my girlfriend. … She’s going to visit in July, as a birthday gift from her parents.

But then my mom sent me an e-mail about a sale on flights, which I duly forwarded. Then at 9am on June 5th, I received this text message:

How’s this for a visit: June 10th to 16th?

Hmm, let me think about that… I sent back another message to make sure she didn’t mean July, and she said yes. So I replied with the only acceptable answer: that would be fantastic! The final booking is for her to arrive tomorrow morning at 9:30am local time, so I’ll be taking a shuttle to the airport in the morning.

So instead of writing more tumblr posts tomorrow, I’ll be spending time with my beloved. If she’s feeling tired, I might do both of those things at the same time. Anyway, figured y'all Internet folks should know. We’ll be borrowing bikes from some of my colleagues (both of whom said “I really should use my bike more often, but you can borrow it for a week”) and seeing the sights. I’ve got permission to work half-days next week, and there’s some room at the office for her to work on her own stuff.

I’ll put up a list of stuff we did around the city when all’s said and done, assuming we actually do anything. Most people I’ve asked have only been able to think of one or two things to do here, so the least I can do is show that there are, in fact, options.

Jun 8, 2013 1 note
#personal
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

Jun 4, 2013
#personal
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.

Jun 1, 2013
#personal

May 2013

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.

May 26, 2013 4 notes
#Emacs
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…

May 8, 2013
#personal
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.

May 7, 2013
#personal #school
May 3, 2013 1 note
#software #firefox

March 2013

Mar 31, 2013 22,614 notes
#gaming
Mar 16, 2013 3,319 notes
#economics
Mar 14, 2013 8,418 notes
#gaming #Final Fantasy
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.

Mar 1, 2013
#software

February 2013

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.

Blackbox

        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.

Emerge Desktop

        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.

The list

  • 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
Feb 27, 2013
#software
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.

Feb 25, 2013
#gaming
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.

Post-summer stuff

  • 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…

Feb 22, 2013
Summer 2012 Projects I

Next up is the list of my summer projects. Like most students, I tend to build up a pile of things I wish I had time for. Like most students, I also expect to have literally infinite time in the summer, since I’m not taking a full course load. Following that logic, I set out fifteen items on my list of potential summer projects. Only three are what I’ll call “complete”, while three are “kind of complete?” because I did actually get somewhere. There are three others that I’ve worked on since the summer. Two I decided weren’t worth the effort. In the end, that leaves four in limbo.

        Because the post got insanely long, I’m making this first part about “stuff I accomplished in the summer” and the second part about “everything else”. Also, bear in mind this is just me talking about my to-do list - there’s going to be another post about generally evaluating the summer.

Stuff I did

  • Read Code Complete

        I finished this one, by setting myself a goal of 60 pages per week. I did most of my reading on the bus (yes, I carried a 1300 page tome with me), which is weird for a programming book. However, I didn’t take notes on the entire thing, because it would require a lot of typing. I would like to go back and take more notes, in order to learn the material better and share with others. On the other hand, I worry about copying too much of the content. As if a ten year old book is really selling all that well these days.

  • Learn a programming language?

        I consider this one done, from reading half of Learn You a Haskell for Great Good. Which is an awesome book, by the way. Actually, it’s so good that it actually makes me question whether I like Haskell because of the language, or just because I started with a well-written book. But then I read these code snippets and I think “man that is cool” and figure it’s probably the language.

        Here’s why I can’t wholeheartedly say I completed this task: I’ve never actually written any Haskell code. I read the book on an Android tablet while on vacation at a lakeside cottage. And yet, months later, I can read Haskell code examples. I mean, I can basically read Ruby code examples despite knowing nothing about the language. But Haskell is extremely different from all the other languages I know - unlike Ruby, I couldn’t have intuitively parsed those FizzBuzz code examples a year ago.

        But it has to be said that I don’t yet know how to go about solving problems in Haskell. Maybe it’s more honest to say that this one is partially complete. But I’m happy enough with what I did learn, and intend to finish the book soon. Oh, and I also plan to check out the tutorials from these dudes.

  • Coursera courses

        There were two courses I thought were interesting running over the summer - Design and Analysis of Algorithms I, and Algorithms I. So I put them both on my to-do list, because their descriptions claimed they covered different stuff. However, in the end I didn’t bother doing Algorithms I. It seemed like a simpler course - focusing on implementing different algorithms in, I believe, Java. I will admit the Java part influenced my decision not to take the course, because I never want to go back to that. But I found the challenge of Design and Analysis of Algorithms I exciting, and didn’t feel like going over similar material again at the implementation level.

        So I took Design and Analysis of Algorithms because it ran first. Apparently, it was the more difficult course. It focused on mathematical analysis of algorithms and dealing with implementation in the abstract. Students had to fill in the implementation details in their language of choice. I didn’t complete all the credit stuff for the course, but I watched all the lectures, took notes, and learned a lot of great stuff. By which I mean, I struggled to find the time for (and feel comfortable with) all the typing necessary for the assignments. I figure I’ll retake the course at some point and just do the assignments so I get the credit. Even if I don’t, the material was really good and it taught me a lot of useful stuff.

Stuff that was partially completed

  • Super thumb drive, including security

        Semi-complete - “super” originally included having a setup for any computer I came across, not just ones using Windows. It seemed lightly possible to have portable Mac apps, but on the Linux side it looked like a wash (for understandable reasons, but still). Given that I don’t know enough about either ecosystem, I gave up on those. Also I’m lazy about security (at least, security defined as “repeatedly scanning your flash drive with portable antivirus software that’s known to be crappy”). However! I do have a USB 3.0 flash drive with all my browser customizations and LastPass installed, my Frankenstein IM client, 7zip, Workrave, and more via PortableApps. I also have some instructions for setting up portable Emacs. Using unconfigured Emacs is painful to me, so this is important. Once that’s done, I’ll consider this complete. Although, now that I think about it, anything that depends on Cygwin and other external tools may be impossible to get on another computer. Hmm.

  • Have the perfect Emacs setup

        This one is partially complete, but then, is it possible to finish? I still have hundreds of bookmarks to look at…

  • Paper with Sebastien, investigate PyPy for scientific computing

        I did investigate PyPy, but despite one or two reminders to Sebastien, the project stalled. I consider this partially complete, because I read a master’s thesis and gave some genuine thought to the implementation. That sounds like it took ten minutes, but no, it took a lot longer than that. Less time than actually implementing the whole system, obviously, but we’re talking a 100 page master’s thesis and a couple of hours looking at API documentation.

Feb 20, 2013 1 note
#programming #software
Summer 2012 in Tumblr posts

So I had a really awesome job over the summer! And I did fun stuff. And I didn’t write nearly enough because I’ve never had a full time job before. And then I went back to class in the fall, and I intended to write about how the summer went, and I didn’t. So now I’m doing that, in a series of posts about different things I wanted to do, things I actually did, and so on. Not sure how many there will be, but I’ll space them out. Once it’s done, I can move on to the fall.

        At the start of the summer, I created four different to-do lists and added very few items to them later. So my first few posts are going to be about how I did on finishing those tasks. I actually first did this for Reading Week last year, which I sort of mentioned in this post. Anyway, Reading Week is great because it’s totally unstructured time. So I set out a list of stuff I could do with my time, including productive stuff that needs to be done and fun stuff I’d like to do. Importantly, the list has more stuff than I could conceivably accomplish.

        At any given time, I pick whatever’s on the list that sounds like the most fun. By the end of the week, most everything is done, and it’s really relaxing because I’m always doing something on the list. It doesn’t matter if I don’t finish everything - I get through most of them, or I realize many were stupid, or whatever. So I made four lists like that last summer, and the first one I’m going to subject you to is posts I wanted to write. I set aside seven posts, and I wrote five of them (eventually), which is… eh for a four month period. The full list of posts I wrote:

  1. PAX, socializing, and the party April 25th
  2. Work with Mako + pictures
  3. Keyboard and ErgoCanada
  4. RSI (combined with above)
  5. Light Table

        Then the two I didn’t write:

  1. Why Emacs?
  2. AutoHotKey practical examples (I know roughly how to do most of these, but haven’t written the code or record a macro)
    • Having ctrl+backspace and ctrl+delete work everywhere in Windows, rather than sometimes inserting unprintable characters (this presumes the text area supports ctrl+shift selection)
    • Firefox add unsorted bookmark with keyboard shortcut (the default ctrl+d puts them in Bookmarks Folder, unlike the default behaviour for clicking the star in the address bar, which places them in Unsorted Bookmarks - I think I recorded a macro for this)
    • Windows Explorer focus the address bar with keyboard (this I have done; there’s an existing shortcut, but modern browsers use a different key, so it’s just a simple remapping)
    • Explorer Ctrl+b to go to favourites folder (this is useful because then you can just start typing the name of the place you want to go to select it and hit enter, instead of mousing over to the side panel)
    • Console2 and WinActivate to send focus back to the previously selected window (I was using some slightly borked code to have a “dropdown” terminal as in PC games, and it didn’t return focus when you sent the window away)
    • Toss the lot on GitHub

        Now that I write it out, that AutoHotKey post wouldn’t be so hard now that I have a good macro creator. Hmm. Maybe it will happen after all. I don’t feel the need to blather about getting into Emacs anymore, though. There’s way too many of those out there.

Feb 18, 2013
Class Presentation about Language Abilities and Brain Degeneration

This semester, I’m taking a class called Language Processing and the Brain with Dr. Ann Laubstein. There’s been some pretty interesting things so far, though admittedly we’ve covered mostly psycholinguistics (psychology of language) rather than neurolinguistics (language and the brain) material. When we’re not reviewing the material from last class (which I suffer through for the sake of people who find it helpful), I’m pretty engaged with the material. Specifically, I want to argue with everything. That’s… probably good, but I think there’s other fields for me in the long term.

Side note: I realize I haven’t posted about what classes I’m taking this semester. The reason I haven’t posted about this semester is because I still have to post about last semester. And the reason I haven’t posted about that is because I haven’t posted about my summer. But I’ve written that post! I just need to break it up into a series of posts because it’s long.

Anyway, back to the point: one of the required projects was a group presentation. We were assigned groups by last name, and my group presented this past Tuesday. The task was to find a recent paper that had made a significant contribution to the field, and present it to the class in ~10 minutes. On the advice of our TA, our group went with the paper Cognition and Anatomy in Three Variants of Primary Progressive Aphasia (note: paywall, sadly). I realize no one has any idea what that means, but I’ll get to that in a minute.

You can see all the materials over on UniNotes. The “Merged notes” documents have the notes each person took while preparing their section (plus full paper notes from me), so that’s the best free explanation you’re going to get about what the paper is about. The images are the graphs I created for the presentation, using the data I pulled from the HTML version of the paper, which is in “aphasia.csv”. Which took way too long for me to reformat for proper processing (Me: “Why is this being parsed as ordinal data rather than numeric…?” Professor Biddle: “Great question, let me know when you find out!”). Then the code for producing those graphs is in “aphasia.r”, which was a five-hour long foray (plus time spent looking at online help and such) into programming in R.

Then there’s the presentation itself. I was handling the introduction and conclusion, and by virtue of being relatively comfortable presenting, spent too much talking about. We put the presentation together using Prezi, because the first group that presented used it, and now the entire class is forced to. I mean, it would just be rude to assault their eyes with PowerPoint slides. So that’s available online here, if you’re curious. In case Prezi dies, I’ve got it on UniNotes too. Anyway, you can see there’s very little text in the sections I handled, which makes the whole thing pretty confusing for anyone who wasn’t around for the presentation.

Anyway, I actually like this paper. Their results are genuinely compelling, to me anyway: “damage in areas X, Y, and Z led to problems X, Y, and Z”. “We’re pretty sure Area Y is related to Problem X, so that suggests Areas Y and Z are related in some way to Problems Y and Z.” “Based on genetic profiles, the underlying cause may be X rather than Y.” Direct links like that are pretty rare, generally speaking.

Feb 16, 2013 1 note
#language #neuroscience #Carleton
Feb 13, 2013 1,871 notes
#personal
Feb 2, 2013 21 notes
#gaming #Pokémon

January 2013

Jan 30, 2013 33,467 notes
#anime
Installing the Windows 7 SDK on a new computer

[[if you’ve stumbled onto this trying to get the Win7 SDK installed, skip to the bottom]]

When I got my new laptop, I needed to get ispell setup for spell checking in Emacs. ispell itself on Windows is a wash, but I know aspell and hunspell can work. aspell can be had from Cygwin, which is great! Except that in September something was wrong with it/the mirror I chose, and it wouldn’t install. I got it a few weeks ago and all is well, but before that, I tried to get hunspell working.

Now, the instructions for Unix-based systems are pretty simple. Less so for Windows. I tried the 2.1 compilation instructions, for installing and running through Cygwin. Didn’t work for me (at the time, haven’t tried recently). The 2.2 installation was no better. So, off I went to try and get the Win7 SDK. I hoped that would be easier than futzing around with Cygwin

I was wrong.

I got two different errors (the numbers for which I’ve lost, sadly), and Microsoft’s help was no use. After a couple of solutions that “worked for this author”, including one involving registry editing, I finally found the problem.

My computer came pre-installed with a higher version of .NET and Visual C++ 2010 Redistributable than the ones in the SDK.

So, uninstall those, run the SDK installer, and then check Windows Update to get the newest versions back.

Anyway, this isn’t terribly useful without the exact error codes. But I don’t really feel like replicating the errors now that I have it working! It’s all a moot point now that I got aspell installed, but there you go. Just in case I ever need to install the SDK again, or someone else needs to.

Jan 26, 2013
#programming #software
Four years later

Long time readers will know that many, many QWERTYs have been shed on this blog over the desiccated corpse of my love life. A lot of the posts under my personal tag, and certainly most of the very long ones, have had something to do with it. I needed an outlet to introspect, and to put things in public that I used to keep to myself. I’m sure the topic isn’t as interesting to most people as it is to me, but I find my long-term emotional development extremely fascinating. It’s too bad I only started writing in 2010, but that’s neither here nor there. Other involved parties weren’t exactly thrilled with all the details that I shared, but I’ve learned my lesson on that.

        That’s important, because I’ve finally entered another relationship.

        It’s been a month and a half so far, and literally everything has been great. I have to laugh at junior high relationships, though - I figured it was a real accomplishment to make it past a month! I mean, surely thirty whole days is plenty of time to ruin the whole thing. This time, it took nearly a month for me to understand that, yes, that conversation actually happened and she did in fact say yes. Ironically, I’m probably more surprised about this turn of events than anyone else. Most people who’ve known about our friendship thus far figured it was going to happen sooner or later.

The story

        This isn’t actually a case of complete stupidity on my part. You see, after we went to PAX East (note the seemingly-outgoing individual) I got pretty interested. I was told it was just going to be friends for now (read as: “until further notice”, aka indefinitely), and I resolved myself to be okay with that. Surely I could manage to be friends with a single girl without developing romantic feelings for her. I mostly did! When I figured I was getting a bit past friendly, I’d talk to her about it honestly, so she could shoot me down (though the opposite outcome would be a nice surprise) and we could keep up with business as usual. There was lighthearted ribbing about my being a lifelong bachelor every time I inhaled my food twice as fast as everyone else. But I always got the distinct impression that she wasn’t gong to change that. She contends she chose her words carefully to avoid saying that, but I guess I think about things too much for that to work.

        So I got annoyed when basically everyone gave me advice to take the initiative, asking me when I was going to make a move, and so on. Granted, I’ve come a long way for my days of telling everyone they “don’t get it”. So I did tell them, each time, that it wasn’t going to happen and that was okay. Which is ironic, in retrospect, because in early December I had just finished dealing with what I hoped was the last stupid anxiety that was making it hard for me to see her as only a friend. Then, out of the blue, our usual goodbye hug was supplemented with a kiss on the cheek. I asked why, and the answer was “because I wasn’t brave enough to really kiss you”.

        Well, in that case!

Obligatory cheese

        It was surprisingly easy to let myself start falling in love again. I initially worried that it might take a while to completely change the nature of our relationship. After all, I’d spent months trying to avoid any untoward interest. As it turns out, there’s a lot of overlap between being very close as friends and dating. Thankfully, I only spent about two weeks of stopping myself mid-thought to ask “is it okay to think that? oh yeah, we said we were dating now! okay, carry on, brain”. And, dear reader, I’m happy. I even accidentally accomplished a goal for 2012 that I didn’t have the guts to commit to! I wrote my first love letter in more than four years. That’s not for your eyes, though. As for what I’ll say in public, here’s the story I recently added to the Facebook event commemorating our change of relationship status:

    "It’s hard to know where to start with this kind of blurb. Maybe the fact that we’re two out of a very small group of people specializing in linguistics within cognitive science. Maybe our shared interest in anime, or video games, or books. Maybe it should be about how a pair of introverts always enjoy each other’s quiet company. Maybe it’s an afternoon spent reading in the sun beside a beautiful lake and a beautiful girl. Maybe it starts with a familiar hand, raised in familiar excitement, in one lecture after another. Or maybe it’s something a bit less romantic, like a nosy classmate telling you never to wear white sock with jeans - in fact, never wear white socks at all.

    Let it not be said that men can’t change; I now own several pairs of non-white socks.“

        Meanwhile, I managed to prod and nag my way into a few nice pictures of us together, which I’ve screencapped for the sake of the album description.

Moving forward, looking back

        I’ll be honest: it’s weird to be starting from scratch with someone new. I’ve literally never done that before. It’s weird to be in a healthy relationship. It’s weird to receive a genuine compliment from someone I have great affection for. It’s weird to not be scared to speak my mind, and it’s weird to want to smile so often, and that she borrows books from my shelf and actually likes them, and that we curl up on the couch to play videos games we both like, and that we can study together, and the list goes on and on. It’s weird to spend so much of my time with one person, and not have the slightest desire for anyone else’s company. I keep finding out how awesome weirdness is.

        It’s a big change, one that comes after years of trying to move on. Four years of being single, all told. Still, it makes these moments of "so this is what a relationship is supposed to be like” that much more powerful. Turns out that desiccated corpse had plenty of life left in it after all.

        I hope I haven’t gone on too long. I just want to do the story justice. I have a number of dedicated readers that I don’t speak to on a regular basis, and if you’ve read even half of what I’ve written in the past, you really deserve to know how well things are going these days. I’m excited, and I hope that makes you happy, too.

Jan 23, 2013 2 notes
#personal
Matthew Darling: Bachelor of Cognitive Science

A year ago, the Cognitive Science department at Carleton took a vote on whether the primary name for our degrees should be changed from Bachelor of Arts: Major in Cognitive Science: Specialization in X to Bachelor of Cognitive Science: Major in X. I voted in favour, and so did most other people apparently, because earlier this year the BCog became an option for us. I’ve finally gotten around to making the change, and I’m pretty happy about it, I think. The requirements for me to graduate didn’t really change from what they were when I first came to Carleton and the current calendar, so it was an easy decision from that point of view.

The important change is from Bachelor of Arts to BCog. My first thought was “well, nobody’s going to know what to think about this weird degree only offered at Carleton”. Then I remembered that you can often get a BA in psychology, or a BS in psychology. They’re probably quite similar degrees, but odds are there’s one or two differences in required credits. Cognitive science gets a free pass on some of the BA staples like “breadth requirements”, so from that perspective it makes sense to make us separate. But the other aspect is that if I’m BCog with a major in Linguistics, it acknowledges that I’m probably only a few credits away from a BA degree in Linguistics. I can’t necessarily say whether my degree is primarily focused on linguistics or on cognitive science, so I can’t speak on whether “majoring in cognitive science” is better than “majoring in linguistics”. But the specialization thing has always been really confusing, and I’m glad to be rid of that.

It’s really weird to think I’m not far away from graduating. Most of my prerequisites in other areas were taken care of last year, but I had to do logic and philosophy of science this year too. This semester, I’ve got one required cognitive science course and three linguistics courses. Next year will be pretty similar, though at some point I’ll be doing an AI course. Over the summer, assuming I’m at Carleton, I’ll be doing an independent study course to learn statistics the hard way via R rather than the typical “stats for psych students who are scared of math”.

I say all of this because it’s equal parts exciting and scary. As it turns out, I’ve learned stuff over the last three years. Still, I haven’t decided on what I’m going to do after I graduate. This summer is going to be important, I think, for deciding what I’ll do when I graduate. Still figuring that out, though. I’ve been told I could potentially travel to work at another university over the summer, but the trouble with that is I don’t know what my options are. Or if my recommendations are good enough to be accepted by professors I’ve never met.

Anyway, I’ve got some meetings to arrange before I start making decisions. Though, of course, I’ll be screwed if I take too long on that. But then homework. And other things that need to be done. Blaaarg.

[please direct any funny jokes about my bachelor-tude to your usual communication channels, or comment so everyone can chuckle]

Jan 19, 2013 1 note
#work #personal #Carleton
Jan 18, 2013 1,064,275 notes
Ebook of my blog archive

I love Pocket, especially now that it can read articles out loud. However, it doesn’t do so well with code samples, which are like prose but can’t be reformatted. I still put programming articles away in Pocket, but I can never read them on my phone like prose articles. I figured that my Kindle Keyboard might handle them a bit better, so I started looking for ways to pull articles out of Pocket to make a nice little ebook out of them.

        Calibre’s old Read It Later recipe doesn’t seem to do anything except pull your most recent articles, so that doesn’t allow me to choose specific ones (it may or may not allow filtering by tag in the future). As it turns out, crofflr works quite well if I’m willing to tag articles I want to send (among supporting other services)… but I’m super lazy and I really like Pocket as a dumping ground rather than a structured thing I maintain.

        Somehow, eventually, I discovered Readlists which seems more or less perfect. I realize that it takes more effort than just tagging articles, but I kind of like that I can keep the list forever and share it with others. Maybe I’ll bundle up a bunch of Emacs Lisp articles, put them in a readlist, and then share it. If the articles were automatically pulled out, there’s less control over the theme of the resulting ebook - I could get an article about OOP, another about Emacs Lisp, and another about Haskell all after each other. Anyway, if you’ve ever wanted to make a plain-text ebook out of blog articles, Readlists is perfect for the job.

        Getting to the point, I’ve put all my posts tagged with “recap” into readlists. You can download them, if you like. Rediscover things I will in retrospect decide I shouldn’t have written! Follow my journey from the last year of high school to the present! Or just get inspired to give your own blog the same treatment. It works quite well, for something that’s free and takes just a few minutes.

  • 2010: http://readlists.com/504fefd7
  • 2011: http://readlists.com/562ec99d
  • 2012: http://readlists.com/556cc6f0

        A note: I’m going to write a few more posts about 2012, and I’ll add them to the Readlist when I do. I figure, it’s about 2012 the year, not about things I wrote in 2012. Spoiler: 2012 was a pretty good year.

Jan 16, 2013
#recap
Stuff I got for Christmas

So, for the past couple of years we’ve done this Christmas loot post thing. I planned on keeping it going this year, and I’m going to, even if it means posting about Christmas in the middle of January. I actually have two thousand words written about my holidays, but I’m not sure I want to inflict that upon the world. So I’ve extracted the loot table from that other post for your viewing pleasure.

Gifts received:

  • A rather nice lap desk
  • A bowl that is both round and wide for eating a mountain of cereal
  • Price-split on a 23", rotation-capable monitor
  • Paper Mario: Sticker Star (3DS)
  • Ico & Shadow of the Colossus Collection (PS3)
  • New winter hat with ear flaps
  • Razer Onza Tournament Edition controller
  • A bunch of cord management things as stocking stuffers
  • From my maternal grandparents, at my request: $100
  • A second pair of amazing thermal socks (the first of which I asked to have early)
  • A Freekey

Gifts given:

  • To Dad: Raspberry Pi and assorted extras, plus time required to turn it into a home theatre PC
  • To my brother: A D&D book (plus my recommendation to parents and others on what to give him)
  • To Mom: A small Bluetooth keyboard with a stand for tablets, hopefully allowing her Nexus 7 to replace her aging netbook
  • For Mom’s birthday: A Kobo Glo
  • For a friend in PEI: one Digispark and some assorted extras
  • For M-: An external battery for charging her phone (settled on at Sacha Chua’s recommendation after I initially tried to build a MintyBoost)
  • For my AP English teacher: A letter expressing my gratitude and how well things have gone for me at university thanks to all she taught us

Anyway, I may or may not inflict the full story of my winter break on the world. If I do, I won’t blame you for skipping it. If you wrote a 2000 word blog post about how you spent your break writing a 13 page essay (which was, ideally, going to be 20 pages) and submitted it just before midnight (by your supervisor’s time zone) and otherwise did boring family junk… I’d probably skip it too. I mean, maybe you can make that really interesting to read! But I don’t think I did. I might try to break it up into parts, but then I’m just making the boredom bite-sized. Decisions, decisions…

Jan 13, 2013
#BCN CHRISTMAS LOOT #AP English

December 2012

Dec 16, 2012 1 note
Kickstarter for a rad strategy RPGkickstarter.com

Telepath Tactics is being funded on Kickstarter and I really, really want it to succeed so go give the guy your money. The Telepath series has been around since… wow, 2006, and it’s pretty impressive to see the improvement between instalments. The creator’s blog has a lot of good content, actually, particularly under the design principles and game development tags.

Anyway, the link in the title will take you to a post where the creator explains all the currently planned classes for the game. I like the sounds of it, so go take a look if you’re interested in stuff like balance in RPGs. I’d like to see what he could do with a decent budget, honestly, so I hope this campaign goes well.

Dec 15, 2012
#gaming
What should we count as part of the mind?

[This is an essay I put together for a philosophy of mind class. It’s probably not a good philosophy essay, but it’s still a philosophy essay - you’ve been warned. It’s sort of esoteric, but I kind of like it. This was written at the end of our first (of three) units, which was about identifying what exactly the mind is, what it would mean to have one, and so on. We were given a specific structure to follow: first section describe the author’s views, second section give your criticisms, and third section try to modify the author’s idea to be immune to your criticism. I’ve kept the same format because the transition between the seconds is just impossible to smooth out.

The topic I was responding to was “the mark of the mental” - trying to identify what belongs in the mind, and what doesn’t. Descartian dualists like this question because they want to know what’s part of the mind, and what’s just part of the physical body. But it’s also something that would allow us to identify when a creature has a mind. If we decide that expressing sadness is only possible with real cognition, and a computer program expresses something we’d call sadness - we have to say that computer is conscious.

Katalin Farkas proposed that the only things that are part of the mind are those we can introspect on (and that no one else can introspect on). So your belief that this essay is going to be boring is a mental phenomenon, because no one else can introspect on that. But can you introspect without verbal thought? Can bees introspect? You’ll see what I have to say about that in section two.]

Part 1 - Katalin Farkas and the Mark of the Mental

        In The Subject’s Point of View, Katalin Farkas sets out to propose a solution to the problem of the mark of the mental – one unifying feature for all mental phenomena. Her answer relies on the special access introspection grants us to our mental phenomena. In short, the things that we can know through introspection (and that no one else can know about us through introspection) comprise the contents of our minds. Farkas extends this to include whole categories, rather than individual instances of them – for example, all beliefs are mental. This includes beliefs we may not consciously be able to reflect on, or beliefs held by beings unable to introspect (such as animals). Following this train of thought, Farkas proposes that anything identified as a mental feature of human minds can be used to identify non-human minds – even those with no powers of introspection.

        Farkas explicitly distances herself from claims that introspection is infallible (Farkas, 24), and accepts so-called standing states as part of the mind because they are accessible to introspection (Farkas, 43-44). The fact that someone might receive incorrect or incomplete knowledge of their mind, in theory, has no effect on her proposal. It’s intended as a tool for identifying things that are mental, special and separate in some way from things that are “merely bodily” (Farkas, 35). Its role as an epistemic tool for acquiring knowledge is an entirely separate issue, so the difficulties present for introspective knowledge are largely irrelevant to the mark of the mental.

        Farkas also acknowledges a necessarily human perspective on our philosophy of the mind. However, her view is that once we have identified which sorts of things are mental in humans, we can look for them in other creatures to determine whether they have a mind (Farkas, 44). This mind may be lesser in some way than our own minds, but provided it exhibits some of the things we discover through introspection, it qualifies as a mind. How we might investigate these mental processes in creatures incapable of introspection, or at least incapable of communicating with human language, is up for debate.

        The mark of the mental is intended to capture a “common sense” conception of the mind (Crane, 2), which would generally extend to family pets and other animals. We’re likely to say that our pets desire certain things, or have basic sorts of beliefs; and so Farkas provides a mark of the mental that accommodates these intuitive judgements on what has a mind, and what does not. This extends the possession of a mind to creatures with weaker abilities than those Farkas possesses herself. However, one thing that Farkas fails to consider is minds that have greater abilities than her own – some of the things that are a part of their minds may be entirely outside what we can introspect. This is the objection I intend to develop in the next section.

Part 2 - Criticisms of Farkas

        One doesn’t have to look far for examples of minds with abilities outside those considered by Farkas. Animals may have mental capabilities completely foreign to the human mind – one example is spatial memory in honeybees, an ability which allows them to solve the infamously difficult “travelling salesman problem” (Lihoreau, Chittka, & Raine, 2010). Even closer to home, autism advocate Temple Grandin frequently speaks about the ways in which the autistic mind differs from the “neurotypical” mind, such as their ability to think visually rather than verbally (Grandin, 2010). Bees, given the complexity of their behaviour, surely have some sort of mind. And autistic people, unquestionably, have minds. Yet the character of these minds, the nature of their thoughts and desires, even the nature of their introspection, is likely so different as to require a wholly separate vocabulary. The systems developed in philosophy of mind are, by and large, developed by what Grandin calls “verbal minds.” Farkas proposes that introspection should serve as the mark of the mental for all minds, without considering different types of minds – all she considers is weaker minds of the same sort the “average” human has.

        Farkas requires that for something to be a mental feature, it must be “available to conscious acts of reflection” (Farkas, 44). The way that Farkas characterizes reflection, however, has more bias than just the anthropocentric one she admits. Introspection in a verbal human mind could be entirely different from the introspection of an imagistic mind. An imagistic mind may not even be capable of introspecting things that have no visual component, which comprises a large portion of what Farkas considers as part of the “mental realm”, such as beliefs and attitudes (Farkas, 22). Considering non-verbal variants of “the mental realm” raises the criteria for a single, unifying mark of the mental. Not only could some mental features unique to imagistic minds be “unconscious”, as Farkas considers in sections 2.2 and 2.3, but fundamentally inaccessible by introspection. The default definition of introspection relies on linguistic terms. Non-verbal mental features would escape a classification of “mental” which relies on this definition.

Part 3 - Saving Farkas?

        A reply to this objection that preserves introspection as the mark of the mental is difficult, as it deals directly with the limits of the term “introspection.” If introspection can’t be used to access the entire possible scope of the mental realm, then it couldn’t serve as the mark of the mental. If the term “introspection” can be extended to include the thought processes of non-verbal minds, then it would still serve as an appropriate mark of the mental. The number of ways in which it would have to be extended appears limitless, however – there are likely more possible sorts of minds than we can even imagine.

        Not only that, but as someone with a distinctly verbal mind, I’m likely unqualified to speculate on the nature of imagistic minds. Not to mention minds that think in terms of space-time, or scents and hormones, or subtle interactions of taste and touch, or any number of things I can’t even begin to conceive. However, the general principle of extending the term “introspection” remains the same: Consider what is meant by verbal introspection, and then look for a way to define it in a new modality. The challenge of this defence is not only conceptualizing a different sort of mind, but how to properly explain and illustrate it for others. We may find, in the end, that we’ve come so far from the original meaning of “introspect” that a whole new word is required, which could then safely serve as the mark of the mental in the system Farkas proposes.

Works cited

Crane, Tim. (2010). Elements of Mind. Oxford: Oxford University Press.

Farkas, Katalin. (2008). Subject’s Point of View, The. Oxford University Press. Retrieved 24 October 2011, from http://lib.myilibrary.com.proxy.library.carleton.ca?ID=182555

Grandin, T. (2010, February). Temple Grandin: The world needs all kinds of minds [Video file]. Retrieved from: http://www.ted.com/talks/temple_grandin_the_world_needs_all_kinds_of_minds.html

Lihoreau, M., Chittka, L., & Raine, N. E. (2010). Travel Optimization by Foraging Bumblebees through Readjustments of Traplines after Discovery of New Feeding Locations. The American Naturalist , 176 (6), 744-757.

Dec 13, 2012
#consciousness
Norms of digital communication

I have this really, terrible habit of writing incredibly long e-mails. They’re as long, if not longer, than my blog posts. This is something I’ve done since junior high, and I’ve essentially never gotten the hang of writing short e-mails. I apologize for the length, I edit to remove junk, and they still wind up being huge. To the recipients of these e-mails over the years: I’m sorry! It just happens!

        I was trying to come up with an excuse, and I had a really brilliant thought: I write e-mails the same way I write letters. I sit down, I try to fill them with everything I wanted to say, and then I send them off with the intention of taking a bit of time before the next reply. It used to be that I didn’t have notifications for new e-mails, so it was something I only checked every once in a while - so it feels like I need to have all the information there in the original message. Even now that I have notifications, and I can get updates to an e-mail thread in Gmail without even refreshing the page, I still have a hard time thinking of e-mails as a fast form of communication.

        Instant messaging feels much more free, like a slowed down version of a face-to-face conversation. I speak in sentences rather than paragraphs. I like being able to take the time to figure out what I’m going to say; I’ve never felt comfortable saying “hang on, I need to stare into space for a few minutes while I decide how to answer your question so I don’t stick my foot in my mouth”. I… really don’t think people do that, even though an internet advice article said it was okay. At any rate, I do a lot of instant messaging and I’ve always loved having quick, easy contact with my friends while I’m doing other things on my computer. For a while, I guarantee I had more IM conversations than I spoke to people in person.

On Offline Messages and Photo Albums

        What I’m getting at is, there seem to be analogues between how I treat digital communication and more primitive things. The interesting bit is how much the ability to send offline messages changes the situation. I suppose they’re like the phone call, if IM is like a conversation face-to-face, because it doesn’t require both people to be in the same place (but they do require you to be around at the same time; I can’t think of a better analogy, if only because nobody checks their voice mail anymore) Calling someone on the phone to tell them something you just thought of seems so… primitive by comparison. They have to be available at the exact same time you are, and you’re potentially disrupting something because there’s no way to know what they’re doing at the moment. Offline messages can be sent whenever you want, and read whenever the recipient wants, and they don’t carry the long-form expectations I personally have of e-mail. If nothing else, I don’t need to think of a title for the message, which is always a challenge with e-mails.

        When Facebook chat was merely IM, I didn’t see the point of it - I rarely spend more than a few minutes at a time on Facebook, and I only visit a few times per day. I’d get ambushed by people I didn’t really talk to when I logged in, and it sucked because I got tired of being a jerk and saying every time “sorry, don’t have time to talk right now”. But now that they’ve merged the chat with messages, it’s actually become my primary method for IM. To the best of my knowledge, AIM and Xfire don’t support offline messages, and those are where I have most of my other conversations. When I have a link or something IM-worthy, I can send it over Facebook and the conversation tends to stay there rather than moving somewhere there’s less surveillance. Not to mention the people who don’t feel the need for dedicated IM now that they have Facebook messaging, which is a totally valid option, just like not everyone needs to use IRC.

        The one downside to offline messages on Facebook are that they’ve hidden away little artifacts that used to land on people’s walls. The other day, a friend of mine discovered Facebook’s “view friendship” feature - with the Timeline update, you can give your friendship a cover photo, provide a picture and a story for the first time you met, and it’s like the best photo album ever. There’s all these little pieces of conversations we were having that continued after the other person had logged out, full of references to games we’ve long forgotten about playing and jokes that are still pretty funny. But it’s all old stuff, from before Facebook messages existed as an alternative. And when I look at the page for my friendships with some other people, the amount of activity just doesn’t reflect how close we are. That’s perfectly fine right now, but it’s a missed opportunity for reminiscing in a few years.

Barely-qualifies-as-one Conclusion

        Anyway, I’m not sure there’s some grand thesis for me to argue for here. I just thought it was really illuminating to think about the influences of older forms of communication, and the expectations and norms that go with them, on more modern ones. It’s a relationship that goes both ways, too, though I’m mostly happy to discard phone calls, sending letters, and physical photo albums as entirely inferior to the alternatives. But I can say for sure that I’ve started to really appreciate actually spending time with people, in a way I’m not sure I would if I expected all interaction to be face-to-face. IM isn’t exclusive, though after a certain point it’s hard to manage a lot of high-volume conversations at once. But hanging out with someone is, and that means there’s nothing they’d rather do with that time than spend it with you, and I think that’s important.

Dec 8, 2012
#writing #recap
Northpaw: Giving people a sixth sensesensebridge.net

But not the sixth sense you’re thinking of. Instead, the Northpaw gives people a natural sense of which direction is north at any given time - and from there gives them knowledge of all the compass directions.

I never gave much thought to compass directions for navigating anywhere other than the middle of a forest, until I met a few people in Ottawa who navigate by cardinal directions. I’m so used to GPS directions, as a driver, that I just give directions like that. “Turn left on Main Street, go past three sets of lights, turn right on Water Street,” etc. They want me to say “go east on Main Street, go past three sets of lights, then go south on Water Street” or something like that. Unfortunately for them, this doesn’t make any sense to me and I really can’t understand directions like that - much less give them. So from that perspective, I find the Northpaw pretty interesting.

But what really makes me interested is how the principle could be extended. What kind of information could you convey to people in a tactile way? The first thing that comes to mind is the passing of time. I have a pretty bad sense of time, so when I was working on papers near the end of the semester last spring, I tried the Pomodoro technique (aided by Workrave, actually). After a few days, I started wanting to take breaks every hour, even getting a bit antsy a few minutes before the hour. It turned into a natural rhythm, but it didn’t really stick after I turned off the timer. So I’m wondering, if you had something like the Northpaw that buzzed strongly on the hour and weakly on the half hour (possibly a faint buzz for quarters of an hour?) - would you develop a natural sense of time? I think so.

You could probably implement this on your phone (Tasker seems like the obvious choice on Android) I guess, but I often miss slight vibrations from my phone, and it needs to reliable. On the other hand, modern cell phones aren’t huge and bulky like the Northpaw is (though I do understand their design, I imagine it would be noticeable through your clothes).

I’m having a really hard time thinking of what kind of information would be useful to have on a constant basis, aside from time passing or compass directions. Most information along the lines of, say, getting a new e-mail can’t really be improved above what smartphones already do. The important idea here is that the information is constantly available and eventually becomes second-nature, just like your other kinesthetic senses. But if you’ve got any brilliant ideas, let me know so I can steal them! Just kidding, I don’t have time to implement my own idea, much less yours.

Dec 6, 2012
#electronics
Temporarily unavailable

I don’t know if this will go out via RSS or be visible on Tumblr or anything, but there’s no proper URL for my tumblr at the moment. I tried to change matthewdarling.com to point to lamattgrind.tumblr.com - I hoped they would both exist concurrently, but no such luck. I didn’t want to mess with anyone who had lamattgrind.tumblr.com for its RSS feed or bookmarked or whatever, so I undid the change, but it’s taking a bit to readjust.

Oops. Lesson learned. Will try to setup a some sort of invisible redirect from matthewdarling.com to lamattgrind.tumblr.com, instead.

Dec 3, 2012 1 note

November 2012

Winter Emacs Hacking

During our Spring Break equivalent earlier this year, I set aside a fairly substantial amount of time to hack away at making the perfect Emacs setup (for me, anyway). It was incredibly relaxing to just spend a few hours digging in and not feeling the stress that comes from know I have better things to spend my time on. Since there’s always more hacking to do, I figure this is going to be a pretty good tradition for me. Here’s how the tradition almost died and then came back to life.

Nightmare in Emacs Land

        My Emacs activity has died down a lot since I got my new laptop. Why? Well… I went a bit too wild setting up Emacs on it. I literally installed every interesting-looking package available from ELPA, MELPA, and Marmalade. That’s a whole lot of packages. Not so much to use them all immediately - it was just to keep up with their development. When I restarted Emacs to try a few, disaster struck: I was greeted with a stack trace full of gibberish to the tune of “debugger entered: symbol nil” or some such nonsense. At any rate, the part that normally says “here is where something went wrong” was nil, (), etc. followed by a lot of garbage.

        Things mostly worked, though, or at least half worked. For instance, I keep files across sessions using dekstop.el - only some files would be kept. I had previously opened an elisp file that contained comments written in Japanese - Emacs decided that must mean I want to use Japanese character encoding for everything, forever. It forgot how to write proper line-ending characters, and when I would re-open a text file I’d been working on, there’d be control characters everywhere. I’m sure other things were broken and I just didn’t notice, but this was all incredibly annoying.

        So I hadn’t been using Emacs a whole lot, which is fine since I’m not in programming courses anymore. IDLE works well enough for my work at the lab. In the meantime, I’ve continued squirrelling things away in Springpad to look at in the future (up to 329 items right now). The biggest new source for these has been, strangely enough, a subreddit dedicated to Emacs. I’m not much for reddit, normally, because it’s the kind of place where you can waste a whole lot of time. This is exactly what happens every time I visit r/emacs, so it’s both a blessing and a curse. It’s sort of intimidating to have hundreds of things to look at, but it’s all interesting stuff and it’s all working towards having a configuration I can use for years to come. But, of course, that presumes I’m actually making use of this configuration.

Return to Emacs Land

        But that debugger thing was a real pain in the butt. I had no real way to start investigating it, since it didn’t give any hint as to what was causing it. I was considering starting over and adding packages one by one, to see where the problem was coming from. That would have been miserable and time-consuming, but it would be appropriate penance for an incorrigible customizer.

        On a whim, though, I thought I’d try something today: update all my installed packages. I was worried that maybe the problem wasn’t me - maybe the newest Windows build of Emacs 24.2 was messed up. Or maybe some old package I was using had finally crapped out. If it was really a package I’d installed, and not a complex interaction between multiple packages, it would be simple to fix. So after a few months of anxiety I set 45 packages to update and went to have dinner. Maybe the problem had been fixed already.

        I came back, restarted Emacs… No debugger! All my files from the last time I used a healthy Emacs were back! File encodings were back to normal! Now I can finally start hacking again, maybe figure out how to use el-get on Windows to install golden-ratio.el…

Emacs Mass Attack

        If you’re curious (and I know you aren’t, you can skip the rest of this) here’s the sorts of things I’ve got planned at a bare minimum.

  • I’m pretty excited about finishing the conversion of my init files to use jwiegley’s use-package.
  • I’m pleased to see unification happening for things that used to be incredibly complicated - projects like smartparens and flycheck are out to save us all from the cruft you need to properly configure older packages. Just look at the functionality smartparens tries to incorporate (I currently use three of those packages). Look at the EmacsWiki page for flymake to see the sort of hell you have to brave in order to get that working for most languages.
  • Magnar Sveen has a bunch of projects that make me smile, from libraries for string manipulation and list operations to crazy stuff like multiple files in a single buffer and maintaining multiple cursors at once.

        You might be wondering: why do I care about elisp libraries, since I’m not a developer? If these sorts of things take off, it makes things better for everyone, because elisp packages can incorporate reliable components that implement useful functionality. Feels good to make predictions that come true.

PS: Today’s section titles come to you courtesy of Kirby, because I couldn’t come up with any way to organize this around the titles of Star Wars movies

Nov 29, 2012
Response to R.M.W. Dixon's The Rise and Fall of Languages

[[This is a short paper I wrote near the end of my Introduction to Linguistics course. The assignment, for bonus marks actually, was to read a book and write a brief summary and respond to the reading. Hopefully it stands well on its own, without the book. Dixon’s book was a pretty good introduction to historical and comparative linguistics - topics we didn’t have a lot of time for during the course itself. At any rate, the material he presented was basic enough and clear enough that I was able to understand it easily. So hopefully this essay is equally digestible.

The other main goal was for us to read about a controversial alternative to the accepted (as far as textbooks are concerned) wisdom about language change. It sounded pretty plausible to me, so I figured I’d go along with it. In retrospect, the most useful things I learned from the book had nothing to do with Dixon’s model itself. At any rate, it was a good experience, and I’m glad Professor Anonby gave us the assignment. Looking back almost two years later, it’s striking how much I’ve taken to heart that if something sounds too good to be true in science… it probably is. Look, ma, I’m a critical thinker.

A couple of good readings on the topic I found when I started looking for other papers using Dixon’s model:

  • Claire Bowern provides an overview of the model’s biological roots and other aspects of historical and comparative linguistics. Her paper is both more informed and more critical of Dixon than what follows. Worst of all, she cites a reference reporting a wealth of counter-evidence (see page 8) to Dixon’s theory about Australian languages - pretty damning when it’s his strongest example.
  • Simon Greenhill writes about a supporting result, though as I understood it, it supports a punctuated equilibrium model that merely posits differing rates of change rather than Dixon’s specific formulation. Of particular interest is the discussion in the comment section with Claire Bowern and others.]]

Response to R.M.W. Dixon’s The Rise and Fall of Languages

In his book The Rise and Fall of Languages, R.M.W. Dixon discussed the problems with the family tree model of genetic language relationships and proposes an alternative model to supplement it. While the family tree model works well for Indo-European languages, he shows how it has failed to apply to other linguistic areas. As an example, he discusses groups of Aboriginal languages in Australia. Many of them can be grouped into sub-groups based on location, but construction of a proto-language and creating the upper levels of the family tree proved to be difficult. Dixon’s proposed model of punctuated equilibrium claims that in linguistic areas in equilibrium, such as Australia prior to its invasion in the 18th century, language features tend to diffuse amongst neighbouring languages. This leads them to converge towards a common prototype. On the other hand, when that equilibrium is punctured – by invasion in Australia, though there can be other causes – languages tend to split and form the kinds of genetic relationships seen in the Indo-European family tree.

              Dixon describes the kinds of linguistic features that tend to diffuse amongst languages in contact in a linguistic area, and provides an analysis of the strengths and weaknesses of the family tree model. As a transition into his theory of punctuated equilibrium, he describes the possible modes of change in languages – that language can change quickly and decisively, or it can change gradually over time. The first applies to the family tree model, while the second is more appropriate for the punctuated equilibrium model. Dixon then elaborates on recent human history, and how nearly every part of the world has undergone drastic punctuations to their equilibrium, making it easy to think the family tree model applies everywhere in the world. The nature of European invasion is such that, by trying to study an equilibrium situation, it is punctured by the linguist attempting to study it. In any event, few areas of the world still exist in such isolation, so the task of the linguist becomes that of a historian of language, trying to capture snapshots of how languages were before they were influenced by outside sources.

              While I am certainly not an expert, I am tempted to agree with Dixon’s punctuated equilibrium model. It seems to provide for the shortcomings of the family tree model for language areas outside modern Europe, where clear genetic relationships are more difficult to define than within the Indo-European family. Indo-European languages have existed in punctuated equilibrium for most of recent history (the past several thousand years), creating the ideal family tree style model, but that’s likely not the case for more isolated areas such as Australia where various groups would have co-existed relatively peacefully for thousands of years. Additionally, the punctuated equilibrium model does not claim to invalidate the family tree model, because it is naturally included for linguistic areas with punctuated equilibrium. Instead, Dixon’s model supplements the existing theories and expands upon them to account for other linguistic areas. I don’t know enough about world history to think of an area of the world that has neither been isolated in linguistic equilibrium nor affected by punctured equilibrium, but I would think Dixon’s model applies for just about every linguistic area of the world.

              Dixon discussed two types of responsibilities that linguists have – first a social responsibility, then a scientific responsibility. The social responsibility, for the benefit of our understanding of human language, is to document undocumented (or minimally documented) languages to preserve them and see the massive range of possibilities that exists in human language. The scientific responsibility, which is not unique to linguistics, is not to take established theories for granted. To assume that the family tree model applies everywhere in the world, and to use comparative linguistics to “prove” tenuous links between languages, is to deny the possibility that other options exist in the world’s languages. The social responsibility feeds into the scientific, as well, because documenting new languages that may not fit the accepted theories will help to refine linguistic theory.

              The question of where linguistic research should focus its attention, on data or on theory, is tied closely to the responsibility of a linguist. Speculative theories can be used to direct research – Dixon’s theory of punctuated equilibrium is a good example – but they cannot exist without any data to support them. Data can be used to create new theories, but new theories cannot be created without any data. If the available data is never expanded by linguistic research on undocumented languages, then new theories are unlikely to appear. Dixon is an example here as well. He did field work in areas he felt needed study, and found that the data he collected did not fit with existing theories of genetic relationship. The new data led to the creation of a new theory, which could not have existed otherwise.

              Overall, I’m quite glad that I read the book. It was enlightening to see what a linguist really does, and I appreciated the theory and how it helps to describe language development outside modern Europe. Sometimes it’s tempting to forget that other parts of the world do not have history defined by bloody wars and political strife, and the fact that a culture could exist so peacefully that it would have no concept of competition (Dixon 113, footnote) is remarkable to me. I knew about the Germanic and Romance languages, in a general sense, but I had yet to be convinced by family tree theory that all languages in the world conform to a genetic relationship pattern. My budding linguistic knowledge now includes the family tree model and the punctuated equilibrium model, which should prove helpful in the future. It’s always good to have more ways to approach a problem, and that’s certainly something Dixon’s book provides.

Nov 29, 2012
#linguistics #language
Adventures in New Laptopia, Pt 2: Electronic wiles

Ancient History

Before I got my first laptop, I’d always used desktops for my own purposes (obviously). The only laptops I’d used were terrible Vista-era Acers that my family needed me to troubleshoot all the time (usually because of some Acer “value added” software that replaced perfectly functional Windows defaults). But then I got an HP Paviliion dv6-2210 in 2010, and it was nice, and I could bring it to class and have my natural computing environment with me outside the house. It was wonderful, and I loved that laptop, with its homegrown UI cobbled together with Rainmeter and Emerge Desktop… Plus, I could carry it in my backpack when I moved between houses, much unlike a desktop computer. It was pretty important to me.

And then my new laptop, a Lenovo X230t, arrived. I haven’t intentionally used my old laptop since the new one arrived. As soon as I turned it on, I was entranced by its electronic wiles. Oh, HP Pavilion dv6-2210, I did love you - until something that’s better in every way arrived.

Favourite Features

I immediately unpacked it, stuck the battery in, and set it down on the kitchen table. When I started up the X230t, the first thing I noticed (or, didn’t notice) was how quiet it is when it runs. The fans make a very slight whirr, but it’s only noticeable in a quiet room. My old laptop was left alone in my bedroom down the hall, and it was making enough noise when idle that I could still hear it.

The next thing I didn’t notice was how amazing the screen is. Since the screen can tilt fully from 0 to 180 degrees, and rotate clockwise from 6:00 to 12:00, it needs to have amazing viewing angles. Now, I didn’t know what it meant until I read this blog post by Jeff Atwood, but the X230t has an IPS display. Here’s the difference: when I was playing D&D the other week and our DM wanted to show us an image on his laptop, he had to tilt and rotate the entire machine so that everyone around the table could see. At the wrong angle, the screen was just a gray blob. With my laptop’s screen, everyone could see everything at once. It wasn’t until that event that I realized how awesome this screen is.

Moreover, somehow the quality of the screen has kept the low resolution (same old 1368x768 as my old laptop) from feeling cramped. I used a wide-screen, 21" monitor at work over the summer and I hated going back to the tiny screen of my HP laptop. I went to Emerge Desktop in order to get a completely minimal UI - no chrome at all, just 16x16 icons for my quick launch, currently running programs, and notification area. Oddly enough, on the X230t I’m still using the “big” taskbar that I used to think was massive and ugly - at the same screen resolution! Actually, one big reason not to forego Explorer as my shell - there’s a default Lenovo widget that displays battery power in terms of time remaining, and that’s awesome.

The battery life is fantastic - I got a 9 cell battery by default and a “slice battery” that doubles my total battery life. It’s a plug-and-play thing that attaches to the bottom of the laptop, rather than an alternative to the regular battery. In other words, I don’t need to shut down and swap batteries if the regular battery is running dry. It can be charged separately from the main battery. While it doesn’t add any new ports or anything, that’s okay, because it would probably provide less battery life if it did. Or add more bulk. The moral of the story is, I can get through an entire day without needing a power outlet, and this is amazing freedom for someone who never had more than five hours (at best) from a full charge.

Input Options

Speaking of which, I was worried about going back to typing on a laptop keyboard, but it’s been fine so far. Granted, I’m doing more written (vs typed) assignments this year because of the classes I’m taking, but still. Typing on the keyboard for lectures hasn’t made my hands hurt, but programming for a few hours on it does make me sore. The keyboard does have backlighting, but I’m a touch typist so it’s literally useless.

The trackpad has a nice texture to it, and - glorious day - there are three mouse buttons between it and the spacebar. The third is initially configured as a scroll wheel, but can be turned into a middle-click, and that’s my favourite thing ever. The trackpad does support a variety of gestures, but I can’t remember to use them. Doesn’t help that they’re less reliable than keyboard shortcuts (I couldn’t get the three and four finger gestures to work). But maybe I’ll get into it some day.

It has that signature ThinkPad red thing in the center of the keyboard, but I can’t get used to it. It also has a touchscreen, and I’m going to talk about that in a separate post.

Miscellany

The Bluetooth on the X230t actually works, so I can finally look at Bluetooth headsets as an option over wired headphones. Yay, future. It does lack an SD card reader (my HP laptop had one, it was useful occasionally) and a CD drive, but the only time either of those gave me grief was when I wanted to put some files on the SD card of my new 3DS XL (I’ll write about that at some point too). It’s got a really weird Print Screen key in the middle of the right-hand ctrl and alt keys, which is incredibly annoying when I try to hit ctrl+v and accidentally take a screenshot instead (overwriting the previous clipboard entry).

Apparently, there used to be a keyboard shortcut for changing the scroll wheel function into a middle mouse button, but according to someone at Lenovo some changes had to be made for Windows 8. That forum topic is actually pretty interesting - there’s a variety of posts from people as to how the X230t compares to the previous model, the X220t, which highlights a few interesting things about it. Plus, someone who actually works at Lenovo came in to comment, which impressed me.

Other than that, I’m not sure what else to say about the hardware. I opted for a better wi-fi module instead of a webcam, because I only ever used the webcam in my HP laptop twice. USB webcams are much better because they can be angled separately from the screen. It doesn’t have an HDMI port, so I need an adapter that changes DisplayPort to HDMI. It has an always-on USB port that’s still powered when the laptop is asleep, so I can charge my phone from it whenever I want. The processor is a Core i5, of the Ivy Bridge variety, which turns out to be better than the i7 in my old laptop - and the built-in GPU is better than the independent GPU in the old laptop, too (at least according to the Windows Experience Index, and I’m too lazy to run real benchmarks).

So all in all, I have fallen head over touchscreen for this laptop. No regrets on the purchase. I’ll probably write a third post about the touchscreen and various other pre-installed software-esque stuff, but no guarantees. Have lots of other stuff I should have written about long ago…

Nov 22, 2012
Nov 17, 2012 1 note
#gaming
When I have to install a bunch of Python libraries

wheningit:

Alright, I know this is uncharacteristic for my tumblr these days, but this is pretty much how I feel about dependencies on Windows. All the time. I waste entire life (or at least, entire summer life) messing with dependency bullcrap. All I wanted to do was use C++ to put a picture on the screen, and it became a several hour time suck trying to get CMake to work to install a graphics library (and all the dependencies of its dependencies…). So then I moved to Python and PsychoPy, but the only reasonable way to install PsychoPy on Windows is to download their standalone package that includes Python. So now I have three versions of Python installed (2.7.3, 3.2, and PsychoPy’s 2.6.6) and I have to mess with my PATH to get everything in the right order.

The alternative option was to add their dependencies to my 2.7 installation, but that would be an endeavour worthy of the above .gif times three. Trying to handle the fact that PsychoPy has a dozen (literally, count them) dependencies, the fact that there are three Python package managers (pip, easy_install, setuptools) and none of them seem to work 100% of the time…

It sucks and I much prefer writing code. Even if the code uses the subprocess module and calling kill() doesn’t actually work on Windows so I have to borrow a function that makes calls to the Win32 API… That is better than managing dependencies outside Unix. Because it means the software for running my experiment is almost ready!

Nov 15, 2012 12 notes
#Python #programming
Kayt Sukel on Love

Last Friday, the Cognitive Science department at Carleton hosted a talk by Kayt Sukel, a science writer with a recently published book about the neuroscience of love, sex and relationships. While I enjoyed the talks I attended by Paul Thagard and Zenon Pylyshyn, their main job is to do research, and so their talks were fairly functional. Kayt, on the other hand, writes for a more general audience - unsurprisingly, her talk was really entertaining. There was a lot of laughter, and only a little bit of blushing. But it was super interesting, too, and I wound up buying her book afterwards. Got it signed, too, and her dedication made me smile - “to love and other indoor sports”.

At any rate, before the talk I was looking around her site and read a handful of articles. My favourites:

  • 5 sex myths busted by science
  • Orgasm unlocks altered consciousness - weird as it may seem to people not doing a degree in cognitive science or philosophy, this is really interesting to me. The same topic actually came up once in my philosophy of mind class, when we went over an argument to the effect that orgasm is one proof of qualia. It was a weird lecture, but was theoretically interesting.
  • I donated an orgasm to science - the story behind the above article.

With all that being said, below are the notes I took from her talk. If you’re interested, find a link to buy Kayt’s book from her site!

That Crazy Little Thing Called Love

If we’re going to study love scientifically, we’ll need an operational definition for what we’re actually looking for

  • Love has been written about for hundreds of years, and we can recognize it even in old plays and paintings - so it’s something that has persisted in humans for a while
  • At the 1995 Wenner-Grom Symposium, the topic was “Is there a neurobiological basis for love?” The goal was to gather the best and brightest and figure out an operational definition for love
  • Their definition: love starts with motherhood, then we leave our mothers and search for that same kind of bond elsewhere

Love on the brain

Bartels & Zeki (2000) was the first published study on the neurobiology of love

  • They found significant deactivation in the frontal cortex when participants were looking at loved ones, by comparison to when they were looking at images of physically similar people
  • The frontal cortex handles executive control and is responsible for a lot of our inhibition - so people are less inhibited when looking at loved ones?

Fisher, Aran & Brown (2005), in a similar study, found activation in three key areas that are related to attachment, lust, and sex drive

  • They proposed that these three areas, while distinct, had overlapping functionality - they worked both together and against eachother
  • In theory, this is what allows us to transition between different relationships with the same person - from platonic attachment to lust, from lust to love, and so on

The smell of love

But, for starters, we can mostly agree that love starts with attraction in some form or another

  • Now we need to define attraction - where does it come from? Most of the time, when you ask people what attracted them to their partner, it seems like they’re just guessing
  • As it turns out, the biological basis comes from our odour-print - this is largely determined by what’s called the MHC, a gene cluster that primarily influences the immune system
  • People with optimal immune system compatibility tend to be attracted to each other, even if they say the reason was something else
  • See the “dirty t-shirt studies’ - interestingly, immune system dissimilarity was a major factor in the choices women made, but so was similarity to their father
  • The authors explained their results by saying that the women needed to find a mate whose scent they could still recognize (hence similarity to their father), but was as dissimilar as possible while still being familiar

Is love a drug?

When people claim to be madly in love with a new partner, there are changes in:

  • Dopamine (involved in reward systems)
  • Oxytocin (related to pair bonding in monogamous prairie voles)
  • Vasopressin (related to monogamous behaviours - when you block it in the aforementioned voles, they stop being monogamous)
  • Serotonin (mood regulation)
  • Neurotrophins (chemicals that aid in growth of the brain, sort of like fertilizer)
  • Sex steroids (i.e. testosterone)

In particular, here’s how these chemicals were affected:

  • Serotonin went down, dopamine went up (serotonin sometimes acts as a brake for dopamine, so these two effects may be related)
  • Oxytocin went up, reflecting the formation of a bond
  • Neurotrophins and testosterone also went up
  • However, two years later, the couples who were still together and in love were studied again - these chemicals had all returned to their baseline levels
  • Perhaps these changes early in the relationship reflect a need to solidify the bond, and after the bond is formed, things start to settle down

Love may actually be the blueprint for drug addiction, as many similar chemicals are involved

  • This explains the change in focus, lack of attention to other things, and phsyiology of both phenomena
  • Perhaps drugs actually hijack the subsystems for love?

Evolution of love and monogamy

Since we see this weird response at the initial development of a romantic relationship, maybe it’s necessary for some evolutionary benefit

  • A few ideas: having one dedicated partner provides more reliability than looking for many mates over time - they’ll always be around to protect from predators, search for food, and so on
  • If love has these evolutionary fitness benefits, then we could suppose there’s a drive to find it

Actually, a lot of studies on love and attachment are done on prairie voles

  • As it turns out, they’re a pretty good model for humans, as the relevant brain areas are very similar
  • Strangely enough, only 2-3% of mammals are monogamous, so it’s hard to find a species to study
  • In prairie voles, if you block their oxytocin receptors, they stop being monogamous and go search for other mates - even ignoring lifelong partners
  • Closely related vole species that aren’t monogamous have less vasopressin receptors in the areas of the brain related to attachment - if you modify their genes so they have more vasopressin receptors, they show more monogamous behaviour
  • Menawhile, if you surgically remove vasopressin receptors from prairie voles, they become less monogamous as well

In humans, things are a bit harder to study, but there are interesting differences between men and women:

  • In men, having a certain variant of a gene that relates to vasopressin receptors correlates with more dissatisfaction in marriage
  • For women, a gene related to oxytocin receptors leads to the same correlation

Is monogamy "natural” in humans? This is probably the wrong question to ask

  • These kinds of genetic factors are just probabilistic, not deterministic - correlation with dissatisfaction in marriage doesn’t mean a gene will cause people to be unfaithful

Love and parenthood

Motherhood changes the volume of a few areas of the brain

  • This is easy to explain, since women have to be host to a growing parasite for nine months - physiological changes could easily lead to brain changes as well
  • Maternal love seems to overlap with romantic love in neuroimaging studies, and involve similar chemical changes

Dads actually have neural changes as well, with an increase in oxytocin

  • Why does this happen to men, who don’t become pregnant?
  • Oxytocin levels seem to correspond to the type of interaction parents are having with their children - for mothers, it relates to nurturing behaviours like cuddling their child, while for fathers it’s more physical, explatory play like gently tossing the child into the air
  • Perhaps it’s beneficial for the child to have these two different types of interactions from two different parents

Conclusion and questions

Some people have asked whether studying the neurobiology of love will ruin the mystery and excitiment of love

  • Samir Zeki disagrees: “Learning about DNA allowed us to replace the mystery of heredity with awe towards its mechanics”

Oxytocin was first discovered in relation to labour/child delivery

  • Delivering a child associates a lot of oxytocin with them - this is like a shotcut to attachment
  • However, with adopted children, this isn’t the only way to get the same attachment
  • This is similar to how sex is a shortcut to attachment and bond formation - plenty of people form romantic relationships in other ways

Do the chemical changes in parents stay over time, such as after children move out?

  • No real studies on this yet
  • Anecdotally, many parents find it hard when their children have all moved out

The chemicals involved in love are similar to those involved in long-term stress responses - perhaps they just signify important things in our lives

Psycho-social approaches have advanced understanding of a lot of things like heart problems in medical fields - perhaps they would help in the study of love, too

  • However, it’s very hard to get funding in the US for anything that is even remotely related to sex and love, much less to start investigating psychological and social factors

What about relationships that form solely online, where the influence of odour-prints would be removed?

  • Think of people who have met up in person, after dating online, only to find that there was no real connection
  • This makes it seem like online dating is good for making introductions to a lot of people relatively quickly, but it’s best to meet face-to-face early on in order to see if there’s real compatibility
  • What people say they want doesn’t always match what they actually want, which is a notorious problem for online dating sites

Perhaps, in the t-shirt studies, women have inherited preferences from their mother - which is why they go looking for someone similar to their father

  • Or maybe they are unconsciously looking for a mate who is equally good as their father was to their mother
Nov 14, 2012 2 notes
#neuroscience #consciousness #Carleton #recap
Thoughts on using a pedometer for a month

A little over a month ago, I bought a new copy of Pokemon HeartGold. Those of you who know the game will also know that it comes with a little pedometer that gives you small benefits within the game. I figured I had room for it in my pockets, so I’ve been keeping it on me ever since.

        One thing that’s interesting is that it seems to break up steps into discrete “trips”, separating them after some unknown period of low activity. It’s a feature I wouldn’t know I wanted, if I were shopping around for a “real” pedometer. While it’s not perfect (there’s some required threshold for generating a “trip” report, like having 15+ minutes of walking), it winds up giving me a lot of really interesting information. Assuming I remember what I did on a given day. But, for example, the first day I had it, I walked to school in the morning and after class. When I had to stop at a couple of traffic lights on the way to/from campus, it separated the trip into chunks - so I can figure out the relative distances of each part of the trip (from hose to the first major intersection, from there to campus). Well, that assumes I write down the trip numbers at the moment I transfer them to the game cartridge (more on that in a moment). Also, I say relative because I don’t know exactly how long my stride is, and I can’t claim 100% accuracy of its measurements.

        When I walked both to and from campus, my totals were in the range of ~12,000-15,000 steps. If I walk in the morning and take the bus in the afternoon, it’s down to ~9,000-12,000. After construction finally finished on a bridge near campus, I was able to cut my travel time hugely by taking the bus halfway and walking from the bridge. This put me down around ~7,000-11,000 steps per day. However, that’s all from my mom’s house - from my dad’s, I’m around 6,000-8,000 most days.

        However, the main issue thus far has been that I don’t have access to complete historical data. Data for the last seven days is stored on the device itself, and can be “sent” to the game cartridge for summarizing and getting bonuses. When you sent the information to the cartridge, it gives you your trip reports and updates your total steps thus far. But it doesn’t store the individual daily values that are sent to it (since that could take theoretically infinite storage, which it doesn’t have). So this leaves me with the annoying problem of writing down my daily steps just before bed, and that feels like a lot of effort.

        Interestingly enough, the Nintendo 3DS includes pedometer functionality, and seems to keep track of historical data (hourly summaries and daily summaries) indefinitely on a calendar. From my own use, it seems to count less steps in most cases - but perhaps the Pokemon pedometer is counting too many… I’m inclined towards the former because of the size of the 3DS. I imagine it’s harder for the whole thing to shake and count as a step. That, and it’s just not something I can fit in the pocket of my pants, so it’s not a real alternative. I keep it in my backpack, instead, but that counts far less steps.

If only the 3DS could connect and sync steps with the Pokemon pedometer…

A few specific things I learned in the first few days:

  • In the morning, walking to campus from mom’s takes me about 3000-4000 steps
  • Going from the lab on one side of campus to my locker takes about 2000-3000 steps, which makes me realize just how much I need to minimize my trips there

        Anyway, it’s been somewhat interesting. The data would be more interesting if I put in more effort, though. I imagine there are super amazing pedometers that would automate most of the drudgery, but those would cost money. I don’t want to go for a phone-based option, either, because the phone’s built-in sensors just aren’t a good alternative to the simpler solution of a pedometer. Reading reviews for Android step counting apps, people report terrible battery drain and a variety of limitations (have to keep the app in the foreground) and I’m not terribly surprised. But, I guess, without spending some real money on something like this I probably wouldn’t get anything better than what I already have (fits in pocket, counts steps for a given day).

Ah, well. Perhaps that’s a Christmas present idea.

Nov 10, 2012
#personal
for-else construct in Pythonpythontutor.com

A couple of weeks ago, I agreed to facilitate a workshop on Python for non-programmers in the cognitive science department at Carleton. It’s been alright so far for the first two sessions - about seven-ish people attending, but with wildly varying skill levels. Specifically, one guy is experienced with C/C++ and several others know almost nothing at all about programming. It’s been hard to engage everyone at once. There’s been a lot of “we can talk about this after” and “this is interesting but probably not important to most of you”… especially from me because I get excited and hope they will still understand.

Anyway! This evening I was trying to find good code examples to show in an online Python interpreter that doubles as a visual debugger. Looking through the available examples, under the advanced Python features section, I saw an example called “for-else” (the title of this post links directly to it). Wait… what is that?

As it turns out, this exists in Python. I found a blog post on the topic that shows a useful application of the technique. This can be applied to a for loop or a while loop, and the code in the “else” clause only runs if the loop exits normally. In other words, it runs if you don’t break out of the loop. In a way, it’s kind of like the “else” is attached to all the break statements inside your loop - namely, if none of the break statements are reached, run the else clause. I have a really hard time matching up the idea of this meaning with an interpretation of “else” - to me, this seems more like a “finally” clause that is surpassed by break. finally is used for exception handling in Java, but by definition you can’t pass over it - code in a “finally” clause is run no matter what. Well, I think. I’m sure there are loopholes I don’t remember, probably involving destructors somehow because they’re a source of much evil.

I feel like it’s a solution in search of a problem, which is probably why this isn’t a very well known feature. Off the top of my head, the only thing I use break for is when I’m looking for a single thing in a collection and want to do something with it afterwards - and not do anything with the rest of the collection. continue is a different story - I use continue a lot more often, because looking at an item of a collection and doing nothing with it is a lot more common than finding one item and discarding the rest of the collection.

But hey, there you go, some unique semantics (I think?) in a programming language. If it was really such a great idea, it probably wouldn’t be so rare.

Nov 8, 2012
#Python #programming
French Immersion in Anglophone Canada

[[So, here’s the first of my essays I’m going to post - I wrote this in my first year at Carleton, for an Intro to Applied Linguistics and Discourse Studies class. I know it took a while for this post to appear - I was worried it would take a lot of effort to convert the essay to Markdown. I only remembered this morning that Janna Fox, our professor, told us to use as little formatting as possible - if we wanted to emphasize something, we needed to do it with words, not formatting tricks. It was good advice, I think, though on the internet a bit of italics and bolding has its uses.

As for the essay itself, it was for an assignment along the lines of “write an essay about something we’ve talked about in the last month.” So I wrote about second language learning, and my experience with it. I don’t think I made a particularly good argument for anything, but I think the story is valuable. In that respect, you’re probably going to be annoyed by the references I make to our class material. Still, it’s not terribly long, and I don’t think you need much background knowledge to understand it. I hope it’s an enjoyable read!]]

French immersion holds a strange position in the Canadian education system, especially in anglophone areas like my hometown of Summerside, Prince Edward Island. Most parents who enroll their children in the program work for the federal government, or some other position where they see the value of being bilingual. The promise of a bilingual position becomes the main motivating force for many French immersion students. Yet many of us found ourselves ignored or derided by actual francophones when we tried to practice our French during trips to Quebec. Sometimes they would speak to me in incomprehensible English or act as though my French made absolutely no sense [[editor’s note: maybe it didn’t]]. After years spent in the French immersion program, they were telling us we did not qualify as “Really French.”

        Based primarily around Chomsky’s theory of a mental grammar, constructed through language use, and the idea of “Discourse” and “identity kits” developed by Gee, I would like to examine the ‘success’ of the French immersion program based on my personal experience and those of a few close friends. I have considered our experience with French immersion, including our abilities to speak and write in French, and use of French outside the classroom. It is clear that the French immersion program taught us to comprehend French, but when the time comes to produce our own, we find that we lack knowledge of standard French grammar, and even that francophones stigmatize our ‘dialect’ of French. As Gee (1996) notes, though our grammar is poor and our forms are not ‘correct,’ we can communicate with other French immersion students quite well.

        The isolated nature of our French, learned in the same classes, with the same teachers, and used only within those classes, means that by and large every French immersion student from Summerside, PEI, constructed a roughly identical mental grammar. As discussed in class on September 22nd, the basic idea of the active construction of mental grammar theory claims that experience with language allows us to discern its rules and attempt to apply them on our own. In a language rich environment, with a variety of input, properly learning a language happens quickly and easily. Sadly, the French immersion program, in the areas of Canada devoid of French culture, is anything but linguistically rich. The only source of ‘correct’ French comes from our instructors, and the majority of the experience we get with French comes from other students struggling to learn the language alongside us. With such limited opportunities to truly learn and internalize the standard grammar of the language, no linguist would be surprised that francophones see our French as alarmingly poor.

        Despite our severe lack of standard French grammar, anglophone students in the French immersion program understand spoken and written French quite well. Obviously, we do know French, but we have learned to speak a different dialect of French – that of an anglophone French immersion student. Much like the women in the job interviews cited by Gee (1996), our dialect works fine in certain contexts, but in the context of interacting with a francophone, we are stigmatized for not matching the accepted standard. The “Discourse,” or identity, that comes with our spoken French is that of an anglophone failing to learn the ‘correct’ way of speaking and writing French. In the act of “doing being-or-becoming-Really-French,” francophones pass the decision that we are incapable of joining them as Really French. The federal government would accept our French for a bilingual position, but we would struggle to live and work in Quebec as a member of a fully francophone society.

        Like the case of being a Real Indian discussed by Gee (1996), any francophone could tell from a mile away that my classmates and I are simply not Really French. The curriculum in the French immersion program tried to test us, once and for all, to determine our identity as capable French speakers. Gee (1996) recognized the fallacy of such “identity tests,” yet they pervade the French immersion program. Thanks to lack of practice, the foundation of our language skills crumbled over the years. In high school, my French instructor marvelled at our poor knowledge of basic concepts, and spent considerable time re-teaching lessons that we received years ago. When tested a few weeks later, as little as 50% qualified as a passing grade [[editor’s note: as in, students could succeed even if they only learned 50% of the material and received a grade above 50% on the tests]], and our instructor could only hope we might remember something. Much like Swain (1995) found when testing for comprehension of French, the lessons a teacher assumes they have taught are not always what the students learn. A lesson on grammar might only boil down to students writing “peux” instead of “peut” all the time and completely forgetting the rest.

        As discussed by Gee (2010), express teaching often fails to produce a perfect understanding, and compared to the tacit experience of first learning a language the strategy faces many difficulties. Francophones, who learned the complex rules of the language as children, understand implicitly the rules and conventions of the language. “This is French,” they say, “this is how it has to be.” For an anglophone, these rules require memorization and active correction of our French any time we speak or write. When we forget to use any number of these rules, we do not realize that we are expressing something the ‘wrong’ way, because the rules are not yet a part of our basic understanding of the language. Only when they permanently become a part of our mental grammar will we take them as a given and apply them automatically, and supporters of the innateness hypothesis might argue that our critical period ended long ago. Following that theory, our French may never fully develop.

        The ‘success’ of the French immersion program, at least in an area with small French populations like Prince Edward Island, depends on how you measure success in learning a language. If success means landing a bilingual position, then the program succeeds beautifully. For a number of reasons, perfect integration into francophone society may be unrealistic, but knowledge of the standard grammar should serve as a realistic measurement. Even in that respect, the program’s success is questionable. Dedicated students can easily continue their education in French and practice their grammar using what the French immersion program taught them, but when your high school diploma comes with a certificate identifying you as fully bilingual, no extra education should be needed.

References:

        Fox, J. (2010). Lecture given September 22nd, 2010.

        Gee, J.P. (1996). Social linguistics and literacies: ideology in discourses (pp. 122-132). London: The Falmer Press.

        Gee, J. P. (2010). Language, Literacy & Learning in a Digital Age. Given January 22nd, 2010. Online at: http://www2.carleton.ca/slals/events/language-literacy-learning-in-a-digital-age/

        Swain, M. (1995). Three functions of output in second language learning. In G. Cook & B. Seidlhoffer (Eds.), Principle & practice in applied linguistics: studies in honour of H. G. Widdowson (pp. 126-142). Oxford: Oxford University Press.ess

Nov 5, 2012
#essay #linguistics
Nov 5, 2012 12,639 notes

October 2012

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
Oct 22, 2012
#writing

September 2012

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
Sep 30, 2012 1 note
#Carleton
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)

Sep 18, 2012 1 note
#software
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.

Sep 9, 2012
#hardware #software
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.

Sep 4, 2012 2 notes
#gaming #writing
Next page →
20162017
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
201520162017
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
201420152016
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
201320142015
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
201220132014
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
201120122013
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
201020112012
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December
20102011
  • January
  • February
  • March
  • April
  • May
  • June
  • July
  • August
  • September
  • October
  • November
  • December