Tutos

Introduction à Ruby et RubyOnRails

Si vous êtes ici, c’est surement que vous suivez de près ce qui se passe dans le monde du Web.

Si c’est le cas, vous avez surement entendu parler d’un changement de comportement chez les développeurs, qui de plus en plus, se mettent à utiliser des frameworks.

Un framework, c’est selon Wikipedia, un ensemble de bibliothèques, d’outils et de conventions permettant le développement d’applications.

Ceux-ci permettent donc de donner un socle commun à toutes vos applications et en facilite du même coup le développement et la maintenance.

Comme la majorité des sites et applications Web réalisés en France actuellement le sont en PHP (côté serveur), vous aurez peut-être entendu parler des frameworks Symfony, Zend, ou encore de cakePHP…

Mais même si en France, le changement semble plus difficile qu’ailleurs, de plus en plus d’applications Web sont écrites dans d’autres langages que PHP.

Java a fait figure de digne remplaçant pendant longtemps, mais la complexité et la multitude des outils dédiés au Web pour Java ont freinés son adoption côté Web.

Deux autres langages semblent aujourd’hui sortir du lot :

Puisque mes affinités vont plutôt vers ce dernier, je vais donc essayer, dans les prochains jours, de vous faire découvrir le langage Ruby, puis le framework Ruby on Rails avec des exemples tout simples !

Commencons avec les deux articles suivants qui vous expliqueront respectivement les points communs et les différences entre Ruby et PHP puis, les rudiments de la syntaxe de Ruby :

Voilà pour le langage Ruby, je vous parlerais bientôt de ce qui a propulsé ce langage sur le devant de la scène ces dernières années, le framework Ruby on Rails

Le 20 juillet 2008 par jblanche

Tags = ["", "", ""];

Aucun commentaire

Le blog

Gobelins c’est fini !

Mais le String dans l’Array ne s’arrête pas pour autant (même si notre longue absence à pu le laisser penser).

Après les dernières semaines de production (stressantes) et le jury (passé haut la main :D ) nous voilà livré au monde impitoyable du travail.

Demain nous passerons une dernière fois à l’école pour la journée de rencontres professionnelles : soirée porte ouvertes où les entreprises pourront nous rencontrer et découvrir les 4 projets de fin d’année de notre promo. Stop-It, l’installation interactive crée pour les journées portes ouvertes de mars sera également présente.

N’hésitez pas à passer entre 16h et 22h au 73 boulevard Saint Marcel (Métro Gobelins).


Oui, le visuel laisse à désirer, mais on ne s’appel pas l’école de l’image pour rien…

Le 30 juin 2008 par PingooO

Tags = [""];

2 commentaires

Veille

Alternativa3D Released !

Et voilà, le moteur 3D Alternativa3D vient tout juste de sortir à cette adresse : http://alternativaplatform.com/en/ le moteur est téléchargeable gratuitement MAIS par contre il n’est pas en open source :(. C’est donc 3 fichiers swc (classes et symboles précompilés) qu’il faudra inclure à votre libraire pour pouvoir l’utiliser (pas d’utilisation sous flash cs3 du coup).

Aprés avoir un petit peu testé la bête, je peux dire que les performances sont bel et bien au rendez-vous et que le tout est très simple à utiliser (surtout le moteur de collision qui se résume à une propriété à activer).

Le 1 juin 2008 par kikko

Tags = ["", ""];

3 commentaires

Veille

Premiers retours sur flash 10

La sortie de la pré-release de flash 10 a pas mal agité les flahseurs assidus que nous sommes ces derniers temps. Quelques papes ont d’ailleurs déjà publié des articles expliquant comment profiter des dernières fonctionnalités :

Pour le moment il n’y a pas de doc mais comme le propose le blog d’Iteratif, l’outil ClassBrowser peut se révéler très pratique si vous souhaitez compiler en flash 10.

Globalement, les nouvelles implémentations sont de véritables bombes qui, sans bouleverser les applications de Flash dans le Web, vont probablement enrichir énormément la qualité et la fluidité de nos modules/sites en flash tout en facilitant leur production.

Personnellement, j’ai surtout axé mes tests sur la nouvelle API de dessin et un post sur le résultat de ces tests devrait suivre d’ici peu.

Mais en ce qui concerne la 3D, je tire pour le moment un bilan mitigé de mes premiers tests. Nottament sur la non-prise en charge de l’axe z pour gérer les depths des display object. Même si en théorie ça paraît légitime, ça se révèle très frustrant en pratique puisque la méthode local3DToGlobal qui est censé nous permettre de récupérer la profondeur globale d’un clip imbriqué ne nous renvoie qu’un Point (contenant seulement les valeurs de x et de y à l’écran). Il sera donc “compliqué” de gérer efficacement la profondeur des display object imbriqués relativement à leur valeur de Z globale (pour créer une classe Camera3D par exemple). Où il y a peut-être quelque chose qui m’échappe ? Ces premiers tests ayant été fait de façon très superficielle, je suis peut-être passé à coté de quelque méthode ou propriété réglant ce problème.

Le 21 mai 2008 par kikko

Tags = ["", ""];

3 commentaires

Geekitude

Pourquoi l’AS3 ne sera jamais en français.

C’est avec émotion que je rédige mon premier post sur ce blog :’) Amis de la subversion et des posts où on peut tout comprendre en une seule lecture (quoique..), bienvenue.

Qui n’a jamais fait de blague sur ses noms de variables.. ? Qui n’a jamais subi de regard dubitatif après une conversation au sujet de Strings avec un collègue codeur..?
Vous n’avez jamais pensé à ce que donnerait l’AS3 en français ?

Et bien, ne rêvez pas plus, nous l’avons fait pour vous.

Pour faire ma petite démo, je suis allée chercher un bout de code sur le Flash Enabled Blog, avec cet exemple de Drag and Drop.

Nous apprenons, entre autre, qu’un Sprite est un Farfadet.. (j’y peux rien moi..)

Le gros problème que ça soulève, si vraiment l’envie vous prend de tout traduire et de lancer un AS francophone (on s’amuse comme on peut), c’est la traduction du féminin/masculin.
Si on prend l’exemple d’un new Truc(), tout dépend de l’objet Truc().
Ca pourrait être nouveau Tableau, nouvelle Chaine, ou encore nouvel Objet.. Idem pour le privé ou privée.. Bref ça devient vite n’importe quoi.

L’exemple :

paquet {
 
     importer flash.afficher.Farfadet;
     importer flash.evenements.Evenement;
     importer flash.evenements.EvenementSouris;
     importer flash.texte.ChampsTexte;
 
     publique classe AnagrammeGlisserDeposer etends Farfadet{
 
          privee variable glisseeCible:Farfadet;
 
          publique fonction AnagrammeGlisserDeposer () {
                variable tableau:Farfadet= nouveau Farfadet();
                variable lettres:Tableau = nouveau Tableau("d","i","r","t","y","r","o","o","m")
                variable l:Chaine;
                variable xPos:entierNonSigne = 50
                variable yPos:entierNonSigne = 100
                pour chaque (l dans lettres) {
                      variable piece:Farfadet= nouveau Farfadet();
                      piece= creerPièceLettre(l comme Chaine) // taille, couleur, jaune
                      piece.x = xPos;
                      piece.y = yPos;
                      xPos += 50;
                      tableau.ajouterEnfant(piece);
                      piece.ajouterEcouteurEvènement(EvenementSouris.SOURIS_BAISSEE, glisserDemarreur, faux);
                      piece.ajouterEcouteurEvenement(EvenementSouris.SOURIS_LEVEE, glisserBouchon);
               }
               ajouterEnfant(tableau)
               variable instructions:ChampsTexte= nouveau ChampsTexte();
               instructions.texte = "Ré-organise des lettres pour former un autre mot"
               instructions.x = 20
               instructions.y = 20
               instructions.largeur = 300;
               ajouterEnfant(instructions)
         }
         privee fonction glisserDemarreur(evenement:EvenementSouris):vide{
               si (evenement.cible est Farfadet) {
                     glisserCible = evenement.cible comme Farfadet;
                     glisserCible.commencerGlisser();
               }
        }
 
        privee fonction glisserBouchon(evenement:EvenementSouris):vide{
               glisserCible.arreterGlisser();
        }
 
        privee fonction creerPieceLettre(txt:Chaine):Farfadet{
               variable s:Farfadet = nouvelle Farfadet ();
               variable lettre:ChampsTexte= nouveau ChampsTexte();
               variable pieceCouleurArrière:entierNonSigne  = 0xDBD9A6;
               variable pieceCouleurOmbre:entierNonSigne  = 0x676420;
               variable pieceCouleurBordure:entierNonSigne  = 0x000000;
 
               s.graphique.commenceRemplir(pieceCouleurOmbre);
               s.graphique.dessineRectangle(-2, 2, 40, 40);
               s.graphique.arretRemplir();
               s.graphique.commenceRemplir(pieceCouleurArriere);
               s.graphique.dessineRectangle(0, 0, 40, 40);
               s.graphique.arretRemplir();
               s.graphique.styleLigne(1, pieceCouleurBordure, 100);
               s.graphique.dessineRectangle(0, 0, 40, 40);
 
               lettre.texte = txt
               lettre.selectionnable = faux;
               lettre.x = 14
               lettre.y = 14
               lettre.largeur = 14
               lettre.hauteur = 16
               s.ajouterEnfant(lettre)
 
               retourner s;
        }
    }
}

Alors, vous en pensez quoi ?
Et comme te dirais Maître Capello dans le debugger, si erreur dans ton code il y a..

Le 20 mai 2008 par Wahiba

Tags = ["", "", ""];

13 commentaires

Tutos

Flash Switcher : jonglez avec plusieurs versions de Flash

Flash Switcher est une extension Firefox qui (comme son nom l’indique) permet de “switcher” entre plusieurs versions du plugin Flash pour Firefox.

Cette extension est fort utile pour tester des applis Flash avec des vieilles versions du plugin (sisi ça existe encore les clients qui veulent du Flash 6…) mais aussi pour basculer entre la version normale et debug du plugin. Et puis en ces temps euphoriques de sortie de Flash 10, il est bien pratique de pouvoir facilement revenir à une version stable et entièrement fonctionnelle.

Lire le reste de cet article »

Le 16 mai 2008 par PingooO

Tags = ["", ""];

Aucun commentaire

Le blog

Enfin !

Un nouveau thème pour notre blog. Depuis le début du String dans l’Array nous nous traînions avec le thème wordpress de base. Ce n’est plus qu’un vieux souvenir. Place aux couleurs pétantes et aux headers génératifs !

Design : .W.
Logo : alma & vogler voice
Code : PingooO

Le 15 mai 2008 par PingooO

Tags = [];

10 commentaires

Veille

Adobe Flash Player 10 : codename Astro

La Démo d\'Astro

Adobe vient tout juste de proposer en téléchargement une prerelease du Flash Player 10.

Une démo disponible sur le lab d’Adobe permet de se faire une petite idée des nouveautés qui nous attendent : 3D Native, accélération GPU (?!), Chaines IK (animateurs de tous pays, réjouissez vous…), gestionnaire de texte ameilloré, et surtout bien sûr les custom effects en Hydra Pixel Bender.

Update : Mais aussi File Reference (ouverture/écriture de fichiers locaux), génération de sons dynamiques, ECMAScript 4…etc.

Le 15 mai 2008 par kikko

Tags = ["", "", "", ""];

3 commentaires

Code

Trois petites méthodes…

…bien utiles pour des scrollbars (entre autre).

Qui ne s’est jamais pris la tête avec des scrollbars dans Flash ? Quand il faut calculer le ratio entre les positions du contenu et du bouton de scroll… Pour peu que la taille de la scrollbar soit différente de celle du conteneur, on s’en arrache vite les cheveux.

Bit-101 a transcrit en AS3 trois méthodes provenant d’un livre sur Processing.

normalize(value, min, max) prend une valeur comprise dans un intervalle min - max et la convertit en une valeur comprise entre 0 et 1. La valeur de départ peut dépasser les bornes de l’intervalle.

interpolate(value, min, max) prend une valeur normalisée (comprise entre 0 et 1) et renvoie la valeur correspondante dans l’intervalle min - max.

map(value, min1, max1, min2, max2) prend une valeur et un intervalle de départ (min1 - max1) et renvoie la valeur correspondante dans l’intervalle min2 - max2.

L’article original de Bit-101
Et la petite classe as3 :

package {
	public class NumberUtils {
		public static function normalize(value:Number, minimum:Number, maximum:Number):Number {
			return (value - minimum) / (maximum - minimum);
		}
		public static function interpolate(normValue:Number, minimum:Number, maximum:Number):Number {
			return minimum + (maximum - minimum) * normValue;
		}
		public static function map(value:Number, min1:Number, max1:Number, min2:Number, max2:Number):Number {
			return interpolate( normalize(value, min1, max1), min2, max2);
		}
	}
}

Le 14 mai 2008 par PingooO

Tags = ["", ""];

5 commentaires

Veille

Opera Dragonfly : le Firebug venu du froid

Opera, éditeur norvégien qui développe le navigateur éponyme, vient de sortir en version alpha Dragonfly, un débuggeur JavaScript / DOM fort prometteur. Opera souffrait depuis un moment du manque d’un tel outil, voyons si l’attente en valait la peine…

Bien évidemment, on ne peut s’empêcher de penser à Firebug, une application similaire existant pour Firefox sous forme d’extension. Celui-ci, maintenu par un développeur de chez Facebook, a réellement changé la vie des aficionados du JavaScript tant il simplifie lé débuggage d’applications JavaScript / AJAX complexes. (pendant ce temps, les développeurs Flash attendent toujours un débuggeur décent…)

Notez que Microsoft prépare également un outil dans le style pour Internet Explorer 8.

Opera Dragonfly en action

Ce qu’il y’a d’important à retenir sur Dragonfly :

  • l’appli est légère et assez réactive, contrairement à Firebug qui avait tendance à mettre Firefox 2 à genoux assez vite
  • Dragonfly se comporte comme un application web et se met donc à jour automatiquement
  • possibilité de débugger à distance, utile pour des terminaux mobiles ou des consoles (uniquement avec Opéra Mini pour le moment)
  • mise à jour du DOM en live
  • pas encore possible d’éditer le CSS à la volée, mais promis-juré c’est pour bientôt, qu’ils disent
  • Dragonfly est open source (licence BSD) : un premier pas d’Opera vers le libre ?
  • les gens d’Opera ont un accent rigolo.

Dragonfly est plutôt léché, mais n’offre en l’état pas grand chose de plus que Firebug. Ce n’est encore qu’une alpha et les gens d’Opera ont fait un tas de promesses alléchantes, donc wait and see…

“The initial alpha release is just the beginning. Opera Dragonfly has a fully featured road map, including support for editing of CSS, JavaScript and the DOM, a single window mode, improved JavaScript thread handling, XHR AND HTTP MONITORING, improved keyboard navigation, and translation into a number of languages.”

Dragonfly est livré avec Opera 9.5 beta 2. On accède ensuite à l’outil via Outils > Avancé > Outils de développeur, et ensuite il n’y a plus qu’à suivre le petit tutorial.

Le “oui mais t’a pas Firebug” étant généralement de mise lorsque l’on évoque Opera à un Firefox fanboy, voilà qui va peut-être un peu changer la donne et attirer un peu d’attention sur un navigateur qui le mérite largement (et qui passe le test Acid3, contrairement à d’autres…).

Le 10 mai 2008 par nerik

Tags = ["", "", "", "", ""];

5 commentaires