Fedora Project Ambassador. Favorite piano key: C#

Read this first

Jupyter on Android phones and tablets

Writing Python on the go is not easy or something you should do often. But if you have a long commute, why not? :)

There are several cool options already, like PyDroid3 (among others) allowing you to have a Python interpreter wherever you go. But what if you want more capabilities, like testing Jupyter notebooks or full control over your installed packages (with pip or conda). Or… What if you just want to mess around with Jupyter on your phone/tablet? Well, the answer is that it is very easy to try it out and see if you like it. Here are the steps.

  1. We will need to install Termux, and you can also get it from the Play Store if you do not use F-Droid

  2. We will also need Termux-Fedora (which I am very proud of, with its 150+ stars on Github). The instructions are in the readme file there. It is very simple nowadays, it only takes a couple of minutes on a relatively modern phone.

  3. Once...

Continue reading →

Fedora 31 Release Party Novi Sad – Event Report


Here we go again! :)

After a short break we are back with another local event meant to celebrate Fedora and Free Open Source Software.

First let’s cover the usual:

  • Location was, as always before, Department of Mathematics and Informatics, Faculty of Sciences, University of Novi Sad. This time we opted for newly renovated and colorful amphitheater A7 :)
  • People: Momcilo (FedoraUser) and myself were “ambassadoring” the event while we welcomed local Linux and FOSS users, students and others who wanted to hear what is new in the Fedora universe


  1. The first talk was about what is new in F31 (and F30 because we missed that release event). We talked about changes in GNOME, Fedora Toolbox, name changes and other stuff happening at the moment.

  2. The second talk was presented by Ivan Pribela, and it was about (Un)Secure Boot, why it doesn’t work, how to make it work and why not to turn...

Continue reading →

Perfection. Today. – Running Fedora on Dell XPS 7590


The new Dell XPS 7590 is a great machine. Like every great machine it has some drawbacks, but since it is much greater than the sum of its features you bond with it and forgive it.

Take mine for example. Even though the keyboard is far from perfect (with backspace and enter keys making some really weird noises) and it arrived with some scratches on the beautiful aluminium chamfered edges,
everything else about it is just… well perfect.

The 4K OLED display – perfect. The six-core powerhouse 9750H – perfect. The fast NVIDIA GTX1650 – perfect. The carbon/aluminium chassis – perfect. And the best thing about it: It runs Linux almost 100% out of the box.


Chances are that your Dell XPS will ship with Windows. If you want to dual-boot (which I recommend for BIOS updates) you will need to go through some steps.

To avoid repeating everthing, there is a great post here...

Continue reading →

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 →