move some articles, ezv

This commit is contained in:
Frederick Pauchet 2018-08-21 15:49:51 +02:00
parent aac3789781
commit 6963a34f97
87 changed files with 93 additions and 253 deletions

View File

@ -0,0 +1,10 @@
Zelda: Breath of the Wild
=========================
J'ai craqué sur le dernier Zelda. Avant cela, il a fallu passer à la caisse, parce que Zelda, c'est en fait les 60€ du jeu + les 320€ de la Switch + les 42€ pour Mario (je me suis concocté un pack perso :-)).
Chronologiquement, j'ai épluché Link's Awakening sur GameBoy, j'ai torché la première moitié de A Link to the Past et j'ai terminé les deux épisodes sortis sur GameBoy Advance (Oracle of Seasons/Oracle of Ages).
Quelques années plus tard, j'ai à nouveau reçu une piqûre de Zelda, qui m'intimait de passer à la caisse pour m'offrir une Switch.
Concrètement, l'aventure démarre de manière.

View File

@ -1,9 +1,4 @@
---
Title: Peewee & Flask
Date: 2013-03-06
Slug: peewee-and-flask
Tags: dev, flask, python, web, api, rest
---
# Peewee & Flask
J'étais parti sur un article sur les [API Rest](https://en.wikipedia.org/wiki/Representational_state_transfer) en utilisant [Flask](http://flask.pocoo.org/) et [Peewee](http://docs.peewee-orm.com/en/latest/), mais vu la relative complexité de ces micro-frameworks pour sortir un code propre et complètement fonctionnel, je me suis dit qu'il serait bien d'avoir une petite introduction définissant les bases d'un projet.

View File

@ -1,16 +1,12 @@
---
Title: Jouons un peu avec Jinja2 et YAML
Summary: Toi aussi, crée ton site statique en buvant un cocktail avec une main dans le dos et les pieds sur le bureau.
Tags: yaml, jinja, ssg
---
# Jouons un peu avec Jinja2 et YAML
Bon, et si je voulais développer mon propre générateur de sites statiques? Pas que ce soit nécessaire, car il y en a des dizaines de centaines de milliers (+une petite dizaine chaque jour), juste que j'en ai envie.
Les quelques idées sont les suivantes:
* Utiliser `markdown` et ses [extensions](https://pythonhosted.org/Markdown/extensions/index.html#officially-supported-extensions) officielles pour la génération de code HTML.
* Passer le tout dans [Pygments](http://pygments.org/docs/quickstart/) pour la coloration de code
* Ajouter une couche de [Typogrify](https://pypi.python.org/pypi/typogrify) pour gérer quelques cas particuliers de mises en forme.
* Utiliser `markdown` et ses [extensions](https://pythonhosted.org/Markdown/extensions/index.html#officially-supported-extensions) officielles pour la génération de code HTML.
* Passer le tout dans [Pygments](http://pygments.org/docs/quickstart/) pour la coloration de code
* Ajouter une couche de [Typogrify](https://pypi.python.org/pypi/typogrify) pour gérer quelques cas particuliers de mises en forme.
```python
# coding: utf-8

View File

@ -0,0 +1,44 @@
De Roundcube à Sogo ?
=====================
Avec Gandi, on a par défaut un webmail qui tourne sur RoundCube. L'interface fonctionne correctement pour la lecture et l'envoi d'emails, mais commence à dater sérieusement, surtout quand on voit ce qui est fait sur Gmail (forcément :-)) ou ProtonMail.
En plus, Roundcube manque cruellement d'interfaces CalDav/CardDav; il semble qu'il existe des [plugins](https://github.com/babelmcs/kolab-roundcube-plugins), mais ils doivent être installés par l'admin. Et seuls les plugins suivants sont dispos chez Gandi:
* filesystem_attachments
* jqueryui
* lang_sel
* legacy_browser
* password
Bref, rien d'intéressant.
Une solution (simple) serait de passer par la nouvelle interface [Sogo3](https://sogo3.gandi.net/) (pour la configuration, c'est par [ici](https://doc.gandi.net/en/mail/webmail), mais l'ergonomie ne me convient pas franchement. Ceci dit, au niveau des fonctionnalités, on a bien:
* Une gestion des contacts
* Un calendrier
* L'accès aux mails, avec filtres, réponses automatiques, étiquettes, etc.
C'est complet (mais moche, avec des animations inutiles partout).
Plusieurs options sont dispos:
1. Passer chez ProtonMail - à 40€/an, c'est encore acceptable **mais** il n'y a pas (encore) de calendriers et par soucis de sécurité, il ne semble pas facile de synchroniser ses contacts depuis n'importe quel périphérique. Or, j'aime bien avoir mes contacts sans pour autant devoir démarrer mon gestionnaire de mails.
2. Revenir chez Google. Euh... Mouais. On verra en dernier recours.
3. Installer un client Webmail type RainLoop, mais je ne pense pas qu'il puisse aussi s'intégrer avec Baikal ou Davical.
4. Installer un truc type [Mailcow](https://mailcow.email/)... Mais je ne suis pas sûr de bien comprendre ce qu'il y a derrière.
5. Passer par les applications [Contacts](), [Calendar]() et [Mail]() de Nextcloud. Sauf que niveau ergonomie, on est toujours loin derrière les standards actuels.
6. Essayer [Mailpile](https://www.mailpile.is/).
7. Passer par des outils spécifiques pour la gestion du calendrier/des contacts ([Baikal](http://sabre.io/baikal/) ou [Radicale](https://radicale.org/)).
Rainloop
--------
Pour remplacer Roundcube, je pourrais passer par [Rainloop](https://mail.rainloop.net/) - il supporte les thèmes, les clés OpenPGP
Configuration
-------------
Quelle que soit la solution, il reste à configurer Thunderbird pour avoir ses calendriers, contacts et tâches en local. A voir [ici](https://docs.iredmail.org/thunderbird.sogo.html).
Reste ensuite à gérer l'application sur le téléphone. K9-Mail est un peu ... moche. Mais fonctionnel. La question est: est-ce que je saurai m'en contenter ? :)

View File

@ -1,11 +1,6 @@
---
Title: Tethering avec un téléphone Android
Date: 2011-09-04
Slug: tethering-with-Android
Tags: réseau, tethering, android
---
# Tethering avec un téléphone Android
Suite à un gros orage survenu ce samedi soir, j'ai préféré couper tous les appareils électriques pour éviter de devoir lancer une expédition chez Mediamarkt pour tout remplacer le lendemain. Je suis joie.
Suite à un gros orage survenu ce samedi soir, j'ai préféré couper tous les appareils électriques pour éviter de devoir lancer une expédition chez Mediamarkt pour tout remplacer le lendemain.
Me voila donc à tapoter gaiement sur mon laptop, avec pour seule source de données, mon petit cerveau (plutôt en l'état de "cervôôôôô" que de "dangerous mind", mais soit.), et un accès Internet sur mon téléphone Android, (re)flashé récemment en 2.3 pour ... euh ... les besoins de la science... sans doute.

View File

@ -1,10 +1,4 @@
---
Title: Miniircd
Slug: miniircd
Date: 2012-11-04
Category: "Réseau"
Tags: irc, server
---
# Miniircd
Si vous cherchez à installer un petit serveur IRC, tournez-vous vers [Miniircd](https://github.com/jrosdahl/miniircd). L'installation est super simple, et vous aurez ce qu'il faut pour lancer votre chan :)

View File

@ -0,0 +1,13 @@
# Petit mémo SCP
## Téléchargement d'un répertoire du serveur
``` shell
scp -r -P <port> <login>@<server>:/path/to/the/folder .
```
## Envoi d'un fichier vers le serveur
``` shell
scp -P <port> /path/to/the/file <login>@<server>:<destination_path>
```

View File

@ -7,7 +7,7 @@ net start cntlm
net stop cntlm
```
Après l'installation, il reste à le configurer (proprement). Pour cela, rendez vous dans le répertoire d'installation avec un shell, pour configurer les informations suivantes :
Après l'installation, il reste à le configurer (proprement). Pour cela, rendez vous dans le répertoire d'installation avec un shell, pour configurer les informations suivantes :
1. Le nom d'utilisateur, son mot de passe et le domaine d'authentification;
2. Le serveur DNS vers lequel les requêtes seront envoyées;
@ -16,8 +16,8 @@ Après l'installation, il reste à le configurer (proprement). Pour cela, rendez
## Configuration du proxy
Commencez par remplir les variables importantes; pour cela, ouvrez le fichier `cntlm.ini`
et remplissez les informations suivantes:
Commencez par remplir les variables importantes; pour cela, ouvrez le fichier `cntlm.ini`
et remplissez les informations suivantes:
1. Username
2. Domain
@ -32,7 +32,7 @@ Pour vérifier que le proxy fonctionne bien et que le fichier `cntlm.ini` ne con
Dans les deux cas, le mot de passe associé à l'utilisateur référencé ci-dessus vous sera demandé. Une fois obtenu, copiez le résultat dans le fichier `cntlm.ini`.
Démarrez ensuite le proxy en mode debug avec la commande `cntlm.exe -c cntlm.ini -v`.
Démarrez ensuite le proxy en mode debug avec la commande `cntlm.exe -c cntlm.ini -v`.
Passez ensuite à l'étape de configuration ci-dessous et vérifiez que tout fonctionne bien.
Si tout se passe bien, démarrez le service en arrière-plan: `net start cntlm`
@ -54,14 +54,16 @@ Tunnel 11443:169.25.12.23:22
En utilisant ce port en local, vous arriverez ainsi à vous connecter sur l'hôte distant. La configuration ci-dessus permet de se connecter sur la machine 169.25.12.23:22
en utilisant l'hôte local et le port 11443; par exemple: `ssh localhost -p 11443 -l my_login`.
## CMD
## Configuration
### CMD
set http_proxy=http://localhost:3128
set https_proxy=http://localhost:3128
Il est possible de configurer cmder dans les paramètres `startup/environment`, qui permettent de donner directement ces deux variables. Un peu comme un fichier bash_profile.
Il est possible de configurer cmder dans les paramètres `startup/environment`, qui permettent de donner directement ces deux variables. Un peu comme un fichier `bash_profile`.
## Et ma config pip
### pip
Alors, pip, il est gentil, mais le paramètre --proxy semble lui poser un petit problème (que je n'ai pas plus creusé). Pour résoudre ceci, il faut en fait initialiser les variables d'environnements de la manière suivante :
@ -70,23 +72,18 @@ export http_proxy="localhost:3128"
export https_proxy="localhost:3128"
```
## Et ma config npm
### Yarn
``` bash
npm config set proxy http://localhost:8080
npm config set https-proxy http://localhost:8080
yarn config set proxy http://localhost:8080
yarn config set https-proxy http://localhost:8080
yarn config set https_proxy http://localhost:8080
yarn config set strict-ssl false
```
L'idéal étant de placer ces initialisations dans un fichier .bashrc à la racine du répertoire utilisateur. Pour un environnement full-windows, c'est `set` et pas `export`...
## Configuration de FoxyProxy
Plus simple:
* Ajuster les variables `http.proxy` & `https.proxy @ localhost:3128` (voir la configuration de cntlm)
* Modifier la configuration de git pour que l'url en https contienne le nom d'utilisateur, soit en utilisant `git remote set-url https://my_login@my_url/my_git_repo`, soit en passant par le fichier `.git/config` à la racine du repository.
## Réinitialisation de la configuration
### Réinitialisation de la configuration
```bash
set "http_proxy="

View File

@ -0,0 +1,3 @@
# Les indispensables
* [WinDirStat]()... L'équivalent à un bon gros `du -df` des familles.

View File

@ -1,18 +0,0 @@
---
Title: Deux commandes SCP
Slug: commandes-scp
Tags: ssh, scp
Date: 2013-03-25
---
# Téléchargement d'un répertoire du serveur
``` shell
scp -r -P <port> <login>@<server>:/path/to/the/folder .
```
# Envoi d'un fichier vers le serveur
``` shell
scp -P <port> /path/to/the/file <login>@<server>:<destination_path>
```

View File

@ -1,17 +0,0 @@
---
Title: Configuration de sudo
Date: 2015-05-27
Slug: configuration-de-sudo
---
Après la réinitialisation du VPS, la première chose est de changer le mot de passe, grâce à la commande `passwd`. Par défaut, il y a de fortes chances que vous soyez connecté en `root`.
L'ajout d'un nouvel utilisateur se fait grâce à `adduser newuser`. Une fois que c'est fait, configurez `sudo` (*substitute user do*, donc) pour que cet utilisateur puisse agir au nom de l'administrateur, grâce à  `visudo`. Si la commande n'est pas disponible, commencez par installer `sudo` (`apt-get install sudo`. `visudo` sera *de facto* disponible).
Ajouter ensuite la ligne qui correspond à votre utilisateur, comme ci-dessous:
``` shell
# User privilege specification
root ALL=(ALL:ALL) ALL
fred ALL=(ALL:ALL) ALL
```

View File

@ -1,19 +0,0 @@
---
Title: Debian au boulot
Date: 2015-06-17
Slug: debian-at-work
---
Première partie consacrée à la configuration du proxy suite à l'installation de Debian sur une machine au boulot.
J'ai déjà parlé de [CNTLM](https://github.com/jordidg/cntlmhttps://github.com/jordidg/cntlm) dans un [précédent article](2013-04-05 cntlm.md); l'idée était de configurer un proxy local qui redirigerait les connexions vers le proxy officiel. A l'installation de Debian, un paramètre peut être fixé pour configurer directement le proxy et récupérer les dépôts des paquets. Ce paramètre n'agit cependant qu'au niveau d'[apt](https://en.wikipedia.org/wiki/Advanced_Packaging_Tool) et non au niveau du système.
La configuration est pratiquement la même; seul l'emplacement du fichier de configuration est (forcément) modifié et se trouve dans `/etc/cntml.conf`.
1. Editez-le pour y spécifier les variables de serveur proxy à utiliser, nom de domaine, port d'écoute, ...
2. Générez ensuite le mot de passe grâce à `cntlm -H` et copiez les lignes dans le fichier `/etc/cntlm.conf`.
3. Spécifier dans votre `~/.bashrc` la valeur du serveur proxy local: `export http_proxy=http://localhost:3128`
Si cela ne fonctionne pas, lancez `cntlm` en ligne de commande avec le paramètre `-v`. L'exécutable est placé (sous Debian...) dans `/usr/sbin/cntlm`. Donnez lui en argument le fichier de configuration et le mode verbeux: `sudo /usr/sbin/cntlm -c /etc/cntlm.conf -v`.
Deuxième partie prévue pour l'accès aux *shares* CIFS :)

View File

@ -1,11 +0,0 @@
Title: Petit tour des technos web en vogue
Je suis tombé sur le site [http://oddbird.net/](http://oddbird.net/), qui reprend les différentes technos qu'ils utilisent. Certains noms ne sont évidemment pas inconnus (voire même utilisés quotidiennement): [jQuery](http://jquery.com/), [HTML5](http://www.w3.org/TR/html5/), [CSS](http://www.w3.org/TR/css-2010/). D'autres ne seront jamais utilisés ([rstBlog](https://github.com/mitsuhiko/rstblog/), dont le dernier commit date de 2012 et dont la doc' est hyper succinte).
Les derniers finalement, sont les plus intéressants:
* [Grunt](http://gruntjs.com/), que je me promets d'essayer depuis bientôt 2 ans, et que je n'ai toujours pas mis en place. Jusqu'à présent, je n'en ai jamais émis la nécessité, mais je suis sûr que ce genre de librairie a un retour sur investissement très rapide. Il y a aussi [Gulp](http://gulpjs.com/). Et aussi [Brunch](http://brunch.io/). Et il y a (évidemment) [plein](http://brunch.io/#why) [d](http://jaysoo.ca/2014/01/27/gruntjs-vs-gulpjs/)'[articles](http://jolicode.com/blog/un-brunch-avec-symfony2) [comparatifs](https://blog.toggl.com/2014/03/grunt-vs-gulp-vs-brunch/). En résumé de ce dernier lien, [Brunch](http://brunch.io/) pour la vitesse d'exécution et la configuration, [Grunt](http://gruntjs.com/) pour la communauté, les plugins et la vitesse, [Gulp](http://gulpjs.com/) pour le fichier de conf'.
* [Icomoon.io](https://icomoon.io/) pour les icônes. Cette librairie a l'air de concurrencer un peu [Font Awesome](https://fortawesome.github.io/Font-Awesome/). De toutes façons, et de manière générale, on peut aussi se référer à [ce dépôt GitHub](https://github.com/brabadu/awesome-fonts). On peut aussi ajouter les [Octicons](https://octicons.github.com/), les icônes version Github.
* Pour le CSS, on a [Compass](http://compass-style.org/), [SASS](http://sass-lang.com/), [Suzy](http://susy.oddbird.net/), [Breakpoint](http://breakpoint-sass.com/) et tout plein de petits trucs intéressants.
Dans la même veine, il faudra penser à se pencher sur les frameworks suivants: [PluCSS](http://plucss.pluxml.org/), [Pure](http://purecss.io/), [Knacss](http://knacss.com/), [Cascade](http://www.cascade-framework.com/), [Semantic](http://semantic-ui.com/) et [Skeleton](http://getskeleton.com/).

View File

@ -1,15 +0,0 @@
---
Title: Seafile
Date: 2016-08-10
Slug: seafile
Tags: nextcloud, seafile, nuage, serveur
---
[Seafile](http://seafile.com/) est une alternative libre à [DropBox](https://www.dropbox.com/), [OneDrive](https://onedrive.live.com/) et consort.
Il est possible de l'installer à la main, en suivant le [manuel utilisateur](http://help.seafile.com/), mais au vu du nombre de commandes et de la complexité de certaines d'entre elles (pour arriver à un résultat sécurisé en tout cas), passez plutôt par le [script d'installation](https://github.com/Seafile/seafile-server-installer) pour un serveur tout-frais-tout-neuf. Il peut cependant arriver qu'il plantouille, comme cela m'est arrivé: en le déployant sur un VPS ou en virtuel, il suffit de détruire et recréer l'image pour repartir sur de bonnes bases.
Lors de mon essai, la seule étape qui a planté est la configuration du firewall *via* [ufw](https://help.ubuntu.com/community/UFW). J'ai juste dégagé l'appel à la fonction dans le script d'installation pour que tout rentre dans l'ordre.
Après l'installation, j'ai généré un nouveau certificat avec [certbot]({filename}articles/server/2016-06-13 certbot.rst), et tout a bien fonctionné :). Si c'est trop compliqué, pensez aussi à [Nextcloud]({filename}articles/applications/2016-07-08 nextcloud.rst).

View File

@ -1,30 +0,0 @@
---
Title: Ne pas afficher certains fichiers/dossiers avec Visual Studio Code
Date: 2016-08-30
Slug: masquer-des-fichiers-ou-dossiers-dans-vscode
Category: "Programmation"
Tags: ["fichiers", "filesystem", "code", "vscode"]
---
Par défaut, Visual Studio Code affiche pratiquement tous les fichiers et dossiers, à l'exception des répertoires de contrôle de sources (`.git`, `.svn`, `.hg`) et des bidules spécifiques à OSX qui ennuient tout le monde (`.DS_Store`).
Pour peu que vous développiez en Python (et ce sera *a priori* le cas pour tous les autres langages...), vous pourriez avoir envie de dégager l'affichage des dossiers `__pycache__` et des fichiers `.pyc`. Depuis le menu, ouvrez les **paramètres utilisateurs** dans le menu **préférences**. L'éditeur se scindera en deux: d'un côté, vous trouverez les paramètres par défaut, et de l'autre, vos paramètres personnalisés. Ajoutez-y les deux nouvelles entrées à ignorer:
``` json
// Place your settings in this file to overwrite the default settings
{
"editor.fontSize": 13,
"editor.wrappingColumn": 300,
"files.exclude": {
"**/.git": true,
"**/.svn": true,
"**/.hg": true,
"**/.DS_Store": true,
"**/__pycache__": true,
"**.pyc": true
}
}
```
Et redémarrez l'éditeur :)

View File

@ -1,26 +0,0 @@
Celery est un task runner pour le framework djgnaog. Son installation est compatible avec `pip` et ne nécessite rien d'autre qu'un `pip install django-celery`.
Pour la configuration en elle-même, c'est un peu plus complexe. Il faut :
* Dans le fichier `settings.py`, ajouter la configuration de Celery.
* Ajouter une référence vers `djcelery` dans la variable INSTALLED_APPS
* Définir un *broker* (RabbitMQ, Django-db, Mongodb, ...)
Par exemple :
settings.py
```python
import djcelery
INSTALLED_APPS = (
...
'djcelery',
)
djcelery.setup_loader()
```
Sources:
* [First steps with Celery](http://docs.celeryproject.org/en/2.3/getting-started/first-steps-with-celery.html)

View File

@ -1,11 +0,0 @@
Title: Database routes
Status: draft
Django permet de séparer un projet en plusieurs applications. Chacune d'entre elles peut être en relation avec une base de données particulière. La manière de faire ceci est:
1. Définir les différentes bases de données dans le fichier `settings.py`
2. Définir les différentes routes en fonction des applications dans un fichier spécifique
3. Définir le paramètre `DATABASE_ROUTERS` dans le fichier `settings.py` pour y spécifier les classes de routage.
L'idée est "simplement" d'associer une application avec une chaîne de connection, au travers de ce fichiers de routes.

View File

@ -1,6 +0,0 @@
---
Title: Déployer une application Django avec Nginx, Gunicorn et Supervisord
Status: draft
Tags: django, python, deploy, server
---

View File

@ -1,26 +0,0 @@
Title: Play Framework
Date: 2014-03-30
Tags: java, play
Category: Dev
Slug: play-framework
Status: draft
La version du framework sur laquelle je vais m'appuyer pour la suite de cet article est la 2.2.2. Toute la doc pour la version 2.2.x se trouve à l'adresse suivante : [http://www.playframework.com/documentation/2.2.x/Installing](http://www.playframework.com/documentation/2.2.x/Installing).
Prérequis
---------
Faut la JDK :) Il faut ensuite télécharger une version qui-va-bien du framework (soit la version classique, soit la version embedded dans TypeSafeActivator. La différence se situe au niveau des outils inclus dans la distribution: dans un cas, on n'a **que** le framework Play, tandis que dans l'autre, on a également une jolie interface qui contient tout plein de petites choses agréables (genre une interface web pour développer, Akka, tout ça...)
### SBT?
[...]
De l'utilisation de la console
-----------------------------
Un peu comme pour Django et d'autres frameworks, on passe beaucoup de temps dans la console. Cela permet de centraliser toutes les actions utilisateurs possibles (compilation, lancement du serveur, paramétrage de l'IDE, ...)
http://www.playframework.com/documentation/2.2.x/IDE
http://scala-ide.org/download/current.html

View File

@ -1,7 +0,0 @@
SharePoint, les Document Sets
Les Document Sets de SharePoint sont des "dossiers intelligents", sur lesquels il est possible de fixer des propriétés (les mêmes que pour les documents et les bibliothèques). Ces ensembles de documents peuvent ensuite contenir des documents, sur lesquels d'autres propriétés sont définies.
Un des principaux inconvénients est que ces ensembles sont très peu maléables, et qu'il est parfois nécessaire de trifouiller les options et le paramétrage en profondeur avant d'arriver à quelque chose de satisfaisant. De plus, il est obligatoire de patcher le serveur pour une installation sous SharePoint 2013, la version de base étant particulièrement buggée. De plus, il faut être extrêmement vigilant sur l'attribution des droits, les documents sets ayant la sale habitude de ne pas passer par la case "Corbeille du site" lorsqu'un utilisateur supprime l'ensemble.

View File

@ -1,7 +0,0 @@
---
Title: Kinto pour la gestion électronique de documents
Status: draft
Tags: ["ecm", "ged"]
---

View File

@ -1,7 +0,0 @@
---
Title: Happyness therapy (ou comment gérer des services opensource utiles)
Status: draft
Tags: services, wallabag, rss, ttrss, nextcloud, nuage, dav, blog
---
Il y a plusieurs services que je gère et que je mets à disposition de mes proches sur des instances virtuelles. J'ai déjà écrit à ce sujet; un petit récapitulatif est quand même utile, pour ne pas perdre de traces de ce qui existe.

View File

@ -1,4 +0,0 @@
Title: WAMP
Summary: WebSockets avec Autobahn & Crossbar
[Autobahn](http://autobahn.ws/) implémente le clien sur lequel l'utilisateur peut soit publier des méthodes, soit s'abonner à quelque chose... Au milieu, on trouve [crossbar.io](http://crossbar.io/) qui effectue le travail de router les messages entre les différents clients. C'est aussi lui qui va transmettre les différents points de contacts existants.

View File

@ -1,3 +0,0 @@
Title: Whitenoise
Date: 2016-04-21
Status: draft