Link: Survey of [floating point] Rounding Implementations in Go

Matt Jibson's Survey of Rounding Implementations in Go ( via )is sort of what it says, namely a survey of a bunch of floatingpoint rounding implementations:

Rounding in Go is hard to do correctly. That is, given a float64 ,truncate the fractional part (anything right of the decimal point),and add one to the truncated value if the fractional part was >= 0.5.[...]

But it's a lot more than that, because the article then


My current views on Shellcheck

As part of the reaction to my last entry ,I've been asked how I feel about shellcheck ( also ). As it happens, I havesome opinions here.

Shellcheck is what I'd classify as a linter. I've dealt with a lotof linters and I've wound up with a general approach to looking atthem, which I summarize as a linter is interesting to the extentthat it gives me useful new information . To do this, a linter needsto do two things;


How I shot my foot because the Bourne shell is different

I have an invariable, reflexive habit in the Bourne shell, whichis that I call my for loop variables $i . This reflex is soingrained that if I try to fight it, I can wind up writing loopsthat look like this:

for avar in ....; do    somecommand $idone

I may have carefully written the for loop using a sensible,non- $i variable name, but then when I was writing the body of theloop I forgot and reflexively used $i . This


LinkedIn is still trying to send me email despite years of rejections

Back in 2014 I wrote about LinkedIn sending me invitation spamemails and how they wanted me to agree to theirterms of service (and join LinkedIn) in order to 'unsubscribe' fromthem. Of course I didn't do that; instead, as usual, I arranged tohave all future email from LinkedIn to me to be rejected during theSMTP conversation on our external MX gateway (using one of ouranti-spam features ). Then I put the wholething out of my mind.


Moving to smaller fileservers for us probably means no more iSCSI SAN

In our environment, one major thing that drives us towards relativelybig fileservers is aggregating and lowering the overhead of servers.Regardless of how big or small it is, any server has a certainminimum overhead cost due to needing things like a case and powersupply, a motherboard, and a CPU. The result of this per-serveroverhead is economies of scale; a single server with 16 disk baysalmost certainly costs less than two servers with 8 disk bays each.

We have a long history of liking to


Re-applying CPU thermal paste fixed my CPU throttling issues

Back at the start of May , my officeworkstation started reporting thermal throttling problems when Ihad all four cores fully busy:

kernel: CPU1: Core temperature above threshold, cpu clock throttled (total events = 1)kernel: CPU3: Package temperature above threshold, cpu clock throttled (total events = 1)kernel: CPU2: Package temperature above threshold, cpu clock throttled (total events = 1)kernel: CPU0: Package temperature above threshold, cpu clock throttled (total events = 1)

Why big Exim queues are a problem for us in practice

In light of my recent entry on how our mail system should probablybe able to create backpressure , you mightwonder why we even need to worry about 'too large' queue sizes inthe first place. Exim generally performs quite well under load anddoesn't have too many problems dealing with pretty large queues(provided that your machines have enough RAM and fast enough disks,since the queue lives on disk in multiple files). Even in our ownmail system we've seen queues of a fewthousand messages


Our current generation fileservers have turned out to be too big

We have three production hard drive based NFS fileservers (and one special fileserverthat uses SSDs). As things have turned out, usage is not balancedevenly across all three; one of them has by far the most spaceassigned and used on it and unsurprisingly is also the most activeand busy fileserver.

(In retrospect, putting all of the pools for the general researchgroup that most heavily uses our disk space on the same fileserverwas perhaps not our best decision ever.)

It has been increasingly obvious to us


The TLDs of sender addresses for a week of our spam (June 2017 edition)

Once upon a time the Internet only had a few non-country top leveldomain names. Then that changed . Mostly thesenew TLDs get used for websites, but every so of people use themfor email. Generally the stereotype is that it's mostly spammersusing these new TLDs, so I thought it would be interesting to lookat eight days worth of logs from our commercial anti-spam system to see what the TLDs of sender addresseslooked like for messages that were scored as spam and messages thatweren'


I don't think you should increase ZFS on Linux's write buffering

While looking at my Referer logs here one day, I wouldup stumbling over SvennD's Tuning of ZFS module . I have ambivalentfeelings about its suggestions in general but there is one bit thatI have a strong reaction to, and that is the suggestion to substantiallyincrease zfs_dirty_data_max_percent . This setting controls howmuch asynchronous buffered writes ZFS will allow you to have beforeit forces processes doing writes to slow down and stop.

To start with, write buffering is complicated in general and