Linux Format, Alonzo's Linux magazine of choice, has a brief article about Raggle in issue 65 (April 2005). They seemed to like it. Guess I'd better fix the UTF-8 munging bug before anyone notices (actually, it's fixed in CVS). I scanned the review — if you're intereste, you can check it out here.
Side projects, side projects. A couple weeks ago, I submitted a patch which adds OpenSSL-based package signing for RubyGems. A patch against RubyGems 0.8.10 is available here (signature). I also wrote up some fairly detailed documentation. It's included in the patch, and also here.
Overall I like the OpenSSL support in
Ruby, although I've managed to
uncover a couple of gremlins along the way, most notably missing methods
in the PKCS12
and ASN1
modules. The single
biggest problem though, is the lack of documentation; it's even more
sparse than the OpenSSL documentation.
I've done enough crypto stuff that I was able to slog through it, but
this is just ridiculous. It's 2005. RDoc exists for a reason —
use it. I'll resist the urge to comment on the lack of decent RDoc documentation, because I
think pragdave has earned a few gold
stars. You know, for that whole Pickaxe thing.
The #gah people page now has an XML-RPC interface, which allows you to (say), quickly build a blogroll of IRC people, find people in your state, or whatever other pathological idea you can come up with. Full API documentation (including the XML-RPC endpoint) is available here.
Speaking of web pages, I really really like the final designs
on the Ruby-Lang 2005
Redesign Blog. The current ruby-lang.org
is kind of
an eye-sore, so the sooner they replace it, the better.
On the nifty software front, I've been playing with OpenVPN and Monotone. The former is absolutely incredible; it's easy as piss to configure, completely customizable, fast, uses OpenSSL-based X509 certs for identification (both client and server), and as Windows support. Did I mention it's easy to configure, too? I've been using an OpenVPN to tunnel from my laptop to my file server for the last couple of weeks so I can mount my NFS exports read-write over wireless.
As for Monotone, it looks really promising, but it's unbelievably slow. Actually, "ridiculously, horribly, unbearably slow" might be more apt. I know they're working on speed, so in a couple of months, I'm sure things will be bearable. Once that happens, I may seriously consider switching over...
Oh yeah, Raggle. Work continues on the 0.4 branch. the next stable release (0.4.1) will have the Unicode munging behaving properly (hopefully), and a configurable bookmark system. If I get harassed enough, that might be within the next few weeks :).
As for the development version of Raggle... Well, that's where all the fun is. Here's a high-level diagram of the various components:
Next-Gen Raggle | ||||||
Engine (Squaggle) | Interface | |||||
Synapse (libsynapse) | SQLite3-Ruby | Console | Web | |||
libfeed | Curl | SQLite | SQLite | Profanity | WEBrick | |
libptime | expat | Curses | ||||
Legend
|
What's new? Profanity has been added to the diagram, and Squaggle has a new dependency, Synapse. Synapse is a C-level library that wraps Curl and libfeed. This arrangement has a whole lot of advantages; here's a handful of them:
- Speed. C is faster than Ruby, and the Synapse API actually passes commands to a child process, so we also avoid the overhead of Ruby's green threads (and threads in general).
- Smaller memory footprint.
- All sorts of great new Curl-related HTTP features: Digest authentication, GSS-Negotiate authentication (eg, Kerberos), NTLM authentication (Microsoft), SOCKS5 proxy support, tunnelled proxy support, SSL peer-verification control, cookie support (including Mozilla cookie jars), and more.
- A complete language-agnostic RSS/Atom parsing, fetching, and saving interface. Write your own interface in whatever language you want!
I could keep going, but I just saw the time. I've got to take a look at
picard's
busted hard drive (yeah, another one), and check
on kylie's
fancy new off-site backups (thanks, Alonzo!). Be sure to check out Sean's article, "How I Implemented
Tags".