Easter Egg is a hidden feature in the software which can be only activated under particular conditions. Software developers had a long history of these jokes. Because often day-to-day work is boring programmers put some fun nearly inaccessible unrelated features into the software.
Quick notes
Quickie posts when I’m lazy
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
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
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
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.
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
Year 2o19 wrapped
Everything I put together all updates of different aspects of life. The year 2019 is unique as it closes the decade.
This time I feel I finished the decade's race absolutely empty. There were too many emotional blips, and several personal projects didn't even see the light, but it's all about reflection on results!
Functional kotlin part 2: elvis operator
Continuing series of posts #kotlin-showoff about functional constructions in kotlin I want to
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.
Functional kotlin part 1: safe calls
For the seasoned Java
This is a first of this series of posts unioned by tag #kotlin-showoff
5 Years In UK
Five years ago I started one more journey when I landed for the first time at the Heathrow Airport from Saint-Petersburg. As expected, many things have changed. Since it's quite a date I want to reflect on the life.