Outils pour utilisateurs

Outils du site


issue112:c_c

Tools

Recently, I’ve made a number of changes to my approach when it comes to coding or my environment in general. Therefore, I wanted to spend this month’s C&C discussing the tools I use, and some tips that make my life easier. Tools As many of you probably already know - I’m a programmer with a current focus on web development. As such, most of these tools are geared towards that.

J'ai récemment fait de nombreux changements dans mon approche du codage ou de mon environnement en général. Ainsi, je voulais profiter du C&C de ce mois-ci pour discuter des outils que j'utilise et de quelques trucs qui rendent ma vie plus facile.

Outils

Comme beaucoup d'entre vous le savent sans doute déjà, je suis un programmeur avec actuellement un intérêt particulier dans le développement Web. C'est pour cela que la plupart de ces outils sont orientés dans cette direction.

• Atom (http://atom.io) - Created by the folks from GitHub, it offers a similar feature set as Sublime Text, but is free and open source. It’s built on web technologies, so I have noticed it being slower than Sublime when opening massively huge files. However, it has such a swath of plugins, that there’s not much it can’t do. My key plugins are: emmet, git-plus, project-manager, and terminal-plus. The rest of the plugins are typically syntax highlighting (and one JS linter). • Docker (http://www.docker.com/) - This is a containerization system. What this means, is that you can set up software and environments in a container form, which is a step removed from a virtual machine. The difference here is that Docker requires a Linux Kernel, and then passes direct access of the kernel to the container. This is both more efficient, and faster, than something like Vagrant. Best of all - the containers are moveable. • Caffeine (https://launchpad.net/caffeine) - Most people probably already know this one, but it’s a statusbar application that prevents the display from going to sleep. Extremely useful if you’re trying to read something off a monitor while doing something else (in my case, reading wiring schematics off a PDF while soldering). This avoids the need for the “mouse nudge”.

• Atom (http://atom.io) : Créé par les gens de GitHub, il offre des fonctionnalités similaires à Sublime Text, mais il est gratuit et Open Source. Il est construit sur des technologies Web et j'ai donc remarqué qu'il était plus lent que Sublime Text lors de l'ouverture d'énormes fichiers. Cependant, il a une telle sélection de greffons, qu'il n'y a pas grand chose qu'il ne puisse faire. Mes greffons préférés sont : emmet, git-plus, project-manager et terminal-plus. Le reste des greffons servent généralement à la coloration syntaxique (et un analyseur de JavaScript).

• Docker (http://www.docker.com/) : C'est un système de conteneurs. Cela signifie que vous pouvez configurer des logiciels et des environnements sous forme de conteneurs, ce qui n'est pas tout à fait une machine virtuelle. La différence est que Docker tourne sur un noyau Linux, et passe ensuite l'accès direct au noyau vers le conteneur. C'est à la fois plus efficace, et plus rapide, que quelque chose comme Vagrant. Et, cerise sur le gâteau, les conteneurs sont déplaçables.

• Caffeine (https://launchpad.net/caffeine) : La plupart des gens le connaissent probablement déjà ; c'est une barre d'état qui empêche l'écran de passer en veille. Extrêmement utile si vous essayez de lire quelque chose sur un moniteur tout en faisant autre chose (dans mon cas, lire des schémas de câblage sur un PDF tout en soudant). Il évite le besoin de bouger la souris.

• AwesomeWM (https://awesome.naquadah.org/) - My tiling window manager of choice for a long time now. I typically run multiple desktop environments on my NUC, and switch to whichever is most useful for my tasks. However, almost all my productivity time (programming, testing, writing FCM articles, etc) are done in a tiling window manager. The reason for this is simple - when I’m working, I tend to tile my windows manually on any other computer, so being able to have it done automatically makes my life easier. I’ve also tried and used XMonad, DWM, i3, etc. I do tend to prefer the dynamic tiling systems, but the main reason I stick with Awesome is simple: I have my configuration file the way I like it, and it comes integrated with a system tray. If anyone has a recommendation for one that I may also like, feel free to let me know (my email is at the end of the article). • Bittorrent Sync (https://getsync.com/) - This is my primary method of sharing files between computers. Especially for files that I require for work - as Sync is a direct peer-to-peer sync, it avoids the privacy questions of storing it on an external server that I don’t control (such as Dropbox). Instead, I run it on my NUC, laptop, and a NAS that is always on. That way, the synchronisation is always available to me. • MPD (https://www.musicpd.org/) - The Music Player Daemon - it’s essentially a music server that runs in the background, and can be interfaced by a variety of front-end applications (such as mpc, or ncmpcpp). It’s my preference because it will remember playback location after a reboot, can be used from the command-line, and creates a database. My front-end of choice is ncmpcpp.

• AwesomeWM (https://awesome.naquadah.org/) : Mon gestionnaire de fenêtres en mosaïque préféré depuis longtemps. Je travaille généralement sur de multiples environnements de bureau sur mon ordi et passe vers celui qui est le plus utile pour ma tâche courante. Mais, presque tout mon temps de productivité (programmation, tests, rédaction d'articles du FCM, etc.) est passé dans un gestionnaire de fenêtres en mosaïque. La raison en est simple : quand je travaille, j'ai tendance à organiser mes fenêtres manuellement sur n'importe quel autre ordinateur ; aussi, être capable de le faire automatiquement rend ma vie plus facile. J'ai également essayé et utilisé XMonad, DWM, i3, etc. J'ai vraiment tendance à préférer les systèmes de gestion de fenêtres dynamiques, mais la principale raison pour laquelle je reste fidèle à Awesome est simple : après quelques ajustements, le fichier de configuration me convient parfaitement et il est livré avec une barre système. Si quelqu'un veut m'en recommander un autre qui pourrait éventuellement me plaire, qu'il se sente libre de m'en faire part (mon adresse mail est à la fin de l'article).

• Bittorrent Sync (https://getsync.com/) : C'est ma principale méthode de partage de fichiers entre ordinateurs. Surtout pour les fichiers dont j'ai besoin pour le travail ; puisque Sync est une synchronisation directe en peer-to-peer, ça évite la question de la confidentialité du stockage sur un serveur externe que je ne contrôle pas (comme Dropbox). Au lieu de cela, je le lance sur mon ordinateur, mon portable, et un NAS qui est toujours actif. De cette façon, la synchronisation est toujours disponible pour moi.

• MPD (https://www.musicpd.org/) : Le Music Player Daemon est essentiellement un serveur de musique qui tourne en tâche de fond et peut fonctionner avec un grand nombre d'applications frontales (comme mpc ou ncmpcpp). Il a ma préférence parce qu'il se souvient de l'emplacement de la lecture après un redémarrage, il peut être utilisé en ligne de commande, et il crée une base de données. L'interface graphique que je préfère est ncmpcpp.

Tips

Tips • Hack (Font) (http://sourcefoundry.org/hack/) - This is an absolutely superb monospace font for coding. I currently use it on all computers in Atom and in my terminal. I used to use Adobe’s Source Sans Pro, but since discovering Hack, I haven’t got it enabled anywhere anymore. • Markdown (https://daringfireball.net/projects/markdown/) - This is a mark-up language that I use for almost anything that I know will end up on a website. I can combine it with static site generators, or just quickly compile it into an HTML page (and therefore also save it as a PDF). • reStructuredText (http://docutils.sourceforge.net/rst.html) - Similar to Markdown, except I use this for most python-based projects (including a local readthedocs site I run, keeping my work project documentation organized).

Trucs

• Hack (Font) (http://sourcefoundry.org/hack/) : C'est une superbe police à chasse fixe pour le codage. Je l'utilise actuellement sur tous les ordinateurs Atom et sur mon terminal. J'avais l'habitude d'utiliser Source Sans Pro d'Adobe, mais, depuis la découverte de Hack, je ne l'ai plus activé nulle part.

• Markdown (https://daringfireball.net/projects/markdown/) : C'est un langage de balisage que j'utilise pour presque tout ce qui finira sur un site Web. Je peux le combiner avec des générateurs de sites statiques, ou tout simplement rapidement le compiler dans une page HTML (et donc aussi l'enregistrer au format PDF).

• reStructuredText (http://docutils.sourceforge.net/rst.html) : Semblable à Markdown, sauf que je l'utilise pour la plupart des projets Python (y compris un site local de manuels que je gère, pour garder ma documentation de projets organisée).

• Git/version control (https://git-scm.com/) - Using a version control system to keep your configuration files up to date and backed up is a pretty common practice. Saving it off-site on a private (or public) repository on Bitbucket or GitHub is a terrific way to make sure you’ve always got your important configuration files available. I also use it for managing my scaffolding for work projects (a scaffold is a bare bones project folder, containing all my task runner setup and folders). • Bash - Learning bash is extremely useful for automating tasks (using cron) or just grouping together a typical workflow (such as using imagemagick to crop an image, and then copying it to a new location). • Shell aliases - For a single command with a set of arguments you usually use, an alias is my preference (over a Bash script). I use this (for example) for keeping my various SSH logins straight.

• Git/version control (https://git-scm.com/) : L'utilisation d'un système de contrôle de version pour garder vos fichiers de configuration à jour et sauvegardés est une pratique assez courante. Les sauvegarder hors site sur un dépôt privé (ou public) sur Bitbucket ou GitHub est un excellent moyen de vous assurer d'avoir vos fichiers de configuration importants toujours disponibles. Je l'utilise aussi pour la gestion de mes squelettes de projets (un squelette est une structure de dossier de projet, contenant toute ma configuration de tâches et de dossiers).

• Bash : Apprendre bash est extrêmement utile pour automatiser des tâches (en utilisant cron) ou tout simplement pour regrouper un flux de travail typique (comme utiliser ImageMagick pour recadrer une image, puis la copier vers un nouvel emplacement).

• Les alias du Shell : Pour une commande seule avec un ensemble d'arguments que vous utilisez habituellement, je préfère un alias à un script Bash. Je l'utilise, par exemple, pour garder une vue d'ensemble de mes différentes connexions SSH.

• Keyboard shortcuts - This is a very generic point, certainly. However, when I’m busy working (especially in a tiling window manager), I hardly ever need to touch my mouse. I find this to be the most efficient way to work for me. When first setting up an environment, it’s not uncommon for me to spend a good hour or two setting up shortcuts and reorganizing default ones so that they don’t conflict, and I can easily reach any important combination as fast as possible. I hope this article proves to be interesting for some readers. If you’ve got your own preferences, you’re of course welcome to stick to those! However, this article is geared towards anyone who is looking for recommendations. If you have any questions (or feel I should look at an alternative), feel free to email me at lswest34+fcm@gmail.com.

• Raccourcis clavier : voilà un sujet bateau. Mais, quand je suis occupé à travailler (en particulier avec un gestionnaire de fenêtres en mosaïque), je n'ai presque jamais besoin d'utiliser ma souris. Je trouve, pour ce qui me concerne, que c'est la façon la plus efficace de travailler. Lors de la première mise en place d'un environnement, il n'est pas rare que je passe une bonne heure ou deux à la mise en place des raccourcis et à la réorganisation de ceux par défaut de sorte qu'il n'y ait pas de conflit, et je peux facilement atteindre une combinaison importante aussi vite que possible.

J'espère que cet article s'est révélé intéressant pour certains lecteurs. Si vous avez vos propres préférences, vous pouvez bien sûr les garder ! Toutefois, cet article est destiné à tous ceux qui recherchent des conseils. Si vous avez des questions (ou pensez que je devrais étudier une alternative), n'hésitez pas à me contacter à lswest34+fcm@gmail.com.

issue112/c_c.txt · Dernière modification : 2016/09/08 14:38 de andre_domenech