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 versions of computers and CPU. 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 more

Does pihole make any difference?

The Internet is full of advertisements and marketing services which are marking and chasing you all over the web. I believe it is fair - if a user doesn’t pay for the product, the user becomes a product. Another problem with tracking and advertising services that they significantly affect browsing experience by draining up CPU, memory, making page look laggy, often affecting responsiveness.
Fortunately, the PiHole project helps to turn many of them off. More details about it are in my previous post

One might wonder, does pihole make any difference or it's just a placebo for a few geeks? I did a small research and took some measurements for the different websites with and without tracking.

Measurements were taken:

  • Screenshot of the page - it's interesting to see if there is any significant visual difference, compare space occupied by the banners
  • Number of requests - every request takes a lot of time even via the modern Internet protocols and fast internet connection. Also, downloading an additional code makes the page behave laggy as the browser needs to run it soon after. That's why the first seconds after the page visually completes it can behave a little hectic.
  • Data transfered - the more data it needs the more time to pull information is required.
  • Html loaded - it's a time required for broswer to load html page itself when DOMContentLoaded is emitted. I record an average time as this time can fluctuate significantly
  • Page loaded - time to 'load' event, when all direct dependencies of the web page are loaded. That include stylesheets, javascript and images

Examples

Read more

Grumble: Virgin Media is hijacking DNS and has no customer service

Just recently we moved home and of course we had to look for an another Internet Service Provider. Due to coronavirus outbreak we could not install Vodafone. We had it previously and generally it was quite reliable and service was decent. Instead we stick to the only option - Virgin Media

TR;DR: If you can - avoid. It's a scum. Terrible service, low-end hardware, DNS spoofing, HTTP/s transparent proxy, website doesn't work, support agents are humiliating and threatening you.
Not convinced? Read further.

I'm going to repost my post from reddit and provide additional comments

If you're from IT you probably would be especially interested in what Virgin Media is doing with you internet traffic

Read more

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 more

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 more

Year 2o19 wrapped

Everything I put together all updates of different aspects of the life. Year 2019 is special as it closes the decade.

This time I feel I finished the decade's race absolutely empty. There were too many emotional blips and number of personal projects didn't even see the light but it's all about reflection on results!

Read more

Functional kotlin part 2: elvis operator

Continuing series of posts #kotlin-showoff about functional constructions in kotlin I want to demostrate use of elvis operator

Essentially, elvis operator lvalue ?: rexpression is returning left value if it's not null or executes rexpression otherwise. The crazy thing about kotlin is most of the constructions are expressions and that gives another way to express business logic.

Read more

Functional kotlin part 1: safe calls

For the seasoned Java developer it's very easy to switch to kotlin. Even more, thanks to the great effort of JetBrains team for java interop, there is no need to wait for the greenfield project to start to write kotlin code. You can start koding straight away by either implementing new functionality in kotlin or converting existing classes into the new language by employing Intellj Idea automagic converter

This is a first of this series of posts unioned by tag #kotlin-showoff

Read more

Presentation – GCP APIs with kotlin

I was invited for the talk as part of kotlin/everywhere at GDG Cloud London meetup on June 8th 2019. Unlike previous talks in this one I focused on the live coding part after brief intro into the language.

The demo project I prepared is a web site allowing user to upload pictures into GCP Storage, automatically annotate content using Vision API, synthesise voice which describes content of the image.

Read more