januari 2009

Quick Update

by Nico Verbruggen 30.01.2009

Even een snelle update. Alle redenaarsartikels vind je nu op Nicologic. Deze site wordt nog vernieuwd met snelle artikels, en Ubuntu-dingen.

Lees het volledige artikel →

Gwibber Microblogging client

by Jos 27.01.2009

Het is inmiddels wel duidelijk geworden dat Twitter een blijvertje is geworden. Er komen dan ook steeds meer zgn. microbloggers bij. Zelf gebruik ik ook Twitter maar heb wel af en toe geworsteld met de onder Linux beschikbare clients. Er zijn verschillende mogelijkheden om te gebruiken (en dan beperk ik mij tot Gnome).

Je kan natuurlijk Twitter gebruiken vanuit een terminal maar echt handig is dat niet. Dan heb je nog Pidgin (met microblog-purple) of Empathy en de Prism Twitter is dan weer een andere optie. En je hebt gtwitter en Twitux klaar staan in de repositories van Ubuntu. En dan heb je natuurlijk nog de mogelijkheden om te twitteren vanuit je browser met behulp van TwitKit en ga zo maar door. Mogelijkheden genoeg. Maar uiteindelijk kon geen…

Lees het volledige artikel →

Linus Torvald switched to Gnome?!!

by Jos 26.01.2009

Ik moet er nog even van bijkomen. Maar het staat er echt (op pagina 5):
Another open source project that underwent a big change was KDE with version 4.0. They released a lot of fundamental architectural changes with 4.0 and it received some negative reviews. As a KDE user how has this impacted you?
I used to [...]

Lees het volledige artikel →

Evolutie van scripts

by miekg 26.01.2009

Voor het beheren van UNIX machines worden er bij AT Computing regelmatig
scripts geschreven. Deze scripts beginnen altijd eenvoudig, maar dat
blijft meestal niet zo… Dit blog artikel laat zien hoe een simpel
script uitgebreid kan worden.

N.B. Dit is een manier om je script leesbaar te houden. Er zijn
andere manieren die ook door consultants van AT Computing gebruikt
worden.
Alvorens ik inhoudelijk op het script in ga, wil ik eerst een kleine
inleiding geven:

Het scriptje zorgt ervoor dat je een file met vi kunt editen en dat het
daarna in een git repository wordt gezet zodat er versie beheer is. Ook
wordt de speciale string $Hash$ geëxpandeerd a la de $Id$ string die
bekend is van subversion en CVS.

Het origineel

Het oer script is klein genoeg (net geen 50 regels) om hier in zijn volle
glorie te tonen, zoals je ziet is het ook nog in zsh geschreven
(aangezien dat mijn favoriete shell is).

#!/bin/zsh
# a wrapper around git and vi
# expands $Hash$ to $Hash: file short_hash date committer $

[[ ! -x =git ]] && exit 1

who=${SUDO_USER:-$LOGNAME}
full=$(getent passwd $who | awk -F: '{ gsub(/,*/, ""); print $5 }')
author="$full <$who@atoom.net>"

function search_git_dir {
gpath="$1"

[[ -d "$gpath/.git" ]] && echo "$gpath" && return
[[ -z "$gpath" ]] && echo "" && return

# strip that last path component and try again
search_git_dir "${gpath%/*}"
}

for file in "$@"; do
dir=$(dirname "$file")
cd "$dir"
base=$(basename "$file")

if [[ -z $(search_git_dir "$PWD") ]]; then
    # make a new one in $PWD
    git init || exit 1
else
    #echo FOUND ONE
fi
chmod +w "$base" 2> /dev/null

if ${EDITOR:-/usr/bin/vi} "$base"; then
    [[ ! -e $base ]] && exit 0
    git add $base
    # collapse $Hash: id $ line
    sed -i -e 's/\$Hash:.*\$/$Hash$/' "$base"
    git commit --author "$author" "$base"
fi

id=$(git-show -s --pretty=format:$base\ %h\ %ci\ $who%n -- "$base")
[[ -z $id ]] && exit 1

# re-add $Hash: sha1hash$ line
sed -i -e 's/\$Hash\$'/\$Hash:\ $id\ \$/ "$base"

chmod a-w $base 2> /dev/null
cd - >/dev/null
done

Zoals je ziet weinig commentaar, maar voor de gevorderde shell
programmeur nog redelijk te behappen.

Het script is nu af, maar binnen grotere organisaties is het vaak
gewenst om een script van meer commentaar te voorzien. Als er
veel scripts in inloop zijn kunnen deze het beste centraal beheert
worden. Ook een versie beheer systeem mag niet ontbreken, bijvoorbeeld
(hoe kan het ook anders) git.

Een file header toevoegen

Aangezien we op onze interne systemen meestal de bash shell gebruiken is het
script als eerste hiernaartoe omgezet. Ook is een programma header toegevoegd.
Het commentaar in dit script is in het Engels. Dit is geen bedrijfs standaard,
maar veel van onze klanten prefereren scripts in het Engels, vandaar.

Dit ziet er als volgt uit:

#!/bin/bash
#------------------------------------------------------------------------------#
# vi: set sw=4 ts=4 ai:                            ("set modeline" in ~/.exrc) #
#------------------------------------------------------------------------------#
# Program      : vigit                                                         #
#                                                                              #
# Author       : Ton Kersten                        Ton.Kersten@ATComputing.nl #
#                AT Computing                                 Toernooiveld 104 #
#                6525 EC  Nijmegen                             The Netherlands #
#                Fax: +31-24 3527292                       Tel: +31-24 3527282 #
#                                                                              #
# Date         : 23-01-2009                                       Time : 12:18 #
#                                                                              #
# Description  : Program to edit files and commit them to git                  #
#                                                                              #
# Parameters   : The files                                                     #
#                                                                              #
# Pre reqs     : Git should be installed                                       #
#                                                                              #
# Remarks      : Stolen from and based on an idea of Miek Gieben               #
#                                                                              #
# Exit codes   :    0 -> OK                                                    #
#                <> 0 -> !OK                                                   #
#                                                                              #
# Updates      : None (yet)                                                    #
#------------------------------------------------------------------------------#
#             (c) Copyright 2009 by AT Computing, The Netherlands              #
#------------------------------------------------------------------------------#

#------------------------------------------------------------------------------#
#                    V e r s i o n   i n f o r m a t i o n                     #
#------------------------------------------------------------------------------#
# $Id:: vigit 3 2009-01-26 09:36:01Z tonk                                   $: #
# $Revision:: 3                                                             $: #
# $Author:: Ton Kersten <Ton.Kersten@ATComputing.nl>                        $: #
# $Date:: 2009-01-26 10:36:13 +0100 (Mon, 26 Jan 2009)                      $: #
#------------------------------------------------------------------------------#
#             E n d   o f   v e r s i o n   i n f o r m a t i o n              #
#------------------------------------------------------------------------------#

#------------------------------------------------------------------------------#
# Determine the program name and the 'running directory'                       #
#------------------------------------------------------------------------------#
IAM="${0##*/}"
CRD="$( [[ "$(printf "${0}" | cut -c 1 )" = "." ]] &&
  {    printf "${PWD}/${0}"
  } || {
  printf "${0}"
  })"
CRD="${CRD%/*}"
CUR="${PWD}"

#------------------------------------------------------------------------------#
# Save the shell settings                                                      #
#------------------------------------------------------------------------------#
SETA=0; [[ ${-} = *a* ]] && SETA=1
SETE=0; [[ ${-} = *e* ]] && SETE=1
SETU=0; [[ ${-} = *u* ]] && SETU=1
SETX=0; [[ ${-} = *x* ]] && SETX=1

#------------------------------------------------------------------------------#
# Set and unset the needed shell settings                                      #
#------------------------------------------------------------------------------#
set +o noclobber            # Overwrite existing files, if needed              #
set -o nounset              # Don't allow uninitialized variables              #
set +o errexit              # No returncode checking                           #

Hierbij wordt een aantal zaken altijd op dezelfde manier opgezet, zoals bijvoorbeeld
het set -o nounset waardoor een script geen onbekende variabelen toestaat.

Deze complete header kan worden gegenereerd met een, speciaal voor dit doel geschreven,
header script.

Ook wordt het script voorzien van duidelijk commentaar, hier en daar doorspekt
met humor. Het commentaar dient ervoor te zorgen dat het script voor iedereen beter
leesbaar wordt.

Een paar voorbeelden uit de uiteindelijke code:

#------------------------------------------------------------------------------#
# No git, no glory                                                             #
#------------------------------------------------------------------------------#
[[ x"$(which git 2>/dev/null)" = x"" ]] &&
{   echo "No 'git' found. Please use plain vi(m)"
  exit 1
}

of

#----------------------------------------------------------------------#
# Check if the file is already in git (get the current hash)           #
#----------------------------------------------------------------------#
initial=0
hash=$(git-show -s --pretty=format:"${base} %h %ci ${who}" -- "${base}" 2>/dev/null)
[[ x"${hash}" = x"" ]] &&
{   git add "${base}"
  git commit --author "${author}" -m "Automatic initial checkin by '${IAM}'" "${base}"
  initial=1
}

of

#--------------------------------------------------------------------------#
# Re-add the $Hash$ line                                                   #
#--------------------------------------------------------------------------#
if [[ ${havehash} != 0 ]]
then
  if [[ ${longhash} != 0 ]]
  then
  id="${id}${spc}"
  sed -i.bck -e 's!\([[:space:]]*\$Hash::\).*\$:!\1 '"${id:0:66}"'\$:!' "${base}"
  else
  sed -i.bck "s/\\\$Hash\\\$/\$Hash: ${id} \$/" "${base}"
  fi
  rm -f "${base}.bck"
fi

Conclusie

Gedurende dit proces zijn ook talloze bugjes gefixt en is het hele
script geaudit. Het eind resultaat is dus dat we hier een “Enterprise
Ready” (TM) script hebben gekregen, terwijl het oer script ook heeft
geprofiteerd van dit herschrijf proces.

Hierbij is echter wel opvallend dat het oer script slechts uit 50 regels bestaat
en de uiteindelijke versie 254 regels groot is. Ook loopt het nu op
FreeBSD (en waarschijnlijk andere Unixen) in plaats van alleen op Linux.

Het uiteindelijke script is
hier te vinden.

Lees het volledige artikel →

Virtualisatie in Ubuntu

by Nico Verbruggen 24.01.2009

Ik heb, buiten de fysieke installatie van Ubuntu ook Debian, OpenSUSE, Kubuntu etc. geprobeerd. Dat doe ik in een Virtual Machine, namelijk VirtualBox. Ik heb bijvoorbeeld ook een legitieme XP in een virtuele machine geïnstalleerd, om als ik Windows nog eens nodig heb, die te kunnen gebruiken. (Een feit dat tot nu toe nog niet is voorgevallen!) Ik heb wel naast Ubuntu mijn fysieke Windows Vista (

Lees het volledige artikel →

Gnome Associate

by Jos 23.01.2009

Het is nu officieel dat ik voor Gnome warme gevoelens koester.

Kudos (0)

Lees het volledige artikel →

Anki, om te onthouden

by Nico Verbruggen 21.01.2009

Vorige post beschreef ik hoe Anki me hielp mijn woorden te studeren. Nu met release 0.9.9.6 is de irritante bug die ervoor zorgde dat ik de lettertypes niet kon aanpassen, verholpen.Ik ben mijn woorden Latijn aan het inzetten. Kijk mee:Nu ik de aanvullende gegevens iets kleiner kan maken, zal het leren van de woorden simpeler gaan. En het ingeven ook. Leer jij mee?Anki is ook beschikbaar voor

Lees het volledige artikel →

Hehe, eindelijk is er een Nederlands boek voor Ubuntu!

by Catharina 20.01.2009

Eindelijk is er een Nederlandstalig boek op de markt over Ubuntu. Ik weet nog goed dat ik een tijdje geleden mijn broer probeerde over te halen naar Ubuntu, maar zijn vraag of er een boek was, moest ik ontkennend beantwoorden. Zijn kast staat vol met boeken over Windows, dus vond hij het maar onbegrijpelijk dat [...]

Lees het volledige artikel →

iSCSI disk vergroten zonder te rebooten

by jacco 19.01.2009

Als je een iSCSI-device gebruikt voor opslag is de kans groot dat de ruimte op dat device op een gegeven moment niet meer toereikend is. Je wilt die dan graag vergroten en deze vergrote ruimte door de client laten gebruiken.

Nu is dat vergroten vanaf de machine die de iSCSI-target aanbiedt normal
gesproken niet zo’n probleem. OpenFiler biedt daarvoor mogelijkheden in zijn
webinterface.

Maar hoe maak je de iSCSI-client (de machine waarop het
stukje storage gebruikt wordt) duidelijk dat zijn device – dat hij ziet als
een normale SCSI-disk als /dev/sd[a-z] – groter is dan hij een paar
minuten geleden dacht?

Rebooten zou je zeggen. Maar dat is natuurlijk niet
de Linux-manier, een beetje Linux-server gaat alleen down wanneer de spanning
eraf moet …

Er bestaat een tooltje, genaamd /sbin/partprobe, dat tot doel heeft de
kernel kennis te laten nemen van een gewijzigde partitietabel.Maar dat
biedt geen soelaas, want de partitietabel is nog niet gewijzigd. Eerst moet je
de kernel duidelijk maken dat het device groter is geworden. Dat kan, en
gelukkig hoef je daarvoor niet te rebooten.

Het magische commando heet /sbin/blockdev. Als je dit tooltje aanroept met de parameters --rereadpt en de devicenaam (/dev/sd[a-z]), zal de kernel op de hoogte worden gesteld van de gewijzigde devicegrootte.

Daarna hoef je alleen nog de partitie te resizen (bijvoorbeeld met gparted) en het device opnieuw mounten -> highscore. Het resizen van het filesystem op de betreffende partitie gaat automatisch (met dank aan gparted).

Voorbeeld:

  • Oude situatie
# df -h /iscsi
Filesystem            Size  Used Avail Use% Mounted on
/dev/sdb1            1008M   18M  940M   2% /iscsi

# fdisk -l /dev/sdb
Disk /dev/sdb: 1073 MB, 1073741824 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        1011     1048376+  83  Linux
  • iSCSI op (bijvoorbeeld) OpenFiler oprekken tot 3 GB.
  • Filesystem unmounten (anders vindt /sbin/blockdev dat het device busy is) en /sbin/blockdev het device opnieuw laten scannen.
# umount /iscsi
# /sbin/blockdev --rereadpt /dev/sdb
# fdisk -l /dev/sdb
Disk /dev/sdb: 3154 MB, 3154116608 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        1011     1048376+  83  Linux
  • So far, so good. Nu de partitie oprekken. Start gparted en resize de partitie naar het maximum. Daarna kun je met fdisk opvragen of het gelukt is.
# fdisk -l /dev/sdb
Disk /dev/sdb: 3154 MB, 3154116608 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        2970     3079859+  83  Linux
  • Opnieuw mounten en je kunt gebruik maken van de extra ruimte.
# mount /dev/sdb1 /iscsi
# df -h /iscsi
Filesystem            Size  Used Avail Use% Mounted on
/dev/sdb1             2.9G   18M  2.8G   1% /iscsi

Notabene:

  • Deze procedure zal ook prima werken met (fibre channel) SAN-devices. Het principe is gebaseerd op het gegeven dat de kernel een block-based SCSI-device heeft dat onder zijn handen van grootte verandert.
  • Het tooltje /sbin/blockdev zit in het pakket util-linux (zowel bij Ubuntu als RedHat).

Lees het volledige artikel →

Sitecom WL-302 (300N) Wireless USB Adapter met Ubuntu 8.10

by matthijs 18.01.2009

Ik heb een router van Sitecom. De Sitecom Wireless 300N XR Gigabit Router WL-306. Prima ding dat naar behoren werkt met Ubuntu 8.10. Nu heb ik er ook een Sitecom 300N Wireless USB Adapter (WL-302) bij gekocht om de draadloze snelheid in huis zo optimaal mogelijk te maken (in mijn pc zit ingebouwd een Linksys RT2500 chipset die werkelijk niet vooruit te branden is).

lees verder »

Lees het volledige artikel →

KDE 4.2 – Nederlands

by Kristof Bal 18.01.2009
27 januari 2009 zal KDE 4.2, de nieuwe feature-release van KDE 4.x uitkomen. Het finaal taggen ervan (bevriezen van de code) gebeurt 20 januari.

Ik geloof dat deze release qua GUI voor 100% vertaald zal zijn. Verder heb ik vorige week de vertaling van documentatie (na een jaar van inactiviteit) samen met Jaap terug opgepakt, dus verwacht bijgewerkte (of nieuwe) handboeken van Kalzium, KAlgebra, KMPlot, Marble, JuK en KSnapshot. Tijdens de stabiele cyclus van KDE 4.2 zullen dit er langzaam meer worden.

En nu een vraagje: Komen er pakketten van KDE 4.2 voor Mandriva 2009? Of moet ik Cooker (of SuSE) gaan draaien?

PS: Nog een vraagje: van welk KDE-programma zou je graag een (up-to-date) Nederlands handboek willen hebben (waar er nog geen is, check Help->Handboek van programma)?

Lees het volledige artikel →

Ubuntu, week 10

by Nico Verbruggen 17.01.2009

Het is de tiende week. Maak kennis met GNOME Panel. Het paneel dat ik nu volledig heb aangepast.Van links naar rechts: Menu, Firefox, OpenOffice.org, Pidgin, VirtualBox, Rhythmbox, Home, Evolution Mail, Anki, Quick Find.Hamster, Tomboy Notities, Pidgin IM Tray, Rhythmbox Tray, Wireless, DropBox, Applets, weer, datum, uur, status en aangemelde persoon.Quick Search is geweldig. Als ik iets wil

Lees het volledige artikel →

Star Trek en de open source communities

by Open Source eLearning 17.01.2009

Community Misschien zit ik er naast maar ik heb sterk het gevoel dat de Ferengi zijn gemodelleerd naar de Nederlanders.

Wie de voorgaande zin niet weet te plaatsen kent waarschijnlijk Star Trek niet. Ik ben niet echt een "Trekkie", maar ik mag graag een aflevering uit een van de series bekijken of een van de boeken uit het Star Trek universe lezen. De boeken zijn geen wereldliteratuur. Ze lezen wel erg lekker weg. De afgelopen maanden heb ik heel wat losse minuten stukgeslagen met de serie Star Trek: Starfleet Corps of Engineers.

Bij open source software spreken we snel over communities en deze zijn cruciaal voor de ontwikkeling van onze favoriete software. Rond Star Trek vinden we eveneens communities en de open source communities zouden op een punt heel veel van de Star Trek communities kunnen leren: de kwaliteit van de documentatie. Kijk maar even naar de volgende twee Star Trek Wiki's:

Lees het volledige artikel →

Basiscursus Ubuntu 20% goedkoper voor HCC leden

by Open Source eLearning 16.01.2009

Aanbieding Leden van de HCC kunnen tot de Basiscursus Ubuntu tot 18 februari 2009 met 20% korting aanschaffen. De prijs is dan niet € 19,95, maar € 15,96 (exclusief € 1,95 verzendkosten).

Het boek wordt geleverd via Computerboek.nl. De bestelpagina is te vinden onder deze snelkoppeling.

Lees het volledige artikel →

Linux in de New York Times

by Lennert Holvoet 16.01.2009

Vandaag las ik op de site van de New York Times 2 artikelen over Linux.

Een eerste was The Next Leap for Linux
Dit artikel handelt over bepaalde aspecten waardoor je het verschil tussen Windows, MacOSX en Linux kleiner maakt, zoals verschillende software alternatieven, hoe je multimedia-codecs moet installeren, en meer.

Het tweede artikel heette A Software Populist Who Doesn’t Do Windows en gaat over Mark Shuttleworth en Ubuntu Linux.
Mark Shuttleworth vertelt er waarom hij begonnen is met het bedrijf Canonical dat Ubuntu op de markt brengt.

“Look, I have a very privileged life, right?” Mr. Shuttleworth said. “I am a billionaire, bachelor, ex-cosmonaut. Life couldn’t easily be that much better. Being a Linux geek sort of brings balance to the force.”

Twee zeer interessante artikels voor wie wat over Linux wil lezen, en de Engelse taal niet schuwt.
Wie een vertaling wil van het artikel kan gebruik maken van Google Translate waar je gewoon de URL van het artikel kan ingeven om het vertaald te zien naar het Nederlands.

Lees het volledige artikel →