(Aside for non-techies: ‘typing’ is the model by which a programming language structures data. A strongly typed language forces you to use each value in your code as a single type (ie, is this a number or a word or a record representing a country, etc.), while a weakly typed one will try to guess the types based on context (so you can, for example, add the characters “23” to the number 8 and get 31. A statically typed system does all this checking before the code ever runs (and usually refuses to run if any of the checks fail) while a dynamically typed system waits until a line is run to check (and will run just fine with code that makes no sense as long as you don’t actually get to that line of code). Wikipedia probably explains it better. Anyway, typing is a pretty big factor in a language’s ease-of-use, since it affects how much work the compiler/interpreter can do for you in terms of validating code or figuring things out from context.)
So, it’s been a little over a year since I started working at The Open Planning Project (and I just had a birthday too). Seems like a decent time for some retrospection.
Thirteen months ago, I wasn’t really sure what I was going to be doing at TOPP. After my interview I was told I’d be working on OpenCore, the software that powers openplans.org, but when I showed up, it turned out that I was actually working on a different project, in a different language, in a different stage of maturity, in a different development style. We don’t even use the same bug tracking software.
I’ve had some projects that have gone well, others that seemed underspecified or overscoped (not an exclusive or, mind you.) Things that seem worth mentioning include regionated KML (aka Vector Superoverlays), a framework for REST plugins to GeoServer, and one such plugin that marks the beginning of exposing GeoServer’s data in a RESTful hierarchy. Maybe less exciting are an authentication plugin that lets GeoServer work as part of an OpenCore site, a largely neglected REST API for manipulating GeoServer’s configuration programmatically (hopefully I’ll be able to give this some love soon), and the foundations of a slick new administration tool for GeoServer.
When I started, I knew a fair bit about the semantics of Java, 2d and 3d graphics, networking, HTTP, XML, and the basics of comp sci (algorithm analysis, computation theory, exciting stuff like that). Since then I’ve dealt with databases a bit, dealt with a couple of specific applications of HTTP + XML, sort of grazed python once or twice, hung out with experts in tons of fields, and even done a bit of user support on the GeoServer mailing list. It’s even gotten to the point that you can google things other than my name and have me show up early in the results, how cool is that?
I also kind of randomly started the TOPP Talks project, so that’s neat.
All in all, it’s been a pretty exciting year. It’ll be interesting to see what goes down between now and next September.
So, I’ve sort of started this thing at TOPP. It wasn’t incredibly intentional, it really just started with me getting some non-techies together and giving them the 30-minute tour of What It Is Those Wacky Guys Upstairs Are Doing. And everyone said “Hey, it would be great if people could do this sort of mass mind meld whenever they wanted.” So I thought we’d be seeing more of it since, you know, they can. But it didn’t really happen until one day, in #openplans:
[Wed Mar 26 2008] [17:31:23] * dwinslow wonders if he should be more proactive about selecting and scheduling talks from the wiki or just leave it alone [Wed Mar 26 2008] [17:31:35] <jhammel> dwinslow: YES! [Wed Mar 26 2008] [17:31:41] * mchua thinks "a good example" is the hardest part of making a tutorial [Wed Mar 26 2008] [17:31:43] <mchua> dwinslow: YES [Wed Mar 26 2008] [17:32:00] <dwinslow> ah.
So I did. Anyway, I say all this to lead up to this blog post I made elsewhere. The short version? I would like software to help in scheduling volunteer-proposed and volunteer-run events and am having trouble finding anything ready-made out there. Maybe I’ll make it happen; it wouldn’t be the first piece of code that I wrote for TOPP Talks.
This weekend my friend Mel had a bit of a birthday shindig so I went down to Boston to congratulate her and hang out with cool people she knows and such. It was pretty great; I had originally intended to just stay Saturday and take a late bus back to New York but I ended up sticking around most of Sunday as well to let Mel show me around her corner of Boston. Some neat stuff that happened:
- i was re-introduced to the musical stylings of Jonathan Coulton
- much delicious food and drink, including this noodle shop with ludicrously huge portions. Mel got a bowl of miso soup with half a stick of butter on top, and it didn’t look like too much (butter; of course it was too much food.)
- hanging out at this neat vegetarian pizza place while the band was doing their sound check. They had a cellist using a shoulder strap! totally sweet.
- visiting a selective living house at MIT where actual photos for the XKCD online store were taken.
Tack on tons of geek banter and the general “hey wouldn’t this be neat?” attitude of Mel’s crew and you’ve got something pretty awesome. Happy birthday Mel!
I work on open source software. This means that I work with lots of other people who work on open source software. A neat thing about open-source software is that it basically requires clean code, or at least attention to that sort of thing. After all, labelling your software as open-source when nobody but you can untangle the spaghetti code enough to get anything done is roughly analogous to giving away free soda while charging for the cups. So, people that are ‘good’ at the whole open-source thing tend to care about design.
In particular, I work on GeoServer, a web mapping server written in Java. GeoServer relies on GeoTools to provide database abstractions and other great stuff to help with the geospatial operations, so GeoServer can focus on enforcing security restrictions and providing a decent configuration system and generally bridging the gap between the Web and GeoTools’s Java API. This works out great, since GeoTools can then provide similar functionality to other geospatial applications such as uDig. In the typical open-source way of things, this means that all three projects benefit since the more users an open-source project has, the more developers it will have. (generally speaking).
So, inasmuch as I am defined by what I do, that’s who I am.