Why I don’t have ads here

Another “put this up so I can point to it later” post.

Now and then someone tells me that I should put ads on my blog. Some of the articles get a ridiculous number of search engine hits, and I could probably add another (small) income stream there.

I’m not morally opposed to the very idea of advertising-supported web sites or, indeed, advertising in general. I’m opposed to leaking information about my readers, however. And that’s what the advertisers actually pay for.

I don’t oppose sharing information, mind you. If I could easily customize this blog so you only saw what you wanted without hooking you into the government/corporate exploitation network, I would. (It can be done, mind you, but it’s not trivial, so it’s not worth my time.)

That’s why I let people send me money over at my online bookstore. I’d rather perform on a streetcorner with my hat in front of me than feed human flow data to anonymous information leeches.

Of course, that raises the question of “why don’t you have a tip jar link on every blog post?” I write this blog to remind me what I did and to promote my work. If you can make use of either, fine — but that’s incidental to my purposes. Rather like OpenBSD, actually.

The Desktop of Doom

I’m sick of scrounging hardware for writing books. I’m sick of waiting for things to compile, managing disk space, and running out of memory. I finally got so sick of it that I decided to invest some serious cash in a research machine, in the hope that I wouldn’t need to hunt hardware piecemeal for the next five to six years.

I solicited hardware advice from my modest horde of Twitter followers. After diving through realms of documentation, I came to realize that I didn’t want to build my own computer. I rarely configure, buy, or even touch hardware these days unless something goes unspeakably wrong, and there’s enough options out there that were I to attempt to do so, I’d waste both money and time. I certainly could figure it out, but that’s not where my strength is and the expertise I would acquire would be largely wasted outside this one task.

I wanted eight hard drives, so that when the time is right I can write about assorted ZFS configurations. I wanted some flash disk on top of that. I wanted enough oomph to run umpteen virtual machines simultaneously. And I didn’t want to spend a whole lot.

After wandering around the Internet, using assorted online system configuration tools to develop a rough idea of price, I contacted iX Systems and bought a system.

I now have a shiny new desktop system that can “portsnap fetch extract” in two minutes. Because SATA3 is pretty sweet. My only problem is that the portable version of cwm that @blooouuup found for me is really slow & clunky when resizing windows, but I’m sure if I whine at the right people someone will fix it for me. (Now to figure out who the right people are.)

For all those who asked me to share my shopping results: here’s a FreeBSD 11 dmesg. Thanks to bhyve, I can now run whatever I need. It lives under my desk, and is surprisingly quiet when I’m not building x11/xorg in 30 minutes or less. With WITNESS enabled.

iX Systems might not advertise desktop systems, but they’ll do a nice one for you. Even if yours isn’t as awesome as mine.


Copyright (c) 1992-2013 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 11.0-CURRENT #0 r260064: Mon Dec 30 16:28:06 UTC 2013
root@grind.freebsd.org:/usr/obj/usr/src/sys/GENERIC amd64
FreeBSD clang version 3.3 (tags/RELEASE_33/final 183502) 20130610
WARNING: WITNESS option enabled, expect reduced performance.
CPU: Intel(R) Xeon(R) CPU E5-1620 v2 @ 3.70GHz (3700.08-MHz K8-class CPU)
Origin = "GenuineIntel" Id = 0x306e4 Family = 0x6 Model = 0x3e Stepping = 4
Features=0xbfebfbff
Features2=0x7fbee3ff
AMD Features=0x2c100800
AMD Features2=0x1
Standard Extended Features=0x281
TSC: P-state invariant, performance statistics
real memory = 34368126976 (32776 MB)
avail memory = 33227055104 (31687 MB)
Event timer "LAPIC" quality 600
ACPI APIC Table: < >
FreeBSD/SMP: Multiprocessor System Detected: 8 CPUs
FreeBSD/SMP: 1 package(s) x 4 core(s) x 2 SMT threads
cpu0 (BSP): APIC ID: 0
cpu1 (AP): APIC ID: 1
cpu2 (AP): APIC ID: 2
cpu3 (AP): APIC ID: 3
cpu4 (AP): APIC ID: 4
cpu5 (AP): APIC ID: 5
cpu6 (AP): APIC ID: 6
cpu7 (AP): APIC ID: 7
ioapic0 irqs 0-23 on motherboard
ioapic1 irqs 24-47 on motherboard
kbd1 at kbdmux0
random: initialized
acpi0: on motherboard
acpi0: Power Button (fixed)
acpi0: reservation of 0, a0000 (3) failed
cpu0: on acpi0
cpu1: on acpi0
cpu2: on acpi0
cpu3: on acpi0
cpu4: on acpi0
cpu5: on acpi0
cpu6: on acpi0
cpu7: on acpi0
attimer0: port 0x40-0x43 irq 0 on acpi0
Timecounter "i8254" frequency 1193182 Hz quality 0
Event timer "i8254" frequency 1193182 Hz quality 100
atrtc0: port 0x70-0x71 irq 8 on acpi0
Event timer "RTC" frequency 32768 Hz quality 0
hpet0: iomem 0xfed00000-0xfed003ff on acpi0
Timecounter "HPET" frequency 14318180 Hz quality 950
Event timer "HPET" frequency 14318180 Hz quality 550
Timecounter "ACPI-fast" frequency 3579545 Hz quality 900
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x408-0x40b on acpi0
pcib0: port 0xcf8-0xcff on acpi0
pci0: on pcib0
pcib1: irq 27 at device 1.0 on pci0
pci1: on pcib1
pcib2: irq 33 at device 2.0 on pci0
pci2: on pcib2
pcib3: irq 33 at device 2.2 on pci0
pci3: on pcib3
pcib4: irq 43 at device 3.0 on pci0
pci4: on pcib4
pcib5: irq 43 at device 3.1 on pci0
pci5: on pcib5
pcib6: irq 43 at device 3.2 on pci0
pci6: on pcib6
pci0: at device 4.0 (no driver attached)
pci0: at device 4.1 (no driver attached)
pci0: at device 4.2 (no driver attached)
pci0: at device 4.3 (no driver attached)
pci0: at device 4.4 (no driver attached)
pci0: at device 4.5 (no driver attached)
pci0: at device 4.6 (no driver attached)
pci0: at device 4.7 (no driver attached)
pci0: at device 5.0 (no driver attached)
pci0: at device 5.2 (no driver attached)
pcib7: irq 16 at device 17.0 on pci0
pci7: on pcib7
isci0: port 0xe000-0xe0ff mem 0xfa47c000-0xfa47ffff,0xfa000000-0xfa3fffff irq 16 at device 0.0 on pci7
pci0: at device 22.0 (no driver attached)
pci0: at device 22.1 (no driver attached)
ehci0: mem 0xfbb23000-0xfbb233ff irq 16 at device 26.0 on pci0
usbus0: EHCI version 1.0
usbus0 on ehci0
pcib8: irq 17 at device 28.0 on pci0
pci8: on pcib8
pcib9: irq 18 at device 28.6 on pci0
pci9: on pcib9
em0: port 0xd000-0xd01f mem 0xfba00000-0xfba1ffff,0xfba20000-0xfba23fff irq 18 at device 0.0 on pci9
em0: Using MSIX interrupts with 3 vectors
em0: Ethernet address: 00:25:90:db:d5:94
pcib10: irq 19 at device 28.7 on pci0
pci10: on pcib10
em1: port 0xc000-0xc01f mem 0xfb900000-0xfb91ffff,0xfb920000-0xfb923fff irq 19 at device 0.0 on pci10
em1: Using MSIX interrupts with 3 vectors
em1: Ethernet address: 00:25:90:db:d5:95
ehci1: mem 0xfbb22000-0xfbb223ff irq 23 at device 29.0 on pci0
usbus1: EHCI version 1.0
usbus1 on ehci1
pcib11: at device 30.0 on pci0
pci11: on pcib11
vgapci0: mem 0xf9000000-0xf9ffffff,0xfb800000-0xfb803fff,0xfb000000-0xfb7fffff irq 16 at device 4.0 on pci11
vgapci0: Boot video device
isab0: at device 31.0 on pci0
isa0: on isab0
ahci0: port 0xf050-0xf057,0xf040-0xf043,0xf030-0xf037,0xf020-0xf023,0xf000-0xf01f mem 0xfbb21000-0xfbb217ff irq 18 at device 31.2 on pci0
ahci0: AHCI v1.30 with 6 6Gbps ports, Port Multiplier not supported
ahcich0: at channel 0 on ahci0
ahcich1: at channel 1 on ahci0
ahcich2: at channel 2 on ahci0
ahcich3: at channel 3 on ahci0
ahcich4: at channel 4 on ahci0
ahcich5: at channel 5 on ahci0
ahciem0: on ahci0
pci0: at device 31.3 (no driver attached)
pci0: at device 31.6 (no driver attached)
pcib12: on acpi0
pci255: on pcib12
pci255: at device 8.0 (no driver attached)
pci255: at device 9.0 (no driver attached)
pci255: at device 10.0 (no driver attached)
pci255: at device 10.1 (no driver attached)
pci255: at device 10.2 (no driver attached)
pci255: at device 10.3 (no driver attached)
pci255: at device 11.0 (no driver attached)
pci255: at device 11.3 (no driver attached)
pci255: at device 12.0 (no driver attached)
pci255: at device 12.1 (no driver attached)
pci255: at device 13.0 (no driver attached)
pci255: at device 13.1 (no driver attached)
pci255: at device 14.0 (no driver attached)
pci255: at device 14.1 (no driver attached)
pci255: at device 15.0 (no driver attached)
pci255: at device 15.1 (no driver attached)
pci255: at device 15.2 (no driver attached)
pci255: at device 15.3 (no driver attached)
pci255: at device 15.4 (no driver attached)
pci255: at device 15.5 (no driver attached)
pci255: at device 16.0 (no driver attached)
pci255: at device 16.1 (no driver attached)
pci255: at device 16.2 (no driver attached)
pci255: at device 16.3 (no driver attached)
pci255: at device 16.4 (no driver attached)
pci255: at device 16.5 (no driver attached)
pci255: at device 16.6 (no driver attached)
pci255: at device 16.7 (no driver attached)
pci255: at device 19.0 (no driver attached)
pci255: at device 19.1 (no driver attached)
pci255: at device 19.4 (no driver attached)
pci255: at device 19.5 (no driver attached)
pci255: at device 22.0 (no driver attached)
pci255: at device 22.1 (no driver attached)
pci255: at device 22.2 (no driver attached)
acpi_button0: on acpi0
uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
uart1: <16550 or compatible> port 0x2f8-0x2ff irq 3 on acpi0
uart2: <16550 or compatible> port 0x3e8-0x3ef irq 10 on acpi0
orm0: at iomem 0xc0000-0xc7fff,0xc8000-0xc8fff on isa0
sc0: at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
vga0: at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
ppc0: cannot reserve I/O port range
est0: on cpu0
p4tcc0: on cpu0
est1: on cpu1
p4tcc1: on cpu1
est2: on cpu2
p4tcc2: on cpu2
est3: on cpu3
p4tcc3: on cpu3
est4: on cpu4
p4tcc4: on cpu4
est5: on cpu5
p4tcc5: on cpu5
est6: on cpu6
p4tcc6: on cpu6
est7: on cpu7
p4tcc7: on cpu7
ZFS filesystem version: 5
ZFS storage pool version: features support (5000)
Timecounters tick every 1.000 msec
random: unblocking device.
usbus0: 480Mbps High Speed USB v2.0
usbus1: 480Mbps High Speed USB v2.0
ugen0.1: at usbus0
uhub0: on usbus0
ugen1.1: at usbus1
uhub1: on usbus1
uhub1: 2 ports with 2 removable, self powered
uhub0: 2 ports with 2 removable, self powered
ses0 at ahciem0 bus 0 scbus7 target 0 lun 0
ses0: SEMB S-E-S 2.00 device
ses0: SEMB SES Device
da2 at isci0 bus 0 scbus0 target 2 lun 0
da2: Fixed Direct Access SCSI-5 device
da2: Serial Number WD-WCAW36477223
da2: 300.000MB/s transfers
da2: Command Queueing enabled
da2: 953869MB (1953525168 512 byte sectors: 255H 63S/T 121601C)
da0 at isci0 bus 0 scbus0 target 0 lun 0
da0: Fixed Direct Access SCSI-5 device
da0: Serial Number WD-WCAW36478143
da0: 300.000MB/s transfers
da0: Command Queueing enabled
da0: 953869MB (1953525168 512 byte sectors: 255H 63S/T 121601C)
da3 at isci0 bus 0 scbus0 target 3 lun 0
da3: Fixed Direct Access SCSI-5 device
da3: Serial Number WD-WCAW36477062
da3: 300.000MB/s transfers
da3: Command Queueing enabled
da3: 953869MB (1953525168 512 byte sectors: 255H 63S/T 121601C)
da1 at isci0 bus 0 scbus0 target 1 lun 0
da1: Fixed Direct Access SCSI-5 device
da1: Serial Number WD-WCAW36498185
da1: 300.000MB/s transfers
da1: Command Queueing enabled
da1: 953869MB (1953525168 512 byte sectors: 255H 63S/T 121601C)
ada0 at ahcich0 bus 0 scbus1 target 0 lun 0
ada0: ATA-8 SATA 3.x device
ada0: Serial Number WD-WCAW36478129
ada0: 600.000MB/s transfers (SATA 3.x, UDMA6, PIO 8192bytes)
ada0: Command Queueing enabled
ada0: 953869MB (1953525168 512 byte sectors: 16H 63S/T 16383C)
ada0: Previously was known as ad4
ada1 at ahcich1 bus 0 scbus2 target 0 lun 0
ada1: ATA-8 SATA 3.x device
ada1: Serial Number WD-WCAW36477352
ada1: 600.000MB/s transfers (SATA 3.x, UDMA6, PIO 8192bytes)
ada1: Command Queueing enabled
ada1: 953869MB (1953525168 512 byte sectors: 16H 63S/T 16383C)
ada1: Previously was known as ad6
ada2 at ahcich2 bus 0 scbus3 target 0 lun 0
ada2: ATA-8 SATA 3.x device
ada2: Serial Number WD-WCAW36477139
ada2: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
ada2: Command Queueing enabled
ada2: 953869MB (1953525168 512 byte sectors: 16H 63S/T 16383C)
ada2: Previously was known as ad8
ada3 at ahcich3 bus 0 scbus4 target 0 lun 0
ada3: ATA-8 SATA 3.x device
ada3: Serial Number WD-WCAW36477141
ada3: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
ada3: Command Queueing enabled
ada3: 953869MB (1953525168 512 byte sectors: 16H 63S/T 16383C)
ada3: Previously was known as ad10
ada4 at ahcich4 bus 0 scbus5 target 0 lun 0
ada4: ATA-8 SATA 2.x device
ada4: Serial Number 20131111AA300000000E
ada4: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
ada4: Command Queueing enabled
ada4: 61057MB (125045424 512 byte sectors: 16H 63S/T 16383C)
ada4: Previously was known as ad12
ada5 at ahcich5 bus 0 scbus6 target 0 lun 0
ada5: ATA-8 SATA 2.x device
ada5: Serial Number 20131111AA3000000007
ada5: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
ada5: Command Queueing enabled
ada5: 61057MB (125045424 512 byte sectors: 16H 63S/T 16383C)
ada5: Previously was known as ad14
ugen0.2: at usbus0
uhub2: on usbus0
ugen1.2: at usbus1
uhub3: on usbus1
Netvsc initializing... done!
SMP: AP CPU #1 Launched!
SMP: AP CPU #3 Launched!
SMP: AP CPU #4 Launched!
SMP: AP CPU #2 Launched!
SMP: AP CPU #6 Launched!
SMP: AP CPU #7 Launched!
SMP: AP CPU #5 Launched!
Timecounter "TSC-low" frequency 1850039224 Hz quality 1000
WARNING: WITNESS option enabled, expect reduced performance.
GEOM_RAID: Intel-ee147409: Array Intel-ee147409 created.
GEOM_RAID: Intel-ee147409: Disk ada4 state changed from NONE to ACTIVE.
GEOM_RAID: Intel-ee147409: Subdisk Volume0:0-ada4 state changed from NONE to ACTIVE.
GEOM_RAID: Intel-ee147409: Disk ada5 state changed from NONE to ACTIVE.
GEOM_RAID: Intel-ee147409: Subdisk Volume0:1-ada5 state changed from NONE to ACTIVE.
GEOM_RAID: Intel-ee147409: Array started.
GEOM_RAID: Intel-ee147409: Volume Volume0 state changed from STARTING to OPTIMAL.
GEOM_RAID: Intel-ee147409: Provider raid/r0 for volume Volume0 created.

Amazon gets it wrong

Amazon sends us Kindle owners an email every few days saying “You bought this and that, so we think you’ll like these items.” They’re right an annoying large portion of the time, but when they get it wrong they really blow it.

Like I'd buy any of these
Amazon Recommendation Failure

Okay, yes, the book of PF is pretty good. But I have a copy. And I actually paid cold hard cash for the FreeBSD Design & Implementation book, and waited in line to get it signed. Either of these would be excellent gifts for the BSD aficionado in your life, except that they probably already have them.

But the others? The author has never said a nice word about me. In fact, every time I get near him he calls me a lazy good-for-nothing who ought to be working harder, better, and smarter, eating less, and in general doing more for humanity. Flavored with a whole lot of really bad language. One of these days, I’m going to punch that bastard in the face.

The good news is, Amazon doesn’t know everything about us. Yet.

Now, if you’ll excuse me, I’m off to buy everything I need for the next month via my Amazon Prime subscription.

Happy holidays, everyone!

live DNSSEC talk

On August 10, at 12:30PM EDT, I’ll be doing a talk on “DNSSEC in 55 Minutes” for the Metro Detroit Linux Users Group. I do this sort of thing all the time, but this time will be a little different.

The talk will go out live via Google Hangouts on Air. You’ll be able to see it via my Google Plus account. I haven’t done this before, but I believe you’ll be able to ask questions in a chat window. And it will be archived on YouTube for public viewing.

As it’s a Linux user group meeting, I will of course wear my Absolut OpenBSD shirt. (I really need to get a matching Absolut FreeBSD shirt one day.)

Visiting an OpenBSD hackathon.

I took Bill Allaire’s copy of Absolute OpenBSD to Toronto to get it signed. If you wonder what that’s like, check out my article over on undeadly.org.

Why no tech posts from me for a while now? I’m moving a bunch of virtual machines from ESX to SolusVM. As some of these VMs are several years old, I’m taking the opportunity to make new OS installs and get them into my Ansible setup. It’s a lot of work, but it’s not blog-worthy.

When I do something interesting, you’ll be the first to know. Well, no, maybe the sixth or seventh. But still, pretty early on.

Books at BSDCan

I’m sure everyone who reads this blog knows I’ll be at BSDCan tonight through early Sunday morning. I will also have books for sale, however.

  • Absolute OpenBSD, $50
  • SSH Mastery, $20
  • DNSSEC Mastery (4 proof copies only), $20

    Cash only.

    If you buy a book, I’ll throw in a free Tilted Windmill Press T-shirt while supplies last. Because why not.

    I’ll also be giving away some books as review copies. If you want a review copy of Absolute OpenBSD, you’ll need to give me your email address. I’ll be handing it off to the NSP publicity department. Sorry to be a pain on that, but I have to pay for any Absolute OpenBSDs that aren’t review copies. (Or I can ship them back to the publisher, but that’s just a waste.) I’m more flexible with review copies of self-published books.

  • Penguicon Schedule

    Someone pointed out that it would be nice to know when I’ll be doing what at Penguicon. So, here’s my schedule.

    Friday, 26 April:
    6PM-7PM opening ceremonies
    7PM-8PM Guest of Honor Social Hour
    9PM-10PM OpenBSD (kind of obligatory)

    Saturday, 27 April:
    10AM-noon: liquid nitrogen ice cream, my own flavor
    5PM-6PM: Technology Publishing in 2013

    Sunday 28 April:
    3PM-4PM: closing ceremonies

    Other than that, I’m basically free. You can find me elsewhere, as I’ll be playing free range author, but you can definitely intercept me at these times.

    At Penguicon this weekend

    I’m a guest of honor at Penguicon this weekend. I’ll be doing a one-hour talk on technology publishing in 2013. I’ll also be inventing an ice cream flavor.

    Other guests include author Jim C Hines, chef and author Jeff Potter, Arduino and Raspberry pi guru & author Maik Schmidt, hackerspace advocate and censorship activist Nick Farr, plus author and filmmaker Jason Denzel.

    Whenever I go to this type of con, I usually take in a few panels, see some cool demos, and spend a good chunk of time hanging out in the bar or lobby, wondering who all these people are. If you’re in the Detroit area, come by and say hello.

    I will also have hard copies of Absolute OpenBSD for sale at $50 each. Amazon doesn’t have them yet. No Starch doesn’t have them yet. But I have them. Cash and PayPal accepted — I had hoped to take credit cards, but the PayPal credit card app doesn’t like my knockoff Android tablet. But by showing up, you can get the book you’ve been demanding for four years now.

    And now that I’m a guest, maybe the cool kids will let me hang with them. But probably not.