Saturday, September 10, 2011


It's a new school year!  Remember the first day of school?  Nothing beats that feeling of new notebooks and overwhelmed freshmen.  It's times like this that I love the east coast, and Cambridge in particular.  This is the center of the world for education and you can feel everyone getting ready for the new semester.  In the past I've limited the amount of non-research things I did, but I decided this semester I would take classes in anything I found interesting, regardless of how it connects to my work.  So far I've tried out six classes (about five too many):

6.893, Philosophy and Theoretical Computer Science, taught by Scott Aaronson.  I am *really* excited about this class!  I tried taking philosophy classes in undergrad and got really turned off, but I like the idea of approaching it from TCS.  In theory we rarely get to ask what this stuff really *means* and what its implications are to what can be done or known in the world, and I like the idea of indulging in that.  It's 3 hours a week of interesting reading and discussion, and it looks like Scott is going to record lectures, so you can listen in!

9.29, Introduction to Computational Neuroscience and 6.804 Computational Cognitive Science, taught by Michale Fee and Josh Tenenbaum, respectively.  People who study brains and AI here at MIT are starting to ask the big questions again -- there's a new Intelligence Initiative, bringing together people from neuroscience, cognitive science, computer science, economics, and biology to get at how intelligence works.  So interesting!  My background in physics and statistics is pretty terrible, so I don't think I'm going to take these classes for credit, though it's nice to learn a new vocabulary and see how other fields operate.

9.S915, What is Intelligence?  Are you seeing a theme here?  This course meets once a week and does a huge survey over all the areas mentioned above -- I'm skeptical about how valuable it will be, in the first class we spent two hours going over statistical learning theory really, really fast.  I still have no idea how to make a good learning algorithm.

6.853, Topics in Algorithmic Game Theory, taught by Costis.  I miss math soooo much, and I find game theory pretty fascinating -- in fact I wrote my NSF planned research essay on game theory, but then proceeded to do something completely different.  I'd like to think about applying game theory to security! There's a pretty cool systems security class being taught this semester too, but I think I might have picked up a lot of what's being taught in my past research.

After a long summer of trying to do one thing and not being very effective, I'm really excited to take classes, go to colloquia, and in general try lots of new things this semester.  It's funny how trying to force one project can be demotivating, devolving into a cycle of trying to work harder/getting less done.  One of my goals this year is to learn to work in a very minimal, effective way.  Last summer I remember being so sad when the days started getting colder, but this year I can't wait for fall.  It's seriously the best season ever (and we need something to brag about weather-wise on the east coast):

  • trees exploding in color and crunchy leaves everywhere
  • apple picking, apple pies, apple cider, and cinnamon in everything
  • cozy sweaters and corduroy
  • crisp mornings where you can see the steam on your coffee
  • scarves
  • the feeling of starting over you get with the new school year
It's funny, I'm actually starting to feel like I'm in the right place.  I've spent three years here unclear on what I was doing and worrying that I was missing the boat on other things -- being able to program and create products is a huge privilege and I worried I was wasting it.  I believe technology (in particular software and the internet) is the fastest, most powerful source of transformation we can harness, but the thought of spending my time on a local-mobile-game-coupon thing never seemed inspiring.  

So far I feel good about what I'm doing this semester.  It feels nice.


  • cider doughnuts
  • boots
  • new coats
  • PUMPKINS (in all forms: pumpkin beer, pumpkin bread, pumpkin pie, pumpkin chai)

Tuesday, July 12, 2011


MemSQL Raises $2.1 Million, from Techcrunch:

But just what is it about this young startup that has investors fired up? MemSQL is a scalable in-memory database that, according to co-founder and CEO Eric Frenkiel, is up to 30-times faster than relational databases on disk.

I'm a bit confused about this company -- it's nice to see people focusing on solving the scalability issue for those who choose to stick with SQL, but getting a 30x performance over disk-based solutions with an in-memory solution is laughable.  Was something lost in the interview?

Thursday, January 6, 2011

TV Box Update

I was trying to decide if I should get a set top box or make my own home theater PC.  Here's the list of things I want to do, in decreasing priority order:
  • browse and stream videos and music I've downloaded onto a computer on my TV
  • browse and stream videos from a networked file share on my TV
  • watch Netflix Instant and Hulu
  • watch the occasional youtube video
  • use a remote-like interface to do this, not a keyboard and mouse
I don't care about TV capture or DVR capabilities, and I don't really want to browse the internet much on my TV.   I have been evaluating all the options out there but not paying a lot of attention to little technical details like what inputs/outputs are available or how much processing power a box has.  Mostly just features.

I settled on getting a dedicated HTPC and running Boxee, and like an idiot, I tried to save money doing it.  I am going to describe my experience so you can avoid my pain.

The pros of a set top box, like Roku, Boxee, Popcorn Hour, WDTV, or Google TV are that they're fairly easy to set up, and they do what they're supposed to do pretty well.  If you just want to watch Netflix Instant on your TV instead of your laptop, I'd go with Roku.  If you are already a gamer, then the PS3 and Xbox come with a lot of nice features as well.

The biggest limitation is flexibility.  The streamers (like Roku) tout a variety of "apps" which basically means arcane forms of web content you probably don't want to waste your time on.  The major ones people care about are Netflix Instant, Hulu, and Amazon VOD.  These get you pretty far, but don't get you everything.  The streamers are not designed to play content off your local network (aka files you've ripped or bittorrented), and though some of them have hacked in ways to do so, I don't want to deal with that.  There are issues with codecs and installing software on your computer which contains the content which sound annoying.  Things like WDTV only play content off local drives, and do it well, but do nothing to solve the problem of moving internet-TV to your TV.

Unfortunately, I don't know what GoogleTV really does.  The features page doesn't say anything about local content.

Apple TV, obviously, locks you into Apple's world, and it's underpowered.  You can theoretically play any local content, but only if you go through the hassle of converting it (using something like Handbrake).  If you mostly live in Apple's world, this is absolutely the choice I'd recommend.  It's $99, Youtube and Netflix Instant work.  If you use iPhones and iPads there will be nice integration.  And who knows, maybe Apple will reach an agreement with Hulu in the future, since there is an app for Hulu Plus in the app store.  Don't hold your breath on Amazon VOD, but of course you have the iTunes store.

The Boxee box sounds like the closest thing to what I'd want to use, but based on the CrunchGear and Engadget reviews,  it's still rough around the edges, and I'd have to have faith that they'd iron out the issues.  Also, I couldn't justify buying the box when I could get an actual fully powered machine which can do anything for a similar price and just run Boxee on that (oh, how naive I was).  In addition, I worry about Boxee cutting off content.  They have to reach agreements with Netflix and Hulu in order to show that content in their software, and because they control the box, I'm subject to that.  With my own system, I can just run a web browser and do it outside of the media software.  Agreements could be reached or cancelled on a whim.  They're unreliable.

There are downsides to getting an HTPC, and interestingly enough many of them are psychological.  There's a lot of choices to be made, and just having options causes me stress.  I have to evaluate all the specs and decide which features I want.  I have to evaluate, buy, and connect my own remote.  There's a lot of temptation to buy a TV tuner card and an antenna, set up Mythbuntu or other DVR software, and cut out my cable provider entirely, even though this is something I'm pretty sure would cause me a lot of headaches.  Probably the cheapest way to get an HTPC is to buy the parts and assemble it yourself, which gives a combinatorial explosion of choices.

So, I went the route that involved purchasing the least amount of stuff.  I found an abandoned case and parts around the lab, put them together, and installed Ubuntu, Boxee, Hulu Desktop, and Rhythmbox.  I haven't done the work to see if I can make Netflix Instant work (it might with Wine or Moonlight).  Boxee has this really cool feature where you can hook up twitter and facebook accounts, and it shows you a feed of all the videos your friends are sharing on those networks.  I really really like this, because usually when I'm browsing twitter or fb I'm on my phone or I don't feel like watching videos, so I miss a lot of content.  It also has a bookmarklet you can use in your browser to bookmark videos which get queued up in Boxee for when you're back in front of it later.

Lifehacker has great guides on how to set up an HTPC using hardware that costs < $250, with either Boxee or XBMC.  Lifehacker also has some guides on automatically getting shows (for XBMC, but it should work for Boxee) for what isn't available through the usual Boxee interface.

Ok, so I have managed to successfully create a box without spending any money. Instead I spent like a month of my time.  Go warped Indian value system.

This might save someone pain -- Google keywords here -- nvidia boxee can't play local video choppy video fullscreen full screen hulu flash ubuntu maverick osx remote desktop.  End keywords.

First off, I had an on-board video card.  Boxee was slow.  Really slow.  And I couldn't really watch videos full screen.  Hulu desktop and watching stuff in Chrome, however, was fine.  I have concluded that Boxee uses a shit ton of CPU for its fancy application graphics.

Also, flash was warped.  I downloaded Flash Square 10.2 (64bit) and copied that over to the appropriate Boxee directory.  That fixed flash, and I could watch Comedy Central.  I still can't watch ABC Family (what?  leave me alone.  there are some good shows) but Fancast works too, and now even Hulu if you follow these instructions to fake your user agent.  That keeps you in Boxee's world, but Hulu Desktop is quite nice too.  NBC seems ok but freezes a lot.

I also installed a new video card.  That involved adding a whole bunch of drivers, as well --

sudo apt-cache search nvidia

and see what's what.  I think I added jockey-gtk and nvidia-current

There were a bunch of tricky things where I couldn't play local .avi files unless I turned off weird things like Media->Advanced->Enable hardware assisted decoding when possible and set Render Method to Software.  Then I installed libvdpau1, and reverted those settings.  search for that too.

You have to restart to let the drivers take over hardware support, and let nvidia write an xorg.conf file.  Once I did that, Boxee got *much* snappier, probably because there was CPU left over for it to waste rendering its pretty buttons.

What is really nice is playing all my music through this server, and by extension, through my fancy speakers.  Boxee has a few android apps for a remote, which I haven't used too much, but I found that someone wrote a server for Rhythmbox so that you can use the android banshee remote app.  It is annoying, however, because you have to manually sync a db file of your music metadata to your phone in order to do more than play, pause, next, previous.  Anyway I don't even know why I'm using Rhythmbox.  I need a decent music app for Ubuntu.

In Ubuntu, I enabled remote desktop and turned off the password to login.  I use ChickenVNC on my mac laptop to VNC into display :0 and control the mouse and keyboard.  All of this took a lot of futzing, and I don't even remember all the details.  But now I actually feel comfortable killing my Comcast cable.