Hello world!
Welcome to Weblogs at Harvard Law School. This is your first post. Edit or delete it, then start blogging!
Welcome to Weblogs at Harvard Law School. This is your first post. Edit or delete it, then start blogging!
H2O is hiring again. We’re looking for a senior software engineer to lead development of our software. For more details and to apply, see the full job description.
I’ve been bad about keeping this journal up to date lately because I’ve been neck deep in running through acceptance tests for the latest H2O release for the past few days. As important as testing is, it’s boring as all hell. We have a lot of unit tests for individual parts of the backend, but something has to test the overall processes from the user point of view. I’ve tried to script these sorts of tests in the past, but I’ve always ended up spending way more time writing those test and then keeping them up to date than it would take just to run them manually. So for H2O we decided just to write up the acceptance tests and run through them manually before each release. It’s been a good trade off, I think, since it only takes a few days every few months when we make a release. And it also gives all the developers a good opportunity to take a comprehensive tour of all the features each release. It’s still boring as hell, though.
After all the hard work, though, we’ve finally deployed the latest release. As always, kudos to Juliet Armstrong for doing the vast majority of the development work. Mostly we’ve just fixed a lot of small bugs, but we’ve added some features as well. Most importantly, the new project based routing feature allows the system to route posts within cross project rotisseries such that participants will always get a response from a user in a different project when possible. So with the Rotisserie Ring discussions, for example, we can now make a best effort to get students talking to students from classes other than their own (instead of just throwing all the students into a big pot and hoping they get mixed up well). We’ve also got about 75% of the work done for a SOAP API to the system, but we decided to go ahead and make this release now without the SOAP stuff functional so that we could get the project based routing stuff in before the Rotisserie Ring discussions start.
The latest issue of MIT’s Tech Review has a great article on the future of web search engines. It mentions Nutch, an effort spearheaded by Doug Cutting (creator of Lucene) that is implementing an open-source web search engine. “The Nutch Organization is a public-benefit non-profit corporation”, that seeks to provide a window onto the proprietary algorithms used by engines such as Google. In so doing, the project provides a standard that can be used to expose for-profit search engines that are indexing content based on payments, or incentives unrelated to page merit or relevance, and provides us with high quality source that anyone can use.
Who wants their search engine to be an indirect form of advertising? Wouldn’t we like to know why search results are ranked the way they are? I’m not alone in feeling nervous about Google’s power. Anyone who wants an alternative, can donate to the Nutch project, or write some code.
This week’s reading for the IP reading group was Carla Hesse’s “The rise of intellectual property, 700 b.c. - a.d. 2000: an idea in the balance”. Hesse argues that since the enlightenment we have had two inconsistent notions of IP. Some view IP laws from a social utilitarian point of view — we give creators rights over their ideas because in doing so we encourage other creators to generate more ideas. According to this argument, we should give just enough protection for just long enough to original ideas to encourage the creation of new ideas. Others view ownership of an idea as an inherent and inalieabale right that creators should enjoy forever simply because an idea is the most personal of all possessions and therefore should be linked with its creator forever. She cynically points out that countries tend to move from the former view to the latter as they become exporters of ideas (with the United States as the prime example).
Hesse points out there was no such disagreement in the ancient world because ideas were generally seen as divine gifts and an author generally believed it his duty to share his ideas as a gift to the community. This notion of an idea as a gift rather than a commodity brought to my mind the difference between gift economies and our modern commodity economies and how we might use the model of a gift economy as an alternative framework for establishing IP rights. Read more in my response. Even better, join the project to participate in the reading group.
WebGUI is really an application server dressed up like a content management system. Lots of content management systems offer the ability to manage little bits of functionality (discussion, syndicated feeds, etc) in addition to static content, but the range of functional objects is generally relatively small and difficult to build upon. In contrast, WebGUI offers a broad range of functional objects in addition to the static content stuff (inluding discussion, syndicated content, blogs, calendars, link lists, and lots more). And just as importantly, the WebGUI architecture is specifically designed to make it easy to build an plug in new objects of these sorts, as well as to edit the existing objects. Almost every site we develop at the center needs to do something interactive in addition to its static content, so WebGUI was a good choice for us.
This week I used the WebGUI SQLReport wobject for the first time. The user didn’t like the way the standard user management screen was laid out for our ILAW site and wanted additional fields added. I could have mucked with the code that drew that list, but instead I spent about an hour building a custom page that performs its own query using the SQLReport object. Easy as pie, integrated painlessly into the existing site, and will be trivially easy to update as the user’s needs change. The SQLReport feels like a widget built by a programmer to scratch an itch, which is the best way to build things as long as the programmer is good (which this one was, I’m happy to say!).
I also mucked around with the layout of the Digital Media Project site to make the main navigation menu more clear. It seems to have turned out well and was not too much of a pain (it was a bit of a pain, but that’s because I spent half an hour trying to figure out why a macro wouldn’t work only to finally figure I was typoing the url of the page the macro referred to — ugh).
We use WebGUI as our content management system here at the Berkman Center. It has been a great success so far, enabling us to easily build and manage not only our new main site, but increasingly lots of other project sites as well.
Recently, we reimplemented the ILAW site in webgui, which has made the site lots easier to manage (offloading almost all of the content work off of the tech folks and onto the content folks and making the user registration system a lot cleaner, for example). One of the great things about using a free software system like webgui is that if it doesn’t do exactly what I want, I can just fix it. For example, the ilaw coordinator spends a lot of time mucking around with the data about the registrants, and webgui doesn’t provide any way to manipulate (sort, filter, total, etc) the registrant data. So I wrote a quick registrant export function that shoots the registrant data to a spreadsheet. Problem solved, user and programmer happy. And today, I worked on some bits of that export functionality — I added the ability to specify a different order for the data fields in the export than on the registration screen and I fixed the date creation field to appear in a nice human readable format instead of the epoch format it was in. Code is good.
I also had some great news for H2O today. We got an agreement from another professor to serve as a core faculty member of our 2004 Internet and Society cluster of courses on H2O. I’m waiting until we have agreement from a couple more folks to describe the project in more detail (email me though if you want details) so that we can make a big splash when we announce publicly. But this project has the potential to demonstrate how we can use thoughtful, innovative technology like H2O to really change how people teach and learn rather than just to provide conveniences like online lecture notes and assignment submission boxes.