A year in reading: The books I read in 2015 plus the 10 best longreads on tech and culture

I always have as a New Year’s resolution to read more. No matter how much or how little I read the year before, I always have as a goal to read more (probably because I increasingly have less time to do so.)

In 2015 I only read 7 books, which is not a lot for me by any means. I’ve been noticing that the more I write and read in English, the more my Spanish suffers. I forget words or I use expressions that make sense in English but sound completely off in Spanish. So now I got into the habit of reading one book in English followed by one in Spanish, so you’ll see below a pretty 50/50 breakdown. I would recommend any of the books I read in 2015. (Except for “Go Set a Watchman.” Don’t read it. Just don’t.)

While I didn’t read as many books as I usually do, last year I renewed my subscription to the New Yorker and read Wired diligently, which meant that I read more longreads than previous years.

Below are the books I read last year, plus a selection of the 10 best longreads in tech and culture I read in 2015. Hope you enjoy them!

314_9789974713758.jpg9789875802940.jpgnot_that_kind_of_girl_by_lena_dunham_WEB.jpg51OAueApoKL._SX327_BO1,204,203,200_Screen Shot 2016-01-28 at 8.35.12 PM9788483835241US_cover_of_Go_Set_a_Watchman

1)  Muertos Acá Nomás, Casos Recientes de la Crónica Roja en Uruguay – César Bianchi

2) Sudor – Jorge Amado

3) Not that Kind of Girl – Lena Dunham

4) It’s What I do: A Photographer’s Life of Love and War – Lynsey Addario

5) Miss Terapias – Valeria Tanco

6) Kafka en la Orilla – Haruki Murakami

7) Go Set a Watchman – Harper Lee


10 best longreads on tech and culture of 2015

How one stupid tweet blew Justine Sacco’s life – The New York Times. Feb. 12, 2015

Jonathan Ivy and the future of Apple – The New Yorker. Feb. 23, 2015

The plot to free North Korea with smuggled episodes of ‘Friends’ – Wired. March 1, 2015

I followed my stolen iPhone across the globe – BuzzFeed. March 31st, 2015

The untold story of Silk Road – Part 1 and Part 2 – Wired. April and May, 2015

What is Code? – Bloomberg Businessweek. June 11, 2015

Inside Amazon: Wrestling big ideas in a bruising workplace – The New York Times. Aug. 16, 2015

The Network man – The New Yorker. Oct. 12, 2015

The Internet’s Dark Ages – The Atlantic. Oct. 14, 2015

Conversion via Twitter – The New Yorker. Nov. 23, 2015


What are your picks for best books or articles of 2015? Tell me in the comments!



4 things I learned at General Assembly’s front-end web development course

I’m officially in week 6 of my front-web development course. The course is 10 weeks long, which means I’m more than half way there. Aaaahhh!

I’ve learned so much so far, and I also got an idea of how much I needed to learn. I took a basic HTML and CSS class during my master’s degree four years ago and I’ve tinkered with those technologies ever since. I thought I knew pretty much what I needed to know about them to have a working website, but boy was I wrong!

Yes, the basics haven’t changed, but I’ve learned a ton of new tricks, things that are new with HTML5, getting really deep into CSS selectors, and, most of all, best practices.

When it comes to front-end, I consider myself to be mostly self-taught, since the vast majority of my learning has been done on my own, reading books and taking tutorials. It’s only after you take one of these, more structured and intensive classes, that you realize how much you know and how much you thought you knew but you didn’t really know.

But I digress. This post is just a round-up of useful things I’ve learned so far, especially at the beginning of the course (we are now learning jQuery and JavaScript and working on our final projects). I usually think of these posts as a way to keep track of good links and resources. If they help someone else along the way, then all the better!

  • The difference between inline, block, and inline block. Though this is pretty basic, I thought it was useful to visualized the difference between the three.

One of our instructors wrote a quick piece of code showing the difference between these three.

Screen Shot 2015-07-31 at 1.52.25 PM

  • How to line-up list items without any spacing in the middle.

Another useful trick from one of our instructors.

Screen Shot 2015-07-31 at 1.56.50 PM

  • The BEM model

I wasn’t familiar with the BEM model until we reviewed it in class. It seems very helpful, so I’m going to keep these links handy for future reference.


Mindbemding – Getting your Head ‘Round BEM Syntax 

BEM 101

And a BEN example

  • And, of course, what is the DOM

Confession time: people would throw around the term “DOM” and I never completely understood what it meant. We reviewed it in class and I FINALLY understand what it is.

In case you were struggling like me, here’s a handy article that does a great job at explaining it in simple terms.

The rise of the Twitterbots

Updated – Aug. 25, 2015 – 10:58 pm

I’ve been fascinated by Twitter robots for a while now. I find that they can have so many interesting applications for news: they can engage audiences, inform in real-time, gather information, just to name a few. What makes a Twitterbot a bot? One definition I heard at a panel at NICAR is “a program that manipulates the Twitter API.”

Since I decided to make my own robot a few months ago, (a bot that tweets Jorge Luis Borges’ El Aleph), I’ve been in deep exploring the world of these sometimes quirky, algorithmically-generated accounts. Some are completely automated, while others also include interactions by humans.

Below is a list of some of the most notable Twitterbots out there. I’m sure I left out many so feel free to add more below in the comments.

@BechdelBot – You tweet the name of a movie to the bot and it’ll tell you if it passes the Bechdel Test. If not, it’ll offer you a suggestion to watch instead.

@Betelgeuse_3 – this robot replies with “It’s showtime!” to anyone who tweets “Beetle Juice” three times.

@cdarwin – tweets lines from Charles Darwin’s ship log “in real time.”

@congressedits – “tweets anonymous Wikipedia edits made from IP addresses in the US Congress.”

@DroptheIBot – created by two Fusion journalists, this bot corrects people who tweet “illegal immigrant.” (Update – it looks like Twitter suspended this account.)

@earthquakesSF – using data from the USGS, this robot live-tweets earthquakes in the San Francisco Bay area.

@Every3Minutes – based on the fact that between 1820 and 1860 a slave was sold on average every 3.6 minutes in the U. S., this bot tweets every three minutes reminding people of the brutality of slavery.

@factbot1 – created as an “experiment in manipulating the information space of social media,” Factbot generates facts, pairs them with an image and posts them on the Twitterverse.

@FindMyStation – from its bio “An experiment from NPR to help you find your local public radio station. Tweet us a ZIP, city/state, or station call letters.”

@findnickisverse – you can tweet at this account with the title of a song Nicki Minaj is featured on and it tweets back a YouTube link that jumps right to her verse.

@Horse_ebooks – (inactive and not a real bot) for years people thought this widely-followed account that mimicked a spambot was algorithmically-generated (aka a robot), when in fact it was a performance art project by two BuzzFeed employees. This revelation drew the ire of the Internet and generated many, many think pieces on Medium.

@ILCampaignCash – built by the Chicago Tribune, it tweets every time someone files a donation for more than $1,000 based on IL State Board of Elections data.

@kookyscrit – sends auto-replies to people who misspell the words “weird” and “definitely.”

@NailbiterBot – tweets an alert when an NCAA tournament game gets close.

@NYTAnon – tweets articles published on the NYT that quote anonymous sources.

@NYT4thDownBot – tweets “live analysis of every NFL fourth down decision. Some tweets are automated, some are not.”

@MechanicalPoe – (inactive) tweets stories by Edgar Allan Poe, one line per hour.

@mot_namdeirf – it tweets random snippets from Thomas L. Friedman’s New York Times columns.

@oliviataters – a teenage girl set loose on the Internet.

@ProPubSunset – automatically tweets a photo of the sunset during the summer using a camera and a Raspberry Pi.

@ReplayLastGoal – from its bio: “automatically tweets the video replay and animated GIF of the latest World Cup goal”.

@she_not_he – it corrects Twitter users who misgender Caitlyn Jenner.

@SimilarNews – An experiment from @NPR. Users tweet at the account a link and it replies with a similar story.

@slowdante – (inactive) tweets Dante’s The Divine Comedy.

@StealthMountain – it alerts Twitter users that they typed “sneak peak” when they actually meant “sneak peek.”

@YourInAmerica – (inactive) another BuzzFeed experiment. This bot corrects “people saying your in America and telling others to learn English.”

@YourRepsOnGuns – from its bio: “Retweets of representatives mentioning guns, firearms & related words.” (I’ll post a step-by-step tutorial on how to make your own robot later (aka when I have more time.) In the meantime, you can check my code on GitHub.)

Related links:

Olivia Taters, Robot Teenager – On the Media.

That time 2 bots were talking, and Bank of America butted in – The Atlantic

List of Twitter bots created by @muffinista.

Wikipedia’s Twitterbot entry 

@Horse_Ebooks is the most successful piece of cyber fiction, ever – The Atlantic

One-shining-moment alert: Two news developers built a Twitter bot to tell you when the game is getting good – Nieman Lab

Missed a World Cup gooooooooooaaaaalll? A new Twitter bot will catch you up – Nieman Lab

@similarNews / @Findmystation – NPR Social Sandbox

How to break news while you sleep – Source

This Twitter bot is a constant reminder of the brutality of slavery – Fusion

Scraping Illinois campaign finance data – for fun, if not profit – blog.apps.chicagotribune.com

How to write a robot with Python and tweepy – dotdotdot.com

Making a Twitter bot in Python (tutorial) – Emerging tech in libraries

Resources for newsgames from #ONA14


I couldn’t make it to ONA this year so I was forced to do the next best thing: follow it through Twitter.

One session that caught my eye was “Game On: Designing Playful Interactives to Educate and Inspire.

I’ve been always fascinated with newsgames: when done well, they can be a great way to engage the audience. A few good examples: “Bad Paper,” an interactive game on debt collectors produced by Fusion; “September 12th,” a game on the War on Terror produced by the Uruguayan studio Powerful Robot in 2003; and the NYT’s “Gauging your distraction,” which shows the dangers of texting and driving.

The ONA website has a good recap here, and below is a roundup of useful resources from the session. You can find the original here.

No coding skills needed

Twine: Choose your own adventure text games


Some coding skills needed

VoxMedia Quiz Whiz: Quizzes


Mother Jones NewsQuiz: Quizzes


Game Salad: Platform games (HTML5 + native apps)


Coding skills needed

Phaser: Framework for HTML5 games (mobile+desktop)


CraftyJS: Javascript gaming library


ImpactJS: $99, Easy to use Javascript gaming library for HTML5 games


Processing (Java-based programming language for creative coding. Great for



p5.js (JavaScript library that uses Processing principles. Also great for beginners.)


OpenFrameworks (C++ art and gaming toolkit)


Events and People

Games for Change: A serious games conference


Gameful: Community for those interested in games, including developers, designers,

educators and players


Books & Resources

Four Keys to Fun

Rules of Play

Reality is Broken

What Video Games Have to Teach Us

Game Design Workshop

A Theory of Fun

Image: CC-Licensed, thanks to Deúniti, colectivo creativo on Flickr. 

Related links: 

JavaScripting with Women Who Code


I went to my first meetup with the local chapter of Women Who Code to brush up my JavaScript skills.

Here’s a few beginner-friendly links from the presentation. Main takeaway: I found a couple of cool resources and finally understood what the hell the DOM is!

Nupur Kapoor’s presentation

JS Fiddle – useful to test your code


JavaScript is Sexy – (for not complete beginners)

Head First JavaScript Programming

List of free JavaScript resources

IT e-books

D3 tutorial

Women in hair salon.  Courtesy of the Boston Public Library, Leslie Jones Collection on Flickr

(About the photo: I went with these lovely ladies in the hair salon because it’s damn hard to find a nice-looking, CC-licensed picture of code/JavaScript/women coding on Flickr.)

5 online courses to learn Python and Computer Science


I’ve been learning Python regularly now since January. Carving out some time from work and other activities has been challenging; sometimes I spend weeks without writing one single line of code, which really depresses me.

However, since I’m almost done with Learn Python the Hard Way and I’m halfway through my coding class (shoutout to #hearmecode), I’m thinking of reinforcing my skills by taking an online course.

I’ve found a couple that seem interesting, though the first one might be a bit too basic for me now.

Intro to Computer Science and Programming using Python – edX Xseries – free to audit, $50 with certificate

Intro to Computational Thinking and Data Science – edX Xseries (registration is not open yet)

Learn to program: Crafting quality code – Coursera – free

Python 3 Essential training – Lynda.com

Intro to Computer Science – edX – Harvard – free to audit and get certificate

Ok, this last one is not Python-related necessarily, but it does cover concepts like abstraction, algorithms, data structures, encapsulation, etc. I took a CS 101 on Coursera a few years ago and loved it! It was pretty basic, but it helped me understand a few foundational concepts and to review others. From the description, this edX course seems a bit more advanced.

If you have any suggestions on intermediate Python courses, please let me know!

Update: I came across this course Intro to Data Science on Twitter. Next session starts on June 30th.

Image: CC-Licensed, thanks to Mr. Thinktank on Flickr. 

Hacks/Hackers meetup: Scraping a website with Python

3459902349_0270c9a834_zA couple of weeks ago I went to a Hacks/Hackers meetup to learn how to scrape a website with Python.

I’ve scraped stuff before –at a ScraperWiki workshop and a previous Hacks/Hackers meetup–, but I thought it would help me sharpen my skills since I’m spending a lot of time learning Python now (my knowledge of Python a year ago was very limited to say the least.)

Jackie Kazil, Presidential Innovation fellow and PyLady extraordinaire, was the instructor during the meetup which was organized by the local chapter of Hacks/Hackers at the Sunlight Foundation.

Before actually starting scraping, we had to set up a dev environment. This meant installing Beautiful Soup, pip and other stuff. Of course, I ran into a snag right away.

Apparently, if you have a Mac and you update your OS to Mavericks, it’ll break your pip and virtualenv. It took us a while to figure this out (us meaning me and the guy who very kindly and patiently helped me).

When devs say that installing things can be the hardest part, they’re usually right.

After that, it was time for some scraping. We scraped data from Missouri’s Boone County Jail website.

The scraper was pretty straight forward and easy to follow. I learned a useful trick I didn’t know before. If you add /robots.txt at the end of the page you want to scrape, you’ll get the details on whether that page can be scraped or not.

For example, private companies like Facebook don’t allow crawlers to go through their website unless they have permission.

Screen Shot 2014-04-11 at 6.29.14 PM

These messages are actually written with Google’s crawlers and other search engines in mind, but they also apply to people who just want to scrape their data.

This really limits the things that I would be able to scrape, and it makes me think if building that scraper for IJNet might not be such a good idea after all. (Of course, you could still ignore that and scrape stuff anyway, but it’d be harder for you if you get in trouble.)

I see the point of building a scraper to gather public data, since getting public info has less caveats than info hosted on websites owned by private companies, but I’m not so sure how this can work in my case.

Anyway, the Hacks/Hackers chapter hosted a follow-up session, but I couldn’t attend since I was in Austin for ISOJ. I’m planning on practicing the stuff from the second session soon.

In the meantime, here’s a GIF of a cat doing cute things because IT’S FRIDAY AND I CAN’T TAKE THIS ANYMORE!



Enjoy your weekend!


Image: CC-Licensed, thanks to Moritz on Flickr.

 GIF: Buzzfeed, because of course.

Surviving #NICAR14


My very blurry shot of Ben Welsh’s lightning talk.

A few weeks ago, I went to NICAR in Baltimore and had a blast. NICAR, which stands for National Institute for Computer-Assisted Reporting, brings together investigative reporters, technologists and news nerds for a three day annual conference.

What strikes me so much about this community is how incredibly smart and generous everyone is. I learned a ton of new things and left inspired and full of ideas. (I also wrote a few posts for work, like this one. Go read it.)

I’m taking Matt Waite’s 5 step plan to heart and I’m starting by making a list of the coding projects that I’m going to do this year.

1)  A twitter bot. Actually two. After Brian Abelson’s et al fascinating session on Twitter bots, I got quite a few ideas (specific details TK).

2)   A mood cube. After reading this post by John Keefe on how he made a mood cube for his wife to track her period, I bought a bunch of stuff at Spark Fun. I was planning to do his hands-on training but I ended up missing it, so I’m going to do it on my own and see how that goes.

3)   A Python scraper to automate certain tasks at work. On IJNet, we publish these training announcements for journalists that are very formulaic. I want to build a scraper that would take the info from the targeted website and spit it out as a piece of text (much like the LA scraper of the police blotter or their earthquake bot.)

4)   A news game using Twinery based on Sisi Wei’s presentation.

Although I went to a bunch of sessions, I missed many, and I’m trying to catch up. Here’s a quick list of resources from the IRE website:

-Amazon Cloud Basics – Pinboard from speaker Scott Klein

Tips & tricks for grabbing data from websites from Klein

-Love your life, retire your servers – Slides from speakers Andy Boyle and Tasneem Raja

Hacks or Hackers? – Tipsheet from speaker Wolf

 -Build your first News App – Tipsheet from speaker Ben Welsh

-DataViz for everyone: A practical guide to going responsive – GitHub repository from speaker Chris Amico

-How PANDA works: Software architecture for big data – Slides from speaker Chris Groskopf

 -50 ideas in 50 minutes – Spreadsheet from speaker MaryJo Webster

Everyday scripting – GitHub repository from speaker Agustin Armendariz

-SQLite for command line – GitHub repository from speaker Matt Kiefer | Slides from Kiefer

Introduction to mapping: Importing and displaying data geographically with QGIS – Tipsheet from speaker Peter Aldhous

-Counting and summing with SQL – Tipsheet from speaker Andrea Fuller

 -An app for that: Mobile tech and tools for reporting – Slides from speaker David Ho

-You won’t believe what static site generators can do for news appsThe NPR visuals team’s opinionated project template for client-side apps

 -Tools for Social Network Analysis investigations – Slides from speaker Rich Gordon

Other highlights

-Jeremy Bowers’ lightning talk: “The whole Internet in 5 minutes

-Ben Welsh’s lightning talk: “You must learn

Static vs dynamic web applications

Related content – other coverage of NICAR 

Editing Data Projects — Even If You’re Not a “Data Person.” – Investigative News Network

Let’s get physical: Discovering data in the world around us – Knight Lab

The annual NICAR lightning talks have become the highlight of the conference – Knight Lab

Brainstorming ideas for social network analysis in investigations and journalismKnight Lab