The earliest memory I have of ‘programming’ is in the early/mid 90s when my father brought home a computer from work. We could play games on it … so of course I took the spreadsheet program he used (LOTUS 123, did I date myself with that?) and tried to modify it to print out a helpful message for him. It … halfway worked? At least I could undo it so he could get back to work…

After that, I picked up programming for real in QBASIC (I still have a few of those programs lying around), got my own (junky) Linux desktop from my cousin, tried to learn VBasic (without a Windows machine), and eventually made it to high school… In college, I studied computer science and mathematics, mostly programming in Java/.NET, although with a bit of everything in the mix. A few of my oldest programming posts on this blog are from that time.

After that, on to grad school! Originally, I was going to study computational linguistics, but that fell through. Then programming languages (the school’s specialty). And finally I ended up studying censorship and computer security. That’s about where I am today!

But really, I still have a habit of doing a little bit of everything. Whatever seems interesting at the time!

Wombat IDE - A pile of features and bugs

Another one of those posts. 😄 Bug fixes: Fixed a problem with the interop libraries reporting they were finished before they actually were. Now when reading a few hundred images, the call will block until they are actually read rather than just pretending to read them as it was. Issue 158: Prevent backups of backup files (no double ~). Basically, if a person directly edits a backup file, they’re on their own.

read more...


Wombat IDE - A new way

Up until now, the Petite bindings have been built around a threaded model where one thread existed solely to send new commands to the Petite process and another solely to read responses back. Mostly, this would stop the problem with the Java Process model that would cause it to deadlock if the data was not actually being consumed–the reading thread could act as a buffer in this instance.

read more...


Wombat IDE - Busy day for small changes

Bug fixes:

  • Issue 138: Automatically create a backup file (with a ~ suffix) on save and an option to disable it. There have been a few issues with Wombat crashing that I haven’t managed to track down, this should help people recover from those. (They’re rare; as in 2 cases reported among over 150 students for several months, so this shouldn’t happen to the majority of users).
  • The mnemonic in the recent documents menu has been tweaked to be ascending and 1 based rather than descending and 0 based.
  • Fixed an issue where occasionally hitting enter in the REPL wouldn’t run the current code based on incorrect bracket matching.
  • list->image and image->list are not properly highlighted as keywords.

read more...


Wombat IDE - A helping hand and image library updates

Two interesting things to talk about this update. First, I have my first code contribution from someone else. I’ve been working with Graham during Peer Tutoring for C212 and when we were busy, we talked about Wombat. He seemed interesting in helping, so he worked out the new about dialog for Wombat. Now it has all of the different libraries and licenses that Wombat uses, along with a nice picture.

Many thanks! (And if anyone else wants to contribute, feel free. It’s always nice to get a different viewpoint on things.)

read more...


Wombat IDE - Assorted bug fixes (λ‎ mode fixed)

A few minor bug fixes first:

  • Fixed the cursor jumping to the end of the document on saves. This was being caused by the code that automatically trimmed whitespace, which will still change the file on disk but won’t change the actual open document.
  • Apparently, there were some lingering issues with the undo/redo stack sometimes erasing the document. If this happens, you can always undo once more to get passed it, but I think I’ve tracked down why it was happening. If it happens again, please let me know.
  • Fixed an error where closing documents through the InfoNode close event wouldn’t actually remove them from memory.

read more...


Wombat IDE - Updated draw-image

After a long while, I’ve actually done some work on the frame displayed with draw-image. Now rather than just showing the basic image, there’s a bit of extra information available.

read more...


Wombat IDE - 64 bit Petite

64-bit Linux and OSX machines will now download a 64-bit version of Petite rather than the previous 32-bit versions that I was downloading for all of the systems. This should mostly help to alleviate problems that some people were having with installing the necessary 32-bit libraries on their systems. Unfortunately, this requires an update to the actual launcher, so anyone that needs the new features will need a new build of the launcher.

read more...


Wombat IDE - λ mode

I’ve fixed the λ-mode that I was talking about earlier, adding a menu option so that all lambdas will automatically be exchanged for λs or vice versa. Behind the scenes, files are always saved with the word lambda (so that the macro in the previous post isn’t actually necessary), but such changes should be completely transparent to the end user. If you want to switch over to the new versions of Wombat, you can get it here.

read more...


Wombat IDE - Scheme/Java Interop

In the last few days I’ve managed to get a version of Scheme/Java interoperability working where Scheme code can call to Java using a side channel alongside the normal communication with the host Wombat process.

read more...