Revue des techniques de programmation en shell

114
22
sept.
2014
Ligne de commande

L'été est fini, c'est la rentrée ! Pour se remettre en forme, rien de tel qu'une revue des techniques de programmation en shell — ces techniques sont pour le shell de Bourne /bin/sh mais peuvent être utilisées avec les shells compatibles qui permettent parfois des solutions plus faciles.

Journal Pourquoi écrire un package Debian est-il si compliqué?

89
8
sept.
2014

Bonjour Nal,

j'ai commencé à écrire des Packages pour Debian et je ne comprends pas pourquoi il faut que cela soit si compliqué.

Cela fait depuis plus de dix ans que j'écris des ports pour FreeBSD et cinq ans pour MacPorts. Je suis donc habitué à ce genre d'instructions:

  • Quick Porting pour FreeBSD, qui traite le cas facile en 3 pages A4.

  • Portfile development pour MacPorts qui traite le cas facile aussi rapidement — et la documentation est encore plus (...)

Entretien avec Linus Torvalds sur ZEIT ONLINE

Posté par . Édité par Davy Defaud et Xavier Claude. Modéré par Florent Zara.
63
18
nov.
2011
Linux

Anika Kehrer a interrogé Linus Torvalds pour le compte du quotidien allemand Zeit et de sa plate‐forme ZEIT ONLINE. C’est avec leurs aimables autorisations que je vous propose une traduction de cet entretien.

Le texte original de cet entretien est paru sur ZEIT ONLINE.

Journal Tu souhaites apprendre à programmer en shell

Posté par . Licence CC by-sa.
48
17
août
2012

Cher lecteur, tu souhaites apprendre à programmer le shell. Voici quelques recommendations que tu trouveras utiles (ou non).

(Ceci est une version modifiée d'un de mes commentaires planqué au fond du forum. Quand j'ai pensé au fantastique appeau à troll que j'avais écrit, j'ai décidé d'en faire un journal—c'est trolldi pour encore au moins deux longues heures!)

Usenet

Pour apprendre à programmer il faut lire beaucoup de programmes: abonne-toi à comp.unix.shell tu apprendras vite!

Bashing

Comme bash est un gros (...)

Journal C'est décidé, j'apprends Common Lisp!

Posté par . Licence CC by-sa.
35
6
oct.
2017

Il y a trois semaines j'ai décidé d'apprendre Common Lisp, motivé principalement par la curiosité et attiré par l'approche assez différente de la programmation qu'a Common Lisp par rapport à des langages d'autres familles. Je vous raconte ma vie, des fois que vous ayiez aussi envie d'apprendre ce langage et vouliez gagner du temps avec les premier pas.

Mon profil. Je suis mathématicien de formation (cursus math/info, calcul scientifique puis géométrie algébrique) et je travaille depuis 6 ans avec (...)

Journal Naissance de la Taptempo-Federation

Posté par . Licence CC by-sa.
32
16
mar.
2018

Un lame de fond parcours le monde du logiciel libre aujourd'hui: TapTempo. Il y a aujourd'hui des dizaines de développeurs TapTempo dont les intérêts doivent être défendus. C'est pourquoi j'ai décidé de fonder la

TapTempo Federation

Notre rôle sera de discuter sur
- la vraie orthographe de TapTempo,
- les questions de compatibilité,
- de définir une test-suite canonique,
- de garantir que toutes les versions de tap-tempo puissent être installés simultanément sur la même machine,
- de créer (...)

Journal Un ramasse-miette pour docker

Posté par . Licence CC by-sa.
Tags :
26
10
nov.
2015

Lorsqu'on utilise docker pour déployer une application, la routine de maintenance des machines hébergeant les containers doit inclure un ramasse-miette dont la tâche est de se débarrasser des images obsolètes devenues inutiles. Si cet aspect de la maintenance est ignoré, en fonction de la fréquence des déploiements, de la taille des images et de l'espace disque disponible, le disque peut se remplir en quelques semaines voire en quelques heures.

Pour résoudre ce problème une bonne fois pour toutes, j'ai écrit (...)

Journal Lire de fichiers de configuration depuis un script shell

Posté par . Licence CC by-sa.
25
5
juin
2015

La petite technique shell du vendredi. Pour lire un fichier de configuration du style INI depuis un script shell, on peut utiliser le petit script sed suivant

1 {
  x
  s/^/default/
  x
}

/^#/n

/^\[/ {
  s/\[\(.*\)\]/\1/
  x
  b
}

/=/ {
  s/^[[:space:]]*//
  s/[[:space:]]*=[[:space:]]*/|/
  G
  s/\(.*\)\n\(.*\)/\2|\1/
  p
}

Il transforme

    # last modified 1 April 2001 by John Doe
    [owner]
    name=John Doe
    organization=Acme Widgets Inc.

    [database]
    # use IP address in case network name resolution is not working
    server=192.0.2.62
    port=143
(...)

Journal Sortie de Blueprint v0.1

23
16
sept.
2014

J'ai le plaisir de vous annoncer la sortie Blueprint v0.1, une bibliothèque METAPOST pour produire des graphiques utiles aux project managers et system desginers. Voilà une liste (exhaustive) de figures pouvant être produites avec la bibliothèque:

Exemple de timeline graphic

Exemple de schedule graphic

Example de UML component diagram

Example de graphique avec des légendes

Ce dernier graphique utilise La bibliothèque graph de METAFONT QUI permet de faire de zolis dessins, j'ai ajouté des légendes. Cela permet par exemple (...)

Préparation de documents LaTeX avec BSD Owl

Posté par . Édité par BAud, palm123, Snark et Benoît Sibaud. Modéré par tankey. Licence CC by-sa.
Tags :
21
31
oct.
2014
Ligne de commande

À l'occasion de la sortie de BSD Owl 2.2.1 — le système de compilation portable pour BSD Make — je vous propose d'apprendre à utiliser BSD Owl pour préparer et publier vos documents LaTeX.

Ce texte est une traduction de la page du Wiki “Producing LaTeX documents”.

Journal [DÉTENTE] Liste de logiciels débiles

Posté par .
Tags : aucun
18
28
avr.
2011

Je connais depuis longtemps un logiciel qui me paraît plutôt débile:

  • PawSense prétend reconnaître le pas du chat noir sur votre clavier et puis ... (from the website)

Once a cat has been recognized, PawSense blocks the cat's keyboard input. This keeps the cat from entering lots of commands to your programs or operating system.

Comme mon voisin dresse ses chats à aller chez les gens et à taper des sudo rm -Rf / de partout, j'ai immédiatement acheté une (...)

Journal Rashell, bibliothèque de programmation shell résiliante pour OCaml

Posté par . Licence CC by-sa.
18
26
sept.
2015

Une des difficultés principales dans la programmation shell est la gestion des erreurs dans l'utilisation des tubes (pipes) qui sont pourtant au cœur de la programmation shell, et la plupart des interfaces fournies dans nos langages de programmation préférés ne font rien pour améliorer la situation: la règle générale est que soit les erreurs fans les sous-processus sont ignorées, soit il faut mettre en place une infrastructure assez lourde pour récupérer ces erreurs.

La solution à ce (...)

Savoir qui bosse où en un clin d’œil grâce à Awayboard !

Posté par . Édité par Davy Defaud et Bruno Michel. Modéré par Bruno Michel. Licence CC by-sa.
Tags :
17
19
mar.
2018
Bureautique

Mais où donc travaillent Gunthram et Hannelore ? Sont‐ils au bureau mais pas à leur bureau ? Sont‐ils en télétravail ou bien réellement absents ? Pour réduire encore un peu les interactions sociales au travail, mon collègue Sascha a écrit Awayboard qui permet d’afficher l’information sur un écran de veille au travail !

Screenshot qui montre les aspects principaux de l’application

Le logiciel est une petite application Node.js, qu’on peut simplement préparer et installer grâce à Docker :

% git clone https://github.com/talentsconnect/awayboard
% docker build -t awayboard .
% docker run -it --rm --publish 5711:5711 awayboard

L’application est ensuite accessible sur http://localhost:5711 — à adapter selon la machine où tourne le conteneur Docker.

Awayboard est distribué sous licence MIT.

Journal Gasoline 0.1, cadriciel applicatif pour OCaml

Posté par . Licence CC by-sa.
17
25
oct.
2014

Le projet Gasoline vise à implépementer un cadriciel pour le
développement d'applications de type Unix avec OCaml. Il est
distribué sous licence CeCILL-B.

Les utilisateurs de Gasoline pourront:

  • Rapidement développer des applications types en utilisant des
    patrons d'application comme “filtre Unix” ou “compilateur”.

  • Écrire des application acquerrant leurs
    paramètres de configuration
    de sources variées, comme la ligne de commande, l'environnement ou
    des fichiers de configuration.

  • Écrire des applications organisées autour de
    composants logiciels
    aux responsabilités bien délimitées.

  • Amorcer et terminer (...)

Journal BSD Make Owl Scripts v2.2

Posté par . Licence CC by-sa.
16
18
août
2014

Cher journal,

je t'écris pour te donner des nouvelles de bsdowl (say it bestiole) [1], une famille de macros pour make que j'écris et utilise pour:

  • Préparer et publier des documents avec TeX et LaTeX.
  • Développer des macros TeX et LaTeX avec NOWEB.
  • Développer pour OCaml.
  • Préparer un site web statique avec ONSGMLS.
  • Maintenir les fichiers de configuration de systèmes FreeBSD.

Les macros sont publiées sous licence CeCILL-B, une licence de type BSD.

[1] https://bitbucket.org/michipili/bsdowl

Je t'avais déjà parlé (...)