A peculiar use of ZFS L2ARC that we're planning

In our SAN-based fileserver infrastructure we have a relatively small but very important and very busy pool . We need to be able to fail over thispool to another physical fileserver, so its data storage has to liveon our iSCSI backends. But even with it on SSDs on the backends, goingover the network with iSCSI adds latency and probably reduces bandwidthsomewhat. We're not willing to move the pool to local storage on afileserver; it's much more important that the pool stay up than that


SSDs may make ZFS raidz viable for general use

The classic problem and surprise with ZFS's version of RAID-5+ (raidz1,raidz2, and so on) is that you get much less read IO from your poolthan most people expect . Rather than N disksworth of read IOPs you get one disk's worth for small random reads (moreor less). To date this has mostly made raidz unsuitable for general use;you need to be doing relatively little random read IO or have rather lowperformance requirements to avoid being disappointed.


Funding and the size of hardware you want to buy

We need a new core router (among other things) and we'd also like tomove towards 10GB Ethernet in our machine room. In general there aretwo broad approaches in this situation: you can buy a (small) routerand then various separate switches or you can buy a single big corerouter+switch unit with many ports. There are various issues involvingeither choice and in the past we've gone back and forth between them inour network design. During discussions about this today I


My understanding of modern C undefined behavior and its effects

Back in the old days, it was famously said that using undefined behaviorin your C program gave the compiler license to delete all of your filesif it felt like it. When people heard that we laughed, nodded sagely,and went cheerfully on our way because of course no actual compiler wasever going to react to undefined behavior in that way and everyone knewit. (The closest real compilers ever came to that was how early versionsof GCC reacted to #pragma .)

This left a whole generation of programmers


The pragmatics of an HTTP to HTTPS transition

It started on Twitter:

@thatcks :All things considered I've decided it's time my personal website went not just https-available but all-https(with redirects from http).

@zaitcev :wait a moment, didn't you write on your blog how evil it was toredirect http?

Pete Zaitcev is quite correct; I wrote about the issue back in thisentry , yet here I am redirecting everythingfrom HTTP to HTTPS myself.There are two answers here. I'll start


You should convert wikitext to HTML through an AST

Suppose that you are turning wikitext or some other form of structuredmarkup into HTML. The straightforward and often easiest way to do thisis to directly generate the HTML as you process the wikitext; when youencounter and parse a particular bit of markup, you immediately outputthe relevant HTML.Having done this and stubbed my toes very vigorously, Ihave a bit of advice: you should parse into an AST and then generateHTML from that AST . Yes, it's more code and it seems more indirect,but


Multi-mount protection and SAN failover

Suppose that you have some machines, some shared disks, and a filesystemthat has what gets called multi-mount protection, where it tries toprevent being mounted on two different machines at the same time. Doyou have enough to do reliable SAN failover in the face of a crashedmachine? Unfortunately the answer is no.

The first problem is that common implementations of multi-mountprotection are not necessarily fully reliable. While itis possible to do reliable locking with only read andwrite operations to a shared disk (


The feature (or features) I really want added to xterm

I recently mentioned that there wereonly a few features that could attract me away from xterm . Since acommentator asked about them, today I'm going to try to talk about them.

The big feature that I would like is for widening and narrowing theterminal window to properly reflow text. In other words, if I have linesthat wrapped around and I widen the terminal window I want the lines tono longer wrap around. Today if you do that you just get a big blankspace on the right.


The importance of names, illustrated through my mistake

A while back I refactored chunks of DWiki 's core DWikiText to HTMLrendering code to fix a fundamental error that I'd made in theoriginal design . Today I discovered (entirely byaccident) that in the process I had accidentally broken most of DWiki 'son-disk caching of that rendering. Well, 'broken' is a strong word andnot really an adequate description. What I'd done was stop using it.

In the new refactored code there were (and are) three importantfunctions


Link: My current dmenu changes

As I've mentioned before , I havea set of changes I've made to dmenu tomake it work better for me. I have now put my current patch onlineas dmenu-4.5-tip.patch in caseanyone is interested. I happen to like all of my changes, but thenI would. See the start of the patch for a description of what itincludes (and then the documentation for the new switches in therevised dmenu.1 manpage).

I expect that I