Ted Leung on the air: Open Source, Java, Python, and ...
Congrats to Abe Fettig on the launch of JotSpot Live. Abe was madly hacking on this during Gnomedex, and a few of us we able to do some collaborative note taking.
Between JotSpot Live and Gobby, collaborative editing is popping up in more and more places. I hope that collborative editing quickly becomes a feature the people take for granted in apps.
Last week when I was walking through the kitchen, Julie stopped me so I could see the blog of Seattle-based classical singer Anne-Carolyn Bird (website). I popped the url into Firefox, but it has taken me a while to get to it. Anne-Carolyn's blog is a window into the life of an aspiring classical singer. It was pretty interesting to read her accounts of auditions, rehearsals, performances, and interactions with others in the music community. Via her blog I've found (but not yet gotten to) the blogs of a number of other classical musicians.
There's a hook for me personally, because I did my humanities concentration in college in music, and I spent a lot of time in classical singing, albeit nowhere near the level of someone like Anne-Carolyn Bird. As I've recounted previously on this blog, I spent some time playing the violin when I was younger, but quit at what I now consider to be a premature age. Somewhere in junior or senior high school (during those years when the male voice is a dicey thing to begin with), one of my friends told me that I just couldn't sing. This of course, cured me of singing for quite a long time. The situation was remedied because a sister of a classmate heard me singing behind her in church one day, and she managed to convince me to try signing in a little singing group that had started out as part of the Spanish curriculum. From there it was the chorus and the school musical, and a few other things -- I even took some voice lessons from the choir director at our church.
The year that I was admitted to MIT was the first year of a course for singers, Vocal Repertoire and Performance. The format was pretty simple. Five or six students, with a teacher, covering both vocal technique and the classical vocal repertoire. The teacher when I was there was John Oliver, who was (and is) the conductor of the Tanglewood Festival Chorus. Since John was the conductor of the MIT Chorale, I joined that, and got to sing some very large famous choral works, like Handel's Messiah, Beethoven's Missa Solemnis, the Verdi Requiem, the Bach Mass in B minor, and a few others. The MIT Chamber Chorus got started during the years that I was around, and I sang in that as well.
I have very fond memories of all of that learning and performing, and I'm surprised that 20 years later I still remember parts to pieces that I have sung. As I read Anne-Carolyn's blog, I was reminded of experiences that I had during those years. When I read how she was working on arias, I remembered the various Lieder that I and my classmates worked on. Her accounts of working with voice teachers reminded me of they way that my teachers would say something that I didn't quite follow.
Having read her blog, now I'm really curious to have a listen. Anne-Carolyn is moving into coloratura land this year, and I have a fondness for coloraturas in any range. When we did pieces for the MIT Chorale, the soloists were always professionals or folks like Anne-Carolyn. In particular, when we did the Messiah, John brought a soprano from Princeton whose voice was to die for. I distinctly remember him saying (at the end of the dress rehearsal) that "if she kept singing like that, she wouldn't be around very much longer". It sounds like Anne-Carolyn's signing is coming to the same place.
[via Chris Double's Radio Weblog ]:
Chris Double reports that the Gwydion Dylan hackers have released fhe first beta for OpenDylan, which is the open sourced version of Harlequin/Functional Objects Dylan implementation. Since it generates native code, it's only available for x86, meaning Windows and Linux. Good thing Macs are going Intel....
In other Dylan related news, the Dylan Hackers placed 2nd in this year's ICFP contest.
[ via Technology Review ]:
The MIT $100 laptop project is getting closer to fruition.
Three kids, three hundred dollars. Sign us up.
[via The Tao of Mac ]:
It was only a matter of time before someone went off and did this. Gobby is a collaborative multiplatform editor in the flavor of SubEthaEdit. And it runs on any system that has GTK -- Linux, Windows and Mac OS X. Unfortunately for Mac users it requires X due to its use of GTK.
Thanks to Luis Gonzalez for pointing me to Mark Dofour's ShedSkin project. ShedSkin is a Python to C++ compiler based on Mark's master's thesis work, and was one of the Python Software Foundation's Google Summer of Code projects. It looks like ShedSkin can compile a subset of Python, and runs on Windows, Linux, and OS X. Unfortunately, there are no published benchmarks, so it's hard to get an idea of how much of an improvement ShedSkin actually produces. Mark is looking for additional help, so you should definitely drop by his blog if you are interested.
Don Box said "Scheme is Love", and supplied a nice reference list.
In the OSAF IRC, PJE said
"I'm beginning to believe that there is No Language But Lisp, and Python Is Its Prohpet. :)"
I wish I was as excited about the new Memeorandum as everyone else seems to be. I used the original Memeorandum, and it did a good job of finding the major political stories, and I mean it when I say stories, because most of the primary sources that came up were newspaper articles. The new Memeorandum is doing a little better, because I occasionally see actual blog posts as primary articles. The Technology version is doing a little better at finding blog posts, or perhaps it's just that too many of the bloggers that Memeorandum searches spend their time writing about MSM articles.
If you are interested in what everybody is talking about, then I suppose that Memeorandum is really useful. The thing is, I care much more about the long tail bloggers that Memeorandum isn't picking up. What I'd really like is a version of Memeorandum that lets me specify the starting set of bloggers, so that I could have my own customized, potentially long-tail (depending on who I put in the starting set) Memeorandum. Now that I could get excited about.
It's been quite sometime since I made it to a SeaJUG meeting. Jayson Raymond, our host, mentioned that SeaJUG's 10 year anniversary is coming up, but I haven't been gone quite that long. It's just that SeaJUG is (apparently -- I'm not up on JUG lifetimes) one of the older JUGs. In fact it's been so long that I didn't even know that we were meeting in a new location. Normally I ride over with a friend who lives in Seattle, but he wasn't available, so a bunch of us from Bainbridge piled into a car and drove over.
Last night's meeting was a presentation by Ramnivas Laddad on "What's new in AOP". This was our yearly preview presentation ahead of the excellent Pacific Northwest Software Symposium. Several years ago I did a SeaJUG presentation on AspectJ, and I was curious to see how much things have changed.
There are now more syntaxes for expressing pointcuts and advice. You can have your choice of AspectJ syntax (nice because the AspectJ compiler can verify your pointcut expressions), Jave 1.5 annotations (nice because you aren't learning a special syntax, except that you are because you have to learn the mini-language for specifiying pointcuts), and even an XML based syntax (handy for instantiating abstract aspects at deployment time).
Also, you can now write pointcuts that rely on JDK 1.5 metadata. This is controversial. You get more control if you limit your pointcuts to annotations, but then you have to add annotations, which goes against the AOP idea of not having to modify the crosscut code.
The tooling has improved a lot. There's now very decent support in Eclipse (and some other IDE's), and that support does cool stuff like show you all the advised methods and so forth. There's also a history view that lets you view how aspects have been added or removed to parts of the system over time -- a nice usability improvement would be the ability to do this between revisions in the version control system.
When I gave my presentation, we had a long discussion about applications of AOP. I wish that there had been more discussion about this topic. It's easy to see the application of AOP to systems types of concerns, logging, performance testing, security, transactions, and so forth. It would be nice to see some patterns of aspect use as it relates to problem domains. Of course, the whole field is still pretty new, so it's understandable that there isn't a lot of data about this just yet. One interesting usage the was discussed was to advise constructors or factory methods as a way of injecting mock objects for use during unit testing.
I'm not doing a lot of Java these days, but I like to keep my nose in what's going on. As I was listening, I was thinking about having some of these capabilities in Python. Of course, you can do a lot of AOP style things fairly easily in Python, because various kinds of interception are easy to do. The things that I think are really missing are the pointcut expression language for expressing where interception is to take place, and whatever runtime support is needed to do the weaving. It sure would be handy...
It's old news that Yahoo is beta testing the latest incarnation of their web mail service. It sounds like there are going to be signficant improvements to the user interface, even when compared with Gmail. I have a Gmail account, but I don't use it much because even the though the UI is good for a web client, it's not good enough, and of course, there's the problem of disconnected operation.
After the news of the Yahoo beta, I was glad that I haven't dumped all my mail into Gmail. If I had done that, all my mail would be in jail, and I wouldn't be able to use the new improved Yahoo user interface on the mail that I had sent to Gmail. What's worse, if I decided that I liked the Yahoo interface better, I would need to tell people to send mail to my Yahoo account instead of my GMail account. Nevermind that all this is true in the reverse direction.
At home, I run my own e-mail, so I have IMAP. The pretty much means that I can choose the client whose interface I like best, without changing my e-mail address, and with a decent chance of having all my old e-mail show up in the new client.
Just when we finally achieved "model-view separation" for e-mail (IMAP and IMAP clients), the webmail world smashed those things back together. If Gmail and Yahoo start a competition around innovations in e-mail client features -- something we're desperately in need of -- it reduces my ability to get the features I want because my mail data, my mail address, and the user interface for mail are not just bundled together, they're welded together.
I'm definitely not excited.
As a kid, I loved hearing John Banner(Sergeant Schultz)'s rendition of the title of this post. I recently finished Thomas Friedman's "The World Is Flat: A Brief History of the Twenty-first Century", and I frequently found myself saying "Flat as a pancake" to myself as I made my way through.
If you haven't been paying attention to globalization (as if you couldn't) or are unaware of the forces working to make the big world into a very small place, then I'd suggest getting a copy of The World is Flat and educating yourself. I didn't find that many surprises in the book. After all, open source is one of Friedman's "Ten Flatteners", and I've been reasonably involved in that. Working in open source has given me an experience of globalization every day. I have friends and collaborators in many countries in the world, and have experienced first hand a number of the ideas that Friedman was writing about.
While I didn't necessarily find a lot of new ideas (although the presentation is good), I really valued all of the examples and interviews in the book. It's one thing to know conceptually that something is happening, and even to have some personal experience of it. But the examples that Friedman includes really showed how swiftly and deeply things have changed and how they are going to continue changing.
I've never been very good at taking a good vacation, although we've had a few good ones over the years. This year, I managed to go all the way from January till this past week without a vacation, which was definitely way too long, especially given the amount of traveling that I did this year.
This year, like last year, we took advantage of home schooling to go on vacation after Labor Day, when things are less crowded. We also repeated our visit to Sunriver. This year we were able to get to more of the area attractions, and I was able to indulge in a little photography. Much of the story is in this Flickr set. Warning: there are a *lot* of pictures. It was a good vacation, and like all vacations, it was just a little too short.
I was very good (for me) this vacation. I did not send a single e-mail message, and I managed to totally stay out of my work e-mail. So for those of you who e-mailed last week, I'll be catching up over the course of this week.