Nikola Trubitsyn

developer's blog

Dev Notes - Issue 1

Aug 30, 2019 Dev Notes


  • Debugging Android device over WiFi
  • Fixing SSLHandshakeException on Android Emulator
  • Changing vector drawable color
  • Checking image transparency
  • Executing command on a file set
  • Creating a completely empty git branch
  • Copying generated SSH key to clipboard
  • Accessing Hugo server from local network
  • Measuring network speed
  • Reloading udev rules without reboot

Dev Notes - Issue 0

Jul 30, 2019 Dev Notes


  • Upgrading to a new version of Fedora
  • Installing GNOME Shell extensions from Chrome
  • Enabling touchpad while typing in GNOME
  • How to include the first commit in git rebase
  • How to reduce git clone size
  • Converting DMG to ISO
  • Formatting partitions to HFS+
  • Making wget ignore nested folders
  • Checking if host is up on a network
  • Centering README content on GitHub
  • Removing BeautifulSoup elements
  • Removing accent symbols from words

Awesome Mocks to Use in Go Tests

Feb 11, 2019 Testing

Go has a built-in support for unit testing. Writing tests is easy: just create some *_test.go files with func Test*(testing *T) functions. While providing a wide set of methods, the standard library does not have any mocks to use in tests. For example, there’s no common way to substitute os package behaviour without using third-party libraries or running the tests in a Docker container.

Migrating Git Repository to LFS

Jan 6, 2019 VCS

Git Large File Storage (LFS) replaces large (usually binary) files such as images with text pointers inside Git, while storing the file contents on a remote server like GitHub. This article shows how to make an existing git repository use Git LFS for the necessary types of files.

Initial setup

Install required packages:

$ sudo dnf install git-lfs -y

Add binary files to track:

$ git lfs track '*.png'
$ git add .gitattributes
$ git commit -m "Use LFS for *.png"

Hacktoberfest 2018

Oct 28, 2018 Open Source

This year’s Hacktoberfest gave me a passion to do some work for open source again. Here are my contributions:

  • gabolaev/crypterma
    • Make Python sources compilant with PEP8, improve README (#1)
  • jbenua/Summarize
    • Add support for summarizing float numbers (#1)
  • reo7sp/drop
    • Specify integrity and crossorigin attributes for CSS to prevent external resource tampering (#1)
  • reo7sp/http-repo
    • Avoid incorrect handling of assert statement in production environment (#2)
  • SimpleMobileTools/Simple-Notes
    • Disable personalized learning when typing note text (#227)
  • mtrempoltsev/msu_cpp_lectures
    • Spelling and punctuation fixes (#2)

Must-Have GNOME Extensions

Sep 27, 2018 Linux

If you are not satisfied with a default GNOME look & feel, you can extend its functionality easily by installing one of a hundreds extensions. Here are my favorite ones:

  • Auto Move Windows
  • Dash To Dock
  • Caffeine
  • Drop down terminal
  • Pomodoro
  • System monitor

Android Device Connectivity Control via ADB

Aug 30, 2018 Android

It might be necessary to control Android device connectivity state. For example, to turn the network off while running integration tests. Often there is no way to do that programmatically. Fortunately, Android Debug Bridge has some useful shell commands.


The svc command allows to control the following types of connections:

  • WiFi
  • Mobile data
  • Bluetooth
  • NFC
  • USB

Should be run inside the interactive shell. Execute adb shell first, or prefix each command with adb shell.

Things to Consider When Choosing Dev Laptop

Aug 13, 2018 Hardware

A few months ago I was choosing a new laptop in order to make my life as a developer more comfortable. That time I used to use a pretty old one which came with a slow HDD and 4 GB of RAM. Remember that I had already been into Android development – that was a pain. So I decided to make a change. Now I’m ready to guide you what a decent Android developer’s laptop should look like.