Tag Archives: london

“Hands-On Web Audio” at London JS meetup

I gave my “Hands-On Web Audio” talk at the London JS meetup, held at the offices of Just Eat. It was broadcasted as a Hangout, and also recorded so you can replay or see if you couldn’t attend:

BAAAAH they seem to have deleted or disabled the video. BAHHHHH!

If you want to play along, the slides are live here and here is the source code as well. Disclaimer: depending on your computer, they might be a bit too much in both Firefox or Chrome. There seems to have been a regression and the intro sound is extremely stuttering in “slower” computers (slower as in “a MacBook Retina”).

It was a bit awkward because their big screen was actually six TVs and most of the content in my slides is centered vertically on the slide, which coincided with the middle of the frames, so it was quite unreadable. That is why you’ll hear a number of comments akin to “oh this is very inconvenient” from me, during the talk.

After I finished the talk itself, we had a round of questions, and I also showed how to debug web audio with the Web Audio editor in Firefox DevTools.

Feedback on the talk seems really positive and I’m happy people got interested in playing with the Web Audio API and making dubstep! YES!

Great talk! I left inspired to go play. I’d used some features of the audio API before but Sole’s enthusiasm and dubstep obsession triggered a string desire to get creative with it again.

Spectacular demo by Soledad. She really knows what she’s talking about

I’m really happy that people were happy and interested in the API 🙂

Side note, 1

A few people asked me about the slides: how are they made?! are they WebGL?! can they use the system to make their own slides?

Answer: they are WebGL, and they use three.js underneath. Right now the system is quite hardcoded, but I’m happy to announce that I’m working on refactoring the code so anyone can build their own 3D slide deck, using their own demo scenes. So I guess I am building a slide deck framework… 😬 #sendhelp

You can have a look at the project here, but don’t send me requests yet, kthx. An online demo is available as well. Right now it can only render basic H1-H4 and P nodes… in 3D! Not bad!

Side note, 2

I was really excited that I made it to the meetup (!), because I forgot my phone home that morning. I found out when I was in the office already, and I didn’t want to go back. So I printed the map and started cycling to the meetup place. Except I didn’t know very well the area, so I got lost twice. Not too bad though, I stopped and produced my paper map and let people look at me with weird looks (“she’s looking at a paper map!”). Anyway, I used:

a) my brain, instead of trusting everything to a GPS enabled device
b) those little maps in the street showing where you are

and I made it!

The way back was easier as I knew the area before. I tracked my route using my fitbit, and was really pleased to see that I had reached almost 30km/h on my humble Brompton.

It was coincidentally also Cycle To Work day yesterday, so I was doubly pleased that I cycled to work and also to meet up.

Should there be a Cycle To Meetup day too? I think so 😏

Post #mozlondon

Writing this from the comfort of my flat, in London, just as many people are tweeting about their upcoming flight from “#mozlondon”—such a blissful post-all Hands travel experience for once!

Note: #mozlondon was a Mozilla all hands which was held in London last week. And since everything is quite social networked nowadays, the “#mozlondon” tag was chosen. Previous incarnations: mozlando (for Orlando), mozwww (for Vancouver’s “Whistler Work Week” which made for a very nice mountainous jagged tag), and mozlandia (because it was held in Portland, and well, Portlandia. Obviously!)

I always left previous all hands feeling very tired and unwell in various degrees. There’s so much going on, in different places, and there’s almost no time to let things sink in your brain (let alone in your stomach as you quickly brisk from location to location). The structure of previous editions also didn’t really lend itself very well to collaboration between teams—too many, too long plenaries, very little time to grab other people’s already exhausted attention.

This time, the plenaries were shortened and reduced in number. No long and windy “inspirational” keynotes, and way more room for arranging our own meetings with other teams, and for arranging open sessions to talk about your work to anyone interested. More BarCamp style than big and flashy, plus optional elective training sessions in which we could learn new skills, related or not to our area of expertise.

I’m glad to say that this new format has worked so much better for me. I actually was quite surprised that it was going really well for me half-way during the week, and being the cynic that I sometimes am, was expecting a terrible blow to be delivered before the end of the event. But… no.

We have got better at meetings. Our team meeting wasn’t a bunch of people interrupting each other. That was a marvel! I loved that we got things done and agreements and disagreements settled in a civilised manner. The recipe for this successful meeting: have an agenda, a set time, and a moderator, and demand one or more “conclusions” or “action items” after the meeting (otherwise why did you meet?), and make everyone aware that time is precious and running out, to avoid derailments.

We also met with the Servo team. With almost literally all of them. This was quite funny: we had set up a meeting with two or three of them, and other members of the team saw it in somebody else’s calendar and figured a meeting to discuss Servo+DevRel sounded interesting, so they all came, out of their own volition! It was quite unexpected, but welcome, and that way we could meet everyone and put faces to IRC nicknames in just one hour. Needless to say, it’s a great caring team and I’m really pleased that we’re going to work together during the upcoming months.

I also enjoyed the elective training sessions.

I went to two training sessions on Rust; it reminded me how much fun “systems programming” can be, and made me excited about the idea of safe parallelism (among other cool stuff). I also re-realised how hard programming and teaching programming can be as I confronted my total inexperience in Rust and increasing frustration at the amount of new concepts thrown at me in such a short interval—every expert on any field should regularly try learning something new every now and then to bring some ‘humility’ back and replenish the empathy stores.

The people sessions were quite long and extenuating and had a ton of content in 3 hours each, and after them I was just an empty hungry shell. But a shell that had learned good stuff!

One was about having difficult conversations, navigating conflict, etc. I quickly saw how many of my ways had been wrong in the past (e.g. replying to a hurt person with self-defense instead of trying to find why they were hurt). Hopefully I can avoid falling in the same traps in the future! This is essential for so many aspects in life, not only open source or software development; I don’t know why this is not taught to everyone by default.

The second session was about doing good interviews. In this respect, I was a bit relieved to see that my way of interviewing was quite close to the recommendations, but it was good to learn additional techniques, like the STAR interview technique. Which surfaces an irony: even “non-technical” skills have a technique to them.

A note to self (that I’m also sharing with you): always make an effort to find good adjectives that aren’t a negation, but a description. E.g. in this context “people sessions” or “interpersonal skills sessions” work so much better and are more descriptive and specific than “non-technical” while also not disrespecting those skills because they’re “just not technical”.

A thing I really liked from these two sessions is that I had the chance to meet people from areas I would not have ever met otherwise, as they work on something totally different from what I work on.

The session on becoming a more senior engineer was full of good inspiration and advice. Some of the ideas I liked the most:

  • as soon as you get into a new position, start thinking of who should replace you so you can move on to something else in the future (so you set more people in a path of success). You either find that person or make it possible for others to become that person…
  • helping people be successful as a better indicator of your progress to seniority than being very good at coding
  • being a good generalist is as good as being a good specialist—different people work differently and add different sets of skills to an organisation
  • but being a good specialist is “only good” if your special skill is something the organisation needs
  • changing projects and working on different areas as an antidote to burn out
  • don’t be afraid to occasionally jump into something even if you’re not sure you can do it; it will probably grow you!
  • canned projects are not your personal failure, it’s simply a signal to move on and make something new and great again, using what you learned. Most of the people on the panel had had projects canned, and survived, and got better
  • if a project gets cancelled there’s a very high chance that you are not going to be “fired”, as there are always tons of problems to be fixed. Maybe you were trying to fix the wrong problem. Maybe it wasn’t even a problem!
  • as you get more senior you speak less to machines and more to people: you develop less, and help more people develop
  • you also get less strict about things that used to worry you a lot and turn out to be… not so important! you also delegate more and freak out less. Tolerance.
  • I was also happy to hear a very clear “NO” to programming during every single moment of your spare time to prove you’re a good developer, as that only leads to burn out and being a mediocre engineer.

Deliberate strategies

I designed this week with the full intent of making the most of it while still keeping healthy. These are my strategies for future reference:

  • A week before: I spent time going through the schedule and choosing the sessions I wanted to attend.
  • I left plenty of space between meetings in order to have some “buffer” time to process information and walk between venues (the time pedestrians spend in traffic lights is significantly higher than you would expect). Even then, I had to rush between venues more than once!
  • I would not go to events outside of my timetable – no late minute stressing over going to an unexpected session!
  • If a day was going to be super busy on the afternoon, I took it easier on the morning
  • Drank lots of water. I kept track of how much, although I never met my target, but I felt much better the days I drank more water.
  • Avoided the terrible coffee at the venues, and also caffeine as much as possible. Also avoided the very-nice-looking desserts, and snacks in general, and didn’t eat a lot because why, if we are just essentially sitting down all day?
  • Allowed myself a good coffee a day–going to the nice coffee places I compiled, which made for a nice walk
  • Brought layers of clothes (for the venues were either scorching hot and humid or plainly freezing) and comfy running trainers (to walk 8 km a day between venues and rooms without developing sore feet)
  • Saying no to big dinners. Actively seeking out smaller gatherings of 2-4 people so we all hear each other and also have more personal conversations.
  • Saying no to dinner with people when I wasn’t feeling great.

The last points were super essential to being socially functional: by having enough time to ‘recharge’, I felt energised to talk to random people I encountered in the “Hallway track”, and had a number of fruitful conversations over lunch, drinks or dinner which would otherwise not have happened because I would have felt aloof.

I’m now tired anyway, because there is no way to not get tired after so many interactions and information absorbing, but I am not feeling sick and depressed! Instead I’m just thinking about what I learnt during the last week, so I will call this all hands a success! 🎉

Two for one

I attended Web Progressions in London last week. But before that, and before the break, I also attended JSConf Uruguay. So what could be better than two conference posts in one?

None of the conferences have posted the videos of the talks yet, but here are my highlights of both events, just in case you wondered:

JSConf Uruguay

This was my first time in South America so everything was unusual and new but also familiar at the same time, like a mixture between Spain and Italy, e.g. when waiters would reply with “¡Por favor!” which sounds like a literal Italian-to-Spanish “Prego!” 😀

I liked the meats, but utterly despised the coffee. Pretty sure I got caffeine withdrawal during that trip. The lack of punctuality also got on my nerves; nothing happened at the time it was supposed to be happening, much to my dismay. It was joked that I might have become “too English” 😒

I talked about MediaRecorder, in a demo-filled version in Spanish of my Hacks article: Record almost everything in the Browser with MediaRecorder. Since I am a native Spanish speaker I thought it would be a bit silly to give the talk in English and have it simultaneously translated to Spanish to a Spanish speaking audience (there were interpreters on the conference as most of the speakers were not Spanish speakers), so I did the talk in Spanish. I think it went well even if I get a bit confused with some terms in Spanish 😎

My favourite talks were not really on JavaScript per se but applications of it. Which makes sense if you think of it; you don’t generally get excited talking about dictionaries or grammars, but you do get excited talking about books, poems, plays…

The top talk for me was decidedly Irina Shestak’s talk on cellular automatas. It was super inspiring and got me thinking about a number of ideas. They will eventually materialise into something, but I can’t quite predict what. The other thing I liked was how she talked about finding inspiration not in front of a screen, which I think is something we all should practice more often. Not finding inspiration, because you can’t force it, but you can set the conditions by getting out of your usual habitat…

I also liked the talk from Ben Vinegar on collecting JS errors–it made me realise we’ve come a long way on catching and debugging errors.

The talk on building “UI” apps with “Blessed” (it took me a bit to realise the meaning versus the classic UNIX “curses”) made me want to build a CLI-UI app even if I have no need to, so that was good, I guess? (or maybe not).

It’s not because he’s my colleague, but I also enjoyed Mike Taylor’s talk on web compatibility and “why everyone deserves orange juice”, with a number of suggestions for building sites that don’t break in systems other than the developer’s. But the question on everyone’s minds (including mine) was: why “web compat” and not “web compatibility”?

Another cool talk was Alan Souza’s React + SVG accessibility talk. So cool to see React used to build SVG which is in turn used for more than just icons! I was also deeply embarrassed/irate that some people were making fun of the screen reader each time Alan showed a demo. Really? What a lack of respect and empathy for people with disabilities.

Myles Borins’ talk on node.js releases was a good introduction as to how is it supposed to work now that there’s a foundation and it’s all ‘srs bsnss’. I also asked him lots of questions before his talk so maybe I knew more than the audience. But I’m sure he’d love to answer your questions if you ask him because he’s a nice person anyway.

Rod Vagg’s talk was good as well and since it was a keynote, it was meant to have a Q&A bit, but instead of handing a microphone to the audience, they would use a moderator tool. I had high hopes as I had what I thought would be good questions which I submitted through the tool, and they were voted up by people (proving that they were interesting). But come questions time, they projected the tool on screen and some cretins thought it would be the perfect trolling time, and started submitting stupid questions, and other simplistic people voted for them. In a futile attempt to stop the trolling, the moderators deleted the stupid questions… and accidentally also some of the good questions including mine. Bah 🙁

Web Progressions

And now we fast forward to last week and London, exactly to Web Progressions, held in fashionable trendy Shoreditch, home to the highest number of pop up everythings and probably the most rolled-up jeans per capita in the entire UK, amongst other things such as delicious coffee. Yum!

My talk was about HTTPS, why it’s important to serve content securely for progressive web apps, and how to use Let’s Encrypt to get free certificates. People seemed to like it quite a lot and many told me they were looking forward to implementing it, which was very cool. Others said they wanted to build something that required https only so they could use Let’s Encrypt! And finally, others pinged me a couple days later confirming that they got so excited after the talk, they followed my guide and got it working already! Yay!

I was late to the conference so I missed the first talks. From what I saw, my favourite was perhaps Natasha Rooney’s on a future web without passwords, although it’s not clear to me how we will be able to migrate the one-time password “token” between browsers. It sounded a bit like a vendor lock-in in the horizon.

Jonathan Fielding’s talk on building responsive apps had also a bunch of good advice that should be common sense already, but sadly is not. I’m looking forward to seeing more talks from him! He had also volunteered to build the conference website! So thanks for that, Jonathan 🙂

The talk from Alex Sanders, on insights on building real-life progressive web apps at The Guardian, was super interesting and confirmed what we also suspect: Safari is slowing us down, as it doesn’t implement many of the features required to build fully capable web apps. Features such as, for example, Service Workers! Which are essential if you want to add push notifications, offline, background sync (in the future), etc. Boo Safari, but specially boo mobile Safari because users in iPlatforms cannot choose an alternative, more capable engine (whereas users of Android can switch to different browsers with entirely different engines–although… would the majority of not-tech-savvy users do it?).

The other issue is that there doesn’t seem to exist a progressive enhancement path for these features, so it is often not feasible to maintain two different codebases (or code paths) just to cater to all users. E.g. an appcache path and a ServiceWorker path.

I was also glad that Ruth John could finally do her Web MIDI talk without the projector going bananas and randomly flashing white noise for 10 minutes, as it happened in another conference recently. Yay MIDI and real time music on the web!

Belen’s talk on game development made me curious about playing with Phaser too, for no real reason than that it looks fairly easy and you can focus on building your game and not a game engine. It was also interesting that she gave “motivational” resources for people who cannot finish things or who think are not good enough to make a game.

Another thing that was cool was to meet old friends (hi Alastair!) and new old friends which I had only spoken to through via the Internet before (hi Charlotte!), and new people who I hadn’t met before at all. Overall a nice conference and I hope it keeps happening next year, so thanks to Daniel, Natasha and Bruce for putting it together!

Three stories about coffee

No more pods

The whole pod coffee revolution seemed to happen overnight while I was happily unaware of them in my tiny island refuge, drinking tea and eating Tunnocks cakes. One day I visited continental Europe, and everyone was raving about the new coffee machine they had bought.

Someone I knew during my university years lived in a newly built duplex and had a little espresso machine with which they made us a couple of foamy cappuccinos to help us go through the exams (or was it to impress us?!). It was incredibly middle class, an utopia next door, or next block, to be more precise.

So there I was years later, imagining this person had just acquired a similar little espresso machine and was perhaps going to tell me about their upcoming duplex move, only to be quickly disappointed when they showed me a Nespresso machine taking over half of their kitchen counter, attached to the one and only power socket and surrounded by metal racks of multicoloured capsules.

“Oh”, I said, trying to conceal my enthusiasm.

Obviously because this was the first time I saw one of these machines, I was totally unaware of how they worked, what the pods were and what happened to the pods once you were done with them. I was looking at the whole thing and wondering where were the levers? Where was the temperature indicator? The pressure dial? And what were those coloured thingies on the rack?

This all just lasted for fractions of a second, because obviously this person was really into the Nespresso machine. They made a demonstration: see, you put the pod here, then clickety clack, put a cup underneath, oh, wait until it’s hot, OK, now… TADA! Coffee!

I tasted it. It was… okay. A step above Nescafe, but certainly not the best coffee I’ve ever drank.

I mean, if your baseline is “instant coffee”, Nespresso is an improvement.

Personally, I had already converted to flat whites, and images of lining up for a Monmouth coffee came to my mind each time I approached Seven Dials in London, so the Nespresso spell didn’t quite have much effect on me.

Later on I learned how much waste the pods generate, and specially, realised how much space the whole implement takes. I was also in between mesmerised and terrified by the queues in the Nespresso shop in one of Barcelona’s big shopping avenues, and how proudly people emerged from them with a huge bag that held a tiny box with pods. And what about maintaining the machines? There is the water tank you need to fill, the water refuse thing you need to empty, the empty pods you need to dispose of… So. much. waste.

I kept loyal to my cafetière and hand grinder. I can put them away when I’m done with them, they can be cleaned thoroughly, and they don’t monopolise my kitchen sockets and counter.

The city of Hamburg has banned coffee pods from state-run buildings to reduce waste. Is this a first step towards the end of coffee pods? Will people change their minds, and what will happen to all those racks and machines? Will artists repurpose them into something nicer, like those artists that made rings out of used pods? We’ll see…

Coffee is as much about the coffee as it is about the process

I think the other aspect I dislike about instant coffee is that it removes the fun preparation side (measuring, grinding, waiting for the brew) and leaves you only with the boring side (cleaning the residue) and an average coffee. I don’t think you save that much time overall, and the amount of pleasure is certainly not comparable. It’s like junk food, but for coffee. Junk coffee. Fast junk coffee.

Last year we were at a conference in Paris, and there was this huge queue during the break to get access to a coffee machine. I said “this is horrible, we cannot accept this, we’re in Paris!” So we left the conference building, walked across the square, and had coffee at one of those stereotypical Parisian outdoors but not really outdoors area, because it was January and we were inside a sort of big plastic hut to protect customers from the sharp continental breeze. The waiter was yelling things to someone else, in French of course, we looked at passers by, and froze every time someone dared unseal the door to get into the cafe. But we were drinking strong coffee in proper ceramic glasses, sitting in proper tables, so it was an acceptable sacrifice.

Meanwhile, people in the conference were in a basement, queueing for bad coffee in plastic cups.


I think I know you

Last Saturday I went into a new-ish coffee shop. I might have been there three or four times by now, since it’s slightly out of my normal whereabouts, and I have never been there at the same time on each visit, so I am not really familiar with the staff yet.

I got in, had some friendly chit chat with the person at the till, placed my order and moved to the other side. I heard “Flat white?” from behind the espresso machine, and thought, “hum, this voice sounds familiar”. I moved aside, so as to better identify the source of the question and…

“Hey, I think I know you? Didn’t you use to work at XYZ?”

“Oh! Yes! Yes, I did! How do you know me?”

“Because I used to go to XYZ too!”

“Ohhh! I spent some time in Europe, and now I’m back. What happened to XYZ? Do you still go there?”

“Very nice! XYZ seem to have changed owners, and all the staff are gone and replaced with other people… they’re OK but they’re boring. Plus they are more expensive now, and changed the fidelity card, so you now need 10 coffees instead of 6… And the worst of all…”


“They removed the outside bench!”

“Oh no! Although it makes sense because the council complained so much about it, they were always giving us trouble”

“But drinking the coffee outside was the best part… So now I go to ABC which does have an outside bench! Anyway, it was nice to see you again!”

I left the shop in between amused and puzzled. Are there so few baristas that at some point I will know who they all are? Or was that just a coincidence?

And the NodeBots from London assembled

I attended today’s NodeBots London event. The theme (?) was “NodeBots of London… Assemble!” and so we did. Compared to the last event I went to in July, which was way more informal, this was considerably bigger (within the venue allowances, of course) with more people and more things to look at and talk about!

First Oli made an introduction to NodeBots (essentially a place where people program hardware using JavaScript, but everything is allowed if you want to), what Johnny Five is and its relationship to node-serial, same for Firmata, and then some interesting tips for software people turned amateur hardware people I hadn’t heard of before, such as:

the case of the generous motor, in which you can fry Arduinos connected to motors without diodes, when the motor keeps spinning even after you stop applying input voltage, and so it becomes a dynamo which feeds current back into the circuit and so… bye bye Arduino which didn’t have any protection
the flappy servo, when you sequence value changes too fast and that results in just some feeble erratic movements instead of the dramatic ones you expected

Then Alex made an introduction to electricity, in general, which was a good refresher for people like me who studied some electrical engineering at uni/school but haven’t used it for reals since then. He explained the basics (V = IxR) and also insisted again on the importance of putting the right resistors in the right place to prevent things getting fried. He used this online circuit.js utility to depict circuits and the flow of current, the voltages at each point of the circuit (in the subcircuits perhaps?)–super useful and I so wish I had had this when I was taking these subjects. Makes things way more intuitive!

And with that—we hacked a bit! Jerome Loï (who had travelled all the way from Paris!) tried to resuscitate my pseudo fried Duemilanove with a shield and a thingy to mount the ATMega168 only, but turns out that it’s such an old board/chip combination that the bootloader firmware is not distributed anymore! So I left it aside and focused on my next task for the day: find out what the components in the kits I have are! With Jerome’s and Alex’s help, and some image searching, all the components were identified in a matter of minutes. Yay!

Then I was not sure of what I wanted to do—I didn’t really want to start a new project although I have a practical idea, and I was also hungry and Oli’s marvelous cooking skills didn’t help to stop making my stomach rumble. Whenever I tried to focus on hardware or research for my idea, a new wave of delicious slow-cooked stew would reach my nose. Ahhh!

Fortunately Charles made a lightning talk describing how he goes from thought to execution using a sketchbook and Autocad instead of thinking by executing as it’s advised in many environments (something like “you don’t want to waste time and effort on build something expensive that might not work, it’s better to think on a sketchbook first”).

Also someone (whose name totally escaped me, ahh, sorry) gave a little intro about a somewhat related event about which I heard about aeons ago but which seemed to have faded out, Dorkbot. It’s been revived, but I’m sad it is held in a) a quite remote location b) at a time I can’t go, because it sounds like the kind of thing I’d like to attend. SAD FACE.

And then it was finally time for lunch. As expected by the opening flavour, it was so yummy! It gave the day a sort of lovely family reunion for Sunday lunch, except we didn’t argue about silly things, but just used the time to catch up on what we had been up to since the last time I visited their maker space, or talk about what we were building today.

After lunch, I spoke to various people such as Andrew Nesbitt of manythings-fame, and learnt new cool things. Such as:

  • Platform.io which is an IDE for “things”, built on Electron… which can work with Arduino and also has code completion! so if you don’t like the Arduino IDE you can use this instead
  • The Arduino board clones such as the Funduino are interesting not only because they might be cheaper than the originals, but also because sometimes they offer cool features such as additional pins for +5 or +GND, which sometimes can make it easier to build something by connecting the wires directly to the board instead of using a breadboard to ‘multiply’ the pins. Or has a toggle to switch between 3.3 and 5V, etc. This very interesting tip came from Jerome, who also told me about this French shop called HackSpark which not only have a lot of those Arduino compatible boards on stock, but also might seem convenient for folks in the UK. And also have a physical shop in Paris! Wow!
  • The Espruino is small. Like… really small! It also transpiles JavaScript to Lua (if I understood this correctly). You write JavaScript instead of Arduino C flavour, and you can get really quick feedback. Sounds like a cool idea for prototyping without having to tether as with Johnny Five—most useful for wearables!

But my super favourite thing I learnt about today is that pencil lead is a conductor! Jerome built a quick and fun pencil based resistor which controlled the speed of a 555 timer connected to a speaker. So effectively he was changing the frequency of an oscillator, and changed the pitch of the sound as he moved the pencil tip closer or further away from the banana connector clipped to the paper. The other end of the pencil had a drawing pin inserted on it and a wire too, effectively closing the circuit! You can see all this in action in this little vine:

We also talked about how I should use an accelerometer and not tilt sensors for my idea (to avoid false positives), and ways to use Web Audio with hardware stuff, and ways to make things that made noise, even how to make a leslie / hammond! So many things that we can make! So exciting!

And there were many other things I learnt but I can’t recall now (hopefully my brain will retain them). Do join one of these NodeBots groups if you can—great things to learn and a very welcoming environment!

It was also cool to devirtualize people I apparently had met already but totally didn’t remember (hi Jerome… sorry), and meet new people! Hopefully next time I will remember 😀

Oh and Jerome, who was one of the main instigators of the NodeBots cat mesmerizer workshop at LXJS 2014, happened to still have a workshop kit in his travelling suitcase and gave it to me… which means I have a laser in my possession!