Monday, December 27, 2010

New Year Goals

It's amazing how much I consume. Food, media, entertainment, services, etc. After far too little thought, my goal for the new year is to become a producer. Following is a list of what I regularly consume, and therefore am going to attempt to produce:
  • Movie
  • Novel
  • Board game
  • Web service
  • Web game
  • Short story
  • Children's book
  • Food
This is just my initial thought; I'm open to suggestions if I'm missing something big.

I'm not planning to impose any personal standard as to level of quality or usefulness. For example, the movie will most likely be produced using a handheld camcorder with few props and less experience. On the other hand, I will likely put more effort into coming up with a fun board game and writing a good story.

To carve out time for my effort and limit distractions, I'm going to (not) do three things over the next year:
  • No TV
  • Only watch movies with wife
  • No browsing news websites after dinner

Wednesday, December 15, 2010


Exactly what part of the confirmation number "JDHXCV" is actually numeric?

Sunday, December 12, 2010

I liked this quote: "If you're unwilling to take the difference between a comma and a semicolon seriously, you have no future as a software developer." --jc42

Tuesday, December 07, 2010

Sweeping Science

Sweeping every religious belief under the umbrella term of "religion" is like grouping astrology, alchemy, homeopathy, and economics with real science. Sure, you'll find people that believe it, but that's hardly a reflection on the scientific community in general.

At best, extrapolating your average Christian from Pat Robertson and Fred Phelps is unfair. Worse, it's disingenuous. Calling religion "bad" because of their ilk would be like dismissing all science because of what Dr. John C. Cutler or Dr. Eduard Wirths did.

Goose, meet gander. Let's all play fair.

Wednesday, December 01, 2010


When a problem occurs, how do I respond? Do I ask: "Whose fault is this?" or do I ask "Whose problem is this?"

Those questions lead down very different paths. The first leads to blame, recrimination, and abdication of personal responsibility. The second leads to a solution.

The answer to the first question varies widely. It's occasionally "Mine." Regardless, it's not particularly helpful for finding a solution.

The answer to the second question is always "Mine." If Slugger McHurty is beating me up in a dark alley, the problem is not that he's a maladjusted member of society with a punching addiction, the problem is that I'm getting hurt.

By taking the point of view that every problem is my own (albeit not caused by me), it becomes clear that every solution is going to involve some sort of change on my part. Slugger's not going to change--he's having a great time. Why, this is the most fun he's had since he stole a lollipop from that baby two days ago. Instead, I'm the one who is going to have to do something different. Run, fight, or if nothing else is possible, adopt an optimistic mental attitude and watch for signs of Slugger tiring.

My goal for the next problem I face is to not ask, "Whose fault is this problem and how can they stop causing it?" Instead, I will ask, "What is my problem, and what do I need to change to deal with it?"

Tuesday, November 23, 2010

Sunny California

Sure, we went to the beach a couple days ago. Sure, it was so sunny and warm I was in my short sleeve shirt. Sure, Ash ran around in her shorts.

I still wish I was back in Utah for the upcoming snow storm. I lived there ten years--and Child lived there her entire life--without seeing a snow day. And here BYU is closing.

I'm jealous.

Monday, November 22, 2010


For the past little while, I've been focusing my scripture study around questions, such as:
  • How do I increase my power in the priesthood?
  • How do I recognize the Spirit better?
  • Why are there so many tree parables in the scriptures? (Judges 9, Daniel 4, Matthew 13, Matthew 21, Jacob 5, Alma 32, 1 Nephi 8, etc.)
It's interesting to see how the answers to all these questions (except maybe the tree one) universally return to the foundations of the gospel. Study and ponder the scriptures. Pray sincerely. Improve your personal righteousness in the little things.

At the end of the day, the gospel isn't complicated. It's not even particularly hard, it just requires steady, constant progression. Focus on that, and you'll be presented with a wonderfully diverse bouquet of spiritual enlightenment.

Sunday, November 21, 2010


This blog post has a happy ending.

I have to say that up front, because otherwise it would just look like my annual anti-holiday rant. Don't get me wrong, I don't consider myself a grinch. I enjoy the opportunity holidays offer for quality time with family and friends, games, relaxation, and even a little personal self-sacrifice for the good of everyone.

But honestly, how often is that the way it really plays out? Some sacrifices are necessary, I understand that. You can't usually have family-togetherness-time without shelling out for plane tickets or gas and traveling for hours with squalling kids. However, I feel that much of what we burden ourselves with over the holidays is unnecessary, commercial, and downright detrimental.

So here's the two questions:

1. How many people complain about how commercialized the holidays are?

2. Now how many people do something about it: i.e. stop commercing?

Although Christmas is the prototypical example, let's look at Thanksgiving, since it's the next holiday coming up. I actually think Thanksgiving is one of the least commercial holidays on the calendar. Sure, commercial interests push all sorts of food, but you're going to eat on that day regardless. Still, the holiday seems all about fiddling on the roof, without really stopping to think about why we're up there in the first place.

The reason, of course, is thanksgiving, quality time with family and friends, and happiness. If you can achieve all that while spending days preparing, cooking, and cleaning up after a giant meal, more power to you. If you can do it without subjecting those around you to a choking haze of stress-induced freneticism, even better. One problem: you still haven't even asked if preparing food, cooking, and cleaning is the rest of your family's idea of a good time.

Not to detract from the work that so many people put into maintaining Tradition (and the fond memories I have of my own family's Thanksgivings growing up), sometimes it's worth stepping back and determining of new traditions are needed. If you don't like turkey, cooking, cleaning, or spending large amounts of money, and your wife doesn't like any traditional Thanksgiving food and happens to think that Thanksgiving celebrates gluttony and killing Native Americans (not necessarily in that order), then why in the world are you having a traditional Thanksgiving?

Which is why our family is not this year.

Rather than wake up at 2 AM to put a turkey in the oven, we're going to sleep in as late as Ash lets us. Instead of making an endless succession of cranberry, bread, and vegetable dishes, we're going to order pizza. (And open a can of olives and cranberry jello.) With the time saved by not cooking, we're going to spend quality time with Ash at the playground, followed by some disc golf. Later that evening, rather than washing dishes, deboning poultry, and trying to fit leftovers in the fridge, we're going to play board games.

There's obviously trade-offs. There will be no delicious cranberry, bread, and vegetable dishes. There will be no pie unless we decide to buy one. There will be no turkey wishbone. However, these are traditions I'm willing to give up to create new ones that I think fit our particular family situation better.

My hope is that some of our local friends and family will join us for pizza, disc golf, boardgames, or some subset of those activities. I believe that strengthening relationships is one of the key aspects of a holiday. However, I understand that they might want to stick with their traditional Thanksgivings. We'll see. Either way, I think we'll be doing our part to turn our personal observance of the holiday back to its foundations.

Tuesday, November 16, 2010

Caulk Fighter

I've always wanted a caulk gun, ever since I was a little boy watching my father apply that smooth white bead to any sort of crack you cared to name.

Well, I finally got an excuse to get one. We've had ants on our kitchen counter, under the kitchen sink, and oddly enough, the top of the shower. After a little investigation, it appeared that the ants on the kitchen counter and under the sink were related, and appeared to be coming from a crack under the sink. The ants in the shower were coming from a hole in the top of the shower.

One trip to Home Depot later, the crack and hole are history, and hopefully the ants are too.

Actually, to be honest, I'm sorta hoping the ants aren't history. I want to caulk more cracks.


Ash's box of 24 crayons is down to 16. Given that she received it two months ago for her birthday, that's a monthly CDR (Crayon Dissipation Rate) of 16.667 percent, roughly.

Thursday, November 11, 2010

Borscht borscht borscht!

Holy cow. I didn't know beets could be so delicious. Child just made the most amazing borscht, and topped with sour cream with a side of focaccia bread, it was the most delicious meal I've had in a long time.

Friday, October 29, 2010

Robotic Rodeo -- Day 2 -- Somebody taunted murphey

The day started out early--about 3 AM Pacific time. We headed straight to Fort Benning to set up for our demo in the chilly morning air, fortified by a breakfast of soggy, lukewarm egg muffins.

From that high point, the day rapidly went downhill. The radios, which had worked so beautifully the day before, gave up the ghost with a vengeful permanence. If I had known at that point that it was simply the first taste of what was to quickly come, I might have followed suit.

The demo was at 10:30, a couple hours away. At first we didn't panic, assuming that the radios could be resuscitated. As time ticked away and radios remained stubbornly silent, however, the Antenna Products people became more and more frantic. A team of heart surgeons racing to beat a rising flood wouldn't even have approached their intensity. We were working on issues of our own so we couldn't watch, but Davin kept us updated on their progress. It went something like this:

"They're checking the connections."
"They're checking the linux kernel."
"They're reinstalling linux."
"They're opening up the radios."
"They're checking the circuit boards."
"They're replacing the circuit boards."
"They're stomping on the radios."
"They're rebuilding the radios from scratch."

The Antenna Products people were under a lot of stress, and Davin finally decided to stay at our own booth after one too many over-the-shoulder suggestions got him threatened with a fist to the face (these were big Texas guys). I don't think the guy was joking, either. At one point, one of the Antenna Products guys came over and said that the boss had just fired two people back home.

Like I said, though, we were dealing with problems of our own. For some reason, an ugly bug had chosen that morning to rear its head in our code. I finally had to give up working on that because we had to attempt to implement our fall-back comms solution: off-the-shelf wireless Internet.

Since we hadn't worked with it hardly at all, and we were down to our last few minutes before the demo, that predictably didn't go well and we finally gave up on that as well. What we didn't realize until later was that most people were having communication issues, due in part to the sheer number of people in the same tent all trying to use the same frequencies.

Also, it didn't help that someone had brought a massively overpowered radio that was drowning everyone else out. That was our suspicion by that point (confirmed later) and Davin got the person-in-charge to make an announcement over the PA for everyone NOT doing a demo to turn off their radios, but of course the vendor didn't. Their comms worked great.

The time for our demo to start came and went with us still trying to get a robot working. We finally gave up on the comms and simply planted our robot at the front of the demo area. If nothing else, we could demonstrate how you could plug and unplug two different sensors and they would automagically work.

Except one didn't. As we discovered later, the actual cord for the sensor had gone bad. The cord. When was the last time you ever saw a cord go bad? That's right, never. It just doesn't happen. Davin glossed over the issue as best he could, but at the end of the day it was a totally disastrous demo. The one tiny saving grace was that most of our audience was just a busload of school kids who had been trucked out to look around, and they don't usually have fat, multi-million dollar contracts to give out.

The rest of the day was spent working over radios, robots, and sensor cords. By evening time, everything was coated with dust and we were all hungry and tired, but at least the radios were starting to work. Mostly due to everyone else going home and freeing up the airwaves. We finally packed up and followed suit. Davin had pushed off all the unofficial demos he had promised people to the next day, so it would be a late night. Hopefully, the next day would be better.

Wednesday, October 20, 2010

Robotic Rodeo -- Day 1 -- Setting up

Wednesday was setup day. The rodeo was held right on the military base, with the building-sized tent set up on an old firing range, to judge from the number of empty shell-casings that littered the ground. I contemplated throwing a few of them into John's backpack, just to make things a little more exciting when he tried to go through airport security on the way home, then thought better of it. If he were wrestled to the ground and tazed, it might hold up the whole security line and I'd miss my flight as well.

The tent had probably 50 booths, otherwise known as "folding tables." Since our company had turned borrowing other companies' equipment into an artform (our robots, laptops, radios, pretty much everything but the code we brought had been bummed off someone), we saw no reason to stop at the rodeo and talked AMREL, a laptop company, into letting us share their booth. We were even generous enough to give them one of the two tables on the second day.

Over the course of the rodeo, we borrowed additional robot parts from Segway, tools from AMREL, and additional antennas and radios from Antenna Products. We took AMREL's demo slot (you can't really demo a laptop, right?) and crashed the last 10 minutes of one of Segway's demo slots. In the afternoon, Davin talked AMREL into buying us lunch.

I felt a little bad about all our mooching, especially since it was more of a cycle than straight-up borrowing. We'd take one of Antenna Product's radios, break it, give it back, and borrow the next one at the same time. They could barely fix their equipment fast enough to keep up with us. Davin had to promise them ever-increasing future profits from our partnership just to keep them from beating us with wrenches.

The two robots we took to the rodeo, sans all their radios, laptops, and other hardware accoutrements
Left to right: Segway RMP 50, Segway RMP 400

By the end of the day, however, everything was looking rosy. With the help of Antenna Products, who made the radios, we got the RMP 400 to venture further from Home Base than he ever had before. The laptops were in fine form and the computer programs had brought their A-game. Our first demo was at 10:30 the next morning and our confidence was high.

There was one thing we forgot to take into account, however: Murphy's Law. We would discover three things the next morning.

1) Having an early demo slot is a bad idea. If something goes wrong, you have no time to fix it before showing--or not showing--your demo to top military and civilian leaders whom you've specifically invited.

2) It's a lot easier to make your radios work when there's not 49 other companies trying to make their radios work at the same time. Especially if one of them is nefarious.

3) Working radios are kinda essential for a good demo. When your robot is tethered to your control computer with a three-foot cable, it's hard to explain the advantages of your system to, say, a bomb-disposal technician.

If you've got an iron stomach and don't mind a little carnage--at least someone else's--tune in tomorrow for the next compelling segment in our ongoing saga: Robots Gone Wild: How Boeing Almost Lost Their Entire Robotics Team to a Crazy Robot From 5D Robotics, Inc. Fortunately, the Driver Managed To Evade the Military Police, Since I Really Didn't Want to Spend the Next 10 to 15 Years With Three Off For Good Behavior at Fort Benning, Charming As It Is.

Also, we need to talk with our saga-naming people.

Tuesday, October 19, 2010

Latest project: robotic bike

Our latest project at work has been robotizing a bicycle. Here's what we have so far:

Sunday, October 17, 2010

Robotic Rodeo -- Day 0 -- The Seventh Carry-on

Tuesday morning, three of us from 5D Robotics, Inc. arrived at the San Diego airport. Our destination, by way of the Atlanta, GA airport, was Fort Benning, GA. Our mission over the course of the week was to demonstrate 5D Robotics' capabilities at the Robotics Rodeo.

Everyone knows that a trip of this importance does not go flawlessly. We got things off to a quick start.

You have to understand that the three of us arrive at the airport with 11 items of luggage in tow. Two suitcases or carry-ons each, two large crates of equipment, a carry-on-sized battery charger for military-spec batteries, a banner in long tube, plus a Segway robot. Even after checking what needed to be checked, we had six carry-ons between us. It should be understandable that a little confusion might arise about whose luggage belonged to whom and what exactly we had in tow.

Going through TSA security, John (names have been changed) is pulled aside. He's carrying the battery-charger as one of his carry-ons and that many wires and electronics in a military-green case is a little suspicious. He's taken to a nearby table for interrogation and trying to expedite our traveling, Davin takes a suitcase off the conveyor belt that he thinks belongs to John.

John is finally released by TSA and Davin hands the suitcase he grabbed back to John. John, of course, thinks that the suitcase belongs to Davin, and that Davin was just trying to pawn the job of carrying his luggage off on him. "Why does Davin even have three carry-ons?" John wonders to himself. "He's a Platinum member of Delta's frequent flier program. You'd think he'd learn to pack lighter." Being the nice guy he is, though, John says nothing and takes the suitcase.

We reach the gate, seven carry-ons in tow. Being a Platinum-level member of Delta's frequent flier program, Davin has a seat in the first-class section while John and I will slum it in coach. First-class people get to board first and as they are invited to come forward, John finally tires of lugging Davin's third suitcase. "Here, take this with you," John says, shoving the suitcase at Davin. "Being first-class, you'll have an easier time getting three carry-ons past the gate agent than either of us."

At this point, Davin thinks that John is now trying to pawn his luggage off on Davin, but he takes the suitcase anyway. The gate agent manning the microphone sees Davin coming with his three carry-ons and quickly makes an announcment--"We remind our passengers that there are only TWO carry-ons allowed per passenger"--but it's too late. Pretending not to hear, Davin gets past the ticketing agent and is free.

Arriving in Atlanta, Delta does its best to give us all heart attacks by cleverly moving our equipment crates from the regular baggage carousel to the oversized-baggage area, but we finally locate at and load it into our rental minivan. We drive for an hour and a half down to Columbus, GA, finally arriving at our hotel late at night. As we unload the minivan, John turns to go inside with a single backpack in hand. This is too much for Davin. "Do you want to take your stupid suitcase?" he asks, shoving the seventh carry-on at John.

John looks at it. "It's not mine," he says. Davin looks at me. "It's not mine," I quickly say. Davin frowns. "It's not mine," he says.

We stole someone's luggage. From security.

We take the bag up to my hotel room and start digging through it. We don't see any identification on the outside (Owner: "It's a carry-on! There's no possible way it could get lost.") and there's nothing inside but a stack of brand-new clothing with tags still attached and, inexplicably, a complete roll of about 5o Hefty trash bags.

Doing a second inspection of the outside of the bag, I finally notice a tiny scrap of sticker left over from some long-past flight with the name "Doe/Jane" on it. Since we took the bag from security, we don't even know which airline the person may have been flying, so I just call Delta.

It takes several minutes to get across to the baggage claims lady that we were in fact trying to return luggage rather than looking for a lost bag of our own, but she finally understands. "Well, just bring it back to the airport when you fly home," she says. Since that won't be for another another three days, Davin gets online and starts searching for every Jane Doe he can find. There are several, so he sends emails to the most likely ones.

One of the Jane Does, according to Google, ran a 17-minute mile in some race, which might explain her lack of catching up to us if she was, in fact, the one we had stolen the bag from. "Wait!" she calls out in her wavery voice, shuffling after us with her walker as we casually stroll off into the distance. "Come back with my suitcase! It has all my trash baaaaaagggggs!"

Anyway, by that time it is late and we are tired. "The day could have been worse, though," Davin points out. "Someone could have stolen our bags instead of vice versa. At least Jane Doe has the clothes she's wearing, and you can pick up trash bags practically anywhere. We wouldn't get very far at a robot demo without a robot though."

As we would find out the following day, however, there are more things than just losing a robot that can make a presenter start sweating at a robot demo. Stay tuned for the next installment of "Murphy's Law: An In-depth Exploration."

Sunday, September 12, 2010

Nothing like a good addiction to while away the hours...

If ever there was a time to give up smoking, you'd think it would be when you were trapped half a mile underground with limited ventilation, limited diet and exercise opportunities, and other people who might not share your same opinion of the health benefits of cigarette smoke.

Apparently not.

According to CNN one of the first requests made by 33 miners trapped 2300 feet underground was for cigarettes.

Tuesday, August 31, 2010

Credit Scores

Child has an excellent credit score, but no income.

I have an income...but as we found out today, no credit score. Not a bad credit score, just no credit score. Apparently credit cards don't build your credit if you're responsible and pay them on time, and (car) loans over seven years old don't count.

That leaves us with basically four options as far as obtaining a house goes.

1. Wait a year to buy a house while I build credit by taking out loans I don't need and paying interest I don't want to. Note that credit scores are a black box, so this isn't actually guaranteed to give me a credit score.

2. Wait a year to buy a house while we save enough money to put down 20% on a home, jump through all sorts of crazy hoops to prove to our mortgage lender that I'm a responsible buyer despite the lack of a credit score, then almost double the amount of interest we pay on our mortgage.

3. Save money until we can pay cash for a house. Note that this would actually be our daughter's house, since given California prices, Child and I will be kicking the bucket about the time we finished saving. Since the plan is for Ash to be supporting us in our old age, not vice versa, this option is out.

4. Steal one under cover of darkness and move it somewhere convenient like the beach, or perhaps my work's parking lot. I'd have to look into how much it costs to hire someone to move a house though. And they'd probably run a credit check.

Friday, August 27, 2010


I'm teaching Ash the alphabet backwards, but I'm thinking about teaching her the numbers backwards also. We'll start at infinity and work our way down.

Wednesday, August 25, 2010

Writing Meeting

So I finally found a writing group locally and attended a meeting last night...and this morning.

Yes, it went that long.

Pros: nice people, decent critiques.

Cons: I arrived at the meeting at 7:30 p.m., and got home at 1 a.m.

When I arrived, it was only the host and I. My first irritation was that it was 15 minutes after the meeting was supposed to start that the next person came in, and 45 minutes or more before most of the people had arrived and we actually started the meeting. Apparently this wasn't uncommon. From the joking as people straggled in, I gathered this was the usual modus operandi.

The second major irritation was that it took five hours to critique what every other writing group I've attended has done in two. The problem started because we didn't get each other's entries ahead of time. Each person showed up with their submissions and started by reading them aloud at the meeting. Seven submissions, ranging from two pages (mine) to six or seven pages, and you're talking probably 45 minutes just for the reading alone.

Without any advance preparation, you're critiquing on the fly, which is inefficient and doesn't allow for any sort of thought-gathering or organizing, which means most critiques were stream-of-consciousness. Throw in one or two people who like to ramble, and there was a very low signal-to-noise ratio.

That said, the critiques were good enough, but again, nothing that couldn't have been accomplished in half the time with a little more organization.

I'm not sure I'm going back. The usefulness of the critiques didn't really seem to outweigh the late bedtime and frustrating meeting procedure. Maybe I can find another group that follows the sort of format I'm a little more appreciative of...or perhaps start one.

Saturday, August 14, 2010

You're kidding, right?

The above poll from astonished me. I can completely understand there being a huge variety of opinions about the wisdom of building an Islamic center near Ground Zero, but there should be no question as to whether they have the right. Isn't religious freedom one of the foundation stones of our country?

(Granted the poll is unscientific, and I wouldn't be surprised if many of the respondents confused the "right" to build an Islamic center there with it being a "good idea" to build an Islamic center there. If that's the case, though, then I can rant about the poor comprehension skills of poll respondents.)

Friday, July 30, 2010

Slow down there, big guy!

Today I biked from our new home to my new job for the first time. According to Google Maps, the route I took was 5.1 miles, which isn't terribly far, but the terrain is very hilly. A lot of ups and downs. I was planning on it taking about 45 minutes, so I allotted an hour, but managed to make it in about 30 minutes. Not nearly as bad as I was afraid it would be.

Of course, it was overcast, calm, and a cool 65 degrees, but even when we get to the hot summer weather it shouldn't take longer, just be more uncomfortable. (Mostly for my coworkers, since they'll have to smell my sweat.)

A few blocks before the office, there's a giant hill. As I approached it on my bike, I glanced up to the snowcapped top, where I could see wispy clouds and giant condors slowly circling. (I might be exaggerating: they were probably just vultures, lying in wait for hapless bikers foolish enough to challenge the hill.)

Anyway, I was halfway up the hill, in the lowest gear, barely going fast enough to keep from falling over, when I saw one of the giant snails that I've been noticing since we moved to California. I kid you not, my first thought was: "At least I'm going faster than him."

Pretty sad.

P.S. I called the snail "him" because only a guy snail would be stupid enough to set off on a trek across four lanes of traffic when your top speed is 6 inches/hour. He wasn't even at a crosswalk.

Tuesday, July 13, 2010


Sorry about more geek humor, but this made me laugh.

Today I was on an airplane, browsing through some third-party computer code looking for a particular programming function (a block of code that performs a given task). In the file I was looking in, all the functions manipulated strings of characters functions, so all of them were prefixed with "str," short for "string," and pronounced "stir."

I passed such functions as strcpy (copy a string of characters), strcmp (compare two strings), and strlen (get the length of the string), then I came across another one: strfry.

The description of the function? "Sauté string briskly."

It was so out-of-the-blue in the staid programming code that I started laughing. Even though it obviously wasn't the function I was looking for, I had to do a little more digging to find out what the function did. Apparently it randomizes the order of the letters in the string. Apt.

Sunday, July 11, 2010

Open Source Software

I love Ubuntu and open-source software. I love that I can download and install an entire operating system and a comprehensive suite of half an hour. For absolutely free.

Tuesday, July 06, 2010

5th of July

Yesterday, Child and I went to my brother-in-law's family's land to relax a little. While there, Child took Ash out on an inner-tube for a little casual floating around the pond. The water was freezing cold (so I heard; water isn't my thing, particularly freezing cold water), so most of the kids stayed on the inner-tubes.

Of course, the problem with that was that when Child started floating downstream, she could either get into the ice-cold water, or end up in the Gulf of Mexico. Due to logistical reasons (I was holding an iPhone) her husband was unable to save her, but fortunately my brother-in-law swam to her rescue.

Friday, July 02, 2010

TCPlease make up your mind

Sorry about the geeky post. People not interested in network protocols can skip it.

I was trying to figure out which network protocol (UDP or TCP) a robot was using, but I wasn't getting much help from the robot provider.

Email: Communication will be TCP/UDP (Can be TCP/IP if you prefer).
Documentation: Robot Control uses a standard TCP/IP protocol.
Code comment 1: This controller opens a TCP/IDP connection
Code comment 2: Waiting for data on port UDP

Half those statements don't even make sense. I finally had to look at the actual code to figure out that it was, in fact, using UDP.

Thursday, June 24, 2010

Long Week

Drive to Utah. Attend wedding reception. Attend baby blessing. Attend family reunion. Fly to California. Look for a place to live. Fly to Utah. Drive to Idaho. Attend wedding reception. Pick up extra baby for three weeks.

Whew. It's been an exhausting week. Let's start from the top.

The week began with my cousin's wedding. The reception was held in my aunt's back yard, and seemed to go very well. If there's one thing my extended family is good at, it's making up food for large numbers of people. It's a skill honed over years of family reunions, but even so I was impressed with the spread (can you tell I'm a guy?).

Child's one disappointment was that the fudgeballs on toothpicks turned out to be meatballs on toothpicks, but not before I rescued one that was about to go into her mouth (after first putting it there). The six chickens in the backyard also enjoyed the reception, or so I gathered from their delighted pecking at the continuous stream of food conveyed from the tables to their coop by numerous small children.

That was on Saturday. On Sunday, we attended the baby blessing of a small niece. She was very well-behaved for a two-week-old and the blessing went well.

That evening, we discussed the placement of two small children (1 1/2 years, 6 months) who are currently parentless due to their parents being in jail (for the umpteenth time). If anyone tries to tell you that drug use affects no one but the drug user, feel free to laugh in their face. I could probably list 500 people (by role, if not by name) whose lives were negatively impacted by the drug use of these parents.

Of course there's their children (who deal with physical and emotional neglect, if not abuse, which will probably destroy the rest of their lives, as well as future generations), their friends, parents, siblings, a constant stream of people they steal from to sustain their drug habit (including parents, friends, and family members), judges, lawyers (actually, maybe it's a positive impact there!), policemen, jail employees, drug program employees, religious leaders, landlords/motel employees...that's just off the top of my head.

I could rant on for several more paragraphs (and started to, before erasing it), but that's probably a topic for later. Moving on with the week...

Family reunion! For a change, the weather was sunny instead of rainy, but for some reason my extended family apparently has a fascination with alpine retreats. Just once I'd like to camp at an altitude lower than 8,000 feet. The scenery might be nice, but it's frigid at night. Not so bad when you're snuggled in a double-wide sleeping bag with your wife, bad when there's a baby sleeping between you who hates being under covers. Worse when your allergies kick in the moment you step out of the car, and apparently morph into some sort of cold, complete with fever and hyper-sensitive skin. Add to that the dry alpine air that dries your lips to the point that it hurts to smile, and you don't have a very relaxing vacation. Ah, the good ol' days of Missouri, with the warm air, warm lake, warm river, and chipmunks that don't pee on your air mattress...

But I shouldn't dog the family reunion too much. It was nice seeing everyone again, and...well, yeah, that's about it. When you're trying to deal with two squirmy kids, both of who need constant holding and one of which will stick any alpine detritus she can find into her mouth, everything else is mostly a blur.

Wednesday morning we drove to Salt Lake City, flew to Long Beach, rented a car, drove to Carlsbad, and checked into our motel. Kudos to Child for putting so much effort into our itinerary; everything went very smoothly. The company was paying for the trip, but in an effort to keep costs down we stayed at a Motel 6 for $55 a night. Granted, that price didn't buy us amenities such as a toilet seat lid, alarm clock, a working TV, or a continental breakfast, but they threw in morning coffee and the soothing sounds of the nearby interstate for free.

Our daily activities in Carlsbad consisted mostly of driving, eating, and looking at houses and apartments. We hooked up with a real estate agent who went far, far out of his way to accommodate our brief stay (I guarantee his commission, should we end up purchasing a house through him, will not have been worth it). We found a few possibilities, but I think we're going to end up just renting for a few months after we first move there while we continue looking. It's very hard to purchase a house when you're living in a different state, and I don't even want to try.

My mental view going to California was a picture that consisted mostly of traffic and gang wars. Although we didn't see any overt gang members, Child claimed she heard gunshots during one night and the traffic was everything I feared. Every road seemed crowded, and even though people complain about Utah drivers, they have nothing on California drivers. Because of the thick traffic moving at high speeds, if you have to change lanes, you just have to swerve out in front of another driver. The hope is that their car is enough more expensive than yours that they don't want to get in a wreck, and so slam on their brakes to let you in.

Returning to the airport Friday evening during rush hour on I-405, I found out why Karen (our GPS unit) had taken us by a toll road on Wednesday when we first arrived. Traffic was stop-and-go for about 15 miles on the regular interstate, adding about an hour to our travel time. Watching the estimated arrival time on Karen slowly converge with the departure time of our flight, I simmered in my juices and mentally kicked myself for trying to save the company $4.75 ($4.75 for a toll?! What is this, California?! Oh, right...) but it was too late to change horses at that point.

After exiting the interstate, we made sure to stop at every traffic light on the way to the airport. Finally reaching the airport, we hurled our rental car key at the Alamo people, sprinted to the JetBlue kiosk in the terminal...and found out that our confirmation code didn't work. Neither did scanning the barcode or looking up our flight by our credit card. A desk attendant called for people leaving on the SLC flight, so we ran over to her and she finally got us checked in. We reached the gate at the very end of pre-boarding, so we actually had a few minutes to spare, but that's cutting it too close for my liking. In a normal-sized airport (Long Beach is a small one), we wouldn't have gotten through security nearly as fast.

Arriving in SLC around 10:30 PM, we picked up our car and headed down to Provo to spend that night. It's normally a 45 minute drive, but we didn't arrive at Child's parents' house until after midnight. There was nighttime construction going on along I-15, so the entire interstate narrowed to a single lane for several miles. More stop-and-go traffic. After dealing with it on the other end of our flight, I wasn't particularly happy to see it again--much less in the middle of the night when I was exhausted and just looking to crash in a nice soft bed.

We finally made it, slept for a few hours until Ash decided that it was morning time, then got in the car and drove four hours back to Idaho. After unloading the car and putting everything away, all I wanted to do was nap but it was time to go to the wedding reception of another cousin. At least they had cream puffs.

While at the reception, Child and I picked up one of the afore-mentioned children from my parents (the six-month-old). We'll be caring for him for the next three weeks, then returning him to my parents when we move to California.

It's been a long week.

Sunday, June 06, 2010


Yesterday we finally got around to visiting a scenic wonder in our metaphorical backyard: Yellowstone National Park.

It's an amusing place to visit because you'll be driving along, minding your own business, then suddenly hit a traffic jam of cars in the middle of nowhere. People will be running along the road carrying binoculars and cameras, with new arrivals parking haphazardly wherever they can find a spot and hurling themselves from their cars to join the crowd.

The reason, of course, is that Wildlife has been spotted. A wolf, a bear, or perhaps a particularly scenic buffalo all warrant the mass destruction of several hundred yards of roadside wildflowers if there doesn't happen to be a pullout handy. The downside is that sometimes, you have to have a 200X zoom lens on your binoculars to actually see the Wildlife, so those of us who weren't smart enough to bring binoculars with that magnification are left squinting into the distance trying to figure out if the black spot we're looking at is an elk or a tree stump.

Of course, a lot of the more common wildlife know that their only chance for personal recognition is to make themselves readily accessible. Buffalo were especially good at this, and could be found near the road at many locations. By the end of the trip we were buffalo connoisseurs, only deigning to stop if the buffalo was closer than 5 yards to the road, had particularly well-groomed fur, and perhaps threw in a little song-and-dance number.

At the beginning of the trip, though, we weren't sure what we'd find so we snapped pictures of whatever black stumps we could find:

Pictured below: Roaring Mountain. It was interesting enough, although I didn't actually hear any roaring. Or snarling, hissing, or even grumbling for that matter. Maybe I just wasn't paying attention. It seemed to be a common theme throughout our trip that the sights we saw didn't quite live up to the pictures we saw in the various Yellowstone-sponsored publications. Either Yellowstone has a dedicated Photoshop crew, or we just hit the park at a bad time of year.

Pictured below is another prime example. This is supposed to be Mammoth Hot Springs, which in all the pictures I've seen has brilliant colors and pouring waterfalls. We were lucky to see a trickle of water from one or two pools, and the predominant color was grey. The below patch of dried-mustard yellow was pretty much the only other color we saw. Ash's expression accurately mirrors my own feelings.

The below picture was the best part of Mammoth Hot Springs, and it wasn't even at the Hot Springs proper. It's from the little loop that goes behind and above the main hot springs.

For lunch, we stopped in the little town by Mammoth Hot Springs, where three doe elk had smartly positioned themselves near the picnic tables to take full advantage of lunching vacationeers. Their migration patterns seemed to be dictated by the flow of tourists rather than the seasons, and about the time that lunch finished they moved off across the main square to take up a new position by the botique stores to catch the after-lunch window-shopping crowd.

Ash's hightlight of the trip was the strawberry she got to eat at lunch. Would that we all were satisfied with so simple a delight.

Some of the buffalo were clever enough to bring along the kids, knowing that tourists are unable to resist taking pictures of baby-anything. (Child took dozens of pictures of a "baby geyser," which I would have classified as a gurgling golf-hole but since it was 1/10th the size of a normal geyser, it was apparently much more attractive. I don't pretend to understand.)

On the plus side, I did manage to catch a shot of the elusive 8-legged buffalo. Seldom seen (i.e., photographed less than 500 times a day), he slipped across the road like a 2000 pound shadow before fading into the grass a few feet from the roadside.

The obligatory Old Faithful shot. Our timing was excellent; it began to erupt right as we walked across the field towards it. Other than that...yeah. Old Faithful. In its defense, it's probably kinda hard to live up to the hype it gets.

The Fountain Paint Pots. Bubbling mud holds a strange fascination for me. Maybe I should see a psychologist. I think it's because geyers are all up in your face, shouting, "Hey, here I am, everyone look at me," while mudpots are more like, "Heh heh heh, you have no idea what I'm plotting beneath this opaque, mysterious liquid, but I'll give you a few cryptic hints in the form of a sulphuric-smelling bubbles."

Yeah, I should probably see a psychologist.

Tuesday, June 01, 2010

Monkey Business

Friday afternoon (5/28/2010), Child and I left Idaho and drove the four hours down to Provo. There, I dropped her off at her parents' house and drove another four hours down to southern Utah. In the North Wash area, some friends and I hiked a canyon known as "Monkey Business."

I'm not sure if some of the people want their names posted, so I'm going to leave them off. (I've become a little more sensitive to this issue as of late...)

Sometimes it's hard to tell where a canyon really begins. Most of the time, a few shallow gullies through the desert come together into a wash, which eventually turns into a canyon. The wash we started down came to a nice, abrupt drop-off, though, albeit one that could be hiked around and downclimbed.

I liked this multi-level shot. Traffic jam in the canyon. Actually, someone else was taking a picture from the front, but for some reason I liked this better. I think it gave a better idea of the 3D nature of canyons.

So the below picture isn't anything particularly spectacular, but it amused me. It looks like S. is squeezing through a tight spot, which he is...only this picture isn't right-side up. It's sideways.

The picture below is actually the correct view. He's lying on his side, squeezing under a boulder.

I realized after picking my favorite pictures from this trip that none of them were just normal pictures of the canyon. It's like anything you do a lot: the activity itself becomes a little ho-hum, and it's just the little out-of-the-ordinary things that become interesting. Anyway, I scrolled through the pictures and found this one just to show off the canyon itself.

This picture was taken by one of the girls that came on our trip, and I just liked it for some reason. It doesn't have the pretty orange and reds of some of the other parts of the canyon, but it has a very...canyony feel to it.

One of the most common canyon creatures you'll see are small lizards. Like the canyon frogs, they have the ability to climb straight up the walls, and they're fun to watch as they scurry around.

This was one of Child's favorite pictures so I threw it in.

I liked this one. We reached a narrow section of the canyon that was easier to stem over than go through. A lot of the time, the group was spread out so much that it was hard to get a picture of more than a couple people at a time, but this time I managed to catch them all together.

This is what's known as a "guided rappel." The trick is to guide the rappeller into the pool of water.

And everyone's least favorite part: the climb out. This climb is known as the "Kelsey Exit," named after the man who first found it, I believe. I've actually been up it once before while leaving a different canyon, and it has only gotten worse. The rock is primarily rotten sandstone, so everything you touch is sandy and slippery. Not only is it steep and hard to climb, but you constantly feel as if your handholds and footholes are going to break, crumble, or slide. Not fun.

But it finally came to an end. Freedom!

Saturday, May 22, 2010

Biscuits and...oatmeal?

News flash: despite their similar visual appearance, biscuits and oatmeal doesn't taste nearly as good as biscuits and gravy.

And why in the world would you put oatmeal in a crockpot, much less right next to an identical crockpot containing gravy? Sure, they had giant labels reading "Oatmeal" and "Gravy" on them, but who reads those?

Tuesday, May 18, 2010

Highly mathematical average

Before a comet or asteroid hit Jupiter last year, astronomers had calculated that an impact like that would happen on average every 350 years.

How did they arrive at that number? The lay-person might (amusingly) think that they had simply taken the only two other known impacts (Shoemaker-Levy in 1994 and a possible impact observed by Giovanni Cassini in 1640), subtracted the two, and got the value of 354 years, but not so!

According to arXiv, arriving at that number involved taking those two impacts, adding "crater counts on Jupiter's large moons and various theoretical calculations", and THEN deciding it was 350 years.

I am suspicious.

Sunday, May 16, 2010


There's nothing quite like waking up at 3 AM because your eyes are itching like crazy and you can't breath. Relatedly, slowly suffocating in your sleep gives you strange dreams.

And I think evolution got it backwards. Sitting up, it's slightly easier to breath but hard to sleep. Laying down, it's harder to breath, and therefore still impossible to sleep. Why not make it easier to breath when you're laying down? I'd rather spend my days (and nights) flat on my back...although I guess that would make doing my job rather difficult.

Friday, May 14, 2010

The big One Over Five!

I cross the 20% mark of my story today! (Who cares that my goal wordcount is more-or-less arbitrary, making the achievement more-or-less arbitrary as well!)

I don't know if I'm just being more dedicated, or if I spent so much time thinking about this story before writing it that I have a good idea of where it's going each time I sit down, but the writing seems to be going fast.

It still doesn't seem like very good writing yet, and I keep wanting to go back and redo things, but I'm (mostly) forcing myself to wait until I'm done.

Monday, May 10, 2010

Bit of a contradiction...

Restaurant name spotted by Child: "Original Thai 2"

Sunday, May 09, 2010

You sly dog!

Tell me we don't have to fear for the future...

Saturday, May 08, 2010

Siete de Mayo

Last night Child and I attended a church Cinco de Mayo party that was actually held on the Siete of Mayo. There was a lot of delicious food, but by far the best part of the party was the pinata.

One of the guys had made a life-size deer pinata, complete with horns, as the "adult" pinata. The legs were made out of thick cardboard tubes, while the body was a box wrapped in duct-tape, then wrapped in carpet, then wrapped in saranwrap. This bad boy wasn't going down without a fight.

And what a fight it was. The participants had their choice of an aluminum or wooden bat, then they were blindfolded and a sombrero was placed on their head. The deer was on a rope looped through a ring in the ceiling of the outdoor pavilion so the deer could be lifted and lowered. Each bat-wielder got a couple minutes to swing, hitting the floor, their legs, their sombrero, and occasionally even the deer. With the deer swinging wildly back, occasionally the deer and the human would get tangled up, at which point it started looking more like hand-to-hand combat then a casual party game. The person would be fighting grimly in ominous silence, swinging the bat as if they were in the jungles of New York going down under a wave of zombies.

The legs of the deer were the first to go, although the tubes were so thick that even they lasted through several swingers. When each one was finally cracked open, beef jerky and candy would spill out, because nothing says, "Deer Pinata" like meat-flavored lollipops. There were a few close calls when children, seeing the candy go flying, would dive under the pinata to collect it, apparently not understanding that being within the strike zone (or even a 20-foot radius) of a blindfolded man wildly swinging a 26 ounce Louisville Slugger probably wasn't a good idea.

The torso of the deer was an entirely different story than the legs, however. The carpeted sides were effectively impervious to the bat, and it soon became apparent that even a wrecking-ball would have a hard time getting through. When pretty much everyone present had exhausted their ingenuity, the deer was "skinned" of its carpet protection and finally finished off. Overall, it ranked right up with the most hilarious things I have ever seen in my life, and I only wish I had thought to take my camera.

There was a second pinata waiting in the wings, a full-sized "golden calf" that was actually wrapped in metal bands, but unfortunately Ash was getting cold and we had to take her home.

Wednesday, May 05, 2010


This morning I threw away the Blockbuster card from my wallet. Does that company even still exist?

Tuesday, May 04, 2010


You don't realize how often you accidentally press the caps-lock key until you disable it and have an icon pop up on the screen every time you press it.

Saturday, May 01, 2010

Civil Defense Caves

This morning, we decided to trek out to the Civil Defense Caves, which are about a 1/2 hour from Rexburg. After starting with a wrong turn out of the Rexburg dollar store parking lot, I figured we had that all out of our system.

Two more wrong turns later (in my defense, the sign pointing the way had been knocked down), we arrived at the caves. It had sprinkled a little on the way up, but hey, we were going into a cave. The cave was actually a lava tube, where a hard crust had formed over flowing lava, then the liquid lava beneath had drained away leaving the shell behind. Word on the street was that they were called the "Civil Defense Caves" because back in the day, the plan was for the town of Rexburg to move in there if a nuclear war destroyed the world.

Despite not being the nearby Ice Caves, this cave had plenty of ice in its own right. Some sections of the cave had dozens of these ice balls, formed from water dripping from the ceiling.

I liked the ice slug crawling up the rock.

Friday, April 30, 2010

Wordcount vs. Percentage

I've decided I like seeing a "% completed" indication more than a wordcount indication while I'm writing. Sure, % completed is just an estimate while the wordcount is exact, but it just seems like I make progress faster. Going from "8% completed" to "9% completed" seems like a solid achievement, while going from 7147 to 8154 words just doesn't mean much.

And maybe I shouldn't be focusing on what I've done, and work on what I still need to do...

Madame Guillotine

A couple months ago I decided to try an experiment: switching from Gillette Mach 3 razor blades ($15 for a 3-pack) to cheap, one-blade Bic razors ($2.50 for a 10-pack).

The results were about what I expected. The three-bladed razor is much nicer on the skin. It shaves better, easier, and quicker. The one-blade razors scrape my skin much more easily, leaving cuts behind. However, the problems seem to be diminishing, perhaps as my skin gets more used to the rougher shave. I was seriously considering switching back for the first few weeks, but now I'm going to try it for a while longer. Over time, it's a pretty significant cost savings, at the expense of a little bit of the environment and a little of my comfort.

Thursday, April 29, 2010

So...who wins?

Recently I was reading a forum thread that was talking about Linux distributions. Three comments in a row went thus (paraphrased):

Person 1: After 10 years of Ubuntu, I'm running Fedora.
Person 2: I gave up on Fedora back in 2003 and went with Gentoo.
Person 3: I used Gentoo for almost 3 years, but personally, I dumped it for Ubuntu.

Tuesday, April 27, 2010


Yesterday, the animal shelter called me. "Our website doesn't work."

Their website is hosted on my server, and I maintain it for them so I went to take a look. The first problem was easy to find: their domain name simply went to a landing page. "Looks like the domain name must have expired or something," I said. I'd seen it a dozen times before. "Just make sure the credit card didn't expire or something like that."

After fixing that, the shelter manager called me back. "It's pointing where it should, but they said it'd take a few minutes to update."

"Great," I said, but that reminded me that I had a second temporary link I could use to view the site if the domain name was down. Just for the heck of it, I checked out the site, and was greeted by flashing images and random text. Oh no! Their site has been hacked! Thousands upon thousands of mostly-empty folders with random names clogged their account. The shelter's own files and folders remained, except for the home page which had been replaced with the hacker's own page.

This was a kick in the pants. As security-conscious as I am, I had failed somewhere. Doing a little research, it wasn't hard to see where. When I set up their FTP account, I had chosen too easy of a password. It was a non-dictionary word that I had appended some numbers on to...but the non-dictonary word was their domain name and I hadn't stopped to think that a brute-force attack might toss that into the mix.

That wasn't the primary problem. Their unique password I could change, but I realized I had a bigger security hole. All the sites on my server that need to use the database use the same username/password to access it. If the hackers cared, they could glance at the database configuration file in the site that they hacked and get into the database, where they'd have access to every site's data. There wasn't anything particularly sensitive in there that wasn't encrypted, but still not a good thing.

The first thing I did was change the password on the account. The second thing was change the database password. The third thing was to give each site a unique password to the database with limited access. That way, if one site was hacked, it couldn't spread to other sites, and it would be easy to cut off that single access.

Fortunately, I keep good backups so it was easy enough to restore the hacked site. The hardest part was wading through the massive number of folders the hackers had created.

I wish I had fixed that particular security hole BEFORE something happened, but at least it's better now.

Sunday, April 25, 2010

Wordcount Widget!

Note the awesome wordcount widget I added to the right sidebar. This widget is awesome because it AUTOMATICALLY tracks the wordcount on my latest work-in-progress, no manual updating needed.

For those who are interested in the technical side of it, here's how it works:

1. My computer automatically backs up all my files to a remote server every night.
2. Since I use OpenOffice, the document in question is in .odt format. I discovered that a nice feature of this format is that the word count of the document is availabe in the raw document code (search for "meta:word-count").
3. The image you see is actually a PHP script on the same remote server. When viewed in a browser, the script extracts the wordcount directly from the document and generates the image on the fly.


Saturday, April 24, 2010


Child thought it was funny, but I'll bet SHE can't kick her pizza off her plate while she's holding it and send it flying behind the bed.

Saturday, April 17, 2010

I build robots, not time-travel machines

Child: "There's a text message on your phone. 'Ultimate Frisbee at the stadium tonight at 6 pm.'"
Me: "That was from yesterday."
Child: "Oh, okay. Are you going?"
Me: ...

Child's defense was that she had just gotten back from a 9.5 mile run, so I can't really blame her. And the Frisbee will have had been fun, after I invent my time travel device.

Sunday, April 04, 2010

Please don't do this

If you're playing a game, and you realize you can't win, don't change your strategy to simply making the frontrunner lose. It's not the game, it's not cool, and it's not fun.

Wednesday, March 24, 2010

Sexy hot man abs!

When I need information on a basic programming function, such as the "abs" (absolute value) function, I like to check the standard manual page. The easiest way to do this is to type "man [function name]" into Google.

I have to issue a caution, though. If you type "man abs" into Google, the results you get may not be exactly what you're looking for...

Thursday, March 11, 2010


I would never have guessed, but according to US News and World Report, BYU is currently the most popular school in the nation.

Now what's better: that distinction, or our annual winning of the "#1 Stone-cold sober school" award?

Saturday, March 06, 2010

Child-ish quotes

My favorite quote from Child today: "What time did you say the 4:00 showing started?"

Thursday, February 25, 2010

Pick a little, talk a little

Yesterday, Ash started talking. She's made noises before, but yesterday she just started going off, a constant stream of squeaks and "ahs!" It's very cute.

Monday, February 22, 2010

Latch for your life!

This evening, Ash sucked on her bottle so hard that when she let go, the air pressure differential sucked the nipple into the bottle.

Sunday, February 21, 2010

Religious thought of the day

When we came to Earth, we were given agency. I've always understood that to be a sacred right, but it occurred to me that while we were given agency, we weren't given a whole lot.

Agency is synonymous with power. Here on Earth, we have the power or agency to control our response to a situation, but that's about it. We don't have the power to stop natural disasters, and we can't choose not to have other people affect us. In short, we have agency, but only a little. A training amount, you might say.

When Satan offered to guarantee our return to heaven by taking our agency, what he really wanted was to be the only one with agency. In other words, the only one with power. Maybe that's obvious, but it just clicked for me today.

Tuesday, February 16, 2010


Sunday night, we went to a Valentine's Day party and my sister and bro-in-law's house. We had a great time with tons of good food and chocolate and games.

In one of the games, we randomly drew two words. One was romantic, one was not. From these two words, we had to write a poem. Here were the entries:

I may never shower, or wash off my feet,
I may not change diapers that well,
I may never take out the trash to the street,
But I will buy you roses to cover the smell.

My heart is like a shovel,
I dig you every day.
I will love you forever,
And every day I'll say:
That you are like a feather,
Soft and oh-so-sweet.
That you smell sweet like heather,
A small that can't be beat,
That I value you as leather,
And I'll always love you so,
Yes, you are like a shovel:
Buried deep so love can grow.

I love you more than chocolate milk,
I lov you more than satiny silk.
I love you more than gummy bears,
I love yoiu more than well-trimmed nose hairs.
I love you more than candy bars,
I love you more than all the stars.

You are my sweetheart, you're like a spider,
Cause you do so much work, and I love you.
You are my mom and I love you more than chocolate,
You are the love of my life and I hope you will love me too.

My darling [NAME] with the beautiful face,
I think it strange when you dress in lace.
And when your robot comes to sup,
And you give him silverware and a cup.
And I find it odd when you sing in the car,
Or do a jig on top of our bar,
And when you stand upon your head,
Or sleep upside down upon the bed.
But despite how strange you may appear,
You're the one I love, my dear.

Our wedding was better
Than if I had won the Football National Championships
And had been awarded the Heisman Trophy award.

Love is,
in the things you do.
When you do the dishes,
When we walk, just us two.
And your many sweet kisses.
Love is: you.

It's one thing I will always miss, our walks on the beach so sandy.
The sweetness of your kiss is like the taste of candy,
You bring such color to life like jelly beans in a box,
My dear little wife, you are such a fox.

Sunday, January 31, 2010

Random Pictures

While working in my upstairs office (this was at our old house), I heard a strange bird-like noise. I went downstairs to investigate, and after a moment found out what the noise was. Apparently our next-door neighbors were keeping chickens in their backyard. Or at least one. She was doing her best to keep her feet out of the snow.

Due to some difficulties in getting to our bank, we simply cashed my last paycheck. Ash was excited to see that much money in one place.

She also takes after her daddy in liking power tools.

Posting by email

Since I didn't have Internet access until today except on my phone, I posted the earlier "Three Doors Down" post by email from my iPhone. I've also sent a few other emails from my phone, and I think I get a little of the feeling that the Book of Mormon writers must have felt, carving their words onto metal tablets with a chisel.

I'm an incredibly slow typer on the on-screen keyboard on the iPhone, so I have to actually think about what I'm going to write, think about the most succinct way to write in, then painstakingly type it out. If I later decide that I didn't like the way I worded something, it's too hard to go back and erase, so I just add a clarification.


A couple recent webcomics made me laugh. The first one is from a webcomic called Dr. McNinja. He's a ninja who's also a doctor. The link is here:

Mysterious Stranger: "I will destroy this machine!" (He smashes the display monitor sitting on the desk.)
Ben Franklin II: (Rolling his eyes) "Oh no, please...not the computer monitor. That's the key to the entire device. You've destroyed everything definitely."

A second one was sent to me by a friend, and references the Mars Rover named Spirit. Since my new job is working on robots, it was somewhat applicable. This second site allows hotlinking to their images, so I'm including it below (click the image to view it larger):

Nice neighbors

Our downstairs neighbors are really nice. We found out that our ISP wouldn't be able to get us Internet service before February 4 (?!) so our neighbors were nice enough to let us borrow their wireless password.

Working online is much easier when you're not doing it on an iPhone over the cellphone network.

Monday, January 25, 2010

Three Doors Down

To go from inside our house out to the backyard, we have to pass through three doors.

The first door leads to a small room where you can go left to the downstairs tenants or right to a small hallway.

If you go through the door on the right to the hallway, you then have the option of going right again into the garage, or out the end of the hallway to freedom and two feet of snow.

If I'm ever being chased by an ax-wielding serial killer, my plan is to run into that maze of doors and get him so lost he ends up in the downstairs neighbors' apartment, where he can satiate his bloodlust while I escape out the front door.

On the other hand, they're really nice neighbors, so maybe I should lead him into the garage where I can overwhelm him with car exhaust fumes while holding him off with tomato cages.

Sunday, January 24, 2010

Moving is stressful

I wouldn't advise moving more than two or three times a year, even if
your wife complains that you never leave the house and do things

Friday, January 22, 2010

Ah, the joys of moving

Moving Day - 1: High Stress Situation

Keep in mind that Child's phone has been missing for the past week, so we've had a single phone we've been swapping between us. It makes everything harder when you can't communicate with each other and/or whoever you're trying to make various arrangements with.

3:00 AM: Wake up.

3:00-7:00 AM: Try to fall back asleep, fail.

8:55 AM: Walk out to car to leave for last day of work.

8:56 AM: Discover car has been broken into. Nice little going-away present. Lova ya too, Utah. Of course this was the first time we had parked outside our garage all winter (our garage being full of moving boxes). The criminal wasn't particularly smart; he managed to figure out how to open the doors because they were unlocked, but he couldn't decipher how to unstick the suction cup of the GPS unit in the front window, so he just broke it off.

Also pointing to his newbiness was the fact that he missed $25 in the center console and a multi-thousand dollar paycheck on the front seat. He did manage to make me 45 minutes late for my last day of work, though, and waste time calling an insurance company who apparently doesn't believe in returning messages (yes, that's you, USAA).

Of course, incidents like this is exactly why we have insurance. After a prior break-in or two, I tossed around the idea of installing some sort of homemade camera in my car, hooked to my wireless network. I finally decided I'd spend a lot less time and probably the same amount of money just getting insurance and not letting it bother me.

10:00 AM: Attempt to print rental agreement for new home, so I can sign and fax it back. The office chooses that day to change every printer in the building. Spend twenty minutes going from printer to printer trying to figure out which one is which before finally emailing it to a friend who emails it to a friend who prints it off and gives it to me. Sign the document, fax it back. No good. Apparently Child's signature also has to be on the document. Child is not present. Child calls them, convinces them to let her sign it Monday.

12:30 PM: Going away lunch. Initial plan was Goodwoods (a BBQ joint), but to include a new vegan hire we go to PeiWeis instead. PeiWeis is packed, go to Mexican food next door. Get a Tres Leche cake for Child. She likes it. On the way back to the office with five of us packed in a car, we realize that a single accident has the ability to wipe out the entire company. The driver slows down.

4:30 PM: Leave work for the last time. With two brand new programmers taking my place and a single harried original programmer, I get the feeling I'm fleeing a sinking ship. Of course, the truth is that in today's digital age, it's impossible to flee a technology-based company unless you block all your old coworkers in IM, refuse to answer their emails, calls, or text messages, and avoid them on any social networking sites.

Archiving the perpetually-replenished To-Do email for the last time is a nice feeling.

5:00 PM: Pick up moving truck. Load friend's piano in moving truck to take from Provo to Draper. Turn down (generous) offer of another piano from Child's mom. Driving a 26 foot truck feels like you're driving from the second story window of a house.

5:30 PM: Drop off piano. Going down a ramp is much easier than going up. Especially when exceptionally skilled backing-up of a 26 foot truck practially drops the ramp in your front door.

6:00 PM: Nearly get killed by a car which someone parked on a hill and didn't put the parking brake on. When you're leaning in the door of a car that's rolling backwards downhill, it's surprisingly hard to either back out OR find the parking brake. Fortunately, the people who had parked behind us had left about five minutes earlier, or they'd have a crushed front-end on their car and we'd have a crushed rear-end on our car.

7:00 PM: Snow starts to fall. Big, thick, fat flakes. Looks like we'll be packing and driving in six inches of snow in the morning.

10:00 PM: Go to bed.

Thursday, January 21, 2010

Hooray for kind neighbors!

When you think about taking a meal to a neighbor, it's usually when they're sick, just had a baby, or something along those lines.

I have to say, though, it's incredibly nice to have someone invite you over for a meal during Moving Week. A few days before you move, your entire kitchen is backed up, your refrigerator and cupboards are bare because you don't want to move food with you, and you're left either eating out or eating Cup o' Soups.

It's even better when they send you home with two full plates of leftovers for a second meal.

Growing like a weed!

Child took Ash to the pediatrician's office today. Ash is in the 95 percentile for height and 25 percentile for weight. Apparently our parenting strategy of food-deprivation and daily sessions with the rack are paying off.

Monday, January 18, 2010

Unintended consequences

Yesterday at church, the teacher of the 2-year-olds asked me to bring in our 4 month old daughter, Ash. She wanted to teach the kids that they had two fathers: an earthly father and a heavenly Father.

The problem is that now there's a bunch of 2-year-olds going around telling their friends that they have two daddies. It could make things a little awkward.

Saturday, January 16, 2010

A little planning ahead would have been nice.

Tonight, Child and I enjoyed the excitement of trotting five hundred-pound loads of dirt across the street to dump them in the vacant field prior to our move. Unfortunately, the boxes of dirt were frozen solid, which made it a little hard to retrieve the cardboard (I didn't feel right dumping the cardboard, even though it was already half-dissolved).

Now why didn't Child tell me to get rid of the boxes of dirt back in, say, November? You know, before it was frozen solid and freezing cold outside...

Friday, January 08, 2010

Big News!

It's official, so I can post it on my blog now. I've accepted a position at a robotics startup in Idaho called 5D Robotics (motto: "Two Ds better than reality!").

There were a lot of things to weigh while considering taking the job. My current job had great pay, and I just got a raise at the beginning of the year. As a matter-of-fact, I'll be taking a fairly significant pay cut to go to this new job.

In addition, my current job allows me to work from home 4 days a week, with the flexibility to take off whenever I want. At my new job, I assume I'll be working in the office every day, 9 to 5.

I also really like my current coworkers, and I know the company is going to go big (it already is).

However, my decision was based more on my long-term interest. At my current job, I build real-estate websites. I really enjoy web-programming, and working in real-estate was fine, but I got my Masters Degree in robotics. I think working with robotics has more potential to keep me interested and sharp. (Plus, my Masters advisor will be happy to know I'm finally using my education.)

In addition, from the brief meeting I had with my new coworkers, I think they'll be easy to get along with as well. They seem pretty committed and experienced.

I told my current bosses today at work. We had a full day of interviews scheduled for a new programmer, so basically I told them to start looking for two new candidates instead of just one. They said they were sorry to see me leaving, but they wished me the best. I'll miss the company too.

I also told our landlord, since we'll need to get out of the last few months of our contract. He was understanding as well.

The last person I need to tell is the Bishop. I was just called as the new ward clerk two weeks ago, and the Bishop said, "I look forward to years of good service from you!" Um, would you be satisfied with a month?

Anyway, things are going smoothly, so we're down to packing everything up now. My goal is to pack everything that's small enough into banana boxes, so our moving truck is nothing both furniture and neat stacks of identical boxes. I think Child is catching my vision as far as that goes...

Y esta la vida!