Main menu:

Site search

Categories

Archive

2010 update

For my part, I’ve been working on a project that is tangentially related to language workbenches.

In short, it’s a language-parametric source code index and search algorithm. I put together a prototype in python early last year, and have been working on a port to scala in my free time since then. The scala version will begin to be demo-able in the next couple of weeks. This will be followed by several months of deeper research into scalability and performance.

Language Workbench Competition

Check out this Language Workbench Competition.

I’ve met a few of the founders, but hadn’t seen much conversation between them until recently. I take this as some confirmation that the line of thought I’ve been pursuing for several years does in fact have some cohesion. Eelco Visser at SLE 2008/09 (and his lab at TU Delft), Markus Voelter at EcilpseCon 2008, and Steven Kelley who has commented on this blog in the past.

I’ll not likely have time to prepare a submission to the contest, but I’ll certainly be following it and if it does become a part of some conference, I’d love to attend.

Of all the topics and academic or professional software engineering, I think this one cuts right to the heart of the remaining productivity bottlenecks in software engineering. I’m happy to see this talented community gaining momentum.

Category Theory

Last night I stopped by a meeting of the Bay Area Categories and Types group at Noisebridge in the Mission District of San Francisco. They’re using a text from Barr and Wells (which will be arriving soon). It’s nice to have the ability to continue exploring abstract concepts with a group.

I’ve been bumping into category theory repeatedly for many years, and it seems like something I’m going to have to master eventually.

A few years ago I recognized that one thing missing from all the computer science education I had received was a mathematical tool that allowed me to treat languages as objects. It only occurred to me after taking several classes on the syntax of natural languages. I had seen deep mathematical treatment of various aspects of languages, but none that allowed me to refer to a language with a symbol (except maybe as a set, as was the case in my undergrad formal languages class).

After dancing around the subject for years, it’s pretty clear that Category Theory is the tool that I’ve been looking for. I’m looking forward to exploring its concepts.

A colleague of mine sent me a couple of related links: A series of youtube posts from the “Catsters”

And a paper on physics & topology

Web Based IDE’s

Just noticed via a Slashdot article that Bespin a web-based IDE from Mozilla Labs, and Heroku, which appears to be a Ruby on Rails web-based IDE, are generating a lot of interest. There’s also mention of an EclipseCon talk introducing a web-based Eclipse workbench.

It had to happen eventually. I’m still planning on playing a little in this space — starting with some web-based python tools — but it looks like it may be crowded soon.

pythonic

I’ve been spending a lot of time with python in the last few months. I had briefly looked at it way back in 2000, but hadn’t touched it much since then. Looks like it has matured quite a bit.

I still expect that I’ll be writing java in the future. And there is room for serious time spent with ruby or haskell. But I think python is probably replacing the niche that perl filled for me. So long, old friend.

I spent some time in the last couple of days with the inspect module. The result is some simple analysis of the python 2.6 code that happens to be installed on my laptop. Next rainy day I’ll look at compiler.ast and parser to make this a lot more interesting.

Links: monads, parsers, etc

In the clouds

This is the first post from languageparallax.com as hosted on Amazon’s EC2.

It’s about twice as expensive as the old machine I was renting, but the service wasn’t so great and this gives me the chance to gain exposure to a popular compute cloud.

Now if I can just build a popular website that actually takes advantage of the easy scaling…

So the obvious question given the earlier posts: Where’s my monitoring? What’s the right place to set that up? Not that I really need any for this blog, but if I were running a real site, I’d be asking that question right about now.

Red Hat strategy

A follow up on my recent Spacewalk post. It looks like Red Hat is really getting organized. A number of projects seem to be communicating and integrating:

The “Genome” project looks like some kind of umbrella or glue for puppet, cobbler, and func. Cobbler now has spacewalk integration on its near-term road map, so things are already starting to come together. Looking forward to whatever “genome” becomes.

Somewhat related: I see that RedHat and Amazon’s EC2 have some sort of official relationship. I started looking at EC2 last night, and think Amazon’s done a great job of abstracting out all the messy parts of administration. I wonder how much of the RH projects mentioned above are intended to manage ec2 clouds? I would love to see some spacewalk graphs of a set of ec2 instances. Is anyone on the spacewalk team writing ec2 plugins?

Spacewalk

I’ve been doing some consulting lately that has had me revisiting a lot of old ground. We’re using cobbler and puppet for large portions of it. Nagios is the likely candidate for monitoring, with maybe some cacti thrown in for historical charting. It’s a little disappointing given all the work done at Excite and NOCpulse, which surpassed what can be done with these other tools.

While searching for more alternatives, a colleague noticed Spacewalk. It took me a while to realize what this was. Could it be all the NOCpulse code? One git clone git://git.fedorahosted.org/spacewalk.git/ later, I was seeing a lot of familiar code.

In 2002 Red Hat acquired NOCpulse shortly after I left for UCLA for grad school. Looks like six years later they are open-sourcing all the code they acquired. There’s some discussion about telling a fuller story of this code, including a list of alumni contributors.

I’m anxious to see where it goes from here. Open source tools in this area are sorely lacking — is Spacewalk the answer? I’ll likely be posting a lot more about this in the future.

My QVT Implementation & OMeta under Rhino

Not much blogging lately, but I have a good excuse. I decided to take one last class here at UCLA — a programming language design lab run by Todd Millstein and Alan Kay. I’ve taken classes from both before, but this one is probably the most useful so far in terms forcing me to articulate ideas from my research.

I was already thinking I was going to need this, but now it’s clear that I need my own QVT/OCL implementation. I may not need all of it right away, but at minimum I needed a parser. A couple of months ago I used Medini QVT as a reference implementation to create a couple of demo transformations. Now I’ve gone through the OMG specs to extract the grammars and have created a single large antlr grammar. The QVT portion worked fine, but of course adding OCL introduced a lot of left recursion.

Enter OMeta, which can handle grammars that contain left recursion. Turns out that the author Alex Warth is participating in this design lab as well. He’s put a lot of work into a javascript version of OMeta. I would use it directly except that I want to have deep interaction with EMF and Subversion. And potentially a lot of other java code.

As of a few minutes ago, I think I have my solution: Implement a java wrapper for OMeta using Mozilla’s Rhino. We’ll see how cleanly I can wrap it.

I’ll try to be good about posting updates on this. I have some hard deadlines approaching, but I think this project is now in the critical path, so it’s likely that it will get done soonish.