Waarom Linux? En nu echt!
Geplaatst:


Ik gebruik Linux sinds eind 1999. Dat is al 15 jaar. Ik probeer ook al bijna 15 jaar lang om andere mensen te overtuigen om ook Linux te proberen. En ik moet bekennen dat ik daarbij erg vaak verkeerde argumenten heb gebruikt. Na 15 jaar is het tijd om een aantal misverstanden de wereld uit te helpen, en jullie de echte redenen te vertellen waarom je Linux moet gebruiken :-)

Ik ben niet de enige die Linux met verkeerde argumenten aanprees: het is een veelvoorkomend probleem.

Bij wijze van experiment vroeg ik het onlangs aan Google: 'Waarom Linux?'. Het eerste resultaat bracht me op een wat ouder ogende website, die een aantal veelgehoorde argumenten opsomt.

Maar Google filtert natuurlijk zijn zoekresultaten netjes op basis van wat hij van me weet, dus ik stelde de vraag ook aan DuckDuckGo. Daar was de eerste link een blog post uit 2012, met gelijkaardige argumenten.

Beide pagina's zijn al tamelijk oud. Wat verklaart dat sommige argumenten gewoon verouderd zijn. Maar toch hoor je die argumenten nog erg vaak. En dikwijls ten onrechte. Ik neem er een aantal van onder de loep.

Dus:

Probeer Linux niet...

omdat het gratis is

Linux is gratis. Dat is waar. Je kunt het downloaden, en op je PC installeren. Maar dat is geen argument. Want als je een PC koopt, dan koop je daar een besturingssysteem bij. Je hebt het al betaald, en het is al geïnstalleerd. Dat is even goed als gratis.

Een PC kopen zonder besturingssyteem, is niet zo gemakkelijk. Ik denk dat je dan al naar de gespecialiseerde leverancier moet stappen, waar de prijs wel wat hoger zal liggen dan - ik zeg maar iets - een PC met Windows die van de Aldi komt.

omdat het sneller is

Ik betwijfel ten stelligste dat een PC sowieso sneller gaat werken als je er Linux op installeert. Als je vandaag een standaardinstallatie doet van een mainstream distributie (zoals Linux Mint of Ubuntu), dan doe je dat best op een recente PC met voldoende geheugen en rekenkracht. Net zoals er wel wat vereisten zijn voor Windows 8.

Het is wel zo dat je een oude PC nog tegen een aanvaardbare snelheid kunt laten werken met Linux. Maar je moet voldoende ervaring aan de dag kunnen leggen bij het kiezen en configureren van je distributie. En het zal allicht ten koste gaan van usability.

Dus als je de ervaring niet hebt, en je hebt niemand om je te helpen, of je wilt niet inboeten aan usability, dan zal een Linuxdistributie niet sneller werken dan een ander OS.

omdat het snel compleet geïnstalleerd is

Koop eens een nieuwe computer. Wat maakt het dan uit dat je Linux snel kunt installeren? Er staat al een ander systeem voorgeïnstalleerd. Dat is sowieso sneller dan er iets nieuws op te zetten.

omdat open-sourcesoftware veiliger is

Sinds Heartbleed, Shellshock en Drupageddon weten we dat open source software kwetsbaar is net zoals andere systemen. Ik geloof wel dat de kans op fouten kleiner wordt naarmate meer mensen naar de broncode kijken. Maar dan moeten er ook mensen naar de broncode kijken. Vooral Shellshock vind ik indrukwekkend: deze vulnerability is een gedocumenteerde feature, die al meer dan 20 jaar in bash zit. Gedurende die 20 jaar had er gewoon niemand bij nagedacht dat deze feature misbruikt kon worden om ongewenste dingen te doen.

Vroeger werd er wel eens gelachen met de beveiliging van Windows. Waarschijnlijk terecht. Maar Microsoft heeft een lange weg afgelegd. Ik geloof wel dat de architectuur van Windows 7 zodanig is dat je het veilig kunt configureren.

Maar net zoals bij Linux is het systeem maar zo veilig als je het configureert. Windows krijgt vaak kritiek omdat het erg makkelijk is om als gewone gebruiker beheerdersrechten te krijgen. Maar bij Ubuntu en afgeleiden verloopt dat eigenlijk niet veel moeilijker. En stel dat je als zoekende gebruiker Puppy Linux zou installeren omdat je op zoek bent naar een snelle distributie, dan log je standaard aan als root. Quod erat demonstrandum.

Als je Linux gebruikt, heb je in het algemeen geen antivirussoftware nodig. Wel, als Windows up to date is, je gebruiker geen beheerdersrechten heeft, en je weet waarmee je bezig bent, dan kun je volgens mij vandaag de dag ook onder Windows zonder virusscanner verder. Al was het maar omdat Virusscanners lang zo goed niet meer werken als vroeger, gewoon omdat de virussen van tegenwoordig slim genoeg zijn om zichzelf te encrypteren.

omdat het stabieler is

Op de server misschien. Al steek ik daar mijn hand niet voor in het vuur. Maar de meeste mensen die je wilt overtuigen om Linux te gebruiken, zijn niet van plan een server op te zetten. In het beste geval willen ze het eens proberen op hun laptop. Maar als ze - ik zeg maar iets - een nVidia grafische kaart hebben, dan durft stabiliteit wel eens een probleem zijn.

omdat je gratis ondersteuning krijgt van een fijne community

Als je een vraag hebt over Linux, dan tik je die in in Google, die brengt je meestal bij een discussie op Stack Exchange, en daar vind je dan het juiste antwoord. Vaak. Vaak ook niet. Het varieert.

Maar - vertel het niet verder - als je een vraag hebt over Windows, dan werkt dat even goed. En ik vermoed dat dat in Android- en Appleland ook het geval is.

En - hoewel ik al veel positieve ervaringen heb gehad in open-source-communities - is het zeker niet altijd rozengeur en maneschijn: het gaat er soms erg hard aan toe, zoals Lennart Poettering aankaart in een post op Google+. Poettering is zelf ook niet onbesproken, maar dat kan geen excuus zijn voor een ander om fouten te maken.

omdat je zo de grote vijand, Microsoft, bestrijdt

Niet echt een argument uit de pagina's die ik vond via de verschillende zoekmachines, maar het is er wel een dat ik zelf vaak gebruikte in het verleden. En in dat verleden was dat uiteraard terecht :-)

Maar vandaag is dit niet meer van toepassing, denk ik. De dagen dat Microsoft de enige speler op de markt was, zijn voorbij. Ik heb net eens opgezocht welke besturingssystemen de bezoekers van de website van Chirojeugd Vlaanderen gebruiken. Het aandeel van Windows is maar 65%. IOS (iPhone en iPad) is goed voor 15%. Macintosh en Android nemen beide 9% voor hun rekening. Windows is niet meer dominant, en dat weten ze erg goed bij Microsoft.

De laatste jaren zette Microsoft meer en meer in op interoperability en open source. In de nabije toekomst zul je ASP.NET-webtoepassingen kunnen hosten vanop een Linuxserver met Mono. Er zijn vandaag al MS-officeprogramma's Office voor Android en IOS. Een heel aantal .NET-libraries die Microsoft zelf ontwikkelt (bijv. Entity Framework en ASP.NET MVC, zijn beschikbaar onder Apache-2-licentie. Het zo me niet verbazen moest Windows op termijn gratis worden, net zoals Android.

Toegegeven, Microsoft is en blijft een veelkoppig monster. Terwijl een van de koppen toenadering zoekt tot de open-source-community, spant een andere poot rechtszaken aan over softwarepatenten. Jeremy Allison, de bezieler van het Samba-project, wist op FOSDEM 2013 te vertellen dat hij erg goed kon samenwerken met Microsft voor de ontwikkeling van Samba 4. Langs de andere kant was hij erg blij dat hij voor de gelegenheid eens naar Brussel kon komen voor FOSDEM, want doorgaans moest hij naar Brussel voor rechtszaken.

Maar desondanks denk ik dat er een kentering is geweest bij Microsoft. Ik hoor meer positieve verhalen dan vroeger, ze zijn niet meer de te bevechten vijand. Die tijd is voorbij.

De bedrijven die je vandaag in het oog moet houden, dat zijn Apple en Google. Uit die hoek hoor ik meer verontrustende verhalen dan van de kant van Microsoft. Maar daar wijd ik een andere keer wel eens over uit.

omdat je met Thunderbird en LibreOffice alles hebt wat nodig is

Dit hoor ik ook nog te vaak. 'Alle nodige software is beschikbaar, bijvoorbeeld Thunderbird en LibreOffice.'

Serieus? Office en mail? Is dat wat je nodig hebt? In 2000 misschien, maar vandaag? Ik denk het niet.

Office is net hetgene is dat je niet nodig hebt. Als je al je werk in Office doet, of in je mail client, dan ben je volgens mij verkeerd bezig. Wat je volgens mij wel nodig hebt, is een browser, een document reader en een fatsoenlijke text editor. En als het echt nodig is, ook een spreadsheet. Daarmee kom je tegenwoordig al een heel eind.

Leg niet de nadruk op LibreOffice. Als je het over LibreOffice hebt, gaan mensen vergelijken met Microsoft Office. En dan is Microsoft Office toch wel wat 'slicker'. Maar dat is eigenlijk helemaal niet relevant, want een officetoepassing heb je niet meer nodig vandaag. Als je per se zoiets wil doen, gebruik dan Google docs. Maar ik denk dat er altijd betere oplossingen zullen zijn.

Waarom dan wel?

Zijn er dan eigenlijk nog redenen om Linux te gebruiken? Uiteraard. Ik anders zou ik het zelf niet doen. Hier zit iedereen op te wachten: de échte redenen waarom iedereen fan van Linux zou moeten zijn.

Een groot aanbod makkelijk te installeren softwarepakketten

Als je een mainstream Linuxdistributie installeert, dan heb je toegang tot een erg groot aanbod aan softwarepakketten, via de zogenaamde software repository. Je kunt dit vergelijken met een app store. Wil je een toepassing installeren om foto's of audio te bewerken, heb je een programmeeromgeving nodig voor eender welke programmeertaal: het wordt voor jouw gedownload en geïnstalleerd.

Geen crapware

Zei ik daarnet niet dat je je besturingssyteem quasi gratis meekrijgt als je een computer koopt? Wat ik daar vergat te zeggen, is dat je in het geval van Windows of Android vaak nog een hele hoop andere software meekrijgt, die je eigenlijk niet nodig hebt. (Op een Mac heb je dat misschien wat minder, maar dat is dan ook minder 'quasi gratis' :))

Je kent het wel, van die programmaatjes die vanalles doen, of net niet, en die na X tijd beginnen te zeuren dat je een licentie moet kopen. Misschien geeft die software ook wel informatie van jou door aan derde partijen, dat is moeilijk te zeggen. En de software verwijderen is ook niet altijd makkelijk, omdat het vaak onduidelijk is wat er nu wel nodig is om je PC te kunnen gebruiken, en wat niet.

Een open source Linuxdistributie is quasi nooit voorgeïnstalleerd. Je moet dus een vervelende installatieprocedure doorlopen. Maar wat je dan hebt, is een clean systeem zonder brol. Dat alleen al maakt het ongemak van het installeren meer dan goed.

Makkelijke herinstallatie

Als je een PC om een of andere reden volledig moet herinstalleren, dan is Linux de makkelijkste oplossing. Je downloadt een image, en je kunt aan de slag zonder dat je een licentie nodig hebt.

Vrije software rules

De belangrijkste reden hield ik uiteraard tot laatst: Linux is vrije software. En het overgrote deel van de toepassingen die meegeleverd worden met een Linuxdistributie is dat ook. Als je vrije software installeert, dan heb je per definitie ook toegang tot de broncode van die software. Dat wil zeggen dat je kunt nakijken of die software geen dingen doet die je niet graag hebt. Of, als je zelf niet graag broncode bestudeert, kun je dat laten doen door een onafhankelijke partij.

Als je software gebruikt waarvan je geen inzage hebt in de broncode, dan moet je vertrouwen op je leverancier. Doet de software niets achter je rug? Zet je software een backdoor in je computer open, zodat instantie X of Y kan controleren of je wel braaf genoeg bent? Kan die instantie je computer dan bijvoorbeeld ook vanop afstand uitschakelen? En in hoeverre zijn die backdoors dan beveiligd tegen personen met kwade bedoelingen?

Uiteraard lees ik niet de broncode van alle software die ik gebruik. Ik compileer ook niet (meer ;)) al mijn software zelf, om zeker te zijn dat de software die ik heb wel degelijk gemaakt is op basis van de gegeven broncode. Maar het feit dat ik weet dat het kan, geeft me toch een vorm van gemoedsrust.

De dag van vandaag kunnen meer en meer toestellen op het internet aangesloten worden. Telefoons, horloges, domotica, auto's... Ik zou het niet appreciëren moesten mijn autodeuren geopend kunnen worden omdat er een backdoor in de software zit.

De enige garantie om het doen en laten van je toestellen te controleren, is open source software. Die controle mogen we niet laten schieten. Over de software in onze auto heb ik helaas niets te zeggen. Maar over die op mijn PC nog wel. En dat wil ik graag zo lang mogelijk behouden.

Comments

Linux in de klas. Wedden voor een pintje?
Geplaatst:


Voor mensen die mij al langer kennen, is het geen nieuws meer. Ik ben een Linuxfan. Ik ben ervan overtuigd dat op de dag van vandaag heel wat PC-gebruikers beter af zouden zijn met Linux op hun PC, in plaats van Windows. Ik heb dan ook al vaak aan mensen aangeboden om Linux op hun PC te installeren, maar meestal zijn ze niet zo happig. Onbegrijpelijk eigenlijk :-)

In deze post wil ik het hebben over een bijzonder soort computers, waarvoor een installatie van Linux volgens mij een grote stap vooruit zou zijn: de computers in de Vlaamse lagere scholen en kleuterscholen.

Ik sta zelf niet in het onderwijs. Ik moet dus bekennen dat ik nauwelijks weet waarover ik praat. Maar ik vang wel eens wat op. Computers die niet gebruikt worden omdat de les om is tegen dat ze zijn opgestart. En als ze dan toch starten, dan begint het ene na het andere softwarepakket te zeuren om updates te installeren, of om licenties te betalen. Je ziet ook nog wel eens Windows XP op een schoolcomputer, iets dat al enkele maanden door Microsoft wordt afgeraden.

/galleries/Linux_In_De_Klas/01_Windows_XP_is_dood.jpg

Ik ga zeker niet veralgemenen, maar ik vermoed sterk dat dit soort computers nog te veel te vinden is in de Vlaamse klassen. Er staat iets van IT in de eindtermen, maar het IT-budget is vaak beperkt. Met alle gevolgen van dien.

Ik denk dus dat het een goede zaak zou zijn om dit soort computers opnieuw te installeren, en wel met een Linuxsysteem dat werkt met oudere hardware [1]. Maar, zoals gezegd, ik weet eigenlijk niet waarover ik praat, en hoewel ik vermoed dat het doenbaar is, heb ik het nog nooit kunnen proberen. Laat ons daar iets aan doen; ik gooi er een fles bier tegenaan :-D

/galleries/Linux_In_De_Klas/02_Screenshot_Linux_Mint_XFCE.png

Ik heb een voorstel. Een uitdaging voor een avontuurlijke juf of meester. Dit zijn de grote lijnen:

Ik krijg van jou een PC uit je klas, die de leerlingen niet graag gebruiken omdat hij niet goed (meer) werkt. Ik krijg die PC een week mee naar huis, en herinstalleer hem, met de bedoeling hem terug bruikbaar te maken. Ben je tevreden, dan betaal je me een pint. Ben je niet tevreden, zet ik hem terug in de originele toestand, en krijg jij van mij een grote fles lekker bier. (Desgewenst kan dat ook een fles wijn zijn, maar daar ken ik niet zo veel van. Mogelijk minder lekker dus.)

/galleries/Linux_In_De_Klas/03_Niet_tevreden_bier_terug.jpg

Klinkt goed, toch? Hier de details:

  • Dit gaat alleen door met toestemming van de IT-coördinator van jullie school.
  • Voor ik Linux installeer, maak ik een kopie van de harde schijf van de PC, zodat ik de oorspronkelijke toestand kan herstellen moest het niet goed aflopen.
  • We overleggen even (dat kan via mail, of we spreken eens af), zodat ik weet waarvoor de leerlingen de PC's in je klas gebruiken, en of er speciale zaken zijn waarmee rekening gehouden moet worden.
  • Je brengt de PC naar mij, zodat ik hem kan installeren. Ik neem daar een week de tijd voor. Daarna krijg je hem terug, met wat uitleg over hoe alles werkt.
  • Je gebruikt de PC in je klas, en laat me weten hoe dat gaat.
  • Je krijgt ondersteuning van mij. Heb je een vraag of een probleem, stuur me een mail, en dan probeer ik zo snel mogelijk te antwoorden [2]. Als dat nodig is, en het is niet te ver van waar ik woon of werk, dan wil ik ook wel eens ter plaatse komen kijken. Ik voorzie sowieso ook iets dat me zal toelaten om vanop afstand op je PC aan te loggen [3]. Lukt het me niet om je probleem op te lossen, en vind je het toch een ernstig probleem, dan eindigt het experiment, zet ik je computer terug in oorspronkelijke toestand. De fles bier krijg je er dan bij.
  • Als er mensen van de school dat graag hebben (IT-coördinator, IT-werkgroep, of andere), dan wil ik zeker eens afspreken om van naaldje tot draadje uit te leggen hoe alles is geïnstalleerd.
  • Ik beloof plechtig om verantwoord om te springen met vertrouwelijke informatie die ik mogelijk te weten kom over de IT-infrastructuur op de school.
  • Ik mag bloggen over het experiment.

Voila. Dat is de deal. Mijn actie voor Software Freedom Day 2014, laat ons zeggen. Ik vind het zelf erg spannend. Misschien lukt het, dat zou cool zijn. Misschien lukt het niet, en dan weet ik voor welke onoverkomelijke problemen ik nog oplossingen moet zoeken. Het loopt dus altijd goed af.

http://wiki.softwarefreedomday.org/Promote?action=AttachFile&do=get&target=web-banner-chat-participating-h.png

Nog dit: Ik doe dit hoogstens voor 2 personen; mijn vrije tijd is beperkt. Maar neem gerust contact op als je geïnteresseerd bent, want de kans is groot dat er weinig mensen op deze oproep reageren. Dit voorstel blijft gelden tot de Software Freedom Day van volgend jaar, ik vermoed 19 september 2015.

[1]Ik denk momenteel aan Linux Mint 17 XFCE. Ik probeerde het al eens uit op een laptop die 7 jaar oud is, en dat ging verrassend vlot. Maar afhankelijk van de specificaties van de PC, is een andere distributie misschien beter.
[2]Ik wil proberen om je mails binnen de 24 uur te beantwoorden, maar ik zal dat niet garanderen. Voor mij is dit een hobby, en ik heb ook nog een job en een familie. Je kent dat wel.
[3]Dat zal verlopen via een reverse ssh tunnel naar een PC bij mij thuis.

Comments

De rust van een cleane computer
Geplaatst:


Ik heb net een computer opnieuw geconfigureerd. En dat is leuk. Het geeft me altijd een soort van gemoedsrust als ik op een clean systeem kan werken. De PC die ik dagelijks gebruik op het werk, daar staan 1001 toepassingen op. Dat heeft te maken met mijn job en mijn interesses. Als ik dan eens op een PC kan werken waarbij de menu's niet overladen zijn, en het ziet er nog eens mooi uit ook, dan voel ik me helemaal zen :-)

/galleries/Screenshots_Linux_Mint_17/01_Mint_menu.png

We hadden deze laptop al een aantal jaar. Maar nu is hij dus proper. En ik kan er 'dagelijkse dingen' mee doen. E-mail, Facebook, Twitter. Foto's bekijken en uploaden. Eens een documentje downloaden en bekijken. Als dat een PDF is, of een Worddocument, dan is een groot scherm toch altijd wat makkelijker dan een telefoon.

/galleries/Screenshots_Linux_Mint_17/02_Documenten_bekijken.png

Eigenlijk is het een beetje alsof je een nieuwe PC hebt. Maar dan beter. Want bij een nieuwe computer is vaak heel wat rommel voorgeïnstalleerd. Software van bedenkelijke kwaliteit, die je toch niet nodig hebt. Of die na 90 dagen begint te zeuren omdat je geen licentie hebt gekocht.

Ik heb mijn e-mail geconfigureerd, en de berichtentoepassing gekoppeld aan mijn Google- en Facebookaccount. En meer moet dat eigenlijk niet zijn. Willen we zoiets uiteindelijk niet allemaal? ;-)

Allez, laat ons de aap maar uit de mouw halen. Als je een geoefend oog hebt, dan heb je allicht aan de screenshots gemerkt dat ik Linux Mint installeerde, versie 17 om precies te zijn. Want het punt dat ik eigenlijk wil maken, is dat voor een systeem voor 'dagelijks gebruik', Linux Mint een erg goede oplossing is. Ik geef nog twee extra redenen waarom je fan zult zijn:

  • Linux Mint heeft een 'traditionele' look and feel. Het heeft meer weg van Windows 7 dan van Windows 8. En dat is interessant als je liever gauw je e-mail leest, in plaats van uit te zoeken hoe je het juiste menu te voorschijn tovert.
  • Linux Mint 17 blijft ondersteund tot 2019. Dat is nog 5 jaar. Gedurende die tijd zullen er wel software-updates zijn (beveiligingsupdates, kleine verbeteringen), maar die zullen geen ingrijpende gevolgen hebben op hoe alles werkt. Het systeem dat je installeert, is 5 jaar bruikbaar op de manier waarop het dat nu is.

Dus... Heb je nog ergens een computer die je quasi niet gebruikt omdat hij niet goed (meer) werkt, en zou je die liever wel nog gebruiken, zoek dan iemand die er voor jou Linux op wil zetten. Ik ben er zeker van dat je iemand kunt vinden die dat voor jou wil doen. Komende zaterdag, 19 september, is het software freedom day, en ter gelengenheid daarvan wil ikzelf ook wel een aantal installaties doen. Voor een pintje :)

Ik heb nog een aantal schermafbeeldingen van mijn nieuwe installatie geüpload. Als deze blog post je nieuwsgierig maakte, ga dan zeker eens kijken.

Comments

Migrating from Drupal 6 to Nikola
Geplaatst:


(I recorded an episode for Hacker Public Radio about this subject, which will be 'on air' on 2014-09-30. HPR1507)

As promised, some details about how I migrated my blog from Drupal 6 to Nikola.

First of all some details about the Drupal site I migrated from.

  • I did not have node revisions on my Drupal site.
  • My Drupal site had one 'vocabulary', which was used to assign tags to each post.
  • I did not use page aliases, so every post I had, had an url like johanv.org/node/195.

Also worth mentioning is that I used pandoc 1.12.3.3 to convert the html of my nodes to RestructuredText, the format that Nikola uses by default. If you have another version of pandoc installed, you will possibly need to tweak the script I used.

I created a new subdomain for my blog: blog.johanv.org. I used a script that creates a blog post for every published Drupal node on my Drupal site.

This script was created with a lot of trial and error. It can probably use some improvements, so I invite you to look at it, and to send me pull requests

#!/bin/bash

# migrate articles and stories from drupal 6 to nikola
# Copyright 2014 Johan Vervloet
# You can use and distribute this script under the terms of the
# GNU General Public License version 3 or later.

# Notes:
#  * my drupal site has no multiple revisions of posts.
#  * I had one vocabulary that I used for tagging posts.
#  * you need to have pandoc installed for this script to work.


# please change the two variables below
# according to your needs

# mysql command to connect to your drupal database
MYSQL_CMD="mysql -N -s -u root johanv6"
# directory to save the files
OUT_DIR="/tmp/out"

mkdir -p $OUT_DIR

nodes=$(echo "
      SELECT nid
      FROM node
      WHERE status > 0
      " | $MYSQL_CMD);

for nid in $nodes
do
      out_file=$OUT_DIR/$nid.rst

      details=$(echo "
              SELECT FROM_UNIXTIME(created),title
              FROM node
              WHERE nid=$nid
              " | $MYSQL_CMD | sed 's/\t/;/g');

      created=`echo $details | cut -f 1 -d\;`
      title=`echo $details | cut -f 2 -d\;`

      tags=$(echo "
              SELECT GROUP_CONCAT(td.name)
              FROM term_node tn JOIN term_data td ON tn.tid=td.tid
              WHERE tn.nid=$nid
              " | $MYSQL_CMD);

      cat > $out_file << EOF
.. title: $title
.. slug: node-$nid
.. date: $created
.. tags: $tags
.. link:
.. description:
.. type: text

EOF


      echo "SELECT body FROM node_revisions WHERE nid=$nid" | \
      $MYSQL_CMD | \
# convert node from html to rst
      pandoc --from=html --to=rst | \
# some trial and error for newlines
      sed 's/\\\\n/\n/g' | \
# convert references to other posts
      perl -p -000 -e 's;`((\s|[^<])*)</node/([0-9]*)>`__;:doc:`\1<node-\3>`;g' | \
# lots of trial and error to convert inline code
        perl -p -000 -e 's/``([^`]*\\n[^`]*)``/\n\n::\n\n\1\n\n/g' | \
      sed 's/\\n/\n  /g' | sed 's/\\t/\t/g' | sed 's/\\ / /g' | \
# convert video-links to youtube-links
# I did the conversion of \_ to _ manually
      sed 's/\[video:.*[/=]\([^/=]*\)\]/.. youtube:: \1/g' >> $out_file

# some output to show progress
      echo -n .

done

The script queries the database of the Drupal instance, to do the following for each node:

  • get the timestamp, title and tags for the node.
  • create a rst document with this metadata.
  • do a lot of manipulations on the node content, and add the content to the rst document.

Those manipluations are the following

  • conversion from html to restructured text (rst)
  • fixing line ending issues
  • conversion of references to other blog posts
  • handling issues with blocks with literal code in the blog posts
  • conversion of links to youtube videos

I won't read out the whole script, that wouldn't make interesting radio, but I will put a link in the shownotes. It's an ugly script: you'll have to edit the first lines, describing how you can connect to the database (put your credentials in my.cnf), and where the output files should go. (By default they go in /tmp/out.)

You probably have to tweak the script to adapt it to your needs, but hey, you have a starting point.

The script converts each node e.g. johanv.org/node/195 to a blog post blog.johanv.org/posts/node-195.html. This way I could easily convert hyperlinks to other posts to the corresponding html page of the new blog.

On the location of my old blog, I put an .htaccess file, that redirects all requests /node/number to the correct page on the new blog

RewriteEngine On
RewriteCond %{HTTP_HOST} !^blog\.
RewriteRule ^(.*)node/(.*)$ http://blog.johanv.org/posts/node-$2 [R=301,L]
RewriteRule ^(.*)$ http://blog.johanv.org/$1 [R=301,L]

You will have to With the combination of the script and the .htaccess file, 90% of the migration was very easy. But - as always - the remaining 10% needs some manual work. Like e.g. converting the youtube links containing underscores. Those underscores were prefixed with a backslash, which wasn't correct. Because there weren't too many of those errors, I fixed them manually.

Another thing you should do manually, is migrating attachments and images to your new site. Let's hope you don't have too many of them. And if so, you can probably write a script as well.

Comments

I used to have a blog in Drupal 6
Geplaatst:


At last I migrated my blog. It used to be a Drupal 6 blog, and I wasn't sure whether I wanted to migrate to Drupal 7 or Drupal 8. And eventually, I didn't migrate to either of those.

Now I am using Nikola, a static site generator. I got the idea from guitarman, who did an HPR episode about Nikola.

I see a lot of great features:

  • I can store my content in a git repository.
  • I can use my favourite text editor to edit my blog posts.
  • I can save blog posts when I'm not connected to the internet.
  • I don't need to install security updates for Drupal and Drupal modules.

Don't get me wrong, I think Drupal is a great product, especially when content on a website has to be provided by people who don't like to use git. Or when you need to have some forms on your site. Or when the server has to do some intelligent work. But my personal blog has other use cases, like displaying the texts I wrote. So I think a compiled site might not be such a bad solution.

This site uses Disqus for managing comments, which is of course evil. But hey, if you don't want to use Disqus, just send me a pull request with your comment :-D

I more or less migrated all articles of my drupal site to this new instance. (I will provide more details on that in a later post.) But there is still work to do, as you might already found out.

This is work in progress. I will keep you informed on the progress.

Comments

The set of prime numbers is infinite
Geplaatst:


(This article is more or less a transcript of a show I sent to hacker public radio.)

In this short article I want to talk about prime numbers. In praticular: about the fact that there exist an infinite number of prime numbers. This has been proven more than 2000 years ago, but I noticed that a lot of my friends that don't have a mathematical background, aren't aware of this fact.

Yet it is rather easy to prove. So that is what I'll be doing in this article. If you are afraid of math, don't worry, it won't take more than 10 minutes.

First of all I am going to define a prime number. I won't go into technical details, but a positive integer is a prime number if it has exactly 2 positive divisors: 1 and the number itself.

For the proof that the sequence of prime numbers is infinite, I am going to cheat a little. I am going to use the fundamental theorem of arithmetic. This theorem states that every integer greater than 1 is either a prime number itself, or it can be written as the product of prime numbers. This product of prime number is unique, apart from the order of the factors.

An example. Take the number 42. 42 can be written as a product of prime numbers: 2x3x7. Apart from the order of the factors 2, 3 and 7, there is no other way to write 42 as a product of prime numbers. And this is true for every integer greater than 1.

This seems a trivial thing, but in fact it is not. Nevertheless, to keep this discussion on topic, I will assume that the fundamental theorem of arithmetic is valid.

Now. The proof that there are infinitely many prime numbers.

We will show that for any finite set of prime numbers, there exists at least one prime number not contained in this set. If I can prove this, it follows that the set of all prime numbers must be infinite.

So we take a random set of n prime numbers, we call those prime numbers p_1, p_2, p_3, and so on. The last one is called p_n.

Now we construct a new number, let's say q. We construct q by multiplying all those prime numbers, and add one.

Is p_1 is a divisor of q? When you divide q by p_1, the quotient equals p_2 times p_3 times p_4 and so on times p_n. The remainder is 1. This follows from how we constructed q. So p_1 is not a divisor of q.

The same is true for p_2, p_3, and so on. None of our n prime numbers is a divisor of q.

What if we apply the fundamental theorem of arithmetic to q? It says that we can write q as a product of prime numbers. So let's do that. None of those prime numbers is contained in our original set of n prime numbers, because the prime numbers in our product are divisors of q, and a_1, a_2 and so on are not. So there exists at least one other prime number, not in our finite set, which is a divisor of q.

There we are. We just proved that if you take a finite set of random prime numbers, there is always at least one prime number not contained in this set. This means the set of prime numbers is infinite.

I hope you enjoyed this proof. It is not impossible that I made a mistake, because I didn't do a lot of math for the last 10 years. If you have any comments, please let me know.

Comments

Ik heb mijn fiets-gps-systeem gevonden
Geplaatst:


Een tijd geleden moest ik eerst even langs Lier passeren, alvorens ik naar het werk in Antwerpen fietste. Ik ken de fietswegen tussen Lier en Antwerpen niet zo goed, en aangezien de navigatie-app van Google maps al een tijdje fietsroutes ondersteunt, had ik het idee om me gps-gewijze te laten begeleiden.

Slecht idee. Google stuurde me langs idyllische plaatsjes zoals de ring rond Lier, en via de N10 helemaal van Lier tot Wilrijk. Vervolgens mocht ik de binnensingel volgen tot in Berchem, en daar werd ik dan min of meer fatsoenlijk begeleid tot waar ik moest zijn.

Dit verhaal is er eentje van in de winter. Ik heb vandaag de fietsroute nog eens opgezocht, en het is al een beetje beter:

googles route

Vanaf Mortsel stuurt Google me nu via de spoorweg tot in Berchem. Maar om in Mortsel te geraken, moet ik nog wel langs de Antwerpsesteenweg. Of langs de Hagenbroeksesteenweg, maar dat is al even erg. Er moest toch iets beters bestaan.

En dat betere alternatief heb ik nu gevonden. Het heet YOURS, en je kunt het uitproberen op yournavigation.org. YOURS gebruikt de kaarten van openstreetmap. Openstreetmap is te vergelijken met wikipedia, maar verzamelt wegenkaarten.

Het YOURS-navigatiesysteem leidde me naast de spoorweg tot in Boechout. Vervolgens langs rustige wegen tot in Mortsel. En vandaar volgde ik de spoorweg verder tot in Antwerpen. Anderhalve kilometer meer trappen, dat wel. Maar zonder het continue geraas van de ochtendspits, wat het een pak aangenamer maakt.

yours route

Als je over een Androidtelefoon beschikt, kan je telefoon de weg voor je wijzen. Hiervoor installeer je Osmand, een toepassing die je kunt downloaden via Google Play.

Als je de toepassing voor het eerst start, stelt ze voor om een aantal kaartgegevens te downloaden. Ik heb dat gedaan voor België, dat leek me nog wel nuttig. Je moet Osmand nu nog wel instellen om YOURS te gebruiken, en dat doe je als volgt:

  • Instellingen
  • Navigatie
  • Fiets
  • Routeberekening
  • YOURS
  • Ik heb ook 'stembegeleiding' aangezet, omdat ik mijn telefoon niet kan zien terwijl ik fiets. Ik gebruik de 'oortjes'.

Het navigatiesysteem gebruiken, kun je bijvoorbeeld als volgt:

  • Zoeken
  • (selecteer het 'huisje')
  • Kies stad, straat, en een aangrenzende straat
  • (met het sterretje kun je de locatie toevoegen aan je favorieten)
  • Klik 'Aanwijzingen' (of het verkeersbordje met de pijl)
  • Dan 'Alleen tonen' om de weg te tonen, of 'Volg' om de navigatie te starten

Het is aangewezen om op voorhand eens te kijken hoe de route loopt. Want als je op de gesproken aanwijzingen rijdt, dan is het soms niet helemaal duidelijk welke richting je uit moet. Een aantal valkuilen:

  • 'Flauwe bocht naar rechts' moet je soms interpreteren als 'gewoon het pad volgen, dat wat afbuigt', soms als 'rechtsaf een straat inslaan', of soms als 'een klein bijna onzichtbaar fietspaadje inrijden'.
  • 'Volg de weg' wil soms zeggen: 'Rij rechtdoor het kleine fietspaadje in, terwijl de gewone weg afbuigt.'
  • Als een fietspad aan een kruispunt even rechtsaf draait, dan krijg je soms de aanwijzing 'sla linksaf' als je aan het kruispunt gewoon rechtdoor moet.

Maar dat is allemaal niet onoverkomelijk. Als je van de route raakt, word je gevraagd om terug te keren, of wordt ze herberekend.

Comments

Printing to a HP Laserjet CP1025 on a Linux print server with CUPS
Geplaatst:


Almost 2 years ago, I bought a HP Laserjet CP1025. It was rather cheap. And it has crappy Linux support. Damn.

Every time I install a new Linux distribution, I have forgotten how to use this printer. So I might as well document it here.

If you want to attach your printer to your PC using the USB cable. It's not that difficult. You can install the hplip package, which is available in the Debian and Fedora repositories. Probably other distributions' as well. When you run hp-setup, you get an ugly gui tool to configure your printer, that downloads the correct freedom hating driver. But it works. (You can also run it in the console: hp-setup -i)

Now, where I live, I don't have room for a printer in the living room. So the printer is in the attic, attached to a Raspberry Pi print server. But for that to work, I need a client side printer driver. And that is a problem. The hplip tools don't want to believe me that there is a HP Laserjet CP1025 on the network. And I could not find out how to configure a CUPS network printer with the hplip drivers.

What you need, is the 'foo2zjs' printer driver. Which might be in your package repository. Which might even be already installed on your system. But don't use the one from the repositories! It does not work. I don't know why either.

So uninstall foo2zjs from your system, and compile it yourself. It is not hard to do. Go to the foo2zjs website, and scroll down to 'Download and install'. You only need to download the firmware for your printer model (in this case 1025).

Be careful now when you add your printer. The driver name is: HP LaserJet Pro CP1025nw Foomatic/foo2zjs-z3 (en). Which is, becasuse of the Pro in the name, on a completely different place in the alphabetical list than the other (nonfunctional) cp1025 drivers, which don't mention 'Pro'.

Comments

Tax-on-web met fedora 19 beta
Geplaatst:


Wil je met Fedora 19 beta je EID-kaartlezer aan de praat krijgen om met Tax-On-Web je belastingaangifte te doen? Met wat chance lukt het in vijf stappen:

  1. Installeer de middleware. Ik downloadde die voor Fedora 16. Je krijgt een deel warnings; negeer die maar.
  2. Installeer de firefox-add-on.
  3. Zet in about:config security.ssl.allow_unrestricted_renego_everywhere__temporarily_available_pref op false.
  4. Herstart Firefox
  5. Plaats je EID in de kaartlezer
  6. Doe de test.
  7. Let op: er verschijnt ergens een popup om je pin-code in te tikken. In het slechtste geval verschijnt die 'onder' de browser, en lijkt alles vast te lopen.

Comments

Wireless networking on a Samsung Series 5 laptop with Linux Mint
Geplaatst:


Last weekend, I installed Linux Mint 15 (Olivia) on a collegue's Samsung notebook. (I did a lshw, and it showed me '535U34C, Samsung SENS').

At my place, everything seemed to work OK (WPA2 and all), but when I tried it at work, the wireless connection dropped every x seconds, and needed to reauthenticate.

So I guess the problem depends on the type of wireless router.

I did some googling, and often I read that I had to pass the nohwcrypt=1 option to the ath9k kernel module. Which did not work. So I cluelessly tried some more suggestions, and finally I found a set of options that do work: nohwcrypt=1 blink=1 btcoex_enable=1 enable_diversity=1.

To try this out, you can do the following:

rmmod ath9k
modprobe ath9k nohwcrypt=1 blink=1 btcoex_enable=1 enable_diversity=1

(Maybe you have to log out and log on again after this command).

If it works, you can persist the settings, adding the following line to /etc/modprobe.d/ath9k.conf

options ath9k nohwcrypt=1 blink=1 btcoex_enable=1 enable_diversity=1

That worked for me. So I hope this information is useful for someone else as wel.

Many thanks to Sergei Winitzki, who posted the comment that saved my day.

Comments

Contents © 2014 Johan Vervloet - Powered by Nikola Creative Commons License BY-SA
Flattr