Archive pour la catégorie 'Internet'

WordPress As Back End For Posh Widgets and OpenSocial Gadgets

Mercredi 26 août 2009

I developed for percolab.com, under the supervision of my friend Yves Otis a framework that can generate interfaces for OpenSocial gadgets (Orkut, iGoogle), widgets (Portaneo Posh) and HTML.

The goal of this framework is to offer to Québec’s immigrants a way to show to others and themselves their abilities. These abilities are regrouped in activities, themselves grouped under broader terms like Practical Life, Learning French, Experiences, About Me, Working Outside Québec and so on.

The idea is for the immigrant to be able to edit a widget in Posh, or a gadget in Orkut or iGoogle that is generated by the framework. The same core templates are used to generate all the interfaces.

Here’s two examples:

gadget.orkut.png
gadget.igoogle.png

You will note that nothing is really styled or designed. This is an early stage of the project where the designers have not yet worked on the templates.

The framework is based on the marvelous CodeIgniter. Fundamentally, here how it works. Sorry, I’m not very good at modelling, but you will get the basic idea.

schema_simple_epimm.png

Ok, it’s much more complicated than that. I’ll post about it later because the framework use MySQL 5.1 XML capabilities as an almost free form database, where the all the values populating the forms are filtered using a mix of SQL/XPath, XSLT and jQuery, bypassing PHP to do this work. Basically, you drop a form in the framework, and it just work, you don’t have to write new PHP code to handle the values, you don’t need to modify the database schema, you don’t need to edit a config file for the database like in Rails.

To get back to my schema, the first request to the framework is done by a GET from Posh/Orkut/iGoogle, and then, CodeIgniter throw back at the host of the widgets/gadgets a chunk of XHTML where all interactions (create, update, delete )are done with Ajax. In a way, the widget/gadget contains a self-contained mini application.

Some activities are basically resources where the user does not need to edit anything. The only thing he/she can do to contribute is to comment about the resource and add some pointer to other resources on the Internet. Yves, being what he is, asked me, why not using WordPress, so, average people who are not programmers will be able to edit the resources and control/approve the comments? Since WordPress offer a nice interface that almost anybody can use, I plugged WordPress for some activities on the framework.

Here’s an example of an activity of the kind « ressource ».

The top of the gadget.

orkutdico1.png

The bottom of the same gadget.

orkutdico2.png

The content of this gadget is coming from WordPress, and the comment fields, while done in the template that generate the gadget are done in the framework, are hook to WordPress.

When for example, Orkut load this particular gadget, the framework do an XML-RPC request to WordPress using the WordPress XML-RPC API with the methods metaWeblog.getPost and get the content of a specific WordPress post related to the resource needed. The framework also does a request to get all the approved comments for this post with the method wp.getComments. Then the framework throws back the content to the Orkut gadget.

When a user press the button to submit a comment, the values of the comment fields are send to the framework via Ajax (gadget.io.makeRequest() on Orkut/iGoogle and jQuery/$.ajax with Posh). Then the framework does an XML-RPC request with the method wp.newComment to the WordPress blog. The comment is inserted in the WordPress blog, and an email is sent to the administrator to approve this comment.

Here’s another schema that shows what is happening. (Gee, I should really learn how to use OmniGraffle.)

schema_simple2_epimm.png

Letting the framework doing the XML-RPC calls to WordPress is the way to bypass the troubles you get with Ajax and the same origin policy. Also, it’s easier to program this way, than trying to do this from the Orkut gadget or Posh widget, because these kind of environments are quite hard to debug.

So, to sum it up, the user of the gadget never goes to the WordPress blog, she/he never knows in fact that we are using a WordPress blog. We post the comment anonymously, and set WordPress to accept XML-RPC requests, and also allow commenter not to be registered in WordPress.

There was a catch that I have too figured out how to post comment under the name of the commenter on WordPress. In fact the solution was provided kindly by Joseph Scott on one of the WordPress forums. The basic idea, is to leave blank the name and password of the owner of the blog (param 2 and 3) with the method wp.newComment and install a plugin that will implement a filter to allow XML-RPC anonymous comment.

Sylvain Carle will be guest speaker at an event on using WordPress beyond the blog. I’ll guess I will now have to attend :) .

Update (2009-08-27): This conf is just too expensive for me (300 $ to 400 $ for 4 hours).

Retour de mon MacBook Pro

Mercredi 27 mai 2009

J’ai donc cueilli au Apple Store mon MacBook Pro dimanche dernier avec une nouvelle carte mère.

Le remplacement de la carte mère entraine la création d’une nouvelle adresse MAC dont se sert Time Machine. Je ne savais pas que Time Machine se servait de cette identification pour les copies de sauvegardes. Time Machine a donc voulu recommencer une nouvelle copie de sauvegarde. Mais comme mon Time Capsule de 500 Go n’avait plus qu’une quarantaine de Go disponibles, j’ai dû éliminer ma copie de sauvegarde et en recommencer une autre. C’est une situation qui est loin d’être idéale. Cela ne m’embêtait pas trop, car je n’ai pas une totale confiance dans Time Capsule, et je me sers aussi de Retrospect, et la dernière version est vraiment bien.

Le hic, c’est qu’Utilitaire Airport ne voyait plus Time Capsule, ni mon Apple TV, et ni mes Airport Express. Bien que la connexion Internet sans fil et par câbles Ethernet fonctionnait bien, le reste ne fonctionnait pas. Je ne sais pas si le problème était lié au changement de ma carte-mère, ou une corruption d’OS X, mais l’un dans l’autre, il y avait quelque chose qui clochait.

Lundi, j’ai passé plus d’une heure avec une technicienne d’Apple fort compétente. La lumière est venue quand elle m’a fait installer Utilisaire Airport sur mon PC que j’avais redémarré sur Vista. Sur Vista, Utilitaire Airport voyait Time Capsule et mes bornes Airport Express. Donc, Time Capsule n’était pas en cause et j’ai décidé mardi matin de réinstaller Leopard.

L’installation de type « Archiver et installer » s’est très bien passée. Je dois dire qu’Apple à fait un travail extraordinaire, moi qui installe des systèmes d’exploitation d’Apple depuis le système 7. Une fois le système réinstallé, et les mises à jour faites, tout s’est mis en place, et mon MBP semble fonctionner parfaitement.

Une des premières choses que j’ai faite est de copier des configurations serveurs dans une note sécurisée sur 1Password, et ensuite de synchroniser ce dernier avec la version que j’ai sur mon iPod Touch.

Les leçons que je retire de ces mésaventures.

1. Le iPod Touch est vraiment utile comme copie de sauvegarde pour ses contacts, son agenda (iCal), et 1Password. Je crois que mon expérience aurait été vraiment difficile de me passer de mon MBP si je n’avais pas eu mon iPod Touch. Ça me donne même à penser que je devrais peut-être m’abonner à Mobile Me.

2. Ubuntu 9.0.4 est vraiment utilisable comme plate-forme alternative à OS X. Évidemment, je préfère 100 fois plus OS X. Mais, je suis bien heureux de pouvoir aussi me servir d’Ubuntu qui est en code libre et gratuit. J’ai commencé sur Linux il y a je crois une dizaine d’années avec une distro faîte par Caldera. Après Caldera, j’ai longtemps utilisé FreeBSD sur mon PC d’appoint. Et je continue d’utiliser FreeBSD 6.3 sur mon serveur virtuel chez Johns Companies. Je ne crois pas que pour une serveur, je passerais à Ubuntu, mais pour chez moi, pas de problème. Pour le courriel sur Ubuntu, je suis passé d’Evolution à Thunderbird. Et pour la musique, d’Amarok (j’ai pas vraiment compris son fonctionnement), à Rhythmbox qui ressemble à iTunes et qui est aussi bien fait.

3. On ne peut pas se fier à Time Capsule pour ses copies de sauvegardes. Depuis un an que j’utilise Time Capsule, bien que j’apprécie son fonctionnement, il y a eu trop de cas où j’ai perdu des copies de sauvegardes parce que l’image sparse bundle était corrompue, ou que Time Machine s’emmêlait les pinceaux. Je crois que Time Capsule doit être vu comme l’auxiliaire de Retrospect, ou d’un autre logiciel de sauvegarde qui a fait ses preuves.

4. Le problème avec Time Capsule et Retrospect, c’est que si on a pas un Mac, on peut difficilement accéder à ses copies de sauvegardes. Bien sûr, en cas d’urgence, on pourrait acheter une version de Retrospect pour Windows ou Linux. Mais Retrospect n’est pas donné. En outre, bien qu’il existe des recettes sur l’Internet pour monter le disque dur de Time Capsule sur Ubuntu, je n’ai pas réussi à faire cela, et aussi, ça me semble vraiment jouer avec le feu. Je pourrais me servir d’un service de sauvegarde via Internet comme CrashPlan, mais j’ai pas envie de saturer ma connexion Internet par une sauvegarde. Par conséquent, en plus de Time Capsule et Retrospect, je vais aussi faire des copies de sauvegarde avec Carbon Copy Cloner qui est gratuit. Je vais mettre cela sur un disque dur USB que je pourrais monter sur Ubuntu ou Windows. Comme cela, si je dois aller chercher un ficher texte, comme du code, je pourrais faire cela.

5. Changer de carte-mère n’est pas trivial. Il est possible qu’OS X fût déjà corrompu avant que je change de carte-mère. Je crois que si l’on éprouve le moindre problème avec OS X avec ce changement, c’est mieux de réinstaller le système. Avec l’option « Archiver et installer », c’est une opération qui n’est pas très douloureuse et qui n’est pas laborieuse à accomplir.

Jeremy Zawodny on the New MySQL Landscape

Lundi 8 décembre 2008

The single most interesting and surprising thing to me is both the number and necessity of third-party patches for enhancing various aspects of MySQL and InnoDB. Companies like Percona, Google, Proven Scaling, Prime Base Technologies, and Open Query.

One the one hand, it’s excellent validation of the Open Source model. Thanks to reasonable licensing, companies other than Sun/MySQL are able to enhance and fix the software and give their changes back to the world.

Some organizations are providing just patches. Others, like Percona are providing their own binaries–effectively forks of MySQL/InnoDB. Taking things a step further, the OurDelta project aims to aggregate these third party patches and provide source and binaries for various platforms. In essences, you can get a « better » MySQL than the one Sun/MySQL gives you today. For free.

Jeremy Zawodny: The New MySQL Landscape

Interview of Evan Prodromou of identi.ca

Mercredi 24 septembre 2008

Fascinating interview from Phil Windley of ITConversations of Evan Prodomou which is the promoter of identi.ca, a twitter compatible platform. Beside identi.ca, what was quite interesting for me is the Laconica microblogging platform (PHP) which identi.ca is based upon. It appears that you can install this platform to start your own microblogging interface under your own domain, which can be a fine proposition under some circumstances. Last but not least, it seems that identi.ca is compatible with Twitterrific, a nice twitter client on OS X.

OpenDNS: Fast and Free

Lundi 25 février 2008

I recently came upon OpenDNS listening to the following podcast.

Technometria, Remaking DNS, ITConversations (MP3)

Basically, you use their DNS instead of the DNS provided by your ISP to get a faster resolving DNS service (i.e. your web pages will load faster). You are not obliged to create an account to use their service. But, if you do get an account, you will get some features like anti-phishing, typo correction in the domain names, filtering of adult sites, and stats. All these options are opt-in.

After using the DNS from OpenDNS, I have the feeling that my web pages load faster. Where clearly OpenDNS makes a tremendous difference is with SafariMobile on my iPod Touch when I’m home and using my wireless network.

OpenDNS use a very interesting business plan to makes money. Listen to the podcast to see how. They have Ray Ozzie as their principal investor, which is not a bad reference. They are already profitable.

I strongly recommend that you try the DNS provided by OpenDNS. It’s free, and if you just want to use their DNS, you are not obliged to sign for an account. What more can you ask for?