Archive for the ‘français’ Category

La table de nuit la plus cool du monde …

… C’est la mienne 🙂
7F030846-23C3-41CD-84C1-16CEBBF6B6C6.jpg

Le pied

Une SGI Indigo avec une IP20, un CPU R4000SC à 100MHz, 32Mo de RAM, la board graphique XZ, et un disque de 1Go.

Je l’ai achetée avec son écran de 19”, son clavier blindé, et la souris.

L’OS est IRIX 6.5.20, si je me souviens bien. Ca fait un moment que je ne l’ai pas démarré. Beaucoup trop bruyante.

je m’en suis servie plus d’un an en tant que machine principale en 2000-2001. La RAM manquait pour Netscape alors celui-ci tournait sur un serveur linux derrière, et était déporté avec X11 sur l’Indigo.

L’Indigo est célèbre pour avoir été utilisé dans la synthèse du T1000 liquide dans Terminator 2.

La tablette

La tablette est une slab, une NextStation N1100.

Dedans il y a un 68040 à 25MHz, de la RAM et un disque dur et une boîtier en magnésium (je crois). Je ne l’ai jamais démarrée, sans clavier, sans écran, impossible ; c’est encore en tablette qu’elle me sert le mieux …

C’est sentimental de toute façon. Je me souviens avoir lu jusqu’à l’usure le SVMMac annonçant la sortie de la première NeXT et je me suis dit “Un jour elle sera mienne, oh oui, Un jour elle sera mienne”.

Bref, elle ne tourne pas. C’est pas grave. Je suis en train de taper ce texte sur la version actuelle de NeXTstep, Mac OS X.

L’ensemble

L’accord couleur n’est pas parfait. Et je sais que Significant Other ne l’aime pas beaucoup.

Mais c’est le top du top de 1990. J’aimais déjà beaucoup les machines à cette époque (j’avais 13 ans). Surtout celles que je pouvais pas me payer ; La NeXTStation valait $5 000 et l’Indigo dans les $20 000.

Advertisements

EC2 : La tentation de puissance

Amazon Elastic Computing Cloud, aka EC2, mon nouveau jouet.

En quelques clics, on dispose d’une puissance de feu capable d’affronter à du Slashdotting, du Facebooking ou du Digging.

Jusqu’à récemment, EC2 était à la fois sexy et limité.

Les deux manques (d’avant)

Pas d’IP statique : il fallait utiliser un provider de DNS dynamique pour maintenir le lien avec le monde extérieur (oui, comme avant, avec l’ADSL de Francetélécom).

Pas de stockage en mode bloc persistent : La plus grosse instance (octo-core, 15Gig de RAM) a bien 1,5 To de stockage, mais en cas de arrêt de l’instance (volontairement du locataire ou involontairement en cas de défaillance matérielle sur la machine qui héberge la machine virtuelle), on perd tout.

Heureusement, un écosystème s’est développé pour pallier aux manques. Elastic Drive, par exemple, est un module FUSE qui permet de monter un bucket S3 en système de fichier par bloc.

Du coup pour héberger une base de donnée, on crée une partition RAID 1 : d’un côté la partition non persistente, mais performante de la machine EC2, et de l’autre, lent mais fiable, le stockage sur S3.

En cas de crash, le RAID est reconstruit à partir du S3.

Ah non, ça ne manque plus …

On peut maintenant avoir des IP statiques, et c’est implémenté avec beaucoup d’élégance. Les IPs sont décorrellés des machines virtuelles, et on peut faire pointer une IP d’une machine à une autre instantanément. Les IPs statiques sont limités à 5 par compte AWS, et coûtent $0.01 lorsqu’elles ne sont pas utilisées/

Le Persistent Storage arrive lui aussi. Des partitions (jusqu’à 1To) peuvent être attachées à n’importe quelle instance EC2 (pas de partage toutefois).
On peut ensuite en faire des snapshots sur S3.

How cool is that ?

Le système est encore en closed beta, j’attends avec impatience mon invitation pour tester le service.

Pour quels usages ?

La souplesse

Le prix de la plus petite instance par mois est de 45 Euro. Pour une machine de la puissance d’une dédibox vieux modèle.
Donc pas vraiment rentable en soi.

Mais, on y gagne la souplesse. Si je m’y suis bien pris, si j’ai un pic de trafic (durable ou non) je peux en quelques minutes augmenter le nombre de mes serveurs et donc la charge que peut encaisser mon site/service.

Et encore mieux, je peux diminuer le coût de mon infrastructure si la réalisation de mon business plan n’est pas aussi réussie 🙂

Et il ne faut pas négliger tous les coûts annexes lorsqu’on installe un cluster de machines : il faut des switchs (redondants) des routeurs (redondants) de quoi faire des backups (redondants), et aligner la force de frappe en fonction de la charge prévue.

Cette souplesse ne vient pas toute seule, il faut développer et/ou des outils de management, pour faciliter le déploiement. Ces deux articles abordent le déploiement rapide.

On peut automatiser encore plus, en allouant ou libérant des machines en fonction de la charge. Les serveurs d’application, souvent déployés en share-nothing (comme Ruby on Rails) sont lancés facilement (pas d’état à transférer).
La solution Scalr propose tout ça. Ça a l’air super cool. Mais j’ai pas encore pu tester, l’appli PHP de contrôle plantent sur mon portable …

Un besoin spontané

Je me suis mis récemment à utiliser tsung, l’outil de load testing de Process-One. (oui, ceux qui maintiennent ejabberd)

Un soft erlang/OTP qui permet de rejouer des sessions HTTP préalablement enregistrée avec son recorder. C’est un proxy qui génére le fichier de configuration.

Tsung permet de faire des “attaques” distribuées sur plusieurs machines.

Sexy, mais mon MacBook Pro derrière sa ligne ADSL ne sera jamais aussi violent qu’un serveur dans un datacenter.

J’ai donc créé une Amazon Machine Image (à partir d’une Ubuntu 8.04) qui va exécuter Tsung à partir d’un fichier passé en paramètre :


ec2-run-instances ami-0146xxx -t m1.large -k cle  -f tsung.xml.zip

Le fichier est décompressé et tsung se lance. Une fois le testing fini, le rapport est généré, et disponible via le navigateur.

Avec la ligne ci-dessus, j’ai un quadcore avec 8 Go de RAM dans un datacenter d’Amazon qui travaille pour moi.

Je vais probablement publier cette AMI quand je l’aurais fignolée, et j’espère pouvoir la configurer de manière lancer directement un cluster de machines qui vont se répartir la charge.

Pour conclure

Ce serait bien si la solution pouvait venir en Europe (S3 y est bien) … Profitons déjà du dollar faible, et de l’énorme marché américain :p

Et j’ai hâte de tester PersistentStorage !

Mulder ouvre son blog !

Mulder, aka David Robin, retente l’expérience du blog.

Il y cause Java, Talend, LDAP, que du lourd 🙂

C’est par là !

[Updated] Optimiser la clope

[Update : après 2 jours]

Voici les raisons qui ne sont pas celles pour lesquelles je fume

  • devoir sortir sous la pluie venteuse de janvier
  • ne plus aller au comptoir d’un café

Voici les raisons pour lesquelles je fume

  • dépendant à la nicotine
  • dépendant au geste
  • dépendant au café-clope

La solution :


Image 10.png

Disponible aussi en noir.

On met une cartouche de nicotine parfumée à l’intérieur, on aspire, et on récupère de la vapeur d’eau avec de la nicotine.

Pas de fumée, pas de tabagisme passif ; ton voisin te remercie – et toi aussi tu te peux remercier !

Combien ?

Allez voir sur le site. Ca ne se rentabilise pas immédiatement, vu que la clope coûte 90 €.

Mais les recharges valent moins de 2 euros, et sont à peu près équivalentes à 1 paquet de clope.

Et alors ?

C’est carrément positif.

On sent bien le kick de nicotine, et le café passe très bien avec !

Le truc pèse assez lourd (y a une batterie qu’il faut recharger).

Le goût n’est pas terrible, mais n’est pas horrible non plus.

Mais en face de tous les avantages (listés ici ou pas), au final, le goût ne peut pas lutter.

Deux jours après

Convaincu … Je n’ai plus envie de fumer une clope.

La technique : faire des aspirations un peu forte au début, et dès que la vapeur, y aller doucement … et s’arrêter quand ça gratte la gorge 🙂

Ma recharge a duré 36 heures ; je viens de la changer.

Et la santé ?

Un médecin néo-zélandais actuellement conduit une étude. Les résultats intermédiaires sont disponibles.

Le modèle utilisé est celui de Ruyan, dont la Sedansa n’est qu’un rebranding.

Le Dr Murray Laugesen nous dit :

The Ruyan® e-cigarette is designed to be a safe alternative to smoking, and on examination from a number of aspects, appears to achieve this aim.

Géopolitique

Les ecigarettes sont été inventées, fabriquées et vendues par des entreprises chinoises.

L’idée d’une cigarette qui soit sans danger pour la santé est évidemment un truc qui est censé plaire à tout fumeur. Les perpectives d’un marché captif de 30% de l’humanité (chiffre au pif) qui est en train de se faire chasser de partout!

Philip Morris et les autres américains qui tiennent actuellement le marché devraient s’inquiéter. L’âge d’or (et de goudron) est fini, les chinois attaquent de front.

(Et je les en remercie)

Auth me on Jabber

CAS est un service très populaire permettant de mettre en place le Single Sign On, avec des librairies clientes pour la plupart des langages.

On peut facilement rajouter des handlers d’authentification.

En voici un très rapide, permettant de s’authentifier sur un service Jabber.

Installation :

Uniquement compatible CAS v3.

Installez ce bout de xml dans le deployerConfigContext, dans la liste des AuthHandlers :


<bean class="com.ohmforce.cas.JabberAuthenticationHandler">
 <property name="jabberHostname" value="DOMAIN"/>
</bean>

Copiez jabber-cas.jar.zip et la jar de Smack, relancez la webapp CAS et c’est tout.

Pour se logger sur vos applications CASifiées, vos utilisateurs utiliserons leur compte défini dans sur le domaine indiqué par jabberHostname, le mal nommé.

Le code

Y en a tellement peu que ca tient ici.


package com.ohmforce.cas;
import org.jasig.cas.authentication.handler.AuthenticationException;
import org.jasig.cas.authentication.handler.support.AbstractUsernamePasswordAuthenticationHandler;
import org.jasig.cas.authentication.principal.UsernamePasswordCredentials;
import org.jivesoftware.smack.XMPPConnection;
import org.jivesoftware.smack.XMPPException;

final public class JabberAuthenticationHandler extends
        AbstractUsernamePasswordAuthenticationHandler {
    private String jabberHostname;
    @Override
    protected boolean authenticateUsernamePasswordInternal(
            UsernamePasswordCredentials credentials)
            throws AuthenticationException {
        XMPPConnection conn = new XMPPConnection(jabberHostname);
        try {
            conn.connect();
            conn.login(credentials.getUsername(), credentials.getPassword());
        } catch (XMPPException e) {
            log.error("Failed", e);
            return false;
        }
        finally{
            conn.disconnect();
        }
        return true;
    }

public void setJabberHostname(String server)
{
    jabberHostname=server;
}
public String getJabberHostname()
{
    return jabberHostname;
}

}

Ping me on Jabber

Je suis en train de faire migrer Ohm Force d’IRC à full Jabber.

Ca marche bien, mais il manque une fonctionnalité indispensable :

Que ca bippe le client quand dans une chatroom, on cite mon nickname.

Ni iChat ni Spark ne l’ont.

iChat

Pour iChat, c’est facile avec AppleScript:


using terms from application "iChat"
    on chat room message received theMessage from theBuddy for theChat
        set theUser to "VOTRE NICKNAME"
        if theMessage contains theUser then
            say theUser
        end if
    end chat room message received
end using terms from

Tout ça dans le script editor, on enregistre dans le rep ~/Library/Scripts/iChat sous le nom de beep.scpt et ensuite on configure comme ça :

Configuration d'iChat

Spark

Pour Spark, j’ai du écrire un plugin. Rapide, j’ai passé plus de temps à trouver comment le compiler qu’à l’écrire.

J’ai pris le son bell.wav de Spark, et je l’ai embarqué dedans.

Pour le télécharger, c’est ici :
beep.jar.zip

Il faut dézipper, et glisser la jar dans le répertoire plugins de Spark.

Sur Mac et Linux, cherchez dans le répertoire Spark à la racine de votre compte. Sur Windows … j’en sais rien.

C’est dans la même licence que Spark, et si vous voulez le code source, contactez-moi.

(oui, je dois toujours configurer mon serveur SVN pour l’accès public)

Pour finir :

Une fonctionnalité qui complémente bien celle-ci est l’autocomplétion des nicknames. Mais c’est beaucoup plus de travail, donc c’est pour plus tard !

Pour l’instant, dites à vos amis de choisir des nicknames plus courts.

Livre : The Big Switch de Nicholas Carr

J’ai reçu une copie presque finale de The Big Switch de Nicholas Carr.
bigswitchcover2thumb.jpg
Je lis le blog de l’auteur depuis quelques temps ; j’aime bien son style et les sujets qu’il aborde.
Et comme il avait une centaine d’exemplaire de son dernier livre qu’il filait aux 100 premiers qui demandait, j’ai reçu mon livre.

Carr compare l’evolution de l’apparition et la diffusion de l’électricité avec celle de l’informatique aujourd’hui. Les usines, avant que le réseau électrique ne soit partout, produisaient elles-mêmes leur électricité, opération tellement critique que l’idée de ne pas maîtriser sa production et donc sa qualité semblait absurde.

Pour l’informatique, c’est pareil. Pour l’instant, beaucoup d’entreprises ont leur propre datacenter, et doivent employer des divisions entières d’administrateurs pour maintenir leur système d’information en état de fonctionnement.

On va vers le utility computing illustré par Amazon EC2 et S3, où l’on loue des machines virtuelles à l’heure en quelques minutes, et un espace de stockage virtuellement infini. Du coup on ne s’occupe plus de SAN, switch, RAID et compagnie. Sun fait un mouvement dans ce sens, en se débarrassant de ses data-centers “internes”

Dans toute cette première partie, j’ai trouvé étrange l’absence de mention sur Multics, le système d’exploitation conçu entre 1965 et 1975 conjointement par General Electric, Bell Labs et le MIT.

Une idée derrière MULTICS était de fournir de la puissance informatique, autour de Boston (pour commencer) aux entreprises. Elles aurait une prise dans le mur pour y connecter un terminal, et exécuter leur programmes sur le serveur distant.

Idée probablement trop précoce et globalement un échec commercial, avec une centaine de clients (plutôt heureux, toutefois).

L’auteur aborde aussi les communautés (le village global n’existe pas), les problèmes de vie privée (tant pis, c’est trop tard).
Et Google. Si on doit voir apparaître une intelligence artificielle, c’est chez Google en premier. Et cela semble obséder Page et Brin.

Une bonne lecture !

VDM : Ohm Force dans les magasins

La distribution des logiciels Ohm Force

Ohm Force vend ses logiciels en ligne. Un business model facile à mettre en place quand on vend du logiciel, pas de stock, pas de contrat. Une bande d’ingénieurs et autres geeks est capable de mettre ça en place.

En plus le coût est très bas : la location d’un serveur, et le pourcentage que nous prend la banque pour traiter les paiements par carte de crédit.

La communication coûte aussi, mais on a toujours fait au moins cher, une newsletter, parfois de la pub et des groupbuys. Notre image et nos produits plaisent, et c’est pas pour rien qu’on est toujours là 7 ans plus tard !
(La communication, ça va changer bientôt avec l’arrivée d’un gars dont ce sera le boulot !)

Les distributeurs

Du coup, une idée qui revenait régulièrement dans les premières années d’Ohm Force était d’obtenir un contrat avec un distributeur qui prendrait en charge la communication, la force de vente, la fabrication du packaging et des DVD. On profite aussi de ses entrées dans les magasins de musique du monde.
La contrepartie, c’est qu’Ohm Force ne touche que 25% du prix de vente, mais on compense avec le volume.

Voilà l’équation simplificatrice :

  • en ligne : peu de ventes, beaucoup de sous par ventes

  • en magasin, via le distributeur : beaucoup de ventes, peu de sous par ventes

La théorie est séduisante !

Mais c’est aussi faire un pacte avec le diable. Je simplifie encore un peu, mais passer par un distributeur, c’est signer un contrat standard réalisé par les avocats américains du distributeur. Le distributeur en question, c’est le plus gros du marché de la musique.

Le contrat contient un nombre de clauses terribles, avec en particulier l’interdiction, pour nous, sur le site web de faire de la concurrence avec les vendeurs de nos produits.

Donc pas d’offres promotionnelles sur notre site, on est obligé de vendre au même prix que les vendeurs retail. Avec une différence, ils vendent une boite, alors que nous on ne vend que du téléchargement.

Et il y a pire. Par contrat, on est obligé de vendre au MSRP (Manufacturer’s Suggested Retail Price), alors que les magasins peuvent descendre plus bas, au MAP (Minimum Advertising Price) et communiquer dessus. Et parmi les magasins, il n’y pas que les magasins de Pigalle, il y a aussi les revendeurs qui ont une présence en ligne.

Du coup, les plugins qui sont partis dans le circuit de distribution pouvaient être acheté en ligne moins cher ailleurs que chez nous.

Situation peu agréable, mais on va avoir du volume !

Ah non. Pas de volume. Ventes ridicules. Apparemment le distributeur a eu des problèmes avec SAP. Ce dernier disait qu’il n’y avait pas de stock, du coup les magasins ne pouvaient pas commander, alors que les boites s’entassaient dans les entrepôts. Ceci dit, on ne parle pas gros volume, la fabrication initiale était, si ma mémoire est bonne, que 1000 unités.

Et si on veut en sortir, c’est simple, le distributeur demande au développeur de racheter tous les invendus, (et tu pleures ton cash-flow)

La “Vente Download en Magasin”

Donc, pas de distributeur pour Ohm Force. La partie précédente ne s’appliquait pas directement à Ohm Force, mais à la société anglaise avec qui Ohm Force avait co-développé des instruments. Ohm Force touche des royalties.

Toutefois il est vrai qu’au bout de la chaîne, il y a le magasin, avec des vendeurs qui ont parfois très envie de vendre nos logiciels. On a déjà eu des requêtes de magasins qui achetaient sur notre site des plugins pour le compte d’un client.

L’idée nous est arrivée, il y deux ans. (oui, sur certains sujets, Ohm Force n’est pas très réactif)

On fait des DVD qui contiennent tous nos plugins, un joli présentoir, que le vendeur dispose dans son magasin.

Lorsque le client dans le magasin veut acheter nos plugins, il prend le DVD, et le vendeur se connecte sur une application web hébergée par Ohm Force, pour générer le numéro de série. Derrière on garde la trace de l’achat, et on envoie une facture regroupant toutes les ventes du mois.

Le vendeur peut régler directement sa facture avec sa carte de crédit sur l’application.

Les avantages

Le magasin n’a pas besoin de stock (sinon les DVD, mais ils sont dans une petite pochette carton).
Il ne paye que ce qu’il a effectivement vendu, et n’a pas besoin de retourner les invendus, donc le cash-flow s’en trouve bien amélioré.

De notre côté, le contrat qu’on signe avec les vendeurs, est souple quant aux possibilités de promotions (des deux côtés d’ailleurs). Le coût de fabrication des DVD est minime, et on a un bon suivi des ventes.

Et pour finir, on enlève le middleman et sa part de 40% sera répartie entre nous et les magasins. Donc plus d’argent pour toutes les parties.

C’est du win/win !

Start small, scale later

L’application est depuis hier en phase de test. C’était mon travail dans le projet, j’aborderai dans un prochain post le côté technique – c’est une application JRuby on Rails hébergée sur un serveur GlassFish.

Nous avons quelques magasins qui sont très intéressés. Sur la côte Est des USA, sur la côte Ouest, et évidememnt, en France.

On va commencer en douceur, en commençant par la France, sur Paris, pour pouvoir discuter avec eux facilement et physiquement.

Est-ce que ça va marcher ?

Ohm Force y croit beaucoup !

PS : si vous avez un magasin de musique, et que ça vous intéresse, envoyez un mail sur contact@ohmforce.com avec VDM dans le sujet.

NetNewsWire gratos !

Le meilleur lecteur de feed vient de voir son prix baisser de $30.

Téléchargez-le et utilisez-le (achetez un mac si nécessaire)

Outre son interface très sympathique, il est possible de le synchroniser avec NewsGator, qui propose une interface web pour l’iPhone. Et je ne peux pas le dire mieux que Caféine sur twitter : “NG iPhone do POWNZ :)”

Bonnes résolutions

Pour commencer, bonne année et meilleurs vœux pour cette nouvelle année !

Les résolutions professionnelles (les autres, je les garde pour moi)

Exercice obligatoire en cette période de l’année, une liste de résolutions. Avec un bilan en fin d’année 2008 (c’est ma première résolution, tiens, faire un bilan à la fin de l’année)

MangerVite sur mon iPhone

Peu de temps l’année passée pour fignoler MangerVite …

Toutefois une version iPhone me semble super indispensable, et j’ai envie de faire un peu de développement web pour cette plate-forme.

Parenthèse sur l’iPhone : pouvoir lire ses flux RSS dans le métro, priceless !
En bon utilisateur de NetNewsWire, j’apprécie l’intégration avec le version iPhone de NewsGator : mes flux sont synchronisés entre le téléphone et le MacBook Pro, et c’est bien pratique 🙂

XMPP

Je vais continuer à travailler dessus. Un client développé avec Jiggy ? (oui, toujours pour iPhone, il est vrai que je suis assez emballé par ce téléphone).

Je vais aussi, mais c’est plus difficile, continuer de convertir du OhmMan à Jabber, pour finir par me débarrasser d’IRC. (let’s kill this beast !)

J’ai installé un ejabberd sur un serveur d’ohmforce, avec authentification LDAP, et remplissage automatique du roster avec la liste des OhmMen. Il me reste des problèmes d’encodage à régler avec la passerelle IRC, mais vu que j’ai corrigé le problème sur cestari.info, y a pas de raisons 🙂

Sur le protocole, il faut que je bosse sur pubsub, vu que j’ai pas réussi à faire tourner quoique ce soit d’intéressant (les exemples XMPP4R ne tournent pas avec ejabberd pre-2.0.0)

Java

  • Evaluer GlassFish

  • Alfresco, en repository de documents avec workflow, multilingue et versionning, le tout accessible en ReST. Sexy beast. Il faut que je passe du temps dessus.

  • Grails et Groovy … je ne sais pas. J’étais assez emballé, jusqu’à ce que je m’y mette un peu. Le temps perdu par l’exécution des scripts (oui, il faut bien qu’elle démarre, cette JVM, et JRuby a le même problème) m’a bien refroidi, et je trouve la syntaxe de ruby tellement plus agréable …

Erlang

Faut que je repasse un peu de temps dessus, pour affiner mod_rpc, et l’utiliser 🙂