My experience with a Chromebook

This post tries to brief my short experience with a Chromebook device, a Samsung Chromebook Pro.

During last year I’ve been looking for a tablet-form-factor device with Linux and OSS inside, light, cheap and that allow me to work remotely. Sadly, it seems such thing doesn’t exist, but many people have recommended me to try Google Chromebooks.

During my last trip to USA I considered buying an Apple iPad Pro (from ~$800) or a Samsung Chromebook Pro (from ~$600). Between both walled gardens (Apple and Google), and taking into account that none of them cover 100% my requirements, but that the iPad it’s more walled environment and much more expensive if you add keyboard and a pen, the decision was easy: Let’s go for the Chromebook!.

Buying it was a remarkable experience. I was in New York and I’ve bought it in B&H Photo Video Pro Audio. Tip: If you are in NYC looking for a place to buy technology, it’s worthy paying them a visit.

First test: Working during a conference

The first test for the new device was a week in California during the Open Source Leadership Summit. My primary working device/laptop is a Dell XPS. It’s a great machine, but carrying it, its charger, and some additional stuff, gets a bit heavy for my back.

But the Chromebook is light, specially its USB-C port based charger! And you can use it as laptop, as tablet or even as stand-up demo screen. So, it’s great for taking notes, browse the web, work on documents, spreadsheets and presentations with Google Docs (I know, I know, they are not free, open source software).

But the best thing is its battery. I have been able to use it for a whole day (~ 8 hours) with a single charge.

Second test: Presentations tool

Part of my work is to do Google Slides based presentations at conferences. This Chromebook’s USB-C port is able to connect with an HDMI or VGA, so I can use it for my presentations:

Editing Google Slides in a Chromebook while connected to an external screen

Taking screenshots with its pen, and copy&pasting them into Google Slides is soooo easy. And using the Google Slides auto-play feature and putting the Chromebook in kiosk position, it can be a good companion in the booth for showcasing my company services and dashboards!

Last, but not least, test: Development tool

Some people has recommended me to use Crouton, and now Crostini to get a full Linux environment in it. But, that’s something for a next post, if I find time to try it.

Meanwhile, I’ve installed Termux (yes, this Chromebook is able to run Android apps on it!), so I can ssh into my Digital Ocean droplet and work on the GrimoireLab demos I’ve usually done in my Dell XPS laptop!

So, do I recommend it?

Definitely, yes, but (there are always some buts) be aware that even supporting Linux, and being based in Linux and many other free, open source components, in this (and any other Chromebooks) you are not free, as in Freedom. Actually, you are gonna be tied to the Google walled garden (Chrome browser, its Chrome Web Store, and the Google Play Store) and Chrome is not free, open source software.

What’s next?

Perhaps Slimbook or Purism will be able to offer a competitive device in this market. And in software/services terms, I think that Collabora Office (based on LibreOffice) and NexCloud are some of the best choices to get free from these walled gardens.

Meanwhile, I enjoy working with my Chromebook!

Analyzing Open Source development (part 3)

In last post about analyzing open source development I mentioned that this one would be about massaging people information to have unique identities for all the project contributors.

But before that, I would like to explore something different. How to get data from multiple repositories? What happens when I want data from a whole GitHub organization’s or user’s repositories?

The obvious answer would be:
1. Let’s get the list of repositories:


import requests

def github_git_repositories(orgName):
    query = "org:{}".format(orgName)
    page = 1
    repos = []
    
    r = requests.get('https://api.github.com/search/repositories?q={}&page={}'.format(query, page))
    items = r.json()['items']
    
    while len(items) > 0:
        for item in items:
            repos.append(item['clone_url'])
        page += 1
        r = requests.get('https://api.github.com/search/repositories?q={}&page={}'.format(query, page))
        items = r.json()['items']
    
    return repos

2. And now, for each repository, run the code seen in previous post to get a dataframe for each one in list and concat them with:


df = pd.concat(dataframes)

For organizations or users with a few repositories, it would work. But for those with hundreds of repositories, how long would it take to go one by one fetching and extracting info?

Would there be a fastest approach? Let’s play with threads and queues…
Continue reading “Analyzing Open Source development (part 3)”

Last month conferences: PyConES, LibreCon, Open Source Summit Europe and Liferay Spain Symposium 2017

Jono Bacon at Open Source Summit showing a photo of me!

This post was initially intended to share thoughts about PyConES 2017, but it’s been an stressful events month. So it also contains experiences from the latest conferences I’ve attended/participated/talked: LibreCon, Open Source Summit Europe and Liferay Spain Symposium.

Let’s start the reviews…

PyConES 2017

Continue reading “Last month conferences: PyConES, LibreCon, Open Source Summit Europe and Liferay Spain Symposium 2017”