Posts Tagged Voyage

My time at Sun Labs and pyaura

My internship at Sun Microsystems Labs, which has been going on for about 15 months – 9 of those full time at their campus in the Boston area – is coming to an end. During the course of those months, I’ve met a lot of very smart and fun people, I’ve worked on very challenging and stimulating problems and I’ve discovered a bunch of really good New England beers.

All my work has been centered around the Aura datastore, an open-source, scalable and distributed recommendation platform. The datastore is designed to handle millions of users and items and can generate content-based recommendations based on each item’s aura (aka tag cloud).

Last summer, under the supervision of Paul Lamere, I worked a lot more on our music recommendation web application, called the Music Explaura and designed a steerable recommendation interface. (We also have a Facebook companion app to the Explaura that was created by Jeff Alexander.)

This summer, I worked with Steve Green on many different things, including what I’d like to talk about in this post, pyaura, a Python interface to the datastore.

pyaura

The idea behind pyaura is to get the best of both world. While the datastore is very good at what it does – storing millions of items and being able to compute similarity between all of them very quickly – the Java framework surrounding it is a bit too rigid to quickly hack random research code on top of it. While my actual goal was to experiment with ways of doing automatic cleanup and clustering of social tags, I felt I was missing the flexibility I wanted and was used to getting when working on projects using Python’s interactive environment.

Without going into details, since the datastore is distributed and has many different components, it uses a technology called Jini to automatically hook them all up together. Jini takes care of automatic service discovery so you don’t have to manually specify IP adresses and so on. It also allows you to publicly export functions that remote components can call. A concrete example would be the datastore head component allowing the web server component to call it’s getSimilarity() function on two items. The computation goes on in the datastore head and then the results get shipped across the wire to the web server so it can serve its request. However, Jini only supports Java leaving us no direct way to connect to the datastore using Python.

After looking around for a bit, I stumbled upon a project called JPype, which essentially allows you to launch a JVM inside Python. This allows you to instantiate and use Java objects in a completely transparent way from within Python. Using JPype, I built two modules which together, allow very simple access to the datastore though Python.

  • AuraBridge: A Java implementation of the Aura datastore interface. The bridge knows about the actual datastore because it can locate it and talk to it using Jini.
  • pyaura: A set of Python helper functions (mostly automatic type conversion). pyaura instantiates an AuraBridge instance using JPype and uses it as a proxy to get data to and from the datastore.

Example

To demonstrate how things become easy when using pyaura, imagine you are running an Aura datastore and have collected a lot of artist and tag information from the web. You might be interested in quickly seeing the number of artists that have generally been tagged by the each individual tag you know about. With these few lines of code, you can get a nice histogram that answers just that questions:

import pyaura.bridge as B
import pylab as P
 
aB = B.AuraBridge()
 
counts = [len(tag.getTaggedArtist()) for tag
            in aB.get_all_iterator("ARTIST_TAG")]
 
P.hist(counts)

The above code produces the following plot:

tag_counts_histo

This is the result we expect, as this was generated with a datastore containing 100,000 artists. As less and less popular artists are added to the datastore, the effects of sparsity in social data kick in. Less popular artists are indeed tagged with less tags than popular artists, leading to the situation where very few tags were applied to more than 5000 artists.

This is a small example but it shows the simplicity of using pyaura. With very few lines of code, you can do pretty much anything with the data stored in Aura. This hopefully will make the Aura datastore more accessible and attractive to projects looking to take advantage of both its scalability and raw power as well as have the flexibility to quickly hack on top of it.

, , , , ,

No Comments

Gondoles qui cèdent à Whistler

Comme vous le savez sûrement déjà, un poteau de la gondole Excalibur à Whislter a cédé mardi dernier. Heureusement, aucun blessé sérieux.

Drôle de hasard, je skiais à Whislter cette journée-là et je m’apprêtais à prendre cette gondole à la fin de ma journée. Étant donné qu’il n’y avait pas beaucoup de neige, le bas de la montagne était fermé et l’on devait monter et redescendre le bas en gondole. En descendant à pied le bas de la montagne, j’ai pu apercevoir au loin le poteau qui a fendu. Être descendu de la montagne 20 minutes plus tôt, je me serais sûrement fait prendre.

Je vous partage aussi deux belles photos de cette fantastique montagne pour ne pas uniquement se souvenir de ce malheureux épisode :

, ,

No Comments

Des nouvelles en photos

Que d’aventures dans cette ville fantastique qu’est Boston. À défaut d’être votre narrateur, je vous propose un bref aperçu de mes péripéties en images

,

No Comments

Fenway Frank

La fin de semaine dernière (celle du 7… oui je sais je suis un peu en tard), j’ai reçu la visite de nul autre que Big Mat. Vendredi soir, nous sommes partis à l’aventure et avons passé la soirée au Irish Pub sur Union Street. Entre le TD Banknorth Garden (de ce temps-ci le stade de basket) et le Quincy Market, Union Street a vraiment un petit quelque chose de spécial. Avec un mémorial dédié à l’Holocaust situé d’un côté, elle propose une dizaine de pubs tous aussi invitants les uns que les autres de l’autre côté. Le Irish Pub a deux étages, chacun avec un groupe de musique. Celui du rez-de-chaussé, où nous étions, était excellent et a joué une série de succès souvenirs tout au long de la soirée. Fait intéressant, le last call était à 1h15 et on s’est fait expulser à 1h30 malgré que la loi prévoit la fermeture des bars à 2h. On peut leur pardonner étant donné leurs pintes à 4.50$ et pour la présence de deux filles de promotion de Heineken Light qui étaient assez généreuses avec leurs bouteilles gratuites. Mais au fond, je suis tout à fait d’accord avec elles; on ne peut pas se faire une idée sans en avoir bu trois.

Dur de suivre quand on reçoit des bières gratuites...

Dur dur la vie! Pas facile de suivre quand on reçoit des bières gratuites…

1h30, tout le monde dehors!

En revenant, les pompiers nous attendaient.

Samedi, journée baseball où les Red Sox accueillaient les Mariners de Seatle. Le soleil plombait et on avait le front qui dégoulinait juste en respirant à l’ombre. La surprise de la journée : un passant nous a donné un billet pour la partie. On l’a revendu à un scalper pour obtenir un peu d’argent magique, comme on l’a surnomé. Laissez-moi vous dire que quand on paye de la bière avec de l’argent magique, elle est d’une manière inexplicable bien meilleure.

Ahh Boston

Le Fenway Park est un vrai stade de baseball, entouré de bars sportifs et d’une micro-brasserie, sans compter (parce qu’il y en a trop) tous les vendeurs de saucisses ambulants qui envahissent les rues lors des journées de match. Je comprends maintenant mieux pourquoi on disait que ça prenait un nouveau stade à Montréal. Le soleil, un hot-dog (ils en avaient même un qui s’appelait le Fenway Frank :P ), une bonne bière (moins cher qu’au Centre Bell) et une excitante partie de baseball. Que demander mieux? En plus, l’affrontement s’est soldé par une écrasante victoire de 11 à 3 des Red Sox. On a même eu droit à un circuit par-dessus le monstre vert, que je n’ai pas vu parce que je ne regardais je ne sais quoi… ;)

Ce stade-là ne ressemble pas à un éléphant oO

Non ce n’est pas Godzilla. C’est le monstre vert!!

Je ne m’en suis même pas acheté un…

… mais Big Mat a compensé avec son Footlong hot-dog!

Votre défi : Trouver le bol à crème glacée

À Boston, la ville est envahie par la fièvre du basketball alors que nos Celtics sont en finale du championnat de la NBA. Big Mat m’a initié et depuis je suis la série assez religieusement. La prochaine partie est demain soir et on mène 3 à 2. Beat L.A.! Beat L.A.!

Durant la semaine, Yuk Fai était à Boston par affaire puisque l’entreprise pour laquelle il travaille, Teradyne, a son bureau chef à Boston. Jeudi en soirée, soir de match. Yuk a un faible pour le Irish Pub alors m’y revoilà. Expliquez-moi un Irish Pub, voté Le meilleur Irish Pub de Boston, qui refuse de servir un Irish Car Bomb. On nous explique que ça “saoule trop vite” et que l’administration refuse qu’ils en servent. Comme on dit en bon québécois, y’en a qui sont pas faits forts :P Je ne parle par contre pas des Celtics qui effectuèrent ce soir la une remontée historique en comblant un déficit de plus de 20 points après le premier quart pour l’emporter 97 à 91.

En terminant, un fait divers. Je parlais à un camarade qui me disait l’autre jour qu’il avait fait le plein à environ 1.50$ le litre à Montréal. Le lendemain, j’ai fais le plein à environ 4$ le gallon. Un petit calcul grossier vous fera frissonner; à 4$ le gallon, j’ai payé 1.00$ le litre. Où va l’argent des Québécois? On ne sait pas, mais on a tous une liste assez longue d’endroits où l’on sait qu’il ne va pas!

, , ,

1 Comment

Wally’s Cafe

Quoi de mieux pour occuper un samedi soir que de savourer une bonne Guiness Extra Stout dans un petit bar minuscule en compagnie d’un band jazz? Au Wally’s Cafe, le concept de spectacle intime prend un tout nouveau sens. À peine plus grand que mon propre appartement et fait sur le long, Wally’s est à moitié rempli quand j’y arrive une trentaine de minutes avant le début du spectacle de 9h, un peu trempé par la pluie légère qui s’abat sur Boston.

Après m’être attablé avec un ami, on remarqua des musiciens ranger leurs instruments et démonter de l’équipement audio. En considérant le peu de clients dans le bar, on se demandait si j’avais mal lu l’horaire. Heureusement, ce n’était pas le cas.

Wally’s s’est complètement rempli dès le début du spectacle. Toutes les tables ont rapidement été prises et une bonne quarantaine de mélomanes s’entassèrent dans l’allée. Une jolie demoiselle est venue s’asseoir à notre table, malheureusement pas pour nous courtiser, mais bien parce que les chaises libres étaient devenues introuvables.

Les musiciens étaient extrêmement doués et la musique était excellente. Le pianiste jouait à une telle vitesse que ses mains me paraissaient floues. Pour les sceptiques, j’en étais encore à ma première bière. La musique a cette qualité de nous faire déconnecter, de nous transporter dans un autre état d’être. Parfois, ce sera émotionnellement très intense, d’autres, comme chez Wally’s, dans une mer de pensées confuses et abstraites.

Rêver et espérer, en vibrant au rythme des notes se bousculant d’une manière pourtant si ordonnée.

Samedi soir chez Wally’s, la musique était excellente.

Musique : Muse, My Chemical Romance, Radiohead

, , , , ,

1 Comment

Earthfest 2008

Samedi à Boston avait lieu le Earthfest, un concert annuel organisé par une station de radio locale. L’environnement, mais surtout la consommation responsable était à l’honneur. Il y avait, derrière une série de stands à frites et autre bouffe garantissant une longue vie en santé, plusieurs kiosques offrant des échantillons gratuits de nourriture et boissons bio; le paradis de l’homme n’ayant pas dîner quoi :D Ils donnaient même des plantes gratuites à apporter et planter chez soi.

Côté musique, des groupes que je ne connaissais malheureusement pas. Il y avait une scène de groupes originaires de Boston et une autre scène où des groupes connus comme Crackers et Cake ont joué. Même si je ne les connaissais pas de nom, ils ont chacun un ou deux succès qu’en les entendant, ma réaction fut : “Ahh, c’est eux qui font cette toune?!”.

Mais en prime, en plus de la musique, nous avons eu droit à plusieurs autres scènes très amusantes. Par exemple, une horde de zombies brandissant des pancartes “Zombies are people too”. Il y avait aussi les donneurs de calins gratuits, un Winnebago faisant de la promotion pour le film Zohan où on donnait des coupes de cheveux gratuites et, le clou de l’après-midi, la State Police qui a fait une descente pour une raison encore inconnue. Un agent est littéralement monté sur la scène en plein milieu d’une chanson pour que Cake arrête de jouer parce que, on croit, le trash était trop violent à leur goût. Le meilleur était par contre quand ils ont mené une opération d’infiltration 30 centimètres derrière moi. Ils ont encerclé une bande de jeunes mineurs munis de…. attention… quelques bouteilles d’alcool [musique dramatique]. Il y avait littéralement six officiers de la paix (que Cake a, sans aucun sarcasme, remercié pour leur bon travail :P ) qui ont fait comprendre aux jeunes mineurs que boire de l’alcool et apporter un BBQ (on essaye encore de comprendre ce que ça faisait la) à un spectacle ne sont pas une bonne chose. Les jeunes furent escortés hors des lieux et on m’a dit qu’ils sont probablement dans un sérieux pétrin.

Après le spectacle, tout de même appelé Earthfest, on reste un peu sceptique en voyant les gens jeter leurs bouteilles de plastique à la poubelle quand il y a un bac de recyclage trois mètres plus loin…

La soirée s’est terminée dans un bar où ils avaient une sélection très impressionnante de bière. J’ai en effet pu regouter à deux bières belges, de la Grimbergen et de la Chimay, que j’avais bu lors de mon voyage en France. Vaguement relié, je suis tombé sur un magasin tout à l’heure, à 10 minutes de mon appartement, où ils vendent de la Fin du Monde et de la Maudite en paquet de quatre. Je connais quelqu’un qui va être content :)

Quelques autres photos de la splendide ville de Boston sur ma page Flickr.

Et j’aimerais mentionner que Charlie Wilson’s War est un excellent film et que Juno est splendide.

, , , ,

2 Comments

attach failed – no mountable file systems

Une pourtant si belle soirée, un peu froide, journée pas assez productive au boulot, mais rien qu’une bonne Samuel Adams Black Lager (oui c’est ce que je bois maintenant) ne pouvait guérir. Après m’être un peu battu avec mon poulet qui n’a pas trouvé qu’une journée passée dans le frigo était suffisante pour se dégeler, j’étais prêt à travailler un peu pendant la soirée.

Pour vous donner un peu de contexte, étant parti durant trois mois, je me suis acheté un disque dur externe pour amener avec moi mes précieuses séries de TV, tous mes MP3, des programmes, des jeux; un amalgame de séquences binaires qui permettent à un nerd exilé de fonctionner. Étant un citoyen modèle comme nous le sommes tous, j’achète légalement, tout comme vous, tous les programmes que j’utilise et la musique que je prends un si grand plaisir à écouter. Je tenais toutefois, dans le seul but de m’assurer un peu de confidentialité si, au nom de la sécurité nationale, on me soumettait à une fouille exhaustive lors de mon passage en Amérique, à protéger mes précieuses données en les encryptant avec TrueCrypt. En effectuant une attaque en force (traduction de brute force attack), le meilleur des ordinateurs aurait besoin de plus de temps que l’âge même de l’univers pour réussir à briser l’encryption. Détail superflu, mais amusant à dire :P

Pourquoi je partage ces informations sans intérêt apparent? Simplement parce que j’ai été confronté, après avoir savouré mon poulet dont je vous parlais tout à l’heure, au message suivant :

Je vais traduire pour tous les informaticiens dans la salle : j’ai perdu l’équivalent de 350 gigaoctets de données. On peut aussi le voir comme une pile de 500 CD. Pouf, disparu. Oui j’en ai des copies à Montréal, mais 150$ d’essence et 10 heures de route m’en sépare. Je sais… je sais ce à quoi vous pensez tous : les choses pourraient être pires; j’en conviens. Mais dans mon petit univers égocentrique, cette bonne nouvelle crée une légère perturbation émotionnelle en moi.

Je vais tout de même vous laisser sur une note plus heureuse, avec quelques photos du mariage de mon très bon ami Patrice qui a eu lieu samedi dernier.

14h

20h

23h :P

Musique : Portishead : Dummy, Mark Rapp, Radiohead

, ,

2 Comments

Le plus grand Apple Store ouvre demain à Boston

J’ai eu le plaisir d’apprendre que le plus grand magasin Apple aux États-Unis (mais moins grand que celui de Londres) ouvre ses portes demain à Boston (voir MacRumors). Définitivement à ajouter sur ma liste des points d’intérêt de la ville à visiter :P


Photo de GizModo

Musique : James Blunt

, ,

2 Comments

Première journée

La première journée est derrière moi et elle s’est très bien déroulée. J’avais déjà rencontré l’autre stagiaire qui travaille sur le même projet que moi hier soir puisqu’il est mon voisin. Nous sommes cinq à être dans l’équipe du projet Aura, qui comporte plusieurs sous-composantes dont celle sur laquelle je vais travailler, Search Inside the Music. À court terme, je vais devoir me familiariser avec énormément de code Java et l’architecture du système.

Il y a plusieurs endroits intéressants à Sun Labs, notamment la salle de “recherche” sur les jeux vidéo. Je pense que on peut facilement s’improviser comme un chercheur dans ce “projet”. J’ai entrevu un Wii à qui je ne pourrai m’empêcher d’aller rendre visite; ce sera ma bonne action de la journée. Il y a aussi du pool, ping-pong et du baby-foot. Tout pour encourager la productivité quoi ;)

Et en terminant, j’ai appris quelque chose de très intéressant hier. Au Massachussetts, il n’y a pas de taxe sur les vêtements. C’est sûrement de l’information que certaines personnes vont trouver intéressante :D

Musique : Our Lady Peace : Clumsy, 4am, Car Crash, Naveed

, ,

No Comments

L’arrivée à Boston

Hier, je me suis envolé vers Boston, vers un été qui sera sans aucun doute mémorable. Je commence en effet dès demain un stage chez Sun Microsystems (voir sur Google Maps) qui durera jusqu’à la fin août. Je ferai partie d’une équipe qui travaille sur le projet Search Inside the Music. Très brièvement, ce projet vise à construire un système de recommandation musicale. Pour ceux intéressés par de tels systèmes, je vous recommande fortement des sites comme Last.fm ou Pandora (qui ne fonctionne qu’aux États-Unis pour des raisons de droit d’auteur, nanana moi ça marche :P Mais vous pouvez utiliser Global Pandora à la place).

Le vol s’est très bien passé. Obtenir le visa à l’aéroport a été simple et facile, à ma plus grande surprise. Bien sûr, il y avait des semaines et des semaines de travail passées à envoyer courriels, fax, signatures, lettre de recommandation, etc. un peu partout pour obtenir le sacré document DS-2019 qui permet d’obtenir le visa, mais je vous épargne les détails.

Peu après le décollage, le ciel complètement dégagé m’a permis d’avoir une vue imprenable sur Montréal. Après le stade qui avait véritablement l’air d’un éléphant blanc parmi les bâtiments jouets l’entourant, La Ronde est apparue avec tous les beaux souvenirs y étant attachés. J’ai presque vu le Palace of Love, mais malheureusement notre angle de vol m’a seulement permis de voir la sortie de la 132 au pied du Pont Champlain. La dernière chose que j’ai pu reconnaître fut le Dix-30 avant que l’altitude et les nuages ne rendent indistinguable quoi que ce soit au sol.

Le vol fut très court et je n’ai presque pas eu le temps de finir mon jus de tomate (vive les traditions Yuk :P ) avant que l’on amorce notre descente vers l’aéroport Logan à Boston. On volait juste au dessus des nuages qui étaient très denses et cachaient complètement le sol. On se serait cru arrêté dans un désert blanc. Rien ne semblait bouger; seul le bruit des moteurs me rappelait que je n’étais qu’un petit point perdu dans le ciel qui filait à des centaines de kilomètres à l’heure.

Après une attente d’environ 30 minutes au kiosque de location d’auto Budget manquant cruellement de personnel, j’ai pu prendre possession de ma voiture “compact”, comme le prétendait ma réservation. Très confortable; je vais par contre sûrement m’en mordre les doigts éventuellement à la pompe.

La route vers mon appartement (voir GoogleMaps) s’est faite sans embûche. Je suis à une trentaine de minutes du centre-ville de Boston dans la ville de North Reading. L’appartement est en fait un condo neuf dans un développement qui vient d’être construit. C’est simplement incroyable. Impossible de demander mieux. L’appart était meublé et tout équipé. Il manquait seulement une bonne bière dans le frigo, chose à laquelle j’ai rapidement remédié :)

Donc mis à part le fait que mon enthousiasme pour l’été m’ait fait remplir mes bagages de linge pas très chaud et qu’il fait 10 dehors, c’est la joie :D

Voir les photos sur Flickr

Musique : Howie Day : Stop All The World Now, Ben Lee : Ripe

, , ,

2 Comments