diff options
author | Paul Duncan <pabs@pablotron.org> | 2021-10-14 12:47:50 -0400 |
---|---|---|
committer | Paul Duncan <pabs@pablotron.org> | 2021-10-14 12:47:50 -0400 |
commit | 4b6c0e31385f5f27a151088c0a2b614495c4e589 (patch) | |
tree | 12243cdcd00704bc1a9d94ac9cc128459417370c /content/posts | |
download | pablotron.org-4b6c0e31385f5f27a151088c0a2b614495c4e589.tar.bz2 pablotron.org-4b6c0e31385f5f27a151088c0a2b614495c4e589.zip |
initial commit, including theme
Diffstat (limited to 'content/posts')
485 files changed, 14010 insertions, 0 deletions
diff --git a/content/posts/1998-11-30-pabloworld-news-update-19981201.html b/content/posts/1998-11-30-pabloworld-news-update-19981201.html new file mode 100644 index 0000000..8ef1dfc --- /dev/null +++ b/content/posts/1998-11-30-pabloworld-news-update-19981201.html @@ -0,0 +1,10 @@ +--- +date: "1998-11-30T17:00:00Z" +title: 'PabloWorld News Update #19981201' +slug: pabloworld-news-update-19981201 +--- + +Everything seems to be taking place. I planned on setting +up a web-based chat forum, but then I decided that i hate +those things, so I scrapped the idea. + diff --git a/content/posts/1998-12-13-pabloworld-news-update-19981214.html b/content/posts/1998-12-13-pabloworld-news-update-19981214.html new file mode 100644 index 0000000..8ec4b49 --- /dev/null +++ b/content/posts/1998-12-13-pabloworld-news-update-19981214.html @@ -0,0 +1,16 @@ +--- +date: "1998-12-13T17:00:00Z" +title: 'PabloWorld News Update #19981214' +slug: 'pabloworld-news-update-19981214' +--- + +Raster and Mandrake have finished the +<a href="http://www.enlightenment.org">Enlightenment</a> +config file changes, so I've started working on +<a href="/projects/themble/screenshots/index.phtml">Themble</a> +again. I got really tired of entering the code for the widgets +('cause it takes too long), so I grebbed +<a href="glade.pn.org">Glade</a>. The last time I used it, it was +still *really* in development, so hopefully it's matured a little +bit. + diff --git a/content/posts/1998-12-14-pabloworld-news-update-19981215.html b/content/posts/1998-12-14-pabloworld-news-update-19981215.html new file mode 100644 index 0000000..97497f4 --- /dev/null +++ b/content/posts/1998-12-14-pabloworld-news-update-19981215.html @@ -0,0 +1,23 @@ +--- +date: "1998-12-14T17:00:00Z" +title: 'PabloWorld News Update #19981215' +slug: 'pabloworld-news-update-19981215' +--- + +Start finished her web page finally! Check it out +<a href="http://members.tripod.com/~hyprdork/greeting.html">here</a> +(you might want to turn off JavaScript in order to avoid the +*really* annoying popups). +<br /><br /> + +I finally installed that second old school cdrom drive in my system, +but it doesn't seem to want to read my burned cds :(. I was planning +on burning another cd of mp3s and then mounting it, but oh well. +<br /><br /> + +Oh yeah, updates to the +<a href="/about/">About</a>, +<a href="/news/">News</a>, and +<a href="/bits/">Bits</a> sections, as well +<a href="http://www.efn.org/~p_duncan/index.phtml">my EFN page</a>. + diff --git a/content/posts/1998-12-20-pabloworld-news-update-19981221.html b/content/posts/1998-12-20-pabloworld-news-update-19981221.html new file mode 100644 index 0000000..7c35e24 --- /dev/null +++ b/content/posts/1998-12-20-pabloworld-news-update-19981221.html @@ -0,0 +1,17 @@ +--- +date: "1998-12-20T17:00:00Z" +title: 'PabloWorld News Update #19981221' +slug: 'pabloworld-news-update-19981221' +--- + +I've done some major work on +<a href="/projects/themble/index.phtml">Themble</a>, and the +page has been completely overhauled to reflect this. There has +been a couple more updates to the +<a href="/bits.phtml">bits</a> section, and I've started work on +the <a href="links/index.phtml">links</a> section. I wanted to +remind everyone about my +<a href="http://www.orst.edu/~duncanp/europe/index.html">Trip to +Europe</a> page too. Well, back to the grindstone, but comments +can go <a href="mailto:pabs@adsl90.eugn.uswest.net">here</a>. + diff --git a/content/posts/1998-12-22-pabloworld-news-update-19981223.html b/content/posts/1998-12-22-pabloworld-news-update-19981223.html new file mode 100644 index 0000000..33f79fd --- /dev/null +++ b/content/posts/1998-12-22-pabloworld-news-update-19981223.html @@ -0,0 +1,24 @@ +--- +date: "1998-12-22T17:00:00Z" +title: 'PabloWorld News Update #19981223' +slug: 'pabloworld-news-update-19981223' +--- + +I set up a cron job to automatically update the Change Log section +of the <a href="/projects/themble/index.phtml">Themble</a> page every +two hours. I also convinced/coerced Joe (VhunterD, author of the +<a href="http://cfg.will.enlighte.nu">CFG</a> theme making +HOWTO) into doing the online help for Themble. We should have +Themble in a useable state sometime in the next couple of monthes. +<br /><br /> + +Also, I just wanted to let everyone know that I finally broke +the 24 hour mark for MP3s. As of right now I have <I>27 hours, +12 minutes, and 58 seconds</I> of MP3s. That's <I>335 songs</I> +totalling just over <I>1.5 Gigs</I>. As always, comments, +questions, money, etc. go +<a href="mailto:pabs@adsl90.eugn.uswest.net">to me</a>.<br /><br /> +PS The newest +<a href="/bits.phtml#bits13">bits update</a> is my favorite +one to date. + diff --git a/content/posts/1998-12-30-pabloworld-news-update-19981231.html b/content/posts/1998-12-30-pabloworld-news-update-19981231.html new file mode 100644 index 0000000..8e9b1bc --- /dev/null +++ b/content/posts/1998-12-30-pabloworld-news-update-19981231.html @@ -0,0 +1,25 @@ +--- +date: "1998-12-30T17:00:00Z" +title: 'PabloWorld News Update #19981231' +slug: 'pabloWorld-news-update-19981231' +--- + +New Years Fun! I've been helping +<a href="mailto:hammonss@ucs.orst.edu">Sean</a> set up his new +<a href="http://www.apple.com/imac">iMac</a>. They're pretty nice +systems. Other than that, I finally installed +<a href="http://gtk.themes.org">GTK Themes</a>, and everything looks +*really* cool now. A couple of apps are being a pain in the ass, but +everything else looks pretty cool (especially +<a href="http://www.gimp.org">GIMP</a>). I also installed a couple of +docked apps for +<a href="http://www.enlightenment.org">E</a> (well, they're actually +WindowMaker apps, but who cares?). +<a href="/gallery/screenshots/screenshot-981231-0830.jpeg">Here's</a> +a quick screenshot (showing off the docked apps and a GTK-themed +<a href="http://www.gnome.org">GNOME</a> panel). +Pretty busy getting ready for the start of school and doing some +last minute job-hunting, but I'll still read your mail if you +send it +<a href="mailto:pabs@adsl90.eugn.uswest.net">here</a>. + diff --git a/content/posts/1999-01-05-pabloworld-news-update-19990106.html b/content/posts/1999-01-05-pabloworld-news-update-19990106.html new file mode 100644 index 0000000..dfe10b6 --- /dev/null +++ b/content/posts/1999-01-05-pabloworld-news-update-19990106.html @@ -0,0 +1,32 @@ +--- +date: "1999-01-05T17:00:00Z" +title: 'PabloWorld News Update #19990106' +slug: 'pabloWorld-news-update-19990106' +--- + +Classes have started, blah, blah, blah. I *really* want +one of +<a href="http://www.apple.com/powermac/splash/">these</a> (running +<a href="http://www.linuxppc.org">LinuxPPC</a>, of course). +I watched +<a href="http://www.zdnet.com/zdtv/newscobrand/features/story/0,3730,2178630,00$ +Steve Job's Keynote address</a>, and he mentioned +<a href="http://www.apache.org">Apache</a> *and* +<a href="http://www.opensource.org">Open Source software</a>. I wasn't +particularly impressed with MacOS X (or MacOS 10), just 'cause +<a href="http://www.linux.org">Linux</a> does everything (except for +WebObjects) just as good, if not better, than MacOS X. It is nice to see +a microkernel succeed though. That means two industry leaders, both +<a href="http://www.apple.com">Apple</a> and +<a href="http://www.ibm.com">IBM</a>, are now officially supporting +Open Source software as a part of their Internet strategies. The +<a href="http://www.microsoft.com/mac">Microsoft Macintosh software</a> +rep was pretty funny. He spent a lot of time introducing features in +the new IE45 for Mac that have been available in other browsers +for a while -- although there were a few cool features. +<br /><br /> +In case you hadn't noticed, this is the first time in several years that +I've actually been *really* excited about Apple technology. Anyways, +mail goes +<a href="mailto:pabs@adsl90.eugn.uswest.net">here</a>. + diff --git a/content/posts/1999-01-10-pabloworld-news-update-19990111.html b/content/posts/1999-01-10-pabloworld-news-update-19990111.html new file mode 100644 index 0000000..9fc39e3 --- /dev/null +++ b/content/posts/1999-01-10-pabloworld-news-update-19990111.html @@ -0,0 +1,21 @@ +--- +date: "1999-01-10T17:00:00Z" +title: 'PabloWorld News Update #19990111' +slug: 'pabloworld-news-update-19990111' +--- + +I got a new processor from +<a href="http://www.pacifier.com/~jlayton/">my uncle John</a>. +It's a P233MMX (oooh, wow MMX, how useful... just kidding), but, +unfortunately, my piece of crap motherboard doesn't have a 3.5x +multiplier and the VX chipset apparently does +<a href="gallery/nuke_shroom.jpeg">bad things</a> +if you up the bus speed beyond 66 MHz. The short story is that I'm +stuck at 200MHz, which is still eons better than the Cyrix 133 I +had previously. +<br /><br /> +OTT, I set up a quick page for my CS312 class. Check it out +<a href="/projects/sysadm/index.phtml">here</a>. And if you've got +enough time to check out my page, you've got enough time to +<a href="mailto:pabs@adsl90.eugn.uswest.net">mail me</a>. + diff --git a/content/posts/1999-01-13-pabloworld-news-update-199901114.html b/content/posts/1999-01-13-pabloworld-news-update-199901114.html new file mode 100644 index 0000000..6f48c0a --- /dev/null +++ b/content/posts/1999-01-13-pabloworld-news-update-199901114.html @@ -0,0 +1,13 @@ +--- +date: "1999-01-13T17:00:00Z" +title: 'PabloWorld News Update #19990114' +slug: 'pabloWorld-news-update-19990114' +--- + +It's too late (or too early... guess it depends how you look at +things) for a long update, so I'll be brief. I updated my +<a href="/projects/sysadm/index.phtml">CS312 page</a>, and I just +read one of the funniest articles I've ever seen on +<a href="http://www.theonion.com">The Onion</a>. Check it out +<a href="http://www.theonion.com/onion3501/first_amendment.html">here</a>. + diff --git a/content/posts/1999-01-17-pabloworld-news-update-19990118.html b/content/posts/1999-01-17-pabloworld-news-update-19990118.html new file mode 100644 index 0000000..8d874da --- /dev/null +++ b/content/posts/1999-01-17-pabloworld-news-update-19990118.html @@ -0,0 +1,19 @@ +--- +date: "1999-01-17T17:00:00Z" +title: 'PabloWorld News Update #19990118' +slug: 'pabloworld-news-update-19990118' +--- + +The first group project for my CS312 class was to install Linux +on a machine and set it up, so I put up a quick web page on my +group's machine. Check it out +<a href="http://aspen.cs.orst.edu/index.phtml">here</a>. I also +set up a +<a href="http://www.hotlinesw.com">Hotline</a> server on this +machine, but I don't really care all that much about it, so +I probably won't have it up for more than a few days.<br /><br /> + +Other than that, I have a couple job interviews this week, and +hopefully I'll be employed soon. Email goes +<a href="mailto:pabs@adsl90.eugn.uswest.net">here</a>. + diff --git a/content/posts/1999-01-19-pabloworld-news-update-19990120.html b/content/posts/1999-01-19-pabloworld-news-update-19990120.html new file mode 100644 index 0000000..6cdaf46 --- /dev/null +++ b/content/posts/1999-01-19-pabloworld-news-update-19990120.html @@ -0,0 +1,22 @@ +--- +date: "1999-01-19T17:00:00Z" +title: 'PabloWorld News Update #19990120' +slug: 'pabloworld-news-update-19990120' +--- + +I finally started working on +<a href="/projects/themble/index.phtml">Themble</a> again; +I got the help sub-system working and grabbed a bunch of +screenshots of all the editors. I'm going to have Joe +do a dox-based help program -- it should be pretty simple +to use Themble once we're done. I'm expecting v0.2 of +Themble to be the first public release. Barring any unforseen +difficulties, it should be able to create and save a theme. +Buttons, Global Key Bindings, Internal Actions, Borders, +Images, Text Classes, Menus, Backgrounds, and Control should all +be implemented by the time v0.2 rolls around. Okay, my +sales pitch is done... I also updated my +<a href="/projects/sysadm/index.phtml">CS312 page</a>.<br /><br /> +PS Expect a format change for the PabloTron 2000 sometime soon +(maybe this weekend if I'm not too busy). + diff --git a/content/posts/1999-02-25-new-page-is-online.html b/content/posts/1999-02-25-new-page-is-online.html new file mode 100644 index 0000000..513fca9 --- /dev/null +++ b/content/posts/1999-02-25-new-page-is-online.html @@ -0,0 +1,43 @@ +--- +date: "1999-02-25T17:17:37Z" +title: New Page is Online +--- + +Well, I accidentally deleted the old main page, so I just +decided to post the new page. I've still got some debugging +to do 'cause a few links don't work, but that should be +taken care of by next week. I'm going to concentrate on +fixing each of the sectionx this weekend too. +<br /><br /> +Anyways, let me know what you think of the new look. +Welcome to the New PabloTron (Update #19990225) +Thu Feb 25 08:23:51 PST 1999 +Well, I just finished the new frontend for the Pablotron 2000. +I've been pretty busy lately, but here's a quick rundown of +what's been going on. +<br /><br /> + +Thanks to <a href="http://www.dhs.org">DHS</a>, I know have a +domain name for this system at <a href="http://pablotron.dhs.org"> +http://pablotron.dhs.org</a> -- if you're having trouble remembering +all the cryptic ADSL mumbo jumbo, then now would be a good time to +update your bookmarks. +<br /><br /> + +I've been really busy with school lately, but I've still been working +on a few things. First of all, Sean and I have been working on something +called the <I>Corvallis Inquisitor</I> -- but you'll see more of that +in the future. I set up a third system in my room, but I had to take +the second system offline because I shorted out the network card. +You can check out the new system <a href="http://adsl87.eugn.uswest.net"> +here</a>, although it's not really doing anything just yet. Also, I've +been spending a lot of time making cheezy dance remixes of old-school +rap songs. Sean and I will have a music repository on our new page, so +you guys can check out the songs when that page goes public. +<br /><br /> + +Well, there's a whole bunch more going on too, but I don't really have +time to talk about it right now. I'll probably post this page +tonight after I finish testing the new backend for it. Either way, +let me know what you think. + diff --git a/content/posts/1999-02-25-the-random-dave-barry-is-online.html b/content/posts/1999-02-25-the-random-dave-barry-is-online.html new file mode 100644 index 0000000..78745fc --- /dev/null +++ b/content/posts/1999-02-25-the-random-dave-barry-is-online.html @@ -0,0 +1,10 @@ +--- +date: "1999-02-25T17:00:00Z" +title: The Random Dave Barry is Online +--- + +I guess the title pretty much says it all. Check it out +<a href="/projects/dave/">here</a>. Also, the <I>Music +Repository</I> -- which is far from complete -- is +available with some songs I made + diff --git a/content/posts/1999-02-27-a-whole-bunch-of-new-stuff.html b/content/posts/1999-02-27-a-whole-bunch-of-new-stuff.html new file mode 100644 index 0000000..9310b1e --- /dev/null +++ b/content/posts/1999-02-27-a-whole-bunch-of-new-stuff.html @@ -0,0 +1,14 @@ +--- +date: "1999-02-27T17:00:00Z" +title: A whole bunch of new stuff! +--- + +I finished moving over the <a href="/bits/index.phtml">Bits</a> +and <a href="/projects/index.phtml">Projects</a> sections last +night. I still need to finish the <I>About</I> and <I>Links</I> +sections. Other than that, the <a href="/projects/music/index.phtml"> +Music Repository</a> links all work correctly now, and I started +working on a dumb project (which may or may not work correctly +in your browser) called <a href="/projects/mypablo/index.phtml"> +My Pablo</a>. + diff --git a/content/posts/1999-03-03-ooh-look-at-the-pretty-pictures.html b/content/posts/1999-03-03-ooh-look-at-the-pretty-pictures.html new file mode 100644 index 0000000..1b58b81 --- /dev/null +++ b/content/posts/1999-03-03-ooh-look-at-the-pretty-pictures.html @@ -0,0 +1,14 @@ +--- +date: "1999-03-03T17:00:00Z" +title: Ooh, look at the pretty pictures! +--- + +I started work on a Screenshots page. Check it out +<a href="/gallery/screenshots/index.phtml">here</a>. I actually +took +<a href="/gallery/screenshots/images/screenshot-990303-at_work.jpeg"> +this screenshot</a> a few minutes ago, but +<a href="http://www.gimp.org">GIMP</a> is comveniently +broken since I just upgraded to +<a href="http://www.gnome.org">GNOME 1.0</a>. + diff --git a/content/posts/1999-03-21-look-at-all-the-new-goodies.html b/content/posts/1999-03-21-look-at-all-the-new-goodies.html new file mode 100644 index 0000000..054c6d8 --- /dev/null +++ b/content/posts/1999-03-21-look-at-all-the-new-goodies.html @@ -0,0 +1,54 @@ +--- +date: "1999-03-21T17:00:00Z" +title: Look at all the New Goodies! +--- + +Sorry it's taken me so long to update, but I've been really +busy with school and work. Anyways, here's a rundown: +<ul> +<li>Finished the +<a href="/about/index.phtml">About</a> section.<br /> +<li>Started on the +<a href="/links/index.phtml">Links</a> section.<br /> + +<li>Fixed the hostname problem. If you don't know what I'm talking about, +then don't worry about it.<br /> + +<li>Fixed some wierd HTML. This page should load correctly on almost all +browsers (including lynx :) ).<br /> + +<li>Added a custom 404 page. Try typing a bad URL and seeing what happens +(something like +<a href="http://pablotron.dhs.org/sadfjklfdlskj"> +http://pablotron.dhs.org/sadfjklfdlskj</a>).<br /> + +<li>Started work on the Botany and Plant Pathology (BPP) Support page. +It's not ready for the public yet, but it should be pretty neat once it's +finished.<br /> + +<li>Started work on the Enlightenment Documentation Project (EDP) page. +It's not ready for the public either.<br /> + +<li>Started working on a C++ dynamic undirected graph implementation. If +you don't know what this is, then shame on you for not being a programmer. +The basic shell is finished, but I haven't implemented traversals, +path-finding, or searching.<br /> + +<li>Made a few more songs. I don't have them up on the +<a href="/projects/music/index.phtml">Music Repository</a> yet, but I'll +put them up when I get the time.<br /> + +<li>I can't believe you're still reading this list.<br /> + +</ul> + +The bad news is my other computers (adsl87 and adsl204?) both died : +the network card on one of them shorted out and started smoking, and +the hard drive on the second one went south. I'm going to play +mix and match with the parts and see if I can't get one of them back +up later this week.<br /><br /> + +Anyways, +<a href="mailto:duncanpa@engr.orst.edu">let me know</a> what you think +of the new look. + diff --git a/content/posts/1999-03-25-and-some-more-news.html b/content/posts/1999-03-25-and-some-more-news.html new file mode 100644 index 0000000..7ad8555 --- /dev/null +++ b/content/posts/1999-03-25-and-some-more-news.html @@ -0,0 +1,23 @@ +--- +date: "1999-03-25T17:00:00Z" +title: And some more news... +--- + +I just fixed a couple of quirks on the page... It actually +looks great in lynx now. No new computer yet -- the HD is completely +hosed on the computer formerly known as adsl87. Stay tuned, 'cause +I still have a few ideas. +<br /><br /> + +Other than that, +<a href="mailto:hammonss@ucs.orst.edu">Sean</a> +posted a couple of his songs on +<a href="http://www.mp3.com">MP3.com</a> -- you can check them out +over at the +<a href="http://www.mp3.com/ron">MP3.com Official Drum Masta Ron page</a>. +And.... <a href="mailto:timfinch@gladstone.uoregon.edu">Tim</a> said +he has a big suprise -- I assume this means he got a real computer, but +it's anybody's guess. You should email him and tell him to replace +<a href="http://gladstone.uoregon.edu/~timfinch">this sorry excuse for +a web page</a> with a real one (like mine). + diff --git a/content/posts/1999-04-05-more-and-more-updates.html b/content/posts/1999-04-05-more-and-more-updates.html new file mode 100644 index 0000000..1c138a0 --- /dev/null +++ b/content/posts/1999-04-05-more-and-more-updates.html @@ -0,0 +1,42 @@ +--- +date: "1999-04-05T18:00:00Z" +title: More and more updates! +--- + +I've decided to take the <a href="/projects/music/"> +Music Repository</a> offline. Click the link to find out why. +I've been working on the web page for work -- check out the +preliminary design <a href="/projects/bpp/">here</a>. +<br /><br /> + +My <a href="/projects/cs406">CS406 page</a> has will be changing +drastically in the next week or so -- we've decided to do a +tests on a distributed web server with an SQL backend instead +of a Beowulf cluster. I'm a little disappointed, but this will +still be fun (and I'll learn a lot about SQL and running web +servers to their limits). +<br /><br /> + +I started a complete re-write of +<a href="/projects/themble/">Themble</a> early last week. The +old version had some interface quirks, and the code was getting +a bit unwieldy. I've ported and cleaned up the internal +representation of E data structures from the 0.1.x source, and +written the parsing (and saving hooks) for my own proprietary +format. After that I plan on implementing exporting, and +_then_ the GTK+ interface. This should keep my code more managable, +and allow Themble to be used as a non-GUI editor also. I've chosen +to leave the web page as-is for the time being, because I've noticed +everybody likes screenshots (and I can't exactly produce them with +0.2.0 just yet). +<br /><br /> + +Finally, Tim did get a new computer after all. I hope people +have been +<a href="mailto:timfinch@gladstone.uoregon.edu">emailing him</a> +so he will change his <a href="http://gladstone.uoregon.edu/~timfinch"> +ugly-assed web page</a>. Anyways, school is starting to pick up, and I've +been working a lot more hours at work recently, so the page may not get +updated as much anymore. Feel free to send me some +<a href="mailto:duncanpa@engr.orst.edu">email</a>, though. + diff --git a/content/posts/1999-04-07-helping-with-the-search-for-extra-terrestrials.html b/content/posts/1999-04-07-helping-with-the-search-for-extra-terrestrials.html new file mode 100644 index 0000000..7d8e307 --- /dev/null +++ b/content/posts/1999-04-07-helping-with-the-search-for-extra-terrestrials.html @@ -0,0 +1,27 @@ +--- +date: "1999-04-07T18:00:00Z" +title: Helping With the Search for Extra Terrestrials +--- + +Well, my RC5DES client (for +<a href="http://www.distributed.net">distributed.net</a>) is +finally back up and running, although I still can't join +Darren's team. For all you security freaks out there, I +installed and configured <a href="http://www.pgp.com">PGP</a> -- +you can grab my public key right +<a href="/~pabs/public_key.txt">here</a>. +<br /><br /> + +The really funny thing is that I'm now contributing to the +search for extra terrestrials -- ala the distributed approach +taken by the likes of +<a href="http://www.distributed.net">distributed.net</a> and +all those +<a href="http://www.beowulf.org">Beowulf clusters</a> out there. +Courtesy of +<a href="http://www.setiathome.ssl.berkeley.edu/">Seti@Home</a>, I +can now contribute my extra CPU cycles to the cause -- searching +the skies for the unknown. Okay, it's cheezy and stupid, but you +gotta admit it's kind of cool. Anyways, it's almost 4am, and I'm +going to bed. + diff --git a/content/posts/1999-04-12-a-blatant-plug.html b/content/posts/1999-04-12-a-blatant-plug.html new file mode 100644 index 0000000..2648d94 --- /dev/null +++ b/content/posts/1999-04-12-a-blatant-plug.html @@ -0,0 +1,37 @@ +--- +date: "1999-04-12T18:00:00Z" +title: A Blatant Plug +--- + +The first couple articles for the <I>Corvallis Inquisitor</I> are +available in all their uncut glory. One of the articles deals with +<a href="/inquisitor/ate.html">the dreaded +Year 2000</a>, while the other is +<a href="/inquisitor/ate/01-joining_the_computer_world.txt">a guide +for joining the computing world</a> (the latter being available in +all it's unformated plaintext glory). You can also check out the +rough interface that <a href="mailto:hammonss@ucs.orst.edu">Sean</a> +(aka A. McGee) has whipped up. I still need to scrape together +the parts for the permanent Corvallis Inquisitor server, so it'll be +residing here until then. +<br /><br /> +<a href="mailto:thatchersh@engr.orst.edu">Shane</a> and I have decided +to do our independent study on a +<a href="http://www.beowulf.org">Beowulf cluster</a> after all. Any +new information about this will be available <a href="/projects/cs406"> +here</a> sometime real soon. +<br /><br /> +I'm thinking about building a much smaller CHAOS (<B>C</B>heap +<B>A</B>rray of <B>O</B>bsolete <B>S</B>ystems) cluster right here +at home. I've contacted the 8J administrator we did the security audit +for last term in order to see about getting some older computers. More +on this later. +<br /><br /> +Finally, the blatant plug you've all been waiting for. Don't forget +about all the other crazy garbage I've left lying around on Internet. +Some of the more memorable pages that haven't been banned or +accidentally deleted are <a href="http://www.efn.org/~p_duncan/index.phtml"> +my old EFN page</a> and some pictures from my recent +<a href="http://www.orst.edu/~duncanp/europe/index.html">vacation in +Europe</a>. + diff --git a/content/posts/1999-05-10-the-big-upgrade.html b/content/posts/1999-05-10-the-big-upgrade.html new file mode 100644 index 0000000..0c79c8f --- /dev/null +++ b/content/posts/1999-05-10-the-big-upgrade.html @@ -0,0 +1,16 @@ +--- +date: "1999-05-10T18:00:00Z" +title: The Big Upgrade! +--- + +I finally took the plunge, and upgraded to +<a href="http://www.redhat.com">Red Hat 6.0</a>. So there may be +some screwed up stuff for a couple of weeks while I get it all +worked out. A funny thing happened to me last week -- click +<a href="/about/funny_story.phtml">here</a> to learn more. +<br /><br /> +Other than that, not much is new here. Getting ready for the big +move next week -- this server may be down for a week or so while +USWest transfers DSL to the new place, but I don't know for sure +yet. + diff --git a/content/posts/1999-08-27-it-s-all-about-security.html b/content/posts/1999-08-27-it-s-all-about-security.html new file mode 100644 index 0000000..638671d --- /dev/null +++ b/content/posts/1999-08-27-it-s-all-about-security.html @@ -0,0 +1,18 @@ +--- +date: "1999-08-27T03:53:00Z" +title: It's all about security... +--- + +Well, I've been going off on one of my security and privacy tangents +again. I decided to set up my PGP stuff again -- you can grab my +public key <a href="/pabskey.asc">here</a> (or you can finger +pabs@pablotron.dhs.org for the same text). If all of this is gibberish +to you, you might want to read up on online security and privacy: +<a href="http://www.eff.org">EFF.org</a>, +<a href="http://www.pgpi.org">PGPi.org</a>, +and <a href="http://www.cryptography.org">Cryptography.org</a> are all +good places to start. +<br /><br /> +Oh yeah, I just posted a new version of Themble at the +<a href="http://www.themble.dhs.org">usual place</a>. + diff --git a/content/posts/1999-09-22-my-28-8-can-t-take-the-speed.html b/content/posts/1999-09-22-my-28-8-can-t-take-the-speed.html new file mode 100644 index 0000000..0095e25 --- /dev/null +++ b/content/posts/1999-09-22-my-28-8-can-t-take-the-speed.html @@ -0,0 +1,31 @@ +--- +date: "1999-09-22T11:10:00Z" +title: My 28.8 Can't Take the Speed!! +--- + +I added HEIGHT and WIDTH tags for all the images on this main page, so +it'll load about 10 times faster in Netscape now. I finally redesigned the +<a href="http://themble.dhs.org">Themble</a> page. Everyone check it +out and tell me what you think +(<a href="http://www.enlightenment.org">Enlightenment</a> users should +download Themble and test it out...feedback is appreciated). The new +<a href="http://www.nin.com">Nine Inch Nails</a> album came out yesterday +-- it's really good.<br /><br /> + +Other than that, I've been talking a bit with +<a href="http://www.rasterman.com">Raster</a> about doing an animation +wrapper for the next version of +<a href="http://www.rasterman.com/imlib/">Imlib</a>. I'm hoping that I +can just hijack the Imlib dynamic loader and write a few wrapper +structures and functions and give everyone the flaming window borders +in Enlightenment. Also, Imlib apps could display animated formats +(eg MPEG, AVI, QT, etc) with minor code changes. I need to rewrite the +Themble parser and spend some time churning through Imlib2's code, but +as far as I can tell it shouldn't be _that_ much of a nightmare (oh, how +wrong I could be... :) ). +<br /><br /> + +Finally, sorry about all the broken links. School just started again, +but I'll fix 'em as soon as I can. Mail goes to +<a href="mailto:duncanpa@engr.orst.edu">the usual place</a>. + diff --git a/content/posts/1999-10-11-i-like-development-software.html b/content/posts/1999-10-11-i-like-development-software.html new file mode 100644 index 0000000..022ba23 --- /dev/null +++ b/content/posts/1999-10-11-i-like-development-software.html @@ -0,0 +1,24 @@ +--- +date: "1999-10-11T12:11:00Z" +title: I Like Development Software +--- + +Lots of cool new stuff... The newest +<a href="http://www.mozilla.org">Mozilla</a> build (M10) just came out +a few days ago, so I downloaded the precompiled binary (the CVS checkout +is over 100 megs :/), and it's pretty damned smooth. Also, +<a href="http://www.enlightenment.org">Enlightenment DR0.16</a> just came +out yesterday (not that it makes any difference, since I use the CVS +version). Anyways, all you people who have wanted to check it out +definately should -- there's some really cool new features. +<br /><br /> + +I posted my rasterizer and signature generator scripts in the +<a href="/projects/">Projects</a> +section, and I'll fix the broken URLs for the other scripts RSN. There +are a ton of new goodies in the <a href="/links/">Links</a> section, +including a link to Sean's page (finally), and a bunch of cryptography +links. I'm studying some books for a new project I started working on, +but it probably won't be ready for prime time for several monthes. Mail +goes <a href="mailto:duncanpa@engr.orst.edu">here</a>. + diff --git a/content/posts/1999-12-26-yule-tide-fun.html b/content/posts/1999-12-26-yule-tide-fun.html new file mode 100644 index 0000000..d62f304 --- /dev/null +++ b/content/posts/1999-12-26-yule-tide-fun.html @@ -0,0 +1,29 @@ +--- +date: "1999-12-26T08:31:00Z" +title: Yule Tide Fun +--- + +Well, I got some great books for christmas, including +<a href="http://www.counterpane.com/applied.html">Applied Cryptography</a>, +<a href="http://developer.gnome.org/doc/GGAD/">GGAD</a>, +the most amazing graphics programming book I've ever seen, and the +Hobbit and the Lord of the Rings Trilogy box set.<br /><br /> + +For a bit of a laugh at the expense of +<a href="http://www.microsoft.com" onMouseOver="window.status='Who could it possibly be? Click to find out!'; return true;">a certain unspecified monopolist software corporation</a>, +check out <a href="http://slashdot.org/article.pl?sid=99/12/25/114201&mode=nocomment">this story</a>.<br /><br /> + +Astute readers will note that I added both my +<a href="/pabskey.asc">public key</a> and +<a href="/about/resume/">resume</a> +to the features on the left. Updates haven't been as frequent lately +due to unfortunate outside circumstances, but I should be rolling +again pretty soon. I also added some extra goodies to the +<a href="/projects/">Projects</a> section, including an updated +XOR Crack (now on version 0.2) and more.<br /><br /> + +Finally, I started using Cascading Style Sheets throughout the +site. I really like the sans-serif 10pt look, but feel free to +<a href="mailto:duncanpa@engr.orst.edu">let me know</a> if you have +any better ideas. + diff --git a/content/posts/2000-02-17-lots-of-cool-new-stuff.html b/content/posts/2000-02-17-lots-of-cool-new-stuff.html new file mode 100644 index 0000000..97382e2 --- /dev/null +++ b/content/posts/2000-02-17-lots-of-cool-new-stuff.html @@ -0,0 +1,27 @@ +--- +date: "2000-02-17T14:00:00Z" +title: Lots of Cool new stuff +--- + +I've submitted a couple of patches for EFM, the new file manager +for <a href="http://www.enlightenment.org">Enlightenment</a>. The +first one added a dynamic keybindings api, and the second one +fixed a multiple-login race issue with meta data, and added a +meta-informaion exclusion directory API (mainly to make the people +on the mailing list stfu)...<br /><br /> + +OTT, I managed to lose my hard drive at home, along with a big +chunk of work I had done on THemble. I haven't set everything +back up yet, so I'm essentially computer-less for the moment. +I put together a fairly lengthy Enlightenment Theming HOWTO, but +I'm still tying up some loose ends, so I don't know when I'll +post it for the world. I also started on a WindowBlinds -> +Enlightenment & GTK+ Theme converter -- also nowhere near +functional.<br /><br /> + +I discovered an excellent GPLed Mac emulator called +<a href="http://www.Uni-Mainz.DE/~bauec002/B2Main.html"> +Basilisk II</a> -- it's much nicer (and maybe faster?) than +Executor, has a bunch of cool features, and (best of all), it's +completely free. + diff --git a/content/posts/2000-03-15-more-fun-than-fun-itself.html b/content/posts/2000-03-15-more-fun-than-fun-itself.html new file mode 100644 index 0000000..901eed3 --- /dev/null +++ b/content/posts/2000-03-15-more-fun-than-fun-itself.html @@ -0,0 +1,36 @@ +--- +date: "2000-03-15T08:00:00Z" +title: More Fun Than Fun Itself... +--- + +I'm in a rush, but here's the news:<br /><br /> + +<ul> +<li>Getting a cable modem -- it should be here any day now. This translates +into a lot more updates by me. +<li>Went to a mu-Ziq/Luke Vibrant concert last month in Portland. It was +awesome. +<li>Bought a 10 gig drive from <a href="mailto:wardje@ucs.orst.edu">Jeff</a>. +Combined with my pending fast internet connection, and +<a href="http://sourceforge.net/project/?group_id=518">one</a> of the many +Linux <a href="http://www.napster.com">Napster</a> clients, I can already +feel my MP3 collection growing. +<li>Set up a web server for <a href="mailto:hammonss@ucs.orst.edu">Sean</a>. +Soon he will be a 31337 H4X0R like me (j/k). +<li>Added a few things to the <a href="/projects/">Projects</a> section. +<li>I've discovered <a href="http://www.abisource.com/">AbiWord</a>. I've +used <a href="http://www.stardivision.com">StarOffice</a> and +<a href="http://www.wordperfect.com">WordPerfect</a>, and AbiWord is +by far the best Linux word processor. +<li>Page redesign now pending. Just gotta get a little bit of free time. +<li>I managed to fill my home parititon on the web server, so my news +posting scripts merrily erased all of my old news postings. I restored +from the last backup, but a few of them are missing. Oh well... No biggie. +</ul> +Oh yeah, I'm available via <a href="http://www.icq.com">ICQ</a> now. +My UID is 58304995, and my moniker is pabs. Harassment is welcome. I've +also been spending a lot more time in #e (EFNet IRC nick is also as pabs) +again lately. The crowd there is great -- I can always find someone who's +interesting to talk to, or that I can really piss off. Either way, I +still have fun. + diff --git a/content/posts/2000-05-15-witchhunts-lawyers-and-the-riaa-oh-my.html b/content/posts/2000-05-15-witchhunts-lawyers-and-the-riaa-oh-my.html new file mode 100644 index 0000000..e8e107d --- /dev/null +++ b/content/posts/2000-05-15-witchhunts-lawyers-and-the-riaa-oh-my.html @@ -0,0 +1,80 @@ +--- +date: "2000-05-15T13:09:00Z" +title: Witchhunts, Lawyers, and the RIAA... Oh My! +--- + +Well, I've been working on a bunch of small stuff. I wrote a quick +bookmark wrapper for feh called cam, you can probably find more info +over on <a href="http://www.linuxbrit.co.uk/">Tom Gilbert's</a> (aka +gilbertt on #e) page. Oh yeah, I've also been reading +<a href="http://www.kuro5hin.org">Kuro5hin</a> a lot lately; they're +kinda like Slashdot, only smaller and easier to digest (ie less stupid +people). Oh yeah, I wrote a neat little auto-refresh JavaScript so +raster's web cams would updated without a page refresh. Check it out +on <a href="http://www.rasterman.com">raster's page</a>. +<br /><br /> + +I found an +<a href="http://www.kuro5hin.org/?op=displaystory&sid=2000/5/13/222627/304"> +interesting article</a> that seems to ahve been lost in the all the +RIAA vs. Napster noise. Hey, if you're one of the +<a href="http://www.wired.com/news/business/0,1367,36290,00.html">300,000 +people who were banned from Napster</a>, don't let it get you down. You +can always <a href="http://www.paylars.com">pay Lars</a>, +<a href="http://www.newgrounds.com/assassin/metallica/index.html"> +assasinate Metallica</a>, or just +<a href="http://www.wired.com/news/business/0,1367,36290,00.html">keep +using Napster anyway</a>. I prefer the latter; the +<a href="http://www.riaa.org">RIAA</a> really overprices CDs +(<a href="http://slashdot.org/comments.pl?sid=00/05/10/1246256&cid=304">here +</a> is an excellent Slashdot post justifying my position). Either way, +this whole thing is silly; the RIAA and their lawyers will eventually +put Napster down. Unfortunately, they're fighting a losing battle: +<a href="http://www.bigredh.com/">Hotline</a> (and the unofficial +<a href="http://apps.freshmeat.net/homepage/947382039/">Linux client</a>), +FTP, and <a href="http://www.icq.com">ICQ</a> are here to stay, and +peer-to-peer search solutions are on the way (check out +<a href="http://gnutella.wego.com/go/wego.group.group?groupId=116705">Gnutella</a>, +<a href="http://freenet.sourceforge.net/">Freenet</a>, and +<a href="http://opennap.sourceforge.net/">OpenNAP</a> +if you're interested). And before I get a bunch of junk mail, this is +__not__ about <b>piracy</b>: +<a href="http://www.dictionary.com/cgi-bin/dict.pl?term=piracy">piracy +is theft, rape, and murder on the high seas</a>, +not exchanging computer data (I'll reserve the discussion about +the effect of mass marketing memes effecting the connotation and +eventually the denotation -- as witnessed by the second definition under +the first result returned by that link -- for another day). I plan +on writing a paper about +this soon (I need to do somehting to the <a href="/bits/">Bits</a> page +or remove it from my navigation bar), but the gist of the situation is +this: people have been exchanging music via cassette tapes for almost +20 years with little or no intervention from the RIAA (ie they have +_not_ sued the makers of high-speed CD-to-cassette dubbing equipment), +yet they prop up <a href="http://www.encycmet.com/">a cookie-cutter +band with a lot of mind-share due to a musical fad from over 15 years +ago</a> and use them to attack +<a href="http://www.napster.com">a method of sharing music</a> which +is statistically insignificant when compared against to the method +which the RIAA is implicitly condoning. Why? Because greed is a +powerful motivator, the public doesn't really understand what's going +on, and big corporations don't like technological innovations fucking +with their distribution channels. Whew, this news post is getting a +bit hefty, so I'll stop there. +<br /><br /> + +<a href="http://slashdot.org/article.pl?sid=00/05/06/1512219&mode=nested"> +This Slashdot article</a> is a pretty funny discussion about Computer +Support people: I like +<a href="http://slashdot.org/comments.pl?sid=00/05/06/1512219&cid=14"> +this comment</a>, but +<a href="http://slashdot.org/comments.pl?sid=00/05/06/1512219&cid=44"> +this one</a> takes the cake. In case anyone is interested, I +added a <a href="/screenshots/">Screenshots</a> page, and I plan on +adding a new shot every week or so. Speaking of keeping things up to +date, the <a href="/projects/">Projects</a> page is due up for an +overhaul. I have a ton of new goodies to add, and none of my active +projects are currently up. Basically, I've been spending all my time +<a href="http://mindprod.com/unmain.html">writing code</a>, and +playing <a href="http://www.quake3arena.com">Quake 3 Arena</a>. + diff --git a/content/posts/2000-06-01-two-updates-one-month.html b/content/posts/2000-06-01-two-updates-one-month.html new file mode 100644 index 0000000..496a6d7 --- /dev/null +++ b/content/posts/2000-06-01-two-updates-one-month.html @@ -0,0 +1,45 @@ +--- +date: "2000-06-01T13:00:00Z" +title: Two Updates, One Month! +--- + +It's unbelievable, but true. I guess I'm trying to be cool like +<a href="http://www.linuxbrit.co.uk/">Tom Gilbert</a> and update my +page more than <a href="http://www.gladstone.uoregon.edu/~timfinch/"> +Tim Finch</a> (sorry Tim -- you knew it was coming :P). I finally +updated the <a href="projects/">Projects</a> page; check it out for +some more recent projects I've been involved in, and some more +Linux- and UNIX-related scripts and programs. +<br /><br /> + +I decided to set up +a temporary <a href="http://www.quake3arena.com">Quake 3 Arena Demo</a> +server on my home computer. Id software does a checksum comparison +on the PK3 file before loading the demo server, so I couldn't modify +any of the bots or levels, but I did hack together some interesting +demo server modifications with some shell-trickery and a quick Perl +script. Essentially, Quad Damage does _no_ damage (because quad is +for losers), getting armor temporarily doubles gravity or changes the +knock-back on certain weapons, and getting mega-health halves +gravity (which wreaks havoc when you're playing Q3DM17). Again, I +don't know how often it'll be active, but here's the info in case +you're interested:<br /><br /> + +<center> +<table border="0"> +<tr><td>Server:</td><td> Pablo's Wacky Fun House</td></tr> +<tr><td>Host:</td><td>pabs.dhs.org</td></tr> +<tr><td>Info:</td><td>Q3D-DM: Q3DM7, Q3DM17</td></tr> +</table></center> +<br /><br /> + +Let me know if you've got any suggestions or are interested in my +dedicated server scripts (eventually I'll post 'em to the Projects +section, but first I need to clean up and comment the code). +<br /><br /> + +I think I'm headed to the +<a href="http://www.linuxworldexpo.com">Linux World Expo</a> in +San Jose this August. I don't have a place to stay yet, but travel +and financing seems to be covered. My first LWE -- exciting! + diff --git a/content/posts/2000-06-06-pablotron-org.html b/content/posts/2000-06-06-pablotron-org.html new file mode 100644 index 0000000..999f026 --- /dev/null +++ b/content/posts/2000-06-06-pablotron-org.html @@ -0,0 +1,15 @@ +--- +date: "2000-06-06T22:00:00Z" +title: Pablotron.org ?? +--- + +I registered <a href="http://www.pablotron.com/">pablotron.com</a> and +<a href="http://www.pablotron.org/">pablotron.org</a> -- coming soon +to your web browser! Oh yeah, check out +<a href="http://www.dhconsulting.net/">DH Consulting</a> for some +awesome prices on domain names.<br /><br /> + +Oh yeah, and I created an account on <a href="http://www.advogato.org"> +Advogato</a>. You can view my personal page +<a href="http://www.advogato.org/person/pabs/">here</a>. + diff --git a/content/posts/2000-06-06-quick-update.html b/content/posts/2000-06-06-quick-update.html new file mode 100644 index 0000000..1f6c45c --- /dev/null +++ b/content/posts/2000-06-06-quick-update.html @@ -0,0 +1,20 @@ +--- +date: "2000-06-06T21:30:00Z" +title: Quick Update +--- + +I finally updated the <a href="/links/">Links page</a>. Right now +I'm testing out a new news submission script that I wrote, otherwise +I probably wouldn't be posting.<br /><br /> + +The Quake 3 Server on my home machine is temporarily down. I had to +do some work on it, and I just haven't bothered to put it back up yet. +Let me know if you're interested in trying it out.<br /><br /> + +In case anyone doesn't know yet, I've offically stopped working on +<a href="http://themble.dhs.org/">Themble</a>; Enlightenment 0.17 +will have a built-in theme editor, so there's no need for me to do +Themble any more. If anyone is interested, I might still polish it +up and release it as an E16 theme editor, but that's only until E17 +gets near completion. + diff --git a/content/posts/2000-06-09-pablotron-updates-and-more.html b/content/posts/2000-06-09-pablotron-updates-and-more.html new file mode 100644 index 0000000..e2f834d --- /dev/null +++ b/content/posts/2000-06-09-pablotron-updates-and-more.html @@ -0,0 +1,21 @@ +--- +date: "2000-06-09T14:40:00Z" +title: Pablotron Updates and More! +--- + +Well the <a href="http://www.pablotron.org/">pablotron.org</a> +domain is resolving now, but the +<a href\"http://www.pablotron.com/">pablotron.com</a> domain is +still giving me grief. Thanks to term- and epoch in #e for helping +me get fix all the problems -- i should jsut have to wait for the +changes to propagate now. :)<br /><br /> + +I made a few changes to the <a href="/about">About page</a>. I've +never felt too comforatble writing those things, so I just kinda +updated what I had and left it.<br /><br /> + +Oh yeah, the quake server is temporarily down. I'll put it back up +in a couple of days at a new address: <B>quake.pablotron.org</B>. +That's all for today. School is out for summer, and I'm gonna go +hang out with my graduate friends before they leave town. + diff --git a/content/posts/2000-06-11-links-are-fun.html b/content/posts/2000-06-11-links-are-fun.html new file mode 100644 index 0000000..278fd93 --- /dev/null +++ b/content/posts/2000-06-11-links-are-fun.html @@ -0,0 +1,19 @@ +--- +date: "2000-06-11T14:27:00Z" +title: Links are Fun +--- + +Well, <a href="http://www.darkrock.co.uk">Boris^</a> put up some +funny webcam pics that <a href="http://www.linuxbrit.co.uk">Tom +Gilbert</a> took. The gallery is dedicated to me. Check it out +<a href="http://www.darkrock.co.uk/gallery/Webcam/">here</a>. +<br /><br /> + +I updated the <a href="/links/">Links page</a>. Mainly I just added +a lot of the pages that I have bookmarked, and some that I regularly +visit, but didn't have on the links page. OTT, not much going on. +The <a href="http://www.pablotron.com/">pablotron.com</a> domain works +around here now, although I've heard that people are still having +problems on the other side of the Atlantic :/. Okay, well that's all +for right now. + diff --git a/content/posts/2000-06-19-advogato-rhymes-with-avacado.html b/content/posts/2000-06-19-advogato-rhymes-with-avacado.html new file mode 100644 index 0000000..c7aad4a --- /dev/null +++ b/content/posts/2000-06-19-advogato-rhymes-with-avacado.html @@ -0,0 +1,20 @@ +--- +date: "2000-06-19T14:30:00Z" +title: Advogato Rhymes with Avacado +--- + +I just posted <a href="http://www.advogato.org/person/pabs/#1">a huge rant</a> +on <a href="http://www.advogato.org/person/pabs">my advogato page</a> +regarding the major PITA it's been dealing with Apple on this whole +netwokring problem. I also briefly go over the new features I added +to <a href="http://www.linuxbrit.co.uk/feh.html">feh</a> this weekend +(giblet, richlowe, and I all worked on it for over 12 hours straight -- +there's a bunch of new goodies now), a quick update on the progress of +<a href="/projects/">EWL</a>. OTT, I got into a big conversation about +the MS antitrust trial last night while playing +<a href="http://www.quake3arena.com">Q3A</a>, and out of it I ended up +offering to write some CGIs for a clan server. NOt quite sure how that +one worked out, but I'll post the url here if it's okay with the guy +I'm writing 'em for (don't want to generate +any unwanted traffic for him). + diff --git a/content/posts/2000-06-26-10k-is-down.html b/content/posts/2000-06-26-10k-is-down.html new file mode 100644 index 0000000..952c368 --- /dev/null +++ b/content/posts/2000-06-26-10k-is-down.html @@ -0,0 +1,14 @@ +--- +date: "2000-06-26T12:58:00Z" +title: 10k is Down +--- + +I forgot to mention that the 10k server is down for the week. +Sean and Joe moved to a new apartment, and they haven't gotten +cable or DSL hooked up yet. Even when it is ready, it'll still +take at least a day for the DNS changes to propagate.<br /><br /> + +Oh yeah, and the Crumbly Goodness server (at +<b>quake.pablotron.org</b>) is back up again (thanks Alfred!). Log +in and let us know what you think. + diff --git a/content/posts/2000-06-26-feh-fun.html b/content/posts/2000-06-26-feh-fun.html new file mode 100644 index 0000000..b28e0e0 --- /dev/null +++ b/content/posts/2000-06-26-feh-fun.html @@ -0,0 +1,36 @@ +--- +date: "2000-06-26T12:03:00Z" +title: Feh Fun +--- + +<a href="http://www.linuxbrit.co.uk/">Tom</a> finally released an +updated version of <a href="http://www.linuxbrit.co.uk/feh.html">feh</a>. +The new version includes my arbitrary rotation routines, button +customization routines, a couple custom menu backgrounds, and my +feh webcam wrapper (called cam). It requires imlib2 from +<a href="http://www.enlightenment.org/cvs.html">E cvs</a>.<br /><br /> + +I seem to have horribly broken <a href="/projects/">EWL</a> +sometime in the last couple of days. The +<a href="/projects/ewl/ewl-latest.tar.gz">latest snapshot</a> +still compiles fine, and I can't find anything in the diff that would +be causing the SEGV I'm getting. So this is either memory corruption +from a silly mistake by me, or something silly I did in the last +couple of days. Needless to say, I won't be updating the snapshot +until I squash this one out.<br /><br /> + +I finally got around to installing +<a href="http://www.xfree86.org/">XFree86 4.0</a> on my machine at +work, along with +<a href="http://www.nvidia.com/Products/OpenDrvDwn.nsf/xfree86_40Downloadmain?OpenPage">the accelerated Nvidia TNT2 driver</a>. Wow! It's actually +pretty damn fast. Whatever <a href="http://www.linuxquake.com/messageboard/messages/4886.html">negative things people hve to say</a> about the +closed-source NVidia drivers is a crock of shit. I'm pretty happy +with the results.<br /><br /> + +Oh yeah, and I played around a bit with +the <a href="http://www.infobot.org">InfoBot IRC bot</a> -- it's +pretty smooth. They still need to some work on the user +authentication (at present it's non-existant, unless you edit the +code by hand), and a it needs a few other goodies (like maybe a +fallback server, and more tolerant key matching). + diff --git a/content/posts/2000-07-06-craziness-everywhere.html b/content/posts/2000-07-06-craziness-everywhere.html new file mode 100644 index 0000000..dc0f599 --- /dev/null +++ b/content/posts/2000-07-06-craziness-everywhere.html @@ -0,0 +1,56 @@ +--- +date: "2000-07-06T13:23:00Z" +title: Craziness Everywhere +--- + +<a href="/projects/">EWL</a> is coming along nicely. I finished porting +the Imlib2 wrapper from +<a href="http://www.linuxbrit.co.uk/feh.html">feh</a>, and I cleaned it +up and added a few new calls along the way. Basically, it eliminates +the silly context-based API and converts Imlib2 loading errors to +strings. :) Oh yeah, the EwlImage and EwlImLayer rendering and layout +APIs are complete, along with ewl_widget_render_*(), which means that I +just need to port EwlWindow to the new EwlContainer setup, and things +will start to fall into place. Now would be a good time to check out +the <a href="/projects/ewl/ewl-latest.tar.gz">latest tarball</a> and +give me API suggestions before it's set in 1.0 stone. +<br /><br /> + +I have a new layout for the page functioning -- a lot of you have +already seen it, thanks to the post by +<a href="http://www.darkrock.co.uk/">Boris'</a> to the e-develop +mailing list. A convenient 600% increase in my web traffic for 48 +hours (wow, I didn't know I was so popular :P). It will be up +soon enough -- I just have to find a little bit of free time to finish +the graphics. +<br /><br /> + +Work has been crazy. We're losing our admins (Netware and UNIX), and +management isn't moving particularly fast to replace them. This +means my work load is going to increase dramatically, since Alfred +and Robert are gone until September. Ouch. +<br /><br /> + +The Crumbly Goodness server (at <B>quake.pablotron.org</B> is down) +again, and it could be quite some time before it's back up. The box +is at Alfred's house, and he's in Hong Kong. Fortunately he's using +<a href="http://www.microsoft.com/windows2000/default.asp">Win2k</a>, +so none of us can administer it remotely, or kill the server +and restart it when it goes nuts. Apparently people have been ICQing +him, letting him know it's down, and he contacts his roommate, who +then restarts the Q3A server, but that's just silly. Real Operating +Systems provide full access to the system via a command line -- it's +the only way to cater to virtually every operating system in existence. +Looks like <a href="http://www.microsoft.com/">Redmond</a> loses 10 +points; <a href="http://www.freebsd.org/">Berkley</a> and +<a href="http://www.linux.com/">Helsinki</a> each gain 1000. +<br /><br /> + +I'm about done, but I should mention +<a href="http://www.fuckedcompany.com/">this cool web page</a> (brought +to you courtesy of Siobahn from #e). Also, be the first kid on your +block to get an idiotic email address: details are +<a href="http://www.britneyspearsmail.com/">here</a> and +<a href="http://www.mary-kateandashley.com/">here</a> (thanks to +Filgy and RADKade1). + diff --git a/content/posts/2000-07-26-ewl-updates.html b/content/posts/2000-07-26-ewl-updates.html new file mode 100644 index 0000000..11ba6ff --- /dev/null +++ b/content/posts/2000-07-26-ewl-updates.html @@ -0,0 +1,70 @@ +--- +date: "2000-07-26T10:42:00Z" +title: EWL Updates +--- + +I've been working on <a href="/projects">EWL</a> a lot lately -- in +fact +<a href="http://www.linuxbrit.co.uk/">giblet</a> and +<a href="http://www.richlowe.net/">richlowe</a> have +been helping too. Rather than go over all the details, I went ahead +and modified my update script so it posts the ChangeLog. You can +check that out <a href="/projects/ewl/ChangeLog">here</a>. If you +want to try out the snapshot, _please_ read the ChangeLog -- it's +the only accurate documentation that exists ATM, and it has a lot +of useful tips (for example, running src/create_personal_preferences.sh +so EWL doesn't SEGV on startup). No, there isn't any rendering yet, +yes there is rudimentary theme support.<br /><br /> + +I moved all my screenshots from +<a href="http://www.efn.org/~p_duncan/">my old EFN page</a> to the +<a href="/screenshots/">screenshots page</a>, and I preserved the +captions and added some updated commentary. There are still a +lot of things strewn across various accounts that I'd like to move +onto Pablotron, but that will have to wait until after a redesign +(yes, it will happen eventually). It'll be SQL queries all over +the place, and I'd like to make it themable, but we'll see what +happens. I actually had a working themable PHP sample page, I don't +think I'm going to go with that implementation after all.<br /><br /> + +Our cable modem got cut off last week. Apparenly I was $11 short +on the bill or something. Anyways, I didn't realize that it was +about to get cut off, and I payed the entire bill with a credit +card within 12 hours of the service being shut off, but for some +reason @Home told me it would take 72 hours to turn it back on. +That's fine, except it took twice that long, and I had to call at +least 5 times before I got a "priority ticket" or some crap. I +could go on, but Sean wrote a really nice summary of what dealing +with @Home customer service is like over on +<a href="http://10k.dhs.org/">the 10k page</a>. Unfortunately, +they're problems still aren't resolved, so you can't reack 10k +at the moment.<br /><br /> + +<a href="http://www.kuro5hin.org">Kuro5hin</a>, one of my favorite +news pages (ie one of the few pages I read on a daily basis), was +shut down because of DoS attacks on the anonymous story submission +queue. This really sucks. It wasn't even a creative or complicated +attack -- the non-computer analogy would be vandalizing a public +restroom, only this is worse. The people running Kuro5hin were all +volunteers who dedicated their time to the page because they +enjoyed working on it, not because they were being payed. I liked +the stories on kuro5hin better than "the other site" (how everyone +on kuro5hin referred to +<a href="http://www.slashdot.org">Slashdot</a>), and the comments +were usually more interesting. Supposedly, they're going to take +a break, remove the anonymous submission, and return after a month, +but things like this are incredibly frustrating. DoS is stupid. +It's not l33t, and you're not a cool computer h4x0r if you know how +to run a smurf daemon on your grandma's iMac.<br /><br /> + +Finally, seeing as how I don't have any interesting photos to post +(besides <a href="/gallery/gnea_thinks_im_leet.jpeg">this picture of +Gnea</a>), I'll direct you towards Tom Gilbert's vacation photos. His +sister is pretty good looking. :) Check her, um I mean his vacation +photos, out +<a href="http://www.linuxbrit.co.uk/pics/holiday_france_2000/index.html">here</a> (I'm just kidding, Tom. Although I do wish everyone in #e had dressed +up in monkey suits as a suprise when you got back). +<br /><br /> + +Anyways, more later.... + diff --git a/content/posts/2000-07-27-fun-with-spam.html b/content/posts/2000-07-27-fun-with-spam.html new file mode 100644 index 0000000..472ba2a --- /dev/null +++ b/content/posts/2000-07-27-fun-with-spam.html @@ -0,0 +1,24 @@ +--- +date: "2000-07-27T11:10:00Z" +title: Fun with Spam! +--- + +Nobody likes <a href="http://spam.abuse.net/">Spam</a>, and noone +seems to have an effective and gratifying solution. Sure, you can +install <a href="http://www.procmail.org/">Procmail</a>, or use a +filtered mail service like <a href="http://www.msgto.com/">MsgTo</a> +-- but where's the fun in that? Do what I'm doing -- +<a href="mailto:gilbertt@linuxbrit.co.uk">send your spam to Tom +Gilbert</a>. As effective as procmail, but 10 times as +gratifying!<br /><br /> + +I'm pretty busy today, but here's a few quick things to read: +<a href="http://www.attrition.org/~modify/texts/mirrors/textfiles.com/100/billrights.fun">The Bill of Rights Lite</a> and +<a href="http://www.westegg.com/inflation/">The Inflation Calculator</a>. +I'm sure you've read about the <a href="http://slashdot.org/article.pl?sid=00/07/26/2357235&mode=nested">preliminary ruling against Napster</a> (and +the <a href="http://slashdot.org/article.pl?sid=00/07/27/1315217&mode=nested&threshold=1">upcoming RIAA boycotts</a>), +and I'm assuming you know <a href="/news/archive/#20000515">my +position</a>, so here's a funny parody called the +<a href="http://www.brunching.com/features/feature-metallicaletter.html">Open Letter From Metallica</a>. It's a bit dated, but an amusing read +anwyays. + diff --git a/content/posts/2000-07-28-will-the-real-richlowe-please-stand-up.html b/content/posts/2000-07-28-will-the-real-richlowe-please-stand-up.html new file mode 100644 index 0000000..b3a1281 --- /dev/null +++ b/content/posts/2000-07-28-will-the-real-richlowe-please-stand-up.html @@ -0,0 +1,20 @@ +--- +date: "2000-07-28T08:10:00Z" +title: Will the Real richlowe Please Stand Up? +--- + +In the debate recently over whether or not +<a href="http://www.spinfrenzy.com/richlowe/RichardLowe.jpg">this</a> +is a real picture of +<a href="http://www.richlowe.net/">richlowe</a>, +<a href="http://www.kainx.org">KainX</a> has provided us with some +new pictures of <a href="http://www.linuxbrit.co.uk/">Tom Gilbert</a> +(aka giblet). Check them out +<a href="http://healthmedia.umich.edu/~potts/turtle-galleries/giblet-page.html">here</a>.<br /><br /> + +In other news, the theme db loading stuff for ewl works now. +Widgets merely call ewl_theme_get_datatype() (where datatype is string, +int, float, imlayer, etc), and the theme engine will search for +the correct theme db in the path. More information is available in +the <a href="/projects/ewl/ChangeLog">ChangeLog</a>. + diff --git a/content/posts/2000-07-31-paint-me-green-and-call-me-a-pickle.html b/content/posts/2000-07-31-paint-me-green-and-call-me-a-pickle.html new file mode 100644 index 0000000..f01be9f --- /dev/null +++ b/content/posts/2000-07-31-paint-me-green-and-call-me-a-pickle.html @@ -0,0 +1,10 @@ +--- +date: "2000-07-31T15:33:00Z" +title: Paint Me Green and Call Me a Pickle! +--- + +All the sections except for <a href="/code">Code</a>, +<a href="/search">Search</a>, and <a href="/gallery">Gallery</a> should +be working okay. Granted, a few of them still look like crap, but I'll +work on that tomorrow. + diff --git a/content/posts/2000-07-31-welcome-to-the-new-and-improved-pablotron.html b/content/posts/2000-07-31-welcome-to-the-new-and-improved-pablotron.html new file mode 100644 index 0000000..8309bc2 --- /dev/null +++ b/content/posts/2000-07-31-welcome-to-the-new-and-improved-pablotron.html @@ -0,0 +1,9 @@ +--- +date: "2000-07-31T14:27:00Z" +title: Welcome to the new and improved Pablotron +--- + +I finally got off my duff and finished redesiging parts of the page. +Right now most of the sections are still broken, but that will change +tonight at tomorrow. Comments are appreciated. + diff --git a/content/posts/2000-08-01-it-s-all-one-big-conspiracy.html b/content/posts/2000-08-01-it-s-all-one-big-conspiracy.html new file mode 100644 index 0000000..6cf9915 --- /dev/null +++ b/content/posts/2000-08-01-it-s-all-one-big-conspiracy.html @@ -0,0 +1,23 @@ +--- +date: "2000-08-01T10:09:00Z" +title: It's All One Big Conspiracy +--- + +<a href="http://www.linuxbrit.co.uk/">Tom Gilbert</a>, a Chemistry +major living in the UK. <a href="http://www.chem.orst.edu/">Gilbert +Hall</a>, the chemistry department at my university. Coincidence? +I think not. +<br /><br /> + +I finally got <a href="/projects/">EWL</a> rendering. Not very fast, +but it works (at least for the window background image). Check the +<a href="/projects/ewl/ChangeLog">ChangeLog</a> for more information. +<br /><br /> + +The images are broken on the page, but I still think +<a href=http://designweb.otago.ac.nz/grant/psyc/OBEDIANCE.HTML">this +study</a> is an extremely interesting look at human nature. Oh yeah, +for those of you who don't remember how bad Mosaic was, +<a href="http://www.dejavu.org/">this page</a> should remind you +real fast. + diff --git a/content/posts/2000-08-03-cows-everywhere.html b/content/posts/2000-08-03-cows-everywhere.html new file mode 100644 index 0000000..c02222f --- /dev/null +++ b/content/posts/2000-08-03-cows-everywhere.html @@ -0,0 +1,20 @@ +--- +date: "2000-08-03T12:58:00Z" +title: Cows everywhere! +--- + +Just a quick one: <a +href="http://slashdot.org/comments.pl?sid=00/08/03/2058227&cid=27">This post</a> +on Slashdot is one of the funnier computer analogy jokes I've seen in +a while (the top one being the infamous <a href="http://www.towson.edu/cans/helpcenter/humor/airlines.html">airline analogies</a>). +Also, be sure to read +<a href="http://students.ou.edu/W/Amos.P.Waterland-1/wellspring/command_line.html">this short article</a> +by Neil Stephenson (the author of +<a href="http://www.amazon.com/exec/obidos/ASIN/0380973464/qid=965347414/sr=1-2/103-6422703-6090214">Cryptonomicon</a>, +<a href="http://www.amazon.com/exec/obidos/ASIN/0553380958/qid=965347443/sr=1-1/103-6422703-6090214">Snow Crash</a>, and +<a href="http://www.amazon.com/exec/obidos/ASIN/0553380966/o/qid=965347466/sr=2-1/103-6422703-6090214">Diamond Age</a>). +Finally, (and I haven't had time to read this yet), but it looks like good +ol' prez Billy is _still_ extending the national state of emergency on +the Encryption Export regulations. Read about them +<a href="http://216.167.120.50/hd106-256.txt">here</a>. + diff --git a/content/posts/2000-08-08-a-few-updates-and-a-vacation-for-me.html b/content/posts/2000-08-08-a-few-updates-and-a-vacation-for-me.html new file mode 100644 index 0000000..09ca3f0 --- /dev/null +++ b/content/posts/2000-08-08-a-few-updates-and-a-vacation-for-me.html @@ -0,0 +1,58 @@ +--- +date: "2000-08-08T08:36:00Z" +title: A Few Updates and a Vacation For Me +--- + +I fixed the layout problems on the <a href="/links">Links</a> and +<a href="/screenshots">Screenshots</a> pages. I also added some +more contact info to the <a href="/feedback">Feedback</a> page. +<br /><br /> + +I committed <a href="/projects">EWL</a> to CVS finally. +<a href="http://www.linuxbrit.co.uk/">Tom Gilbert</a> added the +autoconf/make goodies for me. You can get it from CVS by following +the instructions on the +<a href="http://www.enlightenment.org/cvs.html">Enlightenment CVS +page</a>, and adding "ewl" to the list of modules to check out. See +my <a href="/download">Download page</a> for some Expect scripts +suitable for automatically updating CVS. Right now, EWL can +open a window, pack a button into a box, pack the box into the +window, and attach callbacks to all the widgets. Theming and +event propagation and a slew of other things work correctly, but +rendering is slow and layout is buggy. Unfortunately, I won't have +time to work on EWL until I get back -- from LA! +<br /><br /> + +That's right, I'm headed to Los Angeles for a week. I'm leaving +tomorrow morning, and I'll be back on the 16th. I'll try and find +time to check my email, but I know that my sister's internet access +is probably <a href="/gallery/fast_modem.jpeg">pretty limited</a>. +<br /><br /> + +I don't have a Linux Advocasy page up just yet, but I was going to +put it right underneath the Uptimes list (on the left sidebar). +Fortunately for me, a power outage completely destroyed the uptimes +for my web server and my work machine. The previous uptimes were +48 days, 73 days, and 37 days (home, web, and work, respectively). +The Advocasy page will still go up eventually, but I was hoping to +have a >100 day uptime to entice people. Oh well. +<br /><br /> + +I finally got around to installing +<a href="http://galeon.sourceforge.net/">Galeon</a>, a +GNOME browser that uses the Gecko (eg Mozilla) rendering engine, but +doesn't have all the cruft (eg XUL, news and mail readers, etc etc). +Wow! It's dependencies are a bit heavy +(<a href="http://www.mozilla.org">Mozilla</a> M16 or later -- I'm +using the latest nightly build) and +<a href="http://www.helixcode.com">Helix GNOME</a>, but Galeon +itself is small (both memory and disk space wise) and much faster +than Mozilla. +<br /><br /> + +Finally, I guess <a href="http://www.linuxbrit.co.uk/">Tom</a> is +telling the rest of the world about his new Linux programming job: +Not only is he going to be coding for $$ now, but he's also getting +a laptop and moving to London. Good work dude :). Okay, I'll see +everyone in a week. + diff --git a/content/posts/2000-08-17-cali-and-more.html b/content/posts/2000-08-17-cali-and-more.html new file mode 100644 index 0000000..6d28e85 --- /dev/null +++ b/content/posts/2000-08-17-cali-and-more.html @@ -0,0 +1,58 @@ +--- +date: "2000-08-17T12:04:00Z" +title: Cali and More +--- + +Wow, too much fun stuff to share in one update, but I'll do the best I +can. First of all, I'm back from my vacation in California, and I +had a lot of fun. Pictures will be up soon (I have to find 7 more +pictures to take, then I'll have the roll developed and scanned). My +sister Erin works at a frozen yogurt shop in Malibu, and I sat through +a couple of her shifts. They get celebrities in there every day! I was +only in there a few days, and I saw +<a href="http://tbssuperstation.com/tv/fullhouse/dj.htm">Candice Cameron</a>, +<a href="http://mrshowbiz.go.com/people/tomhanks/content/Bio.html">Tom Hanks</a>, and +<a href="http://cherdirect.com/">Cher</a>! +Apparently, I just missed <a href="http://mrshowbiz.go.com/people/adamsandler/Index.html">Adam Sandler</a> +-- he came in a few hours after we left one day. I learned a few +things too:<br /> +<ul> +<li>No matter how bad the water is in your town, it will invariably + be worse wherever you travel.<br /> +<li>In person, celebrities aren't obnoxious, flamboyant, or loud -- + although the rest of us seem to be all of these things when a + celebrity is nearby.<br /> +<li>Just because eating large quantities of ice cream and frozen + yogurt sounds like fun as a kid, doesn't mean it's good for you + or your digestive tract as an adult.<br /> +</ul> + +I made a few quick page updates today. The <a href="/download/">Downloads +page</a> now has descriptions for most items, and I started wokring on +a <a href="http://www.mysql.com/">SQLized</a> version of the news (as +opposed to the home-grown db format I'm using at the moment). You can +monitor it's progress by checking <a href="/projects/dbnews/">this +page</a>. Yes, this means you'll be able to search the page soon (at +least the news section). Oh yeah, I posted my +<a href="/download/#ns_to_galeon_pl">Netscape to Galeon bookmark +converter</a> It's still a bit buggy, but it's bound to work better +than what Galeon is offering (eg a phat coredump in your home +directory). I put a basic shell for the code section up +<a href="/code/new-index.phtml">here</a>, although it's basically +completely empty ATM. I've had several requests for design tips -- +I'd appreciate it if those of you who have emailed me would let me know +what you're interested in seeing on the code page. Specifically, should +I just dump all the scripts and backend, or would you like a bit of +a tutorial as well? Finally, the uptimes (on the left sidebar) are now +completely automated, I updated the EWL section on the +<a href="/projects/">Projects page</a> to say that it's now in +CVS, and the <a href="/as;lkdfjasldkjf;aslkdjf;adlskfjsaldkfjlsadkfj;dslkfj;sadlkfjsdlfkjas;dlfkj;asldkfj;lasdf">404 page</a> now works again. +<br /><br /> + +OTT <a href="http://x5rings.fsck.org/">x5rings</a> and +<a href="http://www.linuxbrit.co.uk/">giblet</a> added a few things +to <a href="/projects/">EWL</a> while I was gone. Oh yeah, and Jeff +(my roommate) has a ridiculously powerful level 50-something +Necromancer in Diablo II now. Okay, there's more going on, but +I've gotta run -- I'll update again when I have some time. + diff --git a/content/posts/2000-08-17-code-page-is-up.html b/content/posts/2000-08-17-code-page-is-up.html new file mode 100644 index 0000000..c8d6da7 --- /dev/null +++ b/content/posts/2000-08-17-code-page-is-up.html @@ -0,0 +1,15 @@ +--- +date: "2000-08-17T21:01:00Z" +title: Code Page Is Up +--- + +Just a quick note to everyone who was waiting -- the +<a href="/code/">Code page</a> is up and running. Even if you +aren't really interested in the backend, you might be interested +in the quick dynamic HTML and SSI navication script I hacked +together. You can see it in action by viewing some SSIs on the +Code page. I also added a bunch of stuff to the +<a href="/download/">Download page</a>, and switched it to a +CGI instead of a script-generated page. You can still download +the old make.pl file <a href="/download/#make_pl">here</a>. + diff --git a/content/posts/2000-08-18-bugfixes-and-the-search-page.html b/content/posts/2000-08-18-bugfixes-and-the-search-page.html new file mode 100644 index 0000000..ea911ca --- /dev/null +++ b/content/posts/2000-08-18-bugfixes-and-the-search-page.html @@ -0,0 +1,12 @@ +--- +date: "2000-08-18T08:47:00Z" +title: Bugfixes and the Search Page +--- + +Okay, I added a few fixes for the <a href="/code/">Code page</a>, and +I put up a hacked Search page. Right now it uses +<a href="http://www.google.com/">Google's</a> SiteSearch feature, +which isn't quite what I want, but it'll have to suffice until I +roll my own. You can check out the new search page +<a href="/search/">here</a>. + diff --git a/content/posts/2000-08-21-cam-page.html b/content/posts/2000-08-21-cam-page.html new file mode 100644 index 0000000..2a1289c --- /dev/null +++ b/content/posts/2000-08-21-cam-page.html @@ -0,0 +1,49 @@ +--- +date: "2000-08-21T07:04:00Z" +title: Cam Page +--- + +Jeff and I put up a Webcam page. Check it out <a href="/cam/">here</a>. +Also, I added security checks to my code navigation CGI -- If someone +is trying to exploit the CGI, they end up looking at +<a href="/cgi-bin/pablotron/view.pl?BODY=../../../etc/passwd">this page</a> +(IE users crank the volume for a special treat). +<br /><br /> + +On a related note, I added a few new options to +<a href="http://www.linuxbrit.co.uk/feh.html">Cam</a> this weekend +(you'll need CVS feh -- see the +<a href="http://www.enlightenment.org/cvs.html">Enlightenment CVS Page</a> +for more information). You can now save cam images (with the -k or +--keep-imagse option), and open multiple cams with one command (eg +cam jenni dawn giblet raster). I also worked out a bunch of quirks +in EWL (again, also in CVS). See the ChangeLog included with the +CVS module for more information. +<br /><br /> + + +Pablotron will be relocating soon. I have the new hardware and an IP, +but I still need to install linux and set the bad boy up. This means +we get to play the DNS game of fun again! I'll probably keep this +server going for a few weeks just to make sure everone's DNS gets +updated. +<br /><br /> + +Oh yeah, Emmanuel Goldstein (aka the guy who runs +<a href="http://www.2600.com">2600</a>) posted his response to the +<a href="http://eon.law.harvard.edu/openlaw/DVD/DeCSS/">DeCSS</a> +decision. Read it <a href="http://www.2600.com/news/2000/0821.html">here</a>. +Also, +<a href="http://slashdot.org/comments.pl?sid=00/08/21/178259&cid=277">here's</a> +a rare gem: an interesting post on +<a href="http://www.slashdot.org/">Slashdot</a> regarding this article +(and <a href="http://slashdot.org/comments.pl?sid=00/08/21/178259&cid=432">this +one</a> too). The legal system in this country makes my head hurt. What +ever happened to common sense? +<br /><br /> + +Finally, I stumbled across <a href="http://www.zdtv.com/zdtv/screensavers/supergeek/jump/0,3658,2400192,00.html">this page</a> completely on accident. Who +would have thought that Leo from the +<a href="http://www.zdtv.com/zdtv/screensavers/">Screen Savers</a> reads +<a href="http://www.attrition.org/">attrition.org</a>? + diff --git a/content/posts/2000-08-23-links-updates.html b/content/posts/2000-08-23-links-updates.html new file mode 100644 index 0000000..159c62c --- /dev/null +++ b/content/posts/2000-08-23-links-updates.html @@ -0,0 +1,19 @@ +--- +date: "2000-08-23T14:45:00Z" +title: Links Updates +--- + +Just a quick summary of changes I've made on the site... I fixed +a bunch of links on the <a href="/links/">Links page</a>, and added +a few new ones. Also, I made minor corrections to the +<a href="/feedback/">Feedback</a>, and <a href="/download/">Download</a> +pages. CSS1 compliant browsers (read: not Netscape) now underline +links on mouse-over. I added a Site Map page, which has brief +descriptions of everything on the sidebar. Check it out +<a href="/map/">here</a>. +<br /><br /> +I got a few Paul Oakenfield and Digweed & Sasha mp3s -- wow! +I'd heard of both of 'em, but never actually sat down and listened +to any of the songs. They're both pretty damn good. Alright, +that's all for today. + diff --git a/content/posts/2000-08-24-evas-rocks-my-world.html b/content/posts/2000-08-24-evas-rocks-my-world.html new file mode 100644 index 0000000..3aefbbc --- /dev/null +++ b/content/posts/2000-08-24-evas-rocks-my-world.html @@ -0,0 +1,31 @@ +--- +date: "2000-08-24T18:56:00Z" +title: Evas Rocks My World +--- + +I guess Jeff has been browsing Pablotron too much lately -- he +directed me towards a spelling error and broken link on the +<a href="/cam/">Cam page</a>. Thanks dude. +<br /><br /> + +As for <a href="/projects/">EWL</a>, I've been making misc +changes here and there. I just posted a fresh snapshot of the +EWL CVS tree. You can download it +<a href="/projects/ewl/ewl-latest.tar.gz">here</a>, or read +the ChangeLog <a href="/projects/ewl/ChangeLog">here</a>. Due to +the problems I've had with the rendering system, I've decided to +migrate the rendering system to Evas, +<a href="http://www.rasterman.com/">raster's</a> new ubercool +canvas library. In addition to removing the rendering concern +(and making it faster than I ever could have), this also adds +basic GL rendering support to EWL (read: much faster). I'm getting +up to speed with Evas by writing few test applications, but I +plan on making the transition this weekend. +<br /><br /> + +Finally, I encourage anyone who hasn't done so to check out +<a href="http://www.linuxbrit.co.uk/geist.html">Geist</a>, +Tom Gilbert's new image layout program. I've contributed a +few small snippets of code, but him and tillsan have done most +of the work. I'm pretty impressed. + diff --git a/content/posts/2000-08-28-monkeys-on-crack-and-other-oddities.html b/content/posts/2000-08-28-monkeys-on-crack-and-other-oddities.html new file mode 100644 index 0000000..9d9d53f --- /dev/null +++ b/content/posts/2000-08-28-monkeys-on-crack-and-other-oddities.html @@ -0,0 +1,53 @@ +--- +date: "2000-08-28T08:12:00Z" +title: Monkeys on Crack and Other Oddities +--- + +So I finally got off my ass and joined the Crack Monkey mailing +list. Wow, it's a lot of fun! It's basically a bunch of losers +like myself, spending their time coming up with crackpot ideas and +bashing each other. For example, right now the list is debating +the feasability of a nitrogen-filled, high-pressure nightclub +(ie you could have music really loud without bothering the neighbors). +You can check out the Crack Monkey site +<a href="http://www.crackmonkey.org/">here</a> (not recommended for +Windows users -- the site will lock up your computer. You have +been warned). +<br /><br /> + +I have my test Evas app working pretty well -- I just need to finish +up some graphics, hten I'll post it for abuse on the +<a href="/download/">Download page</a>. I also fixed one little +tiny bug in the evas_set_color() routine -- but other than that +Evas has been pretty solid for me. I'm getting some wierd color +flashes in my test app, but I'm almost positive sure it's my setup +(XF4.0, TNT2 w/ nv module, Mesa 3.2 -- I think mesa3.2 is b0rked) +and not Evas. +<br /><br /> + +As for this page, I finally added file sizes and MD5 checksums to +the <a href="/download/">Download page</a>, but I'm not sure if +they're gonna stay -- I don't know if I like the look. I also added +a few new links to the <a href="/links/">Links page</a> -- for some +reason I have a hard time keeping the links page up to date).. +<br /><br /> + +Joe pointed me towards +<a href="http://www.somethingawful.com/news/8-28-2000/nintendo/">this +review</a> of the Nintendo GameCube, which reminded me about +<a href="http://cube.ign.com/news/23749.html">this article</a> that I +read last week. I should mention that I'm biased; IMO ATI and S3 +are my two least favorite video chipset vendors -- the latter because +they whore their crappy embedded chipsets out to every OEM on the +planet (including Apple), and the latter because I am actually using +the monstrosity that is S3 ViRGE at home. Of course, I also don't +really care about console systems any more -- the last one I bought +was the Sega Saturn, and that was only to play Virtua Fighter 2. But +I haven't even touched that for at least 6 months. My TV broke, so +I loaned out my VCR, and that was the last contact I've had with +console systems, video rentals, and cable TV. Internet keeps me +entertained now. Anyways, if I was interested in a console system, +it would probably be the +<a href="http://www.playstation2.com/home/home1.jhtml">PlayStation 2</a>, +not the Dolphin. + diff --git a/content/posts/2000-08-30-mutt-fetchmail-oh-my.html b/content/posts/2000-08-30-mutt-fetchmail-oh-my.html new file mode 100644 index 0000000..d88ba41 --- /dev/null +++ b/content/posts/2000-08-30-mutt-fetchmail-oh-my.html @@ -0,0 +1,59 @@ +--- +date: "2000-08-30T20:23:00Z" +title: Mutt, Fetchmail, Oh My! +--- + +So I'm attempting to make the transition from +<a href="">PINE</a> to +<a href="http://www.mutt.org/">Mutt</a>. Of course, in order to do +that I had to set up +<a href="http://www.tuxedo.org/~esr/fetchmail/">Fetchmail</a>, and +make a few minor changes to my existing +<a href="http://www.procmail.org/">Procmail</a> setup. I grabbed +the existing muttrc file from +<a href="http://www.linuxbrit.co.uk/">Tom Gilbert's page</a> and +spent some time tweaking it a bit, and I think I've got things +kind of working (actually, I just sent my first non-test email +about three minutes ago). Here's what I think so far: I really like +Mutt a lot -- it's packed with features, completely configurable, +and not actually that hard to get set up. As for fetchmail, it's +GUI config program and config language are almost completely idiot +proof. The GUI probed my IMAP server and set everything up for me, +and it even caught a few stupid mistakes I made. +<br /><br /> + +Now the cons: I've been using PINE for over 6 years, and switching +to new keybindings is a bit of a jolting experience. My setup for +PINE wasn't perfect, but everything worked. Normally I don't mind +tweaking with programs to get them working "just the way I want it", +but mail is one of those things I take for granted -- I just want it +to work without tweaking. Anyways, I felt the same way when I switched +to <a href="http://www.vim.org/">VIM</a>, and I felt the same way +when I switched to <a href="http://www.linux.com/">Linux</a>, and I +know all this will pass. The other thing that kind of concerns me +is using fetchmail to redirect all my mail. I'm used to using a +shell account on the machine with my mail spool -- I haven't used +POP3 or IMAP for at least 3 years. I've heard horror stories of +people's wacky mail-transfer setup blowing away weeks worth of email; +I'd prefer not to go through that experience. Anyways, I know +there are several mutt pros who read this page -- feel free to +drop me an email if you've got any transition tips for me. +<br /><br /> + +Oh yeah, I finally got around to installing +<a href="http://www.gnupg.org/">GnuPG</a>, the free software +replacement for <a href="http://www.pgp.com/">PGP</a>. I posted +a new <a href="/pabskey.asc">public key</a>, and I committed it +to several keyservers around the world. I don't have the +information anymore to revoke my old PGP 2.6.2 key, but the +email addresses are different anyways: +<a href="mailto:duncanpa@engr.orst.edu">duncanpa@engr.orst.edu</a> for +the PGP 2.6.2 key and +<a href="mailto:pabs@pablotron.org">pabs@pablotron.org</a> for the +OpenPGP (eg GnuPGP) key. +<br /><br /> + +Finally, I helped <a href="mailto:hammonss@ucs.orst.edu">Sean</a> +install Linux on his home machine today. Soon he will be a +linux h4x0r like the rest of us. :) + diff --git a/content/posts/2000-09-05-evas-opengl-for-free.html b/content/posts/2000-09-05-evas-opengl-for-free.html new file mode 100644 index 0000000..460bba6 --- /dev/null +++ b/content/posts/2000-09-05-evas-opengl-for-free.html @@ -0,0 +1,31 @@ +--- +date: "2000-09-05T12:49:00Z" +title: 'Evas: OpenGL For Free!' +--- + +Well, CVS <a href="/projects/">EWL</a> has preliminary Evas support now. +The software rendering alone is much faster, but Evas also gives EWL +<A href="http://www.mesa3d.org/">OpenGL</a> support for free! I don't +really have the setup to be testing the GL acceleration, but the +Evas test program is a _lot_ faster in GL mode. For those of you +who want to try out the acceleration in EWL, just do the following: +<br /><br /> +<center> +<font face="sans-serif" size="-0"> +ewldbtool ~/.ewl/preferences render/mode 3D_Hardware +</font></center><br /> +As of tonight, the previous rendering system is still in EWL, but +horribly broken -- the only thing that will display is the window +background (which you can customize by editing background key in +~/.ewl/themes/defaultTheme/EwlWindow.db). +<br /><br /> +I'm pretty comfortable with <a href="http://www.mutt.org/">Mutt</a> +now. It's amazing how fast I switched. I've made several tweaks +to <a href="http://www.linuxbrit.co.uk/">Tom Gilbert's</a> default +muttrc file -- sooner or later I'll post the file for all to see. +<br /><br /> +That's about it for right now -- tomorrow I'm going to rip apart +the theme engine in EWL and make it support Evas images. It's a +real pain in the ass to break this stuff, but Evas support will +make it all worthwhile in the end. + diff --git a/content/posts/2000-09-07-software-updates.html b/content/posts/2000-09-07-software-updates.html new file mode 100644 index 0000000..0d78f28 --- /dev/null +++ b/content/posts/2000-09-07-software-updates.html @@ -0,0 +1,38 @@ +--- +date: "2000-09-07T10:33:00Z" +title: Software Updates... +--- + +I finally updated my +<a href="http://www.gnome.org/">GNOME</a> setup at home to +<a href="http://www.helixcode.com/">Helix GNOME</a>. I had been +planning on doing this for several months, but I had to clear off some +cruft on my root partition in order to fit all the crap in. For those +of you who have no drive space, you might check your +$PREFIX/share/themes and $PREFIX/share/locale directories (where $PREFIX +is either /usr or /usr/local) -- they were using over 100 megs of +space on my system. +<br /><br /> + +On a related note, I also switched over to +<a href="http://galeon.sourceforge.net/">Galeon</a> as my primary +web browser (even on my piece of shit home system). Oddly enough +the bookmark importer works fine on my home system, but fails miserably +on my work machine. Also, there still isn't correct download support, +and a there are a few other quirks here and there. But overall, +I think it's a better browser than Nutscrape. +<br /><br /> + +<a href="/projects/">EWL</a> is still coming along. Evas support +works correctly for the background image, and I incorperated Evas +support throughout the EWL Theme API, but it still doesn't +render widgets quite right. I'll work on that some more this week, +along with an actual working implementation of something me and +several other E developers have been talking about for a while. +The short, short version is that we're tired of using one format +for theming -- there's no reason why you can't have a dynamic +modular theme and config loading system that allows users to pick +their own format (be it a fast local database, XML, off of an SQL +server, or via http). I'll have more information if and when I have a +working sample implementaion. + diff --git a/content/posts/2000-09-18-welcome-to-the-new-pablotron-server.html b/content/posts/2000-09-18-welcome-to-the-new-pablotron-server.html new file mode 100644 index 0000000..8d10a2a --- /dev/null +++ b/content/posts/2000-09-18-welcome-to-the-new-pablotron-server.html @@ -0,0 +1,32 @@ +--- +date: "2000-09-18T15:02:00Z" +title: Welcome to the new Pablotron Server +--- + +If you can see this message, than you're on the new pablotron server... +Hooray! +<br /><br /> + +So here's what's new -- I've added my work web server to the list of +uptimes (on the sidevar). Also, I completely redid the +<a href="/projects/">Projects page</a>. Check it out and let me +know what you think. I also added unique pages for +<a href="/projects/cam/">Cam</a> and <a href="projects/ewl/">EWL</a>. +<br /><br /> + +On a related note, I've submitted a couple of patches to +<a href="http://www.mrob.com/gnut/">Gnut</a>. Basically, they +just add config-file loading, saving, and command-line evaluation. +I hadn't used Gnut at all until a few days ago, but it's already +my favorite <a href="http://gnutella.wego.com/">Gnutella</a> +client by far. It's fast, stable, easy to use, and it's got +several features that other clients don't have. For example, Gnut +can blacklist nodes (no more spam via Gnutella), monitor based on +requests that yield results, monitor based on download requests, +limit upstream transfer rates, and filter search results with regular +expressions. It compiles out-of-the-box under most UNIX variants +and Windows (although the latter is missing many features), and +there is a GUI frontend in the works. If you're using one of the +supported systems and you use Gnutella, give Gnut a try and see +what you think. + diff --git a/content/posts/2000-09-19-more-gnut-fun.html b/content/posts/2000-09-19-more-gnut-fun.html new file mode 100644 index 0000000..60af5d5 --- /dev/null +++ b/content/posts/2000-09-19-more-gnut-fun.html @@ -0,0 +1,25 @@ +--- +date: "2000-09-19T09:56:00Z" +title: More Gnut Fun! +--- + +I went ahead and put my recent gnut patches online as one big +diff file (universal against 0.4.13). You can grab the mondo patch +right <a href="/download/#gnut_com_load_pipe_and_save_diff">here</a>. +Also, I added backtick shell interpolation. I just submitted the +patch to the Gnut developers today, but I also tossed it up +<a href="/download/#gnut_bt_interpolation_diff">here</a> for +people to play with. Finally, in case anyone is interested, my +resource file for <a href="http://www.mutt.org/">Mutt</a> is +available <a href="/download/#muttrc">here</a>. +<br /><br /> + +I spent some time today doing various code cleanupts to this page. +The <a href="/download/">Download page</a> script generates +slightly more legible output, mainly so things look pretty for the +<a href="/code/">Code page</a> (but don't take my word for it, +<a href="/cgi-bin/pablotron/view.pl?HEADER=code/view/top.html&FOOTER=code/view/bot.html&BODY=download/index.phtml">see for yourself</a>). Also, I updated the +<a href="/map/">Site Map</a> to reflect the changes I made yesterday +to the sidebar, and I fixed the damn titles on all the pages so they +agree on formatting. + diff --git a/content/posts/2000-09-21-i-want-my-diablo-ii.html b/content/posts/2000-09-21-i-want-my-diablo-ii.html new file mode 100644 index 0000000..19348be --- /dev/null +++ b/content/posts/2000-09-21-i-want-my-diablo-ii.html @@ -0,0 +1,30 @@ +--- +date: "2000-09-21T18:39:00Z" +title: I Want My Diablo II +--- + +I just signed the <a href="http://www.tuxgames.com/petitions/">petition +for Diablo II</a> over on <a href="http://www.tuxgames.com/">TuxGames</a>. +It looks like the big winners in the petitions are +<a href="http://www.starcraft.com/">StarCraft</a> with 2736 votes and +<a href="http://www.diabloii.net/">Diablo II</a> with 2242 votes. The +next runner-up is Baldurs Gate II, with a measly 556 votes. Anywyas, +even if <a href="http://www.lokigames.com/">Loki</a> doesn't convince +<a href="http://www.blizzard.com/">Blizzard</a> to let them port +Diablo II, the reports under <A href="http://www.winehq.com/">Wine</a> +look promising. +<br /><br /> + +Anyways, none of this is going to happen until I upgrade my machine. +I think I may have the cash to put together a new system sometime +within the next couple of months. I'm thinking about an Ath800/128, +along with a GeForce 2/MX (unless the GeForce DDR is better, that is), +I'm also trying to buy a 17" monitor from one of my roommate's friends, +but I don't know whether or not that's going to happen yet. In the +future, I'd like to get my hands on +<a href="http://www.microsoft.com/products/hardware/mouse/explorer.htm">the +world's perfect mouse</a>, a little bit more RAM (preferrably 256 megs), +a larger hard drive (at least 60 gigs -- that's only ~$200 now-a-days), +a TV Tuner Card, and a decent webcam. Anyways, this is all a ways off, +but I can hardly wait. + diff --git a/content/posts/2000-10-01-parallel-searching-in-gnut.html b/content/posts/2000-10-01-parallel-searching-in-gnut.html new file mode 100644 index 0000000..7dbef40 --- /dev/null +++ b/content/posts/2000-10-01-parallel-searching-in-gnut.html @@ -0,0 +1,29 @@ +--- +date: "2000-10-01T16:46:00Z" +title: Parallel Searching in Gnut +--- + +Like the title says, I finally added multi-searching capabilities to +<a href="http://www.mrob.com/gnut/">Gnut</a>. Well actually, I just +sent the patch to the maintainer. It should be in the next version of +Gnut, but you can download the patch +<a href="/download/#gnut_multi_search_diff">here</a> (it patches +clean against 0.4.14, the most recent version of Gnut). +<br /><br /> + +So classes started for me again. Hurray, I guess. Actually, this +term shouldn't be that bad -- I'm actually taking a coupel of +interesting classes. +<br /><br /> + +Finally, I watched a really interesting documentary on the 1992 +presidential elections called Spin. Check it out +<a href="http://www.phdepot.com/">here</a>. It's focus is on +the media in politics and spin doctors, but it takes the best shots +I've ever seen at Pat Robertson and his CBN goons. Let me know if +it's still overloaded when you try and download the files -- I +have them saved locally and I can set up a mirror. +<br /><br /> + +That's all for today. + diff --git a/content/posts/2000-10-02-minor-updates-and-new-software.html b/content/posts/2000-10-02-minor-updates-and-new-software.html new file mode 100644 index 0000000..1675a84 --- /dev/null +++ b/content/posts/2000-10-02-minor-updates-and-new-software.html @@ -0,0 +1,44 @@ +--- +date: "2000-10-02T23:25:00Z" +title: Minor Updates and New Software +--- + +I posted my backup scripts for the web server to the +<a href="/download/">Download page</a>, you can check it out +<a href="/download/#backup_sh">here</a>. Also, the +<a href="/projects/cam/">Cam page</a> finally has some content, +including a screenshot showing off some neat feh features. I +added a browser check-list and some design tips to the +<a href="/code/">Code page</a>, and I also moved the view +any page section to the top. The <a href="/feedback/">Feedback +page</a> is now titled the <a href="/contact/">Contact page</a> +because that's what it really is. The sidebar and +<a href="/map/">Site Map</a> also received various updates, and +I fixed a tiny rendering problem for +<a href="http://www.lynx.org/">Lynx</a>. +Last of all, I updated the front page to hold 8 news items +instead of 5 -- news was getting flushed to the archives a bit +quicker than I wanted it to. +<br /><br /> + +I updated to the newest version of +<a href="http://gnomeicu.gdev.net/">GnomeICU</a>. It's looking good. +Not only did they fix the annoying send-through-server bug (eg all +the disappearing ICQ messages), but they added a "message chat" feature +ala ICQ for Windows. Keep up the good work, guys. +<br /><br /> + +I also updated <a href="http://galeon.sourceforge.net/">Galeon</a>. +Not a whole lot of new stuff, but the latest release does improve +the bookmark handling, and it adds an almost-full-screen option. +I'm still waiting for the big four: working global keybindings, +cookie support, plugin support (hopefully native Netscape plugin +support, but that might be asking a bit much), and functional file +transfer. +<br /><br /> + +I'm thinking about whipping up a linux help page, ala +<a href="http://www.linuxbrit.co.uk/">Tom Gilbert's</a> Linux help +spot. Let me know if you're interested in seeing something like +this, and if so, what you'd like me to cover. + diff --git a/content/posts/2000-10-03-yet-another-gnut-patch.html b/content/posts/2000-10-03-yet-another-gnut-patch.html new file mode 100644 index 0000000..8749bb1 --- /dev/null +++ b/content/posts/2000-10-03-yet-another-gnut-patch.html @@ -0,0 +1,30 @@ +--- +date: "2000-10-03T18:49:00Z" +title: Yet Another Gnut Patch +--- + +So I got a response from <a href="mailto:mufano at gcctech.com">Robert +Mufano</a> (the lead developr for +<a href="http://www.mrob.com/gnut/">Gnut</a>), and he really liked my +multi-search patch. He's gonna make a few minor tweaks, but it should +be in 0.4.15. I sent him one more patch to slightly improve the +behavior or "list" and "lclear" (specifically, they reference searches +by an integer ID instead of a GUID-hashed one, and you can use ranges +with lclear). As usual, you can grab the patch early on my +<a href="/download/">Download page</a>. +<br /><br /> + +Oh yeah, I ran this page through <a href="http://validator.w3.org/">the +W3C HTML Validator</a>, and the results were pretty good. I did +catch a few obscure HTML errors in my server-side includes, but +nothing that affects rendering or layout (at least not in Netscape or +IE). Also, I added a little description blurb to the +<a href="/download/">Download page</a>. And, in the spirit of saving +the best for last, you can now download version 0.2 of my View script +(the magic behind the backend-navigation on the +<a href="/code/">Code page</a>). Version 0.2 fixes several minor +bugs, adds support for more URL types, and adds anti-cracking +protection. Grab it <a href="/download/#view_0_2_pl">here</a>. The +documentation on this bad-boy is nonexistant, so if you'd like some help +getting it set up, let me know. + diff --git a/content/posts/2000-10-17-osx-planetarion-and-more.html b/content/posts/2000-10-17-osx-planetarion-and-more.html new file mode 100644 index 0000000..910b719 --- /dev/null +++ b/content/posts/2000-10-17-osx-planetarion-and-more.html @@ -0,0 +1,32 @@ +--- +date: "2000-10-17T13:34:00Z" +title: OSX, Planetarion, and More! +--- + +<a href="http://www.richlowe.net/">Richlowe</a> introduced +Jeff and I to a game called <a href="http://www.planetarion.com/"> +Planetarion</a>; it's an entirely web-based space strategy game, with +over 20,000 players. I've been playing it for a couple weeks now, and +I'm pretty hooked. +<br /><br /> + +Also, Sean installed <A href="http://www.apple.com/macosx/">Mac OS X</a> +on his machine. I added his uptime to my sidebar, so you can compare +his pathetic OSX uptime to my incredible Linux uptimes. Oh, and you +can see a screenshot of OSX +<a href="/screenshots/20001016-2128-seans_osx.jpeg">here</a>. +<br /><br /> + +I've been rewriting the core for <a href="/projects/ewl/">EWL</a>, and +I posted a super-early snapshot of the new tree. You can check it out +<a href="/projects/ewl/ewl-0.3-20001017-1736.tar.gz">here</a>. Note +that I have not finished merging the older code in, so there isn't any +pretty graphics or theming just yet. +<br /><br /> + +Finally, I did a little bit of clean-up to the <a href="/download/">Download +page</a>. It's now divided into several sections, and each item has a +modification stamp and a cute little icon. I'ma still at a loss, +however, as to how I'm supposed to follow item #1 on +<a href="http://twistedpath.org/website-rules.html">Term's Website Rules</a>. + diff --git a/content/posts/2000-10-22-more-page-updates.html b/content/posts/2000-10-22-more-page-updates.html new file mode 100644 index 0000000..e3b130b --- /dev/null +++ b/content/posts/2000-10-22-more-page-updates.html @@ -0,0 +1,21 @@ +--- +date: "2000-10-22T10:02:00Z" +title: More Page Updates... +--- + +I finally reorganized the <a href="/links/">Links page</a> so it'd be +a bit easier to grok. Check it out and let me know what you think. +<br /><br /> + +I've been sick with the flu or something for the last couple days now, +but it appears to be clearing up. I usually feel pretty good after +being sick (because I no longer feel like absolute crap); Today is +no exception. Wahoo! +<br /><br /> + +Jesse pointed me towards <a href="http://www.theunderdogs.org/">The +Underdogs</a>, a has-been PC videogame archive. +<a href="http://www.battlebots.com/">Battlebots</a> was linked from +<A href="http://www.memepool.com/">Memepool</a>, and it looks kind of +amusing. Anwyays, that's all for today... + diff --git a/content/posts/2000-10-31-privacy-counterstrike-gnut-and-more.html b/content/posts/2000-10-31-privacy-counterstrike-gnut-and-more.html new file mode 100644 index 0000000..4ede402 --- /dev/null +++ b/content/posts/2000-10-31-privacy-counterstrike-gnut-and-more.html @@ -0,0 +1,52 @@ +--- +date: "2000-10-31T10:08:00Z" +title: Privacy, Counterstrike, Gnut, and More... +--- + +I just read <a href="http://www.kuro5hin.org/?op=displaystory;sid=2000/10/31/0481/1037">this story</a> over on <a href="http://www.kuro5hin.org/">Kuro5hin</a>. +The thing that bothers me is that it sounds strikingly similar to something +that happened to me (although the FBI didn't get involved, and I didn't +lose any hardware). Well, there are ways of protecting yourself; always +use <a href=http://www.ssh.fi/">SSH</a>, use +<a href="http://www.pgp.com/">PGP</a> (or, even better, +<a href="http://www.gnupg.org/">GnuPG</a>), and +<a href="http://www.anonymizer.com/">Anonymizer</a>. +<a href="http://www.linuxdoc.org/HOWTO/Security-HOWTO.html">Here</a> is +a good overview of security- and privacy-related information. I also +have a <a href="/links/#crypto">Cryptography, Security, and Privacy</a> +section on my <a href="/links/">Links</a> page. +<br /><br /> + +I finally got a chance to play +<a href="http://www.counter-strike.net/">Counter-Strike</a>. +For those of you who don't know, CS is technically a MOD for Half-Life, +which I haven't really seen yet. Anyway, CS is really damn cool. You +play as either a SWAT team member or a terrorist, and the weapons are +modeled after real-life ones. The control is kind of screwy, but I +think that's just me getting used to it. +<br /><br /> + +<a href="http://www.mrob.com/gnut/">Gnut 0.4.15</a> is out, but it's +not what you think. Apparently they forgot a header in the 0.4.14 build, +so they fixed that and rereleased as 0.4.15. This means all my +nifty <a href="/download/patch.phtml">patches</a> for Gnut 0.4.14 still +work on 0.4.15. +<br /><br /> + +I've been doing a lot of work on <a href="/projects/ewl/">EWL</a> again +lately. <a href="http://www.linuxbrit.co.uk/">Tom Gilbert</a> fixed +a really nasty bug that I was having trouble tracking down. This +week I've been trying to get the layout and size-request code working. +Feel free to contribute if you've got suggestions. The Enlightenment +CVS server has moved to <i>cvs.enlightenment.sourceforge.net</i>; see +the <a href="http://www.enlightenment.org/cvs.html">Enlightenment +CVS Page</a> for anonymous CVS instructions. +<br /><br /> + +I added ACTIONKEY modifiers to each of the main sections on the +sidebar. The meta key + first letter of Main through Links will +take you to the respective section. Apparently this HTML 4.0 feature +isn't supported in Netscape 4.x, but it is supported in Internet +Explorer and Mozilla. The Meta key for MacOS is Command, and it's +Alt For Windows. It's redefinable in X11, but usually Alt. + diff --git a/content/posts/2000-11-01-gnut-patches.html b/content/posts/2000-11-01-gnut-patches.html new file mode 100644 index 0000000..54b1f1d --- /dev/null +++ b/content/posts/2000-11-01-gnut-patches.html @@ -0,0 +1,11 @@ +--- +date: "2000-11-01T08:00:00Z" +title: Gnut patches... +--- + +I sent two more patches for <a href="http://www.mrob.com/gnut/">Gnut</a> +to the maintainer last night. I haven't heard back yet, I expect them +to be included in version 0.4.16. You can hunt for them on the +<a href="/download/">Download page</a>, or just skip directly to the +<a href="/download/patch.phtml">Patch section</a>. + diff --git a/content/posts/2000-11-06-php-and-stuff.html b/content/posts/2000-11-06-php-and-stuff.html new file mode 100644 index 0000000..d0c93de --- /dev/null +++ b/content/posts/2000-11-06-php-and-stuff.html @@ -0,0 +1,40 @@ +--- +date: "2000-11-06T22:01:00Z" +title: PHP and Stuff +--- + +So I sat down the other evening and read all the way through the +<a href="http://www.php.net/">PHP</a>. Wow! They've got a lot of +really cool stuff. Integrated crypto, db support, session management, +electronic cash payment support, and a bunch more nutty stuff that I +can't even think of right now. I'm thinking about adding some php +stuff ot this site; I've just gotta figure out a way to work it in +without horribly mangling what I've already got. +<br /><br /> + +OH yeah, Attyz -- the local #e perl bigot -- pointed me in the direction +of <a href="http://www.masonhq.com/">HTML::Mason</a>, a Perl module +that allows you to embed Perl with the <% foo %> syntax (ala +ASP and PHP). I haven't had a chance to look throught it yet, but +what I saw looked cool. +<br /><br /> + +Still no word on my latest updates to +<a href="http://www.mrob.com/gnut/">Gnut</a>; I guess the maintainer is +on vacation or something. :/ Guess I'll have to wait to find out the +status of my patches. In the meantime, you can read some interesting +thoughts I had regarding <a href="http://gnutella.wego.com/">Gnutella</a> +and peer-to-peer networking technology in +<a href="http://www.advogato.org/person/pabs">my Advogato diary</a> +(yup, I actually updated it). +<br /><br /> + +For those of you who haven't had a chance to try out +<a href="http://www.planetarion.com/">Planetarion</a>, now is your +last chance to create an account before the game starts again. I'm +not sure exactly when they're going to start the next round, but it's +supposed to be sometime this week. If you do start playing, make sure +to join <a href="http://www.richlowe.net/">Richlowe</a>, +<a href="http://www.linuxbrit.co.uk/">Giblet</a>, myself and several +others in the <i>FEH</i> alliance. + diff --git a/content/posts/2000-11-09-nautilus-and-other-useless-stuff.html b/content/posts/2000-11-09-nautilus-and-other-useless-stuff.html new file mode 100644 index 0000000..1ca74c9 --- /dev/null +++ b/content/posts/2000-11-09-nautilus-and-other-useless-stuff.html @@ -0,0 +1,26 @@ +--- +date: "2000-11-09T12:33:00Z" +title: Nautilus and other Useless Stuff +--- + +After reading yet another article about Nautilus on +<a href="http://www.slashdot.org/">/.</a>, I decided to take a look +for myself. The result was <a href="/reviews/nautilus-PR2/">this +review</a> (it was linked on Tom Gilbert's page several hours ago, +so you may have already seen it). Apparently people in #e found it +fairly amusing, so I thought I'd share it with the rest of you. +<br /><br /> + +<a href="http://www.richlowe.net/">Richlowe</a> has been +sending me patches for <a href="/projects/cam/">Cam</a> like crazy. +At last count I had about 5 pending in my Inbox. His patches fix +some quirks with the command-line options, and add titles to the +config file. Mind you, I haven't given the patches anything more than +a cursory glance, so who knows if they work at all! :) +<br /><br /> + +I've been paying pretty close attention to the elections, but not +necessarily because I'm concerned about one soft-money whore or the +other winning. In fact, <a href="http://www.theonion.com/onion3640/bush_or_gore.html">this article</a> pretty much sums up how I feel (although I +do believe that Bush is an idiot). Finally, <a href="http://www.csse.monash.edu.au/~damian/papers/HTML/Perligata.html">Perl in Latin</a>. + diff --git a/content/posts/2000-11-11-planetarion-2001.html b/content/posts/2000-11-11-planetarion-2001.html new file mode 100644 index 0000000..43099c0 --- /dev/null +++ b/content/posts/2000-11-11-planetarion-2001.html @@ -0,0 +1,35 @@ +--- +date: "2000-11-11T05:33:00Z" +title: Planetarion 2001 +--- + +Time for <a href="http://www.planetarion.com/">Planetarion</a> has +officially started. They've updated the graphics for the site; it +looks damn smooth now. If you haven't tried Planetarion yet, +give it a try. You'll like it. +<br /><br /> + +With all the fun and games going on in the US presidential elections +right now, not enough attention is being payed to the Palm Beach +ballot issue. Well <a href="http://fusion94.org/">fusion94</a> has +come up with a solution. <a href="http://fusion94.org/ballot.php">Here</a> +is a new ballot, redesigned with a more Palm Beach-friendly layout. +<br /><br /> + +I've gotten a bunch of feedback regarding my <a href="/reviews/nautilus-PR2/">review of Nautilus</a>, so I decided to add a feedback section. It's +at the bottom of the article. To the larger sites: if you want to +post the article, that's fine, but please mirror it rather than +linking; I don't have the bandwidth for a large amount of traffic. +<br /><br /> + +I finally applied the patches from richlowe, and version 0.4 of Cam +will be available shortly on the <a href="/projects/cam/">Cam page</a>. +<br /><br /> + +In case anyone missed it, yesterday was my birthday. I had a +great time -- thanks to everyone from #e, especially +<a href="http://www.linuxbrit.co.uk/">Tom Gilbert</a> for the +unique birthday card. My parents sent me a bit of money, so I'm +getting the long-awaited hardware upgrade real soon now. Okay, +that's all for today. + diff --git a/content/posts/2000-11-13-whooooooooop.html b/content/posts/2000-11-13-whooooooooop.html new file mode 100644 index 0000000..54b954b --- /dev/null +++ b/content/posts/2000-11-13-whooooooooop.html @@ -0,0 +1,27 @@ +--- +date: "2000-11-13T10:03:00Z" +title: Whooooooooop! +--- + +Okay, a lot of new stuff going on. I spent this weekend hacking on +<a href="http://www.linuxbrit.co.uk/giblib/">giblib</a>; I added +binary trees, hashes, queues, stacks, and a few new list calls. Then +I moved on to <a href="http://www.linuxbrit.co.uk/gom/">Gom</a>, +adding text-piping, and background image support. Finally, I wrote +a perl wrapper for Gom called Rollover +that allows you to quickly create both the HTML and images for +JavaScripted sidebars. Version 0.2 and a sample template file are +available <a href="/projects/rollover/">here</a>. +<br /><br /> + +<a href="http://www.richlowe.net/">Richlowe</a> has been +sent in several patches for both <a href="/projects/cam/">Cam</a> and +<a href="/projects/rollover/">Rollover</a>. The Rollover patches +are mostly Perl sanitization, but he's rewritten enough of Cam at +this point that he's now a co-author. Thanks for all the help, +dude! +<br /><br /> + +And the best news; I am now the proud owner of a AMD Duron 700! Thanks +again to everyone for the great birthday! + diff --git a/content/posts/2000-11-19-tetrinet-and-gphone.html b/content/posts/2000-11-19-tetrinet-and-gphone.html new file mode 100644 index 0000000..3c240d8 --- /dev/null +++ b/content/posts/2000-11-19-tetrinet-and-gphone.html @@ -0,0 +1,25 @@ +--- +date: "2000-11-19T13:40:00Z" +title: Tetrinet and Gphone +--- + +<a href="http://twistedpath.org/">Term</a> has come up with some +ingenous new ways of wasting our time. Last night he introduced me to +<a href="http://gphone.sourceforge.net/">Gphone</a> a +<a href="http://www.speakfreely.org/">SpeakFreely</a> compatible +internet phone that uses GSM compression (ie the compression used in +many cellular phones). A word of caution: you need a decent +microphone, or it will be extremely difficult for the other person +to understand you. +<br /><br /> + +Also, Term introduced us to the exciting world of +<A href="http://www.tetrinet.org/">Tetrinet</a>, and online +multiplayer tetris game. If you're using Linux, you should check out +<a href="http://gtetrinet.sourceforge.net/">GTetrinet</a>, +a GTK+-based Linux client. There's a list of Tetrinet servers +available <a href="http://www.tetrinet.org/frame/ip.html">here</a>, +but we've been having so much fun playing that I put up a permanent +server at <i>tetrinet.pablotron.org</i>. You can monitor our game +rankings over on <a href="/tetrinet/">my tetrinet page</a>. + diff --git a/content/posts/2000-11-20-enlightenment-menu-fun.html b/content/posts/2000-11-20-enlightenment-menu-fun.html new file mode 100644 index 0000000..d889b76 --- /dev/null +++ b/content/posts/2000-11-20-enlightenment-menu-fun.html @@ -0,0 +1,42 @@ +--- +date: "2000-11-20T23:08:00Z" +title: Enlightenment Menu Fun +--- + +Seems like noone makes anything fun for +<a href="http://www.enlightenment.org/">Enlightenment</a> menus. +Well, I decided to write a few. +<a href="/downloads/script.phtml#e_stock_menu_0_1_tar_gz">This one</a> +generates real-time stock quotes in your E menu. If you select the +menu item, it looks up the symbol on +<a href="http://finance.yahoo.com/">Yahoo's Finance page</a>. Neat. +And <a href="/downloads/script.phtml#e_cam_menu_0_1_tar_Gz">this one</a> +builds an E menu of your <a href="/projects/cam/">Cam</a> bookmarks, +which is makes things even easier than typing "cam person". Both +the scripts check to see if they've already added themselves to the +toplevel User menu, so you can run them more than once without any +adverse effects (ie via a cron job or whatever). +<br /><br /> + +Oh yeah. I made yet another change to the scoring on +<a href="/tetrinet/">my Tetrinet page</a>. Basically, a person +who does pretty good in a lot of games will now rate higher than +someone who does incredibly well in a few games. The idea is to +provide incentive for the good players to keep playing. +<br /><br /> + +I noticed the <a href="http://www.mrob.com/gnut/">Gnut page</a> +is now linking directly here for my uncommitted patches. For +those of you who don't know, you can apply these patches as +follows: +<br /> +<font face="sans-serif" size="-1"> +<ul> +cd gnut-0.4.16/<br /> +patch -p5 < path/to/patchfile-blah.diff<br /> +make && su -c "make install"<br /> +</font> +</ul> +Okay, that's all for today. My video card arrives tomorrow, so +I'm going to need some sleep. + diff --git a/content/posts/2000-11-20-tetrinet-server-patch.html b/content/posts/2000-11-20-tetrinet-server-patch.html new file mode 100644 index 0000000..0846384 --- /dev/null +++ b/content/posts/2000-11-20-tetrinet-server-patch.html @@ -0,0 +1,19 @@ +--- +date: "2000-11-20T00:06:00Z" +title: Tetrinet Server Patch +--- + +I've made a bunch of updates to +<a href="/tetrinet/">my Tetrinet page</a>, including a bunch of +links, and a completely revamped ranking section. Check it out +and let me know what you think. Also, it looks like the Windows +version of Tetrinet has issues connecting to my server. I'm +not entirely sure what's causing the problem, but if I can't +patch the existing server, I'll migrate everything over to the +"official" UNIX server. +<br /><br /> +Also, both the ranking CGI and the patch to the tetrinet server are +available on <a href="/downloads/">my Downloads page</a>. Both are +quick hacks at the moment; you will have to make changes to the CGI +if you want it to work on your system. + diff --git a/content/posts/2000-11-20-whoops.html b/content/posts/2000-11-20-whoops.html new file mode 100644 index 0000000..3b4b939 --- /dev/null +++ b/content/posts/2000-11-20-whoops.html @@ -0,0 +1,34 @@ +--- +date: "2000-11-20T08:33:00Z" +title: Whoops +--- + +I forgot to mention the cool stuff I've been doing with my new computer. +My video card will be here tomorrow. For those of you who don't know, +I'm getting a eVGA NVidia GeForce 2 MX TwinView (dual-monitor and tv-out +support). There's a really good review for the card over on +<a href="http://www.nvnews.net/">NVNews</a>. My monitor should be here +this time some week. +<br /><br /> + +I also now have an blowfish encrypted partition, courtesy of the +<a href="http://www.kerneli.org/">the International Kernel patch</a>. +Now I just gotta figure out what I need to hide. +<br /><br /> + +I've been making some changes to the page here and there. There's a +few new things on the sidebar, and I've been slowly adding more stuff +to the links section. Expect yet another project in a few days. +<br /><br /> + +Well, they released a new version of +<a href="http://www.mrob.com/gnut/">Gnut</a>, and it's got some -- +but not all -- of my new patches. The reasons are too complicated to +explain here, but I'll put up an explanation and a few more patches +soon. For now, you can patch my features into the latest version +yourself by grabbing them from the <a href="/downloads/patch.phtml">Patch +section</a> on my <a href="/downloads/">Download page</a>. Finally, +I saw <a href"http://dss.clip2.com/gnutella.html">this interesting +study on Gnutella</a> linked from <a href="http://www.slashdot.org/"> +Slashdot</a> today. Give it a read; it's a really interesting article. + diff --git a/content/posts/2000-11-29-television-and-tetrinet.html b/content/posts/2000-11-29-television-and-tetrinet.html new file mode 100644 index 0000000..0743d1e --- /dev/null +++ b/content/posts/2000-11-29-television-and-tetrinet.html @@ -0,0 +1,37 @@ +--- +date: "2000-11-29T20:38:00Z" +title: Television and Tetrinet +--- + +I finally got around to patching +<a href="ftp://ftp.tetrinet.org/pub/tetrinet/unix/servers/">the +official Tetrinet server</a>. I added a Makefile and moved some of +the documentation around, so I'm distributing it as a tarball at +the moment. This is not a fork per se; I intend to submit my +modifications back to the developers eventually. I also modified +the CGI for +<a href="/tetrinet/">my Tetrinet page</a> so the ranking +works again, made a few slight modifications to the +<a href="/tetrinet/config/game.conf">default server configuration</a>, +and reset all the scores to zero. Also, +<a href="mailto:term@kempler.net">term</a> has put my patched server +up in his private CVS repository; hopefully we'll get a chance to +bastardize it some more really soon. Feel free to drop me an email +if you've got any suggestions. +<br /><br /> + +Also, I picked up a WinTV card the other day. It's neat being able +to watch TV onscreen, but the drivers for this thing are absolutely +terrible. So far I've had at least three hard locks, and one +instance of my parts of my filesystem just disappearing. From +what I've read, the support in the 2.4 kernels is much better, but +then I'm going to be fighting to get Quake working. I think I've +gotten things smoothed out a bit, but if it gives me any more +trouble I'll have to do the kernel upgrade. +<br /><br /> + +We've managed to get a bunch more people hooked on +<a href="http://www.planetarion.com/">Planetarion</a>, so I decided to +put up a quick page with some helpful resources. Check it out +<a href="/planet/">here</a>... Okay, that's it for today. + diff --git a/content/posts/2000-12-28-remember-me.html b/content/posts/2000-12-28-remember-me.html new file mode 100644 index 0000000..8dd9d47 --- /dev/null +++ b/content/posts/2000-12-28-remember-me.html @@ -0,0 +1,14 @@ +--- +date: "2000-12-28T11:22:00Z" +title: Remember Me? +--- + +Remember me? This is just a short update to let you know I'm still +alive. I've made a lot of changes to the page in the last couple of +weeks: I moved the Tetrinet rankings to a <a href="/tetrinet/rankings/">new page</a>, prettied up the navigation bar at the bottom of the page, and +cleaned up the sidebar. I've got my system just about completely set +up; I'll let you know more in a bit. For now, +<a href="http://slashdot.org/comments.pl?sid=00/12/28/0114250&cid=84">this +post</a> on <a href="http://www.slashdot.org/">SlashDot</a> is one of the +funniest I've seen in a while. + diff --git a/content/posts/2001-01-05-does-he-ever-update-his-page.html b/content/posts/2001-01-05-does-he-ever-update-his-page.html new file mode 100644 index 0000000..4b1a75e --- /dev/null +++ b/content/posts/2001-01-05-does-he-ever-update-his-page.html @@ -0,0 +1,73 @@ +--- +date: "2001-01-05T22:38:00Z" +title: Does He Ever Update His Page? +--- + +Here's the big update I've been promising. First, I realized I never +told anyone about my new system. Here's what I've got: Duron 700, +GeForce 2 MX TwinView, 128 megs of RAM, a 45 gig UDMA66 Western Digital +hard drive, a Hauppage WinTV Go, a SoundBlaster 128 PCI, and an +Intellimouse Explorer (that's right, the +<a href="http://www.microsoft.com/mouse/">best mouse in the world</a>). +Caveats: The NVidia Linux driver does not currently support the +TwinView feature, although I did pop my cursed S3 ViRGE in and give +multihead a try. You can check out the screenshot +<a href="/screenshots/20001207-2030-2048x768-multihead.png">here</a>. +Also, I'm still having a bit of problems with the WinTV card under +the 2.2.x kernel. 2.4.0 was just released yesterday, but I have to wait +for 2 things: the <a href="http://www.kerneli.org/">International +Kernel Patch</a> (so I can access my 500 meg encrypted partition), and +support for the NVidia kernel module. I've read that +<a href="http://www.darkrock.co.uk/">[Bb]o[wr]is.*</a> ported the +driver to 2.3.x, but I haven't actually heard anything from NVidia or +talked to him about it, so I'm going to wait and see. Until then, +the WinTV is off-limits unless I feel like either rebooting afterwards +or risking the "magical disappearing filesystem game of fun" (I already +lost several great Bjork MP3s). On the positive side, I was getting +hard locks until I manually upgraded the i2c and bttv kernel modules; +now I just get wierdness that requires a reboot. +<br /><br /> + +As for the page, I've been making changes here and there. The most +notable change is probably the sidebar; I decided it didn't really +fit with the look for the rest of the page, so I added a bumpmapped +effect to it's image as well. Let me know what you think. The +astute readers will note the addition of a CVS link on the sidebar; +yes, I've got a CVS server with some stuff I'm working on, and no, +it's not ready for public consumption just yet. I'll let y'all know +when it's ready. +<br /><br /> + +Software, software. I've been trying out tons of new stuff since I +got this new machine. First of all, +<a href="http://divx.euro.ru/">AVI File</a> is one of the best +media players I've seen in a while. It plays (suprise!) AVI files, +including -- everyone's favorite -- +<a href="http://divx.ctw.cc/">DivXs</a>. I grabbed all my roommate's +DivX's, and I've been watching them while I wait for 2.4.x so I can +use my WinTV again. The other thing I've been using a lot is +<a href="http://www.gkrellm.net/">GKrellM</a>. +<a href="http://www.richlowe.net/">Richlowe</a> tried to get +me to install it a few months back, but I never bothered listenign to +him. Well, I wish I had. GKrellM has replaced all my epplets, and +it uses less CPU time, less desktop space, and actually does a lot +more (line in volume control, mousewheel support, better theming, +etc etc). I don't have it in a screenshot yet, but I'll take one soon +so you can see my new and improved desktop. Finally, I've been +playing around with +<a href="http://www.uk.research.att.com/vnc/">VNC</a> a bit. It's +sort of like +<a href="http://www.math.fu-berlin.de/~guckes/screen/">screen</a>, +but for X. Basically, you launch VNC, start some X applications, +then you can reconnect from other machines, even MacOS and Windows +machines. Or a web browser! The protocol isn't encrypted, but it's +cake to set up SSH port forwarding +(ssh -C -L localport:remotehost:remoteport remotehost, then start the +VNC viewer). Finally, i started using +<a href="http://freshmeat.net/news/1999/10/26/940930996.html">LogColorise</a> +for my logs. You can see it in any of my +<a href="/screenshots/latest.jpeg">latest screenshots</a>. +<br /><br /> + +Well, that about covers it. I'll update more later... + diff --git a/content/posts/2001-01-10-plib-pheh-and-more.html b/content/posts/2001-01-10-plib-pheh-and-more.html new file mode 100644 index 0000000..cfebbb3 --- /dev/null +++ b/content/posts/2001-01-10-plib-pheh-and-more.html @@ -0,0 +1,33 @@ +--- +date: "2001-01-10T01:40:00Z" +title: PLib, Pheh, and More +--- + +Okay, I posted release versions of +<a href="/projects/plib/">PLib</a> and +<a href="/projects/pheh/">Pheh</a>. Yes, that's right, I've _actually_ +been working on code again. Pheh is "strikingly similar" to +<a href="http://www.linuxbrit.co.uk/">Tom Gilbert's</a> image +viewer <a href="http://www.linuxbrit.co.uk/feh/">Feh</a>, except Pheh +uses Evas, so it supports OpenGL acceleration and a few other goodies. +Check it out and let me know what you think. +<br /><br /> + +I changed the logo right above the sidebar. I think it looks better +than the old one, but who knows. What I really need is some color. +Also, Sean's OSX machine is no more,so I've removed the OSX uptime +from the sidebar. He's gone back to MacOS 9 for the time being... +<br /><br /> + +After over three years, I finally got sick of the default look for +<a href="http://www.bitchx.com/">BitchX</a>. So I'm trying out the +cypress theme from <a href="http://irc.themes.org/">irc.themes.org</a>. +I've tweaked one of the built-in cypress themes a bit; you can see the +result in <a href="/screenshots/latest.jpeg">my latest screenshot</a>. +<br /><br /> + +As usual, Apple's <a href="http://www.apple.com/powerbook/">newest +Powerbook</a> looks absolutely amazing. I'm going to try and use one at +the local Mac outlet tomorrow. Anyway, I'm up waaay past my bedtime, so +that's it for tonight. + diff --git a/content/posts/2001-01-17-divx-is-my-friend.html b/content/posts/2001-01-17-divx-is-my-friend.html new file mode 100644 index 0000000..d89c171 --- /dev/null +++ b/content/posts/2001-01-17-divx-is-my-friend.html @@ -0,0 +1,55 @@ +--- +date: "2001-01-17T10:47:00Z" +title: DivX is My Friend +--- + +I found a really great <I>Star Trek: The Next Generation</I> DivX site; +I've been grabbing episodes since last night. Check it out +<a href="http://members.tripod.co.uk/Kristok/episodes/tng/">here</a>. +Speaking of DivX, the next generation of the DivX ;-) codec is available, +but this time with source. See <a href="http://www.projectmayo.com/opendivx/">Project Mayo: OpenDivX</a> for more information. +<br /><br /> + +<a href="/projects/pheh/">Pheh</a> 0.2.1 is out. I've got v0.2.2 sitting +here on my box; it's almost ready to go. The only problem is, I upgraded +to the SGI GLU headers so compile the latest CVS Evas, and I must have +gotten a broken snapshot, because now no GLU-related stuff works correctly. +Oh well, I'll fix it soon enough. 0.2.2 adds webcam and native +<a href="/projects/cam/">Cam</a> bookmark support. I'm still working on +sane keyboard support; I might hold off v0.2.2 until that is ready to +go. +<br /><br /> + +I've been having a horrendous time with kernel 2.4. Here's +the problem; I've got a GeForce 2 MX TwinView and the KT133 chipset. +Now, kernel 2.4 has KT133 AGP support via agpgart, and the +NVidia driver has #ifdefs so it doesn't use it's own AGP support. So, +in theory I _should_ be able to compile the kernel with KT133 agpgart +support, reboot, and compile the NVidia drivers (which would exclude +it's own AGP driver). Alternatively, I could compile 2.4 without +agpgart, and compile the NVidia driver, which would use it's own (working) +KT133 support. Fortunately for me neither of those two options +works; I get a hard lock after my ssh-agent dialog closes. Before +you ask, yes I've applied the linux-2.4.0-PR patch; 0.9-5 won't +compile under 2.4 without it. I've also tried the TNT2 M64 POST +patch (someone in #nvidia thought it might help), and various other +crap. The only thing I haven't tried yet is upgrading from XFree86 +4.0.1 to 4.0.2. At this point, I suspect that may be the problem, +but I'm sticking with 2.2 for the time being. +<br /><br /> + +On a more positive note, I tried out both SVGATextMode (132x60) and +fbcon. Wow! FBCon looks great -- totally smooth fonts in +console; absolutely amazing -- but it's a bit on the slow side. +I like SVGATextMode a bit more at the moment. It's not noticeably +slower, but there's a _ton_ of console space. I actually felt a bit +cramped once I got back into X. +<br /><br /> + +Finally, I've heard rumors about the new Nvidia Linux drivers having +multihead or even xinerama GL support. Needless to say, I've been +checking the +<a href="http://www.nvidia.com/Products/Drivers.nsf/Linux.html">page</a> +about 1000 times a day waiting for it to come out. Then again, the +drivers were supposed to come out before christmas, so who knows... + diff --git a/content/posts/2001-01-22-who-s-your-dual-head-daddy.html b/content/posts/2001-01-22-who-s-your-dual-head-daddy.html new file mode 100644 index 0000000..a7a0c13 --- /dev/null +++ b/content/posts/2001-01-22-who-s-your-dual-head-daddy.html @@ -0,0 +1,29 @@ +--- +date: "2001-01-22T06:06:00Z" +title: Who's Your Dual-Head Daddy? +--- + +Courtesy of the NVidia 0.9-6 drivers, I now have a hardware accelerated +dual-head setup. Hooray! I modified my screenshot scripts and took +a quick, unspiffed up screenshot. Check it out +<a href="/screenshots/latest.png">here</a>. This also means I'm running +kernel 2.4. Everything seems to be working okay, except the mounting +system refuses to set up a loopback device automatically for my +encrypted partition, so I have to do that by hand. Oh, and I'm still +getting filesystem corruption when i run my WinTV, so that's been +canned for the time being. +<br /><br /> + +I released a new version of <a href="/projects/pheh/">Pheh</a> today; +new features inclue keyboard support, cam support, a code cleanup, an +easier to read config file, and some other goodies. The ChangeLog is +<a href="/projects/pheh/ChangeLog">here</a>, the diff from 0.2.1 is +<a href="/projects/pheh/pheh-0.2.1_to_0.2.2.diff.gz">here</a>, and +the full tarball is +<a href="/projects/pheh/pheh-0.2.2.tar.gz">here</a>. +<br /><br /> + +Oh yeah, read +<a href="http://cryptome.org/jg-wwwcp.htm">this article</a> (it was +linked from Slashdot today). That's all for now... + diff --git a/content/posts/2001-02-01-gibmeet-and-plib.html b/content/posts/2001-02-01-gibmeet-and-plib.html new file mode 100644 index 0000000..f37b233 --- /dev/null +++ b/content/posts/2001-02-01-gibmeet-and-plib.html @@ -0,0 +1,17 @@ +--- +date: "2001-02-01T12:16:00Z" +title: GibMeet and PLib +--- + +Just a quick update to let everyone know that I'm alive, and that the +new versions of <a href="/projects/gibmeet/">GibMeet</a> and +<a href="/projects/plib/">PLib</a> are available for download. If +you're using <a href="/projects/pheh/">Pheh</a>, you'll need to upgrade +PLib for the next version (coming out soon). +<br /><br /> + +Oh yeah, I upgraded the pablotron server. I had a P200 collecting +dust in the corner, so I figured I'd move Pablotron from it's trust +486/66. I also added a larger hard drive and some more memory, so +things should be just a tad bit faster now. + diff --git a/content/posts/2001-02-06-snow-man-is-the-man.html b/content/posts/2001-02-06-snow-man-is-the-man.html new file mode 100644 index 0000000..af8a753 --- /dev/null +++ b/content/posts/2001-02-06-snow-man-is-the-man.html @@ -0,0 +1,74 @@ +--- +date: "2001-02-06T18:31:00Z" +title: SNOW-MAN IS THE MAN! +--- + +Uh... Okay, long story short, Pablotron has a new home, @Home is a +steaming load, and <a href="http://www.snowman.net/">Snow-Man</a> is +my new best friend. He's now hosting both Pablotron and Pablotron +DNS. I'm so grateful I even put his logo below my sidebar ;-). +It might take a few more days for the DNS changes to propagate +everywhere, but pablotron.com appears to work correctly for most +people. +<br /><br /> + +As for the site, most things should still work correctly. The tetrinet +rankings will be broken for a bit while i rewrite the CGI, but I'm not +going to rush that. AFAIK, noone even plays tetrinet anymore :). Also, +the uptimes and stats aren't going to update for a while until I +rewrite the scripts. +<br /><br /> + +The new version of <a href="/projects/gibmeet/">GibMeet</a> includes +plugin support. A few reference plugins are included with the +newest tarball, and you can grab the ones made by +<a href="http://www.richlowe.net/">Richlowe</a> and +<a href="http://koudelka.nerdland.org/">koudelka</a> +right <a href="/projects/gibmeet/plugins/">here</a>. You'll need +<a href="/projects/plib/">PLib</a> version 0.1.2 or better ain order +for GibMeet to compile. Speaking of PLib, a few people have reported +problems compiling PLib; specifically, undefined references to db. +I'm not actually using the db wrapper at the moment, and I'll probably +disable it in the next version of PLib (pending a rewrite). For now, +do the following to disable the db stuff: + +<br /><ul> +<li>remove pdb.o from the line beginning with OBJS= in plib/plib/Makefile +<li>remove the text "-ldb" from plib-config.c +</ul> + +Before anyone emails me about it, yes i know autoconf could take care of +this madness for me. I'll get around to it :). +<br /><br /> + +As for development stuff. The CVS version of PLib has a new dynamic +resource loading API. In it's simplest form, you simply do a +<i>data = p_resource_get("urltype://url_parameters", &len)</i> and +PLib will find the correct dynamic library, load it, and pass your +URL off to it. Note that the URL isn't limited to things like http +and ftp. I plan on adding support for things like SQL and XML, so +you could do somethign like +<i>PList *list = p_resource_get("mysql://pabs@s3kr3tp4ss:db.pablotron.org:\"select 1-5 from News where (Title like '%snow-man%');\"", &len);</i> +or whatever . Anwyay, this is still a ways off; right now I'm working +on the ftp, http, and shttp modules (all of which will probably be +implemented with <A href="http://curl.haxx.se/libcurl/">libcurl</a> +(the only sane http library I've found -- thanks +<a href="http://www.darkrock.co.uk/">[Bb]o[wr]is.*</a> ;-) ). +<br /><br /> + +Oh yeah, <a href="http://www.linuxbrit.co.uk/">Tom Gilbert</a> renamed +<A href="http://www.linuxbrit.co.uk/gom/">Gom</a> to +<a href="http://www.linuxbrit.co.uk/gozer/">Gozer</a> due to a name +conflict (I need to do the same soon with PLib. :-( ). For those of +you using <a href="/projects/rollober/">Rollover</a>, you'll either +need to upgrade to CVS, or edit the rollover.pl script manually (just +chnage all occurances of gom to gozer and you should be okay). +<br /><br /> + +Okay, that's all for now. Thanks again to +<a href="http://www.snowman.net/">Snow-Man</a> for helping me out. +If you have the time, don't forget to drop into #e (on +<a href="http://openprojects.nu/">OPN IRC</a>) and wish +<a href="http://www.geocities.com/NapaValley/2596/">Schmoo</a> a +happy birthday. + diff --git a/content/posts/2001-02-12-cvs-is-fun.html b/content/posts/2001-02-12-cvs-is-fun.html new file mode 100644 index 0000000..9fe0033 --- /dev/null +++ b/content/posts/2001-02-12-cvs-is-fun.html @@ -0,0 +1,16 @@ +--- +date: "2001-02-12T01:09:00Z" +title: CVS is Fun +--- + +Okay, I updated the things in <a href="/cvs/">CVS</a>. I added +<a href="/projects/pbfvm/">Pbfvm</a> and +<a href="/projects/q3dag/">Q3dag</a>, and put up quick +pages for both of them. Also, I moved +<a href="/projects/pheh/">Pheh</a> into CVS; for some +reason I managed to completely forget to put it there. :) +Holler if you have any trouble with the CVS server. +<br /><br /> + +That's all for today. :) + diff --git a/content/posts/2001-02-26-the-magical-disappearing-pablo.html b/content/posts/2001-02-26-the-magical-disappearing-pablo.html new file mode 100644 index 0000000..e0f563c --- /dev/null +++ b/content/posts/2001-02-26-the-magical-disappearing-pablo.html @@ -0,0 +1,33 @@ +--- +date: "2001-02-26T15:19:00Z" +title: The Magical Disappearing Pablo +--- + +I just realized I haven't updated in two weeks. I've been playing +around with <a href="http://www.freeenetproject.org/">Freenet</a>. +The HTTP proxy stuff is really cool; it's fun to browse Freenet +URLs in my browser. +<br /><br /> + +Anyway, I've been spending most of my time working on a +<a href="http://www.microsoft.com/">secret project</a>. It's coming +along a lot quicker than I anticipated, so hopefully I'll have +something everyone can mess around within the next couple of +months. I guess we're going to be using +<a href="/projects/plib/">PLib</a>, so I <i>really, really</i> need +a new name for it. I was thinking libprc or something +<br /><br /> + +Just so I have something new and interesting, +<a href="http://www.wired.com/wired/archive/people/neal_stephenson/"> +here</a> is a list of Neil Stephenson's articles in Wired. Also, +his personal page is <a href="http://www.well.com/user/neal/">here</a>. +And, if by some chance you've mananged to escape without reading +"In the Beginning was the Command Line", follow +<a href="http://students.ou.edu/W/Amos.P.Waterland-1/wellspring/command_line.html">this link</a> and read it now. +<br /><br /> + +Oh yeah. In case anyone doesn't know, I'm looking for a new job. If +anyone has any openings (preferrably in the bay area), feel free to +<a href="mailto:pabs@pablotron.org">mail me</a>. + diff --git a/content/posts/2001-03-07-version-0-2.html b/content/posts/2001-03-07-version-0-2.html new file mode 100644 index 0000000..11e5050 --- /dev/null +++ b/content/posts/2001-03-07-version-0-2.html @@ -0,0 +1,86 @@ +--- +date: "2001-03-07T02:50:00Z" +title: Version 0.2 +--- + +Lots of new stuff today. Version 0.2.0 of +<a href="/projects/plib/">PLib</a> is available, you can download it +<a href="/download/plib-0.2.0.tar.gz">here</a>. The latest version +has vastly improved (but slightly incompatible) list and hash +implementations. Also, +<a href="http://www.linuxbrit.co.uk/">Tom Gilbert</a> has redone a +lot of the POption code, added a PResource saver, and fixed a +bunch of other stuff. +<br /><br /> + +I've also released version 0.2.0 of +<a href="/projects/pbfvm/">Pbfvm</a>. You can download it +<a href="/download/pbfvm-0.2.0.tar.gz">here</a>. New features +include interpreter optimization, transparent zlib support, +one-liner support, piped interpretation, and a partial +"pseudo-ASM" implementation (which adds conditional statements, +copy, move, branch, return, and other tratitinal operations). +<br /><br /> + +I wrote a really basic UDP chat client as a reference for my +friend's network programming assignment. I thought it was kind of +amusing, so I decided to post it for everyone else to play with. +Check it out <a href="/download/pchat-0.2.tar.gz">here</a>. It's +version 0.2 partly because I cleaned up a few things before posting +it, but mainly so I'd have 0.2 of everything. :) +<br /><br /> + +The versions of Cam available on <a href="/projects/cam/">my Cam +page</a> and through +<a href="http://www.enlightenment.org/cvs.html">Enlightenment +CVS</a> have been out of sync for monthes, so I decided to +finally get my act together. The latest version of Cam is +available <a href="/downloads/cam-0.4.tar.gz">here</a>. Most of +it has been cleaned up and rewritten by +<a href="http://www.richlowe.net/">Richard Lowe</a>, +and there's too much new stuff to cover here. You will need the +CVS version of <a href="http://www.linuxbrit.co.uk/feh/">Feh</a> +for some of the newer features, but it should work okay with older +versions of Feh as well. +<br /><br /> + +Okay, so that does it for new software. As for my computer, I've +given up on bttv until they can actually get it to work without +destroying parts of my filesystem. On the plus side, I finally +got TrueType fonts working. I decided to whip up some new logos +for Pablotron as a test of the new fonts. The joke ones +are <a href="/gallery/ttf_logos/red_dots.png">here</a> and +<a href="/gallery/ttf_logos/cactus.png">here</a>, and the logo +that I was thinking about using permanently is +<a href="/gallery/ttf_logos/bitstream.png">here</a>. Also, I'm +trying to move all the downloadable content on my page into the +<a href="/downloads/">Download page</a>. It's slow going, but I +should be finished sometime later this week. +<br /><br /> + +Oh yeah, I downloaded <a href="http://www.kde.org/">KDE 2.1</a> +the other day. As most of you know, I don't really run +<A href="http://www.gnome.org/">GNOME</a> or +<a href="http://www.kde.org/">KDE</a>, but I like to keep them +around for the application dependencies, and to see how they're +doing. Anyway, Konqueror is really good; it does everything that +<a href="/reviews/nautilus-PR2/">Nautilus</a> tries to do, +without dragging my computer to a screeching halt. Also, if +you're in to IDEs, then KDevelop can't be beat. Though personally, +I prefer <a href="http://www.vim.org/">Vim</a> and +<a href="http://ctags.sourceforge.net/">Ctags</a> to an IDE. +Speaking of VIM, I just downloaded version 6.0w the other day; +the new vertical split feature is great. I haven't had a chance +to play with all of the other new features just yet, but 6.0w +has worked great so far. Lemme see, other new software... +<a href="http://gnomeicu.sourceforge.net/">GnomeICU 0.60.1</a> is +out. <a href="http://divx.euro.ru/">Avifile 0.53.5</a> fixes +several bugs... +<br /><br /> +Anyway, I've got more to say, but this news post is already +long enough. +<a href="http://www.riaa.com/Protect-Campaign-1.cfm">This</a> +is my one funny URL for the day, and if you haven't seen it +before, check out <a href="http://www.plastic.com/">Plastic</a>. +Whew. + diff --git a/content/posts/2001-03-16-pheh-phun.html b/content/posts/2001-03-16-pheh-phun.html new file mode 100644 index 0000000..88c1d2d --- /dev/null +++ b/content/posts/2001-03-16-pheh-phun.html @@ -0,0 +1,76 @@ +--- +date: "2001-03-16T02:28:00Z" +title: Pheh Phun +--- + +Well, it's not ready for release just yet, but I've been working on a +new version of <a href="/projects/pheh/">Pheh</a> today. A pre-0.3.0 +screenshot showing off the new thumbnail window is available +<a href="/projects/pheh/pheh-0.3.0-pre-shot.png">here</a>. Other +good stuff: <a href="/projects/plib/">PLib</a> 0.2.0 support, +slightly improved Evas and X code, and probably more stuff that I +forgot. If you don't feel like waiting, you can always grab Pheh +from CVS; instructions are available on <a href="/cvs/">my CVS +page</a>. +<br /><br /> + +I've noticed that Evas, or at least the CVS version, appears to leave +some bizarre visual artifacts. This could just be the NVidia +OpenGL implementation, or it could be the SGI GLU 1.3 GLU headers +I'm using. Anyway, if you have the same problem, try turning off +pheh hardware acceleration (comment the +<code>render_method 3d_Hardware</code> line in your ~/.pheh/phehrc). +<br /><br /> + +Speaking of <a href="http://www.nvidia.com/">NVidia</a>, the 0.9-7 +drivers came out a few days ago. Things are still working good, +and I get a noticeable framerate boost in +<a href="http://www.quake3arena.com/">Quake 3</a>. It looks like +they tweaked the TwinView support and managed to alleviate some of +the "dual-head tax". The new drivers also support the +<a href="http://www.xfree86.org/~keithp/render/">X Render</a> +extension, although I haven't had a chance to try it out just yet. +There's a patch for +<a href="http://www.trolltech.com/products/qt/">QT</a> that adds +anti-aliased font support to QT (and, by extension, +<a href="http://www.kde.org/">KDE</a> applications) floating +around somewhere; I'll post a bit about it once I've had a chance +to try it out. +<br /><br /> + +While I'm thinking about it, I just remembered that +<a href="http://www.eazel.com/software">Nautilus 1.0</a> came out +the other day. Don't waste your time trying it. While they did +manage to address a few of +<a href="/reviews/nautilus-PR2/">my complaints abut PR2</a>, +<a href="http://www.eazel.com/">Eazel</a> +apparently neglected to fix the two most important problems with +Nautilus. As such, I have found three more appropriate mascots for +Nautilus; one for it's +<a href="/gallery/proposed_nautilus_mascots/speed.jpg">speed</a>, +one for it's +<a href="/gallery/proposed_nautilus_mascots/size.gif">size</a>, +and one for it's +<a href="/gallery/proposed_nautilus_mascots/stability.gif">stability</a>. +If you're still gung-ho about installing Nautilus, you should +probably consider a +<a href="http://www-personal.umich.edu/~natpoor/eniac/">leaner</a> or +<a href="http://www.microsoft.com/WindowsMe/">more stable</a> +alternative. On the other hand, if you're actually looking for a +decent graphical file manager, I recommend either +<a href="http://www.konqueror.org/">Konqueror</a> or +Andrew Shugg's <i>unsupported and unmaintained</i> +<a href="ftp://ftp.neep.com.au/pub/neep/pub/cvs.enlightenment.org/"> +older EFM CVS snapshots</a>. +<br /><br /> + +Oh yeah, <a href="http://www.rasterman.com/">Raster</a> redesigned +his page -- I really like the new layout. He even broke down and +divided his photo gallery into several pages. I suspect it was +just to drown out the cacophony of +<a href="http://www.linuxbrit.co.uk/">whiny</a> +<a href="http://www.richlowe.net/">modem</a> +<a href="http://www.linux2k.freeserve.co.uk/">users</a>. Anyway, +I'm pretty sure I've managed to offend just about everyone, so that's +it for today. + diff --git a/content/posts/2001-03-19-tab-madness.html b/content/posts/2001-03-19-tab-madness.html new file mode 100644 index 0000000..59e3a3f --- /dev/null +++ b/content/posts/2001-03-19-tab-madness.html @@ -0,0 +1,38 @@ +--- +date: "2001-03-19T02:28:00Z" +title: Tab Madness +--- + +I saw yesterday's post on <a href="http://www.slashdot.org/">Slashdot</a> +about <a href="http://www.zsh.org/">Zsh</a>, and I decided to give it +a try. I really liked the tab completion and a few other features, +but Zsh was just too different than Bash for me to make a permanent +switch. So I decided to upgrade to Bash 2.04 and mess with it's +programmable completion instead. I started with a few from the samples +included with Bash and added a bunch for things like tar, ssh, and +cvs. Several people on #e asked for my completions, so I decided to +clean them up a bit, add an installer script, and put them online. +The result is <a href="/projects/bash_tweaks/">Bash Tweaks</a>. Enjoy. +<br /><br /> + +I've been learning more about +<a href="http://www.xmlsoft.org/">XML</a>, and I decided to work on +making this page a bit more transitional friendly. I've converted +the sidebar and all the server-side includes, which means most of +the layout for the page should be okay, but I haven't started on +all the content yet. I decided to preserve rendering in older +browsers (mainly Netscape 4). The two tags that it seems to get +pissed off about are <code><br/></code> and +<code><div align="center"></code>, so I'm going to stick with the +more compatible, but less compliant <code><br></code> and +<code><center></code> (at least until everyone can affort to run a +modern browser). +<br /><br /> + +Finally, if you've got a GeForce 2 MX TwinView (and possibly even +a GeForce 2 MX), and you want to try the NVidia 0.9-7 drivers, be +sure you grab the 0.9-769 drivers, _not_ the 0.9-767 drivers. I +consistently got hard locks in Quake 3 with the 0.9-767 drivers, but +the 0.9-769 drivers appear to be working okay. Okay, that's it for +today. + diff --git a/content/posts/2001-04-03-configure-amp-amp-moonwalk.html b/content/posts/2001-04-03-configure-amp-amp-moonwalk.html new file mode 100644 index 0000000..5312115 --- /dev/null +++ b/content/posts/2001-04-03-configure-amp-amp-moonwalk.html @@ -0,0 +1,30 @@ +--- +date: "2001-04-03T09:35:00Z" +title: ./configure && Moonwalk +--- + +The CVS version of <a href="/projects/plib/">PLib</a> now has +autoconf and automake support. I've tested it on systems without +<a href="http://www.pcre.org/">PCRE</a> and +<a href="http://www.openssl.org/">SSL</a>, and things appear to +compile and work okay. There's also support for systems without +libdl (Dynamic Loader) support, but I haven't checked to see if +they work correctly yet. +<br /><br /> + +Also, I put up another review. It's a horrible ROM that srl from +#e (<a href="http://www.openprojects.net/">OPN IRC</a>) sent me. +Check it out <a href="/reviews/moonwalker/">here</a>. +<br /><br /> + +The current round in <a href="http://www.planetarion.com/">Planetarion</a> +just ended. In a week or so they'll delete all the existing accounts. +If you want to get in on the action, now is a good time to start +reading the documentation and the forums. +<br /><br /> + +Finally, I wouldn't believe it if I hadn't written it myself, but +apparently my <a href="/about/">About page</a> has actually been +updated. All you ever didn't want to know about me is now available +in a chewable bite-sized capsule. + diff --git a/content/posts/2001-04-05-php-baby.html b/content/posts/2001-04-05-php-baby.html new file mode 100644 index 0000000..97414fe --- /dev/null +++ b/content/posts/2001-04-05-php-baby.html @@ -0,0 +1,12 @@ +--- +date: "2001-04-05T10:45:00Z" +title: PHP Baby! +--- + +I just converted the entire site to PHP with a little shell script +and Perl magic. There's several things that are going to be +broken until I get a chance to fix them (probably this evening). +Specifically, the <a href="/code/">Code page</a>, the offended +URL, and the <a href="/screenshots/">Screenshots page</a>. I'll +get it finished this evening. + diff --git a/content/posts/2001-04-05-php-rocks.html b/content/posts/2001-04-05-php-rocks.html new file mode 100644 index 0000000..9d6777e --- /dev/null +++ b/content/posts/2001-04-05-php-rocks.html @@ -0,0 +1,22 @@ +--- +date: "2001-04-05T18:45:00Z" +title: PHP Rocks +--- + +Okay, the news generator script, offended URL, and +<a href="/screenshots/">Screenshots page</a> are working again. I +still need to fix the script for the +<a href="/download/">Download page</a>, and the +<a href="/code/">Code page</a>. Oh yeah, the Screenshots page +has a new feature; you can now link to specific screenshots and +navigate through them one-by-one, like +<a href="/screenshots/?date=20010323-0637">this</a> or like +<a href="/screenshots/?date=20010122-0532">this</a>. +<br /><br /> + +Also, after a night's worth of tweaking, the entire site is now +themable. I've only got one theme done right now, +<a href="?theme=lunixbrat">Lunixbrat</a>. You can switch between +themes on the <a href="/themes/">Themes page</a>. I'll add some +more themes this weekend. + diff --git a/content/posts/2001-04-07-more-themes-and-news-navigation.html b/content/posts/2001-04-07-more-themes-and-news-navigation.html new file mode 100644 index 0000000..6579670 --- /dev/null +++ b/content/posts/2001-04-07-more-themes-and-news-navigation.html @@ -0,0 +1,13 @@ +--- +date: "2001-04-07T19:10:00Z" +title: More Themes and News Navigation +--- + +I added a few more themes to the <a href="/themes/">Themes page</a>; +<a href="/?theme=one-bit">One-Bit</a> and -- my personal favorite -- +<a href="/?theme=glass">Glass</a>. +<br><br> + +Also, I wrote a new news engine and converted all of my entries to the +new system. Check out the News Navigator at the bottom of the page. + diff --git a/content/posts/2001-04-10-page-cleanups-and-plib.html b/content/posts/2001-04-10-page-cleanups-and-plib.html new file mode 100644 index 0000000..4b7631f --- /dev/null +++ b/content/posts/2001-04-10-page-cleanups-and-plib.html @@ -0,0 +1,26 @@ +--- +date: "2001-04-10T01:08:00Z" +title: Page Cleanups and PLib +--- + +More cleanups to the page. No more evil +<code><center></code> and +<code><br></code> tags; they've been replaced by their +standards-compliant counterparts. I also fixed small errors all +over the site -- almost every page linked from the sidebar has +minor updates, although most of them were HTML-related. +<br /><br /> + +For those of you who are here to check out +<a href="/projects/plib/">PLib</a>, you might want to take a look at +the <a href="/cvs/">CVS</a> version. The CVS version has full +autoconf/automake support, the networking API (including +transparent <a href="http://www.openssl.org/">SSL</a> support), +<a href="http://www.richlowe.net/">Richard Lowe's</a> +<a href="http://www.pcre.org/">PCRE</a> wrapper, and other nice +stuff. A few warnings about the CVS version: the documentation is +horribly out of date, and the networking API may still have some kinks +that need to be ironed out. Anyway, have fun, and feel free to +<a href="mailto:pabs@pablotron.org">send me</a> comments, criticism, +patches, etc. + diff --git a/content/posts/2001-04-13-new-theme-epic-te.html b/content/posts/2001-04-13-new-theme-epic-te.html new file mode 100644 index 0000000..0b1192a --- /dev/null +++ b/content/posts/2001-04-13-new-theme-epic-te.html @@ -0,0 +1,24 @@ +--- +date: "2001-04-13T23:02:00Z" +title: New Theme, EPIC+TE +--- + +Added a new site theme that mimics the color scheme of +<a href="http://www.plastic.com/">Plastic.com</a>. You can read a +brief description on the <a href="/themes/">Themes page</a>, or +try the theme out directly by clicking <a href="?theme=plastic">here</a>. +<br /><br /> + +Also, I switched my IRC client from +<a href="http://www.bitchx.org/">BitchX</a> to +<a href="http://www.epicsol.org/">EPIC</a> + +<a href="http://knuckle.sandwich.net/te/">TE</a>. So far, I think I +like EPIC+TE more than BitchX; the TE configuration is really easy +and intuitive, and EPIC+TE seems a bit faster than BitchX. +<br /><br /> + +Finally, schmoo comandeered +<a href="http://www.schmoo.org/">schmoo.org</a> and has started +building an her online empire! Drop by the site and let her +know what you think ;). Okay, that's it for today. + diff --git a/content/posts/2001-04-15-pabsdot-joins-the-fray.html b/content/posts/2001-04-15-pabsdot-joins-the-fray.html new file mode 100644 index 0000000..b1eb865 --- /dev/null +++ b/content/posts/2001-04-15-pabsdot-joins-the-fray.html @@ -0,0 +1,15 @@ +--- +date: "2001-04-15T07:08:00Z" +title: Pabsdot Joins the Fray +--- + +Added a new theme called Pabsdot. Check it out on the +<a href="/themes/">Themes page</a>. I can't think of anything else +that's newsworthy at the moment, so I'll add something else to this +news item later today. +<br /><br /> +Okay I thought of something. On the off chance you hadn't heard, +<a href="http://www.tribes2.com/">Tribes 2</a> is out for Win32, and +the Linux version is just around the corner. I can already feel +my productivity dropping. + diff --git a/content/posts/2001-04-25-planetarion-fun.html b/content/posts/2001-04-25-planetarion-fun.html new file mode 100644 index 0000000..cb515d6 --- /dev/null +++ b/content/posts/2001-04-25-planetarion-fun.html @@ -0,0 +1,42 @@ +--- +date: "2001-04-25T04:30:00Z" +title: Planetarion Fun! +--- + +I quietly released a new version of <a href="/projects/plib/">PLib</a> +a few days ago. PLib 0.3.0 has a whole bunch of new goodies; here's +a quick list: +From <a href="http://www.linuxbrit.co.uk/">Tom Gilbert</a>, resource +loader cleanups, and a new modular resource saver. From +<a href="http://www.richlowe.net/">Richard Lowe</a>, a +<a href="http://www.pcre.org/">PCRE</a> wrapper, and new warning and +debugging calls. From me: PList and PHash cleanups, added the +PVector type (think Vector in Java), PList and PHash API cleanups and +bugfixes, TCP/IP and UNIX domain socket utility functions, TCP/IP +and UNIX domain socket client and server (with simple +<a href="http://www.openssl.org/">SSL</a> support), a short example +program (a chat client and server with option file handling, and SSL +support), C++ friendlyness, and autoconf/automake magic. Note that +PCRE, OpenSSL, and even libdl are optional. If you don't have OpenSSL +installed, for example, the PLib will still compile and work just +fine; albiet without SSL capabilities. Thanks to Tom and Richard +for all the help on PLib. +<br /><br /> + +The next round of <a href="http://www.planetarion.com/">Planetarion</a> +has started. Since the old BattleCalc a) doesn't work this round and +b) was Windows-only (of course, it ran great in +<a href="http://www.winehq.com/">Wine</a> ;) ), I decided to whip up my +own battle calculator. It's still pretty rough, and there isn't a GUI +just yet -- although it does create CSV output so you can view the +battle in Excel, Gnumeric, or your spreadsheet program of choice). +Anyway, you can download my battle calculator +<a href="/projects/pacalc/">here</a>. +<br /><br /> + +Oh yeah, I also updated my <a href="/planet/">Planetarion resource +page</a>. Having trouble starting your planet? Be sure to check +out the +<a href="http://www.sinterklaas123.f2s.com/planetarion/3dayplan.htm">3-Day +Plan</a>, a rough guide on your planet's first 72 hours. + diff --git a/content/posts/2001-05-23-insert-interesting-title-here.html b/content/posts/2001-05-23-insert-interesting-title-here.html new file mode 100644 index 0000000..5efab49 --- /dev/null +++ b/content/posts/2001-05-23-insert-interesting-title-here.html @@ -0,0 +1,45 @@ +--- +date: "2001-05-23T05:37:00Z" +title: Insert Interesting Title Here +--- + +Well, I haven't updated in quite a while, so I thought I'd toss some +stuff up here. First of all, I went to Virginia a few weeks ago +to visit some friends. I got to meet +<a href="http://www.snowman.net/">Steve (Snow-Man)</a>, +<a href="http://bma.debian.net/">Brian (bma)</a>, +<a href="http://www.aphrael.net/">Karen (aphrael)</a>, +<a href="http://www.linuxbrit.co.uk/" + onMouseOver="window.status='Hugh Grant';">Tom (giblet)</a>, +<a href="http://www.schmoo.org/">Sue (schmoo)</a>, +Kevin (het), and +<a href="http://fountainhead.sd.bluemt.net/~gordont/">Gordon (aka +gordont)</a>. Tom and Gordon both took pictures and posted them +on their sites. +<br /><br /> + +I hadn't mentioned it, but I posted two new themes; Terminal and +Kindergarten. You can try them out on the <a href="/themes/">Themes</a> +page. Also, I wrote a couple of utilities for +<a href="http://www.planetarion.com/">Planetarion</a>: +<a href="/projects/pacalc/">PACalc</a>, a planetarion battle +calculator, and <a href="/projects/pascantracker/">PA Scan Tracker</a>, +a way to organize sector and unit scans. I haven't done too much +work on the battle calculator, since an there's a fully functional +online calculator (linked off my <a href="/pa/">Planetarion Resources +page</a>), but I'm still updating the scan tracker. +<br /><br /> + +<a href="/projects/plib/">PLib 0.2.1</a> is out, with a few +bugfixes, and version 0.2.2 is just around the corner, with a ton of +minor tweaks and improvements. Thanks to attyz for pointing my +stupid autoconf error out. +<br /><br /> + +I've been doing a lot of work on my +<a href="http://www.microsoft.com/">secret project</a>. I can't say +much about it yet, but I can say that things are coming along really +well. I can also say that we'll probably have something to show +within the next two months. The core is mostly done, and we're +just working on the main pieces now. + diff --git a/content/posts/2001-05-27-home-again-whee.html b/content/posts/2001-05-27-home-again-whee.html new file mode 100644 index 0000000..006f48b --- /dev/null +++ b/content/posts/2001-05-27-home-again-whee.html @@ -0,0 +1,21 @@ +--- +date: "2001-05-27T15:01:00Z" +title: Home Again, Whee! +--- + +Just a quick note to let everyone know I'm back from my interview in +Virginia. People I met this time around: +<a href="http://mazeone.dcaa.net/">Michael (mazeone)</a> and +<a href="http://www.cyberquirky.org/">Jon Ann (lilyj)</a>. +<a href="http://bma.debian.net/">Brian (bma)</a> managed to snap +a few pictures of me in my suit; the pictures are +<a href="/gallery/suit-bma_is_a_dead_man/pabs-suit1.jpg">here</a> and +<a href="/gallery/suit-bma_is_a_dead_man/pabs-suit2.jpg">here</a>. +Also, <a href="/gallery/misc/pabs-lily-webcam.jpg">here</a> is a +picture of lilyj and I hanging out at +<a href="http://www.snowman.net/">Steve's (Snow-Man)</a> place. +<br /><br /> + +Anyway, I just got home a few hours ago, so I'm still unpacking, +cleaning, and getting caught up. + diff --git a/content/posts/2001-05-29-updates-we-don-t-need-no-stinking-updates.html b/content/posts/2001-05-29-updates-we-don-t-need-no-stinking-updates.html new file mode 100644 index 0000000..33ab4d3 --- /dev/null +++ b/content/posts/2001-05-29-updates-we-don-t-need-no-stinking-updates.html @@ -0,0 +1,26 @@ +--- +date: "2001-05-29T21:40:00Z" +title: Updates? We don't need no stinking updates! +--- + +I've got all sorts of new stuff for you kids to play with. First of all, +I finally got around to rewriting the <a href="/download/">Download</a> +and <a href="/links/">Links</a> sections. Both have three different +list modes, and you can filter both by section, or just view individual +items. I also updated the <a href="/map/">Site Map</a> and +<a href="/contact/">Contact</a> sections. There's a new site theme +called Forge; you can check it out on the <a href="/themes/">Themes +page</a>. +<br /><br /> + +<a href="/projects/plib/">PLib</a> 0.2.2 is out. It includes +fixes to the list, hash, resource, and vector code. Thanks to Gnea +for catching yet another stupid autoconf mistake. Check out the +<a href="/projects/plib/ChangeLog">ChangeLog</a> or grab the +<a href="/download/plib-0.3.2.tar.gz">latest version</a>. +<br /><br /> + +Finally, <a href="http://www.cyberquirky.org/">Lilyj</a> posted +some pictures of the trip to Virginia. Check them out +<a href="http://www.cyberquirky.org/photos/dc_trip/dinner/">here</a>. + diff --git a/content/posts/2001-06-07-a-part-of-your-balanced-breakfast.html b/content/posts/2001-06-07-a-part-of-your-balanced-breakfast.html new file mode 100644 index 0000000..5ff6a4a --- /dev/null +++ b/content/posts/2001-06-07-a-part-of-your-balanced-breakfast.html @@ -0,0 +1,19 @@ +--- +date: "2001-06-07T14:48:00Z" +title: A Part of Your Balanced Breakfast +--- + +Just a quick note to let people know I released +<a href="/projects/pascantracker/">PA Scan Tracker 0.3.1</a> -- it now +handles Sector, Unit, PDS, and Military scans. Also, I moved +<a href="/cvs/">Pablotron CVS</a> to +<a href="http://www.snowman.net/">Snowy's</a> CVS server. The DNS +should have propagated by now, but there's a change in the CVSROOT; +see the CVS page for more information. +<br /><br /> + +For those of you using the <a href="/themes/">Pabsdot theme</a>, I +added a bunch of new icons to the top. I also cooked up +<a href="/gallery/misc/e_cereal.png">this picture</a> from the +Pabsdot icons. + diff --git a/content/posts/2001-06-19-google-apt-get-install.html b/content/posts/2001-06-19-google-apt-get-install.html new file mode 100644 index 0000000..0cff18c --- /dev/null +++ b/content/posts/2001-06-19-google-apt-get-install.html @@ -0,0 +1,36 @@ +--- +date: "2001-06-19T08:05:00Z" +title: google "apt-get install" +--- + +A few interesting things to report. After months and months of +relentless harassment by +<a href="http://www.snowman.net/">various</a> +<a href="http://mazeone.dcaa.net/">members</a> +<a href="http://www.twistedpath.org/">the</a> +<a href="http://www.linuxbrit.co.uk/">evil</a> +<a href="http://bma.debian.net/">Debian</a> +<a href="http://www.richlowe.net/">Mafia</a>, I finally +succumbed to peer pressure and installed +<a href="http://www.debian.org/">Debian Linux</a> -- or should I say +*cough* GNU/Linux -- on one of my spare machines. My initial +impression is as follows: HOLY CRAP! The installer is a bit rough, +but once you get past that and get apt properly configured, +installing and setting up new software is a joke. It took me about +20 seconds to install Apache (<code>apt-get install apache</code>), +then I realized I didn't have PHP4 installed (<code>apt-get install +php4</code>). Installing other stuff was about the same. +<a href="http://www.linuxbrit.co.uk/">Tom</a> walked me through a +dist-upgrade to unstable (more than a bit of a misnomer, I might add). +After years of the untold pain and suffering that is RPM, Windows, and +MacOS software installs, I am completely in awe of Debian Package +management. I'm sure Debian has it's quirks, but for the moment I'm +completely hooked. In fact, while I was writing this I just installed +ispell to double-check the spelling of a word. +<br /><br /> + +The other interesting bit of news for the day is a little shell +script i wrote for accessing <a href="http://www.google.com/">Google</a>. +You can grab it <a href="/download/?only=google">here</a>. + + diff --git a/content/posts/2001-07-04-you-are-here-gt-x.html b/content/posts/2001-07-04-you-are-here-gt-x.html new file mode 100644 index 0000000..d06b289 --- /dev/null +++ b/content/posts/2001-07-04-you-are-here-gt-x.html @@ -0,0 +1,27 @@ +--- +date: "2001-07-04T07:46:00Z" +title: You Are Here --> X +--- + +Things have calmed down just a tad, so I decided to post a quick update +to the page. In case you hadn't heard, I just started a working with +<a href="http://www.snowman.net/">Snow-Man</a> and +<a href="http://bma.debian.net/">bma</a> at +<a href="http://www.mitretek.org/">Mitretek</a>. Obviously this means +I've been relocating from Corvallis, OR -- the west coast -- to +Annandale, VA -- the east coast. I'm still mostly offline, as parts of +my computers are still either on the west coast or en route here. Most +of the moving and shipping mess should be sorted out by the end of next +week. +<br /><br /> + +My email address stays the same, and my URL stays the same. However, +anything located on x.pablotron.org, 10k.pablotron.org, and +home.pablotron.org will be unavailable until I finish reorganizing. Oh +yeah, I'm surrounded by evil Debianites around here, so I've "decided" +to install Debian on my main machine. <i>"I feel like one of those +people who shave their heads and claim they've always been punk."</i> +(John Cusack's character in "High Fidelity"). Anyway, I'll try and keep +everyone posted on the job, my relocation, and the Debianization of my +main machine. Stay tuned for details! + diff --git a/content/posts/2001-07-20-dmitry-sklyarov.html b/content/posts/2001-07-20-dmitry-sklyarov.html new file mode 100644 index 0000000..6b27bf6 --- /dev/null +++ b/content/posts/2001-07-20-dmitry-sklyarov.html @@ -0,0 +1,36 @@ +--- +date: "2001-07-20T17:02:00Z" +title: Dmitry Sklyarov +--- + +Hi, sorry about the lack of news lately. In case you hadn't heard, +our friend the +<a href="http://www.eff.org/IP/DMCA/">DMCA</a> has been busy wreaking +havoc again. Since there's nothing new here, please take a moment to +read (and hopefully sign) +<a href="http://www.dibona.com/">Chris Dibona's</a> Community +Declaration regarding the arrest and imprisonment of Dmitry Sklyarov. +You can check it out <a href="http://www.dibona.com/dmca/">here</a>. +<br /><br /> + +As an aside, you should consider contacting +<a href="http://www.adobe.com/">Adobe</a> representatives and letting +them know how you feel about purchasing software from companies that +encourage incarcerating non-US citizens under bullshit US laws. I've +already mailed the following people, and I suggest you do the same: + +<ul> +<li><a href="mailto:jcristof@adobe.com?Subject=Dmitry+Sklyarov">jcristof@adobe.com</a></li> +<li><a href="mailto:dstyerwa@adobe.com?Subject=Dmitry+Sklyarov">dstyerwa@adobe.com</a></li> +<li><a href="mailto:lvacante@adobe.com?Subject=Dmitry+Sklyarov">lvacante@adobe.com</a></li> +<li><a href="mailto:ablatchf@adobe.com?Subject=Dmitry+Sklyarov">ablatchf@adobe.com</a></li> +<li><a href="mailto:skrueger@adobe.com?Subject=Dmitry+Sklyarov">skrueger@adobe.com</a></li> +<li><a href="mailto:gbabbit@adobe.com?Subject=Dmitry+Sklyarov">gbabbit@adobe.com</a></li> +<li><a href="mailto:wsaso@adobe.com?Subject=Dmitry+Sklyarov">wsaso@adobe.com</a></li> +</ul> + +Oh yeah, be sure to check the +<a href="http://www.eff.org/">EFF</a> for up-to-date news regarding +Mr. Sklyarov's situation. + + diff --git a/content/posts/2001-07-24-debian-ate-my-motherboard.html b/content/posts/2001-07-24-debian-ate-my-motherboard.html new file mode 100644 index 0000000..3f6f642 --- /dev/null +++ b/content/posts/2001-07-24-debian-ate-my-motherboard.html @@ -0,0 +1,54 @@ +--- +date: "2001-07-24T10:11:00Z" +title: Debian Ate My Motherboard! +--- + +<p> Hooray! <a href="http://www.adobe.com/">Adobe</a> +decided to call off the storm troopers and join the good guys. You can +read all about it +<a href="http://www.eff.org/IP/DMCA/US_v_Sklyarov/20010723_eff_adobe_sklyarov_pr.html">here</a>.</p> + +<p> Oh yeah, I promised an update on the +<a href="http://www.debian.org/">Debian Linux</a> install. Well, so +far things have been going great. I'm now in the unique position of +having either too new of a glibc or too new of a gcc for occasional +applications. Of course, that's my only gripe, and it usually only +takes a bit of tweaking code in order to get it to work properly. </p> + +<p> Anyway, a few days after I installed Debian, my motherboard decided +to crap out on me. The diagnostic LEDs seemed to think it was a dead +CPU, so we went out and got a new Duron 750, which didn't do any good. +A few days later, <a href="http://www.snowman.net/">Snow-Man</a> and I +went out and got a new motherboard (a MSI K7T Turbo instead of a MSI +K7T Pro). That seemed to fix things up nicely.</p> + +<p>I haven't been working on a whole lot lately, but I did manage to +eek in some time to write a quick GUI bash and gdialog wrapper for +<i>apt-cache search</i>; you can grab it +<a href="/downloads/gacs">here</a>. I revamped my bash tweaks, you can +grab the latest version from the +<a href="/projects/bash_tweaks/">Bash Tweaks</a> project page. I also +rewrote and posted an updated version of my +<a href="http://www.vim.org/">VIM</a> config. You can grab it +<a href="/downloads/?only=vim_config_0_1_0_tar_gz">here</a>. I rewrote +most of my <a href="http://www.mutt.org/">Mutt</a> config as well, but +I haven't quite finished packaging that for public consumption just +yet.</p> + +<p>A few random things... Since we share the same office, +<a href="http://bma.debian.net/">Brian</a> has been threatening me +with one of +<a href="http://www.thinkgeek.com/stuff/things/31d8.html">these sissy +Nerf guns</a>. I've decided to get +<a href="http://web.mit.edu/mouser/www/railgun/halluc/intro.html">one +of these</a> just in case. I accidentally stumbled across +<a href="http://astalavista.box.sk/">Astalavista</a>, a great site for +grey and black hat security goodies. Finally, here's a couple nifty +links I found on <a href="http://www.memepool.com/">Memepool</a>: +<ul> +<li><a href="http://www.youdamnkid.com/">You Damn Kid</a>: the funniest comic strip I've seen in quite a while.</li> +<li><a href="http://spine.cx/subway/">Bring Back the Classic Cut</a>: a site protesting <a href="http://www.subway.com/">Subway's</a> new cut. +</ul> +</p> + + diff --git a/content/posts/2001-07-26-banner-ads-suck.html b/content/posts/2001-07-26-banner-ads-suck.html new file mode 100644 index 0000000..1a56e3d --- /dev/null +++ b/content/posts/2001-07-26-banner-ads-suck.html @@ -0,0 +1,19 @@ +--- +date: "2001-07-26T19:52:00Z" +title: Banner Ads Suck +--- + +Well, I finally decided I'd had enough of banner ads. +<a href="http://www.tynian.net/">Brian</a> mentioned something a few days +ago about +<a href="http://www.junkbusters.com/">JunkBuster</a>, so I decided to +spend a bit of time setting it up on my home machine. It took me +a few evenings of adding common urls to my configs, but it's really +starting to pay off now. I went ahead and tossed my config directory +up; you can grab it +<a href="/downloads/?only=junkbuster_0_1_0_20010726_tar_gz">here</a>. +There's a source tarball, an RPM, and a Windows executable available on +the page, and +<a href="http://www.debian.org/">Debian</a> users can just +<code>apt-get install junkbuster</code>. + diff --git a/content/posts/2001-07-26-bash-tweakin-madness.html b/content/posts/2001-07-26-bash-tweakin-madness.html new file mode 100644 index 0000000..c8dd33c --- /dev/null +++ b/content/posts/2001-07-26-bash-tweakin-madness.html @@ -0,0 +1,11 @@ +--- +date: "2001-07-26T21:49:00Z" +title: Bash Tweakin' Madness +--- + +I'm not still awake, and if I was I certainly wouldn't be working on +my +<a href="/projects/bash_tweaks/">Bash Tweaks</a> package. The latest +version, of course, is not available +<a href="/download/?only=bash_tweaks_0_2_1_tar_gz">here</a>. + diff --git a/content/posts/2001-08-05-urls-of-fun.html b/content/posts/2001-08-05-urls-of-fun.html new file mode 100644 index 0000000..112b69e --- /dev/null +++ b/content/posts/2001-08-05-urls-of-fun.html @@ -0,0 +1,10 @@ +--- +date: "2001-08-05T10:18:00Z" +title: URLs of Fun +--- + +I wrote a couple of URL convenience scripts. One brings up a dialog and +allows you to enter a url or a shortcut, and the other prompts you with +a list of the last 20 URLs posted in IRC. You can check them out +<a href="/download/?only=url_scripts_0_1_1_tar_gz">here</a>. + diff --git a/content/posts/2001-08-23-the-shortest-update-ever.html b/content/posts/2001-08-23-the-shortest-update-ever.html new file mode 100644 index 0000000..697329f --- /dev/null +++ b/content/posts/2001-08-23-the-shortest-update-ever.html @@ -0,0 +1,14 @@ +--- +date: "2001-08-23T20:01:00Z" +title: The Shortest Update Ever +--- + +<a href="/downloads/?only=url_scripts_0_1_3_tar_gz">URL Scripts +0.1.3</a>.<br /> +<a href="/downloads/?only=junkcolor_0_1_0_pl">JunkColor 0.1.0</a>.<br /> +<a +href="http://groups.google.com/groups?hl=en&safe=off&th=9a94c5414ed892fd,17&rnum=1&selm=3b852dd7.1831360%40news.qwest.net">Interesting +USENET post</a>.<br /> +Switched back to <a href="http://galeon.sourceforge.net/">Galeon</a> +again. + diff --git a/content/posts/2001-10-10-the-apex-of-page-updates.html b/content/posts/2001-10-10-the-apex-of-page-updates.html new file mode 100644 index 0000000..ec8edf0 --- /dev/null +++ b/content/posts/2001-10-10-the-apex-of-page-updates.html @@ -0,0 +1,117 @@ +--- +date: "2001-10-10T14:14:00Z" +title: The Apex of Page Updates +--- + +<p> +A lot has happened since I last updated my page: +<a href="http://www.tynian.net/">Brian (<i>bma</i>)</a> and +<a href="http://www.aphrael.net/">Karen (<i>aphrael</i>)</a> got +married! Brian's wedding cruise pictures are available +<a href="http://www.tynian.net/pix/cruise-200109/">here</a>. +<a href="http://www.linuxbrit.co.uk/">Tom(<i>giblet</i>)</a> and +<a href="http://www.schmoo.org/">Sue</a> (<i>schmoo</i>) were unable to +join Brian and Karen's wedding cruise due to the post-WTC international +flight mayhem, so they spent the week at my place instead. Tom posted +pictures of the week and the reception +<a href="http://www.linuxbrit.co.uk/pics/2001_09_holiday_virginia/">here</a>. +Also at the reception: Beth (Sue's daughter;she's a great kid and funny +as hell), Kevin (<i>het</i>), Nick (<i>learath</i>), Jimmy and Megan +(Karen's non-Internet-enabled friends that we hang out with quite a bit), +Megan's sister Jill, the man behind the curtain, +<a href="http://www.kainx.org/">Mr. Mej (<i>mej, KainX</i>)</a> +himself, +<a href="http://www.richlowe.net/">Richard (<i>richlowe</i>)</a> and +<a href="http://www.cyberquirky.org/">Jon Anne (<i>lilyj</i>)</a> were +at the reception as well, and they're staying with +<a href="http://www.snowman.net/">Stephen (<i>Snow-Man</i>)</a> +and I for a little while as well. Lots of great +<a href="http://www.gimp.org/">Gimpable</a> pictures of Richard in +Tom's pictures. Not that I would ever +<a href="http://www.linuxbrit.co.uk/pics/2001_09_holiday_virginia/?browse=13&res=640x480">encourage</a> +<a href="/gallery/richlowe/toy.jpg">someone</a> to +<a href="/gallery/coochie_coo/coochie_coo.jpeg">modify</a> a +<a href="/gallery/richlowe/richsheep.jpg">picture</a> of +<a href="/gallery/richlowe/richlowe_for_president.jpeg">Richard</a>, or +of <a href="/gallery/misc/e_cereal.png">anyone else</a> for that matter. +</p> + +<p> +I finally got around to purchasing a CDRW, and I've been burning CDs +like mad. Somehow I managed to accumulate a couple DivX movies, so +I burned those along with a CD of mp3s for work, a full backup of my +home directory, and some other random junk. +</p> + +<p> +Pablotron is semi-broken at the moment. Snow-Man upgraded PHP on the +web server, and it seems to have broken some of my spaghetti PHP. I've +been designing a new backend for another site, and I'll probably update +it to support site themes and port Pablotron to the new backend. The +new backend is much, much cleaner than the current Pablotron one; it +makes extensive use of stylesheets, object oriented PHP, and standard +configuration files (currently only CSV, but I plan on adding XML +support in soon). Here's an example of the differences: +</p> + +<p> +<code> +<?php require("$DOCUMENT_ROOT/ssi/header.php"); ?><br /> +<html><br /> +<head><br /> +<title>Pablotron : Sample Page</title><br /> +</head><br /> +<br /> +<?php require("$DOCUMENT_ROOT/ssi/doc/top.php"); ?><br /> +<?php require("$DOCUMENT_ROOT/ssi/top.php"); ?><br /> +<b>Sample Page</b><br /> +<?php require("$DOCUMENT_ROOT/ssi/mid.php"); ?><br /> +This is a sample page.<br /> +This is a <a href="http://www.sample.com/">sample +url</a><br /> +<?php require("$DOCUMENT_ROOT/ssi/bot.php"); ?><br /> +<br /> +<?php require("$DOCUMENT_ROOT/ssi/doc/bot.php"); ?><br /> +</html><br /> +</code> +</p> + +<p> +Under the new system, that page could be written as follows: +</p> + +<p> +<code> +<?php<br /> +require("$DOCUMENT_ROOT/inc/header.php");<br /> +<br /> +$page = new Page();<br /> +$page->start("samplePage", "Sample Page");<br /> +<br /> +$page->start_item("Sample Page"); ?><br /> +This is a sample page.<br /> +This is a <?php $page->url("sampleUrl", "sample url"); ?><br /> +<?php $page->end_item();<br /> +<br /> +$page->end();<br /> +?><br /> +</code> +</p> + +<p> +Obviously the latter allows us to do all sorts of crazy things that the +former does not. Coupled with CSS, It also strengthens the distinction +between Pablotron's content and the layout. +</p> + +<p> +Some other random stuff; I whipped up a quick script to convert +<a href="http://finance.yahoo.com/">Yahoo! Finance</a> stock quotes to +the GKrellM +<a href="http://www.cs.huji.ac.il/~tolik/fmonitor.html">FMonitor</a> +format, so you can view stocks in GKrellM. You can download it +<a href="/download/fmstocks-0.1.0.tar.gz">here</a>. Well, there's a lot +more going on, but I have to get some sleep, so I'll try and update +again tomorrow. +</p> + diff --git a/content/posts/2001-10-14-kupi.html b/content/posts/2001-10-14-kupi.html new file mode 100644 index 0000000..0c7704e --- /dev/null +++ b/content/posts/2001-10-14-kupi.html @@ -0,0 +1,26 @@ +--- +date: "2001-10-14T09:19:00Z" +title: Kupi +--- + +<p>Wrote a script to handle patching between the main and -ac trees. +It's options are pretty straight-forward:</p> + +<p> +Generate a shell script that will update me to 2.4.12-ac1: +<code>kupi.pl -ug update_me.sh 2.4.12-ac1</code><br /> +Patch up to the latest ac-series patch, then compile and install the +kernel: +<code>kupi.pl -ai</code><br /> +You'll need to make some changes to the base configuration to get it +working on your system, but the Kupi tarball is available +<a href="/download/kupi-0.1.0.tar.gz">here</a>. +</p> + +<p> +Oh yeah, +<a href="http://www3.sympatico.ca/imiller/archive/axe.html">here's</a> +a list of ways to say "Oh my god! There's an axe in +my head" in various languages. +</p> + diff --git a/content/posts/2001-10-18-new-toys.html b/content/posts/2001-10-18-new-toys.html new file mode 100644 index 0000000..fc89103 --- /dev/null +++ b/content/posts/2001-10-18-new-toys.html @@ -0,0 +1,23 @@ +--- +date: "2001-10-18T07:31:00Z" +title: New Toys +--- + + +<p> +Forgot to mention that I switched all my drives to ext3 a few weeks +back. Been working great so far; I've even (accidentally) tested it +with some abrupt power outages, and the journal does it's magic just +like it should. +</p> + +<p> +I got some +<a href="http://www.tyan.com/products/html/tigermp.html">new</a> +<a href="/download/mystery_suprise.txt">toys</a>. More about setting +them up in Linux soon. Also, check out this +<a href="http://modernhumorist.com/mh/0110/war/">war correspondence</a> +(linked from <a href="http://www.fark.com/">Fark</a>). +</p> + + diff --git a/content/posts/2001-10-22-random-stuff.html b/content/posts/2001-10-22-random-stuff.html new file mode 100644 index 0000000..0e9a896 --- /dev/null +++ b/content/posts/2001-10-22-random-stuff.html @@ -0,0 +1,42 @@ +--- +date: "2001-10-22T14:46:00Z" +title: Random Stuff +--- + +<p> +<a href="http://www.xml.com/pub/a/2001/04/18/binaryXML.html">Here</a> is +an interesting discussion about the on-going debate regarding binary XML. +The paragraph about MPEG 7 is particularly interesting. +<a href="http://www.lockergnome.com/issues/special/windowsxp.html">This +article</a> is a brief overview of what's new in Windows XP. +Interesting to see how far behind Microsoft is wrt to some things, and +how far ahead they are on others. For example, the author is excited +about three customizable views and NTP time syncronization, when we've +had that stuff forever. On the other hand, XP and OSX.1 are busy +<i>refining</i> translucent window support, while we're still +<a href="http://www.eax.com/render/#d4">trying to figure it out</a>. +I also stumbled across <a +href="http://www.directron.com/cases---case-fans.html">Directron</a>, an +online hardware vendor with a bazillion different cases, and +<a href="http://www.kerneltrap.com/">Kernel Trap</a>, an interesting +Linux kernel news site. +</p> + +<p> +I picked up a DVD-ROM drive this weekend, but I'm still fighting to get +it playing CSS-scrambled disks. If I have any luck I'll post the +results here. I tried +<a href="http://www.tech9.net/rml/linux/">the preeptible kernel +patch</a>, but it failed catastrophically with my SMP box. It looks +like he corrected a few SMP-related mistakes, so I may give it another +shot in the next few days. +</p> + +<p> +I'd be interested in knowing how <a href="/css_test/">this page</a> +renders in various browsers. I've checked it out in Mozilla, Galeon, +Konqueror, and Opera, and I'd like to know how it renders in +Internet Explorer (Windows and MacOS), ICab, etc. Screenshots or email +welcome. +</p> + diff --git a/content/posts/2001-10-27-preempt-this.html b/content/posts/2001-10-27-preempt-this.html new file mode 100644 index 0000000..6454f58 --- /dev/null +++ b/content/posts/2001-10-27-preempt-this.html @@ -0,0 +1,33 @@ +--- +date: "2001-10-27T01:10:00Z" +title: Preempt This! +--- + +<p> +Just upgraded my kernel to +<a href="http://www.kernel.org/pub/linux/kernel/people/alan/linux-2.4/2.4.13/">2.4.13-ac2</a> +with the <a href="http://www.tech9.net/rml/linux/">preemptible kernel +patch</a> by Robert Love. Everything appears to be working correctly +with SMP now, and my system does seem a little bit faster (although it's +kind of hard to tell <i>;)</i>). Anyway, +<a href="http://www.kerneltrap.com/article.php?sid=328&mode=thread&order=0&thold=0">here</a> +is a great interview with Robert Love describing the preemptable kernel +patch and comparing it with the other reduced-latency kernel patch +floating around. +</p> + +<p> +Otherwise, things seem to be running okay. Still no luck with the DVD +drive; I'm starting to think I've got a bum drive (it throws a ton of +errors regardless of the DVD, player, configuration, etc). The strange +thing is I can mount and read CDs and DVDs just fine; playing them is +just a no-go. +</p> + +<p> +Finally, I posted a no-documentation tarball of my mutt settings. If +you're interested, you can grab them <a +href="/download/mutt_settings-20011027.tar.gz">here</a>. <b>Please</b> +remove my email and name before using these files. +</p> + diff --git a/content/posts/2001-10-28-read-this.html b/content/posts/2001-10-28-read-this.html new file mode 100644 index 0000000..e5b9dc2 --- /dev/null +++ b/content/posts/2001-10-28-read-this.html @@ -0,0 +1,10 @@ +--- +date: "2001-10-28T07:04:00Z" +title: Read This! +--- + +I just stumbled across <a +href="http://www.salon.com/news/feature/2001/10/25/clinton/index.html">this +transcript</a> of former U.S. president Bill Clinton's October 6th +speech at Yale University. Read it or else. + diff --git a/content/posts/2001-10-29-put-wesley-in-the-airlock.html b/content/posts/2001-10-29-put-wesley-in-the-airlock.html new file mode 100644 index 0000000..34d3195 --- /dev/null +++ b/content/posts/2001-10-29-put-wesley-in-the-airlock.html @@ -0,0 +1,12 @@ +--- +date: "2001-10-29T12:37:00Z" +title: Put Wesley in the Airlock +--- + +Just a quick heads up that +<a href="http://www.slashdot.org/">Slashtroll</a> just posted the +answers to the interview questions they sent to +<a href="http://www.wilwheaton.net/">Wil Wheaton</a> a few weeks ago. +YOu can check them out +<a href="http://slashdot.org/article.pl?sid=01/10/29/173252&mode=nested&threshold=1">here</a>. + diff --git a/content/posts/2001-12-25-ptv-engine-page-redesign-and-a-whole-lot-more-tm.html b/content/posts/2001-12-25-ptv-engine-page-redesign-and-a-whole-lot-more-tm.html new file mode 100644 index 0000000..08c7581 --- /dev/null +++ b/content/posts/2001-12-25-ptv-engine-page-redesign-and-a-whole-lot-more-tm.html @@ -0,0 +1,7 @@ +--- +date: "2001-12-25T00:51:52Z" +title: PTV Engine, Page Redesign, and a Whole Lot More (tm) +--- + +Welcome to the new pablotron. I'm still porting things over to the new engine, so it may be a week or so until everything is back to normal. + diff --git a/content/posts/2001-12-31-new-page.html b/content/posts/2001-12-31-new-page.html new file mode 100644 index 0000000..8e69f98 --- /dev/null +++ b/content/posts/2001-12-31-new-page.html @@ -0,0 +1,21 @@ +--- +date: "2001-12-31T15:05:39Z" +title: New Page +--- + +<p> +I just put the new page up. The +<a href="/download/">Download</a>, +<a href="/gallery/">Gallery</a>, +<a href="/links/">Links</a>, +<a href="/backend/">Backend</a>, +<a href="/themes/">Themes</a>, +and <a href="/account/">Account</a> +sections all need more work; I'll take care of +that when i get a chance. Feel free to +<a href="mailto:pabs@pablotron.org">mail me</a> +and let me know what you think of the new +layout. Thanks to everyone in #e for all the +help testing things out. +</p> + diff --git a/content/posts/2002-01-01-first-2k2-post.html b/content/posts/2002-01-01-first-2k2-post.html new file mode 100644 index 0000000..4d4ced2 --- /dev/null +++ b/content/posts/2002-01-01-first-2k2-post.html @@ -0,0 +1,32 @@ +--- +date: "2002-01-01T01:53:41Z" +title: First 2k2 Post +--- + +<p> +You can create accounts now, although there may still be some quirks in +the code. Feel free to create an account and test the comment code out. +I've removed some of the sections I wasn't keeping up to date (such as +Bits and the Site Map), although it's much easier for me to add sections +now, so they may come back at some point. +</p> + +<p> +I've been messing around with <a +href="http://www.ruby-lang.org">Ruby</a> a lot lately. Ruby is +basically an OOP-centric amalgamation of Perl and Python, and it's +really fun to use. <a +href="/screenshots/psi-ruby_gtk_example-20020101.png">Here's</a> a +screenshot of a quick GTK+ mail client I hacked together in an evening +using Ruby. +</p> + +<p> +Oh yeah, the +<a href="http://www.kernel.org/pub/linux/kernel/people/rml/preempt-kernel/">preemptable kernel patch</a> +is working great on my workstation and on vault (my new fileserver). +I also finally got my DVD player and my TV tuner card all set up. Okay, +that does it for tonight. Happy New Year everyone. +</p> + + diff --git a/content/posts/2002-01-04-random-stuff.html b/content/posts/2002-01-04-random-stuff.html new file mode 100644 index 0000000..b582731 --- /dev/null +++ b/content/posts/2002-01-04-random-stuff.html @@ -0,0 +1,21 @@ +--- +date: "2002-01-04T00:51:57Z" +title: Random Stuff +--- + +<p> +Thanks everyone for the compliments on the new +page. For those of you looking for the backend, +it's still not up yet :(. But, you can check out +most of the code right now on the +<a href="/backend/">Backend page</a>; some +interesting places to start are probably +the <a href="/backend/?source=/themes/default/inc/page.php&printable=1">Page class</a>, the <a href="/backend/?source=/themes/default/inc/sidebar.php&printable=1">Sidebar class</a>, and the <a href="/backend/?source=/themes/default/inc/comment.php&printable=1">CommentItem class</a>. +</p> + +<p> +A bunch of random stuff... <a href="http://bma.debian.net/e-irc/index.php?nick=RADKade1">RADKade1</a> posted <a href="http://bender.efterlyst.org/~iceman/xp.jpg">this amusing WinXP picture</a> the other day in IRC. I've been messing around with <a href="http://www.germane-software.com/~ser/software/rexml/">REXML</a>, and I seriously think it's the coolest XML API I've ever seen. That it's written for <a href="http://www.ruby-lang.org/">Ruby</a> in Ruby is quite a coincidence, don't you think? <a href="http://www.foundmagazine.com/displaycase.html">Found Magazine</a> collects found stuff. Wierd. +</p> + +<p>Okay, that's it for now.</p> + diff --git a/content/posts/2002-01-06-nothing-interesting-today.html b/content/posts/2002-01-06-nothing-interesting-today.html new file mode 100644 index 0000000..7b1abe3 --- /dev/null +++ b/content/posts/2002-01-06-nothing-interesting-today.html @@ -0,0 +1,8 @@ +--- +date: "2002-01-06T16:29:23Z" +title: Nothing Interesting Today +--- + +<p><a href="http://www.btinternet.com/~rrnotes/psywarsoc/fleaf/index.htm">Here</a> is a cool PsyOps history page. Oh yeah, everyone look out for the <a href="http://www.newsbytes.com/news/02/173408.html">deadly linux virus</a>; I'm really scared!!!! You should be too!!!(</sarcasm>) +</p> + diff --git a/content/posts/2002-01-07-gestures-in-galeon-cvs.html b/content/posts/2002-01-07-gestures-in-galeon-cvs.html new file mode 100644 index 0000000..66d943f --- /dev/null +++ b/content/posts/2002-01-07-gestures-in-galeon-cvs.html @@ -0,0 +1,10 @@ +--- +date: "2002-01-07T20:30:36Z" +title: Gestures in Galeon CVS +--- + +<p> +I'm sitting here trying the new gestures feature of +<a href="http://galeon.sourceforge.net/">Galeon CVS</a>, and I've got to say it's one of the most interesting browser features I've seen in quite a while. Here's another sentence so this isn't a one sentence post. +</p> + diff --git a/content/posts/2002-01-07-ptv-0-0-1.html b/content/posts/2002-01-07-ptv-0-0-1.html new file mode 100644 index 0000000..97eedb8 --- /dev/null +++ b/content/posts/2002-01-07-ptv-0-0-1.html @@ -0,0 +1,9 @@ +--- +date: "2002-01-07T08:46:02Z" +title: PTV 0.0.1 +--- + +<p> +I posted the first tarball of the backend source. There aren't really any comments or anything describing how it works, so you'll have to sift through it on your own. If you're feeling brave, you can find it <a href="/projects/ptv/">here</a> +</p> + diff --git a/content/posts/2002-01-08-quicktime-in-linux.html b/content/posts/2002-01-08-quicktime-in-linux.html new file mode 100644 index 0000000..024bcff --- /dev/null +++ b/content/posts/2002-01-08-quicktime-in-linux.html @@ -0,0 +1,11 @@ +--- +date: "2002-01-08T14:30:13Z" +title: QuickTime in Linux +--- + +<p> +After seeing how well it worked for +<a href="http://www.tynian.net/">Brian (bma)</a>, I decided to buy my own copy of +<a ref="http://www.codeweavers.com/products/crossover/">the Crossover plugin</a>. Movies play fine in my browser (<a href="http://galeon.sourceforge.net/">Galeon</a>), and the independant player works great as well. The only installation issue I had was with the QuickTime 5 installer; <a href="http://www.enlightenment.org/">Enlightenment</a> maps the full-screen override-redirect <i>above</i> the setup window, with no real way to raise it. The solution? Temporarily allow WINE to manage all it's windows, instead of deferring non-full-screen windows to the window manager. You can do this by commenting out the line that says <code>"Managed" = "Y"</code> in your Crossover WINE configuration file (usually <code>$HOME/crossover/dotwine/config</code>). Incidentally, this same fix also works for cranky Windows installers in standard WINE. +</p> + diff --git a/content/posts/2002-01-11-fstack-protector.html b/content/posts/2002-01-11-fstack-protector.html new file mode 100644 index 0000000..a1a0c5f --- /dev/null +++ b/content/posts/2002-01-11-fstack-protector.html @@ -0,0 +1,9 @@ +--- +date: "2002-01-11T09:32:06Z" +title: -fstack-protector +--- + +<p> +Go IBM!!! Stack smash protection in GCC. Read about it <a href="http://www.trl.ibm.com/projects/security/ssp/">here</a>. +</p> + diff --git a/content/posts/2002-01-16-kernel-fun.html b/content/posts/2002-01-16-kernel-fun.html new file mode 100644 index 0000000..3dca062 --- /dev/null +++ b/content/posts/2002-01-16-kernel-fun.html @@ -0,0 +1,73 @@ +--- +date: "2002-01-16T14:15:59Z" +title: Kernel Fun +--- + +<p> + +This weekend I decided to upgrade from my trusty 2.4.16 + <a href="http://www.kernel.org/pub/linux/kernel/people/rml/preempt-kernel/">preempt</a> to +something a bit more recent. The first thing I tried was +<a +href="http://www.kernel.org/pub/linux/kernel/v2.4/testing/patch-2.4.18.log">2.4.18-pre3</a> + +<a +href="http://www.kernel.org/pub/linux/kernel/people/rml/preempt-kernel/v2.4/ingo-O1-sched/">O(1) + preempt</a> + <a href="http://www.kernel.org/pub/linux/kernel/people/rml/lock-break/">lock-break</a>, +which fell over miserably on my system (eg if it didn't panic at boot I +could consistently cause a panic with a <code>gmake -j5</code>). After +some "testing" on +<a href="http://www.kernelnewbies.org/">IRC</a> with +<a href="http://tech9.net/rml/">Robert Love</a> (ie, boot, wait +until panic and hard lock, write entire panic on piece of paper, reboot +into stable kernel and type up panic, post panic to web for Robert to +run ksymoops on, apply patch to kernel, reboot, repeat), I finally +decided to take a break from +<a href="http://www.kernel.org/pub/linux/kernel/people/rml/preempt-kernel/">preempt</a> +for the week and give <a href="http://www.zip.com.au/~akpm/linux/schedlat.html#downloads">low latency</a> a shot. I'm running +<a +href="http://www.kernel.org/pub/linux/kernel/v2.4/ChangeLog-2.4.17">2.4.17</a> ++ <a href="http://www.surriel.com/patches/">rmap</a> + +<a href="http://people.redhat.com/mingo/O(1)-scheduler/">O(1)</a> + <a href="http://www.zip.com.au/~akpm/linux/schedlat.html#downloads">low latency</a> now, and it +seems to be pretty stable. I'll try out <a href="http://www.kernel.org/pub/linux/kernel/people/rml/preempt-kernel/">preempt</a> + <a href="http://www.kernel.org/pub/linux/kernel/people/rml/lock-break/">lock-break</a> again +this weekend and let everyone know what happens. By the way, the +problems I mentioned above with <a href="http://www.kernel.org/pub/linux/kernel/people/rml/preempt-kernel/">preempt</a> have to do with SMP and +preemption near interrupts -- all you single-processor users have +nothing to fear. +</p> + +<p> + +There has been a really amusing thread on the LKML for the last few +weeks regarding automatic kernel build configuration. The thread +started as a question from <a href="http://www.tuxedo.org/~esr/">ESR</a> about probing the ISA bus, and progressed +(devolved?) into an amusing war of metaphors between <a href="http://www.linux.org.uk/diary/">Alan Cox</a> and <a href="http://www.tuxedo.org/~esr/">ESR</a>. +Essentially, <a href="http://www.tuxedo.org/~esr/">ESR</a> used a hypothetical "Aunt Tillie" to represtent the +typical technology-impaired "mom and pop" Linux user, who, for some +unspecified reason, opts to compile her own kernel instead of using the +modular vendor-supplied, vendor-tested, and vendor-supported version. +After the Aunt Tillie scenario made relatively little progress against +<a href="http://www.linux.org.uk/diary/">Alan Cox</a> and a handful of other people, <a href="http://www.tuxedo.org/~esr/">ESR</a> added "Nephew Melvin" to the +list of hypothetical characters. Anyway, <a href="http://www.linux.org.uk/diary/">Alan Cox</a>'s latest contribution +to the argument: + +</p> + +<p> +<pre> +From: Alan Cox <alan@aunt-tillie.org> +... +pabs@gw-uunet:~> whois aunt-tillie.org +... +Registrant: + Melvin? What do I type here? + 10 Alan Turing Road + Surrey Research Park + Guildford, Surrey GU2 7YF + UK +</pre> +</p> + +<p> +Be sure to check out +<a href="http://www.aunt-tillie.org/">http://www.aunt-tillie.org/</a> +as well. +</p> + diff --git a/content/posts/2002-01-17-galeon-smart-bookmarks.html b/content/posts/2002-01-17-galeon-smart-bookmarks.html new file mode 100644 index 0000000..5c54d9c --- /dev/null +++ b/content/posts/2002-01-17-galeon-smart-bookmarks.html @@ -0,0 +1,10 @@ +--- +date: "2002-01-17T10:32:42Z" +title: Galeon Smart Bookmarks +--- + +<p> +The Galeon developers created a smart bookmarks repository. You can check it out +<a href="http://galeon.sourceforge.net/bookmarks/">here</a>. +</p> + diff --git a/content/posts/2002-01-23-gta3-ipaq.html b/content/posts/2002-01-23-gta3-ipaq.html new file mode 100644 index 0000000..a123f9c --- /dev/null +++ b/content/posts/2002-01-23-gta3-ipaq.html @@ -0,0 +1,13 @@ +--- +date: "2002-01-23T13:13:19Z" +title: GTA3, IPaq +--- + +<p> +I bought a <a href="http://www.playstation2.com/">Playstation 2</a> and <a href="http://www.rockstargames.com/grandtheftauto3/">Grand Theft Auto 3</a> (GTA3), so I've been offline trying that new stuff out. +</p> + +<p> +Oh, I also bought an <a href="http://athome.compaq.com/showroom/static/iPaq/3835.asp">iPaq 3835</a>; it's pretty cool. I'll post some more info about it once I've had a chance to play with it some more. +</p> + diff --git a/content/posts/2002-02-02-i-can-t-think-of-a-creative-topic.html b/content/posts/2002-02-02-i-can-t-think-of-a-creative-topic.html new file mode 100644 index 0000000..1b8bb33 --- /dev/null +++ b/content/posts/2002-02-02-i-can-t-think-of-a-creative-topic.html @@ -0,0 +1,15 @@ +--- +date: "2002-02-02T17:15:56Z" +title: I Can't Think of a Creative Topic +--- + +<p> +A Changelog of the differences between the available ultra-beta version <a href="/projects/ptv/">PTV</a> and the live version of my page. You <i>really</i> shouldn't be attempting to use this for anything other than satisfy idle curiosity; it's not documented very well and the configuration is difficult. That said, you can check out the Changelog +<a href="/ChangeLog">here</a>. +</p> + +<p> +I posted a slightly more recent screenshot on my +<a href="/screenshots/">Screenshots page</a>. You can see the serial console on my iPaq (left screen, top-center console). +</p> + diff --git a/content/posts/2002-02-02-preempt-back-in-business.html b/content/posts/2002-02-02-preempt-back-in-business.html new file mode 100644 index 0000000..94e4a68 --- /dev/null +++ b/content/posts/2002-02-02-preempt-back-in-business.html @@ -0,0 +1,27 @@ +--- +date: "2002-02-02T05:40:57Z" +title: 'Preempt: Back in Business' +--- + +<p> +I gave the <a +href="http://www.kernel.org/pub/linux/kernel/people/rml/preempt-kernel/">preempt-kernel +patch</a> another shot today. This time it seems to be working properly +on my system. I also posted a combined "meta-patch" against 2.4.17 +vanilla of all the junk I've got in my kernel; you can check it out <a +href="/download/kernel-patches/">here</a>. +</p> + +<p> I gave up +on WinCE and installed <a +href="http://familiar.handhelds.org/">Familiar Linux</a> on my iPaq. +It's not fully functional yet, but so far it looks promising. Any +distribution that comes with <a +href="http://www.ruby-lang.org/">Ruby</a> in it's base distribution is +okay in my book. On a side note, I should mention that the people in +<i>#handhelds.org</i> (<a +href="http://www.openprojects.net/">OpenProjects</a> IRC)have been +incredibly helpful; I would probably still be trying to connect to my +iPaq in Linux if it weren't for their help. +</p> + diff --git a/content/posts/2002-02-12-gta3-gf4.html b/content/posts/2002-02-12-gta3-gf4.html new file mode 100644 index 0000000..d8c5590 --- /dev/null +++ b/content/posts/2002-02-12-gta3-gf4.html @@ -0,0 +1,13 @@ +--- +date: "2002-02-12T00:48:42Z" +title: GTA3... GF4 +--- + +<p> +I finished the main story of Grand Theft Auto 3 (GTA3); I've still got several mini missions to take care of (specifically, 20 of them), so it's not like I'm totally finished. I think GTA3 is probably one of the top 5 console games of all time. It really is that good. +</p> + +<p> +<a href="http://www.nvidia.com/">NVidia</a> is finally coming out with several new dual-head capable chipsets. I reeeeeeeeeeeeeally want a +GeForce 4 Ti 4600; I'm going to figure out a way to make it happen. The first GeForce 4 Ti 4600 card is available <a href="http://www.bestbuy.com/detail.asp?b=0&e=11099619&m=488&cat=521&scat=522">here</a>. + diff --git a/content/posts/2002-02-15-mmmmm-money.html b/content/posts/2002-02-15-mmmmm-money.html new file mode 100644 index 0000000..f0f1e00 --- /dev/null +++ b/content/posts/2002-02-15-mmmmm-money.html @@ -0,0 +1,10 @@ +--- +date: "2002-02-15T01:09:01Z" +title: 'Mmmmm Money... ' +--- + +<p> +In light of the so-called campaign finance reform bill before congress, I thought +<a href="http://www.washingtonpost.com/wp-srv/onpolitics/graphics/softmoney_021302.html">this article</a>, which breaks down soft money contributions by party and source, was pretty interesting. +</p> + diff --git a/content/posts/2002-02-17-alloy.html b/content/posts/2002-02-17-alloy.html new file mode 100644 index 0000000..4ffcd57 --- /dev/null +++ b/content/posts/2002-02-17-alloy.html @@ -0,0 +1,10 @@ +--- +date: "2002-02-17T16:53:58Z" +title: Alloy +--- + +<p> +I've been working on a new theme for the page called Alloy. The theme doesn't really bear any resemblance to metal; I have no idea where the name came from. Alloy isn't finished yet; I still need to change the sidebar and come up with a new style for the item titles. Anyway, you can check it +out by clicking <a href="/?theme=alloy">here</a> (click <a href="/?theme=default">here</a> to get the default theme back). Your browser has to accept cookies in order for the themes to work between pages. +</p> + diff --git a/content/posts/2002-02-18-interesting-atlantic-monthly-article.html b/content/posts/2002-02-18-interesting-atlantic-monthly-article.html new file mode 100644 index 0000000..30366cb --- /dev/null +++ b/content/posts/2002-02-18-interesting-atlantic-monthly-article.html @@ -0,0 +1,27 @@ +--- +date: "2002-02-18T23:37:47Z" +title: Interesting Atlantic Monthly Article +--- + +<p> +The comments on <a href="http://www.slashdot.org">Slashdot</a> are +usually terrible, but occasionally there are incredibly insightful +comments or links. Case in point: <a +href="http://www.theatlantic.com/issues/97dec/democ.htm">this +essay</a> linked by <a href="http://slashdot.org/~jACL/">jACL</a>. +Titled <i>"Was Democracy Just a Moment"</i> and written by <a +href="http://www.theatlantic.com/issues/97dec/democ.htm#Kaplan">Robert +D. Kaplan</a>, the essay covers democracy, economic stability, globalism, +regimes, and more. I used to "borrow" my stepmom's issues of Atlantic +Monthy and read them cover to cover; this article just inspired me +to <a href="http://www.theatlantic.com/subscribe1">get my own +subscription</a>. + </p> + +<p> +On a completely unrelated note, I stumbled across <a +href="http://www.jwz.org/doc/">this collection</a> of +interesting articles by +<a href="http://www.jwz.org/">Jamie Zawinski</a>. +</p> + diff --git a/content/posts/2002-02-19-priority-inversion.html b/content/posts/2002-02-19-priority-inversion.html new file mode 100644 index 0000000..fa8a811 --- /dev/null +++ b/content/posts/2002-02-19-priority-inversion.html @@ -0,0 +1,21 @@ +--- +date: "2002-02-19T15:36:26Z" +title: Priority Inversion +--- + +<p> +An amusing example of a lack of proper priority inversion handling from the LKML: +</p> + +<p> +<i> +One mainframe at MIT +was decomissioned in the early 70's and they found a "run only when idle" +task that had been started around seven years earlier and still hadn't gotten +any time slices because the server had never been completely idle. (The +pathfinder mars probe kept rebooting for a similar reason: a vital system +task was getting starved while it held a semaphore that other stuff needed, +and not scheduling before timeouts caused a reboot. +</i> +</p> + diff --git a/content/posts/2002-03-04-stupid-white-men.html b/content/posts/2002-03-04-stupid-white-men.html new file mode 100644 index 0000000..f120505 --- /dev/null +++ b/content/posts/2002-03-04-stupid-white-men.html @@ -0,0 +1,10 @@ +--- +date: "2002-03-04T22:20:26Z" +title: Stupid White Men +--- + +<p> +I just got (and finished) +<a href="http://www.michaelmoore.com/">Michael Moore's</a> newest book, "Stupid White Men." I highly recommend it to anyone who wouldn't be turned off by the obvious political bias. +</p> + diff --git a/content/posts/2002-03-21-ruby-ruby.html b/content/posts/2002-03-21-ruby-ruby.html new file mode 100644 index 0000000..e1fab53 --- /dev/null +++ b/content/posts/2002-03-21-ruby-ruby.html @@ -0,0 +1,13 @@ +--- +date: "2002-03-21T21:40:56Z" +title: Ruby Ruby! +--- + +<p> +Not a whole lot going on. My <a href="http://www.compaq.com/ipaq/">iPAQ</a> mysteriously died on Monday, then mysteriously came back again on Wednesday evening. I got a <a href="http://www.nvidia.com/view.asp?PAGE=geforce4ti">GeForce 4 Ti 4600</a>, but it's still not working properly; either the card I have is defective or it doesn't cooperate nicely with my hardware. We'll see. +</p> + +<p> +There's a new version of <a href="http://www.germane-software.com/software/rexml/">REXML</a> available with full <a href="http://www.w3.org/TR/xpath">XPath</a> support. +</p> + diff --git a/content/posts/2002-04-01-imlib2-ruby-and-rbot.html b/content/posts/2002-04-01-imlib2-ruby-and-rbot.html new file mode 100644 index 0000000..3eacd5b --- /dev/null +++ b/content/posts/2002-04-01-imlib2-ruby-and-rbot.html @@ -0,0 +1,21 @@ +--- +date: "2002-04-01T16:30:39Z" +title: Imlib2-Ruby and rbot +--- + +<p> +I guess I forgot to announce the initial release of <a href="/software/imlib2-ruby/">Imlib2-Ruby</a>. Apparently it's a good week for +<a href="http://www.ruby-lang.org/">Ruby</a> software; <a href="http://www.linuxbrit.co.uk/">Tom</a> just released the first version of <a href="http://www.linuxbrit.co.uk/rbot/">rbot</a>, his cool all-ruby IRC bot. I've been helping him "test" rbot a bit. BTW in this context, "test" really means "wait until he says 'check out this new feature!', then try and make it do annoying or malicious stuff or crash the bot". Case in point: +</p> +<pre> +<pabs> rbot: remind giblet about poop every 0.1 seconds +<rbot> okay +*** Signoff: rbot[Excess Flood] +* pabs whistles +</pre> + +<p> +Anyway, we're both in this week's Ruby News; you can check it out <a +href="http://www.rubygarden.org/rurl/html/2002-04-01.html">here</a>. +</p> + diff --git a/content/posts/2002-04-03-still-no-gf4.html b/content/posts/2002-04-03-still-no-gf4.html new file mode 100644 index 0000000..a1c731f --- /dev/null +++ b/content/posts/2002-04-03-still-no-gf4.html @@ -0,0 +1,31 @@ +--- +date: "2002-04-03T01:24:27Z" +title: 'Still no GF4 ' +--- + +<p> +After a bit of haggling on the part of <a href="http://www.evga.com/">eVGA</a>, I finally got my replacement GeForce4 Ti 4600. The new one doesn't work either :(. We tested it out in +<a href="http://www.snowman.net/">Stephen's</a> box, and it worked great. Which means the problem is my box :(. My best guess at this point is my el-cheapo 400W power supply, so I ordered a better 460W power supply from +<a href="http://www.pcpowerandcooling.com/">PC Power and Cooling</a> +(recommended by <a href="http://www.snowman.net/">Stephen</a>. Aka +<a href="http://www.snowman.net/">Snow-Man</a>. +<a href="http://www.snowman.net/">He</a> just redesigned his +<a href="http://www.snowman.net/">his page</a>. You should +<a href="http://www.snowman.net/">check it out</a>. +<a href="http://www.snowman.net/"><b><PLUG></b></a> +<a href="http://www.snowman.net/">Snow-Man</a> wants you to check out his +<a href="http://www.snowman.net/">new page</a>. The one +<a href="http://www.snowman.net/">he</a> just +<a href="http://www.snowman.net/">updated</a>. +<a href="http://www.snowman.net/"><b></PLUG></b></a>). +</p> + +<p> +I snagged the <a href="ftp://ftp.handhelds.org/pub/linux/arm/toolchain/">GCC ARM toolchain</a> earlier this evening; I'm going to write apps for <a href="http://familiar.handhelds.org/">Familiar</a> on my iPAQ. Maybe even some for <a href="http://opie.handhelds.org/">Opie</a> if I can ever figure out <a href="http://www.trolltech.com/products/qt/tools.html">Qt Designer</a>: I'm accustomed to <a href="http://glade.gnome.org/">Glade</a>, which is much more intuitive, in my opinion. Speaking of Glade, <a href="http://www.ruby-lang.org/gtk/">Ruby/GTK+</a> and <a href="http://kafka.salem.mass.edu/~yashi/ruby/">Glade/Ruby</a> (Debian users: <code>libgtk-ruby</code> and <code>libglade-ruby</code>, respectively) are amazingly simple to use. +</p> + +<p> +PS. Check out <a href="http://www.snowman.net/">Snow-Man's</a> +newly redesigned page. +</p> + diff --git a/content/posts/2002-04-11-gf4-take-2.html b/content/posts/2002-04-11-gf4-take-2.html new file mode 100644 index 0000000..3f54d3f --- /dev/null +++ b/content/posts/2002-04-11-gf4-take-2.html @@ -0,0 +1,47 @@ +--- +date: "2002-04-11T01:55:46Z" +title: GF4, Take 2 +--- + +<p> +My exchanged GeForce4 still doesn't work, even with my new power supply. My best guess is some AGP quirk with my <a href="http://www.tyan.com/products/html/tigermp.html">motherboard</a>; +I'm going to email <a href="http://www.nvidia.com/">Nvidia</a> and maybe <a href="http://www.tyan.com/">Tyan</a> to see if I can get some answers. +</p> + +<p> +I've had a few requests for my <a +href="http://www.junkbusters.com/ijb.html">Junkbuster</a> configuration. +<a href="/download/junkbuster/scripts/">Here</a> are a couple of +Junkbuster-related scripts, and <a +href="/download/junkbuster/config/">here</a> +are my junkbuster config files, current as of right now (I use the +auto-update cron script distributed with Junkbuster, so my configuration +changes a little bit every once in a while). +</p> + +<p> +Oh yeah, <a href="http://www.snowman.net/~duerrj/">Joe (duerrj in +#gah)</a> pointed me towards <a href="http://www.levelsix.com/">Level +Six</a>. They sell a variety of interesting Playstation peripherals, +including <a +href="http://www.levelsix.com/products/playstation/PSXPC_Vibration.shtml">this +Playstation to USB adapter</a>, which I bought. Now I can play roms in +<a href="http://www.snes9x.com/">Snes9x</a> (<a +href="http://www.debian.org/">Debian</a> users, <code>apt-get install +snes9x-x</code> or <code>snes9x-gl</code>) and <a +href="http://x.mame.net/">X-MAME</a> (Debian users: <code>apt-get +install xmame-x</code> or <code>xmame-gl</code>) with a joystick instead +of the keyboard. +</p> + +<p>A few random urls: <a href="http://www.afrotechmods.com/">Afro Tech +Mods</a> has a bunch of really funny and pointless + PC mods. My +friend Ed is working on a music site called <a +href="http://www.hiphopmecca.net/">Hip Hop Mecca</a>; there's not much +there yet, but check it out and let him know what you think. My friend +John is doing something similar at +<a href="http://www.samplescene.com/">Sample Scene</a>. Okay, +that's all for now. +</p> + diff --git a/content/posts/2002-04-13-he-s-ipaqing-heat.html b/content/posts/2002-04-13-he-s-ipaqing-heat.html new file mode 100644 index 0000000..2b0e2e0 --- /dev/null +++ b/content/posts/2002-04-13-he-s-ipaqing-heat.html @@ -0,0 +1,47 @@ +--- +date: "2002-04-13T16:16:47Z" +title: He's Ipaqing Heat +--- + +<p> +I finally got tired of using my <a +href="http://athome.compaq.com/showroom/static/iPaq/3835.asp">iPAQ</a> +over a 115kb/s serial link, so I switched to <a +href="http://www.handhelds.org/z/wiki/How%20do%20I%20setup%20USB%20networking#sa1100_usbd">USB +networking</a>. Wow. <code>ipkg upgrade</code> (analagous to +<code>apt-get dist-upgrade</code> on a <a +href="http://www.debian.org/">Debian</a> system) is a lot faster now; +roughly 120kB/s instead of 10kB/s over the serial link. The theoretical +maximum throughput is about 1.37MB/s, but I think the limiting factor +here is the iPAQ CPU (a 206MHz StrongARM processor), since things get +kinda slow when I'm doing really heavy "disk" and network operations. +</p> + +<p> +The other thing I did was get <a href="http://www.slac.com/~mpilone/projects/qtopiagnuboy.phtml">QtopiaGNUBoy</a> working on the iPAQ. The problem is as follows: the GNUBoy launcher is looking for the executable <code>qtopiagnuboy</code>, which is placed in <code>/opt/QtPalmtop/bin</code>. For some idiotic reason, that path is not in <code>$PATH</code>. You can work around that by setting <code>$PATH</code> properly from the console (ex: <code># PATH="$PATH:/opt/QtPalmtop/bin"; export PATH</code> for sh and bash users, or <code>setenv PATH "$PATH:/opt/QtPalmtop/bin"</code> for csh and tcsh users), but typing that out on the mini-keyboard sucks. The correct fix is to modify <code>/etc/init.d/qpe</code> and add the following lines: +</p> + +<pre> +PATH="$PATH:$QPEDIR/bin" +export PATH +</pre> + +<p> +Oh yeah, for those of you who would rather do HTTP proxying instead of (or in addition too) IP masquerading, <code>/etc/init.d/qpe</code> is also a good place to set <code>http_proxy</code> and <code>HTTP_PROXY</code> (<a href="http://www.konqueror.org/embedded.html">Konqueror/Embedded</a> incorrectly uses the latter). +</p> + +<p> +Anyway, GNUBoy works -- even for color games -- but it's really not +playable yet. The requisite screenshots: <a +href="/screenshots/ipaq/monopoly.png">Monopoly</a> and <a +href="/screenshots/ipaq/zelda.png">Zelda</a>. For the first time in my +life I have more USB devices than I can plug in at once: my UPS, my +Playstation controller adapter, and my iPAQ. I'm planning on +getting another controller adapter so I can teach <a +href="http://www.snowman.net/">Snow-Man</a> why I was feared up and down +the west coast in Street Fighter II Turbo (as long as <a +href="http://www.snowman.net/~duerrj/">Joe</a> wasn't around), and all +across the country in Mario Kart (as long as <a +href="http://www.hellojoseph.com/">Sean</a> wasn't around). +</p> + diff --git a/content/posts/2002-04-19-imlib2-ruby-0-4-0.html b/content/posts/2002-04-19-imlib2-ruby-0-4-0.html new file mode 100644 index 0000000..e4271cb --- /dev/null +++ b/content/posts/2002-04-19-imlib2-ruby-0-4-0.html @@ -0,0 +1,18 @@ +--- +date: "2002-04-19T02:39:11Z" +title: Imlib2-Ruby 0.4.0 +--- + +<p> +I just posted version 0.4.0 of + <a +href="/software/imlib2-ruby/">Imlib2-Ruby</a>; the post to the <a +href="http://www.ruby-lang.org/en/ml.html">ruby-talk mailing list</a> is +<a +href="http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/38627">here</a>. +You can also view the new <a +href="http://rdoc.sf.net/">RDoc</a>-generated online API reference <a +href="/software/imlib2-ruby/doc/">here</a>, or skip straight to the +0.4.0 download <a href="/download/imlib2-ruby-0.4.0.tar.gz">here</a>. +</p> + diff --git a/content/posts/2002-04-24-me-kicks-verisign-in-the-nuts.html b/content/posts/2002-04-24-me-kicks-verisign-in-the-nuts.html new file mode 100644 index 0000000..f625f5b --- /dev/null +++ b/content/posts/2002-04-24-me-kicks-verisign-in-the-nuts.html @@ -0,0 +1,17 @@ +--- +date: "2002-04-24T19:44:23Z" +title: /me kicks VeriSign in the nuts. +--- + +<p> +First the bad news. VeriSign attempted to <a href="http://www.internetnews.com/isp-news/article/0,,8_805601,00.html">domain slam</a> three of my domains! I filed a complaint with the <a href="http://www.bbb.org/">Better Business Bureau</a>. If the same thing happens to you, <a href="http://www.bbb.org/bbbcomplaints/Welcome.asp#dont">here</a> is the form you want to fill out. Oh, and never, ever, get a domain through VeriSign; use <a href="http://www.dhconsulting.net/">DH Consulting</a> instead and support our canadian friends instead. +</p> + +<p> +<a href="/software/imlib2-ruby/">Imlib2-Ruby</a> 0.4.1 is out. It fixes a few minor bugs and adds a workaround for the broken <code>imlib_image_draw_pixel()</code> call. I also finished the first version of <a href="/software/xmms-ruby/">Xmms-Ruby</a>, my Ruby bindings for <a href="http://www.xmms.org/">XMMS</a>. +</p> + +<p> +My <a href="http://www.amazon.com/exec/obidos/ASIN/B000063574/103-9018584-8795066">iRiver SlimX iMP-350</a> showed up finally. It's <i>really</i> cool; I highly recommend it to anyone in the market for a portable MP3 player. +</p> + diff --git a/content/posts/2002-04-25-so-you-want-to-learn-japanese.html b/content/posts/2002-04-25-so-you-want-to-learn-japanese.html new file mode 100644 index 0000000..05694f0 --- /dev/null +++ b/content/posts/2002-04-25-so-you-want-to-learn-japanese.html @@ -0,0 +1,10 @@ +--- +date: "2002-04-25T18:47:17Z" +title: So You Want to Learn Japanese? +--- + +<p> +I mentioned that I wanted to learn Japanese in <code>#ruby-lang</code> so I could read the Ruby core development list, and so I'd know what was going on if I ever get to visit Japan. Matju pointed me towards +<a href="http://www-unix.oit.umass.edu/~thoureau/japanese.html">this page</a>, which is the funniest thing I've seen in a while. +</p> + diff --git a/content/posts/2002-05-25-xmms-ruby-0-1-1.html b/content/posts/2002-05-25-xmms-ruby-0-1-1.html new file mode 100644 index 0000000..7a340fb --- /dev/null +++ b/content/posts/2002-05-25-xmms-ruby-0-1-1.html @@ -0,0 +1,9 @@ +--- +date: "2002-05-25T12:49:36Z" +title: Xmms-Ruby 0.1.1 +--- + +<p> +I just posted <a href="/software/xmms-ruby/">Xmms-Ruby</a> version 0.1.1. You can read the ChangeLog <a href="/software/xmms-ruby/ChangeLog">here</a>, or skip directly to the download <a href="/download/xmms-ruby-0.1.1.tar.gz">here</a>. Xmms-Ruby is also available in Pablotron CVS under the module xmms-ruby; see the <a href="/cvs/">CVS page</a> for instructions on checking modules out of CVS. +</p> + diff --git a/content/posts/2002-05-26-old-themes-rise-from-the-grave.html b/content/posts/2002-05-26-old-themes-rise-from-the-grave.html new file mode 100644 index 0000000..1e72079 --- /dev/null +++ b/content/posts/2002-05-26-old-themes-rise-from-the-grave.html @@ -0,0 +1,19 @@ +--- +date: "2002-05-26T05:21:00Z" +title: Old Themes Rise from the Grave! +--- + +<p> +I rewrote the <a href='/themes/'>Themes page</a> and ported several of the themes from the old backend. The old default theme is called <i>Retrotron</i>. The Pabsdot theme is back, and so is Kindergarten, so hopefully <a href='http://www.hendryx.com/'>Hendryx</a> will stop bugging me about it ;). +</p> + +<p> +I stumbled across some cool stuff for the iPaq that I thought was worth sharing. Well technically most of it is for the Sharp Zaurus, but the Zaurus runs <a href='http://qpe.sf.net/'>Qtopia</a> on an Intell StrongARM SA-1100. iPaqs running <a href='http://familiar.handhelds.org/'>Familiar Linux</a> and either Qtopia or <a href='http://opie.handhelds.org/'>Opie</a> are binary compatible with the Zaurus, so you can interchange packages, binaries, and source. Anyway, <a href='http://www.killefiz.de/zaurus/'>here</a> is a great Qtopia software index. <a href='http://users.adelphia.net/~heathcaldwell/graphit/index.html'>GraphIt!</a> is a nice replacement for graphing calculators, <a href='http://qtopia.sitebest.com/'>Sheet/Qt</a> is a spreadsheet program which doesn't suck, <a href='http://www.konqueror.org/embedded.html'>Konqueror/Embedded</a> is exactly what it sounds like, and <a href='http://www.killefiz.de/zaurus/showdetail.php?app=204'>Tab Manager</a> allows you to add, modify, and remove the Qtopie (or Opie) tabs. +</p> + +<p> +I also bought a basic (yet entertaining) Qtopia RTS game from <a href='http://www.eongames.com/'>Eon Games</a> called <i>Strategic Assault</i>. I'm about half way through the full version (I bought the expansion pack as well), and I really recommend it to other Qtopia users out there; it's a lot of fun, and it only costs $26US. Oh yeah, I'm not sure if I've mentioned this before, but you can check out a handful of Qtopia screenshots I've taken <a href='/screenshots/ipaq/'>here</a>. Okay, that's it for this evening. +</p> + + + diff --git a/content/posts/2002-05-27-fam-ruby.html b/content/posts/2002-05-27-fam-ruby.html new file mode 100644 index 0000000..e31be48 --- /dev/null +++ b/content/posts/2002-05-27-fam-ruby.html @@ -0,0 +1,9 @@ +--- +date: "2002-05-27T22:38:23Z" +title: FAM-Ruby +--- + +<p> +I just released the first version of FAM-Ruby, my <a href='http://oss.sgi.com/projects/fam/'>FAM</a> bindings for <a href='http://www.ruby-lang.org/'>Ruby</a>. You can check the project page out <a href='/software/fam-ruby/'>here</a>, or skip directly to the download <a href='/download/fam-ruby-0.1.0.tar.gz'>here</a>. +</p> + diff --git a/content/posts/2002-06-09-come-on.html b/content/posts/2002-06-09-come-on.html new file mode 100644 index 0000000..c75a8c9 --- /dev/null +++ b/content/posts/2002-06-09-come-on.html @@ -0,0 +1,12 @@ +--- +date: "2002-06-09T22:32:15Z" +title: Come On! +--- + +<p> +<div align='center'> +<a href='http://www.linuxbrit.co.uk/index.php?item=20020607.1'> +<img src='/gallery/giblet/comeon.jpg' alt='come on!' /></a><br /> +</div> +</p> + diff --git a/content/posts/2002-06-16-domain-name-registration.html b/content/posts/2002-06-16-domain-name-registration.html new file mode 100644 index 0000000..81ddafe --- /dev/null +++ b/content/posts/2002-06-16-domain-name-registration.html @@ -0,0 +1,13 @@ +--- +date: "2002-06-16T20:23:03Z" +title: Domain Name Registration +--- + +<p> +My friends Alonzo and Ed recently lost their domain because they were unable to get in touch with their domain name registrar before the domain expired, and someone else scooped it up (their domain was <i>hiphopmecca.net</i>, by the way). I register the few domains I'm responsible for through Dave Henderson's (aka epoch in #gah on <a href='http://www.openprojects.net/'>OPN IRC</a>) registrar, <a href='http://www.dhconsulting.net/'>DH Consulting</a>; I've never had any problems getting in touch with him on short notice, and I highly recommend him to anyone looking to register a domain. +</p> + +<p> +Apparently <a href='/software/xmms-ruby/'>Xmms-Ruby</a> is available in the <a href='http://www.freebsd.org/'>FreeBSD</a> ports collection now. Noone told me they were adding it to ports, but <a href='http://www.richlowe.net/'>Richard</a> mentioned that he saw it posted. So <a href='/software/imlib2-ruby/'>Imlib2-Ruby</a> and <a href='/software/xmms-ruby/'>Xmms-Ruby</a> are available to the BSD folks. +</p> + diff --git a/content/posts/2002-07-21-i-m-still-alive.html b/content/posts/2002-07-21-i-m-still-alive.html new file mode 100644 index 0000000..df31c91 --- /dev/null +++ b/content/posts/2002-07-21-i-m-still-alive.html @@ -0,0 +1,18 @@ +--- +date: "2002-07-21T21:49:09Z" +title: I'm Still Alive! +--- + +<p> +I set up a machine outside the firewall. So far I've used it to play around with <a href='http://www.icecast.org/'>IceCast</a>, <a href='http://www.inka.de/~bigred/devel/cipe.html'>CIPE</a>, and <a href='http://netfilter.samba.org/'>IP Tables</a>. I also used it as an excuse to install <a href='http://www.tripwire.org/'>TripWire</a>, altough I haven't finished tweaking it yet. Everyone knows the <a href='http://www.debian.org/'>Debian Linux</a> install is less than spectacular, so I've been trying to build a basic "user friendly" Debian ISO with the <a href='http://hackers.progeny.com/pgi/'>Progeny PGI</a> graphical installer. If I get anything interesting up and running I'll post it here. +</p> +<p> +<a href='http://www.hellojoseph.com/'>Sean</a> (aka dmron on IRC) posted a bunch of Jaguar screenshots. You check out the screenshots and read what people have to say about the new features +<a href='http://forums.macnn.com/cgi-bin/ultimatebb.cgi?ubb=get_topic;f=46;t=007383'>here</a> . If you're looking for it (I was), <a href='http://www.chris.com/ascii/'>Chris.com</a> has a ton of ASCII art, conveniently organized into categories. <a href='http://www.bartcop.com/lostrights.htm'>Here's</a> an amusing list of comparisons between the Constitution and Bill of Rights and the behavior of the current administration. +Also, be sure to check out <a href='http://www.mediachannel.org/ownership/'>this</a> interesting article about media consolidation in the United States. I bought a couple of t-shirts from <a href='http://www.tshirthell.com/'>T-Shirt Hell</a>; their shipping sucks, but their shirts are really funny. If you're into Trance music, you'll probably like <a href='http://massinova.com/playing.html'>Massinova</a>. +</p> + +<p> +Be sure to check out my new improved desktop in <a href='/screenshots/latest.png'>this screenshot</a>. Oh yeah I saw <a href='http://www.djshadow.com/'>DJ Shadow</a> in live a few weeks ago; he was really good. Okay, that's it for today. +</p> + diff --git a/content/posts/2002-07-26-30-000-pounds-of-bananas-warning-non-geek-news-item.html b/content/posts/2002-07-26-30-000-pounds-of-bananas-warning-non-geek-news-item.html new file mode 100644 index 0000000..e5459c8 --- /dev/null +++ b/content/posts/2002-07-26-30-000-pounds-of-bananas-warning-non-geek-news-item.html @@ -0,0 +1,24 @@ +--- +date: "2002-07-26T01:41:46Z" +title: '30,000 Pounds of Bananas (WARNING: Non-Geek News Item)' +--- + +<p> +Yesterday I drove to Cleveland, OH, then turned right around and came +back again. Why, you ask, would I submit myself to 14 hours of driving? +To pick up <a href='http://www.schmoo.org/'>Sue's</a> cat, <a +href='http://www.tynian.net/ickle_fat.jpg'>Ickle</a>. He didn't have a +home and he was going to go to a shelter unless someone could take care +of him. <a href='http://www.tynian.net/'>Brian</a> and <a +href='http://www.aphrael.net/'>Karen</a> offered to take care of him, +but they're in the DC area too, and they couldn't make the trip. I +wouldn't go so far as to say the trip was fun, but it was certainly +interesting. I'd never been to Ohio, and I've only been to Pennsylvania +once: my <a href='http://home.att.net/~RDUNCAN618/'>dad and stepmom</a> +wanted to visit Scranton, PA, the city in <a +href='http://www.littlejason.com/chapin/'>Harry Chapin's</a> song <a +href='http://www.littlejason.com/chapin/songs/banana.html'>"30,000 +Pounds of Bananas"</a>. I also drove by Pittsburg and through +Cleveland, and I drove on both the Ohio and Pennsylvania turnpikes. +</p> + diff --git a/content/posts/2002-08-10-concerts-uuml-no-not-that-uml.html b/content/posts/2002-08-10-concerts-uuml-no-not-that-uml.html new file mode 100644 index 0000000..d6cf0c1 --- /dev/null +++ b/content/posts/2002-08-10-concerts-uuml-no-not-that-uml.html @@ -0,0 +1,24 @@ +--- +date: "2002-08-10T07:34:49Z" +title: Concerts, UUML (no, not _that_ UML) +--- + +<p> +So last weekend I went with my friends Alonzo, Ed, and Lee to the MTV2 Smokin' Grooves 2002 concert and saw Lauren Hill, Outkast, and The Roots. I liked everyone at the show but overall I think The Roots were the most entertaining (followed closely by Outkast). The list of other notable concerts I've seen since I moved to the DC area: Blink 182 and Crystal Method (with <a href='http://www.snowman.net/'>Stephen [Snow-Man]</a>, Megan, and Jimmy), DJ Shadow (with Alonzo [osiekhan] and Lee), and Cake (with <a href='http://www.richlowe.net/'>Richard [richlowe]</a> and <a href='http://www.cyberquirky.org'>Jon-Anne [lilyj]</a>). One of the cool things about the DC area (as opposed to the places I lived in Oregon) is there's almost always great concerts coming up. +</p> + +<p> +I've been playing around with <a href='http://user-mode-linux.sf.net/'>User Mode Linux (UML)</a>. The gist of UML is it allows you to compile and run the Linux kernel as an executable, which means you can do fun stuff like run an arbitrary number of "virtual" machines inside one physical machine (eg. a jail or chroot environment on crack, or a protected environment for a vhost client, etc) or debug and profile the running kernel with all the standard userspace tools (gdb, gprof, ddd, etc). It would also be useful for rapidly prototyping network designs or isolating daemons on servers. Debian users can <code>apt-get install user-mode-linux{,doc} uml-utilities</code>, or you can be a man and patch the kernel tree yourself like I did ;). There's also the beginnings of a user site at <a href='http://www.usermodelinux.org/'>http://www.usermodelinux.org/</a>. +</p> + +<p> +People have been having trouble creating accounts on the page. I'm not sure if it's an IE issue or if a PHP update broke my authentication, but feel free to email me if you can't log in to your account or if you can't post comments any more. Finally, I've been accused of not putting enough graphics on my page and having it look "bland like all the other linux geeks' pages". So, here's a picture from <a href='http://www.fark.com/'>Fark</a> to tide everyone over until my next update: +</p> + +<p> +<div align='center'> +<img src='/gallery/misc/bushdance.gif' + width='234' height='185' alt='bush dancing' /> +</div> +</p> + diff --git a/content/posts/2002-10-13-the-worst-man.html b/content/posts/2002-10-13-the-worst-man.html new file mode 100644 index 0000000..ab510b6 --- /dev/null +++ b/content/posts/2002-10-13-the-worst-man.html @@ -0,0 +1,10 @@ +--- +date: "2002-10-13T18:02:41Z" +title: The Worst Man +--- + +<p> +I'm in the UK. <a href='http://www.linuxbrit.co.uk/'>Tom (giblet)</a> and <a href='http://www.schmoo.org/'>Sue (schmoo)</a> got married. I was the best^Wworst man! I took pictures! You can find them <a href='/gallery/wedding/'>here</a>. Tom's pictures are <a href='http://www.linuxbrit.co.uk/pics/20021012_wedding_tom'>here</a>. Richard's (Jaded) pictures are <a href='http://ruled.net/gallery/albun11'>here</a>. +Okay, bye! +</p> + diff --git a/content/posts/2002-10-20-feh-xinerama.html b/content/posts/2002-10-20-feh-xinerama.html new file mode 100644 index 0000000..cad2165 --- /dev/null +++ b/content/posts/2002-10-20-feh-xinerama.html @@ -0,0 +1,22 @@ +--- +date: "2002-10-20T07:17:38Z" +title: Feh Xinerama +--- + +<p> +I added Xinerama support to <a href='http://www.linuxbrit.net/feh/'>Feh</a>. It's available in CVS Feh right now, but if you use the source tarball (or source rpm), you can try it out now with <a href='/download/feh-1.2.1-xinerama.patch'>this patch</a>. I also wrote a small command-line mysql client in Ruby called rq. You can download a tarball <a href='/download/rq-0.1.3.tar.gz'>here</a>. +</p> + +<p> +I still don't have a nice gallery of the UK images from last weekend up, so if you don't feel like browsing bazillions of images without thumbnails, you might want to check out <a href='http://www.linuxbrit.net/pics/20021012_wedding_pabs/'>Tom's mirror of my pictures</a>. By the way, the camera I bought is the <a href='http://www.fujifilm.com/JSP/fuji/epartners/Products.jsp;jsessionid=9yLMCXpJo83oJ6iZr9Ttt1Df71CPH1tBQk2X7VtpIVE4trOxC1p8!-1137402241!-1408040634!80!443?nav=0&parent=PRODUCT_CATEGORY_491929&product=43860763'>Fuji F401</a>; it's only a 2.1 megapixel camera, but it's got some funky 4 megapixel interpolation trick (which actually helps a little), it's small as hell, and it's batteries last forever. I'm pretty happy with it, and I recommend it to anyone in the market for a digital camera. +</p> + +<p> +The Debian package for EPIC+TE broke, so I took the opportunity switch completely to <a href='http://www.irssi.org/'>Irssi</a>. So far I'm really happy with it; I've got it rotating and compressing logs on it's own (instead of requiring a funky cron job), saving URLs to a MySQL database, and tab-completing dictionary words. It also seems to have much nicer multi-server support than EPIC+TE and BitchX. +</p> + +<p> +Seanbaby has a list of the top (bottom?) 20 worst games for NES of all time. Check it out <a href='http://www.seanbaby.com/nes/egm20.htm'>here</a>. +<a href='http://us.imdb.com/Name?Harrelson,+Woody'>Woody Harrelson</a> wrote an <a href='http://www.guardian.co.uk/g2/story/0,3604,813189,00.html'>interesting article</a> about the current political climate. <a href='http://www.theonion.com/onion3838/bush_on_economy.html'>Here's</a> an Onion article echoing the roughly the same sentiment. If someone feels like contributing to the cool cases for Paul fund, they can buy me <a href='http://www.crazypc.com/Merchant2/merchant.mv?Screen=PROD&Store_Code=120199&Product_Code=8131'>this case</a>. Oh yeah, <a href='/test/graphite/'>here's</a> the test page for a new Pablotron theme I've been working on. It's not finished yet, but I think it's going to be the new default theme when I'm done. Okay, that's it for today. +</p> + diff --git a/content/posts/2002-10-21-kernel-fun.html b/content/posts/2002-10-21-kernel-fun.html new file mode 100644 index 0000000..dffee2a --- /dev/null +++ b/content/posts/2002-10-21-kernel-fun.html @@ -0,0 +1,18 @@ +--- +date: "2002-10-21T23:15:38Z" +title: Kernel Fun +--- + +<p> +I posted a patch for the current kernel I'm using. You can grab it and my kernel config <a href='/download/kernel/'>here</a>. Please read the <a href='/download/kernel/README_BEFORE_USING.txt'>README</a> before using the patches. I added a few more Xinerama fixes to the CVS version of +<a href='http://www.linuxbrit.net/feh/'>feh</a>, the new and improved diff against feh 1.2.1 is available <a href='/download/feh-1.2.1-xinerama_and_more.patch.gz'>here</a>. +</p> + +<p> +I just switched my mail filtering over to <a href='http://spamprobe.sf.net/'>SpamProbe</a>. So far things have been working great. +</p> + +<p> +Finally, <a href='http://hometown.aol.com/bsquirreled'>here</a> is the worst web page ever. +</p> + diff --git a/content/posts/2002-10-27-gallery.html b/content/posts/2002-10-27-gallery.html new file mode 100644 index 0000000..6340935 --- /dev/null +++ b/content/posts/2002-10-27-gallery.html @@ -0,0 +1,17 @@ +--- +date: "2002-10-27T20:26:03Z" +title: Gallery +--- + +<p> +So I have some gallery code written now. The only pictures that are really ready for consumption are the pictures of <a href='/gallery/20021013-gilbert_wedding'>Tom and Sue's wedding</a>. The code is mine, but I borrowed a few ideas from <a href='http://www.linuxbrit.co.uk/pics/'>Tom's gallery page</a>. I think I might try to get comments working on them at some point as well. +</p> + +<p> +<a href='http://www.rollingstone.com/news/newsarticle.asp?nid=16913#5'>Here</a> is an interesting interview of Tom Petty. <a href='http://unspeakablystupid.com/'>This page</a> has a whole bunch of funny stories. <a href='http://www.thewavemag.com./pagegen.php?pagename=article&articleid=22481'>Here</a> is an amusing article about frivelous lawsuits. +</p> + +<p> +A couple people have asked about various config files, so I thought I'd post them. <a href='/downloads/mutt_config-0.2.0.tar.gz'>Here</a> is my current <a href='http://www.mutt.org/'>Mutt</a> configuration (please remove my email address before using these), and <a href='/download/_screenrc'>here</a> is my <a href='http://www.gnu.org/software/screen/screen.html'>Screen</a> config file. +</p> + diff --git a/content/posts/2002-10-27-no-love-from-2-5-44.html b/content/posts/2002-10-27-no-love-from-2-5-44.html new file mode 100644 index 0000000..5b1be9f --- /dev/null +++ b/content/posts/2002-10-27-no-love-from-2-5-44.html @@ -0,0 +1,19 @@ +--- +date: "2002-10-27T16:00:13Z" +title: No Love From 2.5.44 +--- + +<p> +I tried unsuccessfully to upgrade to kernel 2.5.44 this morning. The NVidia kernel patch I mentioned last night worked great, but now the kernel doesn't properly see my mouse (a PS/2 MS Intellimouse Explorer). I've scoured the LKML, and as far as I can tell it should be working. Oh well; I'll give it another shot sometime in the next few days. +</p> + +<p> +I finally got around to writing some gallery code. It's not finished yet, but you can see what I've got so far right <a href='/gallery/20021013-gilbert_wedding/'>here</a>. +</p> + +<p> +<a href='http://cs.roanoke.edu/~jbernard/'>John Bernard</a> has been packaging FAM-Ruby and Imlib2-Ruby for a few months now. They're not in Debian (yet), but you can download the packages from <a href='http://cs.roanoke.edu/~jbernard/downloads.html'>his download page</a>. +</p> + + + diff --git a/content/posts/2002-10-27-scripts-and-more.html b/content/posts/2002-10-27-scripts-and-more.html new file mode 100644 index 0000000..5c01a17 --- /dev/null +++ b/content/posts/2002-10-27-scripts-and-more.html @@ -0,0 +1,53 @@ +--- +date: "2002-10-27T01:19:10Z" +title: Scripts and More +--- + +<p> +I wrote a couple quick utilities this weekend. The first one is <a href='/download/cex-0.1.0.tar.gz'>here</a>; it allows you to write C as if it was a scripting language. Something like this, for example: +</p> + +<pre> +#!/usr/bin/env cex + +#include <stdlib.h> +#include <stdio.h> + +int main(int argc, char *argv[]) { + printf("foo\n"); + return EXIT_SUCCESS; +} +</pre> + +<p> +It's a total hack, but it's still kind of entertaining. Anyway, the second utility is just a <a href='http://www.procmail.org/'>Procmail</a> log colorizer. That's available <a href='/download/proccolor.pl'>here</a>. +</p> + +<p> +Random stuff. <a +href='http://www.graffiks.com/dylan_articles/dylan03.html'>Here's</a> an +article about the worst roommate in the world. +<a href='http://ps.superb.net/cardtric/tricks/intermed.htm'>Here</a> is +a huge list of card tricks (I just bought a deck of cards a few days +ago, and <a href='http://www.hhmecca.net/'>Alonzo</a> was showing me +some magic tricks he knew). <a +href='http://www.minion.de/nvidia/'>Here</a> are patches for the <a +href='http://www.nvidia.com/'>NVidia</a> kernel driver so it will work +under the 2.5 kernel (I haven't tried them yet). Looks like <a +href='http://www.snowman.net/'>Stephen</a> had a <a +href='/gallery/misc/20021026-snowy_priest.jpg'>change of faith</a>. I got an +early birthday present from <a +href='http://home.att.net/~rduncan618/'>my dad and stepmom</a>: a Lian +Li PC61 case! I haven't set it up yet, but <a +href='http://www.pablotron.org/gallery/misc/20021027-alonzo_pc61.jpg'>here's</a> +a picture of Alonzo checking it out, and <a +href='http://www.pablotron.org/gallery/misc/20021027-lian_li_pc61_case.jpg'>here</a> +is a picture of it on it's own. Finally, here's my random picture of +the day (posted in #gah by <a +href='http://www.xcomputerman.com/'>JeopardE</a>): +</p> + +<div align='center'> +<img src='/gallery/misc/corrupt.jpg' width='396' height='390' border='0' alt='bush scolds big business' /> +</div> + diff --git a/content/posts/2002-11-11-seattle-imlib2-ruby-etc.html b/content/posts/2002-11-11-seattle-imlib2-ruby-etc.html new file mode 100644 index 0000000..bc96592 --- /dev/null +++ b/content/posts/2002-11-11-seattle-imlib2-ruby-etc.html @@ -0,0 +1,19 @@ +--- +date: "2002-11-11T01:25:45Z" +title: Seattle, Imlib2-Ruby, etc +--- + + +<p> +I was in Seattle last weekend for <a href='http://www.rubyconf.org/'>RubyConf 2002</a>. I got to meet Matz (the author of <a href='http://www.ruby-lang.org/'>Ruby</a>), and I learned a bunch of cool stuff. A few of the interesting speeches: a presentation by <a href='http://whytheluckystiff.net/'>Why the Lucky Stiff</a> on <a href='http://www.yaml.org/'>YAML (YAML Ain't a Markup Language) for Ruby</a>, a presentation by Dan Sugalski on <a href='http://www.parrotcode.org/'>Parrot</a>, and a rountable discussion with Matz (a transcript of which is available <a href='/rubyconf2002/'>here</a>. Be sure to check out my <a href='/gallery/20021101-rubyconf2002/'>RubyConf 2002 photo gallery</a>. +</p> + +<p> +I released version 0.4.2 of <a href='/software/imlib2-ruby/'>Imlib2-Ruby</a>. The ruby-talk announcement is <a href='http://www.ruby-talk.org/54890'>here</a>, and a complete list of changes is available <a href='/software/imlib2-ruby/ChangeLog'>here</a>. +Oh yeah, <a href='http://www.linuxbrit.co.uk/'>Tom</a> released version 1.2.2 of <a href='http://www.linuxbrit.co.uk/feh/'>feh</a>, which includes my Xinerama patches and a few other goodies. +</p> + +<p> +Finally, a few interesting links. I've been reading <a href='http://forum.oc-forums.com/'>OC Forums</a> almost daily now, there's lots of interesting computer hardware information there. <a href='http://www.jmaguire.com/'>John</a> pointed me at <a href='http://www.ozones.com/'>Ozones</a>, which is the craziest cross-platform JavaScript I've ever seen. He's also got a bunch of really cool <a href='http://www.handson.nu/'>hands-on graphics tutorials</a>. <a href=''>Richard</a> gave me <a href='http://www.paulgraham.com/icad.html'>this</a> really interesting Paul Graham article on Lisp. +</p> + diff --git a/content/posts/2002-11-13-quickie.html b/content/posts/2002-11-13-quickie.html new file mode 100644 index 0000000..a055521 --- /dev/null +++ b/content/posts/2002-11-13-quickie.html @@ -0,0 +1,27 @@ +--- +date: "2002-11-13T01:09:51Z" +title: Quickie +--- + +<pre> +pabs@picard:~> uname -r +2.5.47-ac2 +</pre> + +<p> +I tried out <a href='http://www.menuetos.org/'>Menuet</a> this evening. It's really cool. Make sure to try the 2.0 prerelease if you decide to give it a shot; it's got a lot more cool stuff. +</p> + +<p> +I've been trying to write Ruby bindings for <a href='http://freetype.sf.net/index2.html'>FreeType2</a>. I've gotten pretty far, but the bindings aren't quite done yet. You can see what I've got so far right <a href='/download/ft2-ruby-20021112.tar.gz'>here</a>. +I'm also thinking about writing bindings for the image processing library <a href='http://openil.sf.net/'>DevIL</a>, but I haven't started yet. +</p> + +<p> +I stumbled across a really cool graphics programming site called <a +href='http://www.flipcode.com/'>FlipCode</a>. It's got lots of +interesting graphics tutorials, engines, and demos. Finally, <a +href='http://www.moviepoopshoot.com/interviews/7.html'>here's</a> a really interesting interview with <a +href='http://us.imdb.com/Name?Garofalo,%20Janeane'>Janeane Garofalo</a>. +</p> + diff --git a/content/posts/2003-01-06-big-freakin-update.html b/content/posts/2003-01-06-big-freakin-update.html new file mode 100644 index 0000000..a1ae434 --- /dev/null +++ b/content/posts/2003-01-06-big-freakin-update.html @@ -0,0 +1,21 @@ +--- +date: "2003-01-06T23:37:34Z" +title: BIG FREAKIN UPDATE +--- + +<p> +I got both cable modem and SDSL working together (ie multiple routes to internet, the same setup we had when <a href='http://www.snowman.net/'>Stephen</a> lived here). <a href='http://plorf.net/linux-ip/html/adv-multi-internet.htm#FTN.AEN1722'>This page</a> explains how to get multiple routes working. Heard about the CD price fixing settlement? Get your refund at the <a href='http://www.musiccdsettlement.com/english/default.htm'>Music CD Settlement</a> page. If you're having trouble decyphering the legalize, maybe you're the 2% of the population that have better luck with <a href='http://www.geocities.com/citycollegechess/riddle.html'>this puzzle</a>. +</p> + +<p> +Requisite geek links: <a href='http://www.nvmax.com/cgi-bin/community.pl?num=1040534208'>Here</a> are some picture sof the new tablet Zaurus. If they release one with a SD slot and a CF slot I'll definately buy one. <a href='http://earthobservatory.nasa.gov/Newsroom/NewImages/Images/earth_lights_lrg.jpg'>This image</a> shows the light on earth at night. <a href='http://arstechnica.com/paedia/b/bandwidth-latency/bandwidth-latency-1.html'>This article</a> from <a href='http://www.arstechnica.com/'>Ars Technica</a> talks about bandwidth and latency, specifically regarding RAM, but applicable to networking and other technology as well. I found <a href='http://www.kuro5hin.org/story/2003/1/4/125411/1900'>this Kuro5hin thread</a> which talks about the ramifications of the Slashdot effect (and Farking) on content providers and hosting companies. From there I stumbled across <a href='http://www.rackshack.net/english/celeron1_3.asp'> these</a> dedicated hosting deals (although <a href='http://www.linuxbrit.co.uk/'>Tom</a> and I have already decided to give <a href='http://www.unitedcolo.com/'>United Colo</a> a try, since they don't have a setup fee, they offer more bandwidth per month, and they're willing to install <a href='http://www.debian.org/'>Debian</a>. +</p> + +<p> +I found a handful of interesting news articles. <a href='http://www.boston.com/dailyglobe2/349/oped/US_media_retain_their_liberal_bias+.shtml'>Here</a> is one talking about bias in the media. <a href='http://www.wired.com/wired/archive/11.01/google_pr.html'>This article</a> talks about Google and morality. <a href='http://www.azoz.com/music/features/0008.html'>This article</a> breaks down some interesting RIAA statistics regarding piracy. <a href='http://www.a1b2c3.com/drugs/law01.htm'>Here</a> is an article talking about the drug war, and <a href='http://www.drugsense.org/wodclock.htm'>here</a> is the Drug War Clock. <a href='http://www.alternet.org/story.html?StoryID=14799'>Here</a> is a really good editorial from <a href='http://www.alternet.org/'>AlterNet</a> which discusses the problems with abstinence only education programs. Not a big Poindexter fan? <a href='http://slashdot.org/comments.pl?sid=48121&threshold=1&commentsort=0&tid=99&mode=thread&cid=4899522'>This guy</a> decided to give Poindexter some of his own medicine. I stumbled across <a href='http://www.users.drew.edu/~jlenz/whynot.html'>this essay </a> by Bertrand Russell. It was written in 1927, but it's still strangly relevant. If you liked that, then you'll like <a href='http://www.americanatheist.org/win98-99/T2/silverman.html'>this interview</a> with the late <a href='http://www.douglasadams.com/'>Douglas Adams</a> even more. <a href='http://www.sltrib.com/2002/Jan/01052002/Saturday/164672.htm'>This essay</a> isn't quite as eloquent as the previous two, but it's still an interesting read. Worried about living in a police state? Join the campaign for <a href='http://www.onlinejournal.com/Special_Reports/Ramares010403/ramares010403.html'>preemptive impeachment</a>! Finally <a href='http://www.washingtonmonthly.com/features/2001/0209.marshall.html'>here's</a> an amusing article about the current administration. +</p> + +<p> +Okay, that's it for today. I'll try and be less of a recluse this year. +</p> + diff --git a/content/posts/2003-01-07-maybe-posting-will-cure-my-insomnia.html b/content/posts/2003-01-07-maybe-posting-will-cure-my-insomnia.html new file mode 100644 index 0000000..9a0cc80 --- /dev/null +++ b/content/posts/2003-01-07-maybe-posting-will-cure-my-insomnia.html @@ -0,0 +1,9 @@ +--- +date: "2003-01-07T04:03:10Z" +title: Maybe Posting Will Cure My Insomnia +--- + +<p> +I just finished reading <a href='http://www.amazon.com/exec/obidos/ASIN/0451524934/qid=1041929928/sr=2-1/ref=sr_2_1/002-0560959-8966422'>1984</a> last week, and right now I'm reading <a href='http://www.amazon.com/exec/obidos/tg/detail/-/0805062394/qid=1041929773/sr=1-1/ref=sr_1_1/002-0560959-8966422?v=glance&s=books'>Blowback</a>. I stumbled across <a href='http://www.mainichi.co.jp/life/hobby/game/news/news/2003/01/p/07-1.html'>this picture</a> of the new GBA and it looks really cool. I had a Game Boy years ago; maybe it's time to pick one up again. Also, <a href='http://ap.tbo.com/ap/breaking/MGA8B6TENAD.html'>here</a> is an interesting article about the state of cell phone service in the US (it basically says Sprint sucks and Verizon is great). I don't really know how credible it is, since I have never owned a cell phone, but I think I've heard <a href='http://www.snowman.net/'>Stephen (Snow-Man)</a> and <a href='http://www.tynian.net/'>Brian (bma)</a> say basically the same thing. +</p> + diff --git a/content/posts/2003-01-09-dedicated-box.html b/content/posts/2003-01-09-dedicated-box.html new file mode 100644 index 0000000..860f2f7 --- /dev/null +++ b/content/posts/2003-01-09-dedicated-box.html @@ -0,0 +1,9 @@ +--- +date: "2003-01-09T02:53:14Z" +title: Dedicated Box +--- + +<p> +<a href='http://www.linuxbrit.co.uk/'>Tom</a> and I finally got our box from <a href='http://www.unitedcolo.com/'>United Colo</a>. The connection seems pretty good; there was a minor snafu, but we're hoping that was just a one-time hiccup. The connection is fast as hell; 80ms ping from my house (that's east coast to west coast, not bad at all), and I downloaded a kernel from <a href='http://www.kernel.org/'>kernel.org</a> at 7.4MB/sec (yes, that's mega<i>bytes</i>). We'll give it a reliability test for a few more weeks, and if things work out okay, I'll be moving Pablotron and maybe some other stuff over. +</p> + diff --git a/content/posts/2003-01-09-happy-meal-ethernet.html b/content/posts/2003-01-09-happy-meal-ethernet.html new file mode 100644 index 0000000..49d5334 --- /dev/null +++ b/content/posts/2003-01-09-happy-meal-ethernet.html @@ -0,0 +1,11 @@ +--- +date: "2003-01-09T04:39:42Z" +title: Happy Meal Ethernet +--- + +<p> +I don't have anything productive to say, so here are some interesting links instead. +Who says kernel hackers don't have a sense of humor? +Check out <a href='http://www.kerneltrap.com/index.php'>this</a> KernelTrap article. I think I want <a href='http://www.sharpsystems.com/tmplproduct_UM32W.asp'>this</a> really small and light laptop. If you've got <a href='http://www.macromedia.com/flash/'>Flash</a>, take a look at <a href='http://www.kraftwerk.com/'>Kraftwerk's</a> page. +</p> + diff --git a/content/posts/2003-01-12-bowling-for-columbine.html b/content/posts/2003-01-12-bowling-for-columbine.html new file mode 100644 index 0000000..c39a3d8 --- /dev/null +++ b/content/posts/2003-01-12-bowling-for-columbine.html @@ -0,0 +1,23 @@ +--- +date: "2003-01-12T07:58:13Z" +title: Bowling for Columbine +--- + +<p> +I finally saw <a href='http://www.bowlingforcolumbine.com/'>Bowling for Columbine</a>, the latest film by <a href='http://www.michaelmoore.com/'>Michael Moore</a>. It's the most interesting movie I've seen this year :)! Seriously though, it's amazingly good, and I'd recommend it to everyone, even gun nuts. Out of curiousity, I went to <a href='http://www.nra.org/'>NRA's site</a> and searched for "Bowling for Columbine", but apparently <a href='http://www.nra.org/frame.cfm?url=http://www.nrahq.org/search/default.asp?q1=bowling+for+columbine'>they have nothing to say</a>. I also find it amusing that some of the most insightful comments in the film come from <a href='http://www.marilynmanson.com/'>Marilyn Manson</a> and three Canadian high school students cutting class at a Taco Bell. +</p> + +<p> +Tom and I have our colo box up, although I haven't moved site yet. I'd appreciate it if people could +<a href='http://colo.pablotron.org/'>visit the mirror</a> and tell me how things feel in terms of speed, reliability, etc. The gallery isn't up yet, but everything else should be about the same. +</p> + +<p> +I've heard a few people (including myself) complain about the non-random behavior of shuffle mode in <a href='http://www.xmms.org/'>XMMS</a>, so I wrote a small patch to replace the calls to <code>random()</code> with calls to <a href='http://www.openssl.org/'>OpenSSL's</a> crypto-grade random function. The patch is against XMMS 1.2.7, and you can download it <a href='/download/xmms-1.2.7-ssl_rand-2.patch'>here</a>. +Also, I wrote <a href='/download/string_glob.rb'>this</a> short bit of <a href='http://www.ruby-lang.org'>Ruby</a> for someone in <a href='http://www.ruby-talk.org'>#ruby-talk</a>. It tests a string against a shell-style glob (it only supports wildcards though, not character ranges). A couple other interesting Ruby gems I wrote are <a href='/download/array_mwi.rb'>Array#map_with_indices</a> and <a href='/download/string_to_class.rb'>String#to_class</a>. At this rate I'll need a Ruby gems page ;-). +</p> + +<p> +A few random links before I go to sleep. Representative Bob Barr wrote a suprisingly intelligent editorial called <a href='http://www.washtimes.com/commentary/20030109-78847680.htm'>"Crimes Before the Fact"</a>. Also, <a href='http://www.alternet.org/story.html?StoryID=14919'>here</a> is an interesting interview with <a href='http://www.duke.edu/~crh4/vonnegut/'>Kurt Vonnegut</a>. Oh yeah, I officially <a href='http://www.aclu.org/contribute/contribute.cfm'>joined</a> the <a href='http://www.aclu.org/'>ACLU</a>. Okay, that's it for today. + + diff --git a/content/posts/2003-01-12-riaa-defaced-again-yawn.html b/content/posts/2003-01-12-riaa-defaced-again-yawn.html new file mode 100644 index 0000000..55bb8d2 --- /dev/null +++ b/content/posts/2003-01-12-riaa-defaced-again-yawn.html @@ -0,0 +1,9 @@ +--- +date: "2003-01-12T08:09:05Z" +title: RIAA Defaced Again (yawn) +--- + +<p> +Not really news, but I thought <a href='http://www.riaa.org/PR_story.cfm?id=597'>this</a> forged article on the RIAA site. In case they have it repaired by the time you get there, I mirrored the article <a href='/download/riaa_defacement.html'>here</a>. Okay, I'm really going to bed now. +</p> + diff --git a/content/posts/2003-01-22-new-kid-tom-tomorrow-and-more.html b/content/posts/2003-01-22-new-kid-tom-tomorrow-and-more.html new file mode 100644 index 0000000..bb284e9 --- /dev/null +++ b/content/posts/2003-01-22-new-kid-tom-tomorrow-and-more.html @@ -0,0 +1,20 @@ +--- +date: "2003-01-22T23:01:05Z" +title: New Kid, Tom Tomorrow, and More +--- + +<p> +Other than <a href='http://www.snowman.net/'>Stephen</a> and Megan having their baby, not a lot has been going on, but I do have a big pile of interesting links. I followed the link on <a href='http://www.linuxbrit.co.uk/'>Tom's</a> sidebar to <a href='http://boingboing.net/'>Boing Boing</a> and it's got some cool stuff on it. Interesting news editorials are <a href='http://www.rockymountainnews.com/drmn/news_columnists/article/0,1299,DRMN_86_1655609,00.html'>here</a>, <a href='http://www.sfgate.com/cgi-bin/article.cgi?file=/g/a/2003/01/10/notes011003.DTL'>here</a>, <a href='http://story.news.yahoo.com/news?tmpl=story&u=/vv/20030117/lo_laweekly/41257'>here</a>, +<a href='http://www.theinquirer.net/?article=7308&'>here</a>, +<a href='http://customwire.ap.org/dynamic/stories/D/DATA_MINING?SITE=CODEN&SECTION=US'>here</a>, and <a href='http://talkingpointsmemo.com/jan0302.html#011303908am'>here</a>. Also, I found <a href='http://www.luminary.us/russell/religionciv.html'>another</a> good Bertrand Russell essay. +</p> + +<p> +Ever want to build your own emulation console? <a href='http://www.arcadecontrols.com/arcade_emulation.shtml'>Here's</a> how. Or maybe you just want to use SNES controllers for <a href='http://www.snes9x.com/'>SNES9x</a>? If so, then you'll want <a href='http://snespad.emulationworld.com/welcome.html'>one of these</a>. If you're looking for an audio device that works with your existing MP3 archive, then you should check out the <a href='http://www.turtlebeach.com/site/products/audiotron/producthome.asp'>AudioTron</a>. <a href='http://www.tomshardware.com/'>Tom's Hardware</a> has an in-depth article about the <a href='http://www6.tomshardware.com/graphic/20021118/index.html'>GeforceFX</a>. +<a href='http://crypto.stanford.edu/~eujin/sslsniffer/draft-ietf-tls-http-upgrade.html'>Here</a> is an interesting article about tunneling HTTP via <a href='http://www.ietf.org/html.charters/tls-charter.html'>TLS</a> (eg the successor to <a href='http://wp.netscape.com/eng/ssl3/draft302.txt'>SSL</a>). The OpenSSL <a href='http://www.openssl.org/related/ssl.html'>related links page</a> also has a ton of interesting SSL and TLS info. +</p> + +<p> +Finally, everyone should check out <a href='http://www.thismodernworld.com/'>Tom Tomorrow's blog</a>, and <a href='http://www.salon.com/'>Salon's</a> archive of his comic strips <a href='http://dir.salon.com/topics/tom_tomorrow/index.html'>here</a> (my favorite strip is <a href='http://www.salon.com/comics/tomo/2002/11/18/tomo/index.html'>this one</a>). +</p> + diff --git a/content/posts/2003-01-26-lazy-weekend.html b/content/posts/2003-01-26-lazy-weekend.html new file mode 100644 index 0000000..62fef78 --- /dev/null +++ b/content/posts/2003-01-26-lazy-weekend.html @@ -0,0 +1,40 @@ +--- +date: "2003-01-26T13:44:50Z" +title: Lazy Weekend +--- + +<p> +It looks like <a href='http://www.fox.com/firefly/'>Firefly</a> might +not be dead yet. The number two Firefly guy posted <a +href='http://www.fireflyfans.net/news.asp?newsid=351'>this comment</a>, +which says the guys in charge are still trying to save the show. Also, +<a href='http://www.fireflysupport.com/'>Firefly Support</a> just +updated yesterday. And <a +href='http://firefly.shriftweb.org/support.shtml'>here</a> is a list of +companies who have bought advertising time during Firefly. For those of +you unfamiliar with the show, you can check out a good review right <a +href='http://www.theindependentreviewssite.org/v3_i3_tv_hell.html'>here</a>. +</p> + +<p> +<a href='http://www.michaelmoore.com/'>Michael Moore</a> made an +appearance on the Daily Show. <a +href='http://www.onlisareinsradar.com/archives/000833.php#000833'>Here's</a> +the downloadable version. <a +href='http://www.alternet.org/'>Alternet</a> has +<a href='http://www.alternet.org/story.html?StoryID=14296'>this</a> +positive review of <a href='http://www.bowlingforcolumbine/'>Bowling for +Columbine</a>. A few editorials that are bound to piss people off are +<a +href='http://www.canada.com/search/story.aspx?id=d11680a0-72b6-451d-8a7a-ae4bf2f09dcc'>here</a> +and <a href='http://usainreview.com/1_21_Security_Council.htm'>here</a> +(obviously I don't agree with the second one at all, but it's still an +interesting read). Everyone who has an opinion about the RIAA should +read <a href='http://shift.com/content/web/449/1.html'>this article</a>. +Finally, <a +href='http://www.intrepidsoftware.com/fallacy/toc.htm'>here</a> is a big +list of logical fallacies, and <a +href='http://blue.census.gov/main/www/popcld.html'>here</a> is a Census +Bureau population guestimator. +</p> + diff --git a/content/posts/2003-02-12-update-of-death.html b/content/posts/2003-02-12-update-of-death.html new file mode 100644 index 0000000..03a2400 --- /dev/null +++ b/content/posts/2003-02-12-update-of-death.html @@ -0,0 +1,102 @@ +--- +date: "2003-02-12T21:50:54Z" +title: Update of Death +--- + +<p> +I was going to procastinate for another week or so, but <a href='http://galeon.sf.net/'>Galeon</a> is using an obscene amount of RAM, running slow, and generally making web browsing an unpleasant experience. See, when I stumble across links I'm interested in, I usually just keep a tab open until I either bookmark it (effectively losing the URL forever) or add it to my page so other people can appreciate it. So, when I don't update my page for a while, I end up with a web browser that has 50 tabs open, eats 140 megs of RAM and takes 5 seconds to open an empty tab. Enough of the rant; on to the fun stuff. +</p> + +<p><a href='http://christiananswers.net/q-aig/aig-c005.html'>Here's</a> +a funny article from a "Creationist", attempting to bend what the big +bang to fit with some wacky ideas they got from a book. <a +href='http://community-2.webtv.net/@HH!63!85!DF300BB11C29/jamie863/womenincar/'>Here's</a> +the least comfortable seat I've ever seen in a truck (although it +appears to have more room in the dashboard than <a +href='http://www.linuxbrit.co.uk/'>Tom's</a> entire <a +href='/gallery/20021013-gilbert_wedding/?g_show=1&g_ofs=12&g_num=1'>car</a>). +<a +href='http://democracymeansyou.com/satire/spin-generator.htm'>Here's</a> +a really useful REpublican Speechmaking page. <a +href='http://maddox.xmission.com/'>Here</a> is the best page in the +universe. For the computer geeks, <a +href='http://irc.netsplit.de/networks/'>this page</a> has stats on +virtually every IRC network out there, <a +href='http://packetstormsecurity.nl/groups/horizon/stack.txt'>this +page</a> has more information than you could possibly ever want about +bypassing a non-executable stack (a new feature in <a +href='http://www.openbsd.org/'>OpenBSD</a>), and <a +href='http://plato.stanford.edu/entries/time-travel-phys/'>this page</a> +talks about time travel, paradoxes, and other cool physics stuff. <a +href='http://sequence.rutgers.edu/sequitur/'>Sequitur</a> is a really +cool text analysis engine. EPIC dissected the good old Patriot Act; you +can read their analysis <a +href='http://www.epic.org/privacy/terrorism/usapatriot/'>here</a>. <a +href='http://www.star.t.u-tokyo.ac.jp/projects/MEDIA/xv/oc.html'>Prototype +Optical Camouflage</a>. If you're looking for a fun game in Linux, +check out <a href='http://www.racer.nl/'>Racer</a> and <a +href='http://www.racer-xtreme.com/'>Racer-Xtreme</a>. <a +href='http://www.linuxjournal.com/article.php?sid=4885'>Here's</a> a +cool article (linked from <a +href='http://www.kerneltrap.org/'>KernelTrap</a>) about the +optimizations performed by Intel's compiler. <a +href='http://www.intel.com/technology/itj/q12001/articles/art_6.htm'>Here</a> +is an interesting article on Intel's site which expands on the +information presented in the article. Everyone should check out the <a +href='http://toastytech.com/guis/index.html'>Unofficial GUI +Timeline</a>; it's missing some stuff I think is relevant, but overall +it's pretty well done. <a +href='http://www.thewavemag.com/pagegen.php?pagename=article&articleid=22906'>Here</a> +is an article by Seanbaby, and <a +href='http://www.x-entertainment.com/articles/0732/index.html'>here</a> +is an awesome Ninja Turtles PSA review. +</p> + +<p> +Oh yeah, I almost forgot my list of inflammatory political articles. To keep things interesting, I've organized this list into convenient groups, so you know what you're getting yourself into. +</p> + +<b>The Rest of the World Love the U.S.</b> +<ul> +<li><a href='http://www.villagevoice.com/issues/0307/ridgeway.php'>Iraq is really dangerous! No, really!</a> +</li> +<li><a href='http://www.charm.net/~marc/chronicle/ol_to_america2.shtml'>Fortunately people in America are level-headed.</a> +</li> +<li><a href='http://www.torontostar.com/NASApp/cs/ContentServer?pagename=thestar/Layout/Article_Type1&c=Article&cid=1035777592117&call_page=TS_News&call_pageid=968332188492&call_pagepath=News/News'>People on camera always tell the truth.</a> +</li> +<li><a href='http://www.sfgate.com/columnists/sorensen//'>Seriously, they're dangerous!</a> +</li> +<li><a href='http://www.progressive.org/feb03/ivins0203.html'>More of the same.</a> +</li> +<li><a href='http://www.torontostar.com/NASApp/cs/ContentServer?pagename=thestar/Layout/Article_Type1&c=Article&cid=1035777592117&call_page=TS_News&call_pageid=968332188492&call_pagepath=News/News'>We may not be paying our dues, but at least we're helping the U.N., right? Oh wait.</a> +</li> +</ul> + +<b>Fox News: The Epitomy of Objectivity</b> +<ul> +<li><a href='http://www.thismodernworld.com/weblog/mtarchives/week_2003_02_02.html#000180'>Especially Bill O'Rielly.</a> +</li> +<li><a href='http://news.bbc.co.uk/1/hi/uk_politics/2726831.stm?'>Not +like those damn Brits, who always trying and spin everything.</a> +</li> +<li><a href='http://www.metrotimes.com/editorial/story.asp?id=4556'>Impeccable Logic from the Ministry of Truth</a> +</li> +<li><a href='http://www.newhumanist.com/outofstep.html'>Yeah, those pesky details piss me off too.</a> +</li> +</ul> + +<b>Stuff I Couldn't Fit in Other Categories Which Will Still Piss Someone Off</b> +<ul> +<li><a href='http://www.votetoimpeach.org/'>Tell the president what you think of his work.</a> +</li> +<li><a href='http://www.washingtonpost.com/wp-dyn/articles/A47534-2003Jan26.html'>Yeah, but can she act?</a> +</li> +<li><a href='http://www.digitaljournalist.org/issue0212/pt_intro.html'>How I spent my summer vacation.</a> +</li> +</ul> + + +<p> +I finally added some new stuff to my sidebar! <a href='/software/ft2-ruby'>FreeType2-Ruby</a> is out (sorta), and so is <a href='/software/mb-ruby'>MusicBrainz-Ruby</a>. The former is alpha (eg, it will crash), and the latter should be stable (eg, it will crash, but I won't be able to figure out why). +</p> + diff --git a/content/posts/2003-02-13-peace-rallies-worldwide.html b/content/posts/2003-02-13-peace-rallies-worldwide.html new file mode 100644 index 0000000..4957d70 --- /dev/null +++ b/content/posts/2003-02-13-peace-rallies-worldwide.html @@ -0,0 +1,9 @@ +--- +date: "2003-02-13T13:20:00Z" +title: Peace Rallies Worldwide +--- + +<p> +If you're not busy this weekend, you should try and make it to one of the <a href='http://www.unitedforpeace.org/'>Peace rallies taking place world-wide</a>. +</p> + diff --git a/content/posts/2003-02-15-quickie.html b/content/posts/2003-02-15-quickie.html new file mode 100644 index 0000000..e8389df --- /dev/null +++ b/content/posts/2003-02-15-quickie.html @@ -0,0 +1,18 @@ +--- +date: "2003-02-15T21:08:03Z" +title: Quickie +--- + +<p> +<a href='/software/joystick-ruby/'>Linux joystick</a> and Ruby/DBI <a +href='/software/dbd-google-ruby/'>Google DBD</a> bindings. <a +href='http://www.ruben.fm/videos/format.mov'>Cool video</a>. <a +href='http://www.scoop.co.nz/mason/stories/HL0302/S00061.htm'>Obligatory +inflammatory political article</a> (and <a +href='http://www.whitehouse.org/news/2003/020103.asp'>this one</a> too). +Apparently the <a +href='http://www.betterworldclub.com/memberbenefits/AAA/AAA_record.htm'>Better +World Club</a> offers the same benefits as AAA, but without the sketchy +anti-environment lobbying. +</p> + diff --git a/content/posts/2003-04-29-hi.html b/content/posts/2003-04-29-hi.html new file mode 100644 index 0000000..2c98211 --- /dev/null +++ b/content/posts/2003-04-29-hi.html @@ -0,0 +1,9 @@ +--- +date: "2003-04-29T00:47:39Z" +title: Hi! +--- + +<p> +Hi, I'm still alive. I'll post an update pretty soon here. +</p> + diff --git a/content/posts/2003-05-25-maybe-not.html b/content/posts/2003-05-25-maybe-not.html new file mode 100644 index 0000000..d62f538 --- /dev/null +++ b/content/posts/2003-05-25-maybe-not.html @@ -0,0 +1,9 @@ +--- +date: "2003-05-25T16:45:06Z" +title: Maybe Not +--- + +<p> +Okay, maybe it'll take me a little while to post something. I promise I will soon though! +</p> + diff --git a/content/posts/2003-06-24-and-another-thing.html b/content/posts/2003-06-24-and-another-thing.html new file mode 100644 index 0000000..9a88a56 --- /dev/null +++ b/content/posts/2003-06-24-and-another-thing.html @@ -0,0 +1,15 @@ +--- +date: "2003-06-24T12:27:13Z" +title: And Another Thing... +--- + +<p> +I forgot to mention the <a href='http://www.ruby-talk.org/74228'>Raggle announcement<a/> on the <a href='http://www.ruby-talk.org/'>Ruby-Talk mailing list</a>. +</p> + +<p> +Since I'm here, I might as well post a few links. +<a href='http://www.gladwell.com/2002/2002_12_02_a_snl.htm'>This page</a> is an interesting discussion about <a href='http://www.abacon.com/commstudies/groups/groupthink.html'>Groupthink</a>, using the cast of Saturday Night Live as an example. +I switched to framebuffer console on halcyon. Using <a href='http://www.bootsplash.org/'>Boot Splash</a>, I have a <a href='/screenshots/fb_console.png'>cool looking console</a>. I can also view images from the command-line with fbi, and watch movies with <a href='http://xine.sf.net/'>fbxine</a>. +</p> + diff --git a/content/posts/2003-06-24-raggle.html b/content/posts/2003-06-24-raggle.html new file mode 100644 index 0000000..9ef8850 --- /dev/null +++ b/content/posts/2003-06-24-raggle.html @@ -0,0 +1,16 @@ +--- +date: "2003-06-24T12:10:54Z" +title: Raggle +--- + +<p> +<a href='http://www.richlowe.net/'>Richard (richlowe)</a> and I just unleashed our latest creation on the world: <a href='/software/raggle/'>Raggle</a>. Raggle is a console RSS aggregator, written in <a href='http://www.ruby-lang.org/'>Ruby</a>. Here's a <a href='/software/raggle/shots/00.png'>screenshot</a>, or you can skip straight to the <a href='/download/raggle-0.1.0.tar.gz'>version 0.1.0 download</a>. This is the initial release, so there are still some bugs. In fact, <a href='http://www.tynian.net/'>Brian (bma)</a> already reported a nasty one, and the patch for it is <a href='/download/raggle-0.1.0-describe_feed_bignum.patch'>here</a> (if patches scare you, this fix will be in version 0.1.1, which should be out within a couple of days). +That said, any suggestions, criticism, etc can be sent to <a href='mailto:i_hate_raggle@pablotron.org'>i_hate_raggle@pablotron.org</a>. +</p> + +<p> +On a completely unrelated note ;), this site now has an RSS feed. Check out the "Syndicate (RSS)" link on the sidebar, or click <a href='/?theme=rss&max=15'>here</a>. +</p> + + + diff --git a/content/posts/2003-06-25-fam-ruby-0-1-1.html b/content/posts/2003-06-25-fam-ruby-0-1-1.html new file mode 100644 index 0000000..a63aa40 --- /dev/null +++ b/content/posts/2003-06-25-fam-ruby-0-1-1.html @@ -0,0 +1,9 @@ +--- +date: "2003-06-25T17:47:04Z" +title: FAM-Ruby 0.1.1 +--- + +<p> +Version 0.1.1 of <a href='/software/fam-ruby/'>FAM-Ruby</a> is available <a href='/download/fam-ruby-0.1.1.tar.gz'>here</a>. You can also view the <a href='/software/fam-ruby/ChangeLog'>ChangeLog</a>. +</p> + diff --git a/content/posts/2003-06-25-raggle-0-1-1.html b/content/posts/2003-06-25-raggle-0-1-1.html new file mode 100644 index 0000000..8116080 --- /dev/null +++ b/content/posts/2003-06-25-raggle-0-1-1.html @@ -0,0 +1,9 @@ +--- +date: "2003-06-25T21:01:26Z" +title: Raggle 0.1.1 +--- + +<p> +I'm on a roll today! Version 0.1.1 of <a href='/software/raggle/'>Raggle</a> is available <a href='/download/raggle-0.1.1.tar.gz'>here</a>. The changes include a couple of bug fixes, an important security fix, and support for the Home and End keys (assuming your terminal supports them). The full ChangeLog is available <a href='/software/raggle/ChangeLog'>here</a>. +</p> + diff --git a/content/posts/2003-06-27-apparently-i-m-a-total-msdn-whore.html b/content/posts/2003-06-27-apparently-i-m-a-total-msdn-whore.html new file mode 100644 index 0000000..1f1063b --- /dev/null +++ b/content/posts/2003-06-27-apparently-i-m-a-total-msdn-whore.html @@ -0,0 +1,39 @@ +--- +date: "2003-06-27T18:21:32Z" +title: Apparently I'm a Total MSDN Whore +--- + +<p> +<a href='http://msdn.microsoft.com/msdnmag/issues/03/02/BITS/default.aspx'>BITS</a> is kind of interesting, although I think it poses some serious security and stability risks. It did get me thinking about a <code>Net::Require::require</code> implementation for <a href='http://www.ruby-lang.org/'>Ruby</a> again, though. So I guess it's not all bad. +</p> + +<p> +<a href='http://www.webservices.org/index.php/article/view/613'>Here</a> is a brief list of Web Services vying for the place of RSS. From the article: +</p> + +<blockquote> +While these efforts are certainly worthwhile and promising, it will most likely take years before they pass the filters of real life use before they can claim widespread adoption. All of them ask for a thick infrastructure layer to support implementations. While possible, it is unlikely that mainstream deployment will be achieved instantly. +</blockquote> + +<p> +<b>Translation:</b> <i>"It's fun to work on this stuff, but we already know our implementation won't scale and will be difficult for developers to use."</i> +</p> + +<p> +I love it when standards organizations find a simple format or protocol and say "Wow, that's a great idea. Let's create our own and tack on a bunch of unnecessary crap, making our standard complicated, slow, obtuse, and effectively irrelevant. HTTP perservered because it is simple. RSS is still kicking because it issimple. +Is this concept difficult to grasp, or is the <i>Committee Reality +Distortion Vortex</i>™ masking common sense again? +</p> + +<p> +<code># delete the RSS equivalent of New Coke</code><br /> +<code>rm -rf WS{XL,IL,RP}</code><br /> +<br /> +<code># keep the good stuff around</code><br /> +<code>chmod a-x RSS</code> +</p> + +<p> +Okay, </rant> :-)... +</p> + diff --git a/content/posts/2003-06-27-firebird-makes-me-sad.html b/content/posts/2003-06-27-firebird-makes-me-sad.html new file mode 100644 index 0000000..ef7888a --- /dev/null +++ b/content/posts/2003-06-27-firebird-makes-me-sad.html @@ -0,0 +1,26 @@ +--- +date: "2003-06-27T17:25:14Z" +title: Firebird Makes Me Sad +--- + +<p> +I had an awesome new post all ready to go, then a fuse blew in the house and killed the power on my workstation and file server. Oh well. I know I had some of the following URLs linked from it: +</p> + +<ul> +<li><a href='http://diveintomark.org/archives/2002/08/15/ultraliberal_rss_locator.html'>The Ultra-liberal RSS Locator</a></li> +<li><a href='http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnexxml/html/xml02172003.asp'>MSDN's "Building a Desktop News Aggregator"</a></li> +<li><a href='http://www.syndic8.com/'>Syndic8</a>: a great RSS feed repository</li> +<li><a href='http://www.syndic8.com/xml.php'>Syndic8's feed list query</a></li> +<li><a href='http://groups.yahoo.com/group/aggregators/'>The Aggregators mailing list</a></li> +<li><a href='http://www.opml.org/'>OPML</a>: RSS feed list interchange</li> +</ul> + +<p> +The <a href='http://msdn.microsoft.com/'>MSDN</a> and <a href='http://www.diveintomark.org/'>Dive Into Mark</a> links have a lot of interesting ideas which I'd like to see implemented in <a href='/software/raggle/'>Raggle</a>. I'd like to know which features <a href='http://blogspace.com/rss/readers'>those other inferior RSS aggregators</a> appeal to users (ones that can be reasonably implemented in Raggle, that is). If you have an idea, feel free to email it to <a href='mailto:i_hate_raggle@pablotron.org'>i_hate_raggle@pablotron.org</a>. +</p> + +<p> +Oh yeah, <a href='http://www.twistedpath.org'>Lyle (term)</a> pointed me at <a href='http://www.americanapologyshirt.com/'>these shirts</a>. Mine should be here in a few days :-). +</p> + diff --git a/content/posts/2003-06-28-fresh-off-the-pablotron-grill.html b/content/posts/2003-06-28-fresh-off-the-pablotron-grill.html new file mode 100644 index 0000000..0f768c9 --- /dev/null +++ b/content/posts/2003-06-28-fresh-off-the-pablotron-grill.html @@ -0,0 +1,10 @@ +--- +date: "2003-06-28T15:41:57Z" +title: Fresh Off the Pablotron Grill +--- + +<p> +<a href='/software/raggle/'>Raggle</a> version 0.1.2. What's new? A handful of bug fixes and a few new features. Anyway, the download is +<a href='/download/raggle-0.1.2.tar.gz'>here</a>. Take a look at the post from yesterday if you'd like to see some of the stuff I have in mind for the future of Raggle. +</p> + diff --git a/content/posts/2003-06-30-cvs-fun.html b/content/posts/2003-06-30-cvs-fun.html new file mode 100644 index 0000000..15e18a4 --- /dev/null +++ b/content/posts/2003-06-30-cvs-fun.html @@ -0,0 +1,57 @@ +--- +date: "2003-06-30T23:53:20Z" +title: CVS Fun +--- + +<p> +After several months of using a private CVS repository, I finally have a publicly accessible CVS server again. The details are on <a href='/cvs/'>the CVS page</a>. There's also a <a href='http://viewcvs.sf.net/'>ViewCVS</a> interface to the repository at <a href='http://cvs.pablotron.org/'>http://cvs.pablotron.org/</a>. +</p> + +<p> +If you feel like playing with <a href='/software/raggle'>Raggle</a>, you can grab the latest version (including Ville Aine's OPML import/export code and <a href='http://www.richlowe.net/'>Richard's</a> description window scrolling) with the following script: +</p> + +<p> +<code> +#!/bin/sh<br /> +<br /> +echo Press enter at the password prompt<br /> +CVSROOT=:pserver:anonymous@cvs.pablotron.org:/var/lib/cvs login<br /> +export CVSROOT<br /> +# check out stable and development branches<br /> +cvs -z3 co raggle<br /> +cvs -z3 co -rRAGGLE-0-1 -d raggle-0.1 raggle<br /> +</code> +</p> + + +<p> +I stumbled across a bunch of interesting stuff in the last few days. +Here's a handful of the more interesting ones: +</p> + +<p> +<ul> +<li><a href='http://www.thememoryhole.org/911/hearings/joint-inquiry-shelby.pdf'>September 11th and the Imperative of Reform in the U.S. Intelligence Community</a> (from <a href='http://www.thememoryhole.org/'>TMH</a>)</li> +<li><a href='http://www.nagios.org/'>Nagios</a> (from <a +href='http://www.richlowe.net/'>Richard</a>)</li> +<li><a href='http://www.projectseven.com/tutorials/css_menus/list_01/index.htm'>Uberlink CSS Rollovers</a> (from <a href='http://www.diveintomark.org/'>DIM</a>)</li> +<li><a href='http://www.thismodernworld.com/weblog/mtarchives/week_2003_06_22.html#000826'>John Ashcroft at his Finest</a> (from <a href='http://www.thismodernworld.com/'>TMW</a>)</li> +<li><a href='http://dear_raed.blogspot.com/'>Dear Raed</a> (actually, I think I linked to him before, but he's still updating, and it's still fascinating)</li> +</ul> +</p> + +<p> +I'll leave you with this quote from <a href='http://www.diveintomark.org/'>Dive Into Mark</a>, which neatly summarizes my opinion on the future of technology: +</p> + +<p> +<blockquote> +I will not be arguing the merits of web standards, CSS, accessibility, and open source. It is quite obvious to me that these are the future of the Internet and of the computing industry in general, and if you don’t see that by now, I can’t help you. Adapt or get left behind. +</blockquote> +</p> + +<p> +<b>Update:</b> I screwed up on the CVS root. It's fixed now. +</p> + diff --git a/content/posts/2003-07-01-linuxbrit-without-email-say-it-ain-t-so.html b/content/posts/2003-07-01-linuxbrit-without-email-say-it-ain-t-so.html new file mode 100644 index 0000000..aa07cee --- /dev/null +++ b/content/posts/2003-07-01-linuxbrit-without-email-say-it-ain-t-so.html @@ -0,0 +1,9 @@ +--- +date: "2003-07-01T00:08:21Z" +title: Linuxbrit Without Email? Say it Ain't So! +--- + +<p> +One more thing. <a href='http://www.linuxbrit.co.uk/'>Tom's</a> email is temporarily broken. I've set up a temporary relay to his work address (which I don't want to give it out, for obvious reasons). Anyway, mail sent to <a href='mailto:tom.gilbert@pablotron.org'>tom.gilbert@pablotron.org</a> will be relayed on to his work email address (until this fiasco is resolved, that is). +</p> + diff --git a/content/posts/2003-07-03-and-the-award-goes-to.html b/content/posts/2003-07-03-and-the-award-goes-to.html new file mode 100644 index 0000000..3e9f729 --- /dev/null +++ b/content/posts/2003-07-03-and-the-award-goes-to.html @@ -0,0 +1,17 @@ +--- +date: "2003-07-03T21:31:35Z" +title: And the Award Goes To... +--- + +<p> +Prior to my big dot-file to CVS module move [ala <a href='http://www.acmeunix.org/'>James (moss)</a> and <a href='http://www.richlowe.net/'>Richard (richlowe)</a>], I decided to beef up my <a href='http://www.vim.org/'>VIM</a> configuration. While searching the script section <a href='http://www.vim.org/'>vim.org</a>, I stumbled across a special script. I feel as though this script deserves the coveted <i>Cool But For the Love of God Why</i> ™ award. This years winner? +</p> + +<p align='center'> +...drum roll... +</p> + +<p> +<a href='http://www.vim.org/scripts/script.php?script_id=28'>VIM XMMS</a>. VIM XMMS allows you to control XMMS from VIM. +</p> + diff --git a/content/posts/2003-07-03-raggle-0-1-3.html b/content/posts/2003-07-03-raggle-0-1-3.html new file mode 100644 index 0000000..130915d --- /dev/null +++ b/content/posts/2003-07-03-raggle-0-1-3.html @@ -0,0 +1,9 @@ +--- +date: "2003-07-03T20:42:30Z" +title: Raggle 0.1.3 +--- + +<p> +<a href='/software/raggle/'>Raggle</a> version 0.1.3. <a href='/download/raggle-0.1.3.tar.gz'>Download</a>. This is probably the last version of the 0.1 series. Version 0.2 seems to be relatively stable, so we'll probably be releasing it within the next week or so. +</p> + diff --git a/content/posts/2003-07-06-oh-yeah-the-weight-thing.html b/content/posts/2003-07-06-oh-yeah-the-weight-thing.html new file mode 100644 index 0000000..52ca61c --- /dev/null +++ b/content/posts/2003-07-06-oh-yeah-the-weight-thing.html @@ -0,0 +1,23 @@ +--- +date: "2003-07-06T23:21:16Z" +title: Oh Yeah, The Weight Thing... +--- + +<p> +Apparently I never linked it from here, but I've been exercising, eating well, and losing weight since the beginning of March. At the moment I weigh 205, down from 263 (a total of 58 pounds lost). My goal is 180 pounds. In true geek style, I've been keeping a log of my progress. You can check out the log and graphs of my progress on <a href='/weight/'>my weight page</a>. +</p> + +<p> +On Friday I moved my Bash, Screen, and VIM settings into a <a href='http://cvs.pablotron.org/?m=dotfiles'>Dotfiles CVS module</a>. There's a directory for <a href='http://www.mutt.org/'>Mutt</a> settings as well, but I haven't imported those yet. +</p> + +<p> +Did everyone enjoy their 4th of July (well, everyone in the U.S. at least)? I relaxed at home, and set off some fireworks with Jon-Anne (lilyj) and <a href='http://www.richlowe.net/'>Richard (richlowe)</a>. +</p> + +<p> +Oh yeah, it's still a little rough, but I finally have some content on <a href='http://www.paulduncan.org/'>paulduncan.org</a>. At the moment it's <code>XHTML 1.1 Strict</code> compliant, but it doesn't render at all in IE6, and it renders incorrectly in Konqueror. There's no real content at the moment, so I'm not too worried about fixing it just yet. Okay, well that's it for now... +</p> + + + diff --git a/content/posts/2003-07-07-gee-i-don-t-know-you-tell-me.html b/content/posts/2003-07-07-gee-i-don-t-know-you-tell-me.html new file mode 100644 index 0000000..1c8b4e6 --- /dev/null +++ b/content/posts/2003-07-07-gee-i-don-t-know-you-tell-me.html @@ -0,0 +1,10 @@ +--- +date: "2003-07-07T19:19:52Z" +title: GEE, I DON'T KNOW... YOU TELL ME +--- + +<p> +Hey guys, I'm having a hard time answering +<a href='http://www.cnn.com/2003/LAW/06/06/findlaw.analysis.dean.wmd/'>this question</a>, maybe you can.help (from <a href='http://www.pigdog.org/'>Pigdog</a>). +</p> + diff --git a/content/posts/2003-07-10-raggle-org-is-alive-it-s-aliiiiiiiiiiiivee.html b/content/posts/2003-07-10-raggle-org-is-alive-it-s-aliiiiiiiiiiiivee.html new file mode 100644 index 0000000..6ffc882 --- /dev/null +++ b/content/posts/2003-07-10-raggle-org-is-alive-it-s-aliiiiiiiiiiiivee.html @@ -0,0 +1,9 @@ +--- +date: "2003-07-10T05:34:43Z" +title: Raggle.org is Alive! IT's ALIIIIIIIIIIIIVEE! +--- + +<p> +Title says it all. <a href='http://www.raggle.org/'>Raggle.org</a>, at your service. Also the handy new <a href='http://www.raggle.org/cgi-bin/mailman/listinfo/raggle-dev'>raggle-dev</a> mailing list should unclutter my inbox. Also, if you're looking for something fun to test, <a href='mailto:vaine@cs.helsinki.fi'>Ville Aine</a> submitted (among a deluge of other things) <a href='http://www.raggle.org/files/patches/raggle-ville-experimental_html_renderer.patch.gz'>an experimental HTML renderer</a> for Raggle. It's not in the main trunk yet, but it looks promising. +</p> + diff --git a/content/posts/2003-07-15-guilty-state-of-mind.html b/content/posts/2003-07-15-guilty-state-of-mind.html new file mode 100644 index 0000000..1b343f5 --- /dev/null +++ b/content/posts/2003-07-15-guilty-state-of-mind.html @@ -0,0 +1,9 @@ +--- +date: "2003-07-15T16:31:15Z" +title: '"Guilty State of Mind"' +--- + +<p> +I stumbled across <a href='http://slashdot.org/comments.pl?sid=71149&cid=6444452'>this Slashdot comment</a> talking about the Aimster ruling. Doesn't bode well for the <a href='http://freenet.sf.net/'>Freenet</a>-style "I didn't know" defense. +</p> + diff --git a/content/posts/2003-07-25-read-this-get-a-visit-from-the-man.html b/content/posts/2003-07-25-read-this-get-a-visit-from-the-man.html new file mode 100644 index 0000000..ddf6b42 --- /dev/null +++ b/content/posts/2003-07-25-read-this-get-a-visit-from-the-man.html @@ -0,0 +1,10 @@ +--- +date: "2003-07-25T08:53:13Z" +title: Read This, Get a Visit From the Man +--- + +<p> +Well, not really, but +<a href='http://www.thismodernworld.com/weblog/mtarchives/week_2003_07_13.html#000897'>this guy</a> did (linked from <a href='http://www.thismodernworld.com/'>Tom Tomorrow</a>). +</p> + diff --git a/content/posts/2003-07-25-riaa-mpaa-blowback.html b/content/posts/2003-07-25-riaa-mpaa-blowback.html new file mode 100644 index 0000000..8483d81 --- /dev/null +++ b/content/posts/2003-07-25-riaa-mpaa-blowback.html @@ -0,0 +1,19 @@ +--- +date: "2003-07-25T09:00:16Z" +title: RIAA/MPAA Blowback +--- + +<p><a href='http://www.techfocus.org/'>TechFocus</a> + has decided that +the <acronym title='Recording Industry Association of +America'>RIAA</acronym> and +<acronym title='Motion Picture Association'>MPAA</acronym> violated +their <acronym title='Terms of Service'>TOS</acronym> and they're also +unhappy with the RIAA/MPAA mass <acronym title='Peer to +Peer'>P2P</acronym> litigation (courtesy of friend, the <acronym +title='Digital Millenium Copyright Act'>DMCA</acronym>). As a result, +TechFocus has <a +href='http://techfocus.org/comments.php?catid=17&id=3662'>banned the +RIAA and MPAA</a>. + </p> + diff --git a/content/posts/2003-08-02-w3c-html-recommendations.html b/content/posts/2003-08-02-w3c-html-recommendations.html new file mode 100644 index 0000000..411fea6 --- /dev/null +++ b/content/posts/2003-08-02-w3c-html-recommendations.html @@ -0,0 +1,10 @@ +--- +date: "2003-08-02T19:04:44Z" +title: W3C HTML Recommendations +--- + +<p> +While working on a web page, I stumbled across the +<a href='http://www.w3.org/TR/REC-html40/struct/text.html'>W3C HTML Recommendations</a>. Mostly obvious, but I did find a few tags I didn't know about. +</p> + diff --git a/content/posts/2003-08-10-squid-to-privoxy-proxy-o-rama.html b/content/posts/2003-08-10-squid-to-privoxy-proxy-o-rama.html new file mode 100644 index 0000000..ea69b98 --- /dev/null +++ b/content/posts/2003-08-10-squid-to-privoxy-proxy-o-rama.html @@ -0,0 +1,27 @@ +--- +date: "2003-08-10T14:38:09Z" +title: Squid to Privoxy, Proxy-O-Rama +--- + +<p> +I just finished setting <a href='http://www.squid-cache.org/'>Squid</a>. +It forwards to <a href='http://www.privoxy.org/'>Privoxy</a>. Things +feel a little faster, but I'll have to play around with it a bit more +before I know for sure. Also, I set up <a +href='http://www.squid-cache.org/Doc/FAQ/FAQ-5.html#ss5.2'>automatic +browser proxy configuration</a> based on <a +href='http://www.squid-cache.org/Doc/FAQ/FAQ-5.html#ss5.4'>this +script</a>. My internal machines can access the proxy configuration at +the <acronym title='Uniform Resource Locator'>URL</acronym> +<code>http://proxy/auto/</code>. If you'd like to use it, you can +grab it <a href='/download/proxy.pac'>here</a>. + </p> + +<p> +<a href='http://www.paulgraham.com/ffb.html'>New Paul Graham article</a>. A <a href='http://www.livejournal.com/users/jwz/193866.html'>rant on jwz's blog</a> about the problems with CSS layout. <a href='http://www.gnu.org/directory/security/libgcrypt.html'>Gcrypt</a>, a set of crypto functions from <a href='http://www.gnupg.org/'>GnuPG</a>; I'm thinking about whipping up some <a href='http://www.ruby-lang.org/'>Ruby</a> bindings. +</p> + +<p> +I've finally got some content on <a href='http://www.paulduncan.org/'>my other personal site</a>. I think I'm going to be using it for non-tech material (writing, day to day stuff, etc). The backend is much smaller (and cleaner) than this site, and as a result it's easier to update and maintain. +</p> + diff --git a/content/posts/2003-08-13-grepmail.html b/content/posts/2003-08-13-grepmail.html new file mode 100644 index 0000000..1a91b09 --- /dev/null +++ b/content/posts/2003-08-13-grepmail.html @@ -0,0 +1,10 @@ +--- +date: "2003-08-13T14:36:36Z" +title: Grepmail +--- + +<p> +Grepmail is broken in <a href='http://www.debian.org/'>Debian</a> at the moment; one of the packages it depends on is <acronym title='Missing In Action'>MIA</acronym>. If you want to install it, you can grab <code>libmail-mbox-messageparser-perl</code> (the missing package), <a href='http://www.kitenet.net/~joey/debian/unstable/'>in this repository</a>. +</p> + + diff --git a/content/posts/2003-08-17-raggle-0-2-0.html b/content/posts/2003-08-17-raggle-0-2-0.html new file mode 100644 index 0000000..abce3d5 --- /dev/null +++ b/content/posts/2003-08-17-raggle-0-2-0.html @@ -0,0 +1,14 @@ +--- +date: "2003-08-17T15:43:23Z" +title: Raggle 0.2.0 +--- + +<p> +<a href='http://www.raggle.org/'>Raggle</a> version 0.2.0. <a href='http://www.raggle.org/files/raggle-0.2.0.tar.gz'>Download</a>. +Try. Enjoy. +</p> + +<p> +Peace out. +</p> + diff --git a/content/posts/2003-08-19-connection-already-set-up-aaaaargh.html b/content/posts/2003-08-19-connection-already-set-up-aaaaargh.html new file mode 100644 index 0000000..088afc9 --- /dev/null +++ b/content/posts/2003-08-19-connection-already-set-up-aaaaargh.html @@ -0,0 +1,35 @@ +--- +date: "2003-08-19T07:56:18Z" +title: '"connection already set up" AAaaargh' +--- + +<p> +Three people have reported a bug in + <a +href='http://www.raggle.org/'>Raggle</a> that I just can't seem to +reproduce. Basically, in the <code>grab.log</code> grabbing feeds fails +with a "connection already set up" error; I can't seem to duplicate the +bug in <a href='http://www.ruby-lang.org/'>Ruby</a> 1.68 or <a +href='http://www.ruby-lang.org/'>Ruby</a> 1.8.0, and I don't see it in +the <a href='http://www.ruby-lang.org/'>Ruby</a> <acronym +title='HyperText Transfer Protocol'>HTTP</acronym> source. The next +step is to take a look at the source for the <a +href='http://www.ruby-lang.org/'>Ruby</a> <acronym +title='Input/Output'>IO</acronym> module source, and see if I can find +it there. If anyone has any insight on that, or how to make <a +href='http://ncurses-ruby.berlios.de/'>Ncurses-Ruby</a> ignore a +user-defined <code><acronym title='Signal Win +Change'>SIGWINCH</acronym></code> trap, I'd appreciate it. +</p> + +<p> +Other news of note: I imported the start of my Gcrypt-Ruby bindings into +<acronym title='Concurrent Versioning System'>CVS</acronym>; they won't +compile or work for quite a while, but at least people can watch the +progress (and contribute!) now. +</p> + +<p> +There's more fun stuff about what's going on over on <a href='http://www.paulduncan.org/'>paulduncan.org</a>. +</p> + diff --git a/content/posts/2003-08-21-and-another-one.html b/content/posts/2003-08-21-and-another-one.html new file mode 100644 index 0000000..a2f174f --- /dev/null +++ b/content/posts/2003-08-21-and-another-one.html @@ -0,0 +1,39 @@ +--- +date: "2003-08-21T22:09:31Z" +title: And Another One +--- + +<p> + Fixed that other <a href='http://www.raggle.org/'>Raggle</a> bug, +now I'm stuck with some more. That's okay though. <a +href='http:/www.tynian.net/'>Brian</a> made a <a +href='http://www.debian.org/'>Debian</a> package for <a +href='http://www.raggle.org/'>Raggle</a>, so the chosen few can install +via <a +href='http://www.debian.org/doc/manuals/apt-howto/'><code>apt-get</code></a> +now. The repository information is available over at <a +href='http://www.raggle.org/'>raggle.org</a>. Anyone want to take a +stab at a <acronym title='Berkley Software Distribution'>BSD</acronym> +port? + </p> + + <p> + I set up <acronym title='Web Proxy +Auto-Detection'>WPAD</acronym> here at home. For those of you who are +curious, the <acronym title='Request for Comments'>RFC</acronym> is <a +href='http://micro.uoregon.edu/net_access/wpad_rfc_1999.html'>here</a>. +Anyway, the problem is I don't have any Windows machines to test with. +If anyone ever visits the house with a Windows machine, it'll be pretty +cool for them: <acronym title='Dynamic Host Configuration +Protocol'>DHCP</acronym> will give them an <acronym title='Internet +Protocol'>IP</acronym> address and <acronym title='Domain Name +Server'>DNS</acronym> server, and <acronym title='Internet +Explorer'>IE</acronym> will automatically detect my <a +href='http://www.squid-proxy.org/'>Squid</a> (and <a +href='http://www.privoxy.org/'>Privoxy</a>) proxy. Oh well, guess I'll +test the <acronym title='Web Proxy Auto-Detection'>WPAD</acronym> stuff +with my trusty + <a href='http://www.vmware.com/'>VMWare</a> +installation. + </p> + diff --git a/content/posts/2003-08-21-everything-considered-harmful.html b/content/posts/2003-08-21-everything-considered-harmful.html new file mode 100644 index 0000000..dfe1ea9 --- /dev/null +++ b/content/posts/2003-08-21-everything-considered-harmful.html @@ -0,0 +1,12 @@ +--- +date: "2003-08-21T22:52:41Z" +title: Everything Considered Harmful +--- + +<p> +<a href='http://diveintomark.org/archives/2003/08/21/harmful'>Everything +Considered Harmful</a>. The name says it all. My personal favorite is +<a href='http://www.meyerweb.com/eric/comment/chech.html'>"Considered +Harmful" Essays Considered Harmful</a>. +</p> + diff --git a/content/posts/2003-08-21-more-wpad.html b/content/posts/2003-08-21-more-wpad.html new file mode 100644 index 0000000..320b2de --- /dev/null +++ b/content/posts/2003-08-21-more-wpad.html @@ -0,0 +1,9 @@ +--- +date: "2003-08-21T23:19:48Z" +title: More WPAD +--- + +<p> +<a href='http://www.squid-cache.org/Doc/FAQ/FAQ-5.html#ss5.10'>Here</a> is some decent documentation from the <a href='http://www.squid-proxy.org/'>Squid</a> <acronym title='Frequently Asked Questions'>FAQ</acronym> for setting up <acronym title='Web Proxy Auto-Detection'>WPAD</acronym>. +</p> + diff --git a/content/posts/2003-08-22-raggle-0-2-1-etc.html b/content/posts/2003-08-22-raggle-0-2-1-etc.html new file mode 100644 index 0000000..1862e16 --- /dev/null +++ b/content/posts/2003-08-22-raggle-0-2-1-etc.html @@ -0,0 +1,13 @@ +--- +date: "2003-08-22T22:26:36Z" +title: Raggle 0.2.1, etc +--- + +<p> +<a href='http://www.raggle.org/'>Raggle</a> 0.2.1 is out. You know the drill. +</p> + +<p> +<a href='http://www.tynian.net/'>Brian (bma)</a> has an <acronym title='RDF Site Summary'>RSS</acronym> feed now. Make sure to add it to your <a href='http://www.raggle.org/'><acronym title='RDF Site Summary'>RSS</acronym> aggregator of choice</a>. +</p> + diff --git a/content/posts/2003-08-24-surprise-surprise.html b/content/posts/2003-08-24-surprise-surprise.html new file mode 100644 index 0000000..3cedf8a --- /dev/null +++ b/content/posts/2003-08-24-surprise-surprise.html @@ -0,0 +1,14 @@ +--- +date: "2003-08-24T17:10:03Z" +title: Surprise Surprise +--- + +<p> +I wrote a preliminary web interface for <a href='http://www.raggle.org/'>Raggle</a>. It's not in <acronym title='Concurrent Versioning System'>CVS</acronym> yet, but <a href='/screenshots/raggle-web_interface.png'>here</a> is a screenshot of what I have so far. +</p> + +<p> +<b>Update:</b> <a href='http://www.tynian.net/'>Brian</a> just informed +me that my spelling sucks. +</p> + diff --git a/content/posts/2003-08-29-fark-fun.html b/content/posts/2003-08-29-fark-fun.html new file mode 100644 index 0000000..d0384fe --- /dev/null +++ b/content/posts/2003-08-29-fark-fun.html @@ -0,0 +1,23 @@ +--- +date: "2003-08-29T22:52:39Z" +title: Fark Fun +--- + +<p> +<a href='http://www.totalfark.com/'>TotalFark</a> (the pay version of <a href='http://www.fark.com/'>Fark</a> is great, but it's too damn slow. <a href='/software/localfark/'>LocalFark</a> to the rescue! It's a <a href='http://www.fark.com/'>Fark</a> and <a href='http://www.totalfark.com/'>TotalFark</a> screen-scraper. LocalFark saves to <acronym title='RDF Site Summary'>RSS</acronym>, a <a href='http://www.mysql.com/'>MySQL</a> database, or both. +</p> + +<p> +<b>Random Links of Fun:</b> +<ul> +<li><a href='http://photojournal.jpl.nasa.gov/catalog/PIA03394'>Globes, globes, globes</a></li> +<li><a href='http://homepage.mac.com/gapodaca/digital/bikini/pages/bikini2.html'>The effects of airbrushing</a></li> +<li><a href='http://newsforge.com/article.pl?sid=03/08/19/1633233&tid=11'>"He's lying"</a></li> +<li><a href='http://feeds.archive.org/misc/yahoogroups/'>Yahoo Groups <acronym title='RDF Site Summary'>RSS</acronym> Feed Generator</a></li> +<li><a href='http://xmethods.net/ve2/Directory.po'>Huge list of <acronym title='Simple Object Access Protocol'>SOAP</acronym> services</a></li> +<li><a href='http://www.neuronwave.com/bcb/'>AIM Blog Change Bot</a></li> +<li><a href='http://nsis.sourceforge.net/site/index.php'>NullSoft Installer Generator</a></li> +</ul> +</p> + + diff --git a/content/posts/2003-09-01-more-localfark.html b/content/posts/2003-09-01-more-localfark.html new file mode 100644 index 0000000..0e91720 --- /dev/null +++ b/content/posts/2003-09-01-more-localfark.html @@ -0,0 +1,22 @@ +--- +date: "2003-09-01T20:37:45Z" +title: More LocalFark +--- + +<p> +Bunch of small fixes to <a href='/software/localfark/'>LocalFark</a>. +Should render in <a href='http://konqueror.kde.org/'>Konqueror</a>. <a +href='/download/localfark-0.1.3.tar.gz'>Here's</a> the tarball, and <a +href='/software/localfark/ChangeLog'>here</a> is the change log. <a +href='/software/localfark/'>LocalFark</a> is also in <a +href='/cvs/'>Pablotron <acronym title='Concurrent Versioning +System'>CVS</acronym></a>, the module name is <a +href='http://cvs.pablotron.org/?m=localfark'><code>localfark</code></a>. +</p> + +<p> +Oh yeah, the <acronym title='Concurrent Versioning System'>CVS</acronym> +version of <a href='http://www.raggle.org/'>Raggle</a> can accept new +feeds in the Ncurses <acronym title='User Interface'>UI</acronym>. +</p> + diff --git a/content/posts/2003-09-03-holy-crap.html b/content/posts/2003-09-03-holy-crap.html new file mode 100644 index 0000000..0c9802b --- /dev/null +++ b/content/posts/2003-09-03-holy-crap.html @@ -0,0 +1,9 @@ +--- +date: "2003-09-03T19:55:25Z" +title: Holy Crap! +--- + +<p> +More fun with <a href='http://www.raggle.org/'>Raggle</a>. The main trunk in <acronym title='Concurrent Versioning System'>CVS</acronym> has <acronym title='HyperText Transfer Protocol'>HTTP</acronym> Basic Authentication support, improved conditional <acronym title='HyperText Transfer Protocol'>HTTP</acronym> GET, improved <acronym title='RDF Site Summary'>RSS</acronym> parsing, and some other things I probably forgot. Most importantly though, the web interface in <a href='http://www.raggle.org/'>Raggle</a> apparently runs in Windows (albeit with minor source modifications). <a href='http://www.raggle.org/files/shots/raggle-in_windows.png'>Here's</a> a shot from <abbr title='Windows XP'>XP</abbr> running under <a href='http://www.ruby-lang.org/'>Ruby 1.8</a> (courtesy of <a href='http://rubyinstaller.sf.net/'>Andy Hunt's Windows installer</a>) in <a href='http://www.vmware.com/'>VMWare</a>. +</p> + diff --git a/content/posts/2003-09-04-raggle-in-windows.html b/content/posts/2003-09-04-raggle-in-windows.html new file mode 100644 index 0000000..973c0f9 --- /dev/null +++ b/content/posts/2003-09-04-raggle-in-windows.html @@ -0,0 +1,14 @@ +--- +date: "2003-09-04T03:07:22Z" +title: Raggle in Windows +--- + +<p> +<a href='http://www.raggle.org/'>Raggle</a> in <a href='http://www.microsoft.com/windows/'>Windows</a>: +<a href='http://www.raggle.org/?id=13'>installer</a>, <a href='http://www.raggle.org/pipermail/raggle-dev/2003-September/000109.html'>announcement</a>, <a href='http://www.raggle.org/shots/raggle-in_windows-2.png'>screenshot</a>. +</p> + +<p> +Must sleep now. +</p> + diff --git a/content/posts/2003-09-05-damn-you-xml.html b/content/posts/2003-09-05-damn-you-xml.html new file mode 100644 index 0000000..b9b2725 --- /dev/null +++ b/content/posts/2003-09-05-damn-you-xml.html @@ -0,0 +1,9 @@ +--- +date: "2003-09-05T11:07:58Z" +title: Damn You XML! +--- + +<p> +<a href='http://www.raggle.org/?id=16'>This bug</a> was a real pain in the ass to track down, document, and report. Now my head hurts, and I'm pretty sure I saw <code><!ENTITY %.*?></code> in my dreams last night. +</p> + diff --git a/content/posts/2003-09-13-new-version-of-raggle.html b/content/posts/2003-09-13-new-version-of-raggle.html new file mode 100644 index 0000000..56fff2d --- /dev/null +++ b/content/posts/2003-09-13-new-version-of-raggle.html @@ -0,0 +1,9 @@ +--- +date: "2003-09-13T14:39:38Z" +title: New Version of Raggle +--- + +<p> +Version 0.2.3 of <a href='http://www.raggle.org/'>Raggle</a> is out. Give it a try and let me know what you think. +</p> + diff --git a/content/posts/2003-09-18-isabel-can-t-stop-the-pablo-posting-machine.html b/content/posts/2003-09-18-isabel-can-t-stop-the-pablo-posting-machine.html new file mode 100644 index 0000000..637a9a8 --- /dev/null +++ b/content/posts/2003-09-18-isabel-can-t-stop-the-pablo-posting-machine.html @@ -0,0 +1,21 @@ +--- +date: "2003-09-18T17:09:34Z" +title: Isabel Can't Stop the Pablo Posting Machine! +--- + +<p> +Riding the power roller coaster here (because of Isabel). Details and the play-by-play over at <a href='http://www.paulduncan.org/'>my other (non-tech) site</a>. +</p> + +<p> +I've been adding some cool stuff to <a href='http://www.raggle.org/'>Raggle</a>. The <acronym title='Concurrent Versioning System'>CVS</acronym> version has feed categories, adding feeds from the Ncurses interface, a faster Ncurses interface, the web interface (which is slowly getting better), Win32 support (web only at the moment), a Windows installer, <acronym title='HyperText Transfer Protocol'>HTTP</acronym> basic authentication, better conditional <acronym title='HyperText Transfer Protocol'>HTTP</acronym> GET support, and more. +</p> + +<p> +Got a couple of patches from <a href='http://cs.roanoke.edu/~jbernard/'>Jon Bernard</a> for <code>gcrypt-ruby</code>, <a href='/software/fam-ruby/'><acronym title='File Alteration Monitor'>FAM</acronym>-Ruby</a>, and <code>DevIL-Ruby</code>. Seems like he's maintaining my bindings for me ;-). +</p> + +<p> +PS. Sorry if there are any typos in this post, but I'm posting as quick as possible, since power has been getting increasingly uppety over the last hour. +</p> + diff --git a/content/posts/2003-09-20-i-ve-got-the-power.html b/content/posts/2003-09-20-i-ve-got-the-power.html new file mode 100644 index 0000000..e844cf1 --- /dev/null +++ b/content/posts/2003-09-20-i-ve-got-the-power.html @@ -0,0 +1,10 @@ +--- +date: "2003-09-20T13:26:16Z" +title: I've Got the Power! +--- + +<p> +Power is restored. Details at <a href='http://www.paulduncan.org/'>my other site</a>. +Here's a quick tidbit to read: <a href='http://www.schneier.com/crypto-gram-0309.html#8'>"Benevolent Worms"</a>, from the latest <a href='http://wwww.schneier.com/crypto-gram.html'>Crypto-Gram</a>. +</p> + diff --git a/content/posts/2003-09-20-user-space-traffic-shaping.html b/content/posts/2003-09-20-user-space-traffic-shaping.html new file mode 100644 index 0000000..c5dc9e5 --- /dev/null +++ b/content/posts/2003-09-20-user-space-traffic-shaping.html @@ -0,0 +1,14 @@ +--- +date: "2003-09-20T18:51:34Z" +title: User-Space Traffic Shaping +--- + +<p> +Just stumbled across this: <a href='http://www.stewart.com.au/ip_relay/'>IP Relay</a>, a user-space <acronym title='Transmission Control Protocol'>TCP</acronym>/<acronym title='Internet Protocol'>IP</acronym> traffic shaper. The page doesn't load here, but it's available in <a href='http://www.debian.org/'>Debian</a> as <code>iprelay</code>. +</p> + +<p> +Anyone have any information on the IBlogThis and IBlogExtension specifications? I've been <a href='http://www.google.com/'>googling</a> around for a bit now and I'm having trouble coming up with a solid <abbr title='specification'>spec</abbr>. Does one exist? Do they not work the way I think they do? What I'm looking for is a <acronmy title='Simple Object Access Protocol'>SOAP</acronym> or <acronym title='eXtensible Markup Language - Remote Procedure Call'>XML-RPC</acronym> interface for submitting new blog entries (from <acronym title='RDF Site Summary'>RSS</acronym> aggregators in particular). I assumed something this obvious existed, and that the <abbr title='specifications'>specs</abbr> above did exactly that, but... yeah. Anyway, if someone can point me at some documentation, I'd appreciate it (yes, I'm thinking about adding support to <a href='http://www.raggle.org/'>Raggle</a>). +</p> + + diff --git a/content/posts/2003-09-22-ergh.html b/content/posts/2003-09-22-ergh.html new file mode 100644 index 0000000..3c6ef24 --- /dev/null +++ b/content/posts/2003-09-22-ergh.html @@ -0,0 +1,9 @@ +--- +date: "2003-09-22T23:50:17Z" +title: Ergh! +--- + +<p> +<a href='http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=211926'><code>feeds.yaml</code></a> being eaten in <a href='http://www.raggle.org/'>Raggle</a>? Is anyone else seeing this behavior? A quick reminder: for those of you wondering where all my non-tech posts went, please bookmark <a href='http://www.paulduncan.org/'>my non-tech page</a>. +</p> + diff --git a/content/posts/2003-09-25-iana-fun.html b/content/posts/2003-09-25-iana-fun.html new file mode 100644 index 0000000..4327377 --- /dev/null +++ b/content/posts/2003-09-25-iana-fun.html @@ -0,0 +1,10 @@ +--- +date: "2003-09-25T17:10:41Z" +title: IANA Fun +--- + +<p> +Just filled out an <a href='http://www.iana.org/'><acronym title='Internet Assigned Numbers Authority'>IANA</acronym></a> request for a user port (for the <a href='http://www.raggle.org/'>Raggle</a> web interface). Let the two week wait commence. +</p> + + diff --git a/content/posts/2003-09-25-weight-page-moved.html b/content/posts/2003-09-25-weight-page-moved.html new file mode 100644 index 0000000..89dee82 --- /dev/null +++ b/content/posts/2003-09-25-weight-page-moved.html @@ -0,0 +1,9 @@ +--- +date: "2003-09-25T11:44:21Z" +title: Weight Page Moved +--- + +<p> +The weight loss page has moved to <a href='http://www.paulduncan.org/weight/'>http://www.paulduncan.org/weight/</a> (it's not tech related, so it belongs there now). There's a redirect in place at the old <acronym title='Uniform Resource Locator'>URL</acronym>. +</p> + diff --git a/content/posts/2003-09-27-fam-ruby-other.html b/content/posts/2003-09-27-fam-ruby-other.html new file mode 100644 index 0000000..169ff65 --- /dev/null +++ b/content/posts/2003-09-27-fam-ruby-other.html @@ -0,0 +1,63 @@ +--- +date: "2003-09-27T13:08:57Z" +title: FAM-Ruby, Other +--- + +<p> +Released version 0.1.3 of <a href='/software/fam-ruby'><acronym +title='File Alteration Monitor'>FAM</acronym>-Ruby</a>. This release +consists entirely of a small one line patch from <a +href='http://cs.roanoke.edu/~jbernard/'>Jon Bernard</a>, so I took the +opportunity to import <a href='/software/fam-ruby'><acronym title='File +Alteration Monitor'>FAM</acronym>-Ruby</a> into <acronym title='Concurrent Versioning System'>CVS</acronym> under the module <code><a href='http://cvs.pablotron.org/?m=fam-ruby'>fam-ruby</a></code>. +</p> + +<p> +<a href='http://www.raggle.org/'>Raggle</a> now has a half-assed (but working!) implementation of parallel feed grabbing. Basically each feed grab is forked off in it's own thread, which means you can grab an arbitrary number of feeds in parallel (limited by <acronym title='Central Processing Unit'>CPU</acronym> speed and bandwidth, of course). This implementation is in <acronym title='Concurrent Versioning System'>CVS</acronym>, but don't rush to try it just yet; it seems to have dug up some intermittent concurrency issue in either <a href='http://www.germane-software.com/software/rexml/'>REXML</a>, <a href='http://www.ruby-lang.org/'>Ruby</a>, or <a href='http://www.raggle.org/'>Raggle</a>. I've marked all the "destructive" regions of feed grabbing threads as critical regions, but I haven't narrowed down the problem just yet. My <em>hunch</em> is that it's either a subtle error in the Ruby <acronym title='Garbage Collector'>GC</acronym>, or a concurrency issue in <a href='http://www.germane-software.com/software/rexml/'>REXML</a>. The latter seems strange to me, since REXML is written in pure Ruby and, as far as I know, doesn't use threads internally. I guess we'll see. +</p> + +<p> +<a href='http://www.richlowe.net/'>Richard (richlowe)</a> and I were +talking about passing events between machines, and he suggested that I +use <a href='http://www.rubycentral.com/articles/drb.html'>DRb</a>. +I've played around with <a +href='http://www.rubycentral.com/articles/drb.html'>DRb</a> a bit before, but for some reason using <acronym title='Remote Method Invocation'>RMI</acronym> for mundane things — in this case, a <code>/whatsPlaying</code> alias in <a href='http://www.irssi.org/'>Irssi</a> which queries the <a href='http://www.xmms.org/'><acronym title='X MultiMedia System'>XMMS</acronym></a> process on my workstation — never occurred to me. What I really love about this solution is how absurdly simple it is. Here's the code for the "server": +</p> + +<pre> +require 'drb' +require 'xmms' + +DRb::start_service('druby://picard:2345', Xmms::Remote::new) +DRb::thread.join +</pre> + +<p> +The "client" is ridiculously simple as well. Here it is: +</p> + +<pre> +require 'drb' + +DRb::start_service +if r = DRbObject.new(nil, 'druby://picard:2345') + puts "Playing \"#{r.title}\"." +end +</pre> + +<p> +Finally, the one-liner in <a href='http://www.irssi.org/'>Irssi</a> to +tie the whole thing together: +</p> + +<pre> +/alias whatsPlaying exec - -o bin/whatsPlaying.rb +</pre> + +<p> +In case anyone is wondering, this is one of the things I really like +about <a href='http://www.ruby-lang.org/'>Ruby</a>; solutions tend to be +simple, short, and legible. Okay, <code></advocacy></code>. I'm +out for now. +</p> + diff --git a/content/posts/2003-09-30-ruby-interpreter-diagram.html b/content/posts/2003-09-30-ruby-interpreter-diagram.html new file mode 100644 index 0000000..912fda7 --- /dev/null +++ b/content/posts/2003-09-30-ruby-interpreter-diagram.html @@ -0,0 +1,9 @@ +--- +date: "2003-09-30T17:24:21Z" +title: Ruby Interpreter Diagram +--- + +<p> +I stumbled across <a href='http://www.d10.karoo.net/ruby/ruby_interpreter.html'>this diagram</a> of the <a href='http://www.ruby-lang.org/'>Ruby</a> interpreter. It's high-level, and interesting! +</p> + diff --git a/content/posts/2003-10-11-links-links-links.html b/content/posts/2003-10-11-links-links-links.html new file mode 100644 index 0000000..e915444 --- /dev/null +++ b/content/posts/2003-10-11-links-links-links.html @@ -0,0 +1,16 @@ +--- +date: "2003-10-11T12:45:21Z" +title: Links Links Links +--- + +<p> +Some stuff I've been reading: +</p> + +<ul> +<li><a href='http://news.bbc.co.uk/1/hi/technology/3180212.stm'>Pressing the shift key now illegal</a></li> +<li><a href='http://www.dvdrw.com/press/duallayer.htm'>Dual-layer <acronym title='Digital Video Disc'>DVD</acronym> burning</a></li> +<li><a href='http://lartc.org/wondershaper/'>Wondershaper!</a> (I'm using this now)</li> +</li> +</ul> + diff --git a/content/posts/2003-10-28-iriver-ihp-120.html b/content/posts/2003-10-28-iriver-ihp-120.html new file mode 100644 index 0000000..0fea262 --- /dev/null +++ b/content/posts/2003-10-28-iriver-ihp-120.html @@ -0,0 +1,10 @@ +--- +date: "2003-10-28T11:34:47Z" +title: iRiver iHP-120 +--- + +<p> +Saw a link in a <a href='http://www.slashdot.org/'>Slashdot</a> comment for the +<a href='http://www.iriveramerica.com/products/iHP-120.asp'>iRiver iHP-120</a>. All I have to say is, "wow!" It's the best hard drive-based <acronym title='MPEG Layer 3 Audio'>MP3</acronym> player I've seen to date, and it's got the interface I like so much from my <a href='http://www.iriveramerica.com/products/iMP-350.asp'>iRiver SlimX iMP-350</a>. <a href='http://reviews-zdnet.com.com/iRiver_iHP_120/4505-6490_16-30571493.html'>Here's</a> a <a href='http://www.zdnet.com/'>ZDNet</a> review of the iHP-120. Now all I need to do is scrounge up an extra $360 to buy it. +</p> + diff --git a/content/posts/2003-10-31-useless-use-of-cat-award.html b/content/posts/2003-10-31-useless-use-of-cat-award.html new file mode 100644 index 0000000..860f9ad --- /dev/null +++ b/content/posts/2003-10-31-useless-use-of-cat-award.html @@ -0,0 +1,9 @@ +--- +date: "2003-10-31T16:51:01Z" +title: Useless Use of cat Award +--- + +<p> +<a href='http://rhols66.adsl.netsonic.fi/era/unix/award.html'>Useless Use of <code>cat</code> Award</a>. Funny stuff. +</p> + diff --git a/content/posts/2003-11-03-distcc-is-my-buddy.html b/content/posts/2003-11-03-distcc-is-my-buddy.html new file mode 100644 index 0000000..4e55971 --- /dev/null +++ b/content/posts/2003-11-03-distcc-is-my-buddy.html @@ -0,0 +1,17 @@ +--- +date: "2003-11-03T10:25:31Z" +title: distcc is My Buddy +--- + +<p> +After a conversation <a href='http://www.richlowe.net/'>Richard (richlowe)</a> and I had last night, I decided to actually try out <a href='http://distcc.samba.org/'>distcc</a>. It's neat, it works, and it appears to speed compiles up. I was a bit worried about having different versions of <a href='http://gcc.gnu.org/'><acronym title='GNU Compiler Collection'>GCC</acronym></a>, but so far it seems to be handling it just fine (the versions are 3.3, 3.3.1, and 3.3.2). The only quirk I've seen so far is it appears to get stuck at the end of a compile every once in a while. This is mentioned on the <a href='http://distcc.samba.org/problems.html#2.5cork'>distcc Problems page</a>, but I'm running <a href='http://www.kernel.org/'>2.4</a> on both the machines, not 2.5. Also I wonder if I'm losing my <a href='http://www.amd.com/'>Athlon optimizations</a>, and if so, how that will affect performance. I'm going to try some tests with <a href='http://kylie.pablotron.org/'>kylie</a> in the mix as well, to see if it's still worth it with Internet latency thrown in the mix. I'll post them here when I'm finished. +</p> + +<p> +The other interesting thing Jon-Anne (lilyj), <a href='http://www.richlowe.net/'>Richard (richlowe)</a>, and I talked about is was a learning information search tool (roughly comparable to the "agent" craze a few years back). I know there's a <a href='http://www.gnome.org/'><acronym title='GNU Network Object Model Environment'>GNOME</acronym></a> application that does something similar — it "knows" what your doing in <a href='http://gaim.sf.net/'>GAIM</a> and <a href='http://nautilus.gnome.org/'>Nautilus</a>, and constantly updates with information that might be relevant &mdash but we were thinking of something that was more standardized, abstracted, and modular. Some of the stuff we came up with: standard protocol for applications to pass metadata to the daemon (I was thinking something that looked as much like <acronym title='HyperText Transfer Protocol'>HTTP</acronym> POST as possible), a pluggable daemon backend, so you could add additional search modules (that either queried different backends, or categorized, analyzed, and ranked the data in different ways), and a standardized output format for the aggregating the various search results (<a href='http://www.richlowe.net/'>Richlowe</a> suggested <acronym title='Rich Document Format'>RDF</acronym>, but I was thinking <a href='http://www.opml.org/'>OPML</a> might be more appropriate). For the modules, if you had various modules that queried things like <a href='http://www.google.com/'>Google</a>, <a href='http://www.syndic8.com/'>Syndic8</a>, newsgroups, and some sort of filesystem database (Jon-Anne suggested that this should be some sort of associative mesh, rather than a simple keyword database), etc. The other thing is that results would be associated with related searches. It should be smart enough to realize that if you're looking at a cooking-related web site, and you start talking about cows in your <acronym title='Instant Messenger'>IM</acronym> program, you'd probably be interested in hamburger- and beef-related content. +</p> + +<p> +Interesting stuff. And technically do-able, I think. Does anyone remember the name of the existing <a href='http://www.gnome.org/'>GNOME</a> application? I'd like to take another look at it and see what they've got so far. +</p> + diff --git a/content/posts/2003-11-03-distcc-update.html b/content/posts/2003-11-03-distcc-update.html new file mode 100644 index 0000000..b40e19a --- /dev/null +++ b/content/posts/2003-11-03-distcc-update.html @@ -0,0 +1,9 @@ +--- +date: "2003-11-03T20:12:51Z" +title: distcc Update +--- + +<p> +Okay, so I tossed <a href='http://distcc.samba.org/'>distcc</a> on <a href='http://kylie.pablotron.org/'>kylie</a> to see how it would affect things. It takes a little longer to transfer stuff, but it does seem to improve compiles a bit. I'll have to play around with it more before I know for sure. The bad news is <a href='http://distcc.samba.org/'>distcc</a> is <em>still</em> getting stuck on compiles every once in a while. I'll need to take a closer look at that. +</p> + diff --git a/content/posts/2003-11-03-lufs.html b/content/posts/2003-11-03-lufs.html new file mode 100644 index 0000000..c916e94 --- /dev/null +++ b/content/posts/2003-11-03-lufs.html @@ -0,0 +1,10 @@ +--- +date: "2003-11-03T19:58:39Z" +title: LUFS +--- + +<p> +Playing around with <a href='http://lufs.sf.net/'>LUFS</a> (particularly sshfs). Seems to work, and it's not nearly as slow as I thought it would be. +Fun stuff. +</p> + diff --git a/content/posts/2003-11-03-metadata-schmetadata.html b/content/posts/2003-11-03-metadata-schmetadata.html new file mode 100644 index 0000000..037485e --- /dev/null +++ b/content/posts/2003-11-03-metadata-schmetadata.html @@ -0,0 +1,9 @@ +--- +date: "2003-11-03T17:10:16Z" +title: Metadata Schmetadata +--- + +<p> +<a href='http://www.webmonkey.com/'>WebMonkey</a> strikes again! <a href='http://hotwired.lycos.com/webmonkey/03/24/index0a.html?tw=e-business'>"Metadata, Mark II"</a>, an interesting article about metadata. +</p> + diff --git a/content/posts/2003-11-03-oh-yeah-it-s-dashboard.html b/content/posts/2003-11-03-oh-yeah-it-s-dashboard.html new file mode 100644 index 0000000..6c9e420 --- /dev/null +++ b/content/posts/2003-11-03-oh-yeah-it-s-dashboard.html @@ -0,0 +1,10 @@ +--- +date: "2003-11-03T15:10:11Z" +title: Oh yeah, it's Dashboard +--- + +<p> +The application in question is +<a href='http://www.nat.org/dashboard/'>Dashboard</a>. Cool stuff. Not sure about the unnecessary <a href='http://www.gnome.org/'>GNOME</a> dependencies though (thanks <a href='http://www.richlowe.net/'>Richard</a>!). +</p> + diff --git a/content/posts/2003-11-05-learning-algorithm-libraries.html b/content/posts/2003-11-05-learning-algorithm-libraries.html new file mode 100644 index 0000000..0acc679 --- /dev/null +++ b/content/posts/2003-11-05-learning-algorithm-libraries.html @@ -0,0 +1,18 @@ +--- +date: "2003-11-05T12:00:35Z" +title: Learning Algorithm Libraries +--- + +<p> +While doing a little research for the <a +href='http://www.nat.org/dashboard/'>Dashboard</a>-esque project idea, I +tracked down a couple of learning algorithm libraries. The two that +seem to be the most interesting so far are the <a +href='http://www.igi.tugraz.at/ril-toolbox/manual/node27.html'>Reinforcement +Learning Toolbox</a> and <a href='http://www.torch.ch/'>Torch</a>. The +latter is in <a href='http://www.debian.org/'>Debian</a>, so I'm going +to try it out a bit. This stuff all ties in nicely with <a +href='http://www.amazon.com/exec/obidos/tg/detail/-/0060932902/002-7027853-1609600?v=glance'>the +book</a> I've been reading. +</p> + diff --git a/content/posts/2003-11-06-cdup-fun.html b/content/posts/2003-11-06-cdup-fun.html new file mode 100644 index 0000000..68aed0b --- /dev/null +++ b/content/posts/2003-11-06-cdup-fun.html @@ -0,0 +1,36 @@ +--- +date: "2003-11-06T19:20:55Z" +title: cdup Fun! +--- + +<p> +<a href='http://www.richlowe.net/'>Richard (richlowe)</a> and a few other people from <code>#fu</code> were talking about being able to do things like <kbd>cdup 5</kbd> to jump up 5 directories. I thought it would be nicer if my existing <kbd>..</kbd> alias took an optional argument to do the same thing. Here's the result (for bash): +</p> + +<p> +<pre> +function cdup() { + if [ "x$1" = "x" ]; then max=1; else max=$1; fi + for ((i=0; i<$max; i++)); do cd ..; done +} + +alias ..="cdup"; +</pre> +</p> + +<p> +So <kbd>..</kbd> works the same as it did before, but now you can do stuff like this: +</p> + +<p> +<pre> +pabs@vault:/usr/local/share/raggle/themes> .. +pabs@vault:/usr/local/share/raggle> .. 2 +pabs@vault:/usr/local> +</pre> +</p> + +<p> +<a href='http://www.richlowe.net/cdup.zsh'>Richard's version</a> does the same thing for <a href='http://www.zsh.org/'>zsh</a>. +</p> + diff --git a/content/posts/2003-11-06-redesign-musings.html b/content/posts/2003-11-06-redesign-musings.html new file mode 100644 index 0000000..a88e15c --- /dev/null +++ b/content/posts/2003-11-06-redesign-musings.html @@ -0,0 +1,9 @@ +--- +date: "2003-11-06T19:54:50Z" +title: Redesign Musings +--- + +<p> +This site is badly in need of a redesign. Not just a new theme either; I'd like to re-write the entire backend, and then port the themes. The problem is, I absolutely <em>hate</em> breaking links. Some of the content on this site going back to 1998, and I'd prefer not to break existing links if I can. The last couple redesigns I've gone out of my way to preserve links, but I think this time around it might be time to make a clean break. At the moment, I've cleaned up the sidebar and updated a few random pages, but I've noticed that maintaining this site is much more work than maintaining <a href='http://www.raggle.org/'>raggle.org</a> and <a href='http://www.paulduncan.org/'>paulduncan.org</a> (which is one of the reasons the latter gets updated so much more often). I'll have to think about it a bit before I make any major changes. +</p> + diff --git a/content/posts/2003-11-07-cipe-got-cooler.html b/content/posts/2003-11-07-cipe-got-cooler.html new file mode 100644 index 0000000..829e53f --- /dev/null +++ b/content/posts/2003-11-07-cipe-got-cooler.html @@ -0,0 +1,9 @@ +--- +date: "2003-11-07T15:34:14Z" +title: CIPE Got Cooler +--- + +<p> +Looks like <a href='http://sites.inka.de/~bigred/devel/cipe.html'><acronym title='Crypto IP Encapsulation'>CIPE</acronym></a> has improved a <em>lot</em> since last year. They've added a protocol-level ping (I used to leave a <code>ping -i 30 destination</code> running in a <a href='http://www.math.fu-berlin.de/~guckes/screen/'>screen</a> session so the <a href='http://www.netfilter.org/'>NetFilter</a> stateful stuff didn't forget about the connection), public key encryption (uses it to resolve a dynamic shared secret, also handles dynamic <acronym title='Internet Protocol'>IP</acronym> addresses in a more graceful manner), and probably more stuff that I missed. I'm trying to think of an excuse to use it again; too bad I already run almost everything over <a href='http://www.openssh.org/'><acronym title-'Secure Shell'>SSH</acronym></a> tunnels already. :( +</p> + diff --git a/content/posts/2003-11-07-email-indexing-with-zo-euml.html b/content/posts/2003-11-07-email-indexing-with-zo-euml.html new file mode 100644 index 0000000..26fdfa6 --- /dev/null +++ b/content/posts/2003-11-07-email-indexing-with-zo-euml.html @@ -0,0 +1,9 @@ +--- +date: "2003-11-07T11:14:30Z" +title: Email Indexing with Zoë +--- + +<p> +<a href='http://zoe.nu/'>Zoë</a>. Email client. Email server. Cross-references and indexes email. Relates to the whole information indexing idea. +</p> + diff --git a/content/posts/2003-11-07-faster-than-qsort.html b/content/posts/2003-11-07-faster-than-qsort.html new file mode 100644 index 0000000..3792bde --- /dev/null +++ b/content/posts/2003-11-07-faster-than-qsort.html @@ -0,0 +1,9 @@ +--- +date: "2003-11-07T10:15:06Z" +title: Faster than qsort()? +--- + +<p> +I saw a link to <a href='http://www.cs.rpi.edu/~musser/gp/introsort.ps'>Introspective Sorting</a> over at <a href='http://www.rubygarden.org/'>Ruby Garden</a>. According to the calculations, the author believes it's better than <code>qsort()</code>. Basically it is <code>qsort()</code>, except it switches to heapsort in worst-case scenarios for <code>qsort()</code>. Really interesting read. +</p> + diff --git a/content/posts/2003-11-08-drb-redux-what-s-playing.html b/content/posts/2003-11-08-drb-redux-what-s-playing.html new file mode 100644 index 0000000..b1dc6de --- /dev/null +++ b/content/posts/2003-11-08-drb-redux-what-s-playing.html @@ -0,0 +1,17 @@ +--- +date: "2003-11-08T15:09:16Z" +title: Drb Redux, What's Playing +--- + +<p> +The <a href='http://www.rubycentral.com/articles/drb.html'>DRb</a> fun continues! I added a <a href='http://www.paulduncan.org/playing/'>What's Playing</a> page to <a href='http://www.paulduncan.org/'>Paul Duncan.org</a> which bounces via <abbr title='Distributed Ruby'>DRb</abbr> from <a href='http://kylie.pablotron.org/'>kylie</a> (the web server) to <a href='http://www.xmms.org/'><acronym title='X MultiMedia System'>XMMS</acronym></a> running on <code>picard</code> (my workstation). Since everyone likes diagrams, here's one: +</p> + +<p> +<img src='/gallery/misc/whats_playing.png' width='450' height='124' title="what's playing" alt="what's playing" /> +</p> + +<p> +I discussed the <abbr title='Distributed Ruby'>DRb</abbr> configuration <a href='/?cid=1194'>in a previous post</a>. The bounce through <code>xor</code> is just a source-specific <abbr title='Destination Network Address Translation'>DNAT</abbr>. +</p> + diff --git a/content/posts/2003-11-08-have-you-hugged-your-spam-filter-today.html b/content/posts/2003-11-08-have-you-hugged-your-spam-filter-today.html new file mode 100644 index 0000000..3150e6f --- /dev/null +++ b/content/posts/2003-11-08-have-you-hugged-your-spam-filter-today.html @@ -0,0 +1,15 @@ +--- +date: "2003-11-08T01:58:13Z" +title: Have You Hugged Your Spam Filter Today? +--- + +<p> +<img src='/screenshots/procmail_log.png' + width='418' height='680' title='procmail log' + alt='procmail log' /> +</p> + +<p> +<a href='http://spamprobe.sf.net/'>SpamProbe</a> makes me <em>very</em> happy. +</p> + diff --git a/content/posts/2003-11-10-xmms-ate-it-s-config.html b/content/posts/2003-11-10-xmms-ate-it-s-config.html new file mode 100644 index 0000000..f7206a6 --- /dev/null +++ b/content/posts/2003-11-10-xmms-ate-it-s-config.html @@ -0,0 +1,13 @@ +--- +date: "2003-11-10T18:08:54Z" +title: XMMS Ate It's Config +--- + +<p> +Funky. <a href='http://www.xmms.org/'><acronym title='X MultiMedia System'>XMMS</acronym></a> ate it's config file. I got everything set back up mostly, but <a href='http://www.pablotron.org/radio/'>Pablotron Radio</a> is down until I reset the encoder password. +</p> + +<p> +Oh yeah, <a href='http://www.paulduncan.org/?id=78'>I'm 25 now</a>. Solid! +</p> + diff --git a/content/posts/2003-11-13-new-screenshot-posted.html b/content/posts/2003-11-13-new-screenshot-posted.html new file mode 100644 index 0000000..95f0e79 --- /dev/null +++ b/content/posts/2003-11-13-new-screenshot-posted.html @@ -0,0 +1,15 @@ +--- +date: "2003-11-13T07:35:36Z" +title: New Screenshot Posted +--- + +<p> +I <em>finally</em> took a new screenshot last week, but I forgot to post it. <a href='http://www.pekdon.net/'>Claes (pekdon)</a> just reminded me, so I posted it to the <a href='/screenshots/'>Screenshots page</a>. Here's what my desktop looks like now: +</p> + +<p> +<a href='/screenshots/shot-20031108-1249-2560x1024.png'><img +src='/screenshots/shot-20031108-1249-2560x1024-thumb.jpeg' width='401' +height='162' title='latest screenshot' alt='latest screenshot' /></a> +</p> + diff --git a/content/posts/2003-11-13-new-theme.html b/content/posts/2003-11-13-new-theme.html new file mode 100644 index 0000000..e6626af --- /dev/null +++ b/content/posts/2003-11-13-new-theme.html @@ -0,0 +1,9 @@ +--- +date: "2003-11-13T06:43:41Z" +title: New Theme +--- + +<p> +Posted a new theme last night called <a href='/?theme=gnosis'>Gnosis</a>. It still needs a few tweaks, but I like it more than <a href='/?theme=chromatic'>Chromatic</a>, so I'm going to switch it to the default. <a href='/?theme=gnosis'>Try it out</a> and let me know what you think. +</p> + diff --git a/content/posts/2003-11-13-raggle-news.html b/content/posts/2003-11-13-raggle-news.html new file mode 100644 index 0000000..1ece559 --- /dev/null +++ b/content/posts/2003-11-13-raggle-news.html @@ -0,0 +1,13 @@ +--- +date: "2003-11-13T06:41:01Z" +title: Raggle News +--- + +<p> +Remember <a href='http://www.raggle.org/'>Raggle</a>? Rumors of 0.3.0 begin to fly again. Ville just committed a fix for the obnoxious shell character expansion bug to the trunk in <acronym title='Concurrent Versioning System'>CVS</acronym>, which leaves a relatively small set of things to fix for a release. Among them: a fix for the nasty <acronym title='Garbage Collector'>GC</acronym> sweep bug that has cropped up since we added parallel feed grabs (my hunch is that this is a bug in <a href='http://www.ruby-lang.org/'>Ruby</a>, not <a href='http://www.raggle.org/'>Raggle</a>), getting the web interface to some state of completion (basically this means writing a config interface and a feed editor), and updating the documentation to describe all the new features. We could <em>really</em> use some eyes on the <acronym title='Garbage Collector'>GC</acronym> swseep/threading bug; I'm not sure where it's coming from (I thought I'd eliminated the concurrency issues), and it makes <a href='http://www.raggle.org/'>Raggle</a> die at random. If you're interested in helping, <a href='http://www.raggle.org/?id=8'>here</a> are instructions for checking <a href='http://www.raggle.org/'>Raggle</a> out of <acronym title='Concurrent Versioning System'>CVS</acronym>. +</p> + +<p> +Crap, just had a power flicker here, so I need to finish this post fast. <a href='http://www.cdavies.org/'>Chris (cdavies)</a> plugged <a href='http://www.raggle.org/'>Raggle</a> in his <a href='http://www.cdavies.org/permalink/imaconsolecowboy.php'>list of useful console apps</a>. Thanks dude! +</p> + diff --git a/content/posts/2003-11-13-sshfs-redux.html b/content/posts/2003-11-13-sshfs-redux.html new file mode 100644 index 0000000..8b736c8 --- /dev/null +++ b/content/posts/2003-11-13-sshfs-redux.html @@ -0,0 +1,64 @@ +--- +date: "2003-11-13T07:13:39Z" +title: sshfs Redux +--- + +<p> +A couple people have asked about <abbr title='Secure Shell Filesystem'>sshfs</abbr> (one of the filesystems included with <a href='http://lufs.sf.net/'><acronym title='Linux User-Space Filesystem'>LUFS</acronym></a>. Well, here's how I've got things set up: +</p> + +<p> +The following command installs <a href='http://lufs.sf.net/'><acronym title='Linux User-Space Filesystem'>LUFS</acronym></a> in <a href='http://www.debian.org/'>Debian</a>: +</p> + +<p> +<kbd> +# install requisite packages<br /> +apt-get install lufs-source lufs-utils module-assistant debhelper<br /> +# compile and install kernel module<br /> +module-assistant auto-install lufs<br /> +# load module<br /> +/sbin/modprobe lufs<br /> +# set lufs mount <acronym title='Set User-ID'>SUID</acronym><br /> +chmod a+s `which lufsmnt`<br /> +</kbd> +</p> + +<p> +Here's the <code>/etc/fstab</code> entry for our sample filesystem: +</p> + +<p> +<samp> +none /mnt/snow-www lufs fs=sshfs,rw,user,nosuid,host=www,username=pabs,noauto 0 0 +</samp> +</p> + +<p> +<abbr title='Secure Shell Filesystem'>sshfs</abbr> uses your existing <code>~/.ssh/config</code> settings. In this case, we're concerned about the <code>proxycommand</code> stuff: +</p> + +<p> +<samp> +Host www<br /> + proxycommand ssh -A phoenix.snowman.net nc -q 10 %h ssh<br /> +</samp> +</p> + +<p> +The last thing to do is create the mount directory, and make sure the ownership is correct: +</p> + +<p> +<kbd> +# create directory & fix ownership<br /> +mkdir /mnt/snow-www && chown pabs:pabs /mnt/snow-www<br /> +</kbd> +</p> + +<p> +And that should be it. Caveats: <code>lufsumount</code> seems to be a little picky, your <a href='http://lufs.sf.net/'><acronym title='Linux User-Space Filesystem'>LUFS</acronym></a> mounts won't show up in <code>df</code>, and <abbr title='Secure Shell Filesystem'>sshfs</abbr> doesn't do any client-side caching, so things are a wee bit slow. +</p> + + + diff --git a/content/posts/2003-11-14-organizer.html b/content/posts/2003-11-14-organizer.html new file mode 100644 index 0000000..66c5627 --- /dev/null +++ b/content/posts/2003-11-14-organizer.html @@ -0,0 +1,8 @@ +--- +date: "2003-11-14T08:55:07Z" +title: Organizer +--- + +<p> +I was looking for a good console address book, and I stumbled across <a href='http://hnb.sf.net/'><acronym title='Hierarchial NoteBook'>HNB</acronym></a>. It's an interesting app. I've imported my contacts, bookmarks, and some other information into it to see if it's something I feel like using on a regular basis. + diff --git a/content/posts/2003-11-17-id3-fun.html b/content/posts/2003-11-17-id3-fun.html new file mode 100644 index 0000000..1f81921 --- /dev/null +++ b/content/posts/2003-11-17-id3-fun.html @@ -0,0 +1,9 @@ +--- +date: "2003-11-17T10:28:28Z" +title: ID3 Fun +--- + +<p> +For some reason I always assumed <a href='http://www.id3.org/'>ID3</a> tags were much harder to parse than they actually are. Using <a href='http://www.unixgods.org/~tilo/ID3/docs/ID3_comparison.html'>this reference</a> (and the <a href='http://www.id3.org/id3v2-00.txt'>included</a> <a href='http://www.id3.org/id3v2.3.0.txt'>links</a>), I was able to write a <a href='http://www.ruby-lang.org/'>Ruby</a> a basic <a href='http://www.id3.org/'>ID3</a> parser with relative ease. Yes, I realize there are already a million <a href='http://www.id3.org/'>ID3</a> parsers out there; this was just a mental exercise. +</p> + diff --git a/content/posts/2003-11-18-alright-here-s-what-i-ve-got.html b/content/posts/2003-11-18-alright-here-s-what-i-ve-got.html new file mode 100644 index 0000000..31865ff --- /dev/null +++ b/content/posts/2003-11-18-alright-here-s-what-i-ve-got.html @@ -0,0 +1,24 @@ +--- +date: "2003-11-18T20:19:09Z" +title: Alright, Here's What I've Got +--- + +<p> +I guess some people want this stuff, so here's the <a href='http://www.id3.org/'>ID3</a> code I've got so far: +</p> + +<ul> +<li>Download: <a href='/download/id3-ruby-20031118.tar.gz'>id3-ruby-20031118.tar.gz</a></li> +<li>Signature: <a +href='/download/id3-ruby-20031118.tar.gz.asc'>id3-ruby-20031118.tar.gz.asc</a></li> +</ul> + +<p> +I also tossed it in +<acronym title='Concurrent Versioning System'>CVS</acronym> under the +module +<a href='http://cvs.pablotron.org/?m=id3-ruby'><code>id3-ruby</code></a>. +I make no promises about continuing to work on any of this :). +</p> + + diff --git a/content/posts/2003-11-19-why-ruby-sucks.html b/content/posts/2003-11-19-why-ruby-sucks.html new file mode 100644 index 0000000..dfc86b8 --- /dev/null +++ b/content/posts/2003-11-19-why-ruby-sucks.html @@ -0,0 +1,13 @@ +--- +date: "2003-11-19T17:18:15Z" +title: Why Ruby Sucks +--- + +<p> +Matz is awesome. I'm looking over <a href='http://www.rubyist.net/~matz/slides/rc2003/'>the slides</a> for his <a href='http://www.rubyconf.org/'>RubyConf 2003</a> presentation, and the <a href='http://www.rubyist.net/~matz/slides/rc2003/mgp00003.html'>third slide</a> is titled "How Ruby Sucks." The <a href='http://www.rubyist.net/~matz/slides/rc2003/mgp00004.html'>fourth slide</a> lists specific problems, and the rest of the presentation talks about what needs to be done. +</p> + +<p> +His slides also talk about starting from scratch with Ruby2 (the language) and Rite (the <acronym title='Virtual Machine'>VM</acronym>). I'm wary of the start from scratch by committee approach — Perl 6 and <abbr title='Enlightenment 0.17'>E17</abbr> are prime examples of how this approach can fail spectacularly. +</p> + diff --git a/content/posts/2003-11-20-um-bonsai.html b/content/posts/2003-11-20-um-bonsai.html new file mode 100644 index 0000000..09915d8 --- /dev/null +++ b/content/posts/2003-11-20-um-bonsai.html @@ -0,0 +1,30 @@ +--- +date: "2003-11-20T09:50:12Z" +title: Um, Bonsai? +--- + +<p> +I just attempted to set up <a href='http://www.mozilla.org/projects/bonsai/'>Bonsai</a> on <a href='http://kylie.pablotron.org/'>kylie</a>. The <a href='http://www.debian.org/'>Debian</a> package requires more configuration than most source installs I've seen. Here's a brief list of things you have to do <em>after</em> installing the package: +</p> + +<p> +<ul> +<li>Reconfigure <acronym title='Concurrent Versioning System'>CVS</acronym></li> +<li>Reconfigure your <acronym title='Mail Transfer Agent'>MTA</acronym></li> +<li>Configure <a href='http://lxr.linux.no/'><abbr title='Linux Cross-Reference'>LXR</abbr></a> (note that this package has it's own long list of post-install manual configuration steps)</li> +<li>Do a rain dance</li> +<li>Edit configuration files in <code>/etc/bonsai</code></li> +<li>Edit configuration options in web interface</li> +<li>Edit more configuration options in a <em>different</em> web +interface</li> +<li>Hope the rain dance worked</li> +</ul> +</p> + +<p> +I think I've opted to stick with <a href='http://viewcvs.sf.net/'>ViewCVS</a>, for +which I had to do essentially zero post-install configuration. Actually +I changed one line in the config file, but that was optional. +Perhaps I just need to work on my rain dance technique. +</p> + diff --git a/content/posts/2003-11-22-expos-eacute-amp-retooling-slashdot.html b/content/posts/2003-11-22-expos-eacute-amp-retooling-slashdot.html new file mode 100644 index 0000000..f373baf --- /dev/null +++ b/content/posts/2003-11-22-expos-eacute-amp-retooling-slashdot.html @@ -0,0 +1,13 @@ +--- +date: "2003-11-22T17:58:49Z" +title: Exposé & Retooling Slashdot +--- + +<p> +I played with <a href='http://www.apple.com/macosx/'>Panther</a> a little earlier today at <a href='http://www.microcenter.com/'>Microcenter</a>. <a href='http://www.apple.com/macosx/features/expose/'>Exposé</a> is pretty damn cool, although it's of negligible value to me, since I already <a href='/screenshots/'>avoid overlapping windows like the plague</a>. There's something really gratifying about having MacOS, bash, and <a href='http://www.ruby-lang.org/'>Ruby</a> all on the same machine. +</p> + +<p> +Oh yeah, <a href='http://people.debian.org/~ljlane/'>Laurence (ljlane)</a> pointed me at this page: <a href='http://www.alistapart.com/articles/slashdot/'>Retooling Slashdot with Web Standards</a>. Making this change would save <a href='http://www.osdn.com/'><acronym title='Open Source Developers Network'>OSDN</acronym></a> a lot of money on bandwidth, but <a href='http://www.richlowe.net/'>Richard (richlowe)</a> pointed out this will render <a href='http://www.slashdot.org/'>Slashdot</a> essentially unviewable in <a href='http://lynx.isc.org/release/'>Lynx</a> and <a href='http://artax.karlin.mff.cuni.cz/~mikulas/links/'>Links</a>. Personally, I'd say that's the price of progress. <a href='http://lynx.isc.org/release/'>Lynx</a> is crap anyway. <a href='http://artax.karlin.mff.cuni.cz/~mikulas/links/'>Links</a> , on the other hand, already supports tables and frames (some forks also support JavaScript), so there's no reason they couldn't add rudimentary <acronym title='Cascading Style Sheets'>CSS</acronym> support as well. +</p> + diff --git a/content/posts/2003-11-22-incredible-disappearing-encoding-claims.html b/content/posts/2003-11-22-incredible-disappearing-encoding-claims.html new file mode 100644 index 0000000..a09a44f --- /dev/null +++ b/content/posts/2003-11-22-incredible-disappearing-encoding-claims.html @@ -0,0 +1,9 @@ +--- +date: "2003-11-22T12:08:43Z" +title: Incredible Disappearing ENCODING_CLAIMS +--- + +<p> +Apparently <code>REXML::Encoding::ENCODING_CLAIMS</code> has conveniently disappeared from <a href='http://www.germane-software.com/'>REXML</a>. This change broke both the stable and development versions of <a href='http://www.raggle.org/'>Raggle</a>. For those of you who are curious, I wrote up <a href='http://www.raggle.org/docs/encoding_claims_workaround/'>this small blurb</a> describing the problem and the solution. +</p> + diff --git a/content/posts/2003-11-23-debian-is-indecisive.html b/content/posts/2003-11-23-debian-is-indecisive.html new file mode 100644 index 0000000..d7c5ea1 --- /dev/null +++ b/content/posts/2003-11-23-debian-is-indecisive.html @@ -0,0 +1,24 @@ +--- +date: "2003-11-23T16:31:43Z" +title: Debian is Indecisive +--- + +<pre> +dpkg: error processing .../python_2.3.2-6_all.deb (--unpack): + trying to overwrite `/usr/share/doc/python2.3/python-policy.html', + which is also in package python2.3 +dpkg: considering removing python in favour of python2.3 ... +dpkg: no, cannot remove python (--auto-deconfigure will help): + mailman depends on python (>= 2.2.2.91-1) + python is to be removed. +dpkg: regarding .../python2.3_2.3.2-6_i386.deb containing python2.3: + python2.3 conflicts with python (<= 2.3.2-5) + python (version 2.3.2-2) is installed. +dpkg: error processing .../python2.3_2.3.2-6_i386.deb (--unpack): + conflicting packages - not installing python2.3 +</pre> + +<p> +<b>Update:</b> Clipped the huge path names. +</p> + diff --git a/content/posts/2003-11-23-decoupled-icecast-streaming.html b/content/posts/2003-11-23-decoupled-icecast-streaming.html new file mode 100644 index 0000000..79b6dab --- /dev/null +++ b/content/posts/2003-11-23-decoupled-icecast-streaming.html @@ -0,0 +1,39 @@ +--- +date: "2003-11-23T06:45:19Z" +title: Decoupled Icecast Streaming +--- + +<p> +I separated the <a href='http://www.icecast.org/'>Icecast</a> streaming for <a href='/radio/'>Pablotron Radio</a> from <a href='http://www.xmms.org/><acronym title='X Multimedia System'>XMMS</acronym></a>. I'm just using <code>shout</code> to queue files for the stream now. I also wrote a brief script which calls <a href='http://www.ignavus.net/software.html'><acronym title='X On-Screen Display'>XOSD</acronym></a> to notify me when a new song comes on. Here's the script: +</p> + +<pre> +#!/usr/bin/env ruby + +# some XOSD settings +ENV['DISPLAY'] = ':0' +FONT = "-adobe-helvetica-bold-r-normal-*-20-*-*-*-p-*-iso8859-2" + +# fork and exit so shout doesn't block +pid = fork +if pid + Process::waitpid(pid, Process::WNOHANG) + exit 0 +end + +# make sure the cue file updates +sleep 1 + +# read the cue file and pipe it to xosd +File::open('/var/log/icecast/.cue', 'r') { |cue| + name, size, rate, time, unknown, ofs = cue.readlines.map { |i| i.chomp } + IO::popen("osd_cat -p bottom -f #{FONT} -s 1 -c \\#ffcc00", 'w') { |osd| + osd.puts "#{time} - #{name}" + } +} +</pre> + +<p> +Why go through all this trouble? So I can use <a href='http://www.xmms.org/'><acronym title='X Multimedia System'>XMMS</acronym></a> to search for and preview songs locally, without messing with the active stream. Plus it's neat to have <a href='http://www.ignavus.net/software.html'><acronym title='X On-Screen Display'>XOSD</acronym></a> notifications for stuff :). +</p> + diff --git a/content/posts/2003-11-30-cool-d-html-menus.html b/content/posts/2003-11-30-cool-d-html-menus.html new file mode 100644 index 0000000..30c004b --- /dev/null +++ b/content/posts/2003-11-30-cool-d-html-menus.html @@ -0,0 +1,9 @@ +--- +date: "2003-11-30T13:09:54Z" +title: Cool D-HTML Menus +--- + +<p> +The <a href='http://www.iht.com/frontpage.html'>International Herald Tribune</a> has one of the cleanest and coolest <acronym title='Dynamic HyperText Markup Language'>DHTML</acronym> menu systems I've ever seen. +</p> + diff --git a/content/posts/2003-11-30-re-news.html b/content/posts/2003-11-30-re-news.html new file mode 100644 index 0000000..4f6d0fb --- /dev/null +++ b/content/posts/2003-11-30-re-news.html @@ -0,0 +1,9 @@ +--- +date: "2003-11-30T15:42:10Z" +title: 'Re: News' +--- + +<p> +<a href='http://accessories.gateway.com/AccessoryStore/Consumer+Electronics_381930/Digital+TV_381941/DVD+Players_9000002/1530868_ProdDetail?moreDetails=1'>Gateway Connected <acronym title='Digital Video Disc'>DVD</acronym> Player</a>. <acronym title='Digital Video Disc'>DVD</acronym>, <acronym title='MPEG 1/Layer 3 Audio'>MP3</acronym>, <a href='http://www.divx.com/'>DivX</a>, 802.11b. Neat. +</p> + diff --git a/content/posts/2003-12-03-alright.html b/content/posts/2003-12-03-alright.html new file mode 100644 index 0000000..1e86bf7 --- /dev/null +++ b/content/posts/2003-12-03-alright.html @@ -0,0 +1,9 @@ +--- +date: "2003-12-03T22:47:12Z" +title: Alright! +--- + +<p> +<a href='http://www.paulduncan.org/?id=99'>This post</a> on <a href='http://www.paulduncan.org/'>paulduncan.org</a> brought to you <a href='http://www.apache.org/'>Apache</a>, <a href='http://www.openssh.org/'><acronym title='Secure Shell'>SSH</acronym></a>, and my laptop <em>not</em> locking up when I plug in my <acronym title='Universal Serial Bus'>USB</acronym> camera! +</p> + diff --git a/content/posts/2003-12-03-crackmonkey-history-lesson.html b/content/posts/2003-12-03-crackmonkey-history-lesson.html new file mode 100644 index 0000000..a9214a9 --- /dev/null +++ b/content/posts/2003-12-03-crackmonkey-history-lesson.html @@ -0,0 +1,36 @@ +--- +date: "2003-12-03T17:43:13Z" +title: Crackmonkey History Lesson +--- + +<p> +While going through my mail archives, I stumbled across this message on +the <a href='http://www.crackmonkey.org/'>Crackmonkey mailing list</a>: +</p> + +<blockquote> +<pre> +Hey man, Gentoo is just BETTER, all right? In fact, simply ASSERTING +that it's better makes it EVEN BETTER AGAIN! It's better than you, +better than me, better than the sky, better than trees, better than +love, better than joy, better than salad, better than trees, better +than mountains, better than seas, better than comets, better than +flowers, better than beer, better than whales telling tall tales, +better than crystals formed in lost hidden caves, better than species +of African bees... + +...it's BETTER, BETTER, BETTER, BETTER, BETTER, BETTER, BETTER! + + ____ _____ _____ _____ _____ ____ _ + | __ )| ____|_ _|_ _| ____| _ \| | + | _ \| _| | | | | | _| | |_) | | + | |_) | |___ | | | | | |___| _ <|_| + |____/|_____| |_| |_| |_____|_| \_(_) +</pre> +</blockquote> + +<p> +Funny how it's even more applicable today, eh? +</p> + + diff --git a/content/posts/2003-12-03-curse-you-preempt.html b/content/posts/2003-12-03-curse-you-preempt.html new file mode 100644 index 0000000..81a4eaf --- /dev/null +++ b/content/posts/2003-12-03-curse-you-preempt.html @@ -0,0 +1,13 @@ +--- +date: "2003-12-03T22:09:05Z" +title: Curse You, Preempt! +--- + +<p> +Sure would be nice if <a href='http://www.digital-cameras.info/fuji-finepix-f401-zoom.htm'>my camera</a> didn't instantly hard-lock every machine I plugged it in to. I'm pretty sure it's the <a href='http://www.kernel.org/pub/linux/kernel/people/rml/preempt-kernel/'>preempt patch</a>. +</p> + +<p> +Scratch that, it's working on <code>halcyon</code> (the laptop). Now I can back up some of the pictures I've been taking! +</p> + diff --git a/content/posts/2003-12-03-re-news.html b/content/posts/2003-12-03-re-news.html new file mode 100644 index 0000000..ae422bd --- /dev/null +++ b/content/posts/2003-12-03-re-news.html @@ -0,0 +1,28 @@ +--- +date: "2003-12-03T17:39:57Z" +title: 'Re: News' +--- + +<p> +From <a href='http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/1854'>this message</a> on <a href='http://blade.nagaokaut.ac.jp/ruby/ruby-core/index.shtml'><code>ruby-core</code></a>: +</p> +<blockquote +cite='http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/1854'> +<pre> +>$ cat ybug.rb +>YAML.load( (0..1029).map {|n| { "x" => "z", "y" => n } } .to_yaml) +>$ /usr/local/lib/ruby-cvs/bin/ruby -v -r yaml ybug.rb +>ruby 1.8.1 (2003-12-01) [i686-linux] +>/usr/local/lib/ruby-cvs/lib/ruby/1.8/yaml.rb:39:in `load': parse error +>on line 666, + +ok...so this line number thing is freaking me out. Are you saying that +YAML is the +beast spoken of in Revelations ;-) +</pre> +</blockquote> + +<p> +Note: I fixed his mangled spelling of "Revelations". +</p> + diff --git a/content/posts/2003-12-03-topilicious.html b/content/posts/2003-12-03-topilicious.html new file mode 100644 index 0000000..afe8471 --- /dev/null +++ b/content/posts/2003-12-03-topilicious.html @@ -0,0 +1,22 @@ +--- +date: "2003-12-03T17:32:29Z" +title: Topilicious! +--- + +<p> +I just discovered that <code>top</code> now has colors and multiple +windows. I guess I can see the point of multiple windows, but +<em>colors</em>... Why oh why? Yet another tragic example of the <a +href='http://static.userland.com/userLandDiscussArchive/msg018352.html'>Law +of Software Development</a> in action. + </p> + +<p> +<a href='/screenshots/topilicious.png'><img +src='/screenshots/thumb-topilicious.png' + width='109' height='200' +alt='topilicious!' title='topilicious!' border='0' +hspace='5' /></a> +</p> + + diff --git a/content/posts/2003-12-04-dvd-burning-funky-uid.html b/content/posts/2003-12-04-dvd-burning-funky-uid.html new file mode 100644 index 0000000..f4900a8 --- /dev/null +++ b/content/posts/2003-12-04-dvd-burning-funky-uid.html @@ -0,0 +1,17 @@ +--- +date: "2003-12-04T01:41:06Z" +title: DVD Burning, Funky UID? +--- + +<p> +I've been doing backups with <a href='http://www.tcpipinfo.org/'>Alonzo's (osiekhan)</a> <acronym title='Digital Video Disc'>DVD</acronym> burner. It's <em>really</em> nice to have 4 gigs of space, and I haven't coastered anything yet, but there's one minor (and annoying) snafu. Check out the permissions on <samp>/mnt/dvd</samp>: +</p> + +<pre> +dr--r--r-- 5 4294967295 4294967295 292 Dec 4 2003 /mnt/dvd +</pre> + +<p> +I've been sifting around the <code>mount</code> and <code>fstab</code> man pages and trying various options. No combination of <code>uid=</code>, <code>gid=</code>, or <code>umask=</code> seems to give me anything that's perusable by anyone other than root. Ah well, minor price to pay for having that much space at my finger tips. +</p> + diff --git a/content/posts/2003-12-06-keith-packard-and-32-bit-enlightenment.html b/content/posts/2003-12-06-keith-packard-and-32-bit-enlightenment.html new file mode 100644 index 0000000..1cb1fe6 --- /dev/null +++ b/content/posts/2003-12-06-keith-packard-and-32-bit-enlightenment.html @@ -0,0 +1,39 @@ +--- +date: "2003-12-06T08:04:43Z" +title: Keith Packard and 32-bit Enlightenment +--- + +<p> +<a href='http://www.keithp.com/'>Keith Packard</a> explains how to make <a href='http://www.enlightenment.org/'>Enlightenment</a> work with 32-bit visuals. (linked from the <a href='http://lists.sourceforge.net/lists/listinfo/enlightenment-devel'>Enlightenment development mailing list</a>): +</p> + +<blockquote cite='http://pdx.freedesktop.org/pipermail/xserver/2003-November/000302.html'> +<p> +Well, that's to be expected -- enlightenment happens to find the depth 32 +visual and get excited about it. Unfortunately, that depth 32 visual has +alpha bits in the upper 8 bits that enlightenment doesn't understand. +Leaving those zero makes for some pretty transparent windows, hence you +see the background. +</p> + +<p> +xcompmgr did have a bug where enlightenment set the _XSETROOT_ID property +to 0 which caused it to kinda lose when drawing the background. That was +easy enough to fix though. +</p> + +<p> +I have a hacked up xlib which discards depth 32 visuals; using that makes +enlightenment work reasonably well. Of course, the right fix is to make +it understand those visuals and "do the right thing". It shouldn't take +very much work to make Eterm really be translucent, and to fix the +thumbnail window. Sample code for another thumbnail viewer can be found +in /cvs/xapps/uncover. That crashes the server when E is running +right now though. Time to go debug some more :-) +</p> +</blockquote> + +<p> +<a href='http://pdx.freedesktop.org/pipermail/xserver/2003-November/000302.html'>Here's</a> the full message. +</p> + diff --git a/content/posts/2003-12-06-retreat.html b/content/posts/2003-12-06-retreat.html new file mode 100644 index 0000000..b5a44bb --- /dev/null +++ b/content/posts/2003-12-06-retreat.html @@ -0,0 +1,63 @@ +--- +date: "2003-12-06T09:13:55Z" +title: Retreat! +--- + +<p> +I give up. I'm going to disable the parallel feed grabbing in <a +href='http://www.raggle.org/'>Raggle</a> so we can put out a new +version. <a href='http://www.pekdon.net/'>Claes (pekdon)</a> suggested +I try and rewrite it, but the implementation is already pretty simple. +Here's a high-level view of how the old non-parallel and new parallel +feed grabbing stuff works: +</p> + +<p> +<b>Old Code</b> +<pre> +$config['feeds'].each { |feed| + # download feed +} +</pre> + + +<p> +<b>New Code</b> +<pre> +threads = { } +$config['feeds'].each { |the_feed| + threads[the_feed['url']] = Thread::new(the_feed) { |feed| + # download feed + } + + thread = threads[the_feed['url']] + if thread && thread.status == 'run' && + !$config['grab_in_parallel'] + # thread.join + end + until Thread::list.size < ($config['max_threads'] || 10) + $log.puts 'DEBUG: waiting for threads' + sleep 5 + end +} +</pre> +</p> + +<p> +Of course, looking at this code as I'm pasting it, it just occured to me +that if you have two feeds with the same <acronym title='Uniform +Resource Locator'>URL</acronym>, you could have two threads trying to +muck with the feed at the same time. Wonder if that's what's causing <a +href='http://www.ruby-lang.org/'>Ruby</a> to freak out. By the way, +this is why I <em>really</em> dislike threads. Not because I'm an +ignoramus, but because they encourage subtle bugs like this. Anyway, +let's see if that fixes our random crash woes. +</p> + +<p> +Oh, and before anyone asks, yes, I realize that's not the best +way to implement the thread capping stuff. And yes, I realize thread +pooling would be more efficient. Right now I'm just trying to get it to +work reliably, then I'll focus on optimization. +</p> + diff --git a/content/posts/2003-12-10-welcome-to-kylie.html b/content/posts/2003-12-10-welcome-to-kylie.html new file mode 100644 index 0000000..22d3b59 --- /dev/null +++ b/content/posts/2003-12-10-welcome-to-kylie.html @@ -0,0 +1,11 @@ +--- +date: "2003-12-10T10:04:02Z" +title: Welcome to kylie +--- + +<p> +<a href='/'>Pablotron</a> is now hosted alongside <a href='http://www.linuxbrit.co.uk/'>Tom (giblet)</a> and <a href='http://www.richlowe.net/'>Richard (richlowe)</a> on <a href='http://kylie.pablotron.org/'><code>kylie</code></a>. +Pages should load a <em>lot</em> faster for everyone now. +</p> + + diff --git a/content/posts/2003-12-15-free-secondary-dns.html b/content/posts/2003-12-15-free-secondary-dns.html new file mode 100644 index 0000000..be14ed7 --- /dev/null +++ b/content/posts/2003-12-15-free-secondary-dns.html @@ -0,0 +1,17 @@ +--- +date: "2003-12-15T17:49:35Z" +title: Free Secondary DNS +--- + +<p> +I'm setting up <a +href='http://inept.pablotron.org/'><code>inept</code></a> to be +secondary <acronym title='Domain Name Server'>DNS</acronym> and <acronym +title='Mail eXchange'>MX</acronym> for <a +href='http://kylie.pablotron.org/'><code>kylie</code></a>, and I just +stumbled across <a href='http://www.secondary.org/'>secondary.org</a>, +which provides free secondary <acronym title='Domain Name +Service'>DNS</acronym>. I don't need it, but that might be useful for +some someone. +</p> + diff --git a/content/posts/2003-12-15-poor-man-s-debian-mirror.html b/content/posts/2003-12-15-poor-man-s-debian-mirror.html new file mode 100644 index 0000000..d58819c --- /dev/null +++ b/content/posts/2003-12-15-poor-man-s-debian-mirror.html @@ -0,0 +1,18 @@ +--- +date: "2003-12-15T12:07:09Z" +title: Poor Man's Debian Mirror +--- + +<p> +I'm not sure if I've posted this before, but if you <a href='http://www.debian.org/'>Debian</a> users drop this in root's crontab, you'll save a whole lot of download time: +</p> + +<pre> +# cache latest packages at 5am +1 5 * * * apt-get -q update && apt-get -qfmuy --download-only dist-upgrade +</pre> + +<p> +That'll cache the latest packages every morning. This isn't my idea, I stole it from <a href='http://www.linuxbrit.co.uk/'>Tom (giblet)</a>, and I have no idea who he stole it from. +</p> + diff --git a/content/posts/2003-12-18-argh.html b/content/posts/2003-12-18-argh.html new file mode 100644 index 0000000..9b2bfe9 --- /dev/null +++ b/content/posts/2003-12-18-argh.html @@ -0,0 +1,17 @@ +--- +date: "2003-12-18T11:21:55Z" +title: Argh +--- + +<p> +<a href='http://www.linuxbrit.co.uk/'>Tom (giblet)</a> has been here less than 24 hours, and he's already broken something! I was sitting here innocently trying to <acronym title='Denial of Service'>DoS</acronym> his machine over my <acronym title='Local Access Network'>LAN</acronym>, and <a href='http://www.xmms.org/'><acronym title='X Multimedia System'>XMMS</acronym></a> crashed. Now when I run it I get the following error: +</p> + +<pre> +/usr/lib/xmms/Input/libmpg123.so: undefined symbol: xmms_entry_new +</pre> + +<p> +:( +</p> + diff --git a/content/posts/2003-12-18-okay-but-it-s-still-his-fault.html b/content/posts/2003-12-18-okay-but-it-s-still-his-fault.html new file mode 100644 index 0000000..7ad98bd --- /dev/null +++ b/content/posts/2003-12-18-okay-but-it-s-still-his-fault.html @@ -0,0 +1,13 @@ +--- +date: "2003-12-18T12:29:19Z" +title: Okay, But it's Still His Fault +--- + +<p> +Alright, so the immediate cause may have been a symlink in my <code>~/bin</code> directory pointing to an old <a href='http://www.xmms.org/'><acronym title='X MultiMedia System'>XMMS</acronym></a> binary, but the <em>real</em> cause was still <a href='http://www.linuxbrit.co.uk/'>Tom</a>. I mean if you think about it, <a href='http://www.xmms.org/'><acronym title='X Multimedia System'>XMMS</acronym></a> would have probably run for months. But since he's here I <em>had</em> to mess with his machine, which then caused the <a href='http://www.xmms.org/'><acronym title='X Multimedia System'>XMMS</acronym></a> crash. Therefore, if he wasn't here, then this wouldn't have happened. +</p> + +<p> +<acronym title='Quod Erat Demonstradm'>QED</acronym> +</p> + diff --git a/content/posts/2003-12-21-stupid-spammers.html b/content/posts/2003-12-21-stupid-spammers.html new file mode 100644 index 0000000..999eade --- /dev/null +++ b/content/posts/2003-12-21-stupid-spammers.html @@ -0,0 +1,53 @@ +--- +date: "2003-12-21T16:31:19Z" +title: Stupid Spammers +--- + +<p> +While <a href='http://www.unitedcolo.com/'>United Colo's</a> liberal <a +href='http://www.unitedcolo.com/service.htm'>acceptable use policy</a> +means we won't get booted for using naughty language, it means we also +run the risk of getting penalized by the <a +href='http://www.spamhaus.org/sbl/sbl.lasso?query=SBL10326'>behavior of +other machines on our subnet</a>. On the other hand, it looks like spam +<em>might</em> be prohibited. At the very least, it's certainly +discouraged. Here's the relevant portions of their <a +href='http://www.unitedcolo.com/service.htm'>acceptable use policy</a>: +</p> + +<blockquote cite='http://www.unitedcolo.com/service.htm'> +<p> +(v) Utilize the Services to (A) forge the signature or other identifying +mark or code of any other person, (B) impersonate or assume the identity +or any other person, or (C) engage in any other activity (including +"spoofing") to attempt to deceive or mislead other persons regarding the +true identity of the User (excluding the use of anonymous remailer or +Internet nicknames). +</p> + +<p> +... +</p> + +<p> +(viii) Utilize the Services to distribute, advertise or promote software +or services that have the primary purpose of encouraging or facilitating +unsolicited commercial e-mail or spam. +</p> + +<p> +(ix) Utilize the Services to solicit or collect, or distribute, +advertise or promote, e-mail address lists for the purpose of +encouraging or facilitating unsolicited commercial e-mail or spam. +</p> +</blockquote> + +<p> +So, they don't explicitly prohibit mass-mailing, but they do prohibit +spoofing, services and software that encourage spam, and using their +servers to distribute addresses for spamming. Whether or not that's +good enough to reduce the <a +href='http://www.spamhaus.org/'>Spamhaus</a> ban from a <code>/24</code> +to a <code>/32</code> remains to be seen. +</p> + diff --git a/content/posts/2004-01-04-css-links.html b/content/posts/2004-01-04-css-links.html new file mode 100644 index 0000000..a0adfde --- /dev/null +++ b/content/posts/2004-01-04-css-links.html @@ -0,0 +1,15 @@ +--- +date: "2004-01-04T16:21:20Z" +title: CSS Links +--- + +<p> +I stumbled across <a href='http://www.positioniseverything.net/'>this +page</a> last night; it's got a bunch of good links for dealing with +<acronym title='Cascading Style Sheets'>CSS</acronym> positioning and +<acronym title='Cascading Style Sheets'>CSS</acronym> browser quirks. +<a href='http://www.hotdesign.com/seybold/everything.html'>Here's</a> +another one; it's light on details but it's a good summary of the +pros and cons of <acronym title='Cascading Style Sheets'>CSS</acronym>. +</p> + diff --git a/content/posts/2004-01-04-feh-profiling-image-caching.html b/content/posts/2004-01-04-feh-profiling-image-caching.html new file mode 100644 index 0000000..8148a96 --- /dev/null +++ b/content/posts/2004-01-04-feh-profiling-image-caching.html @@ -0,0 +1,15 @@ +--- +date: "2004-01-04T01:39:31Z" +title: Feh Profiling, Image Caching +--- + +<p> +<a href='http://www.linuxbrit.co.uk/'>Tom (giblet)</a> and I spent the afternoon working on image and profile caching in <a href='http://www.linuxbrit.co.uk/feh/'>Feh</a>. In the process we did some profiling and ran across a few bottlenecks. At the moment the image and pixmap caching isn't stable at all, but if you want to play with it, <a href='/download/feh_image_caching-2.diff'>here's</a> the diff. It's against the latest <acronym title='Concurrent Versioning System'>CVS</acronym> (which has the other speed improvements already). +</p> + +<p> +<b>Update:</b> +You'll also need to drop <a href='/download/feh_cache_hc.tar.gz'>these +files</a> in <code>feh/src</code> in order to get the beast to compile. +</p> + diff --git a/content/posts/2004-01-11-gallery-on-paulduncan-org.html b/content/posts/2004-01-11-gallery-on-paulduncan-org.html new file mode 100644 index 0000000..14aebad --- /dev/null +++ b/content/posts/2004-01-11-gallery-on-paulduncan-org.html @@ -0,0 +1,47 @@ +--- +date: "2004-01-11T23:43:33Z" +title: Gallery on paulduncan.org +--- + +<p> +I finally finished the <a href='http://www.paulduncan.org/gallery/'>new gallery page</a> on <a href='http://www.paulduncan.org/'><code>paulduncan.org</code></a>. Rather than port the <a href='/gallery/'>Pablotron Gallery</a> directly, I decided to start from scratch and see if I could do it better the second time around. I also had a bunch of pictures at home to work with and some slightly different requirements. All my camera pictures at home are in <code>/store/camera</code>, but I wanted to split the files up by gallery on the server-side. Also, I wanted a straightforward way to edit captions. Above all, I wanted the entire setup to be simple to maintain. +</p> + +<p> +Well, I think I've managed to accomplish all that. At home, I'm using the new caption mode in <a href='http://www.linuxbrit.co.uk/feh/'>feh</a> to caption images, and the server-side gallery code recognizes feh captions. A single config file, <code>galleries.yaml</code>, tells the web interface and gallery generating script the title, path, description and images associated with each gallery. The server-side gallery generation script reads <code>galleries.yaml</code>, creates the gallery directory structure, and populates it with symlinks to an <code><a href='http://rsync.samba.org/'>rsync</a></code>ed copy of the camera directory. At home, <code>camera_update.sh</code> generates thumbnails (via <a href='http://www.imagemagick.org/'>ImageMagick</a>) and rsyncs the camera directory to <code>kylie</code>. +</p> + +<p> +So, to create a new gallery, I do the following: +</p> + +<ol> +<li>Add the images to <code>/store/camera</code></li> +<li>Caption the images with <code>feh -T camera</code></li> +<li>Run <code>camera_update.sh</code></li> +<li>Add the description to <code>galleries.yaml</code></li> +<li>Run <code>generate_galleries.rb</code></li> +</ol> + +<p> +Note that I already put the pictures in <code>/store/camera</code>. And they have to captioned, scaled, and uploaded somehow. So steps 1, 2, and 3 are effectively <abbr title='No/Null Operation'>NOOPs</abbr>. That said, I'm trying to think of ways to make this process even dumber. I could <code>cron</code> the camera update and rsync process; that way thumbnails and data transfer are taken care of automatically. Thoughts, anyone? +</p> + +<p> +Oh yeah, if you want any of this code, let me know and I'll post it. +It's written with my setup in mind, but you might be able to salvage or +modify it for your setup. Here's the first review of the code: +</p> + +<pre> +17:52 <<a href='http://www.linuxbrit.co.uk/'>giblet</a>> dammit, that's cool +17:53 <<a href='http://www.linuxbrit.co.uk/'>giblet</a>> well I'm pissed off now :D +17:53 <pabs> alright! +17:53 <<a href='http://www.linuxbrit.co.uk/'>giblet</a>> cos I can't do that without copying images :D +17:53 <pabs> just call me master of symlinks +17:53 <pabs> pabs@kylie:~/paulduncan.org/gallery> du -sh . +17:53 <pabs> 496K . +17:54 <<a href='http://www.linuxbrit.co.uk/'>giblet</a>> hehehe +17:54 <<a href='http://www.linuxbrit.co.uk/'>giblet</a>> I should've thought of that :) +</pre> + diff --git a/content/posts/2004-01-11-localfark-0-2-0.html b/content/posts/2004-01-11-localfark-0-2-0.html new file mode 100644 index 0000000..afaf62e --- /dev/null +++ b/content/posts/2004-01-11-localfark-0-2-0.html @@ -0,0 +1,9 @@ +--- +date: "2004-01-11T22:46:02Z" +title: LocalFark 0.2.0 +--- + +<p> +I just posted version 0.2.0 of <a href='/software/localfark/'>LocalFark</a>. Changes include a slightly nicer (albeit incompatible) config setup for the web interface, and some <a href='http://www.ruby-lang.org/'>Ruby</a> 1.8 bugfixes. Here's the <a href='/download/localfark-0.2.0.tar.gz'>tarball</a>, <a href='/software/localfark/ChangeLog'>change log</a>, and <a href='/download/localfark-0.2.0.tar.gz.asc'>signature</a>. +</p> + diff --git a/content/posts/2004-01-11-mozilla-s-c-portability-guide.html b/content/posts/2004-01-11-mozilla-s-c-portability-guide.html new file mode 100644 index 0000000..e998a2e --- /dev/null +++ b/content/posts/2004-01-11-mozilla-s-c-portability-guide.html @@ -0,0 +1,9 @@ +--- +date: "2004-01-11T01:35:50Z" +title: Mozilla's C++ Portability Guide +--- + +<p> +<a href='http://www.mozilla.org/hacking/portable-cpp.html'>Mozilla's C++ Portability Guide</a>. Brief summary: Don't use anything in C++. No templates, no <acronym title='Run-Time Type Information'>RTTI</acronym>, no namespaces. Good read though. +</p> + diff --git a/content/posts/2004-01-11-snooty-pc-hardware.html b/content/posts/2004-01-11-snooty-pc-hardware.html new file mode 100644 index 0000000..828ed96 --- /dev/null +++ b/content/posts/2004-01-11-snooty-pc-hardware.html @@ -0,0 +1,9 @@ +--- +date: "2004-01-11T20:04:20Z" +title: Snooty PC Hardware +--- + +<p> +<a href='http://www.go-l.com/home/'>Lieberman Inc.</a> makes stylish, overpriced, and amazingly fast hardware. They also sell some <a href='http://www.go-l.com/monitors/'>really cool monitors</a>. +</p> + diff --git a/content/posts/2004-01-12-amd64-in-the-hizouse.html b/content/posts/2004-01-12-amd64-in-the-hizouse.html new file mode 100644 index 0000000..e89487c --- /dev/null +++ b/content/posts/2004-01-12-amd64-in-the-hizouse.html @@ -0,0 +1,23 @@ +--- +date: "2004-01-12T22:21:11Z" +title: AMD64 in the Hizouse! +--- + +<p> +Alright! I just got my <em>free</em> <a +href='http://www.amd.com/us-en/Processors/DevelopWithAMD/0,,30_2252_9044,00.html#amddocs'>AMD64 +programmer's manuals</a>. Check 'em out: +</p> + +<p> +<a href='/gallery/misc/amd_64_books.jpg'><img src='/gallery/misc/amd_64_books-thumb.jpg' width='480' height='360' title='AMD64 books' alt='AMD64 books' border='0' /></a> +</p> + +<p> +I found about the free bit when <a +href='http://www.richlowe.net/'>Richard (richlowe)</a> got his copies. +All I need now is an Opteron box to play with. Hmm.... might be time +for a <acronym title='Central Processing Unit'>CPU</acronym>/<abbr + title='Motherboard'>mobo</abbr> upgrade. +</p> + diff --git a/content/posts/2004-01-12-tarpitting-in-iptables.html b/content/posts/2004-01-12-tarpitting-in-iptables.html new file mode 100644 index 0000000..5210868 --- /dev/null +++ b/content/posts/2004-01-12-tarpitting-in-iptables.html @@ -0,0 +1,33 @@ +--- +date: "2004-01-12T00:10:53Z" +title: tarpitting in iptables +--- + +<p> +The incredible <a +href='http://www.propylon.com/news/ctoarticles/lurking_030415.html'>lurking</a> +Pablo strikes again! I saw this bit on <acronym +title='Internet Relay Chat'>IRC</acronym> an hour ago: +</p> + +<pre> +23:09 <ljlane> wow, read some really evil tarpitting stuff +23:10 <radsaq> really? +23:11 <ljlane> yeah, <a href='http://www.securityfocus.com/infocus/1723'>http://www.securityfocus.com/infocus/1723</a> +23:11 <ljlane> tarpit just before your drop rule. tarpit all ports, tarpit + unused nets, etc +</pre> + +<p> +Interesting stuff. That said, I still prefer <a +href='http://www.snowman.net/'>Stephen's (Snow-Man)</a> more draconian +approach; hitting an invalid port tosses you in an <a +href='http://snowman.net/projects/ipt_recent/'><code>ipt_recent</code></a> +list, which drops <em>all</em> of your traffic for a few minutes. The +tarpitting approach, while effective at slowing down and confusing a +probe, still leaves you vulnerable. The <a +href='http://snowman.net/projects/ipt_recent/'><code>ipt_recent</code></a> +approach kills automated port scans almost completely, without using as +many resources on the firewall. +</p> + diff --git a/content/posts/2004-01-15-aphex-twin-supports-free-music.html b/content/posts/2004-01-15-aphex-twin-supports-free-music.html new file mode 100644 index 0000000..7c73f81 --- /dev/null +++ b/content/posts/2004-01-15-aphex-twin-supports-free-music.html @@ -0,0 +1,45 @@ +--- +date: "2004-01-15T20:29:00Z" +title: Aphex Twin Supports Free Music +--- + +<p> +In case you missed <a href='http://slashdot.org/article.pl?sid=04/01/15/0213204&mode=nested&tid=126&tid=141&tid=188&tid=95&threshold=1'>the Slashdot story</a>, <a href='http://www.warprecords.com/bleep/'>Bleep</a>, <a href='http://www.warprecords.com/'>Warp Record's</a> new music service, is <acronym title='Digital Rights Management'>DRM</acronym>-free: +</p> + +<blockquote cite='http://www.warprecords.com/bleep/'> +<p> +Bleep music has no DRM or copy protection built in. We believe that most people like to be treated as customers and not potential criminals - DRM is easily circumvented and just puts obstacles in the way of enjoying music. +</p> + +<p> +Source: <cite><a href='http://www.warprecords.com/bleep/'>BLEEP <acronym title='Frequently Asked Questions'>FAQ</acronym></a></cite> +</p> +</blockquote> + +<p> +Hot on the heels of that announcement, comes this interview with Richard D. James (<acronym title='Also Known As'>aka</acronym> Mr <a href='http://www.rephlex.com/'>Aphex Twin</a>): +</p> + +<blockquote cite='http://www.smh.com.au/articles/2004/01/08/1073437402717.html'> +<p> +Despite the rushed release of Drukqs and the reasons behind that, he thinks "having music for free is a good thing, because I don't think music should be a commodity. I've changed my opinion to and fro over the years, but I really do think there shouldn't be any copyright on art. +</p> + +<p> +"But the thing is, some kid somewhere might be really poor and think, 'If I make the best music in the world, I can get some money and buy a house and some equipment', which is what I thought. So that is a good motivation, as well. You would lose that." +</p> + +<p> +Source: <cite><a +href='http://www.smh.com.au/articles/2004/01/08/1073437402717.html'>"Synths, +drukqs and rock'n'roll"</a>, <a href='http://www.smh.com.au/'>Sydney +Morning Herald</a> (linked from <a +href='http://boingboing.net/'>BB</a>)</cite> +</p> +</blockquote> + +<p> +Alright! +</p> + diff --git a/content/posts/2004-01-15-localfark-0-2-1.html b/content/posts/2004-01-15-localfark-0-2-1.html new file mode 100644 index 0000000..46c1b1c --- /dev/null +++ b/content/posts/2004-01-15-localfark-0-2-1.html @@ -0,0 +1,9 @@ +--- +date: "2004-01-15T23:39:11Z" +title: LocalFark 0.2.1 +--- + +<p> +<a href='/software/localfark/'>LocalFark</a> version 0.2.1. <a href='/download/localfark-0.2.1.tar.gz'>Download</a>. <a href='/download/localfark-0.2.1.tar.gz.asc'>signature</a>, <a href='/software/localfark/ChangeLog'>change log</a>. Enjoy! +</p> + diff --git a/content/posts/2004-01-15-parsedate-is-my-friend.html b/content/posts/2004-01-15-parsedate-is-my-friend.html new file mode 100644 index 0000000..4d4325f --- /dev/null +++ b/content/posts/2004-01-15-parsedate-is-my-friend.html @@ -0,0 +1,9 @@ +--- +date: "2004-01-15T21:54:01Z" +title: ParseDate is My Friend +--- + +<p> +I really like it when <em>stuff just works ™</em>. Case in point: the <a href='http://www.rubycentral.com/book/lib_standard.html#ParseDate.parsedate'><code>ParseDate</code> module</a> in <a href='http://www.ruby-lang.org/'>Ruby</a>. I'm updating <a href='/software/localfark/'>LocalFark</a> to account for the change in date syntax on <a href='http://www.fark.com/'>Fark</a> and <a href='http://www.totalfark.com/'>TotalFark</a>. On a hunch, I just passed the entire date string scraped from {,<a href='http://www.totalfark.com/'>Total</a>}<a href='http://www.fark.com/'>Fark</a> into <code>ParseDate::parsedate</code>, and it worked exactly as advertised, simplifying the code in <a href='/software/localfark/'>LocalFark</a>. I'm testing the changes now; if everything works okay a new version will be out in less than an hour. +</p> + diff --git a/content/posts/2004-01-15-richard-s-guide-to-counterstrike-lingo.html b/content/posts/2004-01-15-richard-s-guide-to-counterstrike-lingo.html new file mode 100644 index 0000000..57098aa --- /dev/null +++ b/content/posts/2004-01-15-richard-s-guide-to-counterstrike-lingo.html @@ -0,0 +1,22 @@ +--- +date: "2004-01-15T13:23:14Z" +title: Richard's Guide to Counterstrike Lingo +--- + +<pre> +13:17 <pabs> <a href='http://www.richlowe.net/'>richlowe</a>: i'm actually not up on teh kiddie cs speak +13:17 <pabs> <a href='http://www.richlowe.net/'>richlowe</a>: but i can do the q3 speak +13:17 <<a href='http://www.richlowe.net/'>richlowe</a>> pabs: me neither. +13:17 <<a href='http://www.richlowe.net/'>richlowe</a>> it's pretty much the same. +13:17 <pug-uni> <a href='http://www.richlowe.net/'>richlowe</a>: to be an pwns0r rules +13:17 <pabs> it's basically different dialects of hte same language though +13:18 <<a href='http://www.richlowe.net/'>richlowe</a>> you need exactly 3 phrases "OMG!!!! HAX!!!", "CAMPING PUSSY!", + and "Fuking n00b" +13:18 <<a href='http://www.richlowe.net/'>richlowe</a>> and you fit right in. +13:18 <<a href='http://www.richlowe.net/'>richlowe</a>> of course, there's CS specifics like "Lose the fucking shield, + dipshit" +13:19 <<a href='http://www.richlowe.net/'>richlowe</a>> and my personal favorite "'cover me' does not mean 'Throw a + grenade in after me' donkey fucker'" +13:21 <pabs> hmm i should write this stuff down +</pre> + diff --git a/content/posts/2004-01-15-tap-tap-tap.html b/content/posts/2004-01-15-tap-tap-tap.html new file mode 100644 index 0000000..89dba15 --- /dev/null +++ b/content/posts/2004-01-15-tap-tap-tap.html @@ -0,0 +1,9 @@ +--- +date: "2004-01-15T22:57:57Z" +title: Tap Tap Tap +--- + +<p> +Everything didn't work okay. But I fixed it! Now I'm just waiting for this test to run. In the mean time, take a look at my newly-rewritten and vastly-simplified <a href='/download/'>Download page</a> (shamelessly stolen from <a href='http://www.linuxbrit.co.uk/downloads/'>Tom's Download page</a>). +</p> + diff --git a/content/posts/2004-01-15-the-year-of-the-lan.html b/content/posts/2004-01-15-the-year-of-the-lan.html new file mode 100644 index 0000000..756405e --- /dev/null +++ b/content/posts/2004-01-15-the-year-of-the-lan.html @@ -0,0 +1,21 @@ +--- +date: "2004-01-15T20:14:30Z" +title: The Year of the LAN +--- + +<p> +Ran across <a href='http://slashdot.org/comments.pl?sid=92975&cid=7990499'>this amusing post</a> on <a href='http://www.slashdot.org/'>Slashdot</a>: +</p> + +<blockquote cite='http://slashdot.org/comments.pl?sid=92975&cid=7990499'> +<i>Why am I so hars? Because Java hasn't lived up to its potential - yet. Yes, it may be important, but when it becomes important, you won't notice because it will blend into the landscape. Another history lesson: For years people were talking about "198X will be the Year of the LAN," but when it finally happened, no one noticed because it was accepted. Does anyone remember exactly what year was the year of the CD-ROM? No. It just happened. The same thing will happen to Java.</i> + +<p> +- Vincent Flanders in "Web Pages That Suck" book (and the website), 1998 +</p> + +<p> +(Okay, Java seems to be all over the place now, all right. What was the Year of Java? I think I missed it.) +</p> +</blockquote> + diff --git a/content/posts/2004-01-17-cry-me-a-river-adobe.html b/content/posts/2004-01-17-cry-me-a-river-adobe.html new file mode 100644 index 0000000..1e67afe --- /dev/null +++ b/content/posts/2004-01-17-cry-me-a-river-adobe.html @@ -0,0 +1,10 @@ +--- +date: "2004-01-17T14:09:47Z" +title: Cry Me a River, Adobe +--- + +<p> +<a href='http://www.adobe.com/'>Adobe</a> is apparently unhappy about their trademark, Photoshop™™™ being used as a verb. +<a href='http://www.adobe.com/misc/trade.html#photoshop'>Check it out</a>. +</p> + diff --git a/content/posts/2004-01-18-big-rigs-review.html b/content/posts/2004-01-18-big-rigs-review.html new file mode 100644 index 0000000..3a6ddb9 --- /dev/null +++ b/content/posts/2004-01-18-big-rigs-review.html @@ -0,0 +1,13 @@ +--- +date: "2004-01-18T00:30:14Z" +title: Big Rigs Review +--- + +<p> +From <a href='http://www.gamespot.com/pc/driving/bigrigsotrr/review.html'>this review</a> of "Big Rigs: Over the Top Racing": +</p> + +<blockquote cite='http://www.gamespot.com/pc/driving/bigrigsotrr/review.html'> +Just how bad is Big Rigs: Over the Road Racing? It's as bad as your mind will allow you to comprehend. It is so disturbingly bad that even its budget price tag seems like a slap in the face. It really makes you wonder if the company that put out this dreck even took so much as a half minute to glance at the game that it was releasing. The game's readme file does assert that the game was thoroughly tested on various PCs, but the end result seems to suggest otherwise. The fact is, even if you tried, you couldn't play Big Rigs: Over the Road Racing the way it was seemingly intended to be played, and even if you could, you wouldn't want to. +</blockquote> + diff --git a/content/posts/2004-01-19-localfark-0-2-2.html b/content/posts/2004-01-19-localfark-0-2-2.html new file mode 100644 index 0000000..7402632 --- /dev/null +++ b/content/posts/2004-01-19-localfark-0-2-2.html @@ -0,0 +1,9 @@ +--- +date: "2004-01-19T19:58:07Z" +title: LocalFark 0.2.2 +--- + +<p> +Quick fix from <a href='http://www.linuxbrit.co.uk/'>Tom (giblet)</a> for <a href='/software/localfark/'>LocalFark</a>. <a href='/download/localfark-0.2.2.tar.gz'>Download</a>, <a href='/download/localfark-0.2.2.tar.gz.asc'>Signature</a>, <a href='/software/localfark/ChangeLog'>ChangeLog</a>. +</p> + diff --git a/content/posts/2004-01-22-fam-ruby-0-1-3.html b/content/posts/2004-01-22-fam-ruby-0-1-3.html new file mode 100644 index 0000000..46183ea --- /dev/null +++ b/content/posts/2004-01-22-fam-ruby-0-1-3.html @@ -0,0 +1,9 @@ +--- +date: "2004-01-22T15:43:15Z" +title: FAM-Ruby 0.1.3 +--- + +<p> +Another bug-fix release, this time for <a href='/software/fam-ruby/'>FAM-Ruby</a>. <a href=/download/fam-ruby-0.1.3.tar.gz'>Download</a>, <a href='/download/fam-ruby-0.1.3.tar.gz.asc'>Signature</a>, <a href='/software/fam-ruby/ChangeLog'>ChangeLog</a>. +</p> + diff --git a/content/posts/2004-01-23-the-mp3-caper.html b/content/posts/2004-01-23-the-mp3-caper.html new file mode 100644 index 0000000..a316733 --- /dev/null +++ b/content/posts/2004-01-23-the-mp3-caper.html @@ -0,0 +1,13 @@ +--- +date: "2004-01-23T04:08:06Z" +title: The MP3 Caper +--- + +<p> +I just found an amusing <a href='http://www.flash.com/'>Flash</a> +animation, <a href='http://www.eff.org/share/mp3caper.php'>The <acronym +title='MPEG 1 / Layer 3 Audio'>MP3</acronym> Caper</a>, over at the <a +href='http://www.eff.org/'><acronym title='Electronic Freedom +Foundation'>EFF</acronym></a> +</p> + diff --git a/content/posts/2004-01-23-thief-3.html b/content/posts/2004-01-23-thief-3.html new file mode 100644 index 0000000..e2bb103 --- /dev/null +++ b/content/posts/2004-01-23-thief-3.html @@ -0,0 +1,9 @@ +--- +date: "2004-01-23T03:04:36Z" +title: Thief 3! +--- + +<p> +I know this was on <a href='http://www.slashdot.org/'>Slashdot</a>, but I feel it bears repeating. <strong><a href='http://www.gamespot.com/pc/action/thief3/screenindex.html'>Thief 3</a>!!!!</strong> I need to get the first two and play them again. The second one is one of my favorite games of all-time. +</p> + diff --git a/content/posts/2004-01-24-inferring-and-visualizing-social-networks-on-irc.html b/content/posts/2004-01-24-inferring-and-visualizing-social-networks-on-irc.html new file mode 100644 index 0000000..fe3a0b8 --- /dev/null +++ b/content/posts/2004-01-24-inferring-and-visualizing-social-networks-on-irc.html @@ -0,0 +1,9 @@ +--- +date: "2004-01-24T15:18:07Z" +title: Inferring and Visualizing Social Networks on IRC +--- + +<p> +<a href='http://www.richlowe.net/'>Richard (richlowe)</a> pointed me towards <a href='http://www.jibble.org/piespy/'>this cool article</a> on graphing relationships between individuals on <acronym title='Internet Relay Chat'>IRC</acronym>. Finally, something useful to do with the years of <acronym title='Internet Relay Chat'>IRC</acronym> logs I've accumulated! +</p> + diff --git a/content/posts/2004-01-24-prime-number-shitting-bear.html b/content/posts/2004-01-24-prime-number-shitting-bear.html new file mode 100644 index 0000000..a5292f8 --- /dev/null +++ b/content/posts/2004-01-24-prime-number-shitting-bear.html @@ -0,0 +1,59 @@ +--- +date: "2004-01-24T13:18:27Z" +title: Prime Number Shitting Bear +--- + +<p> +Okay, this is officially the funniest site I've seen all week! +</p> + +<pre> +13:05 <astaroth> <a +href='http://members.surfeu.fi/kklaine/primebear.html'>http://members.surfeu.fi/kklaine/primebear.html</a> +13:05 <astaroth> i'm not at all sure why.... +13:09 <ljlane> poor bear +13:10 <ljlane> Man. I broke a nail. +13:13 <pabs> okay that site is awesome +13:15 <ljlane> astaroth is about to get pablotronned +13:15 <pabs> you know it! +</pre> + +<p> +Then again, it could also be a sign that I have no sense of humor :( +</p> + +<p> +<b>Update:</b> +<pre> + PRIMESTATS + + Prime now: + 57073 + Prime count: + 5786 + Prime density: + 10.1% + Uptime: + 01:38 +</pre> +:) +</p> + +<p> +<b>Update 2:</b> +<pre> + PRIMESTATS + + Prime now: + 418939 + Prime count: + 35309 + Prime density: + 8.4% + Uptime: + 10:02 +</pre> + +10 hours and I'm still going strong! +</p> + diff --git a/content/posts/2004-01-28-time-to-shut-the-poor-bear-down.html b/content/posts/2004-01-28-time-to-shut-the-poor-bear-down.html new file mode 100644 index 0000000..254344b --- /dev/null +++ b/content/posts/2004-01-28-time-to-shut-the-poor-bear-down.html @@ -0,0 +1,22 @@ +--- +date: "2004-01-28T10:31:46Z" +title: Time to Shut the Poor Bear Down +--- + +<pre> +PRIMESTATS + +Prime now: + 4613261 +Prime count: + 323321 +Prime density: + 7% +Uptime: + 93:17 +</pre> + +<p> +Goodbye <a href='http://members.surfeu.fi/kklaine/primebear.html'>prime bear</a>, I'll miss you :(. +</p> + diff --git a/content/posts/2004-01-29-dns-snafu-prime-number-bear.html b/content/posts/2004-01-29-dns-snafu-prime-number-bear.html new file mode 100644 index 0000000..58a5fb6 --- /dev/null +++ b/content/posts/2004-01-29-dns-snafu-prime-number-bear.html @@ -0,0 +1,27 @@ +--- +date: "2004-01-29T12:17:20Z" +title: DNS SNAFU, Prime Number Bear +--- + +<p> +I had a minor <acronym title='Domain Name Service'>DNS</acronym> hitch with <a href='http://www.paulduncan.org/'><code>paulduncan.org</code></a>; specifically, I accidentally let it expire on Tuesday. It's fixed now, and back in service. I'm just glad noone snatched it up and turned it into a porn site or anything :). +</p> + +<p> +Here's the real final tally for The Bear™: +</p> + +<pre> +PRIMESTATS + +Prime now: + 6015469 +Prime count: + 413858 +Prime density: + 6.9% +Uptime: + 119:02 +</pre> + + diff --git a/content/posts/2004-01-29-mail-woes.html b/content/posts/2004-01-29-mail-woes.html new file mode 100644 index 0000000..990c6cc --- /dev/null +++ b/content/posts/2004-01-29-mail-woes.html @@ -0,0 +1,20 @@ +--- +date: "2004-01-29T17:06:17Z" +title: Mail Woes +--- + +<p> +<img src='/gallery/misc/dont_touch_wires.jpg' + width='478' height='300' /> +</p> + +<p> +<a href='http://www.snowman.net/'>Stephen's (Snow-Man)</a> network is +down until Saturday, which means no email for poor, poor Pablo. I a +mail backup from roughly five days ago, and I have redirected mail +elsewhere as an interim (soon to be permanent) solution, but if you've +sent me mail within the last 24 hours and I haven't responded, I can't +get at the message and probably haven't seen it, so you'll need to +resend it. +</p> + diff --git a/content/posts/2004-01-30-holy-guacamole.html b/content/posts/2004-01-30-holy-guacamole.html new file mode 100644 index 0000000..17edc45 --- /dev/null +++ b/content/posts/2004-01-30-holy-guacamole.html @@ -0,0 +1,9 @@ +--- +date: "2004-01-30T23:20:56Z" +title: Holy Guacamole! +--- + +<p> +I think I <em>finally</em> fixed the threading bug in <a href='http://www.raggle.org/'>Raggle</a>. The results are sitting in <acronym title='Concurrent Versioning System'>CVS</acronym> right now. There's a bunch of little bugs that have cropped up now, but if that is working like I think it is, then we're a lot closer to an 0.3.0 release. +</p> + diff --git a/content/posts/2004-02-02-solving-blogging-spam.html b/content/posts/2004-02-02-solving-blogging-spam.html new file mode 100644 index 0000000..fd86911 --- /dev/null +++ b/content/posts/2004-02-02-solving-blogging-spam.html @@ -0,0 +1,9 @@ +--- +date: "2004-02-02T19:48:52Z" +title: Solving Blogging Spam +--- + +<p> +<a href='http://simon.incutio.com/archive/2004/01/28/solvingCommentSpam'>Here's</a> an interesting article on solving blogging spam. +</p> + diff --git a/content/posts/2004-02-03-eating-pi-e.html b/content/posts/2004-02-03-eating-pi-e.html new file mode 100644 index 0000000..f43c069 --- /dev/null +++ b/content/posts/2004-02-03-eating-pi-e.html @@ -0,0 +1,22 @@ +--- +date: "2004-02-03T16:05:50Z" +title: Eating Pi(e) +--- + +<p> +Saw this while lurking on <acronym title='Internet Relay Chat'>IRC</acronym>: +</p> + +<pre> +<<a href='http://www.snowman.net/'>Snow-Man</a>> 3/1/4 15:9:26 +<<a href='http://www.acmeunix.org/'>moss</a>> that will happen this year +<<a href='http://www.snowman.net/'>Snow-Man</a>> I want to be eating pie at that time. :) +<<a href='http://www.acmeunix.org/'>moss</a>> as will 2/3/4 5:6:7 +<<a href='http://www.tynian.net/'>bma</a>> there's 70 seconds in a minute? sweet +<<a href='http://www.acmeunix.org/'>moss</a>> although it's pretty arbitrary +<<a href='http://www.snowman.net/'>Snow-Man</a>> That's the 7th second. :P +<<a href='http://www.tynian.net/'>bma</a>> damn :) +<<a href='http://www.snowman.net/'>Snow-Man</a>> Today is 2/3/4. :) +</pre> + + diff --git a/content/posts/2004-02-03-fhs-2-3.html b/content/posts/2004-02-03-fhs-2-3.html new file mode 100644 index 0000000..16431b6 --- /dev/null +++ b/content/posts/2004-02-03-fhs-2-3.html @@ -0,0 +1,9 @@ +--- +date: "2004-02-03T14:46:03Z" +title: FHS 2.3 +--- + +<p> +<acronym title='File Hierarchy Standard'>FHS</acronym> 2.3 has been <a href='http://www.samba.org/~cyeoh/'>released</a>. It's got stuff like <code>/media</code> and a clarification of the meaning of <code>/etc</code>. <a href='http://www.pathname.com/fhs/announce-2.3.html'>Here's</a> the announcement. +</p> + diff --git a/content/posts/2004-02-09-not-quite-so-evil.html b/content/posts/2004-02-09-not-quite-so-evil.html new file mode 100644 index 0000000..8fcbed3 --- /dev/null +++ b/content/posts/2004-02-09-not-quite-so-evil.html @@ -0,0 +1,23 @@ +--- +date: "2004-02-09T17:35:59Z" +title: Not Quite So Evil +--- + +<p>So I've been using <a +href='http://msdn.microsoft.com/library/default.asp?url=/library/en-us/security/security/cryptography_reference.asp'><acronym +title='Microsoft Cryptographic API'>MSCAPI</acronym></a> and <a +href='http://msdn.microsoft.com/library/en-us/security/security/capicom_reference.asp'><acronym +title='Cryptographic API Component Object Model'>CAPICOM</acronym></a> +here at work, and I have to say that I'm impressed. I've used +<a href='http://www.openssl.org/'>OpenSSL</a> for crypto stuff in the +past, and both +the <acronym title='Application Programming Interface'>API</acronym> and +documentation for <a href='http://www.openssl.org/'>OpenSSL</a> +suck ass. Specifically, the <acronym title='Application +Programming Interface'>API</acronym> is counter-intuitive, and the +documentation is terse or non-existent. Of course, there are <a +href='http://www.gnu.org/software/gnu-crypto/'>other options</a>, but +they're not as popular (and they lack language bindings, at least <a +href='http://cvs.pablotron.org/?m=gcrypt-ruby'>for the time being</a>). +</p> + diff --git a/content/posts/2004-02-10-10-4-good-buddy.html b/content/posts/2004-02-10-10-4-good-buddy.html new file mode 100644 index 0000000..4af2dcc --- /dev/null +++ b/content/posts/2004-02-10-10-4-good-buddy.html @@ -0,0 +1,9 @@ +--- +date: "2004-02-10T08:57:47Z" +title: 10-4, Good Buddy! +--- + +<p> +The changes I made to the parallel feed grabbing in <a href='http://www.raggle.org/'>Raggle</a> have been running smoothly for several days now, so I think it's just about ready for release. Now I just need to fix the other outstanding bugs... +</p> + diff --git a/content/posts/2004-02-20-about-friggin-time.html b/content/posts/2004-02-20-about-friggin-time.html new file mode 100644 index 0000000..5c48d74 --- /dev/null +++ b/content/posts/2004-02-20-about-friggin-time.html @@ -0,0 +1,9 @@ +--- +date: "2004-02-20T17:53:19Z" +title: ABOUT FRIGGIN TIME +--- + +<p> +I <em>finally</em> released version 0.3.0 of <a href='http://www.raggle.org'>Raggle</a>. <a href='http://www.ruby-talk.org/93300'>Here's</a> the <a href='http://www.ruby-talk.org/'>ruby-talk</a> announcement, and <a href='http://www.raggle.org/?id=24'>here's</a> the announcement on <a href='http://www.raggle.org/'>raggle.org</a>. All this documentation and release note typing is making my fingers hurt. Anyway, give 0.3.0 a shot and let me know what you think :). +</p> + diff --git a/content/posts/2004-02-20-intelligent-comments-on-slashdot.html b/content/posts/2004-02-20-intelligent-comments-on-slashdot.html new file mode 100644 index 0000000..5e1bc78 --- /dev/null +++ b/content/posts/2004-02-20-intelligent-comments-on-slashdot.html @@ -0,0 +1,10 @@ +--- +date: "2004-02-20T19:36:26Z" +title: Intelligent Comments on Slashdot? +--- + +<p> +Who says there's no intelligence left in the <a href='http://www.slashdot.org/'>Slashdot</a> comments? <a href='http://science.slashdot.org/comments.pl?sid=97609&cid=8345114'>Here's</a> one that explains the dispersion of a magnetic field. Neat stuff. +</p> + + diff --git a/content/posts/2004-02-25-bootsplash-in-2-6-3.html b/content/posts/2004-02-25-bootsplash-in-2-6-3.html new file mode 100644 index 0000000..4146e04 --- /dev/null +++ b/content/posts/2004-02-25-bootsplash-in-2-6-3.html @@ -0,0 +1,9 @@ +--- +date: "2004-02-25T17:48:45Z" +title: Bootsplash in 2.6.3 +--- + +<p> +In case anyone else gets burned by this, <a href='http://www.bootsplash.org/'>Bootsplash</a> doe s <em>not</em> work with 2.6.3. It patches in with one rejection (that's easy to fix), but if you compile and reboot the kernel hard locks almost immediately. +</p> + diff --git a/content/posts/2004-02-25-ccache-and-distcc.html b/content/posts/2004-02-25-ccache-and-distcc.html new file mode 100644 index 0000000..95501c7 --- /dev/null +++ b/content/posts/2004-02-25-ccache-and-distcc.html @@ -0,0 +1,8 @@ +--- +date: "2004-02-25T22:34:48Z" +title: ccache and distcc +--- + +<p> +I wrote a quick wrapper program for <a href='http://www.richlowe.net/'>Richard (richlowe)</a>; it passes <a href='http://ccache.samba.org/'>ccache</a> and <a href='http://distcc.samba.org/'>distcc</a> on the command-line, along with whatever arguments you specify. It's written in C to minimize shell invocation overhead. <a href='/download/ccdc.c'>Here's</a> the source. Call it as shorthand for the usual ccache, distcc, cc chain, like so: <code>gmake -j8 CC=ccdc</code>. + diff --git a/content/posts/2004-02-26-2-6-3-so-far-so-good.html b/content/posts/2004-02-26-2-6-3-so-far-so-good.html new file mode 100644 index 0000000..bb98f0f --- /dev/null +++ b/content/posts/2004-02-26-2-6-3-so-far-so-good.html @@ -0,0 +1,9 @@ +--- +date: "2004-02-26T07:16:38Z" +title: '2.6.3: So Far, So Good' +--- + +<p> +My ~12 hour experience with 2.6.3 has been positive so far. Everything seems to be working properly, and things feel a <em>bit</em> more responsive. I do miss my <a href='http://www.bootsplash.org/'>Bootsplash</a> though :(. +</p> + diff --git a/content/posts/2004-02-26-raggle-on-raa-and-freshmeat.html b/content/posts/2004-02-26-raggle-on-raa-and-freshmeat.html new file mode 100644 index 0000000..b993b66 --- /dev/null +++ b/content/posts/2004-02-26-raggle-on-raa-and-freshmeat.html @@ -0,0 +1,9 @@ +--- +date: "2004-02-26T09:04:17Z" +title: Raggle on RAA and Freshmeat +--- + +<p> +I just updated the <a href='http://raa.ruby-lang.org/list.rhtml?name=raggle'><acronym title='Ruby Application Archive'>RAA</acronym> entry </a> for <a href='http://www.raggle.org/'>Raggle</a> , and I created one on <a href='http://www.freshmeat.net/'>Freshmeat</a> as well. +</p> + diff --git a/content/posts/2004-02-27-knoppix-and-sumo.html b/content/posts/2004-02-27-knoppix-and-sumo.html new file mode 100644 index 0000000..6a2bfed --- /dev/null +++ b/content/posts/2004-02-27-knoppix-and-sumo.html @@ -0,0 +1,17 @@ +--- +date: "2004-02-27T19:46:53Z" +title: Knoppix and Sumo +--- + +<p> +So I got this hand-me-down machine from <a href='http://www.kenstillson.com/'>Ken</a>, a 600MHz <abbr title='Pentium III'>P3</abbr>, 1.5G of <acronym title='Random Access Memory'>RAM</acronym>; So far I've used it for <a href='http://distcc.samba.org/'>distcc</a> fun, but otherwise I'm still looking for fun stuff to do with it. Suggestions are welcome! +</p> + +<p> +I burned 4 copies of <a href='http://www.knoppix.org/'>Knoppix</a>; I'm +going to keep one at the house, give one away to a friend at work, and +leave a couple laying around in the lab in the hopes that it catches on. +I'm also going to show it off to my coworkers and manager; I think +they'll be impressed. Viva la revolution!! :) +</p> + diff --git a/content/posts/2004-02-27-knoppix-is-cool.html b/content/posts/2004-02-27-knoppix-is-cool.html new file mode 100644 index 0000000..082c2c3 --- /dev/null +++ b/content/posts/2004-02-27-knoppix-is-cool.html @@ -0,0 +1,9 @@ +--- +date: "2004-02-27T08:58:35Z" +title: Knoppix is Cool! +--- + +<p> +I finally tried out <a href='http://www.knoppix.org/'>Knoppix</a> last night. Wow, it's really cool! It auto-detected everything, then started up <a href='http://www.xfree86.org/'>X</a> and <a href='http://www.kde.org/'>KDE</a>. If you want to show of Linux to your friends, <em>this</em> is what you should be showing them :). +</p> + diff --git a/content/posts/2004-02-27-updated-bootsplash.html b/content/posts/2004-02-27-updated-bootsplash.html new file mode 100644 index 0000000..f521c39 --- /dev/null +++ b/content/posts/2004-02-27-updated-bootsplash.html @@ -0,0 +1,9 @@ +--- +date: "2004-02-27T10:05:53Z" +title: Updated Bootsplash +--- + +<p> +There's an updated <a href='http://www.bootsplash.org/'>Bootsplash</a> patch that works with 2.6.3. I've got it on the laptop now and everything seems to be working properly. +</p> + diff --git a/content/posts/2004-03-01-another-rss-article.html b/content/posts/2004-03-01-another-rss-article.html new file mode 100644 index 0000000..fb87b3b --- /dev/null +++ b/content/posts/2004-03-01-another-rss-article.html @@ -0,0 +1,9 @@ +--- +date: "2004-03-01T09:00:39Z" +title: Another /. RSS Article +--- + +<p> +<a href='http://slashdot.org/article.pl?sid=04/02/29/1549207&mode=nested'>Here's</a> yet another <a href='http://slashdot.org/'>Slashdot</a> article on <acronym title='RDF Site Summary / Really Simple Summary'>RSS</acronym>. I don't generally mention <a href='http://slashdot.org/'>Slashdot</a> articles here, since I figure most people who read <a href='/'>Pablotron</a> also read <a href='http://slashdot.org/'>Slashdot</a>, but I figured since people are coming here for <a href='http://www.raggle.org/'>Raggle</a>-related news, <acronym title='RDF Site Summary / Really Simple Summary'>RSS</acronym>-related news is probably welcome as well. +</p> + diff --git a/content/posts/2004-03-02-how-many-subscriptions-plot.html b/content/posts/2004-03-02-how-many-subscriptions-plot.html new file mode 100644 index 0000000..bb11445 --- /dev/null +++ b/content/posts/2004-03-02-how-many-subscriptions-plot.html @@ -0,0 +1,9 @@ +--- +date: "2004-03-02T21:53:26Z" +title: '"How Many Subscriptions" Plot' +--- + +<p> +Continuing our all-<acronym title='RDF Site Summary / Really Simple Summary'>RSS</acronym> news day, <a href='http://www.grumet.net/syo/howManySubscriptions'>here's</a> a plot of the current results from <a href='http://feeds.scripting.com/'>"Share your <acronym title='Outline Processing Markup Language'>OPML</acronym>"</a>. +</p> + diff --git a/content/posts/2004-03-02-huge-list-of-rss-feed-directories.html b/content/posts/2004-03-02-huge-list-of-rss-feed-directories.html new file mode 100644 index 0000000..8293ec7 --- /dev/null +++ b/content/posts/2004-03-02-huge-list-of-rss-feed-directories.html @@ -0,0 +1,9 @@ +--- +date: "2004-03-02T17:11:17Z" +title: Huge List of RSS Feed Directories +--- + +<p> +Title says it all. <a href='http://www.masternewmedia.org/2004/02/05/rsstop55_best_blog_directory.htm'>Here's</a> a gigantic list of <acronym title='RDF Site Summary / Really Simple Summary'>RSS</acronym> feed directories. +</p> + diff --git a/content/posts/2004-03-02-newsmax-rss-article.html b/content/posts/2004-03-02-newsmax-rss-article.html new file mode 100644 index 0000000..894954c --- /dev/null +++ b/content/posts/2004-03-02-newsmax-rss-article.html @@ -0,0 +1,39 @@ +--- +date: "2004-03-02T16:17:56Z" +title: NewsMax RSS Article +--- + +<p> +Looking for a good way to explain or understand <acronym title='RDF Site Summary / Really Simple Summary'>RSS</acronym>? <a href='http://www.newsmax.com/archives/articles/2004/2/29/163222.shtml'>This NewsMax article</a> is one of the best real-world summaries I've seen lately. From the article: +</p> + +<blockquote cite='http://www.newsmax.com/archives/articles/2004/2/29/163222.shtml'> +<p> + "For an average Internet user who regularly visits about 50 Web sites, rather than have to go visit those 50 sites wouldn't it be cool if those sites could somehow visit you? And not only that, but if they could also tell you when they've changed?" said Greg Reinacker, head of NewsGator, which sells an add-on for Microsoft's Outlook e-mail client that offers one leading way to read feeds. +</p> + +<p>...</p> + +<p> +Anyone who builds a Web site can incorporate Web feeds. If it lives on the Web, it can be brought to your desktop - or to your wireless device, for that matter. +</p> + +<p> +Human Rights Watch keeps activists current with feeds sorted by region. The U.S. Geological Survey's feeds let seismologists immediately know where the world is shaking. +</p> + +<p> +The U.S. Product Safety Commission just began providing recall notices via RSS. General Motors offers feeds on topics including safety and automotive tech. And a growing number of companies use feeds to disseminate info internally. +</p> + +<p>...</p> + +<p> +Yahoo and Google recently embraced Web feeds, and Microsoft is expected to incorporate tools for managing them in its next-generation operating system, code-named Longhorn. +</p> +</blockquote> + +<p> +The article briefly touches on some of the various <acronym title='RDF Site Summary / Really Simple Summary'>RSS</acronym> turf wars (Winer vs. mark, etc). Overall, a good summary of where <acronym title='RDF Site Summary / Really Simple Summary'>RSS</acronym> is at, how it's being used now, and where it's going. +</p> + diff --git a/content/posts/2004-03-03-sodipodi.html b/content/posts/2004-03-03-sodipodi.html new file mode 100644 index 0000000..dd44e2f --- /dev/null +++ b/content/posts/2004-03-03-sodipodi.html @@ -0,0 +1,9 @@ +--- +date: "2004-03-03T07:57:31Z" +title: Sodipodi +--- + +<p> +I tried out <a href='http://www.sodipodi.com/'>Sodipodi</a> this morning; it seems to be a pretty nice <a href='http://www.w3c.org/TR/SVG/'><acronym title='Scalable Vector Graphics'>SVG</acronym></a> editor. Of course, that doesn't mean anything if <a href='http://www.w3c.org/TR/SVG/'><acronym title='Scalable Vector Graphics'>SVG</acronym></a> doesn't catch on, but hey. +</p> + diff --git a/content/posts/2004-03-07-all-commercial-media-players-and-codecs-suck.html b/content/posts/2004-03-07-all-commercial-media-players-and-codecs-suck.html new file mode 100644 index 0000000..3069779 --- /dev/null +++ b/content/posts/2004-03-07-all-commercial-media-players-and-codecs-suck.html @@ -0,0 +1,15 @@ +--- +date: "2004-03-07T12:55:09Z" +title: All Commercial Media Players and Codecs Suck +--- + +<p> +Take your pick: +</p> + +<ul> +<li><a href='http://trikuare.cx/mt/archives/000436.php'>iTunes Sucks</a></li> +<li><a href='http://www.real.com/msaudio/'>Windows Media Sucks</a></li> +<li><a href='http://jogin.com/weblog/archives/000504/'>Real Player Sucks</a></li> +</ul> + diff --git a/content/posts/2004-03-11-more-rss-news.html b/content/posts/2004-03-11-more-rss-news.html new file mode 100644 index 0000000..b5b4b30 --- /dev/null +++ b/content/posts/2004-03-11-more-rss-news.html @@ -0,0 +1,9 @@ +--- +date: "2004-03-11T11:05:35Z" +title: More RSS News +--- + +<p> +Yet another <acronym title='RDF Site Summary / Really Simple Summary'>RSS</acronym> article. <a href='http://www.pcmag.com/article2/0,4149,1544705,00.asp?kc=PCRSS03079TX1K0000585'>This one</a> is from <a href='http://www.pcmag.com/'>PC Magazine</a> (link from <a href='http://rss.lockergnome.com/'>LockerGnome</a>). +</p> + diff --git a/content/posts/2004-03-20-man-down-man-down.html b/content/posts/2004-03-20-man-down-man-down.html new file mode 100644 index 0000000..a0e6f17 --- /dev/null +++ b/content/posts/2004-03-20-man-down-man-down.html @@ -0,0 +1,9 @@ +--- +date: "2004-03-20T18:56:47Z" +title: Man Down, Man Down! +--- + +<p> +The hard drive in <code>picard</code> is dying! Fortunately I've been living upstairs on <code>halcyon</code> since the weather got cold, so it's really more of an inconvenience (and a blow to my <a href='http://distcc.samba.org/'>distcc</a> farm) than a serious catastrophe. I've shut it down for now; I'll power it back up again when I get a new drive so I can do a mass transfer. +</p> + diff --git a/content/posts/2004-03-21-blogs-rss-and-xml-rpc-oh-my.html b/content/posts/2004-03-21-blogs-rss-and-xml-rpc-oh-my.html new file mode 100644 index 0000000..e021807 --- /dev/null +++ b/content/posts/2004-03-21-blogs-rss-and-xml-rpc-oh-my.html @@ -0,0 +1,22 @@ +--- +date: "2004-03-21T20:56:30Z" +title: Blogs, RSS, and XML-RPC, Oh My! +--- + +<p> +I've been looking for a couple of other <a href='http://www.xmlrpc.com/'><acronym title='eXtended Markup Language'>XML</acronym>-<acronym title='Remote Procedure Call'>RPC</acronym></a>- or <acronym title='Simple Object Access Protocol'>SOAP</acronym>-aware <acronym title='RDF Site Summary / Really Simple Summary'>RSS</acronym> directories to query from the new feed search in <a href='http://www.raggle.org/'>Raggle</a>. There seems to be a plethora of ping <acronym title='Application Programmer Interface'>API</acronym>s exposed, but virtually no query interfaces. At the moment, the best one by far is the <a href='http://www.syndic8.com/'>Syndic8</a> <acronym title='Application Programmer Interface'>API</acronym>, followed closely by <a href='http://www.oreillynet.com/meerkat/'>Meerkat</a> (both are <a href='http://www.xmlrpc.com/'><acronym title='eXtended Markup Language'>XML</acronym>-<acronym title='Remote Procedure Call'>RPC</acronym></a>. Ah well, <em>c'est la vie</em>. Speaking of the new find feeds feature in <a href='http://www.raggle.org/'>Raggle</a>, here's what it looks like: +</p> + +<p> +<img src='/screenshots/raggle-find_feeds.png' width='492' height='597' title='find feeds' alt='find feeds' /> +</p> + +<p> +It's even less functional than the Categories code at the moment, but the basic framework is there. Anyway, here's a couple of interesting links: +</p> + +<ul> +<li><a href='http://www.aripaparo.com/archive/000632.html'>Big List of Blog Search Engines</a></li> +<li><a href='http://www.sifry.com/alerts/archives/000302.html'>New [sic] Technocrati Pinger is active</a> (contains a list and rough description of the blog ping process)</li> +</ul> + diff --git a/content/posts/2004-03-21-categories.html b/content/posts/2004-03-21-categories.html new file mode 100644 index 0000000..b3d62e7 --- /dev/null +++ b/content/posts/2004-03-21-categories.html @@ -0,0 +1,17 @@ +--- +date: "2004-03-21T10:00:21Z" +title: Categories +--- + +<p> +Last night I added categories to the console interface of the <acronym +title='Concurrent Versioning System'>CVS</acronym> version of <a +href='http://www.raggle.org/'>Raggle</a>. They're still a bit buggy, +but here's what the dialog looks like: +</p> + +<p> +<img src='/screenshots/raggle-categories.png' + width='492' height='519' title='raggle categories' alt='raggle categories' /> + </p> + diff --git a/content/posts/2004-03-21-syndic8-ruby-0-1-0.html b/content/posts/2004-03-21-syndic8-ruby-0-1-0.html new file mode 100644 index 0000000..804144b --- /dev/null +++ b/content/posts/2004-03-21-syndic8-ruby-0-1-0.html @@ -0,0 +1,47 @@ +--- +date: "2004-03-21T09:33:44Z" +title: Syndic8-Ruby 0.1.0 +--- + +<p> +Here's a set of quick <a href='http://www.ruby-lang.org/'>Ruby</a> +bindings for <a href='http://www.syndic8.com/'>Syndic8.com</a> (via +<acronym title='eXtended Markup Language'>XML</acronym>-<acronym +title='Remote Procedure Call'>RPC</acronym>). Using these bindings is dirt simple; here's some sample code: +</p> + +<blockquote> +<pre> +require 'syndic8' +search_str = 'cooking' + +begin + s = Syndic8.new + s.find(search_str).each { |feed| p feed } +rescue + puts "Error: #$!" +end +</pre> +</blockquote> + +<p> +You can also run Syndic8-Ruby from the command-line. Here's an example: +</p> + +<blockquote> +<code> +$ ruby ./syndic8.rb bread | head -4<br /> +"Andy's Spot (BlackCat)","http://blackcat.editthispage.com/xml/rss.xml"<br /> +"ANN.lu","http://www.ann.lu/ANN.rdf"<br /> +"bread, coffee, chocolate, yoga","http://home.earthlink.net/~frelkins/blogger_rss.xml"<br /> +"Breadcrumbs","http://ovocyte.tripod.com/crumbs/crumbs_rss.xml"<br /> +"Bring your best, I can take it","http://www.livejournal.com/users/wonderbreadjn/data/rss"<br /> +</code> +</blockquote> + +<p> +Syndic8-Ruby: <a +href='/download/syndic8-ruby-0.1.0.tar.gz'>tarball</a>, <a +href='/download/syndic8-ruby-0.1.0.tar.gz.asc'>signature</a>. +</p> + diff --git a/content/posts/2004-03-22-msdn-blogs.html b/content/posts/2004-03-22-msdn-blogs.html new file mode 100644 index 0000000..409bab9 --- /dev/null +++ b/content/posts/2004-03-22-msdn-blogs.html @@ -0,0 +1,13 @@ +--- +date: "2004-03-22T13:35:40Z" +title: MSDN Blogs +--- + +<p> +I just stumbled across <a +href='http://msdn.microsoft.com/vbasic/community/blogs/'>this list</a> +of <acronym title='Microsoft Development Network'>MSDN</acronym>-related +blogs </a> on <a href='http://msdn.microsoft.com/'><acronym +title='Microsoft Development Network'>MSDN</acronym></a>. +</p> + diff --git a/content/posts/2004-03-22-xmms-ruby-and-m3u.html b/content/posts/2004-03-22-xmms-ruby-and-m3u.html new file mode 100644 index 0000000..69f5aac --- /dev/null +++ b/content/posts/2004-03-22-xmms-ruby-and-m3u.html @@ -0,0 +1,59 @@ +--- +date: "2004-03-22T12:40:09Z" +title: XMMS-Ruby and M3U +--- + +<p> +I wrote this little snippet of code in response to an email, and I thought it might be useful for other people. +</p> + +<blockquote> +<p> +<i>Basically, I'm trying to write some code that will connect to a running +XMMS session, grab the playlist and write out a .pls or a .m3u file. +Unfortunately, while XMMS can do this in a single operation, their API +doesn't seem to have a simple hook to do this. </i> +</p> + +<p> +Unfortunately, there's nothing in the remote API that lets you do that +in a single call. But it should be pretty easy to write; just iterate +over the list and print out the necessary lines for each entry. +Something like this: +</p> + +<pre> + module Xmms + class Remote + # + # get playlist contents as m3u-encoded string + # + def to_m3u + "#EXTM3U\n" + playlist.map { |title, file, time| + "#EXTINF:#{time / 1000},#{title}\n#{file}" + }.join("\n") + end + end + end +</pre> + +<p> +Then, to save a playlist, you can just do the following: + </p> + +<pre> + xmms = Xmms::Remote.new + File::open('path/to/output.m3u', 'w') { |out| out.puts xmms.to_m3u } + </pre> + +<p> +Hope this helps... +</p> +</blockquote> + +<p> +<b>Update:</b> I tossed this code in a downloadable file, and I added an +<code>Xmms::Remote#save_m3u</code> method for free. <a +href='/download/xmms-m3u.rb'>Download xmms-m3u.rb</a>. +</p> + diff --git a/content/posts/2004-03-23-c64-beats-amiga.html b/content/posts/2004-03-23-c64-beats-amiga.html new file mode 100644 index 0000000..99be99f --- /dev/null +++ b/content/posts/2004-03-23-c64-beats-amiga.html @@ -0,0 +1,32 @@ +--- +date: "2004-03-23T15:58:41Z" +title: C64 Beats Amiga +--- + +<p> +Found <a href='http://slashdot.org/comments.pl?sid=101445&cid=8646594'>this comment</a> on <a href='http://www.slashdot.org/'>Slashdot</a>: +</p> + +<blockquote cite='http://slashdot.org/comments.pl?sid=101445&cid=8646594'> +<p> +<i> + A text system cannot by definition display graphics. +</i></p> + +<p> +(Just to be pedantic... Actually, not really trying to 'correct' anything you said; I just wanna show off what an old geezer I am.) +</p> + +<p> +Tell that to VIC20 programmers. Unlike the C64, the VIC20 didn't have a graphics mode. But you could display a 16x16 grid showing the whole character set, and then tell the video hardware to look up the character definitions somewhere in RAM instead of using the ROM. This effectively gave you a 128 pixel by 128 pixel bitmap display, on a "text-only" system. +</p> + +<p> +... and we <em>liked it</em>! (Well, ok, not really.) +</p> + +<p> +Oh, and speaking of the fact that text mode is faster than graphics, there was a "joke" later in the mid 80s, having to do with that. If you wrote a BASIC program on the C64 that, say, computed and printed the first 100 prime numbers, and then did the same thing on the Amiga, the C64 was faster. People would say, "Huh? How can that be? The Amiga's blazing 7 MHz 16-bit 68000 runs rings around the 6510!" But then you'd do it, and the C64 would really win. It had nothing to do with the how fast the processors could compute primes, though. It was just that the C64 could copy 2k of RAM (the amount of work to "scroll" the text display) faster than the Amiga blitter could copy several hundred k to "scroll" a graphic display. (The Amiga didn't have a text mode. ;-) +</p> +</blockquote> + diff --git a/content/posts/2004-03-23-pickaxe-ii-feedback.html b/content/posts/2004-03-23-pickaxe-ii-feedback.html new file mode 100644 index 0000000..1df7241 --- /dev/null +++ b/content/posts/2004-03-23-pickaxe-ii-feedback.html @@ -0,0 +1,57 @@ +--- +date: "2004-03-23T14:11:00Z" +title: PickAxe II Feedback +--- + +<p> +<a href='http://www.pragdave.com/'>Dave Thomas (pragdave)</a> is +soliciting feedback for a second edition of <a +href='http://www.rubycentral.com/book/'>Programming Ruby</a> (<abbr +title='also known as'>aka</abbr> the "PickAxe"). Here's what he's +saying on the <a href='http://www.ruby-talk.org/'>ruby-talk</a> mailing +list: + </p> + +<blockquote cite='http://www.ruby-talk.org/95560'> +<p> +So, this is what I'm thinking. Rather than document all the methods in +all the lib/ and ext/ classes and modules, I'd like to have a one-page +summary for each. Each page would contain a synopsis of the function of +the library, along with a small number of samples of use. The idea is +that you can read through this to find libraries that would be useful, +and then consult the RDoc for details. Think of it as a kind of +exhaustive library cookbook. I've posted sample pages at + +<p> + <a href='http://www.pragmaticprogrammer.com/extracts/sl.pdf '>http://www.pragmaticprogrammer.com/extracts/sl.pdf </a> +</p> + +<p> +(These are rough, and contain typesetting problems and other errors---I +just wanted to give folks a feel for what I was talking about). +</p> + +<p> +So, here's the question: is this the way to go? Are folks happy seeing +this kind of synoptic information in the book, and then referring to +the online or local documentation for the details? (Don't worry about +the built-in stuff: I'm keeping the existing format for all of that, so +you'll still have the complete method listing for String, Array, and +friends). +</p> +</blockquote> + +<p> +The full message (and thread) is available <a +href='http://www.ruby-talk.org/95560'>here</a>. +</p> + +<p> +<b>Update:</b> Apparently the <a +href='http://www.ruby-talk.org/'>ruby-talk</a> archive code is a bit +behind; the link is correct, but the message isn't archived yet. At the +moment, there's nothing on the <a +href='http://www.ruby-talk.org/'>ruby-talk</a> archive page dated past +March 19th. +</p> + diff --git a/content/posts/2004-03-27-question.html b/content/posts/2004-03-27-question.html new file mode 100644 index 0000000..39035fb --- /dev/null +++ b/content/posts/2004-03-27-question.html @@ -0,0 +1,10 @@ +--- +date: "2004-03-27T15:39:17Z" +title: Question +--- + +<p> +Why does <a href='http://http/'><code>http://http/</code></a> go to <a href='http://www.microsoft.com/'>http://www.microsoft.com/</a>? +Discuss. +</p> + diff --git a/content/posts/2004-04-07-party-like-it-s-1992.html b/content/posts/2004-04-07-party-like-it-s-1992.html new file mode 100644 index 0000000..427202b --- /dev/null +++ b/content/posts/2004-04-07-party-like-it-s-1992.html @@ -0,0 +1,87 @@ +--- +date: "2004-04-07T21:41:10Z" +title: Party Like It's 1992 +--- + +<p> +I've been using <a +href='http://msdn.microsoft.com/library/default.asp?url=/library/en-us/security/security/cryptography_objects.asp'><acronym +title='Cryptographic API Component Object Model'>CAPICOM</acronym></a> +at work. Since most <acronym +title='Component Object Model'>COM</acronym> objects are supposed to +work with <a href='http://msdn.microsoft.com/vbasic/'><acronym +title='Visual Basic'>VB</acronym></a>, the string values returned by +<acronym title='Component Object Model'>COM</acronym> functions (in my +case <a +href='http://msdn.microsoft.com/library/default.asp?url=/library/en-us/security/security/certificate_export.asp'>CAPICOM::Certificate.Export()</a>) +have some bizarre and baroque semantics when called from C++. One quirk +I found particularly amusing was the memory allocation behind <a +href='http://msdn.microsoft.com/library/default.asp?url=/library/en-us/automat/htm/chap6_7isy.asp'><acronym +title='Binary STRing'>BSTR</acronym></a>s; here's what <a +href='http://blogs.gotdotnet.com/ericli/permalink.aspx/853ae05f-7610-4531-ab1b-070695e61168'>"Eric's +Complete Guide to BSTR Semantics"</a> has to say about what's +happening under the hood for <a +href='http://msdn.microsoft.com/library/default.asp?url=/library/en-us/automat/htm/chap6_7isy.asp'><acronym +title='Binary STRing'>BSTR</acronym></a>s: +</p> + +<blockquote cite='http://blogs.gotdotnet.com/ericli/permalink.aspx/853ae05f-7610-4531-ab1b-070695e61168'> +<p> +COM code uses the BSTR to store a Unicode string, short for "Basic +String". (So called because this method of storing strings was developed +for OLE Automation, which was at the time motivated by the development + of the Visual Basic language engine.) +</p> + +<p>...</p> + +<p> +<ol> +<li>If you write a function which takes an argument of type BSTR then +you are required to accept NULL as a valid BSTR and treat it the same as +a pointer to a zero-length BSTR. COM uses this convention, as does +Visual Basic and VBScript, so if you want to play well with others you +have to obey this convention. If a string variable in VB happens to be +an empty string then VB might pass it as NULL or as a zero-length buffer +-- it is entirely dependent on the internal workings of the VB +program.</li> +<li>BSTRs are always allocated and freed with SysAllocString, SysAllocStringLen, SysFreeString and so on. The underlying memory is cached by the operating system and it is a serious, heap-corrupting error to call "free" or "delete" on a BSTR. Similarly it is also an error to allocate a buffer with "malloc" or "new" and cast it to a BSTR. <u>Internal operating system code makes assumptions about the layout in memory of a BSTR</u> which you should not attempt to simulate.</li> +<li>The number of characters in a BSTR is fixed. A ten-byte BSTR contains five Unicode characters, end of story.</li> +<li> +<p>A BSTR always points to the first valid character in the buffer. +This is not legal:</p> + +<pre> +<code> +BSTR bstrName = SysAllocString(L"John Doe"); +BSTR bstrLast = &bstrName[5]; // ERROR +</code> +</pre> + +<p> +bstrLast is not a legal BSTR +</p> +</li> +</ol> +</p> + +<p>....</p> + +<p> +When you call SysAllocString(L"ABCDE") the operating system actually allocates sixteen bytes. <u>The first four bytes are a 32 bit integer representing the number of valid bytes in the string</u> -- initialized to ten in this case. The next ten bytes belong to the caller and are filled in with the data passed in to the allocator. <u>The final two bytes are filled in with zeros</u>. You are then given a pointer to the data, not to the header. +</p> +</blockquote> + +<p>(Emphasis is mine)</p> + +<p> +Strings with a length prefix <em>and</em> a double-NULL suffix. Now +that's what I call <em>efficient</em> use of memory! Seriously though, +this is like some sort of programming time warp; it reminds me of both +the Pascal-induced single-byte length prefix strings the +<a href='http://developer.apple.com/macos/'>Mac Toolbox</a> +calls used and the associated (and equally wacky) string-conversion +functions. + Ah, history. +</p> + diff --git a/content/posts/2004-04-07-vcs-shootout.html b/content/posts/2004-04-07-vcs-shootout.html new file mode 100644 index 0000000..5603ce9 --- /dev/null +++ b/content/posts/2004-04-07-vcs-shootout.html @@ -0,0 +1,9 @@ +--- +date: "2004-04-07T10:38:04Z" +title: VCS Shootout +--- + +<p> +There's a thread about <acronym title='Version Control System'>VCS</acronym>s on the <a href='http://www.ruby-talk.org/'>ruby-talk</a> mailing list. The thread links to <a href='http://common-lisp.net/pipermail/bese-devel/2004-March/000073.html'>this email message</a> about <a href='http://www.gnu.org/software/gnu-arch/'>arch</a>, and also <a href='http://better-scm.berlios.de/comparison/comparison.html'>this <acronym title='Version Control System'>VCS</acronym> comparison chart</a>. Interesting stuff. The comparison chart makes <a href='http://www.venge.net/monotone/'>Monotone</a> look compelling (one caveat: it uses <a href='http://www.boost.org/'>Boost</a>). +</p> + diff --git a/content/posts/2004-04-17-bluecloth-markdown.html b/content/posts/2004-04-17-bluecloth-markdown.html new file mode 100644 index 0000000..a050305 --- /dev/null +++ b/content/posts/2004-04-17-bluecloth-markdown.html @@ -0,0 +1,96 @@ +--- +date: "2004-04-17T16:51:35Z" +title: BlueCloth / Markdown +--- + +<p> +I just found out about <a href='http://bluecloth.rubyforge.org/'>BlueCloth</a>, which is a <a href='http://www.ruby-lang.org/'>Ruby</a> implementation of <a href='http://daringfireball.net/projects/markdown/'>Markdown</a>. <a href='http://daringfireball.net/projects/markdown/'>Markdown</a> allows you to transform specially formatted plain-text documents into <acronym title='HyperText Markup Language'>HTML</acronym>. What's cool is it's a nice, human-readable format. Here's some sample text from <a href='http://bluecloth.rubyforge.org/'>BlueCloth page</a>: +</p> + +<blockquote cite='http://daringfireball.net/projects/markdown/'> +<pre> +The Ant-Sugar Tales +=================== + +By Candice Yellowflower + +The _Ant-Sugar Tales_ is a collection of short stories told from the +perspective of a fine young lady from [Venice][1], who has some run-ins +with a few [inquisitive insects][2]. Each tale presents a moral quandry, +which the ants are quick to solve with their antly wisdom and +know-how. Some of the moral lessons presented are: + +* Laundry: How not to get caught in soiled knickers. +* Used Ticket Stubs and Their Impact on the Universe +* I'm Keeping a Birdhouse in my Attic + + +Use of Metaphor +--------------- +The author's splended use of metaphor can be attributed to her growing +up in a art-supply store. Her characters are richly outlined, but her +unusual descriptions can sometimes be a bit jarring in places, such as +her description of the old caretaker that lives inside a hollow tree in +her yard: + +> His skin was smooth like Magnani Pescia 100% acid-free cold pressed +> 22x30" Soft White Paper, with fine hair like the bristles of a Habico +> Lasur Superb Oil Glazing Brush Size 10. + + + [1]: http://www.azureva.com/gb/italie/mags/grand-canal.php3 + (Venice: The Grand Canal) + [2]: http://www.fortunecity.com/emachines/e11/86/tourist4d.html +</pre> +</blockquote> + +<p> +And that gets transformed into the following: +</p> + +<style type='text/css'> +<!-- +blockquote.samplePage { + background-color: #eeeeee; + padding: 5px; + spacing-left: 40px; +} +// --> +</style> + +<blockquote class='samplePage' cite='http://bluecloth.rubyforge.org/'> +<h1>The Ant-Sugar Tales</h1> + +<p>By Candice Yellowflower </p> + +<p>The <em>Ant-Sugar Tales</em> is a collection of short stories told from the +perspective of a fine young lady from <a href="http://www.azureva.com/gb/italie/mags/grand-canal.php3" title="Venice: The Grand Canal">Venice</a>, who has some run-ins +with a few <a href="http://www.fortunecity.com/emachines/e11/86/tourist4d.html">inquisitive insects</a>. Each tale presents a moral quandry, +which the ants are quick to solve with their antly wisdom and +know-how. Some of the moral lessons presented are:</p> + +<ul> +<li>Laundry: How not to get caught in soiled knickers.</li> +<li>Used Ticket Stubs and Their Impact on the Universe</li> +<li>I'm Keeping a Birdhouse in my Attic</li> +</ul> + +<h2>Use of Metaphor</h2> + +<p>The author's splended use of metaphor can be attributed to her growing +up in a art-supply store. Her characters are richly outlined, but her +unusual descriptions can sometimes be a bit jarring in places, such as +her description of the old caretaker that lives inside a hollow tree in +her yard:</p> + +<blockquote> + <p>His skin was smooth like Magnani Pescia 100% acid-free cold pressed + 22x30" Soft White Paper, with fine hair like the bristles of a Habico + Lasur Superb Oil Glazing Brush Size 10.</p> +</blockquote> +</blockquote> + +<p> +Cool stuff. +</p> + diff --git a/content/posts/2004-04-18-raa-install-irony.html b/content/posts/2004-04-18-raa-install-irony.html new file mode 100644 index 0000000..3771700 --- /dev/null +++ b/content/posts/2004-04-18-raa-install-irony.html @@ -0,0 +1,9 @@ +--- +date: "2004-04-18T11:20:05Z" +title: RAA Install Irony +--- + +<p> +Does anyone see the irony of <a href='http://raa.ruby-lang.org/list.rhtml?name=raainstall'>RAA Install</a> having an <a href='http://osdn.dl.sourceforge.net/sourceforge/narf-lib/raa-install-0.1.2.tgz'>invalid download <acronym title='Uniform Resource Locator'>URL</acronym></a>? +</p> + diff --git a/content/posts/2004-04-19-ack.html b/content/posts/2004-04-19-ack.html new file mode 100644 index 0000000..75c5518 --- /dev/null +++ b/content/posts/2004-04-19-ack.html @@ -0,0 +1,9 @@ +--- +date: "2004-04-19T12:37:56Z" +title: Ack! +--- + +<p> +<a href='http://www.internetnews.com/ec-news/article.php/3334651'>Bad Google</a>. +</p> + diff --git a/content/posts/2004-05-12-winamp-com.html b/content/posts/2004-05-12-winamp-com.html new file mode 100644 index 0000000..367d1f0 --- /dev/null +++ b/content/posts/2004-05-12-winamp-com.html @@ -0,0 +1,10 @@ +--- +date: "2004-05-12T22:34:58Z" +title: winamp.com +--- + +<pre> +<phantomdata> Haha. <a href='http://winamp.com/'>winamp.com</a>'s title is quite funny. +<phantomdata> WINAMP.COM | What the hell is NtUserCallHwndLock? +</pre> + diff --git a/content/posts/2004-05-13-gta-san-andreas-screenshots.html b/content/posts/2004-05-13-gta-san-andreas-screenshots.html new file mode 100644 index 0000000..33cc8fb --- /dev/null +++ b/content/posts/2004-05-13-gta-san-andreas-screenshots.html @@ -0,0 +1,9 @@ +--- +date: "2004-05-13T02:00:34Z" +title: 'GTA: San Andreas Screenshots' +--- + +<p> +Title says it all. <a href='http://www.gamespot.com/ps2/adventure/gta4/screenindex_6097570.html'>Link</a> (from <a href='http://www.totalfark.com/'>TF</a>). +</p> + diff --git a/content/posts/2004-05-13-torrentula.html b/content/posts/2004-05-13-torrentula.html new file mode 100644 index 0000000..cbe1e75 --- /dev/null +++ b/content/posts/2004-05-13-torrentula.html @@ -0,0 +1,17 @@ +--- +date: "2004-05-13T02:53:04Z" +title: Torrentula +--- + +<p> +Here's a screenshot of a little program I'm working on called Torrentula: +</p> + +<p> +<img src='/gallery/misc/torrentula-pre.png' width='502' height='362' title='torrentula' alt='torrentula' hspace='0' vspace='0' border='0' /> +</p> + +<p> +It's just a simple wrapper for <code>btdownloadheadless</code>. I should have it released in a week or so. +</p> + diff --git a/content/posts/2004-05-20-please-check-all-that-apply.html b/content/posts/2004-05-20-please-check-all-that-apply.html new file mode 100644 index 0000000..1dda11d --- /dev/null +++ b/content/posts/2004-05-20-please-check-all-that-apply.html @@ -0,0 +1,91 @@ +--- +date: "2004-05-20T20:59:24Z" +title: Please Check All That Apply +--- + +<p> +<a href='http://yro.slashdot.org/comments.pl?sid=108269&cid=9205570'>Here's</a> a funny comment from <a href='http://www.slashdot.org/'>Slashdot</a>: +</p> + +<blockquote cite='http://yro.slashdot.org/comments.pl?sid=108269&cid=9205570'> +<pre> +Your post advocates a + +( ) technical (x) legislative ( ) market-based ( ) vigilante + +approach to fighting spam. Your idea will not work. Here is why it won't +work. (One or more of the following may apply to your particular idea, +and it may have other flaws which used to vary from state to state +before a bad federal law was passed.) + +( ) Spammers can easily use it to harvest email addresses +( ) Mailing lists and other legitimate email uses would be affected +(x) No one will be able to find the guy or collect the money +(x) It is defenseless against brute force attacks +( ) It will stop spam for two weeks and then we'll be stuck with it +( ) Users of email will not put up with it +( ) Microsoft will not put up with it +( ) The police will not put up with it +(x) Requires too much cooperation from spammers +( ) Requires immediate total cooperation from everybody at once +( ) Many email users cannot afford to lose business or alienate + potential employers +( ) Spammers don't care about invalid addresses in their lists +( ) Anyone could anonymously destroy anyone else's career or + business + +Specifically, your plan fails to account for + +( ) Laws expressly prohibiting it +(x) Lack of centrally controlling authority for email +(x) Open relays in foreign countries +( ) Ease of searching tiny alphanumeric address space of all email + addresses +(x) Asshats +( ) Jurisdictional problems +( ) Unpopularity of weird new taxes +( ) Public reluctance to accept weird new forms of money +( ) Huge existing software investment in SMTP +( ) Susceptibility of protocols other than SMTP to attack +( ) Willingness of users to install OS patches received by email +(x) Armies of worm riddled broadband-connected Windows boxes +(x) Eternal arms race involved in all filtering approaches +( ) Extreme profitability of spam +( ) Joe jobs and/or identity theft +(x) Technically illiterate politicians +(x) Extreme stupidity on the part of people who do business with + spammers +(x) Dishonesty on the part of spammers themselves +( ) Bandwidth costs that are unaffected by client filtering +(x) Outlook + +and the following philosophical objections may also apply: + +(x) Ideas similar to yours are easy to come up with, yet none have + ever been shown practical +( ) Any scheme based on opt-out is unacceptable +( ) SMTP headers should not be the subject of legislation +( ) Blacklists suck +( ) Whitelists suck +(x) We should be able to talk about Viagra without being censored +( ) Countermeasures should not involve wire fraud or credit card + fraud +( ) Countermeasures should not involve sabotage of public networks +( ) Countermeasures must work if phased in gradually +( ) Sending email should be free +( ) Why should we have to trust you and your servers? +( ) Incompatiblity with open source or open source licenses +(x) Feel-good measures do nothing to solve the problem +( ) Temporary/one-time email addresses are cumbersome +( ) I don't want the government reading my email +(x) Killing them that way is not slow and painful enough + +Furthermore, this is what I think about you: + +( ) Sorry dude, but I don't think it would work. +( ) This is a stupid idea, and you're a stupid person for suggesting it. +(x) Nice try, assh0le! I'm going to find out where you live and burn + your house down! +</pre> +</blockquote> + diff --git a/content/posts/2004-06-21-it-s-official.html b/content/posts/2004-06-21-it-s-official.html new file mode 100644 index 0000000..2ce4d89 --- /dev/null +++ b/content/posts/2004-06-21-it-s-official.html @@ -0,0 +1,15 @@ +--- +date: "2004-06-21T18:00:17Z" +title: It's Official! +--- + +<p> +<a href='http://www.gmail.com/'>GMail</a> is officially a <a href='http://maxwell.lucifer.com/virus/alt.memetics/what.is.html'>meme</a>. I see conversations about it in three different <acronym title='Internet Relay Chat'>IRC</acronym> windows, it's all over the place on <a href='http://www.totalfark.com/'>TotalFark</a> and the <a href='http://forums.somethingawful.com/'>Something Awful Forums</a>, and I've had <em>two</em> conversations about it within the last 48 hours. Congratulations to the <a href='http://www.google.com/'>Google</a> marketing department. +</p> + +<p> +<b>Update:</b> Just stumbled across <a +href='http://george.hotelling.net/90percent/geekery/hatin_on_gmail.php'>this +page</a>. The poor bastard got a Gmail invite from his mom. +</p> + diff --git a/content/posts/2004-07-09-firefox-0-9-1.html b/content/posts/2004-07-09-firefox-0-9-1.html new file mode 100644 index 0000000..e5d2254 --- /dev/null +++ b/content/posts/2004-07-09-firefox-0-9-1.html @@ -0,0 +1,24 @@ +--- +date: "2004-07-09T13:46:10Z" +title: Firefox 0.9.1 +--- + +<p> +I upgraded to <a href='http://www.mozilla.org/products/firefox/'>Mozilla +Firefox</a> 0.9.1 (Windows users should skip to Firefox 0.9.2; there's a +malicious <acronym title='Uniform Resource Locator'>URL</acronym> bug in +0.9.1). I like the new extension and theme stuff. Since, I spend +a fair amount of time reading the <a +href='http://forums.somethingawful.com/'>Something Awful Forums</a>, so +I grabbed the <a +href='http://forums.somethingawful.com/showthread.php?s=&threadid=804984'>Something +Awful Forums Menu</a> and <a +href='http://forums.somethingawful.com/showthread.php?s=&threadid=1114236'>Something +Awful Last Read Enhancement</a> extensions (note: these links may not +work if you're not a <a href='http://www.somethingawful.com/'>Something +Awful</a> member). Speaking of <a +href='http://www.mozilla.org/products/firefox/'>Firefox</a> extensions, +<a href='http://extensions.roachfiend.com/howto.html'>here's</a> a good +tutorial for writing them. +</p> + diff --git a/content/posts/2004-07-10-fam-ruby-0-1-4.html b/content/posts/2004-07-10-fam-ruby-0-1-4.html new file mode 100644 index 0000000..7fba203 --- /dev/null +++ b/content/posts/2004-07-10-fam-ruby-0-1-4.html @@ -0,0 +1,19 @@ +--- +date: "2004-07-10T20:10:06Z" +title: FAM-Ruby 0.1.4 +--- + +<p> +Another release for the day. <a href='/software/fam-ruby/'>FAM-Ruby</a> +version 0.1.4. This release includes documentation updates (also +available <a href='/software/fam-ruby/doc/'>online</a>) and a couple of +patches from Nobu Nakada which improve <a +href='http://www.ruby-lang.org/'>Ruby</a> 1.8 behavior and make <a +href='/software/fam-ruby/'>FAM-Ruby</a> work correctly with <a +href='http://www.ruby-lang.org/'>Ruby</a> threads. A full list of +changes is availabe in the <a +href='/software/fam-ruby/ChangeLog-0.1.4'>ChangeLog</a>. <a +href='/download/fam-ruby-0.1.4.tar.gz'>Download FAM-Ruby 0.1.4</a> (<a +href='/download/fam-ruby-0.1.4.tar.gz.asc'>Signature</a>). +</p> + diff --git a/content/posts/2004-07-10-xmms-ruby-0-1-2.html b/content/posts/2004-07-10-xmms-ruby-0-1-2.html new file mode 100644 index 0000000..763858c --- /dev/null +++ b/content/posts/2004-07-10-xmms-ruby-0-1-2.html @@ -0,0 +1,9 @@ +--- +date: "2004-07-10T17:46:03Z" +title: Xmms-Ruby 0.1.2 +--- + +<p> +I just released <a href='/software/xmms-ruby/'>Xmms-Ruby</a> version 0.1.2. This release fixes a number of outstanding bugs, includes updated API documentation (also available <a href='/software/xmms-ruby/doc/'>online</a>), and adds a block mode for the <code>Xmms::Remote#playlist</code> method. <a href='/download/xmms-ruby-0.1.2.tar.gz'>Download Xmms-Ruby 0.1.2</a> (<a href='/download/xmms-ruby-0.1.2.tar.gz.asc'>Signature</a>, <a href='/software/xmms-ruby/ChangeLog-0.1.2'>ChangeLog</a>). +</p> + diff --git a/content/posts/2004-07-11-cvs-raggle-is-broken.html b/content/posts/2004-07-11-cvs-raggle-is-broken.html new file mode 100644 index 0000000..3c947ef --- /dev/null +++ b/content/posts/2004-07-11-cvs-raggle-is-broken.html @@ -0,0 +1,9 @@ +--- +date: "2004-07-11T04:42:25Z" +title: CVS Raggle is Broken +--- + +<p> +Just a heads-up to those of you who use the <acronym title='Concurrent Versioning System'>CVS</acronym> version of <a href='http://www.raggle.org/'>Raggle</a>: <em>don't upgrade for a couple of days</em>. I'm reorganizing the internals, so it's broken until further notice. +</p> + diff --git a/content/posts/2004-07-12-imlib2-ruby-0-4-3.html b/content/posts/2004-07-12-imlib2-ruby-0-4-3.html new file mode 100644 index 0000000..79668ea --- /dev/null +++ b/content/posts/2004-07-12-imlib2-ruby-0-4-3.html @@ -0,0 +1,17 @@ +--- +date: "2004-07-12T15:37:34Z" +title: Imlib2-Ruby 0.4.3 +--- + +<p> +I just released <a href='/software/imlib2-ruby/'>Imlib2-Ruby</a> version +0.4.3. This version includes a fix for <code>Imlib2::Image#data</code> +and <code>Imlib2::Image#data!</code> from Alvin Schur and an updated +<acronym title='Application Programming Interface'>API</acronym> +reference (also available <a +href='/software/imlib2-ruby/doc/'>online</a>). <a +href='/download/imlib2-ruby-0.4.3.tar.gz'>Download Imlib2-Ruby 0.4.3</a> +(<a href='/download/imlib2-ruby-0.4.3.tar.gz.asc'>Signature</a>, <a +href='/software/imlib2-ruby/ChangeLog-0.4.3'>ChangeLog</a>). +</p> + diff --git a/content/posts/2004-07-13-ldap-should-be-beaten-shot-twice-then-beaten-again.html b/content/posts/2004-07-13-ldap-should-be-beaten-shot-twice-then-beaten-again.html new file mode 100644 index 0000000..81e40d6 --- /dev/null +++ b/content/posts/2004-07-13-ldap-should-be-beaten-shot-twice-then-beaten-again.html @@ -0,0 +1,74 @@ +--- +date: "2004-07-13T05:05:04Z" +title: LDAP Should Be Beaten, Shot Twice, then Beaten Again +--- + +<p> +I'm trying to set up an address book that's accessible from arbitrary +clients. The logical way to do that is set up an <acronym +title='Lightweight Directory Access Protocol'>LDAP</acronym> server (in +my case, <a href='http://www.openldap.org/'>OpenLDAP</a>), then populate +it with contact information. That's all fine and good. I can add +entries with <a +href='http://olivier.sessink.nl/directoryassistant/'>Directory +Assistant</a> and <a href='http://biot.com/gq/'>GQ</a>. I can even +query the <acronym title='Lightweight Directory Access +Protocol'>LDAP</acronym> server with <a +href='http://www.mozilla.org/products/thunderbird/'>Thunderbird</a> (and +presumably <a +href='http://www.novell.com/products/evolution/'>Evolution</a> as well, +although I haven't tried). Here's the snag: I'd like to be able to +store modern attributes, such as <acronym title='Internet Relay +Chat'>IRC</acronym> nicknames, <a href='http://www.aim.com/'><acronym +title='AOL Instant Messenger'>AIM</acronym></a> and <a +href='http://www.icq.com/'><abbr title='I Seek You'>ICQ</abbr></a> +screen names, web sites, etc. <a +href='http://www.mozilla.org/products/thunderbird/'>Thunderbird</a> +allows you to enter in those attributes, and you can export entries in +<acronym title='Lightweight Data Interchange Format'>LDIF</acronym> +format, but when I try and import them into <a +href='http://www.openldap.org/'>OpenLDAP</a>, it complains about missing +attributes (obviously). Well, <a +href='http://www.topology.org/linux/ldap.html#server'>this page</a> +talks about the exact same problem. The author references the <code><a +href='http://bugzilla.mozilla.org/attachment.cgi?id=104858&action=view'>mozillaOrgPerson +schema</a></code> and <code><a +href='http://www.netpress.com/mozilla/ab2ldap_1/mozilla_op20.schema'>mozilla_op20.schema</a></code>, +but when I include those in my <code>slapd.conf</code>, I get the +following error: +</p> + +<blockquote> +<code> +/etc/ldap/schema/mozillaorgperson.schema: line 135: AttributeType not found: "nsAIMid" +</code> +</blockquote> + +<p> +Huh? The schema is supposed to be <em>defining</em> attributes, not +referencing them. I guess I'll keep plugging away. One other problem: +<a href='http://www.mozilla.org/products/thunderbird/'>Thunderbird</a> +can only <em>query</em> <acronym title='Lightweight Directory Access +Protocol'>LDAP</acronym> servers, not add entries to them. That means +I'll have to create entries locally, export them as <acronym +title='Lightweight Data Interchange Format'>LDIF</acronym> files, tweak +them slightly for my DN, then import them by hand. Ugh. I'd like +something as simple as <a +href='http://olivier.sessink.nl/directoryassistant/'>Directory +Assistant</a> that supports the extra attributes (an extra bonus would +be a console interface; I do believe I might be writing another console +application ;-)). +</p> + +<p> +This seems like a simple problem. I'm <em>sure</em> lots of other +people have tried to do what I'm doing right now. So where's the simple +solution? I just want to set up a modern address book that's accessible +via LDAP, and I'd prefer not to have to reinvent the wheel, electricity, +indoor plumbing, and nuclear fusion in the process. Suggestions? +</p> + +<p> +<b>Edit:</b> The grammar police detained me for questioning. +</p> + diff --git a/content/posts/2004-07-13-oops.html b/content/posts/2004-07-13-oops.html new file mode 100644 index 0000000..4bc6a84 --- /dev/null +++ b/content/posts/2004-07-13-oops.html @@ -0,0 +1,9 @@ +--- +date: "2004-07-13T02:05:45Z" +title: Oops! +--- + +<p> +I accidentally let <a href='http://www.raggle.org/'>raggle.org</a> expire. I renewed it, but it will probably be a day or so before it returns. Sorry about that! +</p> + diff --git a/content/posts/2004-07-27-random-links.html b/content/posts/2004-07-27-random-links.html new file mode 100644 index 0000000..79df83a --- /dev/null +++ b/content/posts/2004-07-27-random-links.html @@ -0,0 +1,16 @@ +--- +date: "2004-07-27T05:02:44Z" +title: Random Links +--- + +<p> +I've had these links sitting in my browser for about a week. I figured I'd paste them in here for everyone else to digest. +</p> + +<ul> + <li><a + href='http://www.mozilla.org/blue-sky/misc/199805/intertwingle.html'>Intertwingle</a> + [from <a href='http://www.richlowe.net/'>Richard (richlowe)</a>]</li> +<li><a href='http://www.sysopt.com/articles/bluetooth/'>Bluetooth Overview</a></li> +</ul> + diff --git a/content/posts/2004-07-27-too-geeky.html b/content/posts/2004-07-27-too-geeky.html new file mode 100644 index 0000000..6e5a1f4 --- /dev/null +++ b/content/posts/2004-07-27-too-geeky.html @@ -0,0 +1,9 @@ +--- +date: "2004-07-27T04:17:43Z" +title: Too Geeky +--- + +<p> +I had to write a short <a href='http://www.perl.org/'>Perl</a> script at work today; it only reminded me exactly why I like <a href='http://www.ruby-lang.org/'>Ruby</a> so much. In other news I'm apparently <a href='http://lily.richlowe.net/archives/000047.html'>too geeky</a>. +</p> + diff --git a/content/posts/2004-07-28-free-nat-in-windows-almost.html b/content/posts/2004-07-28-free-nat-in-windows-almost.html new file mode 100644 index 0000000..1b568cf --- /dev/null +++ b/content/posts/2004-07-28-free-nat-in-windows-almost.html @@ -0,0 +1,9 @@ +--- +date: "2004-07-28T01:31:15Z" +title: Free NAT in Windows (almost) +--- + +<p> +I'm preparing for my trip tomorrow, and I stumbled across <a href='http://www.hh.iij4u.or.jp/~yukon/soft/pipmasq/'>PIPMasq</a>, which does partial <acronym title='Network Address Translation'>NAT</acronym>ing in Windows. Might be useful for someone else out there. +</p> + diff --git a/content/posts/2004-08-04-big-friggin-files.html b/content/posts/2004-08-04-big-friggin-files.html new file mode 100644 index 0000000..de374e9 --- /dev/null +++ b/content/posts/2004-08-04-big-friggin-files.html @@ -0,0 +1,29 @@ +--- +date: "2004-08-04T17:47:48Z" +title: Big Friggin Files +--- + +<p> +Here's a handy list of maximum file sizes for various filesystems: +</p> + +<blockquote cite='http://dev.mysql.com/doc/mysql/en/Table_size.html'> +<ul> +<li>ext2/3: Filesystem up to 16 TB, individual files to 2 TB</li> +<li>Reiserfs: Filesystem up to 17 TB, individual files to 2 TB.</li> +<li>JFS: Filesystem up to 32 PB, individual files to 4 PB.</li> +<li>XFS: Filesystem up to 16 EB, individual files to 8 EB.</li> +<li>NTFS: Varies, but with default block size the maximum filesystem size is 16 TB. Files are limited only by the size of the volume.</li> +</ul> + +<p> +Note: The 2.4 Linux kernel has a 2 TB limitation on the size of a block device, so the very large limits above are, for the moment, theoretical. 2.5/2.6 should fix this limitation. +</p> + +<p> <a href='http://dev.mysql.com/doc/mysql/en/Table_size.html'>Source</a></p> +</blockquote> + +<p> +I also stumbled across <a href='http://mdbtools.sf.net/'>MDBTools</a>. It's a set of tools for reading Access files in real operating systems. Seems to be buggy at the moment, but it looks promising. +</p> + diff --git a/content/posts/2004-08-06-easytag-and-openvpn.html b/content/posts/2004-08-06-easytag-and-openvpn.html new file mode 100644 index 0000000..7e6e934 --- /dev/null +++ b/content/posts/2004-08-06-easytag-and-openvpn.html @@ -0,0 +1,21 @@ +--- +date: "2004-08-06T09:10:05Z" +title: Easytag and OpenVPN +--- + +<p> +Haven't been doing any development lately (mainly because of all the <a href='http://www.paulduncan.org/'>traveling</a>, but I have had a chance to play with a couple of applications. Here's what I've been messing with: +</p> + +<ul> +<li><a href='http://easytag.sf.net/'>EasyTAG</a>: If you run <a +href='http://www.linux.com/'>Linux</a> and have more than 5 <acronym +title='MPEG 1 / Layer 3 audio'>MP3</acronym> files you should be using +<a href='http://easytag.sf.net/'>EasyTAG</a>. It's the coolest <acronym +title='MPEG 1 / Layer 3 audio'>MP3</acronym> and <a +href='http://www.vorbis.com/'>Ogg Vorbis</a> tagging program I've ever seen.</li> +<li><a href='http://openvpn.sf.net/'>OpenVPN</a>: <a href='http://www.openssl.org/'>OpenSSL</a>-based <acronym title='Virtual Private Network'>VPN</acronym> software. I haven't actually got it <em>working</em> yet, but it looks promising! +<li><a href='http://www.wordpress.org/'>WordPress</a>: Awesome free blogging tool. Both <a href='http://www.bsin.org/'>Alonzo (osiekhan)</a> and <a href='http://www.linuxbrit.co.uk/'>Tom (giblet)</a> use it for their sites. I'm using it to set up my sister's site, and I may eventually convert <a href='/'>Pablotron</a> or <a href='http://www.paulduncan.org/'>paulduncan.org</a> to it as well.</li> +</li> +</ul> + diff --git a/content/posts/2004-08-09-pcie.html b/content/posts/2004-08-09-pcie.html new file mode 100644 index 0000000..ae4ce19 --- /dev/null +++ b/content/posts/2004-08-09-pcie.html @@ -0,0 +1,9 @@ +--- +date: "2004-08-09T17:31:59Z" +title: PCIe +--- + +<p> +I just finished reading <a href='http://arstechnica.com/paedia/p/pci-express/pcie-1.html'>this article</a> on <a href='http://www.arstechnica.com/'>Ars Technica</a> about <acronym title='PCI Express'>PCIe</acronym>. +</p> + diff --git a/content/posts/2004-08-13-exif.html b/content/posts/2004-08-13-exif.html new file mode 100644 index 0000000..893ddbd --- /dev/null +++ b/content/posts/2004-08-13-exif.html @@ -0,0 +1,19 @@ +--- +date: "2004-08-13T03:05:39Z" +title: EXIF +--- + +<p> +While playing around with <a href='http://gqview.sf.net/'>GQView</a>, I +noticed that there are several pretty useful <acronym +title='Exchangeable Image File'>EXIF</acronym> tags defined in the +pictures taken by my camera (and most other digital cameras too). I +also noticed that <a href='http://www.php.net/'><acronym title='PHP: +Hypertext Preprocessor'>PHP</acronym></a> has <a +href='http://www.php.net/exif'>built-in support for <acronym +title='Exchangeable Image File'>EXIF</acronym> data</a>. I'd like to +tweak <a href='http://www.paulduncan.org/gallery/'>my Gallery page</a> +on <a href='http://www.paulduncan.org/'><code>paulduncan.org</code></a> +to read the date, aperture, exposure time, and other goodies. +</p> + diff --git a/content/posts/2004-08-13-printing-to-a-windows-printer-in-linux.html b/content/posts/2004-08-13-printing-to-a-windows-printer-in-linux.html new file mode 100644 index 0000000..2ca1453 --- /dev/null +++ b/content/posts/2004-08-13-printing-to-a-windows-printer-in-linux.html @@ -0,0 +1,19 @@ +--- +date: "2004-08-13T02:53:37Z" +title: Printing to a Windows Printer in Linux +--- + +<p> +I've been printing on Alonzo's machine a lot lately, and I finally decided to just go through the hassle of setting up printing in <a href='http://www.linux.com/'>Linux</a> again (it's been <em>years</em>). Well, things have gotten a bit easier since the last time I tried; <a href='http://www.faqs.org/docs/Linux-mini/Debian-and-Windows-Shared-Printing.html#basicprconfig'>this page</a> makes it dirt simple. +</p> + +<p> +I also set up <a href='http://xprint.mozdev.org/'>Xprint</a> and +<code>mp</code> so I can print from <a +href='http://www.mozilla.org/products/firefox/'>Firefox</a> and <a +href='http://www.mutt.org/'>Mutt</a>, respectively. Oh, <a +href='http://www.debian.org/'>Debian</a> users, be sure to install +<code>xprt-xprintorg</code>, <em>not</em> <code>xprt</code>, as the +latter is horribly broken. +</p> + diff --git a/content/posts/2004-08-21-freshmeat-rampage.html b/content/posts/2004-08-21-freshmeat-rampage.html new file mode 100644 index 0000000..ea84b12 --- /dev/null +++ b/content/posts/2004-08-21-freshmeat-rampage.html @@ -0,0 +1,9 @@ +--- +date: "2004-08-21T06:56:40Z" +title: Freshmeat Rampage +--- + +<p> +I just went on a <a href='http://freshmeat.net/'>Freshmeat</a> rampage and posted all my <a href='http://www.ruby-lang.org/'>Ruby</a> bindings. +</p> + diff --git a/content/posts/2004-08-24-development-list.html b/content/posts/2004-08-24-development-list.html new file mode 100644 index 0000000..841c8a2 --- /dev/null +++ b/content/posts/2004-08-24-development-list.html @@ -0,0 +1,35 @@ +--- +date: "2004-08-24T16:08:07Z" +title: Development List +--- + +<p> +Here's a list of stuff I need to finish, so people can pester me about them until I get them done: +</p> + +<ul> + <li>Fix feeds that don't work in Raggle (RSS 1.0?) + <ul> + <li><code>something.slate.msn.com</code></li> + <li><code>planet.debian.net</code></li> + </ul></li> + <li>finish <a href='/software/ft2-ruby/'>FT2-Ruby</a> bindings</li> + <li>finish <a + href='http://cvs.pablotron.org/?m=devil-ruby'>DevIL-Ruby</a> + bindings</li> + <li>finish <a href='http://cvs.pablotron.org/?m=tunepimp-ruby'>TunePimp-Ruby</a> bindings</li> + <li>finish <a href='http://cvs.pablotron.org/?m=raggle'>Raggle 0.4.0</a> code base</li> + <li>finish/release <a href='http://cvs.pablotron.org/?m=syndic8-ruby'>Syndic8-Ruby</a> (also <a href='/?cid=1314'>here</a>) bindings</li> + <li>write <a href='http://rubygems.rubyforge.org/'>Gems</a> for all libs. apps (there's a howto <a href='http://rubygems.rubyforge.org/wiki/wiki.pl?Quick_Introduction'>here</a>)</li> + <li>finish <a href='http://www,linuxbrit.co.uk/'>feh</a> caching code (there's a short blurb about it +<a href='/?cid=1261'>here</a>)</li> + <li>finish <a href='http://erinmduncan.com/'>Erin's web site</a></li> +</ul> + +<p> +So that's all I can think of off the top of my head. Feel free to +harass me via email, <acronym title='Instant Messenger'>IM</acronym>, or +ominous threats of bodily harm until I get whatever is most important to +you checked off! +</p> + diff --git a/content/posts/2004-08-25-rubygem-thoughts.html b/content/posts/2004-08-25-rubygem-thoughts.html new file mode 100644 index 0000000..8908ae4 --- /dev/null +++ b/content/posts/2004-08-25-rubygem-thoughts.html @@ -0,0 +1,25 @@ +--- +date: "2004-08-25T11:50:59Z" +title: RubyGem Thoughts +--- + +<p> +Last night I created <a href='http://rubygems.rubyforge.org/'>RubyGems</a> for <a href='/software/fam-ruby/'>FAM-Ruby</a>, <a href='/software/imlib2-ruby/'>Imlib2-Ruby</a>, <a href='/software/joystick-ruby'>Joystick-Ruby</a>, <a href='/software/mb-ruby/'>MB-Ruby</a>, and <a href='/software/xmms-ruby/'>Xmms-Ruby</a> (with a <a href='/software/raggle/'>Raggle</a> gem coming soon). The gems I've made so far are available <a href='/download/gems/'>here</a>. <a href='http://rubygems.rubyforge.org/'>RubyGems</a> seems promising, here are my thoughts so far: +</p> + +<ul> +<li>Easy to use: once you get the hang of things it only takes a few minutes to create a gem for a package. There's a guide called <a href='http://rubygems.rubyforge.org/wiki/wiki.pl?CreateAGemInTenMinutes'>"Create a Gem in 10 Minutes"</a>, but it looks like it's about 20 minutes too old; some of the command-line flags have changed since the guide was written.</li> +<li>Seems to be popular: A lot of popular projects seem to be creating gems (check out the <a href='http://gems.rubyforge.org/gems/'>list so far</a>).</li> +<li>No build-in signing! Or at least it's not in the documentation I sifted through. There should be either a built-in way of attaching signatures (you're already loading the files and encoding them; <acronym title='Message Digest'>MD5</acronym> or <acronym title='Secure Hashing Algorithm 1'>SHA-1</acronym> the contents, then sign that with <a href='http://www.gnupg.org/'>GnuPG</a>). I home they address this soon, because I think a package management system without some sort of end-to-end security is dead in the water.</li> +<li>Funky <a href='http://www.yaml.org/'><acronym title="YAML Ain't a Markup Language">YAML</acronym></a> storage format that's "not much larger than tar". That's nice, why don't you just use tar instead? <a href='http://rpa-base.rubyforge.org/'>RPA-Base</a> does. To be fair, according to the <a href='http://rpa-base.rubyforge.org/wiki/wiki.cgi?Rpa_FAQ'>RPA FAQ</a>, <a href='http://rubygems.rubyforge.org/'>RubyGems</a> is adopting the RPA file format in the next release.</li> +<li>I want mirrors of <a href='http://gems.rubyforge.org/gems/'>the main gem distribution site</a>. It's easy enough to create and maintain one, someone just needs to step up to the plate.</li> +<li>The <code>--ri-site</code> option should work for <a href='http://rdoc.sourceforge.net/'>RDoc</a> inside the <code>gemspec</code> files. Right now it doesn't seem to.</li> +<li>Gem Server is neat!</li> +<li>Should have some sort of dependency removal on uninstall feature, ala <a href='http://rpa-base.rubyforge.org/'>RPA-Base</a> and <a href='http://packages.debian.org/cgi-bin/search_packages.pl?keywords=aptitude'><code>aptitude</code></a>.</li> +<li>Generating <a href='http://www.ruby-lang.org/'>Ruby</a> code inside the gem worries me, <em>especially</em> without any sort of developer signing going on.</li> +</ul> + +<p> +I'll keep fiddling and let everyone know what I come up with. +</p> + diff --git a/content/posts/2004-08-25-thoughts-on-rubyforge-rubygems.html b/content/posts/2004-08-25-thoughts-on-rubyforge-rubygems.html new file mode 100644 index 0000000..73db4ae --- /dev/null +++ b/content/posts/2004-08-25-thoughts-on-rubyforge-rubygems.html @@ -0,0 +1,89 @@ +--- +date: "2004-08-25T14:44:12Z" +title: Thoughts on RubyForge/RubyGems +--- + +<p> +In order to post a <a href='http://rubygems.rubyforge.org/'>RubyGem</a> +at the moment, you have to create an account on <a +href='http://www.rubyforge.org/'>RubyForge</a>, then create a project, +<em>then</em> upload the gem. <a +href='http://www.rubyforge.org/'>RubyForge</a> gives the same things +that <a href='http://www.sourceforge.net/'>SourceForge</a> does; a web +site, a <acronym title='Concurrent Versioning System'>CVS</acronym> +repository, a file area, forums, mailing lists, kitchen sink, etc. +Pros: <a href='http://www.rubyforge.org/'>RubyForge</a> is prettier, +simpler, and more stable than <a +href='http://www.sourceforge.net/'>SourceForge</a> (although I've seen +Windows 95 machines that are more stable than <a +href='http://www.sourceforge.net/'>SourceForge</a>, so that's not saying +much). Also <a href='http://www.rubyforge.org/'>RubyForge</a> doesn't +have 8 gadzillion dead projects on it, so it's significantly faster than +<a href='http://www.sourceforge.net/'>SourceForge</a>. Cons: No +automated interface (<acronym title='eXtensible Markup Language-Remote +Procedure Call'>XML-RPC</acronym>, <acronym title='Simple Object Access +Protocol'>SOAP</acronym>, email, smoke signals, etc... <a +href='http://www.freshmeat.net/'>Freshmeat</a> has an <a +href='http://freshmeat.net/articles/view/1048/'><acronym +title='eXtensible Markup Language-Remote Procedure +Call'>XML-RPC</acronym> interface</a>, so this isn't an unrealistic +request), no quick way of creating a minimalist project (for example, a +project that just classifies itself in the <a +href='http://rubyforge.org/softwaremap/'>Trove</a> and posts a <a +href='http://rubygems.rubyforge.org/'>gem</a>..ie, what I want to do), +and no integration with <a href='http://raa.ruby-lang.org/'><acronym +title='Ruby Application Archive'>RAA</acronym></a> or <a +href='http://www.freshmeat.net/'>Freshmeat</a>. +</p> + +<p> +I want to elaborate on the last one a bit, because that's a problem with +both <a href='http://www.rubyforge.org/'>RubyForge</a> and <a +href='http://rubygems.rubyforge.org/'>RubyGems</a>. Let's look at the +steps I take when I release the latest version of a <a +href='http://www.ruby-lang.org/'>Ruby</a> binding: +</p> + +<ol> +<li>Sanity check, make sure the thing still compiles</li> +<li>Run whatever testing script I have written, make sure I haven't broken anything crucial</li> +<li>Update the documentation (README, TODO, BUGS, etc)</li> +<li>Tag the release in <acronym title='Concurrent Versioning +System'>CVS</acronym>. If I'm incrementing the major or minor number, then I create a new branch as well.</li> +<li>Export the specified tag to anohter directory (I've got one called releases/ on my workstation).</li> +<li>Double-check everything again to make sure things are where they should be (I catch a lot of stupid mistakes here, by the way).</li> +<li>Run <a href='http://rdoc.sf.net/'>RDoc</a> to generate the developer documentation.</li> +<li>Tar the release up.</li> +<li>Sign the tarball with <a href='http://www.gnupg.org/'>GnuPG</a> (everyone should be doing this; shame on you if you aren't).</li> +<li>Upload the tarball, signature, ChangeLog, and API documentation to <a href='/'>Pablotron</a>.</li> +<li>Update the links, version number, and possibly the blurb on the software page.</li> +<li>Post an entry to the front page briefly describing the release.</li> +<li>Update the binding's entry on <a href='http://raa.ruby-lang.org/'><acronym title='Ruby Application Archive'>RAA</acronym></a>.</li> +<li>Update the entry on <a href='http://www.freshmeat.net/'>Freshmeat</a>.</li> +<li>Post a short message to <a href='http://www.ruby-talk.org/'><code>ruby-talk</code></a>.</li> +</ol> + +<p> +If I'm using creating a <a href='http://rubygems.rubyforge.org/'>gem</a>, then we have to add the following items to the list: +</p> + +<ul> +<li>Update <code>gemspec</code>.</li> +<li>Create <a href='http://rubygems.rubyforge.org/'>gem</a>.</li> +<li>Upload <a href='http://rubygems.rubyforge.org/'>gem</a> (and possibly release tarball, signature, etc), to <a href='http://www.rubyforge.org/'>RubyForge</a>.</li> +<li>Update project information on <a href='http://www.rubyforge.org/'>RubyForge</a>.</li> +</ul> + +<p> +Well, if there was some interaction between <a href='http://www.rubyforge.org/'>RubyForge</a>, <a href='http://raa.ruby-lang.org/'><acronym title='Ruby Application Archive'>RAA</acronym></a>, and <a href='http://www.freshmeat.net/'>Freshmeat</a>, a lot of redundant steps could be eliminated. I'm picking on <a href='http://www.rubyforge.org/'>RubyForge</a> here because it's the new kid on the block; <a href='http://www.freshmeat.net/'>Freshmeat</a> has been around since the dawn of time, and <a href='http://raa.ruby-lang.org/'><acronym title='Ruby Application Archive'>RAA</acronym></a> has Ruby's semi-answer to <a href='http://www.perl.com/'>Perl's</a> <a hrf='http://www.cpan.org/'><acronym title='Comprehensive Perl Archive Network'>CPAN</acronym></a> since I started using <a href='http://www.ruby-lang.org/'>Ruby</a>. For example, let's say <a href='http://www.rubyforge.org/'>RubyForge</a> had an <acronym title='eXtensible Markup Language-Remote Procedure Call'>XML-RPC</acronym> interface, and it could communicate with <a href='http://raa.ruby-lang.org/'><acronym title='Ruby Application Archive'>RAA</acronym></a> (via some <acronym title='Remote Procedure Call'>RPC</acronym> interface) and <a href='http://www.freshmeat.net/'>Freshmeat</a>. Now write a script that creates a <a href='http://rubygems.rubyforge.org/'>gem</a> and does the necessary updates to my personal page, then connects to <a href='http://www.rubyforge.org/'>RubyForge</a> via <acronym title='eXtensible Markup Language-Remote Procedure Call'>XML-RPC</acronym> and uploads my tarball, <a href='http://rubygems.rubyforge.org/'>gem</a>, tarball signature, and gem signature, which are then automagically propogated to both <a href='http://www.freshmeat.net/'>Freshmeat</a> and the <a href='http://raa.ruby-lang.org/'><acronym title='Ruby Application Archive'>RAA</acronym></a>. +</p> + +<p> +In short, an automated update interface combined with the ability to +interact with the other existing software indices would allow me to +eliminate half of the steps on my software release checklist and make <a +href='http://www.rubyforge.org/'>RubyForge</a> incredibly useful to +developers, even if they don't need web hosting, a mailing list, or a +<acronym title='Concurrent Versioning System'>CVS</acronym> repository. +</p> + diff --git a/content/posts/2004-08-31-handy-list-o-apps.html b/content/posts/2004-08-31-handy-list-o-apps.html new file mode 100644 index 0000000..81a7b9f --- /dev/null +++ b/content/posts/2004-08-31-handy-list-o-apps.html @@ -0,0 +1,13 @@ +--- +date: "2004-08-31T16:47:21Z" +title: Handy List o' Apps +--- + +<p> +I keep a short list of applications (console, win32, etc) handy for when +I either forget the name of a utility or I'm sitting down at someone +else's machine and trying to remember how to do something. I thought it +might be useful for other people, so <a href='/tips/apps/'>here ya +go</a>. Suggestions are welcome! +</p> + diff --git a/content/posts/2004-09-21-preliminary-linkblog.html b/content/posts/2004-09-21-preliminary-linkblog.html new file mode 100644 index 0000000..0b115a1 --- /dev/null +++ b/content/posts/2004-09-21-preliminary-linkblog.html @@ -0,0 +1,18 @@ +--- +date: "2004-09-21T08:06:11Z" +title: Preliminary Linkblog +--- + +<p> +<a href='http://solarce.org/'>solarce</a> has been raving about <a +href='http://del.icio.us/'><code>del.icio.us</code></a> in #gah for +several days now, so I finally created an account and whipped up a quick +<a href='/linkblog/'>Linkblog</a>. I had the <a +href='/linkblog/'>Linkblog</a> on the sidebar for about 20 minutes, but +it looked funny, so I removed it until I get the layout issues worked +ironed out. I really dig <a +href='http://del.icio.us/'><code>del.icio.us</code></a>; it just solved +my bookmark synchronization and categorization crisis, and gave me a new +toy to play with. +</p> + diff --git a/content/posts/2004-09-23-rubilicious.html b/content/posts/2004-09-23-rubilicious.html new file mode 100644 index 0000000..a69ef81 --- /dev/null +++ b/content/posts/2004-09-23-rubilicious.html @@ -0,0 +1,25 @@ +--- +date: "2004-09-23T15:25:07Z" +title: Rubilicious +--- + +<p> +I just whipped up some <a href='http://www.ruby-lang.org/'>Ruby</a> +bindings for <a href='http://del.icio.us/'>Delicious</a>. <a +href='/software/rubilicious/'>Check 'em out</a>. +</p> + +<p> +<b>Update:</b> <a +href='http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/113578'>Here's</a> +the announcement on <a +href='http://ruby-talk.org/'><code>ruby-talk</code></a>. +</p> + +<p> +<b>Update 2:</b> ...And <a +href='http://lists.burri.to/pipermail/delicious-discuss/2004-September/001047.html'>here's</a> +the announcement on <a +href='http://lists.burri.to/pipermail/delicious-discuss/'><code>delicious-discuss</code></a>. +</p> + diff --git a/content/posts/2004-09-28-raggle-news-general-ideas-status-and-more.html b/content/posts/2004-09-28-raggle-news-general-ideas-status-and-more.html new file mode 100644 index 0000000..af9a851 --- /dev/null +++ b/content/posts/2004-09-28-raggle-news-general-ideas-status-and-more.html @@ -0,0 +1,61 @@ +--- +date: "2004-09-28T17:46:21Z" +title: Raggle News, General Ideas, Status, and More... +--- + +<p> +<a href='http://linuxbrit.co.uk/'>Tom (giblet)</a> wrote a script using <a href='/software/rubilicious/'>Rubilicious</a> to import <a href='http://opml.org/'><acronym title='Outline Processor Markup Language'>OPML</acronym></a>-format lists of links to <a href='http://del.icio.us/'>Delicious</a>. Check it out <a href='http://linuxbrit.co.uk/blog/2004/09/25/delicious/'>here</a>. +</p> + +<p> +Here's a couple of ideas I had for the next version of <a +href='http://raggle.org/'>Raggle</a>: searching for <acronym +title='Really Simple Summary'>RSS</acronym> feeds via <a +href='http://syndic8.com/'>Syndic8</a> (actually the <acronym +title='Concurrent Versioning System'>CVS</acronym> version of <a +href='http://raggle.org/'>Raggle</a> already does this via an embedded +copy of the <a href='/?cid=1314'>old version of Syndic8-Ruby</a>), +saving your <a href='http://raggle.org/'>Raggle</a> feed list as a <a +href='http://syndic8.com/'>Syndic8</a> subscription list (free +portability, also you could share your blogroll with other people, etc), +one-click (or buttonpress, whatever) posting of interesting links to <a +href='http://del.icio.us/'>Delicious</a>, and <a +href='http://www.mnot.net/drafts/draft-nottingham-atom-format-02.html'>Atom</a> +support. It's actually relatively easy to do most of these as add-ons +to the existing version of <a href='http://raggle.org/'>Raggle</a>, but I'd like +to finish the internal cleanup before adding them. The next version +will have complete interface abstraction and an opaque engine class, +allowing other people to come along and do things like write wacky +backend support (e.g. save feed list to <a +href='http://mysql.com/'>MySQL</a> or <a +href='http://syndic8.com/'>Syndic8</a>), custom interfaces (native Win32 +or <a href='http:/gtk.org/'>GTK+</a> interface, anyone?), rewriting the +<a href='http://raggle.org/'>Raggle</a> engine in C. I'm also +considering using <a +href='http://www.chadfowler.com/ruby/rss/'>Ruby/RSS</a> for the next +version of <a href='http://raggle.org/'>Raggle</a>; the current <acronym +title='Really Simple Summary'>RSS</acronym> parsing in <a +href='http://raggle.org/'>Raggle</a> is a bit more haphazard than I'd +like, so deferring to another library saves me the trouble of writing +yet another library. +</p> + +<p> +On the binding front, I've still got two other sets of <a +href='http://ruby-lang.org/'>Ruby</a> bindings pending completion, <a +href='http://cvs.pablotron.org/?m=tunepimp-ruby'>TunePimp-Ruby</a> and +<a href='http://cvs.pablotron.org/?m=devil-ruby'>Devil-Ruby</a> +(although I've been sitting on the latter for like a year now, so who +knows when I'll get to it :D). Also, <a href='/software/ft2-ruby/'>FT2-Ruby</a> <em>badly</em> needs the rest of the <a href='http://freetype.org/'>FreeType2</a> <acronym title="Application Programmer's Interface">API</acronym> implemented. +</p> + +<p> +As for non-<a href='http://ruby-lang.org/'>Ruby</a> stuff, I finally +added comments to <a +href='http://paulduncan.org/'><code>paulduncan.org</code></a>, and I've +got two of the three family-related pages I started all up and running +(<a href='http://erinmduncan.com/'><code>erinmduncan.com</code></a> and +<a href='http://richandrobynn.com/'><code>richandrobynn.com</code></a> +are up, <a href='http://saraduncan.com/'><code>saraduncan.com</code></a> is waiting on a theme from <a href='http://lily.richlowe.net/'>Jon-Anne (lilyj)</a>). +</p> + diff --git a/content/posts/2004-09-28-raggle-reorg-notes.html b/content/posts/2004-09-28-raggle-reorg-notes.html new file mode 100644 index 0000000..c2469e4 --- /dev/null +++ b/content/posts/2004-09-28-raggle-reorg-notes.html @@ -0,0 +1,34 @@ +--- +date: "2004-09-28T18:15:42Z" +title: Raggle Reorg Notes +--- + +<p> +<a href='http://richlowe.net/'>Richard (richlowe)</a> will kill me for saying this, but this (roughly) how I want code for the next version of <a href='http://raggle.org/'>Raggle</a> to look: +</p> + +<pre><code> +require 'raggle/engine' +require 'raggle/interface/ncurses' + +# load raggle config +Raggle::Config::load_config + +# start raggle engine +engine = Raggle::Engine.new + +# start interface and bind it to engine +iface_class = Raggle::Config::interfaces[$config['interface']] +iface = iface_class.new(engine) +</code> +</pre> + +<p> +(He'll be pissed because he was pushing or that forever, and I kept +saying I wanted <a href='http://raggle.org/'>Raggle</a> to be all one +file, simple to install and use). Well, it's getting bigger and bigger, +and I don't see any other way to keep the code manageable and to do some +of the things I plan to do other than splitting it up into separate +files. +</p> + diff --git a/content/posts/2004-09-28-syndic8-ruby-0-2-0.html b/content/posts/2004-09-28-syndic8-ruby-0-2-0.html new file mode 100644 index 0000000..1f0f870 --- /dev/null +++ b/content/posts/2004-09-28-syndic8-ruby-0-2-0.html @@ -0,0 +1,16 @@ +--- +date: "2004-09-28T16:17:59Z" +title: Syndic8-Ruby 0.2.0 +--- + +<p> +I just released version 0.2.0 of <a href='/software/syndic8-ruby/'>Syndic8-Ruby</a>, my <a href='http://ruby-lang.org/'>Ruby</a> bindings for <a href='http://syndic8.com/'>Syndic8</a>. <a href='http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/114101'>Here's</a> the announcement on <a href='http://ruby-talk.org/'><code>ruby-talk</code></a>, and <a href='http://raa.ruby-lang.org/project/syndic8-ruby/'>here's</a> the entry on <a href='http://raa.ruby-lang.org/'><acronym title='Ruby Application Archive'>RAA</acronym></a>. +</p> + +<b><acronym title='Uniform Resource Locators'>URL</acronym>s:</b> +<ul> +<li><a href='/download/syndic8-ruby-0.2.0.tar.gz'>Download</a> (<a href='/download/syndic8-ruby-0.2.0.tar.gz.asc'>signature</a>)</li> +<li><a href='/download/gems/syndic8-ruby-0.2.0.gem'>Download Gem</a> (<a href='/download/gems/syndic8-ruby-0.2.0.gem.asc'>signature</a>)</li> +<li><a href='/software/syndic8-ruby/ChangeLog-0.2.0'>Read Change Log</a></li> +</ul> + diff --git a/content/posts/2004-09-29-rubilicious-0-1-1.html b/content/posts/2004-09-29-rubilicious-0-1-1.html new file mode 100644 index 0000000..df64b1f --- /dev/null +++ b/content/posts/2004-09-29-rubilicious-0-1-1.html @@ -0,0 +1,14 @@ +--- +date: "2004-09-29T11:52:53Z" +title: Rubilicious 0.1.1 +--- + +<p> +Just a minor bugfix release. The initial release of <a href='/software/rubilicious/'>Rubilicious</a> was querying <a href='http://del.icio.us/'>Delicious</a> twice as much as it needed to. This release fixes that. +<a href='/download/rubilicious-0.1.1.tar.gz'>Download</a> (<a href='/download/rubilicious-0.1.1.tar.gz.asc'>signature</a>) and enjoy. +</p> + +<p> +Oh, speaking of <a href='http://del.icio.us/'>Delicious</a>, check out <a href='http://kevan.org/extispicious.cgi'>Extispicious</a>; it's an entertaining spacial representation of your <a href='http://del.icio.us/'>Delicious</a> links. If you don't have an account, try it with <a href='http://kevan.org/extispicious.cgi?name=pabs'>my links</a> and <a href='http://kevan.org/extispicious.cgi?name=giblet'>Tom's</a>. +</p> + diff --git a/content/posts/2004-09-29-technorati-ruby-0-1-0.html b/content/posts/2004-09-29-technorati-ruby-0-1-0.html new file mode 100644 index 0000000..03aa373 --- /dev/null +++ b/content/posts/2004-09-29-technorati-ruby-0-1-0.html @@ -0,0 +1,9 @@ +--- +date: "2004-09-29T11:47:50Z" +title: Technorati-Ruby 0.1.0 +--- + +<p> +I just wrote <a href='http://technorati.com/'>Technorati</a> bindings for <a href='http://ruby-lang.org/'>Ruby</a>. You know the drill: <a href='/software/technorati-ruby/'>project page</a>, <a href='/download/technorati-ruby-0.1.0.tar.gz'>download </a> (<a href='/download/technorati-ruby-0.1.0.tar.gz.asc'>signature</a>), <a href='http://raa.ruby-lang.org/project/technorati-ruby/'><acronym title='Ruby Application Archive'>RAA</acronym> entry</a>, and the requisite <a href='http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/114210'><code>ruby-talk</code> announcement</a>. +</p> + diff --git a/content/posts/2004-10-01-live-from-rubyconf-2004.html b/content/posts/2004-10-01-live-from-rubyconf-2004.html new file mode 100644 index 0000000..2c0f0c5 --- /dev/null +++ b/content/posts/2004-10-01-live-from-rubyconf-2004.html @@ -0,0 +1,16 @@ +--- +date: "2004-10-01T14:29:48Z" +title: Live from RubyConf 2004 +--- + +<p> +This year they've got wireless, so here's some notes so far: +</p> + +<ul> + <li>talked to Chad Fowler, thanking him for uploading all my bindings to <a href='http://gems.rubyforge.org/'><code>gems.rubyforge.org/</code></a>. Also talked to him about a <a href='http://ruby-lang.org/'>Ruby</a> binding to <a href='http://livejournal.com/'>Live Journal</a></li> +<li>Talked to Rich Kilmer about signing <a href='http://rubygems.rubyforge.org/'>Gems</a>. I'm goign to join the development mailing list so we can talk more about that. He also showed me a Windows <acronym title='Graphical User Interface'>GUI</acronym> for <a href='http://rubygems.rubyforge.org/'>RubyGems</a> that he's working on. I said I'd be willing to do a <a href='http://gtk.org/'><acronym title='GIMP Toolkit'>GTK+</acronym></a> version. His presentation was really entertaining.</li> +<li>Met another person who's a <a href='http://del.icio.us/'>Delicious</a> fan, and he's using <a href='/software/rubilicious/'>Rubilicious</a>!</li> +<li>There's a guy here from <a href='http://jp.rubyist.net/magazine/'>Rubyist Magazine</a>. I've been harassing him on <acronym title='Internet Relay Chat'>IRC</acronym> all morning.</li> +</ul> + diff --git a/content/posts/2004-10-01-more-rubyconf-notes.html b/content/posts/2004-10-01-more-rubyconf-notes.html new file mode 100644 index 0000000..b193dd4 --- /dev/null +++ b/content/posts/2004-10-01-more-rubyconf-notes.html @@ -0,0 +1,9 @@ +--- +date: "2004-10-01T21:17:09Z" +title: More RubyConf Notes +--- + +<p> +Right now <a href='http://www.fosdem.org/2004/index/speakers/speakers_kilmer'>Richard Kilmer</a> is giving a <em>really</em> interesting speech on <a href='http://richkilmer.blogs.com/ether/2003/12/project_alph.html'>Alph</a>, which is a platform agnostic Flash/Ruby binding and more. Good stuff. +</p> + diff --git a/content/posts/2004-10-01-okay-so-they-re-kicking-us-out.html b/content/posts/2004-10-01-okay-so-they-re-kicking-us-out.html new file mode 100644 index 0000000..08bf85e --- /dev/null +++ b/content/posts/2004-10-01-okay-so-they-re-kicking-us-out.html @@ -0,0 +1,9 @@ +--- +date: "2004-10-01T21:49:34Z" +title: Okay So They're Kicking Us Out +--- + +<p> +Well, not exactly, but our time here is up. I'm going to try and whip up a <a href='http://gtk.org/'><acronym title='GIMP Toolkit'>GTK+</acronym></a> <acronym title='Graphical User Interface'>GUI</acronym> for <a href='http://rubygems.rubyforge.org/'>RubyGems</a>. I've already got a <a href='http://glade.gnome.org/'>Glade</a> interface whipped up; I'll plug in the rest when I get home. +</p> + diff --git a/content/posts/2004-10-01-rubilicious-0-1-2.html b/content/posts/2004-10-01-rubilicious-0-1-2.html new file mode 100644 index 0000000..606ea30 --- /dev/null +++ b/content/posts/2004-10-01-rubilicious-0-1-2.html @@ -0,0 +1,15 @@ +--- +date: "2004-10-01T17:42:06Z" +title: Rubilicious 0.1.2 +--- + +<p> +Some afternoon tweaking uncovered a few bugs in <a href='/software/rubilicious/'>Rubilicious</a>, so here's version 0.1.2: +</p> + +<ul> + <li><a href='/download/rubilicious-0.1.2.tar.gz'>Download Rubilicious 0.1.2</a> (<a href='/software/rubilicious-0.1.2.tar.gz.asc'>signature</a>)</li> +<li><a href='/download/gems/rubilicious-0.1.2.gem'>Download Gem</a> (<a href='/download/gems/rubilicious-0.1.2.gem.asc'>signature</a>)</li> +<li><a href='/software/rubilicious/ChangeLog-0.1.2'>ChangeLog</a></li> +</ul> + diff --git a/content/posts/2004-10-02-pablotron-rubyconf-coverage-continued.html b/content/posts/2004-10-02-pablotron-rubyconf-coverage-continued.html new file mode 100644 index 0000000..f6e202f --- /dev/null +++ b/content/posts/2004-10-02-pablotron-rubyconf-coverage-continued.html @@ -0,0 +1,9 @@ +--- +date: "2004-10-02T20:05:11Z" +title: Pablotron RubyConf Coverage, Continued.... +--- + +<p> +<a href='http://www.virtualschool.edu/cox/'>Brad Cox</a> is speaking now. He's describing the design decisions he made and some interesting implementation quirks of <a href='http://www.dekorte.com/Objective-C/'>Objective C</a>. +</p> + diff --git a/content/posts/2004-10-02-rubyconf-continues.html b/content/posts/2004-10-02-rubyconf-continues.html new file mode 100644 index 0000000..9976d7c --- /dev/null +++ b/content/posts/2004-10-02-rubyconf-continues.html @@ -0,0 +1,20 @@ +--- +date: "2004-10-02T19:40:15Z" +title: RubyConf continues +--- + +<p> +There were presentations today on <a href='http://www.rubyonrails.org/'>Ruby on Rails</a>, a cool web application development framework, <a href='http://www.atdot.net/yarv/'><acronym title='Yet Another Ruby VM'>YARV</acronym></a>, and one on <a href='http://testunit.talbott.ws/'>Test::Unit</a> (or <code>test/unit</code>, as he likes to call it now). Up next is the keynote addres with the creator of <a href='http://www.dekorte.com/Objective-C/'>Objective C</a>. Also, my little <acronym title='Graphical User Interface'>GUI</acronym> for <a href='http://rubygems.rubyforge.org/'>RubyGems</a> is coming along, here's a screenshot: +</p> + +<p> +<a href='/gallery/misc/gemboree_progress.png'><img src='/gallery/misc/gemboree_progress-thumb.png' + width='274' height='200' title='Gemboree' alt='Gemboree' border='0' style='border: 1px solid black' /></a> +</p> + +<p> +The green items are installed gems, and the nested entries are for +packages with more than one version in the <a +href='http://gems.rubyforge.org/'>RubyGems repository</a>. +</p> + diff --git a/content/posts/2004-10-03-final-day-of-rubyconf.html b/content/posts/2004-10-03-final-day-of-rubyconf.html new file mode 100644 index 0000000..7ca4e61 --- /dev/null +++ b/content/posts/2004-10-03-final-day-of-rubyconf.html @@ -0,0 +1,9 @@ +--- +date: "2004-10-03T13:49:13Z" +title: Final Day of RubyConf +--- + +<p> +RubyConf is officially over. The final presentations today were on code generation and <a href='http://copland.rubyforge.org/'>Copland</a>. At the moment, people are roaming around, chatting, and working on random projects together. I've got a bunch of pictures and a handful of new project ideas, both of which will be posted later this afternoon. +</p> + diff --git a/content/posts/2004-10-04-misc-new-goodies.html b/content/posts/2004-10-04-misc-new-goodies.html new file mode 100644 index 0000000..d84591e --- /dev/null +++ b/content/posts/2004-10-04-misc-new-goodies.html @@ -0,0 +1,25 @@ +--- +date: "2004-10-04T05:26:04Z" +title: Misc New Goodies +--- + +<p> +I whipped up some quick <a href='http://ruby-lang.org/'>Ruby</a> bindings for the <a href='http://freshmeat.net/articles/view/1048/'>Freshmeat <acronym title='eXtensible Markup Language Remote Procedure Call'>XML-RPC</acronym> <acronym title='Application Programmer Interface'>API</acronym></a>. They're functional, but I still need to write documentation, do a little testing, and package them up. In the mean time, if you want to use them, you can <a href='http://cvs.pablotron.org/?m=freshmeat-ruby'>grab them from <acronym title='Concurrent Versioning System'>CVS</acronym></a>. +</p> + +<p> +I've got two pockets full of business cards and scraps of paper with email addresses and project ideas from <a href='http://rubyconf.org/'>RubyConf</a> to go through. There are also couple of small <a href='http://ruby-lang.org/'>Ruby</a> bindings I'll be releasing within the next couple of weeks. +</p> + +<p> +I've got to get up in a few hours, so here's my parting finale; a couple of new screenshots from my graphical <a href='http://rubygems.rubyforge.org/'>RubyGems</a> package manager: +</p> + +<p> +<a href='/gallery/misc/gemini_progress-1.png'><img src='/gallery/misc/gemini_progress-1-thumb.png' width=274' height='206' border='0' style='border: 1px solid black' /></a> +</p> + +<p> +<a href='/gallery/misc/gemini_progress-2.png'><img src='/gallery/misc/gemini_progress-2-thumb.png' width=274' height='206' border='0' style='border: 1px solid black' /></a> +</p> + diff --git a/content/posts/2004-10-06-localfark-gemini-bbc-wikipedia-link.html b/content/posts/2004-10-06-localfark-gemini-bbc-wikipedia-link.html new file mode 100644 index 0000000..4d09ec1 --- /dev/null +++ b/content/posts/2004-10-06-localfark-gemini-bbc-wikipedia-link.html @@ -0,0 +1,17 @@ +--- +date: "2004-10-06T08:31:51Z" +title: LocalFark, Gemini, BBC-Wikipedia Link +--- + +<p> +<a href='http://www.whitelabel.org/archives/002248.html'> This guy</a> wrote a <a href='http://www.whitelabel.org/wp/wikiproxy.php'><acronym title='British Broadcasting Corporation'>BBC</acronym> News scraper</a> that links with key phrases on <a href='http://wikipedia.org/'>Wikipedia</a> and tracks references in the blogosphere (that term really rubs me the wrong way) via <a href='http://technorati.com/'>Technorati</a>. +</p> + +<p> +My <a href='http://rubygems.rubyforge.org/'>RubyGems</a> <acronym title='Graphical User Interface'>GUI</acronym> is coming along. Last night I actually installed a couple of packages with it. I still need to write the uninstall code and fix some dependency resolution issues, then it will be ready for public consumption. +</p> + +<p> +For those of you using <a href='/software/localfark/'>LocalFark</a>, they made a small change to the <acronym title='HyperText Markup Language'>HTML</acronym> on the front page which broke the <a href='/software/localfark/'>LocalFark</a> scraping. I've fixed it here at home, but I'll need a little time to package up a new release. +</p> + diff --git a/content/posts/2004-10-09-sqlite-db-locking-a-problem.html b/content/posts/2004-10-09-sqlite-db-locking-a-problem.html new file mode 100644 index 0000000..5c15e44 --- /dev/null +++ b/content/posts/2004-10-09-sqlite-db-locking-a-problem.html @@ -0,0 +1,24 @@ +--- +date: "2004-10-09T22:22:38Z" +title: SQLite DB-Locking a Problem? +--- + +<p> +I've been playing with <a href='http://sqlite.org/'>SQLite</a> for the last couple of days. I'm trying to figure out if it's a suitable replacement for the ad-hoc storage format I've got for <a href='http://raggle.org/'>Raggle</a>. <a href='http://sqlite.org/'>SQLite</a> has a lot of benefits: it's fast, small (the , and free (public domain). It supports sub-selects, atomic transactions, and there's a complete set of <a href='http://sqlite-ruby.sf.net/'>Ruby bindings</a> (which are available as a <a href='http://rubygems.rubyforge.org/'>Gem</a>, but not as a <a href='http://debian.org/'>Debian</a> package... go figure). Of course all this goodness doesn't come without <a href='http://www.sqlite.org/omitted.html'>caveats</a>. Specifically, <a href='http://www.sqlite.org/faq.html#q7'>here's</a> the one that might be a problem for me: +</p> + +<blockquote cite='http://www.sqlite.org/faq.html#q7'> +<p> +Locking in SQLite is very course-grained. SQLite locks the entire database. Big database servers (PostgreSQL, Oracle, etc.) generally have finer grained locking, such as locking on a single table or a single row within a table. If you have a massively parallel database application, you should consider using a big database server instead of SQLite. +</p> + +<p> +Source: <cite><a href='http://www.sqlite.org/faq.html'>SQLite <acronym +title='Frequently Asked Questions'>FAQ</acronym></a></cite> +</p> +</blockquote> + +<p> +<a href='http://raggle.org/'>Raggle</a> isn't a "massively parallel database application", but it can have up to N threads (where N is the number of feeds a user is subscribed to) attempting to write to the feed list simultaneously. I can probably queue database inserts and limit the threads to <code>SELECT</code>ing from their respective tables, but that smacks of hackery, which is what I was trying to avoid in the first place. I guess it's still a better solution than what <a href='http://raggle.org/'>Raggle</a> does right now. Ah well, <em>C'est la vie</em>. +</p> + diff --git a/content/posts/2004-10-10-gemini-in-cvs.html b/content/posts/2004-10-10-gemini-in-cvs.html new file mode 100644 index 0000000..ef658d5 --- /dev/null +++ b/content/posts/2004-10-10-gemini-in-cvs.html @@ -0,0 +1,9 @@ +--- +date: "2004-10-10T13:05:08Z" +title: Gemini in CVS +--- + +<p> +I just added Gemini, my graphical <a href='http://rubygems.rubyforge.org/'>RubyGems</a> package manager, to <a href='/cvs/'><acronym title='Concurrent Versioning System'>CVS</acronym></a>. Install should be working correctly now, and remove needs a bit of tweaking. +</p> + diff --git a/content/posts/2004-10-10-response-to-wp-article.html b/content/posts/2004-10-10-response-to-wp-article.html new file mode 100644 index 0000000..06ff422 --- /dev/null +++ b/content/posts/2004-10-10-response-to-wp-article.html @@ -0,0 +1,96 @@ +--- +date: "2004-10-10T12:47:04Z" +title: Response to WP Article +--- + +Here's an email I just sent in response to <a href='http://www.washingtonpost.com/ac2/wp-dyn?pagename=article&contentId=A10089-2004Mar20¬Found=true'>this Washington Post article</a>. + + +<blockquote> +<p> +Hi Rob, +</p> + +<p> +I just read "Internet Providers Should Find Their Way to IMAP" [1], your +article on migrating email from POP3 to IMAP. I'm a UNIX system +administrator and programmer by day, and, as a hobby, I provide email +and web site hosting for a handful of family members, friends, and small +businesses. I'd like to share my experience configuring various mail +servers (also referred to as daemons), and offer some advice for readers +asking about IMAP or looking for a decent email client, and for ISPs +touting the high cost of providing IMAP service. +</p> + +<p> +For readers looking for a decent email client, I recommend Mozilla +Thunderbird [2]. Thunderbird is free, easy to use, and available for +several operating systems. Thunderbird is also small (about the size +of a decent quality MP3 file), and easy to install; my parents were able +to switch from Outlook to Thunderbird without any assistance from me or +their ISP. Best of all, Thunderbird is immune to existing email worms +and viruses, has powerful built-in spam filtering, supports signed and +encrypted email, and can communicate with secure email servers (POP3s +and IMAPs). Oh, Mac users might want to try Mail [3], which comes +pre-installed in recent versions of MacOS and supports many of the +features I mentioned above. +</p> + +<p> +As for ISPs, offering IMAP can be a real pain. Three of the most +popular IMAP daemons are Cyrus IMAPd, Courier IMAPd, and UW-IMAP [4]. +The problem with all of them is essentially the same: each requires +complicated and haphazard configuration, and none integrate gracefully +with existing server configurations. For example, the IMAP daemons +listed above store email messages on the server in MH or Maildir format, +while most UNIX systems and POP3 daemons store email messages in mbox +format. +</p> + +<p> +The solution? An IMAP daemon called Dovecot [5]. Dovecot is a free +POP3 and IMAP daemon which supports mbox and Maildir mail spool formats, +supports IMAPs and POP3s, and is incredibly easy to set up. In Debian +Linux [6], Dovecot basically configures itself. Dovecot also supports +the most common user authentication schemes out of the box: PAM, +/etc/passwd, and LDAP. Dovecot works great in Linux and Solaris (the +two most common UNIX variants used by ISPs), and also in other operating +systems such as FreeBSD and MacOS. +</p> + +<p> +I'm available to answer questions from readers about IMAP and IMAP +daemons. I can be reached via email at pabs@pablotron.org or +paul@paulduncan.org. +</p> + +<p> +References: +</p> + +<ol> +<li>"Internet Providers Should Find Their Way to IMAP": <a href='http://tinyurl.com/5kzbc'>http://tinyurl.com/5kzbc</a></li> +<li>Mozilla Thunderbird: <a href='http://mozilla.org/products/thunderbird/'>http://mozilla.org/products/thunderbird/</a></li> +<li>Apple Mail: <a href='http://www.apple.com/macosx/features/mail/'>http://www.apple.com/macosx/features/mail/</a></li> +<li>Cyrus, Courier, and UW-IMAP: <a +href='http://asg.web.cmu.edu/cyrus/imapd/'>http://asg.web.cmu.edu/cyrus/imapd/</a>, + <a href='http://www.courier-mta.org/'>http://www.courier-mta.org/</a>, and <a href='http://www.washington.edu/imap/'>http://www.washington.edu/imap/</a> + (respectively)</li> +<li>Dovecot: <a href='http://www.dovecot.org/'>http://www.dovecot.org/</a></li> +<li>Debian Linux: <a href='http://www.debian.org/'>http://www.debian.org/</a></li> +</ol> + +<p> +--<br /> +Paul Duncan <<a href='mailto:pabs@pablotron.org'>pabs@pablotron.org</a>><br /> +<a href='http://www.pablotron.org/'>http://www.pablotron.org/</a> +</p> +</blockquote> + +<p> +<b>Update:</b> Changed the <acronym title='Washington Post'>WP</acronym> +<acronym title='Uniform Resource Locator'>URL</acronym> to a <a +href='http://tinyurl.com/'>TinyURL</a> link instead, in order to fix +page reflow. +</p> + diff --git a/content/posts/2004-10-10-rubyconf-pictures.html b/content/posts/2004-10-10-rubyconf-pictures.html new file mode 100644 index 0000000..49c1e2e --- /dev/null +++ b/content/posts/2004-10-10-rubyconf-pictures.html @@ -0,0 +1,9 @@ +--- +date: "2004-10-10T14:23:57Z" +title: RubyConf Pictures +--- + +<p> +I posted my <a href='http://paulduncan.org/gallery/200410-rubyconf/'>RubyConf pictures</a> over on <a href='http://paulduncan.org/'>my other page</a>. +</p> + diff --git a/content/posts/2004-10-19-comment-spam-on-my-other-page.html b/content/posts/2004-10-19-comment-spam-on-my-other-page.html new file mode 100644 index 0000000..5b1d6f1 --- /dev/null +++ b/content/posts/2004-10-19-comment-spam-on-my-other-page.html @@ -0,0 +1,13 @@ +--- +date: "2004-10-19T23:16:42Z" +title: Comment Spam on my Other Page :( +--- + +<p> +Some dickhead spammed <a href='http://paulduncan.org/'><code>paulduncan.org</code></a>. The thing is, my backend is custom, so either someone took the time to sift through my source code (unlikely), or there's a spam bot out there that's smart about posting comments. +</p> + +<p> +Either way, I added a ban list to the page, so the problem is fixed now. Everyone should add the <acronym title='Internet Protocol'>IP</acronym> address <code>193.226.188.200</code> to their ban lists. +</p> + diff --git a/content/posts/2004-10-25-new-raggle-engine-in-cvs.html b/content/posts/2004-10-25-new-raggle-engine-in-cvs.html new file mode 100644 index 0000000..c637093 --- /dev/null +++ b/content/posts/2004-10-25-new-raggle-engine-in-cvs.html @@ -0,0 +1,56 @@ +--- +date: "2004-10-25T02:29:48Z" +title: New Raggle Engine in CVS +--- + +<p> +What will probably become the new <a href='http://raggle.org/'>Raggle</a> engine is now in <a href='/cvs/'><acronym title='Concurrent Versioning System'>CVS</acronym></a>, under the module name <code>squaggle</code>. Here's what I've got so far: +</p> + +<ul> +<li><a href='http://sqlite.org/'>SQLite</a> backend.</li> +<li>Full <a +href='http://fishbowl.pastiche.org/2002/10/21/http_conditional_get_for_rss_hackers'>Conditional +<acronym title='HyperText Transfer Protocol'>HTTP</acronym> GET</a> support +(both <code>ETag</code> and <code>Last-Modified</code>)</a></li> +<li><acronym title='HyperText Transfer Protocol'>HTTP</acronym> proxy support (via the <code>http_proxy</code> <abbr title='Environment'>env</abbr> variable or the config hash; there's a stub for win32 proxy support at the moment)</li> +<li><acronym title='HyperText Transfer Protocol'>HTTP</acronym> 1.0 basic authentication support</li> +<li>Simple adding and listing feeds (via the <code>Squaggle#feeds</code> and <code>Squaggle#feed_items</code> methods</li> +<li>Engine should be <a href='http://ruby-lang.org/'>Ruby</a> thread safe, but at the moment there's some quirk with the <a href='http://sqlite.org/'>SQLite</a> behavior.</li> +<li>Significantly better memory consumption (memory use will ultimately depend on the interface implementation, but the engine is designed so the interface can query as much or as little information about feeds and feed items as it wants)</li> +<li>Basic <acronym title='Really Simple Summary / RDF Site Summary / Rich Site Summary / probably more'>RSS</acronym> 0.91-0.92 (Userland), 1.0, and 2.0 support (presumably it'll work with Netscape 0.90-0.91 and Userland 0.93-0.94 feeds as well, although I haven't tested with those). There are stubs for <acronym title='Really Simple Summary / RDF Site Summary / Rich Site Summary / probably more'>RSS</acronym> 1.0 modules (via the <code>feed_attrs</code> table, for elements I haven't implemented yet, and for <a href='http://www.mnot.net/drafts/draft-nottingham-atom-format-02.html'>Atom</a> support as well. I have more to say about this one below</li> +</ul> + +<p> +I spent a bunch of time in the last month reading through as many <acronym title='Really Simple Summary / RDF Site Summary / Rich Site Summary / probably more'>RSS</acronym> specs as could get my hands on. I read through the <a href='http://www.mnot.net/drafts/draft-nottingham-atom-format-02.html'>Atom spec</a> as well. The three biggest problems users have had with <a href='http://raggle.org/'>Raggle</a> are speed, memory use, and supported feeds. I'm attempting to address the speed issue in a couple of ways: by deferring as much of the internal searching and sorting to <a href='http://sqlite.org/'>SQLite</a> (aside: this also has a side benefit of dramatically simplifying the code, since all the funky array indexing, time conversions, ID hashing, etc goes away and becomes <acronym title='Structured Query Language'>SQL</acronym> queries :D). The memory use has also been addressed with a caveat (see my note above about the end-user interfaces and memory requirements). Paradoxically, the Ncurses interface may end up using more memory than the web interface, because the Ncurses interface has more speed and caching requirements than the web interface. As for proper feed support, that one is a little bit trickier. +</p> + +<p> +Supporting <acronym title='Really Simple Summary / RDF Site Summary / +Rich Site Summary / probably more'>RSS</acronym> properly is actually +kind of a bitch, because there is no official standard (although there +are <a +href='http://diveintomark.org/archives/2004/02/04/incompatible-rss'>plenty +of specifications</a>). Even worse, a <em>lot</em> of feeds play fast +an loose with requirements, so strict <acronym title='Really Simple +Summary / RDF Site Summary / Rich Site Summary / probably +more'>RSS</acronym> parsers (like the undocumented one included with <a +href='http://ruby-lang.org/'>Ruby</a> 1.8, or <a +href='http://www.chadfowler.com/'>Chad Fowler's</a> <a +href='http://www.chadfowler.com/ruby/rss/'>Ruby/RSS</a> module) are nice +pieces of code, but useless for writing an <acronym title='Really Simple Summary / RDF Site Summary / Rich Site Summary / probably more'>RSS</acronym> aggregator, in the same way that strict <acronm title='HyperText Markup Language'>HTML</acronym> parsers are useless for web browsers. +</p> + +<p> +The way I dealt with this problem in previous versions of <a +href='http://raggle.org/'>Raggle</a> was to simply ignore the specs that +were out there and look for specific elements in feeds. This has worked +so well I'm going to keep doing it, with a twist. My goal with Squaggle +is to keep <a href='http://raggle.org/'>Raggle</a> aware of as much of +the <acronym title='Really Simple Summary / RDF Site Summary / Rich Site Summary / probably more'>RSS</acronym> spectrum as I can, but have the engine (Squaggle) only pay attention to what it absolutely has to. For example, if a feed has mixed RSS 0.92/1.0 elements, <a href='http://raggle.org/'>Raggle</a> will parse it blindly and save what it can. +</p> + +<p> +What I've got so far is available in <acronym title='Concurrent Versioning System'>CVS</acronym> under the module <a href='http://cvs.pablotron.org/?m=squaggle'><code>squaggle</code></a>. Play around with it and let me know what you think. +</p> + diff --git a/content/posts/2004-10-25-official-raa-soap-wsdl.html b/content/posts/2004-10-25-official-raa-soap-wsdl.html new file mode 100644 index 0000000..a999617 --- /dev/null +++ b/content/posts/2004-10-25-official-raa-soap-wsdl.html @@ -0,0 +1,44 @@ +--- +date: "2004-10-25T03:34:30Z" +title: '"Official" RAA SOAP WSDL' +--- + +<p> +The "official" <a href='http://raa.ruby-lang.org'><acronym title='Ruby +Application Archive'>RAA</acronym></a> <acronym title='Simple Object Access Protocol'>SOAP</acronym> <acronym title='Web Services Description Language'>WSDL</acronym> is at the following <acronym title='Uniform Resource Identifier'>URI</acronym>: +</p> + +<blockquote cite='Email from nakahiro@sarion.co.jp'> +<code> +<a href='http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/'>http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/</a></code> +</blockquote> + +<p> +Why am I posting this here? Because I had a <em>hell</em> of a time finding it. The old <code>raa-xml.xml</code> and <code>raa-rdf.rdf</code> links were broken, the <a href='http://raa.ruby-lang.org/'><acronym title='Ruby Application Archive'>RAA</acronym></a> sample code included with <a href='http://ruby-lang.org/'>Ruby</a> 1.8 wasn't undocumented (and didn't work for me the first time around), and <a href='http://google.com/'>googling</a> for the answer didn't turn up squat. Here's a brief example of how to use the <acronym title='Web Services Description Language'>WSDL</acronym> <acronym title='Uniform Resource Identifier'>URI</acronym> above with the <code>WSDLDriverFactory</code> class included with <a href='http://ruby-lang.org/'>Ruby</a> 1.8: +</p> + +<blockquote> + <pre><code> +require 'soap/wsdlDriver' + +WSDL_URI = 'http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/' + +# connect to RAA and create SOAP proxy object +raa = SOAP::WSDLDriverFactory.new(WSDL_URI).create_driver + +# get a list of packages +pkg_list = raa.names + +# get a tree of packages grouped by major/minor category +pkg_tree = raa.tree_by_category + +# get information about a specific package (gem) +info = raa.gem('rubilicious') + + </code></pre> +</blockquote> + +<p> +If you're interested, <a href='http://rubyforge.org/pipermail/rubygems-developers/2004-October/001140.html'>this post</a> to the <a href='http://rubyforge.org/pipermail/rubygems-developers/'>RubyGems Developers mailing list</a> has a more detailed summary of the problems I had tracking down this simple bit of information. +</p> + diff --git a/content/posts/2004-10-25-rss-formats-oh-my.html b/content/posts/2004-10-25-rss-formats-oh-my.html new file mode 100644 index 0000000..3580990 --- /dev/null +++ b/content/posts/2004-10-25-rss-formats-oh-my.html @@ -0,0 +1,9 @@ +--- +date: "2004-10-25T02:39:55Z" +title: RSS Formats, Oh My! +--- + +<p> +<a href='http://pablotron.org/download/rss_elements-20041014.xls'>Here's</a> a spreadsheet of the elements for each of the "common" (Userland 0.91, 0.92, 2.0, and <acronym title='Really Simple Summary / RDF Site Summary / Rich Site Summary / probably more'>RSS</acronym> 1.0) <acronym title='Really Simple Summary / RDF Site Summary / Rich Site Summary / probably more'>RSS</acronym> formats out there. This spreadsheet is my personal reference for the <a href='http://cvs.pablotron.org/?m=squaggle'>squaggle</a> schemas and element lists. At the moment it's an evil <a href='http://microsoft.com/'>Microsoft</a> Excel file (generated with <a href='http://openoffice.org/'>OpenOffice</a>; I'll convert it to something a bit more sane later on. At the moment only the <acronym title='Really Simple Summary / RDF Site Summary / Rich Site Summary / probably more'>RSS</acronym> 0.91 and 0.92 (again, Userland) are complete. +</p> + diff --git a/content/posts/2004-11-09-objective-review-of-windows.html b/content/posts/2004-11-09-objective-review-of-windows.html new file mode 100644 index 0000000..8c651c5 --- /dev/null +++ b/content/posts/2004-11-09-objective-review-of-windows.html @@ -0,0 +1,21 @@ +--- +date: "2004-11-09T22:31:42Z" +title: Objective Review of Windows! +--- + +<p> +I just found this comment in the <a href='http://raa.ruby-lang.org/list.rhtml?name=REXML'>REXML</a> documentation: +</p> + +<blockquote> +Internet Explorer is the worst piece of crap to have ever been written, +with the possible exception of Windows itself. Since IE is unable to +parse proper XML, we have to provide a hack to generate XML that IE's +limited abilities can handle. This hack inserts a space before the /> on +empty tags. Defaults to false +</blockquote> + +<p> +<a href='http://www.ruby-doc.org/stdlib/libdoc/rexml/rdoc/classes/REXML/Element.html#M000402'>Source</a>. +</p> + diff --git a/content/posts/2004-11-15-improving-e16-xorg-transparency-support.html b/content/posts/2004-11-15-improving-e16-xorg-transparency-support.html new file mode 100644 index 0000000..a9f0219 --- /dev/null +++ b/content/posts/2004-11-15-improving-e16-xorg-transparency-support.html @@ -0,0 +1,28 @@ +--- +date: "2004-11-15T19:53:40Z" +title: Improving E16 Xorg Transparency Support +--- + +<p> +<a href='/download/e-0.16.7.1-xorg_trans.patch.gz'>Here's</a> a patch against <a href='http://www.enlightenment.org/'>Enlightenment</a> 0.16.7.1 that adds better transparency support under the <acronym title='Concurrent Versioning System'>CVS</acronym> version of <a href='http://x.org/'>X.org</a>. It's a little rough, but th patch basically makes windows partially transparent during an opaque move (<em>real</em> transparency, not the faked nonsense built-in to E16), and it adds a "Transparency" menu to the window operations menu (eg, the menu you get in most themes when you right-click on the title bar, or when you ALT+right-click anywhere in the window). You'll need to clear your cached version of <code>menus.cfg</code> in order for the new menu to show up. Here's a screenshot: +</p> + +<p> +<a href='/screenshots/e16-xorg_trans_shot-0.png'><img src='/screenshots/e16-xorg_trans_shot-0-thumb.png' width='400' height='300' title='better xorg transparency support in E16' alt='better xorg transparency support in E16' border='0' /></a> +</p> + +<p> +For those of you who haven't seen X.org transparency in action yet, +<a href='/screenshots/first_xorg_shot.png'>here's</a> the first screenshot I +took once I got it set up: +</p> + +<p> +<a href='/screenshots/first_xorg_shot.png'><img src='/screenshots/first_xorg_shot-thumb.png' width='400' height='300' title='first xorg shot' alt='first xorg shot' border='0' /></a> +</p> + +<p> +Finally, if you're planning on setting up <a href='http://x.org/'>X.org</a>, but don't know where to start, +you might try <a href='/download/xorg_notes.txt'>reading my setup notes</a>. +</p> + diff --git a/content/posts/2004-11-16-interesting-ruby-talk-thread-on-rss-atom.html b/content/posts/2004-11-16-interesting-ruby-talk-thread-on-rss-atom.html new file mode 100644 index 0000000..27e7862 --- /dev/null +++ b/content/posts/2004-11-16-interesting-ruby-talk-thread-on-rss-atom.html @@ -0,0 +1,18 @@ +--- +date: "2004-11-16T19:03:29Z" +title: Interesting ruby-talk thread on RSS/Atom +--- + +<p> +<a +href='http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/120061'>Here's</a> +an interesting thread on <a +href='http://ruby-talk.org/'><code>ruby-talk</code></a> talking about +the <acronym title='RDF Site Summary / Really Simple Syndication / +etc'>RSS</acronym> module — which I'm not a big fan of — +built-in to <a href='http://ruby-lang.org/'>Ruby 1.8.x</a>. The thread +nicely illustrates the mess that is <acronym title='RDF Site Summary / Really Simple Syndication / +etc'>RSS</acronym>, and why consistency (and coherency) in standards +are extremely important. Interesting read. +</p> + diff --git a/content/posts/2004-11-23-mb-ruby-0-2-0.html b/content/posts/2004-11-23-mb-ruby-0-2-0.html new file mode 100644 index 0000000..791dacd --- /dev/null +++ b/content/posts/2004-11-23-mb-ruby-0-2-0.html @@ -0,0 +1,16 @@ +--- +date: "2004-11-23T20:02:42Z" +title: MB-Ruby 0.2.0 +--- + +<p> +I just posted a new version of <a href='/software/mb-ruby/'>MB-Ruby</a>, my <a href='http://ruby-lang.org/'>Ruby</a> bindings for <a href='http://musibrainz.org/'>MusicBrainz</a>. The only major change is a patch from Ed Summers, which removes the bitzi-related code so <a href='/software/mb-ruby/'>MB-Ruby</a> will compile against newer versions of <a href='http://musicbrainz.org/'>MusicBrainz</a>. +</p> + +<ul> +<li><a href='/download/mb-ruby-0.2.0.tar.gz'>Download MB-Ruby 0.2.0 (tarball)</a> (<a href='/download/mb-ruby-0.2.0.tar.gz.asc'>Signature</a>)</li> +<li><a href='/download/gems/mb-ruby-0.2.0.gem'>Download MB-Ruby 0.2.0 (gem)</a> (<a href='/download/gems/mb-ruby-0.2.0.gem.asc'>Signature</a>)</li> +<li><a href='/software/mb-ruby/ChangeLog'>ChangeLog</a></li> +<li><a href='/software/mb-ruby/doc/'><acronym title='Application Programmers Interface'>API</acronym> Reference</a></li> +</ul> + diff --git a/content/posts/2004-11-27-raggle-0-3-2-and-rubilicious-0-1-3.html b/content/posts/2004-11-27-raggle-0-3-2-and-rubilicious-0-1-3.html new file mode 100644 index 0000000..a9ba915 --- /dev/null +++ b/content/posts/2004-11-27-raggle-0-3-2-and-rubilicious-0-1-3.html @@ -0,0 +1,20 @@ +--- +date: "2004-11-27T13:20:15Z" +title: Raggle 0.3.2 and Rubilicious 0.1.3 +--- + +<p> +Two new releases today: <a href='http://raggle.org/'>Raggle</a> 0.3.2 and <a href='/software/rubilicious/'>Rubilicious</a> 0.1.3. Visit the <a href='http://raggle.org/'>Raggle page</a> for a list of changes and download information. Here's what's new with <a href='/software/rubilicious'>Rubilicious</a>: +</p> + +<ul> +<li><acronym title='HyperText Transfer Protocol'>HTTP</acronym> proxy support (based roughly on a patch from Guillaume Bisch)</li> +<li>A documentation fix from Josh Lucas</li> +<li><code>String#uri_escape</code> fix from James Britt</li> +<li>Support for changing the base Delicious <acronym title='Uniform Resource Identifier'>URI</acronym> (suggested by the <a href='http://del.icio.us/doc/api'>Delicious <acronym title='Application Programmers Interface'>API</acronym> Documentation)</li> +</ul> + +<p> +<a href='/download/rubilicious-0.1.3.tar.gz'>Download Rubilicious 0.1.3</a> (<a href='/download/rubilicious-0.1.3.tar.gz.asc'>Signature</a>, <a href='/download/gems/rubilicious-0.1.3.gem'>Gem</a>, and <a href='/download/gems/rubilicious-0.1.3.gem.asc'>Gem Signature</a>). +</p> + diff --git a/content/posts/2004-12-09-gah-people.html b/content/posts/2004-12-09-gah-people.html new file mode 100644 index 0000000..a1a7efe --- /dev/null +++ b/content/posts/2004-12-09-gah-people.html @@ -0,0 +1,12 @@ +--- +date: "2004-12-09T16:09:57Z" +title: '#Gah People' +--- + +<p> +Last night I finished working on <a +href='http://gah.pablotron.org/'>#Gah People</a>, a page for the +<acronym title='Internet Relay Chat'>IRC</acronym> channel <code>#gah</code>. Stop by and check it out. If you're a channel regular, create an account and add your own information! +Hopefully I'm going to get to talk to <a href='http://crypticreign.techieswithcats.com/'>crypticreign</a> about either collaberating or merging with <a href='http://planetgah.blogsite.org/'>Planet Gah</a>. Stay tuned. +</p> + diff --git a/content/posts/2005-02-16-guess-who-s-back.html b/content/posts/2005-02-16-guess-who-s-back.html new file mode 100644 index 0000000..f98c9c5 --- /dev/null +++ b/content/posts/2005-02-16-guess-who-s-back.html @@ -0,0 +1,254 @@ +--- +date: "2005-02-16T00:40:23Z" +title: Guess Who's Back? +--- + +<p> +The blog post hiatus has ended! Here's what's new in the world o' <a +href='/'>Pablotron</a>. First of all, the main hard drive on +<code>vault</code> — my file/database/<acronym +title='Lightweight Directory Access Protocol'>LDAP</acronym>/email +server — bit the dust last Wednesday. Fortunately the drive +just <em>started</em> to fail (instead of dying outright). I had ample +room to do immediate backups, and I had an unused 160G drive laying +around. I spent most of Sunday afternoon and all of Monday evening, +partitioning the new drive and copying stuff back to it. As far as I +can tell, the only thing I actually lost was the words file for <a +href='http://spamprobe.sf.net/'><code>spamprobe</code></a>. I don't really consider that much of a +loss, since I +save all my email (even the cursed spam), so I can easily toss the +requisite good and bad corpora at <a +href='http://spamprobe.sf.net/'><code>spamprobe</code></a> to get things +going again. Even though I'm short a 100G drive now, the experience +overall has been a positive one. Here's some thoughts I had; maybe +they'll prevent a week of stress for someone else: +</p> + +<ul> +<li>Regular backups are just something you <em>do</em>. The ad-hoc +backups I've been doing are better than nothing, but they wouldn't have +done me any good if the my drive had died outright. Had the +circumstances been different, I would have lost weeks, possibly even a +month of email. My solution is (rather, will be, once everything is up +and running again) an +<acronym title='Network File System'>NFS</acronym>-mounted backup +directory on every machine (obviously not for <a href='http://snowman.net/'>peope who don't like <acronym title='Network File System'>NFS</acronym>)</a>). Each machine will be responsible for it's +own daily and weekly backups, via <a href='http://directory.fsf.org/cron.html'><code>cron</code></a>. Depending on how large this data set is, +I'll be burning <acronym title='Digital Video Disc'>DVD</acronym>s of +the backup directory contents on a weekly or bi-weekly basis. +Aside: <a href='http://richlowe.net/'>Richard (richlowe)</a> has been +advocating revision controlled config files for quite a while (eg. +<code>cvs -d pabs@cvs:/cvs co etc-files/vault</code>); maybe +I'll give that for a spin, too.</li> +<li>Distribute services across machines. I've got 4 other machines +sitting around twiddling their thumbs at the moment. Any of them coud +easily be an authentication, database, email, +<acronym title='Lightweight Directory Access Protocol'>LDAP</acronym>, +or <acronym title='Concurrent Versioning System'>CVS</acronym> server, +but instead they're all sitting around twiddling their thumbs (to be +fair, <code>sumo</code> is my <acronym title='Internet Relay Chat'>IRC</acronym> +/<a href='http://postgresql.org/'>PostGres</a> machine, but that hardly +qualifies as a crippling load).</li> +<li>Keep extra hardware laying around. As a true geek you're already +doing this, of course :). The drive in <code>vault</code> started +failing at 1:30 in the morning on a Wendesday morning. I was able to +start making backups and moving stuff around <em>right then</em>. If I +didn't have the extra hard drive, I would have been +<acronym title='Shit Out of Luck'>SOL</acronym> for several +platter-scraping hours.</li> +<li>Losing your spam filter settings means you get to say cool words +like "corpora" on your web page.</li> +</ul> + +<p> +On the non-catastrophic hardware failure front, I upgraded +<code>halcyon</code> to the latest <a href='http://x.org/'>Xorg</a>, then +promptly downgraded to the latest stable release. Here's the +approximate order of events: +</p> + +<ol> +<li>Spent an hour or two configuring, compiling, and installing the +latest <a href='http://x.org/'>Xorg</a>.</li> +<li>Ran X, and found out that the proprietary <a href='http://nvidia.com/'>NVidia</a> driver isn't compatible with the latest +<acronym title='Concurrent Versioning System'>CVS</acronym> snapshot of <a +href='http://x.org/'>Xorg</a>.</li> +<li>Discovered just how painful the <a +href='http://www.freedesktop.org/Software/CompositeExt'>composite +extension</a> is without hardware acceleration by foolishly attempting +to run X using the <code>nv</code> driver. Hint: Imagine using +Netscape Navigator 3.0 on your old Commodore 64 with Photoshop doing an +RLE Gaussian Blur on a 100 meg image in the background.</li> +<li>Promptly downgraded to the stable release, cursing both <a +href='http://nvidia.com/'>NVidia</a> for their proprietary sillyness, +and the bastards at <a +href='http://freedesktop.org/'>freedesktop.org</a> for having the +audacity to make source code changes that inconvenienced me. I spent +plenty of time on this step, so go ahead and re-read that last paragraph +a couple of times.</li> +</ol> + +<p> +Since I spent the majority of a Sunday afternoon recompiling X no less +than 3 times, I also took the opportunity to try out the latest <a +href='http://enlightenment.org/'>Enlightenment DR16</a> from <acronym +title='Concurrent Versioning System'>CVS</acronym> (yes Kim, I'm one of +the <a +href='http://sourceforge.net/mailarchive/message.php?msg_id=10424379'>few +people still using e16</a>). It's got it's own built-in, mostly (semi?) +working composite manager, so the neither the patch nor the +<code>xcompmgr</code> hackery I describe in <a +href='http://pablotron.org/?cid=1402'>this post</a> are necessary any +more). The new default theme looks great, too! +</p> + +<p> +Why use other peoples' broken software when you can write your own? +Here's the latest on the <a href='http://pablotron.org/'>Pablotron</a> +coding front: +</p> + +<ul> +<li>I've converted the +<acronym title='Really Simple Summary / RDF Site Summary / Who really knows what RSS stands for now, anyway?'>RSS</acronym> +feeds on <a href='http://pablotron.org/'>pablotron.org</a>, <a +href='http://paulduncan.org/'>paulduncan.org</a>, and <a +href='http://raggle.org/'>raggle.org</a> from steaming loads of +standards-incompliant crap to pedantically-correct +<a href='http://blogs.law.harvard.edu/tech/rss'><acronym title='Really Simple Summary / RDF Site Summary / Who really knows what RSS stands for now, anyway?'>RSS</acronym> 2.0</a>. +If your <acronym title='Really Simple Summary / RDF Site Summary / Who really knows what RSS stands for now, anyway?'>RSS</acronym> +aggregator couldn't read my pages before, it probably can now (unless +your aggregator is based on the +<acronym title='Really Simple Summary / RDF Site Summary / Who really knows what RSS stands for now, anyway?'>RSS</acronym> library +built-in to <a href='http://ruby-lang.org/'>Ruby 1.8</a>, but I'll get +to that part of the story in a few minutes...)</li> +<li>Lots and lots and lots of updates to the next version of <a +href='http://raggle.org/'>Raggle</a>. Some of the changes are even by me! <a +href='http://halffull.org/'>Thomas Kirchner (redshift)</a> has been +doing an unbelievable amount of work on the <a +href='http://cvs.pablotron.org/?m=raggle'><acronym +title='Concurrent Versioning System'>CVS</acronym> version of +Raggle</a>. So much so, in fact, that I feel kind of embarassed calling +this latest version mine at all. So I think when it's ready for +release, we'll call it <code>kirchneraggle</code> or something more +suitable ;).</li> +<li><a +href='http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/4393'>This +patch</a> for <a href='http://ruby-lang.org/'>Ruby</a> which +adds <code>wcolor_set</code> support to the built-in Curses interface. +Ville suggested it eons ago, and that was the last thing stopping me +from porting <a href='http://raggle.org/'>Raggle</a> from Ncurses-Ruby. +</li> +<li>A partially working Curses windowing library for <a +href='http://ruby-lang.org/'>Ruby</a>. This isn't in <a +href='http://cvs.pablotron.org/'><acronym title='Concurrent Versioning +System'>CVS</acronym></a> just yet, but don't worry, I've got some new +stuff for you to play with. Keep reading...</li> +</ul> + +<p> +The big stuff I've been working on lately is core of the future <a +href='http://raggle.org/'>Raggle</a>. Before I begin, here's a +high-level overview of how the components interact with one another +(yup, a diagram!): +</p> + +<p> +<img src='http://pablotron.org/gallery/misc/next-gen-raggle-thumb.png' + width='574' height='602' title='next gen raggle' alt='next gen raggle' + border='0' /> +</p> + +<p> +I've mentioned <a +href='http://cvs.pablotron.org/'><code>Squaggle</code></a> previously, +but for those of you sleeping in the back of the class (you know who you +are), here's a brief +recap. <a href='http://cvs.pablotron.org/?m=squaggle'>Squaggle</a> is +the <a href='http://sqlite-ruby.rubyforge.org/'>SQLite-Ruby</a>-based +engine for <a href='http://raggle.org/'>Raggle</a>. It's <a +href='http://pablotron.org/?cid=1398'>cleaner</a>, faster, it +uses less memory, and it lets me do all sorts of cool things I can't +really do with the current engine (fancty <a +href='http://del.icio.us/'>delicious</a>-style tagging, fast cross-feed +searching, smart/auto categorization, and more). The version of <a +href='http://cvs.pablotron.org/?m=squaggle'>Squaggle</a> in <a +href='http://cvs.pablotron.org/'><acronym title='Concurrent Versioning System'>CVS</acronym></a> +is functional (it even includes a usable <a +href='http://webrick.org/'>WEBrick</a>-based interface. +</p> + +<p> +So what's this new stuff on ye olde diagram? <a +href='http://cvs.pablotron.org/?m=libptime'><code>libptime</code></a> is a +C-based +<a href='http://asg.web.cmu.edu/rfc/rfc822.html#sec-5'><acronym +title='Request For Comments'>RFC</acronym>822 datetime</a> and <a +href='http://www.w3.org/TR/NOTE-datetime'><acronym +title='W3 Consortium'>W3C</acronym> datetime</a> parsing library. It's +BSD licensed, so you can <a +href='http://pablotron.org/download/libptime-0.1.0.tar.gz'>download +version 0.1.0</a> (<a +href='http://pablotron.org/download/libptime-0.1.0.tar.gz.asc'>signature</a>), +and use it to your heart's content. The other new library on the +diagram is <a +href='http://cvs.pablotron.org/?m=libfeed'><code>libfeed</code></a>, an +<a href='http://expat.sf.net/'>Expat</a>-based <acronym title='Really Simple Summary / RDF Site Summary / Who really knows what RSS stands for now, anyway?'>RSS</acronym> +(0.9x, <a href='http://web.resource.org/rss/1.0/spec'>1.0</a>, and +<a href='http://blogs.law.harvard.edu/tech/rss'>2.0</a>)/<a +href='http://www.atomenabled.org/developers/syndication/atom-format-spec.php'>Atom</a> +feed parser. Why bother writing an <acronym title='Really Simple Summary / RDF Site Summary / Who really knows what RSS stands for now, anyway?'>RSS</acronym> +parser in C? The existing <a href='http://raggle.org/'>Raggle</a> engine is +slow, partly from being <acronym +title='Document Object Model'>DOM</acronym>-based, and partly from being +written in <a href='http://ruby-lang.org/'>Ruby</a>. Don't get me wrong, <a +href='http://www.germane-software.com/software/rexml/'>REXML</a> is a +great <acronym title='eXtensible Markup Language'>XML</acronym> parser, +but <acronym title='Really Simple Summary / RDF Site Summary / Who really knows what RSS stands for now, anyway?'>RSS</acronym> +aggregators deal in volume, and I want to be sure the volume isn't +constrained by parsing. I also noticed there wasn't a nice C-based <acronym title='Really Simple Summary / RDF Site Summary / Who really knows what RSS stands for now, anyway?'>RSS</acronym>/Atom +parsing library. Now there is (well, almost!). If that doesn't convince you, then maybe this will: +</p> +<pre style='padding: 20px;'><code> +pabs@halcyon:~/cvs/libfeed/test> du -sh data/big-pdo-wdom.rss +<b>15M</b> data/big-pdo-wdom.rss +pabs@halcyon:~/cvs/libfeed/test> time perl -mXML::RSS -e \ + '$rss = new XML::RSS; $rss->parsefile("data/big-pdo-wdom.rss");' +real <b>7m56.892s</b> +user 4m31.578s +sys 0m19.939s +pabs@halcyon:~/cvs/libfeed/test> time perl -mXML::RSS -e \ + '$rss = new XML::RSS; $rss->parsefile("data/big-pdo-wdom.rss");' +real <b>5m57.838s</b> +user 4m28.727s +sys 0m3.703s +pabs@halcyon:~/cvs/libfeed/test> time ruby -rrss/2.0 -e \ + 'RSS::Parser::parse(File.read("data/big-pdo-wdom.rss"))' +real <b>2m30.950s</b> +user 1m46.904s +sys 0m8.610s +pabs@halcyon:~/cvs/libfeed/test> time ./testfeed data/big-pdo-wdom.rss \ + >/dev/null 2>&1 +real <b>0m2.195s</b> +user 0m1.472s +sys 0m0.104s +pabs@halcyon:~/cvs/libfeed/test> time ./testfeed data/big-pdo-wdom.rss \ + >/dev/null 2>&1 +real <b>0m2.010s</b> +user 0m1.475s +sys 0m0.099s +</code></pre> + +<p> +The <a href='http://perl.org/'>Perl</a> times were so bad I had to run +them twice to be sure. 60 times faster than <a +href='http://ruby-lang.org/'>Ruby</a> and over 100 times faster than <a +href='http://perl.org/'>Perl</a>; I'd say that's a pretty good start :). +</p> + +<p> +Unfortunately, I have to be awake in three hours, so I'll have +to save the rest of the next-gen <a href='http://raggle.org/'>Raggle</a> +description for another day... +</p> + diff --git a/content/posts/2005-03-04-profanity.html b/content/posts/2005-03-04-profanity.html new file mode 100644 index 0000000..98c1074 --- /dev/null +++ b/content/posts/2005-03-04-profanity.html @@ -0,0 +1,74 @@ +--- +date: "2005-03-04T01:38:28Z" +title: Profanity! +--- + +<p> +The last week or so I've been working on <a href='http://cvs.pablotron.org/?m=profanity'>Profanity</a>, a <a href='http://ruby-lang.org/'>Ruby</a> windowing library for Curses. It's features include relative window geometry, a include an <acronym title='HyperText Markup Language'>HTML</acronym>-like markup for styled text, and proper terminal resizes support. I've whipped up a couple of example movies to demonstrate the geometry engine and styled text: +</p> + +<ul> +<li><a href='/download/profanity-20050228.mpg'><code>profanity-2050228.mpg</code></a>: An example of the geometry engine handling terminal resizes.</li> +<li><a href='/download/profanity-20050228.mpg'><code>profanity-2050228.mpg</code></a>: An example of window constraints, window gravity, and styled text (notice how styles can be applied to window titles as well as contents).</li> +</ul> + +<p> +By the way, if you're having trouble with these movies, try them in <a href='http://www.mplayerhq.hu/'>MPlayer</a> (I'm usually an <a href='http://xine.sf.net/'>Xine</a> guy myself, but it seems to mangle these too). In the interest of staving of the torch- and pitchfork-wielding mob of people who can't get either movie to play, here are a few still shots from each (click the thumbnails for the full image): +</p> + +<p> +<a href='/software/profanity/demos/20050228-shots/00.png'><img src='/software/profanity/demos/20050228-shots/thumb/00.png' width='160' height='164' title='profanity 20050228-00' alt='profanity 20050228-00' border='0' /></a> +<a href='/software/profanity/demos/20050228-shots/01.png'><img src='/software/profanity/demos/20050228-shots/thumb/01.png' width='160' height='164' title='profanity 20050228-01' alt='profanity 20050228-01' border='0' /></a> +<a href='/software/profanity/demos/20050228-shots/02.png'><img src='/software/profanity/demos/20050228-shots/thumb/02.png' width='160' height='164' title='profanity 20050228-02' alt='profanity 20050228-02' border='0' /></a> +<a href='/software/profanity/demos/20050228-shots/03.png'><img src='/software/profanity/demos/20050228-shots/thumb/03.png' width='160' height='164' title='profanity 20050228-03' alt='profanity 20050228-03' border='0' /></a> + +<a href='/software/profanity/demos/20050301-shots/00.png'><img src='/software/profanity/demos/20050301-shots/thumb/00.png' width='160' height='164' title='profanity 20050301-00' alt='profanity 20050301-00' border='0' /></a> +<a href='/software/profanity/demos/20050301-shots/01.png'><img src='/software/profanity/demos/20050301-shots/thumb/01.png' width='160' height='164' title='profanity 20050301-01' alt='profanity 20050301-01' border='0' /></a> +<a href='/software/profanity/demos/20050301-shots/02.png'><img src='/software/profanity/demos/20050301-shots/thumb/02.png' width='160' height='164' title='profanity 20050301-02' alt='profanity 20050301-02' border='0' /></a> +</p> + +<p> +Finally, here is a <a href='http://cvs.pablotron.org/cgi-bin/viewcvs.cgi/profanity/doc/examples/hello.rb?rev=1.1&view=auto'>simple example from <acronym title='Concurrent Versioning System'>CVS</acronym>)</a> which demonstrates what Profanity code looks like: +</p> + +<div style='font-size: 75%; background-color: #eee; padding: 10px; +margin: 10px 30px 10px 30px; border: 1px solid black;'> +<pre> +<code> +require 'profanity' + +# create a basic window class +class HelloWorldWindow < Profanity::Window + # contents of this window + LINES = [ + "<center>Welcome to <u>Profanity</u>!</center>", + '<center>Press <b>Q</b> or <b>ESC</b> to quit.</center>', + ] + + # override Window#draw_contents for our own devious purposes + def draw_contents + clear + puts LINES + end +end + +# create the profanity window manager +wm = Profanity::WindowManager.new + +# create geometry, and fix height to 4 lines +geom = Profanity::Geometry.new(0.5, 0.5, 0.7, 0.0) +geom.height_absolute = 4 + +# set gravity to center of the screen +geom.gravity.x = geom.gravity.y = 0.5 + +# create our window, show and refresh it +win = HelloWorldWindow.new(wm, geom, 'Hello World') +win.show; win.refresh + +# run until the user presses q, ctrl-c, or escape +wm.run { |key| break if [?q, 27, Curses::KEY_CTRL_C].include?(key) } +</code> +</pre> +</div> + diff --git a/content/posts/2005-03-04-rockbox-on-my-iriver-h120.html b/content/posts/2005-03-04-rockbox-on-my-iriver-h120.html new file mode 100644 index 0000000..b40f749 --- /dev/null +++ b/content/posts/2005-03-04-rockbox-on-my-iriver-h120.html @@ -0,0 +1,45 @@ +--- +date: "2005-03-04T04:10:18Z" +title: Rockbox on my iRiver H120 +--- + +<p> +This was already reported on <a href='http://engadget.com/'>Engadget</a> +and <a href='http://slashdot.org/'>Slashdot</a>, but in case you missed +it; <a href='http://rockbox.org/'>Rockbox</a> has been ported to the <a +href='http://www.iriver.com/html/product/prpa_product.asp?pidx=43'>iRiver +H100 series</a>! The bad news: No realtime <acronym title='MPEG 1/Layer +3 Audio'>MP3</acronym> playback (yet). The good news: <a +href='http://www.rockbox.org/twiki/bin/view/Main/IriverPort#Rockboy_plugin'>Rockboy</a>, +a port of the <a href='http://gnuboy.unix-fu.org/'>gnuboy gameboy +emulator</a>! It's still a little rough around the edges, so I've +started submitting +patches. The <a href='/download/rockboy_menu-20050303.tar.gz'>first +patch</a> — which has already been accepted to <acronym +title='Concurrent Versioning System'>CVS</acronym> — adds a menu +to Rockboy, and the <a +href='/download/rockboy_state-20050304.patch'>second patch</a> adds load +and save state support (via the menu). +</p> + +<p> +Anyway, <a href='http://rockbox.org/'>Rockbox</a> is great. It boots up +about 3 times faster than the stock iRiver interface, and it has a lot +more features, too! If you're an H120 owner who's unfazed by flashing +firmware and cross compiling, then I highly recommend you give <a +href='http://rockbox.org/'>Rockbox</a> a try (once the <acronym +title='MPEG 1/Layer 3 Audio'>MP3</acronym> playback is ironed out, that +is). As my parting gift, here's Bionic Commando running on my H120 (and +a couple shots of my menu system as well): +</p> + +<p> +<a href='/screenshots/rockboy-20050304/dscf0225.jpg'><img src='/screenshots/rockboy-20050304/thumb/dscf0225.jpg' width='160' height='182' border='0' title='rockboy on the iriver h120' /></a> +<a href='/screenshots/rockboy-20050304/dscf0226.jpg'><img src='/screenshots/rockboy-20050304/thumb/dscf0226.jpg' width='160' height='182' border='0' title='rockboy on the iriver h120' /></a> +<a href='/screenshots/rockboy-20050304/dscf0227.jpg'><img src='/screenshots/rockboy-20050304/thumb/dscf0227.jpg' width='160' height='182' border='0' title='rockboy on the iriver h120' /></a> +<a href='/screenshots/rockboy-20050304/dscf0228.jpg'><img src='/screenshots/rockboy-20050304/thumb/dscf0228.jpg' width='160' height='182' border='0' title='rockboy on the iriver h120' /></a> +<a href='/screenshots/rockboy-20050304/dscf0229.jpg'><img src='/screenshots/rockboy-20050304/thumb/dscf0229.jpg' width='160' height='182' border='0' title='rockboy on the iriver h120' /></a> +<a href='/screenshots/rockboy-20050304/dscf0230.jpg'><img src='/screenshots/rockboy-20050304/thumb/dscf0230.jpg' width='160' height='182' border='0' title='rockboy on the iriver h120' /></a> +<a href='/screenshots/rockboy-20050304/dscf0231.jpg'><img src='/screenshots/rockboy-20050304/thumb/dscf0231.jpg' width='160' height='182' border='0' title='rockboy on the iriver h120' /></a> +</p> + diff --git a/content/posts/2005-03-11-new-versions-of-imlib2-ruby-and-rubilicious.html b/content/posts/2005-03-11-new-versions-of-imlib2-ruby-and-rubilicious.html new file mode 100644 index 0000000..cd6d4b0 --- /dev/null +++ b/content/posts/2005-03-11-new-versions-of-imlib2-ruby-and-rubilicious.html @@ -0,0 +1,16 @@ +--- +date: "2005-03-11T03:45:06Z" +title: New Versions of Imlib2-Ruby and Rubilicious +--- + +<p> +I just released new versions of <a href='/software/imlib2-ruby/'>Imlib2-Ruby</a> and <a href='/software/rubilicious/'>Rubilicious</a>. I'm lazy and I don't feel like re-typing (or even copying... did I mention lazy?) the list of changes, so if you're interested you can read the <a href='http;//ruby-talk.org/'><code>ruby-talk</code></a> posts <a href='http://www.ruby-talk.org/cgi-bin/scat.rb/ruby/ruby-talk/133360'>here</a> and <a href='http://www.ruby-talk.org/cgi-bin/scat.rb/ruby/ruby-talk/133362'>here</a> (respectively). And here's the download information: +</p> + +<ul> +<li><a href='/download/imlib2-ruby-0.5.0.tar.gz'>Download Imlib2-Ruby 0.5.0 (tarball)</a> (<a href='/download/imlib2-ruby-0.5.0.tar.gz.asc'>signature</a>)</li> +<li><a href='/download/gems/imlib2-ruby-0.5.0.gem'>Download Imlib2-Ruby 0.5.0 (gem)</a> (<a href='/download/gems/imlib2-ruby-0.5.0.gem.asc'>signature</a>)</li> +<li><a href='/download/rubilicious-0.1.4.tar.gz'>Download Rubilicious 0.1.4 (tarball)</a> (<a href='/download/rubilicious-0.1.4.tar.gz.asc'>signature</a>)</li> +<li><a href='/download/gems/rubilicious-0.1.4.gem'>Download Rubilicious 0.1.4 (gem)</a> (<a href='/download/gems/rubilicious-0.1.4.gem.asc'>signature</a>)</li> +</ul> + diff --git a/content/posts/2005-03-11-three-language-showdown.html b/content/posts/2005-03-11-three-language-showdown.html new file mode 100644 index 0000000..f374d64 --- /dev/null +++ b/content/posts/2005-03-11-three-language-showdown.html @@ -0,0 +1,251 @@ +--- +date: "2005-03-11T04:13:57Z" +title: Three Language Showdown +--- + +<p> +Earlier this evening I wrote an example of how to read a list of field values to delete from an input file. That's not particularly interesting. The fact that I wrote it in three different languages is, though. So, without any further ado, the world's simplest database application, written in <a href='http://ruby-lang.org/'>Ruby</a>, <a href='http://perl.org/'>Perl</a>, and <a href='http://php.net/'>PHP</a>, for your viewing (comparing, contrasting, commenting, etc) pleasure: +</p> + +<p> +<b>Ruby:</b> +</p> + +<div style='font-size: 75%; background-color: #eee; padding: 10px; +margin: 10px 30px 10px 30px; border: 1px solid black;'> +<pre><code> #!/usr/bin/env ruby + + # load the mysql library + require 'mysql' + + # all our options go here + opt = { + :host => 'localhost', # server to connect to (usually localhost) + :user => 'USER', # replace USER with username + :pass => 'PASSWORD', # replace PASSWORD with password + :db => 'DATABASE', # replace DATABASE with database name + :tbl => 'TABLE', # replace TABLE with table name + :fld => 'FIELD', # name of field to match against + } + + # check first command-line argument for the filename + unless path = ARGV.shift + $stderr.puts "ERROR: missing filename" + exit -1 + end + + # check to make sure the specified file exists and is readable + unless File.exists?(path) && File.readable?(path) + $stderr.puts "ERROR: missing file or unreadable file: #{path}" + exit -1 + end + + # read a list of IDs from the file, excluding blank lines + ids = File.readlines(path).map { |id| id.strip }.grep(/[^\s]/) + + # connect to server, select database + db = Mysql::connect(opt[:host], opt[:user], opt[:pass]) + db.select_db(opt[:db]) + + # build a big friggin list of ids for the query below + ids_str = ids.map { |id| "'#{id.gsub(/'/, "''")}'" }.join(',') + + # build query + query = "DELETE FROM #{opt[:tbl]} WHERE #{opt[:fld]} IN (#{id_str})" + + # print the query out on the screen + puts query + + # check to make sure this really what we want to do + puts "Execute this query? (y/N)" + if gets =~ /^y/ + # user entered "y" or "Y", so execute the query + db.query(query) + puts "Done." + else + puts "Cancelled." + end +</code></pre></div> + +<p> +<b>Perl:</b> +</p> + +<div style='font-size: 75%; background-color: #eee; padding: 10px; +margin: 10px 30px 10px 30px; border: 1px solid black;'> +<pre><code> #!/usr/bin/perl + + # turn on warnings and strict interpretation + use warnings; + use strict; + + # load DBI module (see [2] below) + use DBI; + + my %opt = { + 'host' => 'localhost', # server to connect to (in our case, localhost) + 'user' => 'USER', # replace USER with username + 'pass' => 'PASSWORD', # replace PASSWORD with password + 'db' => 'DATABASE', # replace DATABASE with database + 'tbl' => 'TABLE', # replace TABLE with table name + 'fld' => 'FIELD', # replace FIELD with name of field + }; + + # declare vars + my ($path, $fh, @ids, $id_str, $dsn, $db, $query, $response, $a); + + # get filename + $path = shift @ARGV; + + # check path to make sure it's legit + die "ERROR: Missing filename\n" unless $path; + die "Missing or unreadable file: '$path'\n" unless (-e $path && -r $path); + + # read ids from file, stripping out blank lines + open $fh, $path or die "Couldn't open file: $!\n"; + @ids = grep { /[^\s]/ } <$fh>; + close $fh; + chomp @ids; + + # build DSN string, connect to database + $dsn = "dbi:mysql:database=" . $opt{'db'} . ";host=" . $opt{'host'}; + $db = DBI->connect($dsn, $opt{'user'}, $opt{'pass'}); + + # build id list string + $id_str = join(',', map { $a = $_; $a =~ s/'/''/g; "'$a'" } @ids); + + # build query string + $query = "DELETE FROM " . $opt{'tbl'} . + " WHERE " . $opt{'fld'} . " IN ($id_str)"; + + # print query out on screen + print "$query\n"; + + # check to make sure user really wants to execute query + print "Execute this query? (y/N)"; + $response = <STDIN>; + + # check response + if ($response =~ /^y/i) { + # user said 'y' or 'Y', execute query + $db->do($query); + print "Done.\n"; + } else { + print "Cancelled...\n"; + } +</code></pre></div> + +<p> +<b>PHP:</b> +</p> + +<div style='font-size: 75%; background-color: #eee; padding: 10px; +margin: 10px 30px 10px 30px; border: 1px solid black;'> +<pre><code> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1.dtd"> + <?php + require_once 'DB.php'; + + echo "<?xml version='1.0' encoding='iso-8859-1'?>\n"; + + # options + $opt = array( + 'host' => 'localhost', # database server (in our case, localhost) + 'user' => 'USERNAME', # replace USERNAME with user + 'pass' => 'PASSWORD', # replace PASSWORD with password + 'db' => 'DATABASE', # replace DATABASE with database + 'tbl' => 'TABLE', # replace TABLE with table name + 'fld' => 'FIELD', # replace FIELD with match field + ); + + # set page title + $page_title = 'PHP MySQL Sample Code'; + ?> + <html lang='en'> + <head> + <title><?php echo $page_title; ?></title> + </head> + + <body> + <form method='post' action='<?php echo $PHP_SELF; ?>' + enctype='multipart/form-data'> + <!-- PHP needs this nonsense :/ --> + <input type='hidden' name='MAX_FILE_SIZE' value='30000' /> + File: <input type='file' name='csvfile' /> + <input type='submit' value='Delete IDs from file' /> + </form> + + <?php + # check to see if the file was uploaded + if ($file = $_FILES['csvfile']) { + echo "<hr />\nResults:<br />"; + handle_file($file); + } + ?> + </body> + </html> + <?php + + ##################### + # UTILITY FUNCTIONS # + ##################### + + # + # handle file upload + # + function handle_file($file) { + global $opt; + + # check to see if there was an error: + if ($file['error']) + die(__LINE__ . ": Error handling file upload: {$file['error']}"); + + # no error, go ahead and read the list of IDs + $ids = array_map('trim', file($file['tmp_name'])); + + # build ID string + $id_str = join(',', array_map('quote_str_cb', $ids)); + + # build DSN string + $dsn = "mysql://{$opt['user']}:{$opt['pass']}@{$opt['host']}/{$opt['db']}"; + + # connect to database + $db = DB::connect($dsn); + if (DB::isError($db)) + die(__LINE__ . ": Couldn't connect to database: " . $db->getMessage()); + + # build/print query string + $query = "DELETE FROM {$opt['tbl']} WHERE {$opt['fld']} IN ($id_str)"; + echo "$query"; + + # execute query + $err = $db->query($query); + if (DB::isError($err)) + die(__LINE__ . ": Couldn't query database: " . $err->getMessage()); + } + + # + # escape quotes in string, and return quoted version of string + # + function quote_str_cb($str) { + return "'" . str_replace("'", "''", $str) . "'"; + } + + ?> +</code></pre></div> + +<p> +Now before the pedant geek armada nails me to the wall: Yes, I know the +<em>new</em> way of calling <code>DBI->connect</code> includes passing <code>{ +AutoCommit => 1 }</code> as a fourth parameter, and yes, I know that I should be +passing the <acronym title='Data Source Name'>DSN</acronym> an +<code>array</code> to <code>DB::connect</code>, and yes, I know that <a +href='http:/ruby-lang.org/'>Ruby</a> has <acronym title='Database Interface'>DBI</acronym> too! And finally, yes, I +know a dependency on <a href='http://mysql.com/'>MySQL</a> is totally +2001, but I wrote these examples to address a specific problem. The +original email includes all sorts of extra stuff, including explanations +of differences between <a href='http://mysql.com/'>MySQL</a> and <a +href='http://postgresql.org/'>Postgres</a>, and the nuances of their +respective regex engines. So bugger off :D. +</p> + diff --git a/content/posts/2005-03-19-raggle-0-4-0.html b/content/posts/2005-03-19-raggle-0-4-0.html new file mode 100644 index 0000000..9ee6ef3 --- /dev/null +++ b/content/posts/2005-03-19-raggle-0-4-0.html @@ -0,0 +1,15 @@ +--- +date: "2005-03-19T19:15:40Z" +title: Raggle 0.4.0 +--- + +<p> +I just posted <a href='http://raggle.org/'>Raggle</a> 0.4.0. The post +on <a href='http://ruby-talk.org/'><code>ruby-talk</code></a> is <a +href='http://www.ruby-talk.org/cgi-bin/scat.rb/ruby/ruby-talk/134288'>here</a>, +and some screenshots are <a href='http://raggle.org/shots/'>here</a>. A +full list of changes is in both the <a +href='http://ruby-talk.org'><code>ruby-talk</code></a> post, and +the announcement on the <a href='http://raggle.org/'>Raggle page</a>. +</p> + diff --git a/content/posts/2005-03-28-ipabs-returns.html b/content/posts/2005-03-28-ipabs-returns.html new file mode 100644 index 0000000..804f0ed --- /dev/null +++ b/content/posts/2005-03-28-ipabs-returns.html @@ -0,0 +1,9 @@ +--- +date: "2005-03-28T01:47:33Z" +title: iPabs Returns! +--- + +<p> +I got another <acronym title='Personal Digital Assistant'>PDA</acronym>. A friend of mine from Wednesday night poker sells <acronym title='Personal Digital Assistant'>PDA</acronym>s for <a href='http://microsoft.com/'>Microsoft</a>, and he had a bunch of older demo models just laying around, so he perma-loaned me an <a href='http://www.amazon.com/exec/obidos/tg/detail/-/B00007B6RX/002-2157259-5891258?v=glance'>HP iPaq 5455</a>. On Friday I went out and picked up a 1 gig <acronym title='Secure Digital'>SD</acronym> card, then spent the rest of the weekend setting things up. I've scoured <a href='http://www.freewareppc.com/'>FreewarePPC</a> and installed just about everything I need — emulators (<acronym title='Nintendo Entertainment System'>NES</acronym>, <acronym title='Super Nintendo Entertainment System'>SNES</acronym>, and Gameboy) and their associated <acronym title='Read-Only Memory'>ROM</acronym>s, an <acronym title='MPEG 1 / Layer 3 Audio'>MP3</acronym> player, and (of course) and eBook reader. Anyway, I've been out of the PocketPC game for over a year, so I'm open to suggestions. Are there any killer apps I should be using? +</p> + 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 — 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 — +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'> </td> + <td class='nada'> </td> + <td class='nada'> </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'> </span> Written in Ruby</li> + <li><span class='clib'> </span> Written in C</li> + <li><span class='dep'> </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> + + diff --git a/content/posts/2005-05-12-the-coveted-pablotron-gold-star.html b/content/posts/2005-05-12-the-coveted-pablotron-gold-star.html new file mode 100644 index 0000000..9ee22ab --- /dev/null +++ b/content/posts/2005-05-12-the-coveted-pablotron-gold-star.html @@ -0,0 +1,14 @@ +--- +date: "2005-05-12T19:59:32Z" +title: The Coveted Pablotron Gold Star +--- + +<p> +<a href='http://ubuntu-linux.org/'>Ubuntu Linux</a> gets the coveted <a href='/'>Pablotron</a> gold star for the week. It's <a href='http://debian.org/'>Debian</a>-based, really easy to install, and includes the latest and greatest <a href='http://gnome.org/'>GNOME</a>. +<a href='http://ubuntu-linux.org/'>Ubuntu</a> also has <a href='http://ubuntuguide.org/'><em>fantastic</em> documentation</a>, and it detected most of the hardware on my new laptop correctly (<a href='http://knoppix.net/'>Knoppix</a> didn't). +</p> + +<p> +If <a href='http://gentoo.org/'>Gentoo</a> and <a href='http://ubuntu-linux.org/'>Ubuntu</a> are the future of <a href='http://linux.org/'>Linux</a>, then I'd say we're in pretty good hands... +</p> + diff --git a/content/posts/2005-05-28-bugs-you-got-em-i-fix-em.html b/content/posts/2005-05-28-bugs-you-got-em-i-fix-em.html new file mode 100644 index 0000000..c2be5b9 --- /dev/null +++ b/content/posts/2005-05-28-bugs-you-got-em-i-fix-em.html @@ -0,0 +1,9 @@ +--- +date: "2005-05-28T19:37:08Z" +title: 'Bugs: You Got ''Em, I Fix ''Em' +--- + +<p> +I've tried to keep track of bug reports and feature requests via email, and it's just not working. So I gave up and set up a <a href='http://bugs.pablotron.org/'>bug tracking page</a> at <a href='http://bugs.pablotron.org/'>http://bugs.pablotron.org/</a>. <a href='http://halffull.org/'>Thomas (redshift)</a> and I went through a handful of them, including <a href='http://bugzilla.org/'>Bugzilla</a> (too much of a hassle to configure, pain in the ass to use), <a href='http://flyspray.rocks.cc/'>Flyspray</a> (klunky user interface), <a href='http://www.mantisbt.org/'>Mantis</a> (no easy anonymous view), <a href='http://cvstrac.org/'>CVSTrac</a> (only one project per repository? gee, that's useful), and finally settled on <a href='http://phpbt.sf.net/'>PHPBugTracker</a>, which does what I need and annoys me less than the rest. I also read <a href='http://geekswithblogs.net/flanakin/articles/CompareWebTrackers.aspx'>this semi-dated article on bug trackers</a>; I didn't pay much attention to the rank he gave each tracker, but it is a nice list of bug trackers out there. +</p> + diff --git a/content/posts/2005-05-28-the-hizouse.html b/content/posts/2005-05-28-the-hizouse.html new file mode 100644 index 0000000..c3888c6 --- /dev/null +++ b/content/posts/2005-05-28-the-hizouse.html @@ -0,0 +1,18 @@ +--- +date: "2005-05-28T04:14:26Z" +title: The Hizouse +--- + +<p> +It's been years since I took a picture of my home setup. so here's an update. +This is my server setup at home (click for a larger image): +</p> + +<p> +<a href='/gallery/misc/20050525-rack.jpg'><img src='/gallery/misc/20050525-rack-thumb.jpg' width='480' height='639' border='0' title='my home setup' alt='my home setup'/></a> +</p> + +<p> +Last week we had a power outage and the <acronym title='Uninterrupted Power Supply'>UPS</acronym> freaked out, so I had to shut everything down to reset it. I took the opportunity to install my 4-port <acronym title='Network Interface Card'>NIC</acronym> in <code>xor</code>, move the <acronym title='Digital Subscriber Line'>DSL</acronym> router into the rack, upgrade <code>xor</code> to a <a href='http://kernel.org/'>2.6 kernel</a>, and take this nifty picture. Upgrades! +</p> + diff --git a/content/posts/2005-05-29-feng-shui-this.html b/content/posts/2005-05-29-feng-shui-this.html new file mode 100644 index 0000000..054e324 --- /dev/null +++ b/content/posts/2005-05-29-feng-shui-this.html @@ -0,0 +1,13 @@ +--- +date: "2005-05-29T19:01:35Z" +title: Feng Shui This! +--- + +<p> +I enjoyed cleaning up my rack so much that I decided to do the same thing with my desk. Here's how it looks now (click for a full-sized view): +</p> + +<p> +<a href='/gallery/misc/20050529-desk.jpg'><img src='/gallery/misc/20050529-desk-thumb.jpg' width='' height='434' height='326' title='clean desk' alt='clean desk' border='0' /></a> +</p> + diff --git a/content/posts/2005-05-29-imlib2-ruby-0-5-1.html b/content/posts/2005-05-29-imlib2-ruby-0-5-1.html new file mode 100644 index 0000000..203131d --- /dev/null +++ b/content/posts/2005-05-29-imlib2-ruby-0-5-1.html @@ -0,0 +1,17 @@ +--- +date: "2005-05-29T18:51:46Z" +title: Imlib2-Ruby 0.5.1 +--- + +<p> +Just posted version 0.5.1 of <a +href='/software/imlib2-ruby/'>Imlib2-Ruby</a>. This is a bug-fix +release (also the first software release using <a +href='http://bugs.pablotron.org/'>my new bug-tracking page</a>. Anyway, +<a href='/software/imlib2-ruby/ChangeLog-0.5.1'>ChangeLog is here</a>, +or skip directly to the <a +href='/files/imlib2-ruby-0.5.1.tar.gz.asc'>signature</a>, <a +href='/files/imlib2-ruby-0.5.1.tar.gz'>download</a>, and <a +href='/files/gems/imlib2-ruby-0.5.1.gem'>Gem file</a>. +</p> + diff --git a/content/posts/2005-05-29-rubilicious-0-1-5.html b/content/posts/2005-05-29-rubilicious-0-1-5.html new file mode 100644 index 0000000..bc3046a --- /dev/null +++ b/content/posts/2005-05-29-rubilicious-0-1-5.html @@ -0,0 +1,32 @@ +--- +date: "2005-05-29T21:47:09Z" +title: Rubilicious 0.1.5 +--- + +<p> +I just released <a href='/software/rubilicious/'>Rubilicious 0.1.5</a>. Here's a list of the changes: +</p> + +<ul> +<li>Fixed <acronym title='HyperText Transfer Protocol'>HTTP</acronym> proxy support on Unix systems</li> +<li>Fixed <code>Rubilicious#all</code></li> +<li>Fixed <code>Rubilicious#delete</code></li> +<li>added tag bundle support</li> +<li>added configurable <a href='http://del.icio.us/'>Delicious</a> <acronym title='Application Programmers Interface'>API</acronym> <acronym title='Uniform Resource Locator'>URL</acronym></li> +<li>added configurable <acronym title='HyperText Transfer Protocol'>HTTP</acronym> <code>User-Agent</code></li> +<li>documentation updates</li> +</ul> + +<p> +And here's the relevant links: +</p> + +<ul> +<li><a href='/files/rubilicious-0.1.5.tar.gz'>Download Rubilicious 0.1.5</a> +(<a href='/files/rubilicious-0.1.5.tar.gz.asc'>Signature</a>)</li> +<li><a href='/files/gems/rubilicious-0.1.5.gem'>Download Rubilicious 0.1.5 Gem</a> +(<a href='/files/gems/rubilicious-0.1.5.gem.asc'>Signature</a>)</li> +<li><a href='/software/rubilicious/ChangeLog-0.1.5'>ChangeLog</a></li> +<li><a href='/software/rubilicious/doc/'>Online <acronym title='Application Programmers Interface'>API</acronym> Reference</a></li> +</ul> + diff --git a/content/posts/2005-06-09-mb-ruby-0-2-1.html b/content/posts/2005-06-09-mb-ruby-0-2-1.html new file mode 100644 index 0000000..69ce608 --- /dev/null +++ b/content/posts/2005-06-09-mb-ruby-0-2-1.html @@ -0,0 +1,18 @@ +--- +date: "2005-06-09T23:22:22Z" +title: MB-Ruby 0.2.1 +--- + +<p> +<a href='/software/mb-ruby/'>MB-Ruby 0.2.1</a> is up and ready for your abuse. This release fixes a handful of small bugs. Here are the relevant <acronym title='Uniform Resource Locator'>URL</acronym>s: +</p> + +<ul> +<li><a href='/files/mb-ruby-0.2.1.tar.gz'>Download MB-Ruby 0.2.1 (tarball)</a> (<a href='/files/mb-ruby-0.2.1.tar.gz.asc'>Signature</a>)</li> +<li><a href='/files/gems/mb-ruby-0.2.1.gem'>Download MB-Ruby 0.2.1 (Gem)</a> (<a href='/files/gems/mb-ruby-0.2.1.gem.asc'>Signature</a>)</li> +<li><a href='/software/mb-ruby/ChangeLog-0.2.1'>ChangeLog</a></li> +<li><a href='/software/mb-ruby/doc/'>Online <acronym title='Application Program Interface'>API</acronym> Reference</a></li> +</ul> + + + diff --git a/content/posts/2005-06-10-freshmeat-ruby-0-1-0.html b/content/posts/2005-06-10-freshmeat-ruby-0-1-0.html new file mode 100644 index 0000000..492a1cd --- /dev/null +++ b/content/posts/2005-06-10-freshmeat-ruby-0-1-0.html @@ -0,0 +1,16 @@ +--- +date: "2005-06-10T04:57:27Z" +title: Freshmeat-Ruby 0.1.0 +--- + +<p> +<a href='/software/freshmeat-ruby/'>Freshmeat-Ruby 0.1.0</a> is out. Here's the scoop: +</p> + +<ul> +<li><a href='/files/freshmeat-ruby-0.1.0.tar.gz'>Download Freshmeat-Ruby 0.1.0 (tarball)</a> (<a href='/files/freshmeat-ruby-0.1.0.tar.gz.asc'>Signature</a>)</li> +<li><a href='/files/freshmeat-ruby-0.1.0.gem'>Download Freshmeat-Ruby 0.1.0 (gem)</a> (<a href='/files/freshmeat-ruby-0.1.0.gem.asc'>Signature</a>)</li> +<li><a href='/software/freshmeat-ruby/ChangeLog-0.1.0'>Changelog</a></li> +<li><a href='/software/freshmeat-ruby/doc/'>Online <acronym title='Application Programmer Interface'>API</acronym> Reference</a></li> +</ul> + diff --git a/content/posts/2005-06-11-gah-people-rss.html b/content/posts/2005-06-11-gah-people-rss.html new file mode 100644 index 0000000..584a9fb --- /dev/null +++ b/content/posts/2005-06-11-gah-people-rss.html @@ -0,0 +1,9 @@ +--- +date: "2005-06-11T05:05:50Z" +title: '#Gah People RSS' +--- + +<p> +<a href='http://gah.pablotron.org/'>#Gah People</a> has an <acronym title='Really Simple Summary, Rich Site Summary, RDF Site Summary, more'>RSS</acronym> feed and <acronym title='Frequently Asked Questions'>FAQ</acronym> page now. That is all. +</p> + diff --git a/content/posts/2005-06-11-imlib2-ruby-0-5-2.html b/content/posts/2005-06-11-imlib2-ruby-0-5-2.html new file mode 100644 index 0000000..b2b61b1 --- /dev/null +++ b/content/posts/2005-06-11-imlib2-ruby-0-5-2.html @@ -0,0 +1,18 @@ +--- +date: "2005-06-11T05:54:22Z" +title: Imlib2-Ruby 0.5.2 +--- + +<p> +Just posted <a href='/software/imlib2-ruby/'>Imlib2-Ruby 0.5.2</a>: +</p> + +<ul> +<li><a href='/files/imlib2-ruby-0.5.2.tar.gz'>Download Imlib2-Ruby (tarball)</a> +(<a href='/files/imlib2-ruby-0.5.2.tar.gz.asc'>signature</a>)<br /></li> +<li><a href='/files/gems/imlib2-ruby-0.5.2.gem'>Download Imlib2-Ruby (gem)</a> +(<a href='/files/gems/imlib2-ruby-0.5.2.gem.asc'>signature</a>)<br /></li> +<li><a href='/software/imlib2-ruby/ChangeLog-0.5.2'>ChangeLog</a></li> +<li><a href='/software/imlib2-ruby/doc/'>Online <acronym title='Application Programmer Interface'>API</acronym> Reference</a></li> +</ul> + diff --git a/content/posts/2005-06-27-raggle-0-4-1.html b/content/posts/2005-06-27-raggle-0-4-1.html new file mode 100644 index 0000000..5afb297 --- /dev/null +++ b/content/posts/2005-06-27-raggle-0-4-1.html @@ -0,0 +1,9 @@ +--- +date: "2005-06-27T19:31:23Z" +title: Raggle 0.4.1 +--- + +<p> +Subject says it all. <a href='http://raggle.org/?id=33'>This post</a> on <a href='http://raggle.org/'><code>raggle.org</code></a> has the details, and so does <a href='http://ruby-talk.org/cgi-bin/scat.rb/ruby/ruby-talk/146609'>this cross post</a> to <a href='http://ruby-talk.org/'><code>ruby-talk</code></a> and <a href='http://raggle.org/'><code>raggle-dev</code></a>. +</p> + diff --git a/content/posts/2005-07-14-power-outages-context-free-span-and-rubygems.html b/content/posts/2005-07-14-power-outages-context-free-span-and-rubygems.html new file mode 100644 index 0000000..f89f04c --- /dev/null +++ b/content/posts/2005-07-14-power-outages-context-free-span-and-rubygems.html @@ -0,0 +1,35 @@ +--- +date: "2005-07-14T02:20:46Z" +title: Power Outages, Context Free, Span, and RubyGems +--- + +<p> +I finally got a decent <acronym title='Uninterruptable Power Supply'>UPS</acronym> for the server rack, so I should be able to weather these wacky northern Virginia summer showers (no pun intended). I also set up a secondary <acronym title='Domain Name Service'>DNS</acronym> and a secondary <acronym title='Mail Exchange'>MX</acronym> for virtually everyone hosted on <code>kylie</code>. I think <a href='http://linuxbrit.co.uk/'>Tom (giblet)</a> is going to do the same, and <a href='http://richlowe.net/'>Richard (richlowe)</a> was scouting around for more people willing to play the <acronym title='Domain Name Service'>DNS</acronym>/<acronym title='Mail Exchange'>MX</acronym> swap game, so eventually we might have triple or even quadruple redundancy on those services. Coupled with the nightly off-site backups and the hopefully pending weekly hard backups, I'm starting to feel reasonably comfortable about any unexpected disasters. At home, I set up redundant internal <acronym title='Domain Name Service'>DNS</acronym> and mail handling, and I'm looking at <a href='http://www.lithodyne.net/docs/dhcp/dhcp-4.html'>secondary <acronym title='Dynamic Host Configuration Protocol'>DHCP</acronym> as well, although it requires upgrading to version 3 of the <a href='http://www.isc.org/sw/dhcp/'>ISC DHCPd</a>. +</p> + +<p> +I stumbled across the horribly addictive program <a href='http://www.ozonehouse.com/ContextFree/about.html'>Context Free</a>, via <a href='http://del.icio.us/giblet'>Tom's linkblog</a>. <a href='http://www.ozonehouse.com/ContextFree/about.html'>Context Free</a> is, in the authors' terse words, a small language for "design grammars", or sets of non-deterministic rules to produce images. I got hooked and spent several hours <a href='/files/cfdg/'>designing my own pictures</a>. Here are a couple of the results: +</p> + +<p> +<img src='/files/cfdg/vortex.png' width='500' height='500' border='0' /> +<img src='/files/cfdg/octopus.png' width='500' height='500' border='0' /> +<img src='/files/cfdg/forest-DWB-500.png' width='500' height='500' border='0' /> +</p> + +<p> +All of the images I've created so far and their respective grammar files are available <a href='/files/cfdg/'>here</a>. Speaking of graphics, I've been playing <a href='http://halffull.org/span'>Span</a>, <a href='http://halffull.org/'>Thomas's (redshift)</a> shameless multi-player Connect 4 clone, quite a bit. It's a console-only game, and it's written in <a href='http://ruby-lang.org/'>Ruby</a>, so I shamelessly tacked on <a href='http://www.libsdl.org/'><acronym title='Simple DirectMedia Layer'>SDL</a>-based graphics, sound effects, and music, creating the following monstrosity: +</p> + +<p> +<img src='/screenshots/20050714-sdl-span.png' width='642' height='508' /> +</p> + +<p> +You can download the tarball <a href='/files/sdl-span3.tar.gz'>here</a>. At the moment it's a total hack; Ncurses calls haphazardly replaced by SDL calls, music and sound effects grafted on, cats and dogs sleeping together, apocalypse, that sort of thing. It also won't work with the version of Ruby/SDL in <a href='http://debian.org/'>Debian</a>; you'll have to <a href='http://www.kmc.gr.jp/~ohai/rubysdl_download.html'>download the latest version (0.9.5)</a> and slog through the busted Ruby/SDL <code>extconf.rb</code> in order to get things up and running. +</p> + +<p> +Finally, security pedants rejoice! My <a href='http://rubygems.rubyforge.org/'>RubyGems</a> package signing patch (described <a href='http://www.pablotron.org/?cid=1423'>here</a>) has been integrated into <a href='http://rubygems.rubyforge.org/'>RubyGems</a>, and should be in the next stable release (version 0.8.11, for those of you counting). We still need some niceties like <acronym title='Certificate Revocation List'>CRL</acronym> and <acronym title='Online Certificate Status Protocol'>OCSP</acronym> support, and some sort of trust hierarchy, but at least we can get started signing gems. Rubyists, fire up your copy of <a href='http://tinyca.sm-zone.net/'>TinyCA</a>, have a beer, and take a look at my <a href='/files/signing_gems.txt'>overly verbose Gem Signing README</a>. +</p> + diff --git a/content/posts/2005-07-16-holy-smackers.html b/content/posts/2005-07-16-holy-smackers.html new file mode 100644 index 0000000..39ae6c9 --- /dev/null +++ b/content/posts/2005-07-16-holy-smackers.html @@ -0,0 +1,9 @@ +--- +date: "2005-07-16T02:37:49Z" +title: Holy Smackers! +--- + +<p> +<a href='http://blog.fallingsnow.net/'>Evan</a> went and did it. Check out <a href='http://blog.fallingsnow.net/articles/2005/07/15/sydney-development-continues'>Sydney</a>, his thread-safe <a href='http://ruby-lang.org/'>Ruby</a> interpreter. +</p> + diff --git a/content/posts/2005-07-27-hardware-extrordinaire.html b/content/posts/2005-07-27-hardware-extrordinaire.html new file mode 100644 index 0000000..0ddaeaa --- /dev/null +++ b/content/posts/2005-07-27-hardware-extrordinaire.html @@ -0,0 +1,25 @@ +--- +date: "2005-07-27T20:16:05Z" +title: Hardware Extrordinaire +--- + +<p> +I've been thinking about building a <a href='http://gumstix.com/'>Gumstix</a> or <a href='http://www.soekris.com/'>Soekris</a>-based embedded system. I don't have a particular reason; I'm not even sure what I want to build yet. Anyway, here's some of the neat stuff I've stumbled across: +</p> + +<ul> +<li><a href='http://www.crystalfontz.com/products/index-ser.html'>CrystalFontz <acronym title='Liquid Crystal Display'>LCDs</acronym></a>: Actually these guys aren't really for embedded stuff per-se; they're useful for desktop <acronym title='Personal Computer'>PCs</acronym as well.</li> +<li><a href='http://www.allelectronics.com/cgi-bin/category.cgi?category=365&item=LCD-103&type=store'>Dirt cheap old-school <acronym title='Liquid Crystal Display'>LCD</acronym></a>: THere isn't much in the way of documentation on this guy, but I did find <a href='http://www.crystalfontz.com/forum/showthread.php?s=&threadid=3145&goto=nextoldest'>this post</a> which explains (roughly) how to interface with it.</li> +<li><a href='http://www.halted.com/commerce/catalog/product.jsp?product_id=17548&czuid=1118246397781'>240x320 8-bit touchscreen <acronym title='Liquid Crystal Display'>LCD</acronym> (2 for $60)</a>: I'm <em>definitely</em> going to use these guys for something. The best part? In addition to being dirt cheap, <a href='http://hubbard.engr.scu.edu/embedded/lcd/lfh8p4032b/lfh8p4032b.html'>this guy already has it working in Linux</a>.</li> +<li><a href='http://www.ladyada.net/resources/procurement.html'>List of places to get parts</a>: Title pretty much says it all. Part of the really interesting <a href='http://www.ladyada.net/make/index.html'>embedded projects page on ladyada.net</a>.</li> +</ul> + +<p> +If that wasn't geeky enough, I've also been aggregating all the <a href='http://www.startrek.com/'>Star Trek</a> information I can found online into a <a href='http://www.sqlite.org/'>SQLite</a> database. It's far from complete, but at the moment I've got a list of episodes from every <a href='http://startrek.com/'>Star Trek</a> show ever (including the oft maligned "Star Trek: The Animated Series"), a fairly expansive list of species and planets encountered or referenced in the <a href='http://startrek.com/'>Star Trek</a> universe, and a list of Trek particles defined and organized by category. +</p> + +<p> +You can download the <a href='/files/trek-0.1.db.gz'>raw database file (2.4M gzipped SQLite3 database)</a>, or <a href='/files/trek-0.1.tar.gz'>the entire working directory, including extraction scripts (4.4M gzipped tarball)</a>. As usual, there is no documentation, although you can regenerate the database by running <code>scripts/generate.sh</code> (you need <a href='http://ruby-lang.org/'>Ruby</a> installed, of course :D). +</p> +</p> + diff --git a/content/posts/2005-08-01-soldering-maniac.html b/content/posts/2005-08-01-soldering-maniac.html new file mode 100644 index 0000000..0725fed --- /dev/null +++ b/content/posts/2005-08-01-soldering-maniac.html @@ -0,0 +1,9 @@ +--- +date: "2005-08-01T16:47:49Z" +title: Soldering Maniac +--- + +<p> +Last night I learned how to solder. Today I'm off to buy a soldering iron and some parts. Next week, who knows? +</p> + diff --git a/content/posts/2005-08-01-tommy-boy-discovers-rubygems-hurts-toe-again.html b/content/posts/2005-08-01-tommy-boy-discovers-rubygems-hurts-toe-again.html new file mode 100644 index 0000000..ce155b6 --- /dev/null +++ b/content/posts/2005-08-01-tommy-boy-discovers-rubygems-hurts-toe-again.html @@ -0,0 +1,19 @@ +--- +date: "2005-08-01T16:45:22Z" +title: Tommy Boy Discovers RubyGems, Hurts Toe Again! +--- + +<p> +From <acronym title='Internet Relay Chat'>IRC</acronym>, just a few minutes ago: +</p> +<blockquote style='border: 1px dashed #333; background-color: #eee; padding: 0.5em; margin: 2em; '><pre>16:36 <giblet> godammit +16:36 <giblet> there I was happily reading the gems book +16:36 <giblet> <a href='http://docs.rubygems.org/read/chapter/21'>http://docs.rubygems.org/read/chapter/21</a> +16:36 <giblet> and you bloody turn up +16:36 <giblet> wanker +16:36 * giblet skips that page +16:37 <pabs> i do? +16:37 <giblet> yep, second to last chapter +16:39 <pabs> READ EM AND WEEP, SUCKER +16:39 <pabs> :)</pre></blockquote> + diff --git a/content/posts/2005-08-06-curse-you-foul-demons-of-the-underworld-fcc.html b/content/posts/2005-08-06-curse-you-foul-demons-of-the-underworld-fcc.html new file mode 100644 index 0000000..81de0ae --- /dev/null +++ b/content/posts/2005-08-06-curse-you-foul-demons-of-the-underworld-fcc.html @@ -0,0 +1,13 @@ +--- +date: "2005-08-06T16:24:47Z" +title: Curse You, Foul Demons of the Underworld (FCC) +--- + +<p> +<a href='http://arstechnica.com/news.ars/post/20050805-5173.html'>This sucks</a>. I <em>really</em> doubt Verizon will provide a service remotely comparable to <a href='http://speakeasy.net/'>Speakeasy</a>, and if they do I'm sure they'll charge a bazillion dollars a month for it. Especially since they don't have any competition now. Cripes. +</p> + +<p> +Thank you Bush administration for sucking up to large corporations and sticking it to the little guys. +</p> + diff --git a/content/posts/2005-08-07-netstix.html b/content/posts/2005-08-07-netstix.html new file mode 100644 index 0000000..0975231 --- /dev/null +++ b/content/posts/2005-08-07-netstix.html @@ -0,0 +1,10 @@ +--- +date: "2005-08-07T05:02:40Z" +title: Netstix +--- + +<p> +Looks like the <a href='http://gumstix.com/'>Gumstix</a> stuff just got a whole lot more interesting. They're releasing a series of expansion boards called the <a href='http://www.gumstix.org/tikiwiki/tiki-index.php?page=netstix'>Netstix</a>, which do pretty much what you'd expect; they're Ethernet 10/100 interfaces, combined with other useful things like another <acronym title='Network Interface Card'>NIC</acronym> (hello <a href='http://gumstix.com/'>Gumstix</a> firewall), Compact Flash, and MMC (eg SD without the <acronym title='Digital Rights Management'>DRM</acronym> crud). +</p> + + diff --git a/content/posts/2005-08-09-atom-raggle-enclosures-must-sleep-soon.html b/content/posts/2005-08-09-atom-raggle-enclosures-must-sleep-soon.html new file mode 100644 index 0000000..489fb75 --- /dev/null +++ b/content/posts/2005-08-09-atom-raggle-enclosures-must-sleep-soon.html @@ -0,0 +1,9 @@ +--- +date: "2005-08-09T04:56:11Z" +title: Atom, Raggle, Enclosures, Must, Sleep, Soon... +--- + +<p> +Just posted a new version of <a href='http://raggle.org/'>Raggle</a>. Among the usual bug fixes, I managed to mix in <a href='http://blogs.law.harvard.edu/tech/rss#ltenclosuregtSubelementOfLtitemgt'><acronym title='Really Simple Summary / RDF Site Summary / more...'>RSS</acronym> enclosure</a> support and preliminary <a href='http://atompub.org/2005/07/11/draft-ietf-atompub-format-10.html'>Atom</a> support. The enclosure support won't win any usability awards (it's just a hook to an external command), but it's enough to roll your own simple podcast or bittorrent/RSS support. +</p> + diff --git a/content/posts/2005-08-11-how-to-make-delicious-not-suck.html b/content/posts/2005-08-11-how-to-make-delicious-not-suck.html new file mode 100644 index 0000000..0ca168f --- /dev/null +++ b/content/posts/2005-08-11-how-to-make-delicious-not-suck.html @@ -0,0 +1,34 @@ +--- +date: "2005-08-11T02:16:49Z" +title: How to Make Delicious Not Suck +--- + +<p> +A couple of days ago <a href='http://richlowe.net/'>Richard (richlowe)</a> discovered <a href='http://scuttle.org/'>Scuttle</a>. <a href='http://scuttle.org/'>Scuttle</a> is an open clone of <a href='http://del.icio.us/'>Delicious</a>. It has private posts, looks fairly decent, doesn't have a gadzillion dependencies (unlike Rubric), and works reasonably well. +</p> + +<p> +I went ahead and set it up, and made a few changes. And so <a href='http://tasty.pablotron.org/'><code>tasty.pablotron.org</code></a> was born. <a href='http://scuttle.org/'>Scuttle</a> has an option to import all your old <a href='http://del.icio.us/'>Delicious</a> <acronym title='Uniform Resource Locator'>URLs</acronym>, but I didn't want to give up on <a href='http://del.icio.us/'>Delicious</a> just yet — I just wanted something that wasn't ass-slow. So I patched <a href='http://scuttle.org/'>Scuttle</a> so users can optionally cross-post to <a href='http://del.icio.us/'>Delicious</a>. I used some of that <a href='/'>Pablotron</a> magic, so <a href='http://del.icio.us/'>Delicious</a>-chaining doesn't slow down posting links at all, which makes it much more pleasant than waiting up to a minute for a post to <a href='http://del.icio.us/'>Delicious</a>. I also added an option for users to switch between comma- and space-delimiting for tags when posting new links (<a href='http://scuttle.org/'>Scuttle</a> uses the former and <a href='http://del.icio.us/'>Delicious</a> uses the latter), and fixed the after-post behavior to mirror <a href='http://del.icio.us/'>Delicious</a> (specifically, close the pop-up after a post, and switch the browser back to the original URI after a non-pop-up post). +</p> + +<p> +Anyway, You can see all the changes described above by creating an account on <a href='http://tasty.pablotron.org/'>Tasty</a>. Here's all the changes I've made against <a href='http://scuttle.org/'>Scuttle</a> 0.4.1, as individual patches: +</p> + +<ul> +<li><a href="/files/scuttle-0.4.1-chain_to_delicious.diff"><code>scuttle-0.4.1-chain_to_delicious.diff</code></a></li> +<li><a href="/files/scuttle-0.4.1-space_delim.diff"><code>scuttle-0.4.1-space_delim.diff</code></a></li> +<li><a href="/files/scuttle-0.4.1-close_popup+go_back.diff"><code>scuttle-0.4.1-close_popup+go_back.diff</code></a></li> +</li> +</ul> + +<p> +I'm sending all of these patches upstream as soon as I finish this post, so hopefully we'll see these in the next release. +</p> + +<p> +<b>Update:</b> I inadvertently broke comma-delimiting. The following +patch fixes it (you'll need to apply this one after all of the others <a +href='/files/scuttle-0.4.1-fix_comma_delim.diff'><code>scuttle-0.4.1-fix_comma_delim.diff</code></a>. +</p> + diff --git a/content/posts/2005-08-11-re-news.html b/content/posts/2005-08-11-re-news.html new file mode 100644 index 0000000..a2ce5c3 --- /dev/null +++ b/content/posts/2005-08-11-re-news.html @@ -0,0 +1,51 @@ +--- +date: "2005-08-11T17:29:06Z" +title: 'Re: News' +--- + +<p> +<a href='http://it.slashdot.org/comments.pl?sid=158670&cid=13295946'>This post</a> on <a href='http://slashdot.org/'>Slashdot</a> is great: +</p> + +<blockquote style='margin: 2em; padding: 0.5em; border: 1px dashed #444; font-size: 80%; background-color: #eee;' cite='http://it.slashdot.org/comments.pl?sid=158670&cid=13295946'> +<p> +One of my favorite examples: Some years ago, I worked on a series of projects at a company where the development teams were more or less divided between those that used Sun workstations and those that used Apollos. There was an ongoing discussion of the merits of both. The main argument of the Apollo developers was that you got roughly twice the computing power for a given price with Apollo. Sun was "overpriced and underpowered". +</p> + +<p> +But Sun slowly won out. What would happen on any project is that you'd be debugging your stuff, and inevitably you'd be led into a system library routine that didn't behave like you expected. With Apollo, when you called Customer Support, the answer was usually "That's proprietary. We can't tell you." Brick wall. You're on your own, and all you can do is start guessing. +</p> + +<p> +When this happened with Sun, we usually didn't even contact Sun's CS. We asked on one or more of the Sun newsgroups and mailing lists. Within a few hours, we'd usually have an answer. More often than not, the answer came from a Sun engineer. It often came with a chunk of the source, with an offer to send more source if we needed. +</p> + +<p> +As a result, the Sun developers had working, sellable products much sooner than the Apollo developers. Having a product that works is always better than having a product that doesn't work, even if the price is a bit higher. The company slowly scaled down its use of Apollos. This may have had something to do with why Apollo no longer exists (though www.apollo.com still exists - try it ;-). +</p> + +<p> +Since then, of course, Sun has slowly taken its systems more and more proprietary. But that's OK, because linux has since arisen to fill Sun's old niche. Same argument: With Sun, you inevitably hit the "We can't tell you - it's proprietary" brick wall. With linux, you have all the source you want, plus a world-wide flock of linux hackers who love to show off their expertise by answering your dumb questions. +</p> + +<p> +The fun thing in this case is that linux and other open-source software now comes with a license that pretty much prevents anyone from ever closing off access. So it's a lot safer bet for a platform than anything proprietary, no matter how open a company may appear right now. +</p> + +<p> +Of course, the *BSD systems are about as good in this respect. One might argue that linux is now sufficiently successful that it could use a bit more competition. Maybe we should be pushing the BSDs a bit more loudly. Those people who don't like choice might object, but we'd probably all be better off for it. +</p> + +<p> +And I wonder how OS X fits into all this? I have a Mac Powerbook, but I've found it much more difficult and time consuming to find reliable low-level information about its innards than with linux. It's only partly for proprietary reasons. Usually it's the "Don't worry your little head about it; it Just Works" attitude. This is very frustrating when you have decades of C hacking behind you, and you're trying to get some low-level code to just work the way you want it to. Instead of a brick wall, you're beating your head against a very soft, fuzzy wall. +</p> + +<p> +In any case, I'd think that a reasonable software rule now would be: Don't build your product on any platform unless you have all the source. This is now feasible; you get full source with linux and the *BSD systems. So why use a platform that doesn't provide full source? +</p> + +<p> +And if you don't understand why you need full source, you aren't competent to make business decisions about software development. Hand the decision over to someone who understands. Hire them if you need to. Otherwise, you're risking your business on a foundation of quicksand. +</p> +</blockquote> + diff --git a/content/posts/2005-08-14-new-version-o-raggle.html b/content/posts/2005-08-14-new-version-o-raggle.html new file mode 100644 index 0000000..3b77188 --- /dev/null +++ b/content/posts/2005-08-14-new-version-o-raggle.html @@ -0,0 +1,9 @@ +--- +date: "2005-08-14T23:46:06Z" +title: New Version o' Raggle +--- + +<p> +Just another new version of <a href='http://raggle.org/'>Raggle</a>. No more 200-day old bugs on <a href='http://bugs.debian.org/raggle'><code>bugs.debian.org</code></a>! +</p> + diff --git a/content/posts/2005-08-14-oops.html b/content/posts/2005-08-14-oops.html new file mode 100644 index 0000000..7d5abd6 --- /dev/null +++ b/content/posts/2005-08-14-oops.html @@ -0,0 +1,19 @@ +--- +date: "2005-08-14T23:14:40Z" +title: Oops... +--- + +<p> +It's a slow Sunday evening. I know, I think I'll find decent news site about embedded stuff. You know, +<a href='http://soekris.com/'>Soekris</a> boards, <a href='http://gumstix.com/'>Gumstix</a>-based systems, that sort of thing: +</p> + +<p> +<img src='/gallery/misc/embedded_news.png' width='632' height='359' style='border: 1px solid black;' +title='embedded news' alt='embedded news' /> +</p> + +<p> +Drat. +</p> + diff --git a/content/posts/2005-08-19-sometimes-that-s-how-i-feel-about-debugging-too.html b/content/posts/2005-08-19-sometimes-that-s-how-i-feel-about-debugging-too.html new file mode 100644 index 0000000..577d6e1 --- /dev/null +++ b/content/posts/2005-08-19-sometimes-that-s-how-i-feel-about-debugging-too.html @@ -0,0 +1,28 @@ +--- +date: "2005-08-19T05:34:10Z" +title: Sometimes That's How I Feel About Debugging Too... +--- + +<p> +I stumbled across this image while looking for some microcontroller documentation: +</p> + +<p> +<img src='/gallery/misc/debugger.gif' width='700' height='522' title='debugger' alt='debugger' +border='0' /><br /> +<a href='http://microcontrollershop.com/An%20Embedded%20Tools%20Introduction.php'>Source</a> +</p> + +<p> +Hmm, something about that picture looks a little odd. Let's take a closer look: +</p> + +<p> +<img src='/gallery/misc/debugger-hilite.png' width='223' height='142' title='debugger' alt='debugger' + style='border: 1px solid black;' /> +</p> + +<p> +Yeah, sometimes that's how I feel about debugging too. +</p> + diff --git a/content/posts/2005-08-27-leo-s-back.html b/content/posts/2005-08-27-leo-s-back.html new file mode 100644 index 0000000..1464780 --- /dev/null +++ b/content/posts/2005-08-27-leo-s-back.html @@ -0,0 +1,9 @@ +--- +date: "2005-08-27T17:01:19Z" +title: Leo's Back +--- + +<p> +<a href='http://en.wikipedia.org/wiki/Leo_Laporte'>Leo Laporte</a from <a href='http://en.wikipedia.org/wiki/The_Screen_Savers'>"The Screen Savers"</a> has a new podcast titled <a href='http://thisweekintech.com/'>"This Week in Tech"</a> (or <a href='http://twit.tv/'>TWiT</a>). I'm not usually a big fan of podcasts, but I listened to this one and really enjoyed it. All their episodes are available as torrents; check it out if you get a chance. +</p> + diff --git a/content/posts/2005-08-27-one-monitor-to-bind-them.html b/content/posts/2005-08-27-one-monitor-to-bind-them.html new file mode 100644 index 0000000..02dff21 --- /dev/null +++ b/content/posts/2005-08-27-one-monitor-to-bind-them.html @@ -0,0 +1,13 @@ +--- +date: "2005-08-27T16:41:21Z" +title: One Monitor to Bind Them! +--- + +<p> +I stumbled across <a href='http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=5234745742'>this eBay auction</a> on <a href='http://engadget.com/'>Engadget</a>. The computer isn't particularly interesting, but check out the monitor (click for the full-sized image): +</p> + +<p> +<a href='/gallery/misc/lotsa_monitors-raw.jpg'><img src='/gallery/misc/lotsa_monitors.jpg' width='400' height='301' title='lotsa monitors' alt='lotsa monitors' border='0' /></a> +</p> + diff --git a/content/posts/2005-10-12-generating-pdfs-with-ruby.html b/content/posts/2005-10-12-generating-pdfs-with-ruby.html new file mode 100644 index 0000000..691512a --- /dev/null +++ b/content/posts/2005-10-12-generating-pdfs-with-ruby.html @@ -0,0 +1,13 @@ +--- +date: "2005-10-12T04:41:45Z" +title: Generating PDFs with Ruby +--- + +<p> +One problem I've run across a couple of times at work is generating automated <acronym title='Portable Document Format'>PDF</acronym>s. While reading the <a href='http://www.artima.com/rubycs/index.html'>Ruby section of Artima</a>, I stumbled across <a href='http://www.artima.com/rubycs/articles/pdf_writer.html'>"Creating Printable Documents with Ruby"</a>, which cover's <a href='http://www.halostatue.ca/'>Austin Ziegler's</a> <acronym title='Portable Document Format'>PDF</acronym> library for <a href='http://ruby-lang.org/'>Ruby</a>, <a href='http://ruby-pdf.rubyforge.org/'>PDF::Writer</a>. Besides having a great <acronym title='Application Programmer Interface'>API</acronym>, <a href='http://ruby-pdf.rubyforge.org/'>PDF::Writer</a> also has an <a href='http://ruby-pdf.rubyforge.org/pdf-writer/manual/index.html'>extensive manual</a> (generated by <a href='http://ruby-pdf.rubyforge.org/'>PDF::Writer</a>, of course), wrappers for common tasks such as generating <a href='http://ruby-pdf.rubyforge.org/pdf-writer/doc/classes/PDF/SimpleTable.html'>tables</a>, <a href='http://ruby-pdf.rubyforge.org/pdf-writer/doc/classes/PDF/QuickRef.html'>reference sheets, and brochures</a>, +</p> + +<p> +I'm wondering how long it'll take before someone writes a <acronym title='Portable Document Format'>PDF</acronym> target for <a href='http://dev.rubycentral.com/downloads/ri.html'><acronym title='Ruby Interactive'>RI</acronym></a>, or, even better, <a href='http://rdoc.sourceforge.net/'>RDoc</a>. In the mean time, I have something that'll give me an excuse to use more <a href='http://ruby-lang.org/'>Ruby</a> at work. +</p> + diff --git a/content/posts/2005-10-12-xara-doesn-t-work-tasty-for-firefox.html b/content/posts/2005-10-12-xara-doesn-t-work-tasty-for-firefox.html new file mode 100644 index 0000000..d8b1857 --- /dev/null +++ b/content/posts/2005-10-12-xara-doesn-t-work-tasty-for-firefox.html @@ -0,0 +1,13 @@ +--- +date: "2005-10-12T06:27:25Z" +title: Xara Doesn't Work, Tasty for Firefox +--- + +<p> +So what's the deal with the <a href='http://www.xaraxtreme.org/download/'>Xara demo</a>, anyway? <a href='http://slashdot.org/'>Slashdot</a> made a big stink about their demo, how it would revolutionize vector drawing programs for Linux, and all that jazz. I've been using <a href='http://inkscape.org/'>Inkscape</a> quite a bit lately, so I was anxious to see what the <a href='http://www.xaraxtreme.org/download/'>Xara demo</a> had to offer. As far as I can tell, the demo is <i>sourceforge-ware</i> — it looks like about 2 hours of work in <a href='http://glade.gnome.org/'>Glade</a>, plus a page that promises all sorts of cool features, eventually. +</p> + +<p> +I ported the awesome <a href='http://delicious.mozdev.org/'>Delicious plugin</a> for <a href='http://mozilla.org/products/firefox/'>Firefox</a> to work with <a href='http://tasty.pablotron.org/'>Tasty</a>. You can download the XPI <a href='/files/tasty-0.5.8.xpi'>here</a> (most features seem to work okay, but my port consisted basically of a massive 's/del.icio.us/tasty.pablotron.org/ig', so caveat emptor). +</p> + diff --git a/content/posts/2006-01-12-charming-ruby-compiler-not-so-charming.html b/content/posts/2006-01-12-charming-ruby-compiler-not-so-charming.html new file mode 100644 index 0000000..f1f3f7a --- /dev/null +++ b/content/posts/2006-01-12-charming-ruby-compiler-not-so-charming.html @@ -0,0 +1,37 @@ +--- +date: "2006-01-12T21:10:33Z" +title: Charming Ruby Compiler, Not So Charming +--- + +<p>Earlier this month on the <code>ruby-core</code> mailing list there was a post +about the <a href="http://www.dtek.chalmers.se/~d00farre/thesis/">Charming Ruby Compiler (CRC)</a>, which looks promising. +It's a preliminary <a href="http://ruby-lang.org/">Ruby</a> to <a href="http://cminusminus.org/">C--</a> compiler. Unfortunately, it's +also got <a href="http://gnome.org/">GNOME</a>-style dependencies (i.e. from hell). You can grab a +pre-compiled binary for <a href="http://www.dtek.chalmers.se/~d00farre/thesis/">CRC</a>, but the <a href="http://cminusminus.org/">C--</a> compiler itself depends +on both <a href="http://caml.inria.fr/">Objective CAML</a> and <a href="http://lua.org/">Lua</a>.</p> + +<p>For some reason, I just don't feel like installing the runtime and +development libraries for <em>three</em> separate programming languages just to +try out a preliminary compiler for <em>one</em> programming language.</p> + +<p>The thread wasn't a total loss, however. I learned about both <a href="http://nekovm.org/">Neko</a> +and <a href="http://llvm.cs.uiuc.edu/">LLVM</a>, and they both look interesting. <a href="http://nekovm.org/">Neko</a> is a lightweight +<acronym title='Virtual Machine'>VM</acronym> for dynamic languages +(like <a href="http://ruby-lang.org/">Ruby</a> and <a href="http://python.org/">Python</a>) written in <acronym title='American +Netional Standards Institute'>ANSI</acronym> C. Instead of targeting +assembly, and compiling that to bytecode, <a href="http://nekovm.org/">Neko</a> provides it's own +low-level programming language with primitives for things like strings, +numbers, and objects. Seems like <a href="http://nekovm.org/">Neko</a> has a lower barrier to entry +than <a href="http://parrotcode.org/">Parrot</a>, although the lack of an encoding attribute for string +elements kind of bothers me -- maybe that's something higher-level +languages are supposed to take care of?</p> + +<p>On another note, I've generated the +<acronym title='HyperText Markup Language'>HTML</acronym> for +this post using <a href="http://www.deveiate.org/projects/BlueCloth">BlueCloth</a>, a <a href="http://daringfireball.net/projects/markdown/">Markdown</a> processor for <a href="http://ruby-lang.org/">Ruby</a>. +If you can get over the funky bracket syntax for links, <a href="http://daringfireball.net/projects/markdown/">Markdown</a> +does seem to make writing posts a whole lot easier. All I need now is a +decent post-processor for acronyms and I'd be set. Maybe I'll come up +with something for my new page backend, if it ever gets completed.</p> + + diff --git a/content/posts/2006-01-12-recent-ruby-patches.html b/content/posts/2006-01-12-recent-ruby-patches.html new file mode 100644 index 0000000..3856e61 --- /dev/null +++ b/content/posts/2006-01-12-recent-ruby-patches.html @@ -0,0 +1,33 @@ +--- +date: "2006-01-12T21:32:04Z" +title: Recent Ruby Patches +--- + +<p>I've submitted a couple of patches to <a href="http://ruby-lang.org/">Ruby</a> in the last month or so. +<a href="http://diff.pablotron.org/ruby-1.8.4-cgi_headers.diff">The first patch</a>, which has been accepted for <a href="http://ruby-lang.org/">Ruby</a> 1.9, and +possibly 1.8, adds several missing +<acronym title='HyperText Transfer Protocol'>HTTP</acronym> +headers to <a href="http://www.ruby-doc.org/stdlib/libdoc/cgi/rdoc/index.html">Ruby +<acronym title='Common Gateway Interface'>CGI</acronym></a>, including +the ever-important <code>If-Modified-Since</code> and <code>If-None-Match</code> headers.</p> + +<p><a href="http://diff.pablotron.org/ruby-1.8.4-rdoc_html_cleanup.diff">The second patch</a>, which (as of today) is still floating on +<code>ruby-core</code>, improves the +<acronym title='HyperText Markup Language'>HTML</acronym> output of +<a href="http://rdoc.sourceforge.net/">RDoc</a> by adding proper encoding and language declarations, closing +dangling <code><img></code> and <code><br/></code> elements, and fixing a handful of other +annoyances.</p> + +<p>Without any further ado, each of the patches and their respective +descriptions from <code>ruby-core</code>:</p> + +<ul> +<li><a href="http://diff.pablotron.org/ruby-1.8.4-cgi_headers.diff">ruby-1.8.4-cgi_headers.diff</a> (<a href="http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/6906">description</a>)</li> +<li><a href="http://diff.pablotron.org/ruby-1.8.4-rdoc_html_cleanup-3.diff">ruby-1.8.4-rdoc_html_cleanup-3.diff</a> (<a href="http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/7028">description</a>)</li> +</ul> + +<p>(Second post written using +<a href='http://daringfireball.net/projects/markdown/'>Markdown</a>; I could get used to this...)</p> + +<p><b>Update:</b> Updated to reflect latest version of second patch.</p> + diff --git a/content/posts/2006-01-12-we-really-meant-do-very-little-evil.html b/content/posts/2006-01-12-we-really-meant-do-very-little-evil.html new file mode 100644 index 0000000..cc03944 --- /dev/null +++ b/content/posts/2006-01-12-we-really-meant-do-very-little-evil.html @@ -0,0 +1,39 @@ +--- +date: "2006-01-12T22:32:45Z" +title: We Really Meant "Do Very Little Evil" +--- + +<p>Is the <a href="http://www.c-c-c.org/chineseculture/zodiac/Rooster.htm">year of the Rooster</a> <a href="http://google.com/">Google</a>'s last year of +benevolence? Until now, <a href="http://google.com/">Google</a> has managed to be the darling of the +<a href="http://slashdot.org/">caffeine-saturated Slashdot crowd</a>, +the scourge of <a href="http://microsoft.com/">Microsoft</a>, and +generally one step ahead of everyone +else. Oh, the <a href="http://google.com/">Google</a> search engine isn't too bad either.</p> + +<p>So what's up with <a href="http://google.com/">Google</a> as of late? In the past few months, +<a href="http://google.com/">Google</a> has </p> + +<ul> +<li>Released <a href="http://pack.google.com/">GooglePack</a>, an underwhelming Windows-centric +software pack</li> +<li>Released, then pulled, <a href="http://google-analytics.com/">Google Analytics</a>, an ad-targeting system</li> +<li><a href="http://news.com.com/What+the+Google-AOL+deal+means+for+users/2100-1024_3-6010327.html">Partnered</a> with <a href="http://aol.com/">AOL</a>, and agreed to give <a href="http://aol.com/">AOL</a> +advertising and content some sort of preferential treatment</li> +<li>Released <a href="http://video.google.com/">Google Video</a>, a proprietary, +<acronym title='Digital Rights Management'>DRM</acronym>-encumbered +video store and client</li> +</ul> + +<p>Even if we ignore the first two as silliness and attribute the third as +a hedge bet against <a href="http://microsoft.com/">Microsoft</a>, that still leaves us with a company +— who's by-line, incidentally, is "do no evil" — releasing yet another bloody +<acronym title='Digital Rights Management'>DRM</acronym>-crippled media +player. Which means more vendor lock-in, and more media in a format +which can't be easily — or, in some places, legally — +transferred between +programs.</p> + +<p>Then again, maybe they're just having an off month. I guess we'll just +have to wait and see.</p> + + diff --git a/content/posts/2006-01-14-sweep-gruff-under-the-rug.html b/content/posts/2006-01-14-sweep-gruff-under-the-rug.html new file mode 100644 index 0000000..16b9bb2 --- /dev/null +++ b/content/posts/2006-01-14-sweep-gruff-under-the-rug.html @@ -0,0 +1,37 @@ +--- +date: "2006-01-14T17:45:26Z" +title: Sweep Gruff Under the RUG +--- + +<p><em>Finally</em>, a <acronym title="Northern Virginia">NoVA</acronym> Ruby users group! Here's the brief post from +<code>ruby-talk</code>:</p> + +<blockquote> + <p>January 25...details can be found here: <a href="http://www.novarug.org">http://www.novarug.org</a></p> + + <p>I will be posting an itinerary soon, but we will be showing the app + were are working on at InfoEther (Ruby + Flash).</p> +</blockquote> + +<p>I'll be there, although that means forfeiting my previously sacrosanct +poker night. </p> + +<p>As you know, a user group meetup, regardless of the topic, isn't +complete without a nutty guy waving his arms and ranting about some +petty grievance, I'm already prepared with my crazy pedant rant.</p> + +<p>Why the hell, and I'm looking at you, <a href="http://gruff.rubyforge.org/" title="A graphing library, written in Ruby, that doesn't freakin work.">Gruff</a>, would you ship a +library that doesn't even work? It's got a bit of documentation, some +sample code, and examples of pretty output. Except it doesn't work. At +all. Why?</p> + +<p>Anyway, "novarug" — or is it written "NOVARUG" — has to be +one of the less sexy names I've heard recently. Hopefully +<a href="http://richkilmer.blogs.com/" title="This guy logs in and out of AIM more than anyone else I know.">Rich Kilmer</a>'s presentation in a couple weeks is as interesting as it +was at <a href="http://paulduncan.org/gallery/200410-rubyconf/" title="Pictures from RubyConf 2004 in Virginia.">RubyConf 2004</a>.</p> + +<p><b>Update:</b> Apparently the <a href="http://gruff.rubyforge.org/" title="A graphing library, written in Ruby, that doesn't freakin work.">Gruff</a> +library isn't broken, but the <a href="http://gruff.rubyforge.org/" title="A graphing library, written in Ruby, that doesn't freakin work.">Gruff</a> +gem is. It doesn't check for or require the RMagick gem. +</p> + diff --git a/content/posts/2006-01-18-computer-show-sn9c102-webcam-app.html b/content/posts/2006-01-18-computer-show-sn9c102-webcam-app.html new file mode 100644 index 0000000..2a06d31 --- /dev/null +++ b/content/posts/2006-01-18-computer-show-sn9c102-webcam-app.html @@ -0,0 +1,29 @@ +--- +date: "2006-01-18T01:36:56Z" +title: Computer Show, SN9c102 Webcam App +--- + + +<p><a href='http://twistedpath.org/'>Lyle (term)</a> pointed me at a local computer show this weekend, so +I headed over there and picked up some new toys. I got a cheap 4-port +<acronym title="Keyboard Video Mouse">KVM</acronym>, several touch lamps, the world's cutest (and crappiest) webcam +(see below), and a neat <a href="http://digitalbadge.com/" title="Neat LED-based name badges.">programmable <acronym title="Light-Emitting Diode">LED</acronym> nametag</a>.</p> + +<p>The webcam is a <em>OneZero PCC-ST3</em>. A bit of <a href="http://google.com/" title="Google. Know it, love it, live it.">googling</a> told me it's a +sn9c102-based camera, which is supported by recent (2.6.10+) versions of +the <a href="http://kernel.org/" title="Linux? What's that?">kernel</a>. I compiled and loaded the modules for <acronym title="Vidoe4Linux">V4L</acronym> and the +sn9c102 driver, then discovered none of the usual webcam apps +(<a href="http://linux.bytesex.org/xawtv/" title="The swiss-army knife of Unix TV applications.">xawtv</a>, <a href="http://linuxbrit.co.uk/camE/" title="Tom's Imlib2-based timestamping webcam daemon.">camE</a>, and <a href="http://linux.bytesex.org/xawtv/" title="xawtv tool for recording movies.">streamer</a>) supported the damn thing. A bit +more digging turned up <a href="http://bertrik.sikken.nl/webcam/" title="List of various tools for SN9c102-based webcams.">this list of sn9c102 apps</a>. After a +bit of hacking (and a lot of cleaning) on <a href="http://odie.mcom.fr/~clucas/articles/sn9c102.html" title="SDL-based SN9c102 webcam viewer.">Christophe Lucas's <acronym title="Simple Directmedia Layer">SDL</acronym> +SN9c102 webcam tool</a>, and I came up with my own +<a href="http://www.enlightenment.org/Libraries/Imlib2.html" title="Buggy, poorly-documented, inconsistent, and extremely fast image processing library.">Imlib2</a> webcam tool, which you can download below:</p> + +<p><a href="http://pablotron.org/files/sn9c102-webcam-0.1.0.tar.gz" title="Version 0.1.0 of my Imlib2 tool for SN9c102-based webcams.">Download sn9c102-webcam-0.1.0.tar.gz</a> (<a href="http://pablotron.org/files/sn9c102-webcam-0.1.0.tar.gz.asc" title="OpenPGP signature for the aforementioned SN9c102 webcam tool.">Signature</a>)</p> + +<p>A final self-referrential twist that would make <a href="http://www.imdb.com/name/nm0000186/" title="Director known for his maddenly disjointed films.">David Lynch</a> proud: +apparently <a href="http://twistedpath.org/">Lyle</a> recently purchased the same webcam, and hadn't +bothered to slog through the Linux muckery to get it working. +Everyone's a winner when I get new toys!</p> + + diff --git a/content/posts/2006-01-18-my-mythtv-scripts-for-mostly-automated-divx-encoding.html b/content/posts/2006-01-18-my-mythtv-scripts-for-mostly-automated-divx-encoding.html new file mode 100644 index 0000000..f05eb9b --- /dev/null +++ b/content/posts/2006-01-18-my-mythtv-scripts-for-mostly-automated-divx-encoding.html @@ -0,0 +1,63 @@ +--- +date: "2006-01-18T02:48:06Z" +title: My MythTV Scripts for Mostly-Automated DivX Encoding +--- + +<p>Did I mention that I set up a <a href="http://mythtv.org/" title="Free Linux-based PVR/HTPC.">MythTV</a> machine several months ago? +Anyway, I don't use the <a href="http://mythtv.org/" title="Free Linux-based PVR/HTPC.">MythTV</a> front-end; A recording server in my +rack downstairs (<code>spud</code>) records scheduled programs. Afterwards, I +re-encode recorded episodes as <a href="http://divx.com/" title="A fast, free, portable, and well-supported MPEG4 codec.">DivX5</a>-compatible <acronym title="Motion Picture Expert Group">MPEG</acronym>4 files (in an +<acronym title="Audio/Video Interleaved">AVI</acronym> wrapper) on a faster machine (<code>picard</code>, go ahead, laugh at the +hostname — you know you want to), then burn related shows off to +<acronym title="Digital Video Disc">DVD</acronym>.</p> + +<p>I realize it's a slightly convoluted configuration, but it works +well given my hardware constraints, and the fact that my <acronym title="Digital Video Disc">DVD</acronym> player +(a <a href="http://www.amazon.com/exec/obidos/tg/detail/-/B000204SWE?v=glance" title="Awesome inexpensive DivX/XviD-capable DVD player.">Philips DVP642</a>), is <a href="http://divx.com/" title="A fast, free, portable, and well-supported MPEG4 codec.">DivX5</a>-aware. That said, I'm posting +my scripts on the off-chance that pieces of them are useful to someone +who wants to set up a similar system. Here's what's included in the +tarball below:</p> + +<ul> +<li>myth_convert.sh: convert <a href="http://mythtv.org/" title="Free Linux-based PVR/HTPC.">MythTV</a> NUV files to <a href="http://divx.com/" title="A fast, free, portable, and well-supported MPEG4 codec.">DivX5</a>-compatible +<acronym title="Motion Picture Expert Group">MPEG</acronym>4 files.</li> +<li>mi: A <a href="http://ruby-lang.org/" title="The Ruby programming language.">Ruby</a> script to create filesystem-friendly names for <acronym title="Audio/Video Interleaved">AVI</acronym> +files encoded with <code>myth_convert.sh</code>.</li> +<li>mim: quick shell script to create hard links based on an <code>egrep</code>-style +regular expression.</li> +</ul> + +<p>A typical session is as follows:</p> + +<pre><code># (after running myth_convert.sh) +# see what's encoded +mi | less + +mkdir dvd && cd dvd + +# create hard links to encoded episodes of that 70s show, the +# colbert report, and the daily show, +mim 70s_ colbert daily_show + +# remove the original cryptically-named <acronym title="Audio/Video Interleaved">AVI</acronym> files +mimrm 70s_ colbert daily_show + +# create an iso of the <acronym title="Audio/Video Interleaved">AVI</acronym> files in the current directory, +mkisofs -r -R -J -o 70s-colbert-daily.iso *.avi + +# burn a DVD of the episodes in question +sudo dvdrecord -dao -v -speed=8 dev=/dev/hdc 70s-colbert-daily.iso + +# remove the <acronym title="Audio/Video Interleaved">AVI</acronym> and ISO files +rm *.avi *.iso && cd .. && rmdir dvd +</code></pre> + +<p>If you decide to use these scripts, please look through them and edit +the paths (most have my shared <acronym title="Network File System">NFS</acronym> paths hard-coded), and double-check +to make sure they won't do anything wacky with your systems. With that +in mind, here's the tarball:</p> + +<p><a href="http://pablotron.org/files/pabs-mythtv_scripts-20060118.tar.gz" title="A handful of MythTV convenience scripts I've written.">Download pabs-mythtv_scripts-20060118.tar.gz</a> +(<a href="http://pablotron.org/files/pabs-mythtv_scripts-20060118.tar.gz.asc" title="OpenPGP signature for this tarball.">Signature</a>)</p> + + diff --git a/content/posts/2006-01-21-xhtml-output-support-for-ruby-1-8-4-cgi.html b/content/posts/2006-01-21-xhtml-output-support-for-ruby-1-8-4-cgi.html new file mode 100644 index 0000000..233d2a5 --- /dev/null +++ b/content/posts/2006-01-21-xhtml-output-support-for-ruby-1-8-4-cgi.html @@ -0,0 +1,17 @@ +--- +date: "2006-01-21T15:02:23Z" +title: XHTML Output Support for Ruby 1.8.4 CGI +--- + +<p>Yesterday afternoon I submitted a patch to <code>ruby-core</code> that adds +<a href="http://www.w3.org/TR/xhtml1/" title="Read the XHTML 1.0 specification."><acronym title="eXtensible HyperText Markup Language">XHTML</acronym> 1.0</a> support to <a href="http://www.ruby-doc.org/stdlib/libdoc/cgi/rdoc/" title="Read the online documentation for the Ruby CGI library.">Ruby <acronym title="Common Gateway Interface">CGI</acronym></a>. Rather than explaining the +damn thing again, <a href="http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/7178" title="Read my original, extremely long, post about adding XHTML support to Ruby CGI.">here's the original message I sent</a>, followed +by <a href="http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/7180" title="Read James Britt's reply to my patch.">James Britt's reply</a>, and finally +<a href="http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/7182" title="My follow-up post and patch correcting the XML prolog issue.">my response and updated patch</a>. If you're interested, here's a +direct link to the patch:</p> + +<p><a href="http://diff.pablotron.org/ruby-1.8.4-xhtml_cgi-2.diff" title="XHTML output support for Ruby 1.8.4 CGI.">Download ruby-1.8.4-xhtml_cgi-2.diff</a> (<a href="http://pablotron.org/files/ruby-1.8.4-xhtml_cgi-2.diff.asc" title="OpenPGP signature for the aforementioned patch.">Signature</a>)</p> + +<p>(<acronym title="For Your Information">FYI</acronym>, still using <a href="http://daringfireball.net/projects/markdown/syntax" title="Nifty little document markup language.">Markdown</a> for these posts, and still loving it).</p> + + diff --git a/content/posts/2006-01-23-it-s-exponential-baby.html b/content/posts/2006-01-23-it-s-exponential-baby.html new file mode 100644 index 0000000..baf0696 --- /dev/null +++ b/content/posts/2006-01-23-it-s-exponential-baby.html @@ -0,0 +1,20 @@ +--- +date: "2006-01-23T09:29:10Z" +title: It's Exponential, Baby! +--- + +<p> +I just peeked at our bandwidth usage for <code>kylie</code> and used the data set as an excuse to +give <a href='http://nubyonrails.topfunky.com/pages/gruff'>Gruff</a> another shot. Here's what I got: +</p> + +<p> +<img src='/gallery/misc/kylie-bw-20060122.png' width='600' height='450' + title='bandwidth history for kylie' alt='bandwidth history for kylie' + border='0' /> +</p> + +<p> +I know the big spike came from <a href='http://lily.richlowe.net/'>Jon-Anne's (lily)</a> insanely popular kitty pictures, but overall there is an upward trend. Also, graphs produced by <a href='http://nubyonrails.topfunky.com/pages/gruff'>Gruff</a> look pretty good! +</p> + diff --git a/content/posts/2006-01-23-wordpress-en-masse-and-akismet.html b/content/posts/2006-01-23-wordpress-en-masse-and-akismet.html new file mode 100644 index 0000000..69b7a60 --- /dev/null +++ b/content/posts/2006-01-23-wordpress-en-masse-and-akismet.html @@ -0,0 +1,66 @@ +--- +date: "2006-01-23T08:39:11Z" +title: WordPress En Masse and Akismet +--- + +<p>Saturday evening I spent several hours upgrading <a href="http://erinmduncan.com/" title="My sister Erin's web page.">erinmduncan.com</a>, +<a href="http://saraduncan.com/" title="My sister Sara's web page.">saraduncan.com</a>, <a href="http://richandrobynn.com/" title="My sister Dad and stepmom's web page.">richandrobynn.com</a>, and <a href="http://drotedogg.com/" title="My friend Nick's web page.">drotedogg.com</a> to the +latest and greatest versions of <a href="http://wordpress.org/" title="The ever-popular blogging tool.">Wordpress</a> and <a href="http://gallery.sf.net/" title="Web-based photo gallery written in PHP.">Gallery</a>. The +upgrades themselves were relatively painless (especially the <a href="http://gallery.sf.net/" title="Web-based photo gallery written in PHP.">Gallery</a> +one, which I won't even mention here), but I did jot down some +notes that might be useful to anyone else who has to do this kind of +upgrade.</p> + +<p>Tip #1: Try and stay current with your version of <a href="http://wordpress.org/" title="The ever-popular blogging tool.">WordPress</a>. +All of the aforementioned pages were running <a +href="http://wordpress.org/" title="The ever-popular blogging +tool.">Wordpress 1.2</a> which, +besides being chock-full of vulnerabilities (that were +<a href="http://pablotron.org/files/saraduncan.com-owned-20051203/" title="Sara's front page after it was defaced by a Brazillian group.">expoited at least once</a>), doesn't have an +immediate upgrade path to <a href="http://wordpress.org/" title="The ever-popular blogging tool.">WordPress 2.0</a>. The +<a href="http://codex.wordpress.org/Upgrading_WordPress" title="How to upgrade from WordPress 1.5 to WordPress 2.0.">WordPress 2.0 upgrade instructions</a> recommend +<a href="http://codex.wordpress.org/Upgrade_1.2_to_1.5" title="How to upgrade from WordPress 1.2 to WordPress 1.5.">upgrading from WordPress 1.2 to WordPress 1.5</a> before +upgrading to <a href="http://wordpress.org/" title="The ever-popular blogging tool.">WordPress 2.0</a>. Unfortunately, the +<a href="http://wordpress.org/download/" title="WordPress download page.">WordPress download page</a> only links to the latest release, and it +wasn't immediately apparent from the instructions how to obtain a copy +of <a href="http://wordpress.org/" title="The ever-popular blogging tool.">WordPress 1.5</a>. Fortunately, a bit of digging turned up +<a href="http://static.wordpress.org/archive/" title="Every release of WordPress, ever.">this page</a>, which has every release of <a href="http://wordpress.org/" title="The ever-popular blogging tool.">WordPress</a> since +the dawn of time. There are at least two other pages indexed by +<a href="http://google.com/" title="Apparently this is a search engine or something. Who knew?">Google</a> with <a href="http://wordpress.org/" title="The ever-popular blogging tool.">WordPress 1.5.1.3</a> tarballs, but both have +incorrect <acronym title="Message Digest 5 (cryptgraphic digest algorithm)">MD5</acronym> checksums, and at least one had some a code +change (which, upon inspection, appeared to be a bug fix). To be safe, +I stuck with the version from the <a href="http://static.wordpress.org/archive/" title="Every release of WordPress, ever.">legitimate WordPress archive</a>. </p> + +<p>I also switched all of the pages to a much simpler form of comment +spam filtering. Previously, the spam filtering was of a +convoluted combination of a phrase blacklist ("penis", "poker", +"viagra", etc), hacked in <a href="http://www.gudlyf.com/index.php?p=376" title="CAPTCHA plugin for WordPress 1.2, 1.5, and 2.0.">AuthImage</a> support, and a tweaked +<code>xmlrpc.php</code>. In fact, one of the reasons I was hesitant about +upgrading to <a href="http://wordpress.org/" title="The ever-popular blogging tool.">WordPress 1.5</a> was that I wasn't too optimistic about +duplicating all that nonsense. </p> + +<p>As of <a href="http://wordpress.org/" title="The ever-popular blogging tool.">WordPress 2.0</a>, all that hackery has been replaced by the +built-in <a href="http://wordpress.org/" title="The ever-popular blogging tool.">WordPress 2.0</a> plugin for <a href="http://akismet.com/" title="Free comment spam filtering system with an open API and a plugin for WordPress.">Akismet</a>. I haven't tested +it, I have a feeling it's something blog spammers can circumvent, +and I don't see how the company can stay afloat providing this as a free +service. But hey, I'm lazy. +<a href="http://akismet.com/" title="Free comment spam filtering system with an open API and a plugin for WordPress.">Akismet</a> requires zero administration, zero +tweaking, and, most importantly, zero patching, so I'm willing to give it a try and see what happens. Plus, the <a href="http://akismet.com/development/"><acronym title="Application Programming Interface">API</acronym></a> is +relatively straightforward, so if there are any hijinks on the their part, then +it's easy enough to switch to a comparable open system. There +are even <a href="http://www.blojsom.com/blog/nerdery/2005/12/02/Akismet-API-in-Ruby.html" title="Ruby bindings for Akimset.">Akismet bindings</a> for <a href="http://ruby-lang.org/" title="No post is complete without a reference to my favorite programming language.">Ruby</a>, although my initial perusal +of the source code tells me they won't work in <a href="http://linux.com/" title="Penguins, free beer, that sort of thing.">Linux</a> without a bit +of tweaking (hint: case-sensitive filesystems mean case-sensitive file +names). The only real <a href="http://akismet.com/" title="Free comment spam filtering system with an open API and a plugin for WordPress.">Akismet</a> annoyance is that in order to get an +<acronym title="Application Programming Interface">API</acronym> key, you <em>have</em> to sign up for a <a href="http://wordpress.com/" title="Free blog hosting system running, you guessed it, WordPress.">WordPress.com</a> account. It's +free, but it means I have yet another throw-away account, not to mention +a blog that I'll never update (everyone say hello to +<a href="http://pablotron.wordpress.com/">http://pablotron.wordpress.com/</a>!).</p> + +<p>Overall though, I have to hand it to the <a href="http://wordpress.org/" title="The ever-popular blogging tool.">WordPress</a> developers. It looks +like there are a fair number of changes under the hood, and I'm +impressed by how seamless they made the both of the upgrades. Or +maybe I'm just excited about not spending Sunday afternoons sitting at +the <a href="http://mysql.com/" title="Mostly open RDBMS.">MySQL</a> console deleting comment spam any more. Either way, I'm +happy.</p> + diff --git a/content/posts/2006-01-26-notes-from-the-first-novarug-meetup.html b/content/posts/2006-01-26-notes-from-the-first-novarug-meetup.html new file mode 100644 index 0000000..59ded17 --- /dev/null +++ b/content/posts/2006-01-26-notes-from-the-first-novarug-meetup.html @@ -0,0 +1,190 @@ +--- +date: "2006-01-26T03:55:35Z" +title: Notes from the First NovaRug Meetup +--- + +<p>Tonight I went to the first Northern Virginia Ruby Users Group +(<acronym title="Northern Virginia Ruby Users Group">NOVARUG</acronym>). Here are my semi-distilled notes and commentary on the +evening:</p> + +<ul> +<li><a href="http://richkilmer.blogs.com/" title="Well-known Ruby hacker.">Rich Kilmer</a> spent most of the time giving a presentation on +<a href="http://alph.rubyforge.org/" title="No, not the space muppet. Alph is a Ruby/ActionScript bridge.">Alph</a>, and talking about his experience doing a functional +prototype interface for mid-air plane refueling. He also talked about +bridging <a href="http://ruby-lang.org/" title="A high-level, cross-platform, pure object-oriented programming language.">Ruby</a> and <a href="http://en.wikipedia.org/wiki/ActionScript" title="Scripting language for Flash and ShockWave.">ActionScript</a>. The <a href="http://ruby-lang.org/" title="A high-level, cross-platform, pure object-oriented programming language.">Ruby</a>-related content +was similar to the presentation he gave at <a href="http://pablotron.org/?cid=1380" title="My first (of several) posts about RubyConf 2004 in D.C..">RubyConf 2004</a>, so I +didn't bother taking too many notes on the actual application.</li> +<li>~44 people. There were roughly 60 people at <a href="http://pablotron.org/?cid=1122" title="My post about (and notes from) RubyConf 2002 in Seattle, WA.">RubyConf 2002</a>, and +maybe 100 at <a href="http://pablotron.org/?cid=1380" title="My first (of several) posts about RubyConf 2004 in D.C..">RubyConf 2004</a>. 40+ people in for a straight +<acronym title="Northern Virginia,">NOVA</acronym>/<acronym title="District of Columbia">DC</acronym> meetup kind of puts the recent exponential growth of +<a href="http://ruby-lang.org/" title="A high-level, cross-platform, pure object-oriented programming language.">Ruby</a> in perspective. <a href="http://rubycentral.com/" title="The man with the plan behind RubyConf, who apparently has no web site (or at least not one that I can find).">David Black (dblack)</a> and I talked about +that a few months ago on <acronym title="Internet Relay Chat">IRC</acronym>, but I didn't appreciate the magnitude +of the increase until this evening.</li> +<li>While fiddling around on my laptop without Internet, I just discovered +that the never-released <a href="http://pablotron.org/?cid=1384" title="My GTK+-based GUI for RubyGems.">Gemini</a> still works :D. <a href="http://pablotron.org/?cid=1384" title="My GTK+-based GUI for RubyGems.">Gemini</a> is a +<a href="http://gtk.org/" title="Graphical widget library. Foundation for GNOME, GIMP, XMMS, and more."><acronym title="Gimp ToolKit">GTK</acronym></a> package management <acronym title="Graphical User Interface">GUI</acronym> for <a href="http://docs.rubygems.org/" title="Ruby packaging application.">RubyGems</a>, written in +(suprise!) <a href="http://ruby-lang.org/" title="A high-level, cross-platform, pure object-oriented programming language.">Ruby</a>. Is anyone interested in this thing? I could +probably touch it up and have it release-ready in about a week if +there's still a desire.</li> +<li>Rich mentioned <a href="http://mtasc.org/" title="A fast, open source, Ocaml-based ActionScript 2 compiler."><acronym title="Motion-Twin ActionScript 2 Compiler">MTASC</acronym></a>, which is a fast, open source, +<a href="http://en.wikipedia.org/wiki/ActionScript" title="Scripting language for Flash and ShockWave.">ActionScript</a> to <acronym title="Macromedia ShockWave/Flash file (not really an acronym)">SWF</acronym> compiler written in <a href="http://caml.inria.fr/" title="General-purpose functional, imperative, and object-oriented programming language.">OCaml</a>. Apparently +it's noticably better than <a href="http://macromedia.com/">Macromedia</a>'s (now <a href="http://adobe.com/">Adobe</a>) tools</li> +<li>Talked about <a href="http://actionstep.org/" title="Rich Kilmer's Flash GUI library based on OpenStep/Cocoa.">ActionStep</a>, a <a href="http://en.wikipedia.org/wiki/Macromedia_Flash" title="A popular media plugin for web browsers.">Flash</a>-based <a href="http://en.wikipedia.org/wiki/OpenStep" title="An open, object-oriented API, originally used in NeXTSTEP.">OpenStep</a>/<a href="http://en.wikipedia.org/wiki/Cocoa_%28API%29" title="Apple's object-oriented MacOS X API.">Cocoa</a> +<acronym title="Application Programming Interface">API</acronym></li> +<li><a href="http://richkilmer.blogs.com/" title="Well-known Ruby hacker.">Rich</a> apparently didn't know what <a href="http://en.wikipedia.org/wiki/Freebasing" title="Reference to smoking crack or heroin">freebasing</a> was when he named +<a href="http://freeride.rubyforge.org/wiki/wiki.pl?FreeBASE" title="The core for the FreeRIDE Ruby IDE.">FreeBase</a> (I wondered about that at <a href="http://pablotron.org/?cid=1122" title="My post about (and notes from) RubyConf 2002 in Seattle, WA.">RubyConf 2002</a>).</li> +<li><a href="http://richkilmer.blogs.com/" title="Well-known Ruby hacker.">Rich</a> noted that he's using <code>camelCase</code> instead of underscores +for method names in <a href="http://alph.rubyforge.org/" title="No, not the space muppet. Alph is a Ruby/ActionScript bridge.">Alph</a> because the methods are actually +<acronym title="Remote Method Invocation">RMI</acronym> calls from <a href="http://ruby-lang.org/" title="A high-level, cross-platform, pure object-oriented programming language.">Ruby</a> to <a href="http://en.wikipedia.org/wiki/ActionScript" title="Scripting language for Flash and ShockWave.">ActionScript</a>. He noted that +underscores are generally the <a href="http://ruby-lang.org/" title="A high-level, cross-platform, pure object-oriented programming language.">Ruby</a> way, and that people outside +the <acronym title="United States">US</acronym> (especially Japanese people) have a lot of trouble reading +<code>camelCase</code> code because they don't recognize the case and, by +extension, can't distinguish the words. If you think about it, it +makes sense. Can you tell two similar <a href="http://en.wikipedia.org/wiki/Kanji" title="Japanese writing system derived from Chinese characters.">Kanji</a> glyphs apart?</li> +<li><a href="http://richkilmer.blogs.com/" title="Well-known Ruby hacker.">Rich</a>'s presentation uses code like <code>60.days</code> and <code>24.hours</code>. +He mentioned that that's an extension to <code>Integer</code>, but I hope he +misspoke, because that makes a whole lot more sense as an extension to +<code>Numeric</code>, because that way it gets picked up by <code>Bignum</code>, <code>Fixnum</code>, +and <code>Float</code> for free.</li> +<li><a href="http://richkilmer.blogs.com/" title="Well-known Ruby hacker.">Rich</a> showed off <a href="http://infoether.net/" title="Cross-platform Flash-based personal information manager.">Indi</a>, a cross-platform <a href="http://en.wikipedia.org/wiki/Macromedia_Flash" title="A popular media plugin for web browsers.">Flash</a>-based <acronym title="Personal Information Manager">PIM</acronym> +for <acronym title="Universal Serial Bus">USB</acronym> drives. It requires <a href="http://en.wikipedia.org/wiki/Macromedia_Flash" title="A popular media plugin for web browsers.">Flash</a> 8, so by cross-platform he +really means <a href="http://apple.com/macosx/" title="MacOS 10. The operating system by that bitten fruit company."><acronym title="MacOS 10">OSX</acronym></a> and <a href="http://microsoft.com/windows/" title="The Microsoft Windows operating system.">Windows</a>, at least until +<a href="http://macromedia.com/">Macromedia</a>/<a href="http://adobe.com/">Adobe</a> release <a href="http://en.wikipedia.org/wiki/Macromedia_Flash" title="A popular media plugin for web browsers.">Flash</a> 8 for <a href="http://linux.com/" title="Free SysV/BSD hybrid Unix.">Linux</a>.</li> +<li>Apparently the current <a href="http://en.wikipedia.org/wiki/Macromedia_Flash" title="A popular media plugin for web browsers.">Flash</a> runtime doesn't do <a href="http://en.wikipedia.org/wiki/Just-in-time_compilation" title="Technique for improving the performance of bytecode-compiled programming systems."><acronym title="Just In Time compilation">JIT</acronym></a> +internally (I asked about this, apparently it parses, then walks +the <acronym title="Abstract Syntax Tree">AST</acronym>, similar to <a href="http://ruby-lang.org/" title="A high-level, cross-platform, pure object-oriented programming language.">Ruby</a> 1.8. If they're doing that, then +they really shouldn't be calling <acronym title="Macromedia ShockWave/Flash file (not really an acronym)">SWF</acronym> files <a href="http://en.wikipedia.org/wiki/Bytecode" title="Intermediate assembly-like code that is intended to increase speed and portability.">bytecode</a>). According +to <a href="http://richkilmer.blogs.com/" title="Well-known Ruby hacker.">Rich</a>, the upcoming runtime <em>will</em> <a href="http://en.wikipedia.org/wiki/Just-in-time_compilation" title="Technique for improving the performance of bytecode-compiled programming systems."><acronym title="Just In Time compilation">JIT</acronym></a>, which means an +approximate 10x speed boost at the cost of an upgrade and increased +disk footprint of roughly 200k. Not too shabby.</li> +<li>Thought: <a href="http://infoether.net/" title="Cross-platform Flash-based personal information manager.">Indi</a> for <a href="http://linux.com/" title="Free SysV/BSD hybrid Unix.">Linux</a> could use the evil shell script stuff +to build an all-in-one equivalent to a <a href="http://apple.com/macosx/" title="MacOS 10. The operating system by that bitten fruit company."><acronym title="MacOS 10">OSX</acronym></a> <code>.app</code> (they'd need +to statically compile stuff to make it truly portable).</li> +<li>Some group conversation about <a href="http://www.openlaszlo.org/" title="An XML-based declarative language for creating user interfaces.">OpenLaszlo</a>), an <acronym title="eXtensible Markup Language">XML</acronym>-based platform +(<acronym title="Interface Definition Language">IDL</acronym>, <acronym title="Integrated Development Environment">IDE</acronym>, etc), and how it compares to <a href="http://alph.rubyforge.org/" title="No, not the space muppet. Alph is a Ruby/ActionScript bridge.">Alph</a>. The +difference between <a href="http://alph.rubyforge.org/" title="No, not the space muppet. Alph is a Ruby/ActionScript bridge.">Alph</a> and <a href="http://www.openlaszlo.org/" title="An XML-based declarative language for creating user interfaces.">OpenLaszlo</a> is that the former +<em>parses</em> <acronym title="eXtensible Markup Language">XML</acronym> at runtime (similar to <a href="http://en.wikipedia.org/wiki/XUL" title="Declarative XML-based language for describing user interfaces.">Mozilla's <acronym title="eXtensible User Interface Language">XUL</acronym></a> and +<a href="http://en.wikipedia.org/wiki/XAML" title="Declarative XML-based language for describing user interfaces.">Microsoft's <acronym title="eXtensible Avalon Markup Language">XAML</acronym> (Avalon)</a>), while the latter compiles +the <acronym title="eXtensible Markup Language">XML</acronym> <acronym title="Interface Definition Language">IDL</acronym> to a <a href="http://en.wikipedia.org/wiki/Macromedia_Flash" title="A popular media plugin for web browsers.">Flash <acronym title="Macromedia ShockWave/Flash file (not really an acronym)">SWF</acronym></a>.</li> +<li><a href="http://en.wikipedia.org/wiki/ActionScript" title="Scripting language for Flash and ShockWave.">ActionScript</a> 1 was a <a href="http://en.wikipedia.org/wiki/Prototype-based_programming" title="A form of object-oriented programming without classes used by languages such as JavaScript and ActionScript 1.">prototype-based</a> language (e.g. like +<a href="http://en.wikipedia.org/wiki/Javascript" title="Prototype-based, object-oriented scripting language used in web browsers.">JavaScript</a>). apparently now it's <a href="http://en.wikipedia.org/wiki/Class_%28programming%29" title="Description of an object in an object-oriented programming language.">class-based</a>.</li> +<li>Question about why not <a href="http://alph.rubyforge.org/" title="No, not the space muppet. Alph is a Ruby/ActionScript bridge.">Alph</a> isn't using <acronym title="Scalable Vector Graphics">SVG</acronym> for the runtime, +especially since it has the advantage of being open. <a href="http://richkilmer.blogs.com/" title="Well-known Ruby hacker.">Rich</a> +explained that <acronym title="Scalable Vector Graphics">SVG</acronym> requires a plugin (which isn't quite true, +<a href="http://mozilla.org/firefox/" title="The latest and greatest version of Mozilla Firefox.">Firefox 1.5</a> doesn't require a plugin to display <acronym title="Scalable Vector Graphics">SVG</acronym>, but +it's implementation <a href="http://developer.mozilla.org/en/docs/SVG_in_Firefox_1.5" title="Firefox's SVG support is a subset of SVG 1.1.">needs some work</a>). Regarding +licensing, <a href="http://macromedia.com/">Macromedia</a>/<a href="http://adobe.com/">Adobe</a> aren't likely to make any major +licensing changes, since that would screw their established user base.</li> +<li>Last year <a href="http://adobe.com/">Adobe</a> open-sourced <a href="http://opensource.adobe.com/group__asl__overview.html" title="Adobe's open source interface libraries.">Adam and Eve</a>, the C++-based core +interface framework for <a href="http://adobe.com/products/photoshop/" title="The de-facto professional image editing application.">Photoshop</a> and several other <a href="http://adobe.com/">Adobe</a> +applications</li> +</ul> + +<p>And that's all I've got for <a href="http://richkilmer.blogs.com/" title="Well-known Ruby hacker.">Rich Kilmer</a>'s presentation. Afterwards +he gave the group an opportunity to talk about their projects. I didn't +catch anyones' names, and <a href="http://google.com/" title="Some search engine. Never heard of it">Google</a> failed me, so I couldn't find +references to these projects online.</p> + +<ul> +<li>Guy who works at <a href="http://nist.gov/" title="U.S. government body that handles technology standards."><acronym title="National Institute of Standards and Technology">NIST</acronym></a>, demoing app to model <a href="http://en.wikipedia.org/wiki/Printed_circuit_board" title="An insulated board with the circuit conductors etched in."><acronym title="Printed Circuit Board">PCB</acronym></a> standards, +in <acronym title="Three-Dimentional">3D</acronym>. You can zoom in and out and rotate the <a href="http://en.wikipedia.org/wiki/Printed_circuit_board" title="An insulated board with the circuit conductors etched in."><acronym title="Printed Circuit Board">PCB</acronym></a> around. +Got oohs and aahs from the crowd :).</li> +<li>"Pippen" apparently marshals data to <acronym title="eXtensible Markup Language">XML</acronym>, and there was another +app called "Genie", but I didn't catch what it did.</li> +<li>He made several references to <a href="http://en.wikipedia.org/wiki/Fiducial" title="A fixed reference point to which objects can be related.">fiducials</a>, which I +thought sounded neat, so I looked it up on <a href="http://wikipedia.org/" title="A free and open encyclopedia.">Wikipedia</a>.</li> +<li>Everything his group at <a href="http://nist.gov/" title="U.S. government body that handles technology standards."><acronym title="National Institute of Standards and Technology">NIST</acronym></a> does is <a href="http://en.wikipedia.org/wiki/Public_domain" title="The body of knowledge which no legal entity can establish or maintain proprietary interest.">public domain</a>, so +people are more than welcome to try this stuff out.</li> +<li>Someone asked about the state of <a href="http://www2.giganet.net/~yoshi/" title="OpenGL bindings for RUby.">Ruby OpenGL</a>, since it's listed +as a prerequisite for his demo application. Apparently it's working +just fine for everything he's tried, except for <a href="http://en.wikipedia.org/wiki/Tessellation" title="Collection of plane figures that fill a plane with no overlaps and no gaps.">tesselation</a>.</li> +</ul> + +<p>Someone else (again, no name, although he made a passing reference to +the <acronym title="District of Columbia">DC</acronym> <acronym title="eXtreme Programming">XP</acronym> users group) talked briefly about a <a href="http://rubyonrails.org/" title="An MVC-based web framework, written in Ruby.">Rails</a>-based +social networking tool:</p> + +<ul> +<li>Allows animal rescue people to coordinate on a national level.</li> +<li>Someone suggested that he use <a href="http://maps.google.com/" title="You already know what this is. If you don't, where have you been?">Google Maps</a>, and he said he +is thinking about it, but the more important aspect of the application +is route-planning and commentary (he doesn't want to stop at the wrong +<a href="http://mcdonalds.com/" title="Fast food. Don't eat here. Seriously.">McDonalds</a> and meet up with <a href="http://en.wikipedia.org/wiki/Ted_Bundy" title="Not someone you want to meet at a truck stop.">Ted Bundy</a>).</li> +</ul> + +<p>Finally, one person to the right of me (hiding in the back, along with +all the other <em>real</em> introverts. Either that or he was late like me +:D) mentioned an abstract <a href="http://rubyonrails.org/" title="An MVC-based web framework, written in Ruby.">Rails</a> authentication plugin he was working +on. No name, and no project name (he didn't provide either), so that's +the most information I can give you.</p> + +<p>After that, there was some miscellaneous conversation about future +<a href="http://novarug.org/" title="Blog for the Northern Virginia Ruby Users Group."><acronym title="Northern Virginia Ruby Users Group">NOVARUG</acronym></a>, specifically times and frequency. It sounds like they're +going to be monthly, on Thursday evenings (because otherwise it +conflicts with my poker night!), and start at 7:00 (or 6:30 if you want +the free pizza). There was one comment about starting earlier, but the +general consensus seems to be that 7:00 is just fine; any earlier and +traffic becomes a serious problem. Personally, I'm hoping we can find a +venue that's closer to the Fairfax area, mainly because I'm selfish +and lazy, but also because that would make <a href="http://novarug.org/" title="Blog for the Northern Virginia Ruby Users Group."><acronym title="Northern Virginia Ruby Users Group">NOVARUG</acronym></a> more <acronym title="District of Columbia">DC</acronym> and +Maryland accessible. Also, the <a href="http://www.wmata.com/" title="Subway system for the greater Washinton D.C area.">Metro</a> doesn't run out to Reston, +which means people <em>have</em> to drive or carpool. </p> + +<p>(Of course, when I say "drive", I mean "sitting in stopped traffic on +495 for 30 minutes, staring at the silhouette mudflaps on the semi in +front of you and hoping the drivers on both sides don't notice you +picking the gunk out of your eyes or hear you jamming out to +<a href="http://en.wikipedia.org/wiki/Madonna_%28entertainer%29" title="Madonna, the queen of pop.">Madonna</a>").</p> + +<p>There was some talk about setting up a <a href="http://novarug.org/" title="Blog for the Northern Virginia Ruby Users Group."><acronym title="Northern Virginia Ruby Users Group">NOVARUG</acronym></a> mailing list. +Apparently there are already a couple <a href="http://groups.yahoo.com/" title="Yahoo collaberative tool that provides mailing lists and more.">Yahoo groups</a>, but both +are essentially dead, and the owner of one is <acronym title="Missing In Action">MIA</acronym>. <a href="http://richkilmer.blogs.com/" title="Well-known Ruby hacker.">Rich</a> and +<a href="http://tomcopeland.blogs.com/" title="Brains and the brawn behind RubyForge.">Tom</a> are going to set something up on the <code>novarug.org</code> domain, and +provide the details on <a href="http://novarug.org/" title="Blog for the Northern Virginia Ruby Users Group.">the <acronym title="Northern Virginia Ruby Users Group">NOVARUG</acronym> blog</a>.</p> + +<p><a href="http://richkilmer.blogs.com/" title="Well-known Ruby hacker.">Rich</a> mentioned something about <a href="http://paulgraham.com/" title="Popular Lisp programmer and geek writer.">Paul Graham</a> speaking at the +upcoming <a href="http://railsconf.com/" title="The upcoming conference for Ruby on Rails.">RailsConf</a> in Chicago. Personally, I have no real interest +in <a href="http://rubyonrails.org/" title="An MVC-based web framework, written in Ruby.">Rails</a> — I think it's a great, I just don't use it personally +— so I can't justify the cost of the conference. I like +<a href="http://paulgraham.com/" title="Popular Lisp programmer and geek writer.">Paul Graham's</a> writing (although I'm only aware of +<a href="http://paulgraham.com/college.html" title="Paul Graham's one reference to Ruby.">one Ruby reference</a>), so I'd love to hear him speak. Hopefully +that'll go better than <a href="http://en.wikipedia.org/wiki/Brad_Cox" title="Author of Objective C.">Brad Cox</a> at <a href="http://pablotron.org/?cid=1380" title="My first (of several) posts about RubyConf 2004 in D.C..">RubyConf 2004</a> (which was +actually really interesting, until he tried to talk about his new +proprietary <acronym title="Digital Rights Management">DRM</acronym> system...to an all open source crowd).</p> + +<p>Afterwards, a couple of 3-5 person groups coalesced and talked for +about 30 minutes. I eavesdropped in on the group around <a href="http://richkilmer.blogs.com/" title="Well-known Ruby hacker.">Rich Kilmer</a> +and even offered a bit of commentary. <a href="http://richkilmer.blogs.com/" title="Well-known Ruby hacker.">Rich Kilmer</a> said <a href="http://fox-toolkit.org/" title="An open source, cross-platform, C++-based graphical widget toolkit.">Fox</a> is ugly on +some platforms, and I said "no, <a href="http://fox-toolkit.org/" title="An open source, cross-platform, C++-based graphical widget toolkit.">Fox</a> is ugly on every platform" (it +is. I've seen stuff I've written on themed XP systems, and it basically +looks like a <a href="http://en.wikipedia.org/wiki/Tk_%28computing%29" title="An ugly open source, cross-platform widget toolkit.">Tk</a>-based app does on every platform: teeth-gnashingly +ugly). <a href="http://docs.rubygems.org/" title="Ruby packaging application.">RubyGems</a> and <a href="http://rubyforge.org/" title="Home for Ruby open source projects.">RubyForge</a> both came up a couple of times +in conversation, so I'll mention them here: <a href="http://docs.rubygems.org/" title="Ruby packaging application.">RubyGems</a> and +<a href="http://rubyforge.org/" title="Home for Ruby open source projects.">RubyForge</a>. And don't forget +<a href="http://pablotron.org/?cid=1440" title="Never trust crypto from a guy in clown suit.">this amusing <acronym title="Internet Relay Chat">IRC</acronym> quote</a> about <a href="http://docs.rubygems.org/" title="Ruby packaging application.">RubyGems</a>.</p> + +<p>On the way out I got a chance to talk to <a href="http://tomcopeland.blogs.com/" title="Brains and the brawn behind RubyForge.">Tom Copeland</a>, who I haven't +seen since he made me feel like a celebrity by recognizing me as "the +Pablotron guy!" at <a href="http://bajafresh.com/">Baja Fresh</a>. He liked the excessively +verbose description of <a href="http://pablotron.org/?cid=1475" title="My recent patch to add XHTML output support to Ruby CGI.">my <acronym title="eXtensible HyperText Markup Language">XHTML</acronym> patch</a> on <code>ruby-core</code>, +and also noticed how it's difficult to get patches through on +<code>ruby-core</code>. I realize that's mainly a language/cultural barrier and +not any sort of malice,, but it's still frustrating to be on the short +side of the stick. <a href="http://richkilmer.blogs.com/" title="Well-known Ruby hacker.">Rich</a> suggested I send <a href="http://rdoc.sourceforge.net/" title="Ruby documentation generation program.">RDoc</a> patches directly +to <a href="http://blogs.pragprog.com/cgi-bin/pragdave.cgi" title="Author of Programming Ruby, one of the Pragmatic Programmers.">Dave Thomas</a> (those particular patches have already been silently +accepted into 1.9, but not <a href="http://pablotron.org/?cid=1475" title="My recent patch to add XHTML output support to Ruby CGI.">the <acronym title="eXtensible HyperText Markup Language">XHTML</acronym> ones</a>).</p> + +<p>That's it for my notes. You know the drill: let me know if you see any +gratuitous errors. I'll definitely be at the next schindig; maybe I'll +even have something to present!</p> + +<p><b>Update:</b> The colorful language about <a href="http://fox-toolkit.org/" title="An open source, cross-platform, C++-based graphical widget toolkit.">Fox</a> isn't meant to downplay the usefulness of the library; I think the <acronym title="Application Programming Interface">API</acronym> is really straightforward, and that it looks and feels nicer than <a href="http://en.wikipedia.org/wiki/Tk_%28computing%29" title="An ugly open source, cross-platform widget toolkit.">Tk</a> and a slew of other non-native widget libraries. That said, non-native widget toolkits don't mimic the look and feel of the native system, and that almost always looks terrible to me. That goes for <a href='http://mozilla.org/'>Mozilla</a> under, well, pretty much everything, <a href='http://gimp.org/'>Gimp</a> and <a href='http://gaim.sf.net/'>Gaim</a> in Windows and, of course, <a href="http://fox-toolkit.org/" title="An open source, cross-platform, C++-based graphical widget toolkit.">Fox</a>. <a href='http://mozilla.org/firefox/'>Firefox</a> seems to look okay to me for some reason, except under MacOS. Go figure. Anyway, my comment above was intended less as an to insult the <a href="http://fox-toolkit.org/" title="An open source, cross-platform, C++-based graphical widget toolkit.">Fox</a> developers, and more as a light-hearted jab from someone at 10,000 feet who hasn't taken the time and effort required to design, create, and maintain a cross-platform widget toolkit. +</p> + +<p><b>Even Later Update (2006-02-27):</b> The "anonymous guy talking +about an authorization plugin" was <a href='http://billkatz.com/'>Bill +Katz</a>, and his <a href='http://rubyonrails.com/'>Rails</a> +authorization plugin is available <a +href='http://www.billkatz.com/authorization'>here</a>. +</p> + diff --git a/content/posts/2006-02-13-using-greasemonkey-for-decent-keyboard-navigation.html b/content/posts/2006-02-13-using-greasemonkey-for-decent-keyboard-navigation.html new file mode 100644 index 0000000..360f1c1 --- /dev/null +++ b/content/posts/2006-02-13-using-greasemonkey-for-decent-keyboard-navigation.html @@ -0,0 +1,51 @@ +--- +date: "2006-02-13T04:31:20Z" +title: Using Greasemonkey for Decent Keyboard Navigation +--- + +<p>This weekend I spent some time playing with <a href="http://greasemonkey.mozdev.org/" title="The GreaseMonkey Firefox plugin.">Greasemonkey</a>. +<a href="http://greasemonkey.mozdev.org/" title="The GreaseMonkey Firefox plugin.">Greasemonkey</a> is a a great little <a href="http://mozilla.org/firefox/" title="The Firefox web browser.">Firefox</a> extension which allows +you to customize pages with JavaScript. I also whipped up +<a href="http://pablotron.org/files/greasemonkey/" title="Greasemonkey scripts written by me.">my own Greasemonkey scripts</a> to add navigational access keys +(<acronym title="Navigational Access Keys">NAK</acronym>) to <a href="http://digg.com/" title="Technology news and social bookmarking.">Digg</a>, <a href="http://reddit.com/" title="News and social bookmarking.">Reddit</a>, and the +<a href="http://forums.somethingawful.com/" title="Something Awful forums.">Something Awful Forums (<acronym title="Something Awful Forums">SAF</acronym>)</a>:</p> + +<ul> +<li><a href="http://pablotron.org/files/greasemonkey/digg-nak-0.1.user.js" title="Digg navigational access keys (Greasemonkey script).">digg-nak-0.1.user.js</a>: <a href="http://digg.com/" title="Technology news and social bookmarking.">Digg</a> <acronym title="Navigational Access Keys">NAK</acronym></li> +<li><a href="http://pablotron.org/files/greasemonkey/reddit-nak-0.1.user.js" title="Reddit navigational access keys (Greasemonkey script).">reddit-nak-0.1.user.js</a>: <a href="http://reddit.com/" title="News and social bookmarking.">Reddit</a> <acronym title="Navigational Access Keys">NAK</acronym></li> +<li><a href="http://pablotron.org/files/greasemonkey/saf-nak-0.1.user.js" title="Something Awful Forums navigational access keys (Greasemonkey script).">saf-nak-0.1.user.js</a>: <a href="http://forums.somethingawful.com/" title="Something Awful forums."><acronym title="Something Awful Forums">SAF</acronym></a> <acronym title="Navigational Access Keys">NAK</acronym></li> +</ul> + +<p>All of the scripts add consistent keyboard navigation commands: <code>ALT-,</code> +for the previous page, <code>ALT-.</code> for the next page. The <a href="http://forums.somethingawful.com/" title="Something Awful forums."><acronym title="Something Awful Forums">SAF</acronym></a> +script adds first (<code>ALT-<</code>) and last (<code>ALT-></code>) page keys as well, but +their <a href="http://digg.com/" title="Technology news and social bookmarking.">Digg</a> and <a href="http://reddit.com/" title="News and social bookmarking.">Reddit</a> counterparts aren't quite working (yet).</p> + +<p>If keyboard navigation isn't your thing, don't worry; there are a +<a href="http://userscripts.org/" title="Central repository for all-things Greasemonkey.">gadzillion other scripts</a> to choose from. At the +moment, my two favorite (besides the ones above, of course :D) are:</p> + +<ul> +<li><a href="http://userscripts.org/scripts/show/2669" title="Greasemonkey script to join paged Ars Technica articles.">ArsTechnica - Multi-Page Viewer</a>: Join multi-page +<a href="http://arstechnica.com/" title="Comprehensive online technology news and review site.">Ars Technica</a> articles.</li> +<li><a href="http://userscripts.org/scripts/show/573" title="Greasemonkey script to add a NetFlix link to IMDb.">Netflix Links in IMDb</a>: Add a link to <a href="http://netflix.com/" title="Movie rental/delivery service.">Netflix</a> from +<a href="http://imdb.com/" title="The Internet Movie Database.">IMDb</a> review pages (there's one that goes the other way, too, but +I haven't tried it yet).</li> +</ul> + +<p>Finally, If you're interested in writing your own <a href="http://greasemonkey.mozdev.org/" title="The GreaseMonkey Firefox plugin.">Greasemonkey</a> +scripts, here are a couple of handy links:</p> + +<ul> +<li><a href="http://en.wikipedia.org/wiki/Greasemonkey" title="Greasemonkey entry on Wikipedia.">Greasemonkey (Wikipedia)</a>: <a href="http://wikipedia.org/" title="Free, collaborative online encyclopedia.">Wikipedia</a>'s entry on +<a href="http://greasemonkey.mozdev.org/" title="The GreaseMonkey Firefox plugin.">Greasemonkey</a>, which provides a nice summary of <a href="http://greasemonkey.mozdev.org/" title="The GreaseMonkey Firefox plugin.">Greasemonkey</a> +history, technical details, and alternatives.</li> +<li><a href="http://diveintogreasemonkey.org/" title="Mark Pilgrim's open book, "Dive Into Greasemonkey"">"Dive Into Greasemonkey"</a>: <a href="http://diveintomark.org/" title="Mark Pilgrim, the venerable syndication and Python hacker.">Mark Pilgrim</a>'s online +<a href="http://greasemonkey.mozdev.org/" title="The GreaseMonkey Firefox plugin.">Greasemonkey</a> book.</li> +<li><a href="http://userscripts.org/" title="Central repository for all-things Greasemonkey.">Userscripts.org</a>: The definitive online repository for +<a href="http://greasemonkey.mozdev.org/" title="The GreaseMonkey Firefox plugin.">Greasemonkey</a> scripts.</li> +<li><a href="http://www-xray.ast.cam.ac.uk/~jgraham/mozilla/xpath-tutorial.html" title="Using the Mozilla JavaScript Interface to XPath.">Mozilla XPath Tutorial</a>: An online tutorial explaining the +<a href="http://mozilla.org/" title="The Mozilla project.">Mozilla</a> <a href="http://www.w3.org/TR/xpath" title="XML Path Language.">XPath</a> <acronym title="Application Programming Interface">API</acronym>.</li> +</ul> + + diff --git a/content/posts/2006-03-04-using-akismet-in-php4-to-defeat-comment-spam.html b/content/posts/2006-03-04-using-akismet-in-php4-to-defeat-comment-spam.html new file mode 100644 index 0000000..6de39cb --- /dev/null +++ b/content/posts/2006-03-04-using-akismet-in-php4-to-defeat-comment-spam.html @@ -0,0 +1,46 @@ +--- +date: "2006-03-04T04:00:46Z" +title: Using Akismet in PHP4 to Defeat Comment Spam +--- + +<p>I've been having comment spam problems on <a href="http://paulduncan.org/" title="All my non-tech-related posts.">my personal page</a>. +<a href="http://wordpress.org/" title="Wordpress, the popular PHP-based blogging tool.">Wordpress</a> uses <a href="http://akismet.com/" title="Anti-spam system used by Wordpress.">Akismet</a> for comment spam filtering now-a-days, +and there are <a href="http://akismet.com/development/" title="Akismet bindings for several popular programming languages.">bindings</a> for several languages, including <a href="http://php.net/" title="Version 4 of the PHP programming language."><acronym title="PHP: Hypertext Preprocessor">PHP</acronym>5</a>, +<a href="http://kemayo.wordpress.com/2005/12/02/akismet-py/" title="Akismet bindings for Python.">Python</a>, and <a href="http://www.blojsom.com/blog/nerdery/2005/12/02/Akismet-API-in-Ruby.html" title="Akismet bindings for Ruby.">Ruby</a>. The <a href="http://akismet.com/development/api/" title="Akismet API documentation.">Akismet <acronym title="Application Programming Interface">API</acronym> documentation</a> +documentation has a <a href="http://php.net/" title="Version 4 of the PHP programming language."><acronym title="PHP: Hypertext Preprocessor">PHP</acronym>4</a>-friendly code snippet, but a quick +<a href="http://google.com/" title="The infamouse Google search engine.">Google</a> search didn't turn up any full-blown <a href="http://php.net/" title="Version 4 of the PHP programming language."><acronym title="PHP: Hypertext Preprocessor">PHP</acronym>4</a> bindings, +so I wrote my own. Here's an example of the <acronym title="Application Programming Interface">API</acronym>:</p> + +<pre><code># +# Check comment using Akismet (http://akismet.com/). Returns true for +# spam, and false for ham. +# +function is_comment_spam($news_id, $name, $email, $url, $comment) { + global $AKISMET_CONFIG; + + # populate comment information + $comment_data = array( + 'user_ip' => $_SERVER['REMOTE_ADDR'], + 'user_agent' => $_SERVER['HTTP_USER_AGENT'], + 'referrer' => $_REQUEST['REFERER'], + 'permalink' => "http://paulduncan.org/?id=$news_id", + 'comment_type' => 'comment', + 'comment_author' => $name, + 'comment_author_email' => $email, + 'comment_author_url' => $url, + 'comment_content' => $comment, + ); + + # create akismet handle + $ak = new Akismet($AKISMET_CONFIG['api_key'], + $AKISMET_CONFIG['blog']); + + # return akismet result (true for spam, false for ham) + return $ak->check_comment($comment_data); +} +</code></pre> + +<p><a href="http://pablotron.org/files/akismet-php4-0.1.0.tar.gz" title="Download a tarball of my PHP4 Akismet bindings.">Download php4-akismet-0.1.tar.gz</a> (<a href="http://pablotron.org/files/akismet-php4-0.1.0.tar.gz.asc" title="OpenPGP signature for version 0.1.0 of my PHP4 Akismet bindings.">Signature</a>)</p> + +<p><b>Update:</b> Fixed a minor typo in the example.</p> + diff --git a/content/posts/2006-03-19-openvpn-article-in-linux-magazine.html b/content/posts/2006-03-19-openvpn-article-in-linux-magazine.html new file mode 100644 index 0000000..319dd7e --- /dev/null +++ b/content/posts/2006-03-19-openvpn-article-in-linux-magazine.html @@ -0,0 +1,12 @@ +--- +date: "2006-03-19T21:07:45Z" +title: OpenVPN Article in Linux Magazine +--- + +<p> +On the off-chance you haven't heard about it yet, I wrote an article +on <a href='http://openvpn.net/'>OpenVPN</a> for <a href='http://www.linux-mag.com/'>Linux Magazine</a>. +It's in the April 2006 issue, which has already been mailed to subscribers and should be available at +bookstores and on newsstands any day now. +</p> + diff --git a/content/posts/2006-09-15-new-versions-of-musicbrainz-rubilicious-and-wirble.html b/content/posts/2006-09-15-new-versions-of-musicbrainz-rubilicious-and-wirble.html new file mode 100644 index 0000000..1764438 --- /dev/null +++ b/content/posts/2006-09-15-new-versions-of-musicbrainz-rubilicious-and-wirble.html @@ -0,0 +1,52 @@ +--- +date: "2006-09-15T16:28:08Z" +title: New Versions of MusicBrainz, Rubilicious, and Wirble +--- + +<p>It's a <a href='http://ruby-lang.org/'>Ruby</a> bindings extravaganza!</p> + +<p>In the last week I've released new versions of <a href='http://pablotron.org/software/rubilicious/'>Rubilicious</a> and +<a href='http://pablotron.org/software/mb-ruby/'>MusicBrainz-Ruby</a>, and a new <abbr title='Interactive Ruby'>IRB</abbr> helper library called <a href='http://pablotron.org/software/wirble/'>Wirble</a>. +Here's the details for the latest <a href='http://pablotron.org/software/mb-ruby/'>MusicBrainz-Ruby</a>, version 0.3.0:</p> + +<ul> +<li><a href="http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/211714" title="The ruby-talk mailing list announcement for version 0.3.0 of MusicBrainz-Ruby.">Release Announcement</a></li> +<li><a href="http://pablotron.org/files/mb-ruby-0.3.0.tar.gz">Download Tarball</a> (<a href="http://pablotron.org/files/mb-ruby-0.3.0.tar.gz.asc">Signature</a>)</li> +<li><a href="http://pablotron.org/files/gems/mb-ruby-0.3.0.gem">Download Gem</a> (<a href="http://pablotron.org/files/gems/mb-ruby-0.3.0.gem.asc">Signature</a>)</li> +<li><a href="http://pablotron.org/software/mb-ruby/ChangeLog-0.3.0">ChangeLog</a></li> +<li><a href="http://pablotron.org/software/mb-ruby/doc/" title="RDoc-generated API reference for version 0.3.0 of MusicBrainz-Ruby.">Online <acronym title='Application Programming Interface'>API</acronym> Documentation</a></li> +<li><a href="http://pablotron.org/software/mb-ruby/release_notes-0.3.0.txt" title="Notes in possibly incompatible changes between 0.2.x and 0.3.0.">Version 0.3.0 Release Notes</a> (please read this if you're +upgrading from an earlier version)</li> +</ul> + +<p>And, here's the information on <a href='http://pablotron.org/software/rubilicious/'>Rubilicious</a>:</p> + +<ul> +<li><a href="http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/213300" title="The ruby-talk mailing list announcement for version 0.2.0 of Rubilicious.">Release Announcement</a></li> +<li><a href="http://pablotron.org/files/rubilicious-0.2.0.tar.gz">Download Tarball</a> (<a href="http://pablotron.org/files/rubilicious-0.2.0.tar.gz.asc">Signature</a>)</li> +<li><a href="http://pablotron.org/files/gems/rubilicious-0.2.0.gem">Download Gem</a> (<a href="http://pablotron.org/files/gems/rubilicious-0.2.0.gem.asc">Signature</a>)</li> +<li><a href="http://pablotron.org/software/rubilicious/ChangeLog-0.2.0">ChangeLog</a></li> +<li><a href="http://pablotron.org/software/rubilicious/doc/" title="An RDoc-generated API reference for version 0.2.0 of Rubilicious.">Online <acronym title='Application Programming Interface'>API</acronym> Documentation</a></li> +<li><a href="http://pablotron.org/software/rubilicious/release_notes-0.2.0.txt" title="Notes in possibly incompatible changes between 0.1.x and 0.2.0.">Version 0.2.0 Release Notes</a></li> +</ul> + +<p>More of the same for <a href='http://pablotron.org/software/wirble/'>Wirble</a>. </p> + +<ul> +<li><a href="http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/213306" title="The ruby-talk mailing list announcement for version 0.1.1 of Wirble.">Release Announcement</a></li> +<li><a href="http://pablotron.org/files/wirble-0.1.2.tar.gz">Download Tawball</a> (<a href="http://pablotron.org/files/wirble-0.1.2.tar.gz.asc">Signature</a>)</li> +<li><a href="http://pablotron.org/files/gems/wirble-0.1.2.gem">Download Gem</a> (<a href="http://pablotron.org/files/gems/wirble-0.1.2.gem.asc">Signature</a>)</li> +<li><a href="http://pablotron.org/software/wirble/ChangeLog-0.1.2">ChangeLog</a></li> +<li><a href="http://pablotron.org/software/wirble/doc/" title="RDoc-generated API reference for version 0.1.2 of Wirble.">Online <acronym title='Application Programming Interface'>API</acronym> Documentation</a></li> +</ul> + +<p>Finally, since <a href='http://pablotron.org/software/wirble/'>Wirble</a> is something new, here's a screenshot to tantalize +and entice:</p> + +<p><a href='http://pablotron.org/software/wirble/'><img + src='http://pablotron.org/software/wirble/shots/wirble-0.png' + width='492' height='588' title'Enticing Wirble Screenshot' + alt='Enticing Wirble Screenshot' border='0' +/></a></p> + + diff --git a/content/posts/2006-09-15-ri-bash-completion.html b/content/posts/2006-09-15-ri-bash-completion.html new file mode 100644 index 0000000..7b77187 --- /dev/null +++ b/content/posts/2006-09-15-ri-bash-completion.html @@ -0,0 +1,13 @@ +--- +date: "2006-09-15T17:33:53Z" +title: RI Bash Completion +--- + +<p>If you use <code>ri</code> in <code>bash</code>, add this little snippet to your <code>.bashrc</code> to +enable tab-completion:</p> + +<pre><code>function _ri() { COMPREPLY=($(ri --list | grep "^${COMP_WORDS[COMP_CWORD]}")); } +complete -F _ri ri +</code></pre> + + diff --git a/content/posts/2006-09-15-thoughts-on-firefox-2-0b2.html b/content/posts/2006-09-15-thoughts-on-firefox-2-0b2.html new file mode 100644 index 0000000..359d75d --- /dev/null +++ b/content/posts/2006-09-15-thoughts-on-firefox-2-0b2.html @@ -0,0 +1,66 @@ +--- +date: "2006-09-15T17:25:35Z" +title: Thoughts on Firefox 2.0b2 +--- + +<p>I've switched over completely to <a href='http://mozilla.org/firefox/'>Firefox</a> 2.0b2. It's not out yet, +but the beta is a <em>lot</em> faster in Linux, so I decided not to wait. +What's new?</p> + +<ul> +<li>Faster. It's a lot faster than Firefox 1.5. It's still slower than +I'd like. It's still slower than I think it <em>should</em> be. But hey, +faster is always better.</li> +<li>Built-in Session Management. I was using the excellent +<a href="https://addons.mozilla.org/firefox/436/">SessionSaver plugin</a> in Firefox 1.5, but Firefox 2.0's +built-in session management is good enough for me. It's a bit +finicky, but I'm sure that will get sorted out.</li> +<li>Better Tab Management. The tab bar doesn't shrink tabs until they're +unbearably small any more. Instead, a nifty drop-down menu on the +right lists all your tabs, and you get a couple of scroll buttons. I +tend to open a lot of tabs, and after using the new tab interface for +a bit, I realized that works really well with my style of browsing. +Here are three shots of the new tab interface:</li> +</ul> + +<p><img src='http://pablotron.org/shots/firefox-2.0b2/ff2-1.png' + width='604' height='300' border='0' style='border: 1px solid black;' + title='Firefox 2.0b2 Tab Behavior (1 of 3): Tab Bar' + alt='Firefox 2.0b2 Tab Behavior (1 of 3): Tab Bar' /></p> + +<p><img src='http://pablotron.org/shots/firefox-2.0b2/ff2-3.png' + width='604' height='300' border='0' style='border: 1px solid black;' + title='Firefox 2.0b2 Tab Behavior (2 of 3): Pop-Up Menu' + alt='Firefox 2.0b2 Tab Behavior (2 of 3): Pop-Up Menu' /></p> + +<p><img src='http://pablotron.org/shots/firefox-2.0b2/ff2-5.png' + width='604' height='300' border='0' style='border: 1px solid black;' + title='Firefox 2.0b2 Tab Behavior (3 of 3): Scrolling Tabs' + alt='Firefox 2.0b2 Tab Behavior (3 of 3): Scrolling Tabs' /></p> + +<p>Unfortunately, Firefox 2.0 isn't all sunshine and roses. A huge number +of extensions broke. While most of the important ones (read: +<a href="http://adblockplus.org/">Ad Block Plus</a>), have been ported, really useful ones like +<a href="http://http://greasemonkey.mozdev.org/">Greasemonkey</a> haven't. There appear to be some minor quirks +with inline find. They also attached the Go button on the URL entry to +the URL entry itself; you can disable it using the Customize context +menu option any more. I found <a href="http://forums.mozillazine.org/viewtopic.php?p=2449279&sid=395883098fcc1f429a5bee14f847b4ea">this forum post</a> after a bit +of searching, which basically says to add the following snippet to your +<code>userChrome.css</code> file:</p> + +<pre><code>/* don't display the annoying go button */ +#go-button { display: none; } +</code></pre> + +<p>You can disable the resizing search entry in there too. I still haven't +decided whether or not I like it. The behavior of the backspace key +changed too, although I'm not sure if that was a Firefox 2.0 change, or if my +config got munged during the upgrade. Anyway, you can switch it to go +back instead of doing nothing by setting <code>browser.backspace_action</code> to <code>0</code> in +good-old <code>about:config</code>.</p> + +<p>By the way, if you can't keep all the versions of Adblock and Adblock +plus straight, it's because the <a href="http://adblockplus.org/en/history">history of the both</a> kind +of reads like a soap opera.</p> + + diff --git a/content/posts/2006-09-16-vim-shell-why-hasn-t-vim-had-this-all-along.html b/content/posts/2006-09-16-vim-shell-why-hasn-t-vim-had-this-all-along.html new file mode 100644 index 0000000..1f07bd5 --- /dev/null +++ b/content/posts/2006-09-16-vim-shell-why-hasn-t-vim-had-this-all-along.html @@ -0,0 +1,57 @@ +--- +date: "2006-09-16T03:38:15Z" +title: 'VIM-Shell: Why Hasn''t Vim Had This All Along?' +--- + +<p>I stumbled across <a href="http://www.wana.at/vimshell/" title="Best Vim extension ever.">VIM-Shell</a> completely on accident. it's a patch +against <a href="http://www.vim.org/">Vim</a> that does exactly what it sounds like; adds +rudimentary shell support to Vim. Check it out:</p> + +<table border='0'> +<tr><td> +<a href='http://pablotron.org/gallery/misc/vimshell.png'><img + src='http://pablotron.org/gallery/misc/vimshell-thumb.png' + width='320' height='200' border='0' style='border: 1px solid black;' + title='Vim with a bunch of shell apps.' + alt='Vim with a bunch of shell apps.' /></a> +</td></tr><tr><td style='text-align: center; font-size: 80%; font-weight: bold;'> +VIM-Shell with a bunch of apps (1680x1050 <acronym title='Portable Network Graphics Image File'>PNG</acronym>). +</td></tr></table> + +<p>The default patch kind of blows, so I cleaned it up and fixed a couple +bugs (namely, the <a href="http://www.wogri.at/pipermail/vimshell/2005-January/000089.html" title="Description of the VIM-Shell red terminal bug.">red terminal o' death</a> bug reported on the +<a href="http://www.wogri.at/pipermail/vimshell/" title="The VIM-Shell mailing list.">mailing list</a>). I've submitted the my fixes upstream, but they +haven't been incorperated into the official version yet. In the mean +time, you can get my improved patch by following the link below.</p> + +<p><a href="http://pablotron.org/files/vim-7.0.72-vimshell-pabs-1.diff.gz" title="My improved VIM-Shell patch against Vim 7.">Download vim-7.0.72-vimshell-pabs-1.diff.gz</a> (<a href="http://pablotron.org/files/vim-7.0.72-vimshell-pabs-1.diff.gz.asc" title="OpenPGP signature for my improved VIM-Shell patch against Vim 7.">Signature</a>)</p> + +<p><em>Note:</em> If you compile it under Linux, you'll need to add a link to +<code>libutil</code>, either via <code>configure</code> or <code>make</code>, like so:</p> + +<blockquote> + <p><code>$ ./configure LDFLAGS=-lutil</code></p> +</blockquote> + +<p>or</p> + +<blockquote> + <p><code>$ make LDFLAGS=-lutil</code></p> +</blockquote> + +<p>If you don't, you'll get an undefined reference to <code>forkpty()</code>. I +believe this is a problem with the original patch as well. Now that +you're all excited, here's what VIM-Shell still needs:</p> + +<ul> +<li>Slightly better color emulation. Occasionally things seem to "bleed".</li> +<li>Session support. I use sessions pretty regularly, and it'd be nice to +at least restore a blank shell. Even better would be pwd and history.</li> +<li>A way to send a literal <code>Ctrl-W</code> to the shell. Lots of apps use <code>^W</code>, +including Vim and Bash, so not having it is kind of annoying. Maybe a +<a href="http://www.gnu.org/software/screen/">Screen</a>-style escape like <code>^Ww</code>?</li> +</ul> + +<p>Even with all these relatively minor gotchas, VIM-Shell is still damn +cool.</p> + diff --git a/content/posts/2006-10-19-nifty-little-ruby-libraries.html b/content/posts/2006-10-19-nifty-little-ruby-libraries.html new file mode 100644 index 0000000..0ba7094 --- /dev/null +++ b/content/posts/2006-10-19-nifty-little-ruby-libraries.html @@ -0,0 +1,20 @@ +--- +date: "2006-10-19T13:14:55Z" +title: Nifty Little Ruby Libraries +--- + +<p> +I've been fiddling with these libraries the last couple of days. +</p> + +<ul> +<li><a href='http://text.rubyforge.org/'>Text</a>: Useful text utility library. Includes <a href='http://en.wikipedia.org/wiki/Soundex'>Soundex</a>, <a href='http://en.wikipedia.org/wiki/Metaphone'>Metaphone</a>, <a href='http://en.wikipedia.org/wiki/Figlet'>Figlet</a>, <a href='http://en.wikipedia.org/wiki/Metaphone'>Metaphone</a>, and +<a href='http://en.wikipedia.org/wiki/Levenshtein'>Levenshtein distance</a>.</li> +<li><a href='http://rmovie.rubyforge.org/'>RMovie</a>: <a href='http://ffmpeg.mplayerhq.hu/'>FFmpeg</a> library wrapper. It's a real pain in the ass to install, but once you get it working, it allows you to extract arbitrary frames from any video format supported by FFmpeg.</li> +<li><a href='http://code.whytheluckystiff.net/hpricot/'>Hpricot</a>: <acronym title='HyperText Markup Language'>HTML</acronym> scraper. Similar to <a href='http://www.crummy.com/software/RubyfulSoup/'>Rubyful Soup</a>, but much faster and with partial support for both <a href='http://www.w3.org/TR/REC-CSS2/selector.html'><acronym title='Cascading Style Sheet'>CSS</acronym> selectors</a> and <a href='http://www.w3.org/TR/xpath'>XPath</a>.</li> +</ul> + +<p> +They're all avaiable as <a href='http://rubygems.org/'>Ruby Gems</a>, too. +</p> + diff --git a/content/posts/2006-10-25-random-links.html b/content/posts/2006-10-25-random-links.html new file mode 100644 index 0000000..28d529a --- /dev/null +++ b/content/posts/2006-10-25-random-links.html @@ -0,0 +1,16 @@ +--- +date: "2006-10-25T11:16:13Z" +title: Random Links +--- + +<p> +Here are a couple of random links to get you through the day. +</p> + +<ul> +<li><a href='http://shearer.org/MTA_Comparison'><acronym title='Mail Transfer Agent'>MTA</acronym> comparison page</a>: Comparison of features in Exim, Postfix, Sendmail, and Qmail.</li> +<li><a href='http://maps.ask.com/'>Ask.com Maps</a>: Multiple locations, walking directions, and more.</li> +<li><a href='http://www.engadget.com/2006/09/26/nokias-n95-smartphone-goes-legit/'>Nokia N95</a>: GPS, Wifi, 5MP camera. I will get this phone, or die trying.</li> +<li><a href='http://ecosmear.com/relay/'>Relay</a>: Neat <acronym title='Asynchrnonous Javascript And XML'>AJAX</acronym>ed drag-and-drop file manager</li> +</ul> + diff --git a/content/posts/2006-11-17-over-a-decade-of-spam-and-i-still-haven-t-killed-anyone-yet.html b/content/posts/2006-11-17-over-a-decade-of-spam-and-i-still-haven-t-killed-anyone-yet.html new file mode 100644 index 0000000..3d48934 --- /dev/null +++ b/content/posts/2006-11-17-over-a-decade-of-spam-and-i-still-haven-t-killed-anyone-yet.html @@ -0,0 +1,106 @@ +--- +date: "2006-11-17T04:38:12Z" +title: Over a Decade of Spam and I Still Haven't Killed Anyone (Yet) +--- + +<p>I've been using <a href="http://spamprobe.sf.net/" title="Command-line bayesian spam classification utility.">SpamProbe</a> to separate the wheat from the chaff for +the last four years. That, along with the fact that I rarely delete +email, gives me a reasonable set of data to analyze the performance of a +spam filter. So, how does SpamProbe stack up? </p> + +<p><strong>Graphs With Lines and Stuff</strong></p> + +<p><img + src='http://pablotron.org/files/spam-200611/spam-2006-11-all_raw.png' + width='557' height='374' + title='SpamProbe: Classifications per Month (Count)' + alt='SpamProbe: Classifications per Month (Count)' + style='border:1px solid black;' + border='0' +/></p> + +<p>The exponential increase has flattened the numbers we really care about, +and the <a href="http://en.wikipedia.org/wiki/Logarithmic_scale" title="Wikipedia entry on Logarithmic Scale.">logarithmic scaling</a> plotting in <a href="http://ploticus.sf.net/" title="Command-line business graphing and plotting application.">Ploticus</a> has failed +me, so here's the same graph with correct classifications omitted:</p> + +<p><img + src='http://pablotron.org/files/spam-200611/spam-2006-11-fls_raw.png' + width='557' height='357' + title='SpamProbe: False Classifications per Month, 2002-2006 (Count)' + alt='SpamProbe: False Classifications per Month, 2002-2006 (Count)' + style='border:1px solid black;' + border='0' +/></p> + +<p>That second graph is mildly depressing, but it reflects my day-to-day +experience. Namely, more and more spam messages seem to be sneaking by +SpamProbe and being incorrectly classified as legitimate messages. But +how does the increase in false negatives stack up compared to the total +amount of spam I'm getting? Let's take a look at the data again, but +this time as a percentage rather than a sum:</p> + +<p><img + src='http://pablotron.org/files/spam-200611/spam-2006-11-all_pct.png' + width='557' height='374' + title='SpamProbe: Classifications per Month, 2002-2006 (Percent)' + alt='SpamProbe: Classifications per Month, 2002-2006 (Percent)' + style='border:1px solid black;' + border='0' +/></p> + +<p>And the same data again, without the correctly classified spam:</p> + +<p><img + src='http://pablotron.org/files/spam-200611/spam-2006-11-fls_pct.png' + width='557' height='357' + title='SpamProbe: Classifications per Month, 2002-2006 (Percent)' + alt='SpamProbe: Classifications per Month, 2002-2006 (Percent)' + style='border:1px solid black;' + border='0' +/></p> + +<p>As you can see from the graphs, the percent of false positives, or +legitimate mail incorrectly classified as spam, sits pretty steady +around 0%, while the number of false negatives, or spam incorrectly +classified as legitimate mail, has hovered below 5% for just over two +years. Not too shabby for a lowly bayesian classifier. By the way, the +large peaks in the percentage graphs are mostly anomalous (see below).</p> + +<p><strong>Caveats</strong></p> + +<p>Are aphorisms about liars and statistics bouncing around in your head +right now? Good. Here's some of the gotchas with this data:</p> + +<ul> +<li>The graphs above do not include "ham". Ham is +correctly-classified, non-spam messages. Including ham would flatten +the percentage graphs by increasing the percent of correctly +classified messages and decreasing the percent of falsly classified +messages. If there's any interest, I can add additional graphs which +include correctly classified, non-spam messages.</li> +<li>The false negative peaks in months 24 and 28 weren't due to any +mistakes on the part of SpamProbe; I managed to break SpamProbe and/or +fill up the disk where my mail is stored on a couple of occasions.</li> +<li>I have catch-all addresses enabled for some of my domains (e.g. +foo@example.com, bar@example.com, and asdf200notarealname@example.com +are all routed to my inbox). This necessarily affect the accuracy of +SpamProbe, but it certainly increases the amount of spam I receive.</li> +<li>I purchased a few additional domains between 2002 and 2006. +Although I haven't added any within the last year, so that doesn't +account for the exponential increase in spam in the last 12 months.</li> +<li>I upgraded SpamProbe a handful of times, and re-trained the classifier +once.</li> +</ul> + +<p><strong>Conclusions</strong></p> + +<p>If I wanted to be scientific and objective and all that crap, or at +least methodical and thorough, I would take several competing spam +classifiers and feed them the same corpus, then compare the results. +I'm not trying really trying to be objective, though; SpamProbe seems to +be working pretty well, at least for now. Oh yeah, if you're interested +in playing with the actual numbers, or if you're curious how I processed +the data and generated the graphs, feel free to <a href="http://pablotron.org/files/spam-200611/spam-200611.tar.gz" title="Download the scripts and raw data used to generate these graphs.">download the raw +data</a>.</p> + + diff --git a/content/posts/2006-12-13-huge-backlog-of-posts.html b/content/posts/2006-12-13-huge-backlog-of-posts.html new file mode 100644 index 0000000..6b316fe --- /dev/null +++ b/content/posts/2006-12-13-huge-backlog-of-posts.html @@ -0,0 +1,9 @@ +--- +date: "2006-12-13T02:40:57Z" +title: Huge Backlog of Posts +--- + +<p> +I've amassed a backlog of incomplete posts over the last few months. I'm hoping to get some of them up over the next week. +</p> + diff --git a/content/posts/2006-12-13-package-signing-a-rake-patch-and-a-rubygems-shortcut.html b/content/posts/2006-12-13-package-signing-a-rake-patch-and-a-rubygems-shortcut.html new file mode 100644 index 0000000..27a14b1 --- /dev/null +++ b/content/posts/2006-12-13-package-signing-a-rake-patch-and-a-rubygems-shortcut.html @@ -0,0 +1,43 @@ +--- +date: "2006-12-13T02:28:09Z" +title: 'Package Signing: A Rake Patch and a RubyGems Shortcut' +--- + +<p>I threw together a quick <acronym title='Pretty Good Privacy'>PGP</acronym> package signing patch for <a href="http://www.rubyrake.org/" title="Ruby Make">Rake</a>. The +details are in the <a href="http://rubyforge.org/pipermail/rake-devel/2006-December/000270.html" title="Description of my PGP signing patch for Rake.">email I sent to rake-devel</a> earlier this +evening. Here are the patches (one against the development version, and +one against 0.7.1, the latest stable release):</p> + +<ul> +<li><a href="http://pablotron.org/files/rake-20061212-pkg_pgp_sign.diff" title="PGP signing patch for the development version of Rake.">Patch against Rake trunk</a> (<a href="http://pablotron.org/files/rake-20061212-pkg_pgp_sign.diff.asc" title="PGP signature for patch against development version.">Signature</a>)</li> +<li><a href="http://pablotron.org/files/rake-0.7.1-pkg_pgp_sign.diff" title="PGP signing patch for the stable version of Rake.">Patch against Rake 0.7.1</a> (<a href="http://pablotron.org/files/rake-0.7.1-pkg_pgp_sign.diff.asc" title="PGP signature for patch against stable version.">Signature</a>)</li> +</ul> + +<p>This next bit has nothing to do with the patch above, but it's signing-related +so I'll throw it in this post too. If you're <a href="http://rubygems.org/read/chapter/21" title="Chapter on package signing in RubyGems manual.">using RubyGem's built-in package signing</a> to sign +your gems (if you're not, <em>why not?</em>), here's a handy little idiom +to add to your <code>Rakefile</code> or <code>.gemspec</code>:</p> + +<pre><code># package signing +if ((key = ENV['GEM_SIGNING_KEY']) && (chain = ENV['GEM_SIGNING_CHAIN'])) + spec.signing_key = File.expand_path(key) + spec.cert_chain = chain.split(',').map { |path| File.expand_path(path) } +end +</code></pre> + +<p>Then, add this to your <code>~/.bashrc</code> (be sure to replace <code>.secure</code> with +the directory containing your signing key and certificate):</p> + +<pre><code># rubygems signing key and comma-delimited list of +# certificates in rubygems signing cert chain +GEM_SIGNING_KEY=~/.secure/sign.key +GEM_SIGNING_CHAIN=~/.secure/ca.crt,~/.gem/signing/sign.crt + +# export both! +export GEM_SIGNING_KEY GEM_SIGNING_CHAIN +</code></pre> + +<p>Voila! From now on you can automagically sign gems when you build them +without hard-coding paths or doing any other heavy lifting.</p> + + diff --git a/content/posts/2006-12-13-yui-and-yui-ext.html b/content/posts/2006-12-13-yui-and-yui-ext.html new file mode 100644 index 0000000..4e472aa --- /dev/null +++ b/content/posts/2006-12-13-yui-and-yui-ext.html @@ -0,0 +1,32 @@ +--- +date: "2006-12-13T03:34:22Z" +title: YUI and YUI-Ext +--- + +<p>Scripting has now been available in browsers for over a decade. The +recent <acronym title='Asychronous Javascript And XML'>AJAX</acronym> craze -- an older, more mature sibling of Microsoft's +<a href="http://en.wikipedia.org/wiki/Dynamic_HTML"><acronym title='Dynamic HTML'>DHTML</acronym></a> -- has spurned the development of countless AJAX and +<acronym title='Document Object Model'>DOM</acronym> platform libraries, each with their own niche.</p> + +<p>Even though <a href='http://rubyonrails.com/'>Rails</a> is <em>really</em> partial to <a href='http://prototype.conio.net/'>Prototype</a> and +<a href="http://script.aculo.us/">Script.alculo.us</a>, I decided to spent some time playing with some +of the competitors. I like the simplicity of <a href="http://moofx.mad4milk.net/">moo.fx</a>, but my +personal favorite at the moment is <a href="http://developers.yahoo.com/yui/">Yahoo User Interface library +(<acronym title='Yahoo! User Interface library'>YUI</acronym>)</a>. It's <a href="http://www.opensource.org/licenses/bsd-license.php"><acronym title='Berkley Software Distribution'>BSD</acronym>-licensed</a>, documented out the wazoo, +and it's being actively developed and supported by <a href="http://yahoo.com/">Yahoo</a>. Toss in +<a href="http://www.jackslocum.com/blog/">Jack Slocum's <code>yui-ext</code></a>, and you have an awesome dynamic grid +widget, layout manager, asynchronous animation primitives, and a great +JavaScript-only dialog widget that'll impress anyone (check out the +slick per-block commenting in the <a href="http://www.djangobook.com/">Django Book</a>, for a +rough idea of what you can do with yui-ext). Not too shabby. <a href="http://sonjayatandon.com/07-2006/how-to-get-rails-and-the-yahoo-user-interface-yui-to-talk-part-1/">With a +little effort</a>, even Rails can be <a href="http://www.zerosum.org/devblog/?q=node/4">beaten into <acronym title='Yahoo! User Interface library'>YUI</acronym> +submission</a>). </p> + +<p>(By the way, I am not and will never be a fan of AJAX for the sake of +AJAX and at the expense of usability. But I do think a little bit, used +sparingly, can really spice up a page).</p> + +<p>Anyway, expect to see a bit of YUI pizazz around here whenever I finally +get the long, long overdue backend rewrite rolling.</p> + + diff --git a/content/posts/2006-12-15-hijacking-a-pejorative-monkey-patching-and-technorati-ruby.html b/content/posts/2006-12-15-hijacking-a-pejorative-monkey-patching-and-technorati-ruby.html new file mode 100644 index 0000000..af40a6f --- /dev/null +++ b/content/posts/2006-12-15-hijacking-a-pejorative-monkey-patching-and-technorati-ruby.html @@ -0,0 +1,143 @@ +--- +date: "2006-12-15T06:34:07Z" +title: 'Hijacking a Pejorative: Monkey Patching and Technorati-Ruby' +--- + +<p></p> + +<p><img src='http://pablotron.org/files/monkey_patch.jpg' + width='200' height='163' title='Monkey Patch' alt='Monkey Patch' + align='right' border='0' style='padding: 5px;' /></p> + +<p>The new version of <a href="http://pablotron.org/software/technorati-ruby/">Technorati-Ruby</a> adds a bit of magic to return +values. Version 0.1.0 returns standard <a href="http://ruby-lang.org/">Ruby</a> hashes. A list of +items in the returned value -- blogs from <code>Technorati#cosmos</code> or tags +from <code>Technorati#tag</code>, for example -- are returned as an array of hashes +under the the <code>'items'</code> key, like so:</p> + +<pre><code># find sites linking that link to me +results = tr.cosmos('pablotron.org') + +# print an excerpt from each item +puts results['items'].map { |item| + [item['url'], item['excerpt']] +} +</code></pre> + +<p>It's a simple system, and using a hash instead of a pre-defined class +reinforces the idea that the return values could be unavailable, change, +or possibly even be removed. The problem, of course, is that the hash +references in the example above clutter the code and cause it to look +more like [Perl] than Ruby.</p> + +<p>I wanted to give the results a bit more of a Ruby feel, preferrably +without breaking backwards compatability. I came up with a solution +that I'm pretty happy with. We'll get to that in a minute; first let's +talk about <em>monkey patching</em>.</p> + +<p><strong>Monkey Patching</strong><br/> +What is monkey patching, anyway? <a href="http://en.wikipedia.org/wiki/Monkey_patch">Wikipedia defines it</a> as "a +way to extend or modify runtime code without altering the original +source code for dynamic languages". If you're a <a href="http://rubyonrails.com/">Rails</a> user, you've +already been merrily enjoying the benefits of monkey patching:</p> + +<pre><code>>> strs = %w{monkey patch} +?> strs.map(&:pluralize) +=> ["monkeys", "patches"]` +</code></pre> + +<p>(Hint: neither <code>String#pluralize</code> nor the no block/one-argument form of +<code>Enumerable#map</code> exist in the standard library; both are grafted on at +run-time by ActiveSupport)</p> + +<p>Anyway, the <a href="http://python.org/">Python</a> community <a href="http://blog.ianbicking.org/theres-so-much-more-than-rails.html">frowns on the practice</a>. In +fact, the term "monkey patch" comes from the Python community, and is +actually meant as a pejorative. The Ruby community, on the other hand, +is more tolerant of the practice. <a href="http://chadfowler.com/">Chad's</a> post, <a href="http://chadfowler.com/index.cgi/Computing/Programming/Ruby/TheVirtuesOfMonkeyPatching.rdoc,v">"The Virtues of +Monkey Patching"</a>, is a fantastic real-world example of how +monkey patching can be beneficial. When is monkey patching appropriate, +and when should it be avoided? Here's my rule of thumb:</p> + +<blockquote> + <p><strong>Paul's Rule of Monkey Patching</strong><br/> + <em>Libraries should not modify underlying classes at runtime unless that + is their express purpose and applications should ignore what I just + said.</em></p> +</blockquote> + +<p>How does monkey patching apply to Technorati-Ruby? Well, it doesn't, or +at least not directly. I didn't want to extend the standard library for +little old Technorati-Ruby, and I didn't really want to sub-class <code>Hash</code> +either. Fortunately, I had another option: <a href="http://project.ioni.st/post/966#post-966">just in time convenience +methods</a>, the sneaky and verbosely-named cousin of monkey +patching. </p> + +<p><strong>Just in Time Convenience Methods</strong><br/> +A <em>just in time convenience method</em> is a convenience method that is +added to an <em>instance</em> of a class, rather than the class itself. +<a href="http://weblog.jamisbuck.org/2006/11/15/mini-api-s">Jamis</a> and <a href="http://project.ioni.st/post/966#post-966">Marcel</a> both have more to say about them, but here's +what they look like:</p> + +<pre><code>nog_str = 'delicious egg nog' + +def nog_str.de_nog + gsub!(/egg nog/i, 'apple juice') +end + +nog_str.class +=> String +nog_str.de_nog +=> "delicious apple juice" +</code></pre> + +<p>As you can see, <code>nog_str</code> is still a <code>String</code>, just with a little more +personality. You can also use <code>Object.instance_eval</code>:</p> + +<pre><code>class A + private + def secret + 'secret message' + end +end + +>> a = A.new +>> a.secret +NoMethodError: private method `secret' called for #<A:0xb78b9fb8> + from (irb):40 +>> a.instance_eval { secret } +=> "secret message" +</code></pre> + +<p>Which brings us back to Technorati-Ruby. First, I added a bit of code +to jazz up result hashes with convenience methods:</p> + +<pre><code>def magify_hash(hash) + hash.keys.each do |key| + meth_key = key.gsub(/\//, '_') + hash.instance_eval %{def #{meth_key}; self['#{key}']; end} + end + + hash +end +</code></pre> + +<p>Second, I wrapped the result hashes in <code>magify_hash</code>. Third? There +wasn't really a third step, so I just sat around for a few minutes +feeling smug. By the way, here's that example code from the beginning, +updated to use the shiny new convenience methods:</p> + +<pre><code># find sites linking that link to me +results = tr.cosmos('pablotron.org') + +# print an excerpt from each item +puts results.items.map { |item| + [item.url, item.excerpt] +} +</code></pre> + +<p>So, problem solved. Just in time convenience methods satisfy all my +requirements: they're backwards compatible, don't require me to create a +new class or sub-class <code>Hash</code>, and they allow users to write cleaner +code. Not bad for a sneaky pejorative.</p> + + diff --git a/content/posts/2006-12-27-brief-novarug-notes.html b/content/posts/2006-12-27-brief-novarug-notes.html new file mode 100644 index 0000000..877ed53 --- /dev/null +++ b/content/posts/2006-12-27-brief-novarug-notes.html @@ -0,0 +1,23 @@ +--- +date: "2006-12-27T06:53:47Z" +title: Brief NovaRUG Notes +--- + +<p>I got a chance to sneak out to last week's <a href="http://novarug.org/">NovaRUG</a>. <a href="http://chadfowler.com/">Chad</a> was in +town for work, so he stopped by. I also got a chance to talk to +<a href="http://richkilmer.blogs.com/">Rich</a> and <a href="http://tomcopeland.blogs.com/">Tom</a> as well. </p> + +<p>Rich inadvertently used his phone as a Wiimote-style projectile weapon. +Chad went and got all famous since the last time I saw him (at RubyConf +2004)! Apparently writing a couple books and speaking all over the +world does that to you. Who knew? Anyway, I only had a little while to +catch up with him, but he dinged my for being lax on <a href="http://raggle.org/">Raggle</a>. +He'll be in town next month as well; maybe we'll have a bit more +time to hang out then.</p> + +<p>I talked to Tom about <a href="http://selenic.com/mercurial/">Mercurial</a> and <a href="http://linux-vserver.org/">VServers</a>. I'm using both +now, and he's interested in both for <a href="http://rubyforge.org/">RubyForge</a>. The former as +another <acronym title='Source Code Management'>SCM</acronym> for people to use, and the latter as a way to provide +user shell access. </p> + + diff --git a/content/posts/2006-12-27-gadgetopia.html b/content/posts/2006-12-27-gadgetopia.html new file mode 100644 index 0000000..e825e1b --- /dev/null +++ b/content/posts/2006-12-27-gadgetopia.html @@ -0,0 +1,40 @@ +--- +date: "2006-12-27T07:07:37Z" +title: Gadgetopia +--- + +<p>I've bought two handfuls of new gadgets in the last few months. +Initially I was going to post pictures and a review of each one, but +hey, I'm lazy, and that would have cut too much into my gadget time. +Anyway, here's what's new in the land o' <a href="http://pablotron.org/">Pablotron</a> gadgets:</p> + +<ul> +<li><a href="http://samsung.com/Products/MobilePhones/T_Mobile/SGH_T809OKATMB.asp">Samsung SGH-t809</a>: A <a href="http://t-mobile.com/">T-Mobile</a>-branded <a href="http://gsmarena.com/samsung_d600-1103.php">Samsung D600</a> cell phone. +Yes, this means i've <em>finally</em> joined the 21st century.</li> +<li><a href="http://plantronics.com/north_america/en_US/products/cat1150057/cat1150057/prod29780004">Plantronics Discovery 640</a>: Sweet (and tiny!) bluetooth headset. Keeps +my hands free and my phone safe. I can also use it with <a href="http://skype.com/">Skype</a> with +my snazzy no-name <acronym title='Universal Serial Bus'>USB</acronym> bluetooth dongle.</li> +<li><a href="http://slimdevices.com/pi_squeezebox.html">Slim Devices Squeezebox V3</a>: This bad boy lets me listen to all my +music and keep my room quiet. <a href="http://slimdevices.com/">Slim Devices</a> was <a href="http://engadget.com/2006/10/18/logitech-acquiring-slim-devices/">recently aquired</a> +by <a href="http://logitech.com/">Logitech</a> -- hopefully they don't go down the crapper because of +it. By the way, I've massaged both <a href="http://slimdevices.com/pi_features.html">SlimServer</a> and +<a href="http://mythtv.org/">MythTV</a> onto the same machine using <a href="http://linux-vserver.org/">VServers</a>; if there's any +interest I can post the gory details...</li> +<li><a href="http://www.steves-digicams.com/2006_reviews/t10.html">Sony CyberShot DSC-T10</a>: I loaned out my old digital camera and it +was returned with a dead battery, covered in dust, and without the +ability to take pictures. So far I'm pretty happy with this camera; +the wealth of features almost makes up for the annoying proprietary +sony memory crapola. Plus I eeked out a few more megapixels than +<a href="http://linuxbrit.co.uk/">Tom</a>, and that's always fun :).</li> +<li><a href="http://www.cowonamerica.com/products/iaudio/x5/">Cowon iAudio X5 60G</a>: I lost my <a href="http://www.iriver.com/html/product/prpa_product.asp?pidx=43">H120</a>, so I picked up the X5. +It was time for an <acronym title='MPEG 1, Layer 3 Audio'>MP3</acronym> player with more disk space anyway. So +far, so good. I like the screen, the <acronym title='Universal Serial Bus'>USB</acronym> host, and the built-in +microphone. The audio quality on the H120 seemed a bit better, and +I'm not a big fan of the extremely losable dongle (I bought an extra +one, just in case). Did I mention that you <em>need</em> for line out, power, +and <acronym title='Universal Serial Bus'>USB</acronym>? What kind of crackerjack design has <acronym title='Universal Serial Bus'>USB</acronym> Host on the player +itself, but a dongle for line out and <acronym title='Universal Serial Bus'>USB</acronym> data transfer? The +default operating system is okay, but I installed <a href="http://rockbox.org/">Rockbox</a> anyway.</li> +</ul> + + diff --git a/content/posts/2007-02-12-th-42px600u.html b/content/posts/2007-02-12-th-42px600u.html new file mode 100644 index 0000000..39320b9 --- /dev/null +++ b/content/posts/2007-02-12-th-42px600u.html @@ -0,0 +1,31 @@ +--- +date: "2007-02-12T04:06:36Z" +title: TH-42PX600U +--- + +<p> +<a href='http://pablotron.org/gallery/hdtv-20070212/dsc00190.jpg'><img + src='http://pablotron.org/gallery/hdtv-20070212/preview.jpg' + width='640' height='480' border='0' + title='Panasonic TH-42PX600U' alt='Panasonic TH-42PX600U' +/></a> +</p> + +<p> +More pictures below. Did I mention I got an Xbox 360 for Christmas +too? +</p> + +<p> +<a href='http://pablotron.org/gallery/hdtv-20070212/dsc00190.jpg'><img src='http://pablotron.org/gallery/hdtv-20070212/thumb/dsc00190.jpg' width='160' height='120' title='dsc00190.jpg' alt='dsc00190.jpg' border='0'/></a> +<a href='http://pablotron.org/gallery/hdtv-20070212/dsc00191.jpg'><img src='http://pablotron.org/gallery/hdtv-20070212/thumb/dsc00191.jpg' width='160' height='120' title='dsc00191.jpg' alt='dsc00191.jpg' border='0'/></a> +<a href='http://pablotron.org/gallery/hdtv-20070212/dsc00192.jpg'><img src='http://pablotron.org/gallery/hdtv-20070212/thumb/dsc00192.jpg' width='160' height='120' title='dsc00192.jpg' alt='dsc00192.jpg' border='0'/></a> +<a href='http://pablotron.org/gallery/hdtv-20070212/dsc00193.jpg'><img src='http://pablotron.org/gallery/hdtv-20070212/thumb/dsc00193.jpg' width='160' height='120' title='dsc00193.jpg' alt='dsc00193.jpg' border='0'/></a> +<a href='http://pablotron.org/gallery/hdtv-20070212/dsc00194.jpg'><img src='http://pablotron.org/gallery/hdtv-20070212/thumb/dsc00194.jpg' width='160' height='120' title='dsc00194.jpg' alt='dsc00194.jpg' border='0'/></a> +<a href='http://pablotron.org/gallery/hdtv-20070212/dsc00195.jpg'><img src='http://pablotron.org/gallery/hdtv-20070212/thumb/dsc00195.jpg' width='160' height='120' title='dsc00195.jpg' alt='dsc00195.jpg' border='0'/></a> +<a href='http://pablotron.org/gallery/hdtv-20070212/dsc00196.jpg'><img src='http://pablotron.org/gallery/hdtv-20070212/thumb/dsc00196.jpg' width='160' height='120' title='dsc00196.jpg' alt='dsc00196.jpg' border='0'/></a> +<a href='http://pablotron.org/gallery/hdtv-20070212/dsc00197.jpg'><img src='http://pablotron.org/gallery/hdtv-20070212/thumb/dsc00197.jpg' width='160' height='120' title='dsc00197.jpg' alt='dsc00197.jpg' border='0'/></a> +<a href='http://pablotron.org/gallery/hdtv-20070212/dsc00198.jpg'><img src='http://pablotron.org/gallery/hdtv-20070212/thumb/dsc00198.jpg' width='160' height='120' title='dsc00198.jpg' alt='dsc00198.jpg' border='0'/></a> +</p> + + diff --git a/content/posts/2007-04-04-catching-up-using-gtd-and-todo-txt.html b/content/posts/2007-04-04-catching-up-using-gtd-and-todo-txt.html new file mode 100644 index 0000000..610094a --- /dev/null +++ b/content/posts/2007-04-04-catching-up-using-gtd-and-todo-txt.html @@ -0,0 +1,41 @@ +--- +date: "2007-04-04T22:20:37Z" +title: Catching Up Using GTD and Todo.txt +--- + +<p>Last night I dusted off and started re-reading my copy of +<a href="http://www.davidco.com/">"Getting Things Done" (GTD)</a>. I'm a bit overwhelmed +with projects and new ideas at the moment, so taking some time to +optimize my scheduling algorithm seemed like wise thing to do.</p> + +<p>A bit of Googling turned up a plethora of GTD-inspired applications, +including several desktop applications (no thanks), a ton of web-based +task managers (maybe!), and even <a href="http://www.google.com/search?q=vim+gtd">a couple of Vim-based solutions</a> plugins (neat!). </p> + +<p>On a whim, I decided to check out <a href="http://www.rousette.org.uk/projects/">Tracks</a>, a <a href="http://rubyonrails.com/">Rails</a> GTD +application. Tracks was kind of a turd; the documentation +is sparse, there seem to be a couple of weird bugs, and it didn't look +so hot in my web browser (my guess is the stylesheet is pretty +Mac-specific, although I didn't poke around too much to see what the +problem was).</p> + +<p>The attempted Tracks install wasn't a total bust, because I used it as +an opportunity to upgrade my internal web/rails <a href="http://linux-vserver.org/">VServer</a>. I've been +using VServers at the house for quite a while now and I love them; +there's even an entry my to-do list to write a VServer post which I +haven't gotten to. Playing around with Tracks also gave me +an opportunity to set up a <a href="http://mongrel.rubyforge.org/" title="Fast HTTP library and server for Ruby">Mongrel</a> cluster, which, barring one minor +hiccup, is as straightforward to configure as <a href="http://mongrel.rubyforge.org/docs/apache.html" title="Proxy and clustering with Mongrel and Apache.">the documentation implies</a>.</p> + +<p>Next on my list was <a href="http://todotxt.com/" title="Command-line GTD-style task manager.">Todo.txt</a>. Todo.txt certainly isn't for +everyone; it's a shell script and a text file, and that's pretty much +it. It's also exactly what I wanted; simple, unobtrusive, and +future-proof. I set up the <a href="http://aim.com"><acronym title='AOL Instant Messenger'>AIM</acronym></a> bot too, so I've got a couple +different interfaces for adding and viewing tasks. <a href="http://calendar.google.com/">Google Calendar</a> +integration would be nice, although that's probably been done too and I +just need to dig it up.</p> + +<p>Anyway, back to reading and trying to re-shoehorn my brain into GTD and +Todo.txt.</p> + + diff --git a/content/posts/2007-04-04-mercurial-upgrade.html b/content/posts/2007-04-04-mercurial-upgrade.html new file mode 100644 index 0000000..feaee46 --- /dev/null +++ b/content/posts/2007-04-04-mercurial-upgrade.html @@ -0,0 +1,183 @@ +--- +date: "2007-04-04T23:07:36Z" +title: Mercurial Upgrade +--- + +<p>Say hello to <a href="http://selenic.com/mercurial/" title="Mercurial distributed SCM.">Mercurial</a>, my long-overdue replacement for <a href="http://nongnu.org/cvs/" title="Crappy Version Control^W^W^WConcurrent Versioning System.">CVS</a>. +Unlike <a href="http://nongnu.org/cvs/" title="Crappy Version Control^W^W^WConcurrent Versioning System.">CVS</a> and <a href="http://subversion.tigris.org/">Subversion</a>, Mercurial is a <em>distributed version +control system</em> (<acronym title='Version Control System'>VCS</acronym>), which means (among other things) it doesn't +have a central repository, has disconnected (non-networked) +commits, and allows you to group small changes together as "change sets". +Other well-known distributed <acronym title='Version Control System'>VCS</acronym>s include <a href="http://bitkeeper.com/">Bitkeeper</a>, <a href="http://kernel.org/pub/software/scm/git/docs/">Git</a>, +<a href="http://abridgegame.org/darcs/">Darcs</a>, and +<a href="http://venge.net/monotone/">Monotone</a> (there are <a href="http://better-scm.berlios.de/" title="Comparison of several version control systems.">more</a>). While searching for a <acronym title='Concurrent Versioning System'>CVS</acronym> +replacement, I spent some time using Subversion, Monotone, and Git; +here's a brief overview of my experience with each one.</p> + +<ul> +<li><p><a href="http://subversion.tigris.org/">Subversion</a>: Subversion is probably the most popular <acronym title='Version Control System'>VCS</acronym>, so +you're probably already familiar with it. I'll dispense with the +pleasantries and skip straight to the problems.</p> + +<p>For the past several months I've been using a private, home Subversion +repository for small projects, snippets of code, configuration +files, scripts, and various other knick-knacks. Along the way, I +noticed several things about Subversion that bother me. For example, +until version 1.4, common operations like <code>svn status</code> and <code>svn +commit</code> were uncomfortably slow under Subversion. They're better now, +but still not as fast as I'd like. Copying and moving large groups of +files is still painfully slow (moving several hundred megabytes of +files took me well over 20 minutes). </p> + +<p>Branching in Subversion is primitive (and slow, since it's really just +a copy). For me this is a major problem, because in addition to +revisions, I also want to use branches for quick, version controlled +staging areas for new features. That's a problem in Subversion, +because branches are expensive, and merging is kind of wimpy. </p> + +<p>It's a genuine hassle to require network access for commits; I +regularly work remotely, and even though I have <acronym title='Virtual Private Network'>VPN</acronym> access (courtesy +of <a href="http://openvpn.net/">OpenVPN</a>) it's still kind of distracting to wait for common +commands like <code>commit</code>, <code>add</code>, and <code>copy</code> . My alternatives? Move the +repository to a public server with better bandwidth (which makes it +slower for me to access while I'm at home, plus it's not really +private any more and I'm <em>still</em> dependent on network connection) or +hold off on commits until I'm at home (which is contrary to committing +in small, incremental changes, my preferred modus operandi).</p> + +<p>Finally, and most importantly, Subversion is centralized. Why? It +imposes all sorts of workflow restrictions that haven't been +necessary since VHS tapes went out of style. For example, I have +roughly five gadzillion projects in various states of brokenness and +disarray that I'm just not ready to publish. Distributed version +control systems have no central repository except one that is +designated by convention, so I can commit locally, push to my private +repository when it's convenient, and publish to the public repository +when I'm damn good and ready. Subversion can't do any of this without +cheating, of course, so I'm forced to either migrate projects to the +public repository without their history or use <code>svndumpfilter</code> +chicanery to bludgeon Subversion into doing something it should be +able to do out of the box. Which sounds an awful lot like trying to +copy and move files in <acronym title='Concurrent Versioning System'>CVS</acronym>. Which is why we were supposed to upgrade +to Subversion in the first place. Oops...</p> + +<p>(Subversion isn't all bad, by the way. It's certainly a huge +improvement over <acronym title='Concurrent Versioning System'>CVS</acronym>. It integrates well with <a href="http://rubyonrails.com/" title="The Ruby on Rails MVC web framework.">Rails</a>, +<a href="http://eclipse.org/">Eclipse</a>, and all the other fancy toys kids use these days. +Plus Subversion has all sorts of nifty extensions like <a href="http://tortoisesvn.tigris.org/" title="Integrate Subversion with Windows explorer.">TortoiseSVN</a> +and <a href="http://trac.edgewall.org/">Trac</a>. I use Subversion daily at work. I just need things +Subversion doesn't support by design).</p> + +<p>I'd be derelect in my blog posting responsibilities if I didn't +mention <a href="http://svk.bestpractical.com/view/HomePage">SVK</a>, a distributed <acronym title='Version Control System'>VCS</acronym> built on Subversion that supports +repository mirroring and disconnected operation. I can't say much +about SVK because I don't have much experience with it, although I'm +fairly sure SVK has neither the speed nor the power of Mercurial and +Git. Personally, I don't really see the point of keeping Subversion +around for the sake of keeping Subversion around, particularly in lieu +of <a href="http://www.cs.bris.ac.uk/~henkm/svn.html">Subversion's marvelously atrocious track record with repository +corruption</a>.</p></li> +<li><p><a href="http://venge.net/monotone/">Monotone</a>: I wanted to like Monotone. I stumbled across a +reference to it in the <a href="http://sqlite.org/" title="Embedded relational database.">SQLite</a> documentation, and spent several +months putting up with Monotone's warts after <a href="http://kerneltrap.org/node/4968" title="Linus Torvald plugs Monotone on the Linux Kernel Mailing List.">Linus plugged it on the +<a href='http://kernel.org/'>LKML</a></a>. I like the extensive documentation, simple +command-line interface, <a href="http://lua.org/">Lua</a> hooks, proper Windows support. +Internally, Monotone makes extensive use of strong cryptographic +primitives, which I wholeheartedly support. </p> + +<p>Unfortunately, Monotone is slow. Dog slow. An initial repository pull +(checkout, in <acronym title='Concurrent Versioning System'>CVS</acronym> parlance) is so slow that a many Monotone +users provide a publicly downloadable snapshot of the initial pull +instead. The last time I used Monotone, the crypto certs were their +own special blend; I'd prefer either <a href="http://ietf.org/html.charters/openpgp-charter.html">OpenPGP</a> or <a href="http://en.wikipedia.org/wiki/X.509">X.509</a>.</p> + +<p>(Oddly enough, my first look at Mercurial was right after I started +testing Monotone. I wasn't initially interested in Mercurial because +I was still stuck on Monotone. I didn't feel like Mercurial offered +much more than Monotone, and I hadn't fully appreciated the speed +difference between the two).</p></li> +<li><p><a href="http://kernel.org/pub/software/scm/git/docs/">Git</a>: Git was (is) right at the top of the list. It's fast, +possibly (probably?) even faster than Mercurial. It has features +Mercurial doesn't support (<a href="http://kernel.org/pub/software/scm/git/docs/git-rebase.html">rebase</a>, for example, although I believe that can +be clumsily emulated with <code>bundle</code> and <code>unbundle</code>). <a href="http://keithp.com/">Keith Packard</a> +wrote a post titled <a href="http://keithp.com/blog/Repository_Formats_Matter.html">"Repository Formats Matter"</a>, +advocating Git for X.org. His post briefly mentions Mercurial and in +a positive light, but dismisses it prematurely for what I think is a +completely asinine reason; old, obscure <code>ftruncate()</code> bugs in the +<a href="http://kernel.org/">Linux kernel</a> (see <a href="http://selenic.com/pipermail/mercurial/2006-November/011678.html">this post</a> on the Mercurial +mailing list for a more thorough rebuttal of Keith Packard's +<code>ftruncate()</code> sillyness).</p> + +<p>I only have two real gripes with Git: the Windows support sucks (it +half-works via <a href="http://cygwin.com/">cygwin</a>, which doesn't really count), and the +command-line interface makes me feel stupid. </p> + +<p>The second one is the deal-breaker for me. While I may not be +Mensa material, I've spent enough time using version control that I +feel like I should be able get at least the <em>gist</em> of a new VCS in a +couple of minutes, be comfortable with it within a day or so, and +proficienct with it within about a week.</p> + +<p>I don't really think that's unreasonable. Even if it is, so what? A +VCS is a tool, one that's supposed to make <em>my</em> life easier. If I +can't use it without consulting the documentation every couple of +minutes then it's just getting in my way. </p> + +<p>I simply refuse to waste my time learning the nuances of an interface +that is complex for no other reason than the programmer couldn't see +far enough past their own idiosyncratic whims to long enough provide +an interface without the learning curve of a black diamond ski slope. +This is particularly true for an application like Git that has few, +if any, tangible benefits when compared to it's more intuitive +counterparts.</p></li> +</ul> + +<p>The silver lining here is that I eventually stumbled on Mercurial. And +by stumbled, I mean <a href="http://richlowe.net/">Richard (richlowe)</a> told me about it +(just like he told me about <a href="http://vim.org/">Vim</a>, <a href="http://gnu.org/software/screen/">Screen</a>, <a href="http://mutt.org/">Mutt</a>, <a href="http://ruby-lang.org/">Ruby</a>, and +a whole +lot of other cool stuff I use regularly). He knows a lot more about +version control software than I do, but I didn't really pay any +attention. At least not until I noticed that Mercurial seemed to be the +<em>only</em> free VCS that wasn't enclosed in a long and colorful string of +profanity when he talked about it.</p> + +<p>Anyway, the more I use Mercurial, the more I like it. It meets all of +the requirements I mentioned above, plus it has the speed and power of +Git and the simplicity of Subversion and <acronym title='Concurrent Versioning System'>CVS</acronym>. Mercurial is actively +developed, has full Windows support, and it includes extensions that add +support for <acronym title='Pretty Good Privacy'>PGP</acronym>-signed tags and <a href="http://selenic.com/mercurial/wiki/index.cgi/MqExtension">Quilt-style patch queues</a>.</p> + +<p>The real killer feature for me, though, is that everything I try just +works. Setting up read-only, web-accessible public repository only took +a minute or two of reading, and making an entire directory of Mercurial +repositories available only took a couple more minutes. I had +comparable experiences with branching, tagging, signing tags, and +pushing changes to multiple repositories.</p> + +<p>The only warts I've found in Mercurial so far are minor; the web +interface needs a bit of cleanup, and there should be a straightforward +way of adding repository defaults like style, contact and archive +formats via the top-level <code>htwebdir</code> configuration file. The native +import features are still a bit lacking, although you can use <a href="http://darcs.net/DarcsWiki/Tailor">Tailor</a> +to convert data from all but the most esoteric or convoluted +repositories.</p> + +<p>That's about all the advocacy I can muster up at the moment. If you're +interested in reading more about the state of distributed version +control systems, there are more detailed VCS comparisons <a href="http://changelog.complete.org/posts/528-Whose-Distributed-VCS-Is-The-Most-Distributed.html">here</a> and +<a href="http://better-scm.berlios.de/" title="Comparison of several version control systems.">here</a>.</p> + +<p><strong>Note:</strong> I've had this post sitting in my queue for months. I +just brushed off the cobwebs, cleaned up the typos, and posted it. +In that time Mercurial has picked up a bit of publicity, and development +has been moving along at a steady clip. I tried to remove the bits that +no longer apply, but let me know if I missed anything.</p> + +<p><strong>Edit:</strong> This article was linked on <a +href='http://reddit.com/'>Reddit</a>; some additional conversation (and +my responses) can be found in <a +href='http://programming.reddit.com/info/1iib6/comments'>the comment +thread</a>. +</p> + diff --git a/content/posts/2007-04-06-catering-to-the-lowest-common-denominator.html b/content/posts/2007-04-06-catering-to-the-lowest-common-denominator.html new file mode 100644 index 0000000..34f7e48 --- /dev/null +++ b/content/posts/2007-04-06-catering-to-the-lowest-common-denominator.html @@ -0,0 +1,31 @@ +--- +date: "2007-04-06T15:56:59Z" +title: Catering to the Lowest Common Denominator +--- + +<p>The <a href="http://kde.org/">KDE</a> team is working on a Dolphin, a new next-generation file +manager. How many next-generation file managers do we need, anyway? +They still haven't finished fixing the broken ones from the last +generation. I just read +<a href="http://arstechnica.com/news.ars/post/20070405-afirst-look-at-dolphin-the-kde-4-file-manager.html">this Ars Technica preview</a> of Dolphin, which aptly states:</p> + +<blockquote> + <p>In many respects, Dolphin is reminiscent of the Nautilus file browser + from the GNOME desktop environment.</p> +</blockquote> + +<p>Nautilus's defining characteristic has always been the uncanny ability +to waste a colossal amount of screen real estate to convey irrelevant or +redundant information. Believe it or not, some of the things <a href="http://pablotron.org/reviews/nautilus-PR2/" title="2001 review of the Nautilus file manager.">I wrote +about in 2001</a> still haven't been +fixed. </p> + +<p>But hey, everything old is new again, right? Check out the +awesomely efficient use of screen space in this Dolphin picture:</p> + +<p> +<img src='http://pablotron.org/gallery/misc/kde_dolphin4.jpg' + width='600' height='381' border='0' title='new kde file manager' + alt='new kde file manager'/></p> + + diff --git a/content/posts/2007-04-07-he-uses-his-camera.html b/content/posts/2007-04-07-he-uses-his-camera.html new file mode 100644 index 0000000..e91e3e8 --- /dev/null +++ b/content/posts/2007-04-07-he-uses-his-camera.html @@ -0,0 +1,9 @@ +--- +date: "2007-04-07T17:34:00Z" +title: He Uses His camera +--- + +<p> +I finally posted some shots from my camera on <a href='http://paulduncan.org/'>the other site (tm)</a>. +</p> + diff --git a/content/posts/2007-04-10-a-good-week-for-gadgets.html b/content/posts/2007-04-10-a-good-week-for-gadgets.html new file mode 100644 index 0000000..6ff1327 --- /dev/null +++ b/content/posts/2007-04-10-a-good-week-for-gadgets.html @@ -0,0 +1,19 @@ +--- +date: "2007-04-10T02:54:14Z" +title: A Good Week for Gadgets +--- + +<p>I <a href="http://pablotron.org/?cid=1507">mentioned</a> the Nokia N95 in October, and it's finally +available. It's $750 unlocked, but it includes all sorts of really cool +stuff; <a href="http://gizmodo.com/">Gismodo</a> has a <a href="http://gizmodo.com/gadgets/cellphones/gizmodos-long+ass-nokia-n95-review-why-it-rocks-why-it-sucks-250902.php">full review</a>. Also, the <a href="http://xbox.com/en-US/community/news/2007/0408-im.htm">Xbox 360 +spring update</a> includes <a href="http://en.wikipedia.org/wiki/H.264">H.264</a> and <a href="http://en.wikipedia.org/wiki/MPEG-4">partial MPEG4</a> +support. With any luck that'll allow the 360 to serve as a frontend for +the media on my network. </p> + +<p>On the 360 front, there's also an update to <a href="http://gearsofwar.com/">Gears of War</a> and an +imminent update to <a href="http://xbox.com/en-US/games/t/tomclancyrainbowsixvegas/">Rainbow Six: Vegas</a>. I don't care too much +about the Gears of War update, but I've been playing Rainbow Six a lot.</p> + +<p>So yeah, this is a great week for gadgets.</p> + + diff --git a/content/posts/2007-04-13-mozilla-switches-to-mercurial.html b/content/posts/2007-04-13-mozilla-switches-to-mercurial.html new file mode 100644 index 0000000..22bead2 --- /dev/null +++ b/content/posts/2007-04-13-mozilla-switches-to-mercurial.html @@ -0,0 +1,11 @@ +--- +date: "2007-04-13T16:08:04Z" +title: Mozilla Switches to Mercurial +--- + +<p><a href="http://mozilla.org/" title="Mozilla description.">Mozilla</a> just <a href="http://weblogs.mozillazine.org/preed/2007/04/version_control_system_shootou_1.html" title="picked Mercurial description.">picked Mercurial</a> as it's next-generation +version control system and successor to <acronym title='Concurrent Versioning System'>CVS</acronym>. The <a href="http://weblogs.mozillazine.org/preed/2007/04/version_control_system_shootou_1.html" title="picked Mercurial description.">article</a> has the +details of the elimination process and includes creatively modified +Mortal Kombat screenshots to illustrate key points.</p> + + diff --git a/content/posts/2007-09-19-blackberry-links-and-a-rant-about-thieving-bastards.html b/content/posts/2007-09-19-blackberry-links-and-a-rant-about-thieving-bastards.html new file mode 100644 index 0000000..52dd046 --- /dev/null +++ b/content/posts/2007-09-19-blackberry-links-and-a-rant-about-thieving-bastards.html @@ -0,0 +1,94 @@ +--- +date: "2007-09-19T07:27:30Z" +title: Blackberry Links and a Rant About Thieving Bastards +--- + +<img src='http://pablotron.org/gallery/misc/bb_pig-tiny.png' + width='176' height='176' align='right'/> + +<p> +I just got a Blackberry for work, and I've been looking around for +some simple applications. The entire experience reminds me of looking +for Windows Mobile software; a bunch of small, money grubbing companies trying to nickel +and dime people for things they have no business charging for. $5 for +a crappy theme that you obviously spent 15 minutes on? No thanks, I'll +make my own. $15 for your E-Book reader? I already made a mistake when +I bought your shitty software for my +<acronym title='Personal Digital Assistant'>PDA</acronym> +two years ago; I won't be fooled again. What a bunch of thieving bastards. +</p> + +<p> +The good news is that I did manage to find a couple of decent +applications. Here they are: +</p> + +<ul> +<li><a href='http://www.xk72.com/midpssh/'>MidpSSH</a>: Mobile SSH +client. <a href='http://tynian.net/'>Brian</a> dug this one up. The +source is also a pretty good reference for MIDP development. +</li> +<li><a href='http://www.operamini.com/beta/'>Opera Mini</a>: The +crackberry comes with a half-assed built-in browser. Opera Mini makes +up the other half by resizing images and scaling the page so it fits +nicely on your screen. +</li> +<li><a +href='http://jmirc.sourceforge.net/'>jmIrc</a>: Decent mobile IRC +client. +</li> +</ul> + +<p> +Also, <a href='http://www.blackberryfreaks.com/'>Blackberry Freaks</a> +and <a href='http://getjar.com/'>GetJar</a> both have lists of free +software for the Blackberry. Actually, GetJar is useful for any +<acronym title='Java 2, Mobile Edition / Mobile Information Device Profile'>J2ME/MIDP</acronym>-capable +device; that's where I got most of the software for my Samsung t809. +There's also <a href='http://midlet.org/index2.jsp'>midlet.org</a>, +although everything there seems to be straight out of 2002. +</p> + +<p> +The best overall Blackberry forum I've found so far seems to be +<a href='http://blackberryforums.com/'>Blackberry Forums</a>. I particularly like the <a href='http://www.blackberryforums.com/developer-forum/'>developer forum</a>. +</p> + +<p> +I also managed to get the <a +href='http://java.sun.com/products/midp/'>MIDP SDK</a> up and running +without too much effort. You basically just uncompress the archive +wherever, then add the <code>$MIDP_DIR/classes</code> directory to your +classpath when compiling your <code>.java</code> files. It includes an +MIDP emulator which works fine for several applications I've tried, and +also seems to hate the JAD files I'm generating for no apparent reason. +Oh well. Here are the interesting MIDP and Blackberry development links +I've dug up: +</p> + +<ul> +<li><a href='http://java.sun.com/javame/reference/apis/jsr118/'>Sun J2ME +MIDP 2.0 API Reference</a>. +</li> +<li><a href='http://www.theilya.com/info/bbjde.shtml'>Blackberry JDE on +Linux</a>: The information here looks a bit dated, but it still might be +useful.</li> +<li><a +href='http://developers.sun.com/mobility/midp/articles/midp2network/'>J2ME +Low-Level Network Programming with MIDP 2.0</a></li> +<li><a href='http://www.billday.com/j2me/'>Bill Day's java ME +Archive</a>.</li> +<li><a +href='http://www.spindriftpages.net/blog/dave/2006/06/18/midlet-jar-signing-a-tutorial-revised/'>MIDlet +JAR Signing</a>.</li> +<li><a +href='http://www.javaworld.com/javaworld/jw-01-2001/jw-0105-midp.html'>Device programming with MIDP</a>: Great three-part series +on the MIDP API. The articles pre-date MIDP 2.0 but they include plenty +of examples and links for additional information. Be sure to click the +Print link at the bottom to view all the pages concatenated together.</li> +</ul> + +<p> +Fire an email or comment my way if you've got any more useful links. +</p> + diff --git a/content/posts/2007-09-22-streaming-zip-files-with-php.html b/content/posts/2007-09-22-streaming-zip-files-with-php.html new file mode 100644 index 0000000..3a70295 --- /dev/null +++ b/content/posts/2007-09-22-streaming-zip-files-with-php.html @@ -0,0 +1,55 @@ +--- +date: "2007-09-22T05:40:41Z" +title: Streaming Zip Files with PHP +--- + +<p>The problem: how do you dynamically generate arbitrarily large +downloadable zip files from PHP? All of the existing solutions I found +all generate a local temp file, which means the server needs to </p> + +<ul> +<li>have a web-writable directory large enough to store the +intermediate temp file, and</li> +<li>be able to generate and start streaming the entire file before +the client times out </li> +</ul> + +<p>I wasn't particularly fond of either constraint, so I came up with a +solution: <a href="http://pablotron.org/software/zipstream-php/" title="ZipStream-PHP project page.">ZipStream-PHP</a>. ZipStream is a library for dynamically +streaming dynamic zip files from PHP without writing to the disk at all +on the server. Using it is dirt simple, too. Here's how:</p> + +<pre><code># create a new stream object +$zip = new ZipStream('example.zip'); + +# then add one or more files + +# add first file +$data = file_get_contents('some_file.gif'); +$zip->add_file('some_file.gif', $data); + +# add second file +$data = file_get_contents('another_file.txt'); +$zip->add_file('another_file.txt', $data); + +# finally, finish the stream +$zip->finish(); +</code></pre> + +<p>You can also set file comments and creation dates, like so:</p> + +<pre><code>$data = file_get_contents('foo.txt'); +$zip->add_file('foo.txt', $data, array( + 'comment' => 'this is an interesting comment', + 'time' => time() - 3600, # created one hour ago +)); +</code></pre> + +<p>Here are the links, enjoy:</p> + +<ul> +<li><a href="http://pablotron.org/files/zipstream-php-0.1.1.tar.gz" title="ZipStream-PHP 0.1.1 tarball.">Download ZipStream-PHP 0.1.1</a> (<a href="http://pablotron.org/files/zipstream-php-0.1.1.tar.gz.asc" title="PGP signature for ZipStream-PHP 0.1.1 tarball.">Signature</a>)</li> +<li><a href="http://hg.pablotron.org/zipstream-php/" title="ZipStream-PHP Mercurial repository.">ZipStream Mercurial Repository</a></li> +</ul> + + diff --git a/content/posts/2007-09-25-a-slwo-transition-to-a-new-server.html b/content/posts/2007-09-25-a-slwo-transition-to-a-new-server.html new file mode 100644 index 0000000..54837c4 --- /dev/null +++ b/content/posts/2007-09-25-a-slwo-transition-to-a-new-server.html @@ -0,0 +1,46 @@ +--- +date: "2007-09-25T07:29:04Z" +title: A Slwo Transition to a New Server +--- + +<p>We're finally upgrading to a new web server. I've spent the last week moving a couple of +domains a night from our current colo to the new machine. We're getting a +massive hardware upgrade; the old machine is a 1.7GHz Celeron +with 512 megs of RAM, and the new machine is a Dual 2.8GHz Xeon with 2 +gigs of RAM. </p> + +<p>In addition to the beefier hardware, I'm also migrating us from <a href="http://exim.org/">Exim</a> +to <a href="http://postfix.org/">Postfix</a>, upgrading to MySQL 5, Apache 2, and PHP 5, and, most +importantly, segregating web, database, email, and nameserver bits into +their own <a href="http://linux-vserver.org/">VServers</a>. </p> + +<p>The net result of all of this will be a system that's more secure, much +easier to administer, and significantly faster. </p> + +<p>I'm particularly exited about the move to VServers. We've had a few +"trouble" users in the past who used more than their fair share of +CPU, memory, or disk space. With the old system my only real options +were</p> + +<ul> +<li>ask the person nicely to behave</li> +<li>disable the offending content and/or lock out their account, or</li> +<li>fix the offending PHP/SQL/whatever by hand</li> +</ul> + +<p>I was never particularly happy with any of those options. With the new +setup, I can just isolate the offending user's content on a separate +VServer, and throttle whatever resource they're abusing to an acceptable +level.</p> + +<p>There are other advantages, too. A couple of past upgrades have had +"issues". Specifically, a new package I need to install wants to +upgrade a bunch of core libraries, which, in turn, force upgrades to +daemons I'd rather not mess with (I'm looking at you, <a href="http://dovecot.org/">Dovecot</a>). +The VServers allow us to quickly create throw-away machines to test +upgrades and to isolate installations and upgrades to the services they +apply to.</p> + +<p>Stay tuned...</p> + + diff --git a/content/posts/2007-10-15-brain-dump-random-migration-notes.html b/content/posts/2007-10-15-brain-dump-random-migration-notes.html new file mode 100644 index 0000000..88a770e --- /dev/null +++ b/content/posts/2007-10-15-brain-dump-random-migration-notes.html @@ -0,0 +1,129 @@ +--- +date: "2007-10-15T06:16:32Z" +title: 'Brain Dump: Random Migration Notes' +--- + +<!--img src='http://pablotron.org/gallery/misc/brain_dump.png' + width='273' height='200' align='right' /--> + +<p>I've been using the migration and some recent side projects as sandboxes +to try out new things. Here's a semi-random list of useful tidbits I've +picked up along the way:</p> + +<ul> +<li><p>Better mod_rewrite magic: Google turns up plenty of <a href="http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html">mod_rewrite</a> +examples on automatically stripping the dreaded "www." prefix from +URLs. Unfortunately, most of them appear to be incorrect. Here's the +most common solution:</p> + +<p><code><pre>RewriteCond %{HTTP_HOST} ^www.example.com$ [NC] +RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]</code></pre></p> + +<p>What it's <em>supposed</em> to do is redirect visitors from +<code>http://www.example.com/whatever</code> to <code>http://example.com/whatever</code>, +but what it <em>actually</em> does is redirect visitors to +<code>http://example.com//whatever</code>. It's minor, but it was driving me +nuts (Arrrrrrr). Anyway, here is the correct solution:</p> + +<p><code><pre>RewriteCond %{HTTP_HOST} ^www\. [NC] +RewriteRule ^/(.*)$ http://example.com/$1 [R=301,L]</pre></code></p></li> +<li><p><a href="http://httpd.apache.org/docs/2.0/mod/mod_deflate.html">mod_deflate</a>: Saves a ton of bandwidth, works great in IE7 and +Firefox. The stock settings don't include a couple of common MIME +types; here's the list I'm using: +text/html text/plain text/xml text/css text/javascript +application/x-javascript text/csv</p></li> +<li><a href="http://xcache.lighttpd.net/">XCache</a>: Fast PHP opcode cacher that actually works with recent +versions of PHP. I tested several <a href="http://wordpress.org/">Wordpress</a>, <a href="http://gallery.menalto.com/">Gallery</a>, and +custom PHP sites without incident, and my (incredibly rough) benchmarks +showed about a 4-7% increase in mean transfer speed.</li> +<li><p><a href="http://extjs.com/download/build">ExtJS Builder</a>: I decided to test the <a href="http://extjs.com/">ExtJS</a> builder for a +personal project. The interface is a bit finicky; it took me about 5 +tries to get all the dependencies for my project selected. Here are +the results:</p> + +<table style='font-size: 9pt; '> +<tr><td>File</td><td>Minified</td><td>Deflated</td></tr> +<tr><td>ext-all.js</td><td>468k</td><td>125k</td></tr> +<tr><td>ext-mine.js</td><td>276k</td><td>77k</td></tr> +</table> + +<p>Note: The "Minified" column is the total file size after being shrunk with <a +href='http://javascript.crockford.com/jsmin.html'>Douglas Crockford's +excellent <code>jsmin</code></a>, and the "Deflated" column is +the actual transfer size (according to <a +href='https://addons.mozilla.org/en-US/firefox/addon/1843'>Firebug</a>) after being passed through +<code>mod_deflate</code>. +</p> + +<p>Not too shabby for 20 minutes of work. I'm a little bit disappointed +by the stock mod_deflate compression ratio, so that may need a bit of +tweaking.</p></li> +<li><p>Backgrounding Mercurial Hooks: The <a href="http://hgbook.red-bean.com/hgbook.html">Mercurial book</a> has an excellent +chapter on hooks. What it doesn't mention, unfortunately, is how to +run hooks in the background. I have a semi-lengthy <code>outgoing</code> hook +(roughly equivalent to a client-side <code>post-commit</code> for you Subversion +weenies) that connects to a web server via <code>ssh</code> and performs some +deployment tasks, and all attempts at backgrounding a shell script +eluded me. Well, it turns out Mercurial has an extra hidden file +descriptor that has to be closed in order to background a hook. So +here's my down and dirty client-side background deployment hook:</p> + +<p><code><pre> +# +# outgoing hook script that connects to web server and deploys +# the latest site from tip. It is run in the background after a +# successful 'hg push'. +# + +# options +opt = { + # remote hostname + 'host' => 'web', + + # remote command (relative to my home directory) + 'cmd' => 'bin/update_site.sh', + + # client-side log (set to /dev/null to disable) + # 'log' => '/dev/null', + 'log' => '/tmp/site_update.log', + + # delay (in seconds) before update + 'delay' => 3, +} + +# fork and run update in background +pid = fork { + # close stdin, stdout, and stderr + $stdin = $stdin.reopen('/dev/null', 'r') + $stdout = $stdout.reopen(opt['log'], 'a') + $stderr = $stderr.reopen(opt['log'], 'a') + $defout = $stdout + + # close all other file descriptors + # NOTE: mercurial appears to have a hidden fd laying + # around somewhere, so this evil is necessary... + (3..99).each { |fd| IO.new(fd).close rescue nil } + + # wait for push to finish + # (this should poll the hg server instead, to handle + # lengthy pushes) + sleep opt['delay'] + + # run update command and exit + args = ['ssh', opt['host'], opt['cmd']] + exec(*args) + + # never reached + exit 0 +} + +# reap child and exit +flags = Process::WNOHANG | Process::WUNTRACED +Process.waitpid(pid, flags) +</pre></code></p></li> +</ul> + +<p> +<b>Update:</b> Markdown really mangled my markup this time around. Usually it's pretty tolerant, but apparently this post was just a bit too much. Oh well... +</p> + diff --git a/content/posts/2007-10-15-llvm-is-a-baby-killer.html b/content/posts/2007-10-15-llvm-is-a-baby-killer.html new file mode 100644 index 0000000..0bd1623 --- /dev/null +++ b/content/posts/2007-10-15-llvm-is-a-baby-killer.html @@ -0,0 +1,57 @@ +--- +date: "2007-10-15T05:38:29Z" +title: LLVM is a Baby Killer +--- + +<img src='http://pablotron.org/gallery/misc/baby_kill-small.png' + width='200' height='199' align='right'/> +<p> +I've spent some time sifting through the documentation for <a href="http://llvm.org/">LLVM</a>, and +I'm both impressed and horrified. I'm not sure I've ever seen so much +documentation about something that looks really cool that I'm not +interested in. I've been reading the <a href="http://en.wikipedia.org/wiki/Compilers:_Principles%2C_Techniques%2C_and_Tools">dragon book</a> and <a href='http://www.amazon.com/Advanced-Compiler-Design-Implementation-Muchnick/dp/1558603204'>Advanced Compiler Design and Implementation</a>, and I <em>wanted</em> to use LLVM to generate a simple +runtime <acronym title='Just in Time (compiler)'>JIT</acronym> compiler, but I can't seem to find the necessary +documentation. </p> + +<p>I see plenty of documentation on the IR, the various command-line tools, +and just about everything else LLVM-related except for a straightforward +tutorial that explains how to </p> + +<ol> +<li>blast either opcodes or IR at the LLVM <acronym title='Application Programming Interface'>API</acronym>, and </li> +<li>have LLVM either emit an ELF/blob/whatever or execute the result. </li> +</ol> + +<p>I did manage to find a couple of examples that give me half of what I +want. The source code ships with a sample <a href="http://en.wikipedia.org/wiki/Brainfuck">Brainfuck</a> compiler which +reads an input bf file and emits LLVM IR. There are a couple more +examples that show how to construct a basic JIT, then create some +functions that do frustratingly simple things like calculate Fibonacci +numbers or add two integers together, but nothing that's too much more +detailed than that.</p> + +<p>Oh, did I mention that the online API documentation is broken?</p> + +<p>A bit of googling turned up libjit, which is almost exactly what I want. +It's got a simple C API (instead of the nightmarishly bloated C++ +monstrosity that is the LLVM API), a simple build and link system, and +<a href="http://maybe.dotgnu.info:8000/~krokas/books/libJIT/libjit_toc.html">simple, straightforward and complete documentation</a>. In +short, it's everything that I want. </p> + +<p>It's also GPL-licensed, which makes it almost completely unusable. I +found <a href="http://lists.cs.uiuc.edu/pipermail/llvmdev/2006-April/005581.html">this 2006 email exchange</a> comparing libgit and LLVM. The +author, who apparently works on libgcj, mentions all of my problems with +LLVM (sans the anti-C++ bias). </p> + +<p>My other crazy idea was to generate C as an IR and blast it at +<a href="http://fabrice.bellard.free.fr/tcc/">libtcc</a>, but with my limited fiddling I couldn't get to do anything +other than segfault on me. Incidentally, the documentation for libtcc +is a single file and it's still better than what's available for LLVM.</p> + +<p>So here's my question: Is there a decent book or tutorial that walks +through the LLVM API? I've Googled to the end of the earth and back, +I've seen the <a href="http://llvm.org/docs/Stacker.html">Stacker</a> documentation, and I've read through +<em>everything</em> in the LLVM documentation section, and none of it was +what I'm looking for. I'm open to suggestions...</p> + + diff --git a/content/posts/2007-10-15-project-honey-pot-bindings-php-and-ruby.html b/content/posts/2007-10-15-project-honey-pot-bindings-php-and-ruby.html new file mode 100644 index 0000000..b176ae8 --- /dev/null +++ b/content/posts/2007-10-15-project-honey-pot-bindings-php-and-ruby.html @@ -0,0 +1,74 @@ +--- +date: "2007-10-15T03:17:18Z" +title: Project Honey Pot Bindings (PHP and Ruby) +--- + +<p><a href="http://projecthoneypot.org/">Project Honey Pot</a> is a <acronym title='Domain Name Service - Realtime Blacklist'>DNSRBL</acronym> to preemptively block comment +spammers, harvesters, and other nefarious types on the web. This +afternoon I tested 50ish "spammy" IP addresses that <a href="http://pablotron.org/?cid=1485" title="My PHP4 Akismet bindings.">Akismet</a> missed +and Honey Pot caught about 10% of them. Unfortunately, I don't have a +good balanced corpus of comment spam to do a full comparison between the +two, so I'll be using both together for the time being.</p> + +<p>Anyway, I've been sitting on mostly complete <a href="http://hg.pablotron.org/honeypot-ruby">Ruby Honeypot +bindings</a> for a while, but this evening I whipped up +some PHP bindings too. </p> + +<p>Note that you'll need to create a Project Honey Pot account to get an +<acronym title='Application Programming Interface'>API</acronym> key (but don't worry, it's free). Without any further ado:</p> + +<pre><code># sample API key +$api_key = 'asdf1234asdf'; + +# ip/hostname to check +# (this will almost always be $_SERVER['REMOTE_ADDR']) +$addr = '127.1.10.1'; + +# create new honeypot instance +$honeypot = new Honeypot($api_key); + +# check address +if ($honeypot->is_ok($addr)) + echo 'address is okay'; +else + echo 'address is NOT OKAY'; +</code></pre> + +<p>You can override the default age and threat thesholds by passing +additional arguments to the constructor, like this:</p> + +<pre><code>$honeypot = new Honeypot($api_key, array( + 'ok_age' => 300, # set age threshold to 300 days + 'ok_threat' => 50, # set threat level threshold to 50 +)); +</code></pre> + +<p>Using the <code>check()</code> method instead of <code>is_ok()</code> gives you more detailed +results. Say you're only concerned about fairly recent harvesters, and +not comment spammers or anything else:</p> + +<pre><code># check the address +$result = $honeypot->check($addr); + +# check for recent harvester results with a high threat level +if ($result && $result['is_harvester'] && + $result['age'] < 30 && $result['threat'] > 128) { + echo 'address is NOT OKAY'; +} else { + echo 'address is okay'; +} +</code></pre> + +<p>Files:</p> + +<ul> +<li><a href="http://pablotron.org/files/honeypot-php-0.1.0.tar.gz" title="Download Honeypot-PHP 0.1.0 tarball.">Download Honeypot-PHP 0.1.0</a> (<a href="http://pablotron.org/files/honeypot-php-0.1.0.tar.gz.asc" title="PGP signature for Honeypot-PHP 0.1.0 tarball.">Signature</a>)</li> +<li><a href="http://pablotron.org/files/php/Honeypot-0.1.0.tgz" title="Honeypot-PHP 0.1.0 PEAR Package.">Honeypot-PHP 0.1.0 PEAR Package</a> (<a href="http://pablotron.org/files/php/Honeypot-0.1.0.tgz.asc" title="PGP signature for Honeypot-PHP 0.1.0 PEAR Package.">Signature</a>)</li> +<li><a href="http://hg.pablotron.org/honeypot-php">Honeypot-PHP Mercurial Repository</a></li> +</ul> + +<p>If you're using Wordpress, someone else already wrote a <a href="http://wordpress.org/extend/plugins/httpbl/">handy http:BL +Wordpress plugin</a>. I didn't see a decent generic Honeypot l +ibrary, which is why I wrote this one.</p> + + diff --git a/content/posts/2007-10-16-new-version-of-reddit-content-filter.html b/content/posts/2007-10-16-new-version-of-reddit-content-filter.html new file mode 100644 index 0000000..83472bd --- /dev/null +++ b/content/posts/2007-10-16-new-version-of-reddit-content-filter.html @@ -0,0 +1,23 @@ +--- +date: "2007-10-16T08:11:09Z" +title: New Version of Reddit Content Filter +--- + +<p><a href="http://reddit.com/">Reddit</a> updated their site layout yesterday, which broke my +<a href="http://userscripts.org/scripts/show/8751">Reddit Content Filter</a> Greasemonkey script. I just posted a new +version a few minutes ago, along with my <a href="http://userscripts.org/scripts/show/13056">Reddit Navigational Access Keys</a> +script, which I apparently never posted to User Scripts. </p> + +<ul> +<li><a href="http://userscripts.org/scripts/show/8751">Reddit Content Filter 0.3</a> (<a href="http://pablotron.org/files/greasemonkey/reddit_filter-0.3.user.js.asc">Signature</a>)</li> +<li><a href="http://userscripts.org/scripts/show/13056">Reddit Navigational Access Keys 0.2</a> (<a href="http://pablotron.org/files/greasemonkey/reddit_nak-0.2.user.js.asc">Signature</a>)</li> +</ul> + +<p>I've also hosted both files here:</p> + +<ul> +<li><a href="http://pablotron.org/files/greasemonkey/reddit_filter-0.3.user.js">Reddit Content Filter 0.3</a> (<a href="http://pablotron.org/files/greasemonkey/reddit_filter-0.3.user.js.asc">Signature</a>)</li> +<li><a href="http://pablotron.org/files/greasemonkey/reddit_nak-0.2.user.js">Reddit Navigational Access Keys 0.2</a> (<a href="http://pablotron.org/files/greasemonkey/reddit_nak-0.2.user.js.asc">Signature</a>)</li> +</ul> + + diff --git a/content/posts/2007-10-17-easycookie-easy-javascript-cookie-management.html b/content/posts/2007-10-17-easycookie-easy-javascript-cookie-management.html new file mode 100644 index 0000000..1fcc015 --- /dev/null +++ b/content/posts/2007-10-17-easycookie-easy-javascript-cookie-management.html @@ -0,0 +1,83 @@ +--- +date: "2007-10-17T02:28:43Z" +title: 'EasyCookie: Easy Javascript Cookie Management' +--- + +<p>Ever tried to read and write cookies in Javascript? If you have, then +I'll wait until you've stopped frothing at the mouth and +pounding your keyboard.</p> + +<p>...</p> + +<p>Feeling better? Good. I just released the first public version of +<a href="http://pablotron.org/software/easy_cookie">EasyCookie</a>, a simple cookie library for Javascript. Using +EasyCookie is, well, easy. For example, here's how you get a cookie:</p> + +<pre><code>// get a cookie +val = EasyCookie.get('my_cookie'); +</code></pre> + +<p>And here's how you set one:</p> + +<pre><code>// set a cookie +val = 'a random value that i want to save as a cookie'; +EasyCookie.set('my_cookie', val); +</code></pre> + +<p>And, if you haven't already guessed, here's how your remove a cookie:</p> + +<pre><code>// remove a cookie +EasyCookie.remove('my_cookie'); +</code></pre> + +<p>But what about all the extra crap you usually have to fight to get +working, like the domain, path, and expiration? Don't panic! +<code>EasyCookie.set</code> takes a hash of additional attributes as an optional +third argument. Here's another example of <code>EasyCookie.set</code>, this time +with the optional hash:</p> + +<pre><code>// value to set +val = '99 bottles of beer on the wall, 99 bottles of beer!'; + +// set a cookie that expires in 10 days, and limit the scope to +// "https://foo.example.com/some/path" +EasyCookie.set('my_cookie', val, { + // expires in 10 days + expires: 10, + + // limit cookie to domain 'foo.example.com' + domain: 'foo.example.com', + + // limit cookie to path '/some/path' + path: '/some/path', + + // restrict cookie to secure pages only + secure: true +}); +</code></pre> + +<p>Checking to see if cookies are enabled just got a whole lot simpler, +too:</p> + +<pre><code>// are cookies enabled? +enabled = EasyCookie.enabled; + +// harass user with annoying dialog about their cookie status +alert('Cookies are ' + (enabled ? 'enabled' : 'not enabled')); +</code></pre> + +<p>Best of all, EasyCookie is <a href="http://opensource.org/licenses/bsd-license.php">BSD licensed</a>, and the <a href="http://crockford.com/javascript/jsmin.html">minified</a> +version weighs in at a measly 1873 bytes. Anyway, here ya go:</p> + +<ul> +<li><a href="http://pablotron.org/files/easy_cookie-0.2.1.tar.gz">EasyCookie 0.2.1 (tarball)</a> (<a href="http://pablotron.org/files/easy_cookie-0.2.1.tar.gz.asc">Signature</a>)</li> +<li><a href="http://hg.pablotron.org/easy_cookie">EasyCookie Mercurial Repository</a></li> +</ul> + +<p> + PS. Yes, I realize the link above are to version 0.2.1 of EasyCookie, + even though this is the first public release. In internet years the + backend to my page is older than your grandmother. Imagine trying to + explain how to release software to your grandmother. +</p> + diff --git a/content/posts/2007-10-17-welcome-to-the-next-generation.html b/content/posts/2007-10-17-welcome-to-the-next-generation.html new file mode 100644 index 0000000..e6c8bfc --- /dev/null +++ b/content/posts/2007-10-17-welcome-to-the-next-generation.html @@ -0,0 +1,18 @@ +--- +date: "2007-10-17T08:52:04Z" +title: WELCOME TO THE NEXT GENERATION +--- + +<p> +I got sick of the page being so slow, so I this morning I made some fairly destructive slash-and-burn style changes under the hood. Things should be mostly working again, with the following exceptions: +</p> + +<ul> +<li>Themes: They're busted until I get a chance to patch them up. I have no idea what will happen if you try and use them, but probably nothing good (for you, not me).</li> +<li>New Accounts: You can wait a day or so to harass me about my latest inflammatory post. Or send an email instead.</li> +<li>Screenshots: Yeah my desktop from 1998 has a lower resolution than your cell phone. So what?</li> +</ul> + +<p> +There may also be other stuff broken, too. I've tried to keep URLs for articles and whatnot the same, but your mileage mamy vary. Today is the first of several iterations away from the almost decade-old code this site is running. +</p> diff --git a/content/posts/2007-11-14-htpc-mayhem.html b/content/posts/2007-11-14-htpc-mayhem.html new file mode 100644 index 0000000..06e7000 --- /dev/null +++ b/content/posts/2007-11-14-htpc-mayhem.html @@ -0,0 +1,142 @@ +--- +date: "2007-11-14T03:33:06Z" +title: HTPC Mayhem! +--- + +<img src='http://pablotron.org/gallery/misc/antec_fusion-thumb.jpg' + width='200' height='105' align='right'/> + +<p>I've been planning to build an HTPC for quite a while now, and I'm +finally doing it. I got an <a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16811129030">Antec Fusion Black</a> case for my +birthday, and I went out and bought the rest of the parts yesterday +evening. Here's the hardware I'm using:</p> + +<ul> +<li>Case: <a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16811129030">Antec Fusion Black</a></li> +<li>CPU: AMD Athlon 64 X2 4000+ </li> +<li>Motherboard: Asus M2A-VM HDMI</li> +</ul> + +<p>The other pieces were all spare parts and aren't particularly +interesting. This post is about the Antec Fusion Black. Let's start +with the pros:</p> + +<ul> +<li>Built-in case fans are extremely quiet.</li> +<li>Enough room for a standard ATX power supply.</li> +<li>Same width and style as standard home theater gear.</li> +<li>Front-mounted USB, Firewire, and HD audio ports.</li> +<li>Built-in IR port.</li> +<li>Built-in programmable LCD.</li> +<li>Several in-case cable ties to keep things properly routed and +organized.</li> +</ul> + +<p>And the cons:</p> + +<ul> +<li>Three-compartment design makes running anything other than power and +SATA cables a bit of a hassle. It took a bit of magic to thread a +standard EIDE cable from the motherboard compartment to the DVD/LCD +compartment, for example. </li> +<li>The IR receiver is for MCE-compatible remotes only; it doesn't work +with standard universal remotes, so don't even bother.</li> +<li>Linux support sucks. I believe you can get everything working, but +doing so requires a bit of effort. See below for more information.</li> +<li>The included manual is horribly out of date and contains errors and +omissions. Your best bet is to use the manual as toilet paper and +download the PDF from <a href="http://www.antec.com/us/productDetails.php?ProdID=15739#">Antec's product page</a>, although that +manual is still dated. Both versions claim that the motherboard has a +3-pin power supply fan signal connector cable, and no such cable +exists in my case. There is also a mysterious two-pin purple and +black cable labeled "M/B PWR" that is not documented in either manual +(<a href="http://www.avsforum.com/avs-vb/showthread.php?t=878407&page=2">this thread on AVS Forums</a> explains what it's for).</li> +<li>Non-standard power connection for the LCD and IR receiver. This only +matters if you need to replace the power supply; see below.</li> +</ul> + +<p>Fortunately I've already decided to buy a Harmony remote, so the MCE +remote requirement is a minor inconvenience and an excuse to go buy a +new gadget.</p> + +<p>The most irritating problem so far is that the power supply fan is +extremely loud. I think my PSU is probably defective, because it +doesn't make any sense to design a sound-isolating case with extremely +quiet case fans and then put a power supply that sounds like an air raid +in there. Alternatively, the noise might be related to the non-existent +3-pin power supply fan signal connector cable mentioned above.</p> + +<p>Anyway, I don't really want to send the case back, so I ran to +Microcenter and picked up a new silent power supply. That's when I +noticed the non-standard cable that powers the LCD/IR receiver, and the +following blurb tucked away in the manual:</p> + +<blockquote> + <p>Note: If you choose to swap the included power supply with another + power supply, please call Antec Customer Service to purchase a special + 24-pin Extender with the 3-pin connector to power the display.</p> +</blockquote> + +<p>I've already ordered the adaptor from Antec's web site; I figure even if +I figure out how to quiet the existing power supply it's worth having so +I don't end up without the LCD and IR port if the power supply failure +in the future.</p> + +<p>Next up, Antec Fusion Linux support. The LCD is not officially +supported in Linux by Antec. The good news is that the LCD in the +Fusion V2/Black is better than the VFD display included in the original +V1 Antec Fusion case. Unfortunately it is much harder to find +documentation on the newer display. The newer display also requires a +couple of patches and some config file twiddling.</p> + +<p>Here's what you need to do, as of today:</p> + +<ul> +<li>Install <em>patched</em> versions of <a href="http://lirc.org">LIRC 0.8.2</a> and +<a href="http://lcdproc.org/">LCDproc 0.5.2</a>. You can get the patches from +<a href="http://codeka.com/blogs/index.php?cat=30">here</a>.</li> +<li>Follow the instructions exactly for patching and compiling LIRC +and LCDproc. </li> +<li>When you recompile LIRC, select <em>"Soundgraph iMON MultiMedian IR/VFD"</em>, +not "Soundgraph iMON PAD IR/VFD". </li> +<li><p>After you patch LCDproc, you need to do the following or LCDproc won't +pick up the changes from the patch:</p> + +<p><code><pre> + aclocal && automake && autoconf + ./configure --enable-drivers=imonlcd +</pre></code></p></li> +<li><p>Compile and install both LIRC and LCDproc.</p></li> +<li><p>Find the <code>[server]</code> section in <code>/etc/LCDd.conf</code> and add the following +lines:</p> + +<p><code><pre> + Driver=imonlcd + DriverPath=/usr/local/lib/lcdproc/ +</pre></code></p></li> +<li><p>Add this section to <code>/etc/LCDd.conf</code>:</p> + +<p><code><pre> + [imonlcd] + Device=/dev/lcd0 + Contrast=300 + # do NOT set the Size, if you do it won't work + #Size=16x2 +</pre></code></p></li> +<li><p>Make sure the LIRC modules are loaded: </p> + +<p><code><pre> + modprobe lirc_dev && modprobe lirc_imon +</pre></code></p></li> +<li><p>Start up <code>lircd</code> and <code>LCDd</code>, and things should be working.</p></li> +</ul> + +<p>If you're using <code>2.6.23.1</code> or newer the patches above will not work; +you'll need <a href="http://codeka.com/forums/viewtopic.php?f=3&t=14&sid=dfba9b5872d57bbe1602ed1c8b229afb">these updated patches against the CVS version of LIRC</a>. +You'll still need to follow all the steps above, even with the updated +patches.</p> + +<p>That's all for tonight. It looks like configuring the motherboard in +will be a battle too; I'll have more details as events warrant.</p> + + diff --git a/content/posts/2007-11-25-htpc-shot.html b/content/posts/2007-11-25-htpc-shot.html new file mode 100644 index 0000000..56aa3d8 --- /dev/null +++ b/content/posts/2007-11-25-htpc-shot.html @@ -0,0 +1,6 @@ +--- +date: "2007-11-25T20:16:44Z" +title: HTPC Shot +--- + +<p>I got the LCD power adapter, power supply, and new CPU fan for my HTPC. Here's a picture of it in my entertainment center:</p><p><a href='http://pablotron.org/gallery/misc/htpc-20071122.jpg'><img src='http://pablotron.org/gallery/misc/htpc-20071122-thumb.jpg' width='640' height='480' style='border: 1px solid black' title='htpc in entertainment center' alt='htpc in entertainment center' /></a></p><p>(And yes, I know my carpet needs to be vacuumed).</p> diff --git a/content/posts/2007-12-04-reddit-content-filter-0-4.html b/content/posts/2007-12-04-reddit-content-filter-0-4.html new file mode 100644 index 0000000..67fccb9 --- /dev/null +++ b/content/posts/2007-12-04-reddit-content-filter-0-4.html @@ -0,0 +1,22 @@ +--- +date: "2007-12-04T01:44:40Z" +title: Reddit Content Filter 0.4 +--- + +<p>Works with the latest changes to <a href='http://reddit.com/'>Reddit</a>.</p> + +<ul> +<li><a href='http://userscripts.org/scripts/review/8751'>Download Reddit Content Filter 0.4</a> (<a href='http://pablotron.org/files/greasemonkey/reddit_filter-0.4.user.js.asc'>Signature</a>)</li> +</ul> + +<p> +Local copy: +</p> + +<ul> +<li><a href='http://pablotron.org/files/greasemonkey/reddit_filter-0.4.user.js'>Download Reddit Content Filter 0.4</a> (<a href='http://pablotron.org/files/greasemonkey/reddit_filter-0.4.user.js.asc'>Signature</a>)</li> +</ul> + +<p> +There was a suggestion in the <a href='http://userscripts.org/'>comments on User Scripts</a> about auto-downmodding blocked articles. I kind of like the idea. Does anyone have any opinions on that? Comments are broken at the moment, but feel free to email me. +</p> diff --git a/content/posts/2008-02-05-as-if-things-weren-t-broken-enough-around-here.html b/content/posts/2008-02-05-as-if-things-weren-t-broken-enough-around-here.html new file mode 100644 index 0000000..804dc30 --- /dev/null +++ b/content/posts/2008-02-05-as-if-things-weren-t-broken-enough-around-here.html @@ -0,0 +1,12 @@ +--- +date: "2008-02-05T04:47:12Z" +title: '...as if things weren''t broken enough around here' +--- + +<p> +Hello from the new server! +</p> + +<p> +I managed to glom things together just enough to get the bit-rot that is this site's code running on the new server. All the usual caveats about brokenness apply. +</p> diff --git a/content/posts/2008-02-16-custom-firmware-on-the-psp.html b/content/posts/2008-02-16-custom-firmware-on-the-psp.html new file mode 100644 index 0000000..d9fd3da --- /dev/null +++ b/content/posts/2008-02-16-custom-firmware-on-the-psp.html @@ -0,0 +1,171 @@ +--- +date: "2008-02-16T15:37:32Z" +title: Custom Firmware on the PSP +--- + +<p>Last night I installed a custom firmware (CFW) on my <a href="http://en.wikipedia.org/wiki/PlayStation_Portable">PSP</a>. The +custom firmwares allow you to run unsigned homebrew (e.g. non-Sony +sanctioned) applications. </p> + +<h2>Applications</h2> + +<p>The PSP homebrew community has been pretty active; there are several +useful applications and emulators for lots of older systems. There are +even emulators for obscure systems like the <a href="http://en.wikipedia.org/wiki/ColecoVision">ColecoVision</a> and +<a href="http://en.wikipedia.org/wiki/Neo_Geo_%28console%29">Neo Geo</a>. </p> + +<p>Here's what works for me so far, in no particular order:</p> + +<ul> +<li><a href="http://en.wikipedia.org/wiki/Vnc">VNC</a> client</li> +<li><a href="http://en.wikipedia.org/wiki/Ssh">SSH</a> client</li> +<li><a href="http://en.wikipedia.org/wiki/Neo_Geo_%28console%29">Super Nintendo (SNES)</a> emulator </li> +<li><a href="http://en.wikipedia.org/wiki/Game_Boy_Color">Game Boy Color</a> emulator</li> +<li><a href="http://en.wikipedia.org/wiki/DOS">MS-DOS</a> emulator</li> +<li><a href="http://en.wikipedia.org/wiki/J2me">J2ME/MIDP</a> emulator (e.g Mobile Java, or the crappy games on +your cell phone)</li> +</ul> + +<p>I also tried the <a href="http://en.wikipedia.org/wiki/Sega_genesis">Genesis</a>, <a href="http://en.wikipedia.org/wiki/Nintendo_Entertainment_System">NES</a>, and <a href="http://en.wikipedia.org/wiki/N64">N64</a> emulators, but they +aren't working yet. Here's a picture of the SNES emulator at work:</p> + +<table> +<tr><td> + <a href='http://pablotron.org/files/20080216-psp_cfw/snes.jpg'><img + src='http://pablotron.org/files/20080216-psp_cfw/snes-thumb.jpg' + title="Playing SNES on a PSP" alt="Playing SNES on a PSP" + width="642" height="482" border="0" /></a> +</td></tr> +<tr><td style='text-align: center; font-size: 9pt'> + Playing SNES on a PSP +</td></tr> +</table> + +<p>The custom firmware also allows you to dump <a href="http://en.wikipedia.org/wiki/Universal_Media_Disc">UMDs</a> and run them +from a memory stick. Since it's pretty much impossible to fit a PSP and +8 UMDs in the your pockets without looking like a complete tool, I'm +going to offload as many UMDs as I can into the 3GB remaining on my +memory stick.</p> + +<p>The next section explains the firmware installation process. If you +don't have a PSP, you may still find my creatively ominous safety +warnings entertaining.</p> + +<h2>Installation</h2> + +<p>Installing the custom firmware varies in complexity depending on the +model of PSP model and version of the original firmware. If you're +fortunate enough to have an older "phat" PSP (e.g. the larger black +model) that's running firmware 1.00 or 1.50, then installing the custom +firmware is fairly straightforward. </p> + +<p>If you know someone with a PSP who already has the custom firmware +installed, then the installation process is still easy enough, because +they can use their PSP to help you with yours. </p> + +<p>If you've got a newer PSP Slim (the smaller white model, like the one in +the picture above) and/or are running a newer firmware, then there are +no easy options left, so get ready for the comically unpleasant +experience below.</p> + +<p>In order to install the custom firmware, you'll need a spare battery and +a spare memory stick. For the love of Douglas Adams, <b>please do not +use this post as a guide!</b> There are several web sites +(<a href="http://forums.somethingawful.com/showthread.php?threadid=2665424&userid=0&perpage=40&pagenumber=1">here</a> and <a href="http://forums.qj.net/f-psp-homebrew-and-hacks-help-21/t-guide-unbrick-a-psp-slim-or-classic-122651.html">here</a>) that cover the entire installation +process in far more detail and with the appropriate safety precautions. +<b>If you mess this up you will turn your PSP into a lifeless and +possibly explosive plastic brick</b>.</p> + +<p>The basic, high-level steps are as follows:</p> + +<ol> +<li>Create a <a href="http://en.wikipedia.org/wiki/PlayStation_Portable_homebrew#Pandora.27s_Battery">Pandora's battery</a>. This is a battery that +has been modified to make the PSP into boot from the memory stick.</li> +<li>Create a <a href="http://en.wikipedia.org/wiki/PlayStation_Portable_homebrew#Pandora.27s_Battery">Magic Memory Stick</a>. This is a memory +stick that has been specially formatted to boot and perform a +firmware upgrade. Note that there are some limits on the capacity +and brand of memory stick that can be used; see the guides above for +more details.</li> +<li>With the PSP powered off and the battery removed, insert the +magic memory stick into the PSP.</li> +<li>Insert the Pandora's battery. The PSP will power on automatically +boot from the magic memory stick.</li> +<li>Use the software on the magic memory stick to install the custom +firmware. On the PSP Slim the display is blank, so you just have to +hit X and wait. The lights on the front of the PSP will blink for +several minutes. The PSP will automatically power off when the +installation is finished.</li> +<li>Remove the Pandora's battery and the magic memory stick. The +memory stick can be reformatted and used as usual. The Pandora's +battery can not, because some of the battery's safety features are +disabled as part of the conversion process. In other words, <b>do +not attempt to use the Pandora's battery as a regular battery unless +you want your PSP to melt into a smoldering puddle of goo.</b></li> +<li>Power on the PSP using a regular battery or the power cable. +Congratulations, you are now running the custom firmware.</li> +</ol> + +<p>The hardest part of this process is creating the Pandora's battery. If +you know someone with a PSP that already has the custom firmware +installed, then they can run an application on their PSP to temporarily +"soft-mod" a regular battery into Pandora's battery. </p> + +<p>If you don't know anyone with a PSP that already has the custom firmware +installed, then the only way to convert a regular battery into a +Pandora's battery is to "hard-mod" it; that means cutting open the +battery casing and disconnecting one of the leads on the internal +circuitry. </p> + +<p>The guides I read (see above) have plenty of pictures, but I was still +surprised by how small the pieces actually were. Here's a picture I +just took of my Pandora's battery, including a ruler and quarter as +size references:</p> + +<table> +<tr><td> + <a href='http://pablotron.org/files/20080216-psp_cfw/battery.jpg'><img + src='http://pablotron.org/files/20080216-psp_cfw/battery-thumb.jpg' + title="Inside a Pandora's Battery" alt="Inside a Pandora's Battery" + width="642" height="482" border="0" /></a> +</td></tr> +<tr><td style='text-align: center; font-size: 9pt'> + Inside a Pandora's Battery +</td></tr> +</table> + +<p>Creating a Magic Memory Stick is much simpler. Basically you:</p> + +<ul> +<li>format the memory stick in a special way (using <code>mspformat</code>)</li> +<li>copy the necessary firmware installation and upgrade files into place</li> +<li>generates an Initial Program Load (IPL) file, </li> +<li>copy the generated IPL file to the first sector of the memory stick +(using <code>mspinst</code>)</li> +</ul> + +<p>If you're using Windows, the "TotalNewbi Installer" and +"Pandora Easy GUI" tools can automate this process. In +theory, anyway. When I tried to use them in my Windows XP <a href="http://vmware.com/">VMWare</a> +instance, they both had problems. The TotalNewbi Installer simply +refused to work, and the Pandora Easy GUI blue-screened XP each +time I ran it.</p> + +<p>Here's what finally worked:</p> + +<ul> +<li>used Pandora Easy GUI to copy the firmware files into place and +generate the installer definition file (<code>mspinst.idl</code>)</li> +<li>used <code>dd</code> in Linux to copy <code>mspinst.ibl</code> into the first sector of the +Memory Stick</li> +</ul> + +<p>The good news is that creating the Pandora's Battery and Magic +Memory Stick are the hardest steps in the process. Once you get past +them, everything else is relatively straightforward. Even better, the +process can be used to install custom firmware on any PSP, regardless of +hardware model or firmware version.</p> + +<p>That's it for me. If you're interested in the history and technical +details of PSP homebrew, check out <a href="http://en.wikipedia.org/wiki/PlayStation_Portable_homebrew">this extremely detailed PSP +homebrew Wikipedia entry</a>.</p> + diff --git a/content/posts/2008-05-14-easingjs-a-javascript-easing-library.html b/content/posts/2008-05-14-easingjs-a-javascript-easing-library.html new file mode 100644 index 0000000..5492ae4 --- /dev/null +++ b/content/posts/2008-05-14-easingjs-a-javascript-easing-library.html @@ -0,0 +1,16 @@ +--- +date: "2008-05-14T22:25:49Z" +title: EasingJS, a JavaScript Easing Library +--- + +<p> +I just released <a href='http://pablotron.org/software/easing-js/'>EasingJS</a> 0.1.1, a port <a href='http://robertpenner.com/easing/'>Robert Penner's ActionScript Easing</a> library to JavaScript. EasingJS allows you to easily generate smooth and stylish animation or color transitions. For some examples, check out the <a href='http://pablotron.org/software/easing-js/test/'>test page</a>. +</p> + +<p> +<ul> +<li><a href='http://pablotron.org/files/easing-js-0.1.1.tar.gz'>Download EasingJS 0.1.0 Tarball</a> +(<a href='http://pablotron.org/files/easing-js-0.1.1.tar.gz.asc'>Signature</a>)</li> +<li><a href='http://pablotron.org/software/easing-js/test/'>EasingJS Test Page</a></li> +</ul> +</p> diff --git a/content/posts/2008-05-15-don-t-use-extjs.html b/content/posts/2008-05-15-don-t-use-extjs.html new file mode 100644 index 0000000..80ad15f --- /dev/null +++ b/content/posts/2008-05-15-don-t-use-extjs.html @@ -0,0 +1,408 @@ +--- +date: "2008-05-15T07:26:16Z" +title: Don't Use ExtJS +--- + +<p><style type='text/css'> + blockquote.quote { + font-family: arial, verdana, helvetica, sans-serif; + border-left: 2px solid #09d; + padding: 10px; + background-color: #efefef; + } +</style> +A couple of years ago I <a href="http://pablotron.org/?cid=1512">recommended</a> <a href="http://developer.yahoo.com/yui/">YUI</a> and <a href="http://extjs.com/">Ext</a> (formerly +YUI-Ext). I've changed my mind. Don't use Ext at all. The Ext license +has changed four times since its inception, and each time the license +has become more restrictive. </p> + +<h2>History</h2> + +<p>Ext was originally created as an extension to YUI. It was +<a href="http://www.opensource.org/licenses/bsd-license.php">BSD</a>-licensed, just like YUI. YUI-Ext added several sorely-needed +features to YUI. The most notable additions were a layout system, a +<a href="http://en.wikipedia.org/wiki/Tree_view">Tree View</a> widget and a <a href="http://en.wikipedia.org/wiki/Grid_view">Data Grid</a> widget (YUI has since added +each of these, although the YUI widgets are still less flexible than +their Ext counterparts). Eventually support was added for <a href="http://jquery.com/">jQuery</a> +and <a href="http://www.prototypejs.org/">Prototype</a> as well. The team dropped the "YUI-" prefix, and +YUI-Ext became Ext. </p> + +<p>Ext 1.0 was relicensed under the <a href="http://www.opensource.org/licenses/lgpl-2.1.php">LGPL</a>. Although switching from the +BSD license to the LGPL is relatively innocuous, it is still significant +because the LGPL is more restrictive than the BSD license. </p> + +<p>Eventually the Ext team changed the license again. The new license was +a custom license that granted conditional LGPL <em>usage</em> rights. Basically +the LGPL usage clauses applied, but only if you weren't trying to +develop a library or an Ext clone. </p> + +<p>Confused? Yeah, me too. Here's the text from the old Ext "Open Source +License":</p> + +<blockquote class="quote"> + Ext is also licensed under the terms of the Open Source LGPL 3.0 license. You + may use our open source license if you: + <ul> + <li>Want to use Ext in an open source project that precludes using non-open source software</li> + <li>Plan to use Ext in a personal, educational or non-profit manner</li> + <li>Are using Ext in a commercial application that is not a software + development library or toolkit, you will meet LGPL requirements and you do not + wish to support the project</li> + </ul> +</blockquote> + +<p>A lot of open source developers were <a href="http://en.wikipedia.org/wiki/Talk:Ext_(javascript_library)">understandably confused</a> +by this hybrid license. The biggest problem was that it wasn't clear +whether this license was compatible with other Open Source licenses. It +also wasn't clear whether Ext could be legally distributed with Open +Source software, since the license only granted LGPL <em>usage</em> rights, and +not LGPL <em>distribution</em> rights.</p> + +<p>To address these complaints, the Ext team changed the license again: +the latest version of Ext is licensed under the <a href="http://en.wikipedia.org/wiki/GNU_General_Public_License">GPLv3</a>. This latest +change complicates things quite a bit for many users, as we'll see in +the next section.</p> + +<h2>Problems</h2> + +<p>The GPL is far more restrictive than the BSD license and LGPL. It is +rarely used for libraries, because the viral clause would effectively +the library from being used for any non-GPL software. In fact, these +problem were <a href="http://en.wikipedia.org/wiki/GNU_General_Public_License#Version_2" title="GPLv2 and the LGPLv2.">addressed over 16 years ago</a> by creating the LGPL:</p> + +<blockquote class="quote"> + By 1990, it was becoming apparent that a less restrictive license + would be strategically useful for some software libraries; when + version 2 of the GPL (GPLv2) was released in June 1991, therefore, a + second license - the Library General Public License (LGPL) was + introduced at the same time and numbered with version 2 to show that + both were complementary. The version numbers diverged in 1999 when + version 2.1 of the LGPL was released, which renamed it the GNU Lesser + General Public License to reflect its place in the GNU philosophy. +</blockquote> + +<p>Who is affected by this change? In no particular order:</p> + +<ul> +<li>Extension Authors: Older Ext user extensions could be licensed as +the author saw fit. This is no longer true for the latest version +of Ext; new user extensions must be GPL-licensed, because the viral +clause prohibits using Ext with non-GPL licenses.</li> +<li>Commercial Users: The previous licenses, even the questionable +custom license, allowed Ext to be used in closed source commercial +applications. This is no longer true for the latest version of Ext, +because the viral clause prohibits using Ext with non-GPL commercial +licenses.</li> +<li>Non-GPL Open Source Developers: The BSD and LGPL-licensed versions +of Ext could be used with other non-GPL software. This is no longer +true for the latest version of Ext, because the viral clause +prohibits using Ext with non-GPL licenses.</li> +</ul> + +<p>Things get even murkier when you consider linking and distribution. +Does generating a dynamic page count as linking to Ext? Does any public +web application automatically count as distribution? What about +applications which use Ext to and access a common APi, such as a SOAP +endpoint or RSS feed?</p> + +<p>These questions were posted in a +<a href="http://extjs.com/forum/showthread.php?t=33096">thread about the license change on the ExtJS forums</a>.<br/> +Here's how <a href="http://jackslocum.com/blog/">Jack Slocum</a>, the primary Ext developer, <a href="http://extjs.com/forum/showthread.php?p=156236#post156236">responded</a>:</p> + +<blockquote class="quote"> + <p> + If you are generating any markup or javascript code via the server in a + page SPECIFICALLY designed for Ext, then that server code will have to + be GPL as well. + </p> + + <p> + For example: + </p> + + <ul> + <li> + Suppose you have an index.php that includes Ext JS. According to the + FSF, in that case index.php would be also under GPL since it is using + ext. Since it must be GPL, it's source must be distributed. Since it + is GPL, the "viral" effect of GPL is now in effect and any thing that + uses index.php (if anything) on the serverside would also fall under + the GPL. (Note: Note this is a pretty gray area) + </li> + + <li> + Suppose you are using server-side code to generate javascript that + interacts with Ext JS. That code must also be GPL. + </li> + </ul> + + <p> + Like MySql and other GPL software the way to use GPL code without + having to license under GPL is to not bundle or distribute the GPL + code with your application. If you instead have the end user + (developer?) download and install ext js on their own, they are then + bound to the license and not you or your software. + </p> + + <p> + For those seeking an FAQ, we have defined and explained some of the + reasoning and license implications under these 2 pages: + </p> + + <p> + <a href='http://extjs.com/products/license.php'>http://extjs.com/products/license.php</a> + </p> + + <p> + <a href='http://extjs.com/company/dual.php'>http://extjs.com/company/dual.php</a> + </p> + + <p> + It's worth noting that the examples given at the beginning of this + post are just my opinion and it is impossible for us to analyze + everyone's usage and say whether or not someone "complies" with the + GPL. That really is a task for an attorney or even someone with + better knowledge of your application and how Ext JS is used. + </p> + + <p> + In the end, we want Ext JS to be open source friendly and still have + a good business model in place to grow. The old Ext License was not + open source friendly and pretty much killed all options for use in + open source projects. That wasn't our goal so we had to address it. + </p> +</blockquote> + +<p>There are several problems with the statements above. The biggest one +is that the original BSD license and subsequent LGPL license had none of +this ambiguity. </p> + +<p>In other words, the problem the Ext team is trying to fix is one they +created themselves. If that wasn't bad enough, the solution actually +hurts many Open Source developers far more than it helps.</p> + +<p>In an attempt to clarify the situation for non-GPL Open Source +developers, I posted several questions in the Ext license thread. I +also created a post on <a href="http://reddit.com/">Reddit</a> about the license change and +summarized my questions there:</p> + +<blockquote class="quote"> + <p> + As of page 8 of the thread on the license change I have yet to receive a + response, simple or otherwise, to any of my comments: + </p> + + <p> + There's <a href='http://extjs.com/forum/showthread.php?p=156337#post156337'>this comment</a>: + </p> + + <blockquote class="quote"> + The new license prevents Open Source software that is using a + license other than the GPL from using Ext. Applications which use + popular Open Source licenses like the LGPL license, BSD license, MIT + license, and the Artistic license would be required to either + re-license under the GPL, carefully design their application to meet + the requirements in your post, use an older LGPL-licensed version of + Ext, or move to another library entirely. + </blockquote> + + <p> + And <a href='http://extjs.com/forum/showthread.php?p=156356#post156356'>this one</a>: + </p> + + <blockquote class="quote"> + What about authors who which to provide their software under a + license that is more permissive than the GPL, such as the MIT or BSD + licenses? + </blockquote> + + <p> + And <a href='http://extjs.com/forum/showthread.php?p=156382#post156382'>this + one</a>, which was directly in response to Jack Slocum, the primary + author of ExtJS: + </p> + + <blockquote class="quote"> + <p> + Hi Jack, + </p> + + <p> + I can see how switching to a license without exceptions would make + things simpler, but what about those of us who release Open Source + software under non-GPL licenses such as the BSD, MIT, and Artistic + licenses? + </p> + </blockquote> + + <p> + I've been an Ext user since its inception as YUI-Ext, but the fact that + I cannot seem to get a straight answer to a simple question makes me + wary and extremely skeptical. + </p> +</blockquote> + +<p><a href="http://ejohn.org/">John Resig</a>, the author of <a href="http://jquery.com/">jQuery</a> and <a href="http://ejohn.org/blog/processingjs/">Processing.js</a>, +responded:</p> + +<blockquote class="quote"> + It's important to understand that OSS developers are not their target + audience at all. I'm 100% certain that we'll never get a clear + response. They're using 'open source' as a buzzword selling point to + lure companies in, befuddle them with confusing viral licensing, and + obligate them (through the obvious balking that the corporate lawyers + will do) to get them to buy a full, corporate, license. It's very + sneaky, quite disingenuous, and paints a bad picture for open source + development as a whole. +</blockquote> + +<p>It's been over three weeks since these this exchange on Reddit. None of +my questions have been answered on the Ext license pages or in the +68-page license thread on the Ext forums.</p> + +<h2>Rationale</h2> + +<p>According to the <a href="http://extjs.com/company/dual.php">Ext license page</a>, Ext licensing is based on the +principle of "Quid Pro Quo", or "something for something":</p> + +<blockquote class="quote"> + <p> + Dual Licensing is based on the principle of Quid Pro Quo - + "something for something". In return for the advantages you realize + from using an Ext product to create your application, we require + that you do one of the following: + </p> + + <ul> + <li> + Contribute to the continued development of the product by + purchasing commercial licenses from Ext. This option secures you + the right to distribute your application under the license terms + of your choice + </li> + + <li> + Contribute to the Open Source community by placing your + application under an Open Source license (e.g. GPL v3). This + option secures all users the rights to obtain the application's + full source code, modify it, and redistribute it. + </li> + </ul> +</blockquote> + +<p>The justification for using the GPLv3 instead of the LGPL is addressed +on the <a href="http://extjs.com/products/license-faq.php">Ext license FAQ page</a>:</p> + +<blockquote class="quote"> + We considered once again releasing under straight LGPL but it was not + an option as a business. We tried that with version 1.0 and found out + quickly that it enabled others (e.g. large commercial entities) to + take our work, wrap it up and sell it as their own. With no mention of + us at all. We, as a business with a full time team of talented + developers, can not exist under those circumstances. We would quickly + become diluted and competing with ourselves. +</blockquote> + +<p>The concern about others taking their work and selling it without +attribution is particularly ironic, considering:</p> + +<ul> +<li>Ext only exists because a large corporation (Yahoo!) decided to +share their hard work under a permissive open source license </li> +<li>Significant portions of Ext, including the Event +handling code and reset.css, were copied wholesale from YUI</li> +<li>The Ext object system comes from YUI, which is based on +<a href="http://dean.edwards.name/weblog/2006/03/base/">Dean Edwards' JavaScript inheritance code</a></li> +<li>Many of the older Ext icons originally came from the +<a href="http://www.famfamfam.com/lab/icons/silk/">Famfamfam Silk icon set</a></li> +</ul> + +<p>What do the projects above have in common? That's right, they are all +in the public domain or available under extremely permissive Open Source +licenses. </p> + +<p>The Ext team is certainly entitled to license and sell their software +any way they see fit. However, it is hypocritical and dishonest to +complain about other people taking your work and selling it as their own +when you take other peoples' work and either sell it as your own or +relicense it under an extremely restrictive license.</p> + +<p>It is tempting to attribute this entire fiasco to a simple +misunderstanding on the part of Jack Slocum and the Ext team. Here's +what I had to say on Reddit:</p> + +<blockquote class="quote"> + It is a bit disconcerting that Ext has such strong roots in existing + Open Source software, and yet the project seems at best partially + indifferent, and at worst, outright hostile to the Open Source + community. +</blockquote> + +<p>Unfortunately, according to John Resig, this isn't the first time that +there have been problems with the Ext team:</p> + +<blockquote class="quote"> + <p> + We (the jQuery project) worked hard with them to try and fix bugs + and add features for an ExtJS integration layer. They turned around + and built their own, specialized, library (removing the need for any + of our work) and then mutated the licensing into this bizzaro scheme + that they have now. We can't, in good consciousness, even recommend + their library anymore due to its very nature. On top of this they + ended up hiring our lead evangelist to promote their work. I can't + speak for everyone on the team but I feel quite frustrated and used. + </p> + + <p> + They're providing a great disservice to the Open Source community in + general. They consume with reckless abandon, it's impossible to even + hope to borrow code from them, and they turn it all into a + money-making machine. No aspect of that sits well with me. + </p> +</blockquote> + +<p>Jack Slocum did <a href="http://stephan.reposita.org/archives/2008/04/28/more-on-extjs-the-gpl-fiasco-and-open-source-community-style/">respond to this comment on a separate blog</a>. He also +<a href="http://jackslocum.com/blog/2008/04/26/ext-js-license-change-and-personal-attacks/">wrote a post on his blog</a>. Neither adequately addresses John +Ressig's main points or my questions from the Ext forums, so I won't +bother quoting his mostly vacuous responses here.</p> + +<h2>Conclusion</h2> + +<p>To recap, the reasons I recommend against using Ext are:</p> + +<ul> +<li>A trend towards more restrictive licenses</li> +<li>Team is unwilling or unable to address licensing issues</li> +<li>Blatant disregard for other Open Source projects</li> +</ul> + +<p>Some suggestions for the Ext team:</p> + +<ul> +<li>Release Ext under the LGPLv3, BSD license, or GPLv3 with the +<a href="http://www.gnu.org/licenses/gpl-faq.html#WMS">special provision</a> </li> +<li>Provide the Ext artwork and CSS under one of the licenses above, +or one of the <a href="http://en.wikipedia.org/wiki/Creative_Commons_licenses">Creative Commons attribution licenses</a></li> +<li>Update the Ext license FAQ with detailed information about +which Open Source licenses are compatible with Ext, including +specific usage scenarios</li> +<li>Add a list of Open Source software which Ext has borrowed from to +the license page and to the license information included in +the download</li> +<li>Put older versions of Ext back on the download page</li> +</ul> + +<p>Finally, here are a list of Ext alternatives. None are as nice as Ext, +but they are all available under permissive licenses and they each have +an active and enthusiastic user community:</p> + +<ul> +<li><a href="http://dojotoolkit.org/projects/dijit">Dojo/Dijit</a> (BSD license)</li> +<li><a href="http://echo.nextapp.com/site/echo2">Echo2</a> (MPL license)</li> +<li><a href="http://docs.jquery.com/UI">jQuery/jQuery UI</a> (BSD license)</li> +<li><a href="http://developer.yahoo.com/yui/">YUI</a> (BSD license)</li> +</ul> + +<p>Comments are still broken at the moment. I've posted this article on +<a href="http://reddit.com/">Reddit</a>, so feel free to <a href="http://reddit.com/info/6jhhs/comments/">comment there</a>.</p> + diff --git a/content/posts/2008-05-22-persistjs-cross-browser-client-side-persistent-storage-without-cookies.html b/content/posts/2008-05-22-persistjs-cross-browser-client-side-persistent-storage-without-cookies.html new file mode 100644 index 0000000..d866170 --- /dev/null +++ b/content/posts/2008-05-22-persistjs-cross-browser-client-side-persistent-storage-without-cookies.html @@ -0,0 +1,177 @@ +--- +date: "2008-05-22T07:19:49Z" +title: 'PersistJS: Cross Browser Client-Side Persistent Storage Without Cookies' +--- + +<p>I just released <a href="http://pablotron.org/software/persist-js/">PersistJS</a>, a client-side JavaScript persistent storage +library. Features include:</p> + +<ul> +<li>Small (9.3k minified, 3k gzipped)</li> +<li>Standalone: Does not need any additional browser plugins or +JavaScript libraries to work on the vast majority of current +browsers.</li> +<li>Consistent: Provides a consistent, opaque API, regardless of +the browser.</li> +<li>Extensible: Custom backends can be added easily.</li> +<li>Backwards Compatible: Can fall back to flash or cookies if no +client-side storage solution for the given browser is available.</li> +<li>Forwards Compatible: Supports the upcoming versions of Internet +Explorer, Firefox, and Safari (Opera too, if you have Flash).</li> +<li>Unobtrusive: Capability testing rather than browser detection, so +newer standards-compliant browsers will automatically be supported.</li> +</ul> + +<p>If you already know why this is awesome, then you can skip +<a href="http://pablotron.org/files/persist-js-0.1.0.tar.gz">straight to the download</a>. If you're scratching your head, +then read on...</p> + +<h2>Why This is Awesome</h2> + +<p>Why use PersistJS? What's the problem with using cookies directly or +simply requiring Flash?</p> + +<p>Currently the only reliable cross-platform and cross-browser mechanism +for storing data on the client side are cookies. Unfortunately, using +cookies to store persistent data has several problems:</p> + +<ul> +<li>Size: Cookies are limited to about 4 kilobytes in size.</li> +<li>Bandwidth: Cookies are sent along with every HTTP transaction.</li> +<li>Complexity: Cookies are difficult to manipulate correctly.</li> +</ul> + +<p>Modern web browsers have addressed these issues by adding non-Cookie +mechanisms for saving client-side persistent data. Each of these +solutions are simpler to use than cookies, can store far more data, and +are not transmitted along with HTTP requests. Unfortunately, each +browser has addressed the problem in a different and incompatible way. +There are currently 4 different client side persistent data solutions:</p> + +<ul> +<li>globalStorage: Firefox 2.0+, Internet Explorer 8</li> +<li>localStorage: development WebKit</li> +<li>openDatabase: Safari 3.1+</li> +<li>userdata behavior: Internet Explorer 5.5+</li> +</ul> + +<p>Some developers have attempted to address the client side storage +issue with the following browser plugins:</p> + +<ul> +<li>Adobe Flash</li> +<li>Google Gears</li> +</ul> + +<p>The problem with relying on plugins, of course, is that users without +the plugin installed miss out on the feature in question, and your +application is dependent on software from a particular vendor. Google +Gears, for example, is not widely deployed. Flash is, but it has +problems of its own:</p> + +<ul> +<li>Many users block Flash or require a click in order to enable +flash content; this makes Flash unsuitable as a transparent, +client-side data store.</li> +<li>Flash is notoriously unreliable on newer 64-bit machines.</li> +<li>Some businesses block Flash content as a security measure.</li> +</ul> + +<p>Anyway, if we include Gears and Flash, that means there are no less than +6 incompatible solutions for storing client-side persistent data. </p> + +<p>The most notable attempt at addressing this problem is probably <a href="http://dojotoolkit.org/offline">Dojo +Storage</a>. Unfortunately, Dojo Storage does not support Internet Explorer +without Flash, and it does not support Safari or other WebKit-based +browsers at all (at least, not without Flash). Also, Dojo Storage is +not standalone; it requires a several other Dojo components in order to +operate.</p> + +<p>PersistJS addresses all of the issues above. It currently supports +persistent client-side storage through the following backends:</p> + +<ul> +<li>flash: Flash 8 persistent storage.</li> +<li>gears: Google Gears-based persistent storage.</li> +<li>localstorage: HTML5 draft storage.</li> +<li>whatwg_db: HTML5 draft database storage.</li> +<li>globalstorage: HTML5 draft storage (old spec).</li> +<li>ie: Internet Explorer userdata behaviors.</li> +<li>cookie: Cookie-based persistent storage.</li> +</ul> + +<p>Each backend exploses the exact same interface, which means you don't +have to know or care which backend is being used.</p> + +<h2>Examples</h2> + +<p>Here are some simple examples of PersistJS in use:</p> + +<pre class="code"><code>// create a new client-side persistent data store +var store = new Persist.Store('My Data Store'); + +// pretend data +var data = "pretend this is really long data that won't fit in a cookie"; + +// save data in store +store.set('saved_data', data); +</code></pre> + +<p>That's all there is to creating a persistent store and adding some data +to it. Fetching data back from the store uses a callback function (to +support asyncronous backends), but it's still pretty simple to use:</p> + +<pre class="code"><code>// get data back from store, and prompt user with it +store.get('saved_data', function(ok, val) { + if (ok) + alert('saved data = ' + val); +}); +</code></pre> + +<p>Removing data is pretty easy too:</p> + +<pre class="code"><code>// remove data from store +store.remove('saved_data'); +</code></pre> + +<p>Although it isn't necessary, you can also get some information about the +detected backend using the <code>Persist.type</code> and <code>Persist.size</code> attributes:</p> + +<pre class="code"><code>// build alert message +var info = [ + 'Backend: ', + Persist.type || 'none', + ', ', + 'Approximate Size Limit: ', + (Persist.size < 0) ? 'unknown' : Persist.size +].join(''); + +// prompt user with information +alert(info); +</code></pre> + +<p>Finally, if you don't want a particular backend used under any +circumstances, you can disable it using the <code>Persist.remove()</code> function:</p> + +<pre class="code"><code>// never use cookies for persistent storage +Persist.remove('cookie'); +</code></pre> + +<h2>Download</h2> + +<p>This is the initial release, so there are bound to be some bugs. +PersistJS has been tested with FireFox 2.0, FireFox 3.0rc1, IE7, and +Safari 3.1. The Gears and Flash backends work where Gears and Flash 8 +are supported. </p> + +<p>The most notable omission here is IE6; it <em>should</em> work, but I don't +have IE6 handy at the moment (<a href="http://tredosoft.com/Multiple_IE">MultipleIEs</a> is temporarily busted).</p> + +<ul> +<li><a href="http://pablotron.org/files/persist-js-0.1.0.tar.gz">Download PersistJS 0.1.0 Tarball</a> (<a href="http://pablotron.org/files/persist-js-0.1.0.tar.gz.asc">Signature</a>)</li> +<li><a href="http://hg.pablotron.org/persist-js">PersistJS Mercurial Repository</a></li> +</ul> + +<p>Commenting is still busted around here, so any comments should sent via +email or posted on <a href="http://reddit.com/info/6kd4i/comments/">the Reddit thread</a>.</p> + diff --git a/content/posts/2009-02-22-gratuitous-hardware-imagery-new-firewall-and-fille-server.html b/content/posts/2009-02-22-gratuitous-hardware-imagery-new-firewall-and-fille-server.html new file mode 100644 index 0000000..7f389ad --- /dev/null +++ b/content/posts/2009-02-22-gratuitous-hardware-imagery-new-firewall-and-fille-server.html @@ -0,0 +1,21 @@ +--- +date: "2009-02-22T05:57:19Z" +title: 'Gratuitous Hardware Imagery: New Firewall and Fille Server' +--- + +<p>I put together a new firewall and a new file server. The firewall is an +<a href="http://www.pcengines.ch/alix2d3.htm">ALIX 2d3</a> -- a tiny, low-power x86 SBC with onboard 3xLAN. The +whole thing runs on 7-20V. Also, there's no heat sink ahe disk is +compact flash, which means no moving parts!</p> + +<p>The other machine is a new file server. It's replacing three older +machines and a half-dozen <a href="http://linux-vserver.org/">Vservers</a>. The hardware isn't as exotic as +the ALIX, but I do have some pictures:</p> + +<p><a href='http://paulduncan.org/files/20090131-raid/1024/dsc01088.jpg'><img src='http://paulduncan.org/files/20090131-raid/320/dsc01088.jpg'/></a> +<a href='http://paulduncan.org/files/20090131-raid/1024/dsc01091.jpg'><img src='http://paulduncan.org/files/20090131-raid/320/dsc01091.jpg'/></a> +<a href='http://paulduncan.org/files/20090131-raid/1024/dsc01092.jpg'><img src='http://paulduncan.org/files/20090131-raid/320/dsc01092.jpg'/></a> +<a href='http://paulduncan.org/files/20090131-raid/1024/dsc01094.jpg'><img src='http://paulduncan.org/files/20090131-raid/320/dsc01094.jpg'/></a> +<a href='http://paulduncan.org/files/20090131-raid/1024/dsc01096.jpg'><img src='http://paulduncan.org/files/20090131-raid/320/dsc01096.jpg'/></a> +<a href='http://paulduncan.org/files/20090131-raid/1024/dsc01098.jpg'><img src='http://paulduncan.org/files/20090131-raid/320/dsc01098.jpg'/></a></p> + diff --git a/content/posts/2009-02-22-i-have-a-twitter-account.html b/content/posts/2009-02-22-i-have-a-twitter-account.html new file mode 100644 index 0000000..bb24a86 --- /dev/null +++ b/content/posts/2009-02-22-i-have-a-twitter-account.html @@ -0,0 +1,14 @@ +--- +date: "2009-02-22T06:27:29Z" +title: I Have a Twitter Account +--- + +<p>Despite my better judgement I now have a <a href="http://twitter.com/">Twitter</a> account. You can +follow my wacky hijinks at <a href="http://twitter.com/pablotron">http://twitter.com/pablotron</a>.</p> + +<p>I've also written a basic Jabber/Twitter relay called <a href="http://pablotron.org/software/joggle/">Joggle</a>. I'm +hoping to release it later this week. If you'd like to try Joggle now, +you can grab it from the <a href="http://hg.pablotron.org/joggle">mercurial repository</a> (you'll need +<a href="http://ruby-lang.org/">Ruby</a>, a spare <a href="http://jabber.org/">Jabber</a> account, and a few minutes to glance over the +<a href="http://hg.pablotron.org/joggle/raw-file/tip/README">README file</a>).</p> + diff --git a/content/posts/2009-02-22-techmeme-author-filter-0-2-greasemonkey-magic.html b/content/posts/2009-02-22-techmeme-author-filter-0-2-greasemonkey-magic.html new file mode 100644 index 0000000..d004658 --- /dev/null +++ b/content/posts/2009-02-22-techmeme-author-filter-0-2-greasemonkey-magic.html @@ -0,0 +1,17 @@ +--- +date: "2009-02-22T05:26:35Z" +title: Techmeme Author Filter 0.2 (Greasemonkey Magic) +--- + +<p>I don't read Techmeme and you shouldn't either. But if you do, then +this <a href="http://en.wikipedia.org/wiki/Greasemonkey">Greasemonkey</a> script for <a href="http://getclicky.com/">Sean</a> might come in handy:</p> + +<ul> +<li><a href="http://pablotron.org/files/greasemonkey/techmeme-author-filter-0.2.user.js">Techmeme Author Filter 0.2</a></li> +<li><a href="http://hg.pablotron.org/techmeme-author-filter">Techmeme Author Filter Mercurial Repository</a></li> +</ul> + +<p>A brief <a href="http://hg.pablotron.org/techmeme-author-filter/raw-file/1db374252b4a/README">README file</a> is also available. Basically the script +allows you to hide articles by author. You can configure the filters +using the two buttons in the top-right corner of the page.</p> + diff --git a/content/posts/2009-02-22-zipstream-php-0-2-0-released.html b/content/posts/2009-02-22-zipstream-php-0-2-0-released.html new file mode 100644 index 0000000..0f69597 --- /dev/null +++ b/content/posts/2009-02-22-zipstream-php-0-2-0-released.html @@ -0,0 +1,24 @@ +--- +date: "2009-02-22T04:57:58Z" +title: ZipStream-PHP 0.2.0 Released +--- + +<p>Version 0.2.0 of <a href="http://pablotron.org/software/zipstream-php/">ZipStream-PHP</a> is out. The two changes are:</p> + +<ul> +<li>Generated archives work with the Windows XP "compressed folder" feature.</li> +<li>Dropped support for PHP 4.</li> +</ul> + +<p>Here are the relevant links:</p> + +<ul> +<li><a href="http://pablotron.org/files/zipstream-php-0.2.0.tar.gz">Download ZipStream-PHP 0.2.0 Tarball</a> (<a href="http://pablotron.org/files/zipstream-php-0.2.0.tar.gz.asc">Signature</a>)</li> +<li><a href="http://redmine.pablotron.org/projects/show/zipstream-php">ZipStream-PHP Bug Tracker</a></li> +<li><a href="http://hg.pablotron.org/zipstream-php">ZipStream-PHP Mercurial Repository</a></li> +</ul> + +<p>As you can see from the link above, I'm using <a href="http://redmine.org/">Redmine</a> for bug and +feature tracking. I've been using it for several months and it's +fantastic.</p> + diff --git a/content/posts/2009-03-09-zipstream-php-0-2-1-released.html b/content/posts/2009-03-09-zipstream-php-0-2-1-released.html new file mode 100644 index 0000000..fa894e0 --- /dev/null +++ b/content/posts/2009-03-09-zipstream-php-0-2-1-released.html @@ -0,0 +1,20 @@ +--- +date: "2009-03-09T22:43:02Z" +title: ZipStream-PHP 0.2.1 Released +--- + +<p>Version 0.2.1 of <a href="http://pablotron.org/software/zipstream-php/">ZipStream-PHP</a> is out. There is one change:</p> + +<ul> +<li>Generate correct "version needed to extract" header. This fixes +extraction problems with WinZip 9.0.</li> +</ul> + +<p>Here are the relevant links:</p> + +<ul> +<li><a href="http://pablotron.org/files/zipstream-php-0.2.1.tar.gz">Download ZipStream-PHP 0.2.1</a> (<a href="http://pablotron.org/files/zipstream-php-0.2.1.tar.gz.asc">Signature</a>)</li> +<li><a href="http://redmine.pablotron.org/projects/show/zipstream-php">ZipStream-PHP Bug Tracker</a></li> +<li><a href="http://hg.pablotron.org/zipstream-php">ZipStream-PHP Mercurial Repository</a></li> +</ul> + diff --git a/content/posts/2009-03-14-joggle-0-1-0-released-jabber-to-twitter-relay.html b/content/posts/2009-03-14-joggle-0-1-0-released-jabber-to-twitter-relay.html new file mode 100644 index 0000000..4be3442 --- /dev/null +++ b/content/posts/2009-03-14-joggle-0-1-0-released-jabber-to-twitter-relay.html @@ -0,0 +1,56 @@ +--- +date: "2009-03-14T20:05:38Z" +title: 'Joggle 0.1.0 Released: Jabber to Twitter Relay' +--- + +<p>I just released <a href="http://pablotron.org/software/joggle/">Joggle</a> version 0.1.0. Joggle is a Jabber to +<a href="http://twitter.com/">Twitter</a> relay; tweets show up as instant messages, and instant +messages are posted as tweets. </p> + +<p>Setting up Joggle is easy; all you need is Ruby, five minutes, and a +spare Jabber account:</p> + +<pre><code># install joggle, create joggle directory +sudo gem install joggle +mkdir ~/.joggle + +# create joggle config file +# (replace joggle@example.com and abc123 with your spare jabber +# account and password, respectively) +echo -e "jabber.user joggle@example.com\njabber.pass abc123" > ~/.joggle/joggle.cfg + +# run joggle in the background +joggle --daemon --config ~/.joggle/joggle.cfg +</code></pre> + +<p>Next, add the specified Jabber account (<code>joggle@example.com</code>, in the +example above) to the buddy list in your Jabber client.</p> + +<p>Finally, register your twitter username and password with Joggle by +sending an instant message like this: <code>.register TWITTER_USER TWITTER_PASS</code> +(replace <code>TWITTER_USER</code> and <code>TWITTER_PASS</code> with your Twitter username +and password).</p> + +<p>You can also share your Joggle installation with your friends; have them +add the Jabber account to their buddy list and send a <code>.register</code> +command.</p> + +<p>See the <a href="http://pablotron.org/files/joggle/README-0.1.0.txt">README</a> file for detailed installation instructions and a +full list of configuration options.</p> + +<p>Files:</p> + +<ul> +<li><a href="http://pablotron.org/software/joggle/">Joggle Project Page</a></li> +<li><a href="http://pablotron.org/files/joggle/joggle-0.1.0.tar.gz">Joggle 0.1.0 Tarball</a> (<a href="http://pablotron.org/files/joggle/joggle-0.1.0.tar.gz.asc">Signature</a>)</li> +<li><a href="http://pablotron.org/files/gems/joggle-0.1.0.gem">Joggle 0.1.0 Gem</a> (<a href="http://pablotron.org/files/gems/joggle-0.1.0.gem.asc">Signature</a>)</li> +<li><a href="http://redmine.pablotron.org/projects/show/joggle">Joggle Bug Tracker</a></li> +<li><a href="http://hg.pablotron.org/joggle">Joggle Mercurial Repository</a></li> +</ul> + +<p> +<b>Update:</b> Comments for this site are still broken, but I've +cross-posted this release announcement on Reddit, so feel free to +<a href='http://www.reddit.com/r/programming/comments/84q0w/joggle_jabber_to_twitter_relay/'>post a comment over there</a>. +</p> + diff --git a/content/posts/2009-04-15-talk-to-your-kids-about-yaml-or-their-friends-will.html b/content/posts/2009-04-15-talk-to-your-kids-about-yaml-or-their-friends-will.html new file mode 100644 index 0000000..6542789 --- /dev/null +++ b/content/posts/2009-04-15-talk-to-your-kids-about-yaml-or-their-friends-will.html @@ -0,0 +1,13 @@ +--- +date: "2009-04-15T16:38:00Z" +title: Talk to Your Kids About YAML or Their Friends Will +--- + +<p><a href="http://eng.genius.com/blog/2009/04/15/yaml-gotchas/">This article</a> nicely illustrates my beef with <a href="http://yaml.org/">YAML</a>; +namely, the YAML grammar is far too complicated. Complexity in data +serialization and exchange formats should be avoided, because it +virtually guarantees subtle interoperability problems. </p> + +<p>If you need to exchange structured data in a language-agnostic format, +do me a favor and use <a href="http://json.org/">JSON</a> instead.</p> + diff --git a/content/posts/2009-05-05-reddit-content-filter-0-5.html b/content/posts/2009-05-05-reddit-content-filter-0-5.html new file mode 100644 index 0000000..75acabc --- /dev/null +++ b/content/posts/2009-05-05-reddit-content-filter-0-5.html @@ -0,0 +1,31 @@ +--- +date: "2009-05-05T04:30:55Z" +title: Reddit Content Filter 0.5 +--- + +<p>I've just released Reddit Content Filter version 0.5. Reddit +Content Filter is a <a href="http://greasespot.net/">Greasemonkey</a> scripts that allows you to filter +unwanted articles on Reddit by author, domain, or title. </p> + +<p>This release has been updated to work with the new Reddit layout. I've +also improved the interface; there is now a row of buttons across the +top-right corner of the screen that allow you to reconfigure filters and +toggle the visibility of hidden articles without reloading the page.</p> + +<p><a href="http://userscripts.org/">User Scripts</a> seems to have hosed my existing account, so for now +you can install the script from the link below:</p> + +<ul> +<li><a href="http://hg.pablotron.org/reddit-content-filter/raw-file/0.5/reddit-content-filter.user.js">Install Reddit Content Filter 0.5 (direct link)</a></li> +<li><a href="http://hg.pablotron.org/reddit-content-filter/">Mercurial Repository</a></li> +</ul> + +<p><b>Update:</b> I've cross-posted this release note over on Reddit. Feel free to <a +href='http://www.reddit.com/r/programming/comments/8hxxe/reddit_content_filter_05_greasemonkey_script_to/'>comment +over there</a>. +</p> + +<p><b>Update 2:</b> Now available <a +href='http://userscripts.org/scripts/show/8751'>on User Scripts +too</a>.</p> + diff --git a/content/posts/2009-05-30-joggle-0-1-1-released.html b/content/posts/2009-05-30-joggle-0-1-1-released.html new file mode 100644 index 0000000..dd75f61 --- /dev/null +++ b/content/posts/2009-05-30-joggle-0-1-1-released.html @@ -0,0 +1,24 @@ +--- +date: "2009-05-30T08:01:48Z" +title: Joggle 0.1.1 Released +--- + +<p> +<a href='http://pablotron.org/software/joggle/'>Joggle</a> version 0.1.1 is out. Joggle is a Jabber instant messenger to <a href='http://twitter.com/'>Twitter</a> relay; instant messages are sent as tweets, and tweets are sent as instant messages. +</p> + +<p> +This release fixes a small bug with the <code>--daemon</code> option when the controlling terminal is closed, and removes the advertising clause from the license. +</p> + +<p> +Joggle is available via RubyGems (<code>gem install joggle</code>) or you can download it directly from the URLs below. +</p> + +<ul> +<li><a href='http://pablotron.org/files/joggle-0.1.1.tar.gz'>Download Joggle 0.1.1 Tarball</a> (<a href='http://pablotron.org/files/joggle-0.1.1.tar.gz.asc'>Signature</a>)</li> +<li><a href='http://pablotron.org/files/gems/joggle-0.1.1.gem'>Download Joggle 0.1.1 Gem</a> (<a href='http://pablotron.org/files/gems/joggle-0.1.1.gem.asc'>Signature</a>)</li> +<li><a href='http://redmine.pablotron.org/projects/show/joggle'>Joggle Bug Tracker</a></li> +<li><a href='http://hg.pablotron.org/joggle'>Joggle Mercurial Repository</a></li> +</ul> + diff --git a/content/posts/2009-05-30-time-to-upgrade.html b/content/posts/2009-05-30-time-to-upgrade.html new file mode 100644 index 0000000..5032c99 --- /dev/null +++ b/content/posts/2009-05-30-time-to-upgrade.html @@ -0,0 +1,12 @@ +--- +date: "2009-05-30T06:24:50Z" +title: Time to Upgrade... +--- + +<p> +I just spent 30 minutes sifting through the code for this site to fix logins. They've been broken for months, and I'm using a new laptop without my old session cookie. +</p> + +<p> +30 minutes to post a damn two paragraph article. Maybe redoing the site will be my weekend project. +</p> diff --git a/content/posts/2009-05-30-wirble-0-1-3-released.html b/content/posts/2009-05-30-wirble-0-1-3-released.html new file mode 100644 index 0000000..f4fb3e0 --- /dev/null +++ b/content/posts/2009-05-30-wirble-0-1-3-released.html @@ -0,0 +1,21 @@ +--- +date: "2009-05-30T07:06:23Z" +title: Wirble 0.1.3 Released +--- + +<p> +I just released version 0.1.3 of <a href='http://pablotron.org/software/wirble/'>Wirble</a>. Wirble is a set of enhancements for Irb (the interactive Ruby shell), including tab-completion, history, and, most notably, colorized results. +</p> + +<p> +This release adds Ruby 1.9 support and removes a couple of warnings. I've also added better support for non-RubyGems installations (via <code>setup.rb</code>) and removed the advertising clause from the license. +</p> + +<p>You can install Wirble via RubyGems or download it directly from one of the URLs below. Enjoy...</p> + +<ul> +<li><a href='http://pablotron.org/files/wirble-0.1.3.tar.gz'>Download Wirble 0.1.3 Tarball</a> (<a href='http://pablotron.org/files/wirble-0.1.3.tar.gz.asc'>Signature</a>)</li> +<li><a href='http://pablotron.org/files/gems/wirble-0.1.3.gem'>Download Wirble 0.1.3 Gem</a> (<a href='http://pablotron.org/files/gems/wirble-0.1.3.gem.asc'>Signature</a>)</li> +<li><a href='http://redmine.pablotron.org/projects/show/wirble'>Wirble Bug Tracker</a></li> +<li><a href='http://hg.pablotron.org/wirble'>Wirble Mercurial Repository</a></li> +</ul> diff --git a/content/posts/2009-05-30-zipstream-php-0-2-2-released.html b/content/posts/2009-05-30-zipstream-php-0-2-2-released.html new file mode 100644 index 0000000..9ddee8e --- /dev/null +++ b/content/posts/2009-05-30-zipstream-php-0-2-2-released.html @@ -0,0 +1,18 @@ +--- +date: "2009-05-30T07:25:41Z" +title: ZipStream-PHP 0.2.2 Released +--- + +<p> +I just released version 0.2.2 of <a href='http://pablotron.org/software/zipstream-php/'>ZipStream-PHP</a>. ZipStream-PHP is a library that allows you to generate and stream zip files on the fly without writing an intermediate temporary file to the disk. It works with existing files and dynamically generated content, and has been used to dynamically generate zip files hundreds of megabytes in size. +</p> + +<p> +This release of ZipStream-PHP updates the license to remove the advertising clause and fixes a few errors in the documentation. There are no code changes; if you're happy with 0.2.1 there is no immediate reason to upgrade. +</p> + +<ul> +<li><a href='http://pablotron.org/files/zipstream-php-0.2.2.tar.gz'>Download ZipStream-PHP 0.2.2 Tarball</a> (<a href='http://pablotron.org/files/zipstream-php-0.2.2.tar.gz.asc'>Signature</a>)</li> +<li><a href='http://redmine.pablotron.org/projects/show/zipstream-php'>ZipStream-PHP Bug Tracker</a></li> +<li><a href='http://hg.pablotron.org/zipstream-php'>ZipStream-PHP Mercurial Repository</a></li> +</ul> diff --git a/content/posts/2009-06-25-don-t-truncate-your-rss-feed.html b/content/posts/2009-06-25-don-t-truncate-your-rss-feed.html new file mode 100644 index 0000000..0ab4c00 --- /dev/null +++ b/content/posts/2009-06-25-don-t-truncate-your-rss-feed.html @@ -0,0 +1,8 @@ +--- +date: "2009-06-25T01:50:33Z" +title: Don't Truncate Your RSS Feed +--- + +<p> +Truncate articles in RSS feeds are incredibly anno... +</p> diff --git a/content/posts/2019-02-12-hiatus-interrupted.md b/content/posts/2019-02-12-hiatus-interrupted.md new file mode 100644 index 0000000..f388ada --- /dev/null +++ b/content/posts/2019-02-12-hiatus-interrupted.md @@ -0,0 +1,13 @@ +--- +date: "2019-02-12T11:18:00Z" +title: Hiatus Interrupted +--- +I think 10 years is enough of a break. + +I've switched the site from my own hand-rolled monstrosity to [Jekyll][] +on the backend and [Bulma][] on the frontend. + +Please excuse the cobwebs for the next few weeks... + +[Jekyll]: https://jekyllrb.com "Jekyll static site generator." +[Bulma]: https://bulma.io "Bulma CSS framework." diff --git a/content/posts/2019-04-03-model-3.md b/content/posts/2019-04-03-model-3.md new file mode 100644 index 0000000..6eea2f1 --- /dev/null +++ b/content/posts/2019-04-03-model-3.md @@ -0,0 +1,19 @@ +--- +date: "2019-04-03T19:32:07Z" +title: Model 3 +--- + +Took delivery on my [Tesla Model 3 (LR AWD)][model3] one week ago today. + +<a href='https://pablotron.org/files/model3/IMG_20190327_164624.jpg' title='My Tesla Model 3 (LR AWD)'><img src='https://pablotron.org/files/model3/IMG_20190327_164624-800.jpg' + width='800' + height='600' + title='My Tesla Model 3 (LR AWD).' + alt='My Tesla Model 3 (LR AWD).' +/></a> + +So far it's great! + +I've been taking notes on everything, and I will share them eventually. + +[model3]: https://tesla.com/model3 "Tesla Model 3" diff --git a/content/posts/2019-04-04-password-strength-tester.md b/content/posts/2019-04-04-password-strength-tester.md new file mode 100644 index 0000000..e9b13ec --- /dev/null +++ b/content/posts/2019-04-04-password-strength-tester.md @@ -0,0 +1,36 @@ +--- +date: "2019-04-04T07:34:45Z" +title: Password Strength Tester +--- + +This weekend I put together a simple password strength tester. You can +try it out [here][link]. + +Features: + +* Simple interface. +* Open source ([MIT licensed][mit]). +* Easy to inspect. The interface code is contained in a single, + <300 line JavaScript file. +* Self-contained. No external connections for assets, social media + sites, analytics, etc. +* Can be run offline (no internet connection) or locally (by downloading + an archive of the [the Git repository][repo]). + +Built with: + +* [zxcvbn][]: JavaScript password strength estimator. +* [Bulma][]: Open source CSS framework. +* [font-awesome][]: Open source font icons. + +Links: + +* [Password Strength][link] +* [Source][repo] + +[link]: https://pmdn.org/password-strength "Password strength tester" +[mit]: https://opensource.org/licenses/MIT "MIT license" +[zxcvbn]: https://github.com/dropbox/zxcvbn "Password strength estimator" +[bulma]: https://bulma.io/ "Open source CSS framework" +[font-awesome]: https://fontawesome.io/ "Open source font icons" +[repo]: https://github.com/pablotron/password-strength "Git repository for Password Strength" diff --git a/content/posts/2019-04-06-make-kvm-docker-and-tensorflow-play-nice.md b/content/posts/2019-04-06-make-kvm-docker-and-tensorflow-play-nice.md new file mode 100644 index 0000000..f2cfcd7 --- /dev/null +++ b/content/posts/2019-04-06-make-kvm-docker-and-tensorflow-play-nice.md @@ -0,0 +1,65 @@ +--- +date: "2019-04-06T08:02:42Z" +title: Make KVM, Docker, and TensorFlow Play Nice +--- + +Notes on getting [KVM][], [Docker][], and [TensorFlow][] to cooperate. + +By default, a [KVM][] VM does not have the necessary CPU flags set to +run the [TensorFlow Docker image][tensorflow-docker]. In particular, the +[TensorFlow Docker image][tensorflow-docker] is compiled with support +[AVX][]. + +The solution: +* Use `virsh capabilities` on the host to get a list of host CPU + capabilities, then +* Use `virsh edit` to manually add the necessary CPU flags as + `<feature>` tags under the `<cpu>` tag. + +I elected to add all of the [SIMD][] capabilities, including [FP16][]. + +For an [AMD Threadripper 1950X][cpu], the resulting `<cpu>` tag +looks like this: + +```xml +<cpu mode='host-model'> + <model fallback='allow'/> + <feature policy='require' name='sse4.1'/> + <feature policy='require' name='sse4.2'/> + <feature policy='require' name='avx'/> + <feature policy='require' name='f16c'/> + <feature policy='require' name='avx2'/> + <feature policy='require' name='ssse3'/> +</cpu> +``` + +Test run: + +``` +pabs@hive:~> time docker run --rm -it tensorflow/tensorflow:latest-py3 \ + python3 -c "import tensorflow as tf; tf.enable_eager_execution(); + print(tf.reduce_sum(tf.random_normal([1000, 1000])))" +2019-04-06 12:25:16.576095: I tensorflow/core/platform/cpu_feature_guard.cc:141] + Your CPU supports instructions that this TensorFlow binary was not compiled to + use: AVX2 FMA +2019-04-06 12:25:16.627588: I tensorflow/core/platform/profile_utils/cpu_utils.c +c:94] CPU Frequency: 3393620000 Hz +2019-04-06 12:25:16.629909: I tensorflow/compiler/xla/service/service.cc:150] XL +A service 0x395bf00 executing computations on platform Host. Devices: +2019-04-06 12:25:16.629968: I tensorflow/compiler/xla/service/service.cc:158] +StreamExecutor device (0): <undefined>, <undefined> +tf.Tensor(-95.5094, shape=(), dtype=float32) + +real 0m1.780s +user 0m0.024s +sys 0m0.012s +``` + +[kvm]: https://www.linux-kvm.org/ "Linux Kernel Virtual Machine" +[docker]: https://www.docker.com/ "Docker" +[tensorflow]: https://www.tenssorflow.org/ "TensorFlow machine learning framework" +[tensorflow-docker]: https://hub.docker.com/r/tensorflow/tensorflow/ "TensorFlow Docker image" +[avx]: https://en.wikipedia.org/wiki/Advanced_Vector_Extensions "Advanced Vector Extensions (AVX)" +[cpu]: https://www.amd.com/en/products/cpu/amd-ryzen-threadripper-1950x "AMD Ryzen ThreadRipper 1950x" +[simd]: https://en.wikipedia.org/wiki/SIMD "Single Instruction, Multiple Data" +[fp16]: https://en.wikipedia.org/wiki/Half-precision_floating-point_format "Half precision floating point" diff --git a/content/posts/2019-04-06-tensorflow-on-a-raspberry-pi-zero-w-is-a-bad-idea.md b/content/posts/2019-04-06-tensorflow-on-a-raspberry-pi-zero-w-is-a-bad-idea.md new file mode 100644 index 0000000..14cba0f --- /dev/null +++ b/content/posts/2019-04-06-tensorflow-on-a-raspberry-pi-zero-w-is-a-bad-idea.md @@ -0,0 +1,105 @@ +--- +date: "2019-04-06T10:22:40Z" +title: TensorFlow on a Raspberry Pi Zero is a Bad Idea +--- + +A recent question from the [Something Awful Forums][saf]: + + Can I run TensorFlow on a Raspberry Pi Zero? + +The answer? You can, but it's a bad idea. + +The [Raspberry Pi Zero][pizerow] is a single core [ARMv6][], with no +[NEON][]. Which means it's slow: + +| System | Package | Install Time | Test Time | +| ------ | ------- | ------------:| ----------:| +| [Raspberry Pi Zero W][pizerow] | [Virtualenv/Pip][tf-pip] | >1 hour | 40 seconds | +| [Raspberry Pi 3 Model B+][pi3bp] | [Virtualenv/Pip][tf-pip] | 10 minutes | 10 seconds | +| [AMD ThreadRipper 1950X][cpu] ([KVM][] VM, 8 cores) | [Docker image][tf-img] | **2 minutes** | **1.8 seconds** | + +**Details** + +Below are the steps I took to install [TensorFlow][] on a +[Raspberry Pi Zero W][pizerow]. Note: you **have** to use +[Virtualenv][] to install [TensorFlow][] in [Raspbian][]. If you try +to install [TensorFlow][] directly with [Pip][], the installation will +bomb out with an error. + +Raspberry Pi Installation Steps: +``` +# install system pip, numpy dependencies, and virtualenv +sudo apt-get install python3-pip python3-dev libatlas-base-dev virtualenv + +# at this point i tried to install tensorflow directly via pip, which does NOT work +# sudo pip3 install --upgrade tensorflow + +# created virtualenv environment instead +virtualenv --system-site-packages -p python3 ./venv + +# activate virtual environment "venv" +# note: after this command your shell prompt will be prefixed with "(venv) " +source ./venv/bin/activate + +# install tensorflow (i also installed keras here, because I use it for other stuff) +# note: this step takes a comically long time (>1 hour) +pip install tensorflow keras +``` + +Test Results ([Raspberry Pi Zero W][pizerow]): + +``` +(venv) pabs@zero:~> time python -c "import tensorflow as tf; + tf.enable_eager_execution(); + print(tf.reduce_sum(tf.random_normal([1000, 1000])))" +... +tf.Tensor(1533.9042, shape=(), dtype=float32) + +real 0m40.802s +user 0m38.283s +sys 0m1.150s +``` + +Test Results ([Raspberry Pi 3 Model B+][pi3bp]): + +``` +(venv) pabs@peach:~> time python -c "import tensorflow as tf; + tf.enable_eager_execution(); + print(tf.reduce_sum(tf.random_normal([1000, 1000])))" +... +tf.Tensor(800.62, shape=(), dtype=float32) + +real 0m9.408s +user 0m9.227s +sys 0m0.360s +``` + +Test Results ([AMD ThreadRipper 1950X][cpu], 8 core [KVM][] VM, [Docker image][tf-img]): + +``` +pabs@hive:~> time docker run --rm -it tensorflow/tensorflow:latest-py3 python3 -c \ + "import tensorflow as tf; tf.enable_eager_execution(); + print(tf.reduce_sum(tf.random_normal([1000, 1000])))" +... +tf.Tensor(-173.73222, shape=(), dtype=float32) + +real 0m1.745s +user 0m0.032s +sys 0m0.016s +``` + +[pip]: https://pip.pypa.io/en/stable/installing/ "Python package manager" +[virtualenv]: https://virtualenv.pypa.io/en/stable/ "Tool to create isolated Python environments" +[pizerow]: https://www.raspberrypi.org/products/raspberry-pi-zero-w/ "Raspberry Pi Zero W" +[pi3bp]: https://www.raspberrypi.org/products/raspberry-pi-3-model-b-plus/ "Raspberry Pi 3 Model B+" +[cpu]: https://www.amd.com/en/products/cpu/amd-ryzen-threadripper-1950x "AMD Ryzen ThreadRipper 1950x" +[saf]: https://forums.somethingawful.com/ "Something Awful Forums" +[kvm]: https://www.linux-kvm.org/ "Linux Kernel Virtual Machine" +[docker]: https://www.docker.com/ "Docker" +[tensorflow]: https://www.tenssorflow.org/ "TensorFlow machine learning framework" +[tf-img]: https://hub.docker.com/r/tensorflow/tensorflow/ "TensorFlow Docker image" +[tf-pip]: https://www.tensorflow.org/install/pip "Install TensorFlow using Virtualenv and Pip" +[simd]: https://en.wikipedia.org/wiki/SIMD "Single Instruction, Multiple Data" +[raspbian]: https://www.raspberrypi.org/downloads/raspbian/ "Raspbian" +[armv6]: https://en.wikipedia.org/wiki/ARM_architecture +[neon]: https://en.wikipedia.org/wiki/ARM_architecture#Advanced_SIMD_(NEON) "ARM SIMD instruction set" diff --git a/content/posts/2019-06-01-bev-ranges.md b/content/posts/2019-06-01-bev-ranges.md new file mode 100644 index 0000000..78aec32 --- /dev/null +++ b/content/posts/2019-06-01-bev-ranges.md @@ -0,0 +1,19 @@ +--- +date: "2019-06-01T04:41:00Z" +title: Current BEV Range +--- + +Range of [Battery Electric Vehicles (BEVs)][bev] currently available in +the US, according to data from [fueleconomy.gov][src]. + +<img src='https://pmdn.org/bev-range/chart.svg' width='100%' height='auto' title='BEV Range' alt='BEV Range'/> + +Links: +* [range-years-current.csv][data]: CSV of current BEV range data. +* [Github repository][repo]: Has the CSV above and the steps I took to create it. +* [Data source][src]: Zipped CSV on fueleconomy.gov (current as of 2019-05-25). + +[bev]: https://en.wikipedia.org/wiki/Battery_electric_vehicle "Battery Electric Vehicle (BEV)" +[src]: https://www.fueleconomy.gov/feg/download.shtml "Data source" +[data]: https://pmdn.org/bev-range/range-years-current.csv "Data from chart above as a CSV file." +[repo]: https://github.com/pablotron/bev-range "Github repository." diff --git a/content/posts/2019-08-25-blue-pill.md b/content/posts/2019-08-25-blue-pill.md new file mode 100644 index 0000000..9a63264 --- /dev/null +++ b/content/posts/2019-08-25-blue-pill.md @@ -0,0 +1,24 @@ +--- +date: "2019-08-25T12:40:00Z" +title: What to do with an STM32? +--- + +![stm32f103c8t6][img] + +Last week my bag of [generic STM32F103C8T6 "Blue Pill" boards][mcu] +arrived. + +So far I've flashed [Pill Duck][] and a couple of examples from +[Beginning STM32][book]. + +Now all I need are some project ideas. + +All I've come up with so far are another [Pocket Jim][] or another +[BME280][]-based temperature monitor. + + [img]: https://pmdn.org/stm32f103c8t6-800.jpg "STM32F103C8T6 (Blue Pill)." + [mcu]: https://en.wikipedia.org/wiki/STM32#STM32_F1 "STM32." + [pill duck]: https://github.com/satoshinm/pill_duck "Scriptable USB HID device for STM32F103 blue pill." + [book]: https://www.amazon.com/dp/B07DGGHZN6 "Beginning STM32: Developing with FreeRTOS, libopencm3 and GCC" + [pocket jim]: https://pmdn.org/pocket-jim/ "Leveraging Cross Platform Synergy" + [bme280]: https://www.mouser.com/ProductDetail/Bosch-Sensortec/BME280?qs=2OnyuXx6vpj2fK9HX7qb3g%3D%3D "BME280 Temperature, Humidity, and Pressure sensor." diff --git a/content/posts/2019-08-25-pi4-bench.md b/content/posts/2019-08-25-pi4-bench.md new file mode 100644 index 0000000..1c9dfb6 --- /dev/null +++ b/content/posts/2019-08-25-pi4-bench.md @@ -0,0 +1,35 @@ +--- +date: "2019-08-25T08:19:00Z" +title: Pi 4 Benchmarks +--- + +![world-renowned pablotron test facility][lab] + +A few weeks ago I picked up a 1GB [Raspberry Pi 4 Model B][pi4] and +decided to run some `openssl speed` benchmarks. + +Test systems: +* Raspberry Pi Zero W +* Raspberry Pi 3 Model B +* Raspberry Pi 3 Model B+ +* Raspberry Pi 4 Model B +* Linode VM (1 Core) +* Intel i7-8650U (Lenovo X1 Carbon, 6th Gen) +* AMD Ryzen Threadripper 1950X + +Test algorithms: +* `blake2b512` +* `blake2s256` +* `sha256` +* `sha512` +* `aes-128-cbc` +* `aes-192-cbc` +* `aes-256-cbc` + +Results are available [here][data]. The code used to run the tests and +generate the charts is [here][code]. + + [pi4]: https://www.raspberrypi.org/products/raspberry-pi-4-model-b/specifications/ "Raspberry Pi 4 Model B" + [data]: https://pmdn.org/pi4-bench/ "OpenSSL Speed Test Results" + [code]: https://github.com/pablotron/pi4-bench "Git repository containing code and data for Pi 4 OpenSSL Speed Test Results" + [lab]: https://pmdn.org/pi4-bench/lab-800.jpg "World-renowned pablotron test facility" diff --git a/content/posts/2019-08-25-releases.md b/content/posts/2019-08-25-releases.md new file mode 100644 index 0000000..00c7128 --- /dev/null +++ b/content/posts/2019-08-25-releases.md @@ -0,0 +1,25 @@ +--- +date: "2019-08-25T10:03:00Z" +title: 'Releases: Luigi Template 0.5.0, ZipStream-PHP 0.3.0, and Mathy' +--- + +Some stuff I released months ago but never posted: + +* [Luigi Template, version 0.5.0][luigi-template]: Simple multi-language + string templating library inspired by Unix pipes. Version 0.5.0 + includes better documentation, faster rendering, implementations for + [Java][], [JavaScript][], [PHP][], and [Ruby][]. +* [Mathy][]: Web-based LaTeX math renderer. +* [ZipStream-PHP, version 0.3.0][zipstream-php]: [PHP][] library that + allows you to dynamically generate streamed Zip archives. Version + 0.3.0 is a clean rewrite for [PHP 7][php]. It includes a test suite, + [Composer][] support, and API documentation. + + [luigi-template]: https://github.com/pablotron/luigi-template "Simple multi-language string templating library inspired by Unix pipes." + [zipstream-php]: https://github.com/pablotron/zipstream-php "PHP library to dynamically generate streamed Zip archives." + [mathy]: https://mathy.pmdn.org/ "Web based LaTeX math renderer." + [java]: https://en.wikipedia.org/wiki/Java_(programming_language) "Java programming language." + [javascript]: https://en.wikipedia.org/wiki/JavaScript "JavaScript programming language." + [php]: https://en.wikipedia.org/wiki/PHP "PHP programming language." + [ruby]: https://en.wikipedia.org/wiki/Ruby_(programming_language) "Ruby programming language." + [composer]: https://getcomposer.org/ "Dependency manager for PHP." diff --git a/content/posts/2019-08-25-sha2.md b/content/posts/2019-08-25-sha2.md new file mode 100644 index 0000000..fdeb6d4 --- /dev/null +++ b/content/posts/2019-08-25-sha2.md @@ -0,0 +1,49 @@ +--- +date: "2019-08-25T07:35:23Z" +title: Self-Contained C11 SHA-2 Implementation +--- + +Last month I wrote a [C11][] [SHA-2][] implementation. + +Features: +* Self-contained (no external dependencies) +* C11 only (platform-agnostic) +* MIT-licensed +* Includes [test vectors][] (via `make test`). + +The code is available [here][]. + +It includes implementations of the following: +* SHA-224 +* SHA-256 +* SHA-384 +* SHA-512 +* HMAC-SHA256 +* HMAC-SHA512 + +This implementation is faster than [coreutils][], but slower than the +[assembly-optimized, processor family-specific OpenSSL SHA-2 +implementation][openssl-asm-sha]: + +``` +> time -p ./sha256 ~/Videos/8x*avi > /dev/null +rleal 9.39 +user 9.10 +sys 0.29 +> time -p sha256sum ~/Videos/8x*avi > /dev/null +real 12.04 +user 11.73 +sys 0.31 +> time -p openssl sha256 ~/Videos/8x*avi > /dev/null +real 6.36 +user 6.01 +sys 0.32 +``` + + [sha-2]: https://en.wikipedia.org/wiki/SHA-2 "Secure Hash Algorithm 2" + [c11]: https://en.wikipedia.org/wiki/C11_(C_standard_revision) "C11 standard of the C programming language" + [coreutils]: https://www.gnu.org/software/coreutils/ "GNU core utilities" + [openssl-asm-sha]: https://github.com/openssl/openssl/tree/master/crypto/sha/asm "assembly-optimized OpenSSL SHA-2 implementation." + [here]: https://github.com/pablotron/sha2 "C11 SHA-2 implementation." + [test vectors]: https://www.di-mgt.com.au/sha_testvectors.html "SHA test vectors." + diff --git a/content/posts/2019-08-25-weather-sage.md b/content/posts/2019-08-25-weather-sage.md new file mode 100644 index 0000000..1153bd6 --- /dev/null +++ b/content/posts/2019-08-25-weather-sage.md @@ -0,0 +1,67 @@ +--- +date: "2019-08-25T22:00:00Z" +title: Weather Sage 0.1.2 Released +--- + +A couple days ago I released [Weather Sage][] 0.1.2. + +[Weather Sage][] is a command-line tool and [Ruby][] library to get the +weather forecast and current weather observations for a domestic United +States street address. + +It uses the [Census Bureau Geocoding API][census-api] to geocode street +addresses, and the [National Weather Service Weather API][weather-api] +to get weather forecasts and current weather observations. + +The command-line tool queries the [APIs][] above to obtain the requested +information for the given street address, and then prints the results to +standard output in [CSV][] format. + +Here's an example of using the `weather-sage` command-line tool to get +the weather forecast for the address `1600 pennsylvania ave nw, +washington dc`: + +``` +> weather-sage forecast '1600 pennsylvania ave nw washington dc' +address,name,temperature,temperature_unit,wind_speed,wind_direction,short_forecast +1600 pennsylvania ave washington dc,Today,97,F,7 mph,SW,Scattered Showers And Thunderstorms +1600 pennsylvania ave washington dc,Tonight,76,F,2 to 7 mph,SW,Scattered Showers And Thunderstorms then Mostly Cloudy +1600 pennsylvania ave washington dc,Tuesday,94,F,6 mph,E,Slight Chance Rain Showers then Chance Showers And Thunderstorms +1600 pennsylvania ave washington dc,Tuesday Night,75,F,2 to 6 mph,S,Chance Showers And Thunderstorms +1600 pennsylvania ave washington dc,Wednesday,94,F,3 to 9 mph,SW,Chance Showers And Thunderstorms +1600 pennsylvania ave washington dc,Wednesday Night,76,F,5 to 8 mph,SW,Chance Showers And Thunderstorms +... +``` + +And here's an example of using the `weather-sage` command-line tool to +get the current weather observations from the weather station closest to +the address `1600 pennsylvania ave nw, washington dc`: + +``` +> weather-sage now '1600 pennsylvania ave washington dc' +address,name,type,value,unit,quality_control +1600 pennsylvania ave washington dc,timestamp,time,2019-08-19T06:52:00+00:00 +1600 pennsylvania ave washington dc,textDescription,text,Mostly Cloudy +1600 pennsylvania ave washington dc,temperature,value,26.700000000000045,unit:degC,qc:V +1600 pennsylvania ave washington dc,relativeHumidity,value,81.65039907186703,unit:percent,qc:C +... +``` + +You can install [Weather Sage][] via [RubyGems][] like this: + +``` +# install weather-sage with rubygems +> gem install weather-sage +``` + +**Note:** This is the initial release, so the API documentation, test +suite, and command-line interface are not yet complete. + + [weather sage]: https://github.com/pablotron/weather-sage "Weather Sage" + [apis]: https://en.wikipedia.org/wiki/Application_programming_interface "Application Programming Interface" + [csv]: https://en.wikipedia.org/wiki/Comma-separated_values "Comma-separated Value format" + [ruby]: https://ruby-lang.org/ "Ruby programming language" + [rubygems]: https://rubygems.org/ "Ruby package manager" + [weather-api]: https://api.weather.gov/ "national Weather Service (NWS) Weather API" + [census-api]: https://geocoding.geo.census.gov/geocoder/ "Census Bureau Geocoding API" + diff --git a/content/posts/2020-03-28-covid19-us.md b/content/posts/2020-03-28-covid19-us.md new file mode 100644 index 0000000..2d4f398 --- /dev/null +++ b/content/posts/2020-03-28-covid19-us.md @@ -0,0 +1,13 @@ +--- +date: "2020-03-28T11:20:00Z" +title: COVID-19 in the United States +slug: "covid19-us" +--- + +I put together a tool to track [COVID-19][] in the US by state. + +It is available here: [COVID-19 US][]. + +[model3]: https://tesla.com/model3 "Tesla Model 3" +[COVID-19]: https://en.wikipedia.org/wiki/Coronavirus_disease_2019 "Coronavirus disease 2019" +[COVID-19 US]: https://pmdn.org/covid19-us/ "COVID-19 in the US" diff --git a/content/posts/foo.md b/content/posts/foo.md new file mode 100644 index 0000000..c6acc0b --- /dev/null +++ b/content/posts/foo.md @@ -0,0 +1,18 @@ +--- +title: "Foo" +date: "2021-10-09T13:47:18-04:00" +draft: true +--- + +# Foo + +## bar + +## baz + +[best site][pmdn] + +## blum + +[pmdn]: https://pmdn.org/ + "best site on the net" |