Immutable Infrastructure with AWS and Ansible

Immutable infrastructure is a very powerful concept that brings stability, efficiency, and fidelity to your applications through automation and the use of successful patterns from programming.  The general idea is that you never make changes to running infrastructure.  Instead, you ensure that all infrastructure is created through automation, and to make a change, you simply create a new version of the infrastructure, and destroy the old one.

“Immutable Infrastructure with AWS and Ansible” is a, so far, three part article series (part 1, part 2, part 3), that shows how to use Ansible to achieve an immutable infrastructure on the Amazon Web Services cloud solution.

It covers everything starting from the basic setup of the workstation to execute Ansible playbooks and all the way to AWS security (users, roles, security groups), deployment of resources, and auto-scaling.

How to change your Twitter username

I’m not considering a change of my Twitter account, as I’m using my surname all over the place and the only person it ever conflicts with is my brother.  But I’ve heard of people trying to rename their accounts or re-brand their activity on Twitter, so I think is article – How to change your Twitter username – is useful.

Here’s a synopsis:

  • create a new Twitter account with a @JunkName handle you don’t care about
  • change your @OldName account to @NewName, keeping your followers and tweet history intact (releasing your @OldName into the wild)
  • use the new Twitter account you made to quickly grab @OldName before anyone else has a chance to take it

One thing to note: Because of the way Twitter handles conversations, changing your username won’t retroactively change @mentions directed toward you from other people. This means that people you’ve conversed with will seemingly be talking to a ghost at @OldName instead of you at @NewName. Considering the “in-the-now” nature of Twitter this isn’t really a showstopper, just a mild inconvenience that’ll lessen over time.

BitBucket : tag from source

BitBucket has implemented one of the most frequently requested features, which was outstanding for more than three years now – creating tags from the source browser (as in BitBucket web interface, rather than from the local repository, using git and then pushing it to remote).

I didn’t see the announcement in the BitBucket Blog, so I thought I’d post it here.

In order to create a new tag, navigate to the Commits page of your repository, then click on the hash of the commit that you want to tag, and then create the new tag from the upper right corner interface as per this screenshot:

It’s not the most obvious place to have this functionality, and the other feature – the equivalent of the GitHub releases – is still missing, but it’s better than having to use the local repository.

Block unwanted advertisements with /etc/hosts file on Linux

Back in the old days, before the browsers even had extensions like Adblock Plus, many of us – tech-savvy web surfers – used to block unwanted advertising, SPAM sites, and other non-sense using the /etc/hosts file.  The technology behind is very simple – you overwrite the IP address to which the unwanted website’s domain name resolves with a loopback IP address (127.0.0.1).  Whether you do it on your own machine or at a home/office proxy server is irrelevant.  And it worked magic!

Turns out, people still use this technique today.   I came across this article, which shows how to use a rather extensive list of domains for all sorts of online madness, collected and maintained by kind folks at http://winhelp2002.mvps.org/.

I tried it out of pure curiosity and sure enough it does what it says.  I’ve reverted back to Adblock Plus a couple of days later though, as random sites were breaking here and there.  I think this might be related to different adblock-detectors that many sites employ these days.  Also, some of the ads use things like embedded scripts or buttons, which might render JavaScript errors, preventing the rest of the page from loading.

But if you’ve never tried it, I strongly recommend giving it a go.

WordPress Theme Developer Handbook

WordPress Theme Developer Handbook:

The Theme Developer Handbook is a repository for all things WordPress themes. Whether you’re new to WordPress themes, or you’re an experienced theme developer, you should be able to find the answer to many of your theme-related questions right here.

Finally, there is a more organized resources that WordPress Codex!

Headless Browsers

Headless Browsers is a list of (almost) all headless web browsers in existence.  These are browsers without graphical user interface, controlled programmatically, and useful for testing, automation, and other similar tasks.

I’ve used one or two.  I’v heard about three of four.  I had no idea there was such a variety though.

Bitcoin – Money Decentralization

With Bitcoin on the rise recently (currently priced at $900+), I thought I’d share the link to this article – Bitcoin – Money Decentralization – which provides some insight into how Bitcoin works and some core principles behind it.

The article is written more from the Computer Science perspective rather than an economic/financial one, some of the economic details might be oversimplified.

The two main aspects that make Bitcoin different from a modern monetary systems, like US Dollar or Euro, are the following:

  1. Decentralization: There is no central entity that prints (mints) money, but rather the money is being mint by the crowd. This makes Bitcoin a decentralized system.
  2. Anonymity: People who use Bitcoin hope that their identity would not be revealed, in contrast to the usual way we all buy commodity over the internet using our credit card, we have to supply our personal details to be verified against the bank who treats our account.

GPL defense issues

A friend sent me a link to this email from Linus Torvalds to the Kernel Summit Discussion mailing list.  The subject of the conversation is the General Public License (GPL) and whether or not it should be enforced in courts.  Read the whole thing – it’s quite interesting.  Here are a few snippets just to get you started:

Let’s be clear about this: lawsuits destroy. They don’t “protect”.

Lawsuits destroy community. They destroy trust. They would destroy all the goodwill we’ve built up over the years by being nice.

And then this:

Because lawsuits – and even threats of lawsuits – makes companies way less likely to see you as a good guy. Even when you’re threatening
somebody else, everybody else around the target starts getting really
really antsy.

I talked to an Oracle lawyer a few months ago, and told him their
lawsuit just makes Oracle look bad. The lawyer was dismissive, and
tried to explain how it’s silly how people take lawsuits personally,
and talked about how layers _understand_ that lawsuits aren’t
personal, and that they are still friends outside the court.

I’m sure a lawyer can “understand” how lawsuits aren’t actually
something personal at all, but lawyers really seem to be the *only*
people who “understand” that.

The fact is, lawsuits (and threats of lawsuits) do not make for
friends. You just look like a bully.

Why are browsers so slow?

As a user of Opera browser in the good ol’ days, I share Ilya Birman’s pain

But I am not talking about rendering and scripts. I am talking about everything else. Safari may take a second or two just to open a new blank tab on a 2014 iMac. And with ten or fifteen open tabs it eventually becomes sluggish as hell. Chrome is better, but not much so.

… and this too …

What would you do today if you opened a link and saw a long article which you don’t have time to read right now, but want to read later? You would save a link and close the tab. But when your browser is fast, you just don’t tend to close tabs which you haven’t dealt with. In Opera, I would let tabs stay open for months without having any impact on my machine’s performance.

Wait, but didn’t I restart my computer or the browser sometimes? Of course I did. Unfortunately, modern browsers are so stupid that they reload all the tabs when you restart them. Which takes ages if you have a hundred of tabs. Opera was sane: it did not reload a tab unless you asked for it. It just reopened everything from cache. Which took a couple of seconds.

In fact, maybe it’s a good time to try out Opera browser again.  After all, the two primary reasons I’ve switched from it were:

  • Open Source.  This was back in a day when I was a zealot.  (Yeah, if you think I’m one now, you should have seen me in my 20’s.)  Now  I am much more calm about the licensing.
  • Rendering issues.  That was back when Opera had its own rendering engine and couldn’t quite keep up with all the changes on the Web.  Since then, Opera has dumped its Presto rendering engine in favor of Webkit (the same engine that Google Chrome, Chromium and Safari browsers are using), and then dumped Webkit in favor of Blink, which is like … erm .. new Webkit (?) or something like that.

So maybe it’s good enough in rendering department and I can have my performance and tab management back.  As Ilya mentions, no other browser came close to the tab management of Opera back in a day.  I frequently have a 30+ tabs open, and its only because that’s as much as Chrome can handle on my laptop.

Update: Tried out the latest version of Opera now for about half an hour.  I suddenly remembered another reason for why I’ve switched – fonts.  Default fonts configuration is far from optimal.  For multilingual pages (English and Russian) is more than horrific.  Oh well, I guess, I’ll have to wait some more.