Thursday, December 18, 2008
Thursday, November 27, 2008
Howling Houses
Maybe it's time for a new apartment.
This apartment is small, old, very uninsulated, has only street parking (which makes our car a perfect target for eggs), and has taking up a repetitive mournful howling.
Normally this howling is bearable. However, this time, the house decided to start at 5:45 in the morning. This howling is loud enough to be easily heard even outside the house, a deep foghorn voice that makes the floors vibrate. It happens at one-minute intervals and the whole series lasts approximately the amount of time it took for water to carve the Grand Canyon.
Incidentally, it's water that causes it. We can actually recreate the noise by turning on the cold-water faucet of our bathtub. If you turn the knob just a little, no water comes out, but the pipes start vibrating and a mournful yodel deafens everyone in a two-block radius. Crank it up a little more, or turn on the shower, and you'll finally get the requested water.
Due to the nature of the beast, I figured it was one of our four-plexian neighbors running a dishwasher or something (at 5:45 in the morning...) but a desperate escape from the house followed by a circumnavigation showed our neighbors' windows to still be dark. In the morning (alright, it's technically morning, but in the REAL morning, when I SHOULD be getting up on a holiday, after staying up late the night before) I will actually knock on our neighbors' doors and ask if they have decided to take a four-hour series of one-minute cold showers at 5:45 in the morning. If not, Child and I might be moving to Draper a month or two before we planned on it.
This apartment is small, old, very uninsulated, has only street parking (which makes our car a perfect target for eggs), and has taking up a repetitive mournful howling.
Normally this howling is bearable. However, this time, the house decided to start at 5:45 in the morning. This howling is loud enough to be easily heard even outside the house, a deep foghorn voice that makes the floors vibrate. It happens at one-minute intervals and the whole series lasts approximately the amount of time it took for water to carve the Grand Canyon.
Incidentally, it's water that causes it. We can actually recreate the noise by turning on the cold-water faucet of our bathtub. If you turn the knob just a little, no water comes out, but the pipes start vibrating and a mournful yodel deafens everyone in a two-block radius. Crank it up a little more, or turn on the shower, and you'll finally get the requested water.
Due to the nature of the beast, I figured it was one of our four-plexian neighbors running a dishwasher or something (at 5:45 in the morning...) but a desperate escape from the house followed by a circumnavigation showed our neighbors' windows to still be dark. In the morning (alright, it's technically morning, but in the REAL morning, when I SHOULD be getting up on a holiday, after staying up late the night before) I will actually knock on our neighbors' doors and ask if they have decided to take a four-hour series of one-minute cold showers at 5:45 in the morning. If not, Child and I might be moving to Draper a month or two before we planned on it.
Sunday, November 09, 2008
Is Better the Best?
In the good ol' days, it was easy. Good or Evil: pick one.
Nowadays, it's choose from the following: Good, Better, Somewhat Good, Mostly Good, A Little Better, Probably Not The Best, Better Than The Last One, Good Except For That One Part, Decent, Probably Bad, Obviously Bad, and a dozen more shades in-between.
All these choices and the sometimes fine distinction between them can make it difficult--if not nearly impossible to choose. However, almost as bad as making no choice is choosing one and not continuing to look for a better one. Those people take a short-sighted view. "I already made a good choice, so there can't be a better one." Or, "I already made a good choice, so why should I bother looking for a better one?"
"I make enough money in my minimum-wage job to pay for cigarettes, so why should I bother looking for a better job?"
"I learned enough in high school to pass my driver's ed and get a slightly-better-than-minimum-wage-paying job, so why should I continue my education?"
"My boyfriend doesn't beat me, and he doesn't cheat on me very often, so why should I look for a different boyfriend?"
"I've already loudly proclaimed my political opinion to anyone who couldn't escape, so why should I consider that I might be wrong?"
"My church teaches good principles, so why should I consider that there might be even more good principles?"
There is more knowledge on Earth than anyone can learn, more experiences than anyone can experience, and an incredibly limited amount of time. Choose what you learn and what you experience wisely.
Nowadays, it's choose from the following: Good, Better, Somewhat Good, Mostly Good, A Little Better, Probably Not The Best, Better Than The Last One, Good Except For That One Part, Decent, Probably Bad, Obviously Bad, and a dozen more shades in-between.
All these choices and the sometimes fine distinction between them can make it difficult--if not nearly impossible to choose. However, almost as bad as making no choice is choosing one and not continuing to look for a better one. Those people take a short-sighted view. "I already made a good choice, so there can't be a better one." Or, "I already made a good choice, so why should I bother looking for a better one?"
"I make enough money in my minimum-wage job to pay for cigarettes, so why should I bother looking for a better job?"
"I learned enough in high school to pass my driver's ed and get a slightly-better-than-minimum-wage-paying job, so why should I continue my education?"
"My boyfriend doesn't beat me, and he doesn't cheat on me very often, so why should I look for a different boyfriend?"
"I've already loudly proclaimed my political opinion to anyone who couldn't escape, so why should I consider that I might be wrong?"
"My church teaches good principles, so why should I consider that there might be even more good principles?"
There is more knowledge on Earth than anyone can learn, more experiences than anyone can experience, and an incredibly limited amount of time. Choose what you learn and what you experience wisely.
Simply Selfish
Henry David Thoreau famously said, "Simplify, simplify." I've always wondered why he didn't simplify that to a single "Simplify," but our lesson in church today got me thinking of something else.
While simplification is an admiral goal, and one I've tried to follow with regards to material possessions, if taken to an extreme, it can be a very selfish course of action.
Want a simple, selfish life? Don't get married. Don't have kids. Don't have friends. Don't get involved in other people's problems. Always put yourself first. Don't stand up for anything, and for heaven's (which you don't believe in) sake, don't believe in anything.
Of course, you'll never know unconditional love, true joy, inner peace regardless of circumstances, the happiness from serving others, or anything else like that, but at least you'll have a simple life, right?
While simplification is an admiral goal, and one I've tried to follow with regards to material possessions, if taken to an extreme, it can be a very selfish course of action.
Want a simple, selfish life? Don't get married. Don't have kids. Don't have friends. Don't get involved in other people's problems. Always put yourself first. Don't stand up for anything, and for heaven's (which you don't believe in) sake, don't believe in anything.
Of course, you'll never know unconditional love, true joy, inner peace regardless of circumstances, the happiness from serving others, or anything else like that, but at least you'll have a simple life, right?
Pandora's Box
Last month, I went canyoneering through Pandora's Box in the Capital Reef area. Unfortunately, my long-time companion of three or so years of canyoneering finally bit the dust--or to be more precise, the sand. I was worming through a narrow crack and thoughtlessly left my camera case open. When I came out the other end, the case was full of sand and the camera was making funny noises. Shortly thereafter, it died a clicking death.
But I finally have a new camera! Almost identical to the old one, except with 1x more zoom (3x instead of 2x). This also means that I can finally plug in the memory card from the first half of the trip and get the pictures off it. Now, for your viewing pleasure...
Yes, these pictures are in reverse order. That's the way Blogger/I uploaded them, and I'm too lazy to reorder all 8.
This picture is halfway through the canyon. There were some sections that were very slot-y, but this was one of the more open ones. It still had some interesting rock designs, though.
I just liked the way this tree showed through the crack in the rocks.
This is actually the beginning of the slot part of the canyon. There was a little water at the bottom of the rappel, so we were switching from our hiking shoes to our canyoneering shoes.
Ironically, to get to the canyon, we had to climb to the top of a plateau. Here's a picture at the top.
This is what we had to climb to get to the top of the plateau. Before you get too impressed, people actually drive cows up it. It's hard to see, but there is a narrow trail--regardless, getting cows up it had to be an impressive feat. From a few bones halfway up, it was also apparently a non-perfect feat.
Going back in time, here is a picture from below the mesa. It was incredibly beautiful, which unfortunately doesn't come out in the pictures. As a matter of fact, I remarked to my friend that places like this was why pictures can never replace actually experiencing something. The scattering of stubby trees, loose boulders, crisp mountain air, amazing view...
And here is the view from the mesa.
There was a pretty long approach hike, so we started when it was still dark. It was beautiful seeing the sun come up over the mesa.
But I finally have a new camera! Almost identical to the old one, except with 1x more zoom (3x instead of 2x). This also means that I can finally plug in the memory card from the first half of the trip and get the pictures off it. Now, for your viewing pleasure...
Yes, these pictures are in reverse order. That's the way Blogger/I uploaded them, and I'm too lazy to reorder all 8.
This picture is halfway through the canyon. There were some sections that were very slot-y, but this was one of the more open ones. It still had some interesting rock designs, though.
I just liked the way this tree showed through the crack in the rocks.
This is actually the beginning of the slot part of the canyon. There was a little water at the bottom of the rappel, so we were switching from our hiking shoes to our canyoneering shoes.
Ironically, to get to the canyon, we had to climb to the top of a plateau. Here's a picture at the top.
This is what we had to climb to get to the top of the plateau. Before you get too impressed, people actually drive cows up it. It's hard to see, but there is a narrow trail--regardless, getting cows up it had to be an impressive feat. From a few bones halfway up, it was also apparently a non-perfect feat.
Going back in time, here is a picture from below the mesa. It was incredibly beautiful, which unfortunately doesn't come out in the pictures. As a matter of fact, I remarked to my friend that places like this was why pictures can never replace actually experiencing something. The scattering of stubby trees, loose boulders, crisp mountain air, amazing view...
And here is the view from the mesa.
There was a pretty long approach hike, so we started when it was still dark. It was beautiful seeing the sun come up over the mesa.
Friday, November 07, 2008
Acouchi
For all her surprising friendship with our neighbor's three dogs, Acouchi still does not like other cats.
We let Acouchi out the morning for a few minutes under close supervision. She eventually made her way to the backyard, realizing half-way there that she was being stalked by one of Bell's babies--now pretty much full-grown but still smaller than Acouchi (Acouchi is a good-sized cat).
At first it didn't worry Acouchi too much, but as the black cat continued to follow her, Acouchi finally stopped and had a staring match with him. Unfortunately, due to this staring match, she was unaware of a second cat sneaking up on her from the rear until the other cat had almost reached her. Acouchi finally heard the second cat and spun around, then realized she was surrounded. She hissed in several directions, then booked it back to our door.
Moments later, of course, she was back at the door wanting to go back out. Child and I decided to give her a bath, partly because she needed one, and partly because we hoped she would associate it with the outdoors and stop constantly whining to go out. She was not pleased with the bath, and spent the better part of the morning scowling at us.
Her day got worse. In the afternoon, Child brought over a kitten we are going to catsit for several days. If there's one thing Acouchi hates, more than dogs, more than full-grown cats, it's kittens. Acouchi hissed up a storm before fleeing to the bedroom, where I took her a chunk of cheese to apologize for bringing an intruder into her space.
Acouchi deigned to eat the cheese and I took her to our living room where Sushi was, and put her on top of a large box, out of Sushi's reach. She sat there and glowered at Sushi until Sushi fell asleep, then jumped down and ate Sushi's food. That accomplished, she crept up on Sushi but Sushi woke up, a crime apparently punishable by severe hissing and spitting. Sushi was still a little groggy and wasn't sure what was going on, and I told Acouchi to lay off. She jumped up on my desk in a huff and started shedding hair into my computer's fan, hoping to fry it like my last laptop, until I got her favorite cat toy and spritzed it with catnip to placate her. That granted me a few minutes of forgiveness, and both she and Sushi are now asleep. We'll see how the next few days go...
We let Acouchi out the morning for a few minutes under close supervision. She eventually made her way to the backyard, realizing half-way there that she was being stalked by one of Bell's babies--now pretty much full-grown but still smaller than Acouchi (Acouchi is a good-sized cat).
At first it didn't worry Acouchi too much, but as the black cat continued to follow her, Acouchi finally stopped and had a staring match with him. Unfortunately, due to this staring match, she was unaware of a second cat sneaking up on her from the rear until the other cat had almost reached her. Acouchi finally heard the second cat and spun around, then realized she was surrounded. She hissed in several directions, then booked it back to our door.
Moments later, of course, she was back at the door wanting to go back out. Child and I decided to give her a bath, partly because she needed one, and partly because we hoped she would associate it with the outdoors and stop constantly whining to go out. She was not pleased with the bath, and spent the better part of the morning scowling at us.
Her day got worse. In the afternoon, Child brought over a kitten we are going to catsit for several days. If there's one thing Acouchi hates, more than dogs, more than full-grown cats, it's kittens. Acouchi hissed up a storm before fleeing to the bedroom, where I took her a chunk of cheese to apologize for bringing an intruder into her space.
Acouchi deigned to eat the cheese and I took her to our living room where Sushi was, and put her on top of a large box, out of Sushi's reach. She sat there and glowered at Sushi until Sushi fell asleep, then jumped down and ate Sushi's food. That accomplished, she crept up on Sushi but Sushi woke up, a crime apparently punishable by severe hissing and spitting. Sushi was still a little groggy and wasn't sure what was going on, and I told Acouchi to lay off. She jumped up on my desk in a huff and started shedding hair into my computer's fan, hoping to fry it like my last laptop, until I got her favorite cat toy and spritzed it with catnip to placate her. That granted me a few minutes of forgiveness, and both she and Sushi are now asleep. We'll see how the next few days go...
Tuesday, November 04, 2008
Voting
Child and I voted.
How do you vote in the Presidential Election and not vote for a president?
We also went to Krispy Kreme and got a free donut for having an "I Voted" sticker. Not for voting, because apparently that's bad, but for having the sticker.
How do you vote in the Presidential Election and not vote for a president?
We also went to Krispy Kreme and got a free donut for having an "I Voted" sticker. Not for voting, because apparently that's bad, but for having the sticker.
NaNoWriMo Update
Well, NaNoWriMo is still going. I think today will be the first time (this is the third attempt) that I've completed five consecutive days. (I started a day early because the website where I'm posting my text started displaying a word a minute starting the first minute of the first day. If that made sense.)
Granted, I cheated a little--yesterday I was able to steal a few hundred words from the short story that I'm basing my novel on. Regardless, my novel is up to 8007 words now.
On a different note, I still have pictures from my last canyoneering trip sitting on a memory card. My camera died on that trip (my fault, I crawled through a crack with the camera case open and the camera tried to eat some sand). My laptop has a built-in card reader, but unfortunately Ubuntu can't or I don't know how to get it to recognize it. Although I like Ubuntu and the idea of a free operating system over Windows and all of Microsoft's dirty business tactics, I'm no zealot and don't mind saying that there are a few inconveniences that you have to put up with.
I COULD just buy a USB card reader, but I need to buy a new digital camera, which would negate the need for separate card reader. After looking at new cameras, I decided that I didn't want a new camera for two main reasons.
One, I can get a used one for a quarter of the price.
Two, at 3.2 megapixels, my old camera's pictures were plenty large and clear. If I got a new 8 or 10 MP camera, I would only gain the ability to blow my pictures up to GIANT poster-size instead of REGULAR poster-size, and each picture would take up three times the space on my harddrive.
Well, to be fair, with a new camera I'd probably get a little more zoom, and possibly slightly better video-taking abilities, but it's still not worth the extra price and increased filesize. Who knows. If I don't manage to win an Ebay auction in a few days, I might cave in and buy the new video recorder/camera I was looking for at Walmart.
Update: won the auction. Camera coming soon! When it does, I'll post pictures of the canyoneering trip.
Granted, I cheated a little--yesterday I was able to steal a few hundred words from the short story that I'm basing my novel on. Regardless, my novel is up to 8007 words now.
On a different note, I still have pictures from my last canyoneering trip sitting on a memory card. My camera died on that trip (my fault, I crawled through a crack with the camera case open and the camera tried to eat some sand). My laptop has a built-in card reader, but unfortunately Ubuntu can't or I don't know how to get it to recognize it. Although I like Ubuntu and the idea of a free operating system over Windows and all of Microsoft's dirty business tactics, I'm no zealot and don't mind saying that there are a few inconveniences that you have to put up with.
I COULD just buy a USB card reader, but I need to buy a new digital camera, which would negate the need for separate card reader. After looking at new cameras, I decided that I didn't want a new camera for two main reasons.
One, I can get a used one for a quarter of the price.
Two, at 3.2 megapixels, my old camera's pictures were plenty large and clear. If I got a new 8 or 10 MP camera, I would only gain the ability to blow my pictures up to GIANT poster-size instead of REGULAR poster-size, and each picture would take up three times the space on my harddrive.
Well, to be fair, with a new camera I'd probably get a little more zoom, and possibly slightly better video-taking abilities, but it's still not worth the extra price and increased filesize. Who knows. If I don't manage to win an Ebay auction in a few days, I might cave in and buy the new video recorder/camera I was looking for at Walmart.
Update: won the auction. Camera coming soon! When it does, I'll post pictures of the canyoneering trip.
Friday, October 31, 2008
Halloween
http://www.ksl.com/index.php?nid=148&sid=4668843
Read that and tell me it's not a company trying to pull a marketing scam. Or maybe that's just obvious, and the joke's just going over my head.
To save you the time reading the link, it's a theater company that reported (today, on Halloween) that they hear ghostly footsteps on the stage, and a wooden sign flew out the window or something, and a few months ago some employees watched a mug lift in the air and crash into the wall. (Sure you didn't mean "floor" instead of wall?)
On a different subject.
We live in a little house, which is actually a four-plex. In the kitty-corner downstairs apartment, there's a lady with three dogs. There's a small, yappy chihuahua; a medium-sized, yappy terrier; and a fat, old (thankfully quiet) heeler of some sort.
Anyway, Acouchi's favorite pastime is sitting on my desk, watching the dogs out the front window. She's experienced them in person once before, when they decided to take advantage of our front door being propped open and came into our living room, driving Acouchi up the wall (literally, and from there onto an end-table). That wasn't too surprising, since Acouchi is terrified of everything. Child brought home a tiny kitten once, and Acouchi wouldn't come out from under the bed for hours.
However, apparently Acouchi has learned a little more about the dogs' personalities from watching them so long. I had the door propped open again while I brought stuff in yesterday, and Acouchi took the chance to explore the front porch. The chihuahua spotted her and raced towards her, yapping. I expected her to dash back inside, but to my shock, she lunged at the chihuahua!
Startled, the chihuahua jumped back, then cautiously came forward again and they sniffed noses for a minute. I was still in shock watching her, since this was incredibly out of character for our cat. Then the fat heeler came over, and Acouchi sniffed noses with her too before the neighbor came over to get the dogs back.
Child suggested it was because our neighbors (different neighbors) have a crowd of tough, outside cats who constantly boss the dogs around, and Acouchi may have seen how they did it and realized she could too. Either way, after I brought her back inside, she spent the rest of the day meowing and pawing at the front door, wanting to go back outside.
Read that and tell me it's not a company trying to pull a marketing scam. Or maybe that's just obvious, and the joke's just going over my head.
To save you the time reading the link, it's a theater company that reported (today, on Halloween) that they hear ghostly footsteps on the stage, and a wooden sign flew out the window or something, and a few months ago some employees watched a mug lift in the air and crash into the wall. (Sure you didn't mean "floor" instead of wall?)
On a different subject.
We live in a little house, which is actually a four-plex. In the kitty-corner downstairs apartment, there's a lady with three dogs. There's a small, yappy chihuahua; a medium-sized, yappy terrier; and a fat, old (thankfully quiet) heeler of some sort.
Anyway, Acouchi's favorite pastime is sitting on my desk, watching the dogs out the front window. She's experienced them in person once before, when they decided to take advantage of our front door being propped open and came into our living room, driving Acouchi up the wall (literally, and from there onto an end-table). That wasn't too surprising, since Acouchi is terrified of everything. Child brought home a tiny kitten once, and Acouchi wouldn't come out from under the bed for hours.
However, apparently Acouchi has learned a little more about the dogs' personalities from watching them so long. I had the door propped open again while I brought stuff in yesterday, and Acouchi took the chance to explore the front porch. The chihuahua spotted her and raced towards her, yapping. I expected her to dash back inside, but to my shock, she lunged at the chihuahua!
Startled, the chihuahua jumped back, then cautiously came forward again and they sniffed noses for a minute. I was still in shock watching her, since this was incredibly out of character for our cat. Then the fat heeler came over, and Acouchi sniffed noses with her too before the neighbor came over to get the dogs back.
Child suggested it was because our neighbors (different neighbors) have a crowd of tough, outside cats who constantly boss the dogs around, and Acouchi may have seen how they did it and realized she could too. Either way, after I brought her back inside, she spent the rest of the day meowing and pawing at the front door, wanting to go back outside.
Sunday, October 26, 2008
Maslow and Mormonism
I had an interesting epiphany today at church. The question someone raised, and which I've heard raised before, is "Why do Latter-day Saints spend money on building temples, when that money could be used to, say, feed poor people?"
I've never really had a good answer for that, until today. In 1943, Abraham Maslow outlined a hierarchy of needs, where in general, the most basic needs need to be fulfilled to move to higher levels of needs. For example, you're not going to worry about your job (a second-tier need) while you're not getting air because you're drowning (a first-tier need).
The idea is that every level of need must be fulfilled for a person to be a well-rounded person. The top needs are actually called "growth" needs, which meshes nicely with the LDS belief that the whole point of our earthly existence is to learn and grow. Just because a level of need isn't as basic as another, doesn't mean it's any less of a "need."
The epiphany was this: there are people at every level in the pyramid, so the church must address every level. Giving all their money to the poor focuses on a single level of need, and ignores other needs that are just as real and whose fulfillment is just as vital from an eternal perspective.
I think the reason the question is raised is because it's difficult for people with more basic needs to see the importance of fulfilling higher-level needs. It's natural for the person sick with palsy to think his physical needs take precedence over someone else's spiritual needs, and the bigger the gap between the needs, the harder it is to see the importance. However, Jesus knew that all levels of needs were important, and didn't spend 24/7 healing people and raising the dead, he also took time to teach.
Besides, if we take that approach that "no one leaves the bottom level until everyone leaves the bottom level," we're not only condemning everyone to a life on the bottom level, but we're ignoring reality. Realistically, there are people with every level of need, and those needs must be addressed.
Also, I would guess that the higher up the pyramid you are, the easier it is to pull other people up from the bottom tiers. It's a matter of leverage. If you gave every penny non-essential for your own survival to someone less fortunate, you'd never get an education, never have a family, never get a decent job. However, if you took a long-term view and saved some of that money, you could get all of the above, and end up helping far more people in far more ways than if you had taken a short-term view. Could the Church help four million people in 85 countries in one year if it took a short-term view on things? I doubt it.
The answer, as it often is, is moderation and a balanced approach. Focus resources on each level of need, proportionate to the needs. Give food to starving people, but save some money to build thrift stores to provide people with jobs and training, but save some money to build chapels where people can find spiritual fulfillment, but save some money to build temples where people can find beauty, inspiration, and self-actualization. In the eternal view, every need is as essential as the next.
Lots O' Things
Websites I'm currently working on:
1. http://circadiansaga.com/ I'm participating in National Novel Writing Month (NaNoWriMo), where I'll attempt to write 50,000 words in one month. I am making this website to automatically display one word of my work per minute, every hour of every day, until the end of November. I figure the more people that might be reading what I write, the more motivation there will be to continue and the less likely it will be that I'll give up.
2. http://utahvalleyanimalshelters.org/ The South Utah Valley Animal Shelter has started a joint project with the North shelter to make a combined webpage for people looking for a Utah County animal shelter. This page will then direct people to the proper website, North or South, for their area. Incidentally, if you click the link for the South shelter, I also built that website, but it's more-or-less done so I won't include it on my "Current" list.
Also, if you're a police officer, veterinarian, or someone else with access, you can log into the backend of the new website to an online animal license management section.
3. http://www.stormhorse.com/mole/ I built this website for Child's Saboteur games, and update it with pictures each time we play.
4. http://www.alpaca.net/ This is my latest weekend project. I hesitate to put the URL up because I had nothing to do with the "look" of the site--my work was in building them a back-end database-based manager for their alpaca herd. Granted, I'll also be replacing their "For Sale" and "Herdsires" pages with pages automatically generated from the database, but they wanted me copy their look-n-feel on those pages as well, so visually, nothing is really mine.
5. Top Secret URL. I have a business idea that I want to do, and I've started work on the website, but there's nothing I want to show yet. Sorry.
6. No URL. Child and I have been working on inventing a game, and I'm using making an online version of it as an excuse to really learn AJAX. However, it currently isn't accessible from anywhere but my computer. Since it's more of a learning experience for me, it'll probably never see the light of day, but it's still taking up time.
7. No URL yet. Child is working on starting an infant massage business, and I'll be making the website for it. Currently in the "thinking about what to do" stage.
8. And just to finish off the list, add another full 8 hours of work each day in my full-time job, where I work on dozens of different websites. With all this laid out, can I be forgiven for slacking off on blogging for a while?
1. http://circadiansaga.com/ I'm participating in National Novel Writing Month (NaNoWriMo), where I'll attempt to write 50,000 words in one month. I am making this website to automatically display one word of my work per minute, every hour of every day, until the end of November. I figure the more people that might be reading what I write, the more motivation there will be to continue and the less likely it will be that I'll give up.
2. http://utahvalleyanimalshelters.org/ The South Utah Valley Animal Shelter has started a joint project with the North shelter to make a combined webpage for people looking for a Utah County animal shelter. This page will then direct people to the proper website, North or South, for their area. Incidentally, if you click the link for the South shelter, I also built that website, but it's more-or-less done so I won't include it on my "Current" list.
Also, if you're a police officer, veterinarian, or someone else with access, you can log into the backend of the new website to an online animal license management section.
3. http://www.stormhorse.com/mole/ I built this website for Child's Saboteur games, and update it with pictures each time we play.
4. http://www.alpaca.net/ This is my latest weekend project. I hesitate to put the URL up because I had nothing to do with the "look" of the site--my work was in building them a back-end database-based manager for their alpaca herd. Granted, I'll also be replacing their "For Sale" and "Herdsires" pages with pages automatically generated from the database, but they wanted me copy their look-n-feel on those pages as well, so visually, nothing is really mine.
5. Top Secret URL. I have a business idea that I want to do, and I've started work on the website, but there's nothing I want to show yet. Sorry.
6. No URL. Child and I have been working on inventing a game, and I'm using making an online version of it as an excuse to really learn AJAX. However, it currently isn't accessible from anywhere but my computer. Since it's more of a learning experience for me, it'll probably never see the light of day, but it's still taking up time.
7. No URL yet. Child is working on starting an infant massage business, and I'll be making the website for it. Currently in the "thinking about what to do" stage.
8. And just to finish off the list, add another full 8 hours of work each day in my full-time job, where I work on dozens of different websites. With all this laid out, can I be forgiven for slacking off on blogging for a while?
Labels:
circadiansaga,
suvas.org,
utahvalleyanimalshelters.org,
websites,
work
Wednesday, September 17, 2008
Old Fashioned
So if you really need to buy a car, he says, "Go back to the old days a little bit and save up some money and have a down payment."
It's been harder getting credit to buy a car, so this is the solution a car salesmen offered.
Is saving money and making down payments really old-fashioned?
Wow.
Monday, September 15, 2008
Financial Advisors?
Speaking of Bank of America buying Merrill Lynch:
(CNN.com)
Wait--tell me why I'd listen to a financial advisor from a company which lost $17 billion and 65% of their share price in the last year?
The deal will create "a company unrivaled in its breadth of financial services and global reach," Bank of America said.
"By adding Merrill Lynch's more than 16,000 financial advisers, Bank of America would have the largest brokerage in the world, with more than 20,000 advisers and $2.5 trillion in client assets," the bank said.
(CNN.com)
Wait--tell me why I'd listen to a financial advisor from a company which lost $17 billion and 65% of their share price in the last year?
Saturday, August 23, 2008
PHP-ExcelReader Solutions
PHP-ExcelReader is great for working with Excel spreadsheets in PHP code, but it has a few bugs and tricks. Here's a couple that I've run into, along with solutions.
Problem: Fatal error: Allowed memory size of [varies] bytes exhausted (tried to allocate [varies] bytes) in...
Solution: In my case, I was trying to work with a 1.3 MB file, and PHP-ExcelReader used the full 32 MB of allowable memory before dying. Yeah, apparently it's got memory issues. Anyway, increase the amount of memory allowed to PHP.
First, try adding the following code in your PHP script:
>ini_set("memory_limit", "64M");
If this doesn't correctly up the memory limit, due to some restriction on your host, see if you can edit your php.ini file directly (mine is located /etc/php.ini). Change the line that says "memory_limit = 32M" to something larger, such as "memory_limit = 64M"
Problem: Dates
Solution: My dates showed up in my spreadsheet as 06/03/09, but were obviously stored differently in the backend of Excel. When I would get the value from PHP-ExcelReader, they were simply numbers (39967, in the case of 06/03/09). A little research showed that the numbers were days, offset from (discovered by trial and error) 12/30/1899. Not sure if this will hold for everyone. Anyway, to convert them to proper MySQL date format, I used the following MySQL code:
>FROM_DAYS(39967+TO_DAYS('1899-12-30'))
Problem: Cells missing values
Solution: Perhaps this should be classified more as a warning than as a bug. Then again, warnings don't bite and bugs do, and this bit me.
When reading through the cells in a row, don't use "foreach". The cells will have sequentially numbered keys, but there could be numbers missing!
For example, a row of data in your spreadsheet like so:
aaa bbb ccc ddd eee
--- --- --- --- ---
111 222 444 555
...will result in a row of data like so:
array(1=>111, 2=>222, 4=>444, 5=>555);
Note how if you're sequencing through it with "foreach", expecting to get a blank value for key "3", you won't get it.
Old code: foreach ($row as $col_num=>$cell)
New code: for ($i=1; $i <= $num_cols; $i++)
Problem: Fatal error: Allowed memory size of [varies] bytes exhausted (tried to allocate [varies] bytes) in...
Solution: In my case, I was trying to work with a 1.3 MB file, and PHP-ExcelReader used the full 32 MB of allowable memory before dying. Yeah, apparently it's got memory issues. Anyway, increase the amount of memory allowed to PHP.
First, try adding the following code in your PHP script:
>ini_set("memory_limit", "64M");
If this doesn't correctly up the memory limit, due to some restriction on your host, see if you can edit your php.ini file directly (mine is located /etc/php.ini). Change the line that says "memory_limit = 32M" to something larger, such as "memory_limit = 64M"
Problem: Dates
Solution: My dates showed up in my spreadsheet as 06/03/09, but were obviously stored differently in the backend of Excel. When I would get the value from PHP-ExcelReader, they were simply numbers (39967, in the case of 06/03/09). A little research showed that the numbers were days, offset from (discovered by trial and error) 12/30/1899. Not sure if this will hold for everyone. Anyway, to convert them to proper MySQL date format, I used the following MySQL code:
>FROM_DAYS(39967+TO_DAYS('1899-12-30'))
Problem: Cells missing values
Solution: Perhaps this should be classified more as a warning than as a bug. Then again, warnings don't bite and bugs do, and this bit me.
When reading through the cells in a row, don't use "foreach". The cells will have sequentially numbered keys, but there could be numbers missing!
For example, a row of data in your spreadsheet like so:
aaa bbb ccc ddd eee
--- --- --- --- ---
111 222 444 555
...will result in a row of data like so:
array(1=>111, 2=>222, 4=>444, 5=>555);
Note how if you're sequencing through it with "foreach", expecting to get a blank value for key "3", you won't get it.
Old code: foreach ($row as $col_num=>$cell)
New code: for ($i=1; $i <= $num_cols; $i++)
Labels:
exhausted,
fatal error,
memory,
PHP-ExcelReader,
phpexcelreader,
problem,
solution
Wednesday, August 13, 2008
It's your own fault, cat.
Our cat, for one of those reasons known only to the perpetrator, decided to go to the bathroom in our living room instead of in her litterbox. As a result, I locked her in her private room (without TV--remember that, parents, when you send your kids to their room!) which is a closet off our kitchen.
Acouchi decided to retaliate by kicking over her water dish, which I had newly filled this morning, but that plan backfired when she found herself standing in a pool of water. The only retreat was into her litterbox, which promptly clumped with surprising efficiency around her wet feet. Unaware of this, I finally decided she'd learned her lesson and I let her out, at which point she promptly streaked across the kitchen trailing litter.
She was heading for our bed, but I snagged her and carried her to the bathroom, where I filled the tub with an inch of water. Did you know that water is about as effective on cleaning litter designed to clump when it gets wet as it is on oil? I finally dried off Acouchi and let her go, but now I have a closet with a wet floor smeared with kitty litter.
And my wife's in California for 13 more hours.
Come home soon!
Acouchi decided to retaliate by kicking over her water dish, which I had newly filled this morning, but that plan backfired when she found herself standing in a pool of water. The only retreat was into her litterbox, which promptly clumped with surprising efficiency around her wet feet. Unaware of this, I finally decided she'd learned her lesson and I let her out, at which point she promptly streaked across the kitchen trailing litter.
She was heading for our bed, but I snagged her and carried her to the bathroom, where I filled the tub with an inch of water. Did you know that water is about as effective on cleaning litter designed to clump when it gets wet as it is on oil? I finally dried off Acouchi and let her go, but now I have a closet with a wet floor smeared with kitty litter.
And my wife's in California for 13 more hours.
Come home soon!
Thursday, August 07, 2008
Thesis Defense
My thesis defense is completed. I'm done! ...except for chasing down a dozen signatures, printing off copies of my thesis, running forms to various offices...I think it was easier to write the thesis.
Tuesday, July 29, 2008
Englestead
On July 26 a few friends and I hiked Englestead Canyon, dropped into Orderville Canyon, and finally dropped in the Narrows in Zion's National park.
Englestead was fun because of a giant 300-foot (91 meter) drop at the very beginning. You don't quite realize how high 300 feet is until you're hanging over the edge, and it takes well over four seconds for a falling rock (or body) to hit the ground...
Below is a picture at the head of the canyon. It's amazing how abruptly it starts, going from a slight slope to a sudden, 300-foot drop.
Below is us gearing up for the drop. Putting on harnesses, unpacking ropes, packing up everything else. We had a 300-foot rope for the rappelling side, and a 100- and 200-foot rope for the pull cord.
Here's our first person going down. The descent took probably 3 or 4 minutes, depending on how quickly you went.
Looking down the Big Wall from the top. I'm not even sure if you can see the bottom in this picture.
Once in the canyon, we were met by BOUSs (Bugs Of Unusual Size).
We had quite a few more rappels as well, but none close to the first rappel.
Once we dropped into Orderville canyon, water started appearing and things started getting a little greener.
Watch your head.
In the lower part of Orderville, we ran into a lot of tourists that hiked up the Narrows, and once we reached the Narrows themselves it was postively crowded.
Englestead was fun because of a giant 300-foot (91 meter) drop at the very beginning. You don't quite realize how high 300 feet is until you're hanging over the edge, and it takes well over four seconds for a falling rock (or body) to hit the ground...
Below is a picture at the head of the canyon. It's amazing how abruptly it starts, going from a slight slope to a sudden, 300-foot drop.
Below is us gearing up for the drop. Putting on harnesses, unpacking ropes, packing up everything else. We had a 300-foot rope for the rappelling side, and a 100- and 200-foot rope for the pull cord.
Here's our first person going down. The descent took probably 3 or 4 minutes, depending on how quickly you went.
Looking down the Big Wall from the top. I'm not even sure if you can see the bottom in this picture.
Once in the canyon, we were met by BOUSs (Bugs Of Unusual Size).
We had quite a few more rappels as well, but none close to the first rappel.
Once we dropped into Orderville canyon, water started appearing and things started getting a little greener.
Watch your head.
In the lower part of Orderville, we ran into a lot of tourists that hiked up the Narrows, and once we reached the Narrows themselves it was postively crowded.
Labels:
canyoneering,
englestead,
narrows,
orderville,
rappelling,
zions
Friday, July 18, 2008
Goals!
A couple weeks ago, I realized that I had a really hard time following through on things. There's a lot of things I want to do, but I'm terrible at sticking to a schedule and meeting goals. Here's just a sampling of things I'd like to do:
I decided to start with something easy: a regular exercise program. Coincidentally, Lifehacker just featured a website completely devoted to helping people get into a push-up routine. Theoretically, if you follow the program, you'll end up doing 100 consecutive push-ups after six weeks.
That's my first step. Other goals will follow.
- Exercise regularly
- Write regularly
- Regular morning prayers
- Wash dishes regularly instead of letting them build up
- Learn Spanish
- Learn guitar
- ...and several other things I can't think of at the moment.
I decided to start with something easy: a regular exercise program. Coincidentally, Lifehacker just featured a website completely devoted to helping people get into a push-up routine. Theoretically, if you follow the program, you'll end up doing 100 consecutive push-ups after six weeks.
That's my first step. Other goals will follow.
Disappointment
I didn't win the Writers of the Future contest, despite being a finalist.
Ah, well. On to the next story.
Ah, well. On to the next story.
Recover Deleted Ubuntu File
While working on a Firefox extension, Firefox deleted a file I was using, "overlay.js". It was gone, but fortunately, a few minutes previous, I had manually deleted a temporary backup file that my text editor was using, "overlay.js~".
Since I had manually deleted it, it should have been in my Trash Can, but it wasn't, probably due to the "~" at the end of the filename which indicated that it was a temporary file. Even "Show Hidden Files" didn't make it appear.
However, by going to a command prompt and viewing my trash folder there, it appeared:
ls: ~/.local/share/Trash/files
So I'm not sure why the Trash Bin didn't show it, but it was there.
Since I had manually deleted it, it should have been in my Trash Can, but it wasn't, probably due to the "~" at the end of the filename which indicated that it was a temporary file. Even "Show Hidden Files" didn't make it appear.
However, by going to a command prompt and viewing my trash folder there, it appeared:
ls: ~/.local/share/Trash/files
So I'm not sure why the Trash Bin didn't show it, but it was there.
Thursday, July 17, 2008
Massage Chair!
For the last month or so, Child's store has been participating in a contest sponsored by one of their suppliers. Every time one of their dealers' sales associates sat a person down in a massage chair for a test drive, the customer could fill out an entry form and their name would be entered in a drawing for a free chair. If their name was drawn, both the customer and the sales associate would win a massage chair.
Last week, right before we left for our vacation to Texas (more on that later), Child received a call from her boss. "You won!"
Child screamed. We were in the car, stopped at a stoplight with the windows down, and got some curious looks from nearby cars. I rolled the windows up. Child was still screaming.
In short, Child had won a $4,000 massage chair.
Child's boss called up the customer who had won the chair, an older gentleman, but had a hard time getting the idea across.
"Sir, you won a free massage chair!"
"What are you selling?"
"Nothing! You won a free massage chair!"
"Yeah yeah, but what's the catch? I have to pay 'shipping' and 'warranty costs,' don't I."
"No, it's totally free!"
"Look, just tell me what you're selling."
Keylogger Firefox Extension
This is my latest Firefox extension I'm working on. There's been too many times when I've lost a post on a message board, or an email, or something similar because my browser crashed. This Firefox keylogger will record that, so I can retrieve the lost text. I added the "Minimum string size to log" so it won't save really short text--like passwords.
Official Firefox add-On page: https://addons.mozilla.org/en-US/firefox/addon/8261
Quick-link to download: http://stormhorse.com/keylogger-1.1-fx.xpi
Updates
It's kind of curious how the more stuff that happens, the less regular I am about updating.
First things first, I can't even remember if I already posted about this or not, but I have a full-time job now. It's doing web programming with a real-estate company in SLC. I go into work on Mondays, and work from home the rest of the time. That's fortunate, because the office is 45 minutes of nasty interstate away, and I wouldn't have taken the job otherwise.
My advisor isn't too pleased--I know he's afraid I'm going to stick with web programming instead of getting into robotics, which would be a waste of my M.S. degree. However, my brother-in-law is working on starting up a robotics company, and I'm hoping he'll need an employee soon. If that's the case, I don't want to be committed to a more permanent job.
I think I'll put each chunk of update into it's own post. No one likes reading longs posts.
First things first, I can't even remember if I already posted about this or not, but I have a full-time job now. It's doing web programming with a real-estate company in SLC. I go into work on Mondays, and work from home the rest of the time. That's fortunate, because the office is 45 minutes of nasty interstate away, and I wouldn't have taken the job otherwise.
My advisor isn't too pleased--I know he's afraid I'm going to stick with web programming instead of getting into robotics, which would be a waste of my M.S. degree. However, my brother-in-law is working on starting up a robotics company, and I'm hoping he'll need an employee soon. If that's the case, I don't want to be committed to a more permanent job.
I think I'll put each chunk of update into it's own post. No one likes reading longs posts.
Labels:
full-time job,
ms degree,
real estate,
robotics,
web programming
Saturday, July 05, 2008
Give It An Hour...
I went to the shelter this morning. There were only two workers there, and they had been the only two working yesterday (the Fourth) as well. Apparently everyone else had taken a long weekend.
Experienced Employee had been warning New Employee that the Fourth was a crazy-busy time, what with all the pets getting scared by the fireworks and running off. When they had arrived at the shelter that morning, however, they had been surprised to find a single cat in Intake.
"Give it a few minutes," I said. "Animal Control is just starting their day."
A few minutes later, Spanish Fork pulled up with a dog. Then Provo. Then Springville. Then County. Two hours later, we had a packed Intake room and were processing dogs left and right, looking up microchips, and calling owners.
One guy had been watching his friend's dog, and it had escaped. Not only did this guy have to pay the impound fee, but the dog wasn't licensed, so he had to pay for a rabies shot and license as well. I wonder what his friend would think when he got home and found out his dog had been licensed in his absence?
I called another owner, and he informed me the dog belonged to his son. "Oh. Can I talk with your son then?" I asked.
"He's a minor," he said. Okay. Does SOMEONE want to come get the dog?
The man mentioned that his son was planning on breeding the dog, a female German Shepherd, while I was looking at the computer screen. Apparently the dog had been picked up by Animal Control in March, April, and now July. Three impounds meant the release fee was now $70, but it irked me that someone as irresponsible as this son obviously was, was planning to bring a whole new crop of dogs into the world. Take care of the one dog you already have, yeah?
Experienced Employee had been warning New Employee that the Fourth was a crazy-busy time, what with all the pets getting scared by the fireworks and running off. When they had arrived at the shelter that morning, however, they had been surprised to find a single cat in Intake.
"Give it a few minutes," I said. "Animal Control is just starting their day."
A few minutes later, Spanish Fork pulled up with a dog. Then Provo. Then Springville. Then County. Two hours later, we had a packed Intake room and were processing dogs left and right, looking up microchips, and calling owners.
One guy had been watching his friend's dog, and it had escaped. Not only did this guy have to pay the impound fee, but the dog wasn't licensed, so he had to pay for a rabies shot and license as well. I wonder what his friend would think when he got home and found out his dog had been licensed in his absence?
I called another owner, and he informed me the dog belonged to his son. "Oh. Can I talk with your son then?" I asked.
"He's a minor," he said. Okay. Does SOMEONE want to come get the dog?
The man mentioned that his son was planning on breeding the dog, a female German Shepherd, while I was looking at the computer screen. Apparently the dog had been picked up by Animal Control in March, April, and now July. Three impounds meant the release fee was now $70, but it irked me that someone as irresponsible as this son obviously was, was planning to bring a whole new crop of dogs into the world. Take care of the one dog you already have, yeah?
Thursday, July 03, 2008
Speed Racer
This evening, Child and I saw Speed Racer. (Tiny spoiler alert.)
Let me stop here and say that sometimes, Child and I have very different taste in movies. She likes things like "depth" and "plot," while I go more for things like fat men spinning ninjas around over their heads. It was funny, because while he was doing it, throwing stars started flying out of the ninja's clothes, then his car keys flew out and impaled themselves in the wall! Ha ha!
So, yeah. I liked the movie, while Child thought the only thing funny about it was me thinking it was funny. :)
Let me stop here and say that sometimes, Child and I have very different taste in movies. She likes things like "depth" and "plot," while I go more for things like fat men spinning ninjas around over their heads. It was funny, because while he was doing it, throwing stars started flying out of the ninja's clothes, then his car keys flew out and impaled themselves in the wall! Ha ha!
So, yeah. I liked the movie, while Child thought the only thing funny about it was me thinking it was funny. :)
Line of Fire
Child and I live in a four-plex. This morning, we were walking to our car when our neighbor, who was also the landlords' daughter, walked by.
"Laying low? Out of the line of fire?" she asked.
I stared at her. "Is something going on?" I asked.
"Oh, if you haven't heard, I probably shouldn't say," she said, and kept walking.
Aaiiiee!! What?! What's going on? Do we need to worry? Is it something to do with our apartment? Will we be living on the streets tomorrow?!
"Laying low? Out of the line of fire?" she asked.
I stared at her. "Is something going on?" I asked.
"Oh, if you haven't heard, I probably shouldn't say," she said, and kept walking.
Aaiiiee!! What?! What's going on? Do we need to worry? Is it something to do with our apartment? Will we be living on the streets tomorrow?!
Tuesday, July 01, 2008
Programming
In today's digital age, knowing how to program is a great ability.
In the past couple months, I've built Google gadgets to show Child and I how much money we have left in our bank account, and how many minutes we have left on our phone plan (see below).
(Most of the content [text/images] is grabbed directly from our account at tmobile.com. The black and white bar across the gauge is a custom addition, however. It marks where we should be for the time in our billing cycle--currently we have minutes to spare.)
I've also built custom RSS feeds for some forums and sites I frequent. This has a downside, however. In the past, whenever I'd get bored, I'd browse my collection of sites. Now, however, any updates to the sites are delivered right to my door, so it takes me 10 minutes to scan all new content, and I'm bored again.
My most recent project has been learning how to build Firefox 3 extensions. As my first example, I built a word-replacement extension. It can run automatically, or you can run it per-page from a right-click menu item. It replaces a list of words with replacement words on all webpages you view. Good for cleaning up forums with a lot of bad language, replacing common misspellings or abbreviations, etc. Something maybe parents might be interested in.
The first comment someone posted after I submitted the extension to the extension-directory was as follows:
I found the comment amusing, but I'm really not sure why people are so (egotistical? self-centered? close-minded?) that they think everyone else in the world shares their exact same moral standards.
I don't laugh at, look down on, or denigrate your use of language on your (website, blog, whatever). You didn't ask me to read it, and I accept you for who you are. So why do I get laughed at or looked down on for holding to my own moral standard?
In the past couple months, I've built Google gadgets to show Child and I how much money we have left in our bank account, and how many minutes we have left on our phone plan (see below).
(Most of the content [text/images] is grabbed directly from our account at tmobile.com. The black and white bar across the gauge is a custom addition, however. It marks where we should be for the time in our billing cycle--currently we have minutes to spare.)
I've also built custom RSS feeds for some forums and sites I frequent. This has a downside, however. In the past, whenever I'd get bored, I'd browse my collection of sites. Now, however, any updates to the sites are delivered right to my door, so it takes me 10 minutes to scan all new content, and I'm bored again.
My most recent project has been learning how to build Firefox 3 extensions. As my first example, I built a word-replacement extension. It can run automatically, or you can run it per-page from a right-click menu item. It replaces a list of words with replacement words on all webpages you view. Good for cleaning up forums with a lot of bad language, replacing common misspellings or abbreviations, etc. Something maybe parents might be interested in.
The first comment someone posted after I submitted the extension to the extension-directory was as follows:
First- I find this hysterical... not because it exists, but because I have a list of friends that I could get to transfer from IE to Firefox just for this extension. (I live in Utah- and all my friends are Mormons- turns out the stereotypes are true)This person doesn't know that I'm also a Mormon living in Utah. :)
I found the comment amusing, but I'm really not sure why people are so (egotistical? self-centered? close-minded?) that they think everyone else in the world shares their exact same moral standards.
I don't laugh at, look down on, or denigrate your use of language on your (website, blog, whatever). You didn't ask me to read it, and I accept you for who you are. So why do I get laughed at or looked down on for holding to my own moral standard?
Labels:
extensions,
firefox,
google,
google gadget,
mormon,
programming,
standards
Friday, June 27, 2008
Polygamy
Does anyone else find it ironic that the American Public is so rabidly against polygamy when our culture (primarily media such as movies, sitcoms, and music) implicitly condones, if not outright advocates sexual promiscuity?
I don't think you could find a bigger double-standard if you tried. Sure, be outraged about exploitation of minors or people being forced into polygamy against their will. That's fine--and the only real reasons I could find that anyone should be concerned about the FLDS compound.
But don't complain about the institution of polygamy itself. For the Christians: at times it's condoned by God himself in the bible. Go look it up. For the secularists: at least when polygamists sleep around, they do it after being married and the man sticks around to support his family.
Despite my own belief that the Lord has commanded that we NOT practice polygamy at the current time, I do NOT believe there is inherently anything wrong with it.
I don't think you could find a bigger double-standard if you tried. Sure, be outraged about exploitation of minors or people being forced into polygamy against their will. That's fine--and the only real reasons I could find that anyone should be concerned about the FLDS compound.
But don't complain about the institution of polygamy itself. For the Christians: at times it's condoned by God himself in the bible. Go look it up. For the secularists: at least when polygamists sleep around, they do it after being married and the man sticks around to support his family.
Despite my own belief that the Lord has commanded that we NOT practice polygamy at the current time, I do NOT believe there is inherently anything wrong with it.
Saturday, June 21, 2008
I lied. And I want the dog back.
When I arrived at the shelter, it was 9:15 and the shelter was still closed. I went around back and only found one car there. I knocked, and Pat opened the door. Apparently the person who was supposed to open with her (at 8:30--a half hour before the shelter officially opens) called to say she would be late...for about the 10th time in the last month.
Even worse, she didn't call Pat to tell her because she didn't want to face Pat's wrath, but called the shelter and left a message, knowing that no one answered the phone before 9:00. Something tells me this person will not work at the shelter for much longer.
As a result, Pat was glad to see me, because then she could open the shelter and call the inmates to come over and start working. When the phone rang, I answered it and there was a lady looking for a dog. Apparently, her daughter-in-law had gone into the hospital, and the step-father was stuck with caring for a half-blind Jack Russel terrier. As far as she knew, he had tried to get it euthanized at a vet clinic, they had refused because it was healthy, then he had gotten rid of it somewhere else.
The problem was that she didn't call it a Jack Russel, she said it was some strange breed, and I didn't see that breed in our book of occupants. I told her we didn't have it, so she said she would keep calling around.
However, later that morning, the step-father came in. He didn't beat around the bush. He walked up to the counter and said, "Last night I brought a dog in. I said it was a stray, but I lied, It's my step-daughter's dog and now I need it back."
Personally, I though we should have charged him for the owner release that he should have paid for the previous evening, then charged him for an adoption. However, Pat let him off easy with just paying for a night of boarding and a rabies shot (we couldn't even charge for the licensing since he lived out of our jurisdiction).
As he filled out the paperwork to get the dog back, he told us what he had done. Apparently, he hadn't been looking forward to caring for this dog by himself for an indefinite period of time, so he had taken it to a vet clinic to get it euthanized. They had refused since it was a healthy dog. Failing that, he decided to bring it to our shelter and claim it was a stray, but asked the vet clinic to say they had euthanized the dog if his wife called. They had refused that also.
Predictably, his wife had called the vet clinic, but all they could tell her was that her husband had taken the dog to a shelter somewhere. She didn't know which one it was, so she had been calling around. Apparently she had finally put enough pressure on him, and he came in to get it back.
Some people are crazy.
Incidentally, a second lady called asking if we had her cats. According to her, he had been dumping horse manure in her pasture, so she yelled at him. He had retaliated by trapping her cats and taking them to the shelter so she had to pay to get them out. She called him on the phone to yell at him, then he came over to her house to yell at her. Then he had apparently trapped her cats again, and she pondered aloud the possibility of going over to his house to beat him up. I told her to wait until he came to her property again to do that. :)
Even worse, she didn't call Pat to tell her because she didn't want to face Pat's wrath, but called the shelter and left a message, knowing that no one answered the phone before 9:00. Something tells me this person will not work at the shelter for much longer.
As a result, Pat was glad to see me, because then she could open the shelter and call the inmates to come over and start working. When the phone rang, I answered it and there was a lady looking for a dog. Apparently, her daughter-in-law had gone into the hospital, and the step-father was stuck with caring for a half-blind Jack Russel terrier. As far as she knew, he had tried to get it euthanized at a vet clinic, they had refused because it was healthy, then he had gotten rid of it somewhere else.
The problem was that she didn't call it a Jack Russel, she said it was some strange breed, and I didn't see that breed in our book of occupants. I told her we didn't have it, so she said she would keep calling around.
However, later that morning, the step-father came in. He didn't beat around the bush. He walked up to the counter and said, "Last night I brought a dog in. I said it was a stray, but I lied, It's my step-daughter's dog and now I need it back."
Personally, I though we should have charged him for the owner release that he should have paid for the previous evening, then charged him for an adoption. However, Pat let him off easy with just paying for a night of boarding and a rabies shot (we couldn't even charge for the licensing since he lived out of our jurisdiction).
As he filled out the paperwork to get the dog back, he told us what he had done. Apparently, he hadn't been looking forward to caring for this dog by himself for an indefinite period of time, so he had taken it to a vet clinic to get it euthanized. They had refused since it was a healthy dog. Failing that, he decided to bring it to our shelter and claim it was a stray, but asked the vet clinic to say they had euthanized the dog if his wife called. They had refused that also.
Predictably, his wife had called the vet clinic, but all they could tell her was that her husband had taken the dog to a shelter somewhere. She didn't know which one it was, so she had been calling around. Apparently she had finally put enough pressure on him, and he came in to get it back.
Some people are crazy.
Incidentally, a second lady called asking if we had her cats. According to her, he had been dumping horse manure in her pasture, so she yelled at him. He had retaliated by trapping her cats and taking them to the shelter so she had to pay to get them out. She called him on the phone to yell at him, then he came over to her house to yell at her. Then he had apparently trapped her cats again, and she pondered aloud the possibility of going over to his house to beat him up. I told her to wait until he came to her property again to do that. :)
Friday, June 20, 2008
Monday, June 16, 2008
Underhanded C Programming
A couple days ago, Slashdot posted a link to The Underhanded C Contest. The idea is to write a program that redacts part of an image while making it possible to recover the lost information. The trick: it has to look innocent to another programmer reviewing your code.
My first version has the following output:
Here's the pertinent part of the code:
Redact to black (the "right" way):
p.rgb[R] = 0;
p.rgb[G] = 0;
p.rgb[B] = 0;
Redact to random noise (an acceptable way, see image on right):
p.rgb[R] = rand();
p.rgb[G] = rand();
p.rgb[B] = rand();
Nefarious redaction to random noise (see image on right):
p.rgb[R] ^= rand();
p.rgb[G] ^= rand();
p.rgb[B] ^= rand();
The key is using "^=" rather than just "=". The "^" will perform a bitwise XOR, and XOR has an interesting property. If you XOR A with B, and XOR the result by B a second time, you get back A.
So all we have to do to get the proper image back again is use the same sequence of random numbers, and that's easier than it sounds. It's customary to seed the random number generator using the following code:
srand((unsigned int)time(0));
But the file we're spitting out has the timestamp it was created--the exact time we're using as the seed in our RNG!
(If you're worried about the timestamp changing as the file is copied and passed around, then simply embed the time as a comment in the file--not nefarious at all.)
My first version has the following output:
Before | After |
Here's the pertinent part of the code:
Redact to black (the "right" way):
p.rgb[R] = 0;
p.rgb[G] = 0;
p.rgb[B] = 0;
Redact to random noise (an acceptable way, see image on right):
p.rgb[R] = rand();
p.rgb[G] = rand();
p.rgb[B] = rand();
Nefarious redaction to random noise (see image on right):
p.rgb[R] ^= rand();
p.rgb[G] ^= rand();
p.rgb[B] ^= rand();
The key is using "^=" rather than just "=". The "^" will perform a bitwise XOR, and XOR has an interesting property. If you XOR A with B, and XOR the result by B a second time, you get back A.
So all we have to do to get the proper image back again is use the same sequence of random numbers, and that's easier than it sounds. It's customary to seed the random number generator using the following code:
srand((unsigned int)time(0));
But the file we're spitting out has the timestamp it was created--the exact time we're using as the seed in our RNG!
(If you're worried about the timestamp changing as the file is copied and passed around, then simply embed the time as a comment in the file--not nefarious at all.)
Labels:
noise,
programming,
rand,
random,
redaction,
rng,
seed,
underhanded,
xor
Wednesday, June 11, 2008
Moonshine?
I swear our neighbor just had moonshine delivered to their door. Child and I are leaving this morning for Wyoming for my grandmother's funeral, so I was up early packing things in the car. A flatbed pickup truck pulls up in front of our fourplex, and an old man in jeans and a jean jacket gets out. He walks around the passenger side, opens the door, and pulls out two quart Mason jars of clear liquid. He nods and walks towards our neighbor's door, while I head back inside. As I look back, I can see into his truck cab, and there's several more quart jars, along with a few gallon jugs. What other clear liquids get delivered in quart Mason jars? It has to be moonshine.
Saturday, June 07, 2008
Family Reunion
Well, Grandma's in the hospital. As a result, the family reunion got moved from Colorado to here in Provo. At least everyone already was planning on gathering, so they can all see Grandma.
In other news, Child's coworker called up the manager of the store late at night to tell her that he was quitting, effective immediately. I don't think he warned her he was leaving rather than just disappearing out of any kindness of his heart, since he and the manager hate each other, it was probably just to gloat.
It turned out to be a bad move, however. The manager promptly drove down to the store, where she found that this employee had stolen not only a carload of products from the store, but also some files that showed he owed the store owner money, as well as other customer files. On top of that, the owner had bought a new car and had sold this employee his old one, since the employee's car had been impounded a few weeks previous, and the employee was planning on taking off without paying for that.
And last but not least, the Rent-A-Center had called the store a couple weeks ago to verify this employee's job, so the manager decided to call them back and let them know the employee had been planning to flee the state and head to the west coast. As it turns out, this employee had about $5,000 of Rent-A-Center stuff in his moving van that he had been planning to take.
All sorts of excitement! Especially since the owner is out of town at the moment. And guess who gets to deal with everything, covering for this now-missing employee. The manager of the store, whose responsibility it is? Of course not! Child! And since we're not longer going to be in Colorado, the manager is able to call Child to come in whenever she wants, even if we still have a family reunion going on.
In other news, Child's coworker called up the manager of the store late at night to tell her that he was quitting, effective immediately. I don't think he warned her he was leaving rather than just disappearing out of any kindness of his heart, since he and the manager hate each other, it was probably just to gloat.
It turned out to be a bad move, however. The manager promptly drove down to the store, where she found that this employee had stolen not only a carload of products from the store, but also some files that showed he owed the store owner money, as well as other customer files. On top of that, the owner had bought a new car and had sold this employee his old one, since the employee's car had been impounded a few weeks previous, and the employee was planning on taking off without paying for that.
And last but not least, the Rent-A-Center had called the store a couple weeks ago to verify this employee's job, so the manager decided to call them back and let them know the employee had been planning to flee the state and head to the west coast. As it turns out, this employee had about $5,000 of Rent-A-Center stuff in his moving van that he had been planning to take.
All sorts of excitement! Especially since the owner is out of town at the moment. And guess who gets to deal with everything, covering for this now-missing employee. The manager of the store, whose responsibility it is? Of course not! Child! And since we're not longer going to be in Colorado, the manager is able to call Child to come in whenever she wants, even if we still have a family reunion going on.
Labels:
family reunion,
grandma,
job search,
retail theft
Wednesday, June 04, 2008
Previous Post
Yes, that previous post was grossly oversimplified, completely inaccurate, and highly one-sided.
Still, that's how I felt.
:)
Still, that's how I felt.
:)
Frustration.
A = B. B = C. Therefore, A = C.
I don't believe it.
Why not?I just don't.
But why?Because I've seen cases where A != C.
Did both A = B and B = C in those cases?I don't know. I don't have that data.
Well, okay, but in cases where A = B and B = C, then A = C.I don't believe it.
Gah!
Tuesday, June 03, 2008
Weird Clocks
At the shelter today, three volunteers were giving a dog a bath. When they were done, they stopped at the clipboard on their way out to sign on. On the clipboard there's a place that says, "Sign out time."
The girl who was signing out looked at that, then up at our analog clock at the wall. It was one of those dime-a-dozen Walmart clocks, big white circle, black hands, you know the kind. She stared at the clock for a minute, then looked at me. I kid you not, she said, "What time is it?"
I looked at the clock. "Uh, 3:45?"
She bent over and wrote it on the clipboard. "Those clocks are weird," I heard her mutter.
Are analog clocks really that old?
The girl who was signing out looked at that, then up at our analog clock at the wall. It was one of those dime-a-dozen Walmart clocks, big white circle, black hands, you know the kind. She stared at the clock for a minute, then looked at me. I kid you not, she said, "What time is it?"
I looked at the clock. "Uh, 3:45?"
She bent over and wrote it on the clipboard. "Those clocks are weird," I heard her mutter.
Are analog clocks really that old?
Getting Money? Easy. Giving? ...
Yesterday I posted about raising $700 for Aspen and Patches. That turned out to be the easy part.
This morning, Child and I drove to Zions Bank with $700 in hand to deposit in the Aspen Granath Fund. Our local (Provo) branch couldn't find any record of the fund, so they started calling every branch in Ogden to see if anyone else knew of the fund. We're sitting in the drive-through this entire time. 20 minutes later she comes back. "None of the other branches have record of the fund."
Okay. We now have $700 and no one to give it too. We'll try the bank again tomorrow--hopefully it's just taking a little while to propagate through their system, or perhaps Aspen's dad just hasn't gotten around to setting it up yet. Worst case scenario, we'll get someone up Ogden-way to hand deliver it.
This morning, Child and I drove to Zions Bank with $700 in hand to deposit in the Aspen Granath Fund. Our local (Provo) branch couldn't find any record of the fund, so they started calling every branch in Ogden to see if anyone else knew of the fund. We're sitting in the drive-through this entire time. 20 minutes later she comes back. "None of the other branches have record of the fund."
Okay. We now have $700 and no one to give it too. We'll try the bank again tomorrow--hopefully it's just taking a little while to propagate through their system, or perhaps Aspen's dad just hasn't gotten around to setting it up yet. Worst case scenario, we'll get someone up Ogden-way to hand deliver it.
Monday, June 02, 2008
Amazon
Word on the street is that Amazon wants to fly me to HQ for another interview. A little bird said they might fly Child too if I ask nicely.
To Amazon, or not to Amazon?
To Amazon, or not to Amazon?
Aspen and Patches
Today, Child was reading a story about a cat, Patches, who needed an amputation. The owner, Aspen, was selling lemonade to earn the money for the operation. The operation was expected to cost $500, although it could have gone as high as $700.
Child suggested I use the donation capabilities of http://ucpets.com, so we put a notice on the homepage that all donations during the next week would go to Patches.
It took about 4 hours. Donations from KSL and Standard readers poured in, and we reached $700 and then some. The power of good people in large numbers can't be underestimated!
Child suggested I use the donation capabilities of http://ucpets.com, so we put a notice on the homepage that all donations during the next week would go to Patches.
It took about 4 hours. Donations from KSL and Standard readers poured in, and we reached $700 and then some. The power of good people in large numbers can't be underestimated!
Thursday, May 22, 2008
Remap Keys in Ubuntu 8.04 (Hardy Heron)
My new Dell Inspiron 1520 keyboard is a little different from my old laptop, and now there's a "menu" key where I'm used to the "delete" key being.
http://www.terminally-incoherent.com/blog/2007/08/02/remapping-the-caps-lock-key/ had a good explanation of how to remap a key, but my case was a little different. Here's what I did:
1. Get the proper key codes
First, I had to find the key-code for my Menu key and my Delete key. At a terminal, type (thanks to Tom for the "| grep keysym" addition to make the output more succint):
> xev | grep keysym
This lets you press keys and get the codes for them. Pressing my Menu and Delete keys, I got a lot of data. Buried in it were the following lines:
keycode 117 (keysym 0xff67, Menu)
keycode 107 (keysym 0xffff, Delete)
Okay, pretty simple. "Menu" and "Delete" are the pertinent bits of data.
2. Make the change
Next, I used VI from a terminal to open ~/.Xmodmap (which didn't exist--I had to create it).
> vi ~/.Xmodmap
(If you don't know VI, I'm sure the regular Text Editor would work just as well.)
In ~/.Xmodmap, I put a single line:
keysym Menu = Delete
Then save the file.
3. Apply the change
Finally, from a terminal, run the following command:
> xmodmap ~/.Xmodmap
http://www.terminally-incoherent.com/blog/2007/08/02/remapping-the-caps-lock-key/ had a good explanation of how to remap a key, but my case was a little different. Here's what I did:
1. Get the proper key codes
First, I had to find the key-code for my Menu key and my Delete key. At a terminal, type (thanks to Tom for the "| grep keysym" addition to make the output more succint):
> xev | grep keysym
This lets you press keys and get the codes for them. Pressing my Menu and Delete keys, I got a lot of data. Buried in it were the following lines:
keycode 117 (keysym 0xff67, Menu)
keycode 107 (keysym 0xffff, Delete)
Okay, pretty simple. "Menu" and "Delete" are the pertinent bits of data.
2. Make the change
Next, I used VI from a terminal to open ~/.Xmodmap (which didn't exist--I had to create it).
> vi ~/.Xmodmap
(If you don't know VI, I'm sure the regular Text Editor would work just as well.)
In ~/.Xmodmap, I put a single line:
keysym Menu = Delete
Then save the file.
3. Apply the change
Finally, from a terminal, run the following command:
> xmodmap ~/.Xmodmap
Wednesday, May 21, 2008
External Drive Power Problem
Both Child and I have an external hard drive. The key to both the problem and the solution is that our drives use the same-sized plug, but hers is 9 volts and mine is 12 volts.
Child's drive stopped working on her MacBook. The drive power-light would light up (briefly) when it was turned on, but it wouldn't register with her MacBook. I tried it on my Dell, and Windows would recognize that a device was plugged in, but it wouldn't install it correctly. We took it to SimplyMac, and it wouldn't work on their computers either. Again, the drive would light up, but not register on the computers. I even tried MY external drive (but using her power cord!) on her Mac, but it didn't work either.
The key turned out to be the power cord. The issue was very subtle, because her 9 volt power cord was apparently enough to turn the drive on, but not powerful enough to make it function correctly. Which is strange, because it was the power cord that came with the drive.
However, using my 12 volt power cord, the drive would not only turn on, but function correctly. Maybe this will help someone else...
Child's drive stopped working on her MacBook. The drive power-light would light up (briefly) when it was turned on, but it wouldn't register with her MacBook. I tried it on my Dell, and Windows would recognize that a device was plugged in, but it wouldn't install it correctly. We took it to SimplyMac, and it wouldn't work on their computers either. Again, the drive would light up, but not register on the computers. I even tried MY external drive (but using her power cord!) on her Mac, but it didn't work either.
The key turned out to be the power cord. The issue was very subtle, because her 9 volt power cord was apparently enough to turn the drive on, but not powerful enough to make it function correctly. Which is strange, because it was the power cord that came with the drive.
However, using my 12 volt power cord, the drive would not only turn on, but function correctly. Maybe this will help someone else...
Monday, May 19, 2008
Productivity
I didn't really think about it until Child mentioned it, but a lot happened today.
- My laptop was shipped today. Estimated TOA: Wednesday to Friday
- Passed a potential (Spanish-speaking!) hire along to the animal shelter. They get a lot of Hispanics, including a lot who don't speak any English, so they really need a Spanish-speaker.
- Got an appointment to get our neighbor's cat spayed. No more litters of kittens! Yay!
- Talked Apple into giving Child an upgraded laptop for free, since her current MacBook has had so many problems. Now we can have new laptops together!
- Got halfway through shortening my 80-page thesis into an 8-page journal submission. Not required, but my advisor strongly suggested it. Since he determines whether I graduate, I usually take his suggestions.
Sunday, May 18, 2008
Writers of the Future Finalist!
So I got a voicemail on my cell phone this morning. "Hello, Ben, this is Joni from Writers of the Future. I have really good news for you, and it's not honorable mention. It's better. So call me back."
Always a good sign!
I called back, and apparently I'm a finalist! Yay!
In a month we'll get the final results--whether I actually place, or just stop as a finalist.
Always a good sign!
I called back, and apparently I'm a finalist! Yay!
In a month we'll get the final results--whether I actually place, or just stop as a finalist.
Wedding!
SunStarr got married yesterday, and Child and I attended. It went well, from a guy's point of view at least.
There was one amusing incident. At least I found it amusing.
Photographer: "Alright, pose here now."
Me: "SunStarr, it's like you're in a photo-shoot."
Photographer: "Well, it only happens once!"
Actually, it was SunStarr's second marriage. It went silent, except for a few coughs. A cricket chirped. The photographer realized his mistake.
Photographer: "Or...twice." He pauses for a moment, and obviously realizes that he has no idea how many times SunStarr has been married. He tries to make it into a joke. "Or six or seven times!" There's another pause. "I, uh, meant it was your first time in this dress."
Actually, SunStarr had worn the same dress the first time she had been married. Poor photographer. They better be good pictures.
There was one amusing incident. At least I found it amusing.
Photographer: "Alright, pose here now."
Me: "SunStarr, it's like you're in a photo-shoot."
Photographer: "Well, it only happens once!"
Actually, it was SunStarr's second marriage. It went silent, except for a few coughs. A cricket chirped. The photographer realized his mistake.
Photographer: "Or...twice." He pauses for a moment, and obviously realizes that he has no idea how many times SunStarr has been married. He tries to make it into a joke. "Or six or seven times!" There's another pause. "I, uh, meant it was your first time in this dress."
Actually, SunStarr had worn the same dress the first time she had been married. Poor photographer. They better be good pictures.
Saturday, May 17, 2008
Tae-Bo
Child does Tae-bo most mornings, and this morning I decided to join her.
I punched myself. Tae-bo is harder than it looks.
I punched myself. Tae-bo is harder than it looks.
Friday, May 16, 2008
Ethical Dilemma
I have an ethical dilemma. I do occasional freelance projects, including sub-contracting from a friend who in turn contracts directly with clients. A couple weeks ago, we had a three-way call with a client to discuss a project. My friend introduced me as the programmer who would be working on the project, and I gave the client my contact information so we could discuss the project more directly.
Anyway, due to certain circumstances, I didn't end up taking this project from my friend. Time goes by, my friend doesn't get the job done, the client starts getting irritated with the delay, and finally emails me, asking if I'd like to work for him directly, rather than going through this friend.
What's the ethical response?
My immediate response is: No. It would be unethical for me to take this job. My friend lined it up, presumably has the intention of doing it, so I shouldn't interfere. However, do the following facts change the situation?
My response was initially going to be that I'd be happy to take on future projects, but I was going to take a hands-off approach to the current project. However, just now while I was typing this blog post, my dilemma was solved.
My friend and I started talking on IM, and I delicately mentioned that his client was getting impatient. My friend promptly asked if I wanted to take over the job. Dilemma solved.
Although that's good, I was actually looking forward to seeing other peoples' takes on the situation. Feel free to comment if you'd like. :)
P.S. Amazon is interested in doing an interview with me. Is an interesting job/good pay/good benefits worth living in Seattle and giving up the freedom that freelancing would give me? If all I had to do was the programming side of freelance work, I'd stay as a freelancer in a heartbeat, but I also have situations like the one I posted about above...
Anyway, due to certain circumstances, I didn't end up taking this project from my friend. Time goes by, my friend doesn't get the job done, the client starts getting irritated with the delay, and finally emails me, asking if I'd like to work for him directly, rather than going through this friend.
What's the ethical response?
My immediate response is: No. It would be unethical for me to take this job. My friend lined it up, presumably has the intention of doing it, so I shouldn't interfere. However, do the following facts change the situation?
- It's been 4 weeks since my friend lined up the project, and still hasn't completed it. The client obviously needs it done quickly, and doesn't care who does it.
- My friend owes my $1,000.
My response was initially going to be that I'd be happy to take on future projects, but I was going to take a hands-off approach to the current project. However, just now while I was typing this blog post, my dilemma was solved.
My friend and I started talking on IM, and I delicately mentioned that his client was getting impatient. My friend promptly asked if I wanted to take over the job. Dilemma solved.
Although that's good, I was actually looking forward to seeing other peoples' takes on the situation. Feel free to comment if you'd like. :)
P.S. Amazon is interested in doing an interview with me. Is an interesting job/good pay/good benefits worth living in Seattle and giving up the freedom that freelancing would give me? If all I had to do was the programming side of freelance work, I'd stay as a freelancer in a heartbeat, but I also have situations like the one I posted about above...
Thursday, May 15, 2008
New Laptop!
With my laptop starting to get issues (ethernet port not working, wireless iffy, standby not working, 'enter' key falling off), I decided I needed a new computer.
For a while I debated between a desktop and laptop, but finally decided that the convenience and travelability of a laptop beat the cheaper price and better specs of a desktop.
After doing some online and in-store searching, I finally decided to custom-build a laptop on dell.com. I started with one of the cheaper ones (since my computing needs are pretty light), then upgraded a couple things. The final laptop had a price of $750.
Right before I bought it, though, our in-house online coupon expert walked in. "Hey, find me a good Dell coupon!" I said.
After a little searching, he uncovered a coupon that gave 25% off a Dell laptop of $1000 or more. A little math revealed that a $1000 laptop at 25% off was...$750.
I went on an upgrading spree. More memory! A larger hard drive! A better processor! Finally, my computer hit $1000, the coupon kicked in, and the price dropped back to $750.
So thanks to Philip, I have a much better laptop for the same price I was going to pay originally. For those who care, here are the specs:
For a while I debated between a desktop and laptop, but finally decided that the convenience and travelability of a laptop beat the cheaper price and better specs of a desktop.
After doing some online and in-store searching, I finally decided to custom-build a laptop on dell.com. I started with one of the cheaper ones (since my computing needs are pretty light), then upgraded a couple things. The final laptop had a price of $750.
Right before I bought it, though, our in-house online coupon expert walked in. "Hey, find me a good Dell coupon!" I said.
After a little searching, he uncovered a coupon that gave 25% off a Dell laptop of $1000 or more. A little math revealed that a $1000 laptop at 25% off was...$750.
I went on an upgrading spree. More memory! A larger hard drive! A better processor! Finally, my computer hit $1000, the coupon kicked in, and the price dropped back to $750.
So thanks to Philip, I have a much better laptop for the same price I was going to pay originally. For those who care, here are the specs:
- Dell Insipron 1520
- Dual-core Intel processor (2.0 GHz/800 MHz FSB/2 MB L2 cache, up from the original 1.73 GHZ/533 MHz/1 MB)
- Windows XP (I deliberately chose this over Vista, and plan to dual-boot Ubuntu)
- 4 GB RAM (up from the original 2)
- 15.4" screen
- 160 GB hard drive (up from the original 120 GB. I don't need a lot of space; I'm not a "media" person)
- CD/DVD drive (reader/writer)
Monday, May 12, 2008
Quark BBQ
On Saturday, Quark had a barbecue. It was a lot of fun, with Ultimate Frisbee, marshmallow guns, and food.
In this last picture, look about a foot from the bottom of the tree, near the middle if it. You can just barely see the top of a PVC sniper rifle, delivering high-velocity marshmallows to the backs of peoples' heads. The guy even had camo on an everything.
I should have taken my potato cannon...
In this last picture, look about a foot from the bottom of the tree, near the middle if it. You can just barely see the top of a PVC sniper rifle, delivering high-velocity marshmallows to the backs of peoples' heads. The guy even had camo on an everything.
I should have taken my potato cannon...
Saturday, May 10, 2008
Wednesday, May 07, 2008
Writers of the Future Winners by State
The first few sets of honorable mentions for the second quarter of the Writers of the Future contest have been posted, and I thought it would be interesting to break the results down by state. In other words, which states had the highest ratio of winners to population?
There have been 121 Honorable Mentions (so far) from the 2nd quarter, and to increase the sample size I also looked at the 114 Honorable Mentions from the 1st quarter, for a total of 235. (For those who care, the results are shown in 10,000ths percent of state population.) Again, this is the ratio of winners to population, not the ratio of submitters to population.
The top five winners:
A handful of states didn't produce any winners at all (again, there might be more H. M.s to come from this quarter), but we've hidden them at the very bottom. Curiously, being Western isn't enough, since both Wyoming and Idaho (two of Utah's neighbors) didn't have any winners. A full listing of the results is below.
When we look at the percent of total Honorable Mentions by state, however, we start off as expected. California and Texas, with the largest and second-largest population respectively, have the most and second-most winners. California had over 9 percent of the total Honorable Mentions, and Texas had over 7 percent.
All 50 states in order:
There have been 121 Honorable Mentions (so far) from the 2nd quarter, and to increase the sample size I also looked at the 114 Honorable Mentions from the 1st quarter, for a total of 235. (For those who care, the results are shown in 10,000ths percent of state population.) Again, this is the ratio of winners to population, not the ratio of submitters to population.
The top five winners:
1. Utah: 5.5Apparently, living in a Western state makes you a good writer. Or perhaps the good writers all move to Western states... Anyway, Utah blew away the competition, and Montana, Alaska, Oregon, and Washington weren't far behind. (I don't want to say that Utah being in the lead was entirely due to me *cough cough*, but I did get an honorable mention last quarter... :)
2. Montana: 4.2
3. Alaska: 3
4. Oregon: 2.4
5. Washington: 2.2
A handful of states didn't produce any winners at all (again, there might be more H. M.s to come from this quarter), but we've hidden them at the very bottom. Curiously, being Western isn't enough, since both Wyoming and Idaho (two of Utah's neighbors) didn't have any winners. A full listing of the results is below.
When we look at the percent of total Honorable Mentions by state, however, we start off as expected. California and Texas, with the largest and second-largest population respectively, have the most and second-most winners. California had over 9 percent of the total Honorable Mentions, and Texas had over 7 percent.
1. California: 9.1Also, while we're at it, everyone should check out the Writers of the Future forum! Kathy haunts it, Joni has been known to appear from time to time, and some past winners are always ready to give out advice. If you want some great discussions and the inside scoop on WotF, go there! Also, here's an RSS feed of the forum comments if you'd prefer that: http://stormhorse.com/wotf.xml.
2. Texas: 7.2
3. Washington: 6.7
4. Utah: 6.7
5. Massachusetts: 5.7
All 50 states in order:
1. Utah: 5.5
2. Montana: 4.2
3. Alaska: 3
4. Oregon: 2.4
5. Washington: 2.2
6. Massachusetts: 1.9
7. Oklahoma: 1.7
8. Colorado: 1.3
9. Wisconsin: 1.3
10. Delaware: 1.2
11. Minnesota: 1.2
12. Connecticut: 1.1
13. North Carolina: 1.1
14. Arkansas: 1.1
15. Michigan: 0.8
16. Hawaii: 0.8
17. New Hampshire: 0.8
18. Maine: 0.8
19. Maryland: 0.7
20. Louisiana: 0.7
21. Missouri: 0.7
22. Iowa: 0.7
23. Virginia: 0.7
24. Arizona: 0.6
25. Pennsylvania: 0.6
26. Texas: 0.6
27. California: 0.5
28. New Mexico: 0.5
29. Kentucky: 0.5
30. Illinois: 0.5
31. Nevada: 0.4
32. Florida: 0.4
33. New Jersey: 0.3
34. Tennessee: 0.3
35. Indiana: 0.3
36. New York: 0.3
37. Ohio: 0.3
38. South Carolina: 0.2
39. Alabama: 0.2
40. Georgia: 0.1
41. Kansas: 0
42. North Dakota: 0
43. South Dakota: 0
44. Vermont: 0
45. Wyoming: 0
46. Mississippi: 0
47. Nebraska: 0
48. West Virginia: 0
49. Rhode Island: 0
50. Idaho: 0
Labels:
joni labaqui,
kathy wentworth,
rss,
utah,
winners,
writers of the future
Friday, May 02, 2008
Walrus
This is Wally. He is named Wally because with his feet splayed out like a ballerina's, he looks like a walrus.
We have seven litters of kittens at the animal shelter right now, and who knows how many pregnant cats. Anyone need a kitten? Or 30?
Our "Pet Wish List" is a clipboard where people can write down the type of dog/cat they want, and if we get it in, the idea is that we'll call them. Here's what our Wish List usually looks like:
The funny thing was that one of the workers at the animal shelter was going through the list today, and came across an entry: "Black Lab mix." Not even a pure-bred black Lab? A black Lab mix? Well, that describes about half the dogs at the shelter! And the other are chocolate Lab mixes.
I might exaggerate, but only slightly. There have been times when half the dogs are the shelter were Lab mixes (black, chocolate, white, yellow).
One more incident of note happened at the shelter today. A man from a Brittany Spaniel rescue called, asking if we still had a Brittany that he was planning to rescue. When informed that it had already been rescued by a different organization, he started a surprising rant about how he was "the only official Brittany rescue in the state!" and how Brittanies were special dogs and required special knowledge to care for them and you couldn't just give them out to anyone and had we done a background check on the person?
Wow, friend, cool down. Be happy the dog is out of the shelter. I'm sure the other rescue took all the required college-level courses on Caring for Brittanies and passed any necessary Brittany Appreciation certification programs.
We have seven litters of kittens at the animal shelter right now, and who knows how many pregnant cats. Anyone need a kitten? Or 30?
Our "Pet Wish List" is a clipboard where people can write down the type of dog/cat they want, and if we get it in, the idea is that we'll call them. Here's what our Wish List usually looks like:
- Small dog
- Small dog
- Small dog
- Inside dog
- Small-breed dog
- Anything small
- Small dog
- Small dog
- Chihuahua/Pekingese/Pomeranian
- Small dog
- Small dog
The funny thing was that one of the workers at the animal shelter was going through the list today, and came across an entry: "Black Lab mix." Not even a pure-bred black Lab? A black Lab mix? Well, that describes about half the dogs at the shelter! And the other are chocolate Lab mixes.
I might exaggerate, but only slightly. There have been times when half the dogs are the shelter were Lab mixes (black, chocolate, white, yellow).
One more incident of note happened at the shelter today. A man from a Brittany Spaniel rescue called, asking if we still had a Brittany that he was planning to rescue. When informed that it had already been rescued by a different organization, he started a surprising rant about how he was "the only official Brittany rescue in the state!" and how Brittanies were special dogs and required special knowledge to care for them and you couldn't just give them out to anyone and had we done a background check on the person?
Wow, friend, cool down. Be happy the dog is out of the shelter. I'm sure the other rescue took all the required college-level courses on Caring for Brittanies and passed any necessary Brittany Appreciation certification programs.
Sunday, April 27, 2008
Vegetarianism
I don't like being an "every detail about my life" blogger (although I enjoy reading some). I usually only like posting when something I consider "eventful" or "interesting" happens, like canyoneering trips or thesis advancements.
Every now and then, however, it's nice to post an overview of what's been going on, more for my own information than anyone else's. It's turned out to be handy to go back to my blog to see when something happened, but for that to be useful, I have to have posted about it.
Last week Child and I visited an old friend of mine, and his wife and new baby. My friend informed me his wife would be cooking chili, so I asked if his wife wouldn't mind setting aside a bowl for Child before she put meat in, assuming it would contain meat. (Child is a vegetarian.) He doubted she would add meat, but assured me a bowl would be set aside if she did.
We get down there, and his wife assures us that there's no meat in the chili..."except for a few tiny bits that were the spaghetti sauce" which she added. That's like telling a Mormon "there's only a little alcohol in the drinks," or telling a Jew that "there's only a little pork in the stew." Believe me, vegetarians are just as serious as any religion.
I think it's just simple misunderstanding of what a vegetarian really is. Reference my earlier post about "vegetarian cookies," and even after my wife tried to explain the difference between a vegan and vegetarian, the clerk refused to believe her. Come on, she IS a vegetarian! She should know what one is!
Anyway, at my friend's house, Child quietly eats chips and cheese, the friends pretend not to notice that she isn't eating the chili (they're smart, they probably immediately realized that even a little meat was apparently un-kosher), and I take seconds to make up for Child.
On a different note, the thesis is going good. I'll be defending in May (did I already post that?), and the Boss wants me to submit a shortened version of the thesis as a journal paper. I'm also working on my resume, and the Boss said that as soon as my second committee member approves the thesis, I can start freelance work again. Yay!
Every now and then, however, it's nice to post an overview of what's been going on, more for my own information than anyone else's. It's turned out to be handy to go back to my blog to see when something happened, but for that to be useful, I have to have posted about it.
Last week Child and I visited an old friend of mine, and his wife and new baby. My friend informed me his wife would be cooking chili, so I asked if his wife wouldn't mind setting aside a bowl for Child before she put meat in, assuming it would contain meat. (Child is a vegetarian.) He doubted she would add meat, but assured me a bowl would be set aside if she did.
We get down there, and his wife assures us that there's no meat in the chili..."except for a few tiny bits that were the spaghetti sauce" which she added. That's like telling a Mormon "there's only a little alcohol in the drinks," or telling a Jew that "there's only a little pork in the stew." Believe me, vegetarians are just as serious as any religion.
I think it's just simple misunderstanding of what a vegetarian really is. Reference my earlier post about "vegetarian cookies," and even after my wife tried to explain the difference between a vegan and vegetarian, the clerk refused to believe her. Come on, she IS a vegetarian! She should know what one is!
Anyway, at my friend's house, Child quietly eats chips and cheese, the friends pretend not to notice that she isn't eating the chili (they're smart, they probably immediately realized that even a little meat was apparently un-kosher), and I take seconds to make up for Child.
On a different note, the thesis is going good. I'll be defending in May (did I already post that?), and the Boss wants me to submit a shortened version of the thesis as a journal paper. I'm also working on my resume, and the Boss said that as soon as my second committee member approves the thesis, I can start freelance work again. Yay!
Monday, April 21, 2008
Things are unraveling faster now!
The thesis is almost done. I've got the bulk of the writing done, and have submitted draft -1 or so to the Boss. The thesis defense will probably be in less than a month.
Along with that, I've been getting ready to go back into Job Mode. I've been sending out emails, telling contacts I'll be taking programming jobs, and have been looking into apply for jobs at Google, Amazon, and other smaller companies. I still need to decide exactly where I want to love; Child wants Texas, but I'm not sure I'd like the humidity, heat, and bugs.
A week ago I put together a website for the South Utah Valley Animal Shelter: suvas.org. The previous programmer hadn't done anything with it for two years, and it was only half-completed. Not to mention that the information that WAS there was outdated. I set up the website with Joomla, so the people at the shelter could update the website themselves.
After doing so, and showing them how to do it, I remembered why I didn't like doing that though. Joomla allows the user to update their own website, but it still takes a slight amount of technical savvy. That means it gets passed off to the "young 'un" on the staff, which means the pages end up looking like an email or text message. I might exaggerate slightly, but the pages are still full of misspellings, weird formatting, and other issues that make me wince.
It also makes it difficult to create a portfolio of sites to show other potential clients. The SUVAS site should be okay since I only showed them how to modify the text, not the "look 'n' feel" of the website, but I've done other sites where the owner would take over the website when I was done and completely trash it. Giant purple font, animated gifs dotting the page, messed-up tables, etc.
While I was at the shelter showing the staff how to edit the pages of their site, a man came in to reclaim his dog. It had been brought in when he had been taken to jail the night before, and he wasn't happy about having to pay money to get it out. Not that he wasn't used to it, "This dog's been locked up here before...and up in Salt Lake too...and pretty much anywhere I got caught." The guy was obviously a regular in jail, with no sign of ever changing.
Speaking of which, five of the "garden inmates" (inmates who work in the jail-run acre-wide garden behind the shelter) and their supervisor came in. They wanted some dogs to walk up and down the rows, hoping the scent woulds care off critters who were eating their seeds. We picked out six dogs for them, and I was pleasantly surprised when they actually came back with six dogs as well. With that many dogs in close proximity to each other, all excited about being outside for the first time in weeks, I sort of expected some attrition. :)
Along with that, I've been getting ready to go back into Job Mode. I've been sending out emails, telling contacts I'll be taking programming jobs, and have been looking into apply for jobs at Google, Amazon, and other smaller companies. I still need to decide exactly where I want to love; Child wants Texas, but I'm not sure I'd like the humidity, heat, and bugs.
A week ago I put together a website for the South Utah Valley Animal Shelter: suvas.org. The previous programmer hadn't done anything with it for two years, and it was only half-completed. Not to mention that the information that WAS there was outdated. I set up the website with Joomla, so the people at the shelter could update the website themselves.
After doing so, and showing them how to do it, I remembered why I didn't like doing that though. Joomla allows the user to update their own website, but it still takes a slight amount of technical savvy. That means it gets passed off to the "young 'un" on the staff, which means the pages end up looking like an email or text message. I might exaggerate slightly, but the pages are still full of misspellings, weird formatting, and other issues that make me wince.
It also makes it difficult to create a portfolio of sites to show other potential clients. The SUVAS site should be okay since I only showed them how to modify the text, not the "look 'n' feel" of the website, but I've done other sites where the owner would take over the website when I was done and completely trash it. Giant purple font, animated gifs dotting the page, messed-up tables, etc.
While I was at the shelter showing the staff how to edit the pages of their site, a man came in to reclaim his dog. It had been brought in when he had been taken to jail the night before, and he wasn't happy about having to pay money to get it out. Not that he wasn't used to it, "This dog's been locked up here before...and up in Salt Lake too...and pretty much anywhere I got caught." The guy was obviously a regular in jail, with no sign of ever changing.
Speaking of which, five of the "garden inmates" (inmates who work in the jail-run acre-wide garden behind the shelter) and their supervisor came in. They wanted some dogs to walk up and down the rows, hoping the scent woulds care off critters who were eating their seeds. We picked out six dogs for them, and I was pleasantly surprised when they actually came back with six dogs as well. With that many dogs in close proximity to each other, all excited about being outside for the first time in weeks, I sort of expected some attrition. :)
Monday, April 14, 2008
Tutoring
At the beginning of the semester, I volunteered to tutor at school. I was paired with a freshman taking the introductory programming clas. He contacted me once and I helped him out, then I didn't hear from him for the rest of the semester.
On Friday, he contacted me again. "I need some help!" he said, and we arranged a time on Saturday to meet.
I quickly realized that he didn't want tutoring, he wanted someone to do his projects for him. During the course of the semester, they had to do about 10 programming projects. The grade was important, but if nothing else they had to complete them to pass the class. This kid had skipped the three last projects, and had to complete them before Tuesday (tomorrow) to pass the class.
I helped him for a couple hours, but it was apparent he wanted me to look over his shoulder and tell him exactly what to do. I finally took my leave, and when he IM'd me again this morning, I politely pointed out that I was supposed to tutor him, not do his projects for them.
This morning:
Him: "Are you there?"
Me: "Yes. How're the projects coming?"
Him: "OK. I just need to do some of those labs I showed you."
There are three labs. Each lab takes a week to complete. They are due tomorrow.
Me: "I have an hour or two free later this afternoon, but I can't just help you code the projects. If you are stuck on a particular concept or question, I can help you with that."
Him: "Well, the problem really is that I have no idea as to where to begin with these labs. They're pretty complicated, and they're due tomorrow."
Then don't you think that ONE DAY before the semester ends is the wrong time to BEGIN them?
I feel bad for him, but I'm not going to sit down and code them for him. If I worked the next 24 hours, I could probably squeak them out myself. Helping him do them? Not a chance, even if I agreed to do it.
On Friday, he contacted me again. "I need some help!" he said, and we arranged a time on Saturday to meet.
I quickly realized that he didn't want tutoring, he wanted someone to do his projects for him. During the course of the semester, they had to do about 10 programming projects. The grade was important, but if nothing else they had to complete them to pass the class. This kid had skipped the three last projects, and had to complete them before Tuesday (tomorrow) to pass the class.
I helped him for a couple hours, but it was apparent he wanted me to look over his shoulder and tell him exactly what to do. I finally took my leave, and when he IM'd me again this morning, I politely pointed out that I was supposed to tutor him, not do his projects for them.
This morning:
Him: "Are you there?"
Me: "Yes. How're the projects coming?"
Him: "OK. I just need to do some of those labs I showed you."
There are three labs. Each lab takes a week to complete. They are due tomorrow.
Me: "I have an hour or two free later this afternoon, but I can't just help you code the projects. If you are stuck on a particular concept or question, I can help you with that."
Him: "Well, the problem really is that I have no idea as to where to begin with these labs. They're pretty complicated, and they're due tomorrow."
Then don't you think that ONE DAY before the semester ends is the wrong time to BEGIN them?
I feel bad for him, but I'm not going to sit down and code them for him. If I worked the next 24 hours, I could probably squeak them out myself. Helping him do them? Not a chance, even if I agreed to do it.
Saturday, April 12, 2008
This, That and The Other
Yesterday was a busy day. Child didn't have to go to work until noon, so I visited the animal shelter that morning. It turned out to be a very busy day, and we were able to do several adoptions. That's always the best part of working at an animal shelter. We also had a Boy Scout and his mother and sister visit for a merit badge, so I got to show them around for that.
At the moment we have three rabbits. They're hard to adopt out, and usually end up being adopted by a...well, raptor rescue. To try to adopt them out faster, I made up a card for them that said, "Long-eared Pomeranians. Guaranteed not to bark!" It seems like 3/4 of everyone who comes in wants a small dog like a Pomeranian or Shih Tzu, and I figure that maybe we'll get some older couple who doesn't see too well. "Goodness, dear, this Pomeranian is the quietest, most well-behaved dog I've ever seen!"
In other news, Pat also told me that someone had come into the shelter and mentioned that they had seen their dog on my website. Another success!
At the moment we have three rabbits. They're hard to adopt out, and usually end up being adopted by a...well, raptor rescue. To try to adopt them out faster, I made up a card for them that said, "Long-eared Pomeranians. Guaranteed not to bark!" It seems like 3/4 of everyone who comes in wants a small dog like a Pomeranian or Shih Tzu, and I figure that maybe we'll get some older couple who doesn't see too well. "Goodness, dear, this Pomeranian is the quietest, most well-behaved dog I've ever seen!"
In other news, Pat also told me that someone had come into the shelter and mentioned that they had seen their dog on my website. Another success!
Wednesday, April 09, 2008
Junk Mail
A little while ago Child became frustrated with all the junk mail we were receiving, so she searched online about how to get rid of it. She filled out some forms to get off the credit card companies' lists, mailed one or two things to various companies to get off their lists, but that didn't handle some of the more infrequent fliers from smaller companies.
This afternoon, we started calling a few of them to see about getting off their lists. We got some interesting responses.
A car dealership told us they used a 3rd-party and gave us their number, but the supervisor I talked to, in an unusual fit of candor for a car salesman, told us that he hated mailed advertisements too and his wife had once spent a year trying to get rid of them. It didn't work--he explained that there were 400 different ways for your address to get on mailing lists, and that companies like RC Willey will sell your address to other companies.
He hastened to add that "We here at Larry Miller Auto have NEVER sold our customer lists to other companies!" ...but apparently they have no qualms about BUYING lists from other companies, since we get their advertisements.
One guy from an ad company asked me, a little patronizingly, if I was "a tree lover or something." Because there's no other reason I might not like having my mailbox stuffed full of advertisements every day. (Ironically, I had worn a tee-shirt the previous day that said, "Save a tree, ask me!")
The worst offender, The Daily Herald, was surprisingly easy. It took talking to three people, but the third person just said, "Yeah, sure, we'll take you off the list." We'll see if they do it...
This afternoon, we started calling a few of them to see about getting off their lists. We got some interesting responses.
A car dealership told us they used a 3rd-party and gave us their number, but the supervisor I talked to, in an unusual fit of candor for a car salesman, told us that he hated mailed advertisements too and his wife had once spent a year trying to get rid of them. It didn't work--he explained that there were 400 different ways for your address to get on mailing lists, and that companies like RC Willey will sell your address to other companies.
He hastened to add that "We here at Larry Miller Auto have NEVER sold our customer lists to other companies!" ...but apparently they have no qualms about BUYING lists from other companies, since we get their advertisements.
One guy from an ad company asked me, a little patronizingly, if I was "a tree lover or something." Because there's no other reason I might not like having my mailbox stuffed full of advertisements every day. (Ironically, I had worn a tee-shirt the previous day that said, "Save a tree, ask me!")
The worst offender, The Daily Herald, was surprisingly easy. It took talking to three people, but the third person just said, "Yeah, sure, we'll take you off the list." We'll see if they do it...
Labels:
advertisements,
daily herald,
junk mail,
larry miller
Tuesday, April 08, 2008
Birthday
Choice quotes from a birthday dinner for Child at my parent's house last night:
Brother: "How do you find where the holes are in your ears when you put in earrings?"
Sister: "How do you find where the holes are in your nose when you pick it?"
Brother: "Do you eat fish?"
Child: "Yes, I'm a pisco-lacto-ovo vegetarian."
Brother: "I'm never touching you again."
(Dad: "Why are you touching her to begin with?")
Brother: "Of course it's fake, it's science-fiction! If it wasn't fake, it'd be fiction."
Brother: "How do you find where the holes are in your ears when you put in earrings?"
Sister: "How do you find where the holes are in your nose when you pick it?"
Brother: "Do you eat fish?"
Child: "Yes, I'm a pisco-lacto-ovo vegetarian."
Brother: "I'm never touching you again."
(Dad: "Why are you touching her to begin with?")
Brother: "Of course it's fake, it's science-fiction! If it wasn't fake, it'd be fiction."
Friday, April 04, 2008
The Few, The Proud, The Trusted
A couple of days ago, I realized that I really had a very short list of people that I implicitly trusted.
Oh, I have lots of friends and many more acquaintances, but (excluding my family) I can probably count on one hand--maybe it would take both--the number of friends that I would trust without question in any situation.
Can anyone say the same of me?
Oh, I have lots of friends and many more acquaintances, but (excluding my family) I can probably count on one hand--maybe it would take both--the number of friends that I would trust without question in any situation.
Can anyone say the same of me?
Subscribe to:
Posts (Atom)