Verhuis je blog zonder twee keer na te denken!

Het leven op de elektronische snelweg kan zwaar zijn: Koen Fillet was bijna een volledig jaar zijn kluts kwijt omdat de Leeskamer-blog van naam én URL was veranderd. Hij sprak deze ochtend zichzelf, Jan Coucke en de wereld dan ook enigszins vermanend toe;

“Verander je ouwe vertrouwde blog niet zomaar van naam en van adres. Denk twee keer na, want je lezers ben je kwijt.”

Hij heeft gelijk natuurlijk; door een ondoordachte verhuis kun je heel wat lezers rechtstreeks (rss-volgelingen of echte trouwe bezoekers) en onrechtstreeks (zoekrobotten en bezoekers die via zoekmachines op je site komen) verliezen.
Beter twee keer nadenken dus. Of gewoon verder lezen, dat zou U ook kunnen doen. Want om mijn bloggende medemens al dat dubbel gepeins te besparen, zal ik hier de truuken van de foor opsommen, zoals ik die gebruikte bij mijn verhuis van het wordpress.com-platform naar een eigen wordpress.org-installatie.
Op je oude blog zou je volgende dingen kunnen doen:

  • je verhuis ruim op voorhand aankondigen (met url natuurlijk).
  • Van de laatste blogpost maak je natuurlijk een duidelijke doorverwijzing naar je nieuwe blog, met link en al.
  • Je zorgt er dan voor dat die laatste tekst het enige zichtbare artikel is voor wie op de homepagina komt.
  • Laat je oude blog voor de rest gerust staan, maar kleed hem wel grondig uit:
    • Exporteer alle teksten (inclusief commentaar).
    • Laat in je (populaire) posts enkel de eerste paar zinnetjes staan en link voor het vervolg door naar je nieuwe blog.
    • Verwijder commentaren en zet de commentaar-optie uit.
    • Laat zoveel mogelijk interne links direct naar je nieuwe blog verwijzen.
  • Publiceer de rss-feed van je nieuwe blog op je oude blog.

Op je nieuwe blog ga je dan bijvoorbeeld op deze manier aan de slag:

  • Importeer alle blogposts (inclusief comments) van de oude versie.
  • Pas interne links in die geïmporteerde tekstjes aan om te voorkomen dat je lezers terug naar het verleden worden gekatapulteerd.
  • Publiceer de eerste dagen gerust een artikeltje meer, zodat je lezers zich direct thuis voelen.

Vraag voor de rest aan de eigenaars van sites waar je blog vermeld wordt om dat adres aan te passen. En niet onbelangrijk voor je rss-lezers tenslotte: gebruik feedburner om je feed te publiceren. Nu, direct, weken, maanden en jaren voordat je verhuist al. Het is een fantastische gratis dienst en op het moment van de waarheid moet je dan enkel je feedburner-instellingen aanpassen en al je rss-volgelingen verhuizen mee zonder dat ze daar zelf iets voor moeten doen.
Misschien een beetje neurotisch allemaal en “your mileage may vary“, maar in mijn geval werkte dat wel goed. Regelmatige lezers verhuisden dankzij de aangepaste feedburner-feed automatisch mee. Wie m’n blog op de gewone manier bezocht, ziet op m’n uitgeklede wordpress.com-blog dat ik verhuisd ben èn direct ook links naar mijn laatste posts op mijn nieuwe stek. Zoekrobotten worden via m’n oude site op allerlei manieren doorverwezen naar m’n nieuwe onderkomen en vinden daar direct ook inhoud om te indexeren. Zolang Google nog resultaten uit de oude blog toont (en dat zal nog een tijdje zo zijn), kunnen toevallige bezoekers daar nog proper landen om daar dan naar m’n nieuwe site doorverwezen te worden.
Dat was het zo ongeveer denk ik, veel meer valt daar niet over te vertellen. Succes met je verhuis!

my sftp beats your ftp’s ass big time!

Het klinkt onwaarschijnlijk, maar soms wordt me nog gevraagd om de FTP-toegang naar een unix/linux-server waar ik vaagweg iets mee te maken heb, open te laten zetten. Ik zeg dan steevast “Neen”, want ik ben -dat weet ge- een moeilijk mens. Daarnaast kan ik mijn botte weigering ook met een paar stevige argumenten staven, zoals daar zijn:

  • FTP is by design absoluut geen veilig protocol
  • op een server mag nooit meer geïnstalleerd staan dan het allernoodzakelijkste; dit beperkt onnodig gebruik van system resources en maakt de attack vector voor hackers (crackers) kleiner
  • en vooral: er is een fantastisch alternatief, SFTP

Mijn antwoord is in de realiteit dus eerder: “Neen, maar ge kunt wel SFTP-toegang krijgen” en ik vervolg met “Dat kan ongeveer hetzelfde, maar het is een uitbreiding op Secure SHell en staat standaard al op de server geïnstalleerd”.
“Maar dat kennen we niet, SFTP”, verzetten de laatsten der FTP’ers zich soms nog. Ik verwijs hun dan naar het sublieme WinSCP voor Windows of naar de FileZilla voor Windows, Mac OS X of Linux en vermeld tenslotte dat ook bv. Dreamweaver SFTP ook perfect ondersteund. Met die (en vele andere) software kan iedereen in een fancy grafische omgeving genieten van het veilige gevoel van SFTP. Zeg nu zelf, waarom zoudt ge dan nog FTP-toegang moeten hebben?
(Voetnoot: wat ik meestal niet vertel 😉

futtta klunst weer (met MBR’s)

Ik had weer eens stom gedaan! Ubuntu installeren, daar kan tegenwoordig niets fout bij gaan, toch? Dacht ik ook, toen ik mijn laptop bootte met de Ubuntu Gutsy CD om van een externe HD (a whopping 4Gb in een Icybox!) een ‘disktop’ te maken. Met die disktop wilde ik de regel dat een werknemer geen ander OS mag installeren op de precious company hardware, een beetje geniepig omzeilen.
Wat er dan fout liep? Wel, omdat ik mijn laptop eerst had laten booten van de Ubuntu CD en dan pas de externe HD had ingeplugd, overschreef de Ubuntu installer (na succesvolle setup op /dev/sdb) de MBR van de interne harde schijf (/dev/sda, hd0 voor grub) waarop mijn corporate WinXP stond. Het nuken van de MBR op de eerste HD is in een aantal scenario’s ongetwijfeld wenselijk, maar ik zat daar wel mooi met de gebakken peren: Grub bleef hangen in stage 1 zolang de externe schijf er niet aanhing.
Door dat stomme kabeltje te laat in te pluggen, heb ik een beetje moeten wroeten vooraleer ik terug een volledig werkend systeem had. De MBR herstellen met de XP recovery console kon al niet: ik heb hier thuis geen XP en die cd gaan vragen aan onze helpdesk leek me al bij al geen goed idee. Google toonde me gelukkig de weg naar MBR-zielerust; ms-sys is een linux utility om MS Windows compatibele mbr’s te schrijven. Booten van Ubuntu CD, “apt-get install ms-sys” en “ms-sys -m /dev/sda” en mijn corporate PC was terug in originele staat! Oef, konden ze mij alleszins al niet meer op staande voet ontslagen 😉
Volgende stap; een MBR met grub stage 1 op de externe HD schrijven en grub dan volledig van die schijf laten booten. No biggy; opnieuw booten met de Ubuntu CD, vanop de command line grub opstarten, met “find /boot/grub/stage1” checken waar grub geinstalleerd staat (hd0 dus) en dan grub zijn ding laten doen met “root (hd0,0)” en “setup (hd0)“. Tenslotte /boot/grub/menu.lst nog aanpassen om te booten van hd0 ipv hd1 en pats-boem-klets; ik had niet enkel een WinXP op mijn laptop, maar ook een bootende Ubuntu op de externe harde schijf. Free at last! Free at last!
Laatste probleempje; de Icybox was nu hd0 voor grub, maar /dev/sdb eenmaal ik in linux was. Geen probleem, behalve bij een Ubuntu kernel upgrade, want dan werd mijn /boot/grub/menu.lst verkeerd aangepast en probeerde grub zijn stage 2 terug op hd1 (de interne schijf) te vinden. Daarvoor paste ik /boot/grub/devices.map nog aan naar

(hd0) /dev/sdb
(hd1) /dev/sda

Het was nog even wachten op een kernel upgrade om te zien of dat werkte zoals verwacht, maar ik was de afgelopen weken alleszins weer een happy pinguin. Tot -tja, ik ben echt wel een kluns- … tot ik deze ochtend mijn Icybox al vouwfietsend uit m’n halfopen computertas op straat hoorde vallen. Proberen booten, maar alles is kapot en fsck biedt geen redding. Ik heb dus geen Ubuntu disktop meer. Zal maar eens naar een 2,5 inch HD van 20Gb ofzo zoeken op Kapaza zeker, dan kan ik nog eens van voren af aan beginnen? Freedom is never free 🙂

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 😉

Stoute wordpress upgrade maakt posts van pages?

Outro_Spective had gisteren een probleempje met zijn upgrade naar de laatste versie van WordPress op animobrugge.be; alle pages waren plots posts.
De oplossing bleek gelukkig betrekkelijk eenvoudig: posts en pages worden beiden in de ‘wp_post’ tabel bijgehouden in de wordpress database. Als je van de verdwenen pages in kwestie het ‘post_type’ van ‘post’ naar ‘page’ verandert, is alles terug in orde. Volgend sql-statement doet dat in 1 klap:

UPDATE wp_posts SET post_type = ‘page’ WHERE ID IN (x,y,z)

met in de plaats van x,y en z de id`s (het nummer na p= of page_id= parameter in de url van je posts/ pages) van de posts die terug page moeten worden

Waarmee dat Jong Links Brugs geweld terug foutloos online staat en ze zich nu terug volop met de politiek kunnen bezighouden 🙂

Vechten met informatie

kickboxer takes a hitWerken is altijd een beetje verzuipen in informatie, zeker als je zoals ik nog maar net in een groot telco-bedrijf met tal van slimme collega’s, langlopende projecten en complexe processen begonnen bent. Het ontbreken van een bedrijfs-kennisdatabank (knowledgebase) en van een document management systeem (DMS) dragen niet echt bij tot het vlot opslaan of terugvinden van relevante info. Fileservers zijn wel goed ingeburgerd, maar er wordt van uit gegaan dat iedereen daar op 1 of andere manier zijn weg wel op zal vinden. Very 90’s indeed! Futtta dus op zoek naar een oplossing …

Read more

futtta vist nu ook in het engels

big babelfishGe hebt het misschien al gezien (behalve de feedreader-crowd dan, maar die lezen het nu dus); ik heb een link toegevoegd om deze pagina’s op eenvoudig muisklik-verzoek automatisch in het Engels te laten vertalen. Akkoord, die vertalingen geven meestal maar een vage -en niet zelden humoristische- benadering van de originele tekst, maar die paar internationale bezoekers op zoek naar een poging tot howto’s kunnen er hun voordeel maar bij doen, niet?
Aangezien Altavista Babelfish (Ave Digital) de moeder van alle online vertalingstools is en omdat Google Translate voorlopig niet in de buurt komt qua aangeboden talenparen, gebruiken we de Vis voor onze verovering van de wereld.
Hoe van deze wordpress.com-blog naadloos naar Babelfish switchen? Wel, normalerwijze zou een klein stukje javascript kunnen volstaan, iets als het volgende bijvoorbeeld:

<a href=”javascript:orig_url=document.location; target_url=’http://babelfish.altavista.com/babelfish/tr?’+orig_url+’&lp=nl_en&btnrUrl=Translate’; document.location=target_url;”>vertaal me</a>

Maar op wordpress.com kunt ge zelf geen javascript invoeren (wat niet slecht is, voor ge het weet zit uw favoriete blogplatform met cross-site-scripting issues), dus dan moet een mens zijn plan trekken met gewone html.
De uiteindelijke oplossing is bijzonder eenvoudig: de translate-link gaat naar een php-scriptje op mijn linux-serverke. Dat script pikt de referer uit de $_server variabele, test of die in de lijst met toegestane domeinen zit (*) en doet, als dat domein snor zit, een redirect naar Babelfish waar de vertaalvisjes onmiddelijk aan het werk gaan. Met dank aan Systran, het Franse bedrijf dat instaat voor de eigenlijk vertaalsoftware, overigens.
(*) Ik heb vooralsnog geen ambitie om vertalings-gateway worden voor Jan, Pier en Pol. Pas op, als die jongens ergens een php-scriptje kwijt kunnen, wil ik hun dat wel bezorgen. En als ze het echt heel vriendelijk vragen (ik drink graag Trappistenbier, Chimay Triple valt tegenwoordig heel goed in de smaak), zou ik hen zelfs kunnen toevoegen aan dat lijstje toegestane domeinen.

Ubuntu op een oude koffiemolen

xubuntu feisty vanop osdir.comHeb onlangs op mijn oude Dell laptop (een potige Inspiron 3700) Ubuntu Feisty geïnstalleerd en één en ander getweaked.
De koffiemolen heeft een pIII 450Mhz processor, 320Mb geheugen, een HD van pakweg 5Gb en ingebouwde crappy neomagic video+audio. Ik netwerk draadloos met een wireless kaartje van Lucent (Orinocco).
De processie naar mijn persoonlijk (x)ubuntu-walhalla verliep ongeveer als volgt:

  • booten van van de Ubuntu live cd en installeren naar harde schijf (dag Mandrake 10.1 die ik er in 2004 op installeerde)
  • na een dagje spelen beslist om toch maar te switchen naar xubuntu, want dat heeft toch net iets minder CPU en memory nodig. Akkoord, ik had direct xubuntu kunnen installeren met hun live cd, maar de switch vanuit Ubuntu is wel betrekkelijk eenvoudig: in synaptic “xubuntu-desktop” zoeken en selecteren, goeie 250mb te downloaden, uitloggen en terug inloggen met keuze van XFCE-sessie en daar zijn we op onze blauwe desktop
  • toevoegen van de nm-applet om vlot te kunnen wirelessen: de network manager applet is sowieso actief in Ubuntu, ik heb er geen idee van of Xubuntu standaard wel met nm-applet werkt. Bedenk bij het schrijven van deze brij wel dat ik eigenlijk niet niet mobiel ben met mijn oude laptop en dat ik network manager er beter terug kan afgooien en op de traditionele manier met de WiFi connecteren?
  • disablen van enkele onnodige services (printing en bluetooth en diesmeer) om zo het memory-gebruik verder te beperken
  • aanpassen van swappiness in /etc/rc.local zodat er minder geswapped wordt
  • aanpassen van de size van de swap-partitie: blijkbaar had de Ubuntu installer een swap-partitie aangemaakt die te klein was om naar te hibernaten, ik veronderstel dat dat komt omdat het een -naar huidige normen- bijzonder kleine HD is. Ik dus opnieuw booten met Ubuntu-livecd en met gparted de grootte van de partities aangepast (life is for the brave 😉 ).
  • aanpassen /etc/initramfs-tools/conf.d/resume en /etc/fstab met juiste uuid voor /dev/hda5 (swap) zodat hibernate na aanpassen van de swap die partitie terug kan vinden (vraag me nog altijd af waarom die by-uuid nodig is, /dev/hda5 werkt ook vlotjes, maar kom …)
  • aanpassen hdparm en iwconfig in /etc/rc.local om energieverbruik te temperen
  • toevoegen XFCE volume applet

Staan nog op mijn todo-lijstje:

  • er worden bij het booten nu nog een heleboel kernel-modules geladen waar ik niks aan heb (bv. IPV6, irda, bluetooth, …). Daarvoor moet ik eerstdaags eens in /etc/modprobe.d/aliases en aanverwanten duiken …
  • gevonden tijdens het surfen: een bash-script dat tweaks uitvoert om Ubuntu Dapper sneller te maken. Zou eens moeten kijken welke van die stappen toepasselijk zijn voor Feisty.
  • af en toe blokkeert het beestje bij het afsluiten, moet toch eens in die logfiles gaan pieren vrees ik …

En dat is het zo ongeveer. Xubuntu draait vlot en (niet onbelangrijk) volledig in de 320 Mb ram-geheugen (behalve bij uitgebreide Firefox-sessies). Hibernate werkt. Oude batterijen gaan toch weer even mee. Ik kan daar dus betrekkelijk vlotjes mee werken. Niet slecht voor een laptopje uit 2000, toch? Nu de broodkruimels nog uit dat haperende toetsenbord peuteren …

Show me yours and i’ll show you my /etc/rc.local

/etc/rc.local is de file op een unix/linux-systeem waar de jongens van de mannen worden onderscheiden. Akkoord, de file heet niet meer altijd rc.local en staat ook niet persé in /etc, maar ge begrijpt wat ik bedoel, is het niet?
Alleszins; in mijn geval kan ik met trots Arno citeren;

‘k heb een kleintje maar ‘k schiet verre

Hier (op een oude Dell laptop met Ubuntu Feisty, in een latere post meer over het temmen van dat beestje) doet rc.local immers het volgende:

# swap less
echo “10” > /proc/sys/vm/swappiness
# put HD to sleep faster
hdparm -B 16 -S 12 /dev/hda
# set wireless into powersaving mode
iwconfig eth0 power on

Dit schenkt mij in eerste instantie extra batterij-leven en stemt daarnaast ook Al Gore een beetje gelukkig. Vreemd dat power management van o.a. HD en wireless (twee energie-vreters) niet gemakkelijker in 1 (Ubuntu-)schermpje te tunen zijn, maar misschien heb ik één of andere fancy gtk-wizard over het hoofd gezien?
En wat doet rc.local bij jullie? Of welke hacks staan er in files zoals /etc/conf.d/local.start (op Gentoo, dat lijkt een beetje uit te mode te raken eh?) of in andere super-bootscript-files in (/usr/local)/etc/init.d/?

Pinguïn-vrijheid op je dichtgetimmerde bedrijfslaptop

my butt-ugly homepage in firefox in ubuntu in qemu in windowsOmdat niet elk bedrijf even enthousiast is over de installatie van Linux op de corporate hardware, moet je soms de nodige flexibiliteit aan de dag leggen om toch de weg van De Ware Pinguïn te kunnen bewandelen. Zo ook hier dus.
Het recept om op min of meer te ontsnappen aan Windows, ziet er in mijn geval dan ook als volgt uit:
De ingrediënten:

De bereidingswijze:

  1. Brand de Ubuntu-image op een cdrom
  2. Unzip kqemu
  3. zoek in het kqemu-directory naar kqemu.sys en kqemu.inf. rechtermuisknop-klik op kqemu.inf en selecteer ‘install’ om de driver te installeren.
  4. Unzip qemu
  5. open een command-venster (dos-box) en ga naar het qemu-directory
  6. voer volgend commando uit om een ‘hard disk’ aan te maken:

    qemu-img.exe create -f qcow2 linuxhd.img 3G

    (wat zoveel wilt zeggen als “maak een virtuele harde schijf aan van 3 Gigabyte van het qcow2 type”)

  7. open in het qemu-directory ‘qemu-win.bat’
  8. pas het bestand aan zodat er dit staat en bewaar:
  9. @ECHO OFF
    SET SDL_VIDEODRIVER=directx
    SET SDL_AUDIODRIVER=dsound
    SET QEMU_AUDIO_DRV=dsound
    SET QEMU_AUDIO_LOG_TO_MONITOR=0
    net start kqemu
    qemu.exe -L . -m 256 -cdrom /dev/cdrom -hda linuxhd.img -boot d -kernel-kqemu -soundhw es1370 -localtime
    net stop kqemu

  10. Steek de Ubuntu-cd in je cdrom-lezer
  11. Dubbelklik op het net gewijzigde qemu-win.bat: qemu zal starten en in die virtuele PC zal de Ubuntu-cdrom gelezen worden.
  12. Ubuntu is opgestart, dubbelklik op het ‘install’ icoon op de desktop
  13. Volg de installatie-wizard en laat die op /dev/hda automagisch partities aanmaken en “heel den boel” installeren
  14. Als installatie gedaan is en Ubuntu voorstelt om te rebooten doe je dat, qemu zal gewoon stoppen.
  15. Wijzig qemu-win.bat opnieuw, deze keer naar:
  16. @ECHO OFF
    SET SDL_VIDEODRIVER=directx
    SET SDL_AUDIODRIVER=dsound
    SET QEMU_AUDIO_DRV=dsound
    SET QEMU_AUDIO_LOG_TO_MONITOR=0
    net start kqemu
    qemu.exe -L . -m 256 -hda linuxhd.img -kernel-kqemu -soundhw es1370
    net stop kqemu

    (je kunt -m eventueel op 512 zetten om meer geheugen toe te kennen aan de virtuele machine en ook “-cdrom /dev/cdrom” toevoegen als je nog aan de cdrom wilt kunnen)

  17. Dubbelklik opnieuw op qemu-win.bat en log in op je nieuwe Linux-installatie. Geluid en netwerk werken normaal gezien ‘out of the box’.
  18. Geniet van je herwonnen vrijheid! 😉

Extra info vind je onder andere op: