hugosoucycc

[ARCHIVED] Another old source code of <hugo.soucy.cc>.
Log | Files | Refs | Submodules

commit ef67e8acedb86093996d9717ebdd107c56af5d17
parent 8eaf4a6d3c7e664af6e78d482d7983b2f14edaad
Author: Hugo Soucy <hugo@soucy.cc>
Date:   Sat,  9 Jul 2016 20:54:25 -0400

Put the symlink on `note/` instead of `content/`.

Diffstat:
Dcontent | 2--
Acontent/file/curriculum-vitae/index.md | 107+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Acontent/file/pgp.md | 40++++++++++++++++++++++++++++++++++++++++
Acontent/index.md | 55+++++++++++++++++++++++++++++++++++++++++++++++++++++++
Acontent/note | 2++
Acontent/txt/bronto-politiciens-de-silos.md | 14++++++++++++++
Acontent/txt/emacs/emacs-101-l-introduction.md | 254+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Acontent/txt/emacs/emacs-101-la-configuration.md | 182+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Acontent/txt/les-partis-politiques-nuisent-ils-a-la-democratie.md | 27+++++++++++++++++++++++++++
Acontent/txt/mes-logiciels-libres-preferes.md | 33+++++++++++++++++++++++++++++++++
10 files changed, 714 insertions(+), 2 deletions(-)

diff --git a/content b/content @@ -1 +0,0 @@ -/home/hs0ucy/ownCloud/_Sync/notes- \ No newline at end of file diff --git a/content/file/curriculum-vitae/index.md b/content/file/curriculum-vitae/index.md @@ -0,0 +1,107 @@ +--- +title: Curriculum vitae +date: null +--- + +Profil +------ + +Je suis un <span>intégrateur Web</span> d'expérience, qui adore structurer des contenus qui se démarquent. J'excelle à mettre en valeur le travail de mes collègues designers et rédacteurs. J'aime contribuer à l'émergence de sites Web de qualité, accessibles autant aux humains qu'aux machines... Pour y arriver, je favorise l'utilisation des standards du Web et des formats libres. + +--- + +Compétences +----------- + +### Conception Web + +Maîtrise les langages déclaratifs (X)HTML et CSS. Applique les bonnes pratiques d'intégration Web, tant au niveau de la performance qu'au niveau de l'accessibilité et de la compatibilité de navigation. Améliore l'expérience utilisateur avec du JavaScript non intrusif. Propose des solutions innovantes. + + +### Gestion de projet + +En mesure de coordonner toutes les étapes de la réalisation d'un site Web; incluant l’élaboration d'un plan de travail, ainsi que le soutien et l’encadrement d'une équipe de travail, afin d'assurer le respect d'échéanciers. + +### Communication + +Aime partager les fruits de sa curiosité et de son expérience. Vulgarise le Web de vive voix, ou par l'écriture de tutoriaux. Procède à une veille technologique quotidienne et transmet ses découvertes par les canaux de communications mis à sa disposition. Capable de rédiger des documents de formation et de transmettre la matière à un groupe. + +--- + +Expérience professionnelle +-------------------------- + +* **Consultant en logiciel libre, spécialiste front-end**, +_Savoir-faire Linux_, Québec | 2014 – + * Intégrer en HTML 5 et CSS 3 + * Programmer avec JavaScript et JQuery +* **Intégrateur Web sénior**, +_Libéo_, Québec | 2012 – 2013 + * Intégrer en HTML 5 et CSS 3 + * Programmer avec JavaScript et JQuery +* **Développeur Web**, +_DuProprio_, Charny | 2011 – 2012 + * Maintenance du code «front-end» + * Participe au développement de nouveaux outils pour le site Web de l'entreprise. +* **Intégrateur Web et référenceur**, +_Kryzalid communication_, Montréal | 2007 – 2011 + * Établir la structure du code selon l'arborescence. + * Intégrer tous les éléments des sites à l'aide des langages XHTML, CSS, PHP et JavaScript. + * Optimiser des sites Web pour le référencement naturel. + * Modérer et animer le blogue de l'agence. +* **Webmestre**, +_Fromagex_, Rimouski | 2005 – 2006 + * Mettre en place une solution de commerce électronique basée sur osCSS. + * Intégrer et programmer le site Web de l'entreprise. + * Soutenir techniquement les contributeurs du site. +* **Webmestre et formateur en informatique**, +_Atena groupe-conseil_, Rimouski | 2005 – 2006 + * Planifier et concevoir la refonte du site Web de l'entreprise. + * Donner des formations en micro-informatique et en création de site Web. + * Rédiger des document de formation. + * Soutenir techniquement la clientèle. +* **Infographiste-Webmestre**, +_À la pige_, Montréal | 2003 – 2005 + * Créer des sites Web. + * Concevoir des documents destinés à l'impression. +* **Webmestre et formateur informatique**, +_Association franco-yukonnaise_, Whitehorse | 2002 – 2003 + * Concevoir des sites Web. + * Produire des documents destinés à l'impression. + * Donner des formations en microinformatique. + * Créer des documents de formation. + * Soutenir techniquement la clientèle. +* **Coopérant-formateur en conception Web**, +_ONG Alternatives_, Rabat (Maroc) | 2001 – 2002 + * Planifier et concevoir la refonte du site Web d'un ONG. + * Donner des formations en création de sites Web. + * Rédiger des documents didactiques. +* **Intégrateur multimédia**, +_I.C. Axon_, Montréal | 1999 – 2001 + * Faire de la mise en page d'images numériques destinées à des CD-ROM interactifs. + +--- + +Scolarité +--------- + +* **Attestation d'études collégiales en design multimédia**, +Académie internationale du design de Montréal, Montréal | 1999 +* **Diplôme d'études collégiales en Arts plastiques**, +Cégep du Vieux-­Montréal, Montréal | 1998 + +--- + +Formation continue +------------------ + +* **Accessibilité Web : SGQRI, WCAG**, +Modop, Québec | 2012 +* **TYPO3 Administrateur**, +Infoglobe, Québec | 2012 +* **Ergonomie centrée utilisateur**, +Centre de Recherche Informatique de Montréal (CRIM), Montréal | 2012 +* **Vers le Web 3.0 : Le Web sémantique**, +Centre de Recherche Informatique de Montréal (CRIM), Montréal | 2009 +* **JavaScript avec DHTML et DOM**, +Institut des technologies de l'information du Collège Maisonneuve, Montréal | 2008 diff --git a/content/file/pgp.md b/content/file/pgp.md @@ -0,0 +1,40 @@ +--- +title: Clé publique PGP +date: null +--- + +Clé publique PGP +================ + + -----BEGIN PGP PUBLIC KEY BLOCK----- + Version: GnuPG v2 + + mQENBFVFLJwBCACtIqQEtS6LVgeqOCCMv6nSe23a4yWT5WdizPPBH+0KZW9dbH3k + gF/LArv4eTX9DQEoe8pN2CnaYN2vQ5pfCBymScySXthKw9F86LpMjLwr79tmHOuM + NB0qkntwd9kVbdLJ30gA0qJa3E21He0zz6R5W8RHqWP0XIGnccZwnvZNISuVbIyb + 8hVFwOqpkdfvfQCC97Ok3pCkYyG92fvqO1lRCrgOs51liWaZSqJBOTtj1jfjbX01 + fLaAu2M+JfGM87iU4cHckXzPMvtucX9OCzYAOuvWc1lqfoD1kDorNnE5v8zKG289 + 7VT836uMK+V7FBaHKQQvi4eIJ3OeoQBynw+XABEBAAG0Gkh1Z28gU291Y3kgPGh1 + Z29Ac291Y3kuY2M+iQE3BBMBCAAhBQJVRSycAhsDBQsJCAcCBhUICQoLAgQWAgMB + Ah4BAheAAAoJEKr0Uig12y4hQRAH/3+IrBy/aOyZ7uSpbvtBBgnF4l9lAhVeyOgN + kO6COrMYE2Wk6A2bVPH3LKEQUL4OBX4S218OcDTegJggHQegh5tjb1Wc0Ns9MAqc + Fpewoo8OecWHHeOzceflyqVJL8vJhokLwasOcS4sFHbjIZkv6yMx3IsNsTf4UW47 + cgeXbLVCLwIY8ZwIvrhrHsgXV0dnuhgFVyyljFHK3N3iNAz1GACaempbd5gsVv96 + c6k1MSw8ykD6n2jaT5GN8unO133CK0x+McVpFI7OTeoOGdiTIGNI8HPFyoArEZ/B + vTDfHJXnCcVSIySQLOLKAfG1psMJl/7JAlodP6EgxEcoN6oFhLa5AQ0EVUUsnAEI + AOyJwzo69WkXUc3oGqp8qaEbUkGnfnfiHBGvFUBtNuXObuwdAyr1aOPQcFWTVNKO + Q5/xnh7F9rk4fAW4UL8WxjULWLK7ji6eIh5vFgIirzlCN3GkcMtW8Qfi/5VYlvMt + LSs4R4lDwNvORO6NVe2EU6CDDGes1Vln3R+Mm7v+K8//mXZB8r9EBOqQIS+xOJbY + A9tEG9ZjBineXvVVqZbXN6lNPCnU4ZCw1EANEnYiH/T9sjM+Yl07ohV/TKLZfGCv + wsQS5nitvBtdl/D+xcFTGNfNwt3F6aEzuJouMGObkfkNVRYw07IOwE4lRrLTBKqz + dI2h5LrSyKjDNT/q/knYkhUAEQEAAYkBHwQYAQgACQUCVUUsnAIbDAAKCRCq9FIo + NdsuIVqGB/9DNr83M2kFUpDVpaNC2c7WJdkGwa8PmScjDRiSdAo5CRZI1r9hs2// + RLnkMf+W8ROWu2IlLiAVftXdmskRn5bCEaqCJmh6mdtINmR4xjT6GD9etNU0NJgQ + piL0hv7Z+MJSVjvO2Xoz7Vo1jIU5DAJDtxg/XFUsrqs8jJKZAHHZaoE8B3l7N8mT + bG6PshNzFRHuslTlGncruGuACHxv6gXnyIlX6sjGTq0XxewlsIo53n1b2dzoQrZp + XT+i75SJ/S87u8NGtg0jXd8etCwYQD0dF/7rLbkCX6R9b2d4UH8fI8SgPY/4rb0B + TOogzsJCuCLj1l3RYuW8sW/TZcO375A9 + =0QA5 + -----END PGP PUBLIC KEY BLOCK----- + +<!-- [Télécharger ma clé publique PGP](http://198.199.122.108:8000/f/5e5b2894e5/). --> diff --git a/content/index.md b/content/index.md @@ -0,0 +1,55 @@ +--- +title: Hugo Soucy, développeur Web frontend qui habite la ville de Québec, et ceci est sa page Web +date: null +--- + +Bonjour et bienvenue, ici se trouve le port d'attache d'un +[ouvrier numérique](file/curriculum-vitae), un endroit où il n'y a +rien à vendre; pas de photo de mon manger foody; pas de liste des 10 +meilleurs je-ne-sais-quoi; pas de conseil pour lancer une startup et +devenir milliardaire en deux coups de cuillière à pot ... Seulement un +<a class="u-uid" href="//hugo.soucy.cc#hs" rel="me"><abbr +title="Uniform Resource Identifier">URI</abbr></a>. + +En ligne, je me manifeste généralement sous le pseudo <strong +class="p-nickname" property="foaf:nick">hs0ucy</strong>. Toutefois, +vous ne me verrez plus sur <a +href="https://fr.wikipedia.org/wiki/Critiques_de_Facebook" +rel="external nofollow">Facebook</a>. Mais je suis sur <span +typeof="foaf:OnlineAccount" property="foaf:account"><a +href="https://bandcamp.com/hs0ucy" property="foaf:accountProfilePage" +rel="external nofollow me"><span +property="dc:title">Bandcamp</span></a></span>, <span +typeof="foaf:OnlineAccount" property="foaf:account"><a +href="https://framasphere.org/u/hs0ucy" +property="foaf:accountProfilePage" rel="external nofollow me"><span +property="dc:title">Diaspora*</span></a></span>, Freenode et <span +typeof="foaf:OnlineAccount" property="foaf:account"><a +href="http://twitter.com/hs0ucy" property="foaf:accountProfilePage" +rel="external nofollow me"><span +property="dc:title">Twitter</span></a></span>. Hors ligne, on peut me +croiser dans les rues de <span +typeof="http://schema.org/PostalAddress" property="address"><strong +class="p-locality" property="addressLocality">Québec</strong></span>. + +<span class="p-note"> +Dans ma soupe je vois le <span rel="foaf:interest"><strong +resource="http://dbpedia.org/resource/FLOSS">FLOSS</strong>, l'<strong +resource="http://dbpedia.org/resource/IndieWeb">IndieWeb</strong>, le +<strong +resource="http://dbpedia.org/resource/Peer-to-peer">Peer-to-peer</strong>, +la <strong +resource="http://dbpedia.org/resource/Cryptography">cryptographie</strong>, +<strong resource="http://dbpedia.org/resource/Emacs">Emacs</strong>, +<strong +resource="http://dbpedia.org/resource/OwnCloud">ownCloud</strong>, le +<strong +resource="http://dbpedia.org/resource/JavaScript">JavaScript</strong>, +la <strong +resource="http://dbpedia.org/resource/Politics">politique</strong> +sans les politiciens, la <strong +resource="http://dbpedia.org/resource/Reading_(process)">lecture</strong>, +le <strong resource="http://dbpedia.org/resource/Bicycle"><span +property="dc:title">vélo</span></strong> et les <strong +resource="http://dbpedia.org/resource/Sandwich">sandwichs</strong></span> +</span>. diff --git a/content/note b/content/note @@ -0,0 +1 @@ +/home/hs0ucy/ownCloud/_Sync/notes+ \ No newline at end of file diff --git a/content/txt/bronto-politiciens-de-silos.md b/content/txt/bronto-politiciens-de-silos.md @@ -0,0 +1,14 @@ +--- +title: Bronto politiciens de silos +date: 2014-04-03 +--- + + +Bronto-politiciens de silos +=========================== + +Les politiciens traitent les sujets comme s'ils étaient en silos; comme si il n'y avait pas de rapport en eux. Mais tout est tissé dans la même trame: la trame de la société. Comment peut-on mettre l'emphase sur le système de santé et faire abstraction du sport, de l'alimentation, de l'environnement? On s'attaque au traitement en faisant fi des causes. On veut combattre la corruption sans miser sur la transparence des données gouvernementales. + +On parle d'économie, mais on ne s'applique pas à diversifier l'économie des régions comme la Gaspésie, la Côte-Nord, l'Abitibi, le Lac-Saint-Jean, etc. Loin des grands centres les services sont souvent compromis, les jeunes quittent pour étudier et ne reviennent jamais. Est-ce qu'on maintient ces régions faibles économiquement et démographiquement pour les rendre moins résistantes aux grosses compagnies minières, pétrolières, forestières, lorsque celles-ci ont besoins de faire des milliards avec les ressources de notre territoire?! + +Les politiciens disent qu'ils ont de de la vision. Pour ma part, je crois que cette vision se résume à regarder un agenda dans lequel est écrit quelques directives pour maintenir les citoyens dans un statu quo. De cette façon, les brontosores politiques et économiques peuvent continuer à s'engraisser pour maintenir leur stature éléphantesque, et ainsi cacher la forêt qui se meurt. Tandis que les moyens et petits s'agitent pour survivre à l'ombre des mastodontes. diff --git a/content/txt/emacs/emacs-101-l-introduction.md b/content/txt/emacs/emacs-101-l-introduction.md @@ -0,0 +1,254 @@ +--- +title: Emacs 101 - l'introduction +date: 2015-06-28 +--- + +Emacs 101 - l'introduction +========================== + +Apprendre [Emacs](http://www.gnu.org/software/emacs/) peut être perçu +comme quelque chose de difficile. Pour ma part, je ne considère pas +cela comme difficile, non. Mais cela demande certainement du temps. + +Premièrement, il faut du temps pour découvrir cet envrionnement et +apprendre les concepts qui le compose. Il faut aussi du temps pour +connaître par coeur les commandes de base. Notre tête et nos doigts +doivent s'y habituer pour sortir du joug de la souris. Car c'est bien +cela l'avantage de maîtriser son éditeur texte : gagner en +productivité. + +Et passer moins de temps à faire des aller-retours entre la souris et +le clavier apporte définitivement un gain en productivité. + +Comme par exemple, si je veux sélectionner un paragraphe, le couper et +le coller à fin du document. Je peux utiliser le clavier et la souris +... ou seulement la souris. Toutefois avec Emacs je ferais la série de +commandes suivantes (`C-` correspond à la touche `Ctrl` et `M-` +correspond à la touche `Alt`) : + +1. `M-a`, pour placer mon curseur au début au paragraphe; +2. `M-k`, pour couper une paragraphe vers l'avant (l'inverse serait +`C-x <DEL>`); +3. `M->`, pour me rendre à la fin du document; +4. `C-y`, pour finalement coller le paragraphe. + +Dans les premiers temps ce type de séquence vous paraîtra beaucoup +moins efficace que vos anciennes habitudes, mais si vous persévérez +dans l'apprentissage d'Emacs, après quelques semaines vous exécuterez +ce genre de tâche avec rapidité et fluidité. + +Selon-moi le meilleur moyen d'apprendre les commandes de base, est de suivre le +tutoriel officiel qui est directement intégrer dans Emacs. Pour y +accéder, tapez `M-x`, puis entrez la commande +`help-with-tutorial-spec-language`; un choix de langue vous sera +offert. + +Ce tutoriel interactif vous apprendra les bases pour atteindre le +bonheur et le confort dans votre nouvel éditeur texte préféré : + +* Démarrer et fermer Emacs. +* Les commandes de bases pour vous déplacer dans le texte et l'éditer. +* Ouvrir et sauvegarder des fichiers. +* Les concepts qui composent Emacs : windows, frames, files, buffers, etc. +* Invoquer des fonctions avec la commande `M-x`. +* Etc. + +Buffers, windows et frames +------------------------- + +Avant d'enter dans les commandes de déplacement et d'édition, je crois +qu'il faut d'abord que je vous explique ce qu'est un **buffer**, une +**window** et un **frame**. Ces concepts sont parfois un peu déroutant +pour le nouveau venu dans Emacs ... + +### Buffers ### + +Premièrement, on peut avoir plusieurs buffers ouverts en même +temps. Habituellement un buffer représente le contenu d'un fichier, +mais il peut être aussi de l'information en provenance de +l'application, comme par exemple le buffer *Messages*, toujours +présent à l'ouverture d'Emacs. + +Les buffers sont visibles travers les fenêtres (windows). Pour passer +à un autre buffer et l'afficher dans la fenêtre courante vous devez +faire la commande `C-x b`. Cela a pour conséquence de déplacer le +curseur vers le **minibuffer** et d'afficher un message qui ressemble +à "Switch to buffer (default *scratch*)". + +À partir de là, vous pouvez taper le nom du buffer vers lequel vous +voulez basculer. Pour afficher la liste de ceux qui sont ouverts +appuyez sur la touche `Tab`. + +Pour quitter le minibuffer, annuler la commande en cours et retourner +le curseur dans le buffer faîtes `C-g`. + +Il est aussi possible de lister directement tous les buffers qui sont +actifs en tapant `C-x C-b`. + +### Windows et frames ### + +Dans Emacs une fenêtre (window) n'est pas une fenêtre comme on +l'entend dans un contexte de système d'exploitation; dans ce cas on +parlerait plutôt d'un cadre (frame). La fenêtre est une vue sur un +buffer, et il est possible d'avoir plusieurs fenêtres dans un seul +cadre, ce qui permet d'afficher de multiple buffers en même temps. + +Bien sûr il y des commandes pour créer ou supprimer des fenêtres, se +déplacer dans chacune d'elle, +[modifier leur taille, etc](http://www.gnu.org/software/emacs/manual/html_node/emacs/Change-Window.html). + +* Nouvelle fenêtre horizontale : `C-x 2`. +* Nouvelle fenêtre verticale : `C-x 3`. +* Fermer toutes les fenêtres sauf la fenêtre courante : `C-x 1`. +* Fermer la fenêtre courante : `C-x 0`. +* Naviguer d'une fenêtre à l'autre : `C-x o`. + +Si vous voulez un nouveau cadre et non une nouvelle fenêtre, la +commande est `C-x 5 2`. + +### Minibuffer ### + +Le **minibuffer** quant à lui est l'espace, sous la barre de status, +où vous interagissez avec Emacs : entrer une commande, donner un +valeur à un argument, recevoir de l'info, etc. Dans le minibuffer vous +avez accès aux mêmes fonctionnalités que dans n'importe quel buffer. + +*Rappel : Pour quitter le minibuffer, annuler la commande en cours et +retourner le curseur dans le buffer faîtes `C-g`.* + +Les commandes de base +--------------------- + +Voici une liste des commandes que vous devez maîtriser pour être +efficace dans Emacs. Il est aussi intéressant de savoir que, plusieurs +commandes Emacs de base fonctionneront dans n'importe quel terminal +Linux ou BSD. Donc en les apprenant, vous devenez également un +meilleur utilisateur UNIX. + +D'abord, rappelons que `C-` correspond à la touche `Ctrl` et que `M-` +correspond à la touche `Alt`. Donc `C-k` est semblable à `Ctrl + k`. + +### Ouvrir, créer, sauvegarder et fermer des buffers ### + +* Ouvir ou créer un fichier : `C-x C-f`. +* Sauvegarder le buffer courant : `C-x C-s`. +* Sauvegarder tous les buffers ouverts : `C-x s`. +* Enregistrer-sous : `C-x C-w`. +* Fermer un buffer : `C-x k`. + +### Se déplacer dans un buffer ### + +* Caratère suivant : `C-f`. +* Caratère précédent : `C-b`. +* Ligne suivante : `C-n`. +* Ligne précédente : `C-p`. +* Début d'une ligne : `C-a`. +* Début d'une ligne indentée : `M-m`. +* Fin d'une ligne : `C-e`. +* Mot suivant : `M-f`. +* Mot précédent : `M-b`. +* Phrase précédente : `M-a`. +* Phrase suivante : `M-e`. +* Page précédente : `M-v`. +* Page suivante : `C-v`. +* Début du buffer : `M-<`. +* Fin du buffer : `M->`. +* Aller à une ligne en particulier : `M-g g`. + +### Chercher / Remplacer ### + +* Recherche vers la fin du fichier : `C-s` (répéter la commande pour + l'occurrence suivante). +* Recherche vers le début du fichier : `C-r` (répéter la commande pour + l'occurrence précédente). +* Remplacer : `M-%`, + * `y` pour remplacer la correspondance en cours; + * `n` pour aller à la prohcaine correspondance sans remplacer; + * `q` pour sortir du processus de remplacement courant; + * `.` pour remplacer la correspondance en cours puis quitter le + processus; + * `!` pour tout remplacer sans aucune autre question. +* Chercher dans plusieurs fichiers : `M-x rgrep`. + +### Effacer ### + +* Effacer le mot suivant : `M-d`. +* Effacer le mot précédant : `M-Backspace`. + +### Sélectionner ### + +* Indiquer le début (point) d'une sélection (mark) : `C-Spacebar`. +* Sélectionner tout le paragraphe : `M-h`. +* Sélectionner tout le buffer : `C-x h`. +* Sélectionner une fonction : `C-M-h`. +* Modifier une sélection : `C-x C-x`. + +Notez que l'on peut faire des actions spécifiques à une région qui est +marquée. Ex.: Des undo, des trouver/remplacer, des recherches, etc. + +### Couper / Copier / Coller ### + +Dans le jargon Emacs les termes couper et coller sont remplacé par +"kill" et "yank". + +* Couper : `C-w`. +* Copier : `M-w`. +* Coller : `C-y`. +* Couper une ligne : `C-k`. +* Couper une phrase (vers l'avant) : `M-k`. +* Couper une phrase (vers l'arrière) : `C-x <DEL>`. +* Couper une région : `C-w`. + +Emacs garde en mémoire tout ce qui a été couper et copier et lorsque +vous collez vous avez accès à cet historique. Pour cela il suffit de +coller une première fois avec `C-y`, puis ensuite faire `M-y` pour +coller l'item de l'historique suivant. Cette "mémoire" se nomme **kill +ring**. Cette fonctionnalité est une particularité très puissante et +très utile de Emacs. + +### Undo ### + +Il y a trois combinaisons possibles pour invoquer la fonction undo ... + +* Undo : `C-x u` ou `C-/` ou `C-_`. + +À la base Emacs n'offre pas de fonction "redo" je crois. Mais il y a +une extension qui s'appelle **undo-tree** qui étend les +fonctionnalités de base à ce niveau. + +### Changements de casse ### + +* Premier caractère en majuscule : `M-c`. +* Mot en majuscule : `M-u`. +* Mot en minuscule : `M-l`. + +### Permutations ### + +* Intervertir deux lettres : `C-t`. +* Intervertir deux mots : `M-t`. +* Intervertir deux lignes : `C-x C-t`. + +### Auto-Complétion ### + +* Auto-complétion d'un mot se trouvant déjà dans un buffer : `M-/`. + +### Aide ### + +* Tutorial Emacs : `F1 t`. +* Documentation : `F1 r`. +* Description d'une commande : `F1 k` ou `C-h k`. +* Description d'une fonction : `F1 f` ou `C-h f`. + +Conclusion à cette introduction +------------------------------- + +Vous vous doûtez bien qu'il s'agit ici que d'un survol très sommaire +des commandes et des fonctionnalités d'Emacs. D'autres billets +viendront complétés celui-ci, en choisissant d'explorer des aspects +plus précis. + +Ceci dit, j'espère que vous allez essayer et aimer Emacs. Au départ, +je vous suggère d'expérimenter et appliquer les notions que vous avez +apprisent dans des fichiers de configuration ou sur des projets +personnels, avant d'en faire votre éditeur de tous les jours ... Si +vous percévérez vous ne pourrez plus vous en passer. diff --git a/content/txt/emacs/emacs-101-la-configuration.md b/content/txt/emacs/emacs-101-la-configuration.md @@ -0,0 +1,182 @@ +--- +title: Emacs 101 - la configuration +date: 2015-06-30 +--- + +Emacs 101 - la configuration +============================ + +Un apsect essentiel et extrèmement puissant +d'[Emacs](http://www.gnu.org/software/emacs), est sa capacité à être +personnalisé et à être étendu en fonctionnalité. La configuration et +l'ajout de nouvelles fonctions se fait avec un langage de +programmation qui s'appelle le **Emacs lisp** ou **elisp**. Les +fichiers écris en elisp se termine par l'extension `.el`. + +Au démarrage, Emacs vérifie si il existe des fichiers elisp qui lui +indiquerait des particularités d'initialisation dont il doit tenir +compte. Pour se faire il va chercher si un des fichiers suivants +existent à la racine du répertoire utilisateur : `~/.emacs`, +`~/.emacs.el`, ou `~/.emacs.d/init.el`. C'est dans ce fichier que l'on +doit indiquer au programme nos préférences d'utilisation. + +Vous pouvez choisir la forme de fichier de configuration qui vous +plaira, mais la dernière forme est considérée comme faisant partie des +bonnes pratiques, car elle permet de regrouper en un seul répertoire +tous les fichiers nécessaires à la personnalisation d'Emacs. +D'ailleurs le répertoire `.emacs.d` est généré par défaut, donc il ne +vous reste plus qu'à y ajouter votre fichier `init.el`. + +Création du fichier `init.el` +----------------------------- + +Tout d'abord, rappelons que `C-` correspond à la touche `Ctrl` et que +`M-` correspond à la touche `Alt`. Donc `C-k` est semblable à `Ctrl + +k`. + +Nous allons maintenant créer le fichier `init.el` qui nous permettra +de personnaliser Emacs à votre convenance : + +1. Ouvrir Emacs. +2. Exécuter la commande `C-x C-f` (ouvrir ou créer un fichier). +3. Le pointeur est déplacer vers le minibuffer, où il est indiqué + "Find file: ~/". +4. Écrivez alors `.emacs.d/init.el` puis tapez sur `Entrée`. Si vous + vous êtes trompé ou que vous ne comprenez pas ce qui se passe, + faîtes `C-g` pour sortir du minibuffer et recommencez. +5. Si tout c'est bien passé, vous avez basculé vers un nouveau fichier + vierge et le pointeur n'est plus dans le minibuffer. +6. Faîtes `C-x C-s` pour enregistrer `init.el` sur le disque. + +Dès lors nous sommes en mesure de commencer notre personnalisation de +Emacs. + +Nos premières modifications +--------------------------- + +En démarrant Emacs vous avez peut-être remarqué que le programme +s'ouvrait avec une page de bienvenue et que la marge ne contenait pas +de numéros de ligne. Nous allons donc changer ces deux paramètres pour +commencer; car vous l'avourez, c'est bien pratique des numéros de +ligne lorqu'on écrit du code et la page de bienvenue n'est pas très +jolie ;) + +### Ajouter les numéros de ligne ### + +Pour ajouter des numéros dans la marge, ajoutez les deux lignes de +code suivantes à votre fichier `init.el`. + + ;; Add line numbers + (global-linum-mode 1) + +La première ligne est simplement un commentaire pour indiquer quel est +le rôle de la ligne suivante. D'ailleurs je vous conseille de toujours +commenter ce que vous faîtes dans votre fichier de configuration +personnel; il sera alors plus facile de vous y retrouver au fil du +temps. + +La deuxième ligne, vous l'aurez deviné, est une instruction qui +indique à Emacs d'afficher les numéros de ligne dans la marge. + +Pour voir les changements immédiatement, tapez `M-x load-file`, puis +faîtes `Entrée`. Cette commande réexécutera votre fichier +`init.el`. Sinon vous devez redémarrer le programme pour que la +nouvelle instruction soit effective. + +#### Surligner la ligne courante #### + + ;; Highlight Current Line + (global-hl-line-mode +1) + +#### Retirer la barre de défilement (scroll) #### + + ;; Disable scroll bars + (scroll-bar-mode -1) + +### Changer la page d'accueil ### + +Pour remplacer l'écran de démarrage par un autre buffer, il faut d'abord +désactiver la valeur par défaut et ensuite indiquer avec quoi nous +voulons le remplacer : + + ;; Remove splash screen on startup + (setq inhibit-splash-screen t) + ;; Have dired open instead + (dired "~/") + +Vous les aurez reconnus, la première et la troisième ligne sont des +commentaires qui annonces ce que nous allons modifier et/ou ajouter. + +La deuxième ligne elle, change la valeur par défaut de la variable +`inhibit-splash-screen` à `t` (`vrai` en elisp) qui par défaut est à +`nil` (`nul` en elisp). Le nom de cette variable se traduirait par +«empêcher l'écran de démarrage». + +Avec la quatrième ligne nous indiquons à Emacs d'ouvrir le répertoire +utilisateur (`~/`) dans le gestionnaire de fichier (dired). Vous +pouvez ainsi ouvrir le dossier de votre choix ou vous pourriez ouvrir +directement un fichier avec la fonction `find-file` au lieu de la +fonction `dired` : + + ;; Remove splash screen on startup + (setq inhibit-splash-screen t) + ;; Have a file instead + (find-file "~/.bashrc") + +Installer des extensions avec le gestionnaire de paquet +------------------------------------------------------- + +Depuis la version 24 un gestionnaire de paquets est inclu par +défaut. Le but de ce gestionnaire est de faciliter l'intallation, +l'utilisation et la mise à jour d'extensions, de thèmes, de mode pour +Emacs. + +Pour afficher le gestionnaire de paquets vous devez taper la commande +`M-x package-list`, puis faire `Entrée`. Le buffer `*Packages*` +s'ouvrira; celui-ci est un tableau contenant l'archive par défaut qui +porte le nom de <abbr title="Emacs Lisp Package +Archive">ELPA</abbr>. Pour avoir la description complète d'un paquet +déplacez le curseur vis-à-vis celui-ci, puis appuyez sur +`Entrée`. Pour marquer un paquet à installer faîtes `i`; pour +compléter l'installation ou tout autre action appuyez sur la touche +`x`. + +### Ajouter des archives ### + +ElPA, c'est bien, mais il ne contient pas tout ce qui pourrait nous +intéresser. Donc pour étendre l'offre des paquets il faut ajouter des +archives à notre gestionnaire! Et MELPA et Marmalade sont deux des +archives les plus fréquenter et fréquentables du moment. + +Ce qui nous ramène donc à notre fichier `init.el` ... À la fin de +celui-ci coller le bloc de code suivant : + + (when (>= emacs-major-version 24) + (require 'package) + (package-initialize) + (add-to-list 'package-archives '("melpa-stable" . "http://melpa-stable.milkbox.net/packages/") t) + (add-to-list 'package-archives '("marmalade" . "https://marmalade-repo.org/packages/")) + ) + +... + +--- + +* Installer des paquets en provenance d'Elpa, Melpa stable et Marmelade. +* Ibuffer. +* Thème : décore ta vie. + +--- + +<!-- Les prochains billets --> +<!-- * Emacs 301 : --> +<!-- * Développement Web avec Emacs. --> +<!-- * Emacs 401 : --> +<!-- * Dired, le gestionnaire de fichier. --> +<!-- * Emacs 501 (etc, etc): --> +<!-- * Keybinding. --> +<!-- * Emacs est sexy ! --> +<!-- * Org-mode. --> +<!-- * Ediff --> +<!-- * Git avec Magit. --> +<!-- * Projectile. --> diff --git a/content/txt/les-partis-politiques-nuisent-ils-a-la-democratie.md b/content/txt/les-partis-politiques-nuisent-ils-a-la-democratie.md @@ -0,0 +1,27 @@ +--- +title: Les partis politiques nuisent-ils à la democratie? +date: 2014-02-19 +--- + +Les partis politiques nuisent-ils à la democratie? +=================================================== + +La ligne de parti, l'antagonisme obligé par les règles tacites de la joute politique. Avoir le dessus sur ses adversaires semble plus important que la résolution de problème et l'avancement du bien commun. Les partis idéologiques qui prennent en otage tout l'appareil gouvernemental pour imposer leurs agendas cachés ou non. Les députés qui, une fois élus se font imposés les décisions du conseil des ministres, ou pire, les ordres du premier ministre et de sa garde rapprochée, composée bien souvent par des gens non désignés par le processus démocratique. + +Tous ces députés que l'on qualifie [d'arrière-ban](http://www.assnat.qc.ca/en/patrimoine/lexique/depute-de-l-arriere-ban.html), sont pourtant les représentants élus par les citoyens d'une démocratie; il serait donc légitime de croire que chacun de ces députés aient droit au chapitre et que la voix de chacun possède un poids équivalent. Mais dans notre système parlementaire de type britannique il n'en n'est rien. Ici le premier ministre est comme un suzerain dont les membres de son parti seraient comme des vassaux. Et quand vient le temps de voter en chambre, la volonté du chef et de son cocus s'impose à l'ensemble. + +En plus ça a l'avantage de faciliter la tâche de ceux qui veulent influencer les politiques en leur faveur, car cela fait moins de gens à convaincre si l'on permet à une minorité de commander à la majorité. + +Et comment sont choisi les chefs d'un parti? L'argent est ce qui fait indéniablement la différence. Comment une personne choisit par une poignée de citoyens et des collecteurs de fonds peut-il avoir la légitimité de parler en faveur de toute la population? C'est un concours de popularité qui n'a que peu de valeur politique. En plus dans certains partis il n'est pas question de courses à la cheffrie, mais bel et bien de courrenement. La plupart du temps le chef du gouvernement n'a eu l'appui que de 40% de la population et il détient presque tous les pouvoirs! + +À part le suffrage universel, il n'y pas grand chose de démocratique dans ce type de régime. + +Un premier ministre ou un président devrait être seulement un porte-parole pour l'état et l'assemblée nationale; il ne devrait pas avoir plus de pouvoir que n'importe quel autre député. Même s'il n'est pas d'accord il devrait se plier aux décisions de l'ensemble des élus. Point barre. Il n'a pas à être un César ou un Napoléon. + +Des élections à dates fixes, pas de gouvernement majoritaires ou minoritaires... Seulement des élus qui gouvernent pour le bien de la nation et non celui d'un parti ou de groupes d'intérêts. + +Les partis politiques peuvent être inféodés et avalés par d'autres partis. C'est ce qui est arrivé à l'ADQ qui a été fusionné avec la CAQ. C'est également ce qui s'est passé avec le parti progressite conservateur, avalé lui aussi par le reform party et qui a changé l'idéologie de l'ancien parti conservateur. + +Bien sûr je sais que les droits humains permettent à toute personne de s'associer librement. Qui alors empêcherait les gens de s'associer endehors du processus politique? D'abord il faudrait que le pouvoir ne soit plus influençable par les ploutocrates. + +Voulons-nous encore de la démocratie? Est-ce que les élites médiatiques, économiques, académiques et syndicales croient ou veulent vraiment de la démocratie? Voient-ils en elle un processus en constante évolution? Un idéal à atteindre? Ou considèrent-ils qu'au-delà des urnes et des sondages le peuple ne peut réclamer plus de pouvoir? Peut-être que je me trompe, mais je ne vois pas beaucoup les élites que j'ai nommé plus haut, demander la décentralisation de la gouvernance. Le statu quo est à leur avantage. diff --git a/content/txt/mes-logiciels-libres-preferes.md b/content/txt/mes-logiciels-libres-preferes.md @@ -0,0 +1,33 @@ +--- +title: Mes logiciels libres préférés +date: 2014-09-24 +--- + +Mes logiciels libres préférés +============================= + +Voici une courte liste des logiciels libres que j'aime et que j'utilise : + +* [Arch Linux](//www.archlinux.org/) &mdash; Jusqu'à maintenant c'est + la distribution GNU/Linux que je préfère. +* [Emacs](//www.gnu.org/software/emacs/) &mdash; L'outil parfait pour + manipuler du texte, donc par ricochet, du code. Avec mon navigateur, + c'est mon principal outil de travail. Selon moi, tous les + développeurs devraient apprendre Emacs et/ou Vim ;) D'ailleurs, + voici mes + [notes personnelles à propos d'Emacs](https://github.com/hs0ucy/emacs-notes). +* [Firefox](//www.mozilla.org/en-US/firefox/new/) &mdash; Cela fait + plus de 10 ans que j'utilise ce navigateur. Nous sommes un vieux + couple que Google Chrome n'a pas sû séparer. +* [Terminator](//code.google.com/p/jessies/wiki/Terminator) &mdash; + Terminal virtuel qui permet d'avoir plusieurs terminals dans une + même fenêtre. +* [Alpine](//www.washington.edu/alpine/) &mdash; Client de messagerie + électronique pour terminal. Vraiment bien foutu et très plaisant à + utiliser. +* [WeeChat](//weechat.org/) &mdash; Client de clavardage IRC pour + terminal, léger et rapide. +* [KeepassX](//www.keepassx.org/) &mdash; Gérer simplement des mots de + passe. +* [ownCloud](//owncloud.org/) &mdash; Alternative à Dropbox, qu'on + peut installer sur son serveur VPS.