The lows are low, but the highs are home

Month
Filter by post type
All posts

Text
Photo
Quote
Link
Chat
Audio
Video
Ask

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
Interactive fiction jam delayed; more resources

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

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

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

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

  • General notes: https://simple-note.appspot.com/publish/pnNXVd
  • Extensions I’ve found that seem like they might be useful: https://simple-note.appspot.com/publish/blW3Q2

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

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

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

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

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

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

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

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

Sep 1, 2012
#writing #gaming

August 2012

Things Tumblr Does For You

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

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

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

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

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

Aug 31, 2012
I turned 20

…and forgot to tell the internet about it

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

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

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


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

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

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

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

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

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


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

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

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

Aug 31, 2012 2 notes
#personal #recap
Meaning through Game Mechanics

External image
[image courtesy of the Winter Voices site]

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

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

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

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

External image

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

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

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

External image
[image courtesy of the Winter Voices site]

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

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

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

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


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

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

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

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

Aug 30, 2012 1 note
#gaming #recap
Interactive fiction jam

We’re doing what?

While I was researching a post I’m working on (you’ll see it soon, I’m really proud of it), I took a bit of time to look into interactive fiction. This led me to a Stack Overflow question with a lot of good answers about IF tools/systems, and I realized once again how cool Inform 7 is. I’ve also been listening to episodes of a Destructoid podcast called “Sup, Holmes?” (itunes, feed with mp3s), and in a number of episodes (episodes 15-18) he has interviewed people from the Toronto indie game community. They all spoke of things they had worked on at various game jams in Toronto, and I thought that sounded pretty cool. A game jam is just a bunch of people gathering (often physically, but sometimes digitally) and working on a game for a set period of time. At the end, you have a thing that probably sucks but gosh darn it you made it and you’re going to be proud of it!

Light bulb: why not combine the two?

So here’s what I’m proposing:

  • Date: Monday (Labour Day)
  • Time/length: From 12 pm until 4 pm, Eastern Standard Time - we all have other things to do, and we don’t all get up early. Note that I originally had allocated a lot more time for this; but I didn’t want to exclude people who have, you know, adult responsibilities. Next time we’ll do five hours. Perhaps it will be a two-part event, e.g. we all work on the same story next time.
  • Who’s invited? I’ll get a few interested folks from Ottawa in my living room, but distant participants are welcome - I’ll set up some kind of video chat through Google Hangout/Skype/TinyChat/something so we can taunt each other and discuss stuff
  • What do you make? The day of, I’ll announce the theme we’re going to write on by pulling one of several candidates from a hat - I’m open to suggestions on what our criteria are for a “finished” story, as I don’t necessarily want one person to write 10,000 words and someone else to write 300
  • Then what? Then everyone works on their story all day, in whatever way they see fit!
  • What happens when I’m done? We’ll use Inform 7’s export thing to put what we’ve made online!

This is meant to be difficult, because to the best of my knowledge I don’t know anyone who writes interactive fiction. The random theme aspect is designed to make it that much more challenging. What you produce doesn’t have to be awesome; it will probably be more fun to create than to play. At any rate, it’s just meant to be a fun event for us to hang out and do something interesting. I literally have no experience with this, and haven’t written creatively in a while, so I expect this to be really difficult. But you’re up for it, because you’re awesome!

Resources

I’m going to be continually adding resources that seem useful here, if you want to do a bit of research. Just try not to show us all up by reading everything like some kind of genius, alright?

For a practical introduction to Inform 7, check out this screencast by Aaron Reed. I’d forgotten about this video, actually; this was the first thing I ever saw about Inform 7 and it’s really quite impressive. He paints the system in a more prose-based light than some of the other more programming focused resources below. So at a bare minimum, give that a watch and then grab things below that seem useful.

One programming-language-y thing that I expect to be quite useful is rulebooks. I expect he’s right that using rulebooks as much as possible is a good idea, so do give that post a look and consider making use of them. Thinking about it a little, rulebooks are kind of like quirky interfaces - you have some behaviour that you want a bunch of things to share, so you put it in a single place and have them “consult” with the rulebook on what to do. Depending on the approach you take, this will either be incredibly useful or utterly irrelevant.

For in-depth tutorials on Inform 7, there’s a section on their site. The Recipe Book seems particularly useful.

For those of us with the background, Inform 7 for Programmers is long but informative. I actually find it to terse to a fault in some ways; it’s not very good as reference material to flip through.

If you’d like to see some source code as an example, check out the bottom half of this page which implements Cloak of Darkness, which seems to be an IF “hello, world” sort of story.

One of the StackOverflow answers recommended the section on design from the old Inform Designers Manual, Fourth Edition (DM4). So I’ve extracted that into its own PDF, which I’ve uploaded here.

Inform has an extensive library of extensions (shut up I am normally better at writing than that), which you can check out here - once you’ve got an idea of what you’re going to do, you might want to look around in there.

If you’d like to write a fight-y sort of game, you can check out an extension for Inform called ATTACK.

He also has a series of posts about designing a text-based dungeon crawler in Inform 7, if that’s your jam: pt 1, pt 2, pt 3, pt 4

If you run into anything interesting that I haven’t directly linked to, please do send it around to the rest of us. We’ll probably all be doing wildly different things, but you might inspire someone to change direction with whatever wonderful extension/blog post/whatever you’ve found.

Aug 29, 2012 1 note
#gaming #writing
Aug 24, 2012 15,794 notes
Light Table - an IDE that goes beyond textchris-granger.com

I’ve been watching Chris Granger’s Light Table project for a few months now (apparently, since April) and the more I think about it, the more I like it. According to their Kickstarter, the rough estimate for release is May 2013. When it comes out, it’s supposed to support Clojure (a Lisp dialect that initially ran on the JVM but has a variety of ports), JavaScript, and Python - all dynamic languages with powerful tools for instantly providing feedback. The link in the title of this post will get you to the version 0.1 demo, which currently only supports Clojure.

        Even though I like Emacs and have no trouble using a command line tool like Leiningen (aka lein), I see a lot of things to like about Light Table. I like the fact that lein is now built-in, and you can get started with a project right away. The Instarepl is fun to play around with, and it’s something that would be difficult for a purely text based editing environment. With the addition of the Table in the latest version is, things have gotten a lot more interesting. What they’ve done is emphasize the structure of functional programming through the structure of the IDE - you work with a bunch of discrete, self-contained units and gradually combine them into a unified organism (to take some inspiration from the preface to Structure and Interpretation of Computer Programs).

        Working in a buffer of code, if you find that you need to re-arrange some units, it’s a lot of work. Light Table presents these units as being completely distinct from each other, making it easy to navigate between them and move them around. I assume the final product will make it easy to travel between the different views of your code - I’d love to shuttle a bit of code between the Table for editing and the Instarepl for testing, for example, but at the moment that doesn’t seem to be possible. The constant documentation lookup presented in the Kickstarter pitch+video is nice, as well, and I think it would prove to be more useful than having a hotkey to go looking for a bit of documentation.

        The moral of the story, though, is that these are the kind of things you put together when you look at the logical structure of code. Extending Light Table in JavaScript, as demoed by Chris, actually winds up leading to more impressive extensions than most of what you see for Emacs. Emacs has tons of awesome extensions like Org mode; but your power starts and ends with text processing. You can make nice tables in Org mode - I’ll happily concede that you could write a similar benchmarking mode that outputs an Org file. That’s pretty simple in plain text.

        What about displaying the contents of a database on the fly? It seems to me that Emacs isn’t so great at displaying constantly changing data like that (ie as you change the code in the associated buffer), but I could be wrong. But until someone completely revamps the rendering engine in Emacs (which could be a long time coming) you just can’t embed a webpage in Emacs. Full stop. No, viewing it in plain text with w3m doesn’t count. No, converting the webpage to a pdf and displaying that doesn’t count (yes, Emacs can do that). I mean honest-to-goodness embedding the webpage, such that you can interact with it and see it true to life, including its JavaScript and other stuff that probably stumps text-based browsers like w3m.

        This isn’t just an abstract problem - displaying text with heavy formatting is basically impossible in Emacs. I’ve been looking at using Emacs to write LaTeX for papers, and the workflow is pretty crappy. You write your LaTeX document, you compile it and output a pdf, then you display the pdf in Emacs or in a standard pdf viewing program (on Windows, SumatraPDF is a good choice because it won’t lock the pdf file while you’re viewing it). Compare that to Gliimpse - personally, I’d like a version with instant transitions, but that’s just me. With or without transitions, it’s the same idea. You write your markup, you take a second to see what it looks like, you switch back to the markup to make some changes. Tada!

        Contrast that with the current workflow - you write the markup, compile the new version, open the pdf, check out your changes, make some adjustments, recompile, re-open/refresh the pdf… A dual-pane environment for writing Markdown is actually available online, but I’m having a hard time finding anything similar for LaTeX. If Emacs had a rendering engine capable of displaying LaTeX documents accurately, it would provide leverage for a plethora of useful tools, stuff above and beyond the demos Chris put together.

        Until then, we have Light Table.

Aug 17, 2012
#software #Clojure #Emacs #LaTeX #programming
My Emacs config on Githubgithub.com

If you don’t use Emacs, you can safely skip this post. If you’re curious, checking out my files is probably a bad place to start; I’ll make a post sometime about all the “starter kits” I’ve discovered and pilfered ideas from.

I don’t know if I have anything super awesome in my configuration (yet) that actual Emacs users would want to check out, but hey, here’s what I’ve got. You’ll notice there’s an insane amount of comments in there. By my last count, the file “old .emacs” contained 1207 lines. Without comments, it only had 239 lines of code. The main benefit is that it’s really, really easy to read through (for me, anyway). I can go a couple months without looking at the files and still understand why a certain snippet is there. I’ve linked to the source for a lot of things (80 character line limit be damned), too. I’ve got sort of a hierarchy going on with the number of semi-colons in a given comment line - five for the introduction of a section, three for the introduction of a paragraph explaining something, and one for each line thereafter.

Oh, and 80 semi-colons surrounding every conceptual section. They’re kind of hard to miss.

Something that may be new to you: I learned about electric-buffer-list yesterday, which I don’t think anyone ever uses, but it’s enough of a marginal improvement over the default buffer-list command that I mapped it to C-x C-b. And, hey, it supports the same buffer highlighting as the original buffer-menu (you only have to modify a single line). But of course, this being Emacs, you also have the option of BufferMenuPlus, if you like.

It’s not meticulously organized just yet… There’s mostly no rhyme or reason to the ordering of a given file. I’m planning a big revamp johnw’s use-package soon, and just generally getting things organized in a clear way. I haven’t actually used org-mode yet, but I’m starting to itch for hyperlinks within/between my files - I may very well take advantage of org-babel and base a new version off of it. I could even have a table of contents for a given file, which would be nice for other people who you don’t know what to search for.

Hyperlinks in a text file. Yay, Emacs!

Aug 12, 2012
#Emacs
Updating my tumblr theme

I recently added Disqus comments to my Tumblr, so that anyone can make quick comments on my posts without having to formally reblog the post. Or otherwise use Tumblr at all. This further illustrated the main problem with my tumblr: it totally sucks if you aren’t reading my posts through your dashboard. Well, the RSS feed might be good. But anyway, people visiting for the first time didn’t have a great experience. It didn’t look good, it was a pain to change things, and so on. I was always apologizing whenever I linked someone to it.

It was using a pretty lame default theme that was available when I first started this whole thing more than two years ago. When I was trying to add Disqus comments, had to futz around in the HTML in order to add the comments section, and even then, it looked weird. But the guide I had bookmarked on getting Disqus on tumblr, aside from highlighting some useful stuff like Akismet, also mentioned that “modern” themes have built-in support for Disqus.

In other words, it was time to move on.

I eventually settled on the theme Effector, which looks relatively nice and has support for a huge amount of stuff. It has a checkbox for infinite scrolling, which I had previously enabled with some JavaScript I found online. It has Disqus support, obviously. It has a nice little section where it links to various social networks. It has a floating bar thing for my title and search box and stuff. All in all, it’s a huge improvement. The one thing I don’t really like is the flat colouring used in music posts, but I think what I have now is kind of ok.

Stuff I changed:

  • I added some custom CSS, which Effector has a box for, to center headers in my posts (example)
  • Only had to edit the HTML once, to put back the awesome search box from Swiftype - it even scrolls down the page correctly! I can also see the searches people make in real-time, so I know that literally no one has used my search box except for me. But it’s really, really good at finding things - whereas the default tumblr search box is literally useless.
  • Added the silly little floating Black Coat Network icon in the bottom left that currently does nothing, as a sign of support for a good friend
  • I put my Tumblr tag cloud back and found out that it can be ordered by frequency instead of recency. I decided to limit it to my 10 most popular tags, as well, because it took up a lot of space when I had it pasted into my description box. Instead, I made a page that shows the full tag cloud in case anyone wants to see.
  • I lied about only editing the HTML once - I realized having the tag cloud in my description was dumb, and so I found out how separators were done in my theme and made one to create a section titled “popular tags” . It looks nice, I think!

I’ve got a few things I’d still like to take care of, though:

  • Adding some new icons to link to my GoodReads profile, my AnimePlanet profile, and my Pocket archive (aka Read It Later aka the name I prefer to use because it’s more recognizable) - this would make my contact page obselete
  • I might like to move the “control buttons” for each post to the top, instead of the bottom - these are the buttons for getting a direct link to a post, liking a post, etc.
  • Adding syntax highlighting for any code snippets I care to post, because why not? I’ve got an old Xah Lee post hanging around for hard-coding it into the HTML, but I’m also checking out highlight.js and sunlight.js. Highlight support more languages, and seems to support them better, as well as having more theme options (I’ve become partial to Monokai). Meanwhile, Sunlight has line numbers (but it seems an older branch of Highlight has this too) and seems to have a pretty good architecture. Realistically, they’re probably both just as good. To implement, I think I just need to get the JavaScript file and upload it to tumblr and then just run the script by putting a < script > block in my description.

Anyway, there’s a bunch of stuff you can fiddle with if you haven’t visited the actual web page in a while. Or add to your own tumblr, if you like. Or any website, I assume, if that’s how you roll. Swiftype’s indexing and searching is really quite nice, and it’s free if you’re not sucking up their bandwidth. And automatic syntax highlighting is pretty rad if you’re going to post code snippets. So yeah, if you like the sounds of that, go check them out and I’ll be happy and stuff.

edit, five minutes later: I uploaded the required JavaScript file and the Monokai theme for highlight.js, but unfortunately it looks quite ugly. Turns out none of the themes with dark backgrounds look good on my current theme. So I’ve gone with the Arta theme because it kind of fits with the rest of my current colour scheme. You can see it all in action at this unlisted page, if you’re curious. It was pretty easy to install, actually, though I have no idea if it might have averse effects on page loading…

Aug 10, 2012
#website
The Lisp Curse and the Dark Age of Emacswinestockwebdesign.com

Over the last few months, I’ve been learning a lot about a text editor called Emacs. I haven’t started using it full-time, yet, but I’ve already spent dozens of hours researching it. The reason that so much information even exists is that Emacs can be easily extended to do things far outside the domain of a simple “text editor”. This is done using a programming language called Emacs Lisp (one of many dialects of Lisp). The essay I’ve linked above, The Lisp Curse, proposes the following hypothesis: “Lisp is so powerful that problems which are technical issues in other programming languages are social issues in Lisp.” Since Emacs is written in a dialect of Lisp, naturally it seems like it would fall prey to this problem.

The Past

        I can’t really evaluate the essay as to how it treats Lisp historically. But what strikes me about it, as someone who (currently) isn’t fluent in Lisp, is how much it reflects what I’ve seen in Emacs. The EmacsWiki is nothing if not a historical archive of many years of Emacs development. If you go to the page for some high-level problem, like session management, you’ll usually have at least three competing solutions. The trouble is that many of these solutions haven’t been touched for years, and may even be broken in modern Emacs. A different solution (which may not be perfect) may have been added to the standard distribution in a recent version, making extra code unnecessary (electric-pairs comes to mind for auto-inserting pairs of characters like [] and ()). This has been the case for the history of Emacs pre-2011 or so - let’s call this the “Dark Age of Emacs”. It seems to me that projects from the Dark Age of Emacs suffer from The Lisp Curse. From the essay:

“Programs written by individual hackers tend to follow the scratch-an-itch model. These programs will solve the problem that the hacker, himself, is having without necessarily handling related parts of the problem which would make the program more useful to others. Furthermore, the program is sure to work on that lone hacker’s own setup, but may not be portable to other Scheme implementations or to the same Scheme implementation on other platforms. Documentation may be lacking. Being essentially a project done in the hacker’s copious free time, the program is liable to suffer should real-life responsibilities intrude on the hacker. As Olin Shivers noted, this means that these one-man-band projects tend to solve eighty-percent of the problem.”

        I ran into this problem pretty early into my Emacs career. Session management was one of the first things I wanted to figure out when I started with Emacs. My goal was to keep a small text file open on the side at all times, containing a list of shortcuts and tricks I should remember. Imagine my frustration when none of the solutions I tried actually worked! Or at least, none were simple to set up for a complete beginner. Right now I use revive.el, which functions for the most part, but I’m not entirely happy with it. I could probably get it working if I understood it better, but at the moment its particular 80% solution works for me.

        Code from the Dark Age of Emacs is kept in blog posts, hosted on EmacsWiki, stuck in some obscure directory on university domains, lost to the ether that is personal websites with expired hosting… Tracking down updated versions is nigh impossible, because they’re often created by new authors taking care of an abandoned project. Small projects get “forked” or maintained by someone new without the benefits of the trail of crumbs left by forking on GitHub. I once ran into a project that was three times removed from its original author, with every successive version being hosted on a different personal website. The only reason I found the “newest” version of the project was a few stray comments on a long EmacsWiki page, full of hacks and monkey-patching that stopped being relevant years ago. See the EmacsWiki page on smooth scrolling for an example of this - odds are that none of those fixes will work for you. I’m surprised even two comments on that page have version numbers to serve as a lame time stamp…

The Present

        It’s been a long time coming, but the Enlightenment of Emacs has begun in earnest, thanks to the power of the internet and proper tools. GitHub makes it incredibly easy for developers to collaborate on large projects, or for users to report bugs and have them fixed quickly. The Emacs Lisp Package Archive, and especially the inclusion of package.el in Emacs 24, have made installing and distributing extensions as easy as it should be. The MELPA repository combines the power of the two by supporting packages stored on GitHub, without requiring the author to upload their package to a special repository or give ownership their code to someone else. Unlike, say, downloading revive.el, trying a new package doesn’t mean downloading some files off of a Japanese server. While bad documentation mostly plagues code actually hosted on EmacsWiki, GitHub encourages everyone to have a bare minimum of non-technical documentation (do this to start using it, here are some things you might want to tweak). Collaboration on a single perfect solution is easier than ever before, and life is pretty good for both developers and users.

        Here’s a somewhat abstract problem, solved with flying colours by collaboration: when programming, you often want to select some chunk of code and do something with it. Usually, this is a “semantic” chunk - in prose, imagine selecting a word vs a sentence vs a paragraph. You can see a video of this in action here, and see for yourself how awesome this actually is. I can’t track them down any more, but I saw at least one “80%” solution to the same problem by Xah Lee, and another somewhere else. This is the Dark Age of Emacs at work - nobody knew what anyone else had developed.

        Magnar Sveen’s expand-region.el is, as far as I can tell, a nearly perfect implementation of selecting semantic units. Better yet, it’s not limited by his imagination. If you scroll down, you’ll see that there are at least eight other contributors to expand-region. If you scroll up, you’ll see there are many specialized X-mode-expansions.el files. If your language of choice isn’t supported, contribute! And now there’s a definitive solution to this problem.

The Future?

        I don’t know, first-hand, how things stand for Lisps other than Emacs Lisp. Or whether this is going to be true for new dialects of Lisp going forward, thanks to new tools. From reading people’s reactions to the essay on HackerNews (in two different threads!) and Reddit, it seems like the problem is real… depending on who you ask. The fact that it’s so easy to solve problems, everyone does it their own way had at least one piece of anecdotal evidence in its favour. Lots of people disagreed, obviously.

        Points in favour of thinking this may not be true going forward: a lot of people threw in a vote for Clojure, a newer Lisp dialect that runs on the JVM (which has definite overlap with the Emacs community). I’ve seen some pretty cool tools (lieningen, Light Table - no surprise that the two work together) and libraries (Noir for web development, Overtone for making music) for Clojure, and they’re all hosted on GitHub. Perhaps programmers finally have the social tools we need to avoid not invented here syndrome and the other composite parts of the Lisp Curse!

Aug 3, 2012 1 note
#programming #emacs #recap

July 2012

Symposium On Usable Privacy and Security 2012sdrv.ms

It might sound kind of strange, but part of my job at Hotsoft is actually just to get used to academic culture. As part of my ongoing education about what being a graduate student will be like, I went to my first conference two weeks ago in Washington, DC. The conference was the eight annual Symposium On Usable Privacy and Security, and you can read the notes I took at the link I’ve posted! It’s a notebook I put together with Microsoft OneNote and have shared publicly through SkyDrive - in theory, it should look pretty nice. But if you prefer, I’ve put a .pdf version up on UniNotes.

        My thoughts on the conference itself: it was what they call “single track,” meaning there’s only ever one thing going on at a time. That was really nice, because it meant I didn’t have to plan what I wanted to attend in advance or run around like a crazy person trying to see everything interesting. I didn’t realize the conference would take pretty much the entire day, each day - I figured I’d have time to check and write e-mail, or do other productive things. Never really found the time, unfortunately. One of the lab’s PhD students told me that’s basically the norm at conferences, so that’s a lesson learned.

        One thing that surprised me is the diversity of interests that were brought together under the umbrella of “usable privacy and security.” There were people who are immersed in the world of location-sharing services or looking at ways to use location data. Others were focused on studying Android app stores. And if it weren’t for meeting up at conferences like SOUPS, they probably wouldn’t ever interact a whole lot. As someone who doesn’t have a vested research interest in the area right now, I was actually pretty out of the loop on some of these things - for example, I know nothing about location sharing/tracking. So when I was talking for a while with someone who works in that area, I was a bit at a loss on what to talk about. On the other hand, when I was discussing issues that affect me as an Android user, I had lots to talk about.

        I hope I made decent conversation, even when I was completely outclassed. I’ll have to work on getting people to talk about themselves more, so that I can just nod and smile. Practice asking clarification questions, so I can get up to speed without sounding like an idiot.

        On Friday, when the conference was done, a group of us went to see the Art of Video Games exhibit at the Smithsonian. It was pretty unimpressive, to be honest, because it was primarily a “look, don’t touch” exhibit. Which really defeats the entire purpose of video games. There wasn’t much historical information about the development of different games, so they didn’t have that to fall back on either. The games they picked generated good discussion among our group, but I don’t know if non-gamers would get a whole lot out of the exhibit.

        Overall thoughts on the trip: I got to know members of the lab when we went to dinner and chatted over drinks (water for me, because I can’t drink across the border yet). I met some new people, as well, from Carleton and from other universities. I learned what to expect from conferences, and got a bit of a feel for the HCI/privacy+security area. Altogether, I think it was a pretty valuable experience!

Jul 27, 2012 1 note
#SOUPS #conference #work #recap
Tales from the RSI crypt

It’s kind of strange to think about it, but I’ve probably been at a PC nearly every day for the last 12 years. I’ve never chosen my own computer setup, though - I’ve always made the best of whatever furniture my parents picked up. That changed a few months ago when I dropped more than $300 - three hundred bucks plus tax and shipping - on a Kinesis Contoured keyboard. First, a few words on my ordering experience with ErgoCanada - if you’re in Canada and you want some crazy thing like a $300 keyboard or $100 vertical mouse, do yourself a favour and order from them.

        As a child of the internet age, I thought it was kind of… quaint… to have to confirm my order over the phone. When you’re used to Amazon, where you click three times and receive your item two days later, it seems sort of old fashioned. But that assumes you know exactly what you want to order, and you know better than anyone else what you want. This wasn’t one of those situations. I was thinking of paying extra for the Linear Force model of the Kinesis Contoured - a version that basically doesn’t have a “click” when you activate the key. When I spoke to the lovely folks at ErgoCanada, they spent a good half hour asking about how I work and what my needs were before recommending I go with the normal model instead. They were completely right, so I’m really quite happy with the service I received.

        Back to the question you’re all asking yourselves - why in the world did I do this? I swear it has nothing to do with tech lust (ok, mostly nothing, it’s a really cool keyboard). I actually did it because earlier this spring my years of extensive (and unhealthy) computer use finally caught up with me. There was no gradual build up of pain, I just crossed some threshold and suddenly everything hurt. The triggering event for my right hand seemed to be buying a new mouse - but my left hand started to hurt at the same time, which doesn’t make any real sense. For the first few weeks, if I used the mouse any longer than an hour, I wound up in serious pain. This sort of explains my extreme prejudice against the mouse. Either way, this got to the point where I had to stop typing my notes in class and give up on doing the last programming assignment for my C++ course before the deadline. The minor split in the Microsoft Natural Keyboard 4000 just wasn’t cutting it, and after reading more or less rave reviews for the Kinesis Contoured, I took the plunge.

        I don’t want to complain too much, but in all seriousness, this absolutely sucks. I spent a few weeks when I started work in May just using a regular mouse and keyboard, and it was terrible. With a regular default Dell mouse, I was still getting about an hour of painless mousing. Typing wasn’t so immediately painful, but after a few weeks I realized it was starting to hurt. To solve the mouse problem, I picked up a Logitech Wireless Trackpad, and it’s pretty comfortable to use. For both the mouse and the keyboard, I bring them with me to work every day (though if I work late during the week, I may not bother bringing the keyboard home). If you haven’t heard me complain about how it hurts for hours after I type on a bad keyboard, you may think that’s ridiculous. But I don’t know if I could survive doing anything else. It’s certainly not annoying enough to validate buying a new keyboard, anyway.

        I’ve mentioned Workrave before, and if you spend any significant amount of time at a computer, I highly recommend using it. It’s configurable to whatever frequency and length of break you prefer, and it’s smart enough not to prompt you to take a break when you haven’t been doing anything. It’s also portable, so you can run it off a flash drive at your work computer. I care about your health, dear reader, and there is absolutely nothing to be lost by using it. The reality is that it’s terribly unhealthy to use a computer for hours without taking a break. Yes, you have important things to do. So do I. But I still take a 25 second “microbreak” every two and a half minutes, and I use the time to take a drink of water or stretch. It definitely helps. The microbreak can be taken passively, though - if you spend 25 seconds thinking without typing (which you probably will), you won’t be prompted. Over the course of an hour, assuming I was typing constantly, it would only enforce about 8 minutes of thinking time.

        For my real break, I take ten minutes away from the computer every 30 minutes of working (this could take more than half an hour of real-world time). These breaks are longer, and more frequent, than what I started with - but I’ve found that I needed them. You can take five minutes out of every hour for your break, and not take microbreaks at all. Or do 15 seconds microbreak every ten minutes. Again, in all seriousness, do yourself a favour by ignoring your innate feeling of invincibility, and taking some breaks now and then. Three cheers for preventative care!

        Things still aren’t perfect, though. My random mishmash of furniture at my homes really doesn’t provide a perfectly ergonomic office space (chair’s too short, desk’s too short, chair arm rests are too wide, etc.). But the trouble is that desks and office chairs can’t travel from my mom’s to my dad’s every two weeks, so I need to buy two of everything. That’s a pretty strong disincentive. Plus, you know, I don’t really have the cash to get the perfect chair and desk. I’m thinking of starting with a good keyboard tray, because they’re <$200 and that would resolve my desk problem. Aside from that, I’m looking into physio (I got a recommendation from the family doctor) or a chiropractor (my mom and my brother already visit one, so I could just go with them). Should make a decision on that before the end of the month.

        I’ll come back with a further update when I’ve found the perfect setup. Until then, please do ask for more detail if you need to be disabused of the notion that you’re immune to all of this! ErgoCanada has a really nice page about creating a good work setup. If you’re not working towards this, and at the very least using something like Workrave, I will be quite happy to argue with you.

Jul 9, 2012
#software #recap
Jul 4, 2012 3 notes
#Carleton #EEG #linguistics #work #recap

June 2012

re: vael && obiwanjacobi

vael:

…

… Though I have reason to believe that, in fact, voting doesn’t even matter; but that’s nothing provable and a matter aside from this.

Apparently, not so, if the politician on a recent Extra Credits episode is to be believed. For those who’d rather not watch the video, he notes that a lot of ridings in the US elections are very, very close and that a concerted effort could easily change the results.

Regarding the selfish nature. You will find as much evidence for my belief as you will to the contrary. My belief is typical with “objectivists” that understand how selfish us sentient creatures are. It’s my belief that life itself thrives: that it is hard to eradicate life completely once it exists. I believe this relates back to our internal mindset to look out for ourselves, and just as pigs do, we can be very social about it. We are social. Societies are the only reason we’re having this conversation. We crave social attention, but it is to fill our own need. I don’t believe this is erasable from the gene of life, but I believe that as a society, we should be doing more to discourage biases and to employ logic and efficiency to as many aspects of our lives as we can. I’m not hoping for Vulcans, I’m hoping for enlightened individuals who can have conversations just like you and I are having now.

…

I realize that I’m not anything like an expert just because the topic has come up in a few of my classes (most notably in my cognitive psychology class… go figure), but your absolute certainty pains me. You’re showing your own bias towards believing in “the selfish gene.” I can’t say whether you’re right or wrong, but I don’t feel like you speak from the position of authority that your tone implies. I’m not saying you shouldn’t make strong statements - I’m saying you shouldn’t make them without compelling evidence. With only weak evidence, or in the face of a lot of contrary evidence, you should only make a weak claim.

Aside from that, I hope you can see the trouble with writing from a biased point of view and then claiming bias should be discouraged.

The reason utopianism changed from “the world” to “yourself” is because it was jejune - childishly naive, even arrogant - to believe that we could just simply “better the world”. Well, Hitler thought he was bettering the world. We could agree that picking up trash along the highways and volunteering at soup kitchens is a good thing, but there is no way I could be attempting to posit this “belief system” as a genuine belief system and claim some ways that would objectively be better for the world. It is a subjective matter, but in the newest revision of utopianism’s article, it’s noted that one should attempt to be a positive force in all that they do. Push the world forward. A utopian villain would not be utopian, and yet again, here I am trying to define what a villain would be. Am I a villain for believing that I should ignore the world and let the virus cure itself, that I should just strive to have this “utopia” of ignorance and feel I did a good thing? I don’t know.

…

I’m of the opinion that being a “better person” implies making things around you better on some small scale. At a bare minimum, improving the lives of the people closest to you. When you can, do the same for random strangers (or at least don’t be a miserable jerk, even if there are no consequences). There’s much more you can do, but at least you can do that. But I suppose “improving yourself” doesn’t always mean “being a better person.” I think it’s important to do both, though. That’s my own interpretation, anyway.

Jun 29, 2012 7 notes
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