Apr 9 2014

USPS – you’re funny


My colleague Nathan shipped something from Los Gatos, CA on Saturday 4/5. It was supposed to be here on the 7th. The USPS tracking site is still optimistic that it’ll be here on that day ๐Ÿ™‚

Apr 6 2014


The last time I went on a vacation was years ago. Sure, we went to Germany a few times, spent some weekends away, but it’s been a long time since I dipped my toes into the ocean.

Spring break was the perfect opportunity for Pia and me to get away for a week. For a long time I had promised her a beach vacation and this year we made it happen. A few months ago I booked the Atlantis, Bahamas resort and late March we went there. Based on reviews by other parents I picked Atlantis, because everybody with kids said that it was comparable to a “Disney World with Water”. Knowing how much Pia enjoys water, I thought it was a perfect fit. And it was!

On 3/22 we went from Albuquerque via Houston to Nassau. No problems at all getting there and taking a shuttle to the Atlantis resort on Paradise Island. Of course, Pia had to go to the ocean the first evening (no swimming though):

First evening at Atlants

Atlantis is a massive resort that features a number of different hotels, numerous restaurants/shops and an incredible water park. As it is a kids-attraction, it is loud and busy. Supposedly there are more quiet areas for adults only, but I did not get to see them and that was not the purpose of the trip.

A note on the videos: most of the videos below were shot with a GoPro2 hand-held and they are shaky. The water-proof case was mounted, which makes sounds muffled even outside the water. And you’re not supposed to view the entire length of the videos, but fast-forward through them as you please.

There’s a giant tunnel with one of the world’s largest fish tanks right in the middle of the resort:

A lagoon between hotels with beaches and beach activities:

“The Dig” – an area with artificial “Atlantis” artifacts and an Ocean petting zoo that allows visitors to touch starfish, conch and horseshoe crabs (Pia loved to hang out here):

Of course there is a big ocean right in front of the resort and we made good use of it. On a side note: Pia CANNOT walk by the ocean without getting soaking wet!

And lastly there’s the Aquaventure park that boasts a number of huge (and scary) slides and our favorite ride called “The Current”. The ride is a “river” that runs in a circle around part of the resort. You sit in tube and get shipped around without having to do too much yourself. There are areas with rapids, artificial waves and a few extra slides you go on. It takes about 30 mins to do the circle and I lost count how often we did it (and Pia went several times by herself):

We also spent some time with the dolphins at the resort (“shallow water interaction” they called it) and got to go on a (cold) snorkel tour of the Atlantis ruins – both of them were nice, but not too memorable.

Panorama at "The Current"

One afternoon Pia also took a cupcake cooking class at the Kids-only Club at the resort. She came back with her tongue looking like that:


We enjoyed our time at the resort and it’s definitely a place we would consider going back to especially while Pia is still “younger”. If there was one thing that was a bit annoying, it was the prices at the resort. From $7 water bottles (1.5 liters) in the hotel room to $8 small zip-lock bags with fruit and $50 breakfasts for an adult and a kid, this place is expensive. The resort knows that most people won’t leave the place because of it’s size and they charge whatever they want to charge. You use your room-key to sign for all purchases and have no way (at least when we were there) to review how much money you spent already. Be careful, because those extra expenses can add up quickly.

Mar 29 2014

MH370: from Nassau to Houston via Perth

Just a little while ago Pia and me were in line at the customs checkpoint at Nassau (Bahamas) airport. Over our heads a ceiling-mounted TV is tuned to CNN and we get the latest news about flight MH370 (what else). In the line snaking in the opposite direction, a 15-16 y/o daughter asks her mom: “Do we have to fly over the area where the plane went down?” (earlier on I overheard that they were going to Houston, just like us)
I expect Mom to give her kid a geography lesson, but she responds “I hope we don’t! That would be terrible!”
I open my mouth and stare …

Feb 16 2014

Best joke I read today

“An agnostic, dyslexic, insomniac stays up all night wondering if there’s a dog.”

Feb 5 2014


If I remember it, I’ll run the pep8 plugin in Wing IDE before I submit my code. And, yeah, most often I don’t remember it.

I just ran across autopep8, which automatically detects and changes code to be PEP8 compliant. It does not do everything, but it does a lot and can work in batch mode. Run it with the “-d” option first to see if you like the changes.

Feb 5 2014

GIV mobile switch

giv-logoI’m not a big phone talker. It always amazes me how people can burn through 1000 minutes/month. I was on the cheapest plan at Verizon, no texting, 2GB data and I still never reached the limit. However that cheapest plan still cost me ~ $80/month and that was after a 20% discount which I received through my company affiliation. Even if I wanted to, there was nothing I could cut from the monthly bill.

I started to look for alternatives and found one in GIV Mobile.

GIV Mobile is one of those no-contract resellers that have popped up in the recent past. Under the covers they use the T-Mobile network. For $50/month I get a no-contract, unlimited calls, unlimited SMS, unlimited international SMS and 2GB at 4G speeds plan. After using up 2GB of data, speed automatically switches to 3G. T-Mobile’s coverage is certainly not as good as Verizon’s, but it is good enough for me: I have service at my home and all the other areas I care for. Besides the fixed cost under no contract I was also attracted to the new provider, because GIV Mobile donates 8% of your monthly bill to charity: from now on I’ll donate $4/month to charities I selected.

I got a Nexus 5 (because my Samsung was locked to Verizon) and activated GIV Mobile in January. My old number was ported to the new provider and once I was convinced that everything worked, I called up Verizon to cancel service there.
They gave me the “… valued customer … long time … see what I can do …” talk. The lady on the phone offered to cut $10 from my monthly bill (why do I have to threaten to leave before you’re offering this?) if I signed up for another year of service. I told her that even with the $10/month reduction, I would still be paying about $20 more a month than at GIV Mobile. She knew that there was nothing to be rescued in my case. I was hit with an early termination fee, because my 2-year contract was not over until July – but I had already factored that in and in the end I save some money. And knowing that I’m no longer feeding Verizon makes up for any additional costs …

Jan 12 2014

New Home

Last week I was greeted with a yellow blinking light on the front of the Dell Desktop PC that hosted kahunaburger.com and some other domains. It sat there in the in the cool garage (not a thermal problem) with both disks spinning (not a disk problem) and would not restart. For a few days I tried to make things work again, but the PC remained silent with no indication of the failure condition on the screen – in fact, I did not see anything on the screen. I cleaned it, blasted air through, all to no avail – it was dead (10+ years is not too bad). This weekend I embarked on resurrecting the sites on the PC and went through a number of stages of frustration: 1) I tried to move the disks to an AMD desktop I had around, but the thing would not turn on, 2) I tried to move the disks to another old PC, but it would not go beyond the initial boot stages of FreeBSD, because the architecture was too different.

No local hardware to run the old sites – sigh.

Plan B: create a new virtual FreeBSD instance in VMWare and at least extract all the data from the disks. In VMWare Fusion Mac I created a new instance from a bootonly-FreeBSD-image and was able to mount the disks in no time afterwards. I installed the correct version of mysql in the VM and dumped the data to another volume. Now I had a database dump as well as the dump for the filesystem and could proceed.

Where do I spin up the new servers? I had long hoped to move the server’s responsibilities to Amazon Web Services and now seemed to be the right time. An “m1.small” instance later I had the skeleton of a Linux, Apache, Mysql, Perl server and started to restore files. You should have seen how surprised I looked when the first hits were answered correctly and I saw something else but “500s”. It just took a bit more tweaking until most of sites’ content worked again. Pretty impressive (until I get the next bill from AWS – then I’ll decide how to allocate reserved instances) ..

PS: “sudo resize2fs /dev/sda1” is your friend if you’re using the Amazon Linux AMI and have allocated more space for the root volume than what seems to be available …

Dec 20 2013

Most expensive passports ever!

The last time I renewed my German passport (almost 10 years ago), I sent it and support documentation to the General Consulate in Houston, paid my fee and a few weeks later I had a new passport delivered.

Things have changed since then and made yesterday’s renewal the most expensive ever.

Germany adjusted the rules in the past years and now requires citizens to travel to the Consulate in order to renew passports. So I packed Pia on Wednesday evening and went with her to Albuquerque to stay at a hotel for the night. We didn’t want to miss too much of school/work and decided to do a one-day trip to Houston. That required taking a really early flight out to make the appointment at the Consulate and be able to fly back home to Albuquerque the same day.

Our day started at 4:50am when the alarm rang. I was awake way before, because of the insomnia of the guy above us at the hotel: he was trampling around most of the night and his weight combined with the less-than-sound-absorbing ceiling told me whenever he was doing his rounds. We got changed and left the hotel just after 5:30am. Our flight to Houston at 6:30am was on time and uneventful. At Hobby airport we grabbed a taxi and drove about 25 mins to the Consulate.

My passport appointment was set for 10:45am and we were there some 20 mins before.

Thanks to detailed preparation work, it was all smooth sailing and within less than 15 mins my renewal was done. I was asked to pay the renewal fee ($130) in cash, because the Consulate had recently issues with credit card payments. After checking how much Pia’s renewal would cost ($80), I left my daughter alone at the Consulate (she’s a big girl now and the woman helping us was really nice) and went down to an ATM to pick up enough cash. Just 20 mins later, Pia’s renewal was also done and we left a bit over an hour after we arrived at the Consulate – not bad at all!

We had a few hours to kill before our return trip and walked 15 mins to “The Galleria” in the heart of Houston. The Galleria is a huge shopping center and I mean really huge. We knew about it, because the taxi driver had mentioned it and he had dropped the magical keyword “ice skating rink”. Since the temps were in the 80s and we were both dressed for Santa Fe’s 30s it was only logical to venture there to cool down. Pia skated for almost an hour and afterwards we had a snack and walked around for a while.

At 2pm local time we took another cab back to the airport and waited for our return flight, which, of course, had to experience technical difficulties and was delayed for 1.5 hrs. After a quick stop in Dallas and exchanging passengers there we arrived back home a little bit over an hour late.

Come 8:30pm Pia was in her own bed and it was quiet soon after.

If I sum up all the costs for plane tickets, passport fees, hotel, food, taxi, etc. our passport renewals clock in at $1300!!!

Nov 7 2013

Google Voice: this alone was worth the switch

Just recently I told Verizon to port my Home Phone Connect number to Google Voice. Home Phone Connect used to be my “land-line”, which in fact was a stationary 4G connection. It is a 4G device, but it’s supposed to be used stationary. Home Phone Connect worked fine for me for a couple of years, but there were a bunch of things that were annoying me:

1) Unsolicited calls: I hate getting these calls (who doesn’t?) and I felt that Verizon did not give me the necessary tools to avoid them. My phone number has been on the National Do Not Call List since its inception, but that does not seem to stop anybody. My wireless phone inside the house had the ability to block certain numbers, but what do you do when there’s no Caller-ID information and thus no number to block?
Since I switched to Google Voice, it’s a lot more quiet. The same unsolicited calls still arrive, but instead of making even a single ring on any of my phones, calls with no Caller-ID, fake Caller-ID or from known spammers are sent directly to voice-mail. I also added a few, legit numbers manually, which now get the same treatment: if it’s important that you get in touch with me, you sure will leave a message – nobody ever does.

Oh, and here’s my friend “Unknown”. He’s been calling for the past 6 months like clockwork around 10am every day! No number, no name – nothing to identify the caller. Prior to Google Voice I would just left the phone ring and now I see his entries under “Missed Calls” in Google Voice, if I care to look there:

Unknown Caller

2) International Calling Rates: I call Germany quite regularly. For a monthly access fee ($3.99) Verizon gave me access to lower rates via their “International Long Distance Value Plan”. Calls to a German landline are $0.07/min using the Value Plan and $1.49/min without it (no, this is not a typo). Talk for an hour and it’ll set back $4.20, which is not too bad.
Then I ran across Google Voice’s International Calling Rates … Their standard rate without having to sign any gimmicky Value Plans is $0.02/min! For the $3.99 access fee at Verizon, I can talk already 3.5 hrs with Google Voice. Do I need to say more?

Oct 31 2013

This is why I quit CNSP

For a long time now, CNSP was my ISP. I switched to them about 3 years ago, because they offered good speeds at a reasonable price. The first years everything was fine and I was happy with the service. Early last year the service went downhill: connectivity was bad and I would hear from my colleagues about it during video/audio conferences. Every attempt to have CNSP fix the situation was fruitless. In April last year I finally had enough and installed a 2nd wireless link through Cybermesa. I configured my router to do load-balancing and fail-over using the two Internet connections. That same router is constantly pinging the two ISPs to determine whether a link is up and usable: every few seconds packets are sent and the router collects information about the transition time and packet loss. Here’s the chart for typical day (10/14/2013 to be precise):


The grey stuff on the top represents the response times. The bloody red stuff on the bottom means packet loss. Packet loss occurs when something between me and CNSP goes wrong and data sent from my location does not get a response from the ISP. What’s graphed here are pings, but what it means in reality are websites not loading, Netflix pausing and other weird situations. Very often I would instruct my router to completely switch off CNSP, because I could not get a reliable connection.
Cybermesa and CNSP are using almost the same wireless equipment. CNSP’s radio tower is closer to my home than Cybermesa’s. To contrast things, here’s the same quality chart for my Cybermesa connection on the same day:


Uniform response times which are a fraction of CNSP’s and virtually no packet loss.

Things got really bad in May/June last year with service becoming unavailable completely. Despite my emails/calls, I was always told that the problem was on my end and when they finally sent somebody to take a look at my wireless equipment, it turned out that I was right all along and that my radio needed to be replaced.

A few weeks ago I sent email and asked them to fix the constant issues with my connection, otherwise I would have to cancel service with them. When I did not receive a response after 4 days I pulled the plug.

Jun 4 2013

Getting plastered

Work on my home finally started on 5/6/2013. I hear they are almost done with the plaster work and then they need to attack the floors. I moved temporarily to a rental house at the end of Las Campanas. Here’s the situation at my house as of a few minutes ago:

Plaster work

May 2 2013

How a water meter is made

Just a little while ago I told you that I had left Adobe and joined Aquacue full-time.

Well, guess what? I have yet another, new employer.

Soon after I started at Aquacue, the company was bought by 100+ y/o Badger Meter Inc of Milwaukee, Wisconsin. I’ll be doing the same thing that I did for Aquacue, just under a different company name. This week I had the distinct pleasure to meet Richard Meeusen, Badger Meter’s CEO. He explained his philosophy and vision for the future. He also shared the following video with us, where he explains how a water meter is made:

Apr 23 2013

pfsense + havp + clamav

I know I write a lot about my pfsense router, but one can’t write enough about it given the rock-solid performance and awesome feature set.

Yesterday and this morning I installed a new package on the router which implements a transparent proxy to scan downloaded files for viruses.


Remember this is sitting on the router, which means that every single device in my home is automatically protected. Each and every request is now scanned using the Clam Antivirus scanner, no matter whether those requests come from Macs, PCs or handheld devices. The package is configured to download new virus/malware signatures every few hours. That, combined with AV software on individual machines leaves a warm and fuzzy feeling.

Apr 12 2013

I find this strangely amusing …

Original at https://www.youtube.com/watch?v=FHHp5cVQ5yw

Apr 8 2013

Bye, Bye Adobe – Hello Aquacue

I waited a while with this post, because … I don’t know why. December 31st marked my last day at Adobe and January 15th was my first official day at Aquacue. It’s time to jot down some details before I forget them.

In late 1993 I received a call from a German headhunter. She told me that there was an interesting position at the European headquarters of an American company. She could not provide a lot of details and suggested that I should just for an interview. At that time I still worked for Siemens in Munich through another consulting company. Things were slowing down there and rumor had it that Siemens wanted to cut down on all those “expensive” consultants. The time was right to make a move and I decided to go for an interview at the German subsidiary of Adobe Systems Inc.

I remember the interview vividly: then head of European operations, Micha Moses, interviewed me to the point where I was convinced that I did not stand a chance for the job. I recall getting out of the room half an hour later and telling myself: “What the f*ck was that?”

Needless to say I was even more surprised when the headhunter called me again and told me that I was invited for a 2nd round of interviews in Amsterdam, because I made a good impression during the first interview. I knocked out quite a number of other candidates and got the job. Early 1994 I took a one-way trip from Munich to Amsterdam.

For the next 3 years I would live in an amazing apartment on Brouwsers Gracht in Amsterdam (if it wasn’t for the stairs) and work at Adobe’s headquarters south of town. The years were filled with Postscript training classes, helping European printer manufacturers to implement Postscript on their devices and working on the Postscript codebase in general. I don’t know how much I traveled, but it was a lot. Almost every week I was on the road to one or another European city. I most cherish the time I spent in Barcelona working with Hewlett-Packard. I helped them with their Postscript implementations while they helped me to understand Barcelona’s night life (remind me about the time I met some of the HP workers for dinner at midnight).

In 1997 I arrived at a point where I could not see myself advancing in the flat organization of Adobe Europe. I told my manager that I needed something “more” and that Adobe Europe could not provide it. He agreed and allowed me to start looking for a new job. It took a few hours before I received a call from Adobe’s HQ and was asked whether I would be willing to relocate to the US and work for the company there. I thought about the offer for a while (well, hours) and accepted it.

Early 1997 I took another one-way trip, this time from Amsterdam to San Jose. I still remember Amsterdam disappearing below the clouds as we departed from Schiphol Airport, sipping a glass of Champagne (thank you, Royal Wings, for the complimentary First Class upgrade).

For another 4 years I would work on Postscript and create Adobe’s first pay-for online service (https://www.acrobat.com/createpdf/en/home.html). In 2001 I had enough of the Bay Area and decided that I needed a more quiet, open environment. I told my manager that I would move to Santa Fe, NM no matter what. Adobe was willing to give tele-commuting a trial and I was allowed to work from my home here.

Things seemed to work out and I was granted permission to work permanently from my home(s) in the desert. For 10 years I worked in a number of different roles on Adobe’s online offerings. All I needed was a fast, reliable Internet connection to do my work (“reliable” is still hard to come by, even in 2013, as far as NM is concerned).

Over the past few years I came to the conclusion that my time at Adobe was coming to an end. I was doing the same stuff over and over again under different code-names. I started to get bored and I did not see a way out of it. I was in long-term relationship that gave me everything I needed, but I did not feel satisfied.

Luckily I had kept in touch with ex-colleagues and one of them offered me a position at a start-up company in Los Gatos.

In September 2012 I told my manager at Adobe that I would leave the company at the end of the year. I always hated it when others left from one week to the next and I thought it was fitting to give my employer enough notice about my departure. That allowed me to clean up behind me (well, almost) and transfer knowledge where necessary. 12/31/2012 marked my last day.

Adobe was good to me, very good in fact. I learned a lot there and met some incredible people. If you ever get a job offer from them, please accept it – you won’t regret it.

Now I’m working with just a handful of people passionate about water conservation and I feel I can make a real difference in areas that matter in this world …