IkaTech

Mes humeurs technologiques, autour de Java, de l'Open Source, et de l'air du temps ...

jeudi, juillet 02, 2009

Stocker un BLOB dans Postgresql à l'aide d'iBatis

Le débat est vaste, OID ou bytea pour le type des blobs ?

Les bytea sont visiblement limités à 1Gb de taille, mais si on utilisece type tel quel on tombe sur une exception postgres.

Voici un exemple de mapping, utilisé dans le cadre de la persistance d'une pièce jointe Google Wave


Le tout est de ne pas faire figurer le JDBC type (BLOB) dans la resultmap

mardi, juin 16, 2009

Update Java 4 Apple

Ayé, plusieurs mois après la découverte d'une faille dans la partie applet, Apple dans sa grande bonté nous gratifie d'une mise à jour Java 4.

Vu le fiasco des update 2 et 3, je ne procéderais pas à cette mise à jour ...

Et de toute façon, vu que j'ai reçu ma nouvelle bécane, le dev Java sur Mac/Mac Pro c'est terminé pour moi.

So long boys ...

vendredi, juin 12, 2009

UIImagePickerController - fonctionnalités (encore) non-documentées

La méthode 'imagePickerController:didFinishPickingImage:editin' de la classe UIImagePickerControllerDelegate est notée comme obsolète (deprecated) dans le SDK 3.0 de l'iPhone (GM au moment ou j'écris ces lignes).

C'est bien joli tout ça, mais on remplace le traitement par quoi ?

Un début de réponse en allant voir la définition de la classe déléguée, on peut trouver une référence vers une méthode:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info

Bien joli, mais comment utiliser les différentes informations contenu dans le dictionnaire passé en paramètres ?

Tout simplement en regardant ce qu'il se passe après la sélection d'une photo...

Voici les paires cles/valeurs contenues dans le dictionnaire:

...

2009-06-12 13:31:26.442 xxx[7294:20b] key: UIImagePickerControllerMediaType, value: public.image

2009-06-12 13:31:38.664 xxx[7294:20b] key: UIImagePickerControllerCropRect, value: NSRect: {{0, 0}, {640, 426}}

2009-06-12 13:31:45.846 xxx[7294:20b] key: UIImagePickerControllerOriginalImage, value:

2009-06-12 13:31:56.410 xxx[7294:20b] key: UIImagePickerControllerEditedImage, value:

...


En gros, on y retrouve (dans le cas d'une image):

- le type de media (une image :) )

- la taille

- l'image originale

- l'image modifiée (après rognage par exemple).



Libellés :

mercredi, avril 29, 2009

Sortie de l'AMD Radeon 4770

Tout est dans le titre, un candidat de choix pour ma future machine de dev.

Avec les offres promotionnelles, cette carte est proposé à 99$ (!).
Visiblement, le marché des cartes à moins de 100$ semble devenir la cible privilégiée des constructeurs.

Les "hardcore-gamers" qui en ont marre de débourser 400-500EUR pour pouvoir jouer aux derniers FPS, risquent de s'intéresser de près au caractéristiques et aux performances de la petite nouvelle ...

Il reste juste à attendre la commercialisation européenne, et les drivers Catalyst pour Linux :)

Plus de détails sur: http://www.pcper.com/article.php?aid=700

Libellés :

mardi, mars 31, 2009

Java update 3 pour Mac OS

Je hais Apple. Du moins aujourd'hui. Après un update 2 Java catastrophique qui cassait la plupart des applis java (JEdit par ex.),
voilà que l'update 3 remet le couvert. Plus de JEdit ce matin, les tests unitaires d'un projet qui passaient hier soir, sont aujourd'hui en carafe.

Mais il font quoi chez Apple ? J'ai vraiment la rage et je pense que les devs java sur Apple / Mac c'est fini pour moi ...

dimanche, février 01, 2009

Pourquoi je hais la programmation sur iPhone

Ces derniers temps, je suis débordé de demandes de devis pour le développement d'applications sur iPhone.
J'envisage en fait de sous-traiter toutes ces demandes.
Tout d'abord parce que je n'ai matériellement pas le temps de toutes les traiter, et d'autre part parce que je déteste programmer en Objective-C / Cocoa-touch.

L'API Cocoa-touch est probablement l'une des plus moisies que j'ai pu voir à ce jour.
Ceci me conforte dans l'idée qu'Apple sont vraiment des rois du marketing, mais que techniquement ... certaines choses sont complètement à revoir.

Cocoa pour Mac OS X (paradoxalement un OS que j'adore), était déjà pas mal pourrie, mais son rejeton pour la programmation native sur iPhone/iPod dépasse les bornes.

Explications en quelques points ...

Objective-C, ou le coelacanthe des langages objets:

Propriétaire ou quasiment (qui d'autre qu'Apple propose de développer sur Obj-C ?)
Désuet, lourd, syntaxe parfois bizarre.
Mais bon, ce n'est qu'un langage et si jamais il est trop lourd, on peut retomber dans le C pur et dur dont Objective-C est un "super-set".
Et honnêtement, à part les 'core-users' Apple, qui programme en Obj-C ?

Cocoa-touch, pierre d'achopement:

Touffue, mal documentée (certaines fiches techniques de la doc sont "susceptibles de changer" ou "désuètes" dixit), complexe, utilisation de patterns discutables (du delegate à gogo, le key-view pas "typesafe" du tout ...).

Bref, cet API nécessite un apprentissage long et fastidieux.

Il est déconcertant de voir comme certaines portions de l'API (comme 'Core-Data') permettent de faire des trucs impressionnants en un minimum de lignes de code, et comme des fonctions triviales, comme lire un fichier MP3, sont incroyablement complexes à mettre en place.

La copie est à mon goût complètement à revoir.


API propriétaire:

Tout est dans le titre, j'adore l'Open Source, pourquoi je m'embeterais à coder avec une API proprio.
Parce que c'est tout ce que j'ai à dispo ?
Ah bon, dommage ....


Exit Java:

Autrefois, Apple fournissait un "pont" entre Java et Cocoa, ce qui permettait d'accèder aux widgets et composants graphiques de Cocoa sans utiliser Obj-C.
Exit.
L'utilisation de Java est officiellement enterrée par Apple.
En théorie, la firme rejette même pour l'instant d'avoir une JVM tournant sur l'iPhone.
En pratique, on peut trouver de bonnes JVM customs tournant sur cette plateforme.

Pire, sur Mac OS X le support Java n'est plus ce qu'il était, par exemple avec l'update 1 pour Java sur Leopard.
La plupart de mes applications importantes en Java (Idea, jEdit par ex.) ne fonctionnaient plus après cette mise à jour.
Ca fait vraiment pas sérieux.
Et c'est bien dommage, car beaucoup de personnes travaillant en Java ont des Macs.

XCode:

Autant j'adore IB (Interface Builder), qui est innovant, simple et intuitif à utiliser, et puissant (le resize des fenêtres et des composants, trop bon !), autant XCode est lourd.

Le fenêtrage est bizarre, mais bon on peut s'y faire.

L'autocomplétion, est assez aléatoire, mais il faut dire qu'avec les noms de méthodes à rallonge de Cocoa, c'est pas évident de s'y retrouver :)

La gestion de la documentation est bonne, excepté que le contenu est parfois succint.
Il manque vraiment des exemples et des extraits de code.

Les processus de compilations ont visiblement des fuites, au bout d'un moment la fermeture d'XCode est inévitable.
q
Concernant les outils de profiling et de test, ils sont bon mais un peu opaques. Il est difficile de savoir quels sont les procédés mis en place pour tester.
Mais dans l'ensemble, ça profile.

Ce que je regrette le plus, c'est de ne pas avoir de bons outils de refactoring et de gestion de code comme dans Idea par exemple.

Idea etant probablement ce qu'il se fait de mieux, toutes catégories confondues, n'en demandons pas trop à Apple de ce coté là...


Tous ces points font que je m'embête royalement à programmer avec Cocoa-touch sur iPhone.
La machine est géniale mais l'environnement de développement est vraiment un frein, et ce ne sont pas les jolis keynotes d'Apple (sans Jobs :( ) qui me feront dire le contraire.

C'est décidé, et même si son avenir n'est peut-être pas aussi brillant que celui de l'iPhone, je reviens à mes premières amours open-source, et pour les plateformes mobiles, je me spécialiserais désormais sur Android !

Libellés :