mercredi 24 mars 2010

Around an Arduino

Jeudi dernier au salon Solution Linux (ex Linux Expo) à Paris, je suis
tombé sur le stand de H:D (Hackable Devices) [1,2] , qui visent à
promouvoir
le hardware libre.

Entre un freerunner (sous openmoko), quelques autres kits de
développement de niveau plus ou moins bas, une petite plateforme avec
un chip, une vingtaine d'entrées-sorties, et une connectique USB ont
attiré mon attention en particulier.

Il s'agissait d'Arduino. Apparemment c'est une plateforme libre à base
d'ATMega328, je cite [2] :


"Arduino Duemilanove
Duemilanove ATMega328 serie

The Arduino Duemilanove ("2009") is a microcontroller board based on
the ATmega168 or ATmega328. It has 14 digital input/output pins (of
which 6 can be used as PWM outputs), 6 analog inputs, a 16 MHz crystal
oscillator, a USB connection, a power jack, an ICSP header, and a
reset button."

En cherchant un peu plus sur le web on trouve en particulier des infos
sur comment installer les outils de développement [3].


Par contre, je cherche encore des infos sur comment réaliser les
circuits que l'on peut mettre en sortie (bon, ok, ça tape plus dans
l'électronique, mais il n'empêche). Par exemple si je veux y mettre un
moteur quelconque, une matrice de led, ou bien même, plus intéressant,
un interrupteur qui pourrait me permettre d'allumer l'alimentation
d'un disque dur externe. Ce ne sont que quelques idées qui pourraient
me permettre d'expérimenter avec cette plateforme, mais je ne sais pas
encore comment les réaliser. Toute information est donc la bienvenue.


Cherchant ce type d'informations, l'on vient de me conseiller d'aller
également voir du côté des adaptateurs USB-port parallèle, qui sont en
soit plus simple à programmer. Mais en fin de compte je trouve ça
moins marrant, et surtout ça ne règle aucunement le problème de
l'électronique à mettre derrière.


J'ai trouvé quelques projets utilisant des arduino sur hackaday [4].


Pour le prix, ça à l'air de tourner dans les 25 à 30 euros, donc assez
raisonnalble [2, 5, 6]

Références :


[1] http://hackable-devices.com/

[2]
http://hackable-devices.org/products/product/ArduinoDuemilanove-atmega328/

[3] http://www.arduino.cc/playground/Learning/Linux


[4] http://hackaday.com/page/2/?s=arduino

[5] http://microcontrollershop.com/product_info.php?products_id=2193
[6] http://www.lextronic.fr/P4133-platine-arduino-usb-board.html

lundi 22 février 2010

NetBSD & versions d'Unison

La version courante d'Unison sur Ubuntu était la 2.27.57, alors que celle de l'arborescence de pkgsrc pour Netbsd était la 2.32.
Les deux version ne sont pas compatibles.

En explorant les archives du CVS de pkgsrc (ici : http://cvsweb.se.netbsd.org/cgi-bin/bsdweb.cgi/pkgsrc/net/unison/?only_with_tag=pkgsrc-2009Q3
et là : http://pkgsrc.se/branch=pkgsrc-2009Q3/net/unison ) + quelques pointeurs sur freenode:#netbsd

Voici la suite de commandes que j'ai


pkg_delete unison-2.32.52

cd /opt/pkgsrc/net/unison
cvs up -rpkgsrc-2009Q3 -dP

/usr/bin/make reinstall

cd directory && cvs up -rpkgsrc-2009Q3 -dP


Et fantastiquement, cela fonctionne maintenant à merveille :-)

Bash scripts :

Dans un script bash, qui commence donc avec :

#!/bin/bash

  • set -u : empèche d'utiliser des variables non définies préalablement => évite les erreurs
  • set -x : affichage plus verbeux
  • set -e : arrête l'exécution à la première erreur

Merci Julien S.

jeudi 11 février 2010

Tor et firefox (+polipo)

Sous ubuntu, avec firefox :

Il est conseillé d'utiliser Tor, avec le proxy "polipo", et "tor button" (addon firefox)


http://www.torproject.org/docs/tor-doc-unix.html.en#polipo

mardi 2 février 2010

svn properties svn:keywords

Since I'm sometimes looking for this page to find

SVN Book : Properties (Chapter 7. Advanced Topics)


$ svn propset svn:keywords "Date Author" contrib.tex
property 'svn:keywords' set on 'contrib.tex'
$



Some vocabulary :

  1. scm = source code manager

  2. vcs = version control system

  3. dvcs = distributed version control system




Like for example : rcs, cvs, svn, mercurial, darcs, git, ...
wikipedia:List_of_revision_control_software

jeudi 14 janvier 2010

Asus EEE 1000H : how to access the bios ?

To access the bios on my Asus EEE 1000H, the key is : F2.


Note that there also is a menu proposing to boot on the different storage devices detected : ESC.

mercredi 13 janvier 2010

A way to make a usbkey bootable (saved)




SAVED FROM :




How-to: Installing Ubuntu Linux on a usb pendrive


This tutorial will show how-to install Ubuntu on a usb stick. Even though this tutorial uses Ubuntu as its base distribution, you could virtually use any type of Linux liveCD distribution.


Being able to run Linux out of a usb bar is a great way to enjoy the live CD experience (being able to use Linux on any computer you might get by) and the big advantage of being easier to carry around than a CD.


1. Requirements




In order to reproduce this tutorial, you will need a few items such as:



  • a ubuntu liveCD

  • a usb bar of at least 1G

  • a running Linux operating system


Now that you have all this, it is time to prepare you USB bar do host the Ubuntu liveCD files.


2. Setting up the USB disk


2.1. Finding the device




In the first place, you need to plug your usb drive and check under which device it is associated. To find out the device, run:


$ sudo fdisk -l


On my system, the device appears as being /dev/sdb, I will therefore use /dev/sdb as a reference for this tutorial, please replace it accordingly to your system (might be sda, sdc ...).

Once you found your device, you are going to create the partitions.


Using the wrong device name might destroy your system partition, please double check


2.2. Making the partitions


Make sure every of your already mounted partition are unmounted:


$sudo umount /dev/sdb1


and then launch fdisk, a tool to edit partition under linux:


sudo fdisk /dev/sdb


We are going delete all the partition and then create 2 new partition: one fat partition of 750M which will host the files from the live CD iso, and the rest on another partition.


At fdisk prompt type d x where x is the partition number (you can simply type d if you only have one partition), then:




  • n to create a new partition

  • p to make it primary

  • 1 so it is the first primary partition

  • Accept the default or type 1 to start from the first cylinder


  • +750M to make it 750 Meg big

  • a to toggle the partition active for boot

  • 1 to choose the 1 partition

  • t to change the partition type

  • 6 to set it to FAT16



Now we have out first partition set up, let's create the second one:



  • n to create yet again a new partition

  • p to make it primary

  • 2 to be the second partition

  • Accept the default by typing Enter


  • Accept the default to make your partition as big as possible

  • Finally, type w to write the change to your usb pendrive


Partitions are now created, let's format them.


2.3. Formatting the partitions


The first partition is going to be formated as a FAT filesystem of size 16 and we are going to attribute it the label "liveusb".


$ sudo mkfs.vfat -F 16 -n liveusb /dev/sdb1


The second partition is going to be of type ext2 with a blocksize of 4096 bytes and the label casper-rw. Mind that it has to be labeled as casper-rw otherwise the tutorial won't work!.



$ sudo mkfs.ext2 -b 4096 -L casper-rw /dev/sdb2


At this stage, our usb pendrive is ready to host the liveCD image. Now, let's copy the files to the usb bar.





How-to: Installing Ubuntu Linux on a usb pendrive -- page 2


3. Installing Ubuntu on the USB stick


3.1. Mounting Ubuntu liveCd image


In the first place we need to mount our ubuntu iso. Depending if you have the .iso file or the CD, there is 2 different ways of mounting it.


3.1.1. Mounting from the CD


People using Ubuntu or any other user-friendly distro, might just have to insert the cd and it will be mounted automatically. If this is not the case:



$ sudo mount /media/cdrom


should mount it.


3.1.2. Mounting from an .iso image file


We will need to create a temporary directory, let say /tmp/ubuntu-livecd and then mount our iso (I will be using a feisty fawn iso).


$ mkdir /tmp/ubuntu-livecd

$ sudo mount -o loop /path/to/feisty-desktop-i386.iso /tmp/ubuntu-livecd


Once the cd image is ready, it is time to mount the newly created usb bar partitions:



3.2. Mounting the usb bar partitions


Same here, you might be able to get both your partition by simply replugging the usb pendrive, partition might appears as: /media/liveusb and /media/casper-rw. If this is not the case, then you will need to mount them manually:


$ mkdir /tmp/liveusb

$ sudo mount /dev/sdb1 /tmp/liveusb


All the partitions we need are now mounted, let's copy the files.


3.3. Copying the files to the usb bar



Let positionned yourself on the CD image directory (in my case: /tmp/ubuntu-livecd , but it might be /media/cdrom , and copy at the root of your usb first partition:



  • the directories: 'casper', 'disctree', 'dists', 'install', 'pics', 'pool', 'preseed', '.disk'

  • The content of directory 'isolinux'

  • and files 'md5sum.txt', 'README.diskdefines', 'ubuntu.ico'

  • as well as files: 'casper/vmlinuz', 'casper/initrd.gz' and 'install/mt86plus'


$ cd /tmp/ubuntu-livecd

$ sudo cp -rf casper disctree dists install pics pool preseed .disk isolinux/* md5sum.txt README.diskdefines ubuntu.ico casper/vmlinuz casper/initrd.gz install/mt86plus /tmp/liveusb/


It might complain about symbolic links not being able to create, you can ignore this.



Now let's go to the first partition of your usb disk and rename isolinux.cfg to syslinux.cfg:


$ cd /tmp/liveusb

$ sudo mv isolinux.cfg syslinux.cfg


change /tmp/liveusb according to your settings


Edit syslinux.cfg so it looks like:



DEFAULT persistent
GFXBOOT bootlogo
GFXBOOT-BACKGROUND 0xB6875A
APPEND file=preseed/ubuntu.seed boot=casper initrd=initrd.gz ramdisk_size=1048576 root=/dev/ram rw quiet splash --
LABEL persistent
menu label ^Start Ubuntu in persistent mode
kernel vmlinuz
append file=preseed/ubuntu.seed boot=casper persistent initrd=initrd.gz ramdisk_size=1048576 root=/dev/ram rw quiet splash --
LABEL live
menu label ^Start or install Ubuntu
kernel vmlinuz
append file=preseed/ubuntu.seed boot=casper initrd=initrd.gz ramdisk_size=1048576 root=/dev/ram rw quiet splash --
LABEL xforcevesa
menu label Start Ubuntu in safe ^graphics mode
kernel vmlinuz
append file=preseed/ubuntu.seed boot=casper xforcevesa initrd=initrd.gz ramdisk_size=1048576 root=/dev/ram rw quiet splash --
LABEL check
menu label ^Check CD for defects
kernel vmlinuz
append boot=casper integrity-check initrd=initrd.gz ramdisk_size=1048576 root=/dev/ram rw quiet splash --
LABEL memtest
menu label ^Memory test
kernel mt86plus
append -
LABEL hd
menu label ^Boot from first hard disk
localboot 0x80
append -
DISPLAY isolinux.txt
TIMEOUT 300
PROMPT 1
F1 f1.txt
F2 f2.txt
F3 f3.txt
F4 f4.txt
F5 f5.txt
F6 f6.txt
F7 f7.txt
F8 f8.txt
F9 f9.txt
F0 f10.txt

Woof, finally we have our usb disk almost usuable. We have a last thing to do: make the usb bootable.


3.4. Making the usb bar bootable.


in order to make our usb disk bootable, we need to install syslinux and mtools:


$ sudo apt-get install syslinux mtools


And finally unmount /dev/sdb1 and make it bootable:


$ cd


$ sudo umount /tmp/liveusb

$ sudo syslinux -f /dev/sdb1


Here we are :D , reboot, set your BIOS to boot from the usb bar and enjoy Ubuntu linux from a pendrive


4. Troubleshooting


If you are having trouble booting on the usb bar, this might be due to your MBR being corrupted. In order to fix it up, you can use lilo (I installed lilo on my box only for thid purpose).


$ lilo -M /dev/sdb


will fix the MBR on device /dev/sdb





(copy) How to install Ubuntu on a Usb key




SAVED FROM :




How-to: Installing Ubuntu Linux on a usb pendrive


This tutorial will show how-to install Ubuntu on a usb stick. Even though this tutorial uses Ubuntu as its base distribution, you could virtually use any type of Linux liveCD distribution.


Being able to run Linux out of a usb bar is a great way to enjoy the live CD experience (being able to use Linux on any computer you might get by) and the big advantage of being easier to carry around than a CD.


1. Requirements




In order to reproduce this tutorial, you will need a few items such as:



  • a ubuntu liveCD

  • a usb bar of at least 1G

  • a running Linux operating system


Now that you have all this, it is time to prepare you USB bar do host the Ubuntu liveCD files.


2. Setting up the USB disk


2.1. Finding the device




In the first place, you need to plug your usb drive and check under which device it is associated. To find out the device, run:


$ sudo fdisk -l


On my system, the device appears as being /dev/sdb, I will therefore use /dev/sdb as a reference for this tutorial, please replace it accordingly to your system (might be sda, sdc ...).

Once you found your device, you are going to create the partitions.


Using the wrong device name might destroy your system partition, please double check


2.2. Making the partitions


Make sure every of your already mounted partition are unmounted:


$sudo umount /dev/sdb1


and then launch fdisk, a tool to edit partition under linux:


sudo fdisk /dev/sdb


We are going delete all the partition and then create 2 new partition: one fat partition of 750M which will host the files from the live CD iso, and the rest on another partition.


At fdisk prompt type d x where x is the partition number (you can simply type d if you only have one partition), then:




  • n to create a new partition

  • p to make it primary

  • 1 so it is the first primary partition

  • Accept the default or type 1 to start from the first cylinder


  • +750M to make it 750 Meg big

  • a to toggle the partition active for boot

  • 1 to choose the 1 partition

  • t to change the partition type

  • 6 to set it to FAT16



Now we have out first partition set up, let's create the second one:



  • n to create yet again a new partition

  • p to make it primary

  • 2 to be the second partition

  • Accept the default by typing Enter


  • Accept the default to make your partition as big as possible

  • Finally, type w to write the change to your usb pendrive


Partitions are now created, let's format them.


2.3. Formatting the partitions


The first partition is going to be formated as a FAT filesystem of size 16 and we are going to attribute it the label "liveusb".


$ sudo mkfs.vfat -F 16 -n liveusb /dev/sdb1


The second partition is going to be of type ext2 with a blocksize of 4096 bytes and the label casper-rw. Mind that it has to be labeled as casper-rw otherwise the tutorial won't work!.



$ sudo mkfs.ext2 -b 4096 -L casper-rw /dev/sdb2


At this stage, our usb pendrive is ready to host the liveCD image. Now, let's copy the files to the usb bar.





How-to: Installing Ubuntu Linux on a usb pendrive -- page 2


3. Installing Ubuntu on the USB stick


3.1. Mounting Ubuntu liveCd image


In the first place we need to mount our ubuntu iso. Depending if you have the .iso file or the CD, there is 2 different ways of mounting it.


3.1.1. Mounting from the CD


People using Ubuntu or any other user-friendly distro, might just have to insert the cd and it will be mounted automatically. If this is not the case:



$ sudo mount /media/cdrom


should mount it.


3.1.2. Mounting from an .iso image file


We will need to create a temporary directory, let say /tmp/ubuntu-livecd and then mount our iso (I will be using a feisty fawn iso).


$ mkdir /tmp/ubuntu-livecd

$ sudo mount -o loop /path/to/feisty-desktop-i386.iso /tmp/ubuntu-livecd


Once the cd image is ready, it is time to mount the newly created usb bar partitions:



3.2. Mounting the usb bar partitions


Same here, you might be able to get both your partition by simply replugging the usb pendrive, partition might appears as: /media/liveusb and /media/casper-rw. If this is not the case, then you will need to mount them manually:


$ mkdir /tmp/liveusb

$ sudo mount /dev/sdb1 /tmp/liveusb


All the partitions we need are now mounted, let's copy the files.


3.3. Copying the files to the usb bar



Let positionned yourself on the CD image directory (in my case: /tmp/ubuntu-livecd , but it might be /media/cdrom , and copy at the root of your usb first partition:



  • the directories: 'casper', 'disctree', 'dists', 'install', 'pics', 'pool', 'preseed', '.disk'

  • The content of directory 'isolinux'

  • and files 'md5sum.txt', 'README.diskdefines', 'ubuntu.ico'

  • as well as files: 'casper/vmlinuz', 'casper/initrd.gz' and 'install/mt86plus'


$ cd /tmp/ubuntu-livecd

$ sudo cp -rf casper disctree dists install pics pool preseed .disk isolinux/* md5sum.txt README.diskdefines ubuntu.ico casper/vmlinuz casper/initrd.gz install/mt86plus /tmp/liveusb/


It might complain about symbolic links not being able to create, you can ignore this.



Now let's go to the first partition of your usb disk and rename isolinux.cfg to syslinux.cfg:


$ cd /tmp/liveusb

$ sudo mv isolinux.cfg syslinux.cfg


change /tmp/liveusb according to your settings


Edit syslinux.cfg so it looks like:



DEFAULT persistent
GFXBOOT bootlogo
GFXBOOT-BACKGROUND 0xB6875A
APPEND file=preseed/ubuntu.seed boot=casper initrd=initrd.gz ramdisk_size=1048576 root=/dev/ram rw quiet splash --
LABEL persistent
menu label ^Start Ubuntu in persistent mode
kernel vmlinuz
append file=preseed/ubuntu.seed boot=casper persistent initrd=initrd.gz ramdisk_size=1048576 root=/dev/ram rw quiet splash --
LABEL live
menu label ^Start or install Ubuntu
kernel vmlinuz
append file=preseed/ubuntu.seed boot=casper initrd=initrd.gz ramdisk_size=1048576 root=/dev/ram rw quiet splash --
LABEL xforcevesa
menu label Start Ubuntu in safe ^graphics mode
kernel vmlinuz
append file=preseed/ubuntu.seed boot=casper xforcevesa initrd=initrd.gz ramdisk_size=1048576 root=/dev/ram rw quiet splash --
LABEL check
menu label ^Check CD for defects
kernel vmlinuz
append boot=casper integrity-check initrd=initrd.gz ramdisk_size=1048576 root=/dev/ram rw quiet splash --
LABEL memtest
menu label ^Memory test
kernel mt86plus
append -
LABEL hd
menu label ^Boot from first hard disk
localboot 0x80
append -
DISPLAY isolinux.txt
TIMEOUT 300
PROMPT 1
F1 f1.txt
F2 f2.txt
F3 f3.txt
F4 f4.txt
F5 f5.txt
F6 f6.txt
F7 f7.txt
F8 f8.txt
F9 f9.txt
F0 f10.txt

Woof, finally we have our usb disk almost usuable. We have a last thing to do: make the usb bootable.


3.4. Making the usb bar bootable.


in order to make our usb disk bootable, we need to install syslinux and mtools:


$ sudo apt-get install syslinux mtools


And finally unmount /dev/sdb1 and make it bootable:


$ cd


$ sudo umount /tmp/liveusb

$ sudo syslinux -f /dev/sdb1


Here we are :D , reboot, set your BIOS to boot from the usb bar and enjoy Ubuntu linux from a pendrive


4. Troubleshooting


If you are having trouble booting on the usb bar, this might be due to your MBR being corrupted. In order to fix it up, you can use lilo (I installed lilo on my box only for thid purpose).


$ lilo -M /dev/sdb


will fix the MBR on device /dev/sdb





mardi 15 décembre 2009

Bash tricks ":", la commande qui ne fait rien

En bash, la commande ":" ("column", ou "deux points") est une commande qui prend autant d'arguments que l'on veut mais qui ne fait rien.

C'est en particulier pratique pour commenter dynamiquement du code.
Par exemple :


#!/bin/bash
#DEBUG=echo
DEBUG=:

if [ -f /tmp/toto ]; then
$DEBUG "/tmp/toto existe"
echo `date` >>/tmp/toto
else
$DEBUG "/tmp/toto n'existe pas"
echo "fichier cree a `date`" > /tmp/toto

fi


Exem

Autour du code source et des programmes Java

SONAR :




Sonar est une plate-forme libre (LGPL v3) permettant de gérer la qualité du code source Java (exécution de tests unitaires, analyse de la couverture du code par ces tests, vérification du respect des règles de codage, complexité du code, etc.).
(depuis : dlfp )

http://sonar.codehaus.org/


FindBugs :




FindBugs is a program to find bugs in Java programs. It looks for instances of "bug patterns" code instances that are likely to be errors.


http://findbugs.sourceforge.net/
Éradiquer les lignes de code commentées

Forge des greffons Sonar


FindBugs serait en particulier beaucoup utilisé chez Google.