Archive for the ‘Technology’ Category

You’re applying for a job in a research lab in the industry?

Find some great advice here. And below are some additional, and hopefully concrete questions you might want to find answers to during your round of interviews:

Projects

  • How many projects are going on currently in the team and when will the next round of projects be decided? When next can you influence/start a new project?
  • How are projects proposed and selected? Top-down: top level managers decide on the projects. Bottom-up: everybody has a chance to make a proposal. Who decide and how?
  • Could you work on your project ideas/research interests?
  • How many interns are available to the team/researcher, and under what conditions? How are they recruited and from where?
  • Is there funding for subcontracting work? How much, for what type of work, under what conditions?
  • Where does the project funding come from, for what and what are the criteria? Often there are different types of funding for different types projects.
  • Can you work on smaller, personal projects?
  • Can you buy hardware/software/books/licenses? How much/how often/what are the conditions?
  • How are collaborations with universities/professors funded? How can you start or continue a collaboration. With what universities do the lab/team collaborate with?
  • Do you have support/help to market/present your work externally (e.g. high quality videos, slides)? Is it encouraged/required/optional?
  • How many persons/managers do you report to? For what, how often, and what is their profile?

Lab

  • How are projects documented? How are project documents shared internally? Do you have access to all the code/documentation/data of the research and/or non research projects done in the company/lab/team?
  • How many projects are highly visible externally/open-source?
  • How many persons do you know personally or know the work of?
  • How many people blog externally, on what, and what do they say?
  • Are there regular internal/external presentations organized? Paper reviews? How much interaction is there between all the researchers?
  • Do researchers have a mentor?
  • Can you collaborate across teams/labs, under what conditions?

Conferences, Travel

  • How much do researchers travel to conferences, and under what conditions? Only if a paper is presented. Is there a type or list of conferences one can attend?
  • Can you submit papers to any conference you want? Is there a process to review the paper before you can submit it? What are the conditions to submit your work?
  • Can you be on conference PCs and are the travel and expenses reimbursed?
  • In what conferences have you seen researchers from that company? What kind of work did they present?
  • How is the authorship decided for publications? Are you managers always authors/co-authors on the publications?

Evaluation

  • What are the objectives given to researchers/teams/projects? In numbers: publications/articles submitted/accepted, patents submitted/filed, technology/algorithms transferred to products,  demos/presentations given internally, … In qualitative terms: review by peer/team/manager/360 assessment.
  • How is the quality of the work evaluated? Based on numbers (as above)? Who evaluates, and what is the profile of the person(s) who evaluate your work.
  • What does bad/good/great evaluation mean? Compensation/advancement/rewards/other?

Money

  • What are the types of compensations, and what are the criteria? Base salary, bonus,  expenses, publication/patent bonus
  • What are the compensation/rewards for publications/patents/presentations? How much and what are the conditions?
  • How are salary augmentations negotiated? Based on what criterias?
  • Do you have a company credit card?
  • How quickly are your expenses reimbursed?

Organization

  • What type of researchers are they looking for? Researchers with Phd that publish a lot and have a good external visibility ; researchers+entrepreneurs that can think of business models and sell a project internally and externally ; researchers+engineers who can think of big ideas and implement them ;
  • Do managers have a technical role or a management role?
  • What and when were the last changes in the research organization?
  • What are the lab’s current strategy/targets? Create new technology/patents/services? Support current products? Explore new areas? How often do they change?
  • How many technologies/projects have transferred to business units/products? When, how long did it take, what did it take? How does the research lab impact/influence products? Ask for concrete examples.

Work life balance

  • Can you work from home? How often?
  • What’s the average age of the researchers? Life-style?
  • Do you have compensations for commuting/public transport/company shuttles?
  • Do you have a private/shared office?

Side activities

  • What are the policies related to working for yourself, your personal websites/projects, a startup, open source projects? (better to alert the company of any current/future involvement you may have with other companies/organization)
  • How easy is it to have side activities? How many people in the lab have their own startup on the side? Is it encouraged/frowned upon?

I attended TEI’10 conference in Boston and presented there our work and demo of SensorComix (Pdf) , a research project at NRC I did with my colleagues Vidya Setlur, Tim Sohn, and Hiroshi Horii.

In SensorComix, we leverage and build upon a previous project called Nokia Mashups where SMS conversations are displayed with rich graphics representative of who’s having the conversation, the place where the communicants are located, and what they’re talking about.

The idea in SensorComix is twofold: add another dimension of expressiveness to SMS conversations, and add playfulness.

I personally have tons of stories about SMS mishaps and miscommunication, and from what I’ve seen in our projects and user trials, I’m surely not the only one. For example, a girl sends an SMS to her boyfriend asking him about something, he replies ‘yes’. The girl sends quickly another message telling him how rude he is. The boyfriend sends back that he’s in class and has no time to elaborate. Another example with yet another couple communicating, the boyfriend asks his girlfriend if she went to an evening work event, then quickly in another SMS, asks her if he’s going to see her in the evening. He gets a reply of ‘No too tired’ and assumes it’s the answer to the second message.

SMS messages are a strange way of communicating. They’re short, and because the input methods are limited to small physical keyboards, or tiny keypads, or onscreen keyboards, people are limited in how much they can write, and how clearly they can convey all the nuances in their message. SMS are sent from mobile phones, and have become a preferred way people communicate whenever and wherever they are. But often people are busy, they’re going places, they’re in meetings or in class, with other people, and they may not have time to write clear and unambiguous messages. SMS are asynchronous but nonetheless there is some expectation that the other person is going to reply, sometimes quickly, especially when SMS are between people in a close relationship or when the persons are suppose to meet or plan something together.

In SensorComix, the user writes the SMS and can use one of four different gestures that add different graphical elements to convey an emotion associated to that gesture. For example, rubbing the phone will make little hearts pop up. Shaking the phone will make a fire and flames appear. The four gestures we’ve included are those:

  • Rubbing, to convey affection
  • Shaking, to convey impatience or anger
  • Tapping, to poke
  • Knocking, to get attention

With SensorComix, one can write the message, and quickly add an emotion to it with a simple gesture.

It’s best seen on the video:

Details on the demo implementation

We used Nokia tablet devices N810, a SHAKE SK6 sensor and a MAC laptop to create the prototype. The demo does not send SMS or MMS, but is hacked together to let the user takes an N810, see a comic with preloaded images (that one can change), write a message, enter gestures on the sensor which will display animated graphical elements on the comic, and send the message. The other N810 will receive the message and display the message with the comic, message and animated elements, and one can then reply to the message.

The messaging application showing the comic and the input text for the message is actually an HTML web page, which is served by the MAC laptop. But the actual comic and the animation that appear when entering a gesture are done with a Flash/Flex component embedded in the Web page. The laptop runs a custom Python HTTP server which does 3 things:

  • Serve Web pages to the clients. There are 2 types of web pages, one for sending a message, one for receiving a message. The server also provides all the images displayed in the comic.
  • Connect to the SK6 sensor via Bluetooth. The server reads the data from the sensor and performs the gesture recognition.
  • Communicate via permanent sockets with the Flash/Flex component embedded in the Web pages. When the Web page for sending a message is displayed, the Flash/Flex component opens a socket with the server, registers as ’sender’ and will receive the information to update the comic: the message being typed in the HTML input textarea, and which animated elements to display which should correspond to the gesture recognized by the server from the sensor data.

To run the demo, I create a ‘Network’ on the laptop. The server runs on port 80 on the laptop and I open the browser on the N810 to the URL http://[IP address of the laptop]. This configuration is somewhat stable but not highly robust. I could demo it without too much trouble for a couple of hours at TEI. During the development, there were few hiccups to circumvent with the Flash/Flex – Python socket communication. The advantage is of course that you don’t need the N810 to develop the code, you can just run the Flash/Flex in your laptop browser all the same.

For the gesture recognition, I wrote some custom simple code to identify the 4 gestures. Only 2 different sensors out of the several provided on the SK6 are used: the touch sensor (rubbing and tapping) and accelerometer (knocking and shaking). The recognition is robust enough that I don’t recalibrate the SK6 at all, but the knocking gesture was the one that was not recognized well. I should just rewrite the code. We did the project before this SHAKE  Drivers Google project started and haven’t had a chance to look into it.

There is tons of work going on at Nokia Design on gestures. See Gesture Design and the video here.

J’ai eu la chance de venir présenter notre démo SensorComix à TEI 2010 organisée à Boston au Media Lab du MIT. C’était bien sympa de passer 3 jours dans le nouveau batiment du Media Lab. TEI n’est pas vraiment le genre de conférence à laquelle je suis habituée. TEI est l’abbréviation de  Tangible, Embedded and Embodied Interaction, ce qui veut dire Interactions tangibles, embarquées et incarnées (?). Comme toujours, les traductions des nouveaux domaines technologiques sont assez délicates.

Wikipedia n’a pas encore de version française pour Tangible User Interface, absence qui pointe encore une fois le retard de la recherche française en la matière.

Une interface utilisateur tangible, c’est une interface utilisateur grâce à laquelle l’utilisateur interagit avec des informations digitales à travers l’environnement physique. Par exemple, dans la démo SMSlingshot, il s’agit d’utiliser un lance-pierre (objet réel) pour tirer un message (objet digital) en direction d’un écran ou d’une projection d’écran (environnement physique comme une la façade d’un batiment par exemple). Le lance-pierre contient un petit écran et un clavier pour taper un court message type SMS. Une fois que l’utilisateur active le lance-pierre, l’écran affiche le message sous forme de tag ou graffiti, comme une balle de peinture explosée sur un mur, avec le message écrit dedans. L’ensemble lance-pierre et écran ou projection constitue une interaction tangible.

Une personne utilise le lance-pierre pour lancer un nouveau message sur lécran

Une personne utilise le lance-pierre pour lancer un nouveau message sur l'écran

Installation du SMSlingshot

Installation du SMSlingshot

D’abord, très bon point pour TEI, toutes les publications sont disponibles directement à partir du site. Pendant la conférence, toutes les présentations ont été enregistrées sur vidéo et transmises live, et seront accessibles du site Web bientôt. Le flux Twitter n’était pas super actif pendant la conférence, ce qui n’est pas plus mal du reste.

90 projets ont été acceptés, avec près de 30 démos présentées dans la session démo, et 30 publications présentées dans les sesssions principales.

Le domaine de recherche couvert par TEI est relativement jeune (la première conférence TEI a eu lieu en 2007), et la communeauté dynamique, relaxe et accessible. La jeunesse du domaine et le fait que la communeauté soit particulièrement enclin à créer et implémenter des idées, et soit aussi très sensible aux arts et design font que – c’est mon avis – les gens sont restés humbles et ne se prennent pas la tête. Ca a été un plaisir d’assister et de participer à la conférence.

L’émergence ces dernières années et l’utilisation de plus en plus facile et peu couteuse de différentes plateformes de développement hardware et software ont rendu la création de prototypes tangibles beaucoup plus faciles. Les platformes telles qu’Arduino sont particulièrement populaires non seulement parmi les étudiants et chercheurs, mais aussi les designers, artistes, éducateurs et enseignants.

Je pense qu’à l’heure actuelle, la communeauté TEI a un peu de mal à positionner son travail. Le but est-il de créer des objets ou environnements utiles aux gens, par exemple, des applications éducatives pour les enfants, de comprendre comment on peut améliorer les interactions utilisateurs classiques en incorporant des composantes d’interaction tangibles? Ou bien les projets restent-ils du domaine de l’art: certes beaux, nouveaux, intéressants et parfois provoquants, mais d’utilitée pratique limitée? D’un point de vue scientifique, les projets relèvent parfois plus du domaine artistique ; et d’un point de vue utilisateur lambda, les mêmes projets sont plutôt ceux de maniaques d’informatique et d’électronique.

Dans tous les cas, l’apprentissage de plateformes type Arduino par les jeunes et même très jeunes est très intéressante. Des évoles américaines initient à la programmation des élèves de CM2 en utilisant des plateformes telles que Scratch, Arduino, ou une combinaison des deux avec Scratch for Arduino.

J’ai participé l’après-midi du deuxième jour à un studio (pdf) d’initiation à Scratch pour Arduino. C’était très bien organisé, et j’ai pu m’amuser à faire briller une diode en fonction de la lumière reçue par un détecteur de lumière. Après ça j’ai fait une version pour générer des sons en fonction de la lumière détectée, comme le montre la vidéo dessous (le son est mauvais).

Programme fait avec Scratch for Arduino

Je vais aussi recommender à ma soeur qui aime coudre et créer des sacs et vêtements d’essayer Scratch et la plateforme hardware Lilypad Arduino, qui permet de coudre et d’intégrer dans des textiles des composants électroniques tels que capteurs, accéléromètres et diodes cousus et reliés à la carte microcontrolleur par des fils conducteurs.

A quand Scratch et Arduino dans les écoles françaises?!

Jeff Atwood is not the only one recommending, or rather urging software teams to release early and not delay shipping because the product is not perfect. Jason Fried from 37 signals makes a good case of shipping early for a startup: waiting a year before putting something in front of the users is too long, 3 months is a much better strategy. Get feedback early, so you can improve the design, understand what works and what doesn’t, get a feel for what features would get people to pay for your service, and how much they’d be willing to pay. Jeff Atwood points out that shipping early is not about shipping crap, but rather it’s about not postponing the moment when you start getting useful feedback because you’re scared of not having done the most perfect job.

I would add one sole variable to whether shipping early is a good strategy or not: expectation, as in expectation from the consumer, the customer, or the user.

Sure, when you are a startup hoping to make money with a new Internet service, I see little reason why you should not thrive to get something out as soon as possible. What is the worst thing that could happen? No user. Even bad feedback is useful. Okay, maybe having another company take your idea, implement it better in record time is the worst that could happen. The assumption is you’ll take big steps as soon as you ship and you can make better decisions for the future. What is the expectation of the users? Not very high: you’re a startup, you put a big beta in the title, you humbly demand users to give it a try and give you feedback, good and bad. The expectation is low because as a startup, you probably don’t want it to be very high, and even if you did, you’re probably not asking for money anyway to try it out. Users don’t pay for your Beta 0.9 version, thus their expectation is low, and their tolerance to non perfect code is high.

What happens now when you’re a much bigger company, your marketing group publicizes the shit out of an upcoming product (months in advance) and the user is going to pay, sometimes a lot, for this product? The expectation is high, and you’d better not screw it up. Imagine Apple releasing their next product with a beta version of the software. Exactly, it’s hard to imagine because they wouldn’t. When the expectation is high – whether it is from buying the product or from big ad campaigns – it is very hard to evaluate the damage done to the product and the company (in terms of revenue and image)  if the product delivered does not meet the expectation of the consumer. Another bias that screws the good judgment of people for when a new product should be released in a big company are the individual or team objectives defined as part of whatever evaluation process is being used. Maybe the product team will get the bonus if the product is shipped on time, no matter what the consequences. Or the team gets the bonus if the product has no bug, and will never ship or eventually ship with a huge delay. Missing anything better to suggest, I would say: pick the person with the best common sense and good judgment (whatever that means for your company) and give full power to that person to decide whether to ship or not.

Other than that, I can think of a few strategies that companies use to reduce the risks of under delivering:

  • They ship a lot of different products, trying to compensate the failure of some with the success of others.
  • They cultivate a public Beta sandbox where they explicitly keep consumer’s expectation lower (they call it more glamorously: explore, discover new ideas, experience earlier, evaluate and influence emerging technologies) than for their other products: Google Labs, Nokia Beta LabsAdobe Labs, Sun Labs, Microsoft Office Labs, etc.
  • The software is Open Source, thus bears the seal of “you can’t complain if there are bugs, fix them yourself”.

There are other aspects to take into account in the decision to ship early or not. Is the software coming with a device? How fast can you update the software? Shipping early software that works in a browser is less risky than shipping software that the user needs to install, which is usually itself less risky than shipping software that comes embedded in a device. And things get even more complicated when you make an OS and applications (like for phones). No matter what you ship, one important requirement that you need to establish and do a really good job of at the very first released version is the update mechanism. If updating is quick and easy (does not require the user to do anything, or not much more than clicking OK), bugs will get fixed and the user experience will improve steadily. Mess up that part and you ruin your chances of making the user happier. And if you ship early because you want feedback early, make sure you have a great feedback mechanism too.

Vous travaillez comme indépendent, ou avez votre startup/TPE/PME. Quels sont les outils à votre disposition pour tirer profit des social media?

  1. LinkedIn Francais disponible: oui Payant: non
    • Créez un compte pour votre business.
    • Faites en sorte que le profile soit bien complet, et que tout le monde ait la permission de le voir.
    • Ajoutez tous les mots clef en relation avec votre business.
    • Connectez-vous avec les autres personnes et business sur LinkedIn qui sont en lien avec votre business – utilisez les mots clefs pour les trouver.
    • Trouvez et ajoutez vous aux groupes en lien avec votre business. Commencez des conversations, partagez des informations utiles pour la communauté.
    • Mettez à jour votre statut pour garder l’attention des gens.
    • Participez aux forums de questions/réponses: répondez aux questions, aidez les autres.
  2. Facebook Francais disponible: oui Payant: non
    • Utilisez Facebook pour écouter, et répondre.
    • Vous pouvez créer soit un page Fan, soit un groupe Facebook. Pour le marketing viral, les groupes sont avantageux car ils permettent d’envoyer un mail à vos amis avec le lien vers le groupe pour qu’ils puissent le rejoindre. Les groupes sont aussi mieux disposés aux discussions. Les pages Fan sont par contre visibles même aux personnes qui ne sont pas inscrites sur Facebook, donc elles sont indexées par les moteurs de recherche. Elles sont en quelque sorte plus adaptées pour le long-terme.
    • Trouvez et rejoignez les groupes Facebook en relation avec votre business. Participez aux conversations, partagez des information utiles.
  3. Twitter Francais disponible: oui Payant: non
    • Utilisez Twitter pour trouver et vous abonner à des gens
    • Trouvez les personnes influentes qui sont importantes dans votre milieu ou industrie. Regardez qui les suit et avec qui ils discutent.
    • Trouvez les gens en rapport avec votre business, partenaires, investisseurs, utilisateurs, consommateurs, etc.
    • Trouvez les gens en cherchant des mots clefs.
    • Faites au moins un tweet par jour. Un tweet peut soit inclure un lien vers du contenu que vous avez créé, ou un lien vers du contenu créé par quelqu’un d’autre mais intéressant et en rapport avec votre business ou industrie, ou peut être un tweet de conversations (en réponse à une autre personne). Faites un tiers de chaque type de tweet.
    • Re-tweetez les tweets et postez des liens que vous jugez intéressants et utiles.
    • Utilisez les réducteurs de liens.
    • Gardez un oeil sur les messages vous étant destinés directement, et répondez-y.
    • Utilisez d’autres outils pour faciliter la gestion de votre compte Twitter (Hootsuite, SocialToo)
  4. Hootsuite Francais disponible: non (l’interface est en Anglais) Payant: non
    • Hootsuite vous permet de gérer vos comptes Twitter plus efficacement et de perdre moins de temps. Il vous permet aussi d’avoir plusieurs personnes qui tweetent sur le même compte Twitter et de gérer plusieurs comptes Twitter.
    • Vouz avez accès à des statistiques: nombre de tweets par jour pour chaque compte, répartition géographique de qui a cliqué un lien. Les statistiques peuvent être faites pour chaque tweet individuellement.
  5. Survey Monkey Francais disponible: non pour l’interface générale (Anglais), mais oui pour le contenu d’un questionnaire Payant: non (version de base gratuite), et oui (pour avoir plus de fonctionnalités)
    • Application Web pour la création de questionnaires en ligne. Ca vous permet de faire votre propre étude de marché.
    • Vous pouvez suivre les résultats de chaque questionnaires, avec des graphes, chiffres, etc.
    • Comment trouver des gens pour répondre à votre questionnaire? Publier et/ou créer un lien vers le questionnaire sur votre site Web/blog et vos comptes Twitter, etc. Vous pouvez aussi, même avec un petit budget, créer une pub sur Facebook, et spécifier tous les critères d’apparition de la pub, etc.
  6. Backupify Francais disponible: non (l’interface est en Anglais) Payant: non (pour seulement Twitter), et oui (pour avoir plus de fonctionnalités)
    • Si vous utilisez pour votre business entre autres Twitter, Facebook, Google Docs, GMail, Zoho, Wordpress, vous avez tout intérêt à utiliser une méthode de sauvegarde de toutes vos données. Backupify supporte plusieurs services, et pour un coût raisonnable ($29 ou $39 par an) vous permet de sauvegarder tous les jours ou toutes les semaines toutes vos données.
  7. SocialToo Francais disponible: non (l’interface est en Anglais) Payant: non
    • Facilitez la gestion de votre compte Twitter en s’abonnant automatiquement aux personnes qui viennent de s’abonner à vous (auto follow).
    • Le système de filtres vous évite de vous abonner à des comptes spam.
    • Permet aussi la création de questionnaires, et de vues de votre réseau.
  8. Youtube Francais disponible: oui Payant: non
    • Créez et postez vos propres vidéos.
    • Faites des vidéos intéressantes, drôles, et polémiques.
    • Gardez les vidéos à moins de 2 minutes de longueur.
    • Des vidéos ‘fait maison’  font l’affaire.
    • Choisissez des titre,  description, catégories et mots clef clairs et intéressants.
    • Postez un lien vers vos vidéos partout ou vous pouvez.
    • Testez, essayez de nouvelles approches, trouvez votre propre recette et ce qui marche le mieux dans votre cas. Soyez créatifs et très patients.
    • Trouvez les outils de création vidéo qui conviennent aux types de vidéos que vous faites: par exemple pour faire des captures d’écran, utilisez camstudio (Windows) ou iShowU (Mac).
    • Si vous faites des présentations publiques, ou en entreprises, essayez de vous arranger pour avoir une vidéo enregistrée.
  9. SlideShare Francais disponible: non (l’interface est en anglais) Payant: non
    • Vous avez toutes les chances de créer des slides et présentations Powerpoint (essayez Prezi pour quelque chose de plus branché): partagez les ensuite sur SlideShare.
    • Mettez clairement le nom de votre entreprise, une addresse email, ainsi que la date sur chaque slide.
    • Comme pour le reste, choisissez des titres, descriptions, mots clef, et catégories clairs.
    • Publiez le lien sur vos autres comptes.
  10. Google Alerte Google Trends Francais disponible: oui Payant: non
    • Google Alerte vous permet de recevoir des emails avec le contenu nouveau trouvé par Google qui correspond aux mots clef que vous avez mis dans l’alerte.
    • Google Trends vous permet de voir un graphique du nombre de pages Web qui contiennent des mots clef spécifiques et l’évolution en fonction du temps.

Autres conseils:

  • Soyez honnête quant à votre identité. Ne vous faites pas passer pour un client. Soyez transparents et clairs (Twitter description: Anne Dupont au nom de MaNouvelleStartup)
  • Faites aux autres ce que vous voudriez qu’ils vous fassent: faites des commentaires, retweetez, participez aux discussions, abonnez-vous.
  • Mettez du contenu qui va intéresser les gens dans votre communauté, aidez-les, et vous gagnerez de l’influence, et des abonnés.
  • Donnez-vous des objectifs chiffrés en terme d’activité sur vos comptes. Par exemple:
    • 25 nouvelles personnes par semaine sur Twitter
    • 3 tweets tous les jours
    • 20 commentaires sur des blogs par mois
    • 1 billet sur votre blog par semaine
    • 1 video ou présentation par mois
  • Une fois les objectifs fixés, assignez les rôles à vous et vos collaborateurs.
  • Utilisez Twitter à votre avantage, par exemple:
    • Lancez une campagne pour gagner quelque chose: les utilisateurs Twitter qui retwitteront un tweet spécifique peuvent gagner. Un tirage a lieu au bout d’un mois parmi tous les utilisateurs qui auront participé.
    • Pour les magasins, boulangeries, restaurants…: Twittez un mot secret et les 20 premiers qui se rendent à votre magasin et donne le mot secret gagnent un croissant gratuit, un dessert gratuit,…
    • Pour les magasins, boulangeries, restaurants…: Twittez votre menu du jour, ou dès que la fournée de pain est sortie.

Autres liens utiles (en Anglais):