Une décennie de technique

Bases de données, HTML/CSS, Javascript/AJAX, Mobile, PHP 14 Commentaires »

En même temps que s’achevait cette décennie, je passais fin janvier le cap de 10 ans de programmation en milieu professionel. L’occasion de m’essayer à une petite synthèse@ sur les changements survenus entre 2000 et 2010.

Ce qui a changé depuis 2000 :

  • PHP n’est plus “le langage pour faire des formulaires de contact”
  • Javascript enrichit visuellement la page (et plus seulement avec des alert)
  • Les GIF animé ont disparu
  • Linux a enfin une vraie distribution orientée utilisateur avec Ubuntu
  • ASP, Perl, ColdFusion…
  • Les smartphones (surtout depuis l’iPhone)
  • La vitesse de connexion à Internet, permettant d’y faire passer la TV et le téléphone
  • La sécurité des technologies Microsoft
  • Les charlatans qui imaginaient se faire rapidement du fric avec une start-up
  • La gestion de configuration, de Subversion à Git

Ce qui n’a pas changé depuis 2000 :

  • Flash met le feu au CPU
  • Java rame
  • Internet Explorer 6 est la lie de l’humanité
  • Les Design Pattern, à toujours avoir dans sa caisse à outils
  • Google
  • L’interprétation des pages par les navigateurs, obligeant à patcher pour chacun d’entre eux
  • Les commerciaux qui ne comprennent toujours rien à la technique
  • Les développeurs  vus comme des ours mal léchés
  • Les charettes dans les agences Web
  • Les protocoles utilisés sur Internet
  • Il manque toujours un truc à MySQL
  • L’open source est un laboratoire de bonnes idées
  • La loi de Moore
  • La loi de Murphy

La liste est bien entendu pas exhaustive et totalement subjective. Vous voyez d’autres changements (ou pas) pendant cette décennie ?

Traitement d’un gros volume de données avec Symfony et Doctrine

Bases de données, PHP 6 Commentaires »

Retour d’expérience sur un projet avec Symfony, où il est question de consommation de mémoire excessive et de volumétrie.

Lire la suite »

Retour sur iPhone Tech Talk

Mobile Aucun commentaire »

iPhone Tech TalksJ’ai eu la possibilité lundi d’aller assister à l’iPhone Tech Talk donnée à Paris (Cité Universitaire ) par Apple. Dans le sens où je me suis autoformé sur la programmation Objective-C avec l’API d’Apple, c’était intéressant de voir où se situer au niveau des pratiques d’utilisation, d’optimisation de code, de débogage.

Les présentations étaient d’un bon niveau technique, les personnes dans la salle ayant déjà une licence développeur et avaient (sûrement) toutes déjà posté une appli sur l’App Store. Les “senior evangelists” d’Apple étaient déjà bien rôdés puisque Paris était leur dernière date.

Démarrage avec un speech d’une heure dont j’ai retenu quelques exemples de killer-apps, comme Tweetie pour sa fonction de rechargement des Tweets, Zipcar pour son appli de location d’autos, NationWide pour son système de déclaration d’accidents.

Les présentations techniques que j’ai suivi sont restées dans la ligne de conduite que je m’étais fixée, à savoir le besoin immédiat pour mon job. Je suis donc resté suivre Effective Apps Parties 1 et 2, qui ont notamment traité de sujets sur le stockage d’informations utilisateur. J’ai surtout eu un très bon tuto sur l’excellente couche d’abstraction pour faire du threading avec NSOperations et NSOperationsQueue.

L’après midi était lui consacré à Core Data, un système d’objets relationnels avec backend SQLite qui fait totalement abstration du SQL pour tout piloter en Objective-C avec XCode. Puis aux tests unitaires et débogage, avec l’utilisation de SenTesting, et aussi Instruments pour détecter aussi bien les problèmes de mémoire que les UIView transparents (source de perte de performance).

La journée a été très riche en infos et je repars au feu avec plein de bonnes idées et d’astuces pour mener à bien les projets !

Mise en place de SSL pour des développements

Autres Aucun commentaire »

Dans le cadre d’un projet nécessitant de la sécurité, il peut s’avérer nécessaire de mettre en place SSL. L’achat d’un certificat pour des postes de développement s’avère coûteux et inutile, puisqu’il est possible de faire des certificats auto-signés pour Apache et IIS, en mettant un tout petit peu les mains dans le cambouis.

Lire la suite »

Quelques optimisations en JS

Javascript/AJAX 3 Commentaires »

Cet article présente quelques astuces en Javascript pour optimiser vos algorithmes et la performance de vos scripts.

Au niveau du code

Précalculer le plus possible

Mise en “cache” dans des variables : par exemple l’accès à la propriété d’un objet enfouie sous plusieurs niveaux, ou un valeur utilisée dans la déclaration d’une boucle for.

// Pas bien
for (var n = 0; n < monObjet.maPropriete1.maPropriete2.valeur; n++) {
	// ...
}
 
// Bien
var len = monObjet.maPropriete1.maPropriete2.valeur;
 
for (var n = 0; n < len; n++) {
	// ...
}

Interdiction d’utiliser eval !

A l’instar de n’importe quel langage, la fonction eval est un gouffre à performances. L’éviter autant que possible. Il y a bien entendu des alternatives :

// Pas bien
eval("obj."+prop)
 
// Bien
obj[prop]

Concaténation de chaines

Utilisation d’un Array pour concaténer les chaines et liaison à l’aide de la méthode join(). Les développeurs de Microsoft le recommandent dans le doc en bas, à la manière d’un StringBuilder en .Net ou en Java :

var sb = new Array();
sb.push("
 
");
sb.push(monTexte);
sb.push(monTexte2);
sb.push("
 
");
 
var s = sb.join("");

Au niveau des fichiers

Minifier les Javascripts en production

But : optimiser le chargement du script pour l’interprétation (bande passante utilisée, temps d’interprétation par le moteur JS du navigateur). Il existe d’excellents outils pour effectuer cette tâche : YUICompressor, JSMinifier… Dans l’idéal, s’assurer que tout le JS est envoyé avec un seul appel HTTP.

Mettre les déclarations en bas de page

Le plus près possible de la fermeture de l’élément body (</body>). Cela permet d’exécuter le code à l’issue du chargement complet du HTML, évitant du coup un blocage en plein milieu du rendu de la page.

Bibliographie rapide

Blog indisponible

Autres Aucun commentaire »

Une coupure du blog durant 2 jours depuis vendredi l’a rendu inaccessible, affichant une très esthétique page d’erreur 500.

La raison est qu’OVH a pris le soin d’activer le suEXEC d’Apache, bloquant de fait mes fichiers qui avaient - à tort - des permissions trop élevées. Après quelques aller-retours sur la doc de suEXEC, et sur les forums d’OVH, j’ai finalement trouvé la solution : mettre des permissions 755 (rwxr-xr-x) sur les dossiers et 644 (rw- r– r–) sur les fichiers.

Je vous fais partager un petit script vite fait pour redéfinir correctement les permissions sur les 3 blogs hébergés sur mon espace :

#!/bin/sh
 
if [ ! -d /chemin/vers/www/$1 ]
then
        echo "Veuillez specifier un dossier valide"
        exit 0
fi
 
echo "Correction des permissions du dossier $1"
 
find /chemin/vers/www/$1 -type d -exec chmod u=rwx,go=rx {} \;
find /chemin/vers/www/$1 -type f -exec chmod u=rw,go=r {} \;
 
echo "OK effectue"

Enregistrez le script sous fix_suexec.sh, mettez lui les droits en exécution pour l’utilisateur propriétaire, puis lancez-le comme suit :

user@hebergement:~/# ./fix_suexec.sh mondossierweb

Je ne remercie pas OVH sur ce coup, pour faire des modifications aussi critiques sur son hébergement sans prendre la peine de prévenir ses utilisateurs.

Modules de paiement sécurisés (5/5)

Bases de données, PHP 2 Commentaires »

Dernier article qui clôt ce mini-dossier présente le module Paybox et conclut avec un comparatif synthétique des modules.

Lire la suite »

Modules de paiement sécurisés (4/5)

PHP Aucun commentaire »

Cet article présente un des modules de paiement les plus populaires : Paypal.

Lire la suite »

Sélecteurs CSS

HTML/CSS Aucun commentaire »

Une des fonctionnalités apparues avec le Javascript avancé et plus généralement d’AJAX concerne les sélecteurs CSS. Un outil magnifique : simple et efficace.

Lire la suite »

Modules de paiement sécurisés (3/5)

PHP Aucun commentaire »

Suite du tour d’horizon des paiements électroniques avec le 3ème module français : SPPlus. Lire la suite »

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Log in