Code monkey.
Monday, May 29, 2006
  GLIPS Graffiti
Suite à une recherche approfondie parmi les projets d'éditeurs SVG en Java sur SourceForge, j'ai finallement choisis GLIPS Graffiti pour l'adapter à mes expérimentations cet été. C'est un logiciel avec un bon nombre de fonctionnalités, et qui a l'air très bien réalisé (il est entretenu par Itris, une boîte française). Seul bémol : il est un peu lent. Mais ça reste du Java + Swing + Antialiasing alors ce n'est pas une surprise. Sous licence LGPL. Très gros point positif : il gère très bien le SVG, j'ai pu notamment importer des SVG créés sous Inkscape et le rendu est très joli (juste lent...) il n'a cependant pas pu ouvir l'image Courgette postée ici il y a peu, surement trop lourd.


Mon objectif est donc de subtiliser le JDesktopPane qui contient toutes les fenêtres par un affichage multi-buffer à la emacs, avec un mini-buffer et des raccourcis claviers en pagaille.
Il va donc falloir se plonger dans le code de tierces personnes, essayer de comprendre comment ce Glips est pensé, et réfléchir un minimum. Je nuance l'idée de scripter les actions, il faudra simplement trouver un moyen d'éditer rapidement du svg.

I'm so enthusiastic! Mais c'est pas le moment il parait...
 
Sunday, May 28, 2006
  yo sup' boss
Niveau révisions les derniers jours ont été plutôt foireux...
J'ai appris à résoudre des équations de récurrence par équation caractéristique et par série génératrice, mais bon ça vaut généralement 2 points dans les DS et le reste, qui consiste à pondre des algo, c'est pas trop ma tasse de thé. J'avance pas, normalement il reste quand même du temps.

J'ai commencé mes recherches pour trouver un éditeur vectoriel open source programmé en Java, comme ça je pourrais me baser dessus pour développer les fonctionnalités que je veux tester. Je ne veux pas prendre trop de temps sur les questions mathématiques (géométriques), courbes de béziers et autre, alors si je trouve quelque chose d'assez bien pensé pour être adapté à mes besoin, je n'hésiterais pas. En plus, ça pourrait aider son développement. Je continue de chercher, en 56k hors forfait depuis 5 jours ici, ça fait mal (adsl la semaine prochaine...).

J'ai aussi pensé que bosser deux mois cet été ça va être très très très long. L'an dernier je l'avais fait 6 semaine et vers la fin j'étais vraiment essouflé... Je compte donc bien profiter de mon mois de vacances préliminaires.

Retour (enfin) à l'Insa ce soir. Ca commençait à devenir long ici, surtout que j'ai besoin d'une rupture pour me remettre à travailler.

Avec Mac on a dit qu'on faisait la fête mercredi soir, ça me va ^^
 
Thursday, May 25, 2006
  Révisions : quand l'algorithmique creuse...
Comme bon nombre de personnes aiment à le répéter, les mathématiques jouent souvent un rôle primordial dans les choses de la vie. Ayant commencé à réviser (découvrir...) mon cours d'algorithmique, je viens d'avoir l'occasion de me pencher sur le problème suivant : "Quel est le nombre de parts maximum de pizza que l'on peut obtenir en donnant x coups de couteaux dans celle-ci?".

Comme pour toute application strictement mathématique, on va devoir se définir des limites à notre abstraction :
- la pizza est en fait un plan de R² (une pizza infinie, en somme);
- les parts de pizzas n'ont rien à voir avec des parts triangulaires traditionelles, quand le mathématicien a faim, il ne s'en préoccupe pas.

Déterminons une équation de récurrence :
Soit T(n) le nombre maximum de parts obtenu avec n coups de couteau, cherchons à exprimer ce nombre de façon empirique :


On remarque que T(1) = 2; T(2) = 4; T(3) = T(2) + 3; ...
T(n) = T(n-1) + n
Voici donc notre équation de récurrence qui nous permet de calculer le nouveau nombre de part en connaissant le nombre de parts précédent.

Preuve
- quand on ajoute une nième droite D(n), on augmente le nombre de régions de k >= 0 : T(n) = T(n-1) + k, k >=0;
- quelle est la valeur maximum prise par k? La nième droite D(n) peut couper les n-1 autres droites au plus en n-1 points donc cela engendre au plus n nouvelles régions. k <= n ; - T(n) = T(n-1) + n ; T(1) = 2.

Résolution
Elle se fait par la méthode des facteurs sommants :
T(n) = T(n-1) + n
+ T(n-1) = T(n-2) + n-1
+ ...
+ T(2) = T(1) + 2
+ T(1) = 2
________________________
T(n) = n + n-1 + n-2 + ... + 2 + 1 + 1 = n(n+1)/2 +1

Pour n coups de couteaux, on peut donc avoir un maximum de [n(n+1)/2] +1 parts de pizza. A noter que ça serait plus judicieux d'adapter ça au cas réel où toutes les droites se coupent au centre de la pizza, en donnant aussi un angle limite minimal pour savoir si une portion peut toujours être considérée comme une part. Et comme dirais John Macadam Jr. , il faudrait aussi rajouter une dimension à l'espace, juste pour la garniture :)

Je laisse aussi le soin à John de se délecter de la part #3 ... oui, celle dépourvue de cROUTE (humhum..).

Well, étonnant, non?
 
  Vectorialisation conceptuelle
Les périodes de révisions pour les partiels m'ont toujours aidé à trouver des idées de réalisations logicielles à entreprendre. Malheureusement, je n'ai jamais le temps de m'y mettre quand l'idée surgit et, après, l'alcool, la flemme, la vie, ou tout simplement l'oubli font que je ne m'y met que rarement.

L'idée dont je parle ici est simple, et c'est juste pour s'amuser comme d'habitude, tenter des trucs. J'ai toujours été attiré par tout ce qui touche aux graphismes, et je m'amuse parfois avec inkscape à dessiner à base de vecteurs. Le truc que je voudrais tenter, c'est de faire un logiciel de dessin vectoriel programmable et dans lequel les raccourcis claviers seraient primordiaux (à la emacs). On parle quand même de dessin alors la souris sera toujours nécessaire, mais un grand nombre d'opérations peuvent être automatisées...

Je réaliserais donc une 'proof of concept' en Java, les défis techniques pour moi étant :
- intégrer un langage dans le logiciel pour l'automatisation (comme lisp pour emacs);
- gérer les raccourcis claviers et les lier à l'automatisation;
- intégrer les primitives du dessin vectoriel;
- gérer l'export SVG;
- gérer John Macadam Jr. ;
- un beau GUI avec fenêtrage multiple à la emacs;
- plein d'autres choses...si vous avez des idées :)

Je compte aussi voir comment on créé un nouveau Look & feel pour Swing histoire que mes applications aient toutes un peu la même gueule.

Je vais aussi bientôt établir une todo list pour tdestiny...
 
Tuesday, May 23, 2006
  Toward destiny
Alors que je me rend compte chaque jour que mon destin n'est pas vraiment entre mes mains, je peux tout de même prévoir comment occuper mes soirées cet été.

Ce sera avec le retour de l'énorme Toward Destiny, espèce de petit jeu/moteur de jeu/éditeur de jeu, bref, un grand n'importe quoi que j'avais commencé l'an dernier.

Ayant perdu les sources, je recommence tout depuis le début. C'est plutôt une bonne chose vu que niveau conception l'ancienne mouture, c'était pas ça...

Le but de ce mini projet n'est en aucun cas de produire un logiciel exploitable, c'est avant tout de pratiquer et de tenter des choses, juste pour s'amuser.

Des screenshots de l'ancienne version sur le site http://tdestiny.tuxfamily.org (rajouté en lien).

Le mot de la fin, Architecture in Helsinki que c'est trop bien ^^
 
Monday, May 22, 2006
  Le drapeau a été amidonné pour l'occasion
Je viens à l'instant de tomber sur une courgette en orbite autour de la Terre. J'y ai planté mes emblêmes pour en prendre possession et je compte bien m'y installer. Je dirais moins de conneries là-bas, je me ferais moins d'idées aussi. Deux heures de travail sous Inkscape (bouffe ressources mais libre et suffisant pour ce que j'ai à faire), ça mériterais un coup de The Gimp (mais je gerbe ce logiciel donc on restera dans le pur vectoriel). J'ai fais ça juste pour me changer les idées alors non seulement ça a pas marché mais en plus c'est pas trop ce que je voulais en faire (ça devrait évoluer).
 
Saturday, May 20, 2006
  Période creuse
Les partiels arrivent à grand pas et pour changer je ne suis pas dans le meilleur angle pour les aborder.

L'année aura encoré filée. Un début d'année énorme, et à partir de Noël, du temps d'un café, de tout cela, ça a été moins drôle. Bilan sur l'année niveau cours : je crois que je fais enfin des choses qui me plaisent, mais ça reste des cours donc...

Je travaille cet été du 17 juillet au 8 septembre. Je compte utiliser mes soirées pour développer, surement avec Ali. Du 17 juin (fin des partiels) au 17 juillet, je ne sais pas encore ce que je vais faire, je ne serais pas contre voyager, à échelle réduite (ça reviens à aller sur la côte pour camper ou faire un tour dans les Yvelines) mais je ne sais vraiment pas.

Ce blog est plus ou moins utile sachant que personne ne le lit. Enfin, pour l'instant, son contenu ne reflète en rien ce que je veux en faire.
 
Tuesday, May 02, 2006
  Vacances...
Bientôt une semaine de vacances passée. Très vite passé même. Beaucoup de thé et d'audiovisuel, un exo de stocha.

Retour sur Rennes pour le Rock n' Solex dans quelques jours.

Puis la rentrée, avec le projet compilateur à finir (j'ai même fais un petit GUI très charmant dont la plus grande difficulté était de rediriger le flux de sortie standard dans un textarea... au moins je sais faire ça maintenant). Et les partiels qui viendront trop tôt.

Mon timeline a avancé, mais pas trop. Je me rends compte que je faisais un peu n'importe quoi à chaque fois que je voulais créer un composant en Java. Enfin, j'ai juste l'impression d'être sur de ce que je fais maintenant, alors qu'il y a 3 ans, quand je pratiquais Swing pour le plaisir, c'était pas vraiment ça. Je suis cependant actuellement bloqué : je n'arrive pas à dessiner les composants ajoutés à mon container...grave problème. La solution viendra.

J'ai prospecté dans les projets proposés pour le Google summer of code, pour occuper mes soirées cet été (les journées, ça sera chez SNA puis Calcialiment...) et je dois refaire une autre sélection. En gros, ce sont soit des réalisations en Java, soit des applications de la technologie Ajax que j'ai retenu... c'est plutpôt orienté GUI alors forcément...
 
The weblog for your stylish, mysterious, dangerous life...

Name:
Location: France

http://twitter.com/jprieur

Archives
April 2006 / May 2006 / June 2006 / July 2006 / September 2006 / October 2006 / November 2006 / March 2007 /


Powered by Blogger

Subscribe to
Posts [Atom]