dimanche 3 janvier 2016

Pinky syndrom ou syndrome du petit doigt sur clavier

La semaine dernière je me suis rendu compte que mon auriculaire de la main gauche était victime du"pinky syndrome" : la partie médiane de l’auriculaire étant particulièrement douloureuse alors que le reste de la main en pleine forme. J'ai rapidement relié ceci a un abus de l'utilisation de l'auriculaire sur mon clavier, j'utilise en effet l'auriculaire de la main gauche a la fois pour acceder à la touche 'shift', à la touche 'Control' et a la touche 'esc'
Quand on travaille avec  Eclipse, Vim et la console Unix, Dieu sait si ces touches sont souvent utilisées !

Comme solution à ce problème j'ai configuré deux options pour mon clavier:
* la touche 'Control' de gauche est échangée avec la touche 'Alt' de gauche, ce qui me force à utiliser le pouce, plus musclé, pour entrer 'Control'.
* la touche 'Caps lock' est replacée par une touche 'Control'.
* j'essaye d'utiliser 'Control-C' pour passer an mode commande dans vim, ce qui évite d'aller chercher une touche bien loin de la position départ de la main.

Les deux premières options se configurent avec
XKBOPTIONS="ctrl:swap_lalt_lctl,caps:ctrl_modifier"

dans  /etc/default/keyboard

Je réfléchis enfin à passer en QWERTY, de nombreuses touches dont Unix et C abusent deviennent alors accessibles sans combinaison ( notamment /, [ et ] )

Note: la liste complète des options d'agencement se trouve dans /usr/share/X11/xkb/rules/base.xml, ces options sont accessibles graphiquement via gnome-tweak-tool.

Edit : on obtient le même résultat en insérant dans le fichier .Xmodmap:


clear control
clear mod1
keycode 37 = Alt_L Meta_L
keycode 64 = Control_L
add control = Control_L Control_R
add mod1 = Alt_L Meta_L



On peut aussi remplacer ce Caps Locks bien inutile par un Shift avec l'entrée suivante:
keycode 66 = Shift_L NoSymbol Shift_L

mercredi 28 octobre 2015

Débit d'un réseau TCP/IP avec iperf

A toutes fin de comparaison utiles, j'ai décidé de collecter la vitesse de transfert brute de différents réseaux physiques auquel j'ai accès , via la commande iperf.

 Commandes utilisées

Commande client: iperf -c nasi.local -w 65536 -p 12345 -t 60
Commande server:iperf -s -w 65536 -p 12345
NB: les cartes réseaux utilisées sont indiqués par leur nom de pilote Linux ou FreeBSD

Réseau Gigabit Ethernet

Intel e1000e sur le serveur
e1000e sur le client
726 Mbits/sec

Réseau Fast Ethernet

VIA Technologies Rhine I/II/III Ethernet sur le serveur (FreeBSD vr)
e1000e  sur le client
77.1 Mbits/sec


Réseau Powerline, distance 20m / 1 Etage,
Netgear Powerline 200

 6.45 Mbits/sec

Réseau Wifi 11g 54Mb/s, Link Quality=70/70  Signal level=-34 dBm

Atheros 5212 sur le serveur (FreeBSD ath)
iwlwifi sur le client

13.2 Mbits/sec



dimanche 12 avril 2015

Désactiver la mise en veille à distance sous Gnome3

Par défaut mon ordinateur de bureau se met en veille au bout de 30 minutes, une mesure d'économie bien pratique.
Seulement de temps en temps, j'ai besoin d'y acceder par ssh, et après 30 minutes d'activité, il se remet en veille.
Le paramètre de mise en veille est configurée dans le registre dconf, qui peut se lire avec:
 
gsettings get org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout
1800 # 30 min x 60 sec

Pour désactiver la mise en veille, on met le timeout à 0.

dbus-launch gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout 0

La commande dbus-launch est nécessaire en cas de connexion distante.



jeudi 26 mars 2015

Comprendre ce que fait le Javascript en 30 secondes et 3 commandes

Si vous avez déjà vu un terminal et une ligne de commande sous Linux, vous êtes à moins de 30 secondes de votre premier programme Javascript.

Top Chrono:

* ouvrez une autre fenêtre avec votre navigateur, allez sur une page au hasard
(par exemple: la mienne !), tout en gardant ce texte sous les yeux

* sur cette nouvelle fenêtre appuyez sur F12 sur votre navigateur, pour activer les outils de développement
 Vous devriez voire apparaître une fenêtre semblable à ceci en bas:


* dans les outils de développements, cliquer sur l'onglet indiqué "Console".
Cet onglet contient tout en bas une ligne deux chevrons qu'on appelle un prompt, et dans lequel on peut taper des commandes:


* cliquer dans la barre au niveau du prompt, et entrez le texte suivant:

console.log('bonjour la companie');

Voila il s'agit de votre première commande Javascript ! N'oubliez pas les guillemets, le point virgule est optionnel mais fait partie des bonnes habitudes.

* on peut tenter comme dans un shell unix/linux d'autres commandes:

new date(); 
2 + 2 ;

* on peut obtenir des informations sur la page web que l'on est en train de lire:

console.log(document.domain);
console.log(document.title);

* et encore mieux on peut le modifier !

document.title = 'ca me plait pas mal';
document.bodyInnerHTML = 'a small text'
document.bodyInnerHTML = '<h1> a bigger title </h1>'

Voila vous avez découvert ce qu'est le Javascript, un langage pour lire, créer et modifier le contenu d'une page web !



jeudi 1 janvier 2015

Le plus grand succès du logiciel libre ? Internet, tout simplement

Le bug n°1 de Ubuntu (Microsoft has a Majority Market share) parait toujours d'actualité si on l'on se dirige vers le rayon PC de n'importe quelle grande surface. Cependant le post de blog que vous lisez à l'heure actuelle, est sans doute affiché dans un navigateur opensource (comme 60% du marché). Pour vous connecter à ce serveur vous avez utilisé un serveur DNS, sans doute Bind, le serveur DNS opensource de référence ? Ou si vous êtes chez Free, peut être PowerDNS encore un serveur DNS OpenSource.
Quel serveur distribue ces pages webs ? Apache ou Nginx deux logiciels libres qui possèdent 80 % du marché.

Quel langage de programmation utilise ce système pour afficher ce blog à partir de la base de données ? Java, Perl, PHP, Python ? Scala, Ruby ? Tous des langages dont l'implémentation de référence est libre.
Et sur quel OS tourne ce langage de programmation ? Qu'il soit chez Google, Yahoo ou un serveur perso sur OVH, Gandi ou Dedibox, vraisemblablement Linux ou FreeBSD, un OS libre.

La seule partie de l'infrastucture Internet sur laquelle le propriétaire domine c'est dans le domaine des routeurs des FAI, avec Cisco comme acteur dominant (encore que Juniper, basé sur FreeBSD, occupe maintenant 30% du marché)

On pourrait parler encore  de protocoles réseaux, de formats d'image, mais l'essentiel est là: de BSD 4.2 qui a mis TCP/IP sur le devant de la scène en 1982 , à Chromium aujourd'hui, Internet a été construit par le logiciel libre.

lundi 24 mars 2014

Behind the hood: a business & technical analysy of the latest Samsung ARM Chromebook

After Apple turned to Unix (FreeBSD + NextStep) in 2001 for the core of its Desktop operating system, exactly 10 years later major players Samsung and Google released the first ChromeOS devices, based on a customized Gentoo with some Ubuntu components (Upstart)

Market Overview:

 Since Google is already a major player in the mobile field, some would ask: if they have android, why add another OS ? The aim is simply for Google: more Google based devices, means more eyeballs for its ad business (which remains from far its most important revenue stream).
I would estimate the development costs of the ChromeOS to be rather low compared to Android. Android started by writing from scratch nearly all components on top of the Linux kernel, from its Bionic libc to its Surfaceflinger display software, whereas ChromeOS is happy with Glibc, Ubuntu's upstart init system, X server and Gentoo build system. The User Experience of ChromeOS (Application Store, System Settings) is mostly a Chrome Browser experience, so the development costs might have been here as well kept as minim

For Samsung which is a vertically integrated player, even with the thin margins of the Chromebooks, benefits could be there, as external costs are kept to a minimum. Many of the hardware components are produced by Samsung itself starting with the Exynos 5 ARM processor, also produced most probably in Samsung own foundry.
Actually the business bet seems to have been a lucky one, since Chromebooks are riding the top 100 of laptop sales in Amazon US, and are doing not that bad in Europe.

An interesting points for tinkerers, ChromeOS specifications require the devices to have a "developer switch" which after passing some scary screens will allow you to be root on your own device. This is contrary to Android where locked bootloaders and signed kernels are the norms for some device manufacturers (Motorola being the biggest I can name)

Technical Overview:

After activating the developer mode, following the ChromeOS wiki, you can access via the "shell" command to a standard Unix shell.
A very standard Unix shell you get young padawan
GPT partition table, with ChromeOS extensions

Inside this shell, you get access to a very standard Unix environment, with bash, vim, wget and curl. No Perl or Python though.
It 's always interesting to play the grep games to see which opensource projects where used in a commercial product ( you can also play the License Game ) Let's try with gentoo

sudo grep  -rl gentoo /etc/
/etc/env.d/00basic
/etc/profile.env
/etc/csh.env
/etc/init.d/functions.sh
/etc/dmtab
/etc/X11/chooser.sh
/etc/X11/startDM.sh


So this confirms the news that gentoo has been used for building the base Linux system, and if you run the command dev_install you can even start using Portage !

Extra proprietay bits seem to be installed in /opt, respecting the Filesystem Hierachy Standard.
chronos@localhost ~ $ ls /opt
gct  google  oem  Qualcomm

Finally the command crossystem provides different information about the platform like the firmware version used:

chronos@localhost ~ $ /usr/bin/crossystem fwid
Google_Snow.2695.117.0

Of course projects to natively install Debian/Ubuntu/Fedora quickly started but frankly speaking I haven't found the hassle is worth: you will end with missing accelerated X drivers, missing Flash Player and it requires quite an amount of hacking.  If you're here for the Linux stuff, just buy a Celeron or AMD C-7  Netbook without OS , for 40 Dollars more and with the distro of your choice you'll be much better served in term of performance and what you can do it with the machine (hint: a chromebook cannot print by plugging to a printer)

mercredi 19 mars 2014

Le bug numero un d'Ubuntu vu par les statistiques de Wikipedia

Il y a un an, Mark Shuttleworth d'Ubuntu / Canonical annonçait avec un certain triomphalisme que Microsoft n'avait plus une part de part de marché dominante dans l'informatique personnelle, fermant ainsi le bug n°1 à l'origine d'Ubuntu. Effectivement le boom d'Android et d'IOS ont rejeté les parts de marché de Windows bien en arrière.
Est ce une victoire pour le consommateur ? Dans un certain sens, oui, car un choix de plateformes permet d'éviter un monopole de l' accès à l'information.
Y a-t-il derrière un succès pour le logiciel libre ? Faiblement, il s'agit toujours globalement de plateformes fermées, le cœur libre de IOS (Darwin) et celui d'Android (ASOP) se réduisant à une part de plus en plus congrue.
On peut observer cette évolution des parts de marché de façon très intéressante en consultant les statistiques de fréquentations de Wikipedia triées par système d'exploitation.

On se rend alors compte que Windows est en dessous de 50% de la barre des visites, Android tournant à 11% et les distributions Linux autour de 1% (FreeBSD et OpenBSD faisant une performance honorable en apparaissant même dans ces statistiques ... )
N'en doutant pas, une grande part des utilisateurs d'IOS vus dans ces statistiques on peut sans doute un PC quelque part,  mais alors ces statistiques indiquent que le PC est beaucoup moins utilisé, et recouvre alors bien moins d'importance.
Il y a quatre ans, Windows caracolait encore en tête avec 87 % des visites ...