Mac OS X
Après un Commodore 64 et un Olivetti, ma famille a passé sur Mac il y a 20 ans. Le premier Mac qu'on a eu était un LC-II.
Paradoxalement, maintenant que les produits d'Apple sont mieux reconnus, je trouve qu'ils cumulent les nouveaux défauts :
moins de durabilité, un OS de plus en plus kitsch
et une communication qui érige Apple en marque de luxe…
de quoi perdre ses anciens “fans”.
Les faillent existent aussi sur Mac
Et la plus grande faille, c'est nous.
Quand on utilise une application, il faut penser qu'on lui fait une confiance aveugle.
Elle peut avoir un comportement malveillant même à l'insu de ses concepteurs.
Pourtant, on ne peut pas se priver des excellentes applications payantes et gratuite qu'on trouve sur Internet.
Mieux vaut donc, avant d'obéir à une des pubs « Clean your mac » ou « Virus found » qui ont envahi Internet,
faire un petit check sur Google (le nom de l'application + “forum” ou “virus”).
Il faut être spécialement attentif avec les applications gratuites à sources fermées,
mais aussi certaines application payantes qui sentent le spyware ou la récupération
(comme les clones d'Open Office : voir sur sebsauvage.net).
Une fois qu'un programme est installé sur l'ordinateur, beaucoup de choses sont possibles sur Mac même sans accès administrateur.
À 16 ans, j'avais fait des tests. Un virus qui fait bêtement planter l'ordi se fait en quelques lignes de code.
En bidouillant un peu, j'ai aussi pu faire un keylogger qui capturait en tâche de fond toutes les frappes clavier,
quelle que soit l'application au premier plan et sans accès administrateur. Évidemment, je n'ai fait que le tester chez moi.
Ne me demandez pas la source : de toute façon elle est en Carbon et elle est complètement obsolète.
Des outils permettent d'observer le comportement de l'application :
- pour voir les fichiers ouverts par l'application, “Moniteur d'activité” (Applications/Utilitaires) ;
- pour voir les connexions Internet établies par l'application, le “coupe-feu applicatif”, dès Mac OS 10.5 (Préférences Système › Sécurité › Coupe-feu › Activer), ou Little Snitch.
Le principal défi pour un pirate informatique est donc la transmission du virus, qui est en bonne partie basée sur la crédulité des utilisateurs.
Ça tombe bien, puisque c'est la faille qu'on peut nous-mêmes combler le plus facilement.
Pour les autres failles, voir les « mises à jour de sécurité Apple ».
Automatisation
Il y a quelques années, ça allait de soi que tout utilisateur d'ordinateur programmait.
Il faut surmonter le préjugé selon lequel programmer serait difficile.
Monter un programme pour une entreprise, c'est difficile et ça demande du professionnalisme,
mais écrire de petits scripts qui facilitent la vie, non!
Sur Mac, Automator permet maintenant d'automatiser l'automatisation, donc c'est vraiment facile…
mais les langages restent utiles :
- AppleScript, qui ressemble à de l'anglais normal (Exemple : “Tell Application "Safari" to close the front window”).
L'Éditeur Applescript se trouve dans Applications/Utilitaires.
On trouve une bonne introduction sur developer.apple.com.
Dans l'éditeur, Fichier › Ouvrir un dictionnaire permet de voir toutes les commandes de scripts comprises par une application.
En cochant “Activer l'accès pour les périphériques d'aide”, on peut programmer l'envoi de touches ou de clics de souris aux applications.
- Mac étant basé sur Unix, on lance facilement des scripts shell, Python ou Perl soit en les tapant directement dans le terminal, soit en les enregistrant comme scripts .command (permet d'ouvrir le script d'un double-clic dans le Finder), .sh, .py, .pl.
Programmation Cocoa/Objective-C

Interface Builder
Contrairement à Visual Studio de Microsoft, qui coûte plus d'un millier de francs dans sa version “pro”, les programmes d'Apple pour les développeurs sont disponibles sur le CD d'installation de Mac OS et sur Internet. Par contre, il faut payer pour distribuer ses applications sur l'App Store…
- Xcode est le programme de base.
Il permet de gérer les projets, du programme Cocoa au programme J2ME (Java pour téléphones mobiles).
Cependant, il n'est pas idéal pour tout : pour Java, par exemple, je préfère Netbeans.
Une fois installé, on trouve Xcode dans Developer/Applications.
- Interface Builder est un excellent programme pour créer de bonnes interfaces utilisateur.
Les directives d'Apple concernant l'interface sont très utiles.
OpenGL
On peut créer des vues OpenGL dans un environnement Cocoa (“NSGL”).
Glut (OpenGL Utility Toolkit), à la base destiné aux tests multiplateformes, gère les fenêtres et les événements (frappe clavier, souris) et permet d'utiliser OpenGL sans vraiment connaître Cocoa.
J'avais commencé par là.
Cocoa OpenGL et AGL sont de vieilles versions qui ne sont sauf erreur plus supportées dans les derniers Mac OS.
OpenGL en est à la version 4.2, mais Mac OS 10.6 et 10.7 en sont encore à OpenGL 2.1 !
L'excellent Red Book, téléchargeable en PDF, reste donc d'actualité.
DirectX n'est évidemment pas supporté sur Mac, à moins d'utiliser un émulateur.
Programmation Web
Les références
Les sites que je répertorie ci-dessous sont des références évidentes une fois qu'on a l'habitude de coder des pages Web, mais au début,
on peut tomber dans le piège des mauvais tutoriaux, devenus obsolètes ou qui sont du bricolage.
- Le site du World Wide Web Consortium est la première référence pour le (X)HTML et le CSS. Pour le consulter, le plus immédiat est de taper l'objet à chercher dans Google, par exemple “a href w3c” pour la référence sur les liens.
- w3schools.com profite de cet usage répandu : ce site n'est pas affilié au w3c mais apparaît dans les recherches “w3c” et gagne de l'argent avec des publicités… mais leurs explications sont claires et ils proposent pour chaque cas un “try it yourself” pratique.
- Pour JavaScript, les références de Mozzilla et de Microsoft sont toutes deux très bonnes (mais je préfère celle de Mozzilla, que je trouve mieux présentée et avec de meilleurs exemples).
- Les pages de Google sur les <meta>, sur Ajax, le centre d'aide pour les webmasters, les consignes (par exemple Google dirait qu'il y a trop de liens sur cette page, tant pis).
- PHP.net : une liste très pratique des fonctions PHP, des exemples intéressants.
- MySQL : je n'y touche plus vraiment… probablement qu'on trouve l'essentiel sur mysql.com.

Script pour lancer les validations
Vérifications
Les sites suivants aident à tester la conformité, la compatibilité inter-plateformes et l'optimisation des pages. Pour gagner du temps on peut utiliser mon “lanceur de validations”.
- GTmetrix analyse le chargement des pages et indique les optimisations possibles. Pour l'optimisation, on trouve un bon tutoriel sur lehollandaisvolant.net.
- Browsershots fait des captures du site sur différents OS et navigateurs. Ne pas oublier de prolonger chaque 1/2 heure…
- iPhone tester ou TestiPhone (TestiPhone est un peu vieux) pour se rendre à peu près compte du rendu sur un smartphone.
- Le validateur du W3C (ou celui-ci traque les erreurs dans le code HTML.
- Leur validateur CSS : idem pour le CSS.
- La console d'erreur de Firefox (Outils › Développeur Web › Console d'erreurs) est très efficace pour corriger les JavaScripts.
- Enfin, le module Firebug (ou l'Inspecteur Web de Safari : Développement › Inspecteur Web) permettent de faire des analyses poussées des pages Web, avec notamment un onglet « Réseau » qui présente une chronologie du chargement des ressources (pour ça, ne pas oublier de charger les pages sans utiliser le cache…).
Statistiques
- Navigateurs : la proportion de chaque navigateur sur w3schools.com… ces stats sont basées sur les logs de w3schools.com, elles ne représentent pas forcément un échantillon fiable.
- Écrans : dès janvier 2011, 85% de tailles d'écran supérieures à 1024x768… mais de nouveau, ce sont les stats de w3schools.com.
- State of the Blogosphere : les statistiques de Technorati sur les blogs.