Saturday, March 22, 2008

Farm

Even though the vast majority of the animals we receive at the clinic are dogs and cats, we do cover some rural areas. At the moment, we have a goat, a few chickens, two pigs (I forget to get a picture of them), and we often have horses coming through.




Someone who's into LOL cats should come up with a caption for this. Preferably more unique then, "In your copier, jamming your paper."

Thursday, March 20, 2008

It all makes sense now!

Child and I were talking this evening and something she said made several puzzle pieces fall into place. In short, she mentioned that the way her (extended) family shows another member of the (extended) family that they don't like them is by not Showing Up. For a graduation, birthday, wedding, family reunion, whatever. Absence = Dislike.

Not only did it make some of her family's behavior that I've observed make sense, it also explains why she was..."unhappy" about our wedding.

First, here are a few things about my family:
  1. My immediate family is large (I'm the second of 10 kids), and my extended family is more of the same.
  2. Even though no two of my mom's siblings live in the same state, there's always communication, ranging from family reunions to homeschooled kids being passed from family to family to casual spending the night on the way to somewhere else.
  3. My parents married off three of their kids (me, a brother, and a sister) in a five-month period--and with an extended family the size of ours, weddings, graduations, etc. happen with monotonous frequency.
  4. My relatives range geographically from Alaska to Arkansas.
As a result, it's not considered necessary, or even expected, for relatives to show up for every event. When you only have three kids (like my wife's parents), you might expect all the relatives to show up for each of their weddings, nicely spaced two years apart or whatever. When you have three weddings in five months (like my family), however, there's no way relatives can get time off work and collect from all corners of the U.S. to attend.

Thus, when Child and I were married, a few nearby aunts and uncles showed up to say hi and offer their congratulations, but that was about it. They didn't consider it a big deal, and neither did I.

Child, on the other hand, did. I think Child consciously understands that my relatives weren't trying to make some point by not attending, but I think her subconscious still equates their not Showing Up with an active dislike of her/us/whatever.

Tuesday, March 18, 2008

Thesis Project

I guess I've never really described my thesis project in detail, and since my wife recently heard a horror story about a husband who had been pretending to go to school for, like, four years before his wife found out he wasn't, I decided it might be wise to show a little bit of what I'm currently doing.

My thesis project, in short, is to show that letting a robot (well, 200 of them, in simulation) and an operator jointly decide the correctly level of autonomy (independence) results in them doing better (at a wilderness search and rescue mission) than if just the robots decided on the level of independence they wanted, or just the operator decided on the level of independence to give the robots.

(Officially: "Given a search task in a Wilderness Search and Rescue domain performed by a large heterogeneous group of agents, a mixed initiative system implementing both adaptive and adjustable autonomy performs better in a complex or high workload situation than a simply adjustable or adaptive system.")


This is the main window. The little yellow squares are the 200 robotic searchers, and the big yellow box is their current search area. At the moment they're on "Low Independence," indicated by their yellow color. If they were red, they'd be on "High Independence," which basically just means that they'd be creating their own search areas, rather than waiting for the supervisor to do it.



Somewhere on the map, there's a missing child. (Actually, there's five so we can average the length of time to find them.) The picture at the top is a picture of the kid(s), and the 16 items below him are his backpack items.


As the searchers search, they find items. Most of the items are "distracting" items, such as the three that they've currently found. If they look in the right place, however, they'll find the backpack items that the children lost as they wandered, which will let the supervisor narrow down their search and (hopefully) find the children.


I'm in the middle of having handfuls of experimenters come in so I can gather data, but I'm sort of simultaneously writing the thesis, at least the parts I can without actually having data.

As the initial results are showing, the scenarios where the robots make all the decisions take top marks in several measures (such as the amount of ground they can cover, and the speed of response when a backpack item is found), while the scenarios where the supervisor makes all the decisions takes top marks in several other measures (such as the number of backpack items found), but the scenarios where they jointly make decisions comes a close second in MOST of the measures.

So it's a tradeoff. What measures are the most important? And are you willing to sacrifice being best in a FEW measures to be second-best in a LOT of measures?

Monday, March 17, 2008

Cat and Tape

Last night we had a friend over for some games, and amused ourselves by sticking little pieces of tape on Acouchi. Don't get me wrong, I'm not a proponent of cat-abuse, but Acouchi enjoyed it. She'd go crazy getting the tape off, then she'd race off and hide behind some furniture. A moment later she'd reappear stalking the abandoned piece of tape, then pounce on it and repeat the whole process over again when it became re-stuck to her. This morning, I'm sitting here typing while she's trying to eat the tape. I better take it away before it becomes stuck (heh heh) in her throat.

Sunday, March 16, 2008

Songs 'n' Stuff

Liking an odd assortment of music, I thought it would be amusing to see what my answers to the following questions were, to I asked Prin to tag me. Note that I downloaded the entire torrent of 1500 songs from OCRemix.org, so it dominates my collection of 2191 songs. As a result, statistically speaking, 70% of the songs should be game remixes. :) If the songs are game remixes, I've put the game (none of which I've played) in ( ).

1. How are you feeling today?
Just Chill (Chrono Cross) - The Pancake Chef - Surprisingly applicable.

2. Will you get far in your life?
Trisram Rock (Diablo) - mp - Unsurprisingly inapplicable, unless you read something into the game that the music comes from. In which case, I'm in trouble...

3. How do your friends see you?
Through the Dark (Chrono Trigger) - DarkSworde - Hmm. Do they see me through the Dark (it seems like it should be capitalized)? And is that because I'M in the Dark, or they are? Or is it just a Darkness separating us? Either way, it doesn't bode particularly good...

4. Will you every marry?
Explosive - Bond - Not sure how to take this. Since I'm already married, can I change the question to read "How will your married life be?" And can I assume that "explosive" refers to our love for each other, in a "fireworks" kind of way, rather than our daily interpersonal relationship in a "bombs" sort of way? :)

5. What is the favorite theme of your best friend?
To Far Away Timescapes (ChronoTrigger) - DJ StarChild - Apparently I either have a time-traveling friend, or he/she's just a history buff.

6. What is the story of your life?
Come Home (Secret of Mana) - JAXX - Interesting. Is it a plea for me to return home, or just a caustic note that I keep going home?

7. How was it like in high school?
Static Aversion (Silent Hill 2) - Steve Pordon - Well, I didn't attend high school, I took a correspondence course. Did I have an aversion to that? I didn't really care one way or the other, high school was more or less just something to get out the way so I could get to college. Maybe that's the "static" part of the aversion. Hmm.

8.How can you advance in life?
Mystery of a Planet (Rainbow Six: Rogue Spear) - Jared Hudson - Alright, apparently I need to drop computer science and go into astronomy. Or maybe it's saying to become a full-time science fiction author! I wouldn't mind that, since that's my hobby anyway.

9.What is the coolest thing about your friends?
Last Breath, First Breath (Phantasy Star 4) - djpretzel - My first free-form interpretation is that they'll be there for me whenever I need them. Sounds good.

10. What's in store for the weekend?
I Feel Love - Vanessa Mae - Alright! Finally, a good one! (And a good song, too.) Wife, are you reading this? Unfortunately, being Sunday night, I have another week to wait. Sigh.

11. What song describes you best?
Track 2 - Unknown Artist - Awww. The story of my life: anonymity. Actually (does some research) the song is called "Ride On" from Final Fantasy VIII, by Nobuo Uematsu (one of my favorite composers). Hmm. I like that. "Ride On." No matter what happens, just keep pushing through. Don't let anything keep you down.

12. How about your grandparents?
Frame of Mind - Beyond Good and Evil - Kind of a random question to begin with, and not sure how to interpret the answer.

13. How is your life going?
The Beggars - Les Miserables - Aiee.

14. What song will play at your funeral?
Dead End - Nobuo Uematsu - Perfect! ...well, perfect except for my religious beliefs that death isn't, in fact, the end of much at all. Including but not limited to life, relationships, beliefs, and desires. So, not very perfect at all. But amusing. ;)

15. How does the world see you?
Cruella De Vil - 101 Dalmatians - Ouch.

16. Will you have a happy life?
Shoo-Rah! Shoo-Rah - The Hitchhiker's Guide to the Galaxy - I...think this is...good. Shoo-Rah!

17. What do your friends really think about you?
No Flesh Allowed (Castlevania 2) - goat - Someone, feel free to interpret this for me. Please.

18. Are there people that secretly want you?
Misery - Tran-Siberian Orchestra - Another...intriguing one. Misery for me? For them? As a result of them wanting me? Or not wanting me? Look, whoever you are, I'm happily married. ;)

19. How to make myself happy?
Angel - Shaggy - "Girl, you're my angel." I love you, Child. ;)

20. What should you do with your life?
Trippin' on Ecstasy (Sonic the Hedgehog 2) - PxFury - Uh, no thanks. However, this would have been even funnier if it had been the answer to the previous question...

Anyone interested in being tagged...?

Wednesday, March 12, 2008

Three and Nine

Child's coworker switched Days Off with her, so I was left with a day with no user studies to conduct and time on my hands. I headed down to the animal shelter, where things were moderately busy.

There was a border collie mix that I played with for a few minutes:





And we had a lab mix that had nine puppies a while ago. Today was their first day trying out "real food," although their little teeth were plenty sharp.

Their meal consisted of puppy food softened with warm water, mixed with meaty chunks of food samples, and garnished with liquid food meant to be fed through an IV (hey, we figured it had to have just about every vitamin and nutrient in it).

Yes, it's being prepared on the lid of a trash can (well washed). The idea was that it was the only thing big enough to seat nine, but then I made that rather moot by putting the food in the middle of it rather than around the edges.



The puppies' mother had been removed to let them eat in peace, and they were just starting to settle down for a nap when I took the food in.


It didn't take long for them to wake up, and pretty soon it wasn't a problem that I had piled the food in the middle of the trash can lid; the puppies took care of spreading it around.



And now, if you passed by the pictures of the border collie with nothing more than a "Oh, that's cute," Sherlock Holmes would cluck his tongue at you. Go back and look at the pictures again.

Monday, March 10, 2008

Minorities


This is a picture that a school photograph took of our lab about a year ago. I believe it was for an alumni magazine or brochure that talked about advances in the Computer Science department.

Either way, the picture found its way to the BYU homepage, where it now links to an article about mentored learning, where undergraduates work with faculty on research. Rather amusing, since none of the people in the picture are undergraduates.

Another funny thing: the girl in the background doesn't even belong in our lab. She works up the hall, but anytime public pictures are taken, they call her in as a matter of form. She's female, Muslim, Indian, and (although you can't tell from this picture) is in a wheelchair. That's four minorities right there, and the department wants to display her whenever possible. Not to mention she pretty much has her pick of scholarships. She's a great person, and I've worked with her on several projects in classes we've taken together.

Sunday, March 09, 2008

Lotsa Fur

I went to the shelter yesterday. It was crazy busy, so it was a lot of fun. Here's a key for organizations that use volunteers: keep them busy. There's no worse feeling for a volunteer than feeling that they aren't being useful.

A family came in that was interested in a malamute we had. I don't know if it was because of the spring-like weather we've had the past couple days, but the malamute was shedding huge clumps of fur. I put them in the Get Acquainted room, then got them a brush and told them to brush the dog. Twenty minutes later, they had an enormous pile of fur and had decided to adopt him.


Near closing time, a family came in that spoke only Spanish. From time-to-time we'd have inmates that spoke Spanish (human inmates, not animal), but no one at the shelter that day spoke Spanish. The family wandered around a little, looking at the animals, but couldn't really communicate what they wanted. I was thinking to myself, "You know, I could probably use the online Google Translator to talk to them...but it would be awkward, and they probably don't have the money to adopt an animal anyway." Yes, even I fall prey to stereotypes sometimes.

The dad and one of the daughters finally went out to the car, but the mother and another daughter paused in the lobby to look over our board of "Happy Tails" (success stories). Finally I decided to just go for it. I motioned the mother over, then pulled up Google Translator. It was still difficult, but I finally found out that they wanted to adopt a cat, and that the little girl had actually already picked out the one she wanted. They didn't have any problem with the adoption fee, and twenty minutes later they walked out with a new pet cat.

Friday, February 29, 2008

Big Dog Day

Today was Big Dog Day at the animal shelter. Two Great Danes, a Saint Bernard that was only six months old but still as large as most of our dogs, and the biggest lab I've ever seen, probably 90 pounds. The picture of the lab doesn't really get across how big he is (although he knows "Shake!") but the Great Dane is pretty obvious.

The smaller Great Dane:


The larger Great Dane:

The six monthold St. Bernard:

The Labrador retriever:

Thursday, February 28, 2008

Mandatory Update

My wife has forbidden me from reading until I update my blog.  She found out the hard way that after I get a stack of new books from the library, I'm not good for much for the next few days.

Mandatory update completed.

Monday, February 11, 2008

Mafia!!!

For last week and a half, Child and I have been playing an online version of Mafia. For those of you unfamiliar with the game, a small number of the players are chosen as the Mafia, while the remaining players are Innocents. The Innocents try to discover who the Mafia are and lynch them, while the Mafia do their best to convince everyone that one of the Innocents is in fact the secret Mafia and get them lynched. It's a very fun game.

Well, this past game, out of 15 players, we had three Mafia members. We lied, we deceived, we mis-directed, and by the end of the game, we came out flawlessly victorious with all three members still alive and the Innocents lying in a heap in the Town Square. I believe it was unprecedented--usually at least one Mafia member gets lynched by the end of the game.

I told Child to watch out--if I could get away with lying for that long, there was no telling what other secrets I might have!

...actually, she doesn't really have to worry. As a general rule, I'm not particularly good at lying, as she's found out in previous Mafia games. I just got lucky this time around, and figured out that the less I talked (and ironically, the less I defended myself against flying accusations), the better off I was.

Thursday, February 07, 2008

Trapped!

Acouchi loves the outdoors. We made the mistake of taking her outside to look at the snow a few months ago and now she'll sit at the front door and meow or paw at it for hours. The problem is that she is very much an inside cat--declawed on her front paws, and terrified of anything that moves.

I finally came up with a solution--that laundry basket kennel. With a bucket of cat food for weight.


UCPets.com News Article

The local newspapers picked up the story on the UCPets website.
Notice how the BYU paper doesn't have a link. That's because the article never got published. Yeah, funny story about that. Child hates BYU and everything BYU related. When the newspaper called, she answered my phone. When the caller said who they were, she put the phone against her chest and said "It's that crappy newspaper."

I talked to the girl at the other end, answered all her questions, then hung up and looked at Child. "Um, if you put the phone against your chest, the person at the other end can hear quite clearly what you're saying."

"Oh," she said.

The article never appeared in the paper.

Not that I mind; my thesis adviser has been "strongly encouraging" me to get my thesis done, and I'd just as soon he didn't see I've been spending time working on another website.

Wednesday, February 06, 2008

Super Tuesday

Yesterday, I went to vote in the primaries. Child drove me to the polling station, but when I saw the two-hour long line, I told Child that I changed my mind and I'd just vote in November. She countered with "Who cares about the presidential elections? Your vote only really counts in the primaries." I countered with, "This is Utah, and a Mormon is running for president. If you're voting for Romney, is your vote really necessary in either of the elections?"

Sure enough, Romney took the Utah primaries with 90% of the vote, followed distantly by McCain with 5%. Still, I guess it's a good thing to exercise your civic duty.

Anyway, Child left me to stand for two hours in the hallway while she went off and did other things. While slowly shuffling along, I got a little bored. Child saved the text messages I started sending her, but I'll reproduce them here for your convenience.
Lonely...I'm so lonely...

Day 3: it seems like I've been stranded here for months. The fluorescent lights are beating down...No water or food. No sign of rescue, but am building a fire.

Can feel myself going crazy--am contemplating voting Huckabee. Another survivor slaps sense into me...signal fire unsuccessful. Ate leg.

Reached end of hallway! Line curves and goes back up other wall. Am standing next to fire alarm. Temptation is strong. Realize evacuation would reset line. Bad.

Discovery: shouting "vote Huckabee!" at a Mormon polling station equivelent to shouting "fire!" in crowded theater. Also bad.
Actually, I really did shout "Vote Huckabee" while in line, just to see if I could get a brawl to break out, and from somewhere up the line, someone called back, "Vote Romney!" Child told me I should have called back, "OK!"

The main reason for the lengthy wait was that some genius in the election office decided to combine several precincts into one voting area, but they didn't increase the number of old people manning those books where they check off your name. The process wasn't very efficient either: the first old guy would ask your name, then put a checkmark next to it in a giant book. The second old guy would also ask your name, then write it down (a lengthy process since he was like 90 years old) in his own book. It seemed a little redundant.

The voting itself took about 30 seconds, and to back up my claim that the old people were the hold-up, there was only one, and occasionally two people actually at any of the five electronic voting machines at any given time.

Monday, February 04, 2008

E-Cards

My beautiful wife sent me an E-card, so I decided to send one back. While filling out the form, however, I came across something that seemed a little...wrong.

Step 4: Do you want to send this card to more than one person? Yes or No?

Well, when your sentiment is "You're the only one for me," probably not. Unless, of course, you're a player and have several irons in the fire; in that case, send it to your entire email list and see who responds.

It reminds me of the guy last year that I saw getting into his car at the flower store, carrying two bouquets. "Hey, nice work!" I called to him.

"Oh, no, one's for my dad to give to my mom," he said.

"Of course, of course," I said, giving him a knowing wink, and getting in my own car.

Sunday, February 03, 2008

Snowstorm of Puppies

Along with the snowstorms of...snow that we've been having, the shelter is starting to enter Puppy Season, leaving us with a snowstorm of puppies. ...puppystorm? Either way, we had two litters last week, and another pregnant dog come in on Friday. Add that to the litter of kittens we'll start having, and we'll be keeping pretty busy.

Tangentially, I had another idea: PSAs. Public Service Announcements. When I worked at a radio station 10 years ago, we'd do PSAs for non-profit groups, like "Quit Smoking!" or "Keep your guns out of reach of your kids!" I'll bet we could find a few radio stations that would be willing to do some PSAs for the animal shelter.



Monday, January 28, 2008

Encounters of the Trojan Kind

When I got home from school today, I had an instant message from a friend. We only talk every few weeks, but I had just stopped by his work to see him that morning. Also, my name's been in a few newspapers because of articles about the http://www.ucpets.com website. The IM said, "Hey, isn't this you?" and had a link to what looked like an MSN news site.

"Why would the website story be on MSN?" I wondered, and clicked the link.

The IM had been sent by a virus on my friend's computer, and the link led to a malware website whose purpose was to install a Trojan on the victim's computer.

Fortunately, I use Firefox with NoScript installed, and my computer was safe. Just goes to show, however, that even the most paranoid computer user (myself) can be tricked.

Tuesday, January 22, 2008

Prayer

Several months ago, Child lost her scriptures at church. My guess is that some kindly soul saw them laying on a pew, decided to find the owner, then ended up taking them home at the end of the day when they couldn't find the owner. I'm sure they were planning on bringing them back the next week, but forgot or lost them.

Regardless of the circumstances, Child's scriptures were lost, and she was very attached to them. We visited the lost and found every Sunday, asked people, and did everything we could to find them. No luck, and the months went by.

Finally we realize--hey, we're religious. We believe in prayer. Four months after the scriptures were lost, we start praying for their return, and the next week they show up on a table in the hall at church. Thank you, God, for nudging whoever it was to remind them to bring the scriptures back.

Wednesday, January 16, 2008

17 Victims in Morgue Shooting Remain Dead

I just saw a headline on CNN: 1-ton Rodent Remains Discovered.

That's odd, I thought to myself. Is there some reason it would suddenly become...undiscovered? I mean, don't get me wrong, I'm glad it remains discovered. It's always a setback to science when some previously-discovered rodent becomes undiscovered, but apparently it can happen. I just wouldn't have guessed that something remaining discovered would have been newsworthy. You know? It just happens all this time. For instance, I discovered that my Cinnamon Toast Crunch remained in our cupboard overnight, which was nice because I wanted it for breakfast. Apparently the internet remains discovered as well, because I'm using it right now. Not to mention about 30 billion other things across the world. Must have been a slow news day.

Sunday, January 13, 2008

X-treme Sledding

Yesterday, our family went on our annual Sledding Behind the Van trip.

On this trip, we go to some plowed-but-still-snowy country road, tie six or seven sleds on ropes behind the family van, then dad will drive while everyone on the sleds tries to hurl each other into snowbanks.

Child got a couple pre-sledding pictures with my camera, but as soon as I can snag some during-sledding pictures from the parents, I'll post those as well.

Wednesday, January 09, 2008

Busy Busy Busy!

Wow, there's a lot on my plate right now. Let's summarize, shall we?
  1. Thesis! This is actually my top priority right now. I'm at the stage where I'm a little stuck, and need to do some thinking about exactly what data I want to collect, and how I need to arrange the experiments to get it.
  2. Finishing up the Utah County Pets website. If it weren't for the snowstorm outside, I could go down to the animal shelter and finish most of the stuff up. Soon enough, though.
  3. Business idea. I have a product that I think would be interesting to produce, but no idea where to start and no time to do it, even if I did know where to start. However, as soon as I get time and really want to start on the project, I have a few relatives who'd be good resources, and I actually have a short get-together tomorrow with a mentor from the entrepreneurial center at school.
  4. Writing. Wow, this is where I really need to get motivated. I have a ton of story ideas, but I haven't been very good at sitting down and pounding them out.
  5. Apartment hunting. This is low on the priority list, but still at the back of my mind. We have a place, but we'd like a better place. It'll just depend on how much time/motivation Child and I can scrape together.
  6. Planning fun stuff. I want to get together a couple friends and do some snow-caving.

Monday, December 31, 2007

Lost n Found Pets

I have a new website under construction at http://www.ucpets.com.

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: Bloomberg.com. 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.

...Dachshunds?)

Sunday, December 23, 2007

Customers

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 morning...now 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.

"That...is 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

Munchkins!

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."

"Oh."



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;">
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.2 (GNU/Linux)

mQGiBEcrXY0RBACao9CBQL/BggPP5HcnWXLV/O5MEYhAAg3kl6l6Xu3CVKtGlw5d
P8CJSZuPZSrcQs+GI4PAkS1AH4f7Ex7phwUIMak6ufv5wX5iWU4JwxDCuvYOmlyz
l4iMsH5uJSI7QvQ7zl9QR3KC/qONZ5EWYiW7Gu/1yJ6JuykM2vumhi9CMwCg9KZy
vh5HDynAEf+8PbeD9z7aRcED/1x2muLD1gt5fSBSyyCjcvYtQ8od+UT/GwVpCMRu
Eq+t0uBrrecKmQ9GzkXhnP7KXLe7NDgTZwxAqTjMAkf+v/v5HOnBClOdzoS6EAFO
JotlB+SJiqXoClvhfHRJKhJwyMfKlmGUAWr9itaWQbdLXo5BGqDyaoXjw5jyQ4ch
yf5PA/wMjqDcUux8eOGivU63CGLHriHRMT2QtPSU73zDf3X8+X9EPZxLPZ7SCFTO
YCeyNBe5PvMsk0n8ZO/Gnezxh345NtJ9LXxk+65svGaxnTPQksdzOJAzE8KjlHDF
ZNGl52J6R/TPOxwBSt42ackTfn50IJJC/0kSvHRKck+Ll4MR4bQ7QmVuamFtaW4g
SGFyZGluIChHb29nbGUgQW5hbHl0aWNzKSA8ZXZpbG92ZXJsb3JkQGdtYWlsLmNv
bT6IYAQTEQIAIAUCRytdjQIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEJ3f
PyIusymjPNcAnAqILzNRYnpk2xD0ruE0OJyGZ4OoAJoDSV9G/rVmNVVjTb2PMwMm
v49UgbkBDQRHK12NEAQAsZW2iev4FbLAaYZJ073DP1F+RuzNaa+KplQ4pHnoci2l
7JqTD+iVlODdpWbzEYQursq5L2v7xdKRN56aga0AV4j0JCXouc5atYsGCY6OY7PT
OGWMB21y8K8I9LM/9h/YZblc+7pChqeC9dJ1pL8G9dhNh02cMyEwp8BuTsx39IMA
AwUD/3+Ei+zt/rWFFtHMMByvqyRnqk8U3QWiTgN8DhY+9lol7w2OCgKjFaVZUqzt
pQnAXO665er49suqrx8riZ6Lan0YO6swxjQ8C7BUj9/fMDAlDBfpOspWDMzYu/9e
fOAqk3z8PJlPIUlMxIwy6a1wuoSt2ko3wmP2VH6Mv+0dltrriEkEGBECAAkFAkcr
XY0CGwwACgkQnd8/Ii6zKaNB5ACg33r2gxWkiZidQLZRXg5sidz7KAoAn3ajmkuL
vO273vANfSgRe9MrGJAI
=aiWr
-----END PGP PUBLIC KEY BLOCK-----

</textarea>

<!-- 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)
{
    keyid='0000000000000000';
    if( document.getElementById( "keyid" ).value.length )
        keyid=document.getElementById( "keyid" ).value;

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

    /* 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');
        return;
    }
    */
    keytyp = 1;

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

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

/*
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 = "http://www.test.com/index.php?encrypted_data="+encrypted_data;
</script>

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.)
<?php
/* 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 http://www.php.net/manual/en/install.pecl.php, 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

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

/etc/php.ini
$ vi /etc/php.ini

Find the list of extensions in php.ini, in my case headed by "[extension section]". Add "extension=gnupg.so" 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 */
putenv("GNUPGHOME=/home/bch36/.gnupg/");

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

$res = gnupg_init();

gnupg_seterrormode($res,GNUPG_ERROR_WARNING);

/* Change this to your own fingerprint. Find your fingerprint by running "gpg --fingerprint" from the commandline. Comment this out when everything works. */
print_r(gnupg_keyinfo($res,"ASDF1234QWER5678ZXCV9012ASDF3456QWER7890"));

/* 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).