mardi 16 juin 2009

Send mails from EC2 servers using Perl

A more technical post for my geek readers. At Kwaga, we are using a lot of cloud computing, and specifically with the excellent Amazon AWS. Our philosophy is to build stateless processes that can spread across several servers or bundle together on a single instance. We ran recently into a vexing problem: how to send mails from EC2. I'd like to walk you through our solution.


1. Why you need a specific solution ?
You can use sendmail directly, and it often works. But some (a lot in our experience) of the mails will not be delivered. It's probably partly because of the lack of matching reverse DNS records. But spam filters can be a bit arbitrary and the easiest way is to relay outgoing mail through a good smtp provider. (Thanks to Paul Dowman for pointing this to us).

2. authsmtp
We tried a couple of SMTP providers, and finally decided on AuthSMTP. They are reliable, have good service, and our mail that’s delivered through them almost never gets marked as spam. Also, they have monthly quotas rather than daily, so you have a chance to increase it before you hit the limit.

3. net::smtp
Some parts of our process are in Perl so we turned to CPAN and to the Net::SMTP package. Install via cpan, run it... and bang, no way to use the (barely documented) auth call to authorize your mail sender address. It seems the SASL authorization scheme is not supported by authsmtp. So we had to do some poking around with the SMTP protocole to generate a compatible LOGIN AUTH scheme. Here is the full code :


use Net::SMTP;
use MIME::Base64;

sub sendMail {
my $to = shift;
my $subject = shift;
my $body = shift;

my $smtp = Net::SMTP->new('mail.authsmtp.com', Hello => 'the domain you used for authsmtp');
$smtp->datasend("AUTH LOGIN\n");
$smtp->response();$smtp->datasend(encode_base64('your authsmtp username') );
$smtp->response();
$smtp->datasend(encode_base64('your authsmtp password') );
$smtp->response();

$smtp->mail('your authorized authsmtp sender address', AUTH =>'your authorized authsmtp sender address');

$smtp->to($to);
$smtp->data();
$smtp->datasend('To: ' . $to . "\n");
$smtp->datasend('Subject: ' . $subject . "\n");
$smtp->datasend("\n");
$smtp->datasend($body);
$smtp->dataend();
$smtp->quit;
}

Ok, that's all folks, I hope it will save time for some of you!

Nous sommes une entreprise de technologies innovantes


La nouvelle est tombée dans ma boîte mail il y a quelques jours et a été ébruitée ici : Kwaga est lauréat du CNCE 2009 (Concours National d’aide à la Création d’Entreprises de technologies innovantes) organisé par le Ministère de la Recherche et Oséo. Nous sommes en bonne compagnie puisque nos collègues co-incubés BeezUp et EtherTrust sont présents à nos cotés. Je peux également vous dévoiler qu'une des autres participations de SeedCamp en France fait partie des lauréats... annonce officielle certainement sous peu.


C'est en tout cas un signe très encourageant. La prochaine étape, qui nous mobilise totalement, est de sortir une première version de notre service, en "private beta" bien sûr. Stay tuned, it's real soon now.


Merci à toute l'équipe et à nos actionnaires de la première heure, sans vous, rien de possible.

dimanche 7 juin 2009

Corporate Search, kesako ?

Deux news récentes (ici et ) me rappellent que finalement les moteurs de recherche d'entreprise n'intéressent pas grand monde, contrairement aux moteurs de recherche sur le Web qui monopolisent régulièrement le haut de l'affiche - ces dernières semaine, il était par exemple difficile d'échapper à Bing, Wolfram Alpha ou Google Square.
Le "corporate search" est au mieux une commodité, au pire une obligation dont les CIO se passeraient bien. Le besoin est pourtant évident, mais la réponse est dans les "Search Based Application", les applications verticales fondées sur, ou augmentées par, de la recherche et de la navigation intelligente. 
Lorsque je dirigeais Sinequa, nos plus grands succès ont effectivement toujours été liés à des besoins verticaux avec plus que  simplement de la recherche : interaction client en OEM d'Instranet ou d'Eptica, applications de renseignement avec Nuxeo et Eurocis, ou bien broadcast automation avec SGT. Même en ce qui concerne les solutions presses, mon domaine de prédilection et celui où Sinequa est et reste le leader français incontesté, j'ai souvent choisi de travailler en partenariat avec d'autres, Eurocortex (racheté par nStein), Lexio ou Qwam.
Bravo en tout cas à mes camarades de Sinequa pour ce partenariat dans un nouveau domaine, la sécurité numérique, j'ai hâte d'en voir les premières applications.
  

mardi 2 juin 2009

Entreprendre à plusieurs…


S’associer n’est pas chose facile, loin de là. Les critères de choix notamment m’ont longtemps posé problème. J’entendais dire partout que le critère éthique devait l’emporter dans le choix de ses associés au départ d’une aventure. Jeune startuper déterminé, je pensais quant à moi que le critère d’efficacité devait primer : pour moi, il fallait du contenu avant tout, et donc réunir autour de mon projet des personnes qualifiées et efficace, capable d’abattre une charge de travail impressionnante et d’innover à tout prix. Sans rire, l’associé diesel n’est-il pas le cauchemar du jeune startuper !!? Avide d’y aller, et vite, et jusqu’au bout, il n’est pas question d’attendre, de regarder derrière ou d’examiner la situation : on est les meilleurs, on écrasera tout le monde, parce qu’on est jeunes et qu’on en veut. N’empêche, cette période-là est fabuleuse à vivre ! Mais elle peut exposer à de graves désillusions.
La désillusion est l’étape indépassable que doit traverser le jeune entrepreneur pour devenir le manager expérimenté (si...) que tout le monde aura envie de suivre ensuite. Or, je crois pouvoir affirmer que, si les désillusions sont nombreuses, les plus dures à encaisser — et les plus préjudiciables à l’entreprise, ô combien ! — sont bel et bien les désillusions d’ordre éthiques. Lorsqu’on s’est trompé sur quelqu’un, lorsqu’on y a cru et qu’on était en fait seul, lorsqu’on se rend compte qu’on s’est laissé bercer par une personnalité forte, charismatique, innovante, mais vide de toute éthique et donc dangereuse pour soi comme pour sa boîte, la chute est rude et véritablement traumatisante.
L’expérience m’a doté d’une certitude : si le critère d’efficacité doit bien sûr être pris en compte, il n’est pas celui qui doit déterminer le choix de ses associés. Sur le long terme, le critère éthique est le plus porteur, de très loin. L’aventure qui me paraissait d’abord technologique il y a vingt ans m’apparaît avant tout humaine aujourd’hui ; c’est ce qui me pousse à entreprendre, d’ailleurs, c’est devenu mon carburant à moi : conjuguer les compétences de chacun et tenir la distance ensemble, voilà le véritable pari !
C’est comme le choix du film : aujourd’hui c’est vers Woody Allen que je vais sans sourciller, calme mais jamais décevant, alors qu’à l’époque je fonçais voir le dernier blockbuster sorti, plein d’effets spéciaux à la bande son inimitable… Je préfère aujourd’hui entreprendre avec des gens sûrs, à l’éthique irréprochable. L’expérience m’a appris à ne pas donner la main trop vite, mais quand je la tends, c’est pour de bon, et je constate avec joie que les mains que l’on me tend aujourd’hui sont de cette qualité-là.

Citations du jour :
« Les jeunes sont plus aptes à inventer qu'à juger; plus aptes à exécuter qu'à conseiller ; plus aptes à entreprendre qu'à gérer. » Francis Bacon

« Ce n’est rien d’entreprendre une chose périlleuse, mais d’échapper au péril en la menant à bien. » Le mariage de Figaro, Beaumarchais