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 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...


Wombat IDE - Updated tree and image libraries

Continuing the update to the Petite back-end, I’ve rewritten the matrix library and most of the image library (everything except for read-image, write-image, and draw-image). The current code is all in Scheme, although I don’t want to write the image loading/saving code in Scheme otherwise we’ll be back into the original situation with the C211 libraries. The APIs haven’t changed though, so the previous APIs are still valid:

read more...