WireGuard was pleasantly easy to get working behind a NAT (or several)
Normally, my home machine is directly connectedto the public Internet by its DSL connection. However, every sooften this DSL connection falls over, and these days my backupmethod of Internet connectivity is that I tether my home machinethrough my phone . This tethering gives mean indirect Internet connection; my desktop is on a little privatenetwork provided by my phone andthen my phone NAT's my outgoing traffic. Probably my cellularprovider adds another level of NAT as well, and certainly the publicIP address that all
Remembering that Prometheus expressions act as filters
In conventional languages, comparisons like ' > ' and other booleanoperations like ' and ' give you implicit or explicit booleanresults. Sometimes this is a pseudo-boolean result; in Python ifyou say ' A and B ', you famously get either False or the valueof B as the end result (instead of True ). However, PromQL doesn't work this way. As I keep having to remember over and over, in Prometheus, comparisons and other boolean operators arefilters .
In PromQL, when
Getting (and capturing) spam can sometimes be useful to see what's in it
We have what is now a long standing system for logging emailattachment type information ( everyone should have one ). For more than a year we've been receiving .iso attachmentsthat caused our program to log crypticreports claiming that we sniffed these as tar archives that wereoddly empty:
attachment application/x-iso9660-image; MIME file ext: .iso; tar no files?!
(This one is unusual in that it had a correct MIME type. The morecommon MIME type
A Git tool that I'd like and how I probably use Git differently from most people
For a long time now, I've wished for what has generally seemedto me like a fairly straightforward and obvious Git tool. What Iwant is a convenient way to page through all of the differentversions of a file over time, going 'forward' and 'backward' throughthem. Basically this would be the whole file version of ' git log-p FILE ', although it couldn't have the same interface.
(I know that the history may not be linear. There are various ways
The tarfile module is too generous about what is considered a tar file
The Python standard library's tarfile module has a tarfile.is_tarfile function that tells you whether or not some file is a tar file, orat least is a tar file that the module can read. As is not too sillyin Python, it operates by attempting to open the file with tarfile.open ; if open() succeeds, clearly this is a good tarfile.
Unfortunately, through what is perhaps a bug, this fails to reportany errors on various sorts of things that are not actually
An example of a situation where Go interfaces can't substitute for generics
I recently read Why Go Contracts Are A Bad Idea In The Light OfA Changing Go Community ( via ).I have some views on this, but today I want to divert from them totouch on one thing I saw in the article (and that I believe I'veseen elsewhere).
In the article, the author cites the stringer contract examplefrom the draft proposal :
func Stringify(type T stringer)(s []T) (ret []string) { for _, v :A ZFS resilver can be almost as good as a scrub, but not quite
We do periodic scrubs of our pools, roughly every four weeks on arevolving schedule (we only scrub one pool per fileserver at once,and only over the weekend, so we can't scrub all pools on one of our HD based fileservers in one weekend).However, this weekend scrubbing doesn't happen if there's somethingelse more important happening on the fileserver. Normally thereisn't, but one of our iSCSI backends didn't come back up after ourpower outage this Thursday night
Why selecting times is still useful even for dashboards that are about right now
In the aftermath of our power outage ,one of the things that I did was put together a Grafana dashboardthat was specifically focused on dealing with large scale issues,specifically a lot of machines being down or having problems. Inthis sort of situation, we don't need to see elaborate statusdisplays and state information; basically we want a list of downmachines and a list of other alerts, and very little else to getin the way.
(We have an existing overview dashboard, but it's
I won't be trying out ZFS's new TRIM support for a while
ZFS on Linux 's development version hasjust landed support for using TRIM commands on SSDs in orderto keep their performance up as you write more data to them and theSSD thinks it's more and more full; you can see the commit here and there's more discussion in the pull request . This is an excitingdevelopment in general, and since ZoL 0.8.0 is in the releasecandidate stage at the moment, this TRIM support might even makeits way into a full release in the
It's always DNS (a story of our circular dependency)
Our building and in fact muchof the University of Toronto downtown campus had a major powerfailure tonight. When power came back on I wasn't really expecting ourUbuntu servers to come back online, but to my surprise they startedpinging (which meant not just that the actual servers were bootingbut that the routers, the firewall, the switches, and so on hadcome back). However when I started ssh'ing in, our servers were notin a good state. For a start, I didn