Saturday, December 24, 2011

Year-end Letter

Hello all! In the revered tradition of year-end updates on our lives, we'd like to let everyone know how Drek, Child, and Ash are surviving the punishing, temperate climate of California.

Hanging Christmas lights in the dead of San Diego winter
In a year full of raising a kid, buying a house, and holding down a job, our family's crowning achievement, of course, was getting chickens. Four of them, although only one seems to be laying eggs, and then only once every few days. A few days ago, another chicken made a half-hearted effort leading to a marble-sized egg which was more of hors d'oeuvres than a meal. Lazy chickens. Little do they know that their carefree, freeloading era is near its end. As the old saying goes, "An egg in the fridge is worth two in the chicken." Those who don't produce end up as dinner. Or so Drek's boss tells him on a regular basis.

Speaking of 5D Robotics, Drek has managed to hold down a job for a full year. Even better, he's quelled nearly all the robotic revolutions he's instigated. For those worried about robots taking over the world, don't be—the end will be swift and painless. The company is doing well, having moved to a larger building nearly a 400 foot trek from the old one. The “big bay” itself in the new building is nearly the size of our old digs, with plenty of room to get a robot up to speed before slamming it into a closed door (protip: laser rangefinders do not handle highly absorbent paint well).

As winter approaches, Drek misses his yearly tradition of snow cave camping, but he's taking what solace he can in weekly visits to the beach or early morning outings to the neighborhood Frisbee golf course.
 
Child spent 2011 taking care of a Sunday School class of fourteen teenagers, a new house, a ten-year-old car, a two-year girl, and four chickens. It's totally understandable how confusions could arise, with the occasional chicken sitting up for dinner at the table or Ash locked in the chicken coop on one of her “spirited” days.


The most beautiful woman in the world
Child and Ash took the brunt of the enjoyment of the aforementioned zoo passes, visiting once a month at least. The passes also gained them access to the Safari park, which supplies much of the animals to the San Diego and other zoos.

The future of Humanity
The zoo is located near La Jolla, yet another of the beaches that dot the California landscape. At La Jolla, Child and Drek got to experience scuba diving for the first time, at which Child excelled but which involved a little too much water for Drek's taste (Drek prefers his beaches above sea level and boat engines not leaking oil slicks into his mouth). As beginners, they stayed in a shallow, churned-up lagoon, the theory apparently being that the less visibility there was, the more likely they'd be to want to return in hopes of actually seeing something. They did see a few fish close-up, but they were chance meetings in the murk and as much of a surprise to both diver and fish. Still, they (Drek and Child, not the fish) enjoyed it enough to probably attempt it again—preferably somewhere tropical.


Scuba diving (brochure picture)

Scuba diving (actual picture)
One of Redacted's primary accomplishments was buying their first house. Having had enough of wall-sharing neighbors testing their sound systems at 11 pm at night, upstairs dogs peeing onto their porch, and walking through a fog of cigarette smoke on their way to their car in their Sunday clothes, they decided to leave that world behind for the relaxing, care-free life of a home-owner.
Listing photo of new home in Vista, CA (lawn photoshopped in by real estate company)
The first month in their home, they received a visit from a representative of the water company. They were informed that their home was using enough water to supply a small village and that if they weren't, in fact, operating a clandestine water-park, they might want to get that looked at. As they found out, their home was leaking water underneath the cement foundation, which according to the plumber was “a mite hard to get to.” That's plumber-speak for “we're just going to cut off your pipes at the foundation and route everything through the ceiling instead,” or more succinctly, “Looks like I'm going to Hawaii this year.” Three days and one vacation package to Hawaii later, the Redacteds were able to shower again and reestablish social contact.

A few days later, cleaning up the backyard became a priority when the next-door neighbor asked if the Redacteds were growing marijuana back there (no). A few days later, Drek met the back-fence neighbor and mentioned this anecdote to him with a laugh. The back-fence neighbor didn't laugh. “I grow marijuana. For my injured back, you know. But never around the kids.” Oh, good.

Interesting aspects to home-ownership aside, it's been enjoyable having a garden, chickens, and yes, neighbors at property-line distance. Our backyard is big enough for tents, so everyone is welcome to visit, as long as they don't mind the possibility of a chicken slipping into their sleeping bag with them.

Friday, December 16, 2011

This may be the height of nerdiness, but the sheer length and impenetrableness of the following compiler error message amused me so much I decided to post it.

Yes, it's a single error message, for one line of code:

error: no match for ‘operator&&’ in ‘behaviorOption.std::_Rb_tree_iterator<_Tp>::operator* [with _Tp = std::pair<const int, std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >]()->std::pair<const int, std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >::second.std::map<_Key, _Tp, _Compare, _Alloc>::find [with _Key = std::basic_string<char, std::char_traits<char>, std::allocator<char> >, _Tp = std::basic_string<char, std::char_traits<char>, std::allocator<char> >, _Compare = std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, _Alloc = std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >](((const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)(& std::basic_string<char, std::char_traits<char>, std::allocator<char> >(((const char*)"reportParams"), ((const std::allocator<char>&)((const std::allocator<char>*)(& std::allocator<char>()))))))) && std::operator== [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>](((const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)((const std::basic_string<char, std::char_traits<char>, std::allocator<char> >*)behaviorOption.std::_Rb_tree_iterator<_Tp>::operator* [with _Tp = std::pair<const int, std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >]()->std::pair<const int, std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >::second.std::map<_Key, _Tp, _Compare, _Alloc>::operator[] [with _Key = std::basic_string<char, std::char_traits<char>, std::allocator<char> >, _Tp = std::basic_string<char, std::char_traits<char>, std::allocator<char> >, _Compare = std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, _Alloc = std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >](((const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)(& std::basic_string<char, std::char_traits<char>, std::allocator<char> >(((const char*)"reportParams"), ((const std::allocator<char>&)((const std::allocator<char>*)(& std::allocator<char>()))))))))), ((const char*)"true"))’

"Oh, yes, I clearly see what my mistake was.  Using the C++ Standard Library."