VIM : formater le JSON

Aujourd’hui nous allons voir comment formater un json un peu crade pour le transformer en quelques choses de plus sympathique.

Soit le JsonSchema suivant

1
{"$schema":"http://json-schema.org/draft-04/schema#","type":"object","properties":{"address":{"type":"object","properties":{"streetAddress":{"type":"string"},"city":{"type":"string"}},"required":["streetAddress","city"]},"phoneNumber":{"type":"array","items":{"type":"object","properties":{"location":{"type":"string"},"code":{"type":"integer"}},"required":["location","code"]}}},"required":["address","phoneNumber"]}

Pas de retour à la ligne.

Grâce à la commande suivante.

1
:%!python -m json.tool

Le fichier devient

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "properties": {
        "address": {
            "properties": {
                "city": {
                    "type": "string"
                },
                "streetAddress": {
                    "type": "string"
                }
            },
            "required": [
                "streetAddress",
                "city"
            ],
            "type": "object"
        },
        "phoneNumber": {
            "items": {
                "properties": {
                    "code": {
                        "type": "integer"
                    },
                    "location": {
                        "type": "string"
                    }
                },
                "required": [
                    "location",
                    "code"
                ],
                "type": "object"
            },
            "type": "array"
        }
    },
    "required": [
        "address",
        "phoneNumber"
    ],
    "type": "object"
}

On utilise en pratique python pour réécrire le code.

Vous pouvez essayer

1
python -m json.tool <le fichier>.json

Ce qui est pratique est que python est installé par défaut sous Linux. Il existe aussi jq, mais il n’est pas par défaut.

Jeu de la vie

Introduction

Je suis en train de suivre la formation sur FreeCodeCamp. Un des exercices et de refaire “le jeu de la vie” en React.

Le jeu de la vie a été crée par Conway.

Les règles sont très simples.

  • Soit un Damier avec des cellules.
  • Si une cellule à seulement un voisin autour d’elle, elle meure de à cause de l’isolement
  • Si une cellule a plus de 3 voisins elle meure de surpopulation.
  • Si il y a exactement trois voisins et que la case est vide, une cellule se crée.

Une animation parle mieux..

Nano : Activer la coloration syntaxique

Sous linux, on utilise le plus souvent vim ou nano. Je suis un grand fan de de vim mais aujourd’hui je vais parler de nano. Par défaut il n’y a pas de coloration syntaxique et pas de couleurs tout cours. Nous allons activer celle-ci

Et voici le résultat sur un fichier php.

la coloration syntaxique

Vim-plug : Gestion des plugins

Introduction

Il existe une quantité monstrueuse de plugin sur Vim. Je vais parler de la gestion de plugin. Avant de commencer une série sur les meilleurs plugins de Vim.

Installation de Vim-plug

Nous allons utiliser un gestionnaire de plugin : vim-plug.

Nous allons éditer notre fichier ~/.vimrc

Installation d’un proxmox 4.0 : Nginx

Dans le post précédent, nous avons réglé le réseau pour que les instances récupèrent le réseau. Enfin nous avons crée une première instance que j’ai nommé nginxproxy.

Ce que je veux..

J’ai plusieurs sites et noms de domaine sur mon Proxmox. Je souhaite mettre chaque site dans un container. Ainsi tout est isolé, je peux mettre toute les versions que je veux.

Par exemple, je souhaite

  • blog.domaine1.fr parte vers l’instance 102 qui contient son propre apache.
  • image.domaine1.fr vers l’instance 103 etc ..

Nous allons utiliser Nginx pour rediriger le trafic. logo de nginx

Je vais

  • rediriger tout le trafic du port 80 du proxmox vers mon instance1 (que j’ai appellé nginxProxy)
  • installer Nginx en proxy sur cette VM. j’arrive sur la machine avec l’url blog.domaine1.fr, je renvoie vers la machine 102

Installation d’un proxmox 4.0

Introduction

logo de proxmox

J’ai acheté un serveur dédié chez OVH. Au travail nous utilisons un Proxmox En solution de virtualisation. Étant plutôt content du logiciel. J’ai tout naturellement installé Proxmox sur mon serveur dédié. J’en ai profité pour passer à la version 4.

Mais …

Proxmox V4 utilise LXC alors que la version précédente utilise OpenVZ. Et tous les tutoriaux sont globalement sur les versions 3.

Je suis arrivé à installer le logiciel. Voici le résumé de la première partie

  • Installation du Proxmox
  • Réglage du Réseau
  • Création d’une première instance.

Vim et Markdown

Une astuce que je viens d’apprendre.

Pour écrire du code en Markdown on utilise la syntaxe suivante

1
2
```php
le code terminé par ```

C’est pas génial car on perd la coloration syntaxique, et j’ai fais pas mal d’erreurs.

Mais grâce à la commande suivante

1
let g:markdown_fenced_languages = ['html', 'vim', 'php', 'python', 'bash=sh']

Voici un avant et après avant et après

C’est beaucoup mieux ! Un petit bémol pour le PHP (ma joie !) il faut obligatoirement mettre <?php.

Bref un commande que j’aurai aimé avoir avant.

Il y a plein d’astuce de ce genre sur le site suivant

  • til TIL est l’abbrévation de Today I Lean cela vient de reddit