Ubuntu 20.04 on Lenovo t480s

Recently I've upgraded my setup and got Lenovo T480s with all max configuration(Intel i7-8650U) and additional 32Gb RAM

TL;DR: everything works really well on Ubuntu 20.04, 40Gb is just enough to run modern web applications. But in 2020 it's probably worth to consider modern models of computers and next generation CPU. Conclusion: while performance is good the design was upsetting

In this post I'll share some observations after a week of use for work. As a reminder I'm a backend and Android developer mostly focusing on JVM stack

What is GOOD

Read moreUbuntu 20.04 on Lenovo t480s

Discrimination by OS

It's hard to be in minority. I wonder how many people even thought that there is a discrimination by OS?

People who born before 1990 might remember that message from the beginning of millennium "this website requires Internet Explorer" to run. That time minority (macos, linux, bsd, solaris) had to run a virtual machine with Windows just to access some websites. No kidding.

Nobody liked it, people felt oppressed and that caused a very strong emotional feedback for Microsoft. Having no other options we managed to use internet and Windows-only focused hardware. As a Linux user I remember those conversations with macos users - we all were in the same boat. We were "pricks".

Read moreDiscrimination by OS

Pi-Hole and DNS-over-HTTPS using docker-compose

I'm glad that people started to think about the privacy more than ever

In this post I'll share my experience of configuring pi-hole and Cloudflare DNS-over-HTTPS on Raspberry Pi using docker-compose. Before we dig into the configuration a few words what it's all about

UPD: Post has been updated with newest version of pi-hole

Read morePi-Hole and DNS-over-HTTPS using docker-compose

Installing docker-machine on Raspberry PI

One of the nicest things about docker is reproducibility and containerisation. It is possible to run multiple applications which requires different environment on the same computer and make them live happily altogether. Although Raspberry Pi has ARMv7 instructions set, we still can run docker on it - we just need different images. One would be surprised there are some official images available on docker hub.

The configuration can be very simple - literally two commands in terminal, thanks to widely available devops tools such as docker-machine and ansible. Having this setup there won't be need to login to the RPi and perform any manual configuration per service anymore. Instead, services can be configured and deployed right from your computer.

If you don't have your Rasbperry configured yet refer to previous article for the initial setup.

Read moreInstalling docker-machine on Raspberry PI

Setting up Raspberry Pi without Monitor

In this post we will setup and configure Rasbian for your RPi to be instantly available via local network and without screen on the linux or mac system. Those steps should be appliable to any Raspberry PI version

To start with we need a few things:

  • Raspberry PI itself
  • 8Gb+ SD Card, class 10 at least
  • Ethernet cable to connect RPi to the router
  • Downloaded Raspbian Lite zipped image

Read moreSetting up Raspberry Pi without Monitor

Project Update: PronounceMe – implementation details

I have several post about the PronounceMe project experiments - automatic video and voice generator for English learners. If you missed previous posts please review #pronounceMe for more information about the project, ideas behind and some statistics. In this post I'd focus on the technical implementation with some diagrams and noticeable code snippets.

Read moreProject Update: PronounceMe – implementation details

Flashback: links2 browser in modern web

Some of us still remember natty command line browser called links2. Personally I used it quite a lot when system broke again after minor update of linux kernel or rebuild of gentoo. Nowadays most of linux updates happen smoothly and don't require us to serarch for fix in text terminal without running X server. But it was very different 10 years ago

Let's see how modern website look like in links!

Read moreFlashback: links2 browser in modern web

Nexmo Voice API demo: voicemail app

This article features voicemail service built using Nexmo Voice APIs and Spring Boot

As a business owner it's not always easy to handle huge volume of calls 24/7. On another hand each customer is important and it deserve to be served well.

To kick off development you can checkout demo repository

What to expect in this tutorial

In this tutorial we build simple voice mail forwarder where callers asked to leave a voice message which will be sent to the email using Nexmo Voice API as an attachment.
Example of result:

Read moreNexmo Voice API demo: voicemail app

RPI Zero scan button

While I was finishing wireless scanner and printer server I realised that traditional document scanning approach is not so nice from UX point of view.

I really like the way office scanners in multi-functional devices work. Normally if you want to scan you just load stack of paper into and put your email address. Scanner does the rest and in minute you'll get ready-to-use pdf file in your inbox.

I was thinking about having button attached to RPI Zero which initiates scanning and document upload.

Read moreRPI Zero scan button

RPI Zero: print & scan servers

I had to make old printer and scanner wirelessly available over local network. It can be done using wireless printer USB adapter but it's not that cheap and still doesn't support scanner

Obvious choose is using Raspberry PI with linux installed. Before I heard a lot about RPI Zero but could never believe that it costs just £5. Actually it is just £5 and +£2.5 delivery fee. Surprisingly there are no other options except of first class delivery!

Long story short, I put here main steps how to setup print and scan servers on small Raspberry PI Zero:

General configuration

Upgrade RPI software
To access most recent features and freshly created bugs make sure you use most recent version of RPI firmware. To do so run sudo apt-get dist-upgrade.

Static IP
Assign static IP for your raspberry. The easiest way is configure your router DHCP server. Just bind mac address to nice IP in your network, like 192.168.100.100, later in this post I

Reduce graphic memory fraction
If you aren't going to use video how to

Read moreRPI Zero: print & scan servers