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


Wombat IDE - Generated host IDs

Just a small change, now a short (8 character) alpha-numeric string will be used whenever a user hosts a connection, rather than just having to enter the IP and port combination:

read more...


Wombat IDE - Pair programming

As I mentioned once before, I’ve been meaning to add the ability to share screens between different users. I spent a few hours yesterday evening, trying to get everything working correctly in the new setup. So far, I have messages sent and received (encoded using a Public Domain Java Base64 library) between a host and one or more clients, all with an easy enough to use GUI built right into Wombat:

read more...


Wombat IDE - Threads are *fun*

Threads can get all sorts of interesting sometimes. And fun to debug. Essentially, whenever the user would restart the Petite process (using the Stop button) a new output thread would be spawned. There wasn’t any problem with the output being duplicated or lost–I already had locking in place to prevent that–but what would happen is that the threads would interleave the output, scrambling output nicely.

read more...


Wombat IDE - Enhancements and forward thinking

A few minor enhancements with the new Petite-based builds: Start case sensitive by default Added a library directory in preparation for the new C211 libraries Added code to prevent gensym printing (makes records more readable in general) Re-added the C211 tree library (except for draw-tree), it’s pure Scheme but the API has remained the same I still haven’t pushed an official build for the students to actually use, but we’re getting closer.

read more...


Wombat IDE - Bug fixes galore!

Bug fixes:

  • Added the ability to cancel when saving on close
  • Fixed Stop with Petite
  • Fixed an issue where the cursor wouldn’t be at the end on up arrow
  • Updated the launcher to actually exit in all cases, including errors on startup
  • Fixed build process for Petite sub-directories
  • Altered the Launcher to download zip archives and unzip them rather than grabbing the executable directly
  • Set the executable bit on unpacking files from zip so that Petite actually works on Linux and OSX machines