
Despite having blogged a lot already today (no, I didn't break planet, these are all new blog entries), I have one more thing to share with you.
This image is from the Google Summer of Code mentor summit. Well, strictly speaking it's from the hotel where most of the attendees were staying. This draw was called the "executive toy box". I somewhat enjoyed that there was an "etch" around even before I arrived at Google. ;-)
I'm setting up my new laptop, and for obvious reasons I have to copy over some data from the old to the new laptop.
The wireless network here at my apartment-sharing is crappy; and it lacks a local DNS server offered by newer DSL routers. So I would have to find out the current IPs of my laptops to copy data around (note that the router also doesn't give you IP persistence apparently, the laptops have new IPs each reconnect...)
mDNS to a rescue. Multicast DNS (Bonjour / Zeroconf / Avahi) comes in handy here. It allows me to locate my laptops by just using "hostname.local" (using the libnss-mdns package) or using the avahi zeroconf browser (package: avahi-discover).
eBay (at least ebay.de) doesn't allow quotation marks or stars in messages sent via their UI. That totally sucks.
I agree with not allowing HTML tags, to avoid any potential issues with broken webmails and cross site scripting, whatever.
But not allowing quotation marks in messages sucks. I use them all the time, basically whenever I quote something of the artice description (that's why they are called quotation marks I guess).
Why can't they just fix their code to allow quotation marks?
Ich habe ja schon über unseriöse Angebote im Netz geblogt, da sich diese über Google-Anzeigen auch auf meine Homepage eingeschlichen hatten.
Ich wünschte Google würde da selektiver vorgehen, aber andererseits zahlen diese vermutlich sehr viel...
Naja, kleine Anekdote am Rande: Dialerschutz warnt vor diversen "Gratis-Proben"-Angeboten - und auf der selben Seite ist sogar eine Werbung genau eines dieser Dienste.
Vermutlich tauchen die Werbungen jetzt dann auch in meinem Blog auf. Ich bereite mich mal drauf vor, meine Filterliste zu erweitern. ;-)
(Die Gratisproben-Seiten scheinen nicht hohe versteckte Kosten zu haben, aber dafür eine sehr laxe Datenschutzauffassung, nur zur Info...)
I've chosen Turbogears for a recent web project. Up to now, I was pretty happy with this choice, as it allowed me to made changes to the application rather easily, I happen to like KID templating, and it all was rather painless.
However, I'm stuck at two place right now. One is a rather expensive database query I have not yet added - I know that it's going to be expensive, and I'd need some way of caching the results easily. I havn't found a "turbogearish" way of caching these interim results yet.
Since that brought me onto the performance thing - when writing an app you don't really know yet how it will be implemented, you best postpone performance considerations a bit, so you don't optimize too early - I did some measurements. And was pretty disappointed by the results.
The testing virtual machine (sorry, I don't have hardware specs for the actual machine) is rather slow. But still, static apache can serve some 450 requests per second. Turbogears will serve static files at ~22 r/s and the main page of the webapp at just 4.5 r/s (measured with siege, when it's not crashing).
I tried switching from sqlite to mysql in Turbogears, but unfortunately that just makes the application crash altogether at some point (no SQL queries succeed anymore: 'Page handler: "Commands out of sync; you can't run this command now"')
Notice that this was by no means a fair benchmark of Turbogears (I'm not a turbogears expert, and the little documentation I've found so far didn't help me at all in optimizing it's performance). I was just evaluating where I'm at, and now I'm about to decide where to go next.
So can anyone point me to some docs on how to get turbogears up to an acceptable speed (where acceptable would probably be >20 r/s on this hardware)? Otherwise I guess I'll start a rewrite now, maybe using Java JSF and Facelets. They seem to be a good choice if you want XML-based templating.
Don't even suggest PHP to me, it's crap. And I won't be trying Ruby on Rails next, either. I don't need rapid prototyping anymore, but can go for the high-performance implementation now, even if it will be harder to read, write and modify. I have now a better grasp for what I need and how the architecture of the app should be like.
For a project, I've been working a bit with "web 2.0 video services". That is, YouTube, Gogle Video, MySpace videos and similar.
So far, the only one I can actually use for my cause is YouTube; Google Video should be possible, whereas MySpace and e.g. MyVideo.de apparently lack the functionality I need.
But the functionality I need is pretty simple: thumbnails.
For YouTube, I can use their API to query metadata on videos such as viewing counts, title, description, tags - and a thumbnail URL (all I'm lacking is some information on whether the thumbnail URL is permanent, i.e. if I can cache it, or bound to change).
For Google Video, there apparently is some way to do the same - digg is reported to have Thumbnails for YouTube and Google Video.
Dear Lazyweb, if you have some information on how to get thumbnails (and other metadata such as title, description, tags) for other video services, please send me an email to Erich@debian.org. Thanks!
[Update: revver.com has Thumbnails and some API. It works with the beta flash plugin and epiphany.]
For my new laptop, I decided to use harddrive encryption. The new Debian installer (to be released with etch) can handle this setup, and it works pretty well. The passphrase prompt isn't pretty, but who cares.
But where I'm currently stuck is getting it to work with uswsusp.
I used to be a Suspend 2 user, but I'm tired of compiling my own kernels; it takes a lot of diskspace and my new laptop has a much smaller harddisk (I bought a used laptop, so I didn't have a choice; the old laptop is PATA, the new is SATA, so I can't just move the HD over either). So I wanted to try new "userspace software suspend".
s2ram works just fine on the laptop (with --force, but from some Google results I figured it's already reported to work, so it will probably be in the next versions whitelist), where it's becoming difficult is the suspend to disk with an encrypted swap device.
From what I can tell, s2disk expects the resume device to be a swap device; so I'd need to pass it /dev/mapper/cswap. However this is encrypted using a random key, so it can't be decrypted after resume. Also it appears to be configured after the resume script at boot, which says it can't stat my resume device.
Dear Lazyweb, anyone who could write some Howto for uswsusp and HD encryption? Do I need to encrypt swap with a static key (which would reside on an encrypted partition, after all)? And what about the boot sequence?
[Update: one of the cryptomount maintainers told me he's working on fixing #394136 and #382280 this weekend, and that this will help me as well. (Basically it will allow the cryptomount initramfs things to setup more than one encrypted device, from what I figured).]