Extraction of 401(k) Share Prices

2013 is upon us; HR says it’s time to look at my cooperative retirement account.  I get quarterly statements informing me of my investment performance along with the share price of each investment.  This is a good, generalized summary for a retirement account such as a 401(k).













































Looking at this report, I can see that I am on-track and everything is performing to my annual expectations.  Lucky for me, I didn’t hold any of the poorly performing funds. But what if I did?  Should I move my investments contributions around or re-allocate?  I need more information than just what is on my most recent quarterly report.  It is conceivable that a “poor” fund is showing signs of turning around if I could get more detail.  What’s the share price… today, yesterday, or a year ago?

On to…

Clicking on My Retirement, 410(k) Investment Details, Investment Information, I can view today’s and historical share prices by entering a date and pressing the Find button.  This is a good start.  After fooling around with the interface, I couldn’t find a way to download all the daily prices. I would like to see a trend chart for each fund.


Instead of beginning the tedious effort in copying and pasting dates and share prices into Excel, I turned tothe iMacros data extractor to do all the heavy lifting for me.  The process is as follows:

FOR X=1 to 360

Input todays date – X
Press find
Extract the current share prices listed on the screen
Append extracted to a CSV file


This gave me a file of everything I’m looking for saved as c:\SHARES.csv

'While logged into, start this macro on this URL GOTO=
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:GetPrices ATTR=ID:FPriceDate CONTENT=EVAL("var today = new Date(); var tomorrow = new Date(); tomorrow.setDate(today.getDate() - {{!LOOP}}); var day = tomorrow.getDate().toString(); if (day.length < 2) {day = \"0\" + day;} var month = (tomorrow.getMonth() + 1).toString(); if (month.length < 2) {month = \"0\" + month;} var year = tomorrow.getFullYear().toString(); var dateString = month + \"/\" + day + \"/\" + year; dateString;")

(Note: Copy the above code and paste into notepad or iMacros to view the code in its entirety)

Run this by pressing Play (Loop) with 365 set as the Max parameter.  You can set the Max to a higher value if you need more historical share price data.


Next, I imported the CSV into Excel and turned to the fancy pivot chart for some date-driven analysis:


For those that just want the share prices, here they are.  It’s not like they are top secret and we all shouldn’t have to run the script to peg out’s web server:

Read the rest of this entry »


Ragnar Del Sol

Ragnar Map

Ragnar Del Sol Map

This would be my first recreational relay. After looking at all of the bumper stickers on vehicles around Phoenix, one stood out amongst the rest. It was called The Ragnar. I’m not sure, but I believe that it was named after the Norse god Ragnarok. I ‘m going to have to research and find out where it came from.

The non-mythological Ragnar Del Sol is a 200.5 mile relay race through Arizona’s valley of the sun. This does not mean that it’s a 200 mile race per person. Each team has twelve members split into two vans. There are 36 legs in the race of varying distances. Each leg is classified as easy, moderate, and hard; however, we found the rating system to be objective only to the total distance of each leg and does not take into account the varying grades of elevation. For instance, the 3.9 mile leg #30 is rated as easy with no van support yet it has a total elevation gain of 606 feet – through Fountain Hills. The vans take on the six consecutive legs (1-6, 7-12, and so on).

It starts in Wickenburg and ends in Tempe, Arizona. There are some nice areas that we would run through like Scottsdale and Fountain Hills; however, the nice areas come with lots of steep hills, inclines over bridges, declines, stop lights, and some rather confusing running lanes. The desert portion of the course is vast.

My brother Aiden called me six weeks prior to the race:

“Hey, Ian. We just lost two runners and we were hoping that you would want to try running the Ragnar with my team. Collin (my youngest brother) will also be running. It would be cool to have the Fleming brothers all in the same race. My coworker already reserved the two required rental vans for the race.”

“Sounds good. I haven’t done this kind of thing since getting out of the military. Well, maybe paintball is similar. In March, I’m driving 1,200 miles to play paintball with some friends of mine in Texas. That would be too long. Sure. I’ll do this if you pay for it. Besides, I’ve never ran a 200 mile relay race before.”


I figured that I needed to train a bit and lose about 5 pounds. Oatmeal, bananas, chicken, and pork loin did it for me in the past. Since my orthopedic surgeon removed a 3mm by 1cm bone fragment from my left shoulder last year it has messed up my karma in more ways than one. First and foremost, my archery skills have suffered. I had to back down from 69lb draw to 62lb. Also, I can’t hold the draw as long as I used to. I had stopped going to the gym. The only exercise was using surgical tubing to keep up my shoulders while sitting on my office Lay-Z-Boy chair; however, I don’t do this as much as I should. Cardiovascular was near nil.

I re-opened my gym membership.

The winter in the White Mountains of Arizona made it impossible for me to run outside. Really, the only thing that I used the gym for was the treadmill. I didn’t want t build up upper body muscle. My mission was lose weight – and lost it I did. I lost 6 lbs in 6 weeks.

Glucosamine, Chondroitin & MSM, Echinacea, and occasionally, Tums, were my daily supplements. I started taking the G/C/MSM thinking that all this running was going to be hell on my joints. Beginning the training, I went to and downloaded their “couch potato to 10k” training program that I loosely followed. In hind sight, I should have followed it exactly. The training program I bastardized from it was more for speed than endurance. I really didn’t want to spend hours on a gym treadmill 4 days a week. Not knowing in advance that this was going to be my big mistake, I thought I was doing really good reaching a 7.5 minute pace for my 3 mile training sessions on the gym’s treadmill. In my mind, the 7,200 feet of White Mountain elevation that I was training in would only add to my superhuman ability…

Race Day Minus Two

I had a work meeting with Oracle in Phoenix the Thursday prior to the race. Lucky for me, my company would reimburse me for my mileage to attend this meeting. Following the meeting, we would have a couple hours to drive around, shop and experience the warm valley weather – a nice break from the cold.

My girlfriend has an uncle that lives in Wickenburg. His house is 9 minutes from the Ragnar starting line. She wanted to tag along and stop at all the major exchanges to be sure we were alright. We both live about 230 miles away from the Ragnar which posed the first problem: the team vans start the drive to Wickenburg from Scottsdale. If we were driving, how would we all meet up and if my girlfriend were to ride along, how would we get back to Wickenburg to pickup my car? I discussed this with my brothers. I would meet up with them in Wickenburg and get on the van. My girlfriend would drive my car and not ride along. She had some weekend conferences that she could go to and she also wanted to go back to the Scottsdale Arabian horse show.

All was clear. I packed my gym bag for the race and started the drive to Phoenix. Then my sister, mother, and brother called me frantically. There was a death in the family. My uncle out in West Virginia.

“When is the funeral?” I asked. “More information to follow” was all I could get from my Mom.

It was Wednesday. The funeral would probably be on Sunday or Monday. Are the Fleming brothers still running? Aiden called me, “Yes! The funeral isn’t until Monday.”

“So, we are flying out on Sunday, I take it.” Here’s where I turn the car around to pickup my suit.

“Aiden, do you have a suit protector that we can double up on?”

“I don’t have one”, was Aiden’s reply.

When plans change or emergencies rise, I try my best to roll with it. When there are a lot of loose ends, I look for a general direction. As long as I have this general direction, I can provide some form of forward momentum. I don’t need every detail planned out before I start moving.

I arrive back to my house, pickup my suit, then my girlfriend, and we continue the drive to Phoenix.

Race Day Minus One

I wake later than normal, around 8:30, get dressed, and take off to the Oracle meeting. The meeting was about the Oracle Database Appliance (ODA) hosted by Cloud Creek Systems. It was an interesting appliance that I may look into further instead of migrating Oracle boxes (Aclara, Elster, NISC, etc.)

After the meeting, we went shopping. I picked up some energy food and some running socks at the Sports Chalet, played with some guitars at the Scottsdale Guitar Center, and got a haircut before we started the drive to Wickenburg to meet up with my girlfriend’s uncle.

Race Day – 5AM

The day began at 5AM… well, more like 3AM. I “slept” on a sleeper. Feeling the beginning symptoms of a head cold (my girlfriend had one a week prior) and being in a strange place, I didn’t get much sleep. My girlfriend’s uncle was nice and his house was massive. Being a single guy, he didn’t have much furniture around; hence, the sleeper.

I met up with my team in van 2. All really nice people who picked up everything that a newcomer would forget like the special sunscreen that goes on your forehead as not to get burning sweat in your eyes, baby wipes, lots of reflective tape, first aid kits, food, food, food, and lots of water. There was a mom in our group and we were all lucky enough to be treated like her kids.

We drove to the start line and saw the first van off. Instead of just going to exchange 6 (where the vans exchange), we decided to cheer on the other runners as well as those in our team. It was funny cheering for the other teams. Most of them gave a smile followed by a strange look as if to say, “Do I know you guys?” We were just having fun. It’s a hard race. This was the first couple legs. It wasn’t going to determine anything this early on. Even the most competitive teams may fall out due to injury or other reasons for all we knew.

After three hours of cheering, we moved on to my van’s exchange point. My first run was about 5 miles in the heat of an unseasonably hot day in February. I paced a 10 minute mile on the first leg and it just about took me out. I am not used to +90F weather!

Race Day (plus one)

We caught some sleep in the van and took a detour to a teammate’s house for showers.  My second leg was 2AM the next morning. I’ve learned that there’s nothing like a night run in the middle of the night with nothing but a headlamp, tail light, and the hum of power lines to keep me company. I held a 9:15 pace.

My final leg was all downhill from Fountain Hills into Scottsdale down Shea Blvd. It was, again, in the heat of the day. The thing that got me on this leg were the traffic lights. It took a good 3 minutes of stalling to get though all of the traffic. That was a little demoralizing but I appreciated the break.

At the end of the race, both vans met up at the finish line and ran with the last runner. They gave us our finishing medals, some free beer and pizza coupons, and took our picture. There were some family members from our team that made us some banners to run around with. It was a good time.

Baton Hand-off

To Run or To Play?

The impetus behind the Ragnar is the run; however, most of the time is downtime. During this time, people play tricks and pranks on the other vans. There’s a lot more to this run than just running. The most fun was cheering on other teams and picking fun at them. The costumes that many teams wore really added another angle.


Just about every Ragnar van was decorated with the team names. They did this with wet chalk, window markers, or something that could be easily wiped off. Our team name was “Ask Your Doctor If Getting Off Your Ass Is Good For You”. We had taped a picture of a donkey on our van. We took two peach colored plates taped them together to make an ass and drew a running stick figure. [picture?] Of course, there are the pranksters that were tagging the vans quite heavily.

The best tag attempt (in my opinion), was from a person from the Disco Team. These guys were great. They had a disco ball on the top of their van, an outdoor blaster that played disco music, and they were disco dancing at every exchange. It was quite a sight. Needless to say, they looked like they took a time machine from the seventies. They successfully erased the second “Your” from our team name and updated it with the word, “IN” with a bright pink colored marker. They were about to violate the stick figure when I yelled, “HEY! Get off my van!” and startled the heck out of guy. I thought he was going to run off but instead he walked up laughing and gave me a high-five. “I gotta give you props for that one!” I said, laughing.

Most tags were harmless magnetic stickers, bumper stickers, or window chalk. Others seemed more malicious. I believe the vans that had tallied their “KILLS” got maliciously tagged more than others. A “kill” is apparently when a team member passes another person. I would assume that they are net kills and not gross kills. There are some vans that had a whole window of tallied kills. Of course, there’s no way to validate this until the finish line but even then it seems kind of a silly thing to keep track of. It’s a form of motivation for those who get off on being ultra competitive, I guess.

Race day (plus two) – Celebrate

Immediately after the finish-line celebration, we met up at The Twin Peaks Microbrew. One of our teammates came all the way from Australia. Two others from San Francisco and Las Vegas. They were really fun people and I am glad that they were on our team. We set them off with a couple drinks.

Race day (plus three) – Flight

I called my sister who purchased the tickets for the funeral. Eight hours later, we are at the airport. I mistake United for US Airways and am dropped off at the wrong terminal; I was off to a bad start. My brothers and I could hardly walk and we needed to run.

We made the flight, the 3 hr layover in Cleveland, and finally get to the rental car. Now for the 3 hr drive. In spite of the incessant DING and check engine light flashing, we made it to the viewing on time. My dad was very pleased to see that we made it. I was as well. I haven’t had a trip with my brothers and sister in a couple of years. I wish it had been under better circumstances.

The funeral was the following day. Goodbye Uncle Pat…

Race Day (plus five)

On the way home, one of the engines on the Continental plane in Cincinnati wouldn’t start after taxiing to the runway. We disembarked the deadlined aircraft, got a new ticket with American Airlines and flew home to PHX via DFW. There was a 130 knot head wind which put us in about 40 minutes late. I got home at 4 AM this morning. Work starts at 7AM so, I’m still wearing my funeral suit – at work.

What a weekend!

Mitsubishi Galant Door Rattle

My noise problem

I bought this 2002 Mitsubishi Galant in 2001.  The only thing that went wrong with it was basic maintenance things: O2 sensor, shocks and struts, radiator, timing belt.  I continue to feel a strange push-pull while driving downhill after turning 90k miles, possibly due to an engine_torque:load_inertia mismatch caused by a transmission sensor going bad.  I still haven’t gotten to the bottom of this – even with my Fluke scope and the dealer diagnostics.

Overall, it has been a good car; however, it started developing an interior rattle noise after 20k miles.  I never took it in during the warranty period and, of course, after 190k miles it got worse.  Riding in other Mitsubishi’s, I am finding that this noise is a common problem.  The sounds are similar and there is a distinct ‘bell’ sound when you slam the passenger door of every Mitsubishi I’ve been in.  Needless to say, the rattling was driving me crazy.  After several months of listening to it, I decided to take aggressive action to find the root of the problem…

Step 1 – Remove the door panel

To remove the door panel, there are 3 screws with little covers over them, one black screw in the door handle and another behind the latch door-release handle.  There is a wire harness connected to the power door controls that must be removed from the panel.  Set the panel aside somewhere safe.

Step 2 – Remove the weatherproofing

Peel the plastic sheet back from the door frame. The black tar will remain sticky enough to tack it back on when you are done.

Step 3 – Analyze

On the bottom right of the door (facing from the interior) you’ll see two white blocks of Styrofoam mounted back to back. I believe they are intended to baffle the vibrations of road noise and door slamming. Look closely.  Now look closlier…

Step 4 – Repair

The culprit to my rattle was the NYLON PUSH FASTENERS that hold these blocks. From the looks of it, they aren’t sized properly to the holes drilled in the sheet metal. Take them out, curse at them, and set them on fire. Replace with a nylon bolt, washer, and nut (about 2$) from your local hardware store.

Step 5 – Put everything back together

The root cause of my ’02 Galant Rattle:

The culprit...

To my IT Homies in Upshur!

Ahh, old times:

I liked the way we retired servers.

Good reminiscing and birthday party this weekend in Oklahoma.  I made the drive back in 13 hours.  Almost took out 3 jackrabbits and 2 elk cows when I hit New Mexico.  It seems like the elk enjoy the AZ/NM border.  There was a midnight reunion going on right at the “Welcome to Arizona” sign west of Pie Town.

Keurig K-Cup and K-Saver Review

Jason mentioned on Facebook that he loved his Keurig coffee maker at work.  I mentioned that I also had one and enjoyed it.  The discussion shifted to how much per cup we were paying.  The K-Cups are not cheap.  Keurig sells and adapter that allows you to use your own bulk coffee to run through the machine.  I bought one thinking that it would be better and cheaper.  What I found was that the water was leaking over the filter and it resulted in a weak cup of coffee.

I started to research alternatives.  On E-Bay I found some sellers with all sort of neat lids that attached to used K-Cup filters.  It’s a little steel snap-on lid with a spring that opens and closes where the Keurig needle would normally pierce the top foil of a K-Cup.  For $20, I thought it would be a good experiment for me to do.

Read the rest of this entry »

Vets day = range day


Fun start. Ammo and a new SR556

What better way for a vet to enjoy his day off than to shoot an AR15?  Today is my day.  At the start, things went pretty well zeroing in my EOTech and Aimpoint 3x twist-on scope.  Since getting lasik surgery, I have not been able to see correctly from my right eye.  It’s pretty screwed up.  Picking up these optics, I was hoping to bring my 30/40 score back to 40/40 with the assistance of these optics.

Zeroing went really well.  It was a lot easier that I thought being that I just mounted the sight to the rail.  Now to try using my 22LR conversion kit.  I got tired of spending $.25 a trigger pull with .223 ammunition.

Before purchasing this unit, I specifically told the gun store that I wanted to shoot .22 caliber more for fun than anything else.  The .223 was too expensive to plink around at the range.  Unless I was shooting more that 100 yards, .22 would be just fine.  I think from the ballistics that the drop wouldn’t be significant enough to warrant re-sighting my EOTech.  To my disappointment, it wasn’t going to be a .22 caliber day. Read the rest of this entry »

Motorcycle Garage

I bought a motorcycle cover for my bike about 14 months ago.  I’ve been riding it consistently since I’ve purchased it in November 2007.  Keeping the bike outside has taken a toll on the bike cover.  It is practically disintegrating due to the UV radiation.  I have tried to repair the tears with duct tape – it really looks like a redneck repair job.
Now I am at the store looking for a new cover.  The old cover that is all messed up now is still being sold at Wal-Mart for $35.00.  I bought it on clearance for $17 last year.  I don’t want to get another one like it if it is only going to last a couple of months.  Also, it is a pain to put on the bike.  I have to wait for the exhaust to cool down to prevent the nylon from melting on the pipes, the elastic wears out and it isn’t as waterproof as I would like it to be.

I  got this idea to build a garage for my bike out of a tarp.  I thought about how a rolly-polly bug rolls up into a little ball and it gave me an idea for a collapsible motorcycle “garage” made out of bungee cords, stakes, 1/2″ PVC pipe and a heavy tarp.  Here is my drawing of the design:

A bike/motorcycle tent made out of a tarp, bungee, stakes, and PVC

You collapse the ‘tent’ by lifting up on either side.  There are stretchy bungees that connect to the apogee of each of the bent PVC ‘ribs’.  This provides a spring-loaded feel when closing the tent/garage after driving your bike into it.

Now I can park my bike without waiting for it to cool down or worry about the darn wind from blowing my cover away!