Evil Grannies with Rucksack Bombs on My Internet!

Martin Dittus · 2006-03-12 · a new world, drop culture, pop culture · write a comment

A couple of days ago while looking for some cheap entertainment I found a two-part Channel 4 series called "The Root of All Evil?", a documentary on religious extremism around the world. Usually those kind of documentaries are a pretty safe bet: you know the positions beforehand, sometimes you even learn a bit, and they don't annoy you like bad movies do. Perfect bedtime entertainment.

Boy was I in for a surprise.

Because they fed me what I least expected: Atheist propaganda.

Yeah I too thought that this was a contradiction in terms. Now I know better.

dawkins.jpg

"Why should scientists tip-tope respectfully away? the time has come for people of reason to say enough is enough! Religious faith discourages independent thought, it's divisive, and it's dangerous!"

evil_grannies_1.jpg

"It looks lovely, doesn't it? inoffensive and gentle. But isn't that the beginning of the slippery slope that leads to young men with rucksack bombs on the tube?"

evil_grannies_2.jpg

"At Lourdes, in southern France, the assault on the senses appeals to us not to think, not to doubt, not to probe. [...] If you have the delusion that you're Napoleon it must be a fairly lonely feeling because nobody else agrees with you. [...] But these people here, thousands of people, all have exactly the same delusion. And that must give wonderful reinforcement to their faith."

I have to disclaim here that I've only watched the beginning of the first episode, and it may well be that this tone is merely a setup for an insightful discussion -- but I'm not sure if it's worth the time to actually find out. I have no patience for propaganda from either part of the spectrum.

After all, one of the best improvements the Internet brought into our lives is the ability to skip commercials.

*click*

You can download the films at mininova.

Update: 2006-03-16: I've now watched both films and have nothing to add except that Richard Dawkins in a number of ways is quite a bad interviewer (which is a pity since most of the time is spent interviewing people), and he fails miserably to get his point across without sounding just as monkey-brained as his interview partners. The films create the impression that Dawkins and Channel 4 were attempting to add a counterpoint to the intelligent design discussion -- their arguments are similarly flashy and void of actual insight. I'm not sure this adds anything insightful to the discussions -- but I guess sometimes shouting matches do entertain.

Oblig. Pop

last.fm tag of the day: fake jazz (open fake jazz tag radio).

New Del.icio.us URL History Page, with Bookmarklet

Martin Dittus · 2006-03-09 · commentary, data mining, links, recommendation engines, tools, web services · 1 comment

delicious-history.png

del.icio.us apparently has just added a feature that I've been wanting for a long time: It's now very easy to see the history of bookmarks for a specific URL without having to bookmark it yourself. Here's an example of such a bookmark history page: del.icio.us bookmarks for mailfeed.org.

I regularly check these URL bookmark histories on del.icio.us, because it can answer all kinds of interesting questions, e.g.: How popular is this URL? Since when have people known about this? Who bookmarked this URL first? What are their comments?

Read on for a description of the merits of these history pages, some comments on how the new version fails, and a small bookmarklet.

Full entry

SQLite3FeedCache: A Custom Thread-Safe Database Cache for FeedTools

Martin Dittus · 2006-03-07 · code · 2 comments

textmate_output.png

I just finished a first version of a custom database cache for FeedTools 0.2.23 -- basically a drop-in replacement for the default DatabaseFeedCache. I did this for two reasons: first, because I could (always a good reason), and second, because DatabaseFeedCache does not work at all in multi-threaded applications. DatabaseFeedCache is based on ActiveRecord, and while ActiveRecord is supposed to be thread-safe since version 0.9 I've found this not no be true, at least when using SQLite3.

The implementation of SQLite3FeedCache is as basic as it gets, to the point where it's rather inefficient -- it does not even keep a persistent database connection, but reconnects and disconnects with every call to save, find_by_id and find_by_href.

But hey, it's thread-safe. ;)

You can browse the short SQLite3FeedCache documentation for more details.

Setup

SQLite3FeedCache, like the original DatabaseFeedCache, requires you to set up a database cache file yourself before you can start using it. But that's easily done:

$ sqlite3 db/feeds.db < db/schema.sqlite.sql 

If you look at the schema definition you'll see that it matches that of FeedTools -- which means you can use the same database cache with SQLite3FeedCache and FeedTools' default caching mechanism, as long as you're using SQLite 3.

Example

After setting up your database cache you can start using SQLite3FeedCache in your FeedTools script. Start your scripts like this:

# point SQLite3FeedCache to the database file
SQLite3FeedCache.set_db('db/feeds.db')
# tell FeedTools to use the SQLite3FeedCache
FeedTools::configurations[:feed_cache] = SQLite3FeedCache

... and that's all it takes. You now can start requesting and parsing feeds using the convenient FeedTools interface, and all requests will be cached by SQLite3FeedCache. See my earlier article, Using the FeedTools Cache in Plain Ruby Scripts, for some examples of how to request feeds with FeedTools.

Of course the main reason for using SQLite3FeedCache is its thread-safe implementation -- just be patient, I'll probably write a little about multi-threaded feed aggregation later.

Disclaimer

This is very new, and there might be bugs. My main goal for this initial version was to make it work at all.

And it's probably safe to say that this will break with the upcoming FeedTools 0.3 release.

Let me know how it works for you -- or even better, make suggestions for improvement.

Update: I just uploaded a new version that fixes a small bug where feeds behind HTTP redirects were re-requested when they shouldn't be.

Download

The Jabber Server Software Space Starts Boiling

Martin Dittus · 2006-03-03 · commentary, software · 3 comments

I previously mentioned the all-Ruby Jabber server xmppd, a new project that is going to be really interesting once it's above a certain basic threshold -- a core goal of this project is to get to a stage where you simply start a script to get the server running, with minimum configuration and no root privileges required. As I'm a fan of such low-barrier-to-entry, low-dependencies software (cf. SQLite) I'm tingling with anticipation.

I just found that a similar project has recently been launched in the Perl space, initiated by Brad Fitzpatrick of LiveJournal and Flickr fame. This project is called "DJabberd", and if you search for it now you'll only find the initial announcement on Brad's blog (posted yesterday), and a couple of changelogs in DJabberd's CVS repository.

Quote Brad:

Before I started working on it, Artur and I looked into ejabberd, jabberd2, and some other things. They're just not extensible enough. We started to add pluggable roster management to them, but it was getting painful.

One day Artur comes in and says, "Dude, why don't we write our own?" I started to reply that it'd be hard, but I stopped myself and was like, "oh, right... just an event loop that feeds incoming data to a SAX parser..."

DJabberd is at a similar stage as xmppd, in that its developers recommend to wait before you start using their code; but it seems Jabber is finally getting the clean and easy-to-use server implementations it deserves.

I believe that a year from now Jabber will be in a completely different place than today; this feels just like when Dave Hyatt and Blake Ross first released their Phoenix browser. And the "established" world of Jabber/XMPP developers will then be scratching their heads over why suddenly everybody is excited about the same thing that they've been doing and preaching for years.

Upcoming NNW 2.1 Beta 'Soon'

Martin Dittus · 2006-03-03 · software · write a comment

NetNewsWire's developer Brent Simmons has silently been busy during the last couple of months, and is now starting to talk about his progress. And my guess was right: the major new feature is NewsGator integration. Don't want to dismiss it though, it seems that among numerous bug fixes we can also expect significant speed improvements on some operations.

The main surprise to me, though, was this particular announcement:

P.S. It's a free upgrade. In fact, existing NetNewsWire users will get two years of free upgrades plus a free subscription to NewsGator.

Whow. Another OS X developer being crazy friendly with his users -- it's something in the water I tell you, next thing you know Apple will hand out MacBook Pros for free.

So what's Bradbury up to?

And as long as I'm talking about aggregator developers, I have to admit I'm more and more curious about what Nick Bradbury is doing -- he not only seems to be on the forefront on a lot of interesting developments these days, with FeedDemon arguably now being a generation ahead of NNW, and all the attention metadata discussions he's been leading; but he's also bookmarking interesting stuff.

I first found his del.icio.us account when I saw that he was one of two people bookmarking my "Revisiting Aggregators I" article (see bookmarks); and a couple of minutes ago I found that he also bookmarked Niall Kennedy's "Automatic favorites import using browser history" (see bookmarks), an exciting method of tracking user attention after the fact using only JavaScript, XMLHttpRequests and a couple of links.

Oblig. pop

Oh, and since about Tuesday I'm reading up on the wisdom of MC Hammer.

Surprise, Surprise: Music Software Still Sucks

Martin Dittus · 2006-03-02 · commentary, privacy, software · write a comment

livebeta.png

I just wanted to check out the beta of Ableton Live 5.2 -- since switching to a Mac last year I haven't found a decent audio sequencer yet that I could actually afford, and had been hearing great stuff about their recent improvements.

Well what can I say: I didn't get to actually use Live, because its copy protection mechanism sucks, and clashes badly with my stubborn viewpoints on privacy -- and then some.

Read on for my whiny "bug report".

Full entry

Late to the Party, As Usual

Martin Dittus · 2006-02-27 · commentary, software · write a comment

jabber4r.png

I'm a pretty geeky guy, but there are quite a number of technological trends that I've known for a long time before I actually start using them, and where I simply don't know how much I'm missing. A particular field of software that suffers from this is communication software: namely instant messaging and voice-over-IP. I had an ICQ account in the 90ies (when I was working at SinnerSchrader in Hamburg), but basically used it to make lunch plans with a buddy and not much else.

Well that has finally changed. Within weeks I got a new ICQ account, a Jabber account, and started using Skype.

Jabber rocks. For all kinds of things, not just for messaging -- it's also a great notification mechanism, and all the scripting languages I care about have stable Jabber support. mabber from Cologne offer various great Jabber services -- as a Safari user I can't yet use their web client, but still, they rock too. And the new GMail/GTalk Jabber web client might come in handy, too, once a year -- yay for web applications.

(Speaking of Jabber and scripting languages -- I'm watching the progress of xmppd, an all-Ruby implementation of a Jabber/XMPP server, and it's starting to get interesting. Still in very early stages, and I haven't actually installed it yet, but if the current speed of development continues it'll turn into an exciting Jabber solution within the next six months.)

Adium is a mostly excellent and very well designed multi-protocol instant messaging application. I use it for ICQ, Jabber and GTalk and have not the tiniest complaint -- though the only thing that's a bit irritating is the fact that the application workflow is occasionally a bit more verbose than I'd like it to be (e.g. I'd like to see some menu bar icon enhancements).

And after finally starting to use Growl I'm delighted -- and looking forward to upcoming messaging UI innovations from the Gnome community who apparently are closely watching Growl, and starting to develop similar solutions and more.

Then I've just started using Skype, and I'm hooked. The Mac OS X application is slick and beautiful -- there are a lot of popup windows, but that's a problem no messaging application has solved yet (at least not to my knowledge). Using Skype is actually a little weird at first -- I'm using good headphones, and the aural experience is distinctly different from the phones I'm using. Very (very) good sound quality, to a point where the conversation is starting to feel more intimate, and where sonic nuances are much more pronounced. (Depending, of course, on your audio setup.) From what I remember you don't even get compression artifacts like on mobile phones. And SkypeOut is way cheaper than most other international phone communication solutions, not that I've actually used it yet (still hesitant to give out my credit card information without having a good reason).

Low-Level Logging with Ruby

Martin Dittus · 2006-02-20 · code · write a comment

While browsing the Ruby presentation of Srdjan Marinovic I came upon the following snippet, a great example of what makes Ruby such an exciting and productive language:

class Foo 
  alias_method : old_say, :say_greeting 
  
  def say_greeting(*args) 
    log... 
    old_say(*args) 
  end 
end

The code above redirects calls to an existing method old_say in class Foo to a proxy method say_greeting, which logs the method call before it hands over to the original method.

This demonstrates how Ruby classes are inherently "open", in that they can be modified at runtime. That code sequence can be used to override both method calls to your own code as well as method calls to core library functions, or any other code.

Such language flexibility can be used for all kinds of dynamic programming funkiness; here it's used as a debugging tool. I haven't been doing much meta-programming yet, but it's feasible to create a simple debugging function that adds this proxy logging functionality to arbitrary method calls -- so that e.g. if you wanted to trace all HTTP requests in your application you could do something like this:

log_function_calls('Net::HTTP.get_response')

I'd love to hear about how a Java programmer might go about doing something equivalent. (He'd probably need a debugger.)

Will Linux Adoption Increase with the Vista Release?

Martin Dittus · 2006-02-19 · commentary · write a comment

Reading some of the comments of another Slashdot article on Windows Vista made me aware once more that the landscape of operating system adoption is shifting: the Windows slice of the pie seems to be getting smaller, at least for home users.

For one thing, people start switching to Apple. I haven't counted yet, but the amount of people you meet who casually mention that they just got their first Mac seems to increase exponentially.

Then, during the last months, it became abundantly clear that Ubuntu is becoming a serious alternative to commercial desktop systems. I've been waiting for signs of mass adoption, and while we're not there yet Ubuntu is starting to be everywhere you look, is getting mentioned in the mainstream press, and is indeed a system suitable for everybody. Grandmas use it. Hell, even geeks use it.

Or, as Anonymous Brave Guy puts it on Slashdot:

The more I read about Vista, the less I care, and I'm someone who (at present) does run XP both at home and at work, and uses some OSS for practical rather than philosophical reasons. [...] This could be the best thing to happen to open source software since forever.

The future PC market, one or two years from now, will be dominated by three operating systems: Windows Vista, OS X and Ubuntu Linux. And while those three parties vary widely in terms of their tastes and especially their means, all three of them are descendants of a long line of failed experiments and successive improvements. Emerging to find new ways to do things, new interfaces, new approaches.

There has never been such a great market situation as the one ahead of us.

Seek and You Will Find... Not?

Martin Dittus · 2006-02-17 · software · 6 comments

longtail.png

Slick, Libre Charts?

Either there is no great, simple application for well-designed charts and numeric diagrams on OS X, or it's amazingly well hidden -- all I want to do is transform tables of numbers (and text labels) into beautiful visualizations. Like in Excel, only good-looking. I don't even care about the output format. Keynote only works for small data sets, and all free/open source applications I've looked into suck (examples).

As an alternative I thought about scripting Inkscape, but haven't yet looked into it. Gruff on the other hand is often too limited for what I want to do, but it already comes close (even if it's only a Ruby code library, not an application). I then briefly thought about looking into Python scripting, as those guys seem to have some great visualization toolkits. But my imaginary best solution: someone should develop something simple with the SM2DGraphView framework, select better color schemes, add antialiased drawing routines and make it open source.

(Update: in the comments ZeroK points me to R and R.app -- after some time of getting acquainted with the system it seems like the way to go. I'm actually surprised: yeah it's a geeky open source scripting environment, and I'll have to develop my own designs, but who doesn't love scripting languages and flexibility. And most importantly: The integration of R.app with OS X works great -- first time I've used PDF as file format for vector graphs, and Pages seems to like it.)

Low-level WiFi debugger?

Totally unrelated to that I'm also looking for a simple WiFi console/diagnosis application that lets you watch the raw 802.11 protocol flow -- I'm regularly having problems with connecting to other people's wireless networks, sometimes even my own, and a debugging tool often helps. (Don't suggest tcpdump, this happens on an even lower level.) There are some wardriving tools for Linux that could be abused for this, but nothing seems to be ported to OS X yet. Damn you Apple and your closed-source hardware drivers...