Four parts of your body that get out of shape when you work with computers all day long

This year I got serious about my fitness. I got my posture and range of movements assessed, and you know what…?


Continue reading “Four parts of your body that get out of shape when you work with computers all day long”

Splitting PDFs into single pages using Automator

Every quarter at Mozilla managers get an automatically generated PDF report that we need to split into single pages.

The first time, I did that with… dragging each page out. Slow, but reliable! It was only two pages, so it’s doable.

The second time, I automated it, using THE AUTOMATOR!

This app was introduced in 2005 in Mac OS X and I’ve never actually used it for good. Well, I’m glad I finally found some good use for it, as these reports are getting longer and I would rather spend my time on something more interesting than dragging thumbnails around 🙂

So, instructions if you don’t like watching videos:

  1. Open Automator
  2. Create a new workflow
  3. Select Library… Ask For Finder Items… double click to add it to the workflow
  4. Select PDFs… Split PDF
  5. And RUN IT, using the bottom on the top right!

It will ask you for the PDF you want to split, then it will split it in pages and place it on the Desktop.

You could get fancier, and you probably still need to rename the individual files, but I haven’t researched that bit yet.

Happy (and fast) splitting!

Millenials are ruining web development!!

I read this post from CSS Tricks that lists a number of “CSS utility libraries” with curiosity, which quickly turned into a mixture of confusion, panic and disgust, with each new example of CSS class names you would use with these libraries.

Let’s look at some of the class names; highlights are mine.

  • d:i-b f-w:700 p-x:3 p-y:.7 b-r:.4 f:2 c:white bg:blue t-t:u hover/bg:blue.9
  • mw9 center pa4 pt5-ns ph7-l
  • f3 fw1 georgia i
  • flex flex-wrap items-center mt4
  • tcg50 ft10 fw3 mb2 md-mb3
  • display-title color-white
  • pad-1-bottom text-blue border-bottom marg-3-bottom
  • bgr-green text-white grid-3 s-grid-12 pad-2-vert pad-1-sides
  • constrain-md md:constrain-lg mx-auto pt-24 pb-16 px-4
  • fontSize-xxxl
  • xs-col-12 sm-col-9 lg-col-10 sm-offset-3 lg-offset-2

These frameworks claim to use humanised classes that will make your development faster. But…

  1. Where is the separation of concerns? Did they not get the memo about not including font names, colours, and other visual attributes in the HTML? What if they decide to change the headers’ colour? Then you need to change all headers to go from class=”white” to class=”orange”, etc? Your development is going to be “fast” for a moment, but once you start having to maintain the code you’re going to regret this brilliant idea.
  2. There’s nothing human to using those classes. They are a step away from being a domain specific language… a programming language. Humans do not use programming languages to communicate between them (much to the chagrin of some “humans” who would like otherwise).

I can’t believe it’s 2017 and we still have to see this (let alone argue about it).

I guess they didn’t see the <p style=”color: red; font-family: Times New Roman;”><i><center>Old times</center></i></p> when we had to write crap like that not because we wanted, but because that was the only way. And oh how happy we were when we could take all that formatting out of the mark up and put it into a file and not have it scattered across all the files in the site, interspersed with the content. Ah, the audacity of youth…! Millenials are ruining web development! Groar! 👹

But if that wasn’t enough for you to disturb your calm on this fine Friday morning, here’s this excellent example of deeply offensive CSS, except we need to look at the class and the HTML tag to get the full kick in your ancient guts feeling 👟💥👵🏼:

<a href="#" download="" class="button button--secondary xs-mr1 xs-mb1">

If they want a button that looks and acts like a button… why… don’t… they… use… A <BUTTON>???!?! 😱

Please don’t do this. It’s not good for anyone–neither users, neither future developers that have to pick the maintenance after you were ‘clever’ and ‘humanised’ the code.

Or maybe it’s an ironic version of 90s vintage code, hipsterised. That must be it 💁🏻

Dodging garbage fires

Trigger warning: harassment, non consensual sex, porn, and all other sorts of gross things I have dealt with.

You might have heard about “the Google guy“. I won’t rehash it again. Instead, I want to focus on the questions that people ask me: “have you seen that?” and “how come I’m not outraged?”

Short answer: because I’ve been seeing this, in one way or another, since I was in kindergarten and I’m very, extremely, incredibly tired.


  • I’m in kindergarten. I want to climb trees, play football and explore the playground. A mean bully boy surrounded by its group of coward groupies declares I can’t, because I’m a girl, and also because I am wearing a dress.
  • I’m in primary school and I want to play with construction games. I am told that is what boys would do. Do I not want to play with Barbie?
  • Later I want to attend computer classes after school. I am told that is something boys would do.
  • In secondary school, I want to enter the drawing contest in my school. I am told nope, girls can’t enter the drawing contest, they have to do aerobic or be cheerleaders during the (male) football match.
  • I’ve been accepted at uni to study Computer Science, I proudly tell one of my class mates. He looks at me with a troubled face and asks/declares “that isn’t something women would study, is it?”
  • I’m at one of the practice labs in the uni, and a male teacher makes a sexist comment about women being really good at cleaning up, when I say I’m tidying up our assignment before submitting it.
  • Later, the mentor where I’m interning describes in a very nonchalant and clinical way his proposition: that I allow him to perform some sexual acts on me, so he could decide if he really likes his girlfriend enough to go live with her forever. In parallel, one of my intern colleagues declares he’s in love with me and gets upset that I refuse him and his gifts. I quit, because jesus freaking christ, I just want to build videogames and my curriculum, not have sex with my coworkers.
  • Elsewhere, we built a website, then I’m told that it’s best if we don’t say that a woman built it, because then people would try really hard to hack it.
  • I’m at a demoscene party and I’m surrounded by men watching porn. I’m confused because a demoscene party is meant to be a computer event and it’s supposed to be about technical excellence, so… why are they watching this here? What is wrong with people?
  • At another demoscene party a guy asks me if I’m “a real demoscener”. I am…
    • releasing a demo which I coded myself with my own scripting system based in Lua and C++,
    • plus a song,
    • and I’m being interviewed and joining a panel or two (I don’t even remember),
    • and also teaching a seminar
    • … and I still need to prove myself somehow. Do I need to dress like Trinity from the Matrix?
  • On my first startup I’m the only woman developer out of 8 developers, and I accidentally get cc:ed on an email in which the CTO refers to me as “the girl in the office”, and wonders if I know any programming language.
  • On the first day of another job, I’m introduced to one coworker, who asks what I’m going to do there. His reply: “Oh. I didn’t think women could program”. Perhaps not ironically, he was terrible at programming. Also at being human.
  • In conferences, meetups, and similar gatherings, I’m warned when technical discussions are happening, just in case I want to refill my drink or retouch my nail polish, I guess.
  • In another startup, the CTO tells me “in confidence” that the VC of the startup where I work is “slightly against women in tech” and so was “slightly reluctant” to me being hired, but he “is fine now”. I “slightly wonder” if I need to give him a medal or send flowers in appreciation.
  • Someone apologised, in retrospect and “in confidence”, for assuming I was a man when they read my CV.
  • A very well known speaker told me people were very interested in seeing me speak… because “I am a very good woman speaker”. Not because I have interesting things to say, it seems.
  • At the after party at a conference where I spoke, a stranger holds me by the waist, then gets very upset that I immediately free myself from his embrace and ask him what the heck is he doing. Later, another guy tries really hard to hook up with me, despite my absolute lack of interest and continuous “no” and refusals. His colleagues assume that he’s going to be successful anyway, and ask him whether they should just leave already, since this is pretty much “a done deal”. I am the one who leaves in a whim because I’m done with all this shit; I just wanted to enjoy a drink and talk to interesting people, not be harassed by randos.
  • And the list goes on, and
  • on, and
  • on, and
  • on forever

And so it looks like I have ‘toughened up’, but not really, because what happens is that you develop this kind of automatic system that detects garbage from a distance, and when I see a barrel of garbage in flames like all these guys rolling my way, I just dodge it as fast as I possibly can, because if you get too close you’re going to get burnt out. There’s no extinguisher for this kind of fires; the only solution is to let them consume themselves to ashes.

But it is tiring. I am expending all this energy that men do not have to expend, and that’s simply in order to exist and do my job without being run over by somebody else’s prejudices or taken advantage of.

I would prefer if I could focus on being my authentic, efficient and greatly productive me.

Because the truth is that I’m actually freaking good at all those things I’m told I can’t or mustn’t do. I’m great at climbing, and at drawing, and playing with construction sets, and telling weirdos to get lost (I’m very good at this), and developing software and systems (I’m even better at this), and fixing and building stuff.

And it’s not only that I’m good, but that I’m actually way better than those self-appointed gurus of biology and gender studies who diagonally read a Wikipedia article once and then decided to go around “weighing in” unasked and telling people what they can or cannot do.

And so are all my friends who have had to put up with all this bullshit already, and are freaking good at their jobs… if only you would let them do them!

Many, who are not as stubborn as I am, have left towards fields in which they are treated like human beings, not sexual accessories, and aren’t questioned every single day. Even I consider leaving from time to time.

And that’s why we’re not “reacting” to this. Because we’re tired of “reacting”.

That said, if the rest of people wanted to “act”, instead of expecting the minorities to “react” as if it were a live entertainment show, it would be appreciated. Tell them they’re being sexist. Tell them they are dressing up facts made out of thin air as science, to support their own discriminatory narrative. Or just tell them to STFU and grow up. It would be nice to not to have to do it ourselves, just the once.

Mulder, this is the field in which I grow my fucks. You will note that it is barren.
Mulder, this is the field in which I grow my f****. You will note that it is barren.

Service Workers in iOS?!!!!111one

Someone has spotted a bug in WebKit’s Bugzilla with a patch for implementing Web IDL and stub for Service Workers.

The “PWA community” is 🔥 on fire 🔥 on Twitter right now.

I find this amusing, as I think it was only yesterday that I was reading Yet Another Rant in Medium by someone who had to learn React Native instead of just building a website, because iOS didn’t support Service Workers, also accusing Apple of not supporting the Web because it doesn’t make them any money directly. I don’t think that was the straw that broke the camel’s back, but it’s a funny coincidence.

I also don’t know where the rant is, as people share so many Medium “pieces” in twitter and I find it hard to differentiate between them. I also often just open in an incognito window out of habit so I can’t even find it in my history.

Anyway, I’m excited! It won’t be implemented next month (I reckon), and we’ll probably have to wait until the next big iOS roll out that ships a new Safari, but it is nice to see movement rather than a stern ‘under consideration’. In the future, you will not need to build two or more different versions of a native app, using different programming languages, in order to get offline support, push notifications, etc, etc. Yay!

I’m also secretly happy that WebKit use Bugzilla as well. There’s something about shared pain that fortifies the soul… 😂