aboutsummaryrefslogtreecommitdiff
path: root/content/posts/2005-05-12-raggle-article-rubygems-signing-gah-people-xml-rpc-and-more.html
diff options
context:
space:
mode:
Diffstat (limited to 'content/posts/2005-05-12-raggle-article-rubygems-signing-gah-people-xml-rpc-and-more.html')
-rw-r--r--content/posts/2005-05-12-raggle-article-rubygems-signing-gah-people-xml-rpc-and-more.html230
1 files changed, 230 insertions, 0 deletions
diff --git a/content/posts/2005-05-12-raggle-article-rubygems-signing-gah-people-xml-rpc-and-more.html b/content/posts/2005-05-12-raggle-article-rubygems-signing-gah-people-xml-rpc-and-more.html
new file mode 100644
index 0000000..ab24c37
--- /dev/null
+++ b/content/posts/2005-05-12-raggle-article-rubygems-signing-gah-people-xml-rpc-and-more.html
@@ -0,0 +1,230 @@
+---
+date: "2005-05-12T04:42:59Z"
+title: Raggle Article, RubyGems Signing, Gah People XML-RPC, and More...
+---
+
+<p>
+<a href='http//linuxformat.com/'>Linux Format</a>, <a
+href='http://bsin.org/'>Alonzo's</a> Linux magazine of choice, has a
+brief article about <a href='http://raggle.org/'>Raggle</a> 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 <a
+href='http://cvs.pablotron.org/?m=raggle'><acronym
+title='Concurrent Versioning System'>CVS</acronym></a>). I scanned the
+review &mdash; if you're intereste, you can check it out <a
+href='http://raggle.org/files/lf65-raggle_article.jpg'>here</a>.
+</p>
+
+<p>
+Side projects, side projects. A couple weeks ago, I submitted a patch
+which adds <a href='http://openssl.org/'>OpenSSL</a>-based package signing for
+<a href='http://rubygems.org/'>RubyGems</a>. A patch against <a
+href='http://rubygems.org/'>RubyGems 0.8.10</a> is available <a
+href='/files/rubygems-0.8.10-sign.diff.gz'>here</a> (<a
+href='/files/rubygems-0.8.10-sign.diff.gz.asc'>signature</a>). I also
+wrote up some fairly detailed documentation. It's included in the
+patch, and also <a href='signing_gems.txt'>here</a>.
+</p>
+
+<p>
+Overall I like the <a href='http://openssl.org/'>OpenSSL</a> support in
+<a href='http://ruby-lang.org/'>Ruby</a>, although I've managed to
+uncover a couple of gremlins along the way, most notably missing methods
+in the <code>PKCS12</code> and <code>ASN1</code> modules. The single
+biggest problem though, is the lack of documentation; it's even more
+sparse than the <a href='http://openssl.org/'>OpenSSL</a> documentation.
+I've done enough crypto stuff that I was able to slog through it, but
+this is just ridiculous. It's 2005. <a
+href='http://rdoc.sourceforge.net/'>RDoc</a> exists for a reason &mdash;
+use it. I'll resist the urge to comment on the lack of decent <a
+href='http://rdoc.sourceforge.net/'>RDoc</a> documentation, because I
+think <a href='http://pragprog.com/'>pragdave</a> has earned a few gold
+stars. You know, for that whole <a
+href='http://pragmaticprogrammer.com/titles/ruby/'>Pickaxe thing</a>.
+</p>
+
+<p>
+The <a href='http://gah.pablotron.org/'>#gah people page</a> now has an
+<a href='http://xmlrpc.com/'><acronym title='eXtensible Markup Language/Remote Procedure Call'>XML-RPC</acronym></a>
+interface, which allows you to (say), quickly build a blogroll of
+<acronym title='Internet Relay Chat'>IRC</acronym> people, find people
+in your state, or whatever other pathological idea you can come up with.
+Full <acronym title='Application Programmer Interface'>API</acronym>
+documentation (including the <a href='http://xmlrpc.com/'><acronym title='eXtensible Markup Language/Remote Procedure Call'>XML-RPC</acronym></a>
+endpoint) is available <a href='http://gah.pablotron.org/api/'>here</a>.
+</p>
+
+<p>
+Speaking of web pages, I really <em>really</em> like the final designs
+on the <a href='http://redhanded.hobix.com/redesign2005/'>Ruby-Lang 2005
+Redesign Blog</a>. The current <a
+href='http://ruby-lang.org/'><code>ruby-lang.org</code></a> is kind of
+an eye-sore, so the sooner they replace it, the better.
+</p>
+
+<p>
+On the nifty software front, I've been playing with <a
+href='http://openvpn.sf.net/'>OpenVPN</a> and <a
+href='http://venge.net/monotone/'>Monotone</a>. The former is
+absolutely incredible; it's easy as piss to configure, completely
+customizable, fast, uses <a href='http://openssl.org/'>OpenSSL</a>-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 <acronym title='Network File
+System'>NFS</acronym> exports read-write over wireless.
+</p>
+
+<p>
+As for <a href='http://venge.net/monotone/'>Monotone</a>, 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...
+</p>
+
+<p>
+Oh yeah, <a href='http://raggle.org/'>Raggle</a>. 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 :).
+</p>
+
+<p>
+As for the development version of <a
+href='http://raggle.org/'>Raggle</a>... Well, that's where all the fun
+is. Here's a high-level diagram of the various components:
+</p>
+
+<p>
+ <style type='text/css'>
+ /* table style */
+ table#ng-raggle {
+ text-align: center;
+ border: 1px solid black;
+ padding: 4px;
+ background-color: #ddd;
+ }
+
+ table#ng-raggle td {
+ text-align: center;
+ border: 1px solid black;
+ padding: 4px;
+ margin: 2px;
+ font-family: arial, verdana, helvetica, sans-serif;
+ font-size: 14px;
+ }
+
+ /* element styles */
+ table#ng-raggle td.ruby, table#ng-raggle ul#legend span.ruby {
+ background-color: #faa;
+ }
+
+ table#ng-raggle td.clib, table#ng-raggle ul#legend span.clib {
+ background-color: #afa;
+ }
+
+ table#ng-raggle td.dep, table#ng-raggle ul#legend span.dep {
+ background-color: #aaf;
+ }
+
+ table#ng-raggle td.hdr { background-color: #eee; }
+ table#ng-raggle td.nada { border: 0px; }
+
+ /* legend style */
+ table#ng-raggle td#legend {
+ text-align: left;
+ font-size: 12px;
+ border: 0px;
+ }
+
+ table#ng-raggle ul#legend { margin: 0px; padding: 2px 20px 2px 15px; }
+ table#ng-raggle ul#legend li { padding: 1px; }
+ table#ng-raggle ul#legend span { padding: 0px; margin: 0px; }
+ </style>
+
+ <table id='ng-raggle'>
+ <tr><td class='ruby' colspan='7'>Next-Gen Raggle</td></tr>
+ <tr>
+ <td class='hdr' colspan='5'>Engine (Squaggle)</td>
+ <td class='hdr' colspan='2'>Interface</td>
+ </tr>
+ <tr>
+ <td class='clib' colspan='4'>Synapse (libsynapse)</td>
+ <td class='dep' colspan='1'>SQLite3-Ruby</td>
+ <td class='hdr' colspan='1'>Console</td>
+ <td class='hdr' colspan='1'>Web</td>
+ </tr>
+ <tr>
+ <td class='clib' colspan='2'>libfeed</td>
+ <td class='dep' colspan='1'>Curl</td>
+ <td class='dep' colspan='1'>SQLite</td>
+ <td class='dep' colspan='1'>SQLite</td>
+ <td class='ruby' colspan='1'>Profanity</td>
+ <td class='dep' colspan='1'>WEBrick</td>
+ </tr>
+ <tr>
+ <td class='clib'>libptime</td>
+ <td class='dep'>expat</td>
+ <td class='nada'>&nbsp;</td>
+ <td class='nada'>&nbsp;</td>
+ <td class='nada'>&nbsp;</td>
+ <td class='dep' colspan='1'>Curses</td>
+ </tr>
+ <tr></tr>
+ <tr>
+ <td colspan='7' id='legend'>
+ <b>Legend</b>
+ <ul id='legend'>
+ <li><span class='ruby'>&nbsp;&nbsp;&nbsp;</span> Written in Ruby</li>
+ <li><span class='clib'>&nbsp;&nbsp;&nbsp;</span> Written in C</li>
+ <li><span class='dep'>&nbsp;&nbsp;&nbsp;</span> External Dependency</li>
+ </ul>
+ </tr>
+ </table>
+</p>
+
+<p>
+What's new? <a
+href='http://cvs.pablotron.org/?m=profanity'>Profanity</a> has been
+added to the diagram, and <a
+href='http://cvs.pablotron.org/?m=squaggle'>Squaggle</a> has a new
+dependency, <a
+href='http://cvs.pablotron.org/?m=libsynapse'>Synapse</a>. Synapse
+is a C-level library that wraps <a href='http://curl.haxx.se/'>Curl</a>
+and <a href='http://cvs.pablotron.org/?m=libfeed'>libfeed</a>. This
+arrangement has a whole lot of advantages; here's a handful of them:
+</p>
+
+<ul>
+<li>Speed. C is faster than <a href='http://ruby-lang.org/'>Ruby</a>,
+and the <a
+href='http://cvs.pablotron.org/?m=libsynapse'>Synapse</a>
+<acronym title='Application Programmer Interface'>API</acronym> actually
+passes commands to a child process, so we also avoid the overhead of <a
+href='http://ruby-lang.org/'>Ruby's</a> green threads (and threads in
+general).</li>
+<li>Smaller memory footprint.</li>
+<li>All sorts of great new <a
+href='http://curl.haxx.se/'>Curl</a>-related
+<acronym title='HyperText Transfer Protocol'>HTTP</acronym> features:
+Digest authentication, GSS-Negotiate authentication (eg, Kerberos), NTLM
+authentication (Microsoft), SOCKS5 proxy support, tunnelled proxy
+support, SSL peer-verification control, cookie support (including <a
+href='http://mozilla.org/'>Mozilla</a> cookie jars), and more.</li>
+<li>A complete language-agnostic RSS/Atom parsing, fetching, and saving
+interface. Write your own interface in whatever language you want!</li>
+</ul>
+
+<p>
+I could keep going, but I just saw the time. I've got to take a look at
+<code>picard's</code> busted hard drive (yeah, another one), and check
+on <code>kylie's</code> fancy new off-site backups (thanks, <a
+href='http://bsin.org/blog/'>Alonzo</a>!). Be sure to check out <a
+href='http://hellojoseph.com/'>Sean's</a> article, <a
+href='http://hellojoseph.com/tags-howto.php'>"How I Implemented
+Tags"</a>.
+</p>
+
+