Friday, 25 February 2005
 Quand j'ai vu les premières images sur la nouvelle série 'Battlestar Galactica' (en) il y a deux ans (du concept art des vaisseaux), je me disais qu ça allait certainement encore être une de ces séries de science fiction débiles (non, je ne citerai pas Andromeda). Il faut dire que si j'ai regardé la série originale de 1980 (en), c'était parce-qu'à l'époque la science fiction était très rare à la télé...
Pour moi, la nouvelle série qui passe en ce moment sur la chaîne SciFi (ah, les joies de la télé par satellite  ) se place directement dans le panthéon des meilleures séries de Science fiction à côté de Stargate/Stargate Atlantis (fr). Petit résumé de l'histoire: les Cylons, robots dotés d'intelligence et jusque-là utilisés pour aider les hommes se révoltent. Après une bataille sans issue, ils s'exilent sur une autre planète et on en entend plus parler. Jusqu'au jour où ils arrivent en masse, et réussissent à exterminer la race humaine en moins d'un jour. Toute la race humaine? Non, un petit groupe réussit tout de même à s'arracher momentanément de l'emprise des Cylons.
D'accord, c'est assez classique... mais c'est dans le détail que ça devient intéressant. À noter aussi que le scénario colle pile poil à la série originale. Ce qui fait vraiment la différence, c'est la réalisation technique parfaite, le jeu convaincant des acteurs et cette atmosphère oppressante constante. Et c'est là la grande réussite de la série: contrairement aux autres séries du même genre, le poids qui pèse sur les quelques survivants de l'humanité est carrément palpable. Le rythme est soutenu, les évènements sont surprenants et on s'en trouve scotché dans son siège.
Parcontre, là où Stargate brille souvent par son humour, on trouvera ici beaucoup de sérieux - mis à part avec quelques personnages qui réussissent par moment à détendre un peu l'atmosphère, on ne sourit pas souvent. Mais vu le thème, ce serait un peu bizarre si ces quelques survivants passaient leur temps à se fendre la poire!
Conclusion: enfin du vrai Space Opera (fr) dans toute sa splendeur. À déguster absolument sans modération
Monday, 21 February 2005
Par rapport à mon billet précédent, voici deux captures d'écran de l'interface d'administration (attention, encore tout en allemand...):
Liste d'articles:
Bibliothèque médias:
Dans la bibliothèque de médias, il est même possible de choisir la taille des miniatures pour la liste
Les deux dernières années, j'ai travaillé sur le système E-Commerce XenaShop de mon ancien employeur, Metrix Internet Design GmbH. Lors de mon départ en Septembre, il était clair que le projet serait enterré, vu que Metrix cherchait à se repositionner plus du côté graphique que du développement. C'est là qu'ils m'ont fait un cadeau énorme: ils m'ont cédé tous les droits sur le système
Seul bémol, le XenaShop est intégré dans Xena (de), un framework qui gère l'authentification, les droits des utilisateurs et les applications installées chez le client. La premiere chose à faire était donc de séparer le XenaShop de Xena, pour qu'il devienne un produit à part entière (nom de code: Syrocco  ). Je travaille dessus depuis décembre, et cette semaine ma cliente du Hainlin-Shop (vente d'ustensiles de cuisine haut de gamme) va être la première à profiter des nouvelles fonctions de l'administration. Le système est maintenant entièrement indépendant de Xena, ce qui m'a permis de simplifier beaucoup de choses. La bibliothèque de médias, par exemple: celle intégrée dans Xena devait pouvoir gérer les images de tous les programmes installés, mais ne pouvait pas gérer des données multilingues. La nouvelle bibliothèque de médias a une arcvhitecture plus simple, mais offre bien plus de possibilités.
On peut catégoriser les médias, et quand on veut par ex. utiliser une image pour illustrer un produit, la bibliothèque en crée une copie et une miniature, en redimensionnant l'image et créant la miniature aux tailles définies pour le type d'article. Un panneau d'options permet de changer ces tailles au cas par cas, et d'autre part d'ajouter un titre et une description en plusieurs langues pour pouvoir les afficher dans la boutique selon la langue qu'a choisi le visiteur. Pour l'occasion, j'ai aussi mis à jour le générateur de formulaires, qui affiche maintenant une miniature de l'image choisie avec quelques informations utiles. Très pratique aussi: la bibliothèque garde maintenant une trace de toutes les copies d'une image, et permet d'en éditer les données à tout moment.
Il me faudra encore un peu de temps avant de pouvoir présenter la première version officielle avec une installation de démonstration en ligne - je pense que c'est possible jusqu'en avril de cette année. Le plus difficile reste encore à venir: l'internationalisation de l'interface d'administration (eh oui, c'est encore entièrement en allemand  )
Wednesday, 16 February 2005
Traduction du billet 'Welcome to patPortal, Wiegi' de php-tools:
Depuis hier, Daniel a rejoint l'équipe de php-tools. Participant à la traditionnelle soirée programmation chaque mardi, il a d'ailleurs faite une entrée haute en couleurs en contribuant une nouveau filtre de réponse à patPortal. patPortal est un système de création d'applications Web basé sur un ensemble de composantes interconnectées. La grande particularité du projet est le très haut niveau d'abstraction - en effet, on n'accède par ex. jamais directement aux données d'une requête (GET, POST...), seulement par le biais d'un objet de requête. Le grand avantage étant que la même interface peut être utilisée pour des applications basées sur le protocole HTTP, sur des requêtes SOAP ou encore des applications CLI (ligne de commande).
Le même principe s'applique donc aux réponses - toutes les données sortantes de l'application passent par un objet de réponse. Le filtre de réponse de Daniel, StripWhitespace, permet d'enlever les espaces des données sortantes avant qu'elles ne soient envoyées.
Bienvenue donc à Daniel! Vous pouvez le joindre par son adresse wiegi[at]php-tools[dot]net (en anglais, de préférence, vu qu'il est allemand comme tout le reste de l'équipe - sans me compter moi, bien sûr...).
 Traduction du billet 'New release of PEAR:: Date_Holidays' de php-tools:
Carsten a publié une nouvelle version de Date_Holidays, la v0.13.0. Cette librairie disponible dans PEAR est spécialisée pour les calculs de jours fériés ou autres jours spéciaux.
Carsten est aussi en train d'écrire un article à ce sujet pour le prochain numéro du International PHP-Magazine, ce qui lui a donné l'idée pour quelques nouvelles fonctionnalités:
- Il a adapté les calculs existants et ajouté un nouveau driver qui calcule les anniversaires des gens qui ont bien voulu nous donner leur date de naissance (voir mon billet précédent à ce sujet).
- Il a ajouté des objects filtre qui permettent de filtrer les dates calculées à l'aide de blacklists, whitelists et filtres composites.
Stéphane a une fois de plus pu contribuer en conseils et relecture de l'article
Pour tous ceux qui ont déjà été confronté au calcul de dates un peu spéciales, cette librairie et l'article à paraître sont un bon point de départ pour se rendre la vie plus facile. D'après le International PHP Magazine, l'article de Carsten sera disponible online un peu après la parution du magazine.
Saturday, 12 February 2005
Ca y est, j'ai finalement pris le temps de donner un design digne du grand Argh à ce blog. Il reste encore pas mal de petits détails à corriger, et j'ai encore des petites idées pour rendre la chose plus attrayante, mais là je crois que je vais aller faire des crèpes au Sarrazin bien méritées  Bon weekend à tous!
Friday, 11 February 2005
 Traduction du billet 'The day you were born ...' de php-tools:
Pour tous ceux d'entre vous qui font partie des développeurs PEAR: Carsten aimerait que vous lui donniez votre date et lieu de naissance pour son projet Date_Holidays. Il est en train de programmer un Driver pour calculer les anniversaires de tous les contributeurs de php.net dans le cadre d'un article qu'il écrit pour le magazine PHP international.
Il a besoin de votre:
- nom
- date de naissance
- pays
Envoyez-lui un email avec ces informations à l'adresse suivante: luckec -at- php -dot- net. Merci d'avance!
Thursday, 10 February 2005
Pour un design sur lequel je suis en train de travailler, il me fallait une texture un peu spéciale: celle d'un mur de sable tel qu'on peut en trouver a Coober Pedy, en Australie, dans ce village minier où une grande partie de la population vit en sous-sol dans des galleries. Et pour bonne raison, comme Coober Pedy est la capitale mondiale des Opales ( exemples), et qu'il fait meilleur en sous-sol (environ 21 degrès presque constants) comme c'est en plein milieu d'un désert
Un ami sur place, gERD, m'a donc pris des clichés dans une de ces galeries et j'en ai fait une texture pour le design en question (je pourrai le montrer dès qu'il sera online), et suis tombé sur quelques surprises. D'abord, même si on comprend bien les effets de calque dans Photoshop et qu'on sait comment ils fonctionnent, on reste parfois pensif quand on voit le résultat (cliquer pour télécharger la texture en taille réelle):
Comment en suis-je arrivé là? Eh bien la texture du mur de sable n'avait aucun relief, donc j'ai dupliqué le calque, et appliqué le filtre 'Emboss' qui fait ressortir les aspérités. Ensuite, je voulais que les deux couches se confondent pour créer du relief. Simple... mais c'est là que j'ai choisi l'effet 'Color Burn' (désolé, je n'ai que la version anglaise de Photoshop) et que cette texture bizarroide de métal sanguinolent m'est apparue. Maintenant je sais comment ils ont fait les textures dans Doom III
Mais je n'étais pas au bout de mes surprises - comme ma texture va être utilisée pour le fond du site, il fallait qu'elle puisse se répéter. Pour cela, j'ai dû la préparer un peu, et c'est là que m'est apparu ceci:
Aaaah, j'adore le graphisme
Wednesday, 9 February 2005
 Un site auquel je suis abonné depuis bientôt deux ans, et qui ne cesse de m'émerveiller: GameWallpapers. Des Fonds d'écran tout autour de jeux PC, Playstation ou Xbox, mais d'une qualité vraiment pas ordinaire... Chaque fond d'écran est crée par des artistes de l'entreprise qui se cache derrière, Flamy Frog, en se basant sur le concept art du jeu. Chaque fond d'écran est disponible de 800x600 à 1600x1200, et il y en a même pour écran double ou écran large.
Une grande partie des fonds d'écran sont gratuits, mais la plus grande partie est payante - et je ne le regrette pas une seconde, les mises à jour étant très fréquentes (au moins 1 fond d'écran tous les 2 ours).
Sunday, 6 February 2005
J'ai crée une nouvelle catégorie rien que pour les traductions du blog de php-tools, comme-ça c'est bien plus simple de les partager des autres billets dans la catégorie PHP, et vous pouvez vous y abonner exclusivement
Sur mon site perso, il y a aussi du nouveau - j'ai enfin eu le temps de finir la liste de mes références, j'ai rajouté les captures d'écran manquantes et mis à jour toutes les infos disponibles sur le site.
Thursday, 3 February 2005
Traduction du billet 'Services_Ebay 0.11.0 released' de php-tools:
Stéphane a publié une nouvelle version de Services_Ebay, avec deux nouvelles fonctionnalités et plusieurs méthodes. La première fonctionnalité est le système de cache des réponses du WebService d'eBay: intégré dans les modèles de classes de Services_Ebay, ceci permet de mettre les réponses des requêtes faites à eBay dans un cache local pour éviter les temps de transfert souvent assez longs de ces requêtes.
L'utilisation du cache est très simple:
<?php
$session = Services_Ebay::getSession($devId, $appId, $certId);
$session->setToken($token);
// choisir le cache local sous forme de fichiers
$userCache = Services_Ebay::loadCache('Filesystem', array('path' => './cache'));
// le fichier cache expirera après 15 minutes
$userCache->setExpiry('Static', 15);
// utiliser ce cache pour tous les modèles utilisateur
Services_Ebay_Model_User::setCache($userCache);
// charger un modèle d'utilisateur
$user = Services_Ebay::loadModel('User', 'superman-74', $session);
if ($user->isCached()) {
echo 'donées dans le cache';
print_r($user->toArray());
} else {
echo 'requête des donées online';
$user->Get();
print_r($user->toArray());
}
?>
Après avoir instancié un nouveau cache, on définit la durée de validité des données enregistrées. Pour l'instant, il est seulement possible de définir une durée fixe, mais comme les vérifications de durée sont des objets, il est facile d'en ajouter d'autres. Stéphane compte ajouter un objet de vérifiaction de validité qui diminuera automatiquement la durée du cache plus la fin de l'enchère approche. Il pense aussi ajouter un cache qui enregistre les données dans une base de données au lieu de fichiers, pour permettre un stockage plus flexible.
La deuxième fonctionnalité (avec un peu d'aide du fabuleux Adam Trachtenberg) est l'implémentation de la recherche de produits. Disponible sur eBay sous forme de fomrulaires permettant de rechercher des produits par une série de critères de recherche, Services_Ebay permet maintenant d'y accéder de manière très simple. eBay offre deux manières d'y accéder:
- par GetProductFinder, qui livre du XML contentant les informations nécessaires sous forme brute (champs de formulaire et valeurs pour la catégorie de produits choisie)
- pat getProductFinderXSL qui livre la feuille de style XSL qu'eBay utilise pour le rendu du HTML à partir des données XML brutes.
Comme l'accès à ces données se fait par un modèle dans Services_Ebay, il est tres simple d'y accéder:
<?php
$session = Services_Ebay::getSession($devId, $appId, $certId);
$session->setToken($token);
$ebay = new Services_Ebay($session);
// charger la feuille de style (enregistrée localement, ce serait trop
// long de la charger a chaque fois)
$xsl = file_get_contents('product_finder.xsl');
// charger la recherche de produits et l'afficher
list($productFinder) = $ebay->GetProductFinder(1909);
echo $productFinder->render($xsl);
}
?>
Ce petit bout de code affiche un formulaire incluant un peu de javascript, permettant à l'utilisateur de choisir ses produits à partir des critères disponibles.
Cette nouvelle version est aussi la première publication incluant des parties contribuées par Carsten Lucke. Carsten a ajouté des méthodes spécifiques pour les enchères et utilisateurs Néerlandais, ainsi que les modèles nécessaires.
|