I stayed for a few months in London, helping set up a new SRE team for work there. I was always struck by how uniform the signage and branding within the City of London was (contrasting with the varying styles in the larger, lowercase city). Today while looking going down a rabbit hole about road signs and typography, I came across this article. It shows that the City has had a Corporate Identity…
It can be tempting to quickly approve LLM commands especially when under pressure to ship a new feature or quickly fix an issue. This article which has been making the rounds recently is a good example of how doing this can make things can go catastrophically wrong. A few observations: I applaud the author for both the transparency, and for owning the resulting issues and not saying “The LLM…
This article is an engaging read. I tend to bounce back and forth between natural language and GUI or CLI-based modalities – of course, in the last few years I have leaned towards the natural language one due to LLM usage. 1 The article argues (somewhat reasonably) that more structured, inline GUI elements are preferable and reduce interaction latency. I do tend to get frustrated sometimes…
When S3 Tables came out in December 2024, I was a little confused about what exactly the value proposition was over hosting your lake-style files in S3. Andy Warfield answers that question here: What compaction is doing is, like I said, you’ve got one giant Parquet file, possibly as an initial table. Over time, you’re adding additional Parquet files. Each one of those adds a bunch of metadata…
There’s this “It’s Always DNS” meme that often goes round the Interwebs, somewhat bolstered by the Twitter outages that occurred (DNS, of course) in late 2016. I haven’t had that many DNS problems in my line of work, but the other day I saw something that made me jump right on the “It’s always DNS” bandwagon. So I was setting up a test instance of an…
A couple years ago, I got a WD MyNet N750 on sale and put OpenWRT on it, for use as my home wireless router (with the excellent Motorola SURFboard SB6141 serving as modem). It ran flawlessly until last week, when the WAN port on the router stopped working, probably as a result of a power surge during a thunderstorm. While discussing the problem the next day, a coworker suggested, “Can you work…
This post describes a rather intriguing Unix puzzle. What do you get when you run echo cat | sed statement ? Clearly, the first part yields the string cat , but I don’t know sed well enough to get the answer off the cuff. Let’s see what does happen. $ echo cat | sed statement cement Now that was a bit Unexpected. So somehow, the at part of cat is being replaced by ement from statement…
This post by Justin Duke reminded me of something unusual I have been doing recently. A couple of weeks ago, I reflected on the fact that we use a considerable degree of restriction when “talking” to our phones (something that I do very little of). For example, we will make sure to say, “alarm”, or “wake me” — and we usually specify AM or PM as well. Something like, “Ok Google, make…
This week, we were discussing ccTLD (country code Top Level Domain) confusion at work – specifically in the context of the .om toplevel domain, which apparently is used for tricking people into visiting foo.co.om instead of foo.com . This led me to dig a little more into how exactly the ccTLDs for each country are assigned. RFC 1591 tells us that they are taken straight from ISO-3166 .…
This post should not be used as an actual implementation any longer. The mention at the end about the project that was in public beta at the time this was written, Let’s Encrypt , is now the preferred way to put your site behind a free and easily renewable SSL certificate. So please use that instead! Historical context about how terrible it used to be to maintain free SSL certs for your site…
Dr. Drang’s post referencing puzzle-based games reminded me of a word-puzzle game I used to play a lot and haven’t in a long time. Jumble was a game that was published first weekly, then daily in the Indian Express, the newspaper that I read daily as a kid. It consists of four anagrams – two five-letter and two six-letter ones. You unscramble the four words, and the circled letters…
Type in what you think is the domain name for Google into your browser. I bet you typed www.google.com , or for the no-www folks, google.com . The correct answer, as far as I know, should be www.google.com. , though (or google.com. ) – the difference being the terminal dot at the end. According to RFC 1035 , an “absolute” domain name (also later referred to as a Fully Qualified…
Steve Losh, whose (lately, rather silent) blog is one of my favourite reads on the Internet), wrote a great piece called Git Koans back in 2013. A lot of my coworkers have recently started using Git, and I often use that to illustrate a lot of what seems frustrating about Git – not just to a newcomer, but also to people who use it regularly. Some of the examples in the post, however, were hard for…
Being a Linux user, I often end up automating small actions in OSX, and then completely forgetting the slightly idiosyncratic way of doing said automation. Hence, this post – largely to keep in my list of things to remember; but also because someone else looking for a very basic example may find it useful. Having a stamp of the current time at your fingertips is always a useful thing. While…
While working on a chat bot that parses cat picture links on the interwebs, a co-worker found that a curl to [this URL](curl http://www.banyanops.com/blog/analyzing-docker-hub/ ) generated a bunch of gzip data, rather than the expected text. $ curl -sI http://www.banyanops.com/blog/analyzing-docker-hub/\ -H 'Accept-Encoding: identity;q=2, gzip;q=0' \ | grep -i 'Content-Encoding' Content-Encoding:…
Recently, a colleague of mine tracked down a bug which was, in essence, caused by the fact that one side of a comparison in Python was a string, and the other was an integer, which led to behaviour that was sometimes expected and sometimes not. >>> '45' > 43 True >>> '41' > 43 True This is one of the more unintuitive parts for Python for me. Intuitively, I would expect some sort of a TypeError if…
I became the proud owner of an iMac-esque blue rubber-and-plastic Nokia 3100 in twelfth standard / grade. At the time, the standard method of exchanging contacts between person A and B went like this: A : Hey, give me a missed call. My number is 99000 12345 B : (Gives A a call, and thus knows A’s number) A : (Looks at most recent calls, and saves B’s number) B : (Looks at most recent…
Roasted seaweed is a snack that I first ate in the US. I like its umami taste a lot; and apparently it is quite rich in minerals too. Never one to indulge in moderation, I picked up a 10-pack at Costco recently. When opening one of the small packs, I noticed that if cut the “normal” way (i.e., parallel to the crimp with the serrations) the plastic tray that slides out has the sheets…
I often gather tons of links which I propose to read later, and never end up doing so. So I decided to write myself a simple utility that I could run on my server, to email me one of these. #! /bin/bash COUNTER_FILE = '/tmp/.number' if [[ -r $COUNTER_FILE ]] ; then count = $( cat ${ COUNTER_FILE } ) else count = 1 fi MESSAGE = $( sed -n ${ count } p $1 ) echo $MESSAGE count = $(( count+1 )) echo…
The other day, a couple of co-workers and I were talking about whether it was reasonable to expect a user to know the maximum number represented by a 32-bit integer (2147483647 if it’s signed, 4294967295 if not). A lot of engineers and technical-oriented people tend to know roughly “2 billion” and “4 billion”. But I was in the camp tending towards “No, we should…