Sure, I wanted a provocative headline, but I’m so sick and tired of all this (uncle bob, uber, google gender stereotypes, etc.) sexistische-kackscheisse as we say in german. I just hired another female engineer. We already have two female engineers on our team, and guess what? They are great, they are helping us further to where all this male looser engineers are not able to.

If our computer culture were dominated by women we would have had better computers!

Serving your blog from github pages is perfect for me, but as you you might know, you can’t have plugins beyond the ones pre-defined by github. Using a youtube plugin is therefor not possible. Luckily you can easily build a HTML include snipped to simplify your video embedding markup.

oops, I just wanted to save title and image as draft, but as I’m still tinkering with setting up this new blogging environment it got published accidentally and somehow made it to twitter where it got favorited. Fast paced social media world. Anyhow, to not let the tweet link into the nowhere I updated this yet non-written post to be public.

and thats not bad! as you might have seen I revived my old blog from its 2008 SQL database dump. Today I tried moving it back to its old domain. In short, so far the steps where reloading old sql backup to mysql in docker, wordpress in docker upgrading database, exporting from wordpress as XML, importing XML to blog instance on http://sofasportler.wordpress.com/. Now I want to be reachable under it's old domain htttp://sofasportler.de/.

The "normal" way with Wordpress.com seems to be ordering the domain with them. But also when you already own the domain they have an option, its call "map" your domain. Sounds good, so i went that way (13euro per blog per year). Problem is, in the next step they ask you to change your nameserver to the ones from wordpress.com, which i didn't want because i use AWS route53 for DNS.

So heres what i did. First i asked (and payed) to map my sofasportler.de domain to sofasportler.wordpress.com, but did NOT continue to change the sofasportler.de nameserver over to wordpress.

Than i moved over to Amazon Route53 to add an A record to make sofasportler.de resolve to the sofasportler.wordpress.com IP. Now http://sofasportler.de/ is working, but what is with www.sofasportler.de? The missing link is to have someplace where to redirect www.sofasportler.de to sofasportler.de. This place is AWS S3, the have the redirect feature to host static websites directly from S3. To do so, you need to have an AWS S3 bucket, what i created for www.sofasportler.de. Once you have it, you can find out its endpoint, in my case something like www.sofasportler.de.s3-website.eu-central-1.amazonaws.com. This endpoint is what you add as target in the AWS route53 entry for www.sofasportler.de. Still with me? Last step is, adding the redirect all traffic to sofasportler.de for the www.sofasportler.de bucket, this is an AWS S3 feature.

Once all this is in place, it works like this:

go to http://www.sofasportler.de/

resolved to S3 bucket,

bucket gets hit, redirects to sofasporler.de

sofasportler.de resolves sofasportler.wordpress.com

wordpress.com sees in coming request for sofasportler.de and happily serves the blog,

and http://sofasportler.de just starts with step 4 of course.

still missing, comments and some image links, but i still have to look into this,

makes sense? I'm not sure, hacked this together in a rush, not sure whether there might be a more reasonable setup. But hey, back from the dead, and that's ok, for now.

taking an old mysql database backup from August 2008 of my blog and running it in a docker container'ed wordpress to upgrade it to wordpress 4.3 from where i exported it and than imported it to the wordpress.com site (this one here) for checking. Amazing technology, me luv wordpress, that was all sooo smooth. I might post some journal of the steps involved for the docker/wordpress interessted ones, but for,

in my typical love and hate relationship with opensource (aka open sore) i stumbled over SASL induced configuration pains again today. To cut a long story short, just disable DIGEST-MD5 sasl out on the openfire jabber server and immediatly xmpp4r works like a charm for me.

This file stores bootstrap properties needed by Openfire. Property names must be in the format: "prop.name.is.blah=value" That will be stored as: <prop> <name> <is> <blah>value</blah> </is> </name> </prop>

,then you easily know that <sasl><mechanisms>....</mechanisms></sasl> is bogus.

you usually find your openfire.xml at ${OPENFIRE_HOME}/conf/openfire.xml. and you must restart the the server afterwards, like /etc/init.d/openfire restart.

there is another option, like making the xmpp4r implementation don't even try to use the digest-md5 mechanism which the openfire server offers. Just disabling DIGEST-Md5 acceptance at /opt/local/lib/ruby/gems/1.8/gems/xmpp4r-0.3.2/lib/xmpp4r/client.rb:108 in Jabber::Client.auth does work, but i will try to get it implemented a littel more selective before posting a xmpp4r fix here. Who knows, there even might be two SASL DIGEST-MD5 implementations on this planet which actually do match? i doubt it, an even then, i don't care. vote for alt.source.sasl-must-die-die-die and

What this all means? You get a real cheap way to build you're own streaming network. For private videos YouTube will to the trick of serving your private holiday videos to the fans and you don't have to bother for neither price nor capacities. But with such a thing as a Wowza server on EC2 you can now build your very own YouTube on demand. And it's running on small pockets too. For only 5$ a month you get the right to do so and beyond that you pay per-hour and bandwith.

But even besides the economics, Wowza brings more to the party. It is a real good piece of software it seems. I worked with it just end of last years and all operations where smooth. Before Wowza choosing a streaming server sometimes to me felt more like "die Wahl zwischen Pest und Cholera"(or Hobson's choice as i learned). I worked with Wowza last year and it was breeze of fresh air. I think i read somewhere it was written by some old SGI dudes. Ah, good old times, but that is another story(Personal Iris anyone?)

Adobe, the original? Expensive, old-school. heavy. not sexy. Red5 Open Source? Good luck i wish. I never had. Quicktime? Don't know about QTSS but the DSS variant of it failed on me badly whenever i needed it and on top of that it uses PERL! to serve its admin HTML pages, uha, shudder.

Some fellows became even so desperate as to start recoding things from scratch and try writting an RTMP* server in Erlang. As i said elsewhere, Erlang, power- and beautiful concepts, but such an ugly language. Again, good luck i wish. If someone might want to spent a couple of month on trying to combine Erlang concepts and ruby language on writing a scalable stand-in replacement for the proprietary FLash streaming video server solutions than please give me call. Would be a nice project.

Yesterday I was wondering who is right about the URI and as it turns out the culprit is the googlecharts gem. The RFC defines ‘UNWISE’ characters, the ruby URI implementation seem to correctly fail on them and the Google API defines the just the URI, not how it has to be encoded/escaped.

Now, who is right? Google? The URI RFC2396? The googlecharts gem? Debugging such things are the less thrilling moments in life.

Besides that, even when bailing out on this one, the googlecharts gem feels good. It offers efortless chart creation and basic cases are already covered, the advanced stuff will follow i think. Go check it out when in search for an easy charting solution. Googlecharts gem felt better to me than the gchartrb which is another wrapper for the same service, but your milage may vary.

ok, after this very short twitteruption this afternoon of the premium xings i sat down tonight at home and thought, hmm? getting rid of advertising on xing.com isn't really worth a premium membership. A short look onto the pagesource with firebug revealed the pretty simple html schema.

so even me personally was able to sketch a simplistic greasemonkey script to erase ad iframes from the xing page like follows:

For those who don't know, Greasemonkey is a firefox extension to add custom javascript to any website. And this means, you can do whatever you want with the content. There are greasemonkey scripts which are adding links to the amazon site linking to sites with better prices for example. not fair, but thats life. in the web20 world.

have fun

p.s.: they paypal/aws/whatever payment sponsor button to fork 1 euro from your saved premium account money i will code next week - hope to welcome you back on payday.

"In a sense, there are only five computers on earth." He[Prabhakar Raghavan, Yahoo Research Chief] lists Google, Yahoo, Microsoft, IBM, and Amazon. Few others, he says, can turn electricity into computing power with comparable efficiency. (businessweek.com)

Gain your insights from the businessweek article on Google's 101 course in which they start teaching web-scale computing in the universities. This is how they reach out to find new generations of engineers to fuel the never-ending appetite of the Googleplex for young brains.

and remember, just because your paranoid doesn't mean they not out there to get you.

amazon goes full circle with their webservices. After filesystem storage(S3) and raw computing power(EC2) with SimpleDB Amazons AWS now delivers the last missing piece for any web app you may want to build.

Again like the other AWS before SimpleDB is build on a simple concept and implements the pay as you go payment model. With no upfront money you get access to their clustered, monitored HA database system.

reminds me to the old alt.destroy-the-earth newsgroup. Now the folks at Los Alamos finally worked out a concept to bring light to darkness without the hassle of an ICBM. Their convenient portable nuclear reactor is the size of a hot tub. You just bury it underground (see picture corners) and voila! clean green energy for 25,000 Homes.

"All mobile devices possess a unique International Mobile Equipment Identity number, and as the screenshot below indicates, the iPhone sends its user's unique IMEI to an Apple server each time the widgets perform a query. The data includes which stock ticker was queried."

prints: false. Please explain! I mean explain in the sense of why not how it happens. Is it meaningful to put '||' and 'or' on a different level in the precedence hierarchy?

UPDATE: i checked a couple of times before i posted but still can't reproduce it a day later. don't know what was different yesterday, Jruby? confused, ... i seem that puts "#{a == b}" prints true. today.

It will not stay this way and i really like the tumble log format but won't keep up with a daily rythm. Maybe 1.37 times a week on average. Second, i will find another place for this but it must be fully automatic and i have stuff to on my day job, so, i will be cut-and-paste from my tumple notes onto this blog for another while:

this is not a blog post! it's been ages since i've blogged. at least it feels like. and more things happend, then i can possible blog about. i crashed my disk, i switched my laptop(two events, not one), and i went on holidays, twice.

da is was dran: You don’t need a plan, you need skills and a problem. 1. Don’t start out with big plans. 2. Work on skills. 3. Apply your skills to a problem. Most plans are rubbish. Business plans are fake.

Susan Wu got it all right on social media and twitter where: We’re now ..moving into a client agnostic(Flash, Ajax, Facebook-centric, or MySpace-centric) era, where clients … are marketing channels… ..creating standards around specific user behaviors .. is the key asset ..A client should be an interpretation of a user group’s needs within a specific context(by ‘context’, I mean the 14-18 year old females on Facebook have a different community ethos than the 14-18 year old females on MySpace…).

yep, here we go. It took a while but our chief operating foto-foo wizard steffen did finally approve the flickr upload service in http://foto-foo.com. No such big surprise here, beacause Flickr was in the text of the site ever since, it simply was not online yet. And now it is

I hope to find lots and lots of free wifi at garda see in italia so i upload directly from the waterfront. Yes, I go on vacation for two weeks.

EarGTD is a console application for David Allen’s GTD method. It is a good example for a Ruby outside of Rails application which still uses the ORM powers of ActiveRecord.

The commandline is where i spend lots my productive time and having a framework for database driven applications could be boost. Actually i already made myself a google console app(g-module alpha gem), example:

I bought a D-Link DWL-2100AP access point yesterday. Only to find out, after setup!, that it is was broken. It could be configured but returned to factory defaults all by himself after every two minutes. Not useful.

Today my beloved modile mail device came up with a new suprise. "...message queue overflow", pardon? What is it this thing was designed for? god gracious, it's Java, how hard can it be to simply check for such things?

Basically approx. 15 times per week i got kicked off the connected world by the blackberry messing up and reporting a SIM card error. Of course silently. It goes like, you are slowly calming down for just not beeing phoned or mail-molested for the last 2 hours only to find out later that actually hell broke loose and it was only that just nobody could reach you because of your blackberry got gobbled up by SIM card errors.

Notice: All this troubles are strictly mine. These gadgets are functioning perferctly once they are out of my reach, nothing can be blamed on them or their makers.

oh boy, i can hardly tell how much am i annoyed by this unknowing, uninspired, boring minds which walk around me sometimes and are thrillingly giving me their first hand reports of the insights they think they gather at the fast and vivid edge of the dazzling world of the internet and its hyperspeeded and -connected communities. no links here! you know, twitter and friends.

and now, to the left(or above), you see, "The Answer Machine", published in 1964(my birthyear by the while), on paper i guess. What is it? It is describing Google(link! try it!)

pause...

it took a fu....g 40+ years to build it. that was fast man, yep, see me gasping. and now? what's next? The original star trek aired in 1966, which means there are a couple of things to come yet.

this sunny sunday afternoon i was putting together some utility code(stupid me!) to do some remote blogging from the shell or the cosy inside of my vim editing session. This for some later time, but while i was going on with my test-driven/test first development i hit the problem of missing a test to check for the base class of my errors. I wanted to:

assert_raise(StandardError) { @blog.find_post(:postid => 123456789) }

to generally check for any kind of trouble bubbling up but it was not working as expected. Instead i got nasty Failure reports:

How was it for you?

On the ruby-talk mailing list there was a little discussion about this topic and i pretty much agree with all the +1 sayers on the list. Edwin Fine propsed adding his own assert_raise_s method the Assertions class. You easily get into muddy waters with opening standard ruby classes for some duck-typing but reverting to:

was not an option. This would expose way to much implementation detail to this very high level coding of the very first tests so early in the project. So I was using the source, as yoda said and found another solution for me.

Modules as base class arguments to assert_raises

After i read Edwin’s post i checked the source for def
assert_raise and learned that this method is actually checking for some kind of exception base class. The argument to assert_raise is an array of exception types. assert_raise does partition this types into Class and Module.

The assertion_raise checks for Class types is exact, but the Module is not(can’t be). They are checked with an is_a? condition - there can’t be no object instance of module type or course.

My original test therefor simply fails because StandardError is not a Module but a class. The XMLRPC::FaultException implementation is not mine but it is bubbling through my lib which i’m testing and this is precisly the condition i want to write tests for.

“Module tagged” exceptions and assert_raises_kind_of

First i wrote an empty tagging module for lib to tag all Errors and exceptions coming from my lib:

module MyLib
module Error; end
end

Now i can tag all exception from some deeper laying code with my Error module:

and finally got what i wanted but you’re milage may vary. Basically this gives me a way to create some kind of folksonomy of errors coming from my library. Don’t know yet where this might lead me, but hey, ruby is the best for protoyping and playing around!

Don’t be lazy!

Testing for error base classes instead of pricise error handling is not to make you lazy! As discussed on the forum thread it is to start with tests early on and being able to refine error condition testing over time.

form the "competition drives innovation" department i would like to tell you about the foto-foo (of my company) update for sharper images, but see for yourself!

nobody blogged about us(sigh), but with cameroid and phozi two other sites similar to us got mentioned on techcrunch and elsewhere. And as competition drives..., you know, we are glad to have them around. To keep us motivated. So we got sharper images for today, lets see whats next? Ideas?

There can be no doubt about it, RSS Feeds became the connecting backplane for the internet. Like Yahoo Pipes a while ago, the new Google Feed API is building its functionallity on top off standartized RSS feeds. For the feeds API, just providing a standardized RSS feed is enough to offer you a free ride. And a jolly good ride it is. The Slide Show Control is rich in features. Most major photo banks are supported and the actual controls allows for fine grained control of timings and sizes. The funny thing is, the API pretty much covers most of what we discussed at work on the friday before the weekend the API was released.

For the public timeline of our all-online-in-browser-photobooth-applicationfoto-foo at /i-d media we wanted to add RSS feeds from which to build slide show like applications displaying a constant stream of fresh images. I decided to give it try and found this RSS2 rxml template on dzone.com which i filled with my data.

Various things happend, but no image was to be seen and the browser stalled a couple of times. First thing i found out was, “standard” Feed actually means it uses the Media RSS extension. This means the feed header has include the Media RSS namespace:

your media group attributes/elements may vary but there is one nasty surprise lurking which you should be aware of. The Feeds API seems to ignore the actual image URL and chooses the the thumbnail URL instead: no thumbnail, no slideshow! This was kind of driving me mad not beeing able to spot the difference between my none working feed and the working one.

Bonus: feed reader compliance

handling images in RSS feeds is part of the vaguely borderline of rich media feeds where things like the Media RSS extension are actually made for. For Atom it seems media handling is defined a little better but the Feed API depends on RSS2. All this variations are hard to grok for some feedreaders but I wanted to have my foto-foo RSS stream also in my Reader, but the did just not show up. I checked out Riding with robots feed which brings fresh views from outer space directly to my desk. It turns out that they just include a little encode HTML in the decscription tag:

i know this is all rough and dirty, but it works for me, might help you a bit, and i dont like to drown in spec reading for to long today. Find my RSS2 rxml code snippet on dzone and mess it up in any way you like.

doesn't that sound strange? The recent hype around all things virtual drove down normality of these ephemeral worlds to a new level. A lot is in the name, and readings like these constant flow of update messages from Linden Labs reminds me to the the supermarket announcer coming from the speakers above my head with: "please switch to another channel. this reality is not longer supported", while i was just pondering about my weekend shoppings. Or was it? Just kidding, I'm still part of the real world, am I? Distant associations to forgotten utopian views from the past. "Welt am Draht", welcome on the next level.

I'm in no way linked to O'Reilly or the conference but in any case i'm quite willing to help making the berlin rails conference an even better one than the last. So when you have question or ideas for some socializing events around the rug-b or berlin just drop me a note.

actually not quite, but i could not skip these. IBM released a Fortran compiler for the Cell processor, thank you. Cell is the CPU which superpowers the PS3 for those amongst you how didn't knew already. Now i jump and dig up my old medical volumen renderer code and might port it the the Playstation3! But as an old fellow of mine always said: "you can write bad fortran in any language", and i prefer ruby nowerdays.

the joost folks start spamming to rush us its beta testers into sending invitations.

So hurry - time's running out :)

To use your tokens, go to https://www.joost.com/betatest/invitations.html before March 22 and fill in the form. We'll send out your invitation straight away.

ok, they asked for it and who am i to obey? To speed up and simplify things a bit i send an invitation to myself and give it to you. Here you get the beefy part of their invitation reply, go use it in what ever way you're please to do:

First was Tim Lossen giving a good round-up of the JRuby developments. Not of much interest to me because i have’t touched Java in a while. There was a common understanding that JRuby is a good thing and will pave Rubys way into the enterprise world, and with Sun now as official backing partner, JRuby is heading for a 1.0 release this summer for Javaworld confererence. You can already run JRuby based Rails applications inside you IBM Websphere Application server, Yeah! But can you run a Rails application with JRuby from inside a Java applet on your client browser? Hm, interesting idea, we couldn’t answer that yesterday.

Next was the talk by Murphy about the state of the ruby 1.9 release. Murphy mainly used Mauricio Fernandez eigenclass for reference and gave a really great overview around the three main themes of this topic: Roadmap, New and changed features and performance. Everybody loves the hand drawn roadmap image(which i can’t find now) and while a Ruby2.0 release being something from a far utopian future, we might see a 1.9 release later this year. I’m actually not following the 1.9 developments but became inspired to check again. Enumerators for examples reminded me to my STL/C++ years, just now without the template pains :-)
Interessting were his comments on performance. Tim already showed some charts which related the JRuby to some other implementations and Murphy made some own benchmarks which were pretty much in line with Tims data. The general information is that 1.9(==YARV) is a couple of times faster, ranging from 3 to 10 times faster. BUT! and that is a big but, Murphy did report that on the real life applications he tested, the speed-up was close to insignificant for various applications. This is because the the performance tuning in 1.9 seems to be focussing on benchmark relevant stuff. And real life application are hardly build from benchmark functionallity. This sounds like, been there, seen that before. History(benchmark tweaking) is repeating itself. For me it doesn’t matter. When others can do 4000 requests/second, ruby/rails is definitly fast enough for me.

Finally Benjamin Krause showcased his upcoming OMDB project(tech blog, development version, live). OMDB is a IMDb in wikipedia style with a creative commons licence. 16501 People(see comment) 16000 moviesare already in the database and once it will open up, everybody can extend it. Thats a cool idea conceptually and what he showed technically was nothing less than the equivalent to an “Full House” in poker. For example the subsecond async response times for fetching actors from a huge database which were made possible by his ferret magic. impressive.

And this also led to the agenda for the next meeting where Benjamin will give a talk about ferret on Rails. Everybody wanted to see more of it. Also we will have a talk by Adam about AmzonWebServices: S3 and Rails on EC2 . I’m looking forward to it. And about the open mic section, i’m pretty sure we are releasing our foto-foo into the wild.

And for you to have some fun, we plan to record the talks next time and put them up as podcasts to fit with your online consumption habits. Murphy and Tim also promised to upload their talks for online viewing (to the wiki i guess).

military laser guidance technic in the hands of urban rebels makes for a super cool new way of tagging tall buildings with laser pointers. Graffitiresearch from rotterdam is putting high tech in the hands of "writers, protesters, artists and the citizens of Rotterdam".

after having Diz/Kiz online for some weeks now, for the very first time we let it outside. There never was a Beta, and now it is officially out of the gates. My connection? I work for the company which build it: productdevelpment @/i-d media(full flash!).

Diz/Kiz ist a ruby-on-rails webapp where you can diz or kiz videos pulled in from other sites. With just 2 mouseclicks(the second click is only for confirmation :-) and our bookmarklet you can publish videos yourself. Diz/Kiz was supposed to give you some fun minutes with a simple "am I hot or not" mechanik.

It is nice seeing your work beeing picked up by people around the globe. There was no Beta and Diz/Kiz was a proof-of-concept for us. Now we keep on going :-) Usabilitywise we need to fix some things and we will add functionallity. Don't worry, Diz/Kiz will never become a full featured video portal but remains a simple one-step-stop for your video fun. But more widgets would be ok, wouldn't it?

And for you beeing a ruby coder maybe, I promise some API to embed Diz/Kiz widgets on your own site. Diz/Kiz was designed from the groud up to embed video data from external storage providers and this is how it was build. Right now we are working on opening up this interface to the web.

Growth, Growth, GrowthLinden has boasted unbelievable growth numbers, even proudly displaying them on their Second Life home page. In fact, Clay Shirky didn't believe the numbers, and challenged them in myriad forums (earning him fierce sometimes slanderous attacks from the Second Life faithful).

the one i used before this macbook. R51 IBM Thinkpad with 2GB Ram, gentoo installed and a "ususal suspect" 21C3 sticker on back of the screen. not nice. i would not mind a miracle to bring it back. It was up and running and connected to the network when it got stolen on friday, 16. feb 07.

is the most ridiculous version number jump i have seen i a while. Yahoo just released a new version of their Yahoo! UI Library and pull this little marketing trick.

This is even more extreme than in the good old new economy times when marketing geniuses where pushing their fail-ups towards their IPOs.

Don't get me wrong, YUI is a fine piece of work and the yuiblog a delighting source of inspiration. But no marketing blah-blah whatsoever will make me understand the reasoning behind going from below 1.0 to 2.2 in a single step. Get real, start at 1 please.

So, here they are: Joost Mac OSX Beta released. After a 30MBytes download you drop it on your disk and start right away. It just plain f...ing works, "...behaving very much like a Mac application" like they promise with the release notes.

You get full screen video with ok quality, transparent control overlays and widgets. It is beta a and you can see. The font rendering is not perfect and the app crashed on exit, but that is not something holding you back from using it and is honestly mentioned in the release notes. The content seems to be limited though and the widgets just cover the bare basics: video rating, chat, IM(jabber/gmail) and a clock(sounds like hours of fun). They must open up on the widgets(are they already? Don't know) and improve contentwise, but that seems feasible to me.

A cute little detail in the end. When switching off you got to see the video collapsing and see a dimishing white little spot like from the cathode ray tubes. Only a little gfx coder gimmick or might it be a little wink toward collapsing Tubes?

Before you ask, while Joost seems to be open now, the Mac OSX still needs your beta registration, and i don't have invitation codes left.

Prediction is very difficult, especially if it's about the future.--Nils Bohr, Nobel laureate in Physics

agreed, but one thing is certain: it becomes way more complex than it used to be.

I recently just skimmed this 2007 Web Predictions and by quickly counting every major trend they identified in their post i figured out that I can't keep up with the progress any more. I can dive into any given topic deep enough to cope with it, but not more all of them at once. Personally I'm unable to accumulate information that fast anymore, and maybe it is also impossible for a company. You can always hire people, but besides the difficulty of getting the right ones, you start loosing focus. Beeing "a jack in all trades, master in none" is no viable solution.

I recognize the pattern though. In the beginning, when i got started with the messy world of computers, i could keep up to date with all and every topic. Heck, there was only one (offline) magazine! "Byte", and much later than came, heise C't for the german market.

In his blog Steve Yegg rants abouts the next big language and has some nice things to say about ruby as well. He equals refusing to use Ruby with "refusing to use an electric car because there's no place to put the gasoline".

... it lacks automated refactoring tools. Ruby doesn't actually need them in the way Java does...

...But programmers are a stubborn bunch, and to win them over you have to give them what they think they want.

and right he is i think. Steve does not spoill his inside knowledge about what the next big language will be, but his commenters are concluding pretty much on it to be ECMA script. Well, may be it so, that will not be for some time.

In a kind of talking-to-myself action i dated my companies avatar in the romantic scenery setting of a sundown on Ideas Island(not yet open to the public). Its him(AyDee Kubrick) sitting on top me. My face is streamed live from my macbook, it is not a still image. It still surprises me actually when these things do work like advertised. This is all about testing the live streaming setup which we want to apply on the island. And i can tell you, there are lurking surprises all the way. With the real stream setup(streaming me is not the plan:-) i have a mysterious lag between voice and image for example. It is not about lip sync, it is something like 1-2 minutes! I have no idea yet where the image stream gets delayed for such long. A couple of seconds i could understand, but a whole minute? The other still unsolved mystery to me is how to setup the darwin streaming server for serving incoming RTSP request on port 80. The manuals say where and how to enable it, but the server fails to comply to my commands. A nice little catch22 you get: The server fails serving port 80 without root permissions but when you give it root permission it fails to run at all due to missing configurations. Googl'ing this you get tons of stupid forum post about rebooting your mac to make it work and similar smart proposals. We got it working now with IP tables.

Now that our island emerged from the deep waters of californian virtuallity we are just a couple of days away from opening our space there. I hope for a lekker housewarming party next week. creating tomorrow and stay tuned!

a kind of buzzwordy post title, i know, but hey, at least i kept the unavoidable second life out of it. For reasons far from being thrilling enough to tell here i pulled the latest hpricot release and made my server pull the latest stats from linden labs frontpage every 6 hours. I'm kind of sad I could not get it up before the (ridiculous)3293499 residents mark, but once SL will hit the billion, it will still look like a pioneer. So here is the beef: I made a cronjob screenscraping secondlife's stats from their frontpage. A nice graph from the data i will put up soon hopefuly. And stay tuned for the raw data feed if you like. Lets see, a week i guess, before it becomes a nice exponential curve.

like a lot of people i put config values in hashes and used YAML to read them from file. Take database.yml in Rails for example. YAML feels like coder nirvana when you have suffered from XML pain in Java land for many years. YAML syntax is so much nicer. But to express ruby values, plain ruby syntax for me is even more straight forward. To check syntax I always had to try and err before use with YAML.dump {:foo=>"bar"}.

I thought about just writing plain ruby and eval it. Problem is, eval avoids polluting the global namespace and the variables you set in an evaled file will not show up anywhere. Using global variables(yuck), constants, @@ variables or similar constructs would defy the purpose of getting a nice syntax for the user.

Then I got the idea of using the introspecitve powers of ruby to the retrieve the local variables which got defined on evaling a file from the binding. I wrote a function which does exactly this. From a known binding it extracts the loaded variables afterwards. The values are then injected into a hash an returned.

I joked a little about the absurd prospect of expecting the asian companies to patiently wait for Apple to launch their iPhone. But in a kind of actio-reactio reversed surprising quantum world move the response was there before the action.

LG in conjunction with PRADA did launch a slick touchscreen device and PRADA might turn out out to be the perfect partner to get it right with successfully locking on to the luxury target group.

Don't get me wrong, I still believe in the iPhone becoming a huge success. There is a reason why there is hardly any mention of the software. Software makes all the difference nowerdays. I personally definitly won't fuddling around with yet another stupid gadget. And it doesn't have multitouch either.

Sorry for the german in the title, but i just stumbled over the coincidence of the Rails 1.2.1 release lines of code increased conforming to the german VAT update we got this januar. VAT is now 19% in Germany and ruby came from 6246 to 7428 lines of ruby code. That is an 18.924111431316 percent increase, which rounds up quite nicely to 19%. I checked against the last pre-1.2 release .

With 7428 lines of code rails still stays a lithe and lissom young framework. All the best for the REST.

Oh yeah, i also became one of those blackberry users. It is a really good on-the-go traveling email device. When last year i was wasting days and days on airports while traveling back and forth to lots of meetings the blackberry gave me back some productivity. Because of the blackberry i could spend the precious time at my desk with getting real things done instead of wading through dozens of mails.

But, the blackberry is a phone, and an organizer, and therefore contains all kinds of smartphone application. And there is an alarm-clock wake-up application you might think. No, it is not. It is an annoyance. First, the meeting calendar can't be used for wake up because it only pops up a little reminder windows and makes a mellow 'ping'. Not for me to wake up from. And then there is the Alarm clock. Easily to define your wake up time with the thumbweel and you set you daily alarm. Yep, thats right, a daily alarm, every day. There is no option of only setting up a single alarm for the next morning but only a daily alarm for all days to come. This works perfect for getting you out of the bed the next day. I am kind of sleepy then and normally don't like to bother to unconfigure the alarm clock. And usually i forget that also for the rest of the day. And this it what kicks me out of bed the day after. The forgotten alarm clock remembers its daily duties and kicks in on 6:45 saturday morning. I don't like having electronics next to my bed and so i can't even switch it off from there. stupid device, great email road warrior though.

in Monschau, Germany(the middle of nowhere), "The Web´s most ambitious RUBY ON RAILS Startup" started looking for some fellow ruby coder to kick-off their project. But there is a twist, a big one: MUST BE BORN BETWEEN JULY 24 AND AUGUST 22 OR NOVEMBER 23 AND DECEMBER 19 AND BE BETWEEN 18 AND 99 YEARS YOUNG

RoR, TDD, AJAX!, scalable websites, whatever you like, you name it you get it, its all there and you can become "importend" part and development team lead, Co-founder even!"NOVEMBER 23 AND DECEMBER 19 ", sigh, and so another bright future fades away for me, 16th Nov, misssed by a few days, phew.

oh, and some more requirements are piling up, you won't make it without

a deep love for humanity and the relentless will to facilitate happiness and emotional fulfilment for all.

yep, ok for me!, but as i said, wrong dates. The position is "Full-Time", but please keep in mind:

There is no immediate compensation for the first few months. Once the first round of financing is finalized then we will begin paying a salary.

so better bring you own, for the "entrepreneurial" spirit i guess. Me beeing you would contact Gabriella von Schadewitz right away in case i would be more lucky with the stars.

...most of the recent market signs suggest that the eventual demise of DRM
is inevitable. Consumers are more frustrated than ever that certain
file types are playable only on certain devices. The only real
questions are when, and will it be replaced...

Java, c/c++, PHP, Perl, C#, Python and Javascript are still ahead but non of the other languages gained a whopping 11 positions and Ruby is now in the Top10. Where will '007 lead us? seven? five? Ruby is mainstream now.

From the "Weichet von mir Dämonen!" department here is a little helper i found for the would-be ruby savvy system adminstraters. The Daemons ruby gem by Thomas Uehlinger is a very welcomed replacment for the shell and perl scripting mess you do for half of the day.

Daemons provides: .... scripts to be run as a daemon and to be controlled by simple start/stop/restart commands.

... run blocks of ruby code and control these processes from the main application.

...offers many advanced features like exception backtracing and logging and monitoring

...and automatic restarting of your processes if they crash.

I spread the word here as part of my ruby evangelizing efforts to bring light into your scripting hell and as maybe your first step onto the path of ruby enlightenment.

What it does is to install an executable ruby script by which you can start-up a webdav fileserver right from your comandline with no need for further setup.

WARNING: this is super alpha! tested on my macbook only!

webdav-exporter.rb ~/taxi

for example will export the taxi folder in your home directory. The webdav-exporter gem is build on top or Tatsuki Sugiura WEBrick WebDAV handler gem(gem install webrick-webdav), which in turn builds on top of the ruby build-in webrick server.

I tricked the webdav servlet into claiming DAV2 protocol compliance. This was to make writable mounts on my mac possible. With DAV1 and no LOCK method implementation my mac osx refused to mount the exported files as writable, and without writable mounts the whole webdav is not worth the efforts of course.

def do_OPTIONS(req, res) super res["DAV"] = "1,2" end

def do_LOCK(req, res) res.body << "<XXX-#{Time.now.to_s}/>" end

you see what i mean with tricked, but this is actually quite ok for 1. it works on my macbook, 2. it gets me rid of the annoying errors when not having a do_LOCK method at all and 3. the webdav rails plugin does actually not do any better concerning the LOCK implementation.

So, no need starting a rails app or talk to your sysad for easy filesharing any more. The server does HTTPS only and for the default 443 port you need root permissions. For the SSL stuff all credits go to Gabriele Marrone with whom i did discuss the issue on the ruby forum.

WebDAV was such a nice idea but i guess it was the greed in the cooperate computer industry which rendered this technology practically useless. Hardly any two implementations are compatible. If you wonder why i tricked the implementation instead of implementing it, go check out the WebDAV RFC, it is a disaster and i could not make sense of it(was not willing to waste my time on it). We are dwarfs standing on the shoulder of giants and with this gem i could make it working for me. If it works for you tell me, it not tell me also.

If you try and purchase any of this (HD DRM) content, you descend into a DRM nightmare of incompatibility and legal mires. Your monitor will not work with your Blu-Ray drive because your PC decided that a wobble bit was set wrong. You just pissed away $6K on a player, media center PC and HD TV for nothing, you lose.

oh man, ist der sauer.

hands up everyone who personally knows someone who got sued by the RIAA. Now, hands up everyone who knows someone who downloaded music or movies. Any guesses which one is bigger? Piracy, the better choice (tm).

I have no idea what Zombo.com stands for but "everything is possible". Words just don't do justice to its briliance. "The unattainable is unknown to zombo.com", trust me, go listen to it and experience a true 2.0 marketing masterpiece. Hint: don't look for interaction, just listen to it.

i got my the-venice-project beta test player download credentials on saturday. That is two days ago and i didn't even found time to check it out. When i can believe what the papers say, i'm part of a 6000 people strong elite! Yeah! I feel so special now. Just in case you don't now, The Venice Project

and is the next project of the guys which brought to us KaZaa and Skype before. So it might be worth checking out. And i really would like to do so, but it is windows only, argh. so i have to wait for being in the office on tuesday. today on monday, what an irony, i had no chance, because i spend the day in zagreb to visit the strategic IPTV project of two major german companies in the croation market. What can i say about the trip? Nothing i've seen will be part of the future of television/iptiv, that is for sure. Nothing worth talking about, only a nice picture i made, which i post tomorrow when i found the cam cable.

And The Venice Project? "So please don't give the application to anybody else..", ok, not quite unusual, but "..., or even show it to them"???

What the hell they are thinking? Do they expect me to become part of their secret armee just by signing up for a beta? And "We hope you enjoy helping us create the future of TV", yeah, sure you do.

"It's very early days for us, and we want to make sure that the right people see the right software, at the right time"

I can't decide. Do they want to make fun of me? Is this honest marketing? Do they now want me to keep the player secret or just want to force the opposite? I will check the player on tuesday and let you know, and who knows? Maybe i even post my very personalized beta venice player beta test account here. And that would be my very first cliffhanger now.

It is a tongue-in-cheek kind of page which implements a somewhat old and simple concept. The basic idea came up more than 10 years ago between me and a friend of mine, steffen meschat at art+com (now with google, blog?). When you have a set of syllables with vocals you can just combine them in any order and will always get speakable words. This works for italian operas and hiragana for example, so why not for generating hostnames? And when the cool dude downstairs from the office was joking about web2.0 hostnaming a while ago i remembered that old idea and decided to put it up for a test. Following a new the trend i spotted, we made it a "one page web application" and put it live. Now it is our start into the new venture of webapplications build on rubyonrails! when you like it, stay tuned for future updates.

have fun

ps.: We are hiring! looking for rubyonrails developers which want to make a difference. In case of interest, drop me a note: dluesebrink at idmedia com.creating tomorrow

Whenever you have worked with large institution or company, employed or in a project, you will know the pattern. Sooner or later you hit the wall, a barrier beyond getting your project moving becomes close to impossible, a kind of e=mc2 acceleration limit for managment. You might started in good hope for having your special project being started differently than all the failing others before. You maybe had a great kick-off and the backing from top-ranking executives, a clear goal and an common understanding on the strategic importance. And then, sooner or later, progress gets slower and slower. There are a lots of reasons for it and even in the smallest group, project management is far from being a self-burner. Project managment seems to be closer to an black art and I don't want to talk about it here, way to boring(read the book, it works). I only want to comment this single argument you will always hear:

This company can't do any better, it is in the companies genes, it is slow because it is so big and the processes are the reason for the project is only dragging along.

Wrong! Utterly wrong! This are just excuses from the people who are in charge and actually step back from taking the personal risk to make accountable, risky decisions on their own. Oh, yeah, they always claim they would if they could. No! They are in their positions at that company for a reason, choosing the comfortable cooperate payments structure with fixed bonus payments and a lifetime security plan over the entrepreneurial approach. Don't get me wrong here, this is perfectly ok. For them. But please, don't bother me with claiming it is not their fault. Please say something, like:

ok, i think you got the right idea here, but overall it is risky and it could fail and when i approve it and it fails it will be bad for my career. And when it succeeds it will just give me a just a minor boost beyond the raise i will get anyhow just for beeing here and keeping things calm and not getting my boss in trouble.

yes, it is in the company genes, YOU ARE the company genes. Blame yourself for not getting off the ground. Start mutating and evolve or keep going and go bust. farewell to extinction, and

i stumbled upon an interview with bjarne stroutstrup today, heros of my past. oh well, what can i say, such a long time ago. i started C++ in 1988 by reading the C++ annotated reference manual. We just called it the ARM. For years it was a bible for me. Page 168 a bizarre feature was described: "call by representation", not by value, not by reference, by representation. Anyone still knows what that is? Today i'm ruby promoter by all my heart but back then i could hardly imagine ever having a need for somethings else than C++. well, things are changing. Bjarne talks a lot about freedom of choice, maybe that is what got me so hooked on C++ back than. And now for all their difference, i see the similarities of C++ and Ruby. We allways said, you can shoot yourself into the foot with C++ easily, and this actually means freedom for me. Beeing able to do really bad to yourself, beeing in charge and having responsibilty for what you are doing. No nannyism. period. Ruby is the same. You can really mess up things, easily. So, young programmers of the world, go out and have a lock on what the old guys wrote, Design and Evolution of the C++ Programming Language is a great book. Understanding why things are there for a reason makes you a better programmer in any language.

ruby is the shiny new jewel for attacking all and any programming task. But it a has a dirty secret. No, i'm not talking performance here. I don't usally care for performance, it hardly doesn't matter with fast machines and low volume traffic. I'm talking about multimedia and thereby i basically mean gfx. A while ago i already checked for OpenGL bindings and in the past i played with rmovie, scruffy, gruffy and RMagick. RMagick is kind of mature and it got the job done. Still, I don't get to like RMagick though, that might be to the fact i did(and learned) coding on SGI machines for way to long(sigh), more than 10 years. There i got used to/hooked on the basic idea of integrated multimedia environments. SGI was way ahead at their times and it was a pleasure to join them on their ride, while it lasted(most of the time, but that is another story, for the history books maybe -> serious fun with sirus(tm) boards).

Nowerdays i make a living out of everything centered around internet related lifestyle oriented marketing driven projects, huh. Despite this prosaic description that is ok, actually it is great. I have a lot of really great cool people around me, working with them is a pleasure. But still, sometimes i got reminded to some old projects of mine and actually have the task of undusting some stuff for beeing revitalized in a museal context and than i go and check for updates of the above mentions mumedia bindings. And that is no fun. Way to slow progress there. I would love dropping all old-school technology(c++, Java) and just use ruby for taming the the beast (beast in this case are all modern gfx cards). Processing is java and can't win my heart. My current hope now is G3DRuby. And here is the deal: I will try my very best to help establishing solid multimedia bindings for ruby. For Q3 2007 i have an exhibition scheduled, until then i will look for places in opensource multimedia ruby land which might need a helping hand. Requests welcomed.

I turned 42. You know, the ultimate answer to the question about everything and so. Later that day i did lay some tarrot cards, the 3 card oracle and i got sun, jing-jang and the universe for past, present and future. not bad. i have a car somewhere standing in a shelter for years now already. Quite rotten and in desperate need of a major overhaul. But now, with such cards, i will aim for getting it back onto the road before ending my 42nd year. The car is a Jag XJC 4.2 of course. You can read the signs?

This manifesto shall not be forgotten. Provoked by the the gapingvoid request for manifesto submissions i was reminded of this importend piece of coder culture. The manifesto was part of making me believe in what i wasdoingat that time, damned maybe it was even (part of) the reason for not becoming an instant billionaire in the first new economy bubble.

What i don't get is, i need uname and pass, ok, but what for they want an wordpress API KEY and the API URL for it on the YouTUBE side? The API URL turns out just to be the blog posting url(../xmlrpc.php in my case) which still leaves me with the question of what do they need the my API key for? account credentials should be sufficient. tbc|investigated...

update: i couldn't get the YouTube posting to work, the embedded video you see above got inserted manually, sigh.

one more step towards it. Now there even is an "Official Ruby for Symbian Released". Nokia sells 400 Million phones a year, don't know how much of them are Symbian, but enough for beeing an interessting deployment platform. Hmm, lets go mobile!

for testing purpose i made some notes onto a web site of mine with the fleck annotation/graffiti tool for web pages. What can i say, it just works. One more proof for the feasebility of the concepts i tried to sell my client for nearly most of the year now, to no avail. They just don't see it, they are focused on business models :-) About which i just agree with Mr. Fletcher:

Fletcher: “If you don’t have an audience, it doesn’t really matter what your biz model is.”

This is just a believe i must confess, I never really used it for real, but in my view, GTD is just barking up the wrong tree, maybe the perfect solution in handling a problem, but you simple should not even have such a problem in the first place, because:

"In a game you can't win, you must change the rules"
James T. Kirk

What got me really suspicous are the examples. Come on, what a moron are you when GTD makes you jotting down "shopping for birthday present" somewhere? And no, this it is not a made up example, 6.4 million google hits I got for this little shopping example. Before drowning in a long rant on GTD just let me give you my wisdom about what might be the right tree to bark up: be focused on what you do.

That is all it really takes to be as good as you can get in what you are doing. GTD just simulates beeing focused! GTD nerds are getting this warm fuzzy feeling when they see their 30+ little projects and actions nicely organized in whatever supporting tool they use, the more the better. But however you do it, having such an overload of actions and projects is exactly the opposite of being focused. Being focused does not mean splattering your mind over the days in minute long fragments. When you are a programmer, then you now what I mean with "flow". The very best moments of my productive life where when getting into the flow of doing things, code just flows into your editor seemingly effortless. Loose things suddenly engage with eachother and the whole becomes more then its parts. For more body/sports oriented people that might be what happen when riding ocean waves on surfboards. There is no "just the next thing" to do, all is happening right now, at the same moment. We could now talk about buddhism and Heidegger and holistic approaches, but I don't want to bother you with that and I am no expert in neither of them anyhow.

"Change the rules", don't optimize in doing more, do less instead. Try finding out what? you want to be focused on, instead of optimizing how you can do so.

I had a perfectly quiet MacBook. Contrary to the MacBook Pro of my friend i never expierenced any hissing sounds when idle or suffered from always running fans. This is history now after the recent SMC update of Apple. For keeping the macbooks cooler they tuned the fan settings to effectivly keep the fan running all the time, at least with a mininum RPM. Whether the hissing sound is in direct relation to the fan speed i cannot tell yet. We are still speaking of a very low volume noise level here. You can't hear it at work in the office space so it took me a couple of days to realize this new reality, i just did not want to accept the truth. Now when stitting at home, sunday morning, quiet, coffee, i keep hearing it sizzling along. I would prefer my macbook getting hot instead of noisy, especially in the now upcoming berlin winter.

just in case you havn't seen it yet(hard to imagine). This is a must have poster print for any wholehearted ruby coder i think. Right back into the office on monday i'll push it onto the office plotter. kind of geeky, i know, but i just love graphs.

A couple of days ago i stumbled upon the SimpleConsole. Really a nice piece of software, pretty close to what i was pondering about already for some time. And just two weeks before i did put up (try: gem install app-ctx) my own take on that. App-ctx shares some of the design decisions of SimpleConsole like

ruby classes as controllers

automatic method invokation from arguments

parameter parsing and conversion

still though, app-ctx has some differences, and tries to be just a little simpler(and add some more). You might use classes, similar to SimpleConsole:

But I did not want to force this inheritance thing upon the humble user so she can use her own baseclasses(SimpleConsole::Controller maybe?). Next, i wanted to support blocks, just being more ruby like:

The general setup of the comand line i wanted to stay good old unix style: <comand> [options] [arguments...] only. I don't like these: <comand> --foo --bar=1 action --help where there are more options after the last argument.

And than there is the problem with resonable default values. You need configuration and app-ctx defines some clear rules on where to put them. On default, app-ctx pulls a YAML default values file from next to where your application script lives, e.g:

$ ~/bin/my-script.rb

preloads its default values from

~/bin/my-script.yml

Values from the command line then will simply overload setting from your config file and your app can't distinguish from where the values are actually coming. Thisway you can extract default values from your code an put them in a separate file.

But if you prefer to keep things together instead, you may also set defaults directly from the code:

app-ctx tries calling a c'tor of your class with a context argument and you can set your default values there. Last but not least, you can define from where to load the config file with a command line option:

~/bin/my-script --config=/tmp/bogus-setup-here show

will not load the ~/bin/my-script.rb but the one you supplied.

Thats most of the stuff i could recall right now and if you like it, go ahead use it. In case you do, i might feel challenged to put up some concise online documentation and a little tutorial. 'till then

My fault i did not read the documentation(where to find it?), and i'm still grateful for the dojo toolkit, but please, from a testScripting ant target i definitly do not expect 1) to install its configuration/extension/script files in my home directory(unasked!) and then 2) quitting with BUILD FAILED and complain about the author of the Ant build tool. This is rude.

I can agree with Alex Russels dislike for Java and Ant, but still, i would be perfectly pissed when i would be the the author of ant and Alex just complains about "horrendous design decisions by the authors". Maybe true, but please, at least a hint about what caused the problem should be given.
dluesebrink dl-mbook trunk/buildscripts: ant testScripting
Buildfile: build.xml

-check-config:

-fix-config:
[copy] Copying 5 files to /Users/dluesebrink/.ant/lib

[echo] +--------------------------------------------------------+
[echo] | Due to some horrendous design decisions by the authors |
[echo] | of Ant, it has been necessary to install some jar |
[echo] | files to your ~/.ant/ directory. Given the nature of |
[echo] | the problem, it will be necessary for you to re-run |
[echo] | your build command. |
[echo] | |
[echo] | The Dojo team apologies for this inconvenience. |
[echo] | |
[echo] | The system will now exit. |
[echo] +--------------------------------------------------------+

BUILD FAILED
/Users/dluesebrink/idmedia/Project-3/resources/dojo/trunk/buildscripts/build.xml:226: Sorry, please re-run your build command, it should work now

Total time: 1 second
back my pardon, but i doubt it. I wrote a lot of Ant files in my life, and never there was an unavoidable need to install .jar files in the home directory of the calling user. this is just ONE option. for me it looks more like beeing to lazy to bother, but i'm to lazy to track it down.

There was a time(for the ones old enough to remember) when not a single desk in the world was equipped with a Computer. Then came the Mainframe Terminal, just to be extinct shortly after by the Personal Computer shortly after. And soon, every office desk in the world was topped with a beige computer box, ugly as hell, but seemingly unstoppable from conquering every inch of our living spaces. Moms and Dads suddenly sitting behind huge an Cathod Ray Screens, with a beige PC Tower next to them. Then came the laptop, first a sign for higher ranking executive, but slowly but surely trickling down the career ladder down to even the most basic employees. Today schoolchildren are receiving their homeworks as Powerpoints by email and MIT's Negroponte started the one laptop per child project.

Now see the image! In some years from now, the PC will be gone. Invisible, we will be free again. Computer will be where we want theme, when we want them. And most of the time we don't want them where they are. And the cables will disappear as well. Strange, the once omnipresent computer is threatened with visual extinction.

One of the main reasons for the absence of viruses on the mac is the smaller market share of apple computers in the market. That is kind of common sense and used often in pro-Microsoft argumentations. Everbody seems to assume the amount of viruses for the mac will increase in the same way as they as they are gathering more and more market share. The same seems to be true for Firefox.

On the the assumption the main source of "evil-doers" is the the "axis of evil" you will find that the homelands of many of the virus coders are actually in economically weak areas. Creativity thrieves best under constraints, all kind of ever more secure bariers are circumvented with sometimes hard to grasp virtuosity. While they in general just don't deserve my respect for their doings, these virus coders definitly have my respect for their passion and technical excellence in fighting their way through the minefields of modern day security.

Anyhow, in economicly weak areas, the probalilty for joe coder to buy a taiwan PC clone are way higher than to fork over big amounts for a shiny new MacBook. And this will save Apple, for simply not having legions of underage virus coding experts to-be waiting to raid MacOSX land. This is to fact that they can't even afford to build the knowledge base in the first place.

Besides, good luck to Microsoft when trying to revoke Adminstrator rights from their employees with their in-house Vista release. Separating User and Adminstrator rights CLEANLY was a problem Unix solved approx. 30 years ago, at least long before i started with it, and that was in 1986.

i just called vodafon because my internet password was not working anymore. before sending a new password by SMS the operator did ask me for my secret phone password, so i told her. But she did actually not check it at all! How can i know? Because anytime i give my phone password, i have to spell it, the usual spelling differs from my password. Nice trick, just ask for a password to check peoples reaction to the question. secure, hu?

inspired by lazy-migrations-table-drop i thought this works for collecting unit tests as well. Decide on a pattern for unit test files(t_*.rb for me) and put this code in something like AllTest.rb and it will execute all units test in the current directory.