itDecrease all title levels by 1 - monochromatic - monochromatic blog: http://blog.z3bra.org Err z3bra.org 70 hgit clone git://z3bra.org/monochromatic URL:git://z3bra.org/monochromatic z3bra.org 70 1Log /scm/monochromatic/log.gph z3bra.org 70 1Files /scm/monochromatic/files.gph z3bra.org 70 1Refs /scm/monochromatic/refs.gph z3bra.org 70 i--- Err z3bra.org 70 1commit 167d6041409999f3bebbcce77970596064cc3d24 /scm/monochromatic/commit/167d6041409999f3bebbcce77970596064cc3d24.gph z3bra.org 70 1parent f0ea11e7d19b23e1080884a83202d1887fab7e86 /scm/monochromatic/commit/f0ea11e7d19b23e1080884a83202d1887fab7e86.gph z3bra.org 70 hAuthor: Willy Goiffon URL:mailto:dev@z3bra.org z3bra.org 70 iDate: Fri, 27 Dec 2019 15:56:01 +0100 Err z3bra.org 70 i Err z3bra.org 70 iDecrease all title levels by 1 Err z3bra.org 70 i Err z3bra.org 70 iDiffstat: Err z3bra.org 70 i M 2013/08/test-your-css.txt | 8 ++++---- Err z3bra.org 70 i M 2013/08/the-hard-way.txt | 6 +++--- Err z3bra.org 70 i M 2013/09/java-without-eclipse.txt | 8 ++++---- Err z3bra.org 70 i M 2013/10/home-sweet-home.txt | 4 ++-- Err z3bra.org 70 i M 2013/11/plain-old-mails.txt | 10 +++++----- Err z3bra.org 70 i M 2013/12/love-me-some-latex.txt | 8 ++++---- Err z3bra.org 70 i M 2014/01/images-in-terminal.txt | 10 +++++----- Err z3bra.org 70 i M 2014/03/toolbox.txt | 4 ++-- Err z3bra.org 70 i M 2014/03/unleash-your-desktop.txt | 4 ++-- Err z3bra.org 70 i M 2014/04/meeting-at-the-bar.txt | 30 +++++++++++++++--------------- Err z3bra.org 70 i M 2014/04/pop-it-up.txt | 20 ++++++++++---------- Err z3bra.org 70 i M 2014/05/grok-that-workflow.txt | 16 ++++++++-------- Err z3bra.org 70 i M 2014/07/name-that-domain.txt | 8 ++++---- Err z3bra.org 70 i M 2014/08/im-back-up.txt | 10 +++++----- Err z3bra.org 70 i M 2014/08/shred-configh.txt | 6 +++--- Err z3bra.org 70 i M 2014/09/backup-someone.txt | 10 +++++----- Err z3bra.org 70 i M 2014/11/avoid-workspaces.txt | 8 ++++---- Err z3bra.org 70 i M 2014/12/so-tox-me-maybe.txt | 6 +++--- Err z3bra.org 70 i M 2015/01/you-are-the-wm.txt | 14 +++++++------- Err z3bra.org 70 i M 2015/02/do-you-gopher.txt | 10 +++++----- Err z3bra.org 70 i M 2015/03/under-wendys-dress.txt | 8 ++++---- Err z3bra.org 70 i M 2015/08/cross-compiling-with-pcc-a… | 8 ++++---- Err z3bra.org 70 i M 2016/01/make-your-own-distro.txt | 10 +++++----- Err z3bra.org 70 i M 2016/03/hand-crafted-containers.txt | 32 ++++++++++++++++---------------- Err z3bra.org 70 i M 2016/08/desktop-streaming.txt | 6 +++--- Err z3bra.org 70 i M 2016/09/pack-it-up.txt | 8 ++++---- Err z3bra.org 70 i Err z3bra.org 70 i26 files changed, 136 insertions(+), 136 deletions(-) Err z3bra.org 70 i--- Err z3bra.org 70 1diff --git a/2013/08/test-your-css.txt b/2013/08/test-your-css.txt /scm/monochromatic/file/2013/08/test-your-css.txt.gph z3bra.org 70 it@@ -2,7 +2,7 @@ Err z3bra.org 70 i Err z3bra.org 70 i 8 August, 2013 Err z3bra.org 70 i Err z3bra.org 70 i-### Text Formatting Err z3bra.org 70 i+## Text Formatting Err z3bra.org 70 i Err z3bra.org 70 i Yay ! Here we are. Here is something _important_. There is also something Err z3bra.org 70 i **strong**. Err z3bra.org 70 it@@ -16,17 +16,17 @@ But... What about blockquotes ?! Let's test : Err z3bra.org 70 i Err z3bra.org 70 i That was a fine quote. Now, go on ! Err z3bra.org 70 i Err z3bra.org 70 i-### Long texts Err z3bra.org 70 i+## Long texts Err z3bra.org 70 i Err z3bra.org 70 i Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Err z3bra.org 70 i Err z3bra.org 70 i-### Images Err z3bra.org 70 i+## Images Err z3bra.org 70 i Err z3bra.org 70 i [![ratpoison screenshot](http://pub.z3bra.org/monochromatic/img/thumb/2013-08-ratpoison.jpg)](http://pub.z3bra.org/monochromatic/img/2013-08-ratpoison.jpg) Err z3bra.org 70 i *Ratpoison screenshot Err z3bra.org 70 i Uses "ratpoison -c set border 28" to make the shot sexier* Err z3bra.org 70 i Err z3bra.org 70 i-### Tables and code Err z3bra.org 70 i+## Tables and code Err z3bra.org 70 i Err z3bra.org 70 i Err z3bra.org 70 i Err z3bra.org 70 1diff --git a/2013/08/the-hard-way.txt b/2013/08/the-hard-way.txt /scm/monochromatic/file/2013/08/the-hard-way.txt.gph z3bra.org 70 it@@ -24,7 +24,7 @@ ones. I've come to the point where grabbing the mouse to click on a button is a Err z3bra.org 70 i _real_ pain. Err z3bra.org 70 i But let's go back to **the hard way**. Err z3bra.org 70 i Err z3bra.org 70 i-### What is that ? Can I eat it ? Err z3bra.org 70 i+## What is that ? Can I eat it ? Err z3bra.org 70 i Err z3bra.org 70 i Learning stuff the hard way is (talking about computers), starting using tools Err z3bra.org 70 i or learning stuff, without a formation, any piece of help, or any hack to make Err z3bra.org 70 it@@ -62,7 +62,7 @@ I forced myself to use it this way, and after a week or two, I was putting Err z3bra.org 70 i ":wqjk{wB" in every other text editor, because I were finally comfortable with, Err z3bra.org 70 i and used to Vim. Err z3bra.org 70 i Err z3bra.org 70 i-### Drawbacks Err z3bra.org 70 i+## Drawbacks Err z3bra.org 70 i Err z3bra.org 70 i I see you raising the I can't have a productivity loss at my work card, Err z3bra.org 70 i and you are right. This method is not shipped with only advantages, and Err z3bra.org 70 it@@ -83,7 +83,7 @@ not, and if you want to make your life easier. (Show me one Vim user that has Err z3bra.org 70 i choosen to enable the mouse because it enhance his productivity... I dare you Err z3bra.org 70 i ;) ). Err z3bra.org 70 i Err z3bra.org 70 i-### Homeworks Err z3bra.org 70 i+## Homeworks Err z3bra.org 70 i Err z3bra.org 70 i There are a lot of place in the UNIX domain where the hard way can be applied, Err z3bra.org 70 i here are a few examples: Err z3bra.org 70 1diff --git a/2013/09/java-without-eclipse.txt b/2013/09/java-without-eclipse.txt /scm/monochromatic/file/2013/09/java-without-eclipse.txt.gph z3bra.org 70 it@@ -20,7 +20,7 @@ Why would java escape the rules ?! Err z3bra.org 70 i Of course, there are advantages ! And if these are good enough for you. Go with Err z3bra.org 70 i eclipse And have some fun ! Err z3bra.org 70 i Err z3bra.org 70 i-### Throwing Eclipse away Err z3bra.org 70 i+## Throwing Eclipse away Err z3bra.org 70 i Err z3bra.org 70 i For that to be clear, **I am not saying that IDEs are evil ! I am just showing Err z3bra.org 70 i how you can avoid them, in favor of your daily tools**. Err z3bra.org 70 it@@ -82,7 +82,7 @@ bin/. Each source has it's own package. Err z3bra.org 70 i Err z3bra.org 70 i Let's see how to handle this project, using UNIX as your IDE ! Err z3bra.org 70 i Err z3bra.org 70 i-### Compilation Err z3bra.org 70 i+## Compilation Err z3bra.org 70 i Err z3bra.org 70 i It probably is the hardest part. Java is hard to compile properly, so tools Err z3bra.org 70 i like Ant are used in IDEs. Err z3bra.org 70 it@@ -166,7 +166,7 @@ And it will compile your code only if it has changed (thanks GNU/make !). Err z3bra.org 70 i Err z3bra.org 70 i It there you need more explaination on this, mail me your questions ! Err z3bra.org 70 i Err z3bra.org 70 i-### Running Err z3bra.org 70 i+## Running Err z3bra.org 70 i Err z3bra.org 70 i Running your program will be a lot more easier. And you probably know What I'm Err z3bra.org 70 i going to tell you: _shell script_. Err z3bra.org 70 it@@ -191,7 +191,7 @@ application. It will probably (in its simplest form) look like this: Err z3bra.org 70 i Err z3bra.org 70 i Isn't that easy ? Err z3bra.org 70 i Err z3bra.org 70 i-### Conclusion Err z3bra.org 70 i+## Conclusion Err z3bra.org 70 i Err z3bra.org 70 i **YOU. DON'T. NEED. ECLIPSE. AT ALL.** Err z3bra.org 70 i Err z3bra.org 70 1diff --git a/2013/10/home-sweet-home.txt b/2013/10/home-sweet-home.txt /scm/monochromatic/file/2013/10/home-sweet-home.txt.gph z3bra.org 70 it@@ -2,7 +2,7 @@ Err z3bra.org 70 i Err z3bra.org 70 i 28 October, 2013 Err z3bra.org 70 i Err z3bra.org 70 i-### Summary Err z3bra.org 70 i+## Summary Err z3bra.org 70 i Err z3bra.org 70 i Yes, a summary, because that's gonna be a LONG article. Err z3bra.org 70 i Err z3bra.org 70 it@@ -445,7 +445,7 @@ Finally, here is my own xinitrc Err z3bra.org 70 i *That shot show off the whole setup, with prompt, bar, Err z3bra.org 70 i applications, etc... I hope you will like it!* Err z3bra.org 70 i Err z3bra.org 70 i-### Conclusion Err z3bra.org 70 i+## Conclusion Err z3bra.org 70 i Err z3bra.org 70 i The end, finally. That is a damn long article. I have deliberately not expanded Err z3bra.org 70 i some point by lack of "space". I want this article to end someday. It will Err z3bra.org 70 1diff --git a/2013/11/plain-old-mails.txt b/2013/11/plain-old-mails.txt /scm/monochromatic/file/2013/11/plain-old-mails.txt.gph z3bra.org 70 it@@ -16,7 +16,7 @@ local mail directory under `$HOME/var/mail/INBOX/` Err z3bra.org 70 i Because we all need that bearded touch, we will use `mail` as our **main mail Err z3bra.org 70 i user agent**. Err z3bra.org 70 i Err z3bra.org 70 i-### The environment Err z3bra.org 70 i+## The environment Err z3bra.org 70 i Err z3bra.org 70 i As any of the standard UNIX tool, `mail` integrates well in a UNIX environment, Err z3bra.org 70 i and is able to interact with external tools to perform specific action (assume Err z3bra.org 70 it@@ -62,7 +62,7 @@ Before continuing with mail, we will take a look at two mail related programs, Err z3bra.org 70 i [fdm](http://fdm.sourceforge.net/) and [msmtp](http://msmtp.sourceforge.net/), Err z3bra.org 70 i that we will use to fetch and deliver emails. Err z3bra.org 70 i Err z3bra.org 70 i-### Fetching mails Err z3bra.org 70 i+## Fetching mails Err z3bra.org 70 i Err z3bra.org 70 i FDM stands for Fetch and Deliver Mails, so it basically get mails from a Err z3bra.org 70 i server, and place them in your local filesystem based on regex rules. Err z3bra.org 70 it@@ -90,7 +90,7 @@ own (simplified) config file: Err z3bra.org 70 i check that mail fetching works with `fdm -kv fetch`. Err z3bra.org 70 i If it works, you could place `fdm fetch` in your cron entries. Err z3bra.org 70 i Err z3bra.org 70 i-### Sending mails Err z3bra.org 70 i+## Sending mails Err z3bra.org 70 i Err z3bra.org 70 i `MSMTP` is as simple to use as `fdm`. Check its Err z3bra.org 70 i [documentation](http://msmtp.sourceforge.net/documentation.html). Err z3bra.org 70 it@@ -118,7 +118,7 @@ at the end of your `~/.mailrc`: Err z3bra.org 70 i # use msmtp instead of sendmail Err z3bra.org 70 i set sendmail="/usr/bin/msmtp" Err z3bra.org 70 i Err z3bra.org 70 i-### Writing a new mail Err z3bra.org 70 i+## Writing a new mail Err z3bra.org 70 i Err z3bra.org 70 i Back to the topic! Err z3bra.org 70 i Now that tools we are going to interact with are set up, let's write Err z3bra.org 70 it@@ -150,7 +150,7 @@ As you might guess, the `-s` can be used to specify the subject. There are also Err z3bra.org 70 i `-c `, `-b ` for copy/carbon copy, and so on. Just Err z3bra.org 70 i read the manpage for more options. Err z3bra.org 70 i Err z3bra.org 70 i-### Reading your mails Err z3bra.org 70 i+## Reading your mails Err z3bra.org 70 i Err z3bra.org 70 i To read your mail, it's quite simple. Just type `mail` to get an output like: Err z3bra.org 70 i Err z3bra.org 70 1diff --git a/2013/12/love-me-some-latex.txt b/2013/12/love-me-some-latex.txt /scm/monochromatic/file/2013/12/love-me-some-latex.txt.gph z3bra.org 70 it@@ -9,7 +9,7 @@ company, as an apprentice. As a fellow Linux user, I don't want to Err z3bra.org 70 i use that fucking text processor. I love my vim Err z3bra.org 70 i setup, and I want to use it to write that report. Err z3bra.org 70 i Err z3bra.org 70 i-### Introduction Err z3bra.org 70 i+## Introduction Err z3bra.org 70 i Err z3bra.org 70 i So i came to [LaTeX](http://www.latex-project.org/). Err z3bra.org 70 i Latex (side note: I will not write "LaTeX" everytime in this post. Err z3bra.org 70 it@@ -116,7 +116,7 @@ write it, and what to do with that file. Err z3bra.org 70 i Don't worry, that ain't difficult. Err z3bra.org 70 i Err z3bra.org 70 i Err z3bra.org 70 i-### Writing latex Err z3bra.org 70 i+## Writing latex Err z3bra.org 70 i Err z3bra.org 70 i Latex files basically looks like any source file. First come the Err z3bra.org 70 i definitions, and then the source (document) itself. Err z3bra.org 70 it@@ -187,7 +187,7 @@ So, the most simple body is the following: Err z3bra.org 70 i You're still there ? Fine. Now, what should we do with that file ? Err z3bra.org 70 i Err z3bra.org 70 i Err z3bra.org 70 i-### Compilation Err z3bra.org 70 i+## Compilation Err z3bra.org 70 i Err z3bra.org 70 i Yeah, you read it right. You compile a Latex file, because it has to Err z3bra.org 70 i generate many other files in order to understand your whole Err z3bra.org 70 it@@ -305,7 +305,7 @@ Easy to use! Err z3bra.org 70 i Err z3bra.org 70 i Maybe... To get the "eps" part, see the [tips section](#tips) Err z3bra.org 70 i Err z3bra.org 70 i-### Enjoy ! Err z3bra.org 70 i+## Enjoy ! Err z3bra.org 70 i Err z3bra.org 70 i There you go, you are now ready to write your own latex documents, Err z3bra.org 70 i and browser the web to find help about what is not explained in Err z3bra.org 70 1diff --git a/2014/01/images-in-terminal.txt b/2014/01/images-in-terminal.txt /scm/monochromatic/file/2014/01/images-in-terminal.txt.gph z3bra.org 70 it@@ -20,7 +20,7 @@ the "dependencies" section: Err z3bra.org 70 i Err z3bra.org 70 i [w3m](http://w3m.sourceforge.net). That was my answer. Err z3bra.org 70 i Err z3bra.org 70 i-### the package Err z3bra.org 70 i+## the package Err z3bra.org 70 i Err z3bra.org 70 i w3m is a text-based web browser. It means that you can use it to browse the web Err z3bra.org 70 i from within your terminal (good stuff!). There are many like it (lynx, links, Err z3bra.org 70 it@@ -35,7 +35,7 @@ manpage many, many times, searching for keywords like image, Err z3bra.org 70 i preview, gimme my f\*\*cking image rendering, damn software!. Every Err z3bra.org 70 i usefull keyword I could find. **Nothing**. Err z3bra.org 70 i Err z3bra.org 70 i-### the pursuit Err z3bra.org 70 i+## the pursuit Err z3bra.org 70 i Err z3bra.org 70 i A few minutes (when all the buckets were fullfilled with my tears), I finally Err z3bra.org 70 i tough: Use the source, z3bra. That's how I installed ranger. Err z3bra.org 70 it@@ -56,7 +56,7 @@ the tool it uses to do so. Here is how I managed to find it: Err z3bra.org 70 i **HOORAY!** A binary ! Next step will be to understand how to make it render Err z3bra.org 70 i images in the terminal.. Err z3bra.org 70 i Err z3bra.org 70 i-### the trials Err z3bra.org 70 i+## the trials Err z3bra.org 70 i Err z3bra.org 70 i Obviously, running `w3mimgdisplay --help` would've been too easy.. But I Err z3bra.org 70 i finally managed to understand a few things using the ranger source I just Err z3bra.org 70 it@@ -120,7 +120,7 @@ the ranger source, I ended up with this line: Err z3bra.org 70 i 200x100px, at offset +0+0 in the terminal. I'm sure you're already trying it Err z3bra.org 70 i ;)* Err z3bra.org 70 i Err z3bra.org 70 i-### the wrapping Err z3bra.org 70 i+## the wrapping Err z3bra.org 70 i Err z3bra.org 70 i Okay, we can now display an image in the terminal, at the offset and size we Err z3bra.org 70 i want. Let's wrap it up in a script, to be more adaptive! We will need some Err z3bra.org 70 it@@ -169,7 +169,7 @@ is hardcoded. Err z3bra.org 70 i Err z3bra.org 70 i Aaaaaaaaand it's cool ! Err z3bra.org 70 i Err z3bra.org 70 i-### the end Err z3bra.org 70 i+## the end Err z3bra.org 70 i Err z3bra.org 70 i There you are. You have a tool to preview images in your terminal, in an easy Err z3bra.org 70 i way. The dependency is not huge, and you can script it the way you want. Err z3bra.org 70 1diff --git a/2014/03/toolbox.txt b/2014/03/toolbox.txt /scm/monochromatic/file/2014/03/toolbox.txt.gph z3bra.org 70 it@@ -24,7 +24,7 @@ Let's start with my current setup ! Every tool in this list is installed on my Err z3bra.org 70 i main computer (a desktop one). I'll avoid mentioning server administration Err z3bra.org 70 i tools, because that's too specific. Err z3bra.org 70 i Err z3bra.org 70 i-### Computer Err z3bra.org 70 i+## Computer Err z3bra.org 70 i Err z3bra.org 70 i * CRUX 3.0 Err z3bra.org 70 i * AMD A10-5800k Err z3bra.org 70 it@@ -32,7 +32,7 @@ tools, because that's too specific. Err z3bra.org 70 i * Roccat Kone Pure Err z3bra.org 70 i * Razer Vespuala Err z3bra.org 70 i Err z3bra.org 70 i-### Tool list Err z3bra.org 70 i+## Tool list Err z3bra.org 70 i Err z3bra.org 70 i * [2bwm](#2bwm) Err z3bra.org 70 i * [9menu](#9menu) Err z3bra.org 70 1diff --git a/2014/03/unleash-your-desktop.txt b/2014/03/unleash-your-desktop.txt /scm/monochromatic/file/2014/03/unleash-your-desktop.txt.gph z3bra.org 70 it@@ -3,7 +3,7 @@ Err z3bra.org 70 i Err z3bra.org 70 i 31 March, 2014 Err z3bra.org 70 i Err z3bra.org 70 i-### Introduction Err z3bra.org 70 i+## Introduction Err z3bra.org 70 i Err z3bra.org 70 i Hi everybody ! This post is more or less the continuation of my previous one: Err z3bra.org 70 i [Home, sweet home](/2013/10/home-sweet-home.html). We will take desktop Err z3bra.org 70 it@@ -12,7 +12,7 @@ the base of linux system administration. Err z3bra.org 70 i Err z3bra.org 70 i Here we go! Err z3bra.org 70 i Err z3bra.org 70 i-### Summary Err z3bra.org 70 i+## Summary Err z3bra.org 70 i Err z3bra.org 70 i * [head-up display](#hud) Err z3bra.org 70 i * [fetching informations](#grab) Err z3bra.org 70 1diff --git a/2014/04/meeting-at-the-bar.txt b/2014/04/meeting-at-the-bar.txt /scm/monochromatic/file/2014/04/meeting-at-the-bar.txt.gph z3bra.org 70 it@@ -2,7 +2,7 @@ Err z3bra.org 70 i Err z3bra.org 70 i 02 April, 2014 Err z3bra.org 70 i Err z3bra.org 70 i-### Introduction Err z3bra.org 70 i+## Introduction Err z3bra.org 70 i Err z3bra.org 70 i Hi everybody ! This post is more or less the continuation of my previous one: Err z3bra.org 70 i [Home, sweet home](/2013/10/home-sweet-home.html). We will take desktop Err z3bra.org 70 it@@ -14,7 +14,7 @@ useful to us. We will learn how to display system informations on your screen. Err z3bra.org 70 i Err z3bra.org 70 i Here we go! Err z3bra.org 70 i Err z3bra.org 70 i-### Summary Err z3bra.org 70 i+## Summary Err z3bra.org 70 i Err z3bra.org 70 i * [head-up display](#hud) Err z3bra.org 70 i * [fetching informations](#grab) Err z3bra.org 70 it@@ -39,7 +39,7 @@ doing it (understand, I've not tried the alternatives): Err z3bra.org 70 i * tmux Err z3bra.org 70 i * bar Err z3bra.org 70 i Err z3bra.org 70 i-#### dzen Err z3bra.org 70 i+### dzen Err z3bra.org 70 i Err z3bra.org 70 i From the official website: Err z3bra.org 70 i Err z3bra.org 70 it@@ -58,7 +58,7 @@ with dzen, just check [earsplit's dekstop](http://i.imgur.com/bZegioR.gif), but Err z3bra.org 70 i I discovered a new tool that is basically dzen simplified, and written on top of Err z3bra.org 70 i XCB (see the fourth alternative: bar). Err z3bra.org 70 i Err z3bra.org 70 i-#### conky Err z3bra.org 70 i+### conky Err z3bra.org 70 i Err z3bra.org 70 i Here comes the king of HUDs, ladies and gentlemen, please put a knee to the Err z3bra.org 70 i ground! Err z3bra.org 70 it@@ -91,7 +91,7 @@ useful to build informations lines to feed a bar with. To have a quick idea of Err z3bra.org 70 i how this works, check this Err z3bra.org 70 i [nice forum post](http://nixers.net/showthread.php?tid=117) by jmbi. Err z3bra.org 70 i Err z3bra.org 70 i-#### tmux statusbar Err z3bra.org 70 i+### tmux statusbar Err z3bra.org 70 i Err z3bra.org 70 i This one is a bit out of competition, but worth mentionning. TMux stands for Err z3bra.org 70 i terminal multiplexer. Short story, you can have multiple terminal within a Err z3bra.org 70 it@@ -108,7 +108,7 @@ display some infos: Err z3bra.org 70 i Phyrne wrote a [nice article](http://calummacrae.blogspot.co.uk/2012/12/dropping-status-bars-for-tmux-as-im.html) Err z3bra.org 70 i about it. Just read it. Err z3bra.org 70 i Err z3bra.org 70 i-#### bar Err z3bra.org 70 i+### bar Err z3bra.org 70 i Err z3bra.org 70 i My last and prefered option, the bar made by LemonBoy ! Err z3bra.org 70 i This small piece of software is a stripped down clone of dzen, written on top Err z3bra.org 70 it@@ -157,14 +157,14 @@ expressions](https://en.wikipedia.org/wiki/Regular_expression), because we are Err z3bra.org 70 i going to use them _a lot_ with `sed`. Err z3bra.org 70 i So, here we go! Err z3bra.org 70 i Err z3bra.org 70 i-#### current date / time Err z3bra.org 70 i+### current date / time Err z3bra.org 70 i Err z3bra.org 70 i There is nothing hard with it. The `date` utility has a parameter to format its Err z3bra.org 70 i output. So we'll just use that: Err z3bra.org 70 i Err z3bra.org 70 i date '+%Y-%m-%d %H:%M' # print current date and time: yyyy-mm-dd HH:MM Err z3bra.org 70 i Err z3bra.org 70 i-#### battery level Err z3bra.org 70 i+### battery level Err z3bra.org 70 i Err z3bra.org 70 i There is this tool, `acpi` that can be used to output some infos on your system Err z3bra.org 70 i power. But that's just not fun! We'll be messing with the `/sys` directory Err z3bra.org 70 it@@ -190,7 +190,7 @@ on the battery state. To get the info: Err z3bra.org 70 i # print out the content (forced myself to use `sed` :P) Err z3bra.org 70 i sed -n p $BATC Err z3bra.org 70 i Err z3bra.org 70 i-#### sound level Err z3bra.org 70 i+### sound level Err z3bra.org 70 i Err z3bra.org 70 i This one is always a pain.. I will assume that you use ALSA as your sound Err z3bra.org 70 i system (because I have no idea how OSS or PulseAudio works). Err z3bra.org 70 it@@ -218,7 +218,7 @@ That will make things easier. Err z3bra.org 70 i # "Front Left" and Front Right" (because laptop speakers I guess) Err z3bra.org 70 i amixer get Master | sed -n 's/^.*\[\([0-9]\+\)%.*$/\1/p'| uniq Err z3bra.org 70 i Err z3bra.org 70 i-#### CPU load Err z3bra.org 70 i+### CPU load Err z3bra.org 70 i Err z3bra.org 70 i There are many way to get the current CPU load. `iostat` is one of them, and as Err z3bra.org 70 i it's easy to parse its output, i'll go with a trickier approach, using `ps` and Err z3bra.org 70 it@@ -260,7 +260,7 @@ with `grep` and `sed`. See the comparison [here](http://i.imgur.com/Aefbl8U.png) Err z3bra.org 70 i Err z3bra.org 70 i ps -eo pcpu | awk 'BEGIN {sum=0.0f} {sum+=$1} END {print sum}' Err z3bra.org 70 i Err z3bra.org 70 i-#### RAM used Err z3bra.org 70 i+### RAM used Err z3bra.org 70 i Err z3bra.org 70 i To display RAM usage (percentage of RAM actually by the system), we will use Err z3bra.org 70 i another place of the filesystem: `/proc`. This will be easier to find memory Err z3bra.org 70 it@@ -304,7 +304,7 @@ know exactly how much the applications are taking: Err z3bra.org 70 i # then, calcultate the percentage of memory used Err z3bra.org 70 i bc <<< "100($t -$f -$c -$b) / $t" Err z3bra.org 70 i Err z3bra.org 70 i-#### network connection state Err z3bra.org 70 i+### network connection state Err z3bra.org 70 i Err z3bra.org 70 i Mmh, this one can be tricky! Ther are two cases here: Err z3bra.org 70 i Err z3bra.org 70 it@@ -355,7 +355,7 @@ would do the trick: Err z3bra.org 70 i ping -c 1 8.8.8.8 >/dev/null 2>&1 && echo "connected" || echo "disconnected" Err z3bra.org 70 i Err z3bra.org 70 i Err z3bra.org 70 i-#### window manager groups Err z3bra.org 70 i+### window manager groups Err z3bra.org 70 i Err z3bra.org 70 i Aaah, the information that has the most way to be fetched! The problem with Err z3bra.org 70 i this, is that every window manager provide a different way to fetch the number Err z3bra.org 70 it@@ -415,7 +415,7 @@ variable with the 'group line', and then output it. It goes like this: Err z3bra.org 70 i # don't forget to print that line! Err z3bra.org 70 i echo $line Err z3bra.org 70 i Err z3bra.org 70 i-#### mpd's current playing song Err z3bra.org 70 i+### mpd's current playing song Err z3bra.org 70 i Err z3bra.org 70 i After all that we did alredy, printing the current playing should bequite easy Err z3bra.org 70 i as: Err z3bra.org 70 it@@ -439,7 +439,7 @@ So now, our output has just become: Err z3bra.org 70 i A small drawback with this approach: you can't put other infos in the same bar Err z3bra.org 70 i as a `skroll`ing output, because it uses a `\n` or a `\r` to print the output. Err z3bra.org 70 i Err z3bra.org 70 i-#### wrap it all ! Err z3bra.org 70 i+### wrap it all ! Err z3bra.org 70 i Err z3bra.org 70 i Now that we have a whole bunch of informations, it's time to put them all in a Err z3bra.org 70 i script, that we will pipe later to our HUD. Err z3bra.org 70 1diff --git a/2014/04/pop-it-up.txt b/2014/04/pop-it-up.txt /scm/monochromatic/file/2014/04/pop-it-up.txt.gph z3bra.org 70 it@@ -8,7 +8,7 @@ That's **cute**. How about bringing it to the next level? Err z3bra.org 70 i Let's go through another way to display informations from your lovely Err z3bra.org 70 i computer: popup notifications ! Err z3bra.org 70 i Err z3bra.org 70 i-### What's that ? Err z3bra.org 70 i+## What's that ? Err z3bra.org 70 i Popup notifications (I'll call them "popup" from now) are a tiny window that Err z3bra.org 70 i will appear on your screen with an informative text on it, and then disappear Err z3bra.org 70 i after a certain amount of time, or a user interaction. Err z3bra.org 70 it@@ -16,7 +16,7 @@ after a certain amount of time, or a user interaction. Err z3bra.org 70 i The important part is that the popups show up when an event occur, not upon user Err z3bra.org 70 i request (well, if the user request a popup, it can still appear, obviously). Err z3bra.org 70 i Err z3bra.org 70 i-### Usefulness Err z3bra.org 70 i+## Usefulness Err z3bra.org 70 i Well, most of the popup we have to deal with are annoying most of the time Err z3bra.org 70 i (except those that notify me that I won an IPad by being the visitor number Err z3bra.org 70 i 1 000 000, it's nice to tell me!). But if you choose wisely the content and the Err z3bra.org 70 it@@ -38,7 +38,7 @@ Moreover, you can use popups to notify you when a task running in the Err z3bra.org 70 i background has finished, or that a torrent has finished downloading, or Err z3bra.org 70 i whatever weird usage you can find! Err z3bra.org 70 i Err z3bra.org 70 i-### Existing software Err z3bra.org 70 i+## Existing software Err z3bra.org 70 i There are in fact, many notification systems that you can use: Err z3bra.org 70 i [libnotify](http://library.gnome.org/devel/notification-spec/), Err z3bra.org 70 i [notify-osd](https://launchpad.net/notify-osd), Err z3bra.org 70 it@@ -53,7 +53,7 @@ I love this one, because it's really light and simple to use. Moreover, I Err z3bra.org 70 i contributed to it to complete the geometry setting. You can now create a window Err z3bra.org 70 i of any size and place it wherever you want! Err z3bra.org 70 i Err z3bra.org 70 i-### Popup itself Err z3bra.org 70 i+## Popup itself Err z3bra.org 70 i This part is the most simple in fact. `bar` will do anything for us. Err z3bra.org 70 i Err z3bra.org 70 i All you have to do is to create a script that will take a serie of argument and Err z3bra.org 70 it@@ -108,7 +108,7 @@ You could then just pop notifications using: Err z3bra.org 70 i popup $(~/bin/volume) Err z3bra.org 70 i Err z3bra.org 70 i Err z3bra.org 70 i-### Automate the popups Err z3bra.org 70 i+## Automate the popups Err z3bra.org 70 i The best thing about popups is that they spawn when it's relevent, eg: when a Err z3bra.org 70 i new mail arrived, volume is changing or battery is low. Err z3bra.org 70 i Err z3bra.org 70 it@@ -118,7 +118,7 @@ To catch those event there are many way. We will run through three of them: Err z3bra.org 70 i * inotify event Err z3bra.org 70 i * key presses Err z3bra.org 70 i Err z3bra.org 70 i-#### infinite loop Err z3bra.org 70 i+### infinite loop Err z3bra.org 70 i This one is easy. We just check whatever we want at regular interval, and Err z3bra.org 70 i depending on some conditions, we raise a notification. That's what I use for my Err z3bra.org 70 i battery: Err z3bra.org 70 it@@ -144,7 +144,7 @@ running low. You can put it in your `.xinitrc` or as a cron job: Err z3bra.org 70 i */2 * * * * DISPLAY=0 ~/bin/battery_check Err z3bra.org 70 i Err z3bra.org 70 i Err z3bra.org 70 i-#### inotify event Err z3bra.org 70 i+### inotify event Err z3bra.org 70 i [Inotify (inode notify) is a Linux kernel subsystem that acts to extend Err z3bra.org 70 i filesystems to notice changes to the Err z3bra.org 70 i filesystem](https://en.wikipedia.org/wiki/Inotify). That strange sentence means Err z3bra.org 70 it@@ -176,7 +176,7 @@ at each new mail. It's done like this in my `~/.xinitrc` Err z3bra.org 70 i And there we go. each time `fdm` will fetch mails to your inbox, a wild popup Err z3bra.org 70 i will appear! Err z3bra.org 70 i Err z3bra.org 70 i-#### key presses Err z3bra.org 70 i+### key presses Err z3bra.org 70 i The last type of popup I use is those that occur when a key is pressed. The best Err z3bra.org 70 i exemple for that are the volume keys. I don't know how you handle this, but Err z3bra.org 70 i personnally, I use `xbindkeys` for that. It's a software that let the user map Err z3bra.org 70 it@@ -244,7 +244,7 @@ Back to the topic. Here is my `.xbindkeysrc` Err z3bra.org 70 i There, simple. The popup command is bound to my volume keys, so each time I Err z3bra.org 70 i press them, the notification comes up! It's quite simple. Err z3bra.org 70 i Err z3bra.org 70 i-### Improvements Err z3bra.org 70 i+## Improvements Err z3bra.org 70 i This system is not perfect at all, because popup overlap, the width and timing Err z3bra.org 70 i is fixed, ... But it's also a bare simple system, easily hackable. You could use Err z3bra.org 70 i it to build a more complex system on top of that. For example, you can easily Err z3bra.org 70 it@@ -298,7 +298,7 @@ Here are a few other ideas I had (but did not bother trying :P): Err z3bra.org 70 i * ... Err z3bra.org 70 i * Be creative, as usual! Err z3bra.org 70 i Err z3bra.org 70 i-### Good bye Err z3bra.org 70 i+## Good bye Err z3bra.org 70 i I hope this will be helpful to someone. It's not meant to make you throw your Err z3bra.org 70 i status bar away, or switch from libnotify and such. It's just a bare simple Err z3bra.org 70 i alternative to those, as I like to have :) Err z3bra.org 70 1diff --git a/2014/05/grok-that-workflow.txt b/2014/05/grok-that-workflow.txt /scm/monochromatic/file/2014/05/grok-that-workflow.txt.gph z3bra.org 70 it@@ -2,7 +2,7 @@ Err z3bra.org 70 i Err z3bra.org 70 i 30 May, 2014 Err z3bra.org 70 i Err z3bra.org 70 i-### Introduction Err z3bra.org 70 i+## Introduction Err z3bra.org 70 i > A workflow consists of an orchestrated and repeatable pattern of business Err z3bra.org 70 i > activity enabled by the systematic organization of resources into processes Err z3bra.org 70 i > that transform materials, provide services, or process information. It can be Err z3bra.org 70 it@@ -21,7 +21,7 @@ links to software I use, piece of relevant config files, and animated images to Err z3bra.org 70 i illustrate some points. Err z3bra.org 70 i Now, shall we begin ? Err z3bra.org 70 i Err z3bra.org 70 i-### Summary Err z3bra.org 70 i+## Summary Err z3bra.org 70 i Err z3bra.org 70 i * [GNU/Linux distribution](#os) Err z3bra.org 70 i * [Managing windows](#wm) Err z3bra.org 70 it@@ -31,7 +31,7 @@ Now, shall we begin ? Err z3bra.org 70 i * [FAQ](#faq) Err z3bra.org 70 i Err z3bra.org 70 i

GNU/Linux distribution

Err z3bra.org 70 i-#### crux Err z3bra.org 70 i+### crux Err z3bra.org 70 i I'm a fairly new [crux](http://crux.nu) user. But I must say that I love it Err z3bra.org 70 i already.. Crux is the kind of distro you build with your bare hands in a whole Err z3bra.org 70 i week, while other would just it the "*install*" button, and watch the magic Err z3bra.org 70 it@@ -69,7 +69,7 @@ special `config.h` file. Err z3bra.org 70 i Err z3bra.org 70 i Here is how my keybinds are organised: Err z3bra.org 70 i Err z3bra.org 70 i-#### Managing windows Err z3bra.org 70 i+### Managing windows Err z3bra.org 70 i Err z3bra.org 70 i
Err z3bra.org 70 i Err z3bra.org 70 it@@ -92,7 +92,7 @@ windows](http://pub.z3bra.org/monochromatic/img/thumb/2014-05-27-windows.jpg)](h Err z3bra.org 70 i more features, but that's the one I use the most (other are just combination of Err z3bra.org 70 i those)* Err z3bra.org 70 i Err z3bra.org 70 i-#### Managing groups Err z3bra.org 70 i+### Managing groups Err z3bra.org 70 i Err z3bra.org 70 i Before using 2bwm, I was using [cwm](http://monkey.org/~marius/pages/?page=cwm), Err z3bra.org 70 i which is itself a rewrite of [evilwm](http://www.6809.org.uk/evilwm/). `Cwm` has Err z3bra.org 70 it@@ -127,7 +127,7 @@ The shell is a really powerfull toy. Not only because it looks badass, but Err z3bra.org 70 i because you can automate boring tasks by writing shell scripts. Here are my Err z3bra.org 70 i prefered: Err z3bra.org 70 i Err z3bra.org 70 i-#### detach applications Err z3bra.org 70 i+### detach applications Err z3bra.org 70 i Sometimes, I need to start an application, and then detach it from my current Err z3bra.org 70 i terminal (to reattach it somewhere, or later). To solve this, `tmux` or `screen` Err z3bra.org 70 i could cut it, but I decided to use [dtach](http://dtach.sourceforge.net/) Err z3bra.org 70 it@@ -152,7 +152,7 @@ let me create and attach sessions easily: Err z3bra.org 70 i # attach the "irc" session Err z3bra.org 70 i ─── dm irc Err z3bra.org 70 i Err z3bra.org 70 i-#### compile softwares Err z3bra.org 70 i+### compile softwares Err z3bra.org 70 i This one might be specific to me, but when I'm programming, I often encounter Err z3bra.org 70 i the following issue: Err z3bra.org 70 i Err z3bra.org 70 it@@ -330,7 +330,7 @@ Talking about this, Reihar wrote a nice Err z3bra.org 70 i about converting document using libreoffice. I use it from time to time to Err z3bra.org 70 i convert spreadsheets to CSV files, it's handy! Err z3bra.org 70 i Err z3bra.org 70 i-### Bonus Err z3bra.org 70 i+## Bonus Err z3bra.org 70 i Err z3bra.org 70 i And there ends that narcissic article. I hope you found it interesting, even if Err z3bra.org 70 i everything I present here is totally specific to me. As a bonus, to thank you Err z3bra.org 70 1diff --git a/2014/07/name-that-domain.txt b/2014/07/name-that-domain.txt /scm/monochromatic/file/2014/07/name-that-domain.txt.gph z3bra.org 70 it@@ -13,7 +13,7 @@ explaining the step to get this working (If you're aware of one, please send me Err z3bra.org 70 i a link, I'll be glad to share it). So here is a full tutorial ! Err z3bra.org 70 i Err z3bra.org 70 i Err z3bra.org 70 i-### TL;DR Err z3bra.org 70 i+## TL;DR Err z3bra.org 70 i Err z3bra.org 70 i 1. create tinydns zone file Err z3bra.org 70 i 2. make `tinydns` listen on 127.0.0.1 Err z3bra.org 70 it@@ -23,7 +23,7 @@ a link, I'll be glad to share it). So here is a full tutorial ! Err z3bra.org 70 i 6. Enjoy. Err z3bra.org 70 i Err z3bra.org 70 i Err z3bra.org 70 i-### The whole installation Err z3bra.org 70 i+## The whole installation Err z3bra.org 70 i Err z3bra.org 70 i First of all, I had to find out what were my needs. It seems stupid to say so, Err z3bra.org 70 i but I have the bad habit to dive into configuration, barely knowing what I'm Err z3bra.org 70 it@@ -49,7 +49,7 @@ Here's how I see it: Err z3bra.org 70 i Let's set this up then! Err z3bra.org 70 i Err z3bra.org 70 i Err z3bra.org 70 i-### tinydns Err z3bra.org 70 i+## tinydns Err z3bra.org 70 i Err z3bra.org 70 i `tinydns` is fairly simple to use, and even more simple to configure. But it's Err z3bra.org 70 i nothing you've ever seen before. You can configure tinydns from a single file: Err z3bra.org 70 it@@ -97,7 +97,7 @@ To check if it's correctly running, you can use `nslookup`. Err z3bra.org 70 i It works ! Don't use tinydns as a resolv.conf entry though. Because it's Err z3bra.org 70 i authoritative and ONLY serves our domain.lan zone, it would not be efficient... Err z3bra.org 70 i Err z3bra.org 70 i-### dnscache Err z3bra.org 70 i+## dnscache Err z3bra.org 70 i Err z3bra.org 70 i No DNS server can answer all the queries, so in most case, if the DNS can't Err z3bra.org 70 i provide an answer, it will just forward the query to another depending on some Err z3bra.org 70 1diff --git a/2014/08/im-back-up.txt b/2014/08/im-back-up.txt /scm/monochromatic/file/2014/08/im-back-up.txt.gph z3bra.org 70 it@@ -7,7 +7,7 @@ In the past few days, my whole server (and thus, my website) was down. Err z3bra.org 70 i Everything is now back to it's normal state, so I'll give you a quick Err z3bra.org 70 i explanation about what happened. Err z3bra.org 70 i Err z3bra.org 70 i-### TL;DR Err z3bra.org 70 i+## TL;DR Err z3bra.org 70 i Quickly, here's what happenned (the whole process took approximately 2 weeks): Err z3bra.org 70 i Err z3bra.org 70 i 1. Changed distribution Err z3bra.org 70 it@@ -17,12 +17,12 @@ Quickly, here's what happenned (the whole process took approximately 2 weeks): Err z3bra.org 70 i 5. Fallback to old hardware Err z3bra.org 70 i 6. Reinstalled distribution Err z3bra.org 70 i Err z3bra.org 70 i-### I'm sorry Err z3bra.org 70 i+## I'm sorry Err z3bra.org 70 i As you can imagine, I did not plan such a long downtime. It was, at first, only Err z3bra.org 70 i a matter of 2 or 3 days, but ended up being almost 2 weeks. So first of all, Err z3bra.org 70 i please accept my apologizes. Err z3bra.org 70 i Err z3bra.org 70 i-### The situation Err z3bra.org 70 i+## The situation Err z3bra.org 70 i Now, let me tell you what happened. Some relatives gave me an old PC they were Err z3bra.org 70 i not using anymore. It had a dual core and 2GB of RAM !! Err z3bra.org 70 i Err z3bra.org 70 it@@ -34,7 +34,7 @@ powered by musl libc and busybox. Err z3bra.org 70 i The install went fine and I brought the server online again. And then, it Err z3bra.org 70 i began... Err z3bra.org 70 i Err z3bra.org 70 i-### The problem Err z3bra.org 70 i+## The problem Err z3bra.org 70 i ─── ssh z3bra.org Err z3bra.org 70 i Err z3bra.org 70 i __ __ Err z3bra.org 70 it@@ -69,7 +69,7 @@ or the whole mother board. Err z3bra.org 70 i I decided to boot the drive from my old server, and I did not have any problem Err z3bra.org 70 i from it. Looks like I could only rely on my good ol' hardware. Err z3bra.org 70 i Err z3bra.org 70 i-### The solution Err z3bra.org 70 i+## The solution Err z3bra.org 70 i Err z3bra.org 70 i I finally decided to buy a new hard drive, and to run it from my old Err z3bra.org 70 i hardware. The motherboard of the "*new*" one was on the end of its life, Err z3bra.org 70 1diff --git a/2014/08/shred-configh.txt b/2014/08/shred-configh.txt /scm/monochromatic/file/2014/08/shred-configh.txt.gph z3bra.org 70 it@@ -10,7 +10,7 @@ The problem is that configuring this kind of software can be really frustrating, Err z3bra.org 70 i so I'll show you a way to make these a bit more bearable. Err z3bra.org 70 i Err z3bra.org 70 i Err z3bra.org 70 i-### Some background Err z3bra.org 70 i+## Some background Err z3bra.org 70 i Err z3bra.org 70 i Since the beginning, many programs running on Linux have been written in C. C is Err z3bra.org 70 i a low-level programming language, which means that the machine can *almost* Err z3bra.org 70 it@@ -31,7 +31,7 @@ But in some special cases, such a file can't be used for configuration. the Err z3bra.org 70 i reason behind that is: speed, simplicity, stability and reliability. Err z3bra.org 70 i Err z3bra.org 70 i Err z3bra.org 70 i-### How does it work ? Err z3bra.org 70 i+## How does it work ? Err z3bra.org 70 i Err z3bra.org 70 i In order to make things easier for the user, the developpers (usually) create a Err z3bra.org 70 i file named `config.h` where the configuration happens. You don't need Err z3bra.org 70 it@@ -68,7 +68,7 @@ package, recompile the package for you... *sigh* It's **really** boring ! Err z3bra.org 70 i Err z3bra.org 70 i Err z3bra.org 70 i Err z3bra.org 70 i-### Deal with it Err z3bra.org 70 i+## Deal with it Err z3bra.org 70 i Err z3bra.org 70 i First of all, I had to find an easy way to recompile and reinstall the software Err z3bra.org 70 i on my computer. I use source-based distributions on my computers (Archlinux, Err z3bra.org 70 1diff --git a/2014/09/backup-someone.txt b/2014/09/backup-someone.txt /scm/monochromatic/file/2014/09/backup-someone.txt.gph z3bra.org 70 it@@ -21,7 +21,7 @@ backup your data. All you need is the following: Err z3bra.org 70 i * A compressor (gzip, bzip2, xz, ...) Err z3bra.org 70 i * Some shell glue Err z3bra.org 70 i Err z3bra.org 70 i-### Preparation Err z3bra.org 70 i+## Preparation Err z3bra.org 70 i Err z3bra.org 70 i First, you need to figure out what you want to backup: configs ? multimedia ? Err z3bra.org 70 i code ? For the purpose of this article, Let's say I want to backup all my Err z3bra.org 70 it@@ -40,7 +40,7 @@ will create a user dedicated to the backup process: Err z3bra.org 70 i Err z3bra.org 70 i Now the drive is ready to accept backups. Let's see how to create them. Err z3bra.org 70 i Err z3bra.org 70 i-### Backing up Err z3bra.org 70 i+## Backing up Err z3bra.org 70 i Err z3bra.org 70 i What's a backup already ? Err z3bra.org 70 i Err z3bra.org 70 it@@ -60,7 +60,7 @@ So what's the plan ? First, we'll create an archive containing all the files we Err z3bra.org 70 i want. Then, compress the said archive to gain some space, and finally, manage Err z3bra.org 70 i those backups to keep multiple copies. Err z3bra.org 70 i Err z3bra.org 70 i-#### Archiving Err z3bra.org 70 i+### Archiving Err z3bra.org 70 i Err z3bra.org 70 i For this task, I chose `cpio`, which takes filenames on stdin, and creates an Err z3bra.org 70 i archive to stdout. The fact it outputs to stdout give the ability to compress Err z3bra.org 70 it@@ -74,7 +74,7 @@ can check your pipe buffer with `ulimit -a`. Anyways: Err z3bra.org 70 i And the archive is created and compressed ! Pretty easy isn't it ? Let's see how Err z3bra.org 70 i to manage them now. Err z3bra.org 70 i Err z3bra.org 70 i-#### Managing Err z3bra.org 70 i+### Managing Err z3bra.org 70 i Err z3bra.org 70 i Be creative for this part ! you can either use `$(date +%Y-%m-%d)` as a name for Err z3bra.org 70 i the backup, write a crawler to change names based on their timestamp, or maybe Err z3bra.org 70 it@@ -197,7 +197,7 @@ start: Err z3bra.org 70 i Err z3bra.org 70 i Should be enough for now. But here comes the most important part... Err z3bra.org 70 i Err z3bra.org 70 i-### Restoring Err z3bra.org 70 i+## Restoring Err z3bra.org 70 i Err z3bra.org 70 i This is the most important one, but not the trickiest, don't worry. We're on Err z3bra.org 70 i friday, and your friends are arriving in a few minutes to see the photos from Err z3bra.org 70 1diff --git a/2014/11/avoid-workspaces.txt b/2014/11/avoid-workspaces.txt /scm/monochromatic/file/2014/11/avoid-workspaces.txt.gph z3bra.org 70 it@@ -4,7 +4,7 @@ Err z3bra.org 70 i Err z3bra.org 70 i > Virtual desktops considered harmful Err z3bra.org 70 i Err z3bra.org 70 i-### Virtual desktops Err z3bra.org 70 i+## Virtual desktops Err z3bra.org 70 i Err z3bra.org 70 i If you're used to the Linux desktop, you might already know what virtual Err z3bra.org 70 i desktops (usally called "workspaces" too) are. If not, then Err z3bra.org 70 it@@ -28,7 +28,7 @@ same time without rendering the desktop unusable. Err z3bra.org 70 i Err z3bra.org 70 i But this behavior do not give an answer to the main problem! Err z3bra.org 70 i Err z3bra.org 70 i-### Nothing but a hack Err z3bra.org 70 i+## Nothing but a hack Err z3bra.org 70 i Err z3bra.org 70 i Using virtual desktop because you lack space is like scooping water out of a Err z3bra.org 70 i boat instead of putting your finger in the hole. Sure it does the work, but it'll Err z3bra.org 70 it@@ -94,7 +94,7 @@ switch from one desktop to another, send windows to specific desktop and then Err z3bra.org 70 i sending them back. What's the point of having a powerfull operation system if it Err z3bra.org 70 i require so much efforts to run it ? Err z3bra.org 70 i Err z3bra.org 70 i-### A better window management Err z3bra.org 70 i+## A better window management Err z3bra.org 70 i Err z3bra.org 70 i I arrange my windows in groups. Then I send them back and forth whenever I Err z3bra.org 70 i need them Err z3bra.org 70 it@@ -125,7 +125,7 @@ about doing them when they're relevant**. Monitoring your system and testing a Err z3bra.org 70 i program are two different tasks. But those two might be linked at some point, Err z3bra.org 70 i and it should not be painfull to work on both of them at the same time. Err z3bra.org 70 i Err z3bra.org 70 i-### Final word Err z3bra.org 70 i+## Final word Err z3bra.org 70 i Err z3bra.org 70 i Maybe I convinced you, maybe not. Either way, it should not stop you from trying Err z3bra.org 70 i it, at least once. The groups I'm speaking about are fully implemented in the Err z3bra.org 70 1diff --git a/2014/12/so-tox-me-maybe.txt b/2014/12/so-tox-me-maybe.txt /scm/monochromatic/file/2014/12/so-tox-me-maybe.txt.gph z3bra.org 70 it@@ -12,7 +12,7 @@ add friends on it, and chat with them around the world. The idea behind it is Err z3bra.org 70 i quite nice. Err z3bra.org 70 i But as for many softwares, the implementation sucks. Err z3bra.org 70 i Err z3bra.org 70 i-### The itch Err z3bra.org 70 i+## The itch Err z3bra.org 70 i Err z3bra.org 70 i Skype relies on a centralised platform, which means that ALL your Err z3bra.org 70 i conversations go through a few servers around the world, and get re-routed to Err z3bra.org 70 it@@ -25,7 +25,7 @@ sent directly to your friend. Err z3bra.org 70 i There is an advantage though: it makes your conversations easier to [record by other Err z3bra.org 70 i entities](http://www.zdnet.com/article/fbi-nsa-said-to-be-secretly-mining-data-from-nine-u-s-tech-giants/). Err z3bra.org 70 i Err z3bra.org 70 i-### The antidot Err z3bra.org 70 i+## The antidot Err z3bra.org 70 i Err z3bra.org 70 i I'm not putting forward the griefs I have against skype without providing a Err z3bra.org 70 i solution. Some people concerned about freedom and privacy decided to provide a Err z3bra.org 70 it@@ -50,7 +50,7 @@ client of choice. Err z3bra.org 70 i friend list is on the right, and the chat happens on the right pane. Fairly easy Err z3bra.org 70 i :)* Err z3bra.org 70 i Err z3bra.org 70 i-### The Unix way Err z3bra.org 70 i+## The Unix way Err z3bra.org 70 i Err z3bra.org 70 i Now that you know what tox is, what about trying a client that will turn your Err z3bra.org 70 i whole system into an interface to the tox library ? Err z3bra.org 70 1diff --git a/2015/01/you-are-the-wm.txt b/2015/01/you-are-the-wm.txt /scm/monochromatic/file/2015/01/you-are-the-wm.txt.gph z3bra.org 70 it@@ -11,7 +11,7 @@ bottom left hand-corner of your screen, unable to switch between them. Err z3bra.org 70 i Err z3bra.org 70 i But guess what... Err z3bra.org 70 i Err z3bra.org 70 i-### You don't need it ! Err z3bra.org 70 i+## You don't need it ! Err z3bra.org 70 i Err z3bra.org 70 i It's a fact. A Err z3bra.org 70 i [study](http://www.nytimes.com/2005/01/11/health/11anim.html) determined that Err z3bra.org 70 it@@ -36,7 +36,7 @@ small tools to perform all the task a window manager is supposed to do. Err z3bra.org 70 i Err z3bra.org 70 i We ended up with [wmutils](http://github.com/wmutils/core). Err z3bra.org 70 i Err z3bra.org 70 i-### Coreutils, for Xorg Err z3bra.org 70 i+## Coreutils, for Xorg Err z3bra.org 70 i Err z3bra.org 70 i `wmutils` stands for "window **manipulation** utilities". Err z3bra.org 70 i Err z3bra.org 70 it@@ -121,7 +121,7 @@ I use a few scripts of my own: Err z3bra.org 70 i + `corner` - move windows to screen's corner Err z3bra.org 70 i + `fullscreen` - put a window in fullscreen mode Err z3bra.org 70 i Err z3bra.org 70 i-### vroum Err z3bra.org 70 i+## vroum Err z3bra.org 70 i Err z3bra.org 70 i It can take 3 arguments: "next, prev, $wid". "next" will focus the next Err z3bra.org 70 i window on the stack, previous will focus the previously focused window, and Err z3bra.org 70 it@@ -133,7 +133,7 @@ active window. I use this script to cycle between them: Err z3bra.org 70 i alt {, + shift} + tab Err z3bra.org 70 i vroum {next, prev} Err z3bra.org 70 i Err z3bra.org 70 i-### groaw Err z3bra.org 70 i+## groaw Err z3bra.org 70 i Err z3bra.org 70 i This is my "group" manager (think of it as workspaces on steroid). By Err z3bra.org 70 i default, new windows are not assigned any groups. Without much explaning how Err z3bra.org 70 it@@ -158,7 +158,7 @@ This result in the following entries: Err z3bra.org 70 i super + Backspace Err z3bra.org 70 i groaw -d all Err z3bra.org 70 i Err z3bra.org 70 i-### focus Err z3bra.org 70 i+## focus Err z3bra.org 70 i Err z3bra.org 70 i A script I'm really proud of! It focus windows besed on their cardinal Err z3bra.org 70 i positions. It takes exactly 4 different arguments: Err z3bra.org 70 it@@ -178,7 +178,7 @@ edge of the window) It's bound like so Err z3bra.org 70 i alt + {left,down,up,right} Err z3bra.org 70 i focus {west, south, north, east} $(pfw) Err z3bra.org 70 i Err z3bra.org 70 i-### corner Err z3bra.org 70 i+## corner Err z3bra.org 70 i Err z3bra.org 70 i There's nothing special about it. It put the window in the corner passed as Err z3bra.org 70 i argument (Top-Left, Top-Right, Bottom-Left, Bottom-Right, MiDdle) Err z3bra.org 70 it@@ -187,7 +187,7 @@ argument (Top-Left, Top-Right, Bottom-Left, Bottom-Right, MiDdle) Err z3bra.org 70 i super + {y,u,b,n,g} Err z3bra.org 70 i corner {tl, tr, bl, br, md} $(pfw) Err z3bra.org 70 i Err z3bra.org 70 i-### fullscreen Err z3bra.org 70 i+## fullscreen Err z3bra.org 70 i Err z3bra.org 70 i Set a window in fullscreen mode (change its size to the size of the monitor, and Err z3bra.org 70 i remove borders. The previous position/size of the window is saved to a file, so Err z3bra.org 70 1diff --git a/2015/02/do-you-gopher.txt b/2015/02/do-you-gopher.txt /scm/monochromatic/file/2015/02/do-you-gopher.txt.gph z3bra.org 70 it@@ -30,7 +30,7 @@ How does it looks? Err z3bra.org 70 i Err z3bra.org 70 i We'll come back on this later. First, how does it works? Err z3bra.org 70 i Err z3bra.org 70 i-### gopher indexes Err z3bra.org 70 i+## gopher indexes Err z3bra.org 70 i Err z3bra.org 70 i Gopher is a text based protocol, where each line either points to an index Err z3bra.org 70 i (directory), or an item (items being files). Err z3bra.org 70 it@@ -70,7 +70,7 @@ Pretty simple. You could however create a more difficult architecture by making Err z3bra.org 70 i `.gph` point to other files not in their directories and such.. but that's not Err z3bra.org 70 i the point here. Err z3bra.org 70 i Err z3bra.org 70 i-### the protocol Err z3bra.org 70 i+## the protocol Err z3bra.org 70 i Err z3bra.org 70 i To put it simply, each gopher "line" is composed of 5 distinct parts: Err z3bra.org 70 i Err z3bra.org 70 it@@ -88,7 +88,7 @@ A gopher index is then just a list of links, each one pointing to a file which Err z3bra.org 70 i can be anywhere accross the world. And you don't need any unreadable markup Err z3bra.org 70 i language for this! Err z3bra.org 70 i Err z3bra.org 70 i-### file types Err z3bra.org 70 i+## file types Err z3bra.org 70 i Err z3bra.org 70 i The gopher protocol implements a rudimentary filetype thingy, by putting a Err z3bra.org 70 i character at the beginning of each line, indicating what the "item" points to. Err z3bra.org 70 it@@ -108,7 +108,7 @@ only used to display text: Err z3bra.org 70 i Icat3.png /img/cats/3.png domain.tld port Err z3bra.org 70 i Icat4.png /img/cats/4.png domain.tld port Err z3bra.org 70 i Err z3bra.org 70 i-### gopher holes Err z3bra.org 70 i+## gopher holes Err z3bra.org 70 i Err z3bra.org 70 i Gopher spaces are commonly named "holes". All you need now is a gopher to crawl Err z3bra.org 70 i this huge gallery. Here are a few I recommend: Err z3bra.org 70 it@@ -118,7 +118,7 @@ this huge gallery. Here are a few I recommend: Err z3bra.org 70 i Err z3bra.org 70 i Or you could use an HTTP proxy : http://gopher.floodgap.com/gopher/ Err z3bra.org 70 i Err z3bra.org 70 i-### final thoughs Err z3bra.org 70 i+## final thoughs Err z3bra.org 70 i Err z3bra.org 70 i As you might have noticed (or not), I run my own gopher hole. I first wanted to Err z3bra.org 70 i move this whole blog over gopher, but finally decided to keep it as is (because Err z3bra.org 70 1diff --git a/2015/03/under-wendys-dress.txt b/2015/03/under-wendys-dress.txt /scm/monochromatic/file/2015/03/under-wendys-dress.txt.gph z3bra.org 70 it@@ -4,7 +4,7 @@ Err z3bra.org 70 i Err z3bra.org 70 i I've been meaning to write this post for a long time. Err z3bra.org 70 i Err z3bra.org 70 i-### who's that chick? Err z3bra.org 70 i+## who's that chick? Err z3bra.org 70 i Err z3bra.org 70 i [`wendy`](http://git.z3bra.org/wendy/log.html) is an inotify based directory and Err z3bra.org 70 i file watch. It is by far the project I'm the most proud of. Err z3bra.org 70 it@@ -30,7 +30,7 @@ Now that it was working, I finally decided to make it more and more general, and Err z3bra.org 70 i it finally reached its current state: a _general purpose node watcher_. Err z3bra.org 70 i Err z3bra.org 70 i Err z3bra.org 70 i-### how does it work? Err z3bra.org 70 i+## how does it work? Err z3bra.org 70 i Err z3bra.org 70 i wendy -m 768 -f $HOME/directory -e popup "~/directory content updated" Err z3bra.org 70 i Err z3bra.org 70 it@@ -44,7 +44,7 @@ triggered. Err z3bra.org 70 i Wendy can also read filenames from stdin, to add to its awesomeness ;) Err z3bra.org 70 i Err z3bra.org 70 i Err z3bra.org 70 i-### play with her! Err z3bra.org 70 i+## play with her! Err z3bra.org 70 i Err z3bra.org 70 i Get a popup when you receive a new e-mail Err z3bra.org 70 i Err z3bra.org 70 it@@ -74,7 +74,7 @@ View manpages on the fly, as you write them Err z3bra.org 70 i the only limit.. Wait, there is no limit! Just let it go (I know you hate me for Err z3bra.org 70 i saying that...) Err z3bra.org 70 i Err z3bra.org 70 i-### contribution Err z3bra.org 70 i+## contribution Err z3bra.org 70 i Err z3bra.org 70 i If you find any bug, or weird behavior, or anything else, do not hesitate to Err z3bra.org 70 i drop me an [email](mailto:contact@z3bra.org), or submit it on the Err z3bra.org 70 1diff --git a/2015/08/cross-compiling-with-pcc-and-musl.txt b/2015/08/cross-compiling-with-pcc-and-musl.txt /scm/monochromatic/file/2015/08/cross-compiling-with-pcc-and-musl.txt.gph z3bra.org 70 it@@ -20,7 +20,7 @@ The process is (in theory) pretty simple: Err z3bra.org 70 i 5. build pcc/pcc-libs Err z3bra.org 70 i 6. (optionnal) add a pkg-config wrapper Err z3bra.org 70 i Err z3bra.org 70 i-### 1. grabbing sources Err z3bra.org 70 i+## 1. grabbing sources Err z3bra.org 70 i Err z3bra.org 70 i This part is pretty simple. You just need to choose which version of the Err z3bra.org 70 i software you want to use. Here is my list at the time of writing: Err z3bra.org 70 it@@ -39,7 +39,7 @@ https://www.kernel.orghttp://pub.z3bra.org/monochromatic/linux/kernel/v4.x Err z3bra.org 70 i Err z3bra.org 70 i Once you have all your tarballs, extract them somewhere. Err z3bra.org 70 i Err z3bra.org 70 i-### 2. patch everything Err z3bra.org 70 i+## 2. patch everything Err z3bra.org 70 i Err z3bra.org 70 i Everything doesn't need patching, but when you're playing with musl, you'll Err z3bra.org 70 i quickly realise how heavily softwares rely on the GNU libc. Err z3bra.org 70 it@@ -58,7 +58,7 @@ targets, and fix the default library pass of the compiler. Err z3bra.org 70 i + [pcc-libs-1.1.0-musl.diff](http://pub.z3bra.org/monochromatic/misc/pcc-libs-1.1.0-musl.diff) Err z3bra.org 70 i + [pcc-1.1.0-deflibdirs.diff](http://pub.z3bra.org/monochromatic/misc/pcc-1.1.0-deflibdirs.diff) Err z3bra.org 70 i Err z3bra.org 70 i-### 3,4,5,6. build everything Err z3bra.org 70 i+## 3,4,5,6. build everything Err z3bra.org 70 i Err z3bra.org 70 i For this part, just check the appropriate sections in the original script. You Err z3bra.org 70 i might want to enable shared libraries, or avoid compiling everything statically, Err z3bra.org 70 it@@ -69,7 +69,7 @@ compiler where are the PCC libraries. The `--with-incdir` and `--with-libdir` Err z3bra.org 70 i parameters are used to tell the compiler where to search for default libraries, Err z3bra.org 70 i so make sure you set them properly. Err z3bra.org 70 i Err z3bra.org 70 i-### Enjoy! Err z3bra.org 70 i+## Enjoy! Err z3bra.org 70 i Err z3bra.org 70 i You compiler should be ready to go! You can test it by running the following Err z3bra.org 70 i snippet: Err z3bra.org 70 1diff --git a/2016/01/make-your-own-distro.txt b/2016/01/make-your-own-distro.txt /scm/monochromatic/file/2016/01/make-your-own-distro.txt.gph z3bra.org 70 it@@ -18,7 +18,7 @@ I work on it. Err z3bra.org 70 i First off all, I have never built an [LFS](https://linuxfromscratch.org) system, Err z3bra.org 70 i and will probably never do (their documentation is great though). Err z3bra.org 70 i Err z3bra.org 70 i-### Scope Err z3bra.org 70 i+## Scope Err z3bra.org 70 i Err z3bra.org 70 i So here I am, sitting in front of my computer, deciding what this "new distro" Err z3bra.org 70 i should be. I've always liked the idea of [sta.li](http://sta.li), an similar Err z3bra.org 70 it@@ -36,7 +36,7 @@ I chose each point because I though it would be and interresting challenge, Err z3bra.org 70 i allowing me to learn more about linux distributions in the process. I'm not Err z3bra.org 70 i trying to argue that X is better than Y, or anyhing amongst those lines. Err z3bra.org 70 i Err z3bra.org 70 i-### Toolchains Err z3bra.org 70 i+## Toolchains Err z3bra.org 70 i Err z3bra.org 70 i There are, from my experience, three important toolchains when building a Err z3bra.org 70 i distro: Err z3bra.org 70 it@@ -48,7 +48,7 @@ distro: Err z3bra.org 70 i Each one is as important as the two others, because they will define how Err z3bra.org 70 i efficient you'll be for the whole project. Err z3bra.org 70 i Err z3bra.org 70 i-#### Compilation toolchain Err z3bra.org 70 i+### Compilation toolchain Err z3bra.org 70 i I am using [pcc](http://pcc.ludd.ltu.se) as my complier of choice, and Err z3bra.org 70 i [musl](http://musl-libc.org) as my libc. Err z3bra.org 70 i Err z3bra.org 70 it@@ -73,7 +73,7 @@ prefix. Err z3bra.org 70 i libc.* Err z3bra.org 70 i Err z3bra.org 70 i Err z3bra.org 70 i-#### Package management toolchain Err z3bra.org 70 i+### Package management toolchain Err z3bra.org 70 i There are a lot of them. But the most challenging one will be the one I'll write Err z3bra.org 70 i myself. This is why I wrote [pm](http://git.z3bra.org/pm/log.html), my pack Err z3bra.org 70 i manager. It's still a work in progress, but it can install, delete and inspect Err z3bra.org 70 it@@ -100,7 +100,7 @@ installation via [pm](http://git.z3bra.org/pm/log.html). Err z3bra.org 70 i *Show casing the creation of a port within the mk port-tree Err z3bra.org 70 i and building/installing it under a specific directory* Err z3bra.org 70 i Err z3bra.org 70 i-#### Testing toolchain Err z3bra.org 70 i+### Testing toolchain Err z3bra.org 70 i To actually test the distro, you need a way to boot from it. I chose to use linux Err z3bra.org 70 i containers (LXC) over traditionnal VMs (virtualbox, qemu) as I'm not playing with Err z3bra.org 70 i different CPU architectures (yet!). Err z3bra.org 70 1diff --git a/2016/03/hand-crafted-containers.txt b/2016/03/hand-crafted-containers.txt /scm/monochromatic/file/2016/03/hand-crafted-containers.txt.gph z3bra.org 70 it@@ -2,7 +2,7 @@ Err z3bra.org 70 i Err z3bra.org 70 i 18 March, 2016 Err z3bra.org 70 i Err z3bra.org 70 i-### tl;dr Err z3bra.org 70 i+## tl;dr Err z3bra.org 70 i Err z3bra.org 70 i # CTNAME=blah Err z3bra.org 70 i # mkdir -p /ns/$CTNAME/bin /ns/$CTNAME/lib Err z3bra.org 70 it@@ -11,7 +11,7 @@ Err z3bra.org 70 i # ip netns add $CTNAME Err z3bra.org 70 i # ip netns exec $CTNAME unshare -fpium --mount-proc env -i container=handcraft chroot /ns/$CTNAME /bin/echo 'Hello, world!' Err z3bra.org 70 i Err z3bra.org 70 i-### 0. Intro Err z3bra.org 70 i+## 0. Intro Err z3bra.org 70 i Err z3bra.org 70 i Containers are the latest trend, for a good reason: they leave room for new Err z3bra.org 70 i ideas in terms of security, flexibility, performance and much more. Err z3bra.org 70 it@@ -33,7 +33,7 @@ an application (a complex one). In this regard, there is only a single type of Err z3bra.org 70 i containers. Err z3bra.org 70 i We can now focus on what's really important, how do they work? Err z3bra.org 70 i Err z3bra.org 70 i-### 1. Namespaces Err z3bra.org 70 i+## 1. Namespaces Err z3bra.org 70 i Err z3bra.org 70 i That's a keyword, so let's ask our internet god what it means: Err z3bra.org 70 i Err z3bra.org 70 it@@ -47,33 +47,33 @@ to a process. Err z3bra.org 70 i When a namespace is created for a process, all its children will be created Err z3bra.org 70 i within this namespace, and inherit the "limitations" of the parent. Err z3bra.org 70 i Err z3bra.org 70 i-#### Mount Err z3bra.org 70 i+### Mount Err z3bra.org 70 i The process will be able to mount and unmount filesystems without affecting Err z3bra.org 70 i the rest of the system. For example, if you unmount a partition within the Err z3bra.org 70 i namespace, all the processes within it will see it as unmounted, while it Err z3bra.org 70 i will remain mounted for all others processes on the host. Err z3bra.org 70 i Err z3bra.org 70 i-#### UTS (Unix Time-Sharing) Err z3bra.org 70 i+### UTS (Unix Time-Sharing) Err z3bra.org 70 i This will give the ability to change the host and domain name in the namespace Err z3bra.org 70 i without changing it on the host. Err z3bra.org 70 i Err z3bra.org 70 i-#### IPC (Inter-Process Communication) Err z3bra.org 70 i+### IPC (Inter-Process Communication) Err z3bra.org 70 i This namespace concern shared memory, System V message queues and sempaphores. Err z3bra.org 70 i Processes in the namespace will be unable to communicate with the host's Err z3bra.org 70 i processes this way. Err z3bra.org 70 i Err z3bra.org 70 i-#### Network Err z3bra.org 70 i+### Network Err z3bra.org 70 i Processes will have their own network stack. This includes the routing table, Err z3bra.org 70 i firewall rules, sockets, and so on. Err z3bra.org 70 i Err z3bra.org 70 i-#### PID (Process IDentification) Err z3bra.org 70 i+### PID (Process IDentification) Err z3bra.org 70 i Processes' IDs will get a different mapping that they have on the host. They Err z3bra.org 70 i will get renumbered, starting from 1. Err z3bra.org 70 i Err z3bra.org 70 i-#### User Err z3bra.org 70 i+### User Err z3bra.org 70 i The namespaces will have their own set of user and group IDs. Err z3bra.org 70 i Err z3bra.org 70 i-### 2. Making containers Err z3bra.org 70 i+## 2. Making containers Err z3bra.org 70 i Err z3bra.org 70 i Now that we know what containers are and how they work, it's time to make Err z3bra.org 70 i one! Err z3bra.org 70 it@@ -93,7 +93,7 @@ Here is the program: Err z3bra.org 70 i EOF Err z3bra.org 70 i $ cc hello.c -o hello Err z3bra.org 70 i Err z3bra.org 70 i-#### 2.0 `chroot(1)` Err z3bra.org 70 i+### 2.0 `chroot(1)` Err z3bra.org 70 i This one is an old tool that will run a command or spawn an interactive Err z3bra.org 70 i shell after changing the root directory. Err z3bra.org 70 i It is used to isolate a process, or group of processes from the host's Err z3bra.org 70 it@@ -168,7 +168,7 @@ weighs 3.6Mib... Err z3bra.org 70 i Err z3bra.org 70 i That's most likely the lightest container you've seen, right? Err z3bra.org 70 i Err z3bra.org 70 i-#### 2.1 env Err z3bra.org 70 i+### 2.1 env Err z3bra.org 70 i To isolate our process from the host, we'll have to clean all the environment Err z3bra.org 70 i from all its variables, to make sure the container won't know anything about its Err z3bra.org 70 i host. We can do this with the `env` command: Err z3bra.org 70 it@@ -188,7 +188,7 @@ We now have a way to isolate our `hello` process from the host's environment. Err z3bra.org 70 i Err z3bra.org 70 i # env -i container="handcraft" chroot ./rootfs ./hello Err z3bra.org 70 i Err z3bra.org 70 i-#### 2.2 `unshare(1)` Err z3bra.org 70 i+### 2.2 `unshare(1)` Err z3bra.org 70 i This tool is the one that will actually isolate containers. It has been created Err z3bra.org 70 i especially for this purpose, and will let you run a process unshared from Err z3bra.org 70 i different namespaces: mount, user, network, PID, IPC and UTS. Err z3bra.org 70 it@@ -216,7 +216,7 @@ We just found a way to isolate our program a bit more: Err z3bra.org 70 i For the curious, you can check the `nsenter(1)` program, that will help you Err z3bra.org 70 i run a process within another process namespace. Err z3bra.org 70 i Err z3bra.org 70 i-#### 2.3 `ip-netns(1)` Err z3bra.org 70 i+### 2.3 `ip-netns(1)` Err z3bra.org 70 i Err z3bra.org 70 i The `ip(1)` command includes a `netns` subcommand to manage network namespaces. Err z3bra.org 70 i It is useful to give network access to a process while keeping it away from the Err z3bra.org 70 it@@ -269,7 +269,7 @@ it doesn't make any sense!): Err z3bra.org 70 i Don't feel ashamed by such a long-ass command, because that is what `lxc`, Err z3bra.org 70 i `docker`, and other container applications do behind your back! Err z3bra.org 70 i Err z3bra.org 70 i-### 3. Bonus: cgroups Err z3bra.org 70 i+## 3. Bonus: cgroups Err z3bra.org 70 i Err z3bra.org 70 i Control groups are a feature of the kernel used to limit the resources Err z3bra.org 70 i used by a process, or a group of processes. Cgroups can limit CPU Err z3bra.org 70 it@@ -278,7 +278,7 @@ shares, RAM, network usage, disk I/O, ... Err z3bra.org 70 i I will not cover their usage here, as this article is already long, but Err z3bra.org 70 i They are totally worth mentionning as an improvement over our containers. Err z3bra.org 70 i Err z3bra.org 70 i-### 4. Congratz Err z3bra.org 70 i+## 4. Congratz Err z3bra.org 70 i Err z3bra.org 70 i ... for reading this far. Err z3bra.org 70 i Err z3bra.org 70 1diff --git a/2016/08/desktop-streaming.txt b/2016/08/desktop-streaming.txt /scm/monochromatic/file/2016/08/desktop-streaming.txt.gph z3bra.org 70 it@@ -12,7 +12,7 @@ army knife for everything related to audio and video decoding/encoding. Err z3bra.org 70 i I've been using it for multiple tasks already, from converting .ogg Err z3bra.org 70 i to .mp3, to recording GIFs of my desktop. Err z3bra.org 70 i Err z3bra.org 70 i-### Server part Err z3bra.org 70 i+## Server part Err z3bra.org 70 i Err z3bra.org 70 i I started looking into how I could "stream" my desktop online, and Err z3bra.org 70 i quickly found about the `ffserver` utility (which is part of the Err z3bra.org 70 it@@ -92,7 +92,7 @@ When the config is ready, you just need to fire up the server with Err z3bra.org 70 i Err z3bra.org 70 i /usr/bin/ffserver -f /etc/ffserver.conf Err z3bra.org 70 i Err z3bra.org 70 i-### Watcher part Err z3bra.org 70 i+## Watcher part Err z3bra.org 70 i Err z3bra.org 70 i In order to watch the stream, one has to use the URL defined by the Err z3bra.org 70 i `` tag. I personally use `mplayer` to watch it, but one can Err z3bra.org 70 it@@ -103,7 +103,7 @@ use the `ffplay` command provided by `ffmpeg`: Err z3bra.org 70 i And that's *ALL*. You can hardly do simpler to watch a stream, Err z3bra.org 70 i right? Err z3bra.org 70 i Err z3bra.org 70 i-### Feeder part Err z3bra.org 70 i+## Feeder part Err z3bra.org 70 i Err z3bra.org 70 i In order to feed yor stream to the `ffserver`, you can use `ffmpeg` Err z3bra.org 70 i directly. The format of the command is pretty simple. We have 2 Err z3bra.org 70 1diff --git a/2016/09/pack-it-up.txt b/2016/09/pack-it-up.txt /scm/monochromatic/file/2016/09/pack-it-up.txt.gph z3bra.org 70 it@@ -31,7 +31,7 @@ Here is an explanation of how it works: Err z3bra.org 70 i Err z3bra.org 70 i The process is straigh-forward, and multiple parts can be automated. Err z3bra.org 70 i Err z3bra.org 70 i-### Packaging Err z3bra.org 70 i+## Packaging Err z3bra.org 70 i Err z3bra.org 70 i In order to build my softwares, I need either `make` or Err z3bra.org 70 i [`mk`](http://doc.cat-v.org/plan_9/4th_edition/papers/mk) (it's tending Err z3bra.org 70 it@@ -86,7 +86,7 @@ At this point, to pack one of my utilities, all I need is: Err z3bra.org 70 i Err z3bra.org 70 i And I'm done :) Err z3bra.org 70 i Err z3bra.org 70 i-### Deploying Err z3bra.org 70 i+## Deploying Err z3bra.org 70 i Err z3bra.org 70 i This part require a bit of setup. My current repository is at Err z3bra.org 70 i http://dl.z3bra.org/pack, which is, locally in Err z3bra.org 70 it@@ -119,7 +119,7 @@ is modified by `repogen`, everything is replicated on the remote repo: Err z3bra.org 70 i Err z3bra.org 70 i wendy -m 8 -f $REPO/.list sh -c "find $REPO -type f | synk -h apophis.2f30" Err z3bra.org 70 i Err z3bra.org 70 i-### Installing Err z3bra.org 70 i+## Installing Err z3bra.org 70 i Err z3bra.org 70 i Now that we can create packs and upload them quickly to the repository, Err z3bra.org 70 i it's time to install them! Err z3bra.org 70 it@@ -207,7 +207,7 @@ And finally, install it! Err z3bra.org 70 i skroll 0.6 Err z3bra.org 70 i $ echo amazing! | skroll Err z3bra.org 70 i Err z3bra.org 70 i-### Conclusion Err z3bra.org 70 i+## Conclusion Err z3bra.org 70 i Err z3bra.org 70 i Ok, so this whole post was rather long, and not especially good at Err z3bra.org 70 i describing the actual workflow. So as usual. Here is a quick video to Err z3bra.org 70 .
prefix key function