July 28, 2013

Koopa 1up: GUI update

Finally found something to post about again: Koopa! I spent the last week updating the GUI applications. Rather than having two separate ones (one for batch processing, one for visualising a single file) I have now integrated them both.


(JTabbedPanes look a bit ugly on the Mac, but I don't want to spend time changing that. It works, and that's enough for now.)

In addition you can now simply drag-and-drop files onto the Koopa GUI and it will try to parse them. And once parsed you can easily navigate from a selected part of some source code to the grammar rule which parsed it.


All this will hopefully make for more a more useful and usable application.

May 21, 2013

Nifty Rift-y

Guess what I got last week ? Yes, it's an Oculus Rift.


From the moment I saw John Carmack extolling the virtues of the Rift I knew I had to get in on the Kickstarter. And last week my Rift finally arrived.


I'm not going to write a lengthy post here talking about the Rift in detail. I basically want to do two things: share some experiences, and give some pointers (especially for those of us 'stuck' on Macs).

So first, some experiences. Yes, the Rift is as impressive as they say. The sense of depth is amazing. You're easily fooled into thinking you're really, physically, somewhere other than where you were a moment before. And this can be very disorienting as well. My favourite Rift application right now has to be Minecrift (which, lucky me, saw a Mac release last week), and I can only play this for short bursts of time before getting some feelings of nausea. Looking around is not the problem, it's moving around which does it. Especially quick movements feel really unnatural when you're really sitting down. But being there, in a Minecraft world, is amazing fun.

Now for some pointers. There are not as many Rift-enabled applications yet for the Mac as there are for PC, and I had a hard time finding them at first. But there are two sites which make your life easier: The Rift List, and Rift enabled. Both sites see frequent updates, and both allow you to filter out Mac applications. My favourites so far ? Spacewalk, which lets you explore the ISS from the outside (and boy is that thing big!). Then there is First Law, which is a basic space shooter. And Blue Marble, in which you're again in space, but which sports the best graphics I've seen so far.

April 05, 2013

Committed

I was planning on doing some more work on this before I blogged about it, but as it has been sitting idle for a while let me just post what I've got. It looks something like this:

This is Committed. It's basically a technology exercise inspired by Commit Logs from Last Night.

What does it do ? Well, in short, it analyzes commit logs from public SVN repositories of Sourceforge projects. You can then run full text queries on these commit logs through a web application. The results are shown in a graph as a trend over time, and you can also browse through individual matches.

How was it implemented ? Well, I set this up as an excuse to experiment with Scala and the Play! Framework. Briefly, I'm using Scala's actor system to query Sourceforge and find public SVN repositories. The actors then fetch the commit logs for these repositories, and feed the commit messages (along with some metadata) to a SOLR database. The Play application then takes the queries from the user, runs them against the SOLR database, and displays the results.

So, what was it like ? Scala's Actor system seems really cool. This experiment only uses some of it's very basics, but it provided a useful introduction. It feels like a really nice alternative to more heavy weight messaging middleware and message driven beans. The model is simpler, and the integration into the language removes a lot of the barriers.

Play, to me, is just another alternative to Ruby on Rails, GRails, and others. If you're using Scala then it is probably a natural choice. Other than that I didn't find any special reason to pick it over some of the alternatives.

I was also planning to use Chef and Vagrant to set up a sort of local processing cluster, so that I could experiment a little with how to scale some of these technologies in different ways. I haven't gotten around to doing this yet.

What I am doing right now is taking an online Scala course. It's presented by Martin Odersky, who created the language in the first place. We're only in the second week, but so far I quite like the course, and it does really help you to get into the Scala mindset. So to anyone who's interested in playing with Scala: this course is definitely something to consider following.

That's about it from me. As usual, I shared my project on Sourceforge. So if anyone feels like taking a peek or playing around with it, be my guest. And if you do, be sure to give me your feedback!

February 12, 2013

TPB AFK

You may already have seen it elsewhere, but TPB AFK is a documentary on the people behind The Pirate Bay and, to a lesser extent, their legal issues. Whether or not file sharing is right or wrong, whether or not the entertainment industry is fighting progress, etc. is left up to the viewer to decide. But whereas TPB is often presented as a criminal organisation, what I saw was just a bunch of people with their own ideals and flaws...


Interestingly, if you're in Belgium and you go to the official website for this documentary and finally choose to download the movie's torrent (set up by the movie's makers), you get the following page:


Make of that what you will... (Never knew there was a Small Internet Wall of Belgium though; somewhat surprising to me.)

February 03, 2013

A New Skribler

As promised, here is an update on Skribler. I have just uploaded a new experimental version of Skribler on Sourceforge.  A new website is up, as well as an online demo. And it looks a little something like this:
So, yeah, this new version of Skribler is browser-based. I'm mostly relying on three pieces to make it work:
  • HTML5's contentEditable, which forms the basis of everything. It makes all content editable, but for the purpose of a structured editor it is too liberal in what it allows.
  • Rangy, which allows me to capture selections and caret info and manipulate these through Javascript. With a little help of JQuery this allows me to restrict the default behaviour of contentEditable.
  • Knockout.js, which is an amazing Javascript library. This takes care of processing changes to the abstract syntax trees and updating the concrete syntax.
Using this I set up three examples of DSLs:
  • Martin Fowler's Reader Configurations, based on an example from his Language Workbenches article.
  • HTML Template Configuration Language, a DSL created by Thomas Cleenewerck with the purpose of more easily setting up websites through composition of templates.
  • Knockout.js Template Language, which can be used to generate the Knockout templates for transforming abstract syntax trees into conrete syntax. In fact, this example was used to generate its own examples.
This version of Skribler is very much alpha software. It is incomplete (no easy adding of new elements by mere typing yet), and only tested in Firefox on Mac OS X Mountain Lion. By all means play around with it, but don't expect it to work perfectly just yet. :-)

January 21, 2013

Thanks Mom...

For the hand-made, quilted, Minecraft Creeper laptop bag!


Geek chique! :-)

PS. Sorry everyone for the lack of updates. Maybe it's the winter blues... I'm working on a new version of Skribler, but I don't have much to show yet. If I get it to a more generally usable state you can expect a post on that.