Latest Publications

34. Chaos Follows

Tiff boarded the 2:45 bus to the mall. She looked down the bus; the passengers hypnotized themselves with the backs of seats, cell phones, and shoelaces. She was only two seats back when she noticed an old lady wearing a muted red sweater with a white collar. A small paper bag sat in the window seat next to her. The old woman was eating a peach.

“My I?” Tiff pointed to the seat.

The woman looked up at Tiff for a moment and then looked at her bag. She swallowed a bite and said “Not at all, dear.” She took the small bag and sat it in the aisle. Tiff squeezed by and sat down. The bus lurched forward and the paper bag fell over.

A small peach, who’s lifelong ambition to explore the world has taken it down a very dark road, decided to use this opportunity to roll to the back of the bus.

The old woman picked up the bag and put it in her lap before any other peaches rolled out. A siren sound entered the bus. The bus driver caught the faint lights up ahead and pulled the bus over. Tiff watched as a man walked along the bus with a pack of dogs.

The Labrador, whose father was a police dog, recognized the siren and ran out into the road. He was afraid of being missed, so he stood in the road calling his father’s name as the oncoming police car sped towards him.

Tiff stood up and watched the dog out the windshield. Other passengers followed suit and stood to watch as well. The police car was flying down the road blaring it’s horn at the dog. The dog stood its ground. Tires squealed and the police car spun around. The tail slammed into the bus launching the passenger’s heads into the next seat.

The peach, which had been feeling trapped in a dark corner in the back of the bus, used this opportunity to roll to the front and down the stairwell.

The bus driver pulled his head up and touched the steering wheel shaped bruise on his forehead. Shaking his head, he opened the door and jumped the stairs. His left foot landed on the poor peach. The driver slipped and fell down the stairs.

The peach, feeling bruised from the incident, rolled out of the bus before the police could question it.

The passengers started moving around, their hypnotic spell broken. They noticed each other for the first time and started mumbling. Tiff sighed and wondered why the busses always had an accident every time she left the house.

©Chris Richards
  • Share/Bookmark

Should you buy a Kindle? No.

Like many people I’ve been considering whether or not to buy an Amazon Kindle. It’s a very promising device with a large library available. But it seems Amazon has made my mind for me. They deleted copies of paid books off peoples Kindles. That is simply unacceptable.

If I buy something, no one has the right to take it away from me, not even the person I bought it from. Just because Amazon refunded the money for the books, does not give them the right to remove it. Frankly, if I had known that Amazon could do such a thing, I doubt I would have considered a Kindle in the first place.

As long as Amazon can delete my files remotely, I will not buy a Kindle.

  • Share/Bookmark

No story this week.

I just had PRK surgery last Saturday and haven’t been able to see a computer. So there is no story this week, but next week I’ll have two stories.

  • Share/Bookmark

22. Alarm Clock Dream

The earth billowed under my feet. I reached out instinctively, my arms flying wildly as they tried to hold on. I managed to keep balance as the earth rolled passed me. I turned around to watch the barren landscape rise into the air like water. Another wave of earth caught me by surprise. I fell hard on my knees. Trying to push myself up, my hand slipped and I fell face first. Citrus invaded my nose and throat. Coughing I pulled myself up and looked around. The ground was littered with oranges. I picked one up. It’s surface a deep blue hue. I pushed my nail into its thick, rubbery surface. It resisted, I tried another spot but it was impossible to peel the skin.

The ground billowed again and oranges flew through the air. I clenched my face as two flew at me. After a moment with out impact, I opened my eyes. The oranges hung, frozen in the air. I reached out and grabbed another orange. This one had a dark pink hue. It giggled as I attempted to peel it. I turned it around expecting to find a face; instead it changed to a violet color. The suspended oranges started to rain down, each one hitting the earth with a soft clank, as if the oranges had skin of stone. More and more oranges fell. Together they created a deafening sizzle sound. I noticed how incredibly thirsty I was. I tried biting into the orange but it was like biting into a rubber ball. The earth’s rolling intensified, I couldn’t keep my feet on the ground. I fell upward, the orange floating along with me. They laughed like little girls.

I hit the ground face first. Darkness surrounded me, long plastic fibers filled my mouth, the unmistakeable taste of carpet. I pushed myself up and light clawed at my eyes. The giggling came from behind me. I shielded my eyes and made out the outline of a small child. She giggled.

“Wakey wakey Uncle Chris.” She said jumping off the air mattress and next to me on the floor. “Momma said to wake you up for breakfast.”

I rolled on my back. The familiar shapes of the room came into focus. “Did she tell you to jump on the bed?”

“Yes.”

I laughed. Sitting up my knee ached. I rubbed it. “Did you jump on me?”

“Sorry uncle Chris. I didn’t mean too.” She ran to the stairs. “Momma says breakfast is ready.”

I took a deep whiff. Bacon, eggs, and fresh squeezed orange juice. I love staying with my sister.

© Chris Richards 2009
  • Share/Bookmark

Canvas Part 4

If you’ve played around with the demos, then you might have noticed a little bug. If you click down in one square and let the mouse up in another square, the square you clicked down in will stay green. I haven’t addressed this issue in earlier examples because it’s not actually a bug. What I want to happen, is to allow the user to draw lines.
(more…)

  • Share/Bookmark

Canvas Grid Part 3

Last time we managed to create a very simple grid and change colors when you clicked on a cell. But, being a first attempt the grid wasn’t flexible and it had a lot of duplicated code. In this post we are going to improve it.
(more…)

  • Share/Bookmark

Drawing a Grid on Canvas

I’m going to need a Grid, so let’s start with a simple grid. A 2 by 2 grid will work just fine. There’s three ways to draw the grid, one is to draw filled rectangles, another is to just draw the outlines of the rectangles, and finally we could just draw a few lines. It doesn’t really matter how we draw the grid. For this example I’ve draw four outlines.
(more…)

  • Share/Bookmark

33. Goodness

A flashing yellow turn signal caught Roxy’s attention. A hunter green pickup truck slowed down next to her. She checked her rearview mirror, nothing behind her. She sped to let the truck in, it roared its engine and sped up with her. She pressed the breaks slowing down. The truck merged and hit his breaks. Beaded necklaces hanging from her mirror slapped the windshield.

Bright red light filled her car. She squirmed in her seat trying to see why they stopped. Up ahead the stoplight turned from green to red and back to green again. They didn’t move. The truck turned on it’s turn signal and veered into the next lane. A small, fading blue sedan slammed on it’s breaks, the father reaching his arm out instinctively to protect his little girl. Squirming again, she saw the hold up. A skinny teenager with a faded pink mohawk was trying to push a black beat-up to the side of the road. Cars were honking and trying to switch lanes. Roxy pulled over to the side of the road and walked up to the teen.

“Need some help?” she asked. She gave her best smile.

He looked up, meeting her in the eyes for a moment before staring at the ground.
“Uh yeah, kind of.”

“Sit in the car and steer, make sure all the breaks are off.” She put her hands on the trunk and waited for him to sit down. The car was covered in pockmarks and rust was forming around the wheel wells. She pushed, her feet slipping on the asphalt, and the car moved to the side of the road. The other cars honked a few more times as they sped off.

The teen came out, his eyes still on the asphalt. “Thanks.”

“Do you need a cell phone?”

“Huh?” he twisted his foot on the ground.

“Do you need to call someone? Like your parents or a tow truck or something?”

“Um, no I haven’t called anyone.” He kicked one of the small rocks around his feet.

“Do you need to?”

“Oh, yeah, I got a quarter.”

Roxy fished a phone from her back pocket. “Here, use this.”

He looked up far enough to see the phone. “For what?”

“Call your parents, a tow truck?” It was obvious to Roxy that he had an invisible monster devouring his left shoe. “Let me guess, you live alone and don’t have the money for a tow truck?”

His face betrayed him with quick smile. “How’d you know?”

“Trust me, I’ve been in worse. Where do you live?” Roxy called a tow truck. They sat down on his trunk. Cars blurring past them. Gary told her how his dad walked in on him and his lover, Mike. She laughed and gave him a sympathetic shoulder squeeze. She told him how lucky he was to have a place to turn after his parents kicked him out. She paid the tow truck driver and Gary promised a free meal at the Mexican dive he worked at.

An hour late, Roxy came home. Her boyfriend came around the corner, smiled and gave her a kiss. She told him all about Gary while he cooked dinner.

© Chris Richards 2009
  • Share/Bookmark

Working with the Canvas element

One of the biggest problems I’ve been having with taking the KnitProject to the next level is drawing with JavaScript. This is where the Canvas element comes in.

If you’re an IE user you can leave right now, Unless you download some plugin, none of this will work. Frankly I don’t care about IE and don’t intent to support it. If and when IE descides to support the Canvas element (or you download the plugin) then you can come back and play with the big boys.

(more…)

  • Share/Bookmark

Refactoring DBObject, Part 4

The keyPath I talked about last time is just to useful to wait on. So I added it. This lets you easly get values from DBObjects within other DBObjects. So on the death date example from last time.
return (DateTime)((DBObject)valueForKey("user_info")).valueForKey("column_death_date");
is replaced with
return (DateTime)valueForKeyPath("user_info.column_death_date");
(more…)

  • Share/Bookmark