Wednesday, June 24, 2009

How to make Fink work when it has the wrong URL

I hit a stumbling block today, and this is one of those things that really should be Googleable.

If you're installing libraries on a Mac, you might be doing it through Fink. And Fink has the unfortunate property that a lot of its download URLs give 404 errors, leaving you stuck. This was the case for the "cloog" library. I don't know what it does, but it's required by hdf5, which is needed by pytables, which we need to store Divisi results on the disk instead of in every instance of the Web server. All the URLs that Fink looks for when it tries to download "cloog" are broken.

The workaround is to Google for the file yourself, and download it into the /sw/src directory.

I hope this helps someone else who runs into the same problem.

Divisi for Windows

The theme of this week is "make it so that our underlying code can actually be run by other people". One recent accomplishment: I finally figured out how to make a Windows installer of Divisi, our machine learning library. (The hard work to make Divisi compile on Windows at all was done by contributor Akshay Bhat. Thanks, Akshay.)

Monday, June 1, 2009

Bugfixes and improvements

I know we're a bit quiet on the PR front, but as usual a lot is happening under the hood. You can see what we're up to by watching Launchpad, e.g., Divisi trunk and ConceptNet trunk. I'll highlight a few recent examples:
  1. Divisi works on Windows. According to Akshay. We haven't tried it. Though properly supporting Windows means a double-click .exe installer -- which setuptools can apparently make, but we haven't figured out yet.
  2. We finally renamed u_distances_to to u_dotproducts_with in SVD results; the name has been wrong ever since I wrote that code maybe a year and a half ago.
  3. I wrote csc.divisi.util.PickleDir, which I've found really helpful for hanging onto temporary data that's a little longer-lived than an ipython session.
  4. I improved how Divisi summarizes SVD results (in two commits).
  5. I refactored how Analogyspace is built, making it easier to try out different combinations of things. Object-oriented code definitely improves things, but I still don't think I hit the sweet spot; certain customizations are still too hard. Any input from software architects? It's a set of mostly composable operations, though certain things only make sense in certain cases...
  6. top_items had been effectively ignoring its new key parameter. Fixed.
  7. We had been returning squared magnitudes for tensors. Oops. Fixed. Fortunately, I don't think this was used.
  8. Finally got around to implementing the (pretty trivial) decomposition of a vector into the parallel and perpendicular components to another vector. That required filling out some other routines, fixing tests, etc.; I think they call that 'yak shaving'; my real goal was to figure out why AnalogySpace was coming out differently than a few weeks ago.
  9. All this stuff is begging a new release. In time... for now, you can use the bzr head; we try not to break the trunk too often.
We also have a bunch of awesome documentation that hasn't gotten linked to in the main pages (e.g., conceptnet.media.mit.edu). More yak shaving: I went to edit the page and realized that we hadn't committed our local website changes into our web svn, so I committed some things, running into a svn bug and writing about it. But before I linked to the docs, I really wanted to move them to csc.media/docs, but that required mucking with the Apache configuration. I remembered that we had wanted to try out nginx, so I got that set up on a backup port on the server and got a dynamic site (csc.media) configured for it. I actually should have just stuck to getting the static config working and forward to Apache for the dynamic config, because that's what each is good at! Anyway, that required futzing with a fastcgi socket permissions issue (I tried using a Unix domain socket -- cool things, but as documented, they have permissions issues.) etc., etc.

I had planned to work on my thesis, but... speaking of thesis, Jayant just graduated. Thankfully he's staying a little while longer to wrap things up, so maybe he'll post something about his thesis.

Tuesday, May 5, 2009

Speed issues

The Open Mind Common Sense website is currently really, really slow, and I'm sorry about that.

As we acquire more users and try to do more complicated reasoning behind the scenes, clearly what we need to do is spend the piles of money that we have just sitting around on a huge fancy server

Sorry, I meant to say: clearly what we need to do is keep finding ways to cache lots of stuff and using whatever computing power we can find. Anyway, I'm working on it.

Wednesday, April 22, 2009

New site.

We've got a new version of the Open Mind Common Sense site: openmind.media.mit.edu

The big changes:
  • It's based on the Pinax web framework. This should make it easier to add features to the site.
  • It's running on ConceptNet 3.5 instead of 3.0. (So was the old site, kinda, but it was a hack that wasn't sustainable.)
  • It distinguishes between "assertions", the normalized connections between concepts that Open Mind learns from, and "statements", the roughly parsed text that people have typed in. You can vote on both of them. This is a key step toward putting back the free text box.

Thursday, February 26, 2009

New Mailing List

Also in the realm of new and exciting stuff is our announcement mailing list. It's we'll use it for any big news we have and to announce workshops, symposiums, and software releases.

Subscribe yourself here!

Launchpad and Bazaar

We're on Launchpad now. We can host our version control there, track bugs, and answer questions from users.

For people who work on Open Mind within the Media Lab (and possibly even others), here's a guide to hacking on the code using Bazaar.