::::: : 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.

Camping Survival: trials and tribulations

News, Guns, Economics ·Friday February 15, 2013 @ 20:54 EST (link)

Honey writes:

I ordered the Glock t-shirt for David's birthday on January 23, 2013 and received it on January 30, 2013. I gave it to David for his birthday (on that day) and he looked at it and realized that the Glock logo on the shirt was not correct: parts of the G symbol are rounded instead of square. I called campingsurvival.com (the place that I bought it online) and talked to JoAnn on January 31, 2013. I informed her that I bought the shirt as a gift and that my husband was not happy with it and it I needed to return it. She told me that she had to get in touch with the supplier and that she would get back to me in a day or two. She told me that she had to e-mail them, so that I would know that I may not hear from her until the next day (which was Friday). I gave her until Tuesday, February 4 before I e-mailed Andy (got his contact number via the website). I informed Andy of the situation and his reply was to call the Camping Survival phone number again, and talk to them and that they should be able to handle this return. On February 6th at 12:30 I spoke with Jovi and here are the notes from that conversation:
They need an RMA #, so they are going to contact the supplier, Jovi will talk with JoAnn tomorrow, and if JoAnn isn't in, then Jovi will take care of it.

She should get in touch with me via e-mail in a couple of days!
I never heard back from her or JoAnn, so I decided to call them yet again. On February 11, 2013 I called campingsurvival.com again and spoke with Jovi; she asked me if I had heard back from JoAnn and when I said no, she asked me to hold a minute. She came back and said that JoAnn was on the phone at the moment, but that she would talk to her when she was finished. Jovi also told me that if JoAnn hadn't heard anything from the supplier that she would personally call them and get back to me today. I finally received an e-mail from her stating that the supplier does not do returns, but that they would do an exchange. So I called Jovi back and finally told her the reason that I was returning the shirt. I explained to her that it shouldn't matter why I wanted to return it, but that since it did matter, I told her that the Glock logo on the T-shirt is not correct and that it was not as advertized (the picture on the web site had the correct logo) and if they would not take the return that I would have to charge it back on my credit card. She asked me to hold again and came back a couple of minutes later telling me that "You never told us that was why you wanted to return the shirt" and I explained that it shouldn't matter (and their web site return page didn't say anything about a reason), but since they wanted to know I did explain the problem. She informed me that they would accept the return and she asked me if I had to correct address; I repeated the address from the invoice that was sent to me via e-mail and she said that was the correct address. She told me that they would determine if the T-shirt was as advertized or not and that if it was I would be reimbursed for everything but the original shipping costs and that if the T-shirt was determined to be as advertized that I would be responsible for the 5% fee for the return.

I informed Jovi that I would be sending the shirt back and asked what information I should include (I told her that I do not have a printer and that I was going to include a note and asked what to put on it). She told me that I should tell why I'm sending the shirt back and put the packing slip number on the note. She said no other information was needed because she was putting the notes down in her computer on the invoice. I told Jovi that I was going to be putting a tracking number on this package so that I would know when they received it. I asked if I would be e-mailed about the decision once the shirt was received back at their store and she told me that yes I would receive an e-mail telling me what the decision is about whether the shirt is as advertized or not!

20130215: I received an e-mail from Tim at campingsurvival.com stating that the T-shirt was as advertized and that they were crediting my card the price of the shirt minus 5%.

I wrote Tim back informing him that the shirt was not as advertized because the shirt logo on the website was different from what was actually on the shirt. I also mentioned that it is not a correct Glock logo. I informed him that I would be doing a full charge-back on my credit card (American Express, which allowed for charge backs for items not as advertised or companies not living up to their return policies).

At 4:31pm I received an e-mail from Assistant Manager, Adam Judware telling me that he is working with their supplier to find out why the images are different. He also said that he would credit me the rest of the amount on my credit card (he said that Tim had already credited me $14.20 and that he, Adam would tell whomever I spoke to on the phone to credit the rest $7.58). Adam asked me to call back to campingsurvival.com to give them my credit card number again, so that the rest of the amount left could be credited to my card. He apologized for the inconvenience and told me that if there was anything else I needed to talk to him about that he would be happy to help me.

I spoke with Jovi on the phone around 4:50pm; she apologized as well and also told me that they were working on getting the image difference corrected. She took my credit card number and told me that she was glad that they were able to resolve the issue and that she hoped I was happy with the outcome (she said all of this in a nice way).

The postage to send the shirt back to campingsurvival.com first class with a tracking number was $3.99; but everything else was eventually refunded.

David adds:

While it did eventually work out, it took them far too long and gave Honey so much of a runaround that I don't think I'd shop there again—besides the cost of the return with tracking, which we felt was necessary after all the trouble we'd already had, a lot of Honey's time was wasted.

Books finished: Reamde, Unleashing the Ideavirus.

Olive Garden with Chris and Janet

News ·Friday February 1, 2013 @ 22:49 EST (link)

Friday evening we went to Olive Garden in Pinellas Park with some friends from the area; Chris, who I had met before (first contact on Facebook, and then we went out shooting at Wyoming Antelope), and his, hm, permanent girlfriend? (not married but together seven years) Janet, whom I had not met before. We got there at 1900 and neither of us had thought to make reservations, so we had a 35-minute wait, but the time passed pretty quickly talking about guns and anarchy and life.

I'm not a huge fan of Italian food, but I had the "Mixed Grill" which was very good (perhaps because it didn't have any cheese in it): chicken and steak skewers with potatoes and vegetables. We were there until around 2130, just having a leisurely good time, and will try to do it again in not too long.

Books finished: Stop Stealing Dreams, Chaos Theory, Foundation's Edge, The Corridors of Time, Clean Code, Children of Morrow, Getting Things Done, Every Day Is an Atheist Holiday!, The Bootstrapper's Bible.

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.

<Previous 10 entries>