10 logiciels « must-have » avec un nouveau Mac pour un gars de IT

Je suis un fanatique de la secte Apple depuis le iPhone. Je me suis graduellement adapté, et j’ai fait le grand saut en janvier 2011: passer de PC à Mac pour mon laptop.

Si vous aussi vous faites le saut et que vous êtes un « heavy-user » de votre machine de par votre travail, voici ma courte liste de logiciels « must-have » sur votre nouveau Mac.

1. 1Password

1Password pour Mac

Ce logiciel m’a été fortement recommandé par un ami en sécurité informatique, @gepeto42 BinaryFactory.ca.

Dans ce logiciel, je stocke tous mes mots de passe, les clés de logiciel qu’on achète, le code de mon coffre-fort que j’oublie constamment, les numéros de passeport des membres de ma famille, numéros de cartes de débit et crédit que j’utilise rarement, etc… Les données sont aussi synchronisées sur mon iPhone et iPad grâce à Dropbox.

Non, même si vous volez mon laptop vous ne pourrez pas accéder à ces données. Elles sont cryptées et protégées par un très long mot de passe. Et si vous voliez mon iPhone, ça serait pire: 3 mots de passe différents vous sépareront de ces précieuses données cryptées.

Quand je me crée un compte sur un nouveau site, je vais dans ce logiciel pour qu’il me génère un très long mot de passe et le stocke. Ainsi, la prochaine fois je n’aurai qu’à appuyer sur le bouton 1Password du navigateur pour me connecter. Et si un site duquel je suis membre a une fuite, mes autres comptes sont protégés (voir exemple mots de passe piratés de LinkedIn et DropBox).

2. DropBox

DropBox pour Mac

Je connais ce service depuis très longtemps. Et j’ai hésité très longtemps avant de devenir membre. Je suis comme ça, un « early adopter » de technologie, mais qui aime « voir, avant de croire ».

Donc 1Password m’a en quelque sorte obligé à ouvrir un compte sur DropBox. Ensuite, j’ai voulu envoyer des fichiers de grande taille par courriel, j’ai donc utilisé le pratique dossier « public » de DropBox et j’ai copié-collé le lien dans un courriel.

Puis j’ai voulu que mes données NeatCosoient partagées entre mes ordinateurs (du temps où NeatCloud n’existait pas). Puis j’ai voulu avoir des PDF à disposition en tout temps sur mon iPad (guides touristiques, etc…) et j’y ai stocké.

Et puis alors DropBox a décidé d’augmenter les limites de comptes à 100Go pour le plus petit compte. J’y ai donc mis en HD toutes mes photos familiales en guise de « back-up » hors de ma maison. C’est réellement rendu un logiciel « must-have » sur mon Mac !

3. WhatSize

WhatSize pour MacC’est un peu bizarre de parler d’un logiciel de la sorte et de le mettre dans mon « top 10 », mais c’est bien utile quand tu as un Macbook Air avec un petit disque dur SSD.

Les deux premières générations de Macbook Air n’avaient que 128 Go de disque dur par défaut. Maintenant, 256 Go est la norme. C’est ce que je j’ai comme configuration, et malgré tout je suis toujours sur la limite.

Avec WhatSize, je peux facilement visualiser l’endroit qui me coûte cher en stockage et faire le ménage…

4. TeamViewer

teamviewer pour MacIl va toujours avoir quelqu’un qui va avoir besoin de notre aide pendant qu’on est en voyage. Cette application permet facilement de contrôler l’ordinateur d’un autre à distance et même d’y transférer des fichiers !

On peut controller à distance un Mac ou un PC, à partir d’un Mac ou d’un PC.

5. Remote Desktop for Mac

Windows Remote Desktop pour MacMicrosoft n’est pas stupide: même si certaines personne quittent leur secte Windows pour un Mac, ils savent qu’il restera possiblement des machines Windows en entreprise, et surtout des serveurs Windows… pensons au Domain Controller, par exemple.

Il est donc toujours possible d’accéder à ces machines désuètes (mon commentaire) grâce à une version de Windows Remote Desktop que Microsoft permet de télécharger gratuitement.

6. Parallels Desktop

Parallels Desktop pour MacMême problématique: vous adorez maintenant votre nouveau Mac, mais certaines applications complètement désuètes et fermées d’esprit ne sont disponibles qu’en version Windows. Que ce soit VMware ESXi vSphere Client, ou un logiciel de comptabilité, vous aurez possiblement besoin d’une machine virtuelle Windows sur votre ordinateur. ParallelsDesktop vous permet de le faire.

Il y a même un mode où l’utilisation de Windows est complètement transparente: les fenêtres Windows se mêlent aux fenêtres Mac !

Dans mon cas, j’en ai 4 actives sur mon Macbook Air:

  • Une machine virtuelle avec Windows XP pour mes besoin quotidiens: VMware vSphere Client par exemple, et d’autres petits logiciels installés
  • Une machine avec WindowsXP et IE6 pour tester
  • Une machine avec WindowsXP et IE7
  • Une machine avec WindowsXP et IE8

7. Telephone

Telephone SIP logiciel pour Mac

Sur la route, j’ai mon iPhone et 3G: j’ai donc internet n’importe où. Mais à l’étranger, c’est moins évident. Si j’ai besoin de régler un problème et parler avec la personne en même temps, j’utilise l’application Telephone disponible sur le App Store (pour Mac).

En effet, je me suis ouvert un compte SIP chez TheSpout.ca et j’utilise leurs serveurs pour faire des appels à partir de mon laptop. Ça marche très bien. Vous pourriez aussi utiliser le serveur SIP de votre bureau si vous en avez un, et vous auriez accès à votre numéro de poste au bureau directement. C’est ce que je ferai quand j’aurai le temps…

8. TextWrangler

Un gars de IT sait utiliser les RexExp pour manipuler des données.

TextWrangler est un éditeur de texte un peu à la Textpad ou Notepad++ sur Windows. Très pratique.

9. SmartGit et Filezilla

Je les mets tout en un, mais ce sont des outils de développement: SmartGit pour le version control, et Filezilla comme client FTP. Je ne vivrais pas sans ces deux logiciels !

10. ImageOptim

Imageoptim pour MacLe petit logiciel sert à compresser les images que mon designer n’a… pas assez compressé. Pratique pour ces PNG qui ont des dégradés tournés dans le mauvais bord… Ou bien pour plusieurs autres formats de fichier. On veut réduire la bande passante, et augmenter la vitesse de transfert de nos pages web. C’est d’après-moi un des outils idéaux.

Pourquoi j’utilise Git comme logiciel de gestion de versions

GitHubD’abord, je dois dire que cet article est plutôt technique et est destiné à des développeurs, des designers, des gestionnaires de projet ou bien des dirigeants en technologies :-).

Si vous êtes pressés et ne voulez pas lire mon blabla, allez à la fin voir mon résumé.

Dans ma carrière, j’ai eu à utiliser plusieurs logiciels de « version control ». SVN, CVS avec Tortoise, etc…

À l’Université Laval, on utilisait un, ou l’autre de ces deux choix avec un GUI: Tortoise. Sous Windows, c’est vraiment bien. Icônes dans un menu déroulant, icône sur les fichiers modifiés et les dossiers en contenant: tout cela est bien pratique.

Lorsque j’avais ma boîte de web, sparko.ca, un des gars de mon équipe (pour ne pas nommer Mongo) m’a recommandé d’essayer Git qui gagnait alors en popularité. Pourquoi pas !

Je dois dire que si vous ne travaillez que dans un environnement Windows (serveurs et clients), vous aurez davantage de difficultés lors de l’installation. En effet, Git fonctionne sous SSH. Vous aurez donc besoin d’installer d’abord SSH sur votre serveur Git, puis des clients sur chaque machine.
Si vous êtes sous Mac ou Linux, ça va être plus simple.

Je n’entrerai pas dans les détails d’installation car il y a déjà beaucoup de documentation sur Git. Je me contenterai d’énoncer les avantages.

D’abord, j’utilise SmartGit pour MacOSX comme client qui est aussi dispo pour Windows et Linux. En tant que gestionnaire et maître des mises-en-prod (!), j’apprécie énormément l’interface de log qui me permet de voir en un coup d’oeil qui a fait quoi, quand, quel « merge » a été fait, sur quelle branche, et quand datent mes « Releases » et mes « patchs ».

SmartGit Log

J’apprécie également que ce logiciel ait brisé le paradigme du « shell » à-la-tortoise. Avec SmartGit, on a une belle interface avec un « treeview » pour parcourir l’arborescence des fichiers, avec plusieurs filtres. En un coup d’oeil, on peut voir et mettre dans le même « commit » tous les fichiers modifiés qui sont liés à une nouvelle fonctionnalité.
Avec SVN et Tortoise, on est souvent obligés de faire un gros « commit » sur un dossier avec plusieurs fonctionnalités ou corrections de bugs et souvent, on inclut des fichiers qu’on ne voulait pas nécessairement commiter.

L’avantage est gigantesque: un commit touche une et une seule fonctionnalité et il est donc facile de roll-backer seulement ce commit.

En ce qui a trait à Git, je lui trouve plusieurs avantages.

D’abord, pour les branches. Les développeurs peuvent avoir des branches locales, des branches publiques. Les branches locales sont utiles lorsqu’ils travaillent individuellement sur une nouvelle fonctionnalité compliquée qui implique plusieurs fichiers. Pendant leur travail, ils peuvent faire des « pull » et ainsi mettre à jour leur version de développement avec les modifications faites par les collègues. À mesure qu’ils atteignent des objectifs intermédiaires, ils peuvent faire des commit qui resteront locaux. Lorsque la fonctionnalité est terminé, ils peuvent faire un « merge » vers la branche commune de développement (nous on utilise Master), puis « push » et tout le monde aura accès à leur code.

Les branches publiques sont aussi très utiles lorsque plus d’un programmeur travaillent sur une même fonctionnalité et veulent partager leurs avancements. C’est aussi utile si on veut garde une sauvegarde distante du travail d’un programmeur qui aurait une branche locale.

L’avantage avec ces branches, c’est qu’un développeur peut avoir de multiples branches s’il est sur plusieurs projets en même temps. Et si on fait une mise en production et qu’on découvre un bug urgent, il n’a qu’à se mettre temporairement sur la branche Production, fixer le bug, et revenir sur une de ses branches de développement.

La fonction « git stash » est également utile pour mettre de côté temporairement des modifications à des fichiers sans faire un commit pendant qu’on fixe un bug ou autre chose.

Pour le « merging », on peut utiliser la fonction « cherry-pick » de SmartGit (ou y aller manuellement en ligne de commande avec Git). L’avantage, c’est si on veux fusionner une autre branche dans la branche courante, mais qu’on est seulement intéressé de fusionner un ou deux commit. Disons qu’on a fait une mise en production récemment. Et disons que depuis, on a ajouté sur la branche Développement 3-4 fonctionnalités/bugs. Et disons qu’on veuille seulement intégrer dans la branche Production le 2e bug corrigé. Éh bien on peut le faire !

J’aime aussi qu’avec Git, tous les commit restent en local sur l’ordinateur du développeur avant d’être « pushés ».

Finalement, avec Git, vous avez en local une et une seule version de développement. Si vous changez de branche, les fichiers de votre version locale se mettent à jour presque instantanément. Si vous faites un checkout avec SmartGit d’un certain commit, toute l’arborescence des fichiers de votre version locale se met à jour en même temps. (attention, checkout sur Git != checkout sur SVN. Checkout sur Git est pour mettre à jour l’ensemble des fichiers à un stade passé)

En résumé, donc:

  • Facilité d’installation sur toutes les plateformes (sauf pour le serveur sur Windows)
  • Avec SmartGit, il y a une vue pour voir les logs.
  • Avec SmartGit, j’aime beaucoup la vue de « treeview » et le résumé des fichiers modifiés et la facilité de faire d’un fonctionnalité un et un seul commit, et vice-versa
  • Branches locales et branches publiques
  • Stash, pour mettre de côté temporairement des modifications sans les commiter
  • Avec SmartGit, la fonction « cherry-pick » pour pouvoir fusionner certains commit seulement
  • Les commits sont en local seulement jusqu’au moment où on les « push »
  • Facile de revenir avec un checkout à un état passé de l’architecture.
  • Utilisé par Facebook, LinkedIn, Microsoft, Twitter, etc… !

J’oubliais, vous pouvez même gratuitement faire héberger votre code sur github !