Lateral Thinking

Posted on Thu, Sep 8 2016 in Bob's Journal

In tenth grade I had to take a course to prepare for the workforce. The class included interviewing a person in my career of interest, doing mock job interviews, and even some creative writing and public speaking.

One day the teacher told us we were going to do lateral thinking problems. As it turned out, lateral thinking was just another term for trick questions. They were designed to test if I could answer questions without making unwarranted assumptions.

Here's an example: A man is walking down a country road that has no street lights. He is wearing black clothes and not carrying a flashlight. A black car with it's headlights off comes speeding around the corner just in front of the man. It screeches to a stop, narrowly avoiding running the man over. How did the driver of the car see the man in the road?

You can have a lot of fun imagining possible answers. At that time cars didn't have collision sensors, so let's assume the car is old and it's up to the driver to stop. It's possible the walker was carrying some light other than a flashlight, like a cell phone, a headlamp, or glow sticks. Perhaps the driver was wearing night-vision goggles. Maybe it was just a coincidence.

As it turns out, none of these ingenious solutions is necessary. Nowhere in the problem does it state that it is dark. Check it out for yourself. Since lights are mentioned several times, the mind makes that assumption, but it's not in the question.

This test still counts as one of the proudest moments of my life. I don't think any of my classmates answered more than fifty percent of them correctly, but I only missed one.

You see, my brain is terrible at handling assumptions. That can be very helpful in programming and, to a lesser extent, business, but it's a major liability in personal interaction. Allow me to demonstrate.

People often ask me questions. I'm good at answering them, provided they're factual. If they're not factual my brain will change them until they are. This is especially a problem with "How" questions. Not all "How" questions, mind you. Some just want you to describe a step-by-step process, such as "How do you download an email attachment?" or "How did you get up in that tree?" Those my brain handles just fine. It's the other "How" questions.

Often when people ask how, it seems like they're asking for a description. "How does the fish taste?" It seems innocent enough, but it's a trap. "It tastes like a fish" is the wrong answer. So is "It can't. It's dead." What people actually want is not a description, but a judgment. Intellectually I understand that, and yet my brain says, "Who am I to judge whether a fish is good or bad?"

This gets even more confusing with "How" greetings. "How are you?" doesn't mean "What conditions led to you existing?" even though that's what my brain hears. And since I can't reliably judge a fish, I definitely don't have enough information to judge my own condition. Of all the people on earth I am singularly unqualified to that task. So my brain gets a bit stuck.

Over time I have divined that the preferred answer is "Good, how are you?" Even "Hi" seems to be acceptable, though I have no understanding of how that is related. Just whatever you do, don't try to answer the question literally. No one wants to know that.


Memory Lane

Posted on Thu, Aug 18 2016 in Bob's Journal

I was uploading a Miranda video this week when I stumbled across some old videos that YouTube had been saving. For your amusement, I present Stuffed Carnage: The Complete Collection:

[embed]https://www.youtube.com/watch?v=bMjrPvPTokQ&list=PLD9QSYWzVFY0IgUaF7L9NRk36ohd7bQxE[/embed]

I must apologize to our readers in Canada and Germany, since some of these videos are blocked in those countries. Or perhaps I should be apologizing to the countries where they aren't blocked. You decide.


A Friend Indeed

Posted on Fri, Aug 12 2016 in Bob's Journal

I saw this disheartening headline the other day: "Only Half of Friendships are Mutual, Researchers Find". If you're someone like myself, who feels they don't have many friends, the take away is that other people don't have that many friends either. At least, not as many as they think. In fact, if you break down the numbers, you have fewer "fake friends" than them.

I propose that we introverts hold a party to celebrate! We can all stand against the wall and avoid making eye contact.


Getting a Leg Up

Posted on Tue, Jul 19 2016 in Miranda Rants

There are many advantages to being me, yet the parents have held one virtue hostage: height. It wouldn't be so bad if it weren't for the parents' carelessness. For example, when they accidentally happen place something out of my reach, which they do with frustrating regularity.

In the past I have been reduced to pointing and trying to make them understand their error, but, as you are only too aware, making the parents see sense is a losing battle. Fortunately, I have found a way to take the high ground in this situation. Literally.

By positioning myself atop objects I can make myself arbitrarily tall. The best part is, if a surface is too high to reach directly, a simple application of logic allows me to bring it to my level. For example, suppose that Mommy has careless left the phone on the back of the couch where it's too high for me to reach. The seat of the couch is too high for me to climb onto directly. What am I to do? I simply grab my chair, push it to the couch, climb into the chair, from there onto the couch, and just like that I have the phone, no parents required.

Naturally, this strategy works with any height. Chairs and boxes can easily be moved to new locations, and even carried to higher heights, if a direct path is not available. If you do try this strategy at home, make sure to do it quietly when the parents are not around. I have faced multiple occasions when the parents, for reasons only they know, removed an important part of my path, or even took me to another room.

Once you have reached the object you desire, there are multiple ways to get back down. If the height is not too great, I prefer the head-first method. It is direct and quick. For larger heights, the best option is to whine loudly until a parent comes and places you back on the floor.


Hermaneutics

Posted on Fri, Jul 1 2016 in Essays and Stories

The crowds were noticeably increased the week before Passover. A destitute widow slowly worked her way through the commotion to drop two copper coins into one of the temple's collection boxes. Jesus called out to his followers: "Look at that widow! Most of these people are only giving a small percentage of their money, but she gave one-hundred percent. Everyone should be more like her. Then we could finally add on that new wing, replace the carpet in the sanctuary, and hire a full-time childcare coordinator."


Jesus called out to his followers: "Look at that widow! Giving money to the very people who are plotting to kill us! She and all the rest of those sinners will burn in hell!"


Jesus called out to his followers: "Look at that widow! Another stupid sheeple, blindly following the religious establishment. Wake up! Fight the system!"


Jesus called out to his followers: "Look at that widow! Putting money into the temple when it is already scheduled for destruction. She should be giving that money to my ministry instead."


Jesus didn't say anything to his followers, because drawing attention to the poor is rude.


Jesus called out to his followers: "Look at that widow! Here's a perfect example of injustice. She is going to starve herself to support the lavish lifestyle of self-righteous religious leaders, because they told her it's God's will."


Jesus called out to his followers: "Hey Judas, that woman just gave away all her dinner money. Go give her a few bucks and a tract."


Jesus is too busy talking to his followers about their big outreach project to notice the widow shuffling by.


Hand Holding

Posted on Mon, Jun 20 2016 in Miranda Rants

The challenges of working with parents are greatly compounded by their inability to follow even the simplest directions. When I want them to go one way they invariably go the other. I had almost accepted this as insurmountable until a recent development opened up the possibility of change. I have discovered that if I grab the parents by the fingers I can drag them anywhere in the house. The key is to lean your weight forward and tug. Every time you gain an inch, plant your feet and repeat the process. In no time you'll have pulled the parents to any room, no conversation required.

One important thing to note is that this process can be done in steps. For example, if I want to go to my toys, I can drag a parent over to the toy, release them, grab the toy, and then resume leading the parent to another room. If your parent loses focus and begins to wander away, whine and grab its leg. That works every time.


Going Native

Posted on Tue, May 31 2016 in Miranda Rants

I'm starting to fear all my time with the parents is having an effect on me. I know, how could someone like me ever be influenced by the likes of them? Still I wonder...

Sometimes I swear they can communicate. Mostly they just babble after their normal fashion, but there are moments when one of them will make noises and the other will perform an action, or one parent will point at something and make the same noise over and over. Odder still, they make those same noises later and act as if I should understand. Worse than that, sometimes I almost think I can. It's as if they're trying to talk. Am I sinking to their level?


Property Rights

Posted on Mon, May 2 2016 in Miranda Rants

Hello my adoring public. I haven't said much recently, but there's a good reason. You know that I always try to keep things positive, and the truth is there's been little positive happening with the parents lately. I feel like they're regressing instead of progressing.

I've been quite busy over the past month. Being naturally industrious, I have started collecting treasures around the house. This duty falls to me because the parents are, simply put, terrible at such things. Not only are they very poor observers, but their eyes are so ridiculously far from the floor that they couldn't possibly hope to see anything of value. Realizing their frailty, I have taken it upon myself.

I try to be generous and share some of what I find, but the parents are becoming increasingly vexing. It seems as though every time I find some new treasure, a parent swoops in and steals it. They don't even ask. They just grab it away. If I try to keep it for myself, they actually physically pry it from my hands. And then they act as though somehow I'm the one being bad.

I don't know where I went wrong with them.


Search by State the CiviCRM Way

Posted on Tue, Apr 19 2016 in Bob's Journal

I don't normally write about work, because it's generally both boring and privileged. However, I think this warrants an exception. Enjoy.

The ticket came in as follows:

The following member is in The Netherlands, but is coming up in the Utah state search.

C----- P------
owner, garden designer
Z-------- 94
hoogland, UT 3828GE Netherlands
View Member Profile

A quick glance told me all I needed to know. The text-based abbreviation match was being too greedy. It was my chance to redo the member search the Right Way™.

The website having this problem is built around the CiviCRM platform, which manages all of its members and handles billing. CiviCRM was chosen, mainly, because it is free. However, after being forced to work on it, I think the cost is still too great.

That being said, a search for all members in a state should be simple. CiviCRM provides an API for accessing its data. In addition to that, it provides a developer tool to generate and preview queries against that API. Armed with these, I set to work.

Members are stored as Contacts, so I opened up the API explorer to see what was available. I wanted to make a list of all states and associated countries that had members. Fortunately, each state has a unique numeric ID, so I could use that instead of matching abbreviations like the current search did.

I checked the explorer and was delighted to find that it provided state_province_id, state_province_name, and country for Contacts. This wouldn't be as hard as I had expected. I created a query to search for those fields on all Contacts who were in the Searchable group. Unfortunately, the explorer generated an invalid query using the group's name instead of its ID, so when I ran the query it exploded. I had run into this issue before and already knew the ID, so I copied the query into the search code and replaced the group name with the ID.

I wrote a loop to go through the returned Contacts and make a list of countries with their associated states, then used that list in a drop-down in the search form. I saved my changes and loaded the form. The drop-down showed countries, but there were no states.

Perplexed, I dumped the list of countries I had made, hoping to find my mistake, but it only had countries too. I dumped the result I had gotten from the API. Notably missing from the results were state_province_id and state_province_name. I went to the API explorer, removed the Group, and ran my query on all Contacts. There, as well, the fields I had requested were missing. I undid my changes and started from scratch.

I noticed that while the query did not return the fields I had asked for, it did return one I had not: address_id. I reasoned that I could use this field, along with a MySQL query, to find the states' names and IDs. I created a new API query asking for the address_id of Contacts. Having learned my lesson from the last time, I ran the query in the explorer without a group. The results did not include address_id.

Okay, I had seen address_id in my results before, so I knew it could be returned. It must only appear as a side-effect of one of the other fields, I reasoned. I created queries asking for country, state_province_id, and state_province_name, but address_id was not returned for any of them. Finally, I made a query asking for all three together. address_id appeared in the results. I counted it as a victory.

I made a MySQL query using these IDs in a massive IN clause. The query selected state name, ID, and country. Using the results of that query, I re-created my list of countries and added them to the drop-down input.

Of course, that was only half of the equation. The drop-down showed all of the states, but I needed to find all members that matched the chosen state. Fortunately, the API allowed me to limit queries based on state_province_id. I verified it in the API explorer before writing the code. I passed it the selected state ID and …


Continue reading

What Shall We Do?

Posted on Fri, Apr 15 2016 in Strange Thoughts

Peter explained, with an eloquence he had never before possessed, how the prophecies of David ((Psalms 110:1)) had finally been fulfilled by his Rabbi, Jesus. The songs they sang in their homes had come true in a way no one had expected. Jesus was not only risen but exalted, and from God's right hand he poured out his own spirit on his disciples ((Acts 2:33)). The day's great religious festival ((Acts 2:1)) was forgotten as the crowd of worshipers listened eagerly to this new revelation.

Yet against the backdrop of God's marvelous plan was the evil of the people God has chosen. They had taken their last hope, their rightful Lord, the one chosen by God, and crucified him. ((Acts 2:36)) The listening crowd could not help realizing that perhaps they had destroyed what their nation had waited centuries to see. Were they to be excluded from God's promise? They had to know. Men and women raced forward to find if they still had a place in God's plan ((Acts 2:37)).

Peter was amazed. He had seen the religious throng in the temple as an enemy, but so many were responding to the message of Jesus. His tone changed, no longer telling a hard truth to a disobedient people, but offering comfort to heartbroken sinners.

"It is not too late! Even now you can turn from your headlong flight into oblivion. Instead, be baptized into the name of Jesus, and he will forgive you and you will also have access to his spirit ((Acts 2:38))."

Peter and the disciples continued to teach the crowd for hours, and many began to follow Jesus that day. ((Acts 2:41)) They would not fall under the judgment that hung over their generation. ((Acts 2:40))