The sound of open space is mouse clicks.
Like cracking Aegina’s pistachios all the time.
Noise cancellation works.
Fighting the automation paradox || Deployment θα κάνουμε φωνάζοντας "αέρα"
The sound of open space is mouse clicks.
Like cracking Aegina’s pistachios all the time.
Noise cancellation works.
If you have a 2012 nexus 7 by now either you’ve installed Lollipop and you complain about the machine’s behavior, or you’re reading other people’s gripes. Mine is running Android 5.1 now and here is what I did to make it bearable to work with:
I am using this tablet as a Kindle Reader, Google Play Books Reader, Aldiko Reader, and the occasional social media. No Google+, no Youtube (no video whatsoever). Original Angry Birds from Play Store seems to behave. From time to time the machine locks up (about once a day) but I am keeping it for now.
YMMV.
This is basically an effort to rehash Conway’s Recipe for Success for DevOps:
Work on several problems at a time
Conway was working with six problems at a time as a means to battle depression by failing to conquer a specific problem. Six problems are enough to fit your daily mood. It is more than one per day anyway. In DevOps the software stack you need to coordinate just to make your app go live is so versatile that there is always something you can work on daily even if your primary focus seems stalled. Beware though since this is also a way to not make any work at all. You can eat an elephant but somehow we seem to attract hordes of them. And then you can just stare at the monitor Hopeless.
A good strategy to combat this is what I once heard “type A people procrastinate by doing other things”. Your stack has more than six components, you can easily have more than six fallbacks should you get stuck.
If anything, please try and don’t ever break your rhythm. Interrupts cost. Context switching too.
Pick your problems with specific goals in mind
This is one thing that I suffer a lot. Everything is cool. And I want / need to know everything. In acceptable depth. Today. But this is not feasible even if we have 25h per day and no sleep. So, IMHO (and I try hard to do so) the plan is to pick problems with two goals in mind: Your current job and “the dream job” you want to land on.
Big problem
The difficult and important problem for Conway. The Architecture problem in the DevOps case. Is your running Architecture OK? Does it need improvements? Do you need something completely new? Are you to invent the next lambda architecture? How are you going to make your dent in the circle?

(Yes, you have to try to make a dent in the circle even if you’re not pursuing a PhD.)
Workable problem
Big problems mean big delays most of the time. And in trying to solve big problems you need practice. So you need to have an arsenal of problems you can work on that you can solve. They may be boring or even need repeated tedious tasks performed by you. Automate yourself out of them if you can. Flex your brain muscle so that you can work on the big stuff properly warmed up. Your current setup always has clear steps that you can walk forward. Nothing fancy that you could give a speech about, but something that you can complete during the day and feel good about it.
Book problem
I do not have a book project on my own. But over the last 20 years there have been two books that I wish I could find time to revise. I have a friend though that just finished writing a book and he seems pretty happy with the result.
If you’re writing a book, consider this as yet another problem you’re working on. If you’re not writing a book, well write something. There is always less documentation than needed.
Read a book by the way. Make reading books your book project. That’s mine too.
Fun problem
You should always have at least one problem that you do for fun said Conway. Well I guess we have Github for that, don’t we? I think my current fun project will be cryptopals. Let’s see for how long.
Enjoy your life
“The trick in life is to find out what you think is play that the fools think is work so that they will pay you to do it.”
Happiness is the single productivity booster that one can think of. Grief and depression the best demoralisers. This post about Karojisatsu really shook me. And it came during a time that I was seriously thinking about DevOps inflicted depression.
I still have no generally applicable tricks about that.
This reached me through infowarrior (author of The PowerPoint Manifesto):
In a sign of how Carter intends to challenge his commanders’ thinking, he has banned them from making any PowerPoint presentations — a backbone feature of most U.S. military briefings.
Could it be that such presentations have become an integral part in briefings because of Patterns of Conflict? I cannot tell, but it sure is the most known military presentation outside the military world.
But where had I seen banning presentations before? Ah, Louis Gerstner at the decks:
At that time, the standard format of any important IBM meeting was a presentation using overhead projectors and graphics that IBMers called “foils” [projected transparencies]. Nick [a division head] was on his second foil when I stepped to the table and, as politely as I could in front of his team, switched off the projector. After a long moment of awkward silence, I simply said, “Let’s just talk about your business.”
[ This draft has been gathering dust for a few years, so I am posting it because what the heck, I’ve written it ]
I found out about dotplots while reading “Algorithms on Strings” (thanks to Bill Gasarch) an impressive book by the way, that easily makes it to the top-5 CS books I’ve read. It may well be one of the most complete works on the subject fulfilling simultaneously the needs of those who want to read the theory, see the proofs and/or write code (for it contains well understood pseudocode). But I digress.
Dotplots are tables that can be used to compare sequences (and therefore strings) and can reveal hidden patterns that may not be observable with other methods. They are in use for decades and known to people who work on computational biology (see for example “A high speed, high capacity homology matrix: zooming through SV40 and polyoma“)
Definition: Given two strings x and y with lengths m and n respectively we define a table Dot (the dotplot) of size m×n such that Dot[i][j] is true if x[i] equals y[j] and false otherwise.
Using the book example sequences ACGT and ATGCTACG we get the dotplot:
ATGCTACG A*....*.. C...*..*. G..*....* T.*..*...
To interpret a dotplot we observe that diagonals express similarities and antidiagonals reveal the existence of a substring in reverse order. In a similar fashion horizontal lines represent insertions and vertical lines deletions that lead from one (sub)string to the other. One can therefore think of a dotplot as a kind of visual grep.
Dotplots find usage outside computational biology. They can be used for text analysis and even translated plagiarism! However, the screen real estate is not big enough to use for comparisons that involve for example the source code of the X Window System and techniques mentioned in “Dotplot: a Program for Exploring Self-Similarity in Millions of Lines of Text and Code” and “Dotplot Patterns: A Literal Look at Pattern Languages” can be used. Both papers contain really interesting applications of dotplots and explanations of the visual patterns that occur. See for example:

As shown by the ASCII example above, it is very easy to create proof-of-concept dotplots. But character based dotplots are limited by screen space. In fact I set out to create my own version of a dotplot program using gnuplot for the graphical stuff. Building a basic dotplotter is really easy once you read the techniques presented in Helfman’s papers but the result might not be as “good looking” as the ones that Helfman has done. To build cool dotplots, it may be needed to customize your software appropriately. For example, to dotplot source code, your program might need to have parsing capabilities for the language in question (for example two for loops might be similar to another when you look at it, but whitespace might make them look different to a simplistic dotplot builder).
[ There is not going to be a part2. Originally I wanted to experiment with dotplots and spam, but I am not a postmaster anymore, so I’ll leave it to the next interested postmaster. ]
I bought Comeblack when it popped up in Spotify while searching for Rock You Like A Hurricane. It contains 7 re-recordings (I particularly like The Zoo) of their best songs of my school years and 7 covers of songs by other artists, the best execution being Tainted Love for me.
A true Scorpions album that appeals to die hard fans IMHO. And as usual a compilation that does not contain any of their work with Roth.
It is funny how the mind connects things. I was listening to Fake It Till You Make It from the StartUp podcast and they brought up the Crazy Eights design(?) trick:

Well if you are to make a Crazy Eight, you are only just a step away from making a PocketMod to fold the design and put it in your pocket:

I am carrying a PocketMod with me all the time ever since I read Time Management for System Administrators by Tom Limoncelli. I dump anything I can think of, no matter how crazy on the PocketMod beside me. Plus it works almost like the (now defunct for copyright reasons) NotePod:

Funny brain connections in the morning I guess.
[ I recently wanted to locate this essay, only to find it in the web archive. I believe that it deserves preservation and maybe a lot more visibility ]
Friday, December 17, 1999; by Luke Tymowski.
A few minutes ago, I learned that I am now (in practice no less) absurdly poor.
I was at my machine, surfing, when I got a phone call castigating me for not paying my phone bill. I was looking for work — a job doing Windows database programming for corporations using Visual Basic, a language in which I had no say in the design. I’ve called it paying the rent and putting food on the table, or living. Living is what we have to do to keep paying bills. It’s a viscious circle, working to pay bills and buy food, working to live, living to work. It’s very cool.
“Every program attempts to expand until it can read mail. Those programs which cannot so expand are replaced by ones which can.” —Zawinski‘s Law
I shared something with a good friend of mine at Evernote, which made us observe that this makes the Evernote platform yet another Inbox for us to check for messages daily. We got the observation a little further and one could say that:
Every software as a service platform expands until it can support messaging among its users.
Instant or not so instant does not matter that much. But it seems to me that those who do not, do get replaced by competitors who support it.
[ Note: I’ve submitted this review for Social Network Analysis for Startups on O’Reilly’s site for the book also ]
The book is read very quickly if you decide not to work on the examples. Therefore it is a nice introduction to the subject, especially for people who do not want to go through Sociology or Graph Theory books.
It has very many typographical errors. This is the book from O’Reilly that I have submitted the most typos ever.
My major concern with the book is that although it uses NetworkX for an introduction to Social Network Analysis for Startups, the authors themselves say that NetworkX is not good for say 2000 nodes and above. And yet we are in an era where Startups get considered seriously after acquiring hundreds of thousands of users. And no the final chapter on Big Data does not really help out because it is not in the same pace as the previous ones. For example where would I go to find centralities for a 200K node network since NetworkX does not cut it? This is what the intended audience of the book wants in the final chapter. Or so I feel.