let's roll

How NOT to get women in tech

It’s no secret that tech is largely a boys club. Predominantly a white boys club. We could most definitely do with more diversity in all fronts: more women, more people of color, more age groups, etc.

But please, please, if you or your company want to address this issue, don’t just do it to cash in by jumping into the bandwagon. And even if that is your ultimate reason, please try and do a good job about it so your insincerity is not so painfully obvious.

What do I mean? I mean that if you want to name examples of notable women in tech or science to inspire young girls, don’t be so damn lazy and pick more recent and relevant examples than Ada Lovelace.

Yes, Ada’s story is fundamental and inspiring, but a high school girl in 2019 reading about how STEM is not just for boys, and having the only woman named be a 19th century mathematician, is most likely only gonna be bummed about the whole thing.

There’s plenty of women to choose from, for whom we have actual photographs to go along the text, instead of oil paintings: Margaret Hamilton, Katherine Johnson, Susan Kare or Megan Smith to name just a few. Hell, these past few days just gave us the amazing Katie Bouman. I’d bet it’s hard to get a more fitting example to get young girls into science today.

All it takes is a little time and will to do it right.

The inescapable presence of booze

A little over a month ago my little, 18 year old brother had an accident. He went to a party with friends and got drunk, and while going back home he started feeling sick and wanted to barf. He asked his friend who was sober and driving to please pull over, got off the car, and from some stupid reason decided to jump over the crash barrier to have a walk. Behind it there was no field, but a steep slope and ditch. He faceplanted. Hard. Broken nose, broken orbital, broken wrist, both eyes black, huge gash on his lip, and an assortment scrapes on his chin, cheek, neck and ear.

The thing is that in addition to the visible injuries and the concussion, the fall also gave him an epidural hematoma. Thankfully his friends had gotten him back on the car and to the hospital right away. He had surgery to relieve pressure to the brain and he is now slowly getting better.

This whole ordeal has been obviously hard on the whole family. For me, seeing my baby brother (he might be an adult now, but he will be my baby brother to the day we die) in such a state, with the threat of permanent injury or even death looming over him marks the time I’ve been most worried about anybody other than myself. I seriously don’t know how parents deal with this kind of situations without losing their shit.

It also got me thinking, again, about alcohol and its influence in our social life.

I’m Straight Edge. I have been since I was 16, and a big part of that was to serve as a role model of sorts to my two little brothers. I wasn’t going to ever preach, but I wanted them to see that they should not ever feel pressured into doing anything they didn’t want to. I wanted them to see that it was ok not to drink or do drugs, even if most people do.

However I’m not stupid nor dogmatic. Chances were they were going to eventually gonna drink or do drugs at some point in their lives, so I’ve always been very honest about my opinions on the subject, but also about how I’m in the minority and what the struggles of going against the grain in this issue are.

I’ve also tried to encourage them to think and look information up for themselves, so when our other brother left Spain to study abroad, I bought him a book on drugs, their effects, risks and costs (Drugs Without The Hot Air by David Nutt). That way if he decided to do anything he could at the least make an informed decision instead of simply trusting some idiot friend.

Above all I know that their decisions are theirs, and theirs only. I can be there to give advice and support if asked, but nothing more.

Still, I can’t help wonder, what now?

Hell, if our dad was still with us he’d probably try to ground him forever but I know that’s be pointless and unfair. My brother had an accident, it’s not like he did it on purpose or that he was doing anything too reckless/out of the ordinary. He doesn’t have a problematic relationship with alcohol by normal standards. He’s a good kid and a good student. He’s never gotten himself in trouble. He just had one bad night.

The thing is that if he had been injured doing anything else many would be asking him to consider not ever do it again. He could then listen or not, but at least the request and the consideration would be expected, and whatever decision was made, it would pretty much go unchallenged. If somebody gets really hurt skiing and decides to never ski again, some might consider it excessive, but understandable. Same if they decide they were just unlucky and decide to go back to the slopes again. But with drinking the possibility is not even on the table apart from the ocassional joke.

Drinking is so integral to social life – specially for a college kid – that it feels unthinkable to let it go, even on the face of life threatening injuries.

I was lucky. I was a hardcore kid and a skateboarder, so in my social circle people at least knew what Straight Edge was. I could easily find like minded individuals. There was a support system. Hell, at least it was an issue to be discussed. My brother on the other hand is a “normal” kid. Alcohol is not something to be questioned. It just is. It’s the lubricant that greases social interaction. It’s the provider of fun. The reason for partying.

Can I expect him to ostracize himself willingly? To make his social life harder on purpose? Do I want him to have to deal with being “the weird one”, the teenage teetotaller. I had my fair share of that when I interacted with people outside the hardcore scene and it wasn’t fun nor pleasant, but at least I still had my own little world where I was understood.

Alcohol has coopted, along with drugs, all our social spaces and shunning it turns you into an outcast. It’s simply everywhere. It’s inescapable. And today, after almost 18 years of not drinking or doing drugs, it still bums the fuck out of me.

The long road to purple belt

This is a long read in case anyone cares about my journey from white to purple and how I finally beat the blue belt blues. I hope it’s not too boring but it seemed good and cathartic to look back and reminisce a bit.

I began my BJJ journey in August 2009, at 25 years of age. I remember thinking I was gonna try to get my Black Belt in 10 years or hopefully less. I knew it wasn’t gonna be easy, but it still seemed feasible. I had a great team, great teachers (we had 2, one more focused on pure BJJ, and another who leaned more towards MMA /grappling) and I felt like I was learning so much so fast. My fiends hated that I was constantly trying shit on them. ψ(ಠﭛಠ)ノ

I started competing almost immediately. 3 months in I went to my first competition, lost on the first fight miserably. Still, I was hooked! I went to every competition I could after that. On my 4th competition I broke the first fight curse: I injured my elbow because my opponent got me in a very tight arm bar – I remember the referee’s face looking at me like “What the fuck are you doing kid, tap!” – but somehow I managed to escape and turn the fight around.

From that point forward things started to progress faster and wins came more easily. I thought I was gonna get my blue in 2 years, even though in my team promotions didn’t come easily. I didn’t in the end. Getting a gold eluded me, I had plenty of bronze medals and some silvers… my teacher demanded gold though, so I had to wait a bit more for my promotion. I finally got my first gold on my third year as a white belt and ending up getting my blue belt in June 2012.

Things had changed a bit by that time. The team had split in two. There were some issues between one of the teachers and the team (Werdum) and things reached a point were thing got a but ugly between them. Those of us who were more focused on the gi left the gym (and Werdum’s team) to follow the BJJ-focused teacher, and those who were more into MMA stayed at the old gym with the other one. It was a sad situation but there were no resentment between former teammates and we’d see each other in tournaments, etc.

Blue was a different animal but still I was so motivated! I was still on my path to black belt. I was gonna work hard and make up for “”lost time”“ in white belt. I loved training, I loved competing. I just had to be consistent, endure and enjoy the grind, and nothing could stop me! My shoulder had other plans though…

One day training I was defending an omoplata. Went for the jump-over escape and my shoulder twisted in a baaaaad way. It hurt like a bitch. I figured I’d have to rest for a couple weeks and I’d be back. It stopped hurting and a few days in, I was lifting weights and my shoulder popped again, bad. This seemed serious so I went to the doctor and it turned out I had a torn labrum and had to get surgery. It was May 2014 (a couple months before graduation time) and right there I knew there was no way I was gonna get my purple belt in two years as I hoped I would.

I got the surgery in June and the injury was even worse than they thought it would be. They went in thinking I was gonna need 4 anchors. I ended up needing 8. The surgeon somehow never seemed to remember my face whenever I went to his office for check ups he would always be surprised when checking my record “Damn! 8 anchors!”.

Post-op and rehab was fucking miserable. Painful and slow. I ended up not being able to train for almost a year and a half because my mobility would not come back. I worked my ass off, did my exercises and all that, but my shoulder just didn’t want to improve as fast and as as completely as I hoped it would. Thankfully I found a new rehab doctor and after a single infiltration session (which my surgeon was opposed to because “it wouldn’t make a difference”) I regained all my mobility back.

I went back to training, and I felt like a white belt again. I knew what I had to do, but I was slow and clumsy. Again, I figured it was all a matter of time to get my jits back, and all I had to do was go to class and be consistent. However, the drive was simply not there anymore. The gym just didn’t feel like home as it used to. I’d miss a lot of class because of work and on those days I actually finished early BJJ seemed like the last think I wanted to do. I started questioning everything. Maybe I was one of those blue belts that just quit and never make it to purple? Had I lost my love for BJJ? Did I just lack the determination to make it out this rough patch? I really thought that was it for my BJJ.

It didn’t make sense though. I was still looking for technique videos all the time, and whenever I traveled I’d bring my gi and visit the local gym and has the best of times. My love for BJJ had clearly not died. It was training back at home that was a struggle.

I did some honest soul searching and found that some of the stuff that had been bothering me about our team, our training and our teacher, that I had decided to let slide I could no longer ignore anymore, and that was the real reason for my lack of motivation. So I finally decided that the best course of action for me was to talk to my teacher, tell him the truth, how I no longer liked training there, and I wasn’t even sure if I was gonna continue training at all. I did, and I’m not sure if he understood, but he told me it was ok and that if I wanted to come back I was welcome. I probably could have been a bit more blunt outlining what where the reasons that caused my dissatisfaction, but I didn’t want it to look as if I was attacking him and the school. After all I had been training under him for almost 7 years and I owe him and the team a great deal. I am forever thankful even if I no longer want to train there.

I was thinking on starting to take Muai-thai classes or something like that and forget about BJJ for a while… but some of my former teammates (one of them was my roommate at the time too) had left the team some time before I did and were now training with our other old teacher (the one that focused more MMA /grappling) and convinced me to try training there. I got to his new gym, had an honest talk with the teacher about my reason for switching teams, and he was super supportive. We had maintained a cordial relationship over the years and welcomed me with open arms.

My new teacher and team was just what I needed. His attitude and approach to teaching and life in general was a perfect fit. My teammates were very welcoming too and the attitude in general was way more laid back than at the old gym. Serious about the art, but much more chill about everything else.

I started only doing no-gi and limited training to 1 class, 3 days a week. No pressure if life got in the way and I had to miss class too. It felt good and helped put some mental distance with my former dissatisfied self. Eventually I went back to training both gi and no gi. To train more days and for more than 1 class in a row. To watch videos obsessively. I subscribed to Brandon Mccaghren’s site. Started planning my training sessions a bit more, trying to close gaps in my game, trying to have specific goals…

Graduation day was yesterday: June 24th, 2017, and at last… I got my purple belt!. I would have been fine if they had decided to keep me a bit longer at blue belt so I could go back to competing and try earning a few medals. Honestly. But I’m happy, grateful and humbled for receiving it. So grateful.

When I got my blue I knew where I where I wanted to be progression-wise when I got my purple. I had it all laid out in my mind: How long it’d take, how my game would have progressed, the competitions I wanted to win. The kind of dominating blue belt I wanted to be. But life doesn’t always have the same plans as we do.

I took a longer more tortuous path to get to purple as I hoped I would. I have barely competed, let alone won gold medals. My game still has many holes I hoped I would have fixed by now. But at least I now feel that i have the embryo of an actual game, instead of a set of barely related techniques, and mentally I think I’m ready to make up for lost time and fix all that for my purple belt. I’m ready for the challenge. I’m glad for the opportunity and the trust placed on me.

And man, most of all, I am elated for having gotten out of that rough patch and having found my drive and passion for the art back.

Coding is punk

If you ask me what has had the most profound and everlasting effect on the way I live my life there is only one possible answer: Hardcore Punk. The scene and the ideas shared and discussed through it impacted my music taste (obviously), my friends, my political views, my personal style, my religious views… everything.

The whole scene back when I was a teenager was amazing. Ideas were shared and discussed. Preconceptions were challenged daily: the ethics of the shoes you wore, animal liberation, alcohol consumption, labor laws, popular culture vs. the underground, gender roles, music genres. Every topic was fair game and as a result everybody was doing something, be it printing a zine, running a distro, playing in a band, writing a book, taking photos, filming concerts, promoting shows, doing charity work, getting into political activism… If you wanted to do something you just went for it and learned how to along the way. No need to ask for permission. No need to get any kind of credentials in advance.

Thanks to it we all learned a lot of skills that we have, in one way or another, ended up applying to our daily or professional life. Publishing, graphic design, photography, marketing, organizational skills, team building, business administration and all sorts of abilities, apart form playing music, obviously. DIY taught us to be jacks-of-all-trades and fear nothing.

So lately I’ve been wondering how come there aren’t more hXc kids and punk rockers learning how to code?

The whole “subverting the system”, coming up with newer, better, more fair, alternative forms of organization hasn’t really translated that much apart from medium-small scale projects: Music fests, co-ops, record labels and the like. Other than getting directly involved in politics, which many hXc punk kids do, coding is one of top activities you can engage in that will allow you to create new stuff that can have an amazing impact in many people’s lives.

Tech is an extremely powerful agent of social change and empowerment. And the best part is that the barriers to entry for programmers are minimal. As John Carmack famously said:

In the information age, the barriers just aren’t there. The barriers are self imposed. If you want to set off and go develop some grand new thing, you don’t need millions of dollars of capitalization. You need enough pizza and Diet Coke to stick in your refrigerator, a cheap PC to work on, and the dedication to go through with it

Time can admittedly still be a luxury, but once you overcome that hurdle, you can learn everything that you need online. FOSS, Github, StackOverflow, Codeacademy. DIY has never been easier or more powerful.

Instead you see that nowadays most hXc kids have just switched from xeroxing and stapling together a zine to writing record reviews on Tumblr. It’s not the same. The great publishing takeover was a success years ago. Even my mom can do that now. Please, don’t pretend that you’re breaking down walls that were already annihilated by the generation before.

I’m still grateful for the passion and the good online punk news outlets out there, but the world probably doesn’t need another Punknews. It needs more Bandcamps, more Wordpresses, more Etsys, more Instructables, more Tors, more EFFs, more Wikimedias, more Valves, more Githubs. This generation’s Dischord records. New companies, new industries, new organizations that challenge the status quo and empower the creators and the users so they can be happier, more fulfilled. More free.

Unfortunately punk’s anti-establishment attitude is its own worst enemy, turning many punkers into a bunch that’s only worried with status within the scene. Anything that smells of work or “selling out” is flat out rejected. As if the only acceptable road to success was through music. Everything else considered as becoming “the man”. While trying to escape the dreaded “9 to 5” life, many end up having to accept crummy day jobs and end up with no means of living the self directed life they so passionately screamed for through songs and zines.

It saddens me to see so many people, that used to be passionate and who were pushing the limits back then, now being content and living grey lives. A scene once so vibrant now being content with just being a low-fi version of old media, being small-time rockstars, perpetuating the same old clichés and petty rebellions instead of aspiring for greater things. Obscurity and lack of relevance still a badge of honor. The drive to change the world lost. Gone.

Search for new goals. Be ambitious. Create new tools people can use to live a better life. I’m begging you.

Break free. Change the world. Programming is not a geek thing, it’s a punk thing.

This is what I mean by optimizing for happiness: I’m a hacker; I’m happy when I’m building things of value, not when I’m writing a business plan filled with make believe numbers.

Writing and WYSIWYG text editors. Medium vs CKEditor

I was reading Robby Inebretsen’s post “Markdown is the future of writing” when I came to the following realization: I despise CKEditor and all similar WYSIWYG editors.

No, I don’t just dislike them. It’s an angrier feeling. They annoy me to no end. 99.5% of the time I immediately hit the View Source button so I don’t have to deal with them. I’m always glad to be in HTML-land.

Robby writes about how most people are not yet ready for working with raw Markdown, and how the guys at Medium came to a solution that works for them and makes it really easy to format posts. I have to give them kudos: Medium’s toolbar is a marked improvement over most WYSIWYG editors out there. There is no stupid top bar that makes you scroll up whenever you need it. There’s not a hundred buttons you never use. Why do most editors look like MS Word? Their interface is clunky, outdated and doesn’t work well in a web browser.

Medium's toolbar

Medium’s solution is very much in line with the recent crop of minimal and distraction-free text editors that let you focus on the content rather than the formatting. It’s useful and elegant. It’s concise and to the point. You select some text and a small set of actions pop-up. It’s (almost) perfect for them, but sadly, it doesn’t work in most situations.

A general solution needs to be good for shorter pieces of writing, to be used on pages where there are more fields to fill or actions to complete. It needs to suit any situation where you’d need a text area — no matter how big — and basic formatting of the input. It should also require no guesswork from less tech-savvy users.

I think the solution is quite simple actually. Don’t hide the toolbar. But don’t place it at the top of the textarea either. Make it sticky. Even better, make it a sticky sidebar.

Sticky sidebar concept

That way it doesn’t matter if you scroll or if the textarea is really tall: the sidebar is always there when needed. You don’t present the user with a blank field and depend on him triggering the toolbar. It’s obvious from the get go. You don’t use (scarcer) vertical screen space. You don’t need the user to know Markdown or HTML. The only drawback I can see is that you can’t include too many options or else the menu becomes too tall, but you shouldn’t be doing that anyway.

Split view editors with live preview like Mou or the one Ghost uses also seemed like a good idea to me at first, but they take more space and they distract from the actual writing making you think about syntax. WYSIWYG with a sticky sidebar is the way to go.

On a personal project I’m working on my plan is to implement all this. Text areas will have a sticky sidebar (using jQuery. Browser support for CSS3’s ‘position:sticky’ property is awful at the moment), it will work for both Markdown and HTML content — the project requires it — and there will be a View Source button. Better safe than sorry.

Once I get it working I might turn it into a jQuery plugin or something. But if you beat me to it, please let me know. For the sake of efficiency.

The sales and marketing economy is zero sum. Each business must work harder and harder at new tag lines, gizmos, tricks, and jingles. And when sales guys at the other company work harder, you must work harder too.

[…] Average work hours declined for a century – and then started curving back upwards as the everyone switched the zero sum battle of sales and marketing. The future is here, and it is the sales desk at Dunder Mifflin.

On infinite scrolling and pagination

I’ve been thinking a lot about infinite scrolling, how fashionable it’s become lately and why I think it’s being fundamentally misused in many many cases.

Infinite scrolling is a great way to reduce friction and make the user consume more content. No need to find and click that “next” button. Just keep on mindlessly scrolling until you find something that looks interesting to click on it.

Infinite scrolling is perfect for collections of content that are pretty much impermanent since they get updated or change too often to make pagination viable or useful and when archiving doesn’t make much sense because the content’s freshness is a mayor asset. Things such as such as the Tumblr dashboard, Svpply’s shop page and the like. The user cares about the latest stuff, not what was posted a month ago… (For those interested, here’s a great post by Alex MacCaw about dynamic pagination on sites with constantly changing content. Sites like Hacker News or Medium.)

Pagination on the other hand is great for going through large collections of items, with archival value, in an orderly manner. You may not have time to go through it all in one sitting so you want to be able to save your position to take a look at it in a few days. In the meantime there might be new content that makes that saved position a bit inexact, but it provides with a good enough reference point to resume navigation.

The problem begins when it’s used just because “it’s the cool thing to do“.

More and more sites are adopting it as the way to go through their contents. News sites. Blogs. Portfolios… and in many cases it’s fundamentally flawed because of this 2 main reasons:

  • It doesnt give you a reference point to resume navigation on a later date:

    If I want to keep on reading, I need to keep the page open in my browser or else I lose my position on the site and I have to start all over again, having to reload everything and then try to find where I was before.

    If I click on something that interests me I have to make sure I open it in a new tab if I want to resume browsing later.

  • Too resource intensive:

    Yeah, the actual loading of new content is a breeze, i’m not saying using javascript to fetch more stuff is bad… but when you go through what would normally be 200+ pages of content just by scrolling and you end up with a insanely tall single page site… things start to get heavy. All those pictures and elements make the browser laggy.

So, what’s a good solution that has the best of both worlds? Using hashbangs. I know hashbang URLs have a bad reputation and I agree with most of the critics, but this is one of this times when they can be very valuable if implemented correctly:

  • Update the URL with every content request:

    Every time the script fetches new content update the URL adding a “page” counter (ie: site.com/#57). This index number must really match the actual page number for the new content if the site was using standard pagination

  • Transform the hashbang to an actual page position.

    If the user enters an URL containing a hashbang into the browser, redirect him to that archive page (ie: site.com/#57 automatically redirects you to site.com/page/57)

  • Let the user keep on scrolling:

    When he loads said page 57, keep the site working as if he had started from the beggining. He keeps scrolling, new page numbers get added to the URL and so on (ie: he ends up in site.com/page/57#98 that would redirect to site.com/page/98)

This lets the user effortlessly navigate the site, keep on browsing on a later date, and “clean” the page state to get rid of all that content that he’s already gone through and free browser resources. (Old content could also be discarded using JS to keep it from wasting resources, but that’s not the point of this post)

As said: Best of both worlds.

(I wrote this originally on Tumblr on Aug 3rd, 2012.)

What do we do about the fact that we’ve built a global economy on a system optimized for moving pictures of cats?