Why a free SSL Certificate Authority is not horrifying

Back in this entry I casually mentioned inpassing that there is a CA that will give you completely functionalSSL certificates for free. To some people this will be horrifying;after all, as the story goes, SSL certificates are supposed to costmoney so that they mean something and verify your identity (well,your website's identity).

The truth of what is going on here is that these free certificatescontain exactly as much verification of your identity as everyoneelse's. In fact they may contain more


How ZFS deals with 'advanced format' disks with 4 Kb physical sectors

These days it's very hard or impossible to buy new SATA disks that don'thave 4 Kb physical sectors . This makesthe question of how ZFS deals with them a very interesting one and I'mafraid that the answer is 'not well'.

First, the high speed basics. All ZFS vdevs have an internal propertycalled 'ashift' (normally visible only through zdb ) that sets thefundamental block size that ZFS uses for that vdev (the actual valueis the power of two of that


How I want storage systems to handle disk block sizes

What I mean by a storage system here is anything that exports whatlook like disks through some mechanism, whether that's iSCSI, AoE , FibreChannel, adirectly attached smart controller of some sort, or something I haven'theard of. As I mentioned last entry , I havesome developing opinions on how these things should handle the currentminefield of logical and physical block sizes.

First off, modern storage systems have no excuse for not knowing aboutlogical block size versus physical block size. The world is no


How SCSI devices tell you their logical and physical block sizes

Since I spent today looking this up and working it all out, I mightas well write all of this down.

Old SCSI had no distinction between logical and physical size; it justhad the block size. Modern SCSI has redefined those old plain blocksizes to be the logical block size and then added an odd way of encodingthe physical block size.This information is reported through the SCSI operation READ CAPACITY(16), which unlike its stunted older brother READ CAPACITY (10) isnot actually a


Some thoughts on going to HTTPS by default

My Twitter feed recently dropped a link to Tim Bray's Private ByDefault in front of me so I read it, nodded along in agreement, andstarted thinking about doing it myself for my personal domain . The technical side was easy and pain-free,since there's a Certificate Authority who'll give you free basic SSLcertificates. But that's as far as I've gone due to what I've come tothink of as the problem of really committing to HTTPS.

If I


Go's friction points for me (and a comparison to Python)

A commentator on my entry on Python's data structures problem asked in part:

So, what's next, if anything? I take it Go wasn't a revolution in theway the migration from C to Python was. [...]

This brings up the complex issue of my views on Go . Part of the issue is that Go has a bunch offriction points right now. Some of them are intrinsic in the languageand some of them are simply artifacts of the current situation and will


The basics of 4K sector hard drives (aka 'Advanced Format' drives)

Modern hard drives have two sector sizes, the physical sector sizeand the logical one. The physical sector size is what the hard driveactually reads and writes in; the logical sector size is what you canask it to read or write (and I believe what logical block addressesare in). The physical block size is always equal to or larger than thelogical one. Writing to only part of a physical sector requires thedrive to do a read-modify-write cycle.

In the beginning, basically all


Python's data structures problem

Python has a problem with data structures. Well, actually it has two,which are closely related to each other.

The first problem is what I illustrated yesterday ,namely that there is generally no point in building nice sophisticateddata structures in your Python code because they won't perform verywell. Priority heaps, linked lists, all sorts of trees (B+, red-black,splay, etc), they're all nifty and nice but generally there's no pointin even trying. Unless


Classic linked lists versus Python's list (array) type

For reasons beyond the margins of this entry, let's consider a classiclinked list implemented in Python. Because I feel like a traditionalisttoday we'll built it out of Lisp-style cons cells, using about the mostminimal and lightweight implementation we can do:

class Cons(object):    __slots__ = ('car', 'cdr')    def __init__(self, car, cdr):        self.car = car        self.cdr = cdr    def _

My view on software RAID and the RAID write hole

The old issue of Software RAID versus hardware RAID came uprecently on Twitter , whichgot Chris Cowley to write Stop the hate on Software RAID ,which prompted a small lobste.rs discussion in whichpeople pointed to the RAID 5 write hole as a reason to preferhardware RAID over software RAID. I've written several entries abouthow I favour software RAID but I've never talked about the writehole.

(For now let's ignore some other issues with RAID 5 or pretend that we're talking