Archive pour la catégorie ‘Français’

Quelques nouvelles

Samedi 2 août 2008

Tiens, ça fait quelques temps que j'ai pas écrit ici. J'ai pas eu trop le temps en fait, mais voilà quelques nouvelles brèves:

  • Mon site perso est en cours de réécriture, avec (encore) un nouveau design. Ça sera un peu plus sobre, plus joli et surtout, y'aura du contenu ! Pour l'occasion je vais même repenser mon système et (enfin) coder le blog qui va aller avec. Et au passage je vais internationnaliser le site.
  • http://studio.yapok.org/, à venir ;)
  • Ruacce, dont je vous avais parlé il y a quelques temps, est en cours de réécriture, le point le plus important étant le changement de nom vers un truc plus kewl : Sergeant. J'en profite pour repenser et améliorer un peu le système, tester mon code (avec MTest :D), chasser les bugs et ajouter des fonctionnalités intéressantes.
  • J'ai raté le deuxième ShoesFest :( Mais y'a quand même un compte rendu des deux sur http://shoes.yapok.org/.
  • Toujours quelques projets à côté mais qui attendront la rentrée ou plus tard pour être abordés et peut-être concrétisés. Dont le projet avec Pablo.
  • On part à Bordeaux mercredi et pour trois semaines, on va enfin pouvoir souffler un peu et se reposer avant de reprendre les études et le boulot.
  • Ça fait maintenant UN AN que je suis avec elle, et c'est toujours le bonheur.

Voilà, à la prochaine :-D

Guerilla urbaine

Mardi 15 juillet 2008

Hier soir, c'était le 14 juillet, jour de fête nationale. Comme il est de coutûme, c'est un jour propice aux feux d'artifices, et cette année, Marseille semblait avoir mis de gros moyens. Comme c'était le seul truc intéressant à voir le 14 (ouais les défilés militaires… bof quoi) on a décidé d'y aller avec ma chérie. Sur le site de la mairie, c'était annoncé à 22h, 22h30 sur Cityvox.

Prévoyant d'aller se faire un MacDo après, on se dirigait donc vers le Vieux Port tranquillement. Dans la rue de la République, des gosses s'amusaient avec des pétards, marrant, bref. On continue. De loin on aperçoit déjà la foule sur le Vieux Port, pas mal de monde à vrai dire. Et déjà, les sons des feux d'artifices amateurs et autres pétarades.

Arrivés sur le quai vers 22h, les explosions, les CRS garés, les fusées qui passent au dessus de la foule, ça rapelle des bons souvenirs de jeux vidéo. Ça donnerait même presque envie de strafer (se déplacer latéralement), accroupi, en se faufilant au milieu des gens. Comme on savait pas trop où se mettre, j'ai proposé d'aller voir vers le quai des Belges si c'était pas mieux pour voir. Erreur. Parce que pour y aller en venant de la rue de la République, faut traverser tout le port. Et c'était sportif ! Au menu :

  • Pétards qui passent entre les jambes
  • Fusées qui passent au dessus (et pas très haut !)
  • Quelques connards qui s'amusent à foutre des pétards dans les poches des gens (heureusement ça on a pas subi)

Du coup c'est presque en courant qu'on a traversé le port, et une fois arrivés de l'autre côté on s'est rendus compte que c'était pourri comme spot. Demi-tour. Rebelotte. En fait ce qui était marrant c'est que toute la route était pratiquement inoccupée et que sur les trottoirs la bordant, ça faisait des échanges. Sauf que la plupart du temps ça atterrissait dans la foule, et ça, c'est moins marrant.

On s'est plantés sur le quai, un peu à l'écart des hostilités, et on a commencé à attendre… Longtemps. On voyait des gens se ballader avec des bébés dans les bras, des personnes agées, des enfants, et quelques fois le bruit des ambulances qui passaient. Les CRS et flics qui étaient pas loin de nous ne bronchaient pas beaucoup, on les a juste vu ramener un gars se balladant avec deux sacs remplis de feux d'artifices divers et variés. Ah, si, à un moment ils ont sorti les boucliers anti-émeutes, mais y'avait pas d'émeute, donc sûrement pour faire peur et montrer qu'ils étaient là.

22h30, toujours pas de feu, bon, ils ont peut être un peu de retard, pas forcément grave. Encore une fois, erreur. On a attendu comme ça jusqu'a 23h30. Les feux et pétards à l'arrière n'avaient toujours pas cessés. On a fini par se défiler et aller manger, parce que ça commençait à creuser sévèrement et qu'a force de rester debout le mal de dos commençait à se faire sentir.

Loi de Murphy oblige, le feu a débuté à minuit, au moment où on commençait à dévorer nos Big Macs. Du coup en sortant on a vu que ça avait commencé et on s'est hâtés pour y aller. Là par contre ça a presque fait passer l'attente tant le spectacle était impressionant ! Effectivement, ils y avaient mis les moyens, et pas qu'un peu ! Débauche de couleurs, d'explosions, ça partait dans tous les sens, c'était vraiment génial ! Dommage qu'on en ait vu que la moitié.

Bref, la prochaine fois que je vais voir un feu d'artifice à Marseille, j'emporte avec moi treillis et M16, on sait jamais !

I HAZ DS LITE

Mercredi 2 juillet 2008

Une DS Noire

Pour nos un an (à quelques jours près), ma chérie m'a fait un (très) joli cadeau : une petite DS Lite Noire :-)

Du coup la première chose que j'ai faite en rentrant a été de la déballer (et de twitter la nouvelle bien évidement) et de l'allumer pour voir comment c'était :D

Résultat, l'interface est agréable, la personnalisation, bien que basique, est fun. Par contre, seul point noir à mon goût, pas de jeu inclus (sauf si on prend un pack évidemment). Alors ok, mettre un jeu commercial complet n'est pas forcément rentable, mais des démos, ou des mini-jeux histoire de se faire la main et de voir un peu comment ça marche, ça aurait pas fait de mal.

Bon, c'était pas tant un gros problème, mon frère en a une aussi alors j'suis allé faire un saut chez lui pour lui piquer Yoshi's Island et Les Sims 2 : Naufragés (aka. Les Sims Lost). En rentrant j'ai donc direct mis la cartouche de Yoshi's Island dans le slot et redémarré la console :D J'y avais déjà un peu joué auparavant, et il est vraiment excellent. Madame a joué aux Sims durant une bonne heure pendant que je préparais le manger, elle s'est bien amusée aussi !

J'en ai profité pour faire quelques photos avec mon portable ce matin (les piles de l'APN étant vides) :

La boite

La console

La console ouverte

Le menu principal

Le menu de Yoshi's Island

L'autonomie fait aussi plaisir (j'y ai encore rejoué ce matin assez longtemps), environ 4/5h à mon avis (et à une luminosité standard).

Par contre le site de Nintendo est tout cassé, notamment l'enregistrement des produits marche pas ici, alors qu'il marche chez Thomas. Étrange.

Enfin, pour résumer, je suis CONTENT. :D

ShoesFests les 11 et 25 juillet

Mardi 1 juillet 2008

Vous connaissez peut-être Shoes, le mini toolkit graphique de why qui propose une approche différente à la conception d'interfaces graphiques en se rapprochant plus du web.

Eh bien why invite tous les codeurs (et futurs codeurs) à le rejoindre pour deux ShoesFests de 24h :

  • Vendredi 11 juillet de 12h GMT au lendemain 12h GMT
  • Vendredi 25 juillet de 12h GMT au lendemain 12h GMT

(Pour les horaires dans le monde, Time and date est votre ami)

L'objectif ? Tester, documenter et chasser les bugs sur les différentes fonctionnalités de Shoes sur chaque plate-forme supportée (Linux, Windows et Mac) afin de préparer la prochaine release qui devrait sortir le 31 juillet.

Pas besoin d'être un rubyiste (ni même de savoir programmer en fait), le but étant aussi de voir si des débutants peuvent aisément apprendre Shoes. Ceci-dit pour ceux qui connaissent l'api C de Ruby, un coup de main est toujours apprécié ;)

Pour participer au ShoesFest, le premier lieu est le canal irc de Shoes (#shoes sur irc.freenode.net). Le canal est accessible avec n'importe quel client irc comme Mibbit

Shoes est livré avec son propre manuel, intégré directement au toolkit. Vous pouvez l'afficher en tapant shoes -m (Sur OS X, ⌘-? marche aussi)

Quelques liens additionnels :

Faites passer le mot et venez aider au développement de Shoes !

Ceci est une adaptation de l'annonce officielle faite sur la ML de Shoes

Introducing ruacce

Vendredi 27 juin 2008

Suivre des projets sur GitHub c'est bien sympa, mais quand on commence à en avoir pas mal, ça devient un peu chiant de faire des cd <répertoire>; git pull; cd ../<répertoire>; git pull... Voire très chiant.

Du coup comme il me fallait une solution, j'ai commencé à développer un petit script. Au départ ça devait être tout bidon et juste permettre d'automatiser tout ça. Puis ça a dérivé :-)

Du coup je sors un nouveau petit projet sympa, veuillez faire un accueil chaleureux à : ruacce le « Remote Updater and Custom Command Executer » (ceux qui y cherchaient un quelconque rapport avec un plat italien se sont lamentablement gourrés).

Ruacce est un outil en ligne de commande simple à utiliser qui part sur le concept que vous gardez tous les répertoires de vos dépôts dans un répertoire, disons ~/repos/. On fait ça avec ruacce -C dans le dossier racine de vos dépôts.

Il y a deux concepts importants dans ruacce : les règle et les dépôts. Un dépôt est tout simplement n'importe quel répertoire du dossier principal. Si besoin est, ruacce -X <dir> permet d'exclure un répertoire. À chaque dépôt on peut associer une ou plusieurs règles. Une règle est tout simplement une commande qui sera exécutée dans le répertoire du dépôt.

Rajouter une règle à un dépôt est simple et se fait par la commande ruacce -s <depot> -R <nom>. Notez que vous pouvez ajouter la même règle a plusieurs dépôts en les rajoutant après le -s, séparés par une virgule (exemple ruacce -s shoes,merb-core -R pull). Notez que le switch -a permet de sélectionner tous les dépôts d'un coup ! Le programme vous demande alors la commande à exécuter. Tapez là et validez par entrée.

Une fois ceci fait, ne vous reste plus qu'a exécuter les règles en remplaçant -R par -r.

C'est à peu près tout ce qu'il faut savoir pour l'instant.

Seul défaut, je le reconnais, le code est super crade, pas testé, et y'a sûrement de monstrueux bugs qui traînent dans un coin :-) Mais promis, j'améliorerai ça (sûrement en réécrivant la plupart du système d'ailleurs) dès que possible.

Yapok.org de retour

Lundi 9 juin 2008

Ça y est, enfin, j'ai remis mon site en ligne !

Bon, y'a pas encore tout, pour l'instant seule la page d'accueil est fonctionnelle, ainsi que ce blog.

Les pages projets arriveront ensuite, puis les documentations, et je pourrais enfin attaquer le développement du blog (qui devrait tourner sous Merb je pense, ou peut-être Camping, ou encore un truc perso, qui sait!)

Voilà :)

MTest : des nouvelles

Vendredi 6 juin 2008

J'ai continué à développer un peu MTest, mon framework de test (dont j'avais parlé dans le billet précédent) et en quelques lignes j'y ai rajouté quelques fonctionnalités :

  • Ajout de l'affichage du message d'erreur lorsqu'un test en soulève une
  • Un petit fix pour pas perturber le retour à la ligne quand on joint les threads (pratique pour irb)
  • Quand n'importe quel élément du tableau de tests est une chaîne, MTest se contente de l'afficher (alors qu'avant il n'affichait que pour le premier élément du tableau)

J'en ai aussi profité pour rajouter le projet sur GitHub, et vous pouvez donc le retrouver ici. Vous pouvez le récupérer avec un simple git clone git://github.com/madx/mtest.git et générer une gem en lançant simplement rake dans le répertoire du dépôt.

Il y a un petit README (en anglais) pour débuter, et j'ajouterai bientôt des exemples d'utilisation.

D'ailleurs, pour tester la chose je suis en train de développer une petite classe pour faire des lancés de dés, et ça marche plutôt bien ! Bon les tests sont plus longs à écrire dans l'ensemble, mais c'est beaucoup plus flexible que les frameworks qui existent déjà à mon goût.

MTest, un microframework de Test

Vendredi 30 mai 2008
  • RSpec 1.1.4: 8083 lignes ;
  • Test::Unit : 3571 lignes ;
  • MTest : 32 lignes.

Je suis tombé récemment sur un article de Paul Barry qui a confectionné un "framework" de test en Ruby, le tout sur une seule ligne.

J'ai trouvé ça assez marrant du coup je me suis pris à en faire un y ressemblant fortement, mais légèrement amélioré.

module Format
  def self.included(parent)
    {:_r =&gt; '31', :_g =&gt; '32', :_p =&gt; "35", :_w =&gt; "1;37"}.each do |m, c|
      parent.class_eval { define_method(m) { "\e[#{c}m#{self}\e[00m" } }
    end
  end
end
String.send(:include, Format)
 
def MTest(tests)
  if tests[0].is_a?(String) then puts tests.shift end
  threads = []; results = {:pass =&gt; 0, :fail =&gt; 0, :err =&gt; 0}
  tests.each do |t|
    e,p,v = *t
    threads &lt;&lt; Thread.new do
      begin
        puts(if (r = p.call) == v
          results[:pass] += 1
          ". #{e}"._g
        else
          results[:fail] += 1
          "! #{e} was #{r}, expected #{v}"._r
        end)
      rescue =&gt; x
        results[:err] += 1
        puts "@ #{x.class} at line #{x.backtrace[0].split(':')[1]}"._p
      end
    end
  end
  threads.join
  results
end

L'écriture des tests change par rapport à la version de Paul, on utilise plus un hash mais un tableau (ce qui permet de faire les tests dans l'ordre), on peut nommer les tests, et on utilise des proc à la place de ce vilain eval. Et si le premier élément du tableau est un chaîne, elle est simplement affichée, ce qui permet de faire des "groupes" visuels de tests.

Un petit exemple d'utilisation

tests = [
  "= Some Basic Tests =",
  ['true', proc { true }, true],
  ['true', proc { false }, true],
  ['sum(2,5)', proc { sum(2,5) }, 7]
]
MTest(tests)

Et dans une console, ça nous donne :

= Some Basic Tests =
. true
! true was false, expected true
@ NoMethodError at line 6

On notera que les erreurs sont affichées au lieu de faire quitter le programme :)

C'est pas aussi utilisable que les gros outils que j'ai cités au début, mais je pense que pour des petits projets c'est le genre de trucs qui peut marcher !

Me reste plus qu'a mettre ça sur GitHub et faire une gem.

WordPress, c’est moins cool

Mardi 27 mai 2008

Pour faire écho au total ratage du formattage du post précédent, pour le coup, WordPress c'est chiant.

D'ailleurs je crois que c'est le cas de la plupart des moteurs de blog ou les CMS qui font jamais réellement ce que tu veux, et qu'il faut passser 15h à configurer avant que ça soit bien adapté à tes goûts. Finalement, c'est plus rapide de développer sa propre solution à mon avis, ce que je suis d'ailleurs en train de faire :-)

Github, c’est cool

Mardi 27 mai 2008

Je m'étais inscrit à Github
juste avant la fin de la beta mais j'avais pas encore testé étant donné que je
savais pas encore me servir de Git.

Maintenant que j'ai appris, j'ai pu y publier deux petits projets, et je
risque d'en rajouter d'autres :-)


  • gedit-extensions
     : Un ensemble d'outils pour améliorer la gestion
    des projets Ruby et Rails dans Gedit. Au menu: packages MIME
    et fichiers .lang.

  • merb-todolist
     : Ma première app Merb, une todolist basique
    utilisable entièrement au clavier. Nécessite datamapper et
    le do_ pour le moteur de base de données que vous souhaitez
    utiliser.

J'en ai aussi profité pour forker StaticMatic, des fois que j'ai envie de
travailler dessus :-)

En tous cas, Github est vraiment bien foutu, j'ai pas encore pu en explorer
toutes les fonctionnalités, mais je vous recommande chaudement de vous y
inscrire si vous développez des apps OpenSource et que vous gérez celles-ci
avec cet excellent SCM qu'est
Git [en]