Wednesday, February 9, 2011

Violet UML

In my Software Engineering course, I have the students do OOA&D projects where some form of software for working with UML diagrams is useful.

In previous years, I've used ArgoUML.  It's open source, and quite full-featured.  It also does not support undo.  Every year I investigate to see if any progress has been made on this issue, and every year it's "in progress".  Students find this limitation extremely frustrating, and I don't blame them.  Feh.

This year I stumbled across Violet UML, which I had somehow missed in my previous searches for open source UML tools.  It does not aim to be a full-blown CASE tool --- e.g., no code generation, reverse engineering, etc.  This is actually a virtue in my case: it's very simple to use, so the learning curve for students should be minimal.  The UI is intuitive.  And it has undo.  It's a Java app packaged as an executable jar file, so no installation required.  Win win win.

Tuesday, February 8, 2011

Text editors, Geany

I'm teaching a course on parallel and distributed programming where the programming environment is the head node of a Linux cluster, which we're connecting to using VNC.  We're using the classic "text editor and makefile" development environment rather than an IDE, so the choice of text editor has been on my mind lately.

Years ago, I was an Emacs guy, but I abandoned that particular ship when I started to develop wrist problems.

In grad school Vim was my editor of choice.  I gave it a try again, and there are definitely things I like about it.  Running an arbitrary filter process on a region of text bounded by a regular expression search is really cool.  However, its model for switching between buffers is appallingly primitive.  If Vim had a sidebar displaying a list of open files, it would probably be my favorite editor.  But it doesn't.

Oddly enough, my preferred editor in recent years has been Gedit.  It's very basic, but it's clear that its developers actually thought about usability.  The gedit-plugins package in Debian/Ubuntu provides some few useful extensions.  Plus, its default syntax coloring scheme is the same as Vim's, which to my eyes is simply the correct one.  (Comments are blue.  That's just the color they are.)  Unfortunately, there is no support for word completion.  There seem to be a few plugins that have provided support, but there's doesn't seem to be a Debian package for any of them, and I wasn't encouraged by the complicated list of instructions for installing any of them locally.

After a number of web searches, I stumbled upon Geany.  It's a lightweight programmer's editor with a few IDE-like features.  I've been using it for a few days, and it's more or less exactly what I was looking for.  It has a side pane and word completion, but the UI is fairly minimal.  I haven't really used the IDE features (such as compiling from within the editor), but happily those features aren't imposed on you in any way.  Most importantly, there was a Debian package available through APT.

Wednesday, February 2, 2011

I am a criminal

Recently, one of the DVDs that Eli and Gus like to watch became corrupted.  I'm not sure exactly what the problem is; there aren't any obvious scratches, and we've cleaned it.  The symptom is that during one of the scenes, the video freezes.

So, I ripped the data off of the disc using ddrescue, managing to get all but about 800K of the data.  I can play the resulting ISO image using the awesome VLC.  There's a brief pause in the video where the missing data occurs, but otherwise it plays perfectly.

So why am I a criminal?  The DVD data is scrambled with CSS, which of course requires libdvdcss to unscramble.  And since CSS is legally a mechanism to guard against unauthorized copying, unscrambling the content is illegal under the DMCA.