Extreme decoupling or all-as-a-module

I opened my laptop in the morning and found one of my open tabs in Nightly was for Vue.js. I don’t even remember how I ended up there. Was I reading about frameworks? Did anyone send me the link? Who knows!

But I was curious. I am not a megafan of frameworks, but I like looking at them. One, because their idioms are often adopted by other developers, so it’s good to be aware of where are things going. And two, because frameworks do lots of “magic” in the background, and I always want to know how they implement their “magic”—maybe I’ll want to adopt some of it!

So instead of closing the tab, I perused the page. It has a virtual DOM as React does, but they seem to take great pride on their overall minimalism (small file size, little intrusiveness). The examples are amongst the most readable I’ve found for frameworks when it comes to the JavaScript API; the HTML directives are as alien-feeling as most frameworks.

Later I was discussing this strange incident with friends (“I found an open tab in my browser—do you think this is a signal from the universe that I should get into Vue.js?”) and Irina also highlighted the fact that Vue.js “components” might be simpler to build than the equivalent in React, and also be less coupled.

This derived into talking about The Dream:

You know what the dream is? Have everything be an npm package that I can plug in to any framework I like. And everything is packages packages packages

📦.js

Oprah giving free packages away to everyone
You get a package! And you get a package! And you get a package! And you get a package! And you get a package… everyone gets a package!

(Irina demanded an Oprah themed meme)

And of course this reminded me to earlier conversations with chameleonic Jen about modularising everything and maximising reuse. She would propose, for example, abstracting a card game into separate modules; one for handling the rendering, other for handling card games in an abstract way, another one for handling a specific type of game. This way you could build multiple games by just providing an implementation for the specific game. (Games are notoriously often not built this way).

Likewise, Aria talked about radical modularity at Web Rebels and the notion that if your modules are small enough, they are done. Finished. You rarely need to ever touch them again (unless there’s a bug). Watch the talk: it’s very inspiring.

I really like this “pure” idea, and can work very nicely as long as you keep your data and logic separate from your view.

Unfortunately, the issue is that UI code often intermingles both data and view, so you end up declaring your data as instances of whatever base component the UI is using, which is not very maintainable on the long run. If you want to change the UI you will need to take the ‘data’ bits out of the UI code, or write some sort of adapter between “UI code” and “data”, to have to only change “adapter” when you decide you don’t like your current view layer. This could be a performance hit, so you might want to sacrifice flexibility for performance.

But hey… everything in computing is always a trade-off!

 

A very quiet Saturday

I was overly ambitious with my running a few days ago, and I hurt my ankle, and it didn’t help that I couldn’t stay home Friday and work from there, as I had to go somewhere and walk a lot in between places. By the time I was back home, my ankle hurt way more than in the morning, so yesterday I decided to just stay in and enjoy a quiet, restorative Saturday.

It turned out to be way quieter than I expected, as the internet connection went down for a few hours.

Mind you, it’s not like I was totally disconnected from the world, as I live in an area with 4G coverage and all that, but I am way more conscious of the data consumption when using my phone, so that meant I self-restricted myself to the essentials all the time the connection was down.

I found it very interesting (although not entirely surprising) that I got a lot of things done…

Continue reading “A very quiet Saturday”

Art prompts

When friends and relatives learn that you like drawing, you inevitably get art presents. This adds up to the irresistible attraction that stationery and arts and crafts shops exert on me and results in a lot of unused art supplies.

I decided I’d make a drawing using a different kind of supply every day in order to put an end to this situation. Of course being a software developer I wrote a randomiser to choose two or more supplies from the list. And of course once you randomise a thing you can randomise more so I added “extras” and subject ideas.

So here’s my art prompts generator which will possibly only work for me as you don’t have the same supplies as I do. But… the source is here—fork away if you want to finish with your unused art supplies! Or just press the ‘Get another prompt’ button! Eventually you’ll get something you can use.

I’m tracking the progress of my project in my new insta account: @artbysole

The best thing about this project is getting to use supplies I generally don’t gravitate to, and which I’m unfamiliar with. Which might result in “accidents”, as I do not know how to use them, be it on their own or combined with other potentially weird pairings. So far I have had just one fun accident–when I tried to apply fixative to a pastel and ball pen drawing and the fixative started dissolving the ball pen ink. Fun times!

Looking back at 2016

I didn’t write this before 2016 finished because, well, I was just so busy with celebrations and visits! But I figured it would be a good idea to look back and consider the achievements from last year before I get carried away by the new year.

Personal wise:

  • I’m very happy—I have a wonderful partner who’s kind, understanding, compassionate, clever, funny, and intelligent. We ‘get’ and care for each other. It’s great!
  • I’ve also taken up a martial art. I had started judo and aikido in the past but never continued because I kept getting hurt. This time it seems to stick as the gym is super welcoming and encouraging to women and people of all sorts. I’m still such a noob, but compared to myself a year ago I’m way stronger and flexible now, and my back aches are all gone. Also: there’s nothing like a punching bag to let steam off. I bet if more developers did it, we would have less debates on tabs vs spaces or any other irrelevant trivia 😏
  • I’ve biked and ran less—partly because I was close enough that I could walk to the office, and partly because I was tired the day after the gym! Also after the office move it takes a bit to find the new optimum routes, so I’ve taken the tube a few times…
  • I have also started to do meditation. I was curious about this for a long time, although I thought it would not work and often while doing it I think “this isn’t working” but I can tell you there is a difference between the days I do and do not do it (I am using a service called Headspace).
  • I learnt the basics of Italian! I now know enough to shyly order food and very slowly read normal books. Very exciting!
  • Finished a sketchbook I had started in October 2015. A good improvement from the previous sketchbook that took 3 years to finish! And I am back to drawing daily again.
  • I haven’t drank a Coke since June and… I really don’t miss it. As experiments I also stopped drinking coffee and alcohol for a month, but I do really like coffee, and the occasional good quality alcoholic drink. I’ve also learnt a bit more about alcoholic drinks, though not enough to be a total snob (yet), but I know more of what I like and why.

Work wise:

  • I worked on a lot of different topics: MediaRecorder, Let’s Encrypt, DevTools, Web Audio, the past and future of the Web, Servo… wrote lots of articles, and gave a lot of talks in many different countries. I also went to the Southern Hemisphere twice in different continents, which I didn’t expect to do at the beginning of the year. This was very gratifying but also very exhausting. I was glad that I…
  • moved to a different team, in a new role, and with a more “sedentary” profile. I’ve only been 3 months on this and I was still finishing tasks from the previous team, so I can’t talk much about it yet, but I’m very happy so far.
  • Also recorded a few podcasts and tutorials. These are fun—please contact me if you want to feature me!
  • And put in words what many women-colleagues and friends were thinking each time you asked us to talk at your conference, and Quartz asked for permission to republish, which I never anticipated.

Things I did for the first time:

  • Visited: Greece, Uruguay, Norway, Denmark (twice!), Thailand, Singapore
  • Drank Greek coffee (not my thing) and ginger tea (definitely my new favourite thing)
  • Tried orange wine (quite a strange thing), also sherry and port—I decided I like the sweetest varieties
  • Tried carne cruda in Italy (not my thing) and Uruguayan beef (truly my thing)
  • Used a lounge shower. It felt like absolute heaven after a long flight in which I was also cramping like there was no tomorrow. Oh, the joys of womanhood!
  • Tasted and learnt about proper balsamic vinegar in Modena.
  • Went to the opera in La Scala in Milan… dressed in heels! (!)
  • Tai chi, yoga and pilates… at 7 AM (!!!)
  • Experienced the English Christmas dinner with turkey and everything. Very yummy although I did miss the Spanish sweets. Mince pies are so not my thing.

Other highlights:

  • Walking on a low tide beach in Thailand and looking at all the lurking small animals and the distinctive vegetation
    • I saw a sea urchin!
    • Also: all things coconut while there. Coconut water, coconut soup, coconut dessert…!
  • The Pet Shop Boys concert in the Royal Opera House. Such a beautifully designed concert! So many hits! It was a party from beginning to end.
  • A visit to the Down Street disused tube station. Eerie!
  • The two trips to Italy, for pleasure, not work!
    • and there: the disused FIAT test/race track on top of the Lingotto building in Torino.
  • Visiting a fountain pen shop in Singapore where the very knowledgeable owners confided me with All The Tricks to using fountain pens while flying, All The Secrets about flexible nibs and also insisted on thoroughly cleaning my Lamy Safari which had almost exploded on my way to Singapore. Such nice people.
  • Wandering around Melbourne’s Fitzroy area when it was hot, finding an edgy indie boutique and having a nice talk with the designer-owner of the shop.

All in all it has been a very good year for me: I’m doing more of what I like and identifying things I do not like (in order to stop doing them) and discovering new things I like (but didn’t know about). So I’m… READY FOR 2017!!

Notes on JSConf Australia 2016

I spoke at JSConf Australia in Melbourne at the beginning of this month. Like in CSS Conf Australia, the videos haven’t been published individually yet, but the event was streamed live, and you can watch it again… and again… and again…

My brain got into one of those intensely obsessive focused moments pre-talk so I will admit I could barely pay attention to the talks prior to mine—I’m really sorry, specially because I heard so many good things about them!

These notes will be shorter because of that. Apologies if you were expecting a full conference review… but sometimes you cannot get everything you want! 😔

And now to the talks!

Jessica Lord: “Electron: A Tale of Two Processes”

This one was a really enlightening talk about Electron’s architecture. I had no idea it worked that way, and my assumptions were basically wrong. It was good to be shown the truth in an amicable way—like Jessica’s! I really enjoyed this talk and that’s big, considering it was right before mine!

Ruth John: “How to be a Web A/V Artist”

Ruth explained the secrets behind her “Web VJ*” set-up and also managed to produce an even smaller MIDI controller than the last time I spoke to her. It’s as if she kept getting Bluetooth miniatures!

She introduced some comedic elements into the talk but I’m not quite sure they worked for everyone… I felt some of the “funny samples” (like the Windows 9x error sounds) were lost on parts of the audience… that were younger than expected!

*Web VJ sounds so much like a new and upcoming API. Maybe… maybe… navigator.webvj.... 😏

Michaela Lehr: “An Introduction to WebVR”

She had an slightly different take on WebVR, which was really refreshing. She also mentioned things rarely mentioned such as the fact that VR can cause strong psychological and physiological responses on some people, and we need to be mindful of that when we design the new experiences in the web. If certain things are VR only, are we going to exclude some people this way?

Lena Reinhard: “Debugging the Tech Industry”

I have huge respect for Lena—she’s always delivering these immensely difficult talks. It’s hard to be the bearer of bad news. And there are plenty in tech!

Weeks after the talk, I’m still thinking about the message, and trying to come up with ways in which we can build tech that is not “accidentally” hostile to everyone who is not the creator of said tech.

Live.JS + Karaoke(.js?)

After the talks were done and we took the “family photo” and announcements were done, the room was cleared and Matt McKegg and Ruth John set up shop to have one of their Live.js events, like the one in Singapore.

I challenged Matt to “dubstepify” his act, which sort worked because his music is super improvisational.

Once they were done, an impetuous bunch of karaokers took up the stage and starting singing with lots of energy and heart and soul, but also lots of misplaced notes. I described this as “this is when the bar is closed, the last patrons get out and they really want to keep singing the last song the bar was playing, and so they keep singing it in the streets”…

This is when I left—and I was so tired anyway, I could barely stand on my feet, no energy left to listen to extremely eager karaokers—let alone join in the party 😜

Overall

Like CSS Conf, this was a really chill and enjoyable conference. I had again lots of interesting conversations–more so on this day because people had seen me speak, so they wanted to ask me questions or just discuss ideas they had had!

I also learnt a few things. All good stuff!

If you are ever faced with the possibility of submitting a proposal for this conference, don’t even think about it—do it! It was really lovely and well organised—I’m very glad I was invited to apply and my proposal was accepted!

Also: Melbourne is such an interesting city… lots of things to look at and explore, from street art to museums to neighbourhoods to just buildings, and of course great food and coffee, although I still can’t stop feeling so confused with “Jingle bells” playing on the background while signs for “Happy summer!” and “Merry Christmas” live side by side on the storefronts!

I feel like I’m missing out on the part of Australian culture that has warm reggae Christmas songs instead. If that doesn’t exist—it MUST be invented!

And this is the last installment of “notes on…” for this year, at least!