Ma découverte du mois : javassist↓
Vous qui êtes fâchés (à juste titre) avec Java pour toutes ces raisons :
- vous ne supportez plus sa rigidité (créer des classes partout)
- vous ne supportez plus son manque d’optimisation (hé non, ça n’existe pas les pointeurs de fonction)
- vous qui ne comprenez pas qu’il vous engueule à chaque classe ou type inexistant
- vous auriez bien aimé avoir des init statiques comme en C++
- vous en avez marre des fichiers xml à tire-larigot
j’ai une lib à vous proposer si par malheur vous étiez payés à faire du java…
javassist permet de compiler jit (just in time) vos propres classes si leur code n’est pas connu par avance.
Un des cas les plus courants est celui où un utilisateur charge un fichier de script et que l’on souhaite faire un wrapper en Java (c’est à dire appeler ces fonctions comme si elles étaient en java et en masquant les appels intrinsèques)…
Je vous en propose un ci-dessous :
… Invoker
Unix colors to HTML (by PHP)↓
Hi there,
this is a really short code to enable you to transform colored unix texts into html spans. Can be useful if you need to display something coming from your unix machine without coding it again in php.
All you need before pasting the code is to write this above the function :
exec ($yourcommand, $input); echo doTransform ($input);
Here it goes !
function doTransform ($input) {
$transform = array(
1 => '$fontWeight="bold";',
21 => '$fontWeight="thin";',
4 => '$textDecoration="underline";',
24 => '$textDecoration="none";',
31 => '$color="darkred";',
32 => '$color="darkgreen";',
33 => '$color="saddlebrown";',
34 => '$color="darkblue";',
35 => '$color="darkmagenta";',
36 => '$color="darkslateblue";',
37 => '$color="white";',
0 => '$fontWeight="thin";$color="black";$backgroundColor="transparent";$textDecoration="none";',
30 => '$color="black";',
40 => '$backgroundColor="transparent";',
41 => '$backgroundColor="darkred";',
42 => '$backgroundColor="darkgreen";',
43 => '$backgroundColor="saddlebrown";',
44 => '$backgroundColor="darkblue";',
45 => '$backgroundColor="darkmagenta";',
46 => '$backgroundColor="darkslateblue";',
47 => '$backgroundColor="white";',
);
$fontWeight="thin";
$textDecoration="none";
$color="black";
$backgroundColor="transparent";
$outputLine = "<span>";
foreach ($input as $inputLine){
$inputLine = str_replace (" ", " ", $inputLine);
preg_match_all ("/".chr(27)."\[([0-9]+;)*([0-9]+m)/i", $inputLine, $matches, PREG_OFFSET_CAPTURE);
$lastIndexOutput = 0;
$currentMatchNumber = 0;
foreach ($matches [0] as $match){
$outputLine .= substr($inputLine, $lastIndexOutput, $match [1] - $lastIndexOutput);
$outputLine .= "</span><span style=\"";
for ($replacementIndex = 1 ; $replacementIndex < count ($matches) ; $replacementIndex++){
if ($matches [$replacementIndex] [$currentMatchNumber] [1] != -1){
$oneReplacement = $matches [$replacementIndex] [$currentMatchNumber] [0];
$oneReplacement = substr ($oneReplacement, 0, strlen ($oneReplacement) - 1);
eval ($transform [$oneReplacement]);
}
}
$outputLine .= "font-weight:$fontWeight;text-decoration:$textDecoration;color:$color;background-color:$backgroundColor";
$outputLine .= "\">";
$lastIndexOutput = $match [1] + strlen ($match [0]);
$currentMatchNumber++;
}
$outputLine .= "<br /></span>";
}
return $outputLine;
}
Have fun.
Des mots (Demo) dans les nuages (dans le « cloud »)↓
Une de mes activités (non essentielle de ma mission) est de mettre en place une sorte de PaaS (Plateforme as a Service : mutualisation des services et des logiciels en all in one) pour permettre à tout un chacun de connduire ses projets techniques en souplesse. Une exigence parmi les plus contraignantes etant que les runtimes (machines virtuelles serveurs et interpreteurs) et frameworks (surcouche logicielle) ne sont jamais les memes. Évidemment il ne s’agit pas d’imposer à tout le monde d’utiliser les mêmes socles. Dans un contexte de recherche et développement… toute tentative de cloisonnement nuit a la productivité. J’ai donc tenté l’install d’un micro cloudfoundry par vmware et j’ai été deçu.
Pourquoi ? Moi qui depuis des semaines en vante ses mérites. Laissez moi vous décrire comment ça se passe :
Vous obtenez (apres inscription) un fichier .vmx (vmware oblige) d’1 go et donc devez installer en pre requis un vmware. Bootez dessus et vous tomberez sur un Lucid Lynx (un LTS fort heureusement). Par contre l’accès tty vous est masqué par un « gentil » menu de config. Pour y aller il faut faire une combi magique ctrl+alt+espace puis ctrl+alt+f2 …sans retirer les ctrl+alt.
Une fois en tty : la première chose qui me passe par l’esprit etant donne un host et un guest tous deux en 10.4… sortons le logiciel du guest ! He bien oui c’est possible mais c’est pas standard ! Vous devrez avoir : deux versions de ruby… des librairies c++ … des rubygems partout.
Apres deux jours d’install et de plaisir je me lance le défi de creer un wrapper jboss. Je déchante rapidement. Je dois créer un gem expres. Je dois faire une config yaml alors que j’y connais fichtre rien
Conclusion : 3 scripts d’admin et des contextes /projects/A/appli/B et tout baigne.
Le cloud le cloud… non mais est-ce que j’ai une tête de cloud ? Haha.
Rien à dire, ou presque↓
Je vous ai fait un petit dessin en consolation… avec une appli android des gens de sony ericsson : creatouch. Une appli qui propose des outils de palette originaux comme des tâches, des rectangles zébrés, des chiffres 3D et figures géométriques rigolotes. C’est juste joli, mais c’est pas de l’art. Creatouch est une appli gratuite (cf http://forum.xda-developers.com/showthread.php?t=1375617)
Amusez vous bien !
Une année (difficile) passe. Une autre arrive.↓
Ci-git l’année 2011. Ainsi soit elle, celle qui a été l’année des fins de mois difficiles, des mesures punitives pour pardonner la crise, et l’année d’un blog bien vide ici bas…
Ainsi sois balayée, année des espoirs déçus, pars et ne subsiste en nous qu’en souvenir…
De l’idée du tourbillon m’est venue l’envie de « gimper ». Je suis sans mon ordi mais j’ai tout de même voulu m’essayer au dessin sur tablette. Verdict : intuitif mais lent. Gimp sur une tablette chrootable c’est simple : sur webOS cela se fait avec des applis native xserver grâce à PreWare ; sur Android, vous devrez simuler un vnc serveur + client… Pas évident, mais possible.
Bonne année 2012, que cette année soit celle du dénouement et du redressement (clin d’oeil politique je l’avoue).
Meilleurs vœux.
Revival du blog.↓
Béh salut.
Deux mois sans blog c’est triste. Pourtant ça s’explique simplement : j’ai changé de situation. Je ne travaille plus au même endroit et j’ai perdu mon ordinateur pendant une longue durée.
Aujourd’hui, officiellement, je ressucite donc le blog. À peine mon ordinateur reçu j’ai foncé sur mon ordi vérifier que tout fonctionnait. J’ai vérifié que mon côté artiste n’a pas été alteré.
J’ai d’ailleurs décidé que l’art n’est pas la reproduction de quelque chose de connu, de la simple maîtrise de la technique, mais c’est aussi de l’imaginaire.
D’ailleurs là l’imaginaire, il m’a conduit à créer n’importe quoi : il s’agit d’un support pour roue de voiture. Pourquoi avoir fait ça ? J’en sais fichtre rien. Travail d’artiste.
Enfin bref, je suis de retour dans la vie.net. Vous pouvez dire youpi.
Parler avec des rébus (enfin, avec des « :paintbrush – :paint + (:pear – :harp) »)↓
On peut tout à fait écrire des phrases en substituant des mots par d’autres syntaxiquement proches. On peut même s’amuser à faire des équations sur les mots comme en chimie.
Ce prog (écrit pour un test de recrutement que j’ai échoué…) vous propose de transformer votre phrase avec des substitutions. Et remplace certains mots clés par des images ! Donc, ça donne logiquement un rébus.
Je vous laisse l’essayer à cette adresse : http://libe.toile-libre.org/puzzle/rebus/rebus-min.php
1+1+1+1+1+1+1+1+1+…↓
Je ne poste certes pas beaucoup ici mais ce blog peut se vanter de parler de tout et de vraiment rien.
En l’occurence il s’agit de trouver une réponse à la question suivante : « Quel est le plus petit nombre naturel tel qu’il soit impossible de le calculer sous la forme d’une expression mathématique composée de neuf 9 ? » ou de huit 15, ou de 4 quatre, ou de ce que l’on souhaite.
J’ai codé un programme qui résoud ce problème de deux manières :
- Un algo qui va faire toutes les possibilités d’expressions mathématiques
- Un algo qui parcourt les entiers naturels.
Au delà de trois termes, le premier algo est inutilisable car beaucoup trop long. En effet pour 9 termes il faut 60 jours à mon intel i5 pour avoir une réponse (je l’ai pas tenté, heureusement, juste prédit).
Le second algo est un exemple court et intéressant de ce que l’on appelle une I.A. (intelligence artificielle).
On cherche un meilleur coup en mettant une valeur à chaque coup possible, et en anticipant les ratés (un coup qui s’avère bon au départ mais qui au final n’entraîne aucun résultat).
En effet il se sert d’heuristiques et de stratégies pour arriver à ses fins : savoir par exemple que (n + n) / n = 2, n – n = 0, n / n = 1.
Ainsi, la réponse à notre question est rapidement trouvée… 114 !
Voici le lien pour essayer l’appli par vous même : http://libe.toile-libre.org/puzzle/findlowestone/findlowestone.php
Theodolite #3 (→ Maya 2012)↓
La prochaine fois, je vais rester sur de la 3D mais m’attaquer à un sujet très différent…
Theodolite #2 (→ Maya 2012)↓
Plus j’avance, plus je me rends compte que l’objectif est trop ambitieux. J’ai de gros problèmes de dimensions sur le modèle (car je ne me sers que d’une image jpg et de la perspective de celle-ci). Malgré tout, je compte poursuivre mes efforts. Je préfère ne pas vous montrer le modèle pour l’instant.
La suite, bientôt.














