Archive for 2008

28 September 2008

Multilingual Wordpress blog

[lang_fr]Drapeaux multicolores dans un temple à Darjeeling en Inde[/lang_fr][lang_en]Multicolor flags in a temple in Darjeeling, India[/lang_en]

This blog uses the Wordpress blog platform. All articles are available in French and English, and the interface of the blog is fully translated.

To do this, I use the qtranslate plugin. It enables to write easily articles, tags and categories in multiple languages. Default Wordpress widgets are also supported.

Use

The plugin modifies the administration of Wordpress by adding a field for each language for articles, tags and categories. For the rest, you have to use a very simple tags system: [ lang_en]English text[ /lang_en][ lang_fr]Texte français[ /lang_fr]

I use too on this blog many other plugins (for the widgets on the right for example). I had to slightly modify almost all plugins to support the languages tags system. You just need to add a call to the __() function – used in Wordpress to translate the interface using .mo files – to translate the strings before they are displayed using the languages tags system.

To enable users to switch from a language to an other, the plugin provides a widget to display. I rather liked to add the links on the top right of the page by inserting <?php echo qtrans_generateLanguageSelectCode('both'); ?> in the header of my template.

Improvements

For now, qtranslate doesn’t provide any system to detect the user language. I added on my blog a message that shows below the header if there is a more adapted translation of the blog available for you.

To do this, I inserted in the header of my template the PHP code in this file.

3 Comments »

Tiny6 – IPv6 in sensor networks

[lang_fr]Capteur MicaZ[/lang_fr][lang_en]MicaZ sensor node[/lang_en]

During the semester I spent in India from January to June 2008, I participated to the Tiny6 project between TELECOM Bretagne in France, the Indian Institute of Technology Guwahati (IITG) and an university in China.

Goal of the project

Sensor networks arenetworks of small nodes that communicate through a wireless link. They often use their own protocol to communicate together and with a machine that fetches data and makes them available on the Internet.

IPv6 is the next version of IP, the Internet Protocol. This new version provides much more adresses than the present IPv4.

All these adresses enable us to give a specific IPv6 adress to each mote in a sensor network, and to let them communicate through the IPv6 protocol. This allows us to simplify the network and make it more reliable by using many bridges between the sensor network and the Internet.

But IPv6 is made to be used with normal computers, while sensor nodes have very limited memory and computing ressources. So it is necessary to create a light protocol, this is what the 6lowpan working group has done.

In IITG, Alexandre, Antoine and me wanted to make this light protocol work on precise sensor nodes, and to let the nodes communicate through IPv6 with TELECOM Bretagne. We used the Matus Harvan thesis, a partial implementation of 6lowpan (IPv6, ICMPv6 and UDP are partially implemented) in NesC, a language used to program the motes, but for different motes.

Difficulties

The first difficulty was to understand how the motes and the Nesc language work. Nesc is a language derived from the C used to minimize the memory and CPU use. To program the motes, we used a base plugged in our laptop through USB. We used an adapted version of Xubuntu, XubunTOS in a virtual machine as an environment to program the motes and to connect them to the Internet.

We have then adapted the code of Matus Harvan to let it work on our motes, less powerful than the ones he used. Debugging the motes was a bit complicated because we had only 2 leds to make blink to know what was happening in the motes.

Finally we had to set up an IPv6 link between TELECOM Bretagne and the IITG. It proved to be complicated because the IITG had IPv6 adresses, but the routers of its access provider weren’t compatible. So we had to establish an IPv6 over IPv4 tunnel.

The most complicated in this project was to communicate with our indian supervisers. Many mutual misunderstandings made us waste a lot of time. It has for example been very complicated to get a routable IPv4 adress to communicate with TELECOM Bretagne. We had to work in the computer center, and the adress was only allowed to communicate with one server in TELECOM Bretagne.

Results

We finally managed to make the sensor motes communicate through UDP with TELECOM Bretagne, and send their measured data. But our will to make the network simpler was made difficult by the use of an IPv6 over IPv4 tunnel between the IITG and TELECOM Bretagne, and a NAT between our virtual and real machine:

Schéma de la connexion des capteurs au réseau IPv6

3 Comments »

7 July 2008

A semester in India

[lang_fr]Maisons dans le désert en Inde[/lang_fr][lang_en]Houses in the desert in India[/lang_en]

I just spent a semester in the north-east of India in Guwahati (Assam). I was in the IITG: Indian Institute of Technology in Guwahati. I was there from january to june 2008.

Studies

This travel was an exchange with my school in France, TELECOM Bretagne. It is considered as a normal semester during which I studied computer science (Software engineering) and signal processing (Signal processing in smart antennas). We were 3 students of TELECOM Bretagne in this exchange. We were too part of a project about the implementation of IPv6 in sensor networks, but I will tell more about it in a later post.

Travel, holidays, discovery

Tgus semester was an occasion to discover India and Indians. We travelled a lot during our free time. We went to Darjeeling, in the Rajasthan and on Andaman islands. You will find more information and pictures of our adventures on the blogs of the 2 students who were with me: Alexandre and Antoine (in French).

No Comments yet »

10 June 2008

My UWA widgets

[lang_fr]Widgets UWA : write once, run everywhere[/lang_fr][lang_en]UWA widgets: write once, run everywhere[/lang_en]

I am yet migrating to this blog all the projects I maintain. As part of this process, I just migrated all the UWA widgets I created.

UWA widgets are tiny web applications that can run on platforms like Netvibes, IGoogle, Live.com, Opera, the Vista sidebar or the Apple dashboard.

I describe all these widgets in the category "UWA widgets".

Don’t hesitate to try these widgets, and please tell me in the comments on the page about the widget if you encounter problems.

No Comments yet »

1 June 2008

TvOnResEl: watch TV on your computer easily!

[lang_fr]Logo de TvOnResEl[/lang_fr][lang_en]Logo of TvOnResEl[/lang_en]

As I arrived at TELECOM Bretagne, I discovered the ResEl : the students’ network. I discovered too that they were broadcasting all free TV channels on the network. The problem : the recommended software to watch these channel was VLC, a very powerful media player, but very complicated to use and not really adapted to watch TV.

So I decided to create a Java multiplatform open-source piece of software that controls VLC with a more adapted interface: TvOnResEl. I released the first version the 16th of october 2006.

In its present version, TvOnResEl allows to watch and save TV, program savings and browse the TV program.

For more information about TvOnResEl, go to the page dedicated to the project.

No Comments yet »

Summer internship as Netvibes developper

[lang_fr]Logo de Netvibes[/lang_fr][lang_en]Netvibes logo[/lang_en]

From july to august 2007, I have done an internship of two months by Netvibes in Paris. This internship was a summer internship for TELECOM Bretagne.

During this internship, I made development in AJAX, particularly for the Universal Widget API platform. I developed new widgets and converted old internal Netvibes widgets to UWA.

I developed too new UWA widgets compilers, and new environments to adapt widgets to other platforms.

Finally, it was a good occasion to discover the Netvibes team, and the good atmosphere in this start-up :) .

No Comments yet »

Develop a website for students to choose projects

[lang_fr]Logo de l\\\'UBO[/lang_fr][lang_en]UBO logo[/lang_en]

From january to june 2007, for my second semester project at TELECOM Bretagne “Development project”, I was asked, with 3 other students, to develop an online projects management system for the computer science department of the university Université de Bretagne Occidentale (UBO).

Goals

This website had to allow the persons invited by the projects session administrator to enter projects propositions. These propositions were then validated by the administrator, and shown to the students. THe interested students could then sort their choices. Once it was done, the administrator could assign projects to students, trying to satisfy a maximum of students. The assignments were then notified to the students.

The students had to be identified thanks to the LDAP of the UBO. However the persons who entered projects propositions weren’t all in the LDAP.

The website had to work in the most used browsers, and to use PHP and MySQL server-side.

Problems and solutions

The most difficult problem was the assignment of projects to the students. First we wanted to make an automatic system, but it wouldn’t have been flexible enough, and we hadn’t enough time to implement it. So we decided to create an AJAX interface that allowed the administrator to see in live which students and projects were unsastsified, and which changes could improve the situation. The changes could be saved at any moment to prevent data lost.

The interface for the students to sort the projects was a bit complicated too. So we used javascript to allow the student to slide and sort the projects. However the interface worked properly if javascript was disabled.

We had a little technical problem too to test the authentification system: we worked in TELECOM Bretagne and we hadn’t access to the UBO’s LDAP. So we tested the authentification with the TELECOM Bretagne’s LDAP, and we made the last changes during the deployment on the UBO’s server.

Difficulties

La première difficulté que nous avons rencontrée est que parmi le groupe de 4 étudiants pour ce projet, j’étais le seul à avoir déjà développé en PHP. Il a donc fallu du temps pour que les 3 autres apprennent ce langage.

THe first difficulty was that among 4 students, I was the only one to already know PHP. So the 3 others needed time to learn this language.

An other problem was due to a bad requirements gathering at the beginning of the project. As the problem wasn’t precise, the requirements have changedduring the project, making us waste a lot of time.

Conclusion

Despite these difficulties, the final result was functional, not beautiful (none of us was designer). It was fairly easy to maintain and properly documented.

I don’t know if our system is presently used at the UBO.

No Comments yet »

31 May 2008

A short adventure: Netvibes modules directory

[lang_fr]Un mini module Netvibes[/lang_fr][lang_en]A Netvibes mini module[/lang_en]

Do you know Netvibes ? This is (in my opinion) the best customizable start page (competitor of iGoogle).

It allows you to put on the same page all the information you are interested in on the web. For this, it uses a modular structure: each user can add the modules it is interested in.

The idea of a netvibes modules directory

Au début, seuls les développeurs de Netvibes créaient des modules, qui étaient accessibles à partir d’une barre latérale dans Netvibes.

At the beginning, only netvibes developpers could create modules, that users accessed thanks to a sidebar integrated in Netvibes.

But on 3rd March 2006, Netvibes announced on its blog the Mini Module API. So anyone with HTML knowledge could create modules for Netvibes. I then tried to create some modules.

Some days later, modules had been created by Netvibes users, but there was no easy way to list these modules. I then decided to create a modules directory. I released it some weeks later at http://twisterss.free.fr/netvibes. The website is now closed, but you can still see it in this blog’s archives.

This directory, that was available in English, French and later in German, was very successful, and most of netvibes modules were rapidly added by their authors.

Collaborating with Netvibes

A bit later, I was contacted by Tariq Krim, then Netvibes CEO, to integrate the directory to Netvibes. Thanks to this collaboration, the design was improved by a Netvibes designer (Maurice Svay), and I added RSS and Ical feeds support to the directory (an idea of Tariq).

Due to difficulties in the integration, my original code hasn’t been used in the Netvibes directory, but my database has been integrated to the Netvibes directory, that is still working.

To avoid multiplying the modules lists, I then deactivated my directory, and replaced it with a redirection to the Netvibes directory.

Conclusion

Finally my directory has only worked during some months, but it has had a lot of visitors. Thus I was obliged to create an advanced caching system, to avoid overloading my free host.

This short adventure allowed me to discover the Netvibes team. I understood too the necessity to write readable code, and to separate it from the appearance of the website, in order to ease the collaboration with other developpers and the reuse of the code. If I had properly used the PHP Zend framework, my code could probably have been reused in Netvibes directory.

No Comments yet »

Just for fun: my first website

[lang_fr]Capture de mon premier site internet[/lang_fr][lang_en]Screenshot of my first website[/lang_en]

While searching in my websites archives for my last article, I have discovered a very old website. This one is really the first website I have ever created.

As It made me laugh, I decided to put this website back online. You can see it here.

There are 4 pages created with WebExpert 2000. I remember having searched a long time to understand how to put it online. I imagin nobody has ever visited it.

This is a very good sample of what you shouldn’t do in a website :) .

No Comments yet »

Create the website of a very small business: Le fil à soi

[lang_fr]Logo du fil à  soi[/lang_fr][lang_en]Logo of Le fil à  soi[/lang_en]

This website is one of the first websites I have created.

History

The firstversion looked very bad: there were animated GIFs and frames that gave the website a very unprofessional look. Sadly I haven’t any screenshot of this version.

The second version was a bit better: I had discovered PHP, that allowed me to replace the frames by includes. But my free host didn’t provide any database, so all pages were saved in text files.

This architecture didn’t ease the modifications I had to do: generation of an RSS feed, creation of a simple administration interface, change of design…

Present state

A few years ago, I changed of free host, and I rebuilt completly the website to use a database and a homemade template system. I changed the design too (but the present design is still far from being XHTML valid).

You can see the website of “Le fil à soi” in its present version.

Conclusions

I am not yet satified by the design of the website, but I am limited by my skills in graphic design.

If you have to build a website for a very small business too, you should use a Content Management System (CMS) (drupal for example). It will allow you to reuse themes and plugins, and to customize the website as your client want very rapidly.

The next step for me would probably be to migrate this website to a CMS, and to convince the owners that they should pay for a real host and domain name.

No Comments yet »

  • Welcome!

    I write on this blog about my projects, my practices and my discoveries in the domains of the internet, networks and computer science.

    Tristan, French student in TELECOM Bretagne, a "grande école" specialized in telecommunications

    Contact me Twitter Facebook

    Read more »