Affichage des articles dont le libellé est shoes. Afficher tous les articles
Affichage des articles dont le libellé est shoes. Afficher tous les articles

mercredi 24 décembre 2008

Sortie de Tabz Converter

Allez hop ! Pour les fêtes, je vous propose une petite application de bureau que j'ai codée récemment : Tabz Converter. Il s'agit d'un petit logiciel libre (licence BSD) avec interface graphique permettant de convertir des partitions musicales au format texte, d'une notation vers une autre. Il est surtout orienté vers les partitions d'harmonicas, ce type d'outil existant déjà pour la plupart des instruments plus répandus (guitare, etc...).


A quoi ça ressemble ? Comment ça marche ?


Il s'agit d'une application toute simple : 2 petites listes déroulantes pour choisir les notations de départ et d'arrivée, à choisir parmi les suivantes :
  • Solfège
  • Notation Américaine
  • Harmonica chromatique (12 trous en Do / accordage standard)
  • Harmonica diatonique (10 trous en Do / accordage Richter standard)
Ensuite, il suffit de taper sa partition dans l'edit box de gauche, appuyer sur "Convert", et le résultat apparaîtra dans l'edit box de gauche (dans laquelle il peut être copié et/ou modifié). La syntaxe pour les partoches est la suivante :







Un petit bouton "Help" permet d'ouvrir une fenêtre d'aide avec le détails des syntaxes utilisées, avec exemples.

Comment l'installer ?


Cette application est basée sur Shoes (et donc implémentée en Ruby) : l'application ne nécessite donc pas d'installation en elle même, cependant pour la faire tourner il faut avoir préalablement installé le programme Shoes. Celui-ci est disponible librement sous la plupart des plates-formes connues à cette adresse :



Tabz Converter lui-même est disponible dans la Shoebox (un répertoire de petites applications pour Shoes - quitte à installer Shoes, essayez en quelques unes, certaines sont très rigolotes...) à cette adresse :



Sous forme de .zip ou .rar. Une fois décompressé, il suffit de lancer le fichier tabz_converter.rb avec Shoes, et l'application se lance (shoes tabz_converter.rb via un terminal sous Windows comme sous Nix).

La suite ?

Je vais tenter d'améliorer ce petit programme régulièrement (l'utilisant moi même de façon conséquente). Parmi les améliorations fortement envisagées pour l'avenir, on peut trouver la prise en compte des altérations pour les harmonicas (overnote, bend, etc...) et un moyen (boutons "+"/"-") de monter/descendre d'une octave sur les partitions où cela est possible (pas pour l'harmonica diatonique donc).

Tout commentaire, suggestion ou rapport de bug est le bienvenu, via cet article, la page de l'application dans la Shoebox voire même par mail (cf. page de profil).

~=o=~

Bonnes fêtes à tous.

mardi 19 août 2008

Medicolor : le code

Je viens de me rendre compte que j'ai oublié de publier le code de Medicolor : mon petit programme fait avec Ruby et Shoes générant les images de 2 articles précédents... Honte à moi ! Donc, basiquement, Medicolor est une petite appli manipulant les couleurs : à partir d'un pattern de départ (et les conditions aux limites associées), le programme moyenne à chaque itération (déclenchée par un simple clic dans la fenêtre) les couleurs de chaque disque présent avec celles de ses voisins.



Pas clair ? Vous pouvez l'essayer à partir des sources (nécessite Ruby et Shoes version r751 ou suivante).


En ligne de commande : $>shoes shoes_medicolor.rb

Le nom du fichier d'entrée (medicase_01.rb par exemple) peut être directement changé dans le require. Les conditions aux limites sont périodiques ou fixées, les points peuvent être également de couleur fixe (voir cas d'exemple avec les sources).

Amusez vous bien !

jeudi 17 juillet 2008

Dummydgets pour Shoes : Bulles

Allez hop, deux petits programmes profondément inutiles faits avec les pieds, pour Shoes. Dans ces deux là, j'utilise le bloc motion{} qui permet d'effectuer une action en fonction de la position courante du curseur. La syntaxe est la suivante :


motion do |x,y|
foo(x)
bar(y)
foobar(x,y)
# etc...
end
Dès lors, le code contenu dans ce block (ici les méthodes foo, bar et foobar) sera exécuté dès que la position du curseur (désignée par x et y) change. Attention, l'axe Y est dirigé vers le bas (il serait plus rigoureux d'écrire |left,top| plutôt que |x,y|).

J'utilise aussi la méthode move(x,y) qui permet... de déplacer sa cible à la position (x,y). Easy, isn't it ?

Bubbles

Dans celui-ci, la fenêtre contient une dizaine de bulles qui se déplacent selon des fonctions plus ou moins complexes qui donnent une impression assez "chaotique"... mais en fait non.

Bubbles (pointeur non-représenté)

Le code est disponible ici, et l'image de fond ici (penser à modifier le chemin dans votre code).

Gogle Head

Là, le "dude" suit le curseur du regard lorsqu'on le déplace. Les trajectoires de mouvement des yeux sont simplement des cercles (attention, trigonométrie !). J'ai laissé en commentaire quelques lignes qui facilitent l'ajustement des caractéristiques des trajectoires, si certains veulent s'amuser en changeant l'image de fond (de préférence au format PNG).

Gogle Head (pointeur en haut à droite de la fenêtre,
non-représenté)


Le code est disponible ici, et l'image de fond ici (penser à modifier le chemin dans votre code).

Liens :

jeudi 10 juillet 2008

ShoesFests


Demain, Vendredi 11/07/2008 à partir de 8am GMT (soit 21H en France, Belgique, Suisse et Luxembourg ou 15H à Québec) pendant 24H, est organisée la ShoesFests sur le chan #shoes du réseau IRC Freenode (irc.freenode.net) ! Il s'agit de découvrir Shoes, le curieux toolkit de GUI de Why's The Lucky Stiff pour Ruby, d'écrire et partager de petits programmes avec Shoes en s'amusant, le tout en présence de Why's et d'autres rubyistes sympas. Cet event a pour but de tester et diffuser ce programme, tout en identifiant les problèmes de documentation et de clarté. Une seconde édition est prévue est prévue aux mêmes horaires le Vendredi 25 Juillet.

Après ça, on ne pourra plus dire que "Nobody Knows Shoes" !

Je vais essayer d'y passer demain soir, ça a l'air prometteur !


L'annonce chez :
More :

mardi 4 décembre 2007

Mal aux pieds : Shoes !

Bon, ben voilà : je m'amuse (si on peut dire...) avec Shoes. Je vous avais prévenus ! Une seconde petite application un poil plus interactive (mais bien plus laide par contre !). Il s'agit d'un petit jeu où le but est de ne laisser que des "1" dans le tableau (mini-jeu bien connu). Le fichier est assez long (200 lignes environ) en bonne partie parce qu'assez mal codé :

Le mini-jeu

NOTE : je viens de me rendre compte que j'ai laissé un testeur traîner. Avant la structure Shoes, supprimez les affectations sur table, et décommentez la boucle for (elle randomise la distribution initiale des 1 et 0).

Pour retourner aux origines, il a été influencé par le premier tutoriel de Juixe (remplacez text par para dans son code, sinon ça plante). Tout le début, c'est la classe Table dont je vous parlais l'autre jour, les fonctionnalités inutiles en moins, et une autre condition aux limites : :gamic. Les structures flow désignent des lignes (on aurait pu prendre stack pour faire en colonnes). Puis 9 button "nom du bouton" do ... plein de choses ... end. Le petit détail qui fait l'interactivité du programme c'est :

affa.replace "un string à afficher" #dans les button
...

affa = para "le premier texte qu'il affichera" # Où vous voulez dans Shoes (ici à la fin).


On obtiens quelque chose de ce style là :



Alors ok, vous avez le droit de hurler tant c'est moche (n'hésitez pas, j'ai vraiment honte...) mais je vous avais prévenus que j'étais naze en GUI ^^.

Un petit papier très "_Why'sien" servant de doc pour Shoes (ça fait rêver...) ; à imprimer ?

Les sneakers du jour sont des Makaveli "Thuglife" sneakers - Red. Discrètes et passe-partout .

lundi 3 décembre 2007

Someone knows Shoes !!!

Je suis un sinistre pouilleux pour tout ce qui est applications avec GUI (Graphical User Interface). J'avoue. Mais j'ai de bonnes excuses (ou presque) :


      • C'est pas évident (le code est souvent moche).
      • On m'a pas appris (le Ruby non plus cela dit...)
      • Ça me gonfle (très) violemment.
Alors pour rappel, en Ruby, on a pour les plus connues (je vous mets pas les liens, la plupart sont sur RubyForge ou carrément dispo sous forme de gemmes) :

  • Tk (Tk/tcl) : pas glamour du tout.
  • wxRuby (interface vers wxWidgets) qui me plaisait bien parce qu'elle utilise les widgets natifs de chaque OS, mais plus compliquée...
  • Ruby/GTK que j'ai pas creusée.
  • RubyCocoa exclusivement pour MacOS X (et votre serviteur est pour la compatibilité).
  • FXRuby interface vers FOX-GUI mais ça me paraissait pas fabuleux.
  • Qt, mouais.
  • Sans doute plein d'autres excellentes que je n'ai pas le bonheur de connaître.
Et puis je suis tombé un peu par hasard sur SHOES (voui voui, comme les chaussures...).
En fait non. Pas par hasard. Ca faisait un moment que je me demandais si Why's était (comme moi) fan de sneakers ou s'il s'agissait d'un de ces codes... Comme quoi, l'anglais, ça se travaille.

Bref, c'est un GUI toolkit pas vraiment comme les autres, assez simpliste, avec beaucoup de choses issues du développement web, prenant les widgets natifs des OS, mais qui pourrait être idéale pour les branl0s dans mon genre qui ne supportent pas de se pencher plus de 5 minutes sur ces trucs de fourbes... si seulement il y avait une vrai doc ! Mais Why's le dit lui même (le projet est sous license très libre) :

Yes, well, the docs situation is kinda lame. NKS is purely for carnal pleasure. Naw, actually, yeah, who really knows what it’s good for. Roll it up and smoke it.
En gros : la doc est naze ; hackez les enfants ! Bon ben allons-y !

Shoes.app :width => 300, :height => 220 do
image "static/shoes-icon.png", :top => 55, :left => 86
@in = edit_line :width => 250, :left => 25
button "Do you know SHOES, folks ?", :left => 60, :top => 25 do
alert @in.text
end
end


Ce petit code est allègrement dérivé d'un des samples fournis avec Shoes. Il propose une barre de texte à remplir @in, une image .png (.gif et .jpeg également supportés) et un bouton qui va nous renvoyer un message d'alerte avec pour texte ce que l'on a tappé dans @in... En image :


Okay, c'est pas encore la gloire, mais faut reconnaître que le code n'est pas bien long... Pour les noobinards qui n'arrivent pas à démarrer : lancer l'exécutable de Shoes puis donnez lui à manger un petit fichier .rb avec ce qui est écrit au-dessus. L'image utilisée est déjà dans le bon répertoire.

Je vais essayer de tripatouiller ça un peu, et si j'en sors un petit truc marrant, je vous fais signe !

Liens en vrac :

Faites moi signe si vous hackez des trucs marrants (ou utiles, mais c'est moins... voilà quoi ! ^^) !

Les pompes de la premières photos, pour les curieux, sont des Nike Air Force I Premium Low Red, uniquement dispos aux USA, chez Footlocker. Oui, elles arrachent.