Programming

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… before taking a hard turn into the private sector to follow my PhD advisor.

Since then, I’ve worked in the computer security space at a couple of different companies. Some don’t exist any more, some you’ve probably heard of. I still program for fun too, and not just in security.

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


All posts

Recent posts

Wombat IDE - Minor bug fixes

Just a few bug fixes this time:

  • A few fixes for error message related to incorrect usage of car and cdr to better match what Chez gives
  • Tweaks to clean up the build system
  • Fixed the JAR signing system to automatically sign JARs only if they’re out of date (prevents Webstart from re-downloading them)

Wombat IDE - Bug fixes and new image code

First, bug fixes:

  • Fixed an issue that made the C211 libraries disappear on a reset
  • list should be printed as a procedure (rather than a type)
  • Fixed a problem where reload would fail
  • Fixed a problem where the wrong procedure name would be printed in errors in make-image and image-map
  • Added code to automatically add a git tag on deploy (based on the version number)

Also, I’ve rewritten the image code (especially read-, write-, and draw-image) to make them significantly faster. They were already faster then the pure Scheme versions, but this should add at least a bit more. It will be particularly helpful later in the semester during some of the more image heavy assignments.

read more...


Wombat IDE - Git

Long story short, I switched from SVN to Git. I could go probably go into a long list of reasons why, but really it comes down to two:

  • I want a lightweight branching model (to keep things like the screen sharing out of the deployed builds)
  • I want to learn a new version control system (I’ve used Git a bit, but this is the largest project I’m working on so will force me to learn more quickly)

It took a bit to get everything moved over, but I think everything is working correctly now. I’m still on Google Code, just using their Git back-end.

read more...


Wombat IDE - Bug fixes, memory issues, and screen sharing

A bit of a bigger update today, bringing the version number up to r213.

First, bug fixes:

  • Removed visible references to Java, replacing class names in errors
  • Fixed an issue related to hanging on non-procedure errors
  • Fix for even? and odd? to correctly deal with both Java and Kawa numbers
  • Added trace-define
  • Increased stack size to delay infinite loop errors (so that larger code that isn’t actually an infinite loop can run)
  • Do not format after #!eof
  • Clear REPL history reset

In addition, I’ve started working on a feature that I’ve been hoping to add for a while: screen sharing. Essentially, I’m hoping to add something like Google Docs where two or more users can edit a shared file. Since the C211 labs are always run with pair programming, this will allow students to work on the same code at the same time without constantly switching the keyboard. Unfortunately, it isn’t quite working yet, but I’m hopeful.

read more...


Wombat IDE - Bug fixes

A small list of bug fixes:

  • Fixed printing for empty strings and Kawa specific strings (derived from gnu.lists.FString)
  • Fixed a problem with the Ant script when the build directory didn’t previously exist
  • Fixed random to correctly deal with large numbers (larger than the range of a Java int)

The new build is r194.


Wombat IDE - Defining define

First, minor bug fixes and reorganization:

  • Fixed a problem with line separators that was causing automatic indentation to fail on Windows
  • Re-factored save/load code to the text area
  • Store a hash of the saved contents with each text area so that we can recognize files that don’t need to be saved
  • Add an option to disable confirmation on save before either running or exiting (if disabled, just automatically save in both cases)

read more...


Wombat IDE - Ant build script

I’ve been having issues with the automatic updates and half-manually building things through Eclipse, so I decided to use a build system. Previously, the only experience I have with such systems is GNU make which isn’t particularly Java specific. So I decided to learn something new and try out Apache ANTas a build system. Essentially, I’ve added the following features:

  • revision - get the SVN revision number to use as the current version
  • compile - compile the code (required revision)
  • dist - create a JAR file from the built code (requires compile)
  • sign - sign the JAR files so they can be deployed (requires dist)
  • deploy - create the files necessary for Webstart (requires dist, sign, and revision)

read more...


Wombat IDE - Bug fixes and undo/redo

Two minor bug fixes:

  • Fixed the behavior of the bracket matcher so that the functions < and > actually work.
  • Removed tabs on automatic formatting to avoid problems with different tab widths

And a new feature: Undo/Redo. Now any text field, specifically the REPL and the code editor have an undo/redo stack as they should have had all along. It just uses the Swing Undo/Redo API, so it wasn’t terribly hard to implement, but it was something that needed to be done. Hopefully this makes it easier on students that accidently delete things (this may have happened, ergo the new feature :-). New version is r178.

read more...