Categories
Technology

Le fameux nouvel ordinateur, 8 ans après

Et bien il est toujours aussi bien. Et même encore mieux, voyez:

  • CPU : Intel Core i7-2600 (3.4 Ghz / 3.8 GHz Turbo – Cache 8Mo – 4 coeurs avec hyper threading);
  • RAM: 16 Go – DDR3L-1600 UDIMM (sans registre);
  • GPU: NVIDIA GeForce GT 545 – 1.5Go;
  • DD: SSD de 1To (SATA 6.0 Gb/s) – Serial ATA 3Gb/s (SATA II).

Démarrage complet en 8 secondes et arrêt en 3 secondes chrono. Une fluidité extraordinaire. Bien plus rapide que lorsqu’il était neuf. Il devrait consommer un petit peu moins d’électricité.

Le processeur est toujours aussi bon. La carte graphique est toujours aussi pourrie. L’écran me semble de plus en plus petit.

Et la cerise sur le gâteau, le Cooler MasterKeys S PBT Cherry MX Blue que j’ai depuis quelques temps.

P.S.: Comme vous pouvez le constater le blog n’est plus très actif. Je n’ai plus le temps. Et pourtant il y a du changement dans ma vie… Devrais-je publier ici plus souvent? En tout cas, il est possible d’avoir des nouvelles, un peu moins personnelles, via Mastodon. Je n’aime toujours pas le microblogging, mais c’est plus rapide. Et plus con.

Categories
Technology

Kindle MatchBook

Kindle MatchBook est un peu ce que je cherche depuis quelques temps. Certes, pas exactement car je voyais la version numérique plutôt gratuite (après achat de la version papier). Mais bon, on ne peut pas avoir tout gratuitement et là le prix est acceptable. Le hic, est que à mon avis cette offre n’est pas prête d’être disponible en France. Le deuxième hic est qu’il faut avoir acheté la version papier sur Amazon.

Categories
Bidouillability Technology

Contrôler un Lego EV3 avec une API Web

Vous aussi vous voudriez commander votre robot avec une simple API Web? Par exemple pour embêter le chat ou surveiller votre domicile à distance (avec une arme sur son épaule il pourrait impressionner un cambrioleur et ressemblerait même à Johnny 5).
Dans ce cas, vous devez tester ceci et me dire ce que vous en pensez.

Il s’agit d’un micro serveur Web destiné à être installé sur un Lego Mindstorms EV3 avec le système ev3dev (basé sur Debian). J’ai simplement utilisé Flask afin de définir quelques endpoints correspondants aux différentes actions (avancer, reculer, tourner à droite, tourner à gauche et stopper).

Le README explique les quelques étapes nécessaires pour l’installation ainsi que l’utilisation. C’est vraiment simple. L’exemple ci-dessous ordonnera au robot d’avancer indéfiniment.

$ GET http://192.168.1.16:5000/move/forward
{"message": "OK", "direction": "forward", "action": "move"}

Le robot se stoppera dès qu’il recevra une requête GET sur l’endpoint /move/stop. Évidemment d’autres paramètres sont fournis par ev3dev. Je vais essayer de les rendre accessibles via l’API de manière simple. Par exemple demander au robot de se déplacer sur une distance ou de faire une rotation de x degrés. Il faudra prendre en compte la nature du sol ainsi que le niveau de charge de la batterie.

Je vais également ajouter au serveur une petite page Web avec du JavaScript qui permettra de contrôler le robot avec des boutons directionnels. Ce sera pratique pour commander le robot depuis un smartphone.

Categories
Technology

iptables et systemd

L’arrivée de systemd change un tas de choses dans nos habitudes. Il est évidemment nécessaire de comprendre un minimum son fonctionnement si on souhaite totalement abandonner Sysvinit. Une des premières choses sur laquelle j’ai du me pencher est la configuration du pare-feu (ainsi que des points de montage). Bref, ce billet va rapidement vous montrer comment configurer votre pare-feu au démarrage du système.

Tout d’abord, utilisez vous bien systemd en tant que système d’initialisation? Voici comment avoir la réponse.

$ ls -lh /sbin/init 
lrwxrwxrwx 1 root root 20 Apr 16 17:53 /sbin/init -> /lib/systemd/systemd

Pour la première étape, il convient de sauvegarder les règles actuelles du pare-feu (voici mon pare-feu).

# iptables-save > /etc/iptables.rules

La deuxième étape est la création d’un fichier de service systemd afin d’exécuter iptables au démarrage du système, avec les règles précédemment sauvegardées.

# cat /etc/systemd/system/iptables.service 
[Unit]
Description=Firewall
After=network.target
 
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/sh -c "/sbin/iptables-restore < /etc/iptables.rules"
 
[Install]
WantedBy=multi-user.target

Voici encore une des raisons pour laquelle j’aime bien systemd. Je trouve ce formalisme très clair.

Finalement, il est nécessaire d’activer le nouveau service.

# systemctl enable iptables.service
# systemctl restart iptables.service

Vous pouvez vérifier l’état du service de la manière suivante.

# systemctl list-unit-files | grep iptables 
iptables.service                           enabled
 
# systemctl status iptables.service
● iptables.service - Firewall
   Loaded: loaded (/etc/systemd/system/iptables.service; enabled)
   Active: active (exited) since Mon 2015-05-11 07:40:14 CEST; 11min ago
 Main PID: 3307 (code=exited, status=0/SUCCESS)

C’est terminé, votre pare-feu sera automatiquement configuré aux prochains démarrages du système.

Categories
Computer Technology

systemd

Voilà, comme un bon nombre de Linuxien(ne) j’utilise dorénavant systemd. Je n’ai pas vraiment un avis tranché sur ce système ni de critiques aussi virulentes qu’il est possible de trouver un peu partout sur le Web. Pour moi systemd, ça signifie d’abord que je vais devoir maîtriser une nouvelle technologie et un tas de nouvelles commandes. Ce qui m’enchante. Et puis, je trouve qu’il est parfois bien de mettre un peu de côté d’anciennes technologies. Et même si cela donne plus de travail aux administrateurs systèmes/réseaux (ceci pour ceux qui pensent encore que des binaires sont nécessaires pour configurer systemd).
Pour le moment, il faut surtout que j’identifie mieux les limites fonctionnelles de systemd. Car il faut bien le dire, systemd peut gérer un tas de choses: services, multi-seat, configuration réseau, pare-feu, etc.

systemd a amélioré le temps de démarrage de ma station fixe de travail sous Kubuntu 15.04 (environ 46 secondes, kernel et userspace) et de mon ordinateur portable sous Debian 8.0. Ce n’est cependant pas tant la vitesse qui m’intéresse, mais surtout le bon fonctionnement et les possibilités d’analyses des logs.

Concernant le fonctionnement, déjà mon démarrage est «plus propre» qu’avant. Tous les services se lancent correctement, l’affichage au démarrage n’est pas trop verbeux et est clair (homogène). Je n’ai en réalité rien de spécial à dire sur ce point (j’ai surtout gagné du temps lors du montage du NAS, qui avant me posait quelques problèmes de manière assez aléatoire).

Du côté des moyens d’analyse des logs, la commande systemd-analyze est bien pratique. Voici quelques exemples.

$ systemd-analyze dot --user --order | dot -Tsvg > systemd-dependency-graph-user.svg

Dependency graph (userspace)
Systemd dependency graph (userspace)

$ systemd-analyze dot --order | dot -Tsvg > systemd-dependency-graph-system.svg

Dependency graph (system)
Dependency graph (system)

$ systemd-analyze plot > system-services.svg

System services
System services

Le graphique ci-dessus est un peu plus parlant. Il existe aussi la commande systemd-analyze blame qui liste les services ordonnés par temps de démarrage. Ce qui peut aider à voir quel service ralenti le démarrage du système. Il faut cependant faire attention car blame ne montre pas les liens: parfois un service prend plus de temps parce qu’il attend le lancement d’un autre service.

$ systemd-analyze dot 'tor.*' | dot -Tsvg > tor.svg

Dépendances du service Tor
Dépendances du service Tor

systemctl list-units est une autre commande très pratique permettant de vérifier l’état des services après le démarrage.

Légende des graphiques:

  • black: Requires
  • dark blue: Requisite
  • dark grey: Wants
  • red: Conflicts
  • green: After
    • Finalement cette migration vers systemd est une réussite et je suis plutôt content, pour le moment. Il va tout de même falloir que je bidouille un peu plus pour me faire un avis plus précis.

Categories
Technology

Déploiement de pyAggr3g470r avec Vagrant

Vous avez dorénavant la possibilité de déployer pyAggr3g470r en utilisant Vagrant. Le README explique comment procéder. Tout sera configuré automatiquement, vous n’aurez plus qu’à utiliser pyAggr3g470r.

Categories
Technology

Fireworks filmed with a drone

Categories
Technology

Test de Debian GNU/Hurd

hurd

Hurd me semble plutôt stable par rapport à ce que l’on en dit généralement.

P.S.: Ce billet a été envoyé depuis Blogillo.

Categories
Hardware Technology

Cours Arduino

Si tu veux aussi apprendre à faire des bidouilles sympas avec Arduino voici un site intéressant. Il y a pas mal de tutoriels bien expliqués et on peut commander le matériel requis si nécessaire.

Categories
Car Technology

Avancement de mon premier projet avec le Raspberry Pi

Maintenant que je sais récupérer les données générées par le système embarqué d’une voiture via l’interface OBD je vais pouvoir faire des choses plus intéressantes avec le Raspberry. Je m’intéresse particulièrement au projet pyob2read qui me permet de récupérer un tas de données. Voici une petite liste de codes (trouble codes) pour Mazda. Cependant beaucoup de codes sont génériques et il ne me semble pas trop compliqué de faire une application qui fonctionne correctement avec d’autres marques de voitures.

La première phase du projet a consisté à réutiliser le code que j’ai déjà brièvement évoqué sur ce billet. En gros un simple algorithme de Dijkstra et un chouilla de JavaScript. Le tout est très léger et est en Python. On pourra y ajouter un petit serveur HTTP. Mais l’idéal est d’avoir une connexion SIM (HSPA+ ou autres, via un smartphone).

Maintenant il faut surtout intégrer le code de pyob2read afin de récupérer les données du tableau de bord. Sans affichage pour le moment car je n’ai pas encore trouvé l’écran adapté (prix, capacité et taille pour rentrer là où je l’imagine). Cette phase va prendre le plus de temps, car il faut faire des tests et je voudrai surtout tester d’autres modules.

Ensuite, le plus chiant (mais bonus) sera de développer une petite application Android qui recevera les données du Raspberry (celui-ci est connecté en USB à l’interface OBD). Pour cela, j’ai au moins deux solutions: Wi-Fi (généré par le smartphone) ou Bluetooth. L’utilisation du téléphone a plusieurs avantages: 1) règle le problème de l’écran, 2) permet d’avoir en plus un GPS et 3) l’autonomie car c’est toujours mieux que d’avoir à alimenter un écran branché sur le Raspberry.

Je suis persuadé que pour moins de 100 euros (environ 70 euros) il est possible de se faire un ordinateur de bord rudimentaire mais sympa. Et qui finalement fournira bien plus d’informations que n’importe quel système classique. Imaginez une Debian (Raspbian) dans votre voiture, la classe.

Dans l’éventualité qu’un jour j’arrive au stade de l’écran je pense que la solution de moindre coût (c’est bien le but) sera d’utiliser un simple écran LCD avec le connecteur GPIO.

À suivre!