Des nuages et des rêves...

Aller au contenu | Aller au menu | Aller à la recherche

mercredi 27 janvier 2010

Paysages et déserts

Le Thar, un désert au coeur de l'Inde, juste là où existait il y a deux mille ans un civilisation prospère... Un triste symbole d'aridité. La liste des déserts est fascinante, et les images fabuleuses. Je pense par exemple aux vallées verdoyantes en plein coeur de l'Atacama...

Du coup, j'ai appris un mot, xérique!

mardi 26 janvier 2010

Go Scala

Je viens de découvrir Scala. Jusqu'ici, ça me plait beaucoup, et mon IBM a la chance de tester un nouvel interpréteur :D

En plus, O'Reilly (toujours la classe) propose Programming Scala en accès libre.

Et dire que j'avais à peine vu Go que je trouve un autre centre d'intérêt... Que de choix de langages, ça bouge vite...

dimanche 24 janvier 2010

C#

Etant plongé professionnellement dans le C#, je me mets quelques points d'entrée vers le langage ici.

La base de la base Livres éventuels FAQ développez.com

mercredi 30 décembre 2009

Entreprises ou j'aimerais travailler

Je n'aime pas trop devoir confier mes marques-pages au Cloud, au risque que la société très active aujourd'hui disparaisse dans quelques années comme feu Caramail. Quand au système d'export/sauvegarde de Firefox, il n'est toujours pas capable d'assurer une synchronisation décente entre mes divers navigateurs/OS/machines... Donc ceci est une page recensant les liens vers des entreprises où j'aimerais travailler.

CCP (EVE, World of Darkness)

un job intéressant et un autre

Aldebaran robotics

Nao est fascinant

l'Agence Spatiale Européenne

Parce que, clairement, participer à l'envol de fusées, c'est fabuleux!

dimanche 13 décembre 2009

EveHQ, Twitter et Les Bateliers

Après avoir lu pas mal du code de EvEMon et envisagé de le porter en C++ sous Linux, j'ai trouvé EveHQ qui remplit le même office de manière plus portable. Une tâche de moins!

A la recherche d'une solution pour intégrer le compte twitter du personnage qui dirige la corporation Les Bateliers dans Eve-Online (12 joueurs début décembre 2009, sur quatre continents, dont trois filles), j'ai étudié ce code mais cette solution est clairement préférable car beaucoup plus rapide et facile à mettre en oeuvre. De toute façon, j'ai compris comment ça marche, je ne vois pas l'intérêt de le recoder... Du coup, j'intègre la dernière mise à jour de l'état Twitter du personnage dans la page d'accueil de sa Corporation.

lundi 30 novembre 2009

Tellement de code à écrire...

En ce moment je mène de front une série de projets personnels...

Je lis par intérêt le code de HURD. Bien sûr, je suis au courant que c'est un projet plus ou moins mort étant donné le succès de BSD et Linux, mais pour ma culture personnelle, lire ce code me semble intéressant. Je dois avouer que je peine...

Je lis aussi le code d'EVEMon, parce que je suis embêté de devoir redémarrer Windows XP à chaque fois que je veux modifier le plan d'apprentissage de mon personnage dans EVE... J'aimerais porter ce code sous Linux, mais j'ai l'impression qu'il y a là beaucoup de travail. Dans l'absolu, lire ce code me force à vérifier mes connaissances en C#, c'est donc une bonne chose!

Je travaille un peu de Java sur un ancien projet professionnel qui ne me satisfait pas entièrement, et j'ajoute des fonctionnalités à un programme FLEX. C'est agréable de voir les choses avancer peu à peu.

Je code pour Android, ce qui est très intéressant. Et j'ai accès au sandbox de Google Wave, ce que j'ai l'intention d'exploiter pour faire des essais de robots Wave. J'ai déjà bien lu ça, et j'ai créé un petit robot familier qui se plaint quand quelqu'un quitte une Wave et se réjouit quand quelqu'un la rejoint. J'ai bien envie de lui associer un dictionnaire de citations à base de mots-clefs, pour qu'il réponde en cours de conversation. Je l'ai rangé à monfamilier@appengine.com, et son petit nom, c'est moody, parce qu'il est capricieux.

mardi 24 novembre 2009

iPhone versus Android

J'ai développé sous J2ME. Je déteste ça, parce que le marché est terriblement fractionné: chaque constructeur a sa propre interprétation de comment la plate-forme doit fonctionner.

Cet article d'AppleInsider, bien que détestable par son manque d'objectivité (peut-on m'expliquer pourquoi un article censé comparer Android Market et iStore passe les deux tiers de son temps à traiter des défauts des plates-formes Microsoft, sinon afin d'encenser Apple? Et ce n'est qu'un des nombreux défauts de l'article qui se résume pour l'essentiel à "iPhone Rulez, iLoveIt"), a néanmoins l'intérêt de soulever un des points qui m'inquiètent avec Android.

Sur le marché PC, où Linux/Microsoft peuvent avoir beaucoup de déclinaisons sans demander autant de développements applicatifs séparés (si, Vim marche aussi bien sous RedHat que sous SuSE que sous Gentoo que sous Debian... et Company of Heroes ou Quake ou World of Warcraft marchent aussi bien sous Dell que sous Toshiba que sous Lenovo), le matériel ne subordonne pas autant le développement que sur téléphone. Certes, les cartes graphiques peuvent exclure une partie du marché d'exécuter tel ou tel titre, par exemple EVE-Online sur mon IBM X32. Cependant, le code est dans l'ensemble portable sur l'essentiel des machines modernes Windows (et dans le cas d'EVE, sous Wine ou sous Mac OS X).

Ceci devient complètement faux sur les téléphones et ordiphones. Les divers constructeurs cherchant à se démarquer les uns des autres vont fournir des écrans différents, des matériels différents... comment développer efficacement sur la gamme? Pire, Apple sort une déclinaison de son iPhone par an. Les concurrents en sortent tous les trimestres, engendrant au niveau développeur comme au niveau client un fatras de machines inextricable. Android propose une solution au problème des écrans multiples, mais cela reste insuffisant pour combler la différence entre l'impression d'homogénéité inhérente au matériel Apple et l'apparence de bazar qui ressort du reste des offres...

Dans un article précédent, Apple Insider évoquait les divers environnements disponibles (j'ai personnellement un intérêt pour Maemo, j'utilise un Nokia E71 et j'adorerais voir une plate-forme Maemo haute qualité : solide, bon écran, éventuellement au format Tablet... telle la fameuse iTablet, vaporware ou non...) et affirmait que les gens préfèrent avoir quelques applications spécifiques à leur portable que des applications génériques à une plate-forme logicielle.

Qu'en penser: l'industrie saura-t-elle vendre moins de modèles plus rentables, permettant ainsi un écosystème logiciel fructueux?

Notons que le premier article évoqué soulève le problème des applications à forts besoins de mémoire (pour les dossiers assets ). iPhone est sur ce plan nettement meilleur que les machines actuelles portant Android. On peut néanmoins pondérer ce point en prenant en compte qu'Android est une plate-forme orientée Internet, alors qu'iPhone est une plate-forme accédant à Internet, différence philosophique fondamentale.

On peut peut-être faire un parallèle entre ce dernier point et le marché des Netbooks. A mon sens, le nom même de NetBook évoque le fait que ces petites machines ont été pensées avant tout pour accéder à Internet et aux possibilités de l'informatique "cloud computing". J'ai constaté depuis le EEE701 une évolution aberrante en termes de fonctionnalité, quoique parfaitement logique en termes de rentabilité. Des machines disposant de plusieurs centaines de gigaoctets de stockage (mais pourquoi, pourquoiiiii stocker sur un netbook?). Des machines de plus en plus grosses. Des machines désormais sous des systèmes d'exploitation tels que Windows Vista ou Windows Seven (on me souffle que certaines versions de Seven ne permettent pas de changer de fond d'écran, amusant). On m'explique que "la clientèle désire Windows XP". Je constate que la clientèle n'a pas trop le choix. On lui vend un Netbook comme un Laptop peu cher (et c'est d'ailleurs une véritable illusion, car autant un MacBook à 800€ est une excellente affaire, autant un Netbook au plastique de faible qualité à 550€ est une délirante mauvaise affaire). On lui fait croire que le Netbook est une machine destinée à remplacer une station de travail. Non, un Netbook ne sert pas à regarder des films, jouer à des jeux vidéos gourmands, télécharger (illégalement, ce qui est mal, ou non) la dernière série à la mode et ouvrir un .doc de 800Mo (j'en ai vu professionnellement. Diantre.)

Un NetBook sert à aller sur Internet. Il ne devrait pas coûter plus de 250€, et proposer une plate-forme solide, avec un vrai clavier, et une mémoire SSD plutôt qu'un disque dur énorme. Il devrait être rapide, démarrer en un claquement de doigt, avec une bonne durée de vie. Ceci exclut Windows. Ceci signifie que les départements de marketing ont failli à leur tâche. Ceci signifie queles constructeurs n'ont pas su créer une nouvelle tranche de machines. Bien sûr, il y a l'exception du EEE701, qui n'a pas eu de successeur (non, les autres EEE ne sont plus des netbooks, mais bien des subnotebooks classiques).

C'est un gâchis. Si Apple sort réellement une iTablet dans quelques mois, elle se vendra probablement très bien. Les commentateurs s'insurgeront "mais comment est-ce possible? Comment Apple a-t-elle encore su trouver un marché que personne ne voyait?" C'est très simple. Les consommateurs ont besoin d'un accès aisé et quasi permanent à Internet. Les téléphones portables modernes le permettent. Ils ont besoin de pouvoir interagir avec de manière plus facile qu'avec un téléphone (iPhone compris). Un Netbook, au format Tablet ou non, le permet. Les prix pratiqués par Apple seront bien supérieurs à ceux d'un EEE701, car il s'agira là d'un produit de luxe. Et les fabricants auront raté l'occasion de s'imposer comme leaders du Netbook, encore que Google avec Chromium proposera peut-être une alternative intéressante. Si c'est le cas, je l'affirme: bravo. Bravo, Google. Bravo de savoir affirmer que non, le consommateur ne VEUT pas Windows. Le consommateur veut des fonctionnalités. Le consommateur veut lire ses mails, avoir les nouvelles, regarder son compte FaceBook, parler sur MSN ou Yahoo ou GTalk. Pour jouer, le consommateur a un PC/MacIntel fixe sous Windows.

Et donc, ce parallèle? iPhone est conceptuellement un subnotebook, une plateforme d'applications qui accède à Internet. Android est conceptuellement prévu pour des applications de Netbook, un système qui ouvre, partout et tout le temps, une fenètre sur le réseau mondial.

dimanche 22 novembre 2009

FrankenPad et Android

Aujourd'hui, j'ai acheté sur Internet un nouveau disque dur IDE pour mon ThinkPad X32, l'ancien commençant à émettre des sons pour le moins inquiétants. J'espère que cet achat prolongera durablement la vie de ma fidèle machine, dont les huit ans de vie sonnés, dont trois à mon service, auront pour le moins été bien remplis. C'est quelque peu un FrankenPad, il faut bien l'admettre, maintenant que la RAM originelle a été remplacée par le quadruple de Corsair, et que ce nouveau disque va prendre la place de l'ancien. Je cherche une touche neuve pour remplacer celle que j'ai malencontreusement brisée en forçant comme un âne... encore que je me demande si je n'aurais pas intérêt à la remouler comme une pièce de maquette, ou bêtement (mais c'est moins amusant) racheter sur eBay un clavier plus ou moins complet, ça ne vaut après tout qu'une quinzaine d'euros...

Après avoir un peu dévié de mes aventures sous Android pour étudier App Engine et les robots Google Wave, ainsi que lire la documentation (et un peu du code) de Hurd, je m'y replonge.

Une fois programmée, une application Android est déployée sous la forme d'un paquet APK, réalisé grâce à l'utilitaire AAPT. Cette application n'est pas basée sur un main() mais sur des "composants essentiels". Ces composants sont:

  1. les activités dérivés de la classe Activity,
  2. les services dérivés de la classe Service,
  3. les auditeurs de diffusion dérivés de la classe BroadcastReceiver,
  4. les fournisseurs de contenu dérivés de la classe de la classe ContentProvider, qui s'interfacent avec des objets de résolution de contenu (ContentResolver).

Des messages asynchrones (Intents) activent les activités, services et auditeurs de diffusion. Ces messages sont transmis par des méthodes différentes:

  1. pour les activités, Context.startActivity() ou Activity.startActivityForResult(), la seconde servant à obtenir une réponse d'une activité-fille,
  2. pour les services, Context.startService() et Context.bindService(), la seconde mettant en place une connection, par exemple pour contrôler le volume des effets spéciaux d'un jeu,
  3. pour les diffusions, Context.sendBroadcast(), Context.sendOrderedBroadcast(), et Context.sendStickyBroadcast() entrent en jeu.

Ces messages activent respectivement:

  1. pour les activités, getIntent() et onNewIntent() selon qu'il s'agit de l'Intent initiale ou d'une Intent postérieure,
  2. pour les services, les méthodes onStart() et onBind() font office de point de traitement.
  3. pour les auditeurs de diffusion, on utilise onReceive().

Note: A la lecture du Seibel évoquée récemment, j'ai été lire le papier initial de Knuth dans THE COMPUTER JOURNAL. J'aime beaucoup le style, d'ailleurs j'ai immédiatement transmis le document au NainRbare... J'ai aussi été parcourir ce site. J'ai aussi été jeter un oeil à CWEB, noweb et Funnelweb.

samedi 21 novembre 2009

Mach, MIG, HURD...

En ce moment, je suis plongé dans le "Coders at Work" de Seibel. Je trouve fascinante cette vision offerte de la façon de penser de ces personnes qui sont parmi les plus remarquables programmeurs de notre monde. Certains arguments en particuliers me sont chers, comme l'affirmation par Fitzpatrick ou Knuth que la capacité à communiquer (autrement dit, la dimension "littéraire" de notre métier) influe fortement sur la qualité du programmeur. J'ai en effet toujours été persuadé qu'il est déplorable de voir des ingénieurs en informatique incapables d'aligner quelques phrases concises ou des phrases incompréhensibles du fait d'un nombre de fautes élevé... Comment celui qui ne sait pas synthétiser quelques idées à l'oral ou à l'écrit pourrait-il correctement résoudre un problème complexe?

Du coup, comme plusieurs des auteurs conseillent de lire du code, lire du code, et sinon, lire du code, j'ai décidé de lire ça: ça fait des années que je regarde de temps en temps et je n'ai jamais l'impression que ça change, peut-être que j'aurais le temps d'en comprendre quelque chose? En tout cas, cette idée d'un système basé sur des messages, avec du RPC dedans, me semble mériter un peu de lecture. Et puis, le NainRbare va l'affirmer, le C, c'est bien...

Note, d'ailleurs, au NainRbare: et maintenant que ce Linux est réinstallé sur ton FrankenComputer, on se remet à coder AW?

mercredi 18 novembre 2009

Développer pour Wave?

Formidable, j'ai maintenant accès à Wave et c'est un outil absolument enthousiasmant. Cela dit, il me manque environ 1 milliard d'applications dessus... Mais je suis sûr que quelqu'un va les coder. En attendant, je m'intéresse au développement sur ce nouvel outil.

Qu'est-ce que j'en ai compris? Les extensions sont soit des robots soit des gadgets.

Développer des robots?

  • --> on crée des robots en partant des évènements qui les font réagir, définis dans le fichier capacities.xml.
  • --> un robot peut utiliser des cron-évènements
  • --> un robot reçoit des requètes par HTTP POST

Ne pas oublier la librairie Wave, et le plugin de développement appengine, et les librairies JSON (disponibles aussi à côté).

Une vague est une entité "historique" au sens où elle est un état de départ additionnée des opérations subies. Ces opérations ne sont pas synchrones, ce qui implique qu'il faut développer de la manière la plus condensée (opérations atomiques) possible...

Les robots sont versionnés (identifiés par une chaîne de caractères précisée de le fichier capabilities.xml) et profilés (ils peuvent disposer d'un avatar, une description, etc).

Sertir des Waves

On peut à l'aide de l'API de sertissage (Wave Embedding) sertir une Wave dans une page web quelconque... Un exemple de la vidéo présente le sertissage d'une galerie de photos sur un blog. C'est assez formidable comme concept, j'aime l'idée de pouvoir inviter sa famille à mettre les photos de Noël, les nommer et les commenter en direct sur le blog, dans une Wave, lier des vidéos, etc...

Gadgets pour Wave?

Un Gadget Wave est (comme c'est bizarre) un gadget qui vit dans l'Onde et qui interagit avec l'Onde. Il appartient à une Onde et partage son état avec les participants à l'Onde. Fondamentalement un gadget est un fichier XML. Un exemple de code proposé montre une session d'enchères.

Pour le bonheur des yeux, il y a des exemples!

dimanche 15 novembre 2009

Google Wave, Seibel, BattleStar Galactica

Hier soirée des trente ans de Yoda dans une salle parisienne très sympathique, grande cave à voûtes archées, avec le groupe "Oliv' et ses Noyaux" coupables d'un style de musique qu'ils nomment tzigano-musette... Intéressant. Plein de gens sympathiques à cette soirée, brillants et chaleureux, c'est toujours un bonheur de constater combien le "geek" est en vérité intéressant et sociable. En tout cas, le monde qui entoure Yoda et Claire.

J'ai aussi eu grâce à Jérémy une invitation Google Wave, ce qui me fait vraiment plaisir, car la technologie est très intéressante. J'ai vraiment le nez dans les technologies de Google en ce moment, entre les API Android, Wave et Orkut...

Je n'ai toujours pas terminé d'étudier les "Design Patterns pour Java", c'est un peu aride mais nécessaire et intéressant, et j'ai emprunté à Joker le "Coders at Work" de Seibel. Je trouve fascinant de découvrir ce regard sur le monde informatique de gens qui sont parmi les plus brillants programmeurs en vie... Et pour délasser ce cerveau en ébullition j'ai aussi emprunté BattleStar Galactica...

samedi 14 novembre 2009

ANDROID NDK

Installation du NDK: décompresser le zip, lancer build/host-setup.sh.

build/host-setup.sh: 57: force_32bit_binaries: not found  --> le lancer avec bash...

build/core/ndk-common.sh: line 357: g++ : commande introuvable --> installer g++

vendredi 13 novembre 2009

Hello, Android World!

Après avoir erré quelque peu, j'ai fini par découvrir qu'en réduisant les permissions du dossier principal du Android SDK de 777 à 555, le SDK se décide à fonctionner... Je suis un peu perplexe, mais ça marche, c'est l'essentiel. Ce message

 Error: Ignoring add-on 'google_apis-5_r01': Unable to find base platform with API level '5'

commençait à sérieusement m'agacer! Presque autant que les détestables systèmes de mise en forme DotClear qui marchent une fois sur deux... enfin, Gandi héberge ça gratuitement et j'ai la flemme de passer chez Google. Et puis, quand DotClear n'efface pas de lui-même mes balises, je peux toujours utiliser XHTML...

J'ai donc lancé Eclipse (doté de son plugin ADT), réglé dans Preferences>Android le dossier du SDK et voilà, le projet est presque créé. Je l'ai appelé avec une grande originalité "HelloWorldAndroid"... On notera l'intégration dans l'assistant de la création du sous-projet JUnit ( logiquement nommé HelloWorldAndroidTest).

Évidemment, ça ne marche pas tout de suite.

Project 'HelloWorldAndroid' is missing required source folder: 'gen'    HelloWorldAndroid  Build path .

Diable! Qu'est-ce à dire? Sans mentir, me voilà fort marri, d'autant qu'un dossier gen est effectivement présent dans la structure... Sans peur et sans reproches, je lance quand même le projet et les erreurs disparaissent... en restent quand même deux, identiques:


The project cannot be built until build path errors are resolved.

Mais?! Je relance eclipse, après avoir tenté un rafraîchissement sans effet visible. 6 erreurs dont une recherche éperdue de la classe "Object". Ahem. Oui, c'est regrettable. Un petit café plus tard, Eclipse a manifestement fini de charger les morceaux du SDK qu'il avait perdu dans la RAM et tout va bien, plus d'erreurs.

De là, je suis la documentation et le tutoriel HelloWorld.

Pendant ce temps là, gtwitter se plante. (gtwitter:30016): Gtk-WARNING **: Ran out of links

Curieux. Apparemment, il cherche une image qu'il ne trouve pas et s'emmèle les pinceaux. Il y a encore du travail là dessus... Mais je préfère ça à Prism, enfin, quand ça marche. Effacer le .gtwitter ne donne rien... En plus, le projet serait mort... Du coup je tente Gwibber et Mitter.

mercredi 11 novembre 2009

ANDROID SDK/NDK et TWITTER

D'abord, twitter: j'ai lié mon compte gmaiano sur twitter avec mon compte Linked-In, ce qui intègrera désormais à Linked-In tous mes tweets comprenant le mot clef #in.

Ensuite, les choses intéressantes: ayant réinstallé mon ThinkPad X32 avec Ubuntu Karmic Koala (après deux Debian, deux versions d'Ubuntu et une Gentoo...) et dans l'attente de remplacer le Windows XP par un Seven neuf, j'ai téléchargé et déployé un Eclipse J2EE (Ganymede) et suis en train de mettre en place un pipeline pour Android. Le lien vers le source du système d'exploitation est ici. Pour l'heure, je m'intéresse aux SDK et NDK. J'ai ajouté ADT à Eclipse, car quite à utiliser un outil kikodataplass, autant le faire à fond...

lundi 9 novembre 2009

Android et caméras

Pour accéder aux caméras avec Android, il faut d'abord préciser dans le Manifest que l'application dispose de cette permission.

<uses-permission android:name=”android.permission.CAMERA”/>

On manipule alors la caméra à l'aide d'une classe ingénieusement nommée "camera".

Camera camera = Camera.open();
  [ … Ecrire un code genial pour la camera … ]
camera.release();

Les paramètres de la caméra sont contrôlés grâce à un objet Camera.Parameters, auquel on accède en appelant la méthode getParameters de Camera. Supposons qu'on souhaite formater l'image en JPEG:

Camera.Parameters parameters = camera.getParameters();
parameters.setPictureFormat(PixelFormat.JPEG); 
camera.setParameters(parameters);

On peut capturer de la vidéo en temps réel: ceci évoque d'intéressantes applications de réalité augmentée. Exemple de plaquage du flux video sur une surface donnée:

camera.setPreviewDisplay(maSurface);
camera.startPreview();
[ … ]
camera.stopPreview();

Un des exemples de code fourni avec le SDK Android élabore sur cette idée.

Le fait de pouvoir travailler image par image avec PreviewCallback permet aussi des utilisations originales.

camera.setPreviewCallback(new PreviewCallback() {
 
  public void onPreviewFrame(byte[] _data, Camera _camera) {
   //ICI, coder quelque chose d'amusant... un arbre avec une image par feuille?
  }
});

Prendre des photos, c'est pas compliqué non plus:

private void prendrePhoto() {
  camera.takePicture(shutterCallback, rawCallback, jpegCallback); 
}
 
ShutterCallback shutterCallback = new ShutterCallback() {
  public void onShutter() {
    // ICI, du code qui sert au moment du clic de l'obturateur
  }
};
 
PictureCallback rawCallback = new PictureCallback() {
  public void onPictureTaken(byte[] _data, Camera _camera) {
    // ICI, traiter les données RAW
  }
};
 
PictureCallback jpegCallback = new PictureCallback() {
  public void onPictureTaken(byte[] _data, Camera _camera) {
    // ICI, traiter les données JPEG
  }
};

Un petit lien à étudier ici.

Tant qu'on y est, le lien de la documentation officielle ne peut nuire: camera.

dimanche 8 novembre 2009

JUnit, Twitter, EVE...

Ça fait une petite éternité que je n'ai pas pris le temps d'écrire un peu ici. Pourtant, ce ne sont pas les sujets qui manquent... mais bien le temps.

Twitter et EVE

Les Bateliers, la corporation dirigée d'une main de velours par Lucia Ferragano, la pilote Gallente, basée dans le système solaire de "Blameston", prend peu à peu de l'ampleur. www.twitter.com/luciaferragano fournit d'ailleurs quelques informations concernant ses opérations. Il me semble que ce premier pas nous sera utile, et j'hésite même à créer un GMail pour Lucia, étant donné l'importante quantité de données déjà fournies par email aux membres de sa petite corporation...

Pour ma part, j'ai aussi un twitter à www.twitter.com/gmaiano, qui décrit mes activités triviales et quotidiennes, de la lecture des tonnes de livres et documentations qui me passent sous les yeux aux divers développements que j'entreprends...

Design Patterns

Depuis un moment, je souhaite aller plus loin dans l'apprentissage des Design Patterns que la simple lecture et analyse de la documentation disponible sur Internet. Les pages proposées par developpez.com entre autres, ont beau être de bonne qualité, lire sur un écran m'épuise rapidement, en particulier du fait de mes verres de lunettes plus qu'usés. Une somme d'argent offerte par mes grands-parents récemment a été affectée à l'achat d'un ouvrage dédié, que j'espèrais pouvoir m'acheter depuis longtemps. C'est que les livres d'informatique, comme les livres d'art, reviennent affreusement cher... Design Patterns pour Java décrit les Modèles de Conception proposés par le G.O.F. et en propose une implémentation java sur un exemple. J'espère en tirer un maximum de profit! Plus que 83 ouvrages sur ma liste actuelle "à acquérir"...

JUnit

J'utilise JUnit par ci-par là, m'y étant intéressé essentiellement à cause du projet S.A.D.E. chez ATIM, et je suis foncièrement convaincu que je devrais travailler beaucoup plus avec ce type d'outil. Malheureusement, je n'ai pas encore eu suffisamment de temps pour établir une méthodologie d'usage nette. J'ai trouvé ça et ça (la page officielle du projet), mais j'aimerais quelque chose de plus construit. Comment assurer 100% de couverture? Comment être "certain" d'avoir des tests efficaces? En somme, quelle méthodologie suivre pour tester les tests? Un autre lien "évident" est le CookBook.

samedi 7 novembre 2009

Karmic Koala

Je suis en train de remettre en état mon pauvre Thinkpad X32, qui souffre de son grand âge (plus de huit ans de vie, dont bientôt deux à mon service exigeant, 3 versions de Windows différentes, 5 versions de Linux, une tentative avortée de OSX86...)

Karmic Koala vient donc de prendre ses quartiers sur mon disque dur (qui, au passage, accuse son âge et m'effraie chaque jour un peu plus, tout en m'impressionnant par la qualité des composants proposés par IBM... Si Apple Computers pratiquait les mêmes standards, ils auraient ma clientèle et mon enthousiasme), et découvre les standards d'utilisation d'un ultraportable sous mon toit... la pauvre, les portables ici sont bien allumés 18 heures par jour! Cette Karmic Koala, donc, a été installée dans sa version "normale". Gnome, donc. Je préfère infiniment Kubuntu, mais j'ai eu suffisamment de problèmes avec les incohérences de support liées au choix de Gnome par Ubuntu que je préfère encore supporter Gnome. Je pourrais, bien sûr, installer une nouvelle Debian (j'ai écrasé ma Lenny pour tester Karmic), ou une Gentoo, ou une Red Hat... mais je commence à accuser une certaine lassitude des réinstallations semestrielles, voire plus fréquentes encore. A l'usage, j'ai stoppé les effets de bureau (fort jolis mais complètement incompatibles avec la stabilité du noyau sur mon ATI antédiluvienne), qui de toute façon déclenchaient ralentissements, blocs noirs ou multicolores, et autres agaçants artefacts et fenêtres invisibles.

J'ai aussi réglé un problème mineur qui m'empếchait d'écrire l'accent circonflexe correctement. Pour une raison apparemment absurde, le clavier choisi par défaut (proposition que j'ai acceptée sans réfléchir, ce qui est une erreur) est en "touches mortes", et cela enlève la fonctionnalité de l'accent circonflexe. Système>Préférences>Clavier m'a permis de retrouver un clavier fonctionnel (en l'étendant à l'ensemble du système d'un coup de mot de passe administrateur).

Je dispose donc d'un magnifique Code::Blocks, d'un Eclipse J2EE téléchargé sur le site officiel, l'expérience montrant qu'en la matière il vaut mieux ne pas tirer les dépôts Ubuntu, et les archives Android. De quoi vais-je donc traiter dans mon prochain billet? :p

En tout cas, à part les petits problèmes liés à l'ATI de mon portable, et le grand âge de celui-ci, Karmic Koala tourne à merveille, et selon top, très légèrement.

jeudi 17 septembre 2009

scones aux airelles

Aujourd'hui, nous avons profité de nos réserves de farine pour faire des scones aux airelles. Comme les scones au chocolat, mais avec des airelles découpées en petits morceaux à la place.

Bien sûr, les scones sont plus petits, ou plutôt moins grands, non pas parce que j'y suis obligé, mais parce que c'est plus agréable. C'est plutôt dans le cas des scones au chocolat que je suis obligé d'atteindre une taille suffisante pour englober le chocolat fondu!

Je note d'ailleurs que ces scones ont des formes peu académiques, puisque j'en ai fait sous forme de coeur, de lapin et d'oursons.

mardi 4 août 2009

Scones

Une recette de scones au chocolat.

Je suis seul responsable de ce qui m'arrive si je mange ça. Par contre, pour vous, c'est pareil :)

Ingrédients:

700g farine T45 (et si je me sens d'humeur délirante, de la farine de sarrazin!)
3 cs levure chimique
100g sucre
120g beurre salé
25cl lait
5cl de crème aigre
2 gros oeufs battus
1/2 plaque de chocolat brisée en petits éclats

Préparation:

Préchauffer le four thermostat 6-7 (200°C) ou la plaque de fonte appropriée. J'ai une grosse poëlle avec un fond très épais qui en fait usage. J'utilise du beurre ou de l'huile de tournesol. J'ai essayé l'huile d'olive... mais ça donne un curieux goût italien.

Je prends un gros saladier, j'y lance adroitement les grains de farine un par un. Quand j'en ai assez, je verse la fin de la farine vite fait. Après quoi, j'ajoute la levure, et aussi le sucre. Je suis partagé d'ailleurs sur le sucre, sans en mettre, j'aime aussi.

Je fais un mélange avec le beurre mais sans trop mélanger quand même pour laisser des grumeaux (petits). C'est diététique, j'ajoute du beurre par dessus quand c'est cuit pour alléger le plat :p.

A part, je mélange les oeufs, que je bats, et le lait, et j'ajoute ça lentement dans un puit dans ma farine améliorée. A la fin je me rappelle de la crème fraiche et je l'incorpore. Ca serait pas des scones sans...

Quand c'est prêt, je lisse grossièrement la pâte (les petits grains de beurre, ça compte!) et j'ajoute les petits morceaux de chocolat dans ma boule de pâte.

Je fais un grand ovale de deux centimètres de haut environ avec un rouleau à pâtisserie. Dedans je découpe des cercles que je pose sur la plaque bouillante (ou que je mets au four pour une dizaine de minutes) et je regarde ça cuire. Avec du jaune d'oeuf dessus si c'est au four!

Je mets ça sur un grand plateau, et je sers avec un Lapsang Souchong ou un thé au lotus...

Liste de cadeaux

Parfois, il est difficile de trouver un cadeau approprié à quelqu'un.

J'ai toujours eu du mal à accepter les cadeaux, pour ma part. Je me sens toujours un peu gêné, surtout quand c'est une surprise, avec le côté déstabilisant de la nouveauté. Et puis, je me sens embêté de ne pas pouvoir sortir un cadeau à mon tour d'un sac de Mary Poppins, avec une dimension de regret de n'avoir pas pensé ou trouvé ce qu'il faudrait pour remercier la personne qui vient de si gentiment penser à moi...

En tout cas, j'ai trouvé très intéressante l'idée d'Amazon de créer des listes "ce que je voudrais qu'on m'offre".

Du coup, je crée la mienne. Il faudra que je l'édite quand je me ferais des cadeaux à moi-même :) Note: je l'ai éditée après Noël, puisque j'ai reçu un beau pyjama tout neuf, de magnifiques chaussures et deux disques de Ferrat!

Blender

Training 1

Training 2

Training 3

Jeux

Mon jeu préféré... : quelle barbe, il est trouvable partout en Special Edition sauf... en France. Fnac belge le propose

Du temps de jeu m'intéresse aussi

GW: seule m'intéresse l'édition complète... Évidemment, ce n'est pas facile de la trouver...

Programmation

Action Script 3: Design Patterns
C++ et STL: le Meyers!

AS3: encore!

"Art of" books

Ce sont des livres magnifiques remplis d'images de films ou de jeu qui illustrent le processus de création. J'ai par exemple le livre correspondant à Wrath of the Lich King!

Des vagues et des pingouins Surf's Up

Un panda et un tigre Kung Fu Panda

Un rat et une toque Ratatouille

Diverses choses pour encombrer mon bureau...

Une tasse

Un jeu

De la musique

Moustaki

- page 1 de 2