So, I haven't posted to LiveJournal in quite awhile.
But, I got to thinking it might be nice to summarize
here a little bit of what I've been up to. Most of this
has buzzed through my Twitter and Facebook feeds. But,
here's a chance to kind of see it all together.
The last thing that I posted on my LiveJournal was
an announcement that my
Spelling Toy for Kids is on the
iTunes Store. Since then, I updated it
with Animal pictures, German translations, Japanese kana translations,
and Nederlands translations.
I wrote a Gimp plugin to do a
Burnt Paper effect:
I reworked an old idea of mine in Lisp instead of Java. It's an
XML Parser
Generator. You give it a brief description of what you'd like
your internal, language-specific structures to look and where it should
get that information from the XML data. Then, it generates a SAX
parser for you to use in your chosen language. The current incarnation
can output either Lisp code or Objective-C code (using all iPhone
SDK compatible support classes).
I wrote that tool so that I could parse a bunch of RESTful XML
for an iPhone application. Having written the tool, I then used
XML for the board readers in another iPhone application that I am
working on. I also used the parser generator to generate an XML
reader for X3D object files for the Lisp game coming up next.
![](http://nklein.com/wp-content/uploads/2010/03/roto-mortar-screenshot-300x187.png)
I wrote a Lisp game for the
2010 LISP Game Design Challenge. [First, a brief aside about
the word LISP versus the word Lisp for those not in the
know. The word Lisp is usually taken to mean ANSI Common Lisp
these days. The word LISP is used instead to denote any Lisp-like
language including (but not limited to): ANSI Common Lisp, Scheme,
Clojure, Arc, etc.] The game is called
Roto-Mortar. It is a one-button game.
The only control you have at all is one mouse button (without the whole
mouse-pointer thing... just the button... doesn't matter where you click...
just that you clicked). I made the 3D models in Blender, exported them
to X3D, read them in with a parser that largely came out of my parser
generator (though X3D stores arrays of numbers in attribute strings,
so I tweaked the generated parser a bit to turn those into arrays
instead of keeping them as a string of comma-separated numbers).
This week and last, I have been learning
Weblocks to prepare
to talk about it at the next
TC Lispers meeting. As part of it, I
dusted off an old project that I had in Perl and am trying to craft
a better web front-end for that project. One of the features of that
project was that you could make it use
Growl
to notify you of chosen events. So, I spent a few hours one
evening making a
Lisp library for Growl that implements the
Growl
Talk protocol. Of course, when I announced that library on the
Growl mailing list, I discovered that they are in the process of
changing the protocol entirely. They will be using the
Growl Notification Transport Protocol that is used in
Growl for Windows. So, I've started hammering on a Lisp client
library for GNTP.
As part of that library, I have been using
Ironclad to do the needed encryption. However, Ironclad doesn't completely support padding for block ciphers (in block mode)
yet. At the moment, I have a work-around in my code to pad the block
before handing it to Ironclad to encrypt. But, I'm starting to dive
into Ironclad to try to get the padding support down into the right spot
so that I don't have to copy my whole buffer just to get a few padding
bytes added onto the end.
And, I just found out that some
C++ template classes that I wrote years ago are getting used to do
feature separation and classification for signal processing.
I applied for many jobs, interviewed for one, no luck yet.
Tomorrow, we're off to Punxsutawney to visit my family.