Full of Fail

So I told myself that I’d update every single day of break with something cool and interesting. So far, it’s day 5, and I’ve only put up one post, which is somewhat depressing and not that cool. However, it does not mean I’m not getting anything done: instead, I like to think that it’s just my effort allocation that’s screwed up, with a disproportionately large amount of effort going into school work, which at this point in time I would have liked to be ‘zero’.

I have been spending a lot of time on a programming project (make a webapp! make it do something like dropbox, but without the dropbox-y parts!), which probably sounds cool and interesting to someone that’s a budding CS major, but is intensely boring and tedious to someone that eats webapps on his spare time. This thing will never see the light of screens beyond a few graders, if that, and it’s written in Perl, which I hope I never touch again, and hence my motivation to work on it and make it decent is very low. However, my interest in making things well balances that out, so I’m ending up pouring lots of time into it. Damn you, perfectionism. I have other things to worry about, like nuclear wars and culture-ending epidemics.

A major time sink is re-designing a web framework from the ground up: while it’s being somewhat instructive, I’m taking a few shortcuts that a normal framework writer wouldn’t make, and it’s just annoying when I violate DRY (what?! You describe your schema in 2 locations? WHAT IS THIS???). But you didn’t come here to listen to me whine about my school projects, you came here to listen to me whine about my real life. Erm, or not.

But it’s time for me to whine about my real life, regardless. Despite my school work’s best efforts, I’ve been out and doing things. And that’s a wrap, folks!

Or not. A brief sampling: I finally got to NYC Resistor a second time, coming out for their hackathon, dipped my toe into the local rationality scene, and hung out with friends from out of town. Oh, and I got pie during Pi Day. That’s +30 geek points right there.

Anyways, I should finish this hairy beast of a school project, so I can actually work on things I want to work on, maybe read a few more books. Or get some sleep. Maybe.

It seemed like a bad idea at the time

This past week, a couple of us techheads were shooting the breeze (yes, during midterms, and yes, the night before the algorithms midterm of death) and the turns of the conversation touched briefly on bringing programming to the masses, lingering for a few moments on things like hypercard and The Diamond Age.

The Diamond Age came up specifically because of it’s description of a Primer, a sort of interactive book meant to teach children. When I heard a brief description of it’s operation, I immediately thought “that’s the worst idea I have heard in a while”: trying to teach by making contrived examples which ended up functioning as glorified word problems just seemed like a sure way of turning off readers, no matter how many connections mined from the the reader’s life were included.

However, I was jonsing pretty hard for some good fiction, and there was a large chance that an offhand description of the Primer was much less appealing than the actual description in the book itself. So I entered the university library stacks for the first time, fetched myself The Diamond Age (TDA), sat down, and read the book for 12 hours. Then I noticed it was 4am, so I went to sleep, woke up, and then read the rest of it.

A quick one paragraph review of TDA: I caught some geek references, missed others, discovered I can’t read poetry worth crap, didn’t get many solid ideas for educational devices but saw a plausible mid-game, was challenged by keeping all the story threads in order, and thought the nanotech was cute. Overall, it was a good read, and I might delve back into it, if only to decipher that damn poem.

Okay, now details (general spoiler alert for the rest of the post, although it’s obvious how the book will end from fairly near the beginning, if that’s all you care about).


I picked up TDA primarily to get ideas about how to advance computer aided learning: at the time, I was concerned that adaptive teaching platforms would be able to subsume things like Notesoble, and that I shouldn’t pour effort into it if it was all going to come to naught (hell, I’m still concerned about it). Hence, I was casting around for ideas in the general pedagogical space when this came up. While I planned on focusing my reading to these aspects of the book, and hence hopefully getting some benefits from a focused reading, I eventually just let my fiction-reading engine take over and have some fun.

I should point out that TDA did not try to hold your hand. As a self-proclaimed high caliber geek, I noticed several references going over my head. For instance, I caught the shout-out to Lisp (which in itself is pretty obscure), but wasn’t entirely sure what the castle containing the open market was supposed to represent. The obvious cryptographic system interpretation didn’t fit very well: how was a network of cryptographic signers supposed to be Turing complete? Was this supposed to be a thought on how the internet was Turing complete? Obviously, I have a ways to go before I understand everything in TDA, and I may not even get there, since it probably includes discarded modes of thought and memes that are outside of my future, erm, culture cone.

A particular poem was quite vexacious, and I still don’t have a handle on it. I’m guessing that reading poetry is like reading code, or reading anything: reading natural languages like English tends to be faster than writing only because the read/write ratio of a normal English speaker is enormous. I suspect that if we had similar read/write ratios for things like code and poetry, while keeping similar write amounts, then one could read faster than one writes. It would never be as good, because natural language development starts from the womb, but it’s an interesting thought that I could read code faster than I write it, which is in direct opposition of some schools of thought. Anyways.

TDA was the first book in quite a while that forced me to look up words (EDIT: this is not necessarily a good thing); since Neal Stephenson wrote this, it was somewhat troublesome to sort through which words were actually words and which ones were made up literary cruft, but it was somewhat noticeable which ones were which, and generally made sense even if one didn’t look up the barrage of words. For instance, he definitely had a thing for brocades, which came up every 30 pages or so, but always in a non-essential description, so I only looked it up when I got to page 300 or so.

Coming back to computer-aided learning, I found most of the ideas contained in the book were not very applicable to our situation today. Stab your step-father through the eye? Hardly sound advice coming from an adaptive teaching platform.

However, I vividly remember the description of using the Primer to point at things and then read about them on the spot: something like a generalized Google Goggles with curated information. When I spoke of the mid-game, I was specifically referring to the amount of learning that could happen with this sort of device. Once we lower the cost of asking questions lower than pestering parents with questions, and especially lower than the cost of typing a question into a web browser, then all sorts of half-baked queries can be molded into fully fledged lines of inquiry.

However, the device shouldn’t function as a curiosity stopper, which it could certainly excel at. Socratic dialogs, or a heavily hyperlinked page, or a sort of Notesoble-ish search-and-destroy function might be useful countermeasures. Maybe even shudder social media could be used to encourage curiosity (a successful Primer system might even atone for the sins of Farmville).

That last note on social media brings up an observation: it seems that Stephenson is not a reductionist. His ractives (cross between games and movies) were all staffed by humans, without any regard to the fact that things like ELIZA had been written 40 years earlier. With the amount of computing power available in the world, one could emulate humans in any attribute that one cared, including voice synth indistinguishable from real voice actors in a business card, or facial animations that had climbed out of the uncanny valley.

Additionally, he seems to hold human consciousness as not Turing complete (which may well be true), but this is irrelevant as he also believes that human minds have some secret sauce. In TDA, a sect exploits the interface between nanotech and the brain to crack problems in a collective hive mind (where normal nanotech fails), and general AI is not even considered to be an issue. With the amount of computational firepower available, the machines still cannot pass the Turing test. Of course, it would be expedient to the plot to ignore these issues, and I suspect that once you’ve jammed as many things into a book as TDA did, it is time to skip over a digression into moralities of constructed beings and just publish the damn book.

When I mention nanotech as cute, I meant it in a “hey, a fleshed out Drexler-ian vision!” I used to really buy into Drexler’s vision of nanotech, and was only mildly surprised by TDA’s depiction of the sort of excesses possible with nanotech, like the spool that extruded and collected wire on the fly instead of winding and unwinding it, which seems incredibly wasteful to us but would make sense to a practitioner of nanotech. Of course, the depiction of rod logic was somewhat strange, since solid state would probably be better for logic when you’re counting atoms. It does smell like another Drexler-ian construct. I also want to note that Stephenson sidesteps any concerns of a grey goo scenario without fanfare, which isn’t a bad thing (Smalley’s conclusion).

tldr; I would recommend The Diamond Age to geeks of all calibers: if you don’t get every single reference, you are a failure at life.

EDIT: I finally figured out what the poem was saying. It’s pretty meta: she wants to know if he’s a robot, so she asks him.

EDIT 2: While I was cheating by looking on the web (no one cared enough to publish it on the web, so I did have to figure it out in meatspace), I found a discussion of TDA and education in academic settings.

Engineering Week Day #1 - Post-mortem

I have to say, I was definitely disheartened by the opening ceremonies of Engineering Week here at Columbia. After coming out of Devfest, I may have exorbitantly high expectations of student groups and the events they throw, but… well, I can’t justify away the way I felt about the event that happened 15 minutes ago. I’ll pick my way through why I didn’t like the event, and contrast it to Devfest as I go along.

Who in the world needs to pad their opening ceremonies such that more time is spent entertaining than having talking heads do what they do best? Various student groups came in and entertained with dance and song, which in the opening event for something called engineering week was pointless. The rest of the event content was also pointless. It was almost like the event was saying “Ahoy! We are the engineers… that say we are engineers!"[1] As a recurring event, maybe mediocrity and faked enthusiasm is to be expected, but it doesn’t have to be devoid of any substantiative content. To contrast, the opening event for Devfest was half an hour long, because we had shit to hack, and had only half an hour in which to get the newbies up to speed. No dance and song needed.

The event had one real speaker, a prominent Columbia professor. His introduction by the MC was pointless: you don’t have to list out every single thing the guy has done, especially if the list is longer than most people’s arms. Just a quick “this guy is cool, you should listen to him because he can science your brain into dust” would’ve sufficed. Then the professor gave an interesting talk, and after the event ended, everyone rushed the shirts while he walked out alone. This is a two-fold failing: at Devfest, we handed out the shirts at the beginning because that was not why people were there, and we didn’t have to bribe them to stay: if you were there, you were there to hack. If people were there to take advantage of the event, they stuck around for the food and hopefully learned something from the workshops. Also, keeping the shirts ransom ensured that no one was around to talk to the prominent professor, who surely has advice and a multitude of things to talk about with a budding engineer. After the end of Devfest, we stood around and talked for at least half an hour with all the speakers, and only stopped talking because everyone was leaving to watch the superbowl.

Food - after this event, I think that letting people sit down to eat is a bad idea. If it’s in a smaller space, then everyone can talk to each other: if everyone is standing up, it’s easy to network by walking over to someone. But sitting down? You have so much potential energy to overcome, along with all sorts of social conventions, just to go and try to talk to someone else. People mostly sat with people they knew, and talked about the same old things they always do. The opening lunch of Devfest was a mad melee of conversation and idea trading.

The MC did not know how to MC. Sure, you know the people on stage and are best buddies, but no one else cares about your internal “bro” structure. Everyone does care about how well you can speak. Ryan kept the opening of Devfest professional, coherent, and informative.

Finally, the rest of the schedule is cause for concern: only 2 events have any substance (a panel and a speed networking event), and the rest of the schedule is just social cruft. And they call this an engineering week?

I guess I’ll be teaching myself Bison for a few more events.


[1] - yes, that’s my sad attempt at making a Monty Python ref. I’ll try harder next time

Hello Dear

It’s been a while.

I know ours hasn’t always been the best relationship: I saw our time together fall to new lows, and now we can’t even see each other if we wanted to.

Please understand, it’s hard to find the time to even think about you when you’re a world away.

I don’t know if I’ve forgotten the curves of your body yet, or if you might be losing some of your timbre, or if I’ll ever move beyond “bumbling amateur” with you.

It just got too predictable. Too staid. You kept me interested with flashy runs and fingered tenths, but it couldn’t mask the fact it wasn’t what I wrote, it wasn’t what I felt. No.

You couldn’t hide from me the fact that other people could play you better than I could, that I couldn’t match their skill and be something.

No.

But one day, soon, I’ll be there to play you. We’ll find a community orchestra or two in which to play. Or I might find some time and money with which to outfit you with a brand-new spankin’ pickup, and we’ll go explore some of the wilder soundscapes. Maybe write some actual music, instead of just hanging off the masters of old. Blaze new paths, wow new crowds.

Together.

I promise.

For no other Reason

Some forewarning: this post is going to be somewhat awkward. Okay, more awkward than normal. I’m not really announcing anything (it’s been around a week since I could’ve announced anything) and nothing is coming up (at least, nothing planned). However, it’s been 2 weeks since I’ve written anything, so I figured I should post something.

First, a note about my latest project: Notesoble! Or something else. I haven’t exactly nailed down a name, since I lifted Notesoble from a similar project that just didn’t work out around a year ago, and it doesn’t quite reflect the character any more. So what’s it do, you ask? Well, it’s a documentation system meant to ease comprehension by harnessing the power of the computer. I think it makes much more sense when one looks at the motivation: currently, ebooks don’t use the malleability of computing power: sure, maybe they offer search, or easy dictionary look ups, or a fancy little applet with which to investigate Newtonian forces, but those are peanuts compared to the meat of the text, which is mostly unchanged from the normal prose filled tree-books of yore.

For instance, why doesn’t anyone highlight things listed in a line of prose? The content is obviously not important enough to break out into a list, but we can draw the eye immediately to the discrete elements of the list with a subtle impression. Likewise, why do we all read the same prose? On a second reading, one either wants less detail, or more. Heck, on a first reading people read for different levels of detail: why do we insist on bringing them the same level of detail?

Of course, the obvious answer is that that’s what good readers do; they don’t need these silly aids with which to read at whatever level they wish. However, I am arguing that it’s not about what one eventually figures out, but how fast one can learn it. If the structure of the page aids comprehension such that people do not have to think as much to learn the same amount… well, that’s my goal.

Such is the state of Notesoble after working on it for a weekend and then letting it ferment. I’ll get back to you guys once there are more better baked ideas, better propaganda, and better prototypes.

Jeez, has it really been a week since Devfest ended? Looking at my wrist, I discover that yes indeed, it has been a week since the end of Devfest (I’ll have to do a post-mortem post on Devfest 2011 sometime). And yet, my life is still hectic and fluffy, fluffy as expanding foam that fills every crack of the world with suffocating lemon smells. Some of it is due to the fact that I’m trying to catch up with reading that I neglected during Devfest, but I have a sneaking suspicion that much of it is due to the fact that yes, school is just this time consuming, especially since I’m not in classes where I already know everything.

I know I said I would, but I haven’t gotten my hands on a book on Bayesian Data Analysis: instead, I put out a warrant for a book on Visualizing Data. Hopefully, it provides some counterpoint to Tufte; ever since I read a stinging indictment on his work, I haven’t trusted my opinion on data visualizations. Since I don’t have a dead-tree book at the moment, I’m reading Pro Git in my spare time.

In random news, I found one of my really, really early attempts at creating a web site on Google Sites. It was pretty pathetic, and I had to euthanize it. Rest in bits, work of my past self. Hopefully, my future work won’t deprecate as quickly. Or maybe I should be hoping it will. Hmm.

And when the hell does Github turn over it’s commit counter for the week? This week of commits on Notesoble is making the rest of my projects look bad.

Probabilistic Robotics

It’s been a long haul, but I’m done with Probabilistic Robotics, the beginning of my reading spree until the end of my time here at Columbia. If you don’t remember, I decided I should start a reading spree until I didn’t have access to the huge library at Columbia: hell, all that money has to be paying for something. But the fact that I said that back in October, and only now finished the first book says something about… something. It’s kind of complicated.

When I said I’m done with the book, I didn’t mean that I finished it from cover to cover. No, by the time I was halfway through the book it stopped being fun and started being tedious. The content of the book is relevant to my interests, but it was written in such a way that it didn’t really make sense how to transform the concepts to code. The psuedo-code was very math heavy, whereas lots of single letter variables represented potentially huge covariance matricies. My inexperience with matrix math didn’t help here: matrices were used everywhere, and it wasn’t immediately apparent how it all fit together.

I suppose the fact I didn’t try implementing any of this in code didn’t help. I know, big mistake on my part, but it seemed kind of… pointless. I don’t have any motivating factors right now, and the only thing I would really be interested in implementing would be the FastSLAM algorithm, but I couldn’t understand anything in that chapter (yes, I’ll take that hit to my geek standings. I did not understand something in a book).

Another topic of contention was my experience with probability: the author assumed a bit more familiarity with probability than I actually had, so I was kind of lost for much of the time. Sure, I know what the covariance is, but keeping everything straight in addition to the covariance wasn’t easy.

Hence, my next book will be a book on Bayescraft, and getting myself familiar with probabilistic ideas. Since I’m in the middle of a Devfest hackathon, I can’t exactly get up and go get a book, but I’ll be sure to have it waiting for me when the storm ends.

And just FYI, sometime, I’m going to read Probabilistic Robotics again and win.

Also, I should note I have no kindle. It’s okay, it means I’m not trying to hack it into my life, which would undoubtedly sink huge amounts of time.

EDIT: Right! I forgot to talk about Devfest! The Devfest at which I played a non-trivial role! I didn’t botch my role as workshop facilitator, which is a big win, although I need to learn how to wield a big stick and get people to stop talking, either on stage or off it. Aside that, the tutorials covered lots of ground in relatively little time (it wasn’t necessarily good: some of the audience’s eyes were glazing over, although I should note that most of the audience was a very quiet crowd. It gives me a new appreciation for a responsive audience). So yeah, cool. My big contribution to Devfest is made, and from here on out I essentially just have to code. So far, I just have a gimp plugin published, so… I guess I’ll get started on another one. Good times.

Programming FTW

So.

My first phone interview.

Didn’t crash and burn, didn’t do fantastically well either.

Just so-so.

One thing that got me thinking, though, is my off-the-cuff response to “tell me about an interesting project you’ve worked on recently”, to which I launched into a brief, somewhat tangled exposition on the Reprap project. Even as I was doing so, my inner critic was screaming “WHAT ARE YOU DOING, YOU’RE TALKING TO A SOFTWARE COMPANY. AN INTERNET COMPANY. HARDWARE PLAYS NO ROLE IN ANYTHING THEY DO, SO SHUT UP AND TALK ABOUT A SOFTWARE PROJECT”. But I couldn’t help myself, and later, while munching on a burrito, I think I figured out why.

Recently? I haven’t been writing much software, so there’s not a lot to choose from to get an interesting project. Even then, my projects in progress are, honestly, not very exciting. They’re infrastructural, sure, (the positive news index is meant to support a particular feature of the clock, and the CPU cost/core calculator is meant to help system builders get the most bang for their buck) but honestly, they don’t fire my imagination. Like Hacker-mapper (too big a solution for too small a problem, I realize), they don’t solve the most important problem I’m facing at the moment, and as said by Yudkowsky (or someone he quoted), the thing that made Einstein different was an important problem to solve.

That’s why I immediately started talking about the Reprap when asked about an interesting project: once it’s built, it promises to change the way I look at things. Heck, it’s already changing the way I think. Wouldn’t it be nice to a have a widget there? What about there? Once done, it poises me as a point person to start introducing printer tech to the University. It’s interesting, it’s impactful, it’s disruptive. When you compare that to my software projects, it’s no wonder why I started talking about it instead.

Figuring out what is my most important problem is not immediately apparent: even problems that are ‘good enough’ aren’t apparent. However, I think I have a problem that should keep me busy for the time being without being somewhat silly, concerning a rewrite of how textbooks work. I think it’s a good idea, but it just seems too easy to do, and hence not very enticing, which is why I haven’t started on it yet. But it seems like the idea/project that will yield the largest potential impact, so I should be working on that instead of anything else in my github repos. As Devfest quickly approaches, I won’t have tons of time to write, but I know what I’ll be working on during my spare time.

My reprap, of course. $&%*#&@ rods.

Pre-storm Update

School starts next week, so I figured I better get my thoughts into bits before everything unravels and I start to curse my life for no good reason.

First, Sparkfun’s free day was yesterday! Unlike yester-year, I got $10 out of the melee, taking the loyalty money and just running for the exits. It amazes me that I’ve only been really been trying to get my geek on in the last few years (I thought I had more loyalty money), when it feels like it’s been so much longer. At any rate, I’ma get myself some free EL wire, which I’ll get with conductive thread to work into my gloves.

For some reason, I read the comment sections for contentious things, like political stories, free day posts, and youtube videos. I can’t seem to help myself: I find myself inwardly screaming at the inanity of too many of the comments, but I can’t stop myself from reading. Call it a weakness, call it what you will.

I really, really want to write a definitive response to Sparkfree critics.

I have problems with procrastination. I think being at home has something to do with it, but I didn’t notice the “slack off and do nothing at all” effect I thought I always felt. I should note that I didn’t get nearly as much done as I hoped I would, though. Darn.

Ugh too sleepy.

Nathan and the ebooks of terror

Or books! I could have the top three books I was reading on me at all times, and just pull one out anywhere! I'll never have to waste another minute of my life! What do you say, Professor McGonagall?

- Harry Potter in HPMOR

Now, I love the idea of e-ink ebook readers. Truly dearly love them, more than I love books, mostly because books take up space: too much space for my tastes. Textbooks, bah: for the few pages I can read in a day, I have to lug around this brick of a book. I do love textbooks, they have all sorts of goodies in them that just don’t show up anywhere else (like technical explorations of quantum mechanics!), but… their mass drags me down (ha! you see what I did there?).

So the fact that my mom is willing to lend me/outright give me her underutilized kindle is kind of a boon for me. Jeepers! A library in my (oversized) pocket! I’ve already put a number of books on it, and its e-ink screen makes me giddy every time I see it.

But the title of this post is “Nathan and the ebooks of terror”, so there’s something negative about my experience: namely, textbooks just don’t fit. “Nathan!” you might be thinking. “Stop pirating books! It’s bad for you!” But, go fetch yon open source math book, and ye shall find the provided pdf shows up with unreadable fonts. Sometimes you can just add a \usepackage{geometry} statement, but sometimes that doesn’t work. Or you can jack up the font size and use \larger, but that doesn’t always work. And then there are the books that don’t provide their source, or provide it in such a way that it’s frustrating to convert it to something the kindle will read (docbook format, I’m looking at you).

I think the best thing would have everything in HTML: it reflows, and it’s hand-editable by pretty much any technically inclined person. Then it’s only a short hop to convert it to whatever format you need, like mobi.

Unfortunately, that’s not going to happen, and I foresee long battles with getting books into my kindle, because gosh darn it, I have a kindle and I’m going to use it.

In other news…

I only have a week of break left! Gosh, the panic hormones are coursing through my body at amazing speeds right now. So much to do, so little time… Like applying to a bunch of internships for the summer (no bumming around for me), doing some cutting for my Huxley (reprap), finishing some code, reading books, getting new books (including pushing them kicking and screaming onto the kInDlE), buying a bookbag (maybe), and figuring out how to make the world a better place. And I’m planning on getting distracted many times, since that seems to happen even when finals are breathing down my neck.

Also, I’ve noticed just how out of my depth I am at Columbia. It feels like I’m really noticing it this time, but I’m pretty sure I’m going to be even more blown away by the end of this semester. There are insanely smart people at Columbia, and the only way I beat them is in non-insanity. Welp.

End of Year Review

Too late for an End of Year Review now. Oh well, it’s not like I had much to say anyways (At least, stuff that I haven’t already said or won’t say at some point in time).

I whipped up an animation in too many weeks, tis on my youtube.

Now… time to apply to internships!

I swear I’ll be back in blogging shape soon. Until then… ta ta!