About Harmony

Hi everybody, it's been a while but I'm fairly busy these times. I would like to make a little note about Harmony Framework. The news of the first preview release has been around for some time now and I have seen some good and bad reactions. Most of them is about the usefulness of the framework. I would like to remind that  Harmony is inspired and has the same goal as GWT (Google Web Toolkit). Their goal is to translate Java to Javascript and it's a great library, very useful and helpful. I don't see why Harmony's goal should be seen differently. And I'm speaking about the goal only, I'm totally ok with the fact that some people may think it's bad written, crap and anything else. Some people appears to think that the goal is to port php applications to javascript. This is NOT it! The goal is to use PHP on the server AND on the client. The server logic should stay on the server. I think there is a real usefulness to Harmony. It's a young project and I'm actively developing it. I hope next versions and a manual will clear these doubts about it.

Updates on Atomik Framework

Its been a while since the release of Atomik 2.0 and I said a new release would come quickly. Time has been however a bit short as I just moved to Montréal, Canada and have a lot of things to do. Still, Atomik is on its way to 2.1. The core is almost ready and I think no more features will be added. Some debug needs to be done. Most of the work will now be focused on Plugins. Atomik 2.1 adds many features to plugins. Most plugins have changed to use these features. This also allow  plugins to do great new things! There will be two new very important plugins coming with 2.1: Model and Backend. The first one is an ORM, very simple to use but very powerful. It can work on any data types (database, xml, mails, web services...) and supports relations, fields type, validation and automatic form generation. The Backend speaks for itself! It adds a backend to any website built with Harmony. Each plugins can add their own page to the backend. Two plugins will come to complete the backend: Pages and Config. The first one adds CMS features to any Atomik website and the second enables you to manage the configuration. The Model plugin is nearly finished. The Backend plugin needs however some work. I was hoping to release a first beta of 2.1 in mid October, but I will delay it to the end of October/early November. A note on Atomik 2.0. Some guys sent me a very nice cheatsheets for this version. They allowed me to post it here. You should check it out! Download Atomik 2.0 Quick Reference Chart

Harmony Framework first preview

I'm proud to announce the first preview of Harmony Framework, a new project by myself. I've been working on it for a bit more than a month now and I've decided to release a first preview earlier this week. In few words, Harmony allows you to convert PHP 5 code to Javascript. Nearly all php features are supported and the process is (nearly) instantaneous. Harmony is written in PHP 5 and is Open Source, under the MIT License. However, the über goal of Harmony is to simplify web development in general by unifying the client and server side development. From now on, you can code your whole site in PHP! To plainly fullfill is goal, Harmony also comes with Harmony XML, a Flex MXML like language to develop components using xml and javascript. Harmony also comes with a Toolkit - the first javascript toolkit to be written in php! - to provide the same feature on the server and on the client side. The official site can be found at http://www.harmony-framework.com. There is also a Google code website at http://code.google.com/p/harmony-framework You can try Harmony online on the offical website homepage.

Atomik Framework 2.0

Last night I finally published version 2.0 of Atomik Framework. It is a complete rewrite of previous versions but, unfortunately, not compatible. It has now an object oriented design and a much greater plugin system. It still fit into one script of 30Kb but it now only contains the core. All additional features are now provided as plugins. Atomik has now its official website, http://www.atomikframework.com, where you can download the latest version and read the documentation. A plugins repository should soon be added. Features kept from previous versions (however rewritten):
  • Actions and templates
  • Event driven
  • The package system now renamed plugins
  • Pretty URLs
New features:
  • Only one class: Atomik
  • More events
  • Accessors (get/set/has/delete to access a global store)
  • Selectors (idea coming from javascript frameworks)
  • New directory structure
  • Actions and templates have now their own scope
  • Much cleaner and better API
  • More comments
  • New coding standards (borrowed from Zend Framework)
  • New way for plugins development
  • New plugins
You can learn more by reading the manual available on the website: http://www.atomikframework.com/doc/manual Roadmap:
  • Plugins documentation
  • Plugins repository
  • Atomik Backend (work in progress, available in the trunk from the svn repository)
You can submit bug reports and ideas on the Google code website: http://code.google.com/p/atomikframework Download Atomik

One week on the web: the end!

For new readers, One week on the web was my weekly wrap up of all things I read in the week. I did not have a lot of time to post the last month so it was a bit dead. Now it is officialy dead! It is now replaced with my Google reader shared items in the sidebar. Thus, it is continually updated and give me more time for other things.

Now in English!

Today is a big shift for my blog as it will now be in English. The reason is I don't want to be limited by the language and that I'm moving to Canada next year, where English will be more appreciated. Also comes with this shift a new theme from Fen. For French readers: Aujourd'hui grand changement sur le blog: à partir de maintenant tout sera en anglais! La raison est que je ne veux pas être limité par la langue et que je pars au Canda l'an prochain, où l'anglais sera plus de rigueur. Au passage, un nouveau thème par Fen!

Atomik, toujours d'actualité

Atomik Framework est toujours là. On m'a proposé d'écrire un article au sujet de ce projet sur développez.com, ce que j'ai bien évidemment accepté. J'espère le publier bientôt et j'espère surtout que ça fera connaitre le projet à un plus grand nombre (j'avoue tout de même que je ne m'y suis pas beaucoup investi...). Donc dans l'optique de le faire connaitre, je me suis finalement lancé dans la création d'un site autour du projet! Il sera en ligne dans la semaine. Au passage, je pense que je ferai une petite mise à jour vers une nouvelle version. En attendant tout ça, je vous propose un nouveau package. Il apporte le support des controllers et des routes! Tout ça sans modifier le core, ce qui démontre la réelle flexibilité d'Atomik. Vous pouvez le télécharger en cliquant ici. Pour l'utiliser, copier le fichier controller.php dans le dossier packages de votre arborescence Atomik. N'oubliez pas ensuite de l'activer dans la configuration (en rajoutant une entrée "controller" dans la clé "packages"). Attention, une fois activé, vous devez obligatoirement utiliser des controllers (pas de mix entre pas de controller et controller). Les explications sont dans les sources du package. Un rapide aperçu tout de même. Pour créer le controller index: dans le fichier logic/index.php:
 1 class IndexController
 2 {
 3     public function index()
 4     {
 5     }
 6     public function view($request)
 7     {
 8         $this->id = $request['id'];
 9     }
10 }
Les vues sont définies dans presentation/index/index.php et presentation/index/view.php. Cette dernière par exemple peut ressembler à:
1 Mon id: <?php echo $id ?>
($id est celui que j'ai défini avec $this->id) Finalement je défini la route pour l'action view dans la config:
1 config_set('controller_routes', array(
2     'index/view/:id' => array(
3         'controller' => 'index',
4         'action' => 'view'
5     )
6 ));
Pour accèder à mon action index: /index ou /index/index. Pour accèder à mon action view: /index/view/1 C'est un rapide aperçu mais tous ceux qui ont déjà touché aux frameworks mvc comprendront. Pour les autres, direction la doc :-) A très bientôt...

Une Semaine sur le Web

Cette semaine je change un peu la forme de cette rubrique. Moins commenté, plus rapide. Juste les informations les plus intéressantes de la semaine avec une petite description. Avant de commencer, je reviens mon article précédent (Le nouveau site de Free). Il est passé sur Scoopeo et mes stats ont explosées!

Merci à tous ceux qui ont visité le blog! I.T. 2.0 Encore un article intéressant sur le mouvement Entreprise 2.0. On y parle de l'adaptation des services I.T. face à la Génération Y. The Next-Gen Web: HTML5 - Will We Ever See A Real Standard? Un article et surtout une discussion (dans les commentaires) très intéressante sur l'importance d'un nouveau standard (HTML5). Pas mal de commentaires soulignent le fait qu'il vaudrait mieux se concentrer sur uniformiser l'existant (notamment CSS) plutôt que de travailler sur HTML5. Chose avec laquelle je suis tout à fait d'accord. Mais je pense qu'il faut quand même réfléchir au prochain standard. Le W3C devrait vraiment créer une sous division "Adoption des standards" avec un département marketing! Ça ne pourrait faire que du bien. Comment lancer son entreprise et devenir riche ? Le titre parle de lui même. Une interview de quelqu'un - qui a priori a l'air connu - qui donne sept conseils sur le sujet. Google's I/O conference: an open source perspective Un article qui revient sur la conférence Google I/O When programming for NASA, contingencies pile up Un article très intéressant sur le travail de programmation réalisé pour Phoenix (l'engin qui vient de se poser sur le pôle nord de Mars). Impressionnant! Programming Tips By Omar AlBadri Cinq conseils pour tous les développeurs. Les gamins téléchargeront directement les informations dans leur cerveau d’ici 30 ans Le titre parle de lui même! A la semaine prochaine!

Nouveau site de Free

Free lance aujourd'hui une nouvelle version de son site prospect: free.fr/adsl. C'est la société dans laquelle je travaille, Maecia, qui a été chargée de l'intégration de ce dernier (nous n'avons pas réalisé le design). Le travail a été réalisé au sein d'une équipe dont je faisais partie sur une durée de deux mois. Ce fut un boulot conséquent avec énormément de pages. Sans conteste, le plus gros projet sur lequel j'ai eu à travailler. Le site final est 100% valide ce dont nous étions plutôt fier pour un site de cet acabit! Il est développé en XHTML 1.0, CSS et utilise jQuery. En interne nous avons utilisé un système de template XSLT que j'ai moi même développé au début du projet. Il s'est avéré très utile au fur et à mesure que le nombre de pages augmentait. Son principal atout étant d'être orienté composants, chacun d'entre eux avec son propre code HTML, CSS et Javascript et étant réutilisable. Un des plus gros défit, outre l'interfaçage avec le système existant, a été la carte des tarifs téléphoniques. Elle est 100% réalisée en javascript en utilisant une image svg et la balise canvas. Les performances ne sont pas idéales sur certains navigateurs mais dans l'ensemble le résultat est convainquant! Quelques petits regrets plus le développement avançait. Notamment le fait de ne pas avoir utilisé un framework de grille CSS. Le design est en effet très "tabulaire" et un tel système n'aurait que simplifié la mise en page. Au final, rien de bien méchant, mais à l'avenir j'utiliserai surement ce type d'outils. Voili, voilou, c'était juste histoire de faire un billet pour marquer le coup! ++

Une Semaine Sur Le Web N°4

Bonjour à tous! Cette semaine: Android, quelques articles intéressant sur le Web sémantique et des liens vrac. Android Cette semaine on a reparlé d'Android (décidément, Google fait parler de lui toutes les semaines!). Ceci a eu lieu dans le cadre de Google IO, une conférence Google. Plusieurs vidéo d'Android ont circulées. On a pu voir une interface plus évoluée par rapport aux premières versions et quelques fonctionnalités vraiment sympathiques. J'avais testé le SDK a sa sortie et le développement d'applications sur cette plateforme est vraiment un plaisir. Je pense qu'elle a un jolie avenir de par sa nature Open Source mais néanmoins pousser et supporter par Google et parce qu'elle est attrayante d'un point de vue développeur. Android Is Out For iPhone Blood, Android struts its stuff with new features, more integration, L’avenir du mobile sera-t-il aux widgets ? Web sémantique Deux articles qui remettent en question le Web sémantique. Le premier pense qu'on attend trop de cette technologie, ce qui n'est peut-être pas faux, mais je pense qu'il faut voir grand pour celle-ci. Elle est peut avoir (et elle aura) un impact retentissant sur Internet et l'accès à l'information. Néanmoins l'article soulève des points intéressants: Semantic Search: The Myth and Reality. Et un autre article du magazine New Scientist: Birth pangs for the 'semantic web'. Ars Technica est quant-à lui plus optimiste en nous présentant des recherches sur "la sémantique" dans notre cerveau et comment l'utiliser pour le Web. Il conclu sur un point intéressant: le Web est déjà indirectement (légèrement) sémantique. En effet, les moteurs de recherche par exemple s'appuient sur les liens entre les pages considérant que ce sont les humains qui les ont fait et qu'ils savent donc ce qu'ils font! Il n'en reste que l'association n'a "aucun sens" et c'est là que le Web sémantique interviendra. The semantic web gets a boost from functional MRIs Javascript Google a présenté cette semaine un CDN (Content Delivery Network) pour les librairies javascript. Cela permet la mise en cache effective de ces librairies côté client et de ne pas se soucier des patchs de sécurité et des mises à jours. Très bonne initiative et je pense que je l'utiliserai dès que j'en ai l'occasion. Announcing AJAX Libraries API: Speed up your Ajax apps with Google’s infrastructure Pour les utilisateurs d'Eclipse j'ai aussi découvert le Javascript Developer Toolkit. WDT n'offrant pas beaucoup de fonctionnalités pour les développeurs javascript, ce toolkit se veut plus complet. Il est dans ses prémices mais très prometteur avec auto complétion, inférence des types (auto-découverte du type courant d'une variable), support pour certains frameworks... Meet the JavaScript Development Toolkit. En Vrac Yahoo Unveils Webtop Plugin, BrowserPlus, Before It’s Ready, 10 Object Oriented Design Principles, MSNBC Spectra, Enterprise Adoption of Web 2.0: It's Happening, Firefox 3: Native Ajax File Upload, PHP Compiler for the .NET Framework