gebruikers onder elkaar

De conclusie lijkt mij redelijk overduidelijk: een nerd in Calfornië heeft gedacht dat als hij zegt “mirror a music library” dat iedereen wel zou begrijpen wat hij bedoelt. [Nerds onder malkander]

Ik zal mij (nog maar eens) laten meeslepen.

Wanneer je iPod aansluit op je Mac, worden alle iTunes-songs en -afspeellijsten volledig automatisch en dankzij FireWire verbluffend snel naar je iPod gedownload. Als je vervolgens met iTunes nieuwe songs importeert of de volgorde van de songs in afspeellijsten wijzigt, wordt je muziekcollectie binnen enkele seconden automatisch bijgewerkt zodra je iPod opnieuw op je computer aansluit. Sneller en eenvoudiger kan het eenvoudigweg niet. [uit de flyer die bij de iPod zat]

(Een krakkemikkige vertaling BTW: Wanneer je iPod aansluit? Meneer of mevrouw iPod?)

En tsja, er staat niet in: “songs die u uit iTunes wist, worden ook van iPod (sic) verwijderd”. Van welke graad van intelligentie mag er eigenlijk nog worden uitgegaan? (En dit is absoluut geen referentie naar Geert Stadeus.) Enerzijds willen de mensen niet betutteld worden, anderzijds zijn ze er steeds als de kippen bij om de schuld op iemand anders af te schuiven als er iets misgaat.

Als je een prompt krijgt waarin iets staat over mirroring of duplicatie, en je begrijpt niet wat dat betekent, dan ga je daar ofwel meer informatie over opzoeken, ofwel klik je domweg ja, en als het misgaat aanvaard je de consequenties. En het is bij dat laatste dat het misloopt.

En zo een ramp is het nu ook weer allemaal niet. De mensen durven niets meer te doen, of iets te proberen. Ze hebben er ook geen tijd meer voor, zo beweren ze, maar ze willen het allemaal voorgeschoteld krijgen (bij voorkeur op een gouden dienblad en tegen de prijs die lager is dan de produktiekost). En ik heb het hier niet enkel over computers & internet. (Bovenstaande is immers (al te) gemakkelijk open te trekken naar de kiezers van het Vlaams Belang, al is het weer té naïef dit als enige oorzaak te bestempelen.)

In ’t kort: als ge iets ziet staan, en ge zijt niet zeker wat ermee bedoeld wordt, zoek het dan eens op hé zeg. Get off your lazy ass. Neem uw verantwoordelijkheid op. Engagement aan de jeugd. Neen aan de laksheid. Terug naar mei ’68. Neen aan de betutteling. And all that.

iPod test

Ondertussen is Tessa thuis gekomen, en heb ik haar (eigenlijk mijn) iPod afgepakt. Ik had hem nog maar ingeplugged en yes aangeklikt op de vraag of ik de muziek uit mijn library wou copiëren en de aanwezige muziek op de iPod wou wissen (het was allemaal in het Engels, maar ik herinner mij de exacte bewoordingen niet meer —so sue me), toen ik van gedacht veranderde. Te laat natuurlijk, en dus probeerde ik het maar op de grove manier: door de FireWire kabel uit de computer te trekken. Oeps.

Toen ik de iPod terug inplugde, wou hij niet mounten op de desktop. Bof: google to the rescue, en hopsa: iPod doesn’t appear in iTunes or on my Mac desktop.

If you reformatted iPod’s hard disk, or if something has damaged or altered the disk’s format, iTunes or the Finder may not recognize iPod. The solution is to restore iPod.

Met daaronder:

Warning: The restore process cannot be undone. All of your songs and files will be deleted. Always make a backup of your important data.

Niet getreurd, ik had immers mijn geripte CDs nog niet van mijn ‘harde schijf’ gewist. En als bijkomen voordeel, kon ik nu immers doen alsof dit een eerste connectie van een nieuwe iPod was.

De ipod connecteren, en iTunes opgestarten. Ik kreeg al meteen de vraag of ik een iPod update wou installeren: gewoon yes aanklikken, uitpluggen wanneer gevraagd, en opnieuw inpluggen, en gedaan.

Terug iTunes, en daar kreeg ik nu de iPod Setup Assistant voorgeschoteld. Een naam ingeven (iTess –ik weet het, soms kan ik heel origineel uit de hoek komen), en opgelet: daaronder staat heel duidelijk (default aangevinkt):

Automatically update songs on my iPod
iTunes can automatically update your iPod to mirror its music library and playlists each time you connect it to this mac.

Ja makker, duidelijker kan het er toch maar moeilijk staan. De Californische nerd die in zeven jaar geen vrouw heeft gezien heeft er duidelijk toch iets beter over nagedacht dan eerst werd verondersteld.

Dan kreeg ik de optie de iPod bij Apple te registreren (nee dank u), and that’s it. Vervolgens begon de synchronisatie (ok, ok mirroring), die na drie liedjes (mijn drie iTunes Music Store aangekochte songs) stopte. Mijn 1stGen iPod ondersteunt immers geen Apple Lossless muziek. En, jawel, alle muziek in mijn library op deze computer is lossless.

Niet getreurd, kan ik meteen eens testen wat er gebeurt als ik de iPod aan een andere library probeer te hangen. Fast user switching naar Tessa’s account, iTunes starten, en iPod inpluggen. Neen antwoorden op de vraag of ik de iPod me deze library wil registreren, en dus mirror-en, en dan naar de iTunes preferences.

De iPod tab, en daar selecteer ik Manually manage songs and playlist –waarop ik een waarschuwing krijg dat ik dan vanaf nu de iPod manueel zal mouten unmounten. En voila, de iPod verschijnt opnieuw in iTunes, de (drie) gemirrorde tunes van mijn library staan erin (DRM muziekjes BTW), en ik kan gewoon de liedjes uit Tessa’s library naar de iPod slepen. (En ja, nu kan ik ze dus ook van de HD wissen zonder dat ze daarom van de iPod verdwijnen.)

De laatste test: de iPod unmounten, Tessa uitloggen, en opnieuw in mijn eigen account inloggen. iTunes starten, en de iPod connecteren. En wat denkt ge? Er wordt zelfs niet gevraagd of ik wil mirroren: de iPod mount meteen, de configuratie werd automatisch gewijzigd naar manual. (In de preferences kan ik natuurlijk wel weer de Automatically update… aanzetten, maar dan ben ik Tessa’s liedjes wel weer kwijt.)

Conclusie: wel, trek ze zelf maar. Ik heb nu echt wel genoeg geschreven voor vandaag.

del.icio.us sto

OK, dit is misschien een beetje stating the obvious maar een deel van de kracht van del.icio.us zit ook in de RSS feeds.

Het is inderdaad leuk om je eigen links op je site te posten, of je dat nu doet als een entry (cfr Michel), of in een navigatiebalk (cfr ikzelf), maar dat is maar het topje van de ijsberg.

Mensen die een RSS reader gebruiken (zoals NetNewsWire voor mac) kunnen net zo goed de newsfeeds van die links toevoegen:

En dat niet alleen, zo mogelijk nog interessanter is het om je te abonneren, niet op lijsten van gebruikers, maar op de rss feeds van tags (keywords eigenlijk). Hier zijn bijvoorbeeld de feeds voor:

De ideale manier om nieuwe informatie te vinden.

chronopost

Op 31 oktober had ik een bestelling doorgegeven op Amazon FR (drie stripverhalen en een boek). Op 2 November kreeg ik keurig een mailtje van Amazon dat mijn items verzonden waren Nous vous informons de l’envoi de vos articles aujourd’hui a l’adresse suivante […] par La Poste Colissimo Europe (3 a 4 jours).. Great; dat betekent dat ik de zending nog dezelfde week thuis krijg.

Niet deze keer. Een week later had ik nog steeds niks ontvangen, dus ben ik via Amazon’s help pagina op zoek gegaan naar mijn pakje.

Op de site van Chronopost terecht gekomen (Demandez à Chronopost, ça ira plus vite !), en daar mijn verzendingsnummer ingegeven (8E10995785776).

Lo and behold, wat krijg ik daar te zien? Op vrijdag 5/11: Shipment not delivered (hoewel ik de ganse dag thuis was), daarna een ganse resem status codes tot 9/11, en dan niks meer.

Na zelf getelefoneerd te hebben naar Chronopost, blijkt dat ze het pakje op 5/11 reeds bij hun locale depot hebben afgegeven. Zonder dat ze mij daar van op de hoogte hebben gebracht (wat een service). Het locale depot, BTW, is ’t Pelikaantje, een kleine krantenwinkel aan de Brugsesteenweg (in Mariakerke).

Enfin, probleem opgelost.

(Met dank aan mijn schoonvader, die het voor mij is gaan afhalen.)

del.icio.us cron

Twee entries zitten er in mijn crontab die verband houden met del.icio.us

Generally, crontab uses a daemon, crond, which runs constantly in the background and checks once a minute to see if any of the scheduled jobs need to be executed. If so, it executes them. These jobs are generally referred to as cron jobs.

Via de crontab kunnen we dus bepaalde programma’s op bepaalde tijdstippen laten uitvoeren. Om de crontab aan te spreken moet je beschikken over een shell login.

Er zijn twee del.icio.us zaken die ik op geregelde tijdstippen wil laten uitvoeren:

  1. De lijst met laatste 10 bookmarks genereren.
  2. Een backup van al mijn del.icio.us bookmarks maken.

Met de volgende frequentie:

  1. Elke twee uur (een beetje overdreven misschien)
  2. Dagelijks

De bookmarks kunnen we generen door de php file aan te spreken via de browser; als voorbeeld hadden we http://www.jouwwebsite.be/delciousrss.php genomen. (Tech: we gaan er maar eventjes van uit dat php geconfigureerd staat als Apache plugin en niet als CGI.)

Om die URL aan te spreken via de command line maken we gebruik van lynx: aan de prompt (we zijn ondertussen ingelogged) tikken we:

lynx http://www.jouwwebsite.be/delciousrss.php

en dat is eigenlijk hetzelfde als die URL in de browser ingeven. Met dat verschil dat we in lynx over een text-only interface beschikken. Om de browser te sluiten, tik je gewoon q, en dan y of de enter toets.

Je kan ook de browser gewoon een pagina laten oproepen, die pagina op het scherm tonen (dumpen), waarna de applicatie automatisch gestopt wordt. Het commando (voor dezelfde pagina) is

lynx -dump http://www.jouwwebsite.be/delciousrss.php

En dat is het commando dat we in onze cron job gaan gebruiken.

Hoe maken we nu die cron job aan? Aan de prompt (we zijn nog steeds ingelogged) tik je

crontab -l > cron.txt

Op die manier worden je eventuele bestaande cronjobs naar een bestand weggeschreven. Dat bestand gaan we editeren. Je kan dat doen, ofwel via aan de prompt, ofwel door het bestand cron.txt naar je eigen machine te FTP-en en daar met je text editor naar keuze te editeren (daarna opnieuw opladen naar de server).

In het bestand cron.txt voeg je dan de volgende lijn toen:

0 */2 * * * lynx -dump http://www.jouwwebsite.be/delciousrss.php

Dit zal ervoor zorgen dat elke 2 uur (die 0 */2) het commando, dat we zonet hebben besproken, zal worden uitgevoerd. Wil je dat liever elke drie uur, dan vervang je de 0 */2 door 0 */3, enz.

Let erop dat de laatste lijn in je cron.txt bestand een blanco lijn is. Eenmaal de cron.txt werd aangepast (en eventueel terug ge-upload), lezen we het bestand in, waardoor de crontab actief wordt. Je doet dat met het volgende commando:

crontab cron.txt

That’s it.

(Voor de dagelijkse backup ga je op een gelijkaardige manier tewerk. het commando vind je in een vorige entry, en dan editeer je de crontab op dezelfde manier. Let wel: vervang */2 door bijvoorbeeld 2, dan wordt de job elke dag om twee uur uitgevoerd.)

del.icio.us MT

De blogmarks zijn geconverteerd naar delicacies (del.icio.us bookmarks), en de lijst in de rechterbalk is vervangen door de del.icio.us linklijst.

Ik had er eventjes over gedacht om deze instructies te volgen (zie ook bij Michel), maar ik geef liever geen MT paswoorden aan een ander systeem vrij. Dus heb ik maar wat verder gezocht.

En uiteindelijk heb ik gekozen voor een combinatie van php en cron. Ik heb mij gebaseerd op Integrating del.icio.us with PHP and Magpie.

Opgelet, opdat dit bij jou zou werken, moet je server/provider PHP en SSI ondersteunen.

  1. Download en installeer MagpieRSS. Laat u niet afschrikken: download de meest recente versie (nu was dat magpierss-0.61.tar.gz) vanop sourceforge en unzip. De installatie zelf bestaat uit niet meer dan een aantal files (rss_cache.inc, rss_fetch.inc, rss_parse.inc en rss_utils.inc) uploaden naar een directory naar keuze, en daarin de subdirectory extlib met de file Snoopy.class.inc plaatsen.
  2. Plaats in dezelfde directory (niet die subdirectory) een nieuwe file (laten we zeggen delciousrss.php), waarin de volgende code zit:

    <?php
    require_once('rss_fetch.inc');
    require_once('rss_utils.inc');
    $yummy = fetch_rss("http://del.icio.us/rss/yourusername");
    $maxitems = 10;
    $yummyitems = array_slice($yummy->items, 0, $maxitems);

    $data = '<dt>del.icio.us</dt>';
    foreach ($yummyitems as $yummyitem) {
    $data .= '<dd>';
    $data .= '<a href="';
    $data .= $yummyitem['link'];
    $data .= '">';
    $data .= $yummyitem['title'];
    $data .= '</a> / ';
    $published = parse_w3cdtf($yummyitem['dc']['date']);
    $data .= date("d.m", $published);
    $data .= '</dd>';
    $data .= "n";
    }
    $data .= '<dd>&raquo; meer <a href="http://del.icio.us/yourusername">delicacies</a></dd>';

    $save_path='/your/save/path'; #define target path
    $temp='file.tmp'; #define temporary target name
    $dest='delilist.htm'; #define final destination target name

    $fp = fopen($save_path.'/'.$temp, "w", 0); #open for writing
    fputs($fp, $data); #write all of $data to our opened file
    fclose($fp); #close the file
    #rename tmp file to dest file
    rename($save_path.'/'.$temp,$save_path.'/'.$dest);
    ?>

    Die code haalt de laatste 10 bookmarks ($maxitems = 10;) die je op del.icio.us hebt gepost. Opgelet: wijzig in de bovenstaande code nog het volgende: vervang yourusername door uw del.icio.us username (volume12 in mijn geval). Vervang /your/save/path door het pad waar je de resulterende file wil wegschrijven. (Als je met MT werkt, kan bijvoorbeeld het Local Site Path uit je weblog config gebruiken.)

  3. In de template waar je die laatste 10 bookmarks wil tonen, voeg je het volgende in:
    <!--#include virtual="/delilist.htm" -->
    Opgelet: in die template moet SSI kunnen gebruiken. Bij de meeste providers volstaat het je template de extensie .shtml te geven.
  4. Gebruik http://www.jouwwebsite.be/delciousrss.php om de lijst te genereren. (Als je die URL gebruikt –aangepast voor jouw website–, krijg je enkel een blanco pagina te zien –maar dat is goed nieuws, want dat betekent dat het bestand werd gegenereerd.)

Voila.
Je zou ook het PHP bestand (delciousrss.php) rechtsreeks in je template kunnen inbrengen ipv eerst naar een ander bestand (delilist.htm) weg te schrijven. Dit zou echter beteken dat, telkens iemand jouw pagina opvraagt, je ook de del.icio.us server aanspreekt –en dit wordt niet toegestaan:

You can fetch your links in a simple HTML feed; documentation is at /doc/html. Please do not include it with an <IFRAME> as this will cause one hit to del.icio.us per one hit on your site. Likewise, please don’t fetch it every time via PHP. This sort of behavior will be considered abusive.

In een volgende post leg ik uit hoe je de update automatisch via een cron job kan laten verlopen.

ff 1

De final release v1 van FF is stukken beter dan de prereleases deden vermoeden.

Wellicht heeft het er ook iets mee te maken dat ik niet de ‘officiële’ release heb gedowload (op de mozilla site), maar een optimized build for PowerPC 7450. (Waarmee ik overigens geen afbreuk wil doen aan die ‘officiële’ release. Maar als het voor mijn systeem beter kan, waarom die kans dan laten liggen?)

De extensions die ik het meest gebruik werken nu ook met deze versie, inclusief Bookmarks Synchronizer. De versie waar de link naar verwijst wou niet installeren, maar op de site van de ontwikkelaar heb ik alsnog een compatibele versie gevonden: bookmarksftp1_0_1.xpi (volg de link, en klik op het bestand om de extensie te installeren).

Zeer te spreken ook over de verbeterde find. Tik / gevolgd door je zoekterm, en je zal zien wat ik bedoel. Vroeger verscheen de zoekterm gewoon in de statusbar, voorzien van relevantie informatie (zoals: find stopped of not found). Nu komt er een contextual menu bar boven de status bar. Zeer proper. En nuttig.

(Live bookmarks is voorlopig niet aan mij besteed. Toch niet terwijl NetNewsWire zo goed werkt.)

Alleen dat Go menu kan de boel nog steeds doen vastlopen.

deli me 2

En zo probeer ik het ook maar eens.

De eerste test was de ingave van de bestaande blogmarks. Dank zij de (javascript) bookmarklets was het een kwestie van de links in tabs te openen, en dan post to del.icio.us aan te klikken. (Add to del.icio.us zit nu ook in de context menu van firefox.)

Niet rap genoeg naar mijn goesting, een beetje gezocht, en terecht gekomen bij Cocoal.icio.us (A Cocoa del.icio.us Client for Mac OS X) [via Del.icio.us redux]. Open source to the rescue: hoewel Cocoal.icio.us voorlopig enkel werkt via Safari zijn er ook plannen voor support via andere browsers. En natuurlijk kan je het als stand-alone interface voor del.icio.us gebruiken. (Als je over een mac beschikt tenminste.)

Alweer via Del.icio.us redux ben ik dan bij Backing up del.icio.us terecht gekomen:

curl --user accountname:password -o myDelicious.xml -O "http://del.icio.us/api/posts/all"

(Works like a charm BTW)

En dan ook nog op Foxylicious gestoten (Foxylicious is a Mozilla Firefox extension that integrates your del.icio.us bookmarks into your browser bookmarks.). Gefundenes fressen.

Nu nog een eenvoudige manier vinden om het in MT te integreren (zie ook ergens in de onderste helft van de about page).

O ja, en hier zijn ze dan.

(Eenmaal zelf ingeschreven is het gemakkelijk om je te subscriben op de bookmarks van anderen, of op keywords. handig om nóg meer interessante links te ontdekken.)