Caverne

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

jeudi, avril 15 2010

Gaming can make a better world

Ça fait des semaines que je suis tombé dessus et impossible de me convaincre de trouver le peu de temps nécessaire à poster à ce propos.

Gaming can make a better world est une des conférences qui a été données cette année lors du TED de février.

Lire la suite...

jeudi, mars 4 2010

Compilation JSP et init-param fork

Ou plus communément connu sous forme de recherche google du type "java.io.IOException: tmpFile.renameTo(classFile)".

Qu'une chose à dire, merci Internet. Enfin surtout merci m'sieur Ron Ledwich pour avoir investigué durement sur un problème que je soupçonnais mais dont je ne voyais pas encore comment j'allais m'en dépatouiller : http://www.mail-archive.com/dev@tomcat.apache.org/msg06871.html. La configuration dans laquelle je me trouvais (Netbeans pour démarrer un Tomcat local) me provoquait une erreur un peu aléatoire sur la compilation de pages JSP. Le soucis si j'ai bien compris le bazar au final, c'est que la JVM qui démarrait Tomcat était la même instance qui démarrait Netbeans et les deux asticots se disputaient la priorité sur les fichiers à déployer / compiler. Le réglage d'un init-param de la servlet jsp permettant de fork proprement la JVM qui compile les JSP a résolu le problème comme un charme.

vendredi, novembre 6 2009

Charger différents fichiers .config

Ou en version originale : Loading the WCF configuration from different files on the client side.

http://weblogs.asp.net/cibrax/archive/2007/10/19/loading-the-wcf-configuration-from-different-files-on-the-client-side.aspx

L'idée est de pouvoir charger dynamiquement différents fichiers de type app.config (en fonction d'un contexte, d'une DLL spécifique, etc.). L'article indique qu'il existe deux approches, celle proposée consiste à utiliser un objet CustomClientChannel héritant de ChannelFactory. Même si le code peut paraître un peu obscur pour le néophyte à propos de ces histoires de Bindings (et du coup rendre cette foutue recherche Google bien pénible), ça peut rendre excessivement service dans le cadre d'un chargement dynamique de configuration de Web Services.

lundi, août 24 2009

Cannot connect to device. Error: 0x8007064a

L'épisode science-fiction du développement du jour. Si vous avez un problème avec Visual Studio 2005 pour vous connecter à un device mobile (ou même un émulateur) alors que vous venez de réinstaller pour la 3eme fois l'ensemble des outils (Visual Studio, le SP, les images émulateurs, les SDKs mobiles, etc.), et que le seul message à peine explicite que vous obtenez est "Cannot connect to device. Error: 0x8007064a", et bien sachez qu'il existe une solution Vaudou.

Les détails sont ici, et en résumé, ça consiste à : quitter tout le bazar, renommer un répertoire, relancer tout le bazar, requitter immédiatement (??), renommer le répertoire comme à l'origine, et paf, ça marche. Je vais aller acheter de l'encens et quelques aiguilles à enfoncer dans une poupée.

samedi, août 22 2009

Blizzcon 2009

BlizzConLogo Je mets à jour un peu le twitter depuis bientôt près de 7h, mais j'ai oublié d'en parler ici. Je me suis fendu du "Pay Per View" de la BlizzCon 2009. Quelques problèmes techniques de stream en High Quality, du coup se rabattre en Medium (voire Low) est un peu rageant. Ceci étant dit, les annonces, l'ambiance, les interviews, les reportages, si on est un peu fan boy, ça vaut le coup. Encore quelques heures de Stream, puis pause pour la reprise demain à 20h.

jeudi, août 13 2009

Ajustements DC2

Quelques modifications du thème, des pourcentages, des div et des $%*! de float CSS, le remontage de la sidebar plus à droite qu'en bas, et l'ajout de l'extension twitter un chouïa (mais vraiment chouïa) customisée. Il y a encore quelques bricoles qui me titillent, mais globalement je trouve que ça s'arrange et s'éloigne un peu plus d'une installation par défaut.

mercredi, août 5 2009

Office 2010 The Movie

Je suis juste fan. Le Teaser, le Trailer. À visionner en HD bien entendu.

samedi, août 1 2009

IE8 et DC2

Ahah, le billet précédent, et bien je l'ai tapé deux fois parce que je le rédigeais dans IE8 et que le submit n'a pas fonctionné (retour à l'authentification). Et apparemment ce n'est pas la seule incompatibilité. Bref, j'ai lancé Chrome, ça a de suite mieux marché.

samedi, août 1 2009

SFR, les mots et les maths

Il y a quelques semaines j'ai changé de forfait (et de téléphone, HTC Magic, miam) pour un Illimythics 3G+ avec Internet. Erreur, grossière erreur de nomenclature que je viens de faire à l'instant en voulant raconter cette anecdote. En effet, lors du changement de forfait, j'ai naïvement demandé "Illimythics 3G+ avec Internet" au lieu de "Illimythics 3G+ Full Internet". Résultat, l'opératrice de l'époque m'avait activé un forfait et une option Internet qui, bien que fonctionnelle et tout ce qui va bien, ne correspondait pas tout à fait à l'offre que j'avais repéré. Et sur ma facture de ce mois-ci, j'avais bel et bien l'impression que je ne payais pas tout à fait ce que je devrais.

Nouvel appel au 900, recalcul en direct avec la charmante demoiselle, et quelques minutes de boulier et règles à calcul plus tard, on arrive à effectivement un résultat différent où le paquet "A + B" est différent de "A" + "B" (de 3 euros à vrai dire). Moralité, systématiquement vérifier à chaque nouvelle facture si un nouveau forfait plus patator que le précédent ne fais pas exactement la même chose (voire davantage) pour moins cher parce que Jim de l'équipe commerciale 1 n'a pas consulté Robert de l'équipe 2.

mardi, juillet 28 2009

Installation DC2

Passage de ce bout de web complètement anonyme en DotClear 2. Ce sera plus simple pour différentes bricoles, ça le met certainement à jour niveau sécurité, et l'administration elle est chouette qu'elle est bien. Je ne sais pas si le thème présent au moment de la rédaction de ce message perdurera, mais il fera bien son minimum de temps avec les quelques touches personnelles que je lui collées. Le thème original est lui disponible chez DotAddict.org, et s'intitule Battlestar.

dimanche, juillet 26 2009

Tron Legacy

Teaser sur Youtube

Forcément, faut avoir vu le premier à la belle époque pour apprécier le truc. Probablement un film où je tacherai de trouver un cinéma qui le projette en 3D.

lundi, juillet 20 2009

Good Old Games

Au détour d'un article chez Gamekult (parce que je me suis fendu de l'édition spéciale remasterisée de Monkey Island sur Steam), je suis tombé sur le lien d'un site sur lequel je risque de retourner rapidement. Good Old Games (ou GOG pour les intimes) propose au téléchargement pour des sommes franchement modiques (et promises pour suivre un vrai taux de conversion et pas le fameux 1$ = 1€) de vieux canons du jeu vidéo PC.

Alors forcément y a pas tout, évidemment ça pourrait paraitre un peu vieillot ou techniquement dépassé, mais à parcourir rapidement le catalogue disponible, il y a quand même quelques sacrés bon titres. Petit hic, ça n'a l'air disponible qu'en anglais, ça peut décourager les plus allergiques, mais pour des prix allant de 5 à 10$, on va pas se plaindre.

lundi, juin 15 2009

Annecy 2009 et Coraline

Coraline Ce weekend je suis allé (vite fait) au festival international du film d'Annecy. Outre le fait que c'est une belle ville et que certaines "expos" (notez les guillemets) étaient plus des versions A3 de montages Photoshop placardés au mur (et répétés tous les deux panneaux), j'ai eu l'occasion de voir Coraline en VOST en plein air sur écran géant au bord du Lac. Un moment super chouette, un son et une image impeccable, et un film d'animation vraiment exceptionnel. À ne pas forcément montrer à tout le monde (les plus jeunes ?) et il faut apprécier le genre, mais définitivement une expérience agréable et à recommander.

Quelques photos rapidement ici.

lundi, juin 8 2009

Terminator Salvation

Terminator Salvation Autant le dire tout de suite, si on ne frémit pas au thème de Terminator, que "I'll be back" ne signifie rien pour soit ou qu'on n'aime pas les prequels, il faut passer son chemin. Terminator Salvation s'adresse selon moi à un public averti, dans le sens où il faut savoir ce que l'on va voir : des chroniques (qui se passent dans le futur mais qu'en fait ben c'est avant). Moi j'ai aimé, au même titre que j'ai aimé l'épisode 1 de StarWars parce que c'était du StarWars et qu'à la fin il y avait une scène qui déchire, ici, c'est parce que pendant tout le film il y a des clins d'oeil à ce qui va se passer (enfin, se passer avant, faut suivre). Qui plus est, j'ai beaucoup aimé Marcus et l'atmosphère générale du film. Et même si certains moments font vraiment livre d'histoire ou "ceci est un passage montrant que", moi ça me va.

Pour finir, même si vous ne voyez pas de quoi je parle, sachez qu'ils l'ont fait. Et grah, même si c'est qu'une petite minute, ça y était.

lundi, juin 8 2009

Deceived

Deceived L'un des meilleurs trailers de ces dernières années pour un jeu vidéo, en plus c'est du StarWars. Aucune idée de ce que vaudra le jeu, mais l'achat se justifiera uniquement pour cette cinématique. À voir, revoir et re-revoir absolument.









lundi, mars 30 2009

Addiction d'une passion

Que ce soit pour surfer sur la nouvelle vague du "les jeux vidéo sont un loisir d'adulte" ou tout simplement parce que parfois il faut le dire clairement, quelques articles se mettent à papilloner sur la toile quand au grand (gros ?) mot qu'est l'addiction que l'on peut avoir face aux jeux vidéos. Je ne sais pas encore bien dans quelle catégorie joue (ahah) l'auteur de l'article, mais il est bien écrit et certains passages m'ont plut, pour les bonnes questions qui sont posées ou de ces bonnes vieilles vérités vraies qu'on arrive pas à expliquer autour de nous. Morceaux choisis :

Qu’est-ce qu’on aime dans le jeu pour y passer autant de temps ? (si plus de monde pouvait se la poser celle-là)

Les jeux nécessitent de développer des compétences. Il faut pouvoir différencier, hiérarchiser, savoir ce que l’on doit faire. Il faut organiser le chaos du jeu. C’est un travail intéressant pour tout un chacun, car il nous aide à hiérarchiser l’information, à organiser notre propre chaos interne.

Les stimulations qu’apportent les jeux vidéo sont des aides à penser. Ce ne sont pas des excitations vaines, dont on ne sait rien. Mais des matières à penser.

Lien direct de l'Article sur le monde

dimanche, mars 1 2009

Prepare to fight!

Quake Live
Impressive!

Ou comment passer une nuit blanche et replonger 10 ans en arrière, à pester derrière son écran pour toutes les raisons possibles et imaginaires qu'un Quaker peut trouver à ses ennemis et s'extasier en entendant des "Impressive!" et autres "Gauntlet, Humilation!". Rah que c'est bon.

mardi, octobre 28 2008

Bitmap, Pixels et CompactFramework

En ce moment je m'efforce (comprendre, au boulot) de décoder une image de code barres 2D QR en utilisant le Compact Framework. Dans nos péripéties des différentes librairies tierces à trouver puis tester, nous sommes tombés sur une librairie OpenSource permettant d'effectuer le travail.

Le hic, c'est que bien que cela fonctionnait pas trop mal sur Desktop, sur un PDA, les performances étaient vraiment très pauvres. En lisant les commentaires sur le forum, le problème venait de la partie du code qui chargeait l'image en mémoire. L'auteur de la librairie (qui n'a pas du essayer très longtemps sur un PDA ou penser que c'était normal que ce soit ultra lent) utilisait un classique GetPixel sur l'ensemble des pixels de l'image pour obtenir un tableau int de valeurs ARGB. Vu qu'on avait accès au code source, j'ai tenté une optimisation suite à un vague souvenir de bits lockés que j'avais lu sur MSDN une à une époque lointaine. Le code ressemble à ceci (imaginez une classe qui soit un wrapper sur un objet Bitmap pour la référence à la variable image).

       public int[][] GetPixelsLock() {
           BitmapData bData = image.LockBits(
               new Rectangle(0, 0, image.Width, image.Height), 
               ImageLockMode.ReadOnly, 
               PixelFormat.Format32bppRgb
           );
           int bpp = 4;
           int nBytes = image.Height * image.Width * bpp;

           int[][] pixels = new int[image.Width];

           for (int x = 0; x < image.Width; x++) {
               pixels[x] = new int[image.Height];
               for (int y = 0; y < image.Height; y++) {
                   int offset = (y * bData.Stride) + (x * bpp);

                   byte b = Marshal.ReadByte(bData.Scan0, offset);
                   byte g = Marshal.ReadByte(bData.Scan0, offset + 1);
                   byte r = Marshal.ReadByte(bData.Scan0, offset + 2);

                   pixels[x][y] =
                       (int)(255 << 24) +
                       (int)(r << 16) +
                       (int)(g << 8) +
                       (int)b;
               }
           }

           image.UnlockBits(bData);

           return pixels;
       }

Résultat, dans nos tests, ça va désormais 40 fois plus vite que l'originel double for appelant GetPixel pour chaque point de l'image (le sujet original).

Deux choses à savoir si quelqu'un a besoin de ce genre de truc à l'avenir :

  • sur le Compact Framework, il FAUT utiliser la même zone de Lock que la taille de l'image (le premier paramètre Rectangle) sans quoi .NET envoie bouler (ArgumentException)
  • les objets Bitmap du Compact Framework sont à priori tous chargés dans le PixelFormat Format32bppRgb, mais vu que je ne suis pas un expert là dedans, je peux me tromper

Lien d'un des articles qui m'a bien aidé : http://www.bobpowell.net/lockingbits.htm

jeudi, octobre 9 2008

Eclipse 3.4 (Ganymede) et PDT 2.0

Parce que j'ai mis du temps à trouver l'info et qu'elle mérite d'être répandue tellement c'est la foire d'installer le PDT (Php Development Tools) sur la dernière version d'Eclipse (3.4).

Set Up Eclipse PDT 2.0 On Eclipse 3.4 (Ganymede)

mardi, mars 25 2008

C#, MS Access, Zero String Length

Le titre est pas très sympa, mais vu comme j'ai galéré à trouver des infos sur le sujet (et surtout de la mise en pratique concrète, parce que les théories fumeuses des gens qui n'essaient même pas ce qu'ils conseillent, ça va 5 minutes), je me dis que ça ne coute rien d'essayer d'aider les moteurs de recherche.

Un des problèmes qui m'a occupé ces derniers jours était de déterminer si une colonne d'une table Access autorisait les chaines de longueur égales à zéro (Allow Zero String Length), le tout en C#. Plus d'infos dans la suite du billet. Bien évidemment cela répond à un besoin très précis, mais comme précisé au dessus, si ça peut aider des gens, autant que ça serve. Et, non, je n'avais pas le choix de la base de données à utiliser :)

Lire la suite...

- page 1 de 7