Recent blog entries for elduderino

17 Jun 2003 (updated 17 Jun 2003 at 05:18 UTC) »
last minute cram session

to fully appreciate wwdc next week, i started learning as much cocoa as i can. i played around briefly a year ago when i wrote a menubar biff. that was before i switched from ssh/mutt to imap/

i'm reading one book, "building cocoa applications", through o'reilly's safari online library. it's not bad since it doesn't gratuitously hand-hold (or maybe i just skim very well). after that i have a dead-tree copy of "cocoa programming".

not sure how much cocoa programming i'll do in the future, but i've got a subsidized ticket to wwdc and nothing better to do.

anyone else going? let's meet up some night -- drinks are on me.

"not back on it, joe, still on it."

i'm not quite ready to give up on lisp. python was a nice diversion but it just lacks something. i played around with some lisp macros the other day and it all just made sense.

what's missing? i need to figure out the allegro socket implementation in openmcl. i think i was just missing (finish-output ...) last time. then, once openmcl-0.14 is finished, i need to start playing with processes.

it's all coming together... kinda.

dear lisp,

i miss your elegance. my new love python may be more practical, but it could never approach your beauty.

it's the little things i miss -- the return of a function being the value of the last expression, the non-destructive functional-style paradigm, and most importantly the predictable syntax.

will i ever be satisfied?

15 May 2003 (updated 15 May 2003 at 20:44 UTC) »
dear lisp,

it's not you. it's me. i still love you. i'll never forget you. maybe someday i'll come back. but for now, i found another. her name is... python

one more post about my bookmarks app. i've mentioned it so much, you'd think it was something more important than it actually is.

i rewrote it, one last time, as an exercise to learn python. the big advantage python has over lisp (for me) was available libraries and documentation. please don't flame me -- i know lisp's many advantages! you have to admit though, that there is a great need for a standard set of APIs for sockets, regex, etc across ALL the various lisps.

maybe arc will be the answer to my lisp frustrations?


i switched to safari from chimera/camino. i hacked the binary to send the google search box to my bookmarks/keyword server. unless the google box is a sponsored deal, i imagine they'll add keyword features to it in future versions.


my love affair with lisp continues. i rewrote my bookmark parsing code from chimera format to safari. at first the safari plist seemed overly verbose, but it maps well to lisp lists and hashs.

it's nice to iteratively develop code. come up with a theory, code it quickly, revise theory, recode it, etc. much faster than it would have taken me to figure out my first malloc() in c.


over the last couple of months, i bought .5Tb of disk space and ripped my entire cd collection (1200+) to raw aiff files. then wrote a script that will keep that in sync with an mp3 (320kbps currently) version of that tree. then i sync 90% of that to my 120G empeg player using rsync.

hopefully i'll never have to rip those cds again. once i figure out enough applescript to automate encoding to AAC using quicktime, i'll do that. then use those files for my ipod.

i plan to write scripts that will automate playlist->cdr creation using itunes. instead of burning the mp3, it'll find the original aiff file and use that.

11 Jan 2003 (updated 11 Jan 2003 at 23:39 UTC) »

i found out that chimera (and mozilla presumably) has built-in support for keywords and bookmarks that take arguments. i can create a bookmark (eg. ""), assign it to a keyword ("gs") and then type "gs sheep pr0n" and it'll do the right thing.

knowing that, i ripped out all the redirect code in my bookmarks server and re-wrote the "top" half using lemonodor's lisp server pages (lsp) package. i'm pretty happy with this (final?) version. especially now that my bookmarks package isn't doing any pretty-printing, that's all left to the lsp.

got some package weirdness going on, but i think it's just me not fully understanding packages and compilation. maybe just need some properly placed (eval-when ..) forms.

now.. on to the next project.

6 Jan 2003 (updated 6 Jan 2003 at 02:26 UTC) »

is it technically an upgrade when no new functionality is added?

i found an xml package that works with openmcl. with that, i rewrote the bottom half of my bookmarks code to parse an xml tree instead of regexp'ing a file. i feel a lot better about it. i plan to clean up some of code that interfaces with paserve so i can have more interesting and consistent html output. maybe a quick template hack?

i find myself using my interface to load even one bookmark instead of using the dropdown bookmarks menu. still quicker for me to type than use the mouse, i guess.

SRFI for lisp?

perhaps this has been discussed to death and i'll get flamed.. but i think there needs to be a mechanism for standardizing (lower case "s") some interfaces (sockets, ffi, regexp). perhaps allegro's sockets and kmr's uffi could be the basis for the first two?

maybe there should also be a mechanism for deprecating parts of the spec? i don't know enough to suggest any. but i'm sure there's some cruft in there somewhere.

chimera keywords

ported my friend's php-based keyword server to lisp and hooked it into portable allegroserve. from the location field in chimera, i can enter things like "gs foo" and it'll redirect to a google search for "foo". similarly for google groups, google images, yahoo! yellow pages, whois etc. one annoyance -- it won't allow "." in a keyword so i have to encode/decode it.

then i hooked it into my bookmarks app. it can now parse chimera's bookmarks.xml, so my bookmarks are always in sync. with keywords, i can set the current bookmark folder and then load the next N urls. i'm still using applescript to talk to the browser, so the web server needs to be on the same machine. i'll convert it to javascript later; perhaps opening a small console.

i cheated and used regexps to parse the bookmarks file. i gave up (admittedly too fast) in frustration after failing to get any of the xml packages listed in the cliki to work with openmcl.

still planning to rewrite it all now that i have a bit more lisp experience. fun fun!


added regexps to my bookmarks program using cl-ppcre. today was my first "test-run" using this with chimera instead of omniweb and its built-in facility. even though it shows me sites that haven't been updated, it still works better for me. i like loading a dozen sites at once and then popping through them quickly.

now to throw it all away and start over using clos.. then importing/exporting from various browser formats. that way i can just use my browser to categorize and order them.

31 Dec 2002 (updated 31 Dec 2002 at 01:55 UTC) »
i love lisp
(with big ol' flowery hearts as dots for my i's)

hacked together a simple bookmark app to replace my dependence on omniweb's bookmark facility. it's shelling out to osascript since i don't know if i can invoke applescript directly from openmcl.

mine doesn't actually check for changes yet. it just sends the next N bookmarks from some folder to my default browser (chimera). later i'll add code to check for updated bookmarks -- something that will grok frames better than omniweb. enough of my bookmarks change on a daily basis that it's not a big deal.

sure, i could have written this in a dozen other languages, but i enjoyed writing it in lisp.

2 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!