WebWorkersCamp, le barcamp résoluement tech

Lire Plus

Hier à eu lieu un barcamp assez impressionnant : le WebWorkersCamp. Derriere ce nom un peu ‘générique’ se cachait en fait un état des lieux du présent et de l’avenir du web. Les mots clefs ? NodeJS, NoSQL, files d’attentes, programmation asynchrone, WebSockets, Applications Distribuées, Réseaux Sociaux acentrés, générateurs de buzzwords…

Bref, une belle brochette de technos/techniques émergentes, avec un aperçu des capacités de Node.JS part son créateur, Ryan Dahl; cette présentation est une introduction à Node.JS et à son fonctionnement; elle est quasi identique à celle ayant eu lieu au Bayjax hébergé par Yahoo!. Plutôt que d’attendre sans certitude de voir les vidéos tournées lors du barcamp parisien diffusées le web, visionnez la vidéo de chez Yahoo!. Même si Node.js n’est pas encore en version 1.0 , il est déja extrement prometteur, et utilisé en production sur des site d’analytics temps réel, de gestion de tickets/bug tracking,et promet de nouvelle applications toutes plus folles les une que les autres.

D’ailleurs, Ryan Dahl à fait un brin de promotion en présentant nodeknockout, un concours de code en 48 heures articulé autours de l’utilisation de node.js. A défaut d’y participer, soyez sûr de suivre cet évenement pour y voir naitre des projets de qualité, originaux, résoluement modernes !

Autre présentation , que je ne pouvais rater, “Javascript Everywhere“, par Nicolas Mérouze. Au delà d’un tour du propriétaire des domaines d’application et d’exécution de javascript de plus en plus étendus (du serveur au client, qu’il soit desktop ou mobile…) , notre intervenant à passé en revue les différents outils lui servant à accomplir ces taches : node.js coté serveur donc, cappuccino, jQuery (même s’il a bien insisté sur la nécessité de coder et de maitriser javascript sans framework avant toutes choses), SproutCore, bref, il a balayé tous le spectre d’une application web en démontrant combien javascript peut servir à chacune de ces couches. Et pour un fervent défenseur de la toute puissance du javascript, c’est agréable à entendre.

Les slides de cette présentation sont en ligne !

La présentation de MongoDB était passionnante, et la conception de base de données sur ce modèle à quelque chose de vraiment excitant : rapidité, instantanéité, légèreté.

Je ne vous cacherai pas que ce modèle de conception et de réalisation de BDD m’était inconnu jusqu’à récemment, et que je n’ai jamais eu l’occasion de m’y essayer, mais je ne manquerai pas une occasion de tester ce système de BDD.

Rendu 3D temps réel sous FF 4 avec webGL

Les ateliers étant tous très intéressants, je regrette de ne pas avoir pu assister à l’ensemble des tables rondes.

Toutefois, autre présentation très sexy, incroyablement prometteuse et franchement excitante, une nightly build de Firefox 4 mettant en pratique  canvas 2D, processing.js, animated SVG, webGL…

Bref, avec un speaker dont je regrette de ne pas avoir pris le nom, employé Mozilla Europe, on a eu droit à des démos vraiment passionnantes qui laissent présager un web vraiment très drole, dynamique… Une partie sinon toutes les démos présentées sont accessibles sur http://hacks.mozilla.org/

Merci aux organisateurs pour cet évènement vraiment sympa, instructif, rafraichissant, http://siliconsentier.org/ et http://www.af83.com/

Enfin, si vous avez assisté à ce barcamp, et que vous avez assisté à des sessions auxquelles je n’étais pas, dont vous souhaitez parler, je serais ravi de greffer vos notes et commentaires ici même.

Par ailleurs, si vous avez des photos de meilleure qualité, idem, je suis preneur.

Enfin, si vous avez les noms des trois garçons de chez Mozilla (les tech evangelists), je suis preneur, ayant des questions à leur poser.

Ils en parlent aussi (et bien) :

  • http://fabien.benetou.fr/Events/WebWorkersCampParis

Un apercu des outils de developpement collaboratif en ligne

Lire Plus

L’image du développeur, qu’il soit web pas, est comparable à celle d’un troll des montagnes: solitaire et un peu bourru

Ne soit pas triste petit développeur, il y a des gens pour t’aider sur le net !

Et, pour que ce personnage de la mythologie du numérique et de l’ère du réseau mondial se sente moins seul, travaille mieux, et partage plus facilement ses codes sources, buggés ou non, avec d’autres individus de son espèce, il existe un certain nombre d’outils dédiés. On les appelle les outils de “collaborations en ligne”, et plus particulièrement les outils dédiés au “cloud coding”

Amenez votre pelle et votre seau: vous entrez dans le bac à sable!

Le web est un vaste champ de bataille, où chacun utilise les armes qu’il peut pour triompher, et tout développeur sait que chaque nouvelle application, chaque nouveau site, est un combat qu’il faut mener vite ET bien. L’un des aspects les plus géniaux du web contemporain, c’est sa facette communautaire, hautement communicante, et quasi-instantanée. Il n’est donc aujourd’hui plus nécessaire de poster sur des dizaines de forums, de lire des centaines de pages web pour trouver la solution à votre problème.

Le web regorge d’outils et de sites dédiés à l’entraide entre experts et débutants, avec en prime la possibilité pour tous de poster un code source “fonctionnel”. Ces bac-a-sable (“sandboxes”) sont autant de terrains de jeux où chacun pourra apporter une réponse à vos questions.

http://stackoverflow.com/ : 100% programmation, tous langages confondus, avec un système de notation pour les questions et les éponses.

 

Stackoverflow a ceci de génial que vous y trouverez toujours une réponse à vos question.

Tout en s’articulant toujours autours de la programmation, le site propose un intéressant système de notation des réponses apportées par les utilisateurs. Un excellent moyen de garantir la qualité des réponses apportées, mais aussi de faire avancer tous les utilisateurs en obligeant (naturellement) un juge à justifier de sa notation.

 

Chaque question doit être taguée par celui qui la pose, permettant ainsi au site de répertorier avec précision, par thématique, tous les sujets abordés, pour permettre des recherches précises.

Je regrette toutefois que stackoverflow ne dispose pas justement d’un moteur de rendu intégré pour, par exemple, le javascript.

http://www.stackoverflow.com

http://jsbin.com/, la sandbox javascript avec 8 librairies à intégration automatisée.

A l’initiative de Remy Sharp (@REM), jsbin.com est une sandbox dédiée à javascript. Le principe est simple, et très efficace : vous proposer un moyen de partager votre code javascript, avec le html qui va bien, et la librairie js qui vous convient. Vous avez le choix d’importer jQuery, forcément, Prototype, script.aculo.us, YUI, Mootools, Dojo et Ext Core, tous dans différentes révisions, pour coller au mieux à celle que vous utiliser en environnement de dev/test/prod.

Vous pouvez sauvegarder votre code, pour ensuite le partager et ainsi permettre à d’autres d’y jeter un œil, jouer avec, le corriger.

Associé par exemple à Stackoverflow, vous avez ainsi droit au combo gagnant pour un débuggage efficace et complet en javascript.

Bespin, “code in the cloud” en html 5

Bespin est une planète de la galaxie fictive de La Guerre des étoiles. Oui mais voila, ici, c’est autre chose, une toute autre chose. Bespin est en fait, dans le cadre des expérimentations des Mozilla Labs, un système d’édition collaborative de code open source.

Ce qu’il y a d’intéressant dans ce cas, c’est son emploi massif des capacités et techniques les plus modernes des ressources web : javascript, html 5 et canvas. Ceci permettant de rendre Bespin rapide, avec un comportement desktop, tout en restant full-front.

L’autre partie très intéressante de Bespin, c’est sans doute sa nature open source, le rendant tweakable et customisable dans tous les sens, vous offrant ainsi une base solide pour des applications maison encore plus poussées, et vouées à un excellent avenir du fait de cette base stable que vous offre Mozilla Labs.

https://bespin.mozillalabs.com/

http://jsfiddle.net/, riche en javascript, avec une belle interface

Dans la même veine que jsbin.com, jsfiddle.net vous propose une interface plus sexy, avec un choix de frameworks js plus important, et des options sexy (comme la possibilité d’importer des css hébergées à distance au sein de votre document de travail).

Si vous connaissez Mooshell (http://mootools.net/shell/), vous ne serez pas perdu, jsfiddle étant son petit frère, en plus complet et moins dédié.

http://pastebin.com/ et http://pastie.org/, même combat

Ces deux sites offrent la possibilité de coller du code, de choisir le langage dont il s’agit (pour une coloration syntaxique adéquate), et de partager le résultat. La grande différence entre ces deux sites se trouve essentiellement dans le fait que l’un propose de rééditer/corriger le code posté, alors que l’autre propose de publier une correction/amélioration à part du code source original.

http://www.pastebin.com

http://www.pastie.org

Amyeditor.com, redoutable et très riche, avec quelques améliorations à prévoir

Quel projet surprenant qu’amyeditor.com! Adoptant une interface résolument desktop, il propose littéralement la création de nouveaux projets, que l’on peut rendre publiques ou pas.

Avec des options extrêmement intéressantes, telles que la console de débogage intégrée (pour ceux qui n’utiliseraient pas Firebug par exemple), la possibilité d’inviter vos contact en leur attribuant au passage leur niveau d’administration au projet (lecture/écriture/écriture et sauvegarde), une interface pemettant la navigation au sein d’un projet proche d’un explorateur de fichiers desktop, l’accès à une liste de snippets par langage ,

Seul hic, une certaine lenteur lorsque le code entré dans l’editeur devient trop imposant, et de petits bugs graphiques qui vous rappelleront que vous n’êtes pas dans une appli desktop.

http://amyeditor.com/

http://heroku.com/, “ruby baby” (The drifters)

Heroku est sans doute la plateforme collaborative la plus sélective, mais également la plus professionnelle, de part son offre payante, ses capacités techniques upgradables, une sélection de plugins à interfacer sur votre application pour en étendre les capacités ou le suivi… Mais, c’est du Ruby, que du Ruby, et, pour que vous souhaitiez travailler en équipe sur heroku.com, et disposer de plus d’espace disque, d’un dédié, de Dynos supplémentaires, il faudra payer.

Redonnez vie aux vieilles consoles : ressources pour développer en 8bits, 16bits

Lire Plus

Le plaisir du retro gaming, ce n’est pas que la joie de découvrir ou de redécouvrir des classiques, des bijoux oubliés, perdus par le temps, mais aussi des plateformes, un hardware, appliquant des concept de développement archaïques, originaux, différents, accessibles (ou pas ;) )

Et, comme toutes ces plateformes sont depuis longtemps abandonnées par leurs fabricants, producteurs et éditeurs, qu’elles ne rapportent plus d’argent aux maisons mères éditrices de ces consoles d’un autre âge, les outils de création, soit les SDK sont tombés dans le domaine public, soit des alternatives sont créées par des petits génies/malins/passionnés afin que leurs ludothèques favorites continuent de s’enrichir.

Et si, par curiosité, ou en tant que développeur, vous choisissiez votre console fétiche pour lui faire don de quelques heures de travail, pour donner une seconde jeunesse à votre NES, Super NES, Megadrive ? Saviez-vous que cela se faisait déjà ? Et que tous les outils et les informations nécessaires sont disponibles sur le web ?

Pour preuve, le trailer d’un Sturmwind, un shmup à venir sur … Dreamcast :D

Image de prévisualisation YouTube

Ou encore plus fort, Pier Solar sur Megadrive et Mega-CD !

Image de prévisualisation YouTube

Outils et ressources pour développer sur NES/Famicom

La plupart de compileurs NES sont basés sur de l’Assembleur.

Vous pouvez donc commencer par lire et vous exercer avec ce tuto complet sur l’assembleur.

Si vous n’êtes pas familier avec les concepts de BIT, Byte, ROM, RAM, VBLANK … etc… etc…  vous devriez commencer par consulter les différentes définitions et explications présentes sur cette page.

Les outils pour developper vos propres jeux NES :

Les compileurs/assembleurs:

  • nesasm
  • ca65, en C

Graphismes/sprites:

  • nespaint

Audio:

  • nerdtracker 2
  • une introduction à la création de chiptunes avec MCK/MML
  • le format nsf en détails

Le coeur de la NES : le 6502

  • Le jeu d’instructions du 6502, avec les différents types d’instructions et modes d’adressage

Comprendre le concept de sprite et de sprite memory :

  • http://benfry.com/mariosoup/

La Picture Processing Unit:

  • une documentation sur le fonctionnement de la PPU en francais s’il vous plait :)

Si l’envie vous prend de tester votre production sur le hardware original, le projet Munchausen Nintendo NES Flash Cartridge peut etre un excellent moyen, sans vous ruiner dans du materiel de flashage et des cartouches et puces vierges.

Autre projet pour le chargement et la lecture de roms, la cartouche NES Powerpack.

Image de prévisualisation YouTube

Avantage : elle est en vente libre, contrairement au projet Munchausen, encore en phase de beta testing. Inconvénient : son prix… 135$

  • Enfin, un site IN-CON-TOUR-NABLE, autant pour les ressources mises à disposition que pour le forum, pour tout comprendre du fonctionnement de la NES (hardware comme software) : http://nesdev.parodius.com/

Outils et ressources pour développer sur Super Nintendo/Famicom

La grande soeur de la NES dispose d’une architecture plus riche, plus complète, et, d’après mes recherches, la documentation technique à son sujet m’a semblé plus rare.

Néamoins, s’il ne devait y avoir qu’un site pour décortiquer les entrailles de la Super Nintendo, ce serait certainement  SNES Developement.

En plus de dispenser toutes les informations nécessaires pour comprendre le hardware de la console, vous trouverez des exemples concrets ( la gestion de la SRAM dans Secret of Evermore …), ainsi que d’excellents tutoriaux.

De la documentation offline ?

  • snesbase. Cette archive contient tout ce qu’il convient de savoir et comprendre concernant le hardware de la console, mais également des bonus comme un “How to” sur l’émulation, des démos en .asm. Bref, indispensable.

Si vous cherchez un assembleur/compileur :

  • WLA DX semble tout indiqué; cross-platform, il permet de compiler pour les CPU de la NES à la SNES, en passant par la pc-engine …

Mais, s’il s’agit de mettre la main sur le sdk et la documentation officielle Nintendo, une seule adresse: http://www.underground-gamer.com. Si toutefois ca ne vous intéresse pas de vous créer un compte (mais bon sang que ce serait dommage, si vous voulez connaitre le paradis du rétrogaming…) sur underground-gamer.com, voici les fichiers contenus dans le torrent.

  • SASM SNES DEV tools
  • Nintendo’s SNES Official Programming Manual
  • SNES Development Manual (Book 1 & Book 2)
  • Super Famicom Documents

La Dreamcast, et autres ressources utiles.

Plus récentes que les deux plateformes précédentes, le Dreamcast est néanmoins le terrain de jeu de nombreux amateurs de homebrew pour une très bonne raison: le développement passe par un os non propriétaire SEGA, un certain Windows CE…

Toutefois, le dev nécessite aussi une machine dédiée. Du coup, vos chances de pouvoir développer sur Dreamcast sont réduites. Si vous avez la chance et les moyens de vous payer un tel objet, la dreamcast est certainement à l’heure actuelle la console rétro la plus porteuse, offrant finalement un marché plus porteur vu son jeune age (pour rappel, elle est sortie en 1998 au Japon), et un support facile à produire et distribuer (le CD-ROM).

Si toutefois l’envie vous prenait d’utiliser le fameux GD-ROM (un hybride entre CD et DVD d’une capacité d’1,2Go), sachez qu’il devient difficile a trouver, de même que les graveurs dédiés…

Pour vous renseigner dans le développement sur d’autres support, ou par curiosité, voici une série de liens qui m’ont semblé très intéressants, bien que parfois très peu techniques:

http://fr.wikipedia.org/wiki/Retrogaming : comprendre le rétrogaming, c’est très intéressant. Comprendre ce qui motive les passionnés, leur attachement à une pensée particulière, c’est peut etre un bon début pour développer dans la plus pure tradition 80′s / 90′s.

http://fr.wikipedia.org/wiki/Histoire_des_consoles_de_jeux_vid%C3%A9o : l’histoire du jeu vidéo plus globalement, c’est un autre bon moyen de comprendre pourquoi et comment ont évolué les supports, le hardware.

http://nesdev.parodius.com/ déjà cité dans cet article, un point de passage o-bli-ga-toire pour comprendre la NES de fond en comble.

http://www.assemblergames.com/forums/index.php presque 10000 membres sur ce forum de passionnés, avec une très belle section consacrée à la programmation, tous supports confondus.

http://en.wikibooks.org/wiki/Category:Console_game_programming des infos sur le hardware/software des poids lourds du marché. Pas toujours très exhaustif, je vous invite à consulter la section SNES, la plus fournie.

http://gendev.spritesmind.net/forum/ 100% SEGA, ce forum est un incontournable. De même d’ailleurs que http://info.sonicretro.org/SCHG:Sonic_Community_Hacking_Guide qui vous guide dans les méandres du hack de roms Sonic, certainement la meilleur manière de comprendre ce qui se passe sous le capot.

Alors, vous vous lancez ? Vous avez déjà codé du homebrew sur un support de plus de 10ans ?