Styles

mardi 23 septembre 2008

Transformer sa Nintendo DS en tablette graphique avec Colors!

Quand on plonge dans le monde des homebrews nintendo DS, on pense tout de suite à jouer à des jeux homebrews. Bien qu'intéressants, les jeux homebrew ont rarement toute la richesse graphique et sonore des jeux commerciaux, et c'est normal. il est toujours coûteux de produire du contenu. Il n'y pas que des jeux parmi les homebrews, il y a des applications. Et c'est à mon avis là où le homebrew prend tout son sens. Grâce à ces applications, on peut transformer sa nintendo DS en véritable PDA ou même en iPod survitaminé :

- un système multimedia de visionnage de video, de lecture MP3 et de lecture de eBook : MoonShell
- un système d'organisation de son travail, genre PDA : DSOrganize
- un système riche de lecture de eBook et de Bandes Dessinées : ComicBookDS
- des browsers Web via Wifi

Il y a des tonnes d'applications, et on se demande où est la limite quand on voit les capacités d'ouverture de la console (Wifi). Là où j'ai vraiment été bluffé, c'est avec le homebrew Colors!. C'est un outil qui permet de dessiner avec le stylet de la console en tirant partie de l'écran tactile, de sa résolution et du niveau de pression. En effet, la nintendo DS est une véritable tablette graphique.

Mais vous allez me dire, l'écran est tout petit ! Oui, ce n'est pas un immense écran, mais avec la fonctionnalité de zoom, avec la boîte de dialogue Palette très bien conçue, puissante bien que très simple, on est capable de réaliser de véritables dessins, aussi bien que sur du papier. Vous allez dire que là, c'est pas possible, mais je pense exactement ça : avec la nintendo DS et Colors!, vous avez un cahier virtualisé pour prendre des croquis sur le vif, aussi pratique qu'avec un bloc note.

Si vous pensez vraiment qu'il est impossible de réaliser une œuvre de bonne qualité avec une simple nintendo DS, allez voir cette gallerie de dessins réalisés avec Colors!, et révisez votre jugement. La cerise sur le gateau : Colors! est aussi disponible pour votre iPhone...

Une fonctionnalité intéressante de Colors! après coup est l'enregistrement du séquencement de tous les traits. Vous pouvez rejouer le traçage du dessin depuis le début. On trouve pleins de videos montrant le traçage de dessins Colors.

Quand on voit la facilité avec laquelle on arrive à dessiner avec un simple stylet et un écran tactile, il est clair que la tablette graphique est l'outil indispensable pour faire du graphisme sur votre ordi. De nombreuses tablettes graphiques existent, Wacom étant le leader sur ce marché. Si vous souhaitez en acheter une, faire attention, bien sur à la taille mais aussi à la résolution et au niveau de pression. Plus il y a de niveaux de pressions et une bonne résolution, plus vous aurez l'impression de réellement dessiner sur du papier.

Je n'ai pas essayé, mais il paraît qu'une tablette graphique pour remplacer la souris de l'ordi, c'est excellent. Je n'ai pas essayé, mais c'est clair que quand on y réfléchi, avec de la pratique, ça doit être bien plus précis et rapide que de déplacer le pointeur par la souris. Mais peut-être qu'il faut, pour cette usage là, ne pas prendre une grande tablette pour éviter de fatiguer son bras, son poignet et sa main avec des mouvements trop grands. Il existe des tablettes graphiques relativement peu chères, ça peut faire un beau cadeau de Noël :)

vendredi 19 septembre 2008

Hacking de la sécurité de la Nintendo DS

Il est assez impressionnant de voir tous les efforts qui ont été déployés pour permettre de réaliser un développement d'application "homebrew" pour Nintendo DS. La réussite commerciale d'une console de jeu tient à la fiabilité de son système de sécurité anti-copie. Les jeux sur cartouche officielle nintendo DS sont cryptés selon un algorithme secret qui l'est resté plusieurs années.

Les premiers logiciels "faits à la maison" pour nintendo DS ont pu voir le jour par la découverte de bug dans le firmware de la console. Une fois un bug détecté, le hacker de la nintendo DS peut en tirer partie pour rediriger le Program Counter sur la première instruction de l'homebrew. Ce premier logiciel s'appelle PassMe.

Nintendo DS ayant eu vent de cette technique a immédiatement corrigé son bug et livra alors des nintendo DS avec un firmware corrigé. Un nouveau bug a été découvert dans cette nouvelle version du firmware qui a permis de mettre au point une nouvelle carte appelée PassMe2.

Cela rappelle une première évidence : la qualité d'un logiciel est l'aspect majeur de sa sécurité.

Selon, la version du firmware, il fallait à l'époque faire tourner ou une carte PassMe ou une carte PassMe2, or il n'y avait pas de possibilité de voir sur quel firmware fonctionne une nintendo DS. Hasard heureux, quelqu'un c'est aperçu par une combinaison d'actions que la nintendo DS était capable d'indiquer le numéro de version du firmware : en forçant la NDS a planter, celle-ci répond par des écrans de diverses couleurs, caractéristiques de la version du firmware !

Mais il n'a pas fallu très longtemps pour qu'un hacker arrive à backuper le firmware et a en faire une ingénierie inverse pour en trouver l'algorithme de cryptage. Depuis ce jour là, tout carte homebrew pu se faire passer pour un véritable jeu sous licence Nintendo.

Les hackers de tout poils s'acharnent à trouver comment faire fonctionner n'importe quel logiciel sur n'importe quel matériel. Nintendo essayant vainement de stopper l'hémorragie. D'autres cherchent à savoir comment pourrait être empêché toute corruption de machine. C'est ce que montre brillamment Michael Steil et Felix Domke dans leur présentation The XBox360 Security System and its Weaknesses :



C'est vraiment une guerre de l'homme contre l'homme, du hacker contre le hacker autour d'une même ressource qui ne souhaite qu'être comprise.

lundi 15 septembre 2008

Java mis au rebut par Sun

Le titre un brin racoleur de ce billet d'humeur cache une tendance beaucoup plus profonde qu'il n'y paraît. Aujourd'hui Sun vient d'ouvrir son nouveau site de "forge" de projet open source : kenai.com.

Ouvrir un tel site pourrait sembler une bonne chose, mais il n'en ai rien puisque toute initiative "open source" autour d'un concept déjà largement développé est redondante, et donc contre-productive.

Mais le pire n'est pas ce n-ième "sourceforge" qui se veut révolutionnaire près de 10 ans après l'apparition de sourceforge.net. Ce n'est pas non plus parce que ce site porte le nom d'un gros ours balourd de Walt Disney :

Non, le pire c'est bien sur que ce site ne tourne pas en Java mais en Ruby on Rails !

On sent bien en ce moment que Sun essaie de s'ouvrir à d'autres technologies, parce que ces clients eux-même ont envi de passer moins de temps à debugger des machines à gaz pour simplement servir quelques formulaires Web.

Quand on regarde du côté des autres promoteurs initiaux de Java, on vois partout ce penchant du côté des langages dit de "script". Ça me rappelle le début des années 90 avec cette même tendance à aller plus vite pour développer. C'est toujours à peu près le même scénario :
- des applications sont codées dans un langage dit structuré (= typé)

- on s'aperçoit que ces applications sont coûteuses en maintenance car trop compliquées pour le développeur de base.

- on se tourne vers des langages à typage dynamique ou non typé, des langages léger, "agiles", de script

- des applications sont développées beaucoup plus rapidement, mais les développeurs codent dans tous les sens, sans aucune structure claire

- on s'aperçoit qu'à terme, ça coûte toujours aussi cher de développer une application

- on cherche alors un nouveau langage structuré qui devrait permettre de cadrer le travail des développeurs et obliger à avoir du code "propre".

- retour à la première étape.
Tout cela cache une réalité bien plus banale et répandue : la volonté de mécaniser la production d'application par la création de schéma de pensée en apparence structurant. Mais cela abouti à un "déni de réalité", à un refus de vouloir considérer la "construction" de programme pour ce qu'elle est : une activité de réflexion.

Tant que ce déni de réalité perdurera, une attention trop faible sera porté sur le processus créatif sous-jacent à la programmation. Et les entreprises auront encore besoin de nombreuses "ressources humaines" pendant des années pour produire des applications de "qualité".

jeudi 11 septembre 2008

KeyPass, OpenID et mots de passe dur

Un de mes amis s'est fait piquer son compte eBay parce qu'il n'avait pas mis de mot de passe dur. Bien sur, eBay ne peut rien faire contre quelqu'un qui arrive à se connecter normalement sur son site avec le bon mot de passe. Autant dire que cet ami était furax de ne pouvoir rien faire.

Le problème c'est que sur la plupart des sites, pour utiliser des services, même gratuits, il est demandé de créer un compte avec un mot de passe. Pour que de nombreuses internautes créent leur compte, les sites n'empêchent pas l'utilisation de mot de passe faible, facilement "crackable". Il y a pourtant des sites pour lesquels on ne veut pas avoir de problème de sécurité, comme par exemple son compte email principal.

Or avec la multiplications des comptes, chaque internaute finit par devoir se rappeler d'une multitude de mots de passes (forcément des mots de passe faible). Il y a plusieurs solutions à cela :

- soit les sites propose de se connecter via OpenID : il suffit d'avoir un compte chez un fournisseur OpenId pour que tous les sites compatibles puissent se baser sur se compte OpenId pour vérifier les informations de l'utilisateur. De nombreux sites proposent l'hébergement de compte OpenId par défaut, comme Blogger ou Orange. Malheureusement, les sites supportant l'OpenId sont encore trop rare. Mais bon, ... autant avoir un compte OpenID quelque part.

- soit on utilise un logiciel comme l'excellent KeyPass : celui propose de stocker dans une base de données protégée par mot de passe ou via un certificat, l'ensemble des mots de passe que l'on possède. Il propose de générer des mots de passe dur pour chacun d'eux. On n'a donc plus qu'à se rappeler que d'un seul mot de passe (ou avoir un certificat). Je ne pensais pas qu'un tel logiciel soit vraiment utile même en entreprise, mais après utilisation et stockage de tout mes mots de passe, je m'aperçois que, rien que pour l'entreprise ou je travaille, j'ai déjà une vingtaine de mots de passe différents à retenir.

Avec ces deux méthodes, on est paré pour affronter la cohue de crackers déambulant dans les chemins dangereux de l'information.

dimanche 7 septembre 2008

Nintendo DS, hombrews et mégadémos

Quand on commence l'informatique, quand on a pour seul bagage la passion et pour seule alliée l'ignorance, le choix de la plate-forme de développement pour laquelle on va dévouer un nombre d'heures inimaginable pour en tirer quelque chose, devient crucial. De ce choix va dépendre la transformation de cette passion en véritable hobby, voire même en métier pour tout une vie.

Pour des générations d'informaticiens, tout est parti de la volonté de faire réaliser à une machine ce pour quoi elle n'a pas été conçue, d'aller au delà de ce qu'elle est sensée faire. Pour ma génération, nombreux se sont fait les mains sur des machines aux doux noms de ZX81, ZXSpectrum, Amstrad CPC, C64, Atari ST ou Amiga. Les heures acharnées à produire de nouveaux effets, multipliées par le nombre de passionnés de cette époque là, a abouti à ce qu'on appelle la Scène Démo. La vision de démos telle que la RSI Megademo a produit sur moi une impression vraiment indélébile.

Pour réaliser ces démos, et pour que ça soit fun, le but était bien sur de parler directement à la machine, pas de parler à un bloatware ou un bugware comme le système d'exploitation. Pour un gosse qui commence à se passionner, l'important est d'avoir accès à toute la machine, de pouvoir en faire ce qu'il souhaite, une sorte de bac à sable. Ce qui était vraiment le plus sympa était de voir qu'une machine en apparence limitée pouvait se surpasser.

Aujourd'hui, j'ai retrouvé toutes les joies de mon enfance (snif:) avec la nintendo DS. Cette console portable est si bien conçue qu'on a envie d'en faire quelque chose d'extraordinaire.

Pensez à tout ce que l'on peut faire avec deux écrans, dont un écran tactile, un microphone... et tout ça pour beaucoup moins cher qu'un véritable ordinateur. A mon avis, les gosses d'aujourd'hui ont tout intérêt à se faire la main sur ce genre de machine bien plus abordable qu'un PC, et surtout, bien plus fun :) Il n'y a qu'à installer 2 ou 3 trucs sur le PC de papa sans avoir besoin de faire planter Windows définitivement.

Tout d'abord, la nintendo DS n'est pas du tout une console banale, mais tout simplement un véritable ordinateur très évolué basé sur une double architecture ARM (ARM7TDMI, ARM946E-S). Cette architecture est une merveille de conception, elle a pour grand avantage de consommer très peu d'énergie et de permettre donc une autonomie bien meilleure que celle d'un PC portable par exemple.

Ensuite, il faut un moyen de faire exécuter du code dessus. Il existe de nombreux systèmes à base de cartouches plus ou moins évolués. Pour ma part, après comparaison, j'ai opté pour la CycloDS Evolution surtout pour les fonctions suivantes :
- fonctionne sur slot-1, pas besoin de faire du PassMe ou autre techniques de ce genre, et pas besoin d'avoir de carte GBA.

- permet de lire les cartes microSDHC de 4Go à 32Go,

- auto-patching DLDI

- nombreuses fonctions embarquées (soft reboot, autolaunch de la dernière appli)
Je l'ai trouvée sur Metashop, elle m'est arrivée assez rapidement et sans problème. Par contre, j'ai acheté une carte 4Go MicroSDHC sur Amazon, c'est beaucoup moins cher que chez Metashop. Attention à prendre une carte de class 4 minimum (4Mb/s) sinon, risque de ralentissement quasi-garanti.

Avec un tel matériel, faire fonctionner un homebrew sur sa console est un jeu d'enfant :
- glisser la carte microSDHC dans la clé USB fournie par CycloDS

- brancher cette clé USB sur un PC et y déposer directement les fichiers .nds non-patché DLDI (par défaut de toute manière)

- mettre ensuite la carte microSDHC dans la carte CycloDS Evolution.

- allumer la nintendo DS sur cette carte CycloDS.
Et voilà, on se retrouve avec un navigateur, genre Windows Explorer sur sa nintendo DS et cela permet de sélectionner le homebrew à exécuter. Le gamin que je suis resté a trouvé ce tutorial bien complet pour commencer à développer soi-même un homebrew. Le site de drunkencoders.com est une référence pour la programmation avec plein de liens et de tutos.

Et forcément, il y en a qui ont eu la bonne idée de porter Linux sur Nintendo DS...

mercredi 3 septembre 2008

La Guerre des browsers est relancée !

Oui, ça fait déjà un petit moment que la guerre du navigateur Web est relancée avec de superbes logiciels comme Safari, Opera ou Firefox.

Aujourd'hui c'est Google qui s'y met et c'est certainement pour faire avancer à grand pas le sujet. En effet, grâce à Google Chrome, Google montre clairement sa volonté de faire du Web la seule et unique plateforme de travail, de faire de l'application client Lourd une technologie du passé.

On peut se demander pourquoi Google se met-il à faire encore un nouveau browser alors que de nombreuses alternatives existent déjà. C'est qu'il souhaite clairement innover dans le sens qu'ils souhaitent, c'est à dire une plateforme d'exécution complètement reliée au Web, aux applications en réseau, ... et aux publicités ciblées qui ont fait la fortune de Google.

Si Google fait du logiciel opensource, ce n'est pas par philanthropie, mais c'est parce qu'il ne tire pas leur revenu de la vente de logiciels mais par l'utilisation de leur logiciel. Plus leurs logiciels sont utilisés, plus ça leur rapporte par des publicité ultra ciblées.

Comme le fait remarquer Eric Schmitt dans "The Future Of Technology", le marché des médias (communication/publicité) est beaucoup plus gros que le marché de l'IT. Le business case de Google est d'arriver à cibler au maximum les clients des publicitaires, et d'obtenir un maximum de clic significatif sur ces pubs.

It's gonna be huge !

Ainsi, le développement de solutions informatique pour Google n'est qu'un moyen pour arriver à toucher à ce marché. Mais Google n'a que très peu de revenu grâce à la vente de ces technologies (technologies de recherche notamment).

Même si j'ai noté quelques bugs par ci par là sur Google Chrome (petit problème de menu contextuel Copier/Coller sur champ de formulaire), l'outil semble déjà bien abouti et assez stable. Les applications comme Gmail ou GoogleReader tourne très vite, même si sur Firefox, s'était déjà assez rapide. Google Chrome prendra tout son sens avec la multiplication des "Core" dans les processeurs, grâce au choix qu'ils ont fait concernant la création d'un processus à part entière par onglet.

Reste plus qu'à souhaiter que Google innove un maximum sur ce browser, en espérant que cela puisse réellement mener à des applications aussi rapide et aussi riche que les applications client lourde. L'important c'est que les applications Web arrive à tirer profit de leur nature distribuée pour proposer des services qu'on pourrait difficilement mettre en oeuvre sur des RDA (Rich Desktop Application) classiques.

Il paraît que Microsoft a encore 75% du marché des navigateurs, Microsoft finira bien par se bouger et a enfin suivre les innovations du marché si Google Chrome se répand. Google veut certainement produire des applications bureautique plus riche et plus performantes. Google Docs est bien, mais n'a rien de comparable avec une suite bureautique comme Microsoft Office.

Peut-être qu'à terme, ce sera à Microsoft de convertir son Microsoft Office en Web 2.0 ? Tout le problème pour Microsoft c'est que justement, leur modèle économique est basé sur la vente de licence de logiciel, pas sur l'utilisation des logiciels. Ca risque d'être un moment très dur pour Microsoft s'il est obligé de suivre Google.

lundi 1 septembre 2008

Jargon, effets de mode et confusions dans l'informatique

En lisant de nombreux blogs sur l'informatique, j'ai comme l'impression que de nombreux débats sont futiles voire contreproductifs. Ça me semble particulièrement le cas dans le monde de "l'Agile Development" ainsi que tout ce qui tourne autour de la SOA (Service Oriented Architecture)

Beaucoup d'opportunistes s'empressent de construire un jargon pour représenter des concepts qui n'en sont pas. Pourquoi tous ces termes lourds et vagues comme "agilité" "orientation service" "orchestration", "chorégraphie", ... L'utilisation d'un de ces termes ne fait pas avancer un chouilla dans la résolution d'un problème.

"L'agilité" n'est pas une méthode et encore moins une méthodologie : qui ne souhaite pas être agile sur un projet ? Face à temps de jargon, les termes se mélangent. Ce sont des termes pièges qui visent à enfermer les naïfs dans des schémas de pensées clé en main. Or le problème de ces schémas c'est qu'ils veulent donner des recettes toutes faites alors que justement, l'important est de reconnaitre que (surtout en informatique) chaque problème est unique.

Si un problème n'est pas unique, il faut partir du postulat qu'il doit normalement exister un logiciel tout prêt pour le résoudre.

L'important est de savoir s'adapter à la situation. Le seul art à maîtriser correctement est la gestion de projet. La gestion de projet ne présuppose pas le processus de développement à employer. Un projet pourra viser de nombreuses itérations avec écritures de scenarii et développement dirigé par les tests si la solution le nécessite. Mais cette façon de travailler n'est pas forcément la meilleur à adopter pour n'importe quel projet.

Par exemple, l'utilisation de "releases" fréquentes pour le client et la définition au fil de l'eau des spécifications via des scenarii risque de faire aboutir à des logiciels coûteux alors qu'une analyse, une réflexion d'ensemble au début du projet aurait pu aboutir au choix de la mise en place d'un progiciel du marché.

Car c'est bien là l'enjeu de l'informatique aujourd'hui : faire un maximum de réutilisation, ne pas réinventer la roue. La principale activité pour arriver à cet objectif est l'analyse de système.

La sclérose en plaque n'est pas seulement dans le cerveau des prophètes de "l'agile". On la retrouve partout, notamment chez Microsoft, qui en 2008 est fière de sortir enfin un composant DataGrid digne de ce nom !

Quelle avancée dans le domaine de l'informatique ! ça fait juste 30 ans que les grilles de données existent sur PC et Mac ! quand on pense aux premiers tableurs comme VisiCalc, et qu'on regarde ce qui est reconnu comme une avancée dans "Microsoft .Net Framework 3.5 WPF", on se dit que vraiment, on a fait du surplace pendant 30 ans

L'important pour un informaticien est la reconnaissance que l'informatique n'est pas une solution en soi pour le client. L'analyse du besoin est l'activité déterminante du succès ou de l'échec d'un projet.