Category Archives: Links

Links: Oct 24th

Computer Science is no more about computers than astronomy is about telescopes
— Edsger Dijkstra

Let me start this post with two very powerful articles in The Economist:

  • Philosopher kings. Business leaders would benefit from studying great writers.
    This resonates a lot with me, and is easily transposed onto politics. I can’t get rid of despair how shallow and primitive our politicians are en mass; all the more lame sound our journalists referring to them as ‘elite’.
  • Wealth without workers, workers without wealth. The digital revolution is bringing sweeping change to labour markets in both rich and poor worlds.
    The overview of a silent revolution that is happening around us. Engaging parallels with two previous Industrial revolutions, opportunities, trends, and the role of IT knowledge in the future.


  • Bedford’s law (here in Russian), something I was unknowingly bumping into before when trying to fairly evenly split the list of hostname. First thought of splitting by first character was obviously naive as hostnames tend to follow some patterns. Then I decided to calculate some hash function on the hostname and pick the first figure. I thought that would be fairly evenly distributed, but to my surprise it wasn’t. Now I have an explanation — Benford’s law.
  • On rpm-based system you can use following commands to restore file’s permissions and ownerships:
  • To reserve a CPU core for some particular process and make the scheduler avoid placing other processes on that CPU you need to use cpusets. There is a generic tutorial here on shielding a CPU (Serge, thanks:), but it’s much more fun to use cset tool. Just look how cool it is in the examples on stackoverflow and in this tutorial.
  • Some handy information on editing with ed, an undeservedly underused tool these days
  • A standard way to implement Redis sharding and (!) make Redis utilise multiple cores: twemproxy.
  • Compact 100-line implementation of netcat in perl. Works perfectly in pair with ssh ProxyCommand.
  • HTTP/2 is coming: RFC2616 is dead.
  • In the light of recent security vulnerabilities, even more useful site with instructions on web-server encryption configuration:
  • Say ‘Hello’ to hidepid= option in Linux; a way to hide processes from other users.
  • And as a titbit, shell niceties:
    • Progress bars and spinners: here and here, my favourite is this:
    • Best ever pidtree shell implementation (from superuser):


Links: Jun 3

Writing is nature’s way of telling you how sloppy your thinking is.


  • Shocking post-mortem from Joyent: operator mistake and a tool which reboots the whole datacenter without requesting additional confirmation.
  • Defensive BASH programming — an excellent post on scripting techniques!
  • Thinking for programmers by Leslie Lamport. The epigraph comes from this talk.
  • The best expect script I found to execute commands on servers remotely via ssh. This is really handy when one does not have key-based authentication set up. The downside is that it’s slow, so one need to parallelise it if one has over few dozen of servers to crawl.
  • ncf — CFEngine framework for small installations, runs in pure CFEngine language, to help structure your CFEngine policy and provide reusable, single purpose components distributed under the GPLv3 license.
  • The same guys are behind the Rudder — web-driven, role-based solution for IT Infrastructure Automation & Compliance.
  • “Law of Murphy for devops: if thing can able go wrong, is mean is already wrong but you not have Nagios alert of it yet”. Therefore, don’t forget to monitor these things.
  • Interesting stats on monitoring tools — Nagios is the king, Sensu and Zabbix have a large chunk of large deployments.


  • Hilarious story about why programming sucks. Careful and exact observations put in a lively and funny language. It definitely made my day!
  • Quirks with pronunciation of some borrowed words:

    Another word that the British Anglicized from French is harass and its related noun harassment. They shifted the accent to the first syllable, sounding like “harris.” The Americans preferred the French-style second-syllable stress, no doubt further encouraged by the double s. But the British style is becoming more popular with people who don’t want to sound like they’re saying “her ass” — sort of like how the British “urine-us” pronunciation of Uranus, based on the Latin and Greek stress pattern, is sometimes preferred by Americans who don’t like how the American say-it-like-it-looks version sounds like “your anus.”

  • Stop new wordage? Never gonna happen. In defence of unnecessary words.
  • Corporate speak — speaking strategically without a strategy.

As languages go, English is particularly extreme in differentiating between stressed and unstressed syllables; the stressed syllables play a disproportionately big role in making words identifiable, and because unstressed syllables are out of the spotlight, and don’t contribute much to the exact identity of words, it doesn’t really matter exactly what they sound like. For example, some people pronounce the first syllable of believe as /bɪ/, others as /bə/, and in fact it would often be hard to tell exactly which vowel sound is used. Even if you use a different one – if you say, for example, /bʊ/ or /be/ – the identity of the word will be clear; the important thing is to pronounce the stressed second syllable with a clear /iː/ vowel.



The story behind lavabit shut down.

Links: Apr 4

My, when they would finally invent a direct interface from a brain to computer? Can’t wait, really.


  • Outlook is freaking evil: if you open a plain text email, it would happily ignore some of the new-line breaks. Crumbs! Appears that is a ‘feature’! If you need to make sure your email with command’s output will have new-lines preserved, the rule of thumb is either to have 2 spaces in front or 3 spaces at the end of each line.  Stackoverflow rules.
  • You might know I’m passionate about Solaris. Have just got more reasons for my passion. Reason one: sed can’t replace a character with ‘\n’. Seriously, you need to actually type in Enter to get it working. As if that was not enough, Solaris’s mail tool doesn’t have an option to specify subject line (yes, I know about mailx, but that complicates writing cross platform code).
  • Google cancelled underlining of links, what’s the world coming to?!
  • And a response to “Let Nagios die peacefully” — “I’ll be letting Nagios live on“, which I back.
  • systemd development culture seems to have a detrimental effect on the mental health of people being involved. Have heard many times a range of complaints about Linus’s harsh management manners, but I’m inclined to think that Linux became possible in its current form in many ways thanks to such streaks in Linus’s character.

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


And to finish up on a cheerful note: How it feels to be an Engineer in the Corporate World

I’m happy I don’t feel like that, but it does ring some bells, doesn’t it? See ya.

Links: Feb 16

Change of plan! Will now try to write shorter posts but more often. With bigger posts, if I miss a date, they start to scare me off writing them as I know that would require substantial time investment.

Recently I have discovered how once never-failing task prioritisation strategy can backfire. You most certainly know the strategy: an interesting, engaging, and enjoyable task should be stashed and used as a treat after one sorts out boring or urgent assignments.

You’d wonder how this could possibly go wrong? Here’s what happened with me: one of the tasks, which I long wanted to implement myself, was finally approved and assigned to me with low priority. I revelled and carefully set it aside so I could come back to it with enough time to do it neat and proper. Alas! For the next three (!) weeks, due to routine, urgent, and other business, I haven’t got enough time to tackle it.

Eventually, the task received medium priority and I had to implement it within certain time constraints. This obviously meant it wasn’t as neat as I wanted it to be; this also meant it wasn’t a treat anymore! Broken hopes and bad mood instead of delight and satisfaction! Horrible experience, beware. Now I’m trying to get back to it and rework the way I would at least be content with.

Okay, let’s shove in some of the interesting links I came across last month:


Tom Limoncelli referred an interesting article that defines five stages of how management, owners, and investors treat IT in their businesses:

  1. Cost center
  2. Service Provider
  3. IT Partner
  4. Business Peer
  5. Business Game Changer

Implication is the further stage you’re in, the better it is. It struck me though that some firms actually may advance in a backward direction! I would not want to stay with the firm that made more than one step backwards (one step might be a coincidence, two — a pattern).

Why would someone writing in Python and Ruby want to learn Java? Here’s an explanation: Why I’m Learning Java.


    • Valuable bookmark: how to count and quantify the number of syscalls a program makes? Here’s an example using SystemTap.
    • Very good explanation why systemd raises so many questions and fires heated debate — systemd: broken by design.
    • Vector — an interesting tool for predictive scaling and flexible downscaling of your AWS environments.
    • Blockade — a utility for testing network failures and partitions in distributed applications.
    • Provocatively titled post ‘10 things we forgot to monitor‘ lists some of the things you shouldn’t be missing in your monitoring. Included mostly for scripts examples.
    • Flapjack — monitoring notification routing + event processing system. More details on how and why and a live demo.
    • Very expressive presentation on how to build a modern monitoring subsystem:




Seems I’ve failed to make this post short. Have so many interesting things in my drafts that it’s challenging to stop once started. Will improve next time. That’ll be all for today, folks.


Links: Jan 19th


Okay, you’d think Murphy laws were jokes. But as situation in Ukraine shows most of them are true, aren’t they?

All of this really saddens me and spoils good faith in further; but it does demonstrate the essence of real world and people’s desires. Turning though from harsh reality to wonders of virtual world, let’s start with few reminder links:

Suppose you want to transfer a file “file.txt” from server A to client B.
Server: $ nc -l 4444 < file.txt
Client: $ nc -n 4444 > file.txt

Suppose you want to transfer a file “file.txt” from client B to server A:
Server: $ nc -l 4444 > file.txt
Client: $ nc 4444 < file.txt

Remote shell:
Server: $ nc -l 4444 -e /bin/bash -i
Client: $ nc 4444

Reverse remote shell:
Server: $ nc -l 4444
Client: $ nc 4444 -e /bin/bash




  • Physicist Lawrence Krauss gives a talk on our current picture of the universe, how it will end, and how it could have come from nothing. Very thrilling talk on cosmology:

  • Open offices are an unfortunate misunderstanding. New Yorker:

The open office was originally conceived by a team from Hamburg, Germany, in the nineteen-fifties, to facilitate communication and idea flow. But a growing body of evidence suggests that the open office undermines the very things that it was designed to achieve. In June, 1997, a large oil and gas company in western Canada asked a group of psychologists at the University of Calgary to monitor workers as they transitioned from a traditional office arrangement to an open one. The psychologists assessed the employees’ satisfaction with their surroundings, as well as their stress level, job performance, and interpersonal relationships before the transition, four weeks after the transition, and, finally, six months afterward. The employees suffered according to every measure: the new space was disruptive, stressful, and cumbersome, and, instead of feeling closer, coworkers felt distant, dissatisfied, and resentful. Productivity fell.

When the Avatar was first released I was appalled by claims that it was touted as ‘totally original work from the mind of Cameron’. I was sure that many years ago I read strikingly similar story by some of well-known sci-fi writers, but was struggling to remember the name of either the novel or the author. There was the same paraplegic hero who telepathically connected with an artificially created life form in order to explore a harsh planet and get access to its resources. Doesn’t it sound similar to the Avatar’s plot?

Recently I accidentally stumbled upon this novel — that was Poul Anderson’s Call Me Joe, written in (!) 1957. This is a classic sci-fi masterpiece and I would recommend reading it any time.

Links: Jan 2

Merry Christmas and a happy New Year! :-)


  • A very interesting and simple video explaining how the Bitcoin works. As Tom Limoncelli mentioned, this is first time I understood it:

  • A video from ChefConf, Phil Dibowitz’s talk about Scaling systems configuration at Facebook. Very interesting to listen what they count as important achievements and what sort of approaches they use. Few things irked me though:
    • What point is in comparing Chef, first released in 2010, with CFEngine 2, which was released in 1998, especially considering CFEngine 3 is around since 2008? Most of the complaints about CFEngine or its shortcomings Phil makes either have been addressed or are easily implemented in CFEngine 3.
    • The lessons they have learned are enlightening, though achieving idempotent systems is very complicated in cases when you do not own the systems you are supposed to manage via configuration management.
    • Full programming languages versus DSL — well, no one argues that full programming languages are way more versatile compared to domain-specific, but that’s their purpose. Implementing functionality which DSL is tailored for, on the other hand, is faster and more efficient in DSL. I would try to strike a balance here, using each tool in the domain it is targeted at.
  • And two messages I wanted to highlight:
    • Scale is more than number of clients — this is a very powerful message that many miss.
    • Regarding testing — not long ago I had a lunch with couple of younger colleagues and we were discussing release rollouts and time estimates. I started with saying ‘Suppose your release fails at the very last step of the procedure…’ and was interrupted with ‘why would it fail?!’. I had to stop and explain that ‘Why would it fail’ is a wrong question to ask. If we knew why it would fail, we could have prepared or even address it. This is just to reinforce Phil’s message that ‘until you run it in production, you cannot know it works’. Totally agree with this.

  • An example of Docker and CFEngine integration
  • On the relevant note — is Docker really suited for use with configuration management?
  • To end chef-related links, here is a web-tool that lets you browse the data in your Chef server: Chef Browser.
  • Switching to hiring matters, two excellent blog-posts: Interviewing as a Front-End Engineer in San Francisco and On Interviewing Front-End Engineers 
  • Unknown MS-DOS 4.0M:
    • Multitasking MS-DOS 4.0 was a little known and separate development of DOS done in parallel with the development of DOS 3.x in 1985. It should not be confused with the later retail DOS 4.0 that was released in 1988. DOS 4.0 supported preemptive multitasking, shared memory, semaphores, advanced memory management, a session manager, imports, exports and a new executable format. Many of the ideas and features introduced here found their way into OS/2. Unfortunately DOS 4.0 was limited by the real-mode 8086 environment and the 640KB address space. Also programs which were not well-behaved or relied upon undocumented DOS functions would not run properly under DOS 4.0, particularly TSR programs.
    • From Larry Osterman’s blog: MS-DOS 4.0 was unique because it was developed “on spec” – IBM didn’t see a need for a multitasking version MS-DOS and didn’t have a new hardware offering on which to attach the product. But IBM did have the PC/AT which was an 80286 based processor and it didn’t have an OS that took advantage of that hardware. So IBM and Microsoft started negotiations to take the MS-DOS 4.0 code base and turn it into what eventually turned into OS/2. I ended up not working on the OS/2 effort, instead I worked on finishing up MS-DOS 4.0 for the OEM partners who had licensed MS-DOS 4.0.
    • Investigation report on MS-DOS 4.0M in Russian
  • Finally this is happening: routing battles, somebody forced the world’s Internet traffic through Belarus and Iceland.


Links: Dec 24

Just when you think you’ve sorted things out it appears the whole world gone mad :-) Ukraine has got its next Maindan (that’s how we call a nation-wide protest here) and the time is even more scarce than it was. Here are few links to sum up and give you the taste:

Some other, more conventional news:




  • NYTimes article on Lviv’s history in architecture.
  • Triumph of ignorami lasted 7 days: Ukrainian ski resort outlawed mobile phones based on citizens fantasies. Reminds me how bus and tram drivers were complaining they are receiving a radiation from newly installed GPS receivers (which do not emit any radiation by definition)

pay map
pay list

Links: Nov 8

You know, I’m totally baffled by the contrast in quality of Obama for America 2012 and ObamaCare projects. The first one was top-notch bleeding-edge technology project carried out with gleaming excellence, the second though has been a model failure by all means.

4Gb/s, 10k requests per second, 2,000 nodes, 3 datacenters, 180TB and 8.5 billion requests. Design, deploy, dismantle in 583 days to elect the President. #madops

Tweet above summarises the challenge for OFA2012 project and here are few links about it:

Calamities with look like they’ve been using services of the /dev/null-as-a-service kind. Facepalm.

Got an email from google+ telling me I’m eligible for custom URL. Made me even log in, found out it was still as revolting as it had been for a year or so, and on top of it, my very first posts to google+ were missing. Actually, one of the reasons I started to use G+ was to save interesting links I had come across, and as you might imagine, I’m thrilled to discover they wipe my older posts. So expect some flashbacks, as I’m not going to loose interesting stuff and will repost it here.

Continuing to catch-up on links:


  • The Ars Technica Review of Mac OS X Mavericks, in-depth, long, and interesting reading.
  • Recommended server-side SSL configurations
  • DevOps Look-fors — the way of assessing your processes maturity
  • Beej’s Guide to Network Programming
  • Question asked on many interviews — can root kill init process? It depends.
  • Algorithms part 2 commenced!
  • Boostrap 3 add-ons collection (in Russian).



  • Banksy turns 50$ painting into 1M$ treasure
  • How a plan becomes policy:

In the beginning was the plan.
And then came the assumptions.
And the assumptions were without form.
And the plan was without substance.
And darkness was upon the face of the workers.
And they spoke among themselves saying,
“It is a crock of shit and it stinketh.”
And the workers went unto their supervisors and said,
“It is a pale of dung and none may abide the odor thereof.”
And the supervisor went unto their managers and said,
“It is a container of excrement and it is very strong, such that none may abide by it.”
And the managers went unto their directors, saying,
“It is a vessel of fertilizer, and none may abide its strength.”
And the directors spoke among themselves, saying to one another,
“It contains that which aids plant growth and it is very strong.”
And the directors went unto the vice presidents, saying unto them,
“It promotes growth and is very powerful.”
And the vice presidents went unto the president, saying unto him,
“The new plan will promote the growth and vigor of the company, with powerful effects.”
And the president looked upon the plan and saw that it was good.
And the plan became policy.
This is how shit happens.

  • Jennifer’s the winner: Six Decades of the Most Popular Names for Girls, State-by-State

Popular Girl’s Names


Links: Oct 27

This has been a busy month and, what pleases me, very productive. Apple’s recent announcement managed to surprise in many ways, which is delightful as well; if you’re still on Mountain Lion consider upgrading, Mavericks got it right in so many places, that it’s even difficult to tell which changes are most compelling.

I’ve lagged on links, however, so catching up:


  • What nohup does:

  • Query against over 1500 global DNS servers



  • I’ve finally found where the phrase “With sufficient thrust, pigs fly just fine” comes from! Appears it’s from RFC1925:

(3) With sufficient thrust, pigs fly just fine. However, this is not
necessarily a good idea. It is hard to be sure where they
are going to land, and it could be dangerous sitting under them
as they fly overhead.

But references to flying pigs appear even in Lewis Carrol’s Alice:

"Thinking again?" the Duchess asked, with another dig of her sharp little chin.
"I've a right to think," said Alice sharply, for she was beginning to feel a little worried.
"Just about as much right," said the Duchess, "as pigs have to fly...." — Alice's Adventures in Wonderland, Chapter 9.


Links: 29 Sep




Better later than never, spent the night reading this book, because could not have torn myself away from it. Absolute must-read for SAs, gives a perspective of IT role in modern firms, shows challenges management faces, and also vividly depicts how fast one can get IT working given right approaches. Excellent.

The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win: Gene Kim, Kevin Behr, George Spafford: 9780988262591: Books

The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win: Gene Kim, Kevin Behr, George Spafford: 9780988262591: Books book. It really captures the day to day struggles of the IT world. It give a unique look into the misconceptions of IT and how businesses tend to neglect the…

Very interesting Paula Scher’s TED talk where she looks back at a life in design (she’s done album covers, books, the Citibank logo …) and pinpoints the moment when she started really having fun.

Crikey, I know this feeling:

Bringing a sysadmin to a social event