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 - C211 tree and image libraries

To start off, I have a small list of bug fixes / minor improvements before I get to the real meat of what I’ve got for the day:

  • Added ability to change font size
  • Added a program icon (which doesn’t seem to work on OSX, I should look into this)
  • Added an IconManager to deal with all of the menu icons
  • Added option to reset the Scheme environment if it gets broken for whatever reason
  • Changed prompt from »> to §, mostly because I just like the character (also a single character saves space)
  • Fixed display, redirecting it to the REPL. Unfortunately trace still doesn’t work
  • Bound true to #t and false to #f to make input and output match
  • Fix for a problem that would prevent Wombat from closing on OS X

read more...


Wombat IDE - Enter the bug tracker

Today saw another round of bug fixes:

  • Internal swap of [] to () to make Kawa behave correctly (this is a hacky fix, I should figure out a better way to do this)
  • Split the code for the REPL into seperate files for better organization
  • Some sanity checks on bracket matching, preventing a few errors I was seeing

read more...


Wombat IDE - A ray of Hope

Since I moved to Kawa, I’ve been having an issue with maintaining the state between calls to the interpreter. Everything works fine when I load and run an entire file at once (for example when loading the options files or actually debugging my own code), but when I try to run individual lines of code to add custom bindings, it doesn’t work.

read more...


Wombat IDE - A busy day of bug fixes

Today was a busy day of bug fixes, mostly minor. Here’s a nice list: Added building the webstart files to the automatic build system Removed references to the old SISC code Fixed a crash when the syntax definitions couldn’t be loaded successfully Fixed an error with dynamically reloading options Added better sanity checks to option loading, defaulting to known values if necessary All of this has prompted a new build: r113, available here.

read more...


Wombat IDE - Options options everywhere

From the beginning, I wanted Wombat to be configurable where it mattered, so I added a system that would be able to load and save options. This being a Scheme IDE, I wrote the options files in… what else? Scheme! Here’s the default options.cfg file included with the current distribution of Wombat (r90). The code to read these options is defined using Scheme macros written partially in a hyrbid of Java and Scheme and can (at least theoretically) even be set during runtime by calling the cfg procedure in the REPL.

read more...


Wombat IDE - Docking windows

One of the features that I really wanted to have in Wombat was the ability to have multiple documents in separate windows with the ability to drag them around both in their parent window or out of it, docking as necessary. Most modern IDEs have this feature and I figured that I should make Wombat as easy to use and like the others as I could. I looked around somewhat at different options for docking windows in Java and ended up settling on InfoNode Docking Windows, available under the GPL v3. It took some work to adapt to their API, but within a few hours I was able to release another build, r87 using the new system, available here.

read more...


Wombat IDE - And so it begins

The second (and it turned out final) iteration of Wombat was based on Java. With nearly 10 years of Java experience at that point, I could write Java code more quickly and efficiently than most other languages. In addition, it had the advantage of being portable, running on essentially every modern operating system with no changes to the deployed class files.

read more...


Wombat IDE - A bit of history

For three semesters now, I have been an AI (associate instructor, not the other kind) for the C211: Introduction to Computer Science class at Indiana University. C211 is (and has been for many years) taught using the Scheme programming language, a dialect of Lisp following a minimalist viewpoint which makes it ideal for education. Unfortunately, many of the IDEs most commonly used to edit Scheme, Lisp, and other languages based on S-expressions tend to be rather complex and require time to learn on their own, reducing the time dedicated to other topics in such an introductory class.

read more...