Passer sous Mac OS X un poste de développeur web PHP

Dans: Mac OS X

2 juil 2014

Les changements d’OS sont déroutants pour les habitudes bien encrées dans nos quotidiens de développeur.
Que vous venez du monde Unix ou Windows, passer sous Mac OS X demande des concessions mais aussi de nouvelles manières d’être productif.

La majorité des articles sur le sujet d’un poste de développeur web se limite bien trop souvent à activer Apache de Mac ou d’installer MAMP. Quid de Vagrant / GIT / PHP Unit ?
Cependant, il y a aussi tous ces changements presque insignifiant mais qui perturbent fortement l’apprentissage, du moindre Alt+Tab cross application au nouveau clavier Mac.

Cet article, comme la quasi-totalité de mes articles, va à l’essentiel, est le résumé de mes recherches. Il n’a pas vocation à être l’unique solution, ni à expliquer les démarches qui ont débouchées sur la conclusion.

De plus, malgré 3 années sous Unix et 2 sous Mac à la maison, mes références de production viennent du monde Windows, que ce soit pour les raccourcis (Alt+Tab / Win+E / Win+D) que pour les logiciels (SQLyog / PHP Storm /  Prtsrcn / Ditto).

Cet article ne traite pas de l’utilisation de Cakebrew qui mériterait un article à part.

Edit :

Mac OS X, en général

Clavier-Interface / Premiers changements :

  • La touche Ctrl devient la touche Cmd⌘, ainsi Ctlr + C pour copier devient Cmd⌘ + C.
  • La touche @ passe en haut à gauche du clavier en utilisation directe
  • Idem pour la touche « - » (Tiret du 6 sous Windows) qui passe en haut à droite avec l’underscore
  • Les chiffres ne sont plus accessibles en Capslock⇪, mais en utilisant Shift⇧
  • Les touches F1 à 12 ne sont pas accessibles directement, mais via la touche Fn

Programmes

Installer un programme

  • Problème : Il y a des confusions entre les fichiers .dmg .app .pkgm
  • Solution : Les fichiers .dmg sont des images disques, il faut les monter en double cliquant dessus. A l’intérieur il y a :
    • Soit un fichier .app qui doit glisser-déposer dans le dossier application (Se faire un raccourci dans le dock est une bonne idée)
    • Soit un fichier .pkg qui s’auto-installe en cliquant dessus (équivalent Windows d’un setup.exe)
  • Il est possible d’utiliser l’App Store pour installer les programmes. Dans la majorité des cas, j’utilise les comptes Github des développeurs ou les sites officiels

Désinstaller un programme

  • Problème : Comment réinstaller un programme proprement, en supprimant les fichiers du programme mais aussi les fichiers de configuration disséminer dans le système
  • Solution : Utiliser le logiciel AppCleaner. En effet, il est plus efficace et cible les fichiers inutiles, au contraire de la désinstallation classique de Mac (Glisser / Déposer une application dans la corbeille)

Autoriser un programme à modifier le fonctionnement d’origine du Mac

  • Problème : Certains programmes ont besoin d’une autorisation spécifique
  • Solution :
    • 1/ Préférences systèmes > Sécurité et confidentialité > Général > ‘Clic sur le cadenas’  > Autoriser les applications > N’importe où
    • 2/ Préférences systèmes > Accessibilité > Affichage > Activer l’accès pour les périphériques d’aide
    • 3/ Préférences systèmes > Sécurité et confidentialité > Accessibilité > Onglet Confidentialité > ‘Clic sur le cadenas’ > Cocher les applications voulues

Lancer au programme au démarrage

  • Sur une icone du dock > Clic droit > Options > Ouvrir avec la session

Clavier, souris et raccourcis

Trackpad, inverser le défilement (le trackpack n’est pas un téléphone mobile) :

  • Trackpad > Faire défiler et zoomer > Sens du défilement : naturel > Décocher la case

Afficher le bureau avec un « Windows + D »:

  • Clavier > Mission Control > Afficher le Dashboard > Alt⌥+D

Alt-Tab « presque » comme sous Windows :

Le changement entre plusieurs applications se fait normalement avec un Cmd+Tab, et un changement entre instance d’une même application peut se faire via un raccourci (Alt⌥ + Tab⇥ cette fois), via un raccourci à changer (à l’origine, c’est Cmd+`, touche à gauche de <Return>, mais sur des documents textes, cela écrit physiquement le caractère avant ou au lieu de changer d’instance)

  • Clavier > Raccourcis clavier > Clavier et saisie > Déplacer la cible sur la fenêtre suivante > Alt + Tab

Clipboard manager (Ditto sous Windows) :

  • ClipMenu gratuit / Penser dans la config à autoriser des items à la racine et non pas que dans des dossiers / Utilisation : Shift⇧ + Cmd⌘ +V
  • Alfred (voir ci-dessous) / Mieux..

Déplacer/coller/Agrandir-Réduire les fenêtres aux bords de l’écran comme sous Windows avec le clavier :

  • ShiftIt gratuit / Utilisation ⌃⌥⌘ + :
    • Coller la fenêtre : <Flèches>
    • Centrer la fenêtre :  C
    • Réduire la fenêtre : )
    • Agrandir la fenêtre : -
    • Déplacer vers l’écran de droite : N

Lanceur de programme / pages web (Launchy sous Windows/OSX ou Spotlight de Mac) :

  • Alfred en version gratuite / Utilisation Alt⌥ + Espace d’origine, possibilité de remplacer Spotlight (Cmd⌘ + Space) en supprimant le raccourci au préalable / Penser à rajouter des snippers d’URL des projets souvent utilisés
  • La version payante inclus aussi :
    • Historique copier-coller avec moteur de recherche
    • Workflow personnalisé, comme l’ouverture d’un Terminal depuis le Finder et inversement : http://www.alfredforum.com/topic/1664-open-current-finder-window-in-terminaliterm-and-vice-versa/
    • Le buffer (!) en utilisant Alt⌥ + Up
    • Apprendre à créer un Workflow : http://t37.net/alfred-2-0-utilisation-avancee-pour-une-productivite-encore-plus-productive.html
    • Workflow Skype (callf   »nom du contact ») : http://unicall.guiguan.net/

Sélection des éléments dans l’UI en raccourci clavier :

  • ShortCat en version béta gratuite suffit pour le moment.

Boutons précédent / suivant des souris à 5 boutons :

  • USB Overdrive (gratuit suffisant)
    • Il faut mapper les boutons 4 & 5 pour qu’ils effectuent les actions Forward et Back
    • Sur certaines applications les actions des buttons (Button 4 / Button 5 / Forward / Back) ne sont des fois pas prises en compte.
    • Essayez avec Alt + Cmd + Left / Alt + Cmd + Right ou bien Cmd+ [ / Cmd + ]

Afficher les dossiers et fichiers cachés (pour voir .git / .bashrc / .vimrc) :

  • Terminal > defaults write com.apple.finder AppleShowAllFiles 1

Utiliser les touches Fn :

  • Clavier > Utiliser les touches F1, F2, directement (mais à l’usage, je préfère l’inverse, à savoir utiliser les actions des touches plutôt que les Fn).

Désactiver certaines touches media pour pouvoir les rebinder par la suite :

  • FunctionFlip gratuit / Permet par exemple de désactiver F4=Widgets pour mettre Mission Control > Fenêtres de l’application. Ainsi F3 et F4 ont des fonctionnalités très proches.

Capture écran :

  • Zone => Clavier > Raccourci > Captures écran > Copier image zone sélection  > Changer le raccourci pour Cmd+F12
  • Sélection + textes + envoie sur le cloud => Voir Jing ci-dessous.

Touches spéciales :

  • Tilde ~ : Alt⌥ + n
  • Pipe | : Alt⌥ + Maj⇧ + l
  • Backslash \ : Alt⌥ + Maj⇧ + /
  • Suppr : Fn + Retour

Finder :

Finder / Raccourcis basiques :

  • Ouvrir un fichier  : Cmd⌘ + Bas (ou Cmd⌘+O)
  • Revenir en arrière dans le Finder : Cmd⌘ + Haut
  • Supprimer un fichier : Cmd⌘ + Retour

Finder / Afficher les dossiers et fichiers cachées :

  • Coller ce code dans le Terminal, puis killer le Terminal via « Pomme > Forcer à quitter… »

Finder / Couper un fichier :

  • Copier normalement un fichier ou dossier (Cmd⌘ + C)
  • Coller en utilisant Alt⌥ + Cmd⌘ + V

Finder / Afficher le chemin absolu du dossier courant dans le titre du Finder (idem à coller dans le Terminal) :

defaults write com.apple.finder _FXShowPosixPathInTitle -bool YES

Dock / Créer un espace dans le dock :

defaults write com.apple.dock persistent-apps -array-add '{tile-data={}; tile-type="spacer-tile";}'
killall Dock

Finder-Fenêtres / Utiliser Tab pour naviguer entre les choix d’une boîte de dialogue :

  • Clavier > Raccourcis > (En bas) Cocher « tous les contrôles »

Finder / Améliorer le finder :

  • Voir Xtrafinder ci-dessous

Utilitaires

Luminosité différente suivant l’heure de la journée/nuit :

  • Flux gratuit (idem Windows)

Lecture différée, et avancement de lecture synchronisé entre plusieurs devices :

  • Pocket gratuit (Chrome + Firefox + iOs + Android + Kindle)

Capture d’écran :

  • Jing gratuit (idem Windows), full capture ou sélection, possibilité d’ajouter des notes, envoie immédiat sur le Cloud (ou sur un FTP/SFTP) et copie de l’URL dans le Presse Papier (Skitch n’offre pas l’upload après la modification du screenshot)

Calendrier (connecté à iCal / Google Apps) depuis le Top Menu Bar :

  • Calendar gratuit. Changer le raccourci à F17, et afficher 2 jours dans les paramètres

Voir la consommation des programmes lancés, et les quitter à la volée  :

Améliorer le Finder :

  • XtraFinder gratuit : ultime…
    • Clic droit > Ouvrir Terminal ici
    • Clic droit > Nouveau fichier (penser à ajouter les extensions voulues, comme Word par exemple, dans ~/Library/Application\ Support/com.trankynam.XtraFinder/NewFileTemplates)
    • Affichage en fond noir
    • Onglets fluides comme sur Chrome
    • Affichage double du Finder (double click sur le titre)
    • Afficher les dossiers en haut (comme sous Windows)
    • Touche Entrer pour ouvrir le fichier (et non Cmd+Bas/O)
    • Touche Retour arrière pour revenir en arrière
    • Ouvrir un nouvel onglet en effectuant une copie de l’onglet en cours
    • Couper sur le clic droit
    • Ouvrir un dossier dans un nouvel onglet au clic-milieu
    • Afficher la sidebar en couleur
    • etc..

Développement Web

Terminal amélioré :

  • iTerm2 gratuit (Slipt windows / Recherche Cmd⌘+F / etc.)
  • + Oh My Zsh (+ Xcode obligatoire avant)
  • + Theme « Muse »

Terminal (iTerm + Zsh)/ Commandes utiles :

  • Faire un lien symbolique de .zshrc dans le Dropbox pour le synchroniser entre plusieurs personnes : ln -s ~/Dropbox/Applications/iTerm2/.zshrc ~
  • Rechercher les fichiers de plus de 500mo sur le disque dur : find / -type f -size +500000k -exec ls -lh {} \;
  • Rechercher dans le contenu des fichiers un terme donné : find . -type f -exec grep -H « my search » {} \;
  • Rechercher dans le contenu des fichiers via « ack » en utilisant « ack ‘maregex’ ./my_path ». L’installation d’ack se fait via Homebrew en utilisant « brew install ack »

Base de données (SQLyog sous Windows) :

  • Sequel Pro gratuit / Mais franchement moins bien..

Editeur de texte :

  • Sublime Text 3 / $70
    • Plugin pour indenter du XML : https://github.com/alek-sys/sublimetext_indentxml
    • Ouvrir depuis le terminal les fichiers avec Sublime Text : http://steverydz.com/2012/04/27/sublime-text-2-opening-files-and-folders-from-the-command-line/
    • Article ultra complet sur les killer features de ST : http://www.js-attitude.fr/2013/03/12/sublime-text-dev-web-config-trucs-astuces/
    • La sélection multiple (Ctrl⌃ + Maj⇧ + Up/Down) rentre en conflit avec des raccourcis claviers Mac (Mission Control & Fenêtres de l’application, il faut les désactiver ou les modifier)
  • TextMate 2 / Gratuit
  • Markdown Mou / Gratuit / Editeur de text Markdown avec preview automatique, très pratique.

Client SFTP :

  • Transmit / $34
    • il faut activer les fichiers et dossiers cachés dans : Présentation > Afficher les fichiers non visibles / Et afficher la barre d’onglets via le même menu de Présentation
    • Possibilité d’importer les données de Filezilla (non disponible dans la version d’évaluation)
    • Possibilité de monter un SFTP (et même un FTP) en disque réseau, accessible via /Volumes
    • Edition directe d’un fichier, contrairement à Filezilla qui demande une confirmation à chaque modification
    • Synchronisation avec Dropbox (et iCloud), pratique pour plusieurs associés d’avoir les mêmes entrées
  • Filezilla / Gratuit

Git en graphique (Tortoise Git sous Windows) :

Vagrant (développement Web) :

  • Installer Vagrant ainsi que Virtualbox ou VMware / Gratuit / Existe sous Windows, mais le NFS est très très lent
  • Trouver une box sur Github (ou se la monter soit même) avec un minimum :
    • Optimiser pour votre projet si possible Magento / Symphony / etc.
    • NFS activé pour le partage des fichiers entre OSX et la box
    • PHPUnit
    • Mailcatcher
  • Attention à ne pas mettre les dossiers de cache en NFS, les fichiers de cache/session ne sont jamais manipulés dans votre IDE sur OSX
  • (Mérite un article pour lui tout seul)

Vim :

Commandes courantes :

  • Fermer un fichier sans sauvegarder `:q!`
  • Fermer un fichier en sauvegardant `:qw`
  • Aller à la fin de la ligne `$`
  • Aller au début de la ligne `0`
  • Aller à la fin du fichier `G`
  • Aller au début du fichier `gg`
  • Rechercher `/` pour en avant, `?` en arrière, `n` next occurrence
  • Annuler `u`
  • Aller au mot suivant (par rapport au curseur)`*`  / précédent : `#`

Activer la coloration syntaxique :

echo "syntax on" > ~/.vimrc

Afficher les numéros de lignes :

echo ":set nu" > ~/.vimrc

Custom .vimrc assez complet :

  • https://github.com/michaeljsmalley/dotfiles/blob/master/vimrc

Source utile pour bien débuter sous Vim :

  • http://yannesposito.com/Scratch/fr/blog/Learn-Vim-Progressively/

Productivité

Time tracking / Harvest :

Intégration Web

Photoshop :

  • Adobe Photoshop CC est disponible pour 10€ / mois.
  • Si on compte 1000€ la licence habituellement, il faudrait plus de 8 ans pour l’équivalent. Ainsi, si une version de Photoshop sort dans un écart de moins de 8 ans à chaque fois (ce qui est le cas) et que vous devez être à jour pour être en phase avec les graphistes, alors cela vaut le coup.

SASS / Compass :

  • Installer SASS / Compass
gem install sass
gem install compass
compass version
  • Utiliser l’IDE pour compiler via Compass (mieux qu’un logiciel annexe)

Tester sous IE (6/7/8/9/10/11/+) sous différents OS (XP/Vista/Seven/8/8.1) :

Bureautique :

Suite bureautique / 3 écoles (hors Cloud) :

1) Ecole du libre :

  • Suite Libre office (gratuit) est très bien, surtout pour ouvrir des .CSV avec des virgules…

2) Ecole Mac :

  1. Pages (équivalent Word) : Très simple d’utilisation, mais très en retard sur Word (Impossible en 2014 d’ajouter une image dans le header/footer (!!) ;
  2. Number (équivalent Excel) : Assez limité, mais peu suffir pour dépanner, mais autant utiliser Libre Office ;
  3. Keynote (équivalent Powerpoint) : Vraiment pas mal, remplace Powerpoint pour ma simple utilisation au quotidien (annuel..).

3) Ecole Microsoft Office :

  1. Office 2011 est vraiment nul ;
  2. Mais c’est le seul à pouvoir faire du vrai traitement de texte (Libre office est préféré cependant) ;
  3. Ainsi Office 365 à la location est intéressant car il mettra à jour Office avec la prochaine version prévue pour 2014 qui devrait rattraper son retard ;
  4. La licence à 10€ / mois couvre 5 Mac/PC, si nous comptons 120€ la licence Office (600€ pour 5 machines), il est intéressant de prendre à la location si un nouvel Office sort dans un écart de moins de 5 ans à chaque fois (ce qui est le cas), donc cela vaut plutôt le coup si vous DEVEZ utiliser Word plutôt que Libre Office (ou LaTeX).

Multimédia :

iTunes :

Supprimer l’ouverture d’iTunes au bouton Play/Pause qui peut être utiliser par un autre logiciel de musique par exemple :

1 Commentaire pour Passer sous Mac OS X un poste de développeur web PHP

Avatar

seb

janvier 8th, 2015 à 13 h 56 min

Excellent post qui m’a bien servi, très complet et bien organisé !

En un mot : Merci ! :)

Formulaire pour Commenter

Si vous en avez besoin, entourez votre code :

PHP : [php]echo $variable[/php]
XML : [xml]<default></default>[/xml]

Je m'appelle Frédéric Martinez.

Je suis Freelance Magento, fondateur de l'agence web e-commerce PH2M et anciennement étudiant en Master MIAGE à Toulouse.

Ce site présente mes réalisations professionnelles, personnelles et universitaires.

Magento Certified Developer Plus

rss_32 twitter_32 Magento

  • Vincent MARMIESSE: Bonjour, Attention depuis Magento 1.9.2.0, les blocs CMS sont en cache ! Cela ne pose pas de pro [...]
  • Java2dev: Bonjour, pour l'Etape 1 a quel niveau on met les codes? dans quel folder et c'est un fichier a edit [...]
  • manuel: Bonjour Frédéric, j'aimerais savoir comment enlever l'option de ( signature obligatoire ) de mon m [...]
  • Arsene: Bonjour a tous, j'aimerais savoir comment créer un module qui propose des options d'assurance su [...]
  • Frédéric Martinez: @Thomas : Il y aura toujours de la perte sur les personnes ne retournant pas sur la page de success. [...]