futtta in vps-land

Een korte followup over mijn zoektocht naar hosting: ik heb dus inderdaad voor de Linux VPS oplossing van Host Europe gekozen. Debian met (minimum) 256Mb ram, 15Gb HD en 1000Gb data transfer à 15 euro/maand. Tot nu toe ben ik zeer content van die keuze, alles werkt bijzonder vlotjes, danku.
VPS’en rock big time; root-access alsof je een dedicated server hebt, zonder een dedicated prijs te moeten betalen. Administratie van de eigen virtuele machine is overigens een plakje cake met de “Power Panel” van SWsoft’s Virtuozzo (de commerciële versie van het open source OpenVZ), waarmee je oa heel je VPS kunt rebooten, backuppen en/of restoren en waarmee je in extremis terug naar een maagdelijk lege VPS-image kunt switchen ‘just in case you completely fucked up’. (*)
Ik heb tussen de soep en de patatten ook al één en ander geïnstalleerd en geconfigureerd:

  • upgrade van Debian Sarge naar Etch gedaan (direct ook het meest ingrijpende)
  • de configuratie van sshd, apache, mysql en php aangepast om de boel veiliger te maken
  • de configuratie van apache en mysql gewijzigd om het geheugenverbruik wat te beperken (256Mb is uiteindelijk niet verschrikkelijk veel)
  • eaccelerator installeren om php “wat” te versnellen

2 kleinere sites, waaronder mijn dochterkes pagina’s, zijn al verhuisd en ik hoop dit weekend ook het forum van mijn vrouwken grondig te migreren van het allang ter grave gedragen yabbse naar smf. Dan rest mij enkel het verhuizen van wat shell-scriptjes (oa mijn hpbuilder.sh) en andere test php-prullaria om vervolgens voorgoed uit te loggen uit mijn oude trouwe Gentoo Linux server, een Dell desktopje met grootheidswaanzin eigenlijk. We hebben het 4 jaar lang heel goed met elkaar kunnen vinden, mijn srv-ict-lxfgo en ik 🙂
(*) Wie op basis van bovenstaand enthousiasme een pakketje bij Host Europe bestelt, mag bij “Werber” altijd 143364 invullen, dan krijg ik van mijn nieuwe Duitse vrienden misschien cadeautjes, virtueel geld of gewoon een been om op te kauwen.

Terracotta: transparante clustering voor Java?

terracotta logoNet gelezen op CMSWatch Trends; Terracotta is een nifty open source oplossing om Java-applicaties transparant te clusteren. CMSWatch vat de werking vlotjes als volgt samen:

“it works by clustering the Java Virtual Machine in such a way that even a participating JVM itself doesn’t know that it has been enlisted in a coordinated effort of any kind. Through a clever bit of boot-time dependency injection, Terracotta patches a handful of core JVM memory-management bytecode instructions, achieving transparent virtualization across any number of enlisted VMs, under the control of a Terracotta server that lives in “aspect space.” The Java memory model is not altered. Application code does not have to handle locks any differently or follow any special APIs, or even know that it’s been clustered.”

Terracotta kan op die manier zowat alle bekende Java-frameworks en -applicaties clusteren. Een greep uit het lijstje; Spring, Struts, Hibernate, Lucene, Wicket, Rife, Tomcat, JBoss, maar ook Bea Weblogic en IBM Websphere. Terracotta kan voorts instaan voor HTTP session replicatie (volgens benchmarks veel sneller dan Tomcat Pooled Sessions) en voor Distributed cache management (met Terracotta kan de beperking van de JVM heap size omzeilen).
Dat ziet er mooi uit, ook al snap ik het allemaal nog niet 100% (straks de demo eens bekijken, ziet er mij ‘for dummies’ uit). Maar U bent misschien wel al volledig mee? In dat geval: waar wacht U dan nog op? 😉
Aanvullende vraag: heeft er hier iemand al ervaring mee? In een productie-omgeving? Commentaar welkom!

Gezocht: website search

We zijn op het werk op zoek naar een nieuwe search-oplossing. De huidige zoek kan enkel content in het eCMS-repository van onze portal ontsluiten. Aangezien verschillende subsites niet meer in die te complexe omgeving zitten, ontbreken er veel relevante resultaten. Daarom zoeken we dus een min of meer kant-en-klare crawler-based oplossing (software of “in asp”) die al onze sites moet indexeren (gescheduled en ‘on demand’) en die, mits aangeroepen met de juiste parameters, resultaten voor 1, enkele of alle sites teruggeeft in de juiste taal en in de juiste look & feel.
Ik bekeek Searchblox (software) en Google Custom Search Business Edition (asp) al, maar ik twijfel er niet aan dat er nog goeie (en misschien wel volledig open source) oplossingen zijn. Wie ervaring met deze of andere producten heeft; de comment box hieronder is all yours, of contacteer me rechtstreeks.

Web 2.0 insecure? Bullshit (of dan toch grotendeels en nu ook met update)!

Op de Black Hat conference in LA werd gedemonstreerd hoe een GMail- of Facebook-sessie kan worden gehackt.
Voor zover ik kan zien, werd hier eigenlijk een wijd open deur ingetrapt; op een (Wifi-)netwerk alle verkeer naar bv. gmail of facebook sniffen, de session-waarde uit de cookie overnemen in de eigen cookie en voor je het weet zit ik in uw mailbox te snuisteren.
Het probleem heeft eigenlijk helemaal niets met web 2.0 te maken, maar gaat over de vreemde beslissing van oa. Google en Facebook (en eigenlijk zie je dat bijna overal) om enkel het login-proces te beveiligen (achter https te zetten). Eenmaal succesvol aangelogd ga je terug naar onbeveiligd verkeer (http zonder de s van secure) en dan is je cookie dus leesbaar voor iedereen die aan je netwerkverkeer kan.
De oplossing voor GMail is alvast eenvoudig: als je als URL zelf https://mail.google.com ingeeft, ben en blijf je in https en is ook je cookie niet meer zomaar te lezen. Ik heb mijn bookmark al aangepast 🙂 Bij Facebook en Linkedin lijkt dat alvast niet te lukken.
Meer info:

Update: ondertussen zit ik op de trein (bovenstaande had ik nog snel-snel op het werk geschreven) en ik heb nu even tijd om wat verder uit te weiden (en open deuren in te trappen) in de vorm van een paar vragen en antwoorden.
V: waarom zijn die (sessies in) cookies nodig?
A: omdat het web (het onderliggende http-protocol) eigenlijk ‘stateless’. Een request (de logon op Facebook bv.) kan aan serverkant enkel aan een volgende request (narcistisch bekijken van je vriendenlijst) gelinkt worden door middel van een sessie. Die sessie wordt geïdentificeerd door een sessionid, die maar op een paar manieren kan worden uitgewisseld; in een cookie, in een url (als parameter in een GET-request) of in een form (als parameter in een POST-request). Van die drie methodes is een cookie ontegensprekelijk de properste, maar qua security zijn ze in principe quasi even (on-)veilig.
V: waarom steken Google en al die andere hot-shots hun applicaties dan niet volledig achter https?
A: de s in https betekent dat alles geëncrypteerd wordt. Encryptie betekent dat de processoren aan ontvangende maar vooral verzendende kant wat meer werk hebben en dat de hoeveelheid data groter wordt (wat een geëncrypteerde tekst bestaat in principe uit meer karakters dan het origineel). Omdat Google, maar meer nog Facebook, Linkedin en andere fancy applicaties gebaat zijn bij het beperken van CPU-load en te versturen data, werken ze dus liever gewoon in http.
V: en kan die sessie dan niet op een andere manier beveiligd worden?
A: in principe wel, maar dan begeeft een developer zich in woelige wateren. Je zou aan serverkant kunnen bijhouden vanop welk ip-adres de gebruiker inlogt (evt. met nog een paar andere parameters zoals useragent van de browser) en dat voor elke request opnieuw controleren. Als een hacker dan met een sessie aan de haal gaat, is de kans groot (maar niet gegarandeerd) dat die parameters niet overeenkomen en dan kun je die malafide gebruiker vragen terug in te loggen. Andere (aanvullende) mogelijkheden zijn het beperken van de geldigheid van een sessie en het afblokken van gelijktijde gebruik van dezelfde login (het gelijktijdig gebruik van dezelfde sessie). Maar met al deze “oplossingen” is de kans groot dat je op bonafide gebruikers zult moeten lastigvallen om terug aan te loggen of zelfs buitensluiten (in het geval van concurrent sessions) . En dat maakt gebruikers zenuwachtig.
Conclusie: er is geen ontkomen aan, je moet https echt vanaf login tot aan de logout gebruiken (en voor alles, ook images in die pagina’s, anders krijg je in sommige browsers lelijke security-warnings). Eén troost: er bestaan hardware-oplossingen (ssl-encryptie devices en insteekkaarten) om de impact op CPU-load tot een minimum te beperken. Met de grotere hoeveelheid dataverkeer zul je dan maar moeten leren leven 🙂

Terug naar de command line!

ms word screenshotMijn echte fans weten het al, ik ben zelfverklaard lid van de Kerk van de Penguïn en aspirant Command Line Ridder. De command line (CLI) is misschien niet de meest vanzelfsprekende user interface, maar het is schier onmogelijk om de ongelofelijke kracht van taal (want daar gaat het op de command line over) om te zetten in een visuele representatie. En het lijkt erop dat taal als ‘aanstuurmechanisme’ aan een comeback toe is!
De kracht van taal
Is het toeval dat de bekendste internet-applicatie (Google eh pippo, niet Second Life) puur op basis van taal werkt? Waarom is desktop search één van de belangrijkste functionaliteiten in Windows Vista (en daarvoor al in Mac OS X Spotlight en in Google Desktop)? Omdat taal een ongelofelijk krachtige manier is om software aan te sturen. Een meer traditioneel CLI voorbeeld misschien nog; om de hostnames van alle unieke bezoekers van deze blog te vinden die mijn babelfish-vertaling-hack gebruiken (en dat zijn er niet bijster veel, waar zijt ge eigenlijk mee bezig Goossens?), plak ik de in- en output van enkele commando’s met een paar pipes aan elkaar tot ik iets als dit heb:

grep babel wwwlogs/e-cafe.be | grep 302 | cut -f 1 -d ” ” | sort | uniq | nslookup – | grep “name = “

Et voila, daar staan ze alle twee. Dat kan natuurlijk ook in een grafische gebruikers omgeving (een GUI), met pakweg MS Excel. Maar daar ben je dan wel echt net iets langer mee bezig (ik tel een 10-tal stappen, van het openen van Excel over het importeren van de data met de wizard en het toepassen van 3 filters tot het scripten van de nslookup).
GUI vs CLI
Maar dit is niet de zoveelste anti-MS blogpost, in Mac OS X en zelfs in al die Linuxen is de grafische user interface ook de de facto omgeving. Shell-scripten (bat-files! cmd.exe!) kan ook in Windows en wat meer is, Microsoft heeft onlangs PowerShell uitgebracht (gratis te downloaden) waarmee ze -in eerste instantie voor sysadmin-taken- volop voor de kracht van de CLI gaan. Nee, het gaat me hier eigenlijk over het feit dat een grafische interface, met die mooie icoontjes en geneste menu’s, in bepaalde gevallen eigenlijk minder gebruiksvriendelijk en productief is. Zoals een niet-grafische interface voor bepaalde taken (bv. het bewerken van foto’s) ook minder geschikt is. En -hier komt mijn langverwachte pointe- dat een hybride vorm van een GUI en een CLI ons op dat vlak misschien de toekomst is.
Best of both worlds
Enter Humanized. Dit klein Amerikaans bedrijf werkt verder op basis van de concepten van de inmiddels overleden Jef Raskin. Raskin was het brein achter de Macintosh en besteedde de laatste jaren van zijn leven o.a. aan Archy, een radicaal andere user interface. Eén van de eerste producten van Humanized, Enso Launcher, brengt een paar van de concepten van Archy nu naar Windows. And I love it!
enso learn as screenshot (from the humanized site)Eenmaal de “30-days free trial version” van Enso Launcher geïnstalleerd, is je shift-lock (ofte caps-lock) weggekaapt door de software (good riddance). Met die toets activeer je vanaf nu Enso om alle software op je computer op te starten door ‘open <programmanaam>’ in te tikken. Enso kent al je software al en zal, aan de hand van de letters die je invult, suggesties doen die je met de cursor-toetsen kunt selecteren (beetje zoals Google Suggest). Maar er is meer; je kunt Enso nieuwe commando’s leren (ik moet bv. enkel “open wr” typen en “write blog” te selecteren om hier te komen schrijven, of “open kcrw” om naar het fantastische kcrw te luisteren), je kunt via Enso een window (of tab in een browservenster) naar voor halen, Enso kan rekenen maken (klinkt stom, maar is eigenlijk best handig), geselecteerde tekst omzetten in lower- of uppercase, copy/pasten, googlen, …
Dat de Launcher maar het tipje van de Enso-ijsberg is, blijkt uit de presentatie die Asa Raskin op de Google campus gaf onder de titel “Death of the desktop”. Wie tijd heeft (het duurt algauw toch een uur en half, maar ) kan die hier bekijken.
Browsers?
mockup of bookmarks and search (from the google labs blog) Wie op de tags bij dit artikel let, heeft misschien al gezien dat ik dit ook onder ‘browser’ heb gecatalogeerd. Waarom? Wel, ik las op de Firefox Labs blog dat men daar overweegt om bijvoorbeeld de search-box op die manier te ontsluiten en om tekst-gebaseerde bookmarking te introduceren. Als ik kijk naar de chaos in mijn diep geneste bookmarks-folder, dan kan ik me het voordeel levendig inbeelden. Dit wordt ongetwijfeld vervolgd!

decode mp3 to wav linux language nl language nl?

Via blogs over blogs (ongelofelijk hoe populair die zijn) en over seo ben ik op http://www.wordsfinder.com/traffic.php gekomen. Na wat spelen daar ben ik tot de conclusie gekomen dat de keywords “decode mp3 to wav linux language nl language nl” me heel wat traffiek zouden kunnen opleveren. Dat ik plots enkele duizenden of zelfs maar honderden rippers per dag over de vloer zou krijgen, durf ik sterk betwijfelen, maar omdat het hier inderdaad niet altijd over borsten en billen moet gaan, een korte howto over het omzetten van mp3 in wav’s in Linux met de lame, mpg321 en ffmpeg.
ht is killing music .. and it’s about time too (hattip the ex)lame
Lame (“LAME Ain’t an Mp3 Encoder“!) is een MP3 encoder en decoder. Vanop de linux command line kun je een mp3 omzetten naar wav met volgende opdracht:

$ lame –decode Surfin__USA_edited.MP3 Surfin__USA_edited.wav

De optie die het hem hier doet is decode en daarover vind je in de lame man-page:

–decode
Uses LAME for decoding to a wav file. The input file can be any
input type supported by encoding, including layer II files.
LAME uses a bugfixed version of mpglib for decoding.
If -t is used (disable wav header), LAME will output raw pcm in
native endian format. You can use -x to swap bytes order.
This option is not usable if the MP3 decoder was explicitly dis-
abled in the build of LAME.”

mpg321
mpg321 (“mpg321 is a Free replacement for mpg123, a very popular command-line mp3 player”!) kan dat ook probleemloos en vooral heel snel in vergelijking met lame (zelfs op mijn dsl in qemu op windows):
$ mpg321 Surfin__USA_edited.MP3 -w Surfin__USA_edited.wavUit de mpg321 man-page:

-w N, –wav N
Write to wav file N instead of using the audio device. This option
will be preferred if –cdr or –au are specified too. Specifying ‘-‘ for N
will cause the file to be written to standard output.”

ffmpeg
ffmpeg is een heel ander paar mouwen. Niet omdat ffmpeg mp3’s niet in wav’s zou kunnen omzetten, wel integendeel: ffmpeg kan 10-tallen types audio- en videobestanden converteren naar bijzonder veel andere formaten. Soit, om onze Engelse Beach Boys uit hun mp3 op de wav(-es) te krijgen doen we:

$ ffmpeg -i Surfin__USA_edited.MP3 -ar 44100 ffmpeg-Surfin__USA_edited.wav

En vraag me niet waarom, maar ik kreeg dat toch wel niet aan de gang zekers? Het lijkt erop dat ffmpeg over een fout in het bronbestand valt waar lame en mpg321 geen problemen mee hadden. Een andere mp3-sample gezocht (van de nieuwe Nine Horses CD) en dat werkte idd wel prefect:

$ ffmpeg -i 02.mp3 -ar 44100 02.wav

Aangezien ffmpeg zoveel bestandsformaten en audio- en video-codecs aankan, verwijs ik je graag verder naar de ffmpeg documentatie. En blijf er met uw vuile fikken van als ge enkel “van mp3 naar wav” wilt doen, mpg321 of lame volstaan ruimschoots!
Misschien besluiten met de -licht ontmoedigende- opmerking dat lame, mpg321 en ffmpeg niet noodzakelijk op uw linux-systeem staan en dat, zelfs als ze er staan, mp3-decoding niet persé zal werken. Alles hangt af van de Linux-distributie die je gebruikt en op welke manier de makers lame, mpg321 of ffmeg gecompileerd hebben.
En ik ben benieuwd of hier nu horden googlers op af zullen komen vliegen 😉

De volgende web (r)evolutie is hier (bijna)!

some logo, not telling you what it’s from though :-pWeb 2.0: been there, done that? En wat nu? Wel, Tim Berners-Lee en andere visionairen beweren dat de toekomst van het web semantisch zal zijn. Waarmee ze bedoelen dat informatie op het web betekenis moet krijgen voor machines (software), zodat die zelf verbanden kunnen leggen om die verzamelde data dan aan de gebruiker te presenteren. Het idee van Tim Berners-Lee is ondertussen al meer dan 5 jaar oud en er is in de praktijk eigenlijk nog niet veel gebeurd op het vlak van het semantische web. Maar nu lijkt er een doorbraak op til met een elegante en betrekkelijk eenvoudige oplossing om web-data te structureren.
microformats logo De volgende web (r)evolutie zou dan ook wel eens kunnen worden ontketend door microformats. Dat is informatie in gewone web-pagina’s die in de html-code extra getagged wordt, om diezelfde pagina ook voor machines en software bruikbaar te maken. Een heel eenvoudig voorbeeld met een gewone link:

<a href=”http://e-cafe.be/frank/”>frank goossens</a>

een beetje aanpassen naar

<div class=”vcard”><a href=”http://e-cafe.be/frank/” class=”url fn”>frank goossens</a></div>

en mijn naam en de url van mijn (shabby) homepage zijn ontsloten middels de hcard-microformat en daarmee ook “machine-readable”! Voor hcard zijn er nog veel andere attributen (adres, geboortedatum, nickname, foto, …) en daarnaast zijn er ook microformats voor bv. kalenderinformatie (hcalendar), recensies en tags. In die laatste incarnatie worden microformats overigens nu al ondersteund door zowat alle blogsoftware.
Ja, en dan?
En wat kunt ge daar dan mee Goossens? Awel; de gestructureerde informatie in microcards kan in principe gelezen worden door je browser, door zoekmachines of door andere gespecialiseerde software. En daar kan die data aangevuld worden met andere gestructureerde informatie om al dat moois dan voor uw en mijn gebruiksgemak te presenteren. Het valt bijvoorbeeld te verwachten dat zoekrobotten (technorati heeft dit al in de keuken staan) microformat-informatie zullen verwerken en gebruiken om zoeken op iets als “alle events in Gent van 14 tot 23 juli” in kalender-formaat mogelijk te maken. Of dat je browser microformats herkend en je die rechtstreeks in je contact-, kalender-applicatie of in google earth/ maps kunt binnenhalen (spoiler: dat kan nu al, lees vooral verder).
Veel beter uitgelegd
Vorige maand hield FF-user experience designer Alex Faaborg een presentatie over microformats die in dit kader zeker mag gezien worden (link naar slideshare-presentatie).
De doorbraak
operator screenshotMicroformats bestaan ondertussen 2 jaar, maar er zijn een paar stevige redenen waarom de doorbraak er in 2008 zit aan te komen; ze zitten dus in Firefox 3 en Internet Explorer 8 zal die vermoedelijk ook ondersteunen (Gates gaf zijn zegen in 2006). Er is overigens nu al een microformats extensie beschikbaar voor Firefox 2; Operator, ontwikkeld door een IBM-developer, dat kan ook al tellen als geloofsbrief. Operator vormt overigens de basis van de microformats-ondersteuning in FF3.
Anderzijds lijkt er ook aan de kant van websites ook wat te bewegen: sites als upcoming.org, plaxo, salesforce en linkedin bieden hun info nu al via microformats aan. Aan de kant van “website beheer software” zijn ontwikkelaars van open source systemen als Drupal, MediaWiki en WordPress microformats aan het integreren. Het lijkt me niet meer dan logisch dat dit een selectiecriterium voor keuze van corporate webcms’en zal worden (waarbij CMS’en die op basis van contenttypes werken, duidelijk in het voordeel zijn).
Hoort U het ook?
Wat ajax gedaan heeft voor web 2.0, zullen microformats voor <insert buzzword here> doen; met betrekkelijk eenvoudige technologie de basis leggen van ontwikkelingen die het web naar een volgend niveau kunnen tillen. Wie een site beheert waar contact-gegevens of gebeurtenissen op gepubliceerd worden, heeft de klok horen luiden, ga nu uw klepel zoeken!
Meer info:

Gezocht: linux (vps-)hosting

wikipedia serverkast in amsterdam, van wikicommonsIk ben plotsklaps op zoek naar goeie en goedkope hosting, waarbij volgende features belangrijk zijn:

  • linux (liefst ubuntu of debian, maar redhat ofzo zal wel lukken en in extremis ook freebsd ofzo)
  • shell-access met ssh (inclusief port forwarding!)
  • php5 en mysql5
  • root-toegang (eigenlijk vooral om sshd ook op de https-poort te kunnen zetten, zodat ik me door de ambetante company proxy hier kan wurmen)

Dat ruikt dus naar VPS-hosting en dit Duitse aanbod lijkt me wel interessant en is alleszins goedkoop. Iemand nog tips? 🙂

Test uw technologische nuttigheid!

Stel dat ge straks niet naar het zuiden van Frankrijk, maar naar pakweg de de 1ste eeuw na Christus vertrok. Denkt ge dat ge met uw kennis van het moderne leven en zijn technologie de wereld vooruit zou kunnen helpen? Dat ge de mensheid met uw inzichten een paar eeuwen in fast-forward zou kunnen stuwen?
Omdat ge nooit weet wat er bij uw favoriete web-reisbureau in last-minute-aanbieding ligt, kunt ge hier een snel online testje afleggen om de technologische nuttigheid van uw aanwezigheid in de tijd van Jezus te laten inschatten.
Mijn resultaat? Ik kan met trots -en vooral veel verbazing- schrijven dat ik Jezus en zijn tijdsgenoten zomaar de 17de eeuw in zou kunnen katapulteren;

i am technologically usefull!!! :-)

Blijkbaar zijn oppervlakkige feitjeskennis en een paar berekende gokken voldoende om de wereld vlot de nieuwe of zelfs de moderne tijd binnen te loodsen. Wat veel zegt over de moderne tijd, natuurlijk … 😉
En hoe doet gij het, in de test?

Speelgoed voor op de fiets

garmin fietscomputer met gpsEen paar dagen geleden toonde mijn fietsenmaker mij leuk nieuw speelgoed; de Edge 305 fietscomputer van Garmin met GPS, hoogte- en hartslagmeter. Daarmee kun je dus, zonder dat je voor de rest ook maar iets op je carbonnen of aluminiumen ros moet monteren, niet alleen informatie over snelheid, afstand en tijd, maar ook over overwonnen bergtoppen, verbruikte calorieën en hartslag bijhouden. Sjiek! Nifty! Geeky zelfs! Maar of ik dat nu echt op mijn Dahon vouwfietsje wil monteren? 😉
Garmin heeft blijkbaar ook horloges met hartslagmeter en GPS. Dat doet mijn 2de handse Polar M51 een beetje bleekjes uitvallen natuurlijk.