When I woke up this morning
Thinking of what to say
Argue with myself right and wrong
You said that you loved me
You’d come back some day
Out loud I wonder in this song
My love, you’re my love
What more can I say
Why love, my love you’re gone
When I woke up this morning
Thinking of what to say
Argue with myself right and wrong
You said that you loved me
You’d come back some day
Out loud I wonder in this song
My love, you’re my love
What more can I say
Why love, my love you’re gone
Went over to my brother’s house to help him set up his wireless network. By coincidence, his network went down when hurricane Sandy passed through the neighborhood. Anyway, my brother went to a local store (rhymes with TestMy) and they talked him into purchasing an Airport Extreme (Extreme!!! – does it fight in cage matches?) and Airport Express. The Express was to be used as an extender (repeater) so the house would have a strong signal thoughout. To be honest, when I learned of this, I was unhappy. I was expecting Netgear or Linksys, but no, it was Apple. The salesperson assured him it was the very best, and that it did all kinds of wonderful things behind the scenes, such as auto update, and it was plug and play.
Okay, so after a period of time, the Extreme was working, but couldn’t get the Express to work. The “marvelous” software for configuring the devices gave a wealth of useful error information – 6753. I tried researching the issue, but after following all suggested fixes, gave up. Never did find out what 6753 equates to, although it is very familiar to Google.
Fast forward to the weekend. More time, another try. Gave up and decided to return this iCrap to TestMy. We were walking out of the place with some other hardware when I talked my brother into talking to the “Apple Guy.” A salesman had suggested it, and if you know me, you know I do not give up easily when it comes to this kind of stuff. So, the “Apple Guy,” who works for Apple assured us it is the best equipment, and that maybe we weren’t doing something right. It is plug and play, he assured us. I have become somewhat brazen in my old age, and I said, show me. He mumbled some excuses, but then attempted to show us. Kudos to him. Would you believe it wouldn’t work for him either (on an Apple computer). Same issue that we were seeing (or not seeing), it was not recognized by the wonder software that comes with it (to be honest, you have to download it – they don’t supply it with the hardware). He wondered if it was something that we had done to it, but then conceded it might just be defective “out of the box.” We left with a new one in exchange.
We got back to the house, and attempted to install the new Express. No go. Decided to call Apple’s customer service (as suggested by the Apple Guy). To Apple’s credit, the service center (that I spoke to) is in Canada, and they actually speak English there. First and foremost, I want to say that the customer service representative that I dealt with was very professional and absorbed all of the slants I cast toward Apple with no hostility. After 45 (forty-five) minutes of fruitless effort, countless jabs about how this plug and play stuff was not very plug and play, the customer service rep decided it was beyond her, and that she was going to escalate the case. I told her thanks, but no thanks. We were going to return the Express and get something that actually worked.
The customer service rep agreed that that was probably the best course of action. In spite of the fact that this hardware/software was purported to work with Macs and PCs (Macs are PCs, but that goes without saying), she said that PCs and Macs don’t play well together. Go figure.
I know some of you out there are pro Apple (can you say zealot?). I know you’re going to say it’s something I did wrong. Maybe you’re right. However, shouldn’t the documentation (LOUSY) and software that’s supplied with Apple products that are purported to be plug and play work without requiring the layman have a degree in rocket science?
iCrap!
Day 1: A sudden thought and I have an epiphany – teach a dog to tell time. Having a dog that can tell time will alleviate the need to always wear a watch or to carry a timekeeping device. Make this happen.
Day 2: Obtain backing to finance the operation. Suffer ridicule at the hands of those that lack vision. Self esteem lowered by sniggering bureaucrats.
Day 3: Not finding financial or moral support have decided to go it alone. It will be a tough battle, but not having money only means less important things (like food, electricity, etc.) will have to be done without. Note: I am extremely optimistic about my endeavor. Visions of winning a Nobel Peace Prize run though my head.
Day 4: Obtain dog. Who would have thought getting a dog from a shelter would cost so much? Note: Stop check to cable company. I’ll be far too busy to need entertainment anyway.
Day 5: Attempt to explain to Sid (Vicious – Sid for short) that biting his teacher is not going to earn him a gold star in class. Note: Get tetanus shot.
Day 6: Woke to find Sid had shredded couch and my favorite shoes. Attempted to return him to shelter. Decided to keep Sid because they won’t return money. Note: Sid evidently suffers from motion sickness. The smell in the car makes me retch (and air fresheners just ain’t cutting it).
Day 7: After a great deal of thought, it was decided that a digital timepiece would be easier for the animal to understand. Twelve hour time setting (as opposed to 24-hour mode). Strap watch to Sid’s leg (at great peril), so the lessons can begin.
Day 8: Training begins. Note: I have met with little success today, and wasn’t sure if the problem was due to the dog’s inability to understand the concept of time, the inability to read numbers, or the lack of conveying the information (speech).
Day 9: Came up with brilliant solution to the speech issue (while watching a rerun of Mr. Ed): Paw the ground once for one, twice for two, thrice for three, and so on. Sid seemed reluctant to allow me to guide him in pawing the ground for counting purposes. Note: Research how long a tetanus shot is good for?
Day 10: Decided to change tack and teach Sid to recognize numbers. Note: Working with flashcards, chalkboard, and sticks appears to have failed.
Day 11: Injuries force teacher to take a short vacation from teaching. Who knew that this would be so tough?
Day 12: Sid ran away (thank goodness), and I have decided to accept the prevailing wisdom of others by just carrying a watch. Note: Rent carpet cleaner to remove Sid’s many, many leftover presents.
The trip was long and boring. You should know that taking a bus trip to give yourself time to think is not a bad idea (that’s what I did). However, you will suffer in the process. A cross-country bus trip can be summed up as follows: Wait, wait, wait. Stand in line and wait. Board the bus, sit down (for hours at a time), and wait. Rinse, lather, repeat. Time will seemingly stand still as you beg the God of your choice to let you out of this predicament. As for sleep, you will probably get some catnaps, but be prepared to basically go without sleep for a couple days.
It is guaranteed the following people will be on the bus at one time or another (if not for the whole ride). People that can’t stop talking, people that can’t stop coughing, interesting smelling people (by interesting I mean disgusting), crying babies, ill-mannered children and their parent(s) that don’t know how to control them, complainers (believe it or not, I was not one of them).
The buses were fairly clean, but most of the them appeared to be old and tired. For example, buses that offered electrical outlets had issues with one side or the other. By issues I mean, they didn’t work. Also, when climbing into the mountains (the continental divide for instance), the buses were slowed to a walking pace. No exaggeration for once. In one instance, a bus driver pulled over to stop at a scenic rest place (would probably have been nice if it was during the day) so the bus could cool for 15 or 20 minutes. He did this after the bus stalled a couple times climbing one of the hills. As a side note, when he told people they could get off and stretch their legs, he warned them to stay close to the bus as there were wild animals in the area, and it would be hard to explain to his boss how he lost a passenger. I chimed in and said, forget the animals, be careful of the cliff (the scenic view was edged by a cliff).
After the bus cooled down the driver drove as though he was trying to make up for lost time. People made comment that he was off-roading. It was a rough ride, for sure, but off-roading he was not. It did seem like he was racing, though, cutting corners and such. To be honest, I thought about complaining to the bus company about the driver, as I felt he was driving dangerously, but I won’t. The sentiment seemed to be popular among the other passengers.
I could say more about the bus ride, but I’ll jump forward to Los Angeles. We arrived at the bus terminal and I immediately sought directions for the trains. They wanted to sell me a bus pass (at information), but I said I would walk. The person helping me seemed upset. I went outside and asked a policeman for directions, as the directions I received moments before didn’t help to orient me. The policeman sized me up and suggested I take a cab or bus as the train station was quite a walk – almost 2 miles away. I chose to walk, but later somewhat regretted that decision. The street people made me uncomfortable to say the least. The one that took some ratcheting branch cutters from some road workers was definitely someone I found interesting, but extremely glad was non-violent (for the moment). He walked by, staring at the sharp cutting edges as if in a trance, all the while opening and closing the cutters, repeating his new mantra, “I’m gonna like this.” The road workers staring at him the whole time in disbelief.
The train ride up to Santa Clarita was uneventful. I was disappointed to learn that it would not go as far as I thought it would, but was committed. When I got off the train, I walked a mile or two and then called for a cab. The cab took me almost all the rest of the way, but because I didn’t want to pay what was quickly becoming a ludicrous amount, I walked the last mile or so. When I walked into the park, I pulled out my camera and the park manager and helper asked me if they could help me. I told the park manager, “it’s me Bonnie … Robert.” She perked up immediately and called off the help.
I walked over to my dad’s place with the camera still in front of my face. My dad didn’t recognize me at first (the camera ???) and asked if he could help me. Well, everyone surely seemed helpful in that place. I took a picture and said, “Dad, it’s me.” It took a second, but his face finally beamed with recognition.
The next couple nights we sat around outside with a fire burning inside a fire barrel, drinking beer, watching TV – mostly the Dodgers, and talking. Neighbors came and went as was usual for my dad. He always was popular. One of the new dad’isms was, “My name is Crime, and Crime don’t pay.” Funny guy, huh? I thought about printing up and mailing him some checks with his name printed as Crime, and the saying, “Do NOT Pay To The Order Of,” but I’ve since thought better of it, as he would find a way to get in trouble with them.
The next morning I asked my dad if he needed help. He asked me to pull out a t-shirt, pants, underwear, and socks. I didn’t think anything of it, and did exactly what he asked. Later he thanked me for pulling out a pair of socks. You see, my dad only has one leg. Funny guy, (again) huh?
The next couple days were a blur and we spoke of many things. One being a trip we took to Camp Sheideck (yes, that’s a real place – google it) where while drinking too much he decided it would be fun to “punch it” while going around a gravel covered (private) mountain road. The car spun around, as it had six cylinders and used them all, and we ended up in a ditch. He walked back (he had both legs then) to the bar and got the owner to tow us out of the ditch. I guess he convinced the bar owner that it was my fault and that he would not let “me” drive again. After the car was towed from the ditch with little or no damage except for a slight bend of the driver door (it was partially open when being pulled out and caught on something), my dad expressed his thankfulness, waved goodbye to the bar owner, and drove off the property.
Once out on the public highway I thought everything would be cool, as surely my father had learned his lesson. When my father said, “I wonder what will happen if I punch it?” it was already too late. There was no gravel this time, but the engine was mighty and tires wickedly bare. The car spun around and slammed into the curb on the other side of the road. When we got out of the car to inspect the damage, both passenger side wheels were flat, the curb had knocked the tires off the rims (broke the beads). We reseated one of the tires with the aid of permatex, rope, and a little 12 volt air pump. It was a mess. The other tire resisted all our best efforts, and we decided to use the spare, which was down to the metal. I decided that I would drive, in spite of my splitting headache, as I was not going to let my father try for a third time. The spare tire thumped with anger as we limped homeward, the gas gauge said empty, and my dad went to sleep. He told me to wake him when we got home. When I complained about the condition of the spare, he assured me, “A tire only goes flat on the bottom, son.”
Watching TV was fun as he had satellite service. My favorite stations have always been The History Channel (The Hitler Channel as some call it) and Discovery. While watching one of those channels I per chance happened to see a show called ‘Swamp People.’ These crazy people go out and catch alligators and then kill them with a 22 rifle with one shot to the head. I watched and watched all the while partaking of the mind numbing intoxicant called beer. After a while I started with what I thought was happening after the “Swamp People” made them turn off their cameras.
It went something like this:
Father (to camera men): Turn them cameras off!
Father (turns and speaks to his son): Boy, bring the wig.
Son (exasperated): Daddy, do I have to?
Father: Do it, or you’ll be wearing the wig, boy! And don’t forget the beads.
Father (obviously excited and now laughing): You know how I love the beads.
As another side note: I was explaining to my neighbor tonight about some of my exploits in California. Just so you have a reference, she drinks a bit and needed me to explain to her what the word ‘exploits’ meant. Anyway, I was telling her, using my best southern accent, about how they hunt, trap, shoot and kill, and boat alligators. She could not follow the story, the accent having very little to do with it. At the end she wanted to know if it was a true story. My brother explained that the hunting and killing alligators part was true, but that the wig and beads part was not. I almost choked I was laughing so hard.
Back to the story, my daughter, Christine, visited with some of her children and boyfriend on the day after Father’s Day. We had some In-N-Out Burgers, took some pictures, and then they were gone. Unfortunately, she had to go to work. While she was visiting I did arrange for her to take me to LAX, though, which would save me from having to sit in the airport over night. So that was good.
Needed to stay busy (a long story) and figured I’d kill two birds with one stone, so I parsed some XML for a friend I used to work with. PHP is my favorite scripting language, so of course I opted to use that. Researching this on the internet I came across simpleXML. Unfortunately, I can be slow at times, and I had to look at a lot of articles across the interweb. The one that finally helped to make things click was at this page: Reading XML with PHP
Anyway, I was having issues with namespaces (perhaps another blog entry) and cheated by stripping the XML of all namespace references. So, the sample XML has no namespaces, and has been rewritten to protect the innocent (and maybe to help someone else). Also, the sample is many nodes deep, something that seems to be lacking in most examples I’ve run across.
Sample XML:
<?xml version="1.0" encoding="UTF-8"?> <topLevel> <somethingHere>text,text,text</somethingHere> <troll>SUBMARINE</troll> <statement>HELLO</statement> <secondLevel> <thirdLevelA> <fourthLevelA> <firstNumber>1234567</firstNumber> <whatIsTruth>true</whatIsTruth> <statement>GiveMeLiberty</statement> <fifthLevelA> <sixthLevelA> <number>7654321</number> <statement>or</statement> <someLevelDate>05-26-2012</someLevelDate> <seventhLevelA> <eighthLevelA> <animal>ELEPHANT</animal> <minorType>1ACB</minorType> <troubleOptionCode>LAMP</troubleOptionCode> <!-- Linux - Thanks Linus --> <statement>OrGiveMe</statement> <ninthLevelA> <ninthLevelChild>9LC_A1</ninthLevelChild> <ninthLevelChild>9LC_A2</ninthLevelChild> <ninthLevelChild>9LC_A3</ninthLevelChild> <ninthLevelChild>9LC_A4</ninthLevelChild> <ninthLevelChild>9LC_A5</ninthLevelChild> <ninthLevelChild>9LC_A6</ninthLevelChild> </ninthLevelA> </eighthLevelA> <eighthLevelA> <animal>FISH</animal> <minorType>2DEF</minorType> <troubleOptionCode>WAMP</troubleOptionCode> <!-- Windows --> <statement>Death</statement> <ninthLevelA> <ninthLevelChild>9LC_B1</ninthLevelChild> <ninthLevelChild>9LC_B2</ninthLevelChild> <ninthLevelChild>9LC_B3</ninthLevelChild> </ninthLevelA> </eighthLevelA> <eighthLevelA> <animal>BIRD</animal> <minorType>UCLA</minorType> <troubleOptionCode>MAMP</troubleOptionCode> <!-- Mac --> <statement>3ACTIVE3</statement> <ninthLevelA> <ninthLevelChild>9LC_C1</ninthLevelChild> <ninthLevelChild>9LC_C2</ninthLevelChild> </ninthLevelA> </eighthLevelA> </seventhLevelA> </sixthLevelA> </fifthLevelA> <topLevelAddresses> <address> <city>Colchester</city> <addressChild>CT</addressChild> <postalCode>06415</postalCode> </address> </topLevelAddresses> </fourthLevelA> </thirdLevelA> <thirdLevelB> <fourthLevelB> <fourthLevelBChild>4child_1</fourthLevelBChild> <notDate>05-26-2012</notDate> </fourthLevelB> <fourthLevelB> <fourthLevelBChild>4child_2</fourthLevelBChild> <notDate>05-26-2012</notDate> </fourthLevelB> <fourthLevelB> <fourthLevelBChild>4child_3</fourthLevelBChild> <notDate>05-26-2012</notDate> </fourthLevelB> <fourthLevelB> <fourthLevelBChild>4child_4</fourthLevelBChild> <notDate>05-26-2012</notDate> </fourthLevelB> </thirdLevelB> </secondLevel> </topLevel>
<?php
$file_location = 'idz/test/';
$csvList = "xmlName\tTrans\tStatement\tFirst#\tsixthLevelAChild#\tAnimalTypes\tDiffTypes\t4thLevelBChildren\tninthLevel\r\n"; // write column names - tab delimited list
$idArray = array("1xml.xml"); // I saved the XML above as 1xml.xml in the idz/test/ folder relative to the script
$idArrayCount = count($idArray);
foreach($idArray as $value){ // for every value in the array - just in case I have a list
$file_name = str_replace('.xml', '', $value); // strip off .xml
$url = $file_location . $value; // concat file location (what folder the files are in) and file
$csvList .= $file_name . "\t";
if(!$xml=simplexml_load_file($url)){ // try to load file
trigger_error('Error reading XML file',E_USER_ERROR); // if file fails to load outputs error message (on my computer in the php error file)
} // end if not load file
$level4A = $xml->secondLevel->thirdLevelA->fourthLevelA; // make a shortcut to fouthLevelA (to cut down on line length in some instances)
$eighthLevelA = $level4A->fifthLevelA->sixthLevelA->seventhLevelA->eighthLevelA; // make a shortchut to eighthLevelA using $level4A and remaining xpath
$eighthLevelCount = count($eighthLevelA); // count occurrences of eighth level nodes
$fourthLevelBCount = count($xml->secondLevel->thirdLevelB->fourthLevelB); // count occurrences of fourth level B nodes
$csvList .= $xml->troll . "\t" . $level4A->statement . $eighthLevelA[0]->statement . $eighthLevelA[1]->statement . "\t" . $level4A->firstNumber . "\t" . $level4A->fifthLevelA->sixthLevelA->number . "\t";
for($i = 0; $i < $eighthLevelCount; $i++){
$csvList .= $eighthLevelA[$i]->animal . " ";
} // end for i less than 8th level count
$csvList .= "\t";
for($i = 0; $i < $eighthLevelCount; $i++){
$csvList .= $eighthLevelA[$i]->minorType . " ";
} // end for i less than 8th level count
$csvList .= "\t";
$fourthLevelB = $xml->secondLevel->thirdLevelB->fourthLevelB;
for($i = 0; $i < $fourthLevelBCount; $i++){
$csvList .= $fourthLevelB[$i]->fourthLevelBChild . " ";
} // end for i less than 4th level count
$csvList .= "\t";
// I used the var name troublecount because it was a bit of trouble figuring out the embedded loop
for($i = 0; $i < $eighthLevelCount; $i++){ // loop up to count of eighth level nodes
$troubleCount[$i] = count($eighthLevelA[$i]->ninthLevelA->ninthLevelChild); // count children of ninth level of this eightLevelA node
for($j = 0; $j < $troubleCount[$i]; $j++){ // loop up to count of ninth level children
$csvList .= $eighthLevelA[$i]->ninthLevelA->ninthLevelChild[$j] . " "; // concatenate ninth level children to list
} // end for j less than trouble count
} // end for i less than 8th level count
$csvList .= "\r\n"; // end of line (in Microsoft OS)
} // end foreach idArray
echo $csvList;
?>
Click Here To Download Example XML And Code
Output when code run on sample xml (tab delimited):
xmlName Trans Statement First# sixthLevelAChild# AnimalTypes DiffTypes 4thLevelBChildren ninthLevel 1xml SUBMARINE GiveMeLibertyOrGiveMeDeath 1234567 7654321 ELEPHANT FISH BIRD 1ACB 2DEF UCLA 4child_1 4child_2 4child_3 4child_4 9LC_A1 9LC_A2 9LC_A3 9LC_A4 9LC_A5 9LC_A6 9LC_B1 9LC_B2 9LC_B3 9LC_C1 9LC_C2
Preface – Whether you think this is good or bad I wrote this in the early 90’s (probably 1992). If anyone else tells you they wrote it, they are a liar. I look at it now and see that it has potential (if you don’t mind the drift and the abrupt ending). This now looks to me like 2 or three poems, but at the time …
I drink of her love as a man that has walked through a desert drinks of water
It would not matter if it were bitter
To him it would tasted sweet
It would not matter that his sunburned and wind-cracked lips did sting
It would still be pleasing to the touch
It would not matter that the hunger of a wild beast gnawed at his belly
He would thirst more
I thirst more
In the journey of your soul
I look back when I reach your heart
To see my footsteps in the sand that stretch on forever
I see the mountains of anger that I have crossed over
And think of the valleys of jealousy
And fields of indifference I walked through
I still thirst from the desert of your pride
And am wet from the rainclouds of your emotion
It has been a long walk
I am glad to be home
I think of my love and I realize I love her
I see my love and my heart races
We move toward each other
And as we meet
My body cries out because it has been too long
Her skin is soft and it responds to my touch
My mind is overcome be a tidal wave of passion
I am consumed
When our dance is done
I think of my love and I realize that I love her
When I look into your eyes, my heart pounds like horse drawn chariots
I envision them to be similar to the great races they had at the coliseum (in the Roman era)
Horses running with nostrils flared, eyes wild with untamed fury
Men steering their paths lest they turn to face each other to fight as stallions do in the wild
Their magnificent figures full of strength and stamina
Pulling, straining, running as fast as their bodies will take them, around and around the track
Furious, wild beasts in the heat of the race
Tame, meek and mild pets, seeking care and tenderness when the race is done
F.O.O.D. – Friends Of Obliging Dinosaurs – is an organization trying to bridge the rift between man and dinosaur. Our motto — with education comes understanding, with understanding comes tolerance, and with tolerance comes appreciation.
F.O.O.D. realizes the following rules for raising and otherwise handling a dinosaur, be it as a mentor, parent, or friend, should be self-evident, but will list them anyway in the hope that the life they save may be your own.
Note: This list is not all inclusive and may be abridged or otherwise updated at any time. The writers of F.O.O.D. assume no resposibility, legally or morally, for any injuries or deaths that occur as a result of following these rules.
Failing to comply with the above rules may result in serious bodily injury and or being eaten. Remember, a dinosaur has a delicate psyche and is very sensitive. Always be kind.
Chuckman Superhero Vs Lightning Guy is online for your enjoyment now: chuckmansuperhero.lektrikpuke.com/issue-four.html. He, Chuckman, also has a new site – chuckmansuperhero.com, just in case you missed it. In this issue, Chuckman battles Lightning Guy, a villain capable of great destruction to life and property. What will Lightning Guy do? How can Chuckman possibly overcome and otherwise defeat such a villain? Do penguins fly when we’re not looking? These questions and many, many more will be answered in this issue.
John Carter Movie Trailer Rant
So, went to see “John Carter (of Earth)” last night. Great CGI, decent story. Entertaining overall. I have these slightly negative comments, though: “The Hulk, Thor, Captain America, Iron Man, and … Bow and Arrow Guy?” he says as he digresses to talk about a trailer that showed before the movie. Okay, we won’t knock hot chick with a gun, ’cause frankly, hot chick, gun, but Bow and Arrow Guy? The Hulk, strong enough to throw a tank, Iron Man, flies and has military grade weapons, Thor, a Norse God, Captain America, well, frankly a bit weak in the scheme of things, but he has history, the shield, and superior strength, and then we have Bow and Arrow guy. How sad is that? Hey, I’ve got a bow and arrow! Sure, it doesn’t do much against tanks, or alien spacecraft, or anything.
What is this, a politically correct (PC) movie? Does this guy have a great lawyer? What?!! And speaking of PC, where’s the black superhero? I think it’s great they have Samuel Jackson as the leader, the man in charge, but he’s wearing an eye patch, so he must be missing an eye. Right? And, of course, ’cause of the type of movie that it is, they’re going to regulate Sam’s language. How is that super?
All kidding aside, I can hardly wait to see the movie.