::::: : the wood : davidrobins.net

My name is David Robins: Christian, lead developer (resume), writer, photographer, runner, libertarian (voluntaryist), and student.

This is also my son David Geoffrey Robins' site.

Christmas in Canada

News ·Monday December 31, 2012 @ 13:53 EST (link)

And this is the way of it (dates in December, of course).

14: Struck out for WV after work—on the road by ~1800 (I went in to work early).

15: Stopped in WV for the day and for Honey's birthday.

16: Arrived in Canada in time for Brockview's Christmas program.

19: Went to the Yades at 6pm; had Chinese food, played some board games; Bethany Trotter was there a bit later and so Jon brought out some of his firearms, including a pellet gun we shot from the porch. Had a great visit.

21: Scott's party! Honey couldn't come because she (thought she) was getting together with Bethany. Good time, played a fun (yet awful!) game called Cards Against Humanity. Quite a snowy night, low visibility, high slipperiness, so I had trouble finding the place especially as Google Maps took me down a road that didn't exist so I ended up driving up and down a stretch of Highway 20 looking for a road that wasn't there until I called and got better directions. Met Patrick there briefly, and found he's a fellow voluntaryist and gun enthusiast (via Facebook, later).

22: Uncle Murray had us over in the afternoon (3-5pm) as well as various other cousins for food and drink and cheer.

23: Went to Thorold South for their talent show in the morning and food later; good show, little long, good food too though.

24-26: Family Christmas, details are secret.

27: Took the Trotters to Swiss Chalet, an then back to their place for coffee.

28: Took Emily and Julia to Fonthill's only hangout, the MyPlace Bar and Grill; got to talk a little, had some fun.

29: Left in the morning so we would get there for church Sunday. Very snowy roads, especially US-19.

January 1: Left for home to be back at work for the next day.

Books finished: All Marketers Are Liars (With a New Preface), Tribes, The Personal MBA, Jack: Straight from the Gut, Linchpin, The Dip.

Roundcube is in, Horde/IMP is out

News, Technical ·Thursday November 29, 2012 @ 21:16 EST (link)

Horde/IMP (webmail) is out; it didn't manage to come back after the crash and Roundcube is much nicer, easier to setup, etc. I'm even using it myself (I had installed Horde for Honey), rather than Mutt, although mass operations/moves are better done from the command prompt.

The only few issues with it are (1) not moving to the next message after deletion, (2) having to re-select a message to operate on it (e.g., delete) if the preview pane is up after it is selected, and (3) sometimes it sorts new messages last, even sorting by date; it seems to do that mainly with injected (programmatic) mail.

Books finished: Purple Cow, What the CEO Wants You To Know, Hogfather.

Thanksgiving in WV

News, Work, Guns ·Monday November 26, 2012 @ 22:00 EST (link)

Freedom Scientific had a company picnic Wednesday the 21st (1pm at Lake Seminole park); I was going to work offsite then, but switched to Monday to make the picnic and so we had the same amount of time for Thanksgiving. There was a good showing—not too many had left for vacation early—and they grilled some pretty good burgers. I brought a past Office ship gift, an HD video camera, and tried it out for the first time taking some videos (still haven't edited them yet…). We left after we ate, and didn't stay for games; we had a lot of driving (13-14 hours).

We didn't leave the apartment until 1845; we drove straight through and arrived in the morning around 0830, and slept some. Went to papa (Honey's grandfather)'s for Thanksgiving later on. Got some work done Friday and Saturday. Friday afternoon I went shooting "up the mountain" with Ray and my father in law; we shot paper targets and glass coke bottles. The distance (about 50 feet) was a little long for pistols, but doable, and really too close for the Ruger 10/22.

Friday evening went to see Breaking Dawn Part 2 with Honey, Emily, and Honey's mom—ate at Chick-fil-A first (which worked out well because I wasn't tempted to buy any overpriced movie food/drink). Honey's papa asked me to speak Sunday evening, so I spoke from Nehemiah 8 about the reading of the book of the law. We left Monday morning, rolling out around 0645 and getting home around 2130 (stopped at a gun store on the way in Georgia; bought a pistol rug for the new gun).

New Sig P226 Elite Dark

News, Guns ·Wednesday November 21, 2012 @ 18:38 EST (link)

I finally "pulled the trigger" on a new handgun: a SIG P226 Elite Dark in 9mm that I'd been looking at for a long time. 15 round magazine (illegal in Canada, Commiefornia, and much of the Nazi Northeast; my one handgun that takes a magazine with ≤ 10 rounds, my Springfield 1911 EMP, is still illegal at least in Canada for having "too short" a barrel).

I bought it on Wednesday the 14th (GunBroker auction, from Osage County Guns in Missouri; there were no opposing bidders). I declined the insurance and used a credit card instead (which provides insurance of its own); I had it sent to a local FFL dealer, Wain Roberts Firearms, because they offered a $15 FFL transfer fee for members of Florida Shooters Network. I picked it up Monday the 19th. I was worried they'd give me grief about the three day waiting period since I don't have a Florida concealed carry permit, but apparently they knew the three days started from the purchase date, which would have been the 14th, as the invoice showed.

I took it to shoot at my club, Wyoming Antelope, on Wednesday morning; great gun, crisp trigger; I was shooting nearly as well with it as my Glock 34 almost immediately, keeping in the black center ring at 30 feet without difficulty.

Books finished: Execution.

Looking at cars

News ·Saturday November 17, 2012 @ 16:07 EST (link)

We hit a few car dealerships along US-19 today: I had thought about moving up from my 2000 Toyota Solara SLE to a Lexus or similar; so since a number of dealerships were nearby on that road, we hit Toyota (to look at Avalons mainly), Acura (TL), Lexus (ES350), Infiniti (G37) (and the Mercedes dealer next to it, E-class), and BMW (528i).

Avalon didn't compare well to Acura or Lexus, and cost about as much, so it got ruled out; I loved the Acura TL; the Lexus ES350 was nice but not as sporty as the TL and the interior looked a bit blocky; the Infiniti lacked interior features and had an annoying high "hump" at the back due to the RWD drive train; and BMW and Mercedes wanted too much for too little. We had to wait a very long time for an Infiniti salesman to talk to us; contrariwise we were likely positively influenced toward Acura by the friendly and genuine-seeming salesperson we talked with (Chris Duncanson). (Sure, they're all trying to make a sale, but some can fake sincerity better than others, er, I mean I'm too cynical and different salespeople give different impressions.) The Lexus salesperson seemed to be a good guy too. Lexus had a beautiful white/black leather IS 350C convertible on the floor.

But ultimately the TL is winning—specifically, the SH-AWD model with the Advanced package in either red/black (it might not come that way, so perhaps red/gray) or black/black; it's priced competitively, has a great reputation, is somewhat more sportier than the Lexus (in return for less of a smooth ride perhaps, but I'm not that old yet), and I like the interior design and features. Naturally I looked at reviews on sites like Edmunds.com and on AcuraZine's forums (even joined to get access to a file showing how to replace the internal HDD).

Books finished: Gödel, Escher, Bach.

The mail server is back

News, Technical ·Friday November 16, 2012 @ 17:02 EST (link)

Most of the rest of the mail files have been recovered and internal DNS and the mail system is mostly back—Courier-IMAP, Qmail, SpamAssassin—except for an internal webmail system (Horde/IMP), which is giving trouble and has always been a bletcherous piece of PHP crap anyway. It's nice to be receiving and sending mail locally again. Given that it was down for two weeks I may have missed some mail that hasn't been resent, or been bounced from some mailing lists; others are amazingly resilient (or perhaps, "stubborn") and have kept on sending to me. All configuration files were recovered, so it was just a matter of merging them with the reinstalled Gentoo packages, and tracking down a few unexpected errors via log files and adding the daemons to system startup. Now that it's stable it's been backed up (rsync) and will be periodically.

Recovery of some mail files was laborious; a group of inodes were destroyed covering some mail directories and files; the directories were recovered by a disk scan: first, the . entry points to its own inode, and second, by looking for blocks that look like directories containing distinctive maildir files (starting with the Unix time) and subtracting off known/reachable blocks to yield orphans (much like a mark and sweep garbage collector). Another similar scan was done for files that look like mail messages (with a Delivered-To: header in the first 256 bytes). I also recovered a few from Mutt's cache, removing dupes using a python program mapping file digests to filenames. All in all, I wrote about 1000 lines of C++ (saved some work by using libext2fs) and 500 lines of Python (to process block lists etc.).

DTI Data: case concludes on a high note

News, Technical ·Friday November 16, 2012 @ 13:24 EST (link)

I mentioned earlier some dissatisfaction with DTI Data, the company that I used to recover my lost disk. I went in today to return the last loaner USB drive they had given me, with the raw disk image on it rather than their rather poor attempt at recovering files. I called first, since they said they were trying another slower recovery method to recover more files, but that had not yielded any fruit (again, they had not called me, and I don't think they ever did, no matter what they promised). I talked to the technician and explained how I had used the second superblock to mount the drive (and was surprised their software had done so badly) and had been able to recover just about everything using that and various disk scanning to find orphaned files and directories.

Since, he said, I had to do most of the software recovery myself, he gave me the 1T Toshiba USB disk that I was returning. That was pretty good of him, and likely accounted for the cost of software recovery, with hardware recovery—that I couldn't do myself—being the bulk of the total cost and the value-add they provided me. That did make me feel better about the company; it was a nice gesture. I would recommend their services; just stay on top of them regarding communication, and realize their Linux (ext2/3) filesystem recovery at least is somewhat lacking (it'll strew files all over the place and miss a lot). (However, I know both filesystems even better than I did before, and in the past I have implemented drivers for them; if you have a Linux disk that needs recovery, if you throw enough money at me I might be able to help you out….)

Books finished: A Dance With Dragons.

Downtime due to disk failure

News, Technical ·Saturday November 10, 2012 @ 03:12 EST (link)

The server's primary disk, a 500GB Seagate SATA drive, crashed hard around October 24. The kernel image loaded but the main partition would not mount. Attempts to copy the disk to an image to work on it were continuing to time out. I searched around and found a local data recovery company, DTI Data Recovery that seemed to know what they were doing (I shopped around a little and another one I did talk to for a while gave me no confidence at all).

DTI Data occupies offices squeezed into a side tunnel in a strip mall in South Pasadena, about 20 minutes drive from home/work. It's convenient that they're that close, though; turnaround time by mail, which seems to be usual for many of their customers across the country, would be much worse. We brought the troubled drive in on October 26, and were quoted two prices: $495 if data could be retrieved without opening up the disk, and $895 if it had to be opened. The second one turned out to be necessary.

The first data I got back—on a 1TB Seagate drive I provided—was a real mess, and it only had /home on it. Directories and files were scattered all over the place; for example, photos were in my mail directory at random locations; at first I thought the drive was just that scrambled, and figured on reorganizing them back based on file timestamps and EXIF data. Much more data—they said all of it—was available, and apparently there had been an internal miscommunication. The paperwork required filling out vital directories, so I listed several, with /home first (and /var, /etc, and others, and then "everything you can find"), and someone apparently translated the list as "he only wants /home". DTI Data was also not very good about communicating with me; I generally had to call them to get any updates; once I was specifically promised a call later that day, but then the recovery ended up taking until Monday, and another time a call back in a half hour, but nothing for three hours until I called them.

They did recover some more data the next time, but there was still a lot scrambled and missing. Was the disk really that bad? I eventually asked for an image—a block-by-block copy of the disk, rather than recovered files, which they gave me, as with the recovered files, on a Toshiba 1TB USB drive. They warned me it wouldn't mount, but I had figured on that.

It turned out it did mount with the most basic data recovery due diligence: use the second superblock (short but key drive information, which is fortunately duplicated in every group, of which there are about 4000). First I had played around with it a little using libext2fs (from e2fsprogs) (old but relevant PDF documentation), skipping to the second superblock in the ext2fs_open call, reading the root inode, etc., and figuring the disk wasn't in completely terrible shape. I ran dumpe2fs to dump the superblock and group descriptors for reference, and played around a little with debugfs. I couldn't mount the image as ext3, which it was, because the journal was corrupt (even with noload), but mounting it as ext2 and skipping to the second superblock (read-only, of course) did the trick and I was able to access most of the files. (At this point I was working on a copy of the image on another 1TB Seagate SATA drive I had bought: copied using rsync, it took 4h21m to copy the 500GB image file from the USB drive.)

In particular, files that DTI had missed completely or scrambled into the strangest locations were plainly accessible; I worry about the recovery software they're using. I ran a find . -type d from / and got a basic idea of what inodes were bad (at this point after considerable investigation I believe damage is concentrated in a couple blocks worth of inodes (32 per 4K block). This is painful for the files that are lost, but then, recovering orphans is just mark-and-sweep (figuring out which goes where is tricker).

By this time I had set up a new Gentoo install on yet another 1TB drive and had it running well enough to provide NAT (local networking) services (and access it from my laptop wirelessly). But there was a long road to go to restoring web and mail even if most of the files were there.

For directories—most of which were either caches, which don't matter, or mail files, which do, since the . entry at the start points back to the directory's own inode, tracking down most was easy (although an entire scan of the disk, even just reading the first 24 bytes of each block, takes 43 minutes); I also logged children of the bad inodes (matching the .. inode). I ran another scan using a heuristic and then boost::regex (g++'s regex support is terrible) to find blocks that looked like Maildir directories (only a few of the missing directories were more than one block, and not all of their block entries were bad). From there it remains to determine the known good blocks, subtract them from those found, and figure out which directory the found blocks belong to (order doesn't really matter; filenames do not cross block boundaries—good design there, Rémy/Theodore).

Services are gradually coming back up: the Apache servers (dynamic and static) for davidrobins.net were first, with i4031.net, my resume, internal address list (needed some recovery), SSL (likewise), my Voluntaryist Wiki, and Code Visions. The next big one to tackle is mail, which involves several programs and their config files (which all need to be copied over or merged appropriately from the old mounted image): Qmail (and Fastforward), Courier-IMAP, Maildrop, Mutt, and Horde/IMP (for Honey). The work continues.

Books finished: Smart and Gets Things Done Joel Spolsky's Concise Guide To Finding the Best Technical Talent, Peopleware.

Kayaking

News ·Sunday September 30, 2012 @ 20:04 EDT (link)

I went back to Lettuce Lake regional park again—just me this time—to kayak for the first time. $2 entrance, $25 kayak rental. I had to let them hold on to my driver's license, and picked up a paddle, life jacket, and key at the entrance station. I put the paddle in the trunk but it stuck out so I used a tie-town. Walk down to the launch, unlock the kayak, put it in the water; about the same as a canoe, as was getting in: it's all about staying low and maintaining balance (after I cleared out or killed the large spiders in the back of the kayak). (This was a sit-on-top kayak.)

There really wasn't much to it: grasp the paddle with the concave edge of the blade toward you and alternate left/right strokes. Sometimes I'd double-paddle on one side to help turn, or back-paddle; but it later became easier to take a stronger stroke on one side to turn while maintaining rhythm. I was out for a couple hours; I went past most of the boardwalk, including the lookout. Saw several wading birds and ducks close-up; no gators; no other kayaks out, but a few canoes. Altogether a good experience.

Open source = ability to fork

News, Technical ·Saturday September 29, 2012 @ 15:56 EDT (link)

My response to a TED talk How the Internet will (one day) transform government by Clay Shirky:

The fundamental misunderstanding between open source projects and law is that open source projects are private property (and by that I mean the main repository, not the content) whereas law is imposed on people by force. This so extremely dwarfs how either are produced that it amounts to a red herring, a mere distraction. And it's shatteringly depressing that he almost got it, too; because if he had talked about forking (where someone takes a copy of an open source project and makes a new "main" repository going a different way, because they disagree with the existing owners), then he would have almost made it.

If you talk about open source and don't talk about forking, you don't understand open source. Even if an open source project never forks, the ability to do so—the threat—keeps the keepers honest. And even if a fork doesn't attract many people, or is entirely private, it represents ultimate control over the configuration of a project that you run on your system without having to be dependent on anyone else's vision.

So all he's really got is: law and its composition (inputs) should be more open, such that it's clear where inputs come from, and, in the other direction, what its effects are. But that doesn't change the fundamentals of democracy, which is majorities (or plutocracies) forcing their will on other individuals.

If he actually took the lesson of open source projects to heart, though, he'd be able to make a much more powerful point. First, he needs to understand that open source projects are not democratic: they are focused on a privately-owned main repository. Sometimes democracy (but not of everyone, but of people admitted to the inner circle, usually from the value of their changes, i.e., on merit) is used, but it is far from central. Linus (and other open source project leaders) are referred to as a BDFL—Benevolent Dictator For Life. But the ever-present threat is that someone can take the code and start a new "main" repository and that he'll be the dictator of a kingdom of 1, or at least that there will be kingdoms outside his control.

Now, what do you get if you apply "forking" to law? Recall what it means in the software context: if a person doesn't like the "main repository" of a program, or that their ideas are not being incorporated, they make a copy, publish it as a new "main repository" (usually under a different name to avoid confusion), possibly attract others that prefer their version, and, most importantly, use that version of the software. For example, if people thought that Apache (a web server) should instead be a mail server (silly example), then they could branch it and call it "Comanche" or something, and start working on it, and they could run their version on their computer and nothing compels them to keep running Apache. (And since Apache's changes are still being published, if they see changes they like they can incorporate them back into "Comanche", and vice versa.)

So apply that to law: if a person doesn't like the main repository of law (the state's version), or their ideas aren't being incorporated, they could make a copy, publish it as a new set of laws ("Dave's Law", which, say, strips out all victimless "crime" laws, leaving the other 12 pages alone for now), possibly attract other people that like Dave's Law, and, most importantly, only _follow_ "Dave's Law". (Note also that a person doesn't have to be a contributor to a project to use it, and similarly, a person would not have to contribute to "Dave's Law" to elect to follow it instead of the state's law.)

To answer our original question ("What do you get?"), the answer is, of course, anarchy. Possibly, just done exactly like this, anarchy in the sense of "chaos" as well as "no (imposed) masters". For example, (as written) people could opt out of murder laws and, if law is the only reason a murderer can be brought to justice (it isn't; see the Voluntaryist wiki page on Justice), there would be no penalty. So clearly that wouldn't quite work. In fact, anyone about to commit a premeditated crime would naturally opt out of the law against it! Yet this works both ways (somewhat like Molyneux describing someone dropping their DRO coverage, which you can read about in his book Practical Anarchy): it is a signal that some mischief may be planned. Others might refuse to do business with someone who has chosen to be bound to a system of law that they disagree with. And which law would the police enforce? It's easy for victimless crimes: that of the actor (if you choose to follow a law that says you can be jailed for 10 years for using drugs, then so be it, but if I don't, then leave me alone); what about at the boundaries (my law says I can sleep on your lawn, your law says you can shoot me if I try)? (Butler Shaffer's Boundaries of Order comes to mind: rights are all about boundaries.) (Especially consider if my law says I don't need to pay taxes to fund your police….)

So two things would come from this: distributed law (see, e.g., Hasnas' "The Myth of the Rule of Law"), and an appreciation that justice (right to restitution and retribution) does not come from arbitrary words on a page. We'd be getting into an anarchist private law (DRO, private protection agency, rights enforcement agency, etc.) system.

That is the parallel to distributed version control, not merely that people can see where the bits of text come from and who contributed. The guy misses the forest for the trees.

<Previous 10 entries>