category tech

Dec. 18, 2020
Ruby Wizardry translation to Ukrainian
english book ruby

The Ruby Wizardry book translation into Ukrainian is published!

Oct. 31, 2020
Producing histograms in terminal
cli histograms awk gnuplot

Quite often I end up with the need to quickly visualize information in a terminal as a histogram or a chart of some sort. Here are three methods I use most often.

Oct. 16, 2020
Just a quick note on setting up autossh on system’s startup. I use it to proxy-forward traffic from the internet exposed host to a firewalled host inside a private network. This way all the data and apps stay on-prem but are available to external users if needed. autossh advantage is that it restart ssh in case connection breaks for some reason. It’s important to configure it in a way so that it can detect such breakdowns.
Oct. 5, 2020
Fixing mosh failing on MacOS
macos mosh locale terminal iterm console

TLDR

Problem: trying to connect to a remote server with mosh you see error messages like:

mosh-client needs a UTF-8 native locale to run.
mosh-server needs a UTF-8 native locale to run.
The locale requested by LC_CTYPE=UTF-8 isn't available here.
locale: Cannot set LC_CTYPE to default locale: No such file or directory

OR when connecting with ssh from iTerm2 you get the error message

-bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory
Sep. 22, 2020
I have been re-reading Tom Limoncelli’s et al. The Practice of Cloud System Administration book (which is great and is well worth reading even 5 years after it has been published) and it has this wonderful reference table called Latency Numbers Every Engineer/Programmer Should Know. This table was popularized by Jeff Dean, and originally presented by Peter Norvig. I find it handy and wanted to copy it here, on my blog, but then realized it’s almost a decade old as the data was from 2012.
Jul. 28, 2020

This is just a quick note for how to make Home and End keys behave sensibly, i.e. take you to the beginning or end of a line:

Jul. 2, 2020

Today I’ve stumbled upon an amusing post “Software disenchantment” by Nikita Tonski which resonated with me quite a bit. The following fragment in particular:

Jul. 2, 2019
AWK vs Big Data
awk bigdata quotes
Don’t sleep on the basics. Someone probably solved your problem in the 80s. There’s been a lot of talk about big data recently. Lots of people just shove data into whatever software is currently all the rage (think Hadoop some time ago, Spark, etc) and get excited with results that actually aren’t that amazing. You can get very decent results by using the standard data processing toolset (awk/grep/sed/sort/xargs/find) paired with understanding of what data you process and how the software works.
Nov. 14, 2018
Review: Have you tried turning it off and on again?
lisa conf dependencies scale
This is the LISA2017 conference talk review I wrote for their official blog. Just saving a copy here in case they decide to rework their blog and content disappears or something. Submitted by ipesin on November 7, 2017 - 11:38 am When you attend a talk that starts with a Google engineer asking, “What would happen if all of the machines you are running on restarted right now?” you might get really worried.
Nov. 7, 2018
Review: Getting started with Docker and containers
lisa conf docker figlet ascii asciiart review
This is the LISA2017 conference talk review I wrote for their official blog. Just saving a copy here in case they decide to rework their blog and content disappears or something. Submitted by ipesin on November 1, 2017 - 3:38 pm What makes a good conference so special? With vast amounts of information available virtually on any topic imaginable at a click’s distance, would it not be more efficient to spend time in comfortable home setting learning new technology?
Aug. 3, 2018
Conway's Life simulation in Go
model ascii golang life conway
Implemeting Conway’s life is one of the first things I do when exploring a new programming language. Conway’s Game of Life, also known as the Game of Life or simply Life, is a cellular automaton devised by the British mathematician John Horton Conway in 1970. It is the best-known example of a cellular automaton. Ever since its publication, Conway’s Game of Life has attracted much interest because of the surprising ways in which the patterns can evolve.
Aug. 3, 2018
The Schelling Model of Ethnic Residential Dynamics
model ascii golang segregation schelling
In 1971, the American economist Thomas Schelling created an agent-based model that might help explain why segregation is so difficult to combat. His model of segregation showed that even when individuals (or “agents”) didn’t mind being surrounded or living by agents of a different race, they would still choose to segregate themselves from other agents over time! Although the model is quite simple, it gives a fascinating look at how individuals might self-segregate, even when they have no explicit desire to do so.
Jan. 17, 2016
My zenburn-based terminal colour palletes
colors colours palette putty terminal

I was a big fan of standard linux terminal colour palette. Initially, the default was a saturated version and later it shifted to pastel colours. I still enjoy the way it looks – bright and clear; it also works great if you are giving a demo over a beamer, opposed to dark backgrounds.

Jan. 9, 2016
Messages emoji auto-substitutions
emoji shortcuts

While everybody on the internet seem to be concerned with how to turn off emoji auto-substitution in Messages, I’m quite fond of it. Here is the list of working shortcuts for emojis:

Dec. 29, 2015

Just a quick thought on multitasking in SA (or DevOps, if you prefer). There is a common knowledge that multitasking is bad, it hurts your performance, quality, and whatnot.

Apr. 4, 2014
VIM cheatsheet
vi vim cheatsheet

Putting my favourite vim cheat sheet here, so that I don’t have to plough through google results next time I need to recall how to use named registers.

Jul. 21, 2012
vim syntax highlighting for cfengine3
vi vim cfengine highlighting syntax sa
A major part of my work these days is connected with cfengine3 and writing promises. I’m kind of a vim-guy, so clearly I’m using it when writing cfengine promises and when you write a lot of code, you’d definitely want to make your development environment comfy and snug. Part of being comfy and sung in my understanding is syntax highlighting, which tremendously simplifies reading the code and makes you spot typos and other sorts of mistakes right away.

— `If you knew Time as well as I do,' said the Hatter, `you wouldn't talk about wasting IT. It's HIM.'
$ Last updated: Feb 7, 2021 at 13:38 (EET) $