My trip in Cuba

I spent 3 weeks in Cuba with my family after the Mozilla All-Hands we had in December in Austin, and had the opportunity to meet a local user group (Cuban Tech Group) and do a hackaton with them.

The #cubantech group during the December hackaton on #micropython

Une publication partagée par Tarek Ziadé (@tarek.ziade) le

Olemis Lang is one of the founders and very active in promoting open source in Cuba. We’ve had some similar experiences in running user groups (I founded the Python french one a decade ago), and were excited about sharing our experience.

Olemis in Havana Lighthouse

Une publication partagée par Tarek Ziadé (@tarek.ziade) le

One annoying thing in Cuba is the lack of internet access. There’s basically no internet ISP in the country besides the stated-owned company (etesca) that runs wifi hotspots in parks. If you want to access internet, you have to buy 1h or 2h cards for a few euros and sit down in a park as close as possible from the hotspot source. It’s easy to find those hotspots: you will see group of teens with their smartphones. If you recall the craziness around Pokemon Go last summer, with people gathering around Pokemon Arenas, that’s basically it.

Stunning sight from El Mirador near Soroa, Cuba

Une publication partagée par Tarek Ziadé (@tarek.ziade) le

In most countries I’ve visited, we take internet for granted, and that’s been true for many years. We’ve dumped a big chunk of our memory back into to google/duckduckgo/qwant/xxx because it’s easier to look back for a piece of information rather than remembering it. We all have stories of finding back our own blog posts on the internet when looking for an answer.

Case in point: when we decided to do a hackaton around MicroPython, Olemis and myself took some of time to make sure we had all the required material on local disks. But we spent most of the evening trying to make things work. One person missed a tiny debian package, or we missed one GitHub repo with a specific file, etc.

NodeMCU boards flashed with #Micropython #cubantech

Une publication partagée par Tarek Ziadé (@tarek.ziade) le

Although I was quite impressed by Olemis’ setup to mitigate the lack of internet. A few raspberry pis here and there, a SAN, a local mirror of stack overflow, of ubuntu packages, a local git server with clones etc, and a proxy cache to visit a few websites.

We had a lot of fun (the “YEAAAAAH” when the Micropython board finally lits the LED is always cool), but everyone was frustrated by the lack of connection. Even with my crappy DSL back at home in France, I felt like that rich spoiled kid with all the toys, compared to the other kids.

Olemis introduces Micropython #cubantech

Une publication partagée par Tarek Ziadé (@tarek.ziade) le

With the current state of internet in Cuba (I’ve heard it should improve), how can we expect Cuban devs to participate to open source projects as much as they would like ?

A patch for Firefox ? forget it, look at the size of the mercurial repo, it would take them weeks to get it and days to update it (and $$$). A PR in that GitHub repo? that’s possible, but with all the back and forth before it’s pushed, it’s going to costs a few internet cards.

Would you pay 5 euros to fix a bug in a project ?

There’s no way to fix this, they will have to wait for the Cuban government to allow private internet access, or drastically improve the public one, maybe by creating open spaces with better internet access.

But in the interim (=in the next 5 years), I think there’s something we can do to help them. We can send them data.

It’s easy for people with a good connection to fill an USB disk with :

  • a PyPI mirror
  • a Stackoverflow mirror
  • the latest Git or Mercurial clone for project x, y and z
  • etc.

I want to try to do something about this - not only for Cuba, but for any other place with the same issue.

I am working on defining how we could build an online service to send USB sticks of public content on a regular basis, containing the data developers needs to play with OSS projects.

Maybe this could fit Mozilla’s MOSS - , or maybe something like that already exists. Digging…