Webkit sur maemo

La tablette internet de nokia mérite bien son nom, après le portage de Mozilla c’est Webkit qui pointe le bout de son nez.

Webkit est le fork fait par Apple de KHTML (le moteur de rendu fait par KDE pour Konqueror), il a pour réputation d’être à la fois lèger et performant. C’est d’ailleurs la base de Safari que l’on retrouve sur l’IPhone.

Actuellement il y a deux portage en cours.

#Origyn Web Browser Le premier est l’oeuvre de sand-labs

Pour le moment il n’y a aucune release officielle mais des instructions pour le compiler sont disponible ici: http://www.sand-labs.org/owb/wiki/OwbN800

<Origyn Web Browser100 center>

Le code source serait disponible sous licence BSD et ce destine à terme à toutes les plateformes embarqués allant du GPS au smartphone.

Source: linuxdevices.com

#Webkit EAL Tout comme MicroB (le portage de Mozilla), ce portage réutilise l’Engine Abstraction Layer. Ce qui fait que l’on garde toute l’interface du navigateur de la tablette avec la possibilité de juste changer le moteur de rendu (Opera, Mozilla ou Webkit donc). L’avantage de ce portage outre sa parfaite intégration à la tablette, est qu’il est réalisé directement dans la Subversion de Webkit, il profite donc des avancés réalisées sur les autres plateformes.

Source: maemo-developpers

L'IPhone sur maemo

Il faut reconnaître que Apple est passé maître dans l’art de faire des belles interfaces ergonomiques et innovantes. Heureusement l’une des forces du libre c’est sa capacité de réactions et des développeurs on déjà portés certaines des fonctions de l’iPhone sur les nokia n770 et n800.

#Le défilement dans les listes de l’IPhone C’est certainement la meilleur idée en terme d’interface de l’iphone. En effet scroller sur un PC nous parait une chose très simple maintenant que toutes les souris possèdent une molette et tous les touchpads une zone dédié au défilement. Pourtant sur un PDA ou un smartphone c’est une autre paire de manches.

Apple a donc mis au point une manière de faire défiler une liste très efficace et utilisable avec les doigts.

Plutôt que de partir dans explications obscures je vous laisse regarder la vidéo de la version pour maemo: <emb93|center>

Ce n’est encore qu’à l’état de prototype mais le code source est disponible dans le CVS de e17: http://www.enlightenment.org/viewvc/e17/proto/python-efl/python-edje/examples/evas-demo/03-kinetic_list/

#Le clavier de l’iphone Honnêtement le clavier virtuel de la tablette de nokia est très bien. Mais une des forces du libre c’est de donner le choix à l’utilisateur.

J’ai fait une vidéo du clavier virtuelle actuel du N800 pour pouvoir comparer: <emb97|center>

Et voici la version iPhone like: <emb94|center>

#L’interface multimédia Apple à déjà une longue expérience avec les différences versions de l’IPod mais le n800 n’est pas en reste avec canola.

Canola est une interface qui permet d’accéder facilement à toutes les fonctionnalités multimédias de la tablette internet (musique, vidéo, podcast, images…). Toute la navigation est possible avec les doigts et l’interface est très agréable visuellement.

http://openbossa.indt.org.br/canola

Un aperçu de l’interface de la prochaine version: <emb95|center>

#La navigation sur internet J’en ai déjà parlé dans un précédent billets (article250) mais désormais le moteur de rendu Gecko 1.9 est disponible pour le n800. Cela signifie que tous les site web 2.0 marchent aussi bien que sur les PC de bureau. Le retard sur l’Iphone son navigateur Safari est donc compensé.

<Google reader avec Mozilla sur le N80096 center>

#Conclusion Grâce au portage de e17 et de python sur la plateforme maemo les effets nécessaire pour le clavier et le scroll avec le style IPhone ont demander peu d’efforts (enfin c’est relatif mais comparé à de la SDL…). Les développeurs dispose donc d’outils simple et performant pour créer des interfaces belles et fonctionnelle qui tiennent la dragée haute au logicielle propriétaire (franchement Windows mobile je trouve pas cela terrible en terme d’ergonomie).

La démonstration technologique qu’est le nokia n800 laisse présager de très bonne choses pour les futurs portables sous Linux. C’est là un marché où le logiciel libre peut facilement percer car les utilisateurs ne sont pas aussi réfractaire aux changements que pour le desktop.

#Sources

GoPHP5

GoPHP5 est une initiative qui vise à pousser l’adoption des versions récentes de PHP. Cette action est soutenue par des projets très populaires comme Phpmyadmin, Drupal, Gallery, PHPUnit…

En effet aujourd’hui beaucoup de développeurs sont obligés d’écrire du code PHP4 à cause d’hébergeurs refusant de migrer vers PHP5. Cela est pénalisant car le support objet de PHP4 souffre de sérieuse lacunes et donc le code est de moins bonne qualité et plus dur à maintenir.

PHP5 apporte aussi un parsing du xml plus simple et une couche d’abstraction de base de données de très bonne qualité (PDO).

Pourtant le passage a PHP5 est trivial dans la plupart des cas (il s’agit souvent de juste quelque warning) et c’est une première étape avant PHP6.

C’est pour cela que dans le cadre du projet USVN nous avons décidé de soutenir cette initiative et de ne plus supporter les versions de PHP inférieur À la 5.2.

#Pourquoi ne pas soutenir des versions de PHP inférieur à la 5.2?

  • La version 5.0 de PHP souffre de problème de performance et il y manque PDO.
  • La version 5.1 est de bonne qualité, mais il lui manque les extensions JSON et Filter

Mais ce n’est pas vraiment un problème puisque la plupart des distributions fournissent PHP 5.2 (debian compris).

[<88 center>](http://www.gophp5.org/)

Mozilla sur N800

C’est noël avant l’heure pour les possesseurs de N800. En effet après une mise à jour du firmware qui a apportée flash 9, skype et le support des SD de 8 GO, voilà un remplaçant à la vieille version d’Opera fournis par Nokia. En effet c’est un portage du gecko 1.9 (firefox 3.0) parfaitement intégré à l’interface. La finition est bluffante en effet c’est totalement transparent puisque mozilla vient juste remplacer le moteur de rendu du navigateur de la tablette (on peut switcher en un clique de moteur pour revenir à celui d’Opera).

Je peut enfin lire mes flux rss avec google reader dans mon transat. <86|center>

Et planifier ma prochaine sortie à la plage sur google calendar: <87|center>

Pour installer mozilla pour le n800 aller sur: http://browser.garage.maemo.org/

En conclusion frâce à la toute dernière version du gecko et à flash 9 on a accès à toute les dernières applications en ajax qui clignote et qui épate les voisins. L’Iphone n’est pas prêt pour remplacer le N800 comme tablette internet.

Encoder des vidéos pour le n800

Régulièrement j’utilise le nokia n800 pour regarder des films dans le train. L’écran est parfaitement clair et les vidéos sont fluides, j’arrive même à regarder des séries en VO sous titrés sans aucune difficultés.

Pour visionner les films le lecteur mplayer remplace avantageusement le lecteur de Nokia. En effet mplayer supporte plus de format de vidéo et gère les sous titre.

Vous pouvez télécharger mplayer pour maemo sur : http://mplayer.garage.maemo.org/

Afin d’avoir des films adaptés à la taille de l’écran et de ne pas encombrer ma carte mémoire je réencode mes films à l’aide d’un petit script 770-encode.pl.

Le script est disponible à cette adresse: http://www.bleb.org/software/770/

Pour l’utiliser vous devez installer mencoder. C’est l’outil d’encodage du projet Mplayer. Sur une debian:

apt-get install mencoder

Ensuite pour encoder une vidéo:

770-encode.pl --preset=mplayer source.avi destination.avi

Et c’est tout :D

A l’aide de l’option –preset vous pouvez changer la qualité de l’encodage.

Pour connaître la liste des qualités d’encodage disponible:

770-encode.pl --preset=list

Même la qualité la plus faible est parfaitement regardable. Maintenant à vous les joies de la vidéos sur votre tablette internet.

Détecter comment PHP est lancé

Il est parfois intéressant de savoir comment a été lance PHP (module apache, cgi, cli)

Cela peut se faire très simplement à l’aide de la fonction php_sapi_name.

Par exemple pour vérifier que php est lancée en ligne de commande :

if (php_sapi_name() != "cli") {
   echo "Ligne de commande";
}

La documentation de php_sapi_name