Steffest Digitale Pulptuur

Zolder gemep

a picture called mobile_6_52_38 PM_7252009zolder_DSC_5820.JPG (click to enlarge)

Allez vooruit
we zijn eraan begonnen!







(Posted by mobile phone)

Tags: in 't Nederlands, VerbouwenGeef je reactie (2)
 

Winamp database reader

a picture called winamplogo.jpg (click to enlarge)

I'm releasing a little tool/code snippet today for those DIY-people like me that like to tinker with their custom made ultimate personalised home media experience. (that's CUPHoME !)
One of the key elements is easy access to your music collection.
If you're serious about managing your music collection - and if you're using windows, you really have only 2 options: use Mediamonkey, or use Winamp.
iTunes on Windows really is a slow piece of garbage and Windows Media Player is a bit lacking in management features.
This "Battle of the media players" is over a year old but still very valid and spot on.
Mediamonkey uses SQlite as database so it's easy to interface with, but Winamp uses some propriety database format called NDE (Nullsoft Database Engine)
Although the format is somewhat documented, I was surprised i found very little code samples to connect to the winamp database from an external program. the documentation also seems a bit outdated as the internal binary structure seems to have evolved a bit.
Delphi to the rescue - writing a decoder for some binary format is actually a very satisfying pastime :-)
After a few hours I had a program that reads out the entire database and dumps it into a grid control, optionally exporting it to excel.
The source is here - should be easy to port to other languages.
Sample program is here (also includes source)

It's tested with the latest Winamp version as of writing: version 5.56.
It has a good chance of staying up to date as interfacing with Winamp seems to be a recurring theme over the years for my own projects.
Anyway - it's free to use in any way you want and comes with absolutely NO support :-)
Happy coding!

Tags: in English, ProgrammingGeef je reactie (1)
 

zolder ontwerp 2

a picture called 3D_zolder_kast2.jpg (click to enlarge)

Dit is het ontwerp voor onze zolderverbouwing dat ik in (het zeer formidastische) sketchup in elkaar gefloept heb, of liever: het WAS het ontwerp want inmiddels is dat ook alweer afgevoerd wegens te onpraktisch en te veel werk om (fatsoenlijk) te maken.
(en meneer den architect vond het ook nie goe)
Ik voeg het er maar even bij voor de volledigheid, want  zo'n wordingsprocess van een uiteindelijk ontwerp is best interessant om te zien evolueren.
Dit is dus weer afgevoerd, maar geen nood: het volgende ontwerp heeft - om even in software termen te spreken - al "Release Canditate" allures.
Nog een paar bugs wegwerken en we zijn klaar voor de lancering.

Tags: in 't Nederlands, Lifelog, VerbouwenGeef je reactie (0)
 

Sommige dingen kun je beter niet weten: Nespresso

a picture called nespresso.jpg (click to enlarge)

Sommige dingen kun je beter niet weten, Kennis is immers macht: Scientia potentia est
Het tegenovergestelde is ook waar: zalig zijn de armen der geest (Matheus 5.3) oftwel: Ignorance is bliss
Afin, genoeg met citaten gesmeten. Ik bedoel eigenlijk gewoon "Sommige dingen kun je beter niet weten" of zei ik dat al?
Soms denk ik bijvoorbeeld wel eens dat ik beter niet naar Barcamp Antwerpen was gegaan op 21 maart, of toch op zijn minst dat Anne (update: met dank aan Christophe) er beter niet voor had gezorgd dat er gratis Nespresso was.
Dat is namelijke ongelooflijk lekkere koffie!
Ja: het is een marketinghype, en ja: die capsules zijn duur en ja: het is een soort van koffieporno maar euh ... het is ongelooflijk lekkere koffie!
En dat wil je eigenlijk niet weten als je thuis naar je Senseo-machien zit te staren die wat gekleurde warme drap aan het produceren is ...
De gewone koffiezetter maakt ook lekkere koffie, maar dat duurt te lang en je hebt veel te veel koffie als je alleen bent.
Dat type van kennis nestelt zich dan in je geest en begint te peuteren en te kriebelen elke keer je een kop koffie drinkt (veeeeeeeel dus) en eigenlijk ook telkens je die f*cking Clooney op het scherm ziet
Uiteindelijk beginnen ook je medemensen zich bewust te worden van je stille lijden, en op een mooi moment strijken ze ze met de hand over het hart en geven ze je iets moois kado.
Tadaa! mag ik u voorstellen: mijn nieuwe Nespresso machien. Lekker man - en ik ben er superblij mee.
Volgens sommige snobs is het alweer passé en is het bij lange na geen espresso, maar wat zou het - het is ongelooflijk lekkere koffie!

Tags: in 't Nederlands, LifelogGeef je reactie (4)
 

Gewarpte kast

a picture called 3D_zolder_kast.jpg (click to enlarge)

Dit zeer coole ontwerp zou onze nieuwe zolder moeten worden.
De gewarpte kast is geen ontwerp van mij, maar van de fijne ontwerper Jeroen Theuns van Voet-theuns architecten.
Het gaf mijzelf ook nieuwe inzichten hoe je met rechte lijnen toch schier gebogen oppervlakten maakt die bovendien nog vrij eenvoudig zelf te maken zijn door een niet-al-te-verfijnde doe het zelver als ik.
Bij het uittekenen van de maten op de echte zolder bleek echter dat we toch niet zo goed nagedacht hadden over de ruimtelijke indeling die we wilden.
(Noot dat de "we" in de vorige zin eigenlijk een wijselijk eufemisme is - u weet wel hoe dat gaat in een huishouden met veel kerken die in het midden moeten blijven staan.)
Het plan werd dus weer afgevoerd en ik heb mijzelf in de sketch-up gesmeten ... nog een geluk dat dat zo'n fijn programma is om mee te werken, zodat het misschien nog wel iets leuks wordt. 
wordt zeker vervolgd :-) ...

Tags: in 't Nederlands, Lifelog, VerbouwenGeef je reactie (0)
 

Janne op kamp

a picture called jannebriefkamp2009.jpg (click to enlarge)

Janne is voor het eerst op kamp met de Scouts.
Vorig jaar ging ze ook al op kamp, maar toen waren wijzelf mee om te koken.
Deze keer is ze dus voor de eerste keer zonder ons 6 dagen weg.
Lang zenne ...
Vooral omdat het echt wel - pardon my french - zeikweer is in de Ardennen.
En als je dan zo'n briefje krijgt als hierboven vandaag, dan zal ik toch blij zijn dat het morgenmiddag 3 uur is en ze weer van de bus stapt ...

Tags: in 't Nederlands, LifelogGeef je reactie (4)
 

Mobile podcatcher

a picture called mobipodcatcher.jpg (click to enlarge)

As the tv-season is on hold during the summer months, I had to switch to another type of "media" to consume during longish train/bus rides, so I picked up some podcasts again I like to listen to.
These days mobile devices are also more and more "connected" to the web and downloading music and/or podcasts to your mobile device seems so tiresomely old ... so: streaming audio for the win !
There are several really good streaming audio clients on the various mobile platforms, but heck, I found it was really frustrating to get the updates from your favourite podcast and get your device to play the darn thing.
Most annoying, especially as it was not a technical issue but an "ease of use" and "interface" issue.
Conduits Pocketplayer does a semi-decent job, but that thing is bloated and painfully slow to load as it tries to rescan your local music library AND your feeds at every move you make. (besides that, it's not free)

As always, the "If you want it done better, do it yourself!" mantra made me tinker to create a very simple and fast way to reach my favourite podcasts. no need to reinvent the weel and create a player; a small web application would do to fetch the latest mp3 url's and feed it to a player.

tadaaa!:  http://m.stef.be/pod (works in every browser but it's optimised for your mobile device)

Keeping track of various RSS feeds yourself in any application is a bit a pain in the behind: you have to scan, validate and cache each feed at regular intervals which can quickly cause some major strain on your server.
This time i took the smarter route and created a connection to a system that does RSS aggregation better then anyone else in the world: Google Reader.

in Google Reader I label the podcasts i want with a tag "mobilepodcast" , then my podcatcher script simply fetches the 20 latest items of all feeds with that label.
I'll post the code for the Google Reader connection later, it's really an easy way to get a feed and you still get to process them the way you want.

Depending on your mobile device and the software your prefer, the application presents the audio files as a PLS playlist, a ASX playlist or a direct link to the mp3 file.
You can modify this by clicking the "settings" button to choose your preference.
On my mobile, I've setup Coreplayer to open .pls files automatically. It's hands down the best media player for windows mobile.

Future improvements might be to connect this with my mp3 library at home, allowing for streaming audio from the home pc, or with this collection, but we'll see about that ...
In the mean time: http://m.stef.be/pod it is.

 

Tags: in English, Mobile, Programming, Scripting, Tinkering, Web 2.0Geef je reactie (0)
 

Pimp your Picture Frame - part 1

a picture called imate_momento.jpg (click to enlarge)

Last week I bought one of those digital I-mate Momento Pictures frames from iBood.
As with most of the stuff you find on iBood, this item is part of some left-over stock because i-mate has decided to discontinue their picture frames service, but for a price of 50 euros, what can go wrong, especially as the frame sports a cool feature like Wifi!
Yep, it claims to load your images right of your local network or from the web.

As some reviews al ready prove to be very negative, I didn't expect much but in the end it's quite alright except for one mayor flaw: the thing doesn't load standard RSS feeds but instead relies on their propriety Momentum Live service to feed the device online content.
I could have lived with that except .... that service is discontinued :-)
Bummer, there goes my intention of having a cheap Picture frame for my mum to automatically show the latest updates pics of the kids ...

There are some ways to get the thing to connect to the web, but it involves tinkering with DNS-servers and mimicking the Momento live service with your own scripts but that's way too much trouble to be useful.

Still, I was intrigued and when that happens I know myself good enough to just pursue the possibilities or else it will be haunting my head for some weeks. Better to just get rid of it :-)

I decided I wanted a picture frame that not only loads pictures from an arbitrary RSS feed but also could show other "sidebar gadget" like content like twitter updates, resource monitors, textual RSS items ...
The momento frame does support Windows Sideshow, which means you can push little info snippets from your (windows) PC to the device to be displayed. This is very easy to setup and is also very easy to develop for, but it's also very limited as you have no control of the layout, the rate of updates or the amount of text that gets displayed.

In fact, the only thing the device does well is displaying jpg images - it IS a picture frame after all !
Luckily, loading pictures over wifi from your network works really well and is very easy to setup.
It works with the "shared media" function of Windows Media player - actually a pretty cool feature.
I hit another snag when Windows Media Player turned out to be notoriously flaky to update its media library when new pictures are being added so new items sometimes took several hours to show up ; so much for fast twitter updates :-)
After some experiments I found the solution: the Momento frame does store some pictures in its cache, but when a network connection is present it always fetches a fresh copy from your pc. Thank god for that as it means that when you update or replace an image keeping the same filename, the new picture get instantly loaded on the frame (the next time the playlist reaches that image)

Great! Now if I had a program that would update the same set of pictures with new stuff coming from my picture library AND the web, I was all set.
I didn't want to spend too much time with rendering textual items to images, after all, that's what HTML is for no?
If a screenshot of a webpage could be feed to the device, that would allow everything we need. 
Witness the birth of a new project: the "PictureFrame-o-matic" !

After some fiddling in Visual Studio I now have a program that

  • Can read standard RSS feeds
  • Takes any image enclosure it finds in the RSS, resamples it to 800x600 and stores it a folder, numbered with the name of the feed.
  • Can retrieve a screenshot of a  webpage and stores it as a jpg
  • Can combine 2 images (a webpage and a picture) with some overlay options to render some (web)content on top of the image.

the images are not added to the folder, but the existing images simply get replaced with new ones
the Momento device points to that folder and essentially displays the same playlist over and over again, only with updated pictures.

It works really well !
The layout is completely open as it is just HTML and/or flash content being saved as an image, the content is completely customisable as you can take any webpage or RSS feed as your source (e.g. news items or  Poetry lines, ...) and the rate of updates is instantly.

I'll leave it be for now, but it's certainly a project I want to continue some day.
There still are some drawbacks:

  • Webpages that require a login don't work (twitter e.g. so I had to create a custom page that shows my tweets from the twitter API)
  • Updates only work when your PC is on and the PictureFrame-o-matic program is running.
    The momento does have a good fallback system: if the PC is off or otherwise not reachable, it displays the last 50 pictures from it's cache.
  • it's a bit resource hungry for the hosting PC
  • It would be cool to integrate the existing windows sidebar gadgets but I have no idea (yet) how to accomplish that. (apart from taking a screenshot of the desktop and cropping it around the gadget, but that's lame)

Thing to do in the next future

  • create some dedicated webpages to be displayed on the device
  • create a website to configure each picture frame, setting what content should be displayed (which would allow you to configure the picture frame using your phone) sounds a lot like the interface i did for Tweetshirt.
  • post some screenshots
  • clean up the source code and post it here.
  • Maybe demo it on some barcamp or something (after all - the same engine could be used to feed the tweetshirt)

It's still not a good solution for my mum (as a PC has to be running all the time) but it's a nice gadget and I think this setup really gives a lame half-ass picture frame as the i-mate Momento a huge makeover.

On a technical side, Maybe this is the tipping point that I start liking .net and Visual Studio more then Delphi ... (never though I would say that)
It's just that pulling webcontent into your program, working with xml and juggling images around is soooooo much easier in .net then it is in Delphi. (sure, you can write .net in Delphi too, but let's not go there :-) )
Oh well ...

There, that's out of my system.
On to the next project.

Tags: Gadgets, in English, Programming, TwitterGeef je reactie (7)
 

How to cheat on online pols - part 2

a picture called tweeterwall.jpg (click to enlarge)

IJdelheid en Ego, 't is toch altijd weer prijs.
Er moet maar weer een populariteits wedstrijd opduiken of het is weer hot topic on Twitter.
Deze keer loopt er een Mr. en Ms twitter verkiezing.
Iedereen kan zijn stem uitbrengen en de resultaten zijn real-time te volgen.
Zo'n dingen laat ik meestal links liggen maar toen wat berichten opdoken dat er schijnbaar gefoefeld werd ging ik toch eens kijken.
Ja lap, he, net zoals de vorige keer werkt dat bij als een rode lap op een dolle stier. Online foefelen duidt op een software bug, en software bugs moeten gefixt worden - daarom doe ik mij job ook zo graag :-)
Zo'n twitterpoll is leuk, maar als er niet met gelijke wapens gestreden wordt, is er voor niemand iets aan.

Open online polls en verkiezingen zijn wreed moeilijk waterdicht te beveilingen, eigenlijk kun je net zo goed geen moeite doen om het te proberen, en Tweeterwall heeft er dan ook niet veel aandacht aan besteed.
Stap 1 is altijd eens kijken hoe iets werkt want als je weet hoe iets werkt, weet je waar de bug zit.
Een goede tool daarvoor is de Firefox plugin Firebug. Het laat o.a. exact zien welke url's worden aangeroepen.
Zo zien we dat als je op een plusje klikt er een url als http://tweeterwall.mallplace.com/tw/vote/123456789/99 opgeroepen wordt en inderdaad, als je deze url in een browser oproept wordt je stem netjes meegeteld.

En er staan cijfertjes in de url, dat is altijd leuk om iets mee te proberen.
Een snelle blik in de broncode maakt snel duidelijk dat het eerste nummer de gebruikers ID is, maar wat zou die 99 zijn?
Even proberen dat te veranderen naar bv 999 en ... OEPS! Plots staat de teller van die gebruikersID terug op 1 - jawadde, per ongeluk ontdekken we zo een wel erg drastische manier om "de concurentie" een hak te zetten ...

Een twittersearch toont dat een aantal twitter gebruikers plots al hun stemmen kwijt leken te zijn, wat bv o.a. bij @netlash, @bnox en @flexyflow het geval was.
Je kunt er zo goed als zeker van zijn dat dit allemaal te wijten is aan iemand die de url parameters aan het uitproberen is en - wellicht onbedoeld - de teller zo resette. Op zich al een duidelijk bewijs van gefoefel.
Ok, die 99 laten we staan dus.

Als we nu als een gek die URL gaan oproepen door bv op refresh te gaan meppen werkt het niet, want je IP adres wordt 20 minuten lang onthouden zodat je maar om de 20 minuten vanop dezelfde computer een stem kunt uitbrengen.
Je kunt natuurlijk je Firefox instellen om elke 20 minuten deze pagina te verversen, maar dat schiet niet op.
De truuk is om deze url vanop zoveel mogelijk IP-adressen (locaties) op te roepen, maar hoe doe je dat?
Je kunt het aan de oma van Pascal Vyncke vragen, die is daar schijnbaar erg goed in, maar je kunt het ook zelf, door mensen onbewust en onzichtbaar via hun browser die url te laten openen.
Dit kan door bv in een webpagina een iframe te zetten of zo, maar wellicht de simpelste manier is om de url als afbeelding op te roepen.
Zet bv <img src="http://tweeterwall.mallplace.com/tw/vote/123456789/99" alt="" /> op een webpagina en iedereen die de webpagina opent zal de stem-link openen vanuit hun computer als ze die webpagina openen, en dit zonder dat ze het weten.
Uiteraard krijgen zo ook een kapotte afbeelding te zien, maar dit kun je verbergen door bv
<img style="display: none" src="http://tweeterwall.mallplace.com/tw/vote/123456789/99" alt="" /> te gebruiken.
En zo zijn er nog tal van andere manieren om het systeem voor de gek te houden.

Flauw, maar als je de stem-resultaten wat in het oog houdt lopen er zo wel een paar foefjes ...
Ikzelf kon het ook niet laten hoor: toen @amedee een vat beloofde als hij de Mr verkiezing zou winnen, vond ik dat nog wel een mooie uitslag: zo zou iedereen er tenminste wat aan hebben, en ikzelf ben dan ook wel weer zo ego-gevoelig om even uit te testen dat je "het systeem verslagen hebt" of zoiets (Jaja, Steffest de rebel - kuche kuche)

Afin, zo gezegd zo gedaan, en even later stond @amedee dan ook met een ruime voorsprong op de eerste plaats te prijken.
Goed zo, behalve dan dat iemand het blijkbaar nodig vond om zijn resultaat te torpederen, en zijn teller met boven beschreven truukje te resetten.
Bon, Ik heb nog eenmaal het scriptje laten lopen en momenteel staat @amedee weer op 1 (geheel verdient uiteraard) en ik ga me er voor de rest ook niet mee bezig houden.
Deze afbeelding in een nieuw scherm openen
Voor alle duidelijkheid: ik heb enkel 2 maal @amedee zijn stemmen een duwtje naar boven gegeven, met alle andere rare fenomenen op die tweeterwall heb ik compleet niets te maken, hoor en vermits @amedee sprak over de kloof tussen de "haves en de haves-not in de informatiewereld" dacht ik - hup - laten we eens wat informatie vrijgeven.
(Want het is wel duidelijk dat ik zeker niet de enige of eerste ben die "op onderzoek" uitgaat)

Bottom line is: gebruik best geen online polls voor verkiezingen, of als je het dan toch doet - verzin dan een simpel systeem om het eerlijk te laten verlopen - open stemmen via twitter of zo.
Gegarandeerd dat er anders toch vals wordt gespeeld en dan is er voor niemand nog iets aan.

Hoe dan ook, mocht @amedee zijn vat geven, ik zal zeker wat meesponsoren :-)

Tags: in 't Nederlands, Twitter, Web 2.0Geef je reactie (2)
 

Moov it

Echt niet te doen wat zo'n jonge gasten allemaal krijgen als ze verjaren, en dan nog gene brol hé!
Nee, tegenwoordig is er echt wel supercool speelgoed.
Neem nu deze Moov contructie kit.
Het is zo'n beetje mecano, maar dan levensgroot zodat je er echt bruikbare constructies mee kunt maken. (En verbazend stevig kan ik er aan toevoegen)
Deze afbeelding in een nieuw scherm openen
WAAAHOOOOOWOW!!!

Deze afbeelding in een nieuw scherm openen 
BROOOOOOOOOMMMMM!

't is een leuke tijd om 4 jaar te zijn - en trouwens ook een leuke tijd om papa te zijn!
nog een electromotortje erop, en we zijn vertrokken.

Tags: Gadgets, in 't Nederlands, LifelogGeef je reactie (1)
 

There's no such thing as the best phone

a picture called keyhtc.jpg (click to enlarge)

Congratulations to MG Siegler for writing absolutely the worst phone review ever.
What's makes it so bad is that's on Techcrunch, the worlds most read tech blog and honestly, one can expect a bit more insight from writers of this blog ...
MG rants on how it's such a good move HTC killed the physical Keyboard of this supposedly next "iPhone killer"
*sigh*
maybe tech-writers should replace the word "phone" with 'car' in their minds ...
Do you ever see an article boosting the new Mercedes as the "BMW-killer" ?
Of course not: all car brands have their place, it's up to the buyer to pick the right one, depending on his needs, budget and personal preferences.
There's no such thing as "the best car" as everybody will agree to.
Phones are no different.
There's no such thing as the best phone, it's just depends on your needs, personal preferences and budget.
Some might find it hard to believe but the iPhone is not the device that everybody reflects there phone-needs to.
so MG doesn't like physical keyboards? For gods sake, let him buy a phone without one and stop whining.
In contrary, I find a physical full qwerty keyboard a must have feature and will never buy a phone without one.
It's quite simple actually

  • If you mainly want to use your phone to read and write emails, manage your contacts and manage your calendar, get yourselves a Blackberry
  • If you want a decent and easy phone which main function is a .. erm .. phone, get yourselves a Nokia
  • if you want the top in user experience and ease of use, and if you don't mind spending to much money, and if you don't care about things like "open platform", "freedom of choice" or "vendor lock-in", get yourself an iPhone
  • if you want an internet device, get yourselves a Nokia N900 or other internet tablet
  • if you want a device that does it all, and you can get used to  the resulting added complexity, get yourself a windows mobile device.
  • if you're a true geek, go Android


Or if you have some other criteria like low price, or insanely large buttons, or being compatible with your car-kit or whatever ... pick another: you have gazillion of equally good choices.

The term "iPhone killer" was stale 2 years ago, if anybody still cares to use it present day, in my book they will loose all journalistic credibility in a flash ...

Tags: Apple-bashing, Gadgets, in English, MobileGeef je reactie (1)
 

TWIIST

a picture called twiistlogo.jpg (click to enlarge)

Friday I attendend a brand new belgium conference for webdesigners and webdevelopers called TWIIST.be : The Way Internet Is Supposed To Be.

The goal was an affordable one day conference for like-minded web creatives, and boy, did they succeed!
I've been to my fair share of conferences but I must say this was about the best one: the topics where spot on and the speakers were top notch.

It started a bit slow though. The first session by Serge Jespers was OK, but misplaced: an audience of mostly professional webbuilders don't want to sit through a generic talk about Adobe Flash and AIR. I though it somewhat a missed opportunity that Serge didn't dive deep into a place for flash/flex in an open architecture sementic web, but oh well ... it was early and people still had to wake up :-)

Things started to get going with excellent talks about "Transient Semantics and Microformats" by Brian Suda and "Cost Effective Web Development" by Drew McLellan. I didn't fully agree with Drew, but still it was an interesting reminder to keep your common sense in everything you do.

After a HUGE Twunch, the star of the day took the stage: Aral Balkan about "Remember the Magic"
In one word: He was BRILLIANT. Allthough his talk was rehearsed up to the small details and he clearly is a very professional speaker who knows how to play an audience, it absolutely worked: It was the best session i've ever seen.
Honestly, if you ever have the chance to attend one of his talks, don't hesitate, you won't regret it. (apart from that, at the afterparty it turned out he's also an extremely nice guy and fun to hang out with ... man, what are the odds? :-) )

Elliot Jay Stocks had a bit of an ungrateful task to speak after the magical sparks of Aral, but his talk about the imporantce of beauty in absolutely everything was more than OK.
"Experiments in data portability" by Glenn Jones was a bit dry but right into my alley and the awesome Chris Messina did a nice wrap-up of the "The open, social web"

It really was a nice mix between webdesign and webdevelopment and the scale of the event was small enough so that at the very nice afterevent (yeah, free beer by Netlog !) you actually had a chance to talk to all of the speakers.
Apart from the great speakers, it was really nice to meet so many old and new contacts, the after event with DJ boskabout really was the cherry on the pie

I don't think I was the only one who liked it: I've seldomly read such raving comments on twitter about a conference!

All in all Filip Bunkens and Simon Schoeters did a GREAT job organising the event, I think absolutely everybody had a great day and absolutely everybody also is hoping they can pull a version 2 out of their hats sometime in the future.

TWIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIST !!!!

Tags: in English, Web 2.0Geef je reactie (2)