Skip to main content

Learning about compilers

2 min read

In order to have a better understanding of context-free grammars, lexers and parsers,
I have developed a basic JSON editor with Vuejs ( by going through chapters and exercices of Compilers, Principles, Techniques, & Tools ( 


The  project ( has been of tremendous help to generate parsers from grammars ( This side project reminded me of times when David NowinskySophie Despeisse and I, had to edit many configuration files by hand, which was quite error-prone without adequate tooling.


In the past, I would not dare playing with a recursive descent parser. Thanks to reactivity in a browser brought by modern libraries, the fun is back.


Would anyone want me to write a short article on the topic, I would gladly describe how to implement the aforementioned editor from Backus-Naur form notation technique to the edition of tokens implemented as many Vue components.


I've published a prototype, along with its sources ( It is still at its early stage but I'm looking for some additional insights about how the job could have been done so comments about this project which main purpose is to learn are very welcome).

AutoDéfense Numérique

AutoDéfense Numérique

Location: La Paillasse (


Session ADN (AutoDéfense Numérique) demain (le 8/11/2017) à 19h à @LaPaillasse à propos de -

#Shell - How to sharpen a command-line interface for better plain-text experience?

For some of us and as crazy as it may look like our productivity derives directly from the addition and subsequent customization of dot files

This week, I've stumbled upon this article of Nikita Sobolev, written with geat care on this topic with particularly detailed illustrations and precious pointers :  

Instant +100% command line productivity boost 

Here are some of the new challengers reinventing our daily plain-text experience 

ag - code searching tool similar to ack, with a focus on speed

exa - modern replacement for ls

fzf - general-purpose command-line fuzzy finder 

zsh-syntax-highlighting - Fish shell-like like syntax highlighting for Zsh

For better compatibility with tmux,

  • I've re-installed my current version of the terminal multiplexer from its 2.5 release
    I had some issue when using Pygments as replacement of cat for syntax highlighting of source files with version of tmux above 2.5). Besides tig (upgraded to its 2.2.2 release) would render incremental changes in funny ways  
  • I've updated its configuration to preserve vim-mode selection and system clipboard copy-paste

For easier use of these little gems, I've added the following aliases to my shell start-up script (read ~/.zshrc equivalent) :


#i3 - How not to loose focus when navigating with a JetBrains IDE

Add the following directive to ~/.i3/config

focus_follows_mouse no

#WeeChat - Filters and tags with WeeChat

/filter add joinquit * irc_join,irc_part,irc_quit *

#Systemd - How to read live-tail logs of multiple services with journalctl

Tail logs of multiple services

sudo journalctl --follow _SYSTEMD_UNIT=docker.service + _SYSTEMD_UNIT=apache2.service

#Shell - Set sound volume from the command-line

Add the next function and its corresponding alias to a shell startup script to set sound volume from the command-line. Thanks to Nick Robinson-Wall for sharing how to set/get/mute volume from the command line with .

function set_sound_volume() {
    local PERCENTAGE="${1}"       
    echo 'About to set volume up to '"${PERCENTAGE}"' % of its maximal value'  
    osascript -e 'set volume output volume '"${PERCENTAGE}"
alias set-sound-volume='set_sound_volume'