Today was our first hack day of 2008. I’ve been helping coordinate these events for the past year and a half and they’ve proven to be a solid source of inspiration and motivation for all participants.

Unfortunately for me, today was more or less a day of false starts. Like always, I had a number of ideas but quickly realized most of them were too much work or simply not interesting enough to devote time to. I was contemplating playing around with GWT or Android but couldn’t think of an interesting enough problem to warrant the effort setting up the development environment. I just couldn’t bring myself to install Eclipse.

On the Eclipse front, it’s a constant struggle. I think the community support it gets is great but wish other IDEs would get the same love (obviously it’s a matter of user demand). I’m an IntelliJ fan and find its lack of serious plugins for many of the popular open-source frameworks a bit disappointing. It’s Groovy support is top notch, things are definitely lacking when it comes to other popular frameworks (like Seam which has JBoss Tools for Eclipse but not much for IntelliJ).

I’ll leave the topic of Maven artifacts for another day. Needless to say that some of the more popular frameworks and libraries are starting to come around to it.

The day was not a complete loss and I did manage to make progress on a couple of things. The first involved some UI work that could eventually replace our current excel-based way of doing expenses. I’ve been seeing more and more references to Ext JS and wanted to check it out. I mocked up a bit of a GUI using some of their components but didn’t get much farther than that. I was quite impressed with their examples (Feed Viewer and Web Desktop). If you’re a web developer, I’d be interesting in hearing your thoughts on the library. I don’t do a lot of web-centric development but I have played a bit with Prototype, JQuery and Mochikit previously in conjunction with Rails and Django.

The more interesting thing I played around with today was OpenGrok.

OpenGrok is a fast and usable source code search and cross reference engine. It helps you search, cross-reference and navigate your source tree. It can understand various program file formats and version control histories like Mercurial, SCCS, RCS, CVS, Subversion, Teamware and Bazaar. In other words it lets you grok (profoundly understand) the open source, hence the name OpenGrok. It is written in Java.

OpenGrok is the tool used for the OpenSolaris source browser and search.

It’s actually pretty cool. I installed on to a Ubuntu 7.10 virtual machine without too many problems. There are a few gotchas (documented and undocumented) when it came to indexing our source code (from subversion) but in the end it worked pretty well. OpenGrok uses Lucene behind the scenes and provides a nice simplistic web application for searching and navigating the source code (there are also command-line and Swing interfaces).

Performance was very good. Indexing a checkout consisting of ~1.1G (lots of libraries and test data) didn’t take much longer than a couple minutes. Indexing the 11,000 change sets from subversion only added about a minute. This is on a VM w/ 512M on a MacBook Pro. Searches are instantaneous.

I haven’t played around with too many other source code x-referencers so I’m not sure I fully understand it’s potential or how it compares to it’s commercial and OSS competitors. That being said, I love the speed and if the OpenSolaris guys are using it, it can’t be that bad right?


  1. max

    Could not ignore the comment about there not being good seam support for eclipse :-) Did you try out the seam support we have in jboss tools ?

  2. ajordens

    I’m sorry, I should have been more clear.

    The support for Seam and other open-source frameworks in Eclipse is great. The problem for me is with IntelliJ. I love the IDE but it certainly doesn’t have the same degree of framework support.

  3. max

    :)

Leave a Comment




  • Pet Peeve: Don’t email my password to me in plain text You know the drill. Signup for some random service on the internet Receive a confirmation email with your account information or Forget a password for some random service ...

  • Eclipise Memory Analyzer (MAT) I must say the Eclipse Memory Analyzer looks pretty slick. There is some pretty good material over on the developers blog. Lastly, there was a talk on it ...

  • Open-source Web-based Code Review Tool: Rietveld Guido van Rossum, of Python fame, has recently released a Django-based application that enables web-based code reviews... Rietveld. It supports any language and currently can hook into Subversion repositories. You ...

  • An implementation of the JVM in Javascript? Caught this over on JavaPosse Google Groups. Essentially, some bright fellows over in Japan have developed a bytecode->javascript compiler. There's a demo floating around that took a Tetris ...

  • Facebook Chat? So it looks like the Facebook Chat service has finally started rolling out to my network (Facebook Chat has been mentioned previously). Not quite sure how ...