vendredi 29 juillet 2011

Scriptopathe et l'inutilité...

Bonjour à tous !

Les geeks sont une espèce étrange... ils ressentent souvent le besoin de parler à leur ordinateur, d'être écoutés... malheureusement, l'ordinateur ne comprends pas toujours ce qu'on lui dit.

Je ne sais pas si je suis le seul à avoir déjà fait ça, mais certains programmeurs ruby se sont peut être déjà amusés à faire en sorte que l'interpréteur leur réponde :
 Le problème c'est que la conversation s'arrête là, et ce n'est forcément rigolo...

... La solution : Le ScriptoInterpreter

Le ScriptoInterpreter est un interpréteur de commandes très très basique, et assez incomplet, mais c'est un point de départ qui peut permettre plus de possibilités, si jamais je n'ai pas la flemme de le continuer...
Il existe un mode "script", et un mode "shell", paramétrables dans le fichier "config.ini"


Quelques screenshots :

Mode script : 

Mode Shell :


Commandes
Elles sont contenues dans le fichier Commands.txt :


Liste des commandes
Conventions :
    []  = doivent être groupés
    ... = caractères possibles
Formules :

( expression ) => une expression. Ce sera du code ruby, néanmoins, les <vars> seront
                    remplacés par le nom de la variable correspondante.
<code ...> => Tout ce qui est compris entre ces brackets est du code de l'interpreter.
Lorsqu'on est dans un bloc impriqué (exemple dans un Do), utiliser des / en fin de ligne pour signaler
que la totalité du bloc est une instruction.

-- Appels de méthode ( transformables en %
---- [Call nom] ... With ... (expression args ruby)           
---- [On obj] ... [Call nom] ... With ... (expression args ruby)
---- [Call nom] ... [On obj] ... With ... (expression args ruby)
-- Creation d'objets
---- [Create ... type] ... [On parent] ... [With ... (expression args ruby)] -- ordre interchangeable
-- Modification de variables
---- [Set .... $Variable$] ... [To ... (expression args ruby)] 
-- Events
---- When object Is evt_handler Do (expression ruby) OU <code>Code interprété</code> (expérimental)


Explications complémentaires


En mode shell, il est possible, en plus des pseudos commandes, de parler avec l'interpréteur.


Pour l'instant, il ne connait que quelques mots et ne comprend que les phrases affirmatives simples (you are + adj, avec des mots entre : "my computer, you are so fucking intelligent"), et des phrases interrogatives l'interrogeant sur son humeur :
Are you [humeur]
Humeur = bad, good, angry


Attention, le mettre en colère l'empêche d'exécuter des commandes, et le complimenter pour le mettre de bonne humeur ne marche pas toujours, il n'est pas si bête que ça...

Téléchargement :
ScriptoInterpreter pour Windows

Enjoy !

iAccount

Bonjour à tous, aujourd'hui, je vais présenter un logiciel que j'ai développé en Python (que j'ai d'ailleurs appris à la volée) avec wxPython. Il s'agit de iAccount, un logiciel simple de gestion de comptes. Il m'a été demandé par mon père ainsi qu'une amie, et répond donc à des attentes quand à la simplicité d'utilisation du logiciel.
Il est disponible pour Windows, et Mac OS X. Et a été testé sous Windows Vista / Seven, et Mac OS X Snow Léopard (10.6). Il est normalement compatible avec Windows XP, et Mac OS X toutes versions.

Que propose iAccount ?
iAccount propose une gestion de comptes/budgets sur le mois.

Un écran de démarrage permet de créer, supprimer, et ouvrir des comptes :
En cliquant sur nouveau fichier, une boite de dialogue vous demandera :
- un nom de compte (exemple : "Jean Claude")
- un numéro de compte (optionnel, est juste affiché sur les images en page d'accueil)
- un mot de passe (optionnel) : empêche la modification / suppression du compte par une personne ne possédant pas le mot de passe.

Pour chaque compte sont paramétrables :
- des charges et gains fixes, reportés sur tous les mois, et modifiables sur le mois en cours et les suivants (les changements faits dessus ne seront pas pris en compte pour les mois précédents, ce qui parait logique).


- des dépenses / gains mensuels : ils sont éditables sur un mois, et ne seront pas reportés au mois suivants. Exemples : "courses", "gagné au loto" (pourquoi pas ?), "essence"...
En fonction de tout cela, et du solde du mois précédent, reporté automatiquement, iAccount calcule le solde du mois en cours.

La recherche

La recherche permet de retrouver facilement des dépenses / gains, en fonction d'une donnée connue.
Exemple : vous avez fait un chèque d'un montant de 152.5€, mais vous ne savez plus à quoi il correspond.
La recherche permet alors de rechercher toutes les entités dans les dépenses mensuelles, dont la valeur est 152.5€. Dans le cas d'une recherche de coût (ou valeur), une tolérance peut être spécifiée.
Vous pouvez aussi rechercher le montant d'une dépense dont vous avez une partie du nom (donc recherche par description), ou alors rechercher tous les paiements effectués par virement etc...


Mot de passe :
Cliquez sur l'icône avec le cadenas afin de modifier le mot de passe du compte.

Retour à l'accueil :
Cliquez sur l'icône bleue avec la maison pour retourner à l'accueil.

Télécharger iAccount
Windows : iAccount-1.0-setup-win32.exe
Mac OS X : iAccount-1.0-osx.zip

Licence iAccount
Contrat Creative Commons
iAccount de Josué Alvarez est mis à disposition selon les termes de la licence Creative Commons Paternité - Pas d’Utilisation Commerciale - Pas de Modification 3.0 non transcrit.
Les autorisations au-delà du champ de cette licence peuvent être obtenues à http://scriptopathe.blogspot.com/.

mercredi 29 juin 2011

Binaires wx.net

Récemment, dans le cadre du développement d'un projet d'éditeur de jeu en C# avec WX.NET, je me suis rendu conte que la release actuelle (la 0.9.2), ne contenait pas toutes les classes annoncées dans la documentation, et quelques classes assez importantes, ou intéressantes (notamment l'AUI) sont aussi absentes.
Je suis donc aller chercher dans le CVS repository du projet, et j'ai téléchargé les sources.
Pour ceux qui connaissent WX.NET, la librairie est composée d'une dll en code natif, wx-c.dll (enfin, pour windows), et d'une dll en code managé .NET : wx.net.dll. Pour compiler, la dll .NET, pas de problème, ça se fait parfaitement bien.

Cependant, pour ce qui est de wx-c.dll, ça demande pas mal de bidouillage, vu que ça ne se passe pas forcément comme prévu dans les manuels disponibles sur le site du projet (qui datent de Mathusalem).
Après de longues nuits blanches, j'ai finalement réussi à compiler les sources de wx-c.dll.

Ayant été frustré de ne pas avoir trouvé des binaires (windows, x86) directement, je les mets ici, en espérant que ça puisse servir à quelqu'un...

Date du snapshot : 26/06/2011 : Binaires wx-c.dll et wx.net.dll

La licence et toutes les informations sur wx.net sont disponibles ici :
Wx.net sur SourceForge

Et un blog de développement de plus...

Aujourd'hui est un grand jour (ou pas), puisqu'il voit se dérouler l'inauguration de ce blog consacré au développement informatique.
Je mettrai ici tout ce que je jugerait plus ou moins utile et qui m'aura fait transpirer pendant de longues heures (ou minutes).

Juste histoire de faire les présentations : je m'appelle Josué, mais on m'appelle Scriptopathe... oui je sais je ne suis pas du meilleur gout en ce qui concerne les pseudos.
A l'heure où j'écris cet article, je suis lycéen... mais une fois rentré chez moi je m'adonne à de sombres pratiques qui consistent à demander à un ordinateur de faire tout ce que je lui dit ; les adeptes de cette pratique sont appelés programmeurs. Je fais partie de ces personnes étranges et incomprises de la société. En effet, le programmeur ne parle pas la même langue que tout le monde, il parle à son ordinateur dans des langages barbares, et communique aux autres programmeurs dans un langage proche des langues connues (français, anglais) mais y insère plein de noms barbares.

J'ai le malheur d'annoncer que je fais plus ou moins partie de ces gens là, et que ce blog contiendra un bon nombre des dialogues entre mon ordinateur et moi, dans des langages comme Ruby, ou C# en majorité, et puis occasionnellement C++. Et, s'il me vient l'idée d'apprendre d'autres dialectes, et bien vous pourrez profiter de mes découvertes.

Bon, assez plaisanté, j'espère que ce blog pourra être d'une quelconque utilité à quelqu'un, quelque part, pour quelque raison...