In practice, putting SSDs into 3.5" drive bays is a big hassle
When I talked about how we failed at making all our servers haveSSD system disks , I briefly talked abouthow one issue was that SSDs are not necessarily easily compatiblewith 3.5" drive bays. If you have never encountered this issue, youmay be scratching your head, because basic spacers to let you put2.5" drives (SSDs included) into 3.5" drive bays are widely availableand generally dirt cheap. Sure, you have to screw some extra thingson your SSDs, but
A humbling experience of misreading some simple (Go) code
Every so often, I get to have a humbling experience, sometimes inpublic and sometimes in private. Recently I was reading Go RangeLoop Internals ( via ) and hit its link to thisDamian Gryski (@dgryski) tweet :
Today's #golang gotcha: the two-value range over an array does acopy. Avoid by ranging over the pointer instead.
I ran the code on theplayground, followed it along,
The IPv6 address lookup problem (and brute force solution)
In Julia Evans' article Async IO on Linux: select, poll, and epoll ,she mentioned in passing that she strace ed a Go program making aHTTP request and noticed something odd:
Then [the Go program] makes 2 DNS queries for example.com (why 2? Idon’t know!), and uses
epoll_waitto wait for replies [...]
It turns out that this is all due to IPv6 (and the DNS standards),and it (probably)
Another case of someone being too clever in their User-Agent field
Every so often, something prompts me to look at the server logs for Wandering Thoughts in some detail to see what things arelurking under the rocks. One area I wind up looking at is what User-Agent s are fetching my syndication feeds; often interestingthings pop out (by which I mean things that make me block people ). In a recent case, I happened tospot the following User-Agent :
Mozilla/5.0 (compatible) AppleWebKit Chrome Safari
That's clearly bogus, in a
Link: The evolution of Unix's overall architecture
Diomidis Spinellis has created a set of great resources forlooking at Unix's history. He started with the Unix history rep and has then usedthat to create block diagrams of Unix's structure in V1 and modernFreeBSD . Hisarticle Unix Architecture Evolution Diagrams ( via ) explains theinteresting story of how he put these diagrams together.He also has a site on where manpages appear over Unix versions .
Why the popen() API works but more complex versions blow up
Years ago I wrote about a long-standing Unix issue with moresophisticated versions of popen() ; my specificexample was writing a large amount of stuff to a subprogram througha pipe and then reading its output, where both sides stall tryingto write to full pipes. Of course this is not the only way to havethis problem bite you, so recently I ran across Andrew Jorgensen's A Tale of Two Pipes ( via ), wherethe same problem comes up when a subprogram writes to both standardoutput
The Python Gilectomy project's performance problem
After my recent entries on (C)Python's Global Interpreter Lock (GIL), Kevin Lyda asked me on Twitter if I'd readthe latest update on Progress on the Gilectomy . For those of us who eitherhaven't heard of this before or have forgotten about it, the 'Gilectomy' is Larry Hastings'ongoing project to remove the GIL from CPython. As summarized in the LWN article , his goalsare:
[Larry Hastings] wants to be able to run existing multi-threadedPython
My views on the JSON Feed syndication feed format
When I first read the JSON Feed version 1 specification , I came away feeling frustrated( and expressed it on Twitter ) becausemy initial impression was that the JSON Feed people had not botheredto look at prior art and (painful) prior experiences. Then I readmore, including things like Mapping RSS and Atom to JSON Feed , which made it clear thatseveral things that I thought might be accidental omissions werein fact deliberate decisions. Now my current dominant feeling aboutJSON Feed is quiet sadness.
On a straightforward level
Why one git fetch default configuration bit is probably okay
I've recently been reading the In the minds of specification authors, I suspect that they have an'ideal reader' of their specification. This ideal reader is a carefulperson; they read the specification all the way through, cross-referencingwhat they read with other sections and perhaps keeping notes. Whenthere is ambiguity in one part, the ideal reader keeps it in mindas an unsettled issue and looks for things said in other parts thatwill resolve it, and when something of global importance is mentionedin one section, the reader remembers and git fetch manpage reasonably carefully as partof trying to understand what I'm doing with limited fetches . If you do this, you'll run across aninteresting piece of information about the fetch = setting for remotes.The basic syntax is ' git clone gives you: fetch = +refs/heads/*:refs/
How a lot of specifications are often read
Menu