Même si je suis un libriste convaincu, j'ai parfois des défaillances ! Notamment en ce qui concerne les jeux vidéos. Et oui, on ne se refait pas. En 1988, j'avais 10 ans et tout ce qui concernait l'informatique me semblait déjà un monde extraordinaire. Il faut dire, j'ai commencé à utiliser un ZX81 quand j'avais 8 ans environ. Je remercie d'ailleurs mon père pour ça car je ne crois pas que tous les pères de famille des années 80 s'intéressaient aux ordinateurs dans les années 80.

En ces années, le logiciel libre n'en était qu'à ses balbutiements et sans accès à Internet, difficile de récupérer la connaissance. Donc, dans les années 80, j'ai fait à peu près tout ce qui était possible pour un enfant de 10 ans avec forcément des moyens limités: j'ai acheté une NES et les jeux vidéos propriétaires avec.

Et croyez-moi, j'ai passé du beau temps dessus. C'était très sympathique même si ça consommait beaucoup de temps libre. Avec les années, j'ai peu à peu réduit mon rythme de jeux vidéos pour passer plus de temps sur de l'administration système et sur du développement. Mais, j'ai toujours gardé un petit peu de temps pour continuer à jouer aux jeux vidéos. Il y a 10 ans, je me suis même acheté une Wii. Tout ça pour dire que j'achète environ un ou deux jeux vidéos propriétaires par an.

Dernièrement, j'ai enfin craqué pour une promotion sur GOG.com du jeu Firewatch dans sa version pour GNU/Linux. Je l'avais déjà entre aperçu auparavant, en surfant sur Internet. Le concept m'avait bien plus, moi qui aime la randonnée dans des espaces sauvages, dans la vie réelle. Pour vous faire le pitch, dans Firewatch, vous êtes un gardien d'une tour de vigie pour la défense incendie de forêt dans le Wyoming. Votre boulot consiste à surveiller la forêt et à en faire respecter le règlement. Le jeu est du type aventure à la première personne, tout en 3D.

Le concept me plaisait beaucoup, le milieu aussi ainsi que la réalisation graphique qui semblait sympathique. Le fait d'avoir un monde assez ouvert (où on peut se balader à peu près où on veut) était aussi un vrai plus. Et puis, à 4€ au lieu de 20€ lors de sa sortie, le risque était assez limité. Donc, j'ai craqué.

Dimanche dernier, il pleuvait et j'ai consacré mon après-midi à Firewatch. Malheureusement, à 20h30, le jeu était déjà terminé, soit environ 4-5h de jeu. Le lendemain soir, j'ai essayé de rejouer une partie en ne suivant pas du tout le scénario. Mais au bout d'une heure, je me suis rendu compte que peu importe les choix qui sont faits dans le jeu, le scénario est très linéaire. Par ailleurs, certains emplacements sont interdits d'accès (par des branches ou des obstacles) tant qu'on est pas arrivé au bon moment du scénario.

Enfin, d'un point de vue technique, le logiciel en lui-même est assez moyen. D'abord je n'ai pas réussi à afficher quoi que ce soit sous Wayland. Il a fallu que je repasse dans un environnement Xorg complet (ce que je peux faire facilement mais c'est dommage). Ensuite, ce machin repose sur Mono et donc, c'est lourd au démarrage. Enfin, c'est bien la première fois que j'ai entendu les ventilateurs de ma carte graphique tourner aussi fort. J'ai même cru que j'avais un problème de poussière dans la tour tellement ça chauffait. Pourtant, le graphisme qui reste pas mal est franchement en dessous de ce que j'ai pu tester dans Doom3 pourtant sorti il y a 14 ans ! En plus de ça l'équipe de développement a utilisé un moteur tout fait (unity il me semble). Ils ont donc réduit leurs coûts par rapport à ce point technique d'importance.

Ma conclusion, vous l'aurez compris, est sans appel: Firewatch est une bonne démo mais sans doute pas un jeu à la hauteur de 20€. En comparaison, en 2017, j'ai joué à Thimbleweed Park pendant au moins 40h et à Stardew Valley pendant 100h. Certes, ce ne sont pas les mêmes types de jeux mais le rapport prix/temps passé à jouer est trop important pour Firewatch.

Le concept de ce jeu reste pourtant d'un grand intérêt. Le studio aurait eu intérêt à allonger la durée de vie du produit. J'aurais bien aimé avoir un peu plus de temps pour me ballader dans le secteur. Il aurait sans doute été bon de donner aussi plus de travail à Henry que de s'occuper uniquement de son affaire d'espionnage. Il aurait pu herboriser, piéger des nuisibles, essayer de compter les ours, faire des prélèvements à droite à gauche pour une mission scientifique. Il y aurait pu également avoir des défis de randonneur, du repérage de nouveaux chemins à construire, du travail d'arpentage, de la constitution de cartes, des trucs à réparer. Même la simulation de chier dans les bois aurait été une excellente idée !

Donc, c'est bien dommage mais je vous conseille de ne pas acheter Firewatch en dehors des périodes de soldes ou de vous le faire prêter par un ami avant d'essayer de l'acquérir. Car vous risquez d'être un peu frustré et d'avoir le sentiment d'avoir jeté un peu de fric par les fenêtres.

Pour conclure, si Firewatch avait été un jeu libre, j'y aurais volontiers contribué pendant de longues heures. J'aurais sans doute aussi fait un don sans doute un peu plus conséquent que ce que j'ai payé sur GOG.com. J'aurais aussi pardonné le peu de contenu et une piètre réalisation technique. Mais comme Firewatch n'est pas un logiciel libre, tout ce que je peux faire c'est noyer mon amertume dans cet article de blog ;-)

Posted mar. 09 oct. 2018 19:25:30 Tags:

Cela fait bien des années que je circule à vélo. Depuis l'âge d'environ 8 ans, jusqu'à maintenant, soit 32 ans d'expérience avec un rythme plus ou moins régulier.

Jusqu'à récemment, je n'avais jamais cédé face aux cris alarmant sur le port du casque à vélo. Comme beaucoup, je me suis toujours dit que ça ne servait à rien. Pire, j'étais même assez militant pour lutter contre le port obligatoire du casque. J'ai souvent repris les arguments de la FUB sur ce sujet, à savoir que le port du casque réduirait le nombre de personnes qui ferait du vélo, que ce n'était pas pratique à trimballer, que ce sont les membres les plus souvent touchés, etc.

J'avais même mon propre argumentaire:

  • le vélo, c'est la liberté. Mettre un casque réduit cette liberté.
  • le casque ce n'est pas pratique à gérer.
  • ça fait 30 ans que je fais du vélo sans casque. Je n'en ai jamais eu besoin.
  • si on a besoin d'un casque pour un engin qui se meut à une vitesse de 20km/h max de moyenne, ça veut dire que c'est un moyen de transport trop dangereux et il vaut mieux ne pas en faire.
  • tomber d'un vélo, c'est comme tomber de sa hauteur. Pourtant, je ne porte pas de casque dans la rue.
  • quand je vais courir, je fais des pointes à 20km/h. Je ne me vois pas mettre un casque pour courir et aucun coureur de fond n'a de casque pour courir.
  • le casque, c'est chiant, ça fait transpirer la tête. Et puis il faut pouvoir le stocker quelquepart.

Clairement, je trouvais que le port du casque en vélo était exagéré. J'étais assez fermement opposé à son utilisation. Mais tout ça a profondément changé il y a quelques mois...

D'abord, je me suis acheté un nouveau vélo l'année dernière. Après avoir fait une petite étude de marché, mon choix s'est porté sur un vélo de course (hé oui, c'est un b'twin mais c'était le meilleur rapport qualité/prix/matos utilisé). Dès la première ballade, je me suis dit intérieurement que j'allais devoir acheter un casque parce que je voyais bien que ma vitesse commençait à prendre son envol. Quand tu tapes les 40km/h sur du plat au radar pour voiture sans être à fond, effectivement, il y a de quoi se poser des questions.

Néanmoins, j'ai finalement oublié de m'acheter un casque. J'ai eu un autre signe d'alerte sur ce nouveau vélo lors du printemps 2018. Un soir de flotte en rentrant du boulot, j'ai fait un aqua-planning à environ 25km/h. Je suis tombé sur la flaque d'eau sur laquelle j'ai glissé sur environ 40m. Incroyable et impossible de maîtriser quoique ce soit. Le vélo de 9kg lui a filé comme une flèche, couché sur le flanc. Je l'ai vu glisser en parallèle de moi, sur quelques mètres. C'était impressionant toute cette énergie cinétique avec peu de frottements. Je ne me suis rien cassé, j'ai juste eu quelques dermabrasions bégnines.

Néanmoins, je n'ai toujours pas pris le temps d'acheter un casque. Jusqu'au fatidique jour du 5 juillet 2018. Sur le chemin du travail, dans un endroit exclusivement piéton et vélo sans trop de trafic, en plein milieu de la ville de Nantes, j'ai fait une chute un peu sévère. Je ne connais pas la cause réelle de la chute car ma tête a heurté le sol et j'ai perdu connaissance. Je peux compter sur les doigts d'une seule main les moments où je me suis évanoui dans ma vie. Et pourtant, c'est arrivé en vélo !

A propos de l'accident, disons que je ne me souviens de pas grand chose. A un instant, je voyais mon vélo se pencher sérieusement et l'instant d'après quelqu'un me disait: "Monsieur, serrez ma main s'il vous plaît !". La perte de conscience a complètement effacé le souvenir à court terme. D'après les passants, j'ai dû rester inconscient 1 à 2 minutes. Au niveau des dégâts, c'est ma tête qui a tout pris comme le montre cette photo prise peu après l'accident:

t'as vu ta tête !

J'ai été emmené par les pompiers au CHU pour suturer ma plaie à l'arcade sourcillière et au menton. Je m'en sort pas trop mal au final car je n'ai aucune fracture, rien à la machoire et surtout pas de traumatisme cranien important. J'ai eu de la chance cette fois encore.

Après être revenu sur les lieux de l'accident, je n'ai vu aucune trace de freins nulle part. L'endroit était complètement dégagé, sans obstacle. De plus, ça fait 4 ans que je prends cette voie pour aller travailler tous les jours et jusqu'à présent, je n'avais jamais eu le moindre incident. Quand j'ai pu récupérer mon vélo, pris en main par un bon samaritain (libriste qui plus est) que je remercie publiquement, j'ai compris que, pour une raison inexpliquée, j'ai penché un peu trop mon guidon vers la gauche. Je circulais assez rapidement, sans doute à 25km/h. Mon vélo à perdu l'équilibre, ma tête a heurté le sol en premier et j'ai tout de suite perdu connaissance. Ensuite, le vélo a fait des tonneaux sur lui même car il est erraflé des deux côtés alors qu'il n'y avait aucune trace avant l'accident. L'alignement du guidon avec les roues a été faussé avec la violence du choc. Pour ma part, j'ai également fait des tonneaux car ma tête présente des dermabrasions sur les deux côtés. Mon genou gauche est également abimé.

Quels enseignements tirer de cet acident ?

D'abord qu'on peut chuter d'un vélo qu'on maîtrise depuis un an, sur une zone dégagée sans voiture ni passant, sur un revêtent sec, en milieu urbain.

Ensuite qu'une chute de ma hauteur suffit à bien me faire tomber dans les pommes. Que ça peut arriver à n'importe lequel d'entre-nous. Sachez que je n'avais même pas de pédales automatiques qui peuvent poser un problème pour poser les pieds. Dans mon cas, je n'ai rien pu faire: impossible de redresser le guidon ou de poser le pied par terre pour réaligner le vélo. Je n'ai même pas pu compter sur la force gyroscopique pour maintenir l'équilibre.

Enfin, si j'avais eu un casque de vélo, j'aurais sans doute eu quelques séquelles, notamment au niveau du menton et de la joue mais, je n'aurais pas eu de trauma cranien et je n'aurais pas perdu connaissance. Les conséquences auraient été forcément moins graves.

En conclusion, j'ai enfin acheté un casque de vélo... Et je n'utiliserai plus aucun vélo sans le mettre. J'ai compris que même dans des circonstances favorables, même à l'arrêt, on peut tomber et se faire mal au point de perdre connaissance. Mon trauma cranien aurait pu être bien plus sévère.

Par ailleurs, utiliser un casque a finalement des inconvénients négligeables. Il rentre facilement dans un sac, on peut le laisser pendre dans le train ou au bureau. Il est souvent aéré et on ne transpire pas trop avec. Enfin, il coûte peu cher comparé au temps perdu à devoir aller au CHU et rester en observation après un traumatisme cranien.

Voilà, je suis passé du stade d'opposant au port du casque à vélo au stade de ne plus vouloir m'en passer. Je me dis aussi qu'avec un casque, je peux continuer à rouler au même rythme qu'avant sans avoir trop d'appréhension ce qui est quand même plus confortable que de devoir toujours redoubler d'attention et d'avoir perdu confiance dans ce formidable moyen de déplacement qu'est le vélo.

Tous les arguments des anti-casques sont tombés en même temps que ma tête sur le sol, ce 05/07/2018...

Posted jeu. 11 oct. 2018 21:37:10 Tags:

Introduction

It's been 7 years since I have installed and used everyday the i3 tile window manager. I have never used something else and it proved to be a good choice. I can now focus on keyboard commands and I don't have to handle windows positions on the screen anymore.

Whenever I am forced to use another old fashioned hand positionning window manager, I fulminate against it. I am just waisting my time trying to focus on the program I need to use.

So far I have been very satisfied about my i3 usage. I just wrote a configuration file years ago and I never had to look at it. I just copy it to any new desktop computer that I own. It is a very stable window manager.

But last month, I found an alternative to i3 and I want to tell you how I use it as a replacement of i3. It is called sway and it aims to become an i3 replacement on the wayland graphical stack.

It's been years since everybody is using the Xorg graphical stack under GNU/Linux systems. It is very old as it predates the micro-computers era of the 80's. While being improved one small feet at a time, Xorg architecture has some drawbacks, inheritated from its beginnings.

Wayland has emerged a couple of years ago in order to completely get rid of the old Xorg stack principles. As an abstract, I can say that Wayland is the future of GNU/Linux desktop systems! For more information about the differences between Wayland and X, read this page.

Sway is a tiling window manager that works under Wayland. It aims to mimic i3, in its usage and even in it's configuration file. You just have to stick it into the right directory (~/.config/sway/config) and voila. Sway is coded in C and it is very efficient, compact and fast. Even if it hasn't reach version 1.0, my tests have shown that it is perfectly usable everyday.

I have use it for a month at home, on my laptop and even on my office job workstation and it just does work.

How to install Sway under Debian?

First things first, you need to be under Debian Buster because compiling sway from sources requires some packages that do not exist in Debian Stretch (like meson).

Debian Packages Dependencies

# apt install libgles2-mesa-dev libdrm2 libdrm-dev libegl1-mesa-dev xwayland\
  libgbm-dev libinput-dev libsystemd-dev libcap-dev libxcb-composite0-dev \
  libxcb-image0-dev libxcb-icccm4-dev libxcb-xkb-dev libpam0g-dev

Manual Dependencies

json-c

Unfortunately, json-c isn't in the required version, even on Debian Buster. We need to compile it by hand:

$ git clone https://github.com/json-c/json-c.git
$ cd json-c
$ sh autogen.sh
$ ./configure --prefix=/usr/local
$ make
# make install

wlroots

wlroot is a generic library for Wayland compositors. It has been developed focusing primarily Sway but it can also be used with other projects.

$ git clone https://github.com/swaywm/wlroots.git
$ cd wlroots
$ meson build
$ ninja -C build
# ninja -C build install

Sway building

Now it is time to build Sway.

$ git clone https://github.com/swaywm/sway.git
$ cd sway
$ meson build
$ ninja -C build
# ninja -C build install

Configuring Sway

You just need to copy your i3 configuration file into ~/.config/sway/config. Here is mine as an example with some adjustments for multiscreen and input configuration:

# Sway config file

# Keyboard configuration
input "5426:267:Razer_Razer_Arctosa" {
  xkb_layout fr
  xkb_variant latin9
  xkb_model pC105
  xkb_numlock enabled
}

# Dual screen configuration
output DP-1 pos 0 0 mode 1920x1080 background /usr/local/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png center
output DVI-I-2 pos 1920 0 mode 1680x1050 background /usr/local/share/backgrounds/sway/Sway_Wallpaper_Blue_1366x768.png center

set $mod Mod4

# Set font for lower bar
font pango:DejaVu Sans Mono 10

# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod

# Start a terminal. I use terminology, the enlightenment terminal.
# It does work natively under Wayland.
# See https://www.enlightenment.org/about-terminology
bindsym $mod+Return exec terminology -B

# Lock the screen
bindsym $mod+m exec swaylock

# kill focused window
bindsym $mod+Shift+Q kill

# start dmenu (a program launcher)
bindsym $mod+d exec dmenu_run

# change focus
bindsym $mod+j focus left
bindsym $mod+k focus down
bindsym $mod+i focus up
bindsym $mod+l focus right

# alternatively, you can use the cursor keys:
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right

# move focused window
#bindsym $mod+Shift+J move left
#bindsym $mod+Shift+K move down
#bindsym $mod+Shift+L move up
#bindsym $mod+Shift+M move right

# alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right

# split in horizontal orientation
bindsym $mod+h split h

# split in vertical orientation
bindsym $mod+v split v

# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen

# change container layout (stacked, tabbed, default)
bindsym $mod+s layout stacking
bindsym $mod+z layout tabbed
bindsym $mod+e layout default

# change screen
bindsym $mod+x move container to output DVI-I-2
bindsym $mod+w move container to output DP-1

# toggle tiling / floating
bindsym $mod+Shift+space floating toggle

# change focus between tiling / floating windows
bindsym $mod+space focus mode_toggle

# focus the parent container
bindsym $mod+q focus parent

# focus the child container
#bindcode $mod+d focus child

# workspaces definition
workspace 1: Mail output DVI-I-2
workspace 2: Web output DP-1
workspace 3: Terminal output DP-1
workspace 4: Emacs output DP-1
workspace 5: Music output DVI-I-2

# switch to workspace
bindsym $mod+ampersand workspace 1: Mail
bindsym $mod+eacute workspace 2: Web
bindsym $mod+quotedbl workspace 3: Terminal
bindsym $mod+apostrophe workspace 4: Emacs
bindsym $mod+parenleft workspace 5: Music
bindsym $mod+minus workspace 6
bindsym $mod+egrave workspace 7
bindsym $mod+underscore workspace 8
bindsym $mod+ccedilla workspace 9
bindsym $mod+agrave workspace 10

# move focused container to workspace
bindsym $mod+Shift+ampersand move workspace 1: Mail
bindsym $mod+Shift+eacute move workspace 2: Web
bindsym $mod+Shift+quotedbl move workspace 3: Terminal
bindsym $mod+Shift+apostrophe move workspace 4: Emacs
bindsym $mod+Shift+parenleft move workspace 5: Music
bindsym $mod+Shift+minus move workspace 6
bindsym $mod+Shift+egrave move workspace 7
bindsym $mod+Shift+underscore move workspace 8
bindsym $mod+Shift+ccedilla move workspace 9
bindsym $mod+Shift+agrave move workspace 10

# reload the configuration file
bindsym $mod+Shift+C reload
# restart sway inplace (preserves your layout/session, can be used to upgrade sway)
bindsym $mod+Shift+R restart
# exit sway (logs you out of your X session)
bindsym $mod+Shift+E exit

# resize window (you can also use the mouse for that)
mode "resize" {
  # These bindings trigger as soon as you enter the resize mode
  # They resize the border in the direction you pressed, e.g.
  # when pressing left, the window is resized so that it has
  # more space on its left

  bindsym j resize shrink left 10 px or 10 ppt
  bindsym Shift+J resize grow   left 10 px or 10 ppt

  bindsym k resize shrink down 10 px or 10 ppt
  bindsym Shift+K resize grow   down 10 px or 10 ppt

  bindsym l resize shrink up 10 px or 10 ppt
  bindsym Shift+L resize grow   up 10 px or 10 ppt

  bindsym m resize shrink right 10 px or 10 ppt
  bindsym Shift+M resize grow   right 10 px or 10 ppt

  # same bindings, but for the arrow keys
  bindsym Left resize shrink left 10 px or 10 ppt
  bindsym Shift+Left resize grow   left 10 px or 10 ppt

  bindsym Down resize shrink down 10 px or 10 ppt
  bindsym Shift+Down resize grow   down 10 px or 10 ppt

  bindsym Up resize shrink up 10 px or 10 ppt
  bindsym Shift+Up resize grow   up 10 px or 10 ppt

  bindsym Right resize shrink right 10 px or 10 ppt
  bindsym Shift+Right resize grow   right 10 px or 10 ppt

  # back to normal: Enter or Escape
  bindsym Return mode "default"
  bindsym Escape mode "default"
  bindsym $mod+r mode "resize"
}

# lower bar configuration
bar {
    status_command i3status
    output DP-1
}

bar {
    output DVI-I-2
    status_command i3status
}

# assign workspaces
assign [title="mutt"] 1: Mail
assign [class="Firefox"] 2: Web
assign [title="Terminal" title="Terminal" app_id="terminology"] 3: Terminal
assign [title="Emacs"] 4: Emacs
assign [title="Cantata"] 5: Music

# Start my main tools when the session opens
exec terminology -B -T=mutt -n=Mutt -r=Mutt -e mutt
exec terminology -B -T=Terminal -n=Terminal -r=Terminal
exec terminology -B -T=Emacs -n=Emacs -r=Emacs -e emacs
exec cantata
exec firefox

Launch a sway session

Sway doesn't have a session manager. As Sway is a Wayland compositor it requires to be started whenever you start a session. For the moment, I have just modified my .bashrc configuration to start sway whenever I am login under tty1 and then configure the different graphical libraries (GTK/QT/EFL/etc.) to use Wayland instead of Xorg:

...
# Sway configuration
export LD_LIBRARY_PATH="/usr/local/lib"
# you can also configure your keyboard this way
#export XKB_DEFAULT_LAYOUT=fr
#export XKB_DEFAULT_VARIANT=latin9
#export XKB_DEFAULT_MODEL=pc105
export QT_QPA_PLATFORM=wayland
export QT_WAYLAND_DISABLE_WINDOWDECORATION="1"
export ELM_DISPLAY=wl
export ECORE_EVAS_ENGINE=wayland_shm

# Launch Sway when logging under tty1
if [ $(tty) = "/dev/tty1" ]; then
   sway
   exit 0
fi

I have gotten rid of all the session managers on my system (no more slim nor gnome-session). I am prompted ot log under the text mode console. OldSchoolCool!

What doesn't work very well?

Even if Sway is working very well on three of my computers there are still some problems around.

On some computers I have lots of glitches with firefox. This is my main problem for the moment. Firefox can only be compiled under Xorg, there is nothing official for Wayland. So it relies on XWayland and for some graphical cards, it seems to have some problems.

The second problem I have faced is a keyboard problem. On my laptop I could not use the traditionnal keys for moving a window towards a screen (mod+shift+number of the screen). I had to.modify the comfiguration file to reflect the base (without shift pressed) character of the key (eg: aecute for 3 on a french keyboard).

I had also some problems with (proprietary) games that required a full Xorg session. But as long as I am able to play to Stardew Valley, it is not really a problem. Furthermore, I can log in tty2 and launch Xorg by hand (startx).

The last problem is probably the fact that I have to compile sway every week because it is not already available in Debian...

As long as you use Gnome softwares, you will enjoy the Wayland experience. Same thing for Qt5 (with the configuration above).

Conclusion

As a conclusion, Sway impressed me. It is a Wayland replacement for i3. There is nearly no new features. I am not lost nor do I need to learn something new. Furthermore it is coded in C, a language I really enjoy and which is able to build a complete tile window manager in a robust, compact and fast way. If you are an i3 enthousiast, you will enjoy Sway whenever you will migrate to Wayland.

Posted dim. 14 oct. 2018 17:25:30 Tags: