Monday, December 31, 2007

Lost n Found Pets

I have a new website under construction at

It'll be a place for people in Utah County to post lost or found pets. Steps to completion:
  1. (done) Add administration pages.
  2. (done) Set up Google Analytics
  3. (done) Take picture of animal shelter for "Resources" picture on home page
  4. Create script to periodically delete old pictures
  5. (done) Clean out "test" listings
  6. (done) Find good domain name and set up on new host
  7. (done) Get endorsement by North/(done) South Utah Valley Animal Shelters
  8. Help (done) NUVAS/(done) SUVAS set up regular uploads of all their animals
  9. Get story on KSL/(done) Daily Herald/BYU paper/etc.
  10. Add option to print a flyer?
Comments on features or problems are highly appreciated!

Monday, December 24, 2007

An Idea Actually Worked!

A few months ago when I first started fiddling around with Google Gadgets, I tried to think of something useful I could make. Then I got a Good Idea.

I went to a website that listed the top 100 sites of the internet, then started going down the list, checking to see if each website had an associated Google Gadget. Wikipedia did, CNN did, etc. etc. Then, I found one that didn't: It's a financial website of some sort.

So, I made a gadget that simply displayed the headlines from Bloomberg's site, and uploaded it to the directory. Now it gets an average of 675 users a day.

(I was also just informed by Child that the entire time she read "Where the Red Fern Grows," she was picturing the two dogs as dachshunds.


Sunday, December 23, 2007


Sometimes I envy Child's job, and not just because she works with massage chairs. She also gets to deal with "interesting" customers.

At lunch, I overheard her telling a customer that a cushion was made from Australian pigmented leather. "That means it's made from Australian pygmies," the man informed his daughter, completely straight-faced.

That evening, when I went to pick her up, a customer was trying out a massage chair. Waiting for Child to finish with him, I found a massage chair of my own and relaxed. I listened to her and the man discussing the chair, then there was silence for a moment. Then,

"Wow, look at my stomach jiggling."

Silence for another moment.

"That's not very attractive."

I had to laugh. A few minutes later he came to try out the massage chair next to the one I was in. After lying in it for a moment, he glanced up the built-in microphone. "What's that?" he asked. Child told him it was a microphone to give the massage chairs voice-commands, and he thought that was pretty fancy. "Pretty soon we won't even need wives anymore!" he exclaimed. "But it still can't get you a cold drink from the fridge," I pointed out, making sure Child was out of earshot.

BYU for the Win!

UCLA was down by one point with only seconds left on the clock. However, they were lining up for an easy 28-yard field goal attempt. They had already scored three other field goals during the game, including to 50-yarders. This was going to be a piece of cake. The whistle blows, they kick the ball, one of our players lunges into the air...blocked! The field goal spins away and misses the posts! Time expires! BYU with the win!

Go Cougars!

(Although that's about as close as you can get to a loss and still manage to pull it off...)

Monday, December 17, 2007

Shelter Updates

Spay or neuter your dogs. Somebody dumped off four pitbull puppies at the shelter this who's going to adopt those, especially with half the cities in our jurisdiction disallowing pitbull ownership?


One of the girls was on the phone with the shelter director, when a pheasant booked it across the parking lot. Being uninhibited and ebullient, she screamed at the top of her lungs, pointed at it, and shouted, "What is THAT?"

The poor director was probably deaf at that point, and from the tone of her voice I expected a tidal wave, raging forest fire, or possibly several platoons of armed ninjas sweeping down on the shelter. Fortunately, before I dove for cover, I glanced out the window and realized what she was pointing at.

" a pheasant."

"A what?"

"A pheasant. You have never seen a pheasant before."

Apparently not.


There were a couple other things I was going to post about, but they slip my mind at the moment and my slip of paper with the reminder on it is not at my present location. Updates on the updates later...

Monday, December 10, 2007

Snow Shovel From God

Sunday morning, God put a snow shovel on our porch. It was well timed, since the weather had dumped 8 or so inches of snow the night before and both our landlord and his wife were sick in bed. After shoveling the walks/driveway of our fourplex, I shoveled their walk/driveway as well, since they live right next door.

I have to say, either God's on a tight budget, or he assigned some intern angel to create the shovel, because it was old, orange, and the corners were bent. I guess it got the job done, though.

Christmas Songs

There is only one month a year that we can officially sing Christmas songs in church. Apparently, our church does not realize this, singing Thanksgiving songs on the Sunday after Thanksgiving.

My favorite Christmas hymn is Joy to the World. As I ran home from choir practice yesterday morning to pick up Child, I told her that since it was the first Sunday we were going to be late getting back to church, it would be the week that the opening hymn was Joy to the World.

Of course it was.

Wednesday, December 05, 2007

Acouchi's Drug Habit

Today, Acouchi experienced catnip for the first time. This catnip-infused object used to be a ball.

From the way Child reacted when I suggested getting the catnip, I think she expected small valuables around the house to start disappearing as Acouchi pawned them off to support a newly acquired catnip-habit; then Acouchi would become sullen, unresponsive and defensive, wreck the family car while high on catnip, then end up at a low-paying dead-end job flipping burgers in between stints at the county jail.

Dark Matter

I woke up this morning with an interesting idea. What if "dark matter" was the same thing as "spiritual matter." I.e. our spirits are made up of dark matter. I'm sure this idea isn't unique to me, but I've never heard someone suggest it before.
Scripture: All spirit is matter, but it is more fine or pure, and can only be discerned by purer eyes.
Doctrine and Covenants 131:7
Science: Dark matter is matter of unknown composition that does not emit or reflect enough electromagnetic radiation to be observed directly.
Wikipedia: Dark Matter
If spirits are "matter," then God gets that matter from somewhere when he creates spirits. No problem, the latest estimates (from the same Wikipedia article) are that only 4% of the total energy density of the universe is visible matter (stars, planets, human bodies, etc.) That leaves 96% left over to create spirits from.

No idea if there's really any truth to this; "spirit matter" could be an entirely different type of matter that doesn't even have gravitational effects, much less electromagnetic ones. Still, it's an interesting idea.

Monday, December 03, 2007

Let's see how long we can make this birthday thing last...

So far, my birthday has lasted since last Tuesday, and it's going at least until this Wednesday. Child sure knows how to throw a party. ;)

It started last Tuesday with an early birthday present: tickets to the Tran-Siberian Orchestra concert. We drove up to Sandy and took TRAX the rest of the way. As Child will attest, I hate dealing with city traffic and parking, and snow just makes it worse, so I was happy to leave the driving to TRAX. (I don't have a problem with the snow, it's just the other drivers that I don't like dealing with. On the way back, we saw three cars off the road between Sandy and Provo, and that's not counting any that may have been towed throughout the evening. Slow down, people!)

Anyway, the concert was great. After it started we tried to sneak better seats, but we didn't wait long enough and the real seat-owners kept repeatedly showing up. Eventually we ran out of seats and were forced back to our own, helped by an old and irate usher who demanded to see our tickets.

Child and I agreed that while the music and laser lightshow were great, the band members themselves left something to be desired. I've never understood the whole "rock-star mentality" so I don't really "get" concerts to begin with; I hate pretentiousness in all its forms, and rock-stars seem to embody it. Not only that, but Child pointed out that the TSO stars are sort of "wannabe" rock stars. They only tour at Christmas time, they're kind of older, and no one really even knows their names. :)

Overall, though the concert was a lot of fun. Then yesterday, Child set up a little GPS course for me to follow, with a present hidden at each location. Later that evening, we went up to my parents' house for dinner and pie, and this upcoming Wednesday (Child's day off) we're going to finish off my birthday celebrations with laser-tagging and cake.

Snowshoeing and Other Recent Activities

I've realized it's hard for me to make a decent blog post without pictures. Maybe it's because I personally find posts with pictures more interesting. Anyway, Child and I have recently visited Idaho (and did some geocaching), hit up the Tran-Siberian Orchestra concert, and celebrated my birthday (which also involved me using GPS to find my presents, scattered through the neighborhood).

However, the only event I thought to get pictures of was some snowshoeing a friend and I did this morning.

Child let me open a Christmas present early and it was snowshoes! Coincidentally, we got a nice snowfall a couple days ago, so I called up a friend to ask if he wanted to go out. He rented a pair of snowshoes and we headed up to the Big Springs area.

For being in the mountains, the weather was surprisingly pleasant. I had packed for bitter cold, but most of my clothes ended up staying in my backpack. Even the streams were still running, although there was plenty of ice on the rocks. Another picture I didn't include here shows a bush with branches dangling just above the water, and huge gobbets of ice forming on the branch-tips like giant frozen raindrops.

Here's a shot of my snowshoes on my feet, as best as I could do. If my friend sends me the pictures he took with his (really nice!) camera, there might be a better one among them.

One thing I quickly realized the first time I went snowshoeing is that snowshoes don't exactly make you float like a butterfly on the surface of the snow. You still have your whole body-weight concentrated on a fairly small surface area. This translates into you sinking up to a foot in the snow...but when the snow is several feet deep, you still come out ahead. Regardless, it's still a fairly strenuous activity when you're hiking in unbroken snow. I'm hungry now.

Sunny day, blue skies. Both the previous times I've been snowshoeing, it's been snowing. And dark. So this was a change.

The obligatory wolf footprint shot. This print was almost as big as my hand.

Tuesday, November 27, 2007

Weird Google Maps Route

Does someone want to explain the following route to me?

So we come from the bottom left, pass the ending point, make a scenic loop through Kristin Dr. (really nice Christmas lights?) then return to the ending point.

Tuesday, November 20, 2007

Peeve Promotion

I have a peeve that I'm considering for promotion to Pet Peeve. Picture this: I'm standing at the street corner, waiting to cross. I've pushed the button to turn on the walk signal. Someone walks up behind me, and pushes the button again.

You were three feet behind me! Did you not see me already push it? Even if you didn't, do you really think I'd stand two feet away from it and not push it? You REACHED AROUND ME TO PUSH IT.

Apparently I have a sleazy, non-button-pushing look about me that makes people glance at me and think to themselves, "He looks like the type of guy who would walk right by a button and not push it. Probably too incompetent to push a button even if he wanted to. Better push it myself. Geez, you want anything done around here..."

I'd promote it if it wasn't, in the long run, a pretty stupid peeve...

Monday, November 19, 2007


At the animal shelter today we had a munchkin. This was a cat, not be confused with the card game.

Note the extremely short legs. It's like the basset hound of the cat world. It also has a shorter tail.

Saturday, November 17, 2007

Diamond Fork Hot Springs

On Child's day off (Wednesday), we took a hike to Diamond Fork Hot Springs, also known as Fifth Water, I believe. We tried once before, early this year when there was snow on the ground, but couldn't find the place. There were all sorts of conflicting directions online (on purpose, I think), and the snow made it even more difficult. As it turns out, the snow had actually been blocking the road we needed to go on, so we never even made it to the trailhead.

This time, the directions we had were spotty, but accurate. We found the place exactly 10 miles up Diamond Fork Canyon, and there was a nice, new parking lot. (We had heard rumors of no place to park, cars getting towed, etc.) The hike was a pleasant one, chilly at first, but we quickly warmed up. After we turned off the main river to a small stream that fed into it, the water started turning cloudy blue and we could smell sulphur in the air.

We were the only ones at the hot springs when we arrived, and we spent a few minutes exploring. There were several different pools that had been made, some hot, some cooler. Later, a nice man we named "Bob" came along and enjoyed the hot springs without the encumbrance of clothes, fortunately in a different pool.

Anyone else up for a trip?

Vacuum Bags

We recently got some vacuum bags. On the bags it says, "A cleaner, odor free home starts here." TM.

They trademarked that phrase. Honestly, who else would want to steal that?

Dust-Spray CEO: "Curses! They beat us to the phrase! What other motto could we possibly use?!"

Arm & Hammer Vacuum Bag CEO: "Bwahahahaha!"

Thursday, November 15, 2007

Hiking Y Mountain

Once again I summited Y Mountain, this time with two friends from work. It was a warm day, surprisingly, and I only ended up using the coat I brought for a few minutes on the peak. We were sweating most of the way up, but there was a intermittent breeze that cooled us on occasion.

The below picture is looking over Rock Canyon, at Squaw Peak.

A couple more pictures of nearby peaks, the names of which I do not know. I like how they contrast, though: one sunny and brown; the other snowy, cloudy, and gray.

The other two members of the expedition. For computer geeks, I think we did a good job. 2:15 to the summit, :15 on the peak, and 1:30 back down, for almost exactly a four hour round-trip.

Mountains, Valleys, and Hot Springs

The past half-week has been a lot of fun. Canyoneering, mountaineering, and hot-spring-eering.

We'll start with last weekend, and the canyoneering trip to Leprechaun Canyon. Leprechaun Canyon has three forks, and since we had three Taiwanese friends along who had never been canyoneering before, we decided to do the shorter, easier right fork. We went down Friday night and camped at Sandthrax campground; fortunately it was a lot dryer and less windy than the last time we had camped there. The next morning we started towards the canyon, stopping to talk to another guy who had camped nearby.

"Leprechaun Canyon, eh? Sounds fun. Just don't do the middle fork! It's pretty difficult."

"Um...we already have, last year."


The canyon comes out near the Sandthrax campgrounds, so you start by climbing up some sandstone hills to a plateau, then hiking across the plateau to get to the start of the canyon. We followed the same path that we had used to get to the middle fork previously, but since we were on the right side of the canyon and we were doing the right fork, we didn't have as far to hike. Not that it would have been too bad, since the weather was about perfect: cool, but sunny.

We soon dropped into the canyon. We were going a little slower than usual, since we had to show the Taiwanese students how to use a harness, how to rapell, etc. They really enjoyed it, though.

When I snapped this picture, Corin was at the front of the group while I was at the back. In between, our third friend was helping the three Taiwanese students negotiate a down-climb. I told Corin to climb in the alcove for the picture, which he did. He stayed up there while Randall and the other three passed beneath him. He was above their eye-level so they didn't see him, but they knew he had been ahead of them. Thinking he was still ahead, they started hurrying, trying to catch up to him. Finally one of them yelled his name. Now in last place behind me, Corin yelled back, "What?"

They were rather startled. It's a slot canyon, so there was no obvious way to get from the front of the group to the back. We told them it was "canyon-magic."

When Child saw the above picture, she told me it was a little weird. Looking at it, I can see how it might appear odd.

When they saw this shaft of sunlight, all three Taiwanese students instantly posed in it. It was a lot of fun having them along--even if they would instantly throw up a "V" sign every time they saw me aiming my camera at them. "No! I want a *candid* shot!"

Monday, November 12, 2007

Latest Animal Shelter Visit

I visited the animal shelter this morning, the first time in...about a month, I'd guess. At least, I saw some "Missing Animal" flyers on the bulletin board marked "10/11" in my handwriting.

It was good to see everyone again. Pat gave me some honeycomb. It's a little odd chewing a ball of wax with honey dripping from it, but it was more amusing watching one of the girls there eating it. She touched it with her tongue, then made a face and tried to pick a piece of wax from her tongue. I don't think she understood you were supposed to chew the whole thing at once, and the wax would ball together.

On the more unpleasant side, a lady called asking about a missing chihuahua. We didn't have one from her city, but the police had brought in a dead one that had gotten hit by a car in a neighboring city. She wanted to verify that it wasn't her dog, so it was my job to open the bags in the freezer to find the dog and transfer it to a bag of its own. Meh. I've had more fun.

Speaking of which, I went canyoneering over the weekend, so later this evening I'll post some pictures from that.

Monday, November 05, 2007

Favorite OCReMix Songs

  1. Super Metroid - Four Little Metroids - AmIEvil
  2. Fire Emblem - Etude for Piano in F# Minor - Kevin Stephens, trickwater
  3. Zelda 3 - Triforce Majeure - Disco Dan
  4. Xenogears - Chu Chu's Flight - Jared Hudson
  5. Mega Man 2 - Duck and Cover - Star Salzman
  6. Gunsmoke - Spaghetti Cowboy - Gux
  7. Street Fighter 2 - Ryu for Four Pianos - Reuben Kee
  8. Final Fantasy 5 - Cursed Pirates of the Sea - Protricity
  9. Donkey Kong Country 2 - Assembly Line Apparitions - Protricity
  10. Super Mario Bros. - Mario's Tropical Paradise - Dr. Fruitcake
  11. Final Fantasy 6 - Nightmare Before Kefka - zircon
  12. Ogre Battle - Zenobia's Grave - DJ K-Wix, Israfel
  13. Final Fantasy 6 - Battle Theme -Noir

Saturday, November 03, 2007

Google Analytics Google Gadget

With the NaNoWriMo gadget a success, I've been working on another gadget. This one displays your Google Analytics statistics.

So my blog doesn't really get that many hits, that's just the screenshot of the gadget in action that the Google Gadget Directory wanted.

Note how the gadget creates a new tab for each profile in your account. Also, that's what the previous couple posts about PGP and GnuPG/GPG encryption were all about--I'm encrypting the Analytics username/password.

I barely published it, so it won't show up in the Google Gadget directory for a few days, assuming Google doesn't have a problem with it.

Encrypting to PGP / GnuPG / GPG using Javascript

In a previous post I wrote about receiving PGP-encrypted data and using GnuPG (GPG) from a PHP script to decrypt it. In this post I'm going to show the client-side, a webpage (or in my case, a Google Gadget) that uses Javascript to PGP-encrypt sensitive information and send it to a server. Yes, you could use SSL, but the destination I was sending it to didn't have an SSL certificate.

To do the Javascript encryption, I modified some code from Herbert Hanewinkel, and I'll post the necessary Javascript include files, which he makes available.
<!--Create a holding variable that will be used later -->
<input type="hidden" name="keyid" id="keyid" value="">

<!-- Drop your public key into an invisible textarea. It's called public for a reason; there's no danger in letting people see it. -->

<textarea id="public_key" name="public_key" style="display:none;">
Version: GnuPG v1.4.2 (GNU/Linux)



<!-- Include some required files. They are hyperlinked! Download them now! -->
<script language="Javascript" src="rsa.js" type="text/javascript"> </script>
<script language="Javascript" src="aes-enc.js" type="text/javascript"> </script>
<script language="Javascript" src="sha1.js" type="text/javascript"> </script>
<script language="Javascript" src="base64.js" type="text/javascript"> </script>
<script language="Javascript" src="mouse.js" type="text/javascript"> </script>
<script language="Javascript" src="PGencode.js" type="text/javascript"> </script>
<script language="Javascript" src="PGpubkey.js" type="text/javascript"> </script>

<script language="Javascript">

var keytyp = -1;
var keyid = '';
var pubkey = '';

function getkey()
    var pu = new getPublicKey( document.getElementById( "public_key" ).value );
    if(pu.vers == -1) return;

    document.getElementById("keyid").value = pu.keyid;

    /* I didn't end up needing this variable in the encrypt function, since I already knew the key type was Elgamal */
    /* document.getElementById( "pktype" ).value = pu.type; */

    pubkey = pu.pkey.replace(/\n/g,'');

/* Pass in the data to encrypt */
function encrypt(text)
    if( document.getElementById( "keyid" ).value.length )
        keyid=document.getElementById( "keyid" ).value;

    if(keyid.length != 16)
        alert('Invalid Key Id');

    /* Since I already knew my key type was Elgamal, I didn't need this block of code. I just set "keytype=1" below. */
    keytyp = -1;
    if( document.getElementById( "pktype" ).value == 'ELGAMAL')
        keytyp = 1;
    else if( document.getElementById( "pktype" ).value == 'RSA')
        keytyp = 0;

    if(keytyp == -1)
        alert('Unsupported Key Type');
    keytyp = 1;

    return doEncrypt(keyid, keytyp, pubkey, text);

var encrypted_data = encrypt("sensitive data here!");

Special Note: I was forced to send the data through a URL (i.e. a GET rather than a POST). This forced me to encode the data prior to attaching to URL. Contains "+", so we must use "encodeURIComponent()" instead of "escape()". (See below for how the server-side PHP script will handle the received data.) */
encrypted_data = encodeURIComponent(encrypted_data);

/* Do something with the data. */
window.location = ""+encrypted_data;

Here's what happens on the server side, in the PHP script that receives it. (In the previous blog post about the PHP side I just pulled the encrypted data from a file, but here's what I was really doing.)
/* Reverse the effects of the Javascript "encodeURIComponent" */
$encrypted_data = rawurldecode( $_GET['encrypted_data'] );

/* From here, jump right into the PHP script outlined in the previous post, commenting out the line where you're pulling the encrypted data from a file, since you just got it from the GET request. */

High-Toned and Fancy To-Do

Last night Child and I received some last-minute invitations to an dinner event that featured the First Lady of Guatemala, Wendy de Berger, as a speaker and Michael Ballam playing the piano and singing as the entertainment. It was an event held by Enterprise Mentors International, which gives microloans to people in developing countries.

One of the other people at our table told a story about a trip he had gone on to Guatemala to help build an orphanage. The government had given them the land for the orphanage, a vacant lot that was strewn with broken and rusted-out cars. When they started clearing out the cars in preparation for building the orphanage, they found out that they ended up displacing thirty children who had been living in the cars! Those thirty kids were the first ones into the new orphanage when it was built, however, so I guess it turned out okay. Really makes you think, though.

Our poor waitress was having a difficult time. She was very pleasant when we first arrived, complimenting Child's grandma on her dress, but later that evening Child noticed that she looked like she had been crying. Child asked her what was wrong--apparently she had hit someone in the head with a pitcher of water. The people attending this weren't your average Joes (except Child and I), they were people like Michael Ballam, the Guatemalan First Lady's entourage, general authorities from the Church of Jesus Christ, the guy who does Music and the Spoken Word for the Mormon Tabernacle Choir, and high-powered businessmen from around the country who help with the third-world mentoring. I could picture the MC getting up, "Um, we regret to announce that Michael Ballam is no longer performing...he got hit in the head with a water pitcher..." The more lady was probably scared to death that she'd get fired or something.

At the end of the evening, one person at each table won the centerpiece, a beautiful vase of flowers. Good thing I've always dreamed of winning a vase of flowers, because I ended up getting ours! Anyway, I gave it to Child.

Friday, November 02, 2007

Setting up GnuPG (GPG) for use with PHP

Step 1 (failed):
$ pecl install gnupg

downloading gnupg-1.3.1.tar ...
Starting to download gnupg-1.3.1.tar (-1 bytes)
.............done: 124,416 bytes
5 source files, building
running: phpize
Configuring for:
PHP Api Version: 20020918
Zend Module Api No: 20020429
Zend Extension Api No: 20050606
`phpize' failed

Step 2 (success). Some information drawn from, a basic tutorial on how to install PECL extensions.
$ cd /usr/lib64/php/extensions

(This is where my PHP extensions [files with .so extension] are stored)
$ pecl download gnupg
$ tar -zxvf gnupg-1.3.1.tgz
$ cd gnupg-1.3.1/
$ phpize
$ ./configure
$ make
$ make install

"" now appears in /usr/lib64/php/extensions
Now I need to install the extension in the php.ini file
$ whereis php.ini

$ vi /etc/php.ini

Find the list of extensions in php.ini, in my case headed by "[extension section]". Add "" to the end of the list, save and exit.
Now I need to restart apache so the extension takes effect.
$ apache2ctl graceful

Now do some PHP coding. Assumes you have GnuPG (gpg) installed, and have set up your key pair ("gpg --gen-key"). Some of these steps might be unnecessary, but after hours of fiddling around, I'm not about to walk through it again and find the essential ones.
/* Change this to your own path */

$encrypted_data = file_get_contents("encrypted.gpg");

$res = gnupg_init();


/* Change this to your own fingerprint. Find your fingerprint by running "gpg --fingerprint" from the commandline. Comment this out when everything works. */

/* Put your own fingerprint and passphrase here. Also, this function will fail unless you see Important Note #1 below */
gnupg_adddecryptkey($res, "ASDF1234QWER5678ZXCV9012ASDF3456QWER7890", "put your secret passphrase here");

/* You'll want to comment this out when everything is working */
echo gnupg_geterror($res);

/* This function will fail unless you see Important Note #2 below */
$plain = gnupg_decrypt($res, $encrypted_data);

Important Notes:
1. To get gnupg_keyinfo() to work, you'll need to let your webserver have some access to your keyring. Do the following (replace "www" with the group that your own webserver runs under):
> cd /home/bch36/.gnupg
> chown :www pubring.gpg trustdb.gpg
> chmod 660 pubring.gpg trustdb.gpg

2. To get gnupg_decrypt() to work, you'll need to grant more access. Note that the webserver will now have access to your secret key! However, if you don't do the following, the gnupg_decrypt() function will fail and you'll get the following warning when printing out gnupg_geterror(): "Warning: gnupg_adddecryptkey() [function.gnupg-adddecryptkey]: get_key failed in ..."
> chown :www secring.gpg
> chmod 660 secring.gpg

As a possible point of interest, I'm only doing decryption because I want a remote webpage to use Javascript to PGP encrypt data and send it to my PHP file, which can then decrypt it. I guess it's a workaround for not having SSL. I'll try to post an entry about the client-side next (Javascript PGP).

Tuesday, October 30, 2007

Um...Where'd My Bank Go?

It was odd enough that my banking website didn't load--no "Under Construction" sign, no "We're having problems, come back later." Just a "UCCU-who?" from Firefox.

But when calls to any of their half-dozen numbers returned the same message, "All sockets are busy, try later," I started wondering. This is, you know, like, my BANK. It has all my money in it! Do my debit cards still work? Should I start looking up the details of the FDIC insurance?

Since I already had errands to run in that part of town, I swung by and asked what was up. Apparently they hadn't been robbed or gone out of business or had a run on the bank, just all their computerized systems were down.

Two questions come to mind:

1. Is there no backup system in place? A bank seems like a pretty critical place to have not working.

2. Why are ALL their systems (phone AND computer) on the same network? You'd think a bank would understand the concept of "not having all your eggs in one basket."

Anyway, we'll see how long it takes to get working again...

Friday, October 26, 2007

NaNoWriMo Google Gadget

I create a Google Gadget for NaNoWriMo (an event where writers get together and try to write 50,000 words during the month of November.

Here's a screenshot:

If you want to add the NaNoWriMo Google Gadget to your Google homepage, click the button:

Add to Google

Thursday, October 25, 2007

Prof IDs Types of Ticked-Off Customers

...which kind of customer are you when a company does you wrong? KSL had an article about a professor that identified three different kinds of ticked-off customers.

Utilitarian: just wants the problem fixed. Don't bother saying "Sorry," that might even be construed as trying to buy off the customer with emotion.

Oppositionals: aggressive, see the interaction as a battle. Give them options, let them feel victorious.

Relationals: all about the relationship. They want the "I'm sorry," save the compensation for after the apology.

Thinking back to three (more or less) recent experiences with big-name companies (T-Mobile, Comcast, and USAA Insurance), I think I fall into the Utilitarian category. Each time, I simply wanted them to refund me a incorrect charge, a month's payment for the month I was without service, and an incorrect late fee (respectively). I measure how sorry a company is by how willing they are to correct their mistake.

Tuesday, October 23, 2007

Post 100! Thesis Proposal Defense Successful!

Well, the thesis proposal defense was a success...not that it was ever really in doubt. Dr. Goodrich is a good adviser and I was pretty prepared. Next step: the thesis itself.

I don't know if I've ever mentioned it here, but my thesis is on showing that using mixed initiative results in better performance from a massively large number of heterogeneous robotic agents in a wilderness search and rescue domain, than using either adaptive or adjustable autonomy.


Sunday, October 21, 2007

Prime Reporting

Here's a prime bit of reporting from an article on, referring to a man found murdered:

"In fact there are no witnesses and therefore no suspects."

So I gather two things from this: the only possible suspects are people who are witnesses, and all witnesses are instantly suspects. "Well, that wraps up THIS case! We don't have any witnesses, so we don't have any suspects. Too bad someone wasn't watching out the window when the crime was committed, so we could have suspected them."

Saturday, October 20, 2007

Proving Tautologies

Several years ago I took a computer science class, where I seem to remember my teacher saying something about there being no easy way to prove tautologies (a tautology is a Boolean equation that is always true). I'm no expert in the field, but looking online it seems like there are two main techniques for proving that an equation is a tautology: using a truth table (brute force method) or doing a proof.

However, it seems to me that you might be able to use a probabilistic technique as well. If you have a Boolean variable named "A" (a Boolean variable can have two values: true and false) then it has a 50% chance of being true, and 50% chance of being false. "A" is therefore not a tautology, because half the time it would be false and a tautology must always be true.

But what about A & B? If A is true and B is true, than A & B is true. If either or both A and B are false, then A & B is also false. Here is the truth table technique:

A B | A&B
F F | F
F T | F
T F | F
T T | T

Note that A & B is always false, except where A and B are both true. Therefore, A & B are not a tautology, because a tautology must always be true.

But here's where the probabilist method comes in. If there's a 50% chance of A being true (note how half the rows have A as True), and there's a 50% chance of B being true (note how half the rows have B as True), then there's a (1/2) * (1/2) chance of A & B being true. That's a 1/4 chance of A & B being true, and we can double check against the right-most column in the truth table above: 1 out of 4 results are true.

So that's & ("and") but there are a lot more logical operations.

  • And / conjunction ( & )
  • Or / disjunction ( | )
  • Not / negation ( ~ )
  • Implication / if-then ( --> )
  • Equivalence / biconditional / xnor / if-and-only-if (<--> )
  • Not equivalent / exclusive disjunction / xor ( <-/-> )
Plus several more, but these are the basic ones.

Since this post is already getting long, I'll just list the probability equations for those logical operations, without explaining how they can be derived (in my case, from the Venn diagrams).

e.g. "Pa" means the Probability of "a".

  • And: Pa*Pb
  • Or: Pa + Pb - Pa*Pb
  • Not: 1 - Pa
  • Implies: 1 - Pa + Pa*Pb
  • Equivalence: 1 - Pa - Pb + 2*Pa*Pb
  • Not Equivalent: Pa + Pb - 2*Pa*Pb
So let's take a look at a sample equation and prove whether it's a tautology or not.

(a & b) | (~a) | (~b)

Truth table:

a b | a&b | ~a | ~b | (~a | ~b) | ((a&B) | (~a | ~b))
F F | F | T | T | T | T
F T | F | T | F |
T | T
T F | F | F | T |
T | T
T T | T | F | F |
F | T

All the rows have a True in the right-most column, so that is a tautology. Now let's try the probabilistic method.

(a & b) | (~a) | (~b) =
(Pa*Pb) | (1-Pa) | (1-Pb) =
(Pa*Pb + 1 - Pa + Pa*Pb + Pa*Pb*(1-Pa)) | (1-Pb) =
(Pa*Pb + 1 - Pa) | (1-Pb) = (note that as we distributed Pa over (1-Pa), Pa & Pa simplifies to just Pa, and we can cancel terms out)
Pa*Pb + 1 - Pa + 1 - Pb - (Pa*Pb + 1 - Pa)*(1 - Pb) =
Pa*Pb + 1 - Pa + 1 - Pb - Pa*Pb + Pa*Pb - 1 + Pb + Pa - Pa*Pb =
= 1

"1", or 100% chance of being true, proving it's a tautology.

Is that better than a truth table, or a formal proof? It sure looks longer than a truth table, and a formal proof would probably only have a half-dozen lines at the most.

Well, a formal proof requires you to memorize various laws and rules. This technique just took basic algebra. And a truth table grows very quickly: there's 2^n rows, where "n" is the number of distinct variables. In this example, there were two: "a" and "b", so there were 2^2 or 4 rows. This probabilistic method, on the other hand, grows nicely. Let's look at another simple example:

a & b & c & d & e & f & g & h & i & j

How would this proof play out formally? With 10 different variables, there would be 2^10 or 1024 rows in a truth table. That's a big table (we're ignoring shortcuts that we can sometimes take when making a truth table, since we can only "sometimes" take them and we want a method that is always fast). Using our probabilistic technique, though, the proof is this:

Pa*Pb*Pc*Pd*Pe*Pf*Pg*Ph*Pi*Pj =
(1/2)*(1/2)*(1/2)*(1/2)*(1/2)*(1/2)*(1/2)*(1/2)*(1/2)*(1/2) =
= 1/1024

So this particular proof is only three lines, and it shows that there's a 1/1024 chance of each row being True. We need 1024 / 1024 or "1" or 100% chance of each row being True, so we can see we're a long ways from having a tautology.

With this massively long post written, I have to say that I have no idea if this is really unique, or even helpful. It seems like it might be, but I don't know enough about the problem to know if my insight is really an insight. Come Monday, I'll ask around the lab and see if anyone knows whether this way of proving tautologies has been done before.

Sunday, October 14, 2007

Poor Neighbors of Newlyweds

I feel for the neighbors of newlyweds (such as the other tenants of the four-plex Child and I live in), and Child isn't helping. A couple mornings ago, she yelled at the top of her lungs, "Stop biting me!"

Of course, she was talking to Acouchi, her cat, but I'll bet the neighbors didn't know that. Since the other three tenants are all single middle-aged women, I'm going to get some glares next time I see one of them...

Macs (*spit*)

Child's MacBook has a warranty, and let's just say it's a good thing.

A couple weeks ago, it died with a gray screen, and an icon of a folder with a question mark on it. Not being a Mac person, I had to go online and find a few websites, but nothing they suggested helped. Child took it into the store, where they told her it was a crashed hard drive. Unless we wanted to pay $1500, all her stuff was lost.

She finally got back her computer, and a few days later, the same thing happened. Identical crash screen. We took it in again. This time, it was a simple corrupted file, and they were able to back up all her data, fix the disk, and restore the data.

Now out comes the suspicious side of me. Was it really a crashed hard drive the first time? Or was it just simpler to SAY that and toss in a new hard drive? A lot less work for the employees, and they weren't getting anything out of it because it was under warranty.

I understand that different problems can result in the same "error message," but a software problem is a lot different than a hardware problem, and I would think would result in a different crash screen. Not being hugely familiar with Macs or hardware problems I don't know for sure, but until then, I'm going to remain suspicious.

If nothing else, if it had been a PC, it wouldn't have cost $1500 to recover Child's data.

Friday, October 12, 2007


Well, while we're on the subject of lists, here are my favorite webcomics, excluding popular print comics like "Dilbert" that I also enjoy reading. Looking for a bit of humor in your life? Check these out.

By the way, I decided to add a "favorites" link to each comic, then realized it would be almost impossible to pick a favorite comic from some of them. So instead of a "favorite," I'll just post a "good" one. But...I'll still call them "Favorite Strips." Because they are. I just have...multiple favorites. I'll post a couple now, the rest later.

  • Schlock Mercenary - Science fiction, including "hard" sci-fi at times. Famous for its unfailing update schedule and vast archive. The drawing starts out crude (I speak comparatively, since it's still far better than my stick figures), but quickly improves. Early storylines are more "laugh-a-minute," while later storylines (in my opinion) sacrifice a little humor for more depth. Still one of the best webcomics out there. Favorite Strip (Eat hot suppression, psycho-bears!)
  • Ozy and Millie - Probably my next favorite webcomic after Schlock Mercenary. Also quite a large archive. If you like Calvin and Hobbes, you'll probably like this; it also shows the world through a child's eyes while giving them grown-up understanding. Throws an occasional political joke into the mix, although it's usually not very heavy-handed and I always enjoy them. Fairly regular update schedule, although after Schlock Mercenary's impeccable update record, you have to add that "fairly" qualifier to other webcomics no matter how often they update. Favorite Comic (Read the one before and after as well)
  • The Whiteboard - Paintballing-focused webcomic, but you don't have to be a paintballer to understand most of the humor (I'm not a paintballer either).
  • Dr. McNinja - He's a doctor. And a ninja. Sometimes random (Banditos! Riding raptors!) but almost always funny.
  • Faux Pas - Usually pretty funny, and the artwork is high-quality.
  • Freefall - Hard to classify this one. You can probably call it science fiction, although it fluctuates from very good humor and some very good science, to a very slow stretches where the humor is slim. Overall, definitely worth a read through the archives and keeping up to date on, but don't expect a consistent humor.
  • Starslip Crisis - Science fiction, although not as "hard" as Schlock Mercenary. Usually black and white.
  • Digger - Black and white webcomic about a wombat. Very well done, and the author has won awards for her style of black and white artwork. Unfortunately the archives are behind a payment gateway, so I can't recommend this one unless you don't mind paying or don't mind picking up in the middle of the story.
  • PhD - Life as a graduate student. As a grad student I find it hilarious (it's funny 'cause it's true!), and I think non-grad students would also find most of it funny.

Thursday, October 11, 2007

Short Story Markets

Alright, I'm slowly going to get around to sending my Writers of the Future-rejected stories to other markets. Going through the list of SWFA-qualifying venues, here's what I've found:

These are either science-fiction-only or mixed venues, mostly focused on short story. Perhaps this list will be added to in the future.

Monday, October 08, 2007

High Spur Canyon

On September 29, Child and I, along with a couple other friends, went through High Spur Canyon. For a last-minute decision ("Spur" of the moment? Ha ha!) it was an amazingly fun canyon. It was in the Robber's Roost area, which I've always found to be rather drab, but this canyon was surprisingly pretty.

Below is a picture of us in the "Corkscrew" section of the canyon; a red staircase of rock that spiraled downwards in giant wavy steps.

Unlike some slot canyons, High Spur would open up at frequent occasions, before quickly closing into slot again.

To my surprise, we also encountered water. More exactly, we encountered mud, covered with a thin layer of water. See the further pictures for an illustration.

This mud was interesting. It was incredibly slick: one of my friends stood on the shore of a wide, knee-deep pool, and the mud was so slick that he simply slid downhill until he ended up in the middle of the pool. The banks of the pool weren't even that steep! It made very tricky going, however, especially since I hadn't brought my "sticky-shoes," not expecting any water.

At least the mud smelled nice. Sometimes, the mud smells like stale water and rotting animal carcasses (and for good reason: the water is stale and has rotting animal carcasses floating in it). This canyon, however, had collected enormous amounts of pine needles (see picture below) which not only solidified the mud slightly, but gave a nice scent to the air and a nice tickle to bare feet wading in it.

At times, however, even the solidifying power of the pine-needles wasn't enough. There was a point where my feet would touch ground under six inches of water, then continue to sink until I was mid-thigh deep in mud. Walk fast and think light thoughts! ...and pixie dust would be handy also.

The trip was a little cool and incredibly windy, although nothing I couldn't stand in a short-sleeve trip for most of the hike. However, on the drive home through the mountains, we ran into the first snowfall I had been in this year. I wish we had had the inclination at the time to stop and get some more pictures, because it was pretty. The windward side of the pine trees turned white with blown snow while the lee sides stayed green, with the whole scene interspersed with small patches of brilliant gold deciduous trees.

At this point, however, my camera was full and I was scrambling to delete pictures of Child's mother's 50th birthday-party cookies to make room, but we were past the prettiest parts by the time I finished. It's hard to get good pictures through a moving car window anyway.

Overall, a wonderful camera and one I'd definitely do again. Watch out for the drive there, though. Once you get down to the area, it's still another two or three hour drive over four-wheel drive roads to get to the actual canyon.

Motorcycle Stuck in...Parking Spot?

I've always thought it would be nice to have a motorcycle. Cheap on the pocketbook, fun to drive, easy to find a parking spot.

Apparently, not as easy to get out of a parking spot.

Walking to school, I cut through the motorcycle parking section of a campus parking lot. There I saw something rather amusing: a person on a motorcycle couldn't get out of their parking spot. They had parked right against a row of cars, which blocked him/her from going forward. The two motorcycles on either side were parked so close, however, that he/she could only back straight out. However, the row of motorcycles behind him/her was so close that they couldn't turn to either side as they backed out.

The person was sitting there, half out of the parking spot, with the back tire already hitting the motorcycle behind them, with a presumably-puzzled look on their helmeted face.

I found it amusing.

A New Low in Family Communication

It's always been a standing joke in our family that the children who are off living on their own never get the family news. Want to visit a relative? Better call first, they may have moved. And gotten married. And had a baby.

Anyway, today I received an email from a canyoneering buddy, expressing his condolences at my grandmother passing away.


Granted, I knew she wasn't expected to last the weekend, but this was the first solid (?) news I'd gotten. Apparently this guy had gotten a mass-email sent out by my dad's work, also expressing condolences (they both work for the university), then emailed me. Let's see...Dad --> Dad's Work --> Friend --> Me.

You think that's bad? The forwarded email says she passed away on October 5. Today is the 8th. We have GOT to work on our communication in this family!

But mostly I find it amusing. :) I guess you have to understand our family; we're all so close that it's just assumed that news sort of "flows" out to everyone. And it's not like I wasn't expecting it anyway. So here's to the next life, and the doctrine of eternal families. See you soon, grandma!

Thursday, October 04, 2007

General Updates...

Been a while since I posted, so I thought I'd give a general update.

In positive news, I learned a few days ago that my last entry to Writers of the Future did actually get an Honorable Mention. Yay. But not good enough. I even know what I'm doing wrong: my stories aren't short, succinct, and sciency-enough.

I really just need to find a new market for my stories, but WotF is such a prestigious contest that it's hard to give it up. Either find a new market, or change my writing style. And I'm tempted to attempt to write a story that's more in line with the style they like publishing, just to see if I can do it. Not giving up my artistic integrity, of course...

Halloween is approaching fast. It's Child's favorite holiday, so I'll be dressing up. As something. Anyway, I can't remember if I mentioned that I already got an inmate-grown pumpkin (connections in low places), and just acquired a gourd with a painted face a couple days ago. (singing) "It's beginning to look a lot like Halloween!" (/singing)

The Quark writing group has been going well. The new leader (onelowerlight) is very dedicated, and a good writer to boot. As with the beginning of each semester, we have a lot of newcomers to the group, and they still have a lot to learn about being in a writing group. At the last meeting, I realized there were two big things that people in a writing group need to remember.

1. Don't defend your story. Don't explain your story. As a matter of fact, while your story is being critiqued, you shouldn't say anything at all except to ask for clarification of a critique or to say "thank you." The critiquer isn't interested in your explanation of why you wrote something the way you did, they just want to tell you what they had problems with. Later, on your own time, you can decide what critiques to accept and which to reject.

2. Stay on target. Keep your critique succinct and to the point. Don't feel you need to rationalize your critique by listing or describing other books you read; that just wastes valuable time and does little to increase the credibility of your critique. If the person is smart, they'll accept or at least consider your critique without a list of references. If they're dumb, they'll reject your critique regardless of your list of references. Even more important, don't stray into unrelated topics. "Your character's name is Julius? That reminds me of a totally unrelated book I read about Julius Caesar that yada yada yada..."

Tuesday, September 25, 2007

Thesis Proposal Scheduling

I finally finished my thesis proposal. After the seventh or so draft, my adviser finally approved, and I passed it on to my second committee member. Surprisingly enough, he didn't have any problems with it either. The next step: scheduling my thesis proposal defense.

"The real hard part of a thesis proposal defense isn't writing the proposal," said my adviser. "It's getting the three professorial members of your committee together in the same place at the same time so you can defend it."

I thought he was joking. He wasn't.

Round One

Dr. Goodrich suggests the second week of October, a nice two weeks away. Clever person that I am, instead of just sending a general email asking if Dr. Snell and Dr. Olsen are available that week, I pick four times on four different days, then send an email asking if they are available those times.

Dr. Goodrich: I'm free
Dr. Snell: I'm free two of those times
Dr. Olsen: That whole week is out.

Curses. On to...

Round Two

Will the third week in October work?

Oct. 15YesNoNo
Oct. 16NoYesYes
Oct. 17NoYesNo
Oct. 18NoYesYes
Oct. 19YesYesNo
Curses again! Are they deliberately arranging their schedules to make this impossible? Let's try...

Round Three

The last couple days of the first week in October? Any closer than that, and there won't be time to prepare, schedule, let Dr. Snell (the third committee member) read the proposal, etc.

Between Dr. Goodrich, Dr. Olsen, and Dr. Snell, the available times are:

Oct. 4After 1 pmBefore 11 amBefore 3 pm
Oct. 5Not 2 pmBefore 3 pmNot 10 to 1

October 4 is obviously out. However, a flaw in their carefully designed scheduling algorithm reveals that they have nothing scheduled from 9 to 10 am, or 1 to 2 pm.

Or is it a flaw? Is an hour long enough...especially since they have to leave time to actually get to their "scheduled activities"? (I put that in quotes, because my theory is that they just randomly choose times to be unavailable, finding my struggle to coordinate their schedules amusing.)

I'm guessing they'll say an hour isn't long enough. But...the fourth week in October? That's a month away! I'll almost be ready to defend my thesis itself, along with the proposal!

Sigh. We'll see what happens. I guess there's nothing stopping me from starting on my thesis itself while I wait to defend my proposal. The problem is that as I've coded my simulator up, my direction has already changed from what's in the proposal. In another month, my thesis won't look anything like my proposal and I'll have to defend a document that has no basis in reality. :)

Monday, September 24, 2007

Possum Man!!! Dun dun dun!!!

Child and I were watching "Heroes" with a friend (Balgram), and started wondering how a guy (spoiler alert) came back to life. This guy could steal super-powers from other people, so we came to the conclusion that he must have stolen super-powers from Possum Man. Dun dun dun! (end spoiler alert).

Balgram drew a depiction of Possum Man (note the bottle of ketchup in his hand), while I came up with his theme song, sung to the tune of "Particle Man" by They Might Be Giants.

Possum Man, Possum Man!
Doing the things a 'possum can!
Is he alive? Or is he dead?
Did he really get shot in the head?
Or is it just ketchup instead?
Nobody knows. Possum man!

Wednesday, September 19, 2007

Powderpuff Police

Provo High and Mountain View unofficially got together tonight to play a game of Powderpuff football.

Apparently, the principal wasn't too happy with this, and even after officially distancing Provo High from the event, he followed the event to the new location (Westridge Elementary) to try to break things up.

People weren't too happy about that, or about the fact that he called the cops (below picture, see the badge on the guy in the blue checkered shirt?). Some guy made the point (anyone know who the guy was?) that like it or not, the event was not being held on Provo High grounds, so the principal couldn't really do anything about it.

I couldn't really understand the principal's reasoning. At first I thought he didn't want the game to happen because he was afraid the students would be injured, and that made sense to me, even if I didn't think it was an adequate reason to cancel the game. People die canyoneering, but do I stop doing it?

Then I found out that apparently there's an "official" game later on this year. Will less people get injured at that? Would the assembled parents be any less quick to get their children to the hospital at this "unofficial" game than at the "official" one? Anyway, the principal finally realized that as good as his intentions were, he didn't really have a leg to stand on. He made a final announcement to the crowd and left.

Let the games begin!

Tuesday, September 18, 2007


A man came into the shelter yesterday. His dog had been hit by a car and crawled into a ditch, where it had been found by a policeman about midnight. The policeman brought the dog into the shelter and the shelter called the owner in the morning.

The owner was wearing a ratty Harley-Davidson tee-shirt, with chains hanging off him and a cigarette tucked behind each ear. The shelter employees told him about the fees (including $25 to license the dog, refundable if it died [it was in pretty bad shape]), then the police officer came in and gave the man a citation for letting his dog run at large. Meanwhile, the dog needed to get to a vet ASAP. All in all, the man had every right to be frustrated.

However, he stayed completely polite, "sir-ed" the policeman, "ma'am-ed" the shelter employee, and went over to the front door to hold it open when he saw a lady coming in carrying a heavy cat carrier. I've seen all sorts of people get angrier at far more trivial things than this guy did about his dying dog. If only more people could be like him.

Saturday, September 15, 2007

Bad News in the Writing Dept....

So, no winning for my Q3 submission to Writers of the Future. The finalists were posted today, and my name wasn't among them.

Oh well, on to the next story!

Comcast Part II: Nearing of the Cancelation

So, you remember last month? Here, let me remind you:

Finally, FINALLY, she tells me that all the additional changes/credits, whatever, should appear on my next bill. "As a matter of fact, it should be negative," she says.

I asked her three different times, in three different ways, to confirm that my next bill will be negative (i.e. Comcast should have credited me) and each time she confirmed it.

We'll see. I have more faith in Osama bin Laden converting to Christianity than in Comcast getting something right.
--"Comcast...DE MUERTE", 8/17/07

Well, welcome to Comcast de Muerte, part II. I'll give you a spoiler: it's going to end in cancellation.

I received our bill. It was 28.14. It's missing just one little thing: a negative sign.

No problem! I was smart last month: after finally resolving the issue, I asked the lady if she could write a note in her computer system stating, explicitly, "This guy's bill will be negative." "Sure!" she says. "Done!"

"Great," I say. "Now give me a reference number, so next month, when my bill ISN'T negative, I can call up and say, "Here's a note that says my bill should be negative."

"Here you go," she says, and gives me a number.

This month, my bill isn't negative. Again, no problem. Instead of calling, there's apparently a new "Chat Online About Your Bill!" service. I decided to try it. I log on. "Jeff" comes online to help me. "Hello! What seems to be your problem?" I start writing back, but before I can finish, Jeff leaves, with the chat message, "This issue has been resolved" or something along those lines. What the...?!

I try again. This time I get "Amis." This guy sticks around long enough for me to explain the situation and give him the reference number to the note. "Let me read the note...sorry, there's nothing here about your bill being negative. If you need more help, call Comcast. Goodbye." He vanishes with the same, "This issue has been resolved" note before I can even respond. Wow. Remember that picture I posted about Comcast's customer service being as smart as a brick? That was extreme flattery.

I go back to the phone and get Chuck. Chuck is nice, but confirms that there's no note about my bill being negative. "I *can* give you $10 credit for the 11 days you were without service," he offers. Thanks, but that's not really what I was promised or expecting. And 11 days? Where'd THAT number come from?

"Alright, Chuck," I say. "Give me the $10 credit." And what I didn't add, because Chuck doesn't care and I don't like taking my frustration out on low-level phone-answerers, "And when your supervisor approves it in the two days or whatever you said, I'm paying my bill and canceling."

So there you go. Comcast is gone. Not because I had to call them so often with problems that they made it to my "Fave 5" callers on my cell phone plan (it's true), and not because the service is spotty (also true), but because I was lied to. It's a "principle of the thing" now. I'll make do without internet at home rather than deal with a company whose employees will out-and-out lie to me.

...oh, and before I forget, when I signed up, I didn't want to give them my Social Security Number. Identity theft reasons and all that. "No problem," they say, "Give us a refundable $70 deposit instead." No problem. I give it to them. Now, what are the odds that I'll get that back? I'm not too confident.

Friday, September 14, 2007

Evan Almighty

Spoiler Alert! Don't read this post unless you want to hear about Evan Almighty.

Child and I watched Evan Almighty last night. Overall, I thought it was a good show. Some humorous bits, a good message, the usual. I did manage to spot one glaring plot hole: after Senator Long leaves the ark, the flood comes and washes the ark down to the congress building, where Senator Long has mysteriously managed to negotiate D.C. traffic, get through a discussion of his bill, and initiate the final vote, just as the ark comes to a rest against the building.

Evan Almighty also reminded me of an issue I have with "movies these days." (Do I sound old?) Anyway, the issue is this: no matter what the subject matter is, or how young of an audience the movie is aimed at, there always has to be some "bathroom joke" thrown in. If there's a dog, it has to bite someone in the crotch or defecate on the lawn. Does there really have to be a joke about passing gas in every move from PG on up? Did it really add to the movie? Are more people going to go see it because it's in there, or are fewer people going to watch it if it isn't? Sigh.

Thursday, September 13, 2007

Stealing Candy from Babies (new grad students)

This afternoon, I went to the "New Grad Student Fair" to help man the "Talk to a Current Grad Student" booth. One the table we had a bowl of candy, refilled occasionally by the people in charge of the fair.

Being grad students, we started figuring out ways to get more candy.

Noticing the refill-lady coming down the row of booths, I quickly emptied our bowl on the ground. We got a full refill, then I added the old candy back, filling our bowl to overflowing. Later, we noticed that occasionally some of the other booths would be left unguarded, yet their candy bowls were still being replenished. Their candy quickly migrated to our table, as well as a collection of unguarded pens. If we were Israelites, we would have found some way to double our manna supply and probably would have bummed a mug and tee-shirt off God to boot.

Of course, in an amusing act of cosmic retribution, a lady came by our booth and gave the three of us grad students a book of "Buy 1, Get 1 Free" type coupons. Moments later, someone came by the booth, chatted a couple minutes, then took a piece of candy, my coupon book, and walked off.

I started laughing, and the other two grad students quickly took their coupon books off the table and moved them to the floor. In the guy's defense, those coupon books were being handed out for free by one of the booths, so he probably thought we were just helping. Most of the booths had free pens, pamphlets, etc.

In the same vein, the Computer Science department held a social last night. At the end, I managed to make off with an entire "probably-would-have-ended-up-as-a-leftover" pizza, while Child nicked a half-jug of her favorite salad dressing. The trick is to look official and not stop walking if you hear someone yelling at you.

Wednesday, September 12, 2007

Balanced Breakfast

Giant ├ęclairs. Part of a delicious, if not particularly nutritious breakfast. (I love Child's day off!)

Monday, September 10, 2007

Deadly Horse Ride

Whoo. Been a while since I last posted. When I get home this evening, I'll post some pictures from my canyoneering trip over the weekend.

For now, though, here's an unfortunate incident that also happened over the weekend. I found out about it when I asked about two horses we had at the animal shelter this morning. Apparently, two men were riding the horses when a fisherman's dogs and possibly some kids spooked the horses. One of the men was thrown off, but his foot caught in the stirrup and he was dragged 75 feet until his horse either fell into the reservoir or ran into it, drowning the man (who was probably unconscious, if not already dead, by then).

The police brought the horses to the the shelter yesterday, although two people (I think one was a family friend, and the other a relative) came to pick them up this morning. No charge by the shelter of course, it's the least you can do in a situation like that.

On an unrelated note, I was walking a dog around the inmate-run garden behind the shelter, and stopped to talk to one of the inmates while he petted the dog. A deputy who was out inspecting the tomatoes yelled at me to stop talking to them. What, the inmates aren't people now? I can't say hello? Maybe it's against the rules, I don't know, but either way, none of the other deputies have ever had a problem with me walking by.

I mentioned the incident to one of our inmates that works in the shelters, and he said the lady had a history of being a jerk to the inmates. It just seems bad form to me. Go ahead and be a jerk to people who can respond, otherwise you're just a bully.

Quandary Canyon

Over the weekend, a friend, his brother, and I went on a canyoneering trip. We chose Quandary Canyon in the San Rafael Swell of southern Utah as our destination, mostly because it was infamous for its "keeper potholes" and we wanted to try out some gear.

Keeper potholes are so called because once you're in them, it's very difficult to get out. In the picture below, my friend is spanning a pothole...not one we had to go down inside.

In the below picture, my friend is using a "Happy Hooker" to get out of a keeper pothole. This is a long pole with a hook on it. Attached to the hook is a set of "aiders," like a rope ladder with loops for your feet (but made out of the same material seat belts are made of). Using the pole, he set the hook on the lip of the pothole, then climbed up the aiders.

Another technique we used on a different pothole employs "pot-shots." These are simple canvas bags that you fill with sand (or in our case, mud), then throw them up and over the lip of the pothole. The weight of the sandbag offsets your weight as you climb up and out. Note how small the bag is. It doesn't really need to be much bigger; the friction of the rope over the lip of the pothole, added to the weight of the bag, really is enough to offset your weight.

The final technique for avoiding keeper potholes is to use a guided rappel. After one person is over the other side and wedged in a crack (me), the tension on the rope is used to let the person slide right over the top of the pothole. While my friend is posing for the camera in the picture below, I'm slowly being squeezed to death in the crack.

Quandary Canyon was one of the more "open" canyons I've traversed. It had a few sections of narrows, but unlike some slot canyons, it would be possible to climb out in several locations in case of a flash flood. Unfortunately, it didn't have a lot of the deep reds and yellows that places like Zion National Park has, but it was pretty in its own drab, gray sort of way.

Near the end of the canyon, a little growth had sprung up. Standing above the other two guys in the party as they pushed their way through it, I thought they looked like they were in an African safari with their white "pith helmets."

Stopping for lunch. Don't drop your food down the hole, it could be hundreds of feet to the bottom...

We climbed up a steep slope in what we thought was the right direction...only to find nothing but a cliff on the other side. Oh well, we'll take a picture, try to salvage at least something out of the climb.

And the worst part of the trip: going home.