::::: : 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. He has been abducted for 2230 days.

Praise where due: Villas at Gateway, Pinellas Park, FL

News ·Wednesday May 8, 2013 @ 20:03 EDT (link)

Far be it from us to withhold praise where due; and perhaps it is rare enough that even though doing the right thing should be expected, it is still worthy of positive mention.

Honey wrote up our experiences with Avalon at Bear Creek apartments in Redmond, WA, which were not good at all: they stiffed us as much as they could when we left, and moving out of the area we were in no condition to fight (nor would it have been worth going to court, I'm sure, anyway, even if we had a hope, or even of getting our credit dinged). They had us over a barrel and took advantage, and I hope people will read about it.

On leaving our apartment at The Villas at Gateway in Pinellas Park, FL, we arranged for a move-out inspection right after the moving truck left. The regular maintenance guy, Tracy, was unwell (when we called later he was better), but they had someone up from one of their (Greystar's) other properties, Ron, who did the inspection. He didn't take long—there wasn't much to inspect—and said we were fine, and left.

We expected normal cleaning costs; due to good credit we hadn't paid a security deposit, but they did have rent to the end of the month which they could have kept, but in fact they charged nothing and refunded a portion from after we left around the 20th. Which makes sense: part of rent, after all, is the cost of normal wear and tear on the place rented, and we hadn't damaged anything.

So if you're in Pinellas Park, you can feel good about renting at The Villas at Gateway. We were there about a year and a half. (It shouldn't need to be said, but we have no financial interests or affiliation with Greystar.)

Samsung Galaxy S4

News, Technical ·Tuesday April 30, 2013 @ 22:15 EDT (link)

My Samsung Galaxy S4 phone arrived today; they really did send it overnight as promised, even though the estimated arrival date was the 6th. So far I am very happy with it, although there was a slight glitch with T-Mobile showing the phone with no data plan at all rather than the unlimited one I had selected; but that was fixed (while at the Wild Ginger on 116th restaurant tonight enjoying the first sushi I've had in a long time). At home I was on WiFi, and it didn't show that I didn't have a data plan until I checked at the restaurant (I wanted to search for Yelp reviews).

Given that the last time I had a cell phone was around 2003, in Memphis (it was stolen and Verizon wouldn't use its GPS to locate it and required me to pay out the contract, souring me on cell phones for a while), and that that one wasn't "smart" at all in comparison, this phone is a wonder… I'd like to experiment writing some apps for it, which apparently is fairly simple to do on Android (one reason I didn't get an iPhone, although I have to suffer with a Mac (Mini) at work for my sins).

When I called the T-Mobile local store yesterday, they didn't expect to have the phone until the 15th, which is another reason I was especially surprised to hear from Honey that it had arrived today. Fun toy, fun times. I need to get a case for it.

Books finished: A Prisoner of Birth.

Bounce, spammer, bounce

Technical ·Thursday April 25, 2013 @ 22:42 EDT (link)

When I was first in Florida—the weekend I interviewed at Freedom Scientific, in fact—I visited and spoke with realtor Charles McCann in downtown St. Petersburg (islandconsultinginc@gmail.com). He was friendly, although it turned out he didn't deal in the type of properties we wanted (acreage) nor location (would be across the "Sunshine Skyway" bridge); but he had signed me up for notification emails for a certain property search criteria, and we got occasional notifications*, which was fine. I even let them continue after we were fairly sure that if we were to buy a house out there, we may still be interested in something in the areas he dealt in. But after moving to Indiana, we were still getting automated mails (which was fine; how could he know), so I replied back to the (above) address, which I think was the same as on his business card, asking to be removed from the list because we had moved, and thought no more of it. But we're still getting what, now, I consider spam.

So I hit it with a big Postfix hammer: smtpd_recipient_restrictions, using check_recipient_access to reject his address via a table created by postmap. Quite convenient, even though it's not per-user. The email will be rejected by the SMTP server:

554 5.7.1 <islandconsultinginc@gmail.com>: Sender address rejected: Access denied

Usually I create a separate email address for everyone that gets my email address, unless I'm fairly confident they won't spam it (it's also good for determining who sells addresses to whom: if an email from spammer X comes from xyzcorp@domain.com, I can be pretty sure XYZCorp sold my address). But this time I didn't, probably because I didn't know if I could create the address before the first mail would arrive.

Hopefully Chuck, or his automated system, will get the message.

* The mails really were only occasional, most of the time, versus now where sometimes we get several updates a day for our Indiana search (from realtor F. C. Tucker), I suppose because prices etc. change a lot in the search we gave our realtor. This is fine: I asked for them, and I trust they will stop if requested.

Kitchen unpacked, laptop battery dead

News, Technical ·Wednesday April 24, 2013 @ 17:38 EDT (link)

It's been a difficult few days of maneuvering around boxes, since the big truck came Monday with the bulk of our things—the tall wardrobe boxes in particular—but it's great to have our bed rather than sleeping bags. We just finished unpacking most of the kitchen, and getting the boxes out of the way. Our kitchen passes through to the living room and hallway, which is convenient. There's plenty of storage here—we have a really long storage room next to the living room (first part is a coat closet, then it goes way back), and an outdoor storage room off the patio, and a pretty large garage.

Since we'd like to entertain visitors at various times, we're laying things out with more space than in Florida, where our living room was rather crammed up and looked it. We threw out a lot of unnecessary clutter in Florida, and some more here (I went through my collection of cables and computer cards—USB, power, Ethernet, etc., tossed out more than half, and organized the rest), and things we need to keep but that won't be useful here (e.g., the lawnmower, silver, garden tools, and even my desk) are packed away out of sight. The second bedroom is quite livable (in Washington I had a desk out in it and the bed was crammed in next to it), although it does have the piano in it, and the dining room, which connects to the living room, has a couple comfortable couches in it.

My laptop (HP Pavilion dm4) battery finally died. I knew it was failing, but wasn't sure if it would complain forever or give up the ghost. Fortunately, I had purchased another (HP MU06) in case of the latter, and was ready and it's ticking merrily along again.

Books finished: As the Crow Flies, The One Minute Manager, Fast Company's Greatest Hits.

Giving up on qmail, switching to Postfix

News, Technical ·Thursday April 18, 2013 @ 23:31 EDT (link)

The final tipping point switching me from the venerable qmail was the inability to (easily) relay through an SMTP server that required authentication (as our new ISP, Comcast, does). There is a qmail-remote-auth patch, but it doesn't apply cleanly to Gentoo's netqmail-1.06 (the latest), and I just don't need one more thing to manually update, even if I had wanted to manually apply the patch once, which I didn't. Qmail has just grown old and not been well maintained.

Postfix so far has been a delight; easy to set up by perusing main.cf, running newaliases, and ensuring the sasl_* commands are set for SMTP authentication. Sending works (via ISP relay); receiving seems fine after a local test, but Comcast won't unblock port 25 until tomorrow, so I can't be sure about actual remote mail until then.

Update, 20130420 midnight: Comcast finally unblocked port 25 after a second request; mail has been flooding in (we will still likely switch to AT&T U-Verse business, because it's close to the same price, no installation fee, no ports blocked, and Comcast said port 25 may be blocked again if the modem resets, even from powering off, or if they send an update signal). I also checked to make sure my configuration wasn't accidentally set up to relay anything it shouldn't using MailRadar's open relay test and it passed everything as expected. I also used to have a .qmail file that filtered messages through maildrop, which it seems needs to be setup via .forward for Postfix (or other methods); it was simpler than the example, which didn't work (didn't like ${user}); simply putting |/usr/bin/maildrop in .forward worked fine, since Postfix's delivery agent is already seteuid to the right user.

It still remains to get my spam classification working again, and a few automated mail programs.

Update, 20130420 afternoon: Re-added SpamAssassin using these directions; pretty simple; I already had spamd setup.

Arrival in Indiana

News ·Wednesday April 17, 2013 @ 16:35 EDT (link)

For the last week or so we had been packing up the apartment (fortunately we were month to month in anticipation so had no lease to (pay to) break); the big wardrobe boxes we got from the last move (also with Moovers, Inc.) were very helpful, and we were much better prepared and packed, which meant the movers, when they arrived at 0800 Tuesday, were able to finish much faster: they were easily done before noon (the driver, Frank, hired three others: Freddy, his brother Jason, and Paul). When they left, we got lunch and I finished a library book (Poul Anderson's Brainwave), and returned the rest of our books; we came back to do the apartment move-out inspection at 1500, then packed the last items in our cars and headed out, stopping to the cable modem to Bright House, and get Honey a new driver side brake light bulb at Jiffy Lube.

We made it past Atlanta, and at almost 0300 Wednesday stopped at a rest area near I-75 mile 308 to sleep until 0800. Then we pushed on to Fishers, IN, in dire need of shave, shower, and sleep. On arrival at around 1630 we signed the lease papers and unloaded various items from our cars, which had been packed with things deemed too important to leave to the movers: mostly computers and firearms, and sundry other valuables as well as items we wanted to have while waiting for the big truck: sleeping bags, pillows, blankets, a few plates and cooking utensils, camp chairs, etc.

After we had cleaned up a little, we went out to eat—Five Guys, for the first time ever, even though they did have them back in Florida. Carried more stuff in from the cars and moved it around. Crashed hard.

Thursday we ran a few errands: went to the library to stock up on books, stopped by the police station to find out about concealed handgun permits (expensive, especially for something that should never cost anything or even be necessary… but they have "lifetime" permits), got some groceries, and got back in time to get set up for the Comcast Xfinity Internet guy to arrive at around 1700. (All in all, the servers were down for only about two days, which is a record for a move; although email will be down until they unblock our SMTP (port 25) tomorrow. They also practice the evils of MAC-address affinity so I had to clone the address from my laptop.)

Everything looks good… little rainy, but with books and Internet we can handle it. Looking forward to starting work on the 29th.

Books finished: The New Manager's Starter Kit, Brainwave.

Last day at Freedom Scientific

News, Work ·Friday April 12, 2013 @ 17:47 EDT (link)

Image of
Today was my last day working at Freedom Scientific (interview post, a year and a half ago). A few weeks ago I accepted an offer for a new job as a lead engineer (more about which later) and resigned from my position as a Senior Software Engineer with the standard two weeks notice. My boss took the resignation well, and his boss, the VP, was only concerned that I was going to their competition, which I am not (whole new field, although the line of business was certainly interesting). Yesterday some co-workers took me out to the Brazilian Steakhouse for lunch, a true meat-lovers' paradise.

Coming from Microsoft, it was somewhat refreshing to be back in a small(er) company atmosphere, with the biggest difference that there are a lot more different things to learn and do. For example, I taught myself WiX (Windows Installer XML)—become rather expert, in fact; I worked on setup packages, wrote a (virtual) printer driver, worked on a camera driver, and designed and built features for a couple of (related) applications, WYNN and OpenBook.

I also attempted a few initiatives, with limited success: an object model for WYNN (both so it could be extended as a platform and for automated testing, which was sorely lacking); memory marking (based on ideas, but no code, from Word; using Visual Leak Detector, in fact); and developer talks, which, after about six months delay from inception, were about to start (and I hope still proceed). I wrote a lot of utilities in Python (and a few in C#) to generate code or automate tasks, including one that would have been able to replace a scary custom build system (and make it possible to complete entire build much faster and on developer machines). I am not going to hash negatives here; there was a lot of good from my experiences at Freedom Scientific; I worked with some excellent developers and testers, and clearly had, most of the time, a decent degree of autonomy to get work done, and even some extra items, while meeting my schedules. I hope, if it is applicable, I will have more ability to further such initiatives, such as automated testing, at my new position.

I will certainly miss the weather here; it's beautiful and I'll miss wearing shorts and T-shirt in February and the white sand beaches.

We have two weeks now for the move, and have been packing every night—all the books are done and most clothes and much of the bathrooms and between, with a few essential/valuable items to be transported in our cars. Old services are set to be canceled and new to begin (still concerned that I can get the Internet provider to unblock port 25 inbound, which they have the unsavory reputation of blocking, but most have had good experiences). We should be loaded up (Moovers are our brokers, using National Van Lines) on Tuesday, do a move-out inspection, then drive up to our new place in Indiana, which we picked out on a loooooong weekend drive last weekend.

Adios, Florida. We'll miss you, but not your insanely extortionate license fees.

Books finished: The First 90 Days, Elminster, Code Complete, The Art of Multiprocessor Programming, 365 Foolish Mistakes Smart Managers Make Every Day, How To Win Friends and Influence People.

Trip to the Florida Keys

News, Bad Drivers, Photography ·Sunday March 24, 2013 @ 13:35 EDT (link)

Image of
We took a trip to the Florida Keys this weekend, since we'd never been. It was a nice enough experience, but we probably wouldn't do it again. The beaches aren't as nice as the local ones, like Fort de Soto, and it's very touristy, crowded, with all the requisite bad drivers and flim-flam merchants ("SANDAL FACTORY OUTLET!", street vendors hawking crap—I have nothing against street art, just crap), all overpriced and rather tawdry. It's not my kind of vacation and you're not missing much to skip it (and the whole Miami mess, for that matter).

We left Friday evening after I got home from work, and stayed at the Homestead/Miami South Hampton Inn, getting up around 0800 and leaving after the complimentary breakfast. We decided to drive straight through first to spy out the land, all the way to the end of US-1 in Key West. Traffic wasn't too bad, although at points it's down to a single lane and you're at the mercy of the slowest person ahead. The views were beautiful as we drove along, especially when the road curved and it was possible to see beaches and homes on the shore.

We stopped at Higgs Beach in (the town of) Key West (free parking) to get our bearings (and a little earlier at a visitor center to pick up some spam with a few useful maps embedded), and walked around the beach and went into the water for a short while. The Joe Allen Garden Center at the West Martello Tower, maintained by the Key West Garden Club (for donations) was nearby; a real hidden gem and I'm glad we had the chance to go in and walk around a little. I even went back to the car and got my macro lens (105mm AF Micro-Nikkor) to take some better closeups of the various flowers (included above; hover over the picture for navigation/expansion controls; requires Javascript). It was a beautiful day for it, and even without a tripod I was able to get some good shots at f/8 and above.

We stopped for lunch and then drove back along the main highway to Anne's Beach, a small beach a little ways off the road, also rather rocky and with coarse-grained sand like Higgs, so we didn't spend a lot of time; got in the water, swam a little, avoided the seaweed, then continued back. We were on the lookout for key lime pie on the way back, and found Mrs. Mac's Kitchen ("Eat well, laugh often, live long") where we had key lime martinis (I didn't expect them to be so frozen) and I had (my first) slice of key lime pie and Honey had peanut butter pie.

After that we were pretty much headed right back; it was getting late, and we had many miles to go… we got a little snarled up around Miami but got home around 0200 Sunday.

Books finished: Dinosaur Brains, A Fine and Private Place, The Art of Readable Code.

Learning Haskell

News, Technical ·Thursday March 7, 2013 @ 23:47 EST (link)

For the past week or so, I suppose now, I've been learning Haskell—I was in search of "a better functional language" (or, perhaps, more fundamentally, a powerful language, which tends to imply functional or functional additions) to learn or revisit (e.g., Scheme, Lisp). Python recently annoyed me again because of its intentional crippling (no, not the whitespace; that's absolutely great; it's very clean; looking at Ruby again, after a long hiatus, and seeing the dirty proliferation of closing end statements made me shudder a little), which the idiots try to tout as a feature, e.g., restricting lambdas to a one-line expression and not allowing assignment in conditionals. Despite distaste for Java I considered Clojure as a "Lisp with more libraries", but rejected it because it can't do tail recursion optimization (it can fake it; no thanks).

I'm using, unsurprisingly, the Learn You A Haskell For Great Good! tutorial, and I'll probably read Real World Haskell after that. Haskell takes functional programming to a whole new level; although this post, Why I Prefer Scheme to Haskell, makes a good point on the fanatical purity of the language making it difficult to insert trace statements (and here's someone going the other way: Hello Haskell, Goodbye Lisp). I haven't written anything big in it yet, but I may start using it for small utilities here and there at home or work.

Books finished: The Pragmatic Programmer, Code Simplicity.

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.

<Previous 10 entries>