Summer 2011 - Week #3 Review

  • Tweaked/updated my Arimaa Icon set
  • Got a job! Internship! Whatever you want to call it! Now I don't have to rely on intrinsic motivators to get things done!
  • Checked out Jigsaw Renaissance and Dorkbot-Seattle at the same time by failing to get to the Dorkbot meeting in time to see most of the presentations
  • Attended a meeting of the Seattle BUG (Blender User Group) (instead of attending the Random Hacks of Kindness hackathon)
  • Got matched up through HackMatch right after getting accepted to aforementioned job, which got a bunch of people pinging me about summer jobs, right when I didn't need it anymore. Too slow, HackNY, too slow.

I haven’t closed any projects this week, but I finally gave in and re-edited my /etc/hosts file to block off Reddit and Hacker News. My productivity should automatically boost by 200%! Additionally, not being bogged down with finals means I can actually attend cool events when I hear about them: I heard about the Dorkbot the day of, and found out about the BUG the day before. It’s pretty cool to be without massive amounts of responsibilities, but like I said above, it’ll be nice to let my intrinsic motivators take a rest.

Summer 2011 - Week #2 Review

So what’d I do this week?

Thoughts on book reading: I don’t quite get modern literature. Or any “fine” literature, for that matter. If I didn’t read the foreword for The Glass Bead Game, then I would have been totally lost. Heck, reading the foreword I get a glimpse into what people that know literature get out of reading literature, and much of the time I wasn’t getting that. Like with many things, once I knew that I was deficient in this area, I had an immediate urge to make myself not deficient. However, since I’d just be delving into more literature, a second thought tells me it wouldn’t be especially useful.

Oryx and Crake was a bit better: in particular, some people don’t know how to include technical riffraff into their work. However, Atwood does a good job of sprinkling technical tidbits throughout a text.

However, I’m not into the whole doom and gloom scenario put forth by Oryx and Crake. As I subscribe to secular humanism, I think that humanity is overall on a upward slope, not a constant degeneration. Just because I’m not into the scenario, though, does not mean I don’t think it’s important: even if we occupied several planets in the solar system (like Stephen Hawking says), we could potentially kill ourselves off with a single dedicated mad scientist (it brings to mind the saying “every 18 months, it becomes twice as easy to shoot ourselves in the foot” with respect to strong AI. I don’t know where it’s from, sorry). Something approaching protection from even deliberate attempts on the existence of humanity is interstellar colonization without faster-than-light drives, but I’m sure the only reason it seems safe is because I’ve been thinking about it for less than 10 years. And this is why I think HPMOR will end in tragedy: Harry will do almost everything right, but it won’t be enough, because you could do everything you were supposed to, and Nature is still allowed to kill you.

Summer 2011 - Week #1 Review

So for each of these 13 weeks of summer, I’m going to try and wrap up what I did each week. It’s probably not as satisfying as doing a wrap-up each night, but it’s some form of review, so I’ll take it. So, what I did this past week…

  • Walked a graduation ceremony without actually graduating
  • Kicked off stage 2 of my internship search (semi-successfully, I believe)
  • Rooted my phone (finally)
  • Turned out 3 project pages (these things take forever to write) (the Arimaa, Hunch Punch, and ttool ones)
  • Finished single-player Portal 2, fell in love with Want You Gone
  • No longer so pasty white: sitting out in the sun does a boy good
  • Revamped the look of the image section of my website

And that’s a wrap folks! This next week should be more code writing, and less doing administrative stuff. I’m putting off hardware work until I know I’ll be somewhere for more than a few weeks.

A quick walk backwards through time to 2006-2004

It’s strange, looking back at the writing of a younger self. The things I concerned myself with are simultaneously familiar and foreign: I still cared about God, without any hints of my later de-conversion, but I would post up poorly-worded rants on terrible HTML practices in educator websites. I would whine about school, talk about math, and post random music tidbits. As I delve back through the years, some other observations:

  • Spell check in the browser has made so much of a difference: I no longer look like such an idiot by default. Sure, I work hard to make sure I appear to be an idiot, but it's no longer easy as pie.
  • I made this thing called the Sarge engine, which apparently was supposed to be a forum engine. I had a thing for fancy project names that had nothing to do with what they actually did.
  • I started doing Linux stuff around here. I was also posting TI-BASIC code in plaintext, so I guess the two cancel each other out.
  • I thought heaps and stacks were incompatible, because C and Java used stacks and heaps, respectively.
  • Twitter has certainly changed how I blog, for the better.
  • I got excited when new versions of Blender came out (2.37!!! WHOOO!!), just like I do now (minus the fact I missed the 2.57 update).
  • I was a very angsty child (boohoo why won't anyone love me?! I'm so ronree!).
  • I thought, at one point in time, that programming as a job would be boring. Which is why I did it all the time, apparently.
  • I thought I could help my fellow nerds become less anti-social. Ha.
  • I was slightly socially incompetent. Just slightly.
  • I was also just slightly incompetent at making anything I wrote make sense to me 5 years later.
  • I sure hope my kids don't write like this for such a long time. To be fair, I posted almost every day, so it only seems like a long time when I read 5 posts at a time (5 one line posts all saying something along the lines of ARGHHH I IZ IDIOT or LOLZ MAH PRGRAMZ BROKEN), but it's very much a product of not being competent: to be fair, these posts were part of the process that got me here, but it would be less embarrassing if it were a shorter part.
  • Oh god, POVRay code.
  • Very few of my long form posts contained coherent content: most of the time, longer posts could be decomposed into tens of one-liner posts. I believe this is a consequence of my inability to focus during my high school years, and/or just my general stupidity at that time. In retrospect, it's amazing I even got anything finished.
  • It reminds me that I wished I could go out of Christianity with a bang: make a huge scene while breaking with the church, screams of fire and brimstone going both ways. Now that I'm standing here, I didn't get that, but I realize it's okay. I'm still where I need to be, and it doesn't matter I had gotten there with strife.
Overall, I get a sense of just how much I have leveled up over the last 6 years, which is some huge amount I do not care to try and enumerate. My writing is sensible, my code actually does things (instead of trying to do things), my thought processes aren't trying to reason from contradictory bases using outmoded methods of thinking. I now view myself as a highly-junior member of the Interesting People Club.

In the negatives department, I don’t care quite as much about music: sure, it would be nice if I could pull some music out of my bum, but I don’t have the will to make it happen at the expense of my other pursuits (and if I’ve learned anything from that trip back, talking about things and doing things are very different. Didn’t exactly understand that back then). Another negative is the fact I can’t go back: at that time, I could have conceivably given up programming, gone to seminary, and lived out a simple life. It really is unfortunate that at this point, my only options are to rock the world or die trying. So be it.

And here’s to another 6 years of growing up!

Note: don’t try looking for these writings. As soon as I posted this, I deleted that blog account. Would it have been hilarious to look back on another 6 years from now? Not really, as it would’ve been even more pathetic than anything else. May as well put this content out of it’s misery now than later. So long, 2006-2004: it was nice knowing you.

Spring 2011 HackNY

Hi, I’ll keep this short and sweet. I just thought this was a natural time to touch base with the blog, so… here you go.

This HackNY (still sleep dep’d up from the previous 48~ hours), I actually got into a team and . It’s a basic game that leverages the Hunch API in a trivial way, meaning that the game mechanics didn’t actually depend on the existence of the API.

I do need to keep in mind that I have limited resources: this hackathon could’ve turned out something useful (I have a list of perhaps useful things that need creating that’s approaching, oh, say, aleph not), but instead I helped turn out something no one wants, and for which no one will want. I did help a crap ton of people get better at the craft, though, so I feel good about that; working on Notesoble would’ve been a bigger utility gain, though, in the end.

Boy, do I have a lot of things to do.

Brb, going to go take a level in doing work.

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

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.

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.