LAN-party games

TODO: blogpost schrijven over
Borderlands, Star Trek Online, Star Wars The Old Republic, Starcraft 2, Borderlands, Alien Swarm, Left 4 Dead 2, Forsaken World

Zet 5 thirty-somethings met hun pc op een zolder voorzien van voldoende stopcontacten, een breedbandaansluiting en een goed gevulde ijskast, en je hebt de ingrediënten voor een LAN-party. Gastheer Erik had mij voorzien van een deftige gaming pc, want op een vorige LAN-party werd mijn pc vergeleken met een voeding. Wink Nose (TODO: foto invoegen)

NAS

dmesg
[165247.112049] usb 2-5: new high speed USB device number 7 using ehci_hcd
[165247.245675] scsi10 : usb-storage 2-5:1.0
[165248.244650] scsi 10:0:0:0: Direct-Access     ST312002 6AS                   PQ: 0 ANSI: 2 CCS
[165248.272517] sd 10:0:0:0: Attached scsi generic sg10 type 0
[165248.273006] sd 10:0:0:0: [sdh] 234441648 512-byte logical blocks: (120 GB/111 GiB)
[165248.275218] sd 10:0:0:0: [sdh] Write Protect is off
[165248.275224] sd 10:0:0:0: [sdh] Mode Sense: 28 00 00 00
[165248.276099] sd 10:0:0:0: [sdh] No Caching mode page present
[165248.276104] sd 10:0:0:0: [sdh] Assuming drive cache: write through
[165248.278758] sd 10:0:0:0: [sdh] No Caching mode page present
[165248.278763] sd 10:0:0:0: [sdh] Assuming drive cache: write through
[165248.298543]  sdh: sdh1 sdh2
[165248.301135] sd 10:0:0:0: [sdh] No Caching mode page present
[165248.301139] sd 10:0:0:0: [sdh] Assuming drive cache: write through
[165248.301142] sd 10:0:0:0: [sdh] Attached SCSI disk
amedee@amedee-Aspire-M3800:~$ sudo smartctl -A /dev/sdh
smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.0.0-16-generic] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   061   051   006    Pre-fail  Always       -       0
  3 Spin_Up_Time            0x0003   097   096   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       1
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   078   060   030    Pre-fail  Always       -       67276141
  9 Power_On_Hours          0x0032   077   077   000    Old_age   Always       -       20753
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   083   083   020    Old_age   Always       -       17524
194 Temperature_Celsius     0x0022   053   057   000    Old_age   Always       -       53
195 Hardware_ECC_Recovered  0x001a   061   051   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x0000   100   253   000    Old_age   Offline      -       0
202 Data_Address_Mark_Errs  0x0032   100   253   000    Old_age   Always       -       0

sudo st -l
Drive information:

/dev/sg0 ATA      Hitachi HDT72101 ST6O 1953525167 blocks
/dev/sg7 WD       My Book 1110     2003 -389310465 blocks
/dev/sg10 WDC WD20 00JD-00HBB0       390721967 blocks

sudo sh -c "time st -t 100 /dev/sg10; time st -T 100 /dev/sg10; time badblocks -nvs -o badblocks-n.txt /dev/sdh; time badblocks -wvs -o badblocks-w.txt /dev/sdh"
Drive /dev/sg10 does not support DST - generic short test will be run
Starting 100 % Generic Short Test on drive /dev/sg10 (^C will abort test)
        -Starting 30 second sequential reads from block 0 on drive /dev/sg10
        -Starting 30 second sequential reads to end of disk on drive /dev/sg10
        -Starting 30 second random reads on drive /dev/sg10
        -Starting 30 second random seeks on drive /dev/sg10
Generic Short Test PASSED on drive /dev/sg10
0.00user 2.05system 1:58.22elapsed 1%CPU (0avgtext+0avgdata 2448maxresident)k
0inputs+40outputs (0major+206minor)pagefaults 0swaps
Drive /dev/sg10 does not support DST - generic long test will be run
Starting generic long (full sequential verify) test (234441647 blocks) on drive /dev/sg10 (^C will abort test)
        Sequential Test 5 % complete on drive /dev/sg10
        Sequential Test 10 % complete on drive /dev/sg10
        Sequential Test 15 % complete on drive /dev/sg10
        Sequential Test 20 % complete on drive /dev/sg10
        Sequential Test 25 % complete on drive /dev/sg10
        Sequential Test 30 % complete on drive /dev/sg10
        Sequential Test 35 % complete on drive /dev/sg10
        Sequential Test 40 % complete on drive /dev/sg10
        Sequential Test 45 % complete on drive /dev/sg10
        Sequential Test 50 % complete on drive /dev/sg10
        Sequential Test 55 % complete on drive /dev/sg10
        Sequential Test 60 % complete on drive /dev/sg10
        Sequential Test 65 % complete on drive /dev/sg10
        Sequential Test 70 % complete on drive /dev/sg10
        Sequential Test 75 % complete on drive /dev/sg10
        Sequential Test 80 % complete on drive /dev/sg10
        Sequential Test 85 % complete on drive /dev/sg10
        Sequential Test 90 % complete on drive /dev/sg10
        Sequential Test 95 % complete on drive /dev/sg10
Generic Long Test PASSED on drive /dev/sg10
0.92user 7.10system 1:00:21elapsed 0%CPU (0avgtext+0avgdata 2416maxresident)k
0inputs+8outputs (0major+201minor)pagefaults 0swaps
Checking for bad blocks in non-destructive read-write mode
From block 0 to 117220823
Checking for bad blocks (non-destructive read-write test)
Testing with random pattern: done                                
Pass completed, 0 bad blocks found.
314.29user 189.31system 6:03:43elapsed 2%CPU (0avgtext+0avgdata 4656maxresident)k
468883344inputs+468883296outputs (1major+373minor)pagefaults 0swaps
Checking for bad blocks in read-write mode
From block 0 to 117220823
Testing with pattern 0xaa: done                                
Reading and comparing: done                                
Testing with pattern 0x55: done                                
Reading and comparing: done                                
Testing with pattern 0xff: done                                
Reading and comparing: done                                
Testing with pattern 0x00: done                                
Reading and comparing: done                                
Pass completed, 0 bad blocks found.
1177.04user 375.63system 8:56:29elapsed 4%CPU (0avgtext+0avgdata 4112maxresident)k
937766592inputs+937766592outputs (0major+355minor)pagefaults 0swaps
ls -al badblocks-*
-rw-r--r-- 1 root root 0 2012-04-18 01:14 badblocks-n.txt
-rw-r--r-- 1 root root 0 2012-04-18 07:18 badblocks-w.txt

De Zwaarste Lijst 2012 downloaden met bash

Naar jaarlijkste traditie trakteerde Alex Agnew de Studio Brussel luisteraars op De Zwaarste Lijst. En naar ondertussen al even jaarlijkse traditie geef ik even de bash commando's om de zware gitaren te downloaden en samen te voegen naar één mp3.

Dit jaar helaas had men bij Studio Brussel het geniale idee om de naamgeving van de files een klein beetje te veranderen. Waar er vroeger alleen een volgnummer was, zit er nu ook de naam van het eerste en laatste nummer van dat uur in. Meh.

Van de vorige keren weet ik nog dat de mp3's gehost staan op de server od.mp3.streampower.be. Ik gebruikte:

Alles tesamen is dat (te copypasten voor uw gemak):

wget -bq `curl -s http://www.stubru.be/programmas/dezwaarsteshow/dezwaarstelijst2012 | grep mp3\.streampower | sed 's/.* \"//' | sed 's/\",.*//'`

Om samen te voegen naar 1 mp3:

ffmpeg -i "concat:41_120409_zwaarste_1-snip_hi.mp3|41_120409_zwaarste_2_Slipknot_-_Rammstein-snip_hi.mp3|41_120409_zwaarste_3_ACDC_korn-snip_hi.mp3|41_120409_zwaarste_4_sepultura_Metallica-snip_hi.mp3|41_120409_zwaarste_5_pantera_metall-snip_hi.mp3|41_120409_zwaarste_6_machine_head__metallica-snip_hi.mp3" -acodec copy DeZwaarsteLijst2012.mp3

Getest op Debian en op een MacBook Air met MacPorts geïnstalleerd (voor wget en ffmpeg). Windows users: sorry.

2012

Ik heb de film 2012 nog altijd niet gezien. Spesjaal om alle Maya-bijgelovigen te jennen, ga ik wachten tot 21 december 2012 om die film te bekijken. Har har har!

Ik ben van plan om die vrijdagavond ineens een filmmarathon te doen, met alleen maar rampenfilms. Een paar vrienden uitnodigen, pizza, popcorn, ambiance en tussendoor een beetje tweeten over de ramp die zich op dat moment afspeelt op het scherm. 't Zou wel leuk zijn als er die avond nog mensen zo'n rampenfilmmarathon zouden doen bij hen thuis en dat we allemaal samen de 2012-believers een beetje pesten. Wink Nose

2012 staat in ieder geval op het programma. Welke rampenfilm mag er zeker niet ontbreken? De ramp moet liefst zo groot mogelijk zijn, dus geen klein brandje, vulkaanuitbarsting of bootongeval. Als het even kan ook geen meteoriet die op het laatste nippertje opgeblazen wordt. Dus liefst films waarin minstens 90% van de wereldbevolking het niet overleeft (een zombie leeft niet dus dat mag ook) en een happy end is niet noodzakelijk.

Ik heb al een lijst met apocalyptische films gevonden maar suggesties zijn zeker welkom!

Een nieuwe uitdaging!

Het is officieel: vanaf 1 maart 2012 ga ik aan de slag als Software Tester/QA Engineer bij DYMO in Sint-Niklaas!

Dus in plaats van dingen te herstellen, ik ga ze zelf zo hard mogelijk mogen proberen breken. Wink Nose Met de bedoeling uiteraard dat dit allemaal verholpen wordt vóór jullie in de winkel een labelprinter gaan kopen.

Wat mij vooral aanspreekt in deze job:

  • Ik ga kunnen "spelen" met allerlei technologieën die mij interesseren, onder andere ook Linux en allerlei mobile platformen.
  • Zorg voor kwaliteit en oog voor detail is altijd al iets wat ik in mijn werk probeer te verwerken.
  • Misschien nog het belangrijkste van al: ik ga rechtstreeks een bijdrage kunnen leveren aan producten die je in de winkel gaat zien liggen. Qua job satisfaction kan dat wel tellen!
  • Dat DYMO in mijn woonplaats Sint-Niklaas gelegen is, dat is natuurlijk ook mooi meegenomen. Ik zal mijn fietsbanden maar al oppompen. Wink Nose

Giveaway: Duracell USB-oplader - de winnaar

De winnaar van de giveaway werd bepaald door een MD5sum te berekenen van naam + emailadres + hostname + onderwerp + commentaar van alle inzendingen. De inzendingen werden dan op volgorde van de MD5sum gesorteerd.

0a9e574b32b512a9193e77e1a6193e1d - Karen
0b18343f30ab4c4d57fef5e60178342b - Sébastien
1a3b63fc0cd4bfe389e1e4ad98ba2997 - ap_llo
2c995fbd05751152b0d5f6302089e4dd - Bruno
41088504757cd4e1366a576305b72a12 - Arne
6afc3f76b47e27a1cd94ede3fae37ab9 - Gino
8a91a3df1ef42459687061e7b5548ff5 - Tom
93e5850a2a4c7743624d982988c5d870 - oliynyk dima
a1ba50f03b33241711d2dc1d8f310e4c - xtofke
b885e1babbf6916b8449089cf08d0a6b - Bram
bec8eff1e7a1eb6d57e33963f5dcf812 - Swassena
f61e9fe453411e4a1342a6099b933a7f - Béate Vervaecke

Karen, my people will call your people.

Giveaway: Duracell USB-oplader

Ik heb mij een week geleden een Duracell usb-oplader gekocht. Als je daar meer over wil weten, dan verwijs ik graag door naar de blog van Ysabel: http://ysabje.wordpress.com/2011/11/22/getest-duracell-usb-oplader-givea...

Nu moet het toch wel lukken dat ik enkele dagen later via Twitter nóg een usb-oplader gewonnen heb. Net zoals bij Ysabel is het er eentje van 3 uur. Omdat enige ironie mij niet vreemd is, ga ik ook eens voor blogger spelen en van giveaway doen.

Dit zijn de spelregels:

  • Laat een reactie achter waarin je beschrijft wat je een Duracell usb-oplader gaat doen. Kwestie van niet alleen maar "me too" reacties te hebben, het moet interessant blijven nietwaar? Nose Smile
  • Zorg ervoor dat je een werkend emailadres hebt ingevuld, zodat ik je achteraf kan contacteren om je adres te vragen.
  • De wedstrijd loopt tot en met Newtonmas.

Een onschuldige pseudo-random number generator zal dan de winnaar aanduiden.

UPDATE: De winnaar is bekend!

mu - maildir utils

Ik zag deze tweet passeren van @DriesBultynck:
zoekt nog steeds een manier om een reeks mails uit gmail te exporteren naar excel (incl. date + content). Niemand?

Volgens @haploc zou dat wel moeten lukken met Perl, Email::Simple en Spreadsheet::SimpleExcel. Aangezien ik niet zo vlot ben met Perl, heb ik een andere oplossing gezocht en gevonden: mu (kort voor Maildir Utils).

Helaas heeft mu geen kant-en-klaar pakket voor Debian dus moet het van source geïnstalleerd worden.

cd download
wget http://mu0.googlecode.com/files/mu-0.9.7.tar.gz
tar -xvf mu-0.9.7.tar.gz
cd mu-0.9.7

Op mijn systeem ontbraken nog een paar dependencies, met een paar keer ./configure te draaien heb ik ze kunnen achterhalen:

sudo apt-get install build-essential libglib2.0-dev libgmime-2.4-dev libxapian-dev xdg-utils guile-1.8-dev libgtk2.0-dev

Daarna mu configureren:

./configure

Als alles goed gegaan is, dan krijg je op het einde ongeveer zo'n output:

mu configuration is complete.
-----------------------------
Xapian version                       : xapian-config - xapian-core 1.2.3
GLib version                         : 2.24.2
GMime version                        : 2.4.14
GTK+ version                         : 2.20.1
GIO version                          : 2.24.2
Guile version                        : 1.8.7

Build unit tests (glib >= 2.22)      : yes
Build 'mug' toy-ui (requires GTK+)   : yes
McCabe's Cyclomatic Complexity tool  : yes
xdg-open                             : /usr/bin/xdg-open

Have direntry->d_ino                 : yes
Have direntry->d_type                : yes
-----------------------------

Daarna builden en installeren:

make
sudo make install
cd

Klaar? Bijna. mu werkt door een maildir te indexeren als een database, waar je dan queries op kan loslaten. Voor het indexeren gaat mu uit van een aantal zinnige defaults dus het is niet meer dan:

mu index

Afhankelijk van de grootte van de maildir kan dit even duren. Alhoewel. Bij mij viel het nog best mee:

time mu index
mu: indexing messages under /home/amedee/Maildir [/home/amedee/.mu/xapian]
/ processing mail; processed: 69736; updated/new: 69736, cleaned-up: 0
mu: elapsed: 210 second(s), ~ 332 msg/s
mu: cleaning up messages [/home/amedee/.mu/xapian]                                                                                                              
\ processing mail; processed: 69736; updated/new: 0, cleaned-up: 0
mu: elapsed: 2 second(s), ~ 34868 msg/s

real    3m32.500s
user    1m21.021s
sys     0m7.692s

Als je mu regelmatig gebruikt, dan is misschien geen slecht idee om mu index toe te voegen als cron job.

Nu mu geïnstalleerd is, kan je queries draaien zoals

mu find "iText" --format=xml > mu-iText.xml

Dit geeft bij mij als output:

<?xml version="1.0" encoding="UTF-8" ?>
<messages>
        <message>
                <from>1T3XT BVBA &lt;info [at] 1t3xt [dot] info&gt;</from>
                <to>Post all your questions about iText here &lt;itext-questions [at] lists [dot] sourceforge [dot] net&gt;</to>
                <subject>Re: [iText-questions] Adding watermark in front of the page    background color</subject>
                <date>1323524095</date>
                <size>7149</size>
                <msgid>4EE35FFF [dot] 6070006 [at] 1t3xt [dot] info</msgid>
                <path>/home/amedee/Maildir/.mailinglijst.itext-questions/cur/1323524308.25506_3.intrepid:2,</path>
                <maildir>/.mailinglijst.itext-questions</maildir>
        </message>
        <message>
                <from>Balder VC &lt;lists [at] redlab [dot] be&gt;</from>
                <to>itext-questions [at] lists [dot] sourceforge [dot] net</to>
                <subject>Re: [iText-questions] XMLWorker &amp; RTL</subject>
                <date>1323524276</date>
                <size>7769</size>
                <msgid>4EE360B4 [dot] 8040008 [at] redlab [dot] be</msgid>
                <path>/home/amedee/Maildir/.mailinglijst.itext-questions/cur/1323524480.9255_3.intrepid:2,</path>
                <maildir>/.mailinglijst.itext-questions</maildir>
        </message>
        <message>
                <from>Balder VC &lt;lists [at] redlab [dot] be&gt;</from>
                <to>Post all your questions about iText here &lt;itext-questions [at] lists [dot] sourceforge [dot] net&gt;</to>
                <subject>[iText-questions] Fwd: Re:  XMLWorker &amp; RTL</subject>
                <date>1323525006</date>
                <size>19787</size>
                <msgid>4EE3638E [dot] 7020708 [at] redlab [dot] be</msgid>
                <path>/home/amedee/Maildir/.mailinglijst.itext-questions/cur/1323525223.17054_3.intrepid:2,</path>
                <maildir>/.mailinglijst.itext-questions</maildir>
        </message>
</messages>

Meer voorbeelden van queries zijn te vinden op de mu cheatsheet.

Nu is het gewoon nog een kwestie van:

  1. Een lokale IMAP-server installeren die Gmail binnentrekt (zelf ben ik nogal fan van Dovecot)
  2. De gepaste query verzinnen, met XML output.
  3. De XML-file binnentrekken in een spreadsheetprogramma.

Voila, dit is één mogelijke oplossing.

Een bug die maar niet gefixt geraakt

Aantal dagen sinds bug #32415 gemeld werd

Nog enkele maanden en er is een Ubuntu bug die 6 jaar oud is.
Ondanks de beschrijving, gaat het niet alleen om Apple Bluetooth keyboards, maar ook om Logitech MX900, MX5000, MX1000, Lenovo bluetooth,... Ik vermoed dat die keyboards en muizen allemaal dezelfde bluetooth dongle gebruiken.

En kom nu niet af dat het allemaal de schuld is van hardwarefabrikanten, want in Opensuse werkt dit wél zoals het hoort.

Ik vind dat erg. 6 jaar staat die bug open, users zitten daar logs te dumpen tot en met, en geen enkele developer die er naar omkijkt. En als er dan één user is die een extreem gecompliceerde workaround beschrijft (die zelfs niet voor iedereen werkt!), dan wordt de bug koudweg afgesloten.

Een mens zou voor minder overschakelen naar Apple of Microsoft.

Btrfs: het verdict

Btrfs is mooi op papier. Héél mooi. Copy-on-write. Snapshots. Vóór iedere apt-get upgrade automatisch een snapshot met apt-btrfs-snapshot. Geen zorgen meer over partities. Online devices verwijderen en weer toevoegen, een beetje zoals bij een Drobo, maar dan Free Software.

Echt waar, btrfs is fun.

MAAR!!!

Dan stel je plots vast dat je pc er 7 minuten over doet om te booten, in plaats van de gebruikelijke 20 seconden. Ik herhaal: ZE-VEN MI-NU-TEN. Bleek dat er een paar btrfs snapshots corrupt waren, en dat fsck.btrfs ze probeerde te herstellen bij het booten. Normaal is dat geen probleem, ware het niet dat fsck.btrfs nog niet af is en alleen read-only werkt. Fouten worden dus niet hersteld, bijgevolg gebeurt die fsck bij iedere reboot opnieuw.

Ik ben geen data kwijt, maar ik heb toch maar alles ge-rsync-t naar een externe schijf, de btrfs partitie geformatteerd naar ext4, en terug ge-rsync-t. Daarna bootte de pc terug onder de 20 seconden.

Btrfs gaat in de koelkast tot ze een deftige fsck hebben.

Zucht. Ik had beter moeten weten.

Reclame... ;-)

Met dank aan
  • Jasmina
  • Celine
  • Pieter
  • Jeff
  • Hans
  • Jurgen
  • Jurgen
  • Marijke
  • Amedee
  • Erik
  • Danny
  • Sofie
  • Lars
  • Christophe
  • Peter
  • Jeroen
  • Jurgen
om mij een gratis herlading twv €15 te bezorgen!

Waar ben ik?