Older blog entries for elduderino (starting at number 6)

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

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. "http://www.google.com/search?q=%s"), 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) »
upgrade?

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!

bookmarks.lisp

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.

splay trees and buffers

been thinking about splay trees and buffers after reading tom lord's comment in c.l.lisp. about gap buffers being used by lazy programmers. he used roughly page-sized intervals stored in the same splay tree as attributes for his fancy text for scm package. (i haven't found the source to that, yet.)

why think about this? i'm intrigued by the idea of a new common lisp based emacs. one that would evolve into a lisp machine like environment.

i'm not saying i'm working on the next best editor. going through this exercise will hopefully put me in a position to help when such a project gets momentum again. it's sad to find a bunch of high traffic threads and lists (lispos, lispvm) and then realize that they died many years ago.

19 Dec 2002 (updated 19 Dec 2002 at 08:11 UTC) »
lisp

i've spent the last two weeks learning all things lisp. my previous exposure was a "programming languages" course at college where we also learned ada and prolog.

this all started as a project to learn emacs lisp. i sidetracked into scheme and then ended up at common lisp. i read both paul graham books, parts of AMOP, online tutorials, archived mailing lists and newsgroups, and source from various implementations.

i'm using both openmcl and mcl on mac os x. i'm more comfortable using emacs/ilisp than i am with mcl's fred. that may change once the full release of mcl comes out in january.

tonight i'm installing redhat 8 on a virtual pc image. that way i can also play around with cmucl and sbcl. cmucl mostly to try out hemlock and sbcl since the more active chatters on #lisp seem to be sbcl hackers.

lisp coding right now is limited to exercises from pg's book, but i have some ideas for more substantial projects.

more later..

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!