Hello, my name is Matt and I'll be your tumblr for the evening. I'm 19, Canadian, and studying cognitive science at Carleton University. Since no one outside the program knows what that means, my two core subjects are linguistics and computer science. I'm also not very good at being brief! But I try to make my walls of text somewhat friendly.

6th March 2012

Text with 2 notes

Kickback: All The Right Reasons

Years ago, when I would listen to songs that made me think of anything related to relationships, I didn’t stop to put into words what the song made me feel. I’d get a vague approximation of some thoughts, and I’d be appropriately happy/miserable/both, and that was all I needed. Now that I’ve got more time between myself and the relationship in question, I don’t get the same feelings, and so I literally can’t remember what it was that I liked about these songs. Listening to them now, I know there was something about the song, but can’t quite grasp it.

        You can see the vague, unformed idea effect in some of the music posts I made back in 2010 - I’d post the song and the lyrics, but not say a whole lot about it. A prime example is this post about Kickback UK’s All The Wrong Reasons. I was listening to the song last night and thinking it meant something to me in 2010, but I couldn’t say what it was. At a guess, I’d say I felt like I was trying to help people so I could feel better about myself - the most cynical way of reading my behaviour at the time. There were a couple people I was “friends” with at the time mostly for that reason, and it took me a while to realize that wasn’t the way to go. But that’s only a guess - I can’t say for sure what I was thinking when I made that post.

        What I can tell you is what the song makes me think now, which you will (hopefully) be glad to hear is much more positive. I was up late writing an essay for my Linguistic Analysis class, and I took the lyrics in a very different way. (Chalk it up to vague interpretations, I guess, when the same song can mean a totally different thing two years later.) I was feeling good about the essay and wanted to reflect a bit on how I’ve changed lately, and where I’m heading in the future. Moral of the story, for the tl;dr crowd - I feel like I’ve gone from “all the wrong reasons” to “all the right reasons”, and I’ve got big plans. Read on if you’re interested! Best if you take a stop by the old post, first.

        ”Head’s in the future, but your heart’s in the past” is an apt description of me circa 2010. Things were looking up, but definitely not all the way up. Which is a stupid metaphor if you try to picture it, but it works verbally. “And we’ve seen it all before, you’re holding out for more” follows from that, obviously. Neither of those things still apply to me, which is a good sign. Head and heart are both set on the future, I suppose. Getting to the future I want means working hard in the present, but it feels more and more and more natural as I put out work I’m legitimately proud of. Nobody’s ever going to look at the C++ assignment I’m working on right now, but that doesn’t mean I shouldn’t make it good and shoot for a mark of 110%.

        The next line is what gets me now, and probably what got to me in the past as well. “When that call never comes it’s time to face what you’ve become - there’s no point doing all of this unless you know you’re having fun.” At the time, there were a lot of things I wasn’t terribly happy with. I wasn’t having a whole lot of fun with the work I was doing back then. Although it got me here, so I can’t complain - but it was all delayed gratification at the time. At least now I get some of that gratification! A little, anyway. Still lots of delay right now. But I’ve recently realized what I should be working towards, although I’d been thinking about it for a few weeks. I said I didn’t have many important goals for 2012, but I take that back now! I’ve got two, which I strongly feel I can accomplish, and which all of my work now contributes to:

  • The first: have my name on a publication.
  • The second: learn as much as possible, with an eye towards distinguishing myself from the competition.

Both of these are practical goals that will, hopefully, put me in a great position when I finish my education and set out for a job. So - “what have I become”? Someone who strives to be the best they can be. (Time will tell where I’ll fall on the sweet/awesome dichotomy.) I’m not necessarily having fun, but I’m seeing the big picture now.

        From where I stand, that means a number of different things. Most recently, it means improving my writing consciously, the way I used to while I was in AP English. (If you’re interested in that writing analysis tool but not interested in Emacs, I can look into creating an independent version, with the author’s permission.) Going back a few weeks, I’ve started to really dedicate myself to programming well. I’m getting tons of inspiration on that topic as I dig up tidbits of information about Emacs, and inevitably get linked to some other brilliant piece. There’s Steve Yegge and Avdi Grimm over the past few days, who have both Emacs secrets I can steal and general programming knowledge. Meanwhile, Jeff Atwood and Scott Hanselman write about quality of life as a programmer - improving your tools, improving your office, improving your lighting, etc. Aside from that, I’m always trying to synthesize what I know about the seemingly-disparate areas of linguistics (at least, that’s what the separation in course content would lead you to believe). I want to say with some confidence that I’m a linguist - not some kid who “maybe heard about that in university, but didn’t think it was important”.

        In a similar vein, I’m connecting all the dots in this “cognitive science” thing. Philosophy is cognitive psychology, cognitive psychology is neuroscience, neuroscience is linguistics, linguistics is computer science… And the whole conglomerate is cognitive science. I may not use every part of it for the rest of my life, but understanding them all matters. Even if I were to be a career programmer, I’d keep usability testing in mind. Even if I were a linguist for the rest of my life, I know for a fact I’d land in a crossover field - computational linguistics and neurolinguistics seem equally likely right now.

        So what I’m getting at is: I know what I’m doing here, and I know who I am. I can’t tell you what I’ll settle on for a job, but I know what the core components of that job will be. This is where I belong. The lows may be low, but the highs are home.

Tagged: Carletonlanguageprogrammingwritingpersonal

13th January 2012

Link reblogged from net slum with 737 notes

net slum: Coding skill and the decline of stagnation →

notch:

I am a decent programmer. I know a decent amount of computer science theory, I can type correct code fairly easy. I don’t let my classes expand too much. But I still struggle some with math, and I have a tendency to have too many cross-dependencies in my code.

I used to think I was…

I’ve been learning more and more about what a compiler actually does lately, as well as looking at some very basic levels of assembly. So maybe I can shed a little bit of light on why things are the way they are. That doesn’t mean you have to like it! But at least it will make a bit more sense.

You write your source code, you give it to the compiler, and it makes sure you’ve given it code that will actually run. Then it creates highly-optimized code to be run by your specific processor, in assembly or machine code or whatever. The catch here is that processors don’t always work the same way, so the compiled code is limited to whatever platform it was originally compiled for. As a side note, I would think that’s why you pretty much only see source code available as a download for Linux programs (on the web, anyway) - you’d need to compile it for your specific distribution to make sure it works properly.

It doesn’t have to be like that, though - for example, Java (traditionally) achieves its multi-platform status by compiling its code for the Java Virtual Machine to run however needed on the platform it’s deployed to. Unfortunately, that means forgoing most of the optimization done by a regular compiler. Enter the Just-In-Time compiler, which takes the same Java bytecode as the JVM would. Instead of acting as a middleman, it compiles the bytecode into platform specific machine code (with, I assume, appropriate optimization) at runtime. Sadly, most of the time I see “JIT Compiler” listed as an option in an Android app, it tends to have a huge warning attached (“this will either be really fast or break everything, depending on your phone”). So I guess it’s a work-in-progress.

Anyway, so that’s why you have platforms and code that won’t run anywhere. And, while I’m no expert, I’d say that’s probably how web browsers manage to achieve some semblance of standard-ness. If I’m right, the browser would be kind of a middleman for your code the same way the JVM or a JIT compiler are for Java bytecode. Honestly, you’re the web developer - you tell me how browsers work!

Tagged: programming


xfire: starvalddemelain MSN: mapleleafdude[at]hot(mail).com AIM: mattjdarling