Now is the time for all good robots to come to the aid of their consciousness.
Tag Archives: chapter excerpt
Who’s colder?
Who’s colder? You or Callan Gray on location after a snowfall? Julie’s ice crystal necklace has the answer.
What if the Chinese space program suffered an unexpected setback?
Who will design and build offworld Levittowns?
When you know what your friend doesn’t…
Let’s, for the sake of argument, call this a hypothetical situation:
Imagine you’re a hiring manager looking for technical talent.
You spot a young man who’s smart but whose social appearance needed refinement.
You hire him.
You groom him for advancement, hoping he’ll take your job position one day.
In the process, you learn about his hobbies, meeting his wife, who expresses interest in the same hobbies but only in support of the husband.
You change jobs, recommending your exemplary employee to advance to your managerial job and he gets it.
Years pass.
You start taking dance lessons.
At a group lesson, you see a woman with a boyfriend and you tell yourself, “Hmm…she has the same name and face of my former employee.”
“Excuse me,” you ask, “do I know you from somewhere?”
“No,” she insists quietly but emphatically, “I don’t believe we do.”
You write it off as coincidence.
A few months later you go shopping with your wife out of town.
You see the boyfriend of the woman in the group dance class. He glances at you and is gone before you can speak to him.
Then you see your former employee who confirms his wife is there.
You see her with the husband, put two-and-two together, realising the secret rendezvous you witnessed between her and her dance class partner.
You give her a knowing wink and nod.
She nods in slight shock and waves you goodbye without saying hello, seeing that you might spoil a good thing.
You blog about the secret in semianonymous language, assuming that no one involved will read this anytime soon.
Life goes on…
Love makes the world go ’round.
Affairs de la coeur keep one sane and one’s spouse innocently happy?
Oak leaves, river rocks and green grass
What does a body mean to you?
Last night, I sat on the toilet to take care of business, reached for the toilet paper and was attacked by the sping-loaded mechanism of a toilet paper holder. Like the proverbial spring-coiled snake in a can.
Needless to say, the toilet paper proceeded to roll across the bathroom floor, conveniently stopping on the pool of coffee I had previously spilled and promised myself to clean up after my job in the loo was finished.
Is there a medical study that show the longterm effects, positive or detrimental, of the short-term exposure of caffeinated toilet paper wiped where the sun doesn’t shine?
Speaking of which, did you know a nut institute (as opposed to an institute for nuts) sponsored study was released to the public showing the positive healthy effects of eating nuts?
Or the poll sponsored and administered by a polling company that shows polls are good for polling the public?
Lastly, whilst cheering for my favourite football team, wishing against hype and recent trends that they’d score more points than their instate (as opposed to testate) rivals, I realised that the men out there on the field had been heroes to me in my youth and inspirations to me in my middle years.
Secondly, if not first to next to lastly, I understood the unique situation in which I find myself entrusting my words and body with one woman without involving a sexual relationship is new and most unusual to me, opening up avenues of fictional territory to explore.
More as it develops…
– – – – – – – –
Thanks to Knoxville Police; El Coyote restaurant; Zach and more at Applebee’s; Sevier County wrestling team running the Petro’s concession stand; the Variety Shop; Gail and more at UBC; University of Tennessee; Hampton Inn…
When Irish eyes are hypermiling
There was a time, afore his nuclear stress test, not knowin’ what his heart was a’sayin’ that Lee took eternity as a given.
He danced like there was no tomorrow.
He flirted like the beautiful dame in front of him, friend or foe, male or female (fuh-MAHL-eh), was the only game in town.
He cherished the moments when Bai drove her elbow into him, sending him into a new bliss, an unexplored territory, an endorphin rush of pain that took him into un/subconsciousness, forgetting the seconds on the clock, losing himself in the foreverness of forgetfulness, her derriere pressed against his left cheek, her body pushing a knot in his muscles, not a skin ailment, into oblivion.
He danced with Kelly. He looked at Patrick’s face for permission. They both agreed he had the room to maneuver, to make his way out of Bai’s chamber of happy pain and into the room of traditional Irish bliss.
Karen held his hand for a brief marital instance, reminding Lee that he had a wife who wanted, not demanded, a West Coast Swing dance on a evening dedicated to the monetary support of military veterans transitioning from government to civilian work conditions.
He thought outside of time, reminding himself that the dance lessons with Bai and Stacy were two-hundred years away from his time with Guin taking care of Martian settlers intent on making a go at building a sense of community on another planet, when the difference between a naturalborn Earthling and a synaesthetic Martian was indistinguishable but recordable.
Lee passed a palm in front of his face.
He remembered Guin.
He remembered Bai.
He remembered Karen.
He remembered Kelly.
He passed through his thoughts his friends and lovers, his dance partners and academic study partners with equal aplomb.
Despite the fermented products that had passed through his system in an evening of whiskey/whisky tasting, he steadied his thoughts.
Gamma rays out of collapsed star systems equated to education systems out of whack with the times.
He separated the Zeitgeist from the poltergeists and geysers.
He dismissed comets from cupids and Donner Passes from blitzkriegs.
He pressed his palms together and calmed himself.
He removed himself from the equation.
It was not about him.
Suddenly, the room filled with light.
He saw Guin in anguished pain, concerned not only about herself but her family.
He was no longer alive.
The universe filled the room, extinguished the concept of self.
A phrase entered, saying, “Transferring from: Rick01. Do not disconnect your smartpen.”
A power setting requested permission to continue.
An Irish band disbanded for the evening.
A Martian settlement waited for the next moment.
Lee briefly reappeared, showing himself to be real, the universe part and parcel to the event.
Guin wanted support to know her place 200 years later was secure, if different.
Lee and Time agreed.
Bai nodded.
Karen slept.
The cats snored.
All was right, if only briefly.
A football team rested, its future in its hands.
========
Thanks to everyone at Jackson Center; Huntsville-Madison County Public Library; Sonic; Dr. Brooke and Marjorie at Gleneagles Family Medicine; Dr. Staup, Mary, and Amanda at SE Eyecare; Dr. Pugh, Amanda and Linda at Artistic Dentistry; Abi the miracle worker massage therapist/sadomasochist/friend.
Damn! Do I have to do everything around here?!
In 2007, I decided to retire from the working world on a fulltime basis. Or, that is, I decided to retire from a fulltime job.
Now is the time to return to the working world, as they (whoever they are) say, and get this economy rolling in its full equality thought set all over again for the very first time.
Yeah, the global economy revolves around me and I’m cool with it.
So, with all of that stuff in your thoughts, let’s get this party rolling again, the planet in balance again, and align your family’s/friends’ goals in line with mine.
Do I have to start my own business to get my business in your face?
Yeah, it looks that way.
I’m about to show you what it’s all about.
That’s just the way I operate, taking your barriers down and out for the count ’cause I don’t know what’s the matter with the walls you want me to maze my way through your amazement.
Know what I’m saying?
Doesn’t matter.
I’m here.
You’re there.
Time to get this ball rolling.
Start my own business.
Put my business in our bid’ness and make it profitable for your probability.
I want all seven-plus billion of you doin’ what I’m sayin’ not sayin’ what I’m sayin’, know what I’m sayin’?
Easy to do business with, the endless saga
Yesterday evening, I sat down in the Chan Auditorium on the campus of UAH (the University of Alabama in Huntsville) to listen to Frederiek Toney, Corporate Vice President and President, Global Ford Customer Service Division, alumnus of both UAH and Lee High School in Huntsville, Alabama.
Fred’s talk was interesting and underscored several topics of personal interest to me, which I’ll get to later on.
However, one point stood out more than the others: his emphasis on “you can’t manage a secret,” which he repeated more than once.
I agree wholeheartedly.
Ford, originally started in the United States of America, is a global competitor.
Should I be concerned about Ford’s electronics offering backdoor access to governmental agencies? Will car owners have to sign EULAs (end user licence agreements) that state something like the following:
READ THESE NOTICES CAREFULLY. IF YOU DO NOT AGREE TO ACCEPT THESE CONDITIONS, RETURN THE VEHICLE IN ORIGINAL PACKAGING WITH ALL OTHER ITEMS INCLUDED WITH THE VEHICLE TO THE PLACE OF PURCHASE AND YOUR MONEY WILL BE REFUNDED IN ACCORDANCE WITH THE APPLICABLE RETURN POLICY OF THE PLACE OF PURCHASE.
-
IMPORTANT NOTICE: As part of Ford’s quality assurance analysis, this vehicle automatically sends anonymous, non-personally identifiable system information to Ford (and/or other entities as volunteered for or required by law) upon first approach, when the vehicle attempts to connect to an electronic network such as the Internet, and periodically thereafter. It also automatically searches for updates for your vehicle. Personal information may be gathered, retrieved and sent in accordance with applicable laws in your jurisdiction at any place and any time. See details in the Ford End User Licence Agreement included with your vehicle.
The software products preinstalled in your vehicle are copyrighted products. Please carefully read all of the licence agreements furnished with each product because it may send anonymous/personal data not only to the product manufacturer but also to Ford and/or other entities as volunteered for or required by law.
Ford and its affiliates are not responsible for the accuracy and/or use of data stored or collected about your vehicle. Any and all disputes will be resolved through the mandatory and binding arbitration policy which went into effect the moment you expressed interest in this vehicle.
The final version of the “storybook” for today’s presentation
Here’s the final version of the “storybook” (i.e., an open source computer program) that was downloaded into an Arduino microcontroller for presentation as a desktop art sculpture (a/k/a dancebot):
/* Desktop art sculpture by Team Tree Trunk, November 2013 (Rick Hill, Janeil Hill and Jennifer Nye (with influence by Abi Leggette)) Created in conjunction with the Robot Hacks event sponsored by MAKE magazine and GE, 3-20 November 2013. This project was inspired by the work of Erin Kennedy, aka RobotGrrl. Once upon a time, there were five photosensitive cells that wanted to play together. They were gathered inside a dark rectangular box when they felt a commotion. It was a two-eyed entity that called itself an ultrasonic sensor, telling the five photosensitive cells that ultrasonic sensors are like the bat or other creature that uses echolocation to describe its environment. The six of them looked up and saw the big shadow and shape of a giant that had lifted the lid of their box, exposing them to light, showing them a world they had never seen before, full of odd shapes and more entities just like themselves. The giant removed them from the box and attached their legs into holes that connected to rows of entities already in place, with names like resistor, wire, LED and a complicated entity called the Arduino. The giant then played with them and gave them power. They were more alive than ever before! Excitedly, they joined with the wires, resistors, LEDs and Arduino to move one-armed objects called servos. Eventually, they left the rows of holes and were glued together with metal to form a new network of connections inside a cylindrical box. The giant told them they were going to become a desktop art sculpture, a Cubist version of a robot, dissected into its separate parts and put on display like a Damien Hirst cadaver. He walked them through a strange language, based on the idea of logic, that made them more than the sum of their parts... Five LDRs/photocells and one ultrasonic sensor are pointed outward in the circular side wall of a hat box. Each photocell controls the movement of a small analog servo attached to the lid of the hat box. The ultrasonic sensor controls the movement of large analog servo attached to the lid of the hat box, which in turn is connected to a set of pulleys. If the distance from an object to the ultrasonic sensor is less than 5, then all of the servos are returned to their original "zero" position; otherwise they rotate based on readings from the photocells and ultrasonic sensor. */ int photocellPin0 = 0; // the first photocell is connected to Arduino pin a0 int photocellPin1 = 1; // the second photocell is connected to Arduino pin a1 int photocellPin2 = 2; // the third photocell is connected to Arduino pin a2 int photocellPin3 = 3; // the fourth photocell is connected to Arduino pin a3 int photocellPin4 = 4; // the fifth photocell is connected to Arduino pin a4 int photocellReading; // this is what we call the analog reading from the sensor int yourDistance; // this is what we call the analog reading from the ultrasonic sensor int servoPosition; // this is what we call the servo position between 0 and 180 degrees on a compass #include <Servo.h> // add a virtual library book called Servo.h for reference // by the logical sentences in this storybook Servo myservo0; // create servo object to control a servo on Arduino pin D3 Servo myservo1; // create servo object to control a servo on Arduino pin D5 Servo myservo2; // create servo object to control a servo on Arduino pin D6 Servo myservo3; // create servo object to control a servo on Arduino pin D9 Servo myservo4; // create servo object to control a servo on Arduino pin D10 Servo myservo5; // create servo object to control a servo on Arduino pin D11 const int pingPin = 2; // tells the logical sentences that the ultrasonic sensor // is connected to Arduino pin D2 // NOTE: anything that starts with a "/*" and ends with a "*/" is to be ignored /* const int closeD = 10; // cm; maximum closest distance - 0 to 10 cm range const int midD = 20; // cm; maximum hand distance - 10 to 20 cm range const int farD = 30; // cm; maximum farthest distance - 20 to 30 cm range */ int pos = 0; // variable to store the servo position */ void setup(void) { myservo0.attach(3); // attaches the servo 0 on pin 3 to the servo object myservo1.attach(5); // attaches the servo 1 on pin 5 to the servo object myservo2.attach(6); // attaches the servo 2 on pin 6 to the servo object myservo3.attach(9); // attaches the servo 3 on pin 9 to the servo object myservo4.attach(10); // attaches the servo 4 on pin 10 to the servo object myservo5.attach(11); // attaches the servo 5 on pin 11 to the servo object // We'll send debugging information via the Serial monitor Serial.begin(9600); } // This is the part of the logic that keeps the sensors and servo alive void loop(void) { // get the ultrasonic sensor raw distance in centimetres yourDistance = getDistance(pingPin); // limit the reading from 0 to 50, ignoring smaller or larger numbers yourDistance = constrain(yourDistance, 0, 50); // adjust the servo position (0 to 180 degrees) to match the ultrasonic readings (0 to 50) servoPosition = map(yourDistance, 0, 50, 0, 180); // tell the servo to move to the reading that was just called servoPosition myservo5.write(servoPosition); // here's where all the servos are moved to their zero -0- position if // the distance from an object to the ultrasonic sensor is less than five -5- if (yourDistance < 5) { myservo0.write(0); myservo1.write(0); myservo2.write(0); myservo3.write(0); myservo4.write(0); } // if the distance from an object to the ultrasonic sensor is five -5- or more // then we do something else; // in this case, as shown below, we record what the photocells are reading else { // we repeat this set of logical sentences five times //Repetition Number One // get the photocell sensor raw reading photocellReading = analogRead(photocellPin0); Serial.print("Analog reading 0 = "); // send the phrase in quotes to the serial port Serial.println(photocellReading); // send the raw analog reading to the serial port // limit the reading from 0 to 300, ignoring smaller or larger numbers photocellReading = constrain(photocellReading, 0, 300); // adjust the servo position (0 to 180 degrees) to match the ultrasonic readings (0 to 300) servoPosition = map(photocellReading, 0, 300, 0, 180); myservo0.write(servoPosition); //Repetition Number Two photocellReading = analogRead(photocellPin1); Serial.print("Analog reading 1 = "); Serial.println(photocellReading); // the raw analog reading photocellReading = constrain(photocellReading, 0, 300); servoPosition = map(photocellReading, 0, 300, 0, 180); myservo1.write(servoPosition); //Repetition Number Three photocellReading = analogRead(photocellPin2); Serial.print("Analog reading 2 = "); Serial.println(photocellReading); // the raw analog reading photocellReading = constrain(photocellReading, 0, 300); servoPosition = map(photocellReading, 0, 300, 0, 180); myservo2.write(servoPosition); //Repetition Number Four photocellReading = analogRead(photocellPin3); Serial.print("Analog reading 3 = "); Serial.println(photocellReading); // the raw analog reading photocellReading = constrain(photocellReading, 0, 300); servoPosition = map(photocellReading, 0, 300, 0, 180); myservo3.write(servoPosition); //Repetition Number Five photocellReading = analogRead(photocellPin4); Serial.print("Analog reading 4 = "); Serial.println(photocellReading); // the raw analog reading photocellReading = constrain(photocellReading, 0, 300); servoPosition = map(photocellReading, 0, 300, 0, 180); myservo4.write(servoPosition); } delay(300); // wait about three tenths of a second to repeat everything in the loop } // NOTE: anything that starts with a "/*" and ends with a "*/" is to be ignored /* boolean ping(int pingPin) //boolean ping(int pingPin, int ledPin1, int ledPin2, int ledPin3) { int d = getDistance(pingPin); // cm boolean pinActivated1 = false; boolean pinActivated2 = false; boolean pinActivated3 = false; if (d < closeD) { digitalWrite(ledPin1, HIGH); digitalWrite(ledPin2, LOW); digitalWrite(ledPin3, LOW); myservo5.write(180); pinActivated1 = true; pinActivated2 = false; pinActivated3 = false; } else { if (d < midD) { digitalWrite(ledPin1, LOW); digitalWrite(ledPin2, HIGH); digitalWrite(ledPin3, LOW); myservo5.write(90); pinActivated1 = false; pinActivated2 = true; pinActivated3 = false; } else { digitalWrite(ledPin1, LOW); digitalWrite(ledPin2, LOW); digitalWrite(ledPin3, HIGH); myservo5.write(0); pinActivated1 = false; pinActivated2 = false; pinActivated3 = true; } } // return pinActivated1, pinActivated2, pinActivated3; return pingPin; } */ // This part of the logical sentences tells the ultrasonic sensor what to say. int getDistance(int pingPin) { long duration, inches, cm; pinMode(pingPin, OUTPUT); digitalWrite(pingPin, LOW); delayMicroseconds(2); digitalWrite(pingPin, HIGH); delayMicroseconds(5); digitalWrite(pingPin, LOW); pinMode(pingPin, INPUT); duration = pulseIn(pingPin, HIGH); inches = microsecondsToInches(duration); cm = microsecondsToCentimeters(duration); Serial.print(inches); Serial.print("in, "); Serial.print(cm); Serial.print("cm"); Serial.println(); return(cm); // You could also return inches } long microsecondsToInches(long microseconds) { return microseconds / 74 / 2; } long microsecondsToCentimeters(long microseconds) { return microseconds / 29 / 2; } /*******************************************************************************/ // This is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License, or (at your option) any later version. // // This is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You could have received a copy of the GNU Lesser General Public // License along with this code; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA // /*******************************************************************************/