Fedora Project Ambassador. Favorite piano key: C#

Read this first

Testing PyTorch XLA with Google Colab TPUs

If you are not aware, PyTorch XLA project is an effort to run PyTorch on TPU (Tensor Processing Unit) architecture which offers even higher performance in training Deep Learning models compared to GPU’s.

In my previous post I showed you how to use serveo.net to SSH into your Google Colab provided container.

In this short post I will show you how to use the same principle to connect to provided free TPUs. Beware that PyTorch XLA is in its inception phase and you may run into bugs.

  1. Open a Colab notebook and set it up (Runtime -> Runtime Type -> Select Python 3 and TPU)

  2. Create a code cell and paste the following:

    import os
    tpu_addr = os.environ['COLAB_TPU_ADDR']
    print('Local TPU address', tpu_addr)
    import random, string, getpass
    password = ''.join(random.choice(string.ascii_letters + string.digits) for i in range(20))
    alias = ''.join(random.choice(string.ascii_letters +

Continue reading →

Compling ARM stuff without an ARM board / Build PyTorch for the Raspberry Pi


I am in the process of building a self-driving RC car. It’s a fun process full of discovery (I hate it already). Once it is finished I hope to write a longer article here about what I learned so stay tuned!

While the electronics stuff was difficult for me (fingers still burnt from soldering) I hoped that the computer vision stuff would be easier. Right? Right? Well no.

Neural network inference on small devices

To be clear I didn’t expect to train my CNN on the Raspberry Pi that I have (its revision 2, with added USB WiFi dongle and USB webcam) but I wanted to do some inference on a model that I can train on my other computers.

I love using PyTorch and I use it for all my projects/work/research. Simply put it’s fantastic software.

Problem 1 - PyTorch doesn’t have official ARMv7 or ARMv8 builds.

While you can get PyTorch if you have NVIDIA Jetson hardware, there are no builds for...

Continue reading →

SSH to Google Colaboratory with Serveo.net

I love Google Colab! It is perfect for running Deep Learning experiments on a budget. I like how nonrestrictive it is and how you can run whatever you want inside the container you are given.

Sometimes I like to connect via SSH and use a proper editor to edit my python scripts, and while Jupyter-like environment is great for visualizing etc. sometimes you just want a shell. Luckily you can SSH into your Colab runtime.

Now, full disclaimer, I do not know if Google allows this explicitly or they just didn’t consider it. If I am asked to remove this guide I will immediately do so.

To get SSH access you need a bridge of some sort. There are already some tutorials using ngrok but that requires you to make an account there. What I came up with is much simpler.

Here are the steps:

  1. Open a new Colab notebook (you can name it ssh for future use)

  2. Set your runtime to Python 3 and GPU...

Continue reading →

Installing Kivy and Buildozer and building Android apps with Python 3.7 on Fedora 29

Kivy is a great UI framework for Python. You can use it to write cross-platform rich UI/UX applications for almost all platforms.

Kivy’s documentation is great, but there are no instructions for newer Fedora releases so it can be tricky to install it with Wayland, Python 3.7, dependencies etc.

So here is how to do it, it’s very simple:

We will need to compile stuff so install development tools:

sudo dnf groupinstall "Development Tools"

Now let’s install all the Kivy dependencies:

sudo dnf install gcc SDL2-devel zlibrary-devel mesa-libGL-devel "SDL2_*devel" ffmpeg gstreamer1-devel ccache ncurses-devel ncurses-devel.i686 libstdc++-devel.i686 gtk2-devel.i686 gtk2-devel pangox-compat-devel pangox-compat-devel.i686 idn2 unzip zlib-devel.i686 patch autoconf automake libtool ncurses-compat-libs ncurses-compat-libs.i686

Some of this may be unnecessary but it worked for me on several...

Continue reading →

self.liberate() – Writing a game in Python for Android was a liberating experience

You write code every day.

Whether you are a student or it is for your job or just for fun, most of the time you find yourself writing some code. Even when you are not writing code, you are thinking about it.

On your commute you are on HN or Reddit reading about latest and greatest. You are subscribed to many mailing lists and you read them all. You use Github search and sort by star count.

At least I do.

But then it happens. You get tired. You do not want to do it anymore. You question yourself. Your tools annoy you. Even the simplest tasks become a burden. You think about the days when you built some fun stuff.

Well don’t give up.

This is what happened to me and I guess you could call it “Programmer Burnout”. Although I prefer different kinds of burnouts.

The feeling really sucks, because you like your job and enjoy making stuff. In the end, that is why you are doing it in...

Continue reading →

Fedora 29 Release Party Novi Sad


We are back!

After missing Fedora 28 Release Party :( we are back stronger than ever!

Fedora 29 Release Party was held at University of Novi Sad in Serbia like our previous events. Around 50 Fedorians were presents, and I am happy to report that I saw a lot of new faces.

We had four talks:

  1. What is new in Fedora 29
  2. How to work with keys, encryption and 2FA
  3. What are kubernetes and how do you use them
  4. What is BIOS, what is UEFI and how does it all work

Of course a Fedora quiz was in place with many Fedora awards! :)





I hope that we can continue this tradition of making release parties in Novi Sad. See you at Fedora 30 Release Party when this cold weather passes! :)

Continue reading →

Run Fedora in Google Cloud Shell!

Screenshot from 2018-08-26 14-54-18.png

If you didn’t know, Google offers a “free VM” for you to use their Cloud platform.

It is available on this link:


It is a container based solution, so you have root privileges which means you can do much more than just use the gcloud tool.

You can for instance run Fedora! My project anyfed just got a small update and it is working in Google Cloud shell just fine.

All you need to do is follow the instructions on the Github page or tldr; version:

wget https://raw.githubusercontent.com/nmilosev/anyfed/master/anyfed
bash anyfed

Your internet connection inside the chroot may be broken but there is an easy fix. Exit the chroot and copy the contents of the /etc/resolv.conf to the /etc/resolv.conf inside the chroot. In my instance it was:

search c.cloud-devshell-prod.internal google.internal

Happy hacking...

Continue reading →

Fedora 27 Release Party Novi Sad


Once again, we had an awesome Fedora Release Party at Univeristy of Novi Sad! :)

Thanks everyone for coming, I hope it was informative and useful for you. I would also like to thank the speakers, Doni, Igor and Marko for sharing their experience with us.

The image gallery can be found here (still updating): https://nmilosev.github.io/f27rpns-gallery/

And the talks are here (still updating also): https://github.com/nmilosev/f27rpns-gallery

Fedora 28 is just around the corner, so see you all soon! :)

View →

Fedora @ BalCCon2k17 - event report


Another successful and very fun BalCCon is behind us! Huge props to the organizers, speakers, volunteers and everyone else who made it happen.

BalCCon is a very important event for the Serbian (and even wider) Fedora community simply because it is the largest local event that gathers hackers, tinkerers and of course many Linux users.

This year we had a large booth like the years before with swag to give away and some interesting devices running Fedora on them.



I also gave a short talk (maybe a bit too short) about how we use Fedora in Education at my University.


The main thing for us, as always, was to talk to people about Fedora and how it can work for them and introduce them to different projects within Fedora.

All in all, a great event, met many cool people and hopefully we see each other at the next BalCCon. Till then! :)


Continue reading →

Fedora 26 Release Party Novi Sad


Another awesome Fedora Release Party in Novi Sad! Thank you all who came to hang out and hear what is new in Fedora 26.

We had several interesting talks about what is new in Fedora 26, how to package RPMs, how to use Fedora Server edition, how to become a Fedora contributor and the ever-so-important talk about privacy, encryption and security in mobile IM applications.

Gallery: https://nmilosev.github.io/f26rpns-gallery/

Slides: https://github.com/nmilosev/f26rpns-gallery/tree/gh-pages/talks

See you in 6 months!

View →