Skate in Mars

Aller au contenu | Aller au menu | Aller à la recherche

jeudi 1 mai 2008

The missing link

Bon, comme cela fait vraiment trop longtemps que je n'ai pas bloggué (même mr_pouit et illovae blogguent plus que moi Oo), il est temps de profiter de cette belle journée pour rester enfermé et sortir un bon petit tas de liens \o/

Mais avant, un petit pardon pour le downtime ce week-end et ce début de semaine, mon alimentation et ma carte mère sont mortes en même temps, et le seul magasin ouvert le lundi qui faisait des prix corrects a trouvé malin de me vendre une alim défectueuse... La bonne chose c'est que j'ai eu l'occasion de tester ubuntu 8.04 sur le eee :-) (quoi, vous l'avez déjà installé sur votre pc principal ? vous êtes fous ?)
  • LA nouvelle c'est bien sur Dotclear 2 en Release Candidate ! On a beau râler, le travail accompli semble bien énorme. http://www.dotclear.net/blog/post/2008/05/01/Dotclear-20-RC1
  • Tant qu'a faire dans les releases : OpenBSD 4.3, le plugin del.icio.us pour FF3, Rails 2.1RC qui bouillonne, sans oublier Netbeans 6.1 que je teste actuellement et qui pourrait presque me faire oublier eclipse (je sais ce que vous allez dire, mais faut bien utiliser son core2duo et ses 4Go de ram de temps en temps :o )
  • Les utilisateurs de la dernière ubuntu ont sûrement remarqué que la zone de texte de message dans pidgin 2.4 n'est plus redimensionnable. Un choix plus que discutable qui a entraîné une bonne flamewar sur un ticket trac ouvert à cette occasion : http://developer.pidgin.im/ticket/4986#comment:272 Un plugin est apparemment tout de même disponible pour restaurer le comportement originel
  • Des trucs sympas et utiles en js : Une interface basée sur prototype pour recadrer une image (exemple d'implémentation rails); un gros tas de libs/scripts plus ou moins biens; et des exemples d'utilisation de mootools (qui roxe, rappelons-le)
Ca suffira pour quelques temps, j'espère ?

vendredi 8 février 2008

Dis vert !

Bon voila, j'ai plein d'idées de billet hyper interressants, mais aucune motive, donc je vais faire un petit billet de lien pour donner l'illusion que ce blog est encore actif.
Hop hop trève de discussions :

Voila, si vous vous attendiez à plus d'explications, bah, tant pis.

lundi 24 décembre 2007

En vrac \o/

Et oui vous croyiez pouvoir y échapper mais le revoila, le billet de liens !
Pas mal comme cadeau de Noël non ? (non)

Bref, passons aux choses "sérieuses" :

  • 9 CSS Ethics Every Designer Should Have Quelques bonnes pratiques en CSS
  • Kohana PHP est un framework en PHP5 basé originellement sur Codeigniter. Il est complètement objet et corrige pas mal de manques et problèmes de CI. Il manque toutefois encore un peu de maturité avant de pleinement le remplacer, et les docs laissent à désirer. Un projet à surveiller donc (le développement avancant très vite, préférez la version svn pour tester).
  • Des sorties côté rails pour les endormis : Rails 2.0 (2.0.2), et Rubygems 1.0 (1.0.1)
  • En parlant de rails, les slides de la conf Paris on rails 2007 sont dispos et y'en a des biens (<3 Christophe Porteneuve as usual). Si vous kiffez les slides mettez-en sous le sapin voila aussi ceux de Paris Web 2007, qui sont moins bien (la preuve, yen a au format powerpoint)
  • En enfin je m'aperçois que j'ai honteusement oublié de faire un billet sur le Barcamp Marseille (d'un autre côté c'était pas si intéressant donc c'est pas trop grave :) ). Voila tout de même le lien vers la conf pour les intéressés : http://barcamp.org/BarCampMarseille1
  • Et pour finir (oui je finis 2 fois) sachez que skateinmars.net tourne maintenant sous nginx en frontend :) apache est toujours la pour les quelques repositories svn et pour les scripts php (bien que je pourrais le remplacer par php-cgi, j'héberge quelques personnes qui ont besoin de htaccess apache)
Sur ce, joyeux Noël toussa toussa o/

mercredi 23 mai 2007

CodeIgniter, un framework PHP qu'il est bien

Ruby on Rails est peut-être à la mode mais je n'ai jamais été trop utilisateur des dernières technologies jusqu'à maintenant même si j'aime me tenir au courant. Pourtant, les frameworks web permettent de gagner énormément de temps en s'occupant de pas mal de tâches répétitives qui ne sont jamais fun pour un développeur.


Pour regagner un peu de fun dans le développement PHP de nombreux frameworks ont commencé à apparaître tels CakePHP, Symfony ou encore le Zend Framework qui deviendra certainement bientôt celui de référence car écrit par l'équipe des développeurs de PHP eux-mêmes.

J'avais besoin de rapidement créer quelques pages pour mon site (http://skateinmars.net) et j'ai voulu voir ce qui se cachait derrière l'idée d'un framework.

Voici donc CodeIgniter (http://codeigniter.com/) qui me semble un peu moins connu mais qui mets l'accent sur la simplicité et la légèreté. Il propose donc peu de fonctions mais est très modulaire, et se veut compatible avec PHP4.

La simplicité, est réellement la raison clé du choix de ce framework. Contrairement à une "usine à gaz" comme Symfony (ce n'est pas forcément un défaut, les créateurs annoncant eux-mêmes Symfony comme réservé aux grosses applications web de niveau "corporate"), CodeIgniter n'a pas d'interface en ligne de commande, ni de fichiers de configs évolués pour générer une partie du code.
Pour l'installer on va donc simplement décompresser un fichier, modifier deux/trois variables dans un fichier de config en PHP et c'est prêt.


Mais au lieu de comparer CodeIgniter (que j'appellerai CI pour moins me compliquer à écrire) à d'autres frameworks voyons plutiôt les features qu'il propose et que l'on peut attendre d'un framework aujourd'hui, ainsi que ses particularités ce qui vous permettra de choisir par vous-même.

Premier point, l'architecture : comme beaucoup de frameworks, y compris le célèbre Ruby On Rails, CI propose un système Modèle-Vue-Contrôleur. Pour expliquer rapidement, ce modèle sépare le code en trois parties :
  • d'un côté l'aspect présentation (Vue) qui représente comment l'utilisateur verra l'information. Le plus souvent ce sera donc une page web mais cela peut aussi être un flux RSS, un fichier XML etc... cette partie gérera donc par exemple l'utilisation des templates à utiliser.
  • de l'autre le côté Modèle qui définit comment accéder aux données et les modifier. Par exemple, c'est ici qu'on pourra y définir les méthodes nécessaires à la création d'une news ou à la récupération des commentaires d'un article de blog.
  • Le contrôleur va lui servir à relier les deux autres parties : selon ce que demande le visiteur, il va chercher les données appropriées depuis le modèle, puis les transmettre à la vue qui conviendra.
Dans la pratique, on utilisera une classe pour chaque modèle souhaité (par exemple, articles, ou commentaires), que l'on nommera et placera dans un dossier models définit par CI.
Les vues seront des fichiers PHP classiques ou se mélangeront code PHP et HTML. Des helpers sont mis à dispositions, ce sont des fonctions qui permettent de faciliter l'écriture d'un lien, d'un formulaire, etc...
CI étant modulaire, on peut tout à fait utiliser un moteur de template classique comme Smarty ou TinyButStrong sans problèmes particuliers (à part peut-être la nécessité de s'occuper différemment du cache des fichiers).

Le contrôleur est la partie la plus interressante. En fait, c'est la seule partie qui est strictement necessaire. On peut d'ailleurs y mélanger des tâches dévolues aux vues ou au modèle sans problème, même si cela reste déconseillé pour des raisons d'organisations et de clarté.
Les contrôleurs seront également déterminants car ils définissent les URLs du site.
Par exemple, le contrôleur Contact sera une classe Contact (qui étend la classe controller) placée dans le fichier contact.php du dossier controllers. On y créera les fonctions index, et par exemple send.
Le visiteur ira ensuite sur site.com/contact, et CI déclenchera automatiquement la fonction index de la classe Contact. Magique :)
Si la fonction send prend en paramètre une personne, le visiteur cliquera ensuite sur un lien vers site.com/contact/send/bob, et la fonction send pourra ainsi chercher une vue qui par exemple affichera un formulaire pour contacter l'utilisateur Bob.

Voila donc l'utilisation de base de CI. Il propose bien sûr d'autres fonctionnalités, comme l'URI routing : on peut par ce moyen rediriger une demande d'URL vers un autre URL pour utiliser un autre contrôleur et une autre fonction (de manière plus ou moins complexe grâce aux expressions régulières).

CI propose de plus une série de librairies pour faciliter les tâches courantes du développement web : l'envoi de mail, l'accès à un serveur FTP, la manipulation d'images et de fichiers, les sessions et ainsi de suite.

CI permet également de créer ses propres librairies, ses plug-ins (simples fonctions) ou encore l'utilisation de hooks, fonctions qui agissent à différents moments du traitement de la requête pour modifier le comportement de CI lui-même, encore une fois preuve de sa modularité.


Voila pour une introduction à CodeIgniter qui ne va pas très loin (je n'ai pas parlé du scaffolding par exemple), mais j'espère vous avoir convaincu de l'utilité d'un framework, et de donner une chance à CodeIgniter :)
Sachez que le niveau requis n'est pas très élevé, il vous suffira de connaître (sans forcément avoir déjà pratiqué) les bases de la programmation objet et d'avoir un minimum d'expérience avec PHP ne serait-ce que pour comprendre les objectifs et les besoins auxquels on fait face lors de la création d'un site ou d'un application web.


Les liens à ne pas manquer pour aller plus loin :
  • http://codeigniter.com/ Le site officiel
  • La documentation, très bien faite avec de nombreux exemples
  • Le wiki regorges de helpers, bibliothèques et autre plugins créées par les utilisateurs. Le forum, du peu que j'en ai vu, est quand à lui assez actif et une assez bonne ambiance y règne (quoique les utilisateurs se clashent parfois avec les devs de CodeIgniter, employés de EllisLab).
  • Certains utilisateurs ont d'ailleurs créé CIForge qui regroupe des projets autour de CI.
  • Et pour finir, les screencasts (à la mode depuis RoR) qui vous donneront une idée de CI grâce à un tutorial vidéo.

dimanche 13 mai 2007

Encore et toujours des liens

Ca vous avait manqué hein :)


On commence direct avec :

Voila de quoi faire en attendant le prochain billet (qui sera peut-être un vrai article avec du texte, qui sait !)

Update :
Un nouveau lien sur l'effet digg : http://pisani.blog.lemonde.fr/2007/05/14/la-rebellion-digg-les-faits/

jeudi 19 avril 2007

Links for 2007-04-19

Une grande personne célèbre (ou pas, en fait je ne m'en rappelle pas) a dit un jour : "Peut-on créer sans copier ?"
Il n'y a toujours pas de réponses certaines à cette question mais quoi qu'il en soit, voila quelques liens toujours plus inintéressants.

Et bah, voila !
J'ajouterai que le module d'édition WYSIWYG de Dotclear 2 est très agréable et me permet de blogguer une liste de liens avec encore plus d'efficacité, pour le plus grand bonheur de mr_prout !