
Et oui, il faut bien commencer un jour, je viens de finir ma première application iphone…
Pas très créatif (une simple calculatrice), pas de quoi être fier (de nombreuses améliorations sont possibles, notamment cacher le clavier une fois terminé…), mais tout de même… Pour une première application pour tester et apprendre objective-C, XCode, c’est pas pire, non?
Il me reste encore beaucoup de lecture à faire, notamment le « iPhone Human Interface Guideline« …
Un souvenir, histoire de rire de moi si je fais mieux dans quelques semaines ou quelques mois…
Il y a longtemps que je voulais jouer avec la Geolocalisation, j’ai donc monté ce mini-site afin de tester différentes méthodes de géolocalisation:
- geoIP: librairie PHP
- Google Maps v3: aucune magie ici (pas de la geolocalisation), mais il y a possibilité d’utiliser les fonctionnalité GPS de l’équipement. Le « sensor » GPS n’est pas utilisé sur mon site, mais google Maps est utilisé de 2 façons:
- pour ajuster les résultats des autre méthodes de géolocalisation (la « pin » est déplaçable)
- comme méthode par défaut: un outils de recherche à la google Maps (en extrêmement simple simple simple) est offert
- Google Gears
- la geolocalisation des navigateurs « qui ont de l’allure » (firefox, safari) (navigator.geolocation.getCurrentPosition()). Lire https://mozillalabs.com/blog/2008/10/introducing-geode/ pour plus d’info sur l’implémentation dans firefox
- Google Ajax API: en plus d’avoir accès à pleins de fonctionalités comme Google Maps, Feeds, Search, Earth, google Friends, etc… cette API permet aussi faire de la localisation (merci à Marc Grabanski)
En plus, j’ai utilisé 2 API « géolocalisées »:
Vous pouvez assayer le tout l’URL suivante: http://geo.fruitsoftware.com/
Amusez-vous!
Pour tous ceux qui comme moi ne comprenaient pas pourquoi le « sync » de symfony gelait sur leur Windows, avec cygwin, voici l’astuce du jour (trouvé sur le trac de symfony):
Ajouter la ligne suivante dans votre properties.ini (par environnement):
[prod]
host=www.mywebproject.com
port=22
user=USERNAME
dir=/home/path/to/project/on/prod/
parameters="-azvC --force --delete --exclude-from=config/rsync_exclude.txt"
PS.1: j’avais trouvé une autre astuce qui nécessitait de modifier le fichier de la tache projectDeploy de Symfony (en ajoutant un « exec »), mais cette méthode est bien plus propre, merci!
PS.2: j’ai ajouté l’option « v » (=verbose) afin que rsync liste les fichiers qui sont affecté par la synchronisation. C’est à vous de voir!
PS.3: Il m’arrive de devoir changer les permissions des fichiers sur production (plus qu’un simple « symfony project:permissions »), donc histoire à suivre…
PS.4: Suite de l’histoire: Idiot, cygwin utilise les permissions à-la-Unix, il suffisait de mettre les bonnes permissions avec cygwin…
Il était une fois…
IL était une fois une équipe qui réalisa un site web pour un client. Tout se passa normalement au cours du développement.
Mais un jour, alors que nous devions mettre sur le serveur du client, nous apprîmes (oui, oui! apprîmes) que:
- le serveur du client était en fait 2 serveurs,
- ces 2 serveurs étaient « load-balancés » (pas de » sticky-tcpip » possible)
- la gestion des sessions PHP était « basique » (file)
- nous n’avions pas la possibilité de changer la configuration des 2 serveurs (pour utiliser memcached par exemple) ou du « load-balancer »
(je vous passe les détails de mauvaises communications entre les équipes techniques en jeu…)
Horreur!
Qu’allons-nous devenir?
Que faisons-nous?
OMG!
Heureusement…
…tel le petit poucet qui avait pris soin de mettre des pierres dans ses poches, nous avions développé notre site avec le framework Symfony (1.4).
Il est possible de changer très facilement la manière dont sont sauvegardées les sessions PHP avec Symfony, grâce au fichier factories.yml.
Il n’a donc pas fallu plus que 30 minutes pour changer la manière de gérer les sessions!
Merci à…
Notes
- Oui, je sais, j’ai mis un « S » majuscule à « Symfony », c’est pour m’habituer.
- « … et à la fin, ils firent pleins de projets Symfony. »