You are viewing mrflash818

entries friends calendar profile My Website Previous Previous

I notice a lot, lately, how little buying power a dollar has.

When I had bought my 1st new car, back in 1993, super unleaded (91 octane) was almost exactly US$1/gallon.

My salary was $30k/year at the time.

A US$20 bill would let me fill up my car from empty tank to full, for US$15.

I'd have US$5 left, which was plenty of money to get a generously sized burger+fries+soda to eat.

So, basically, with twenty bucks, I could drive to the beach, and eat, for the day. Or drive to the mountains (Big Bear) and be in the snow for the day, and eat.

Now, just twenty years later...

My gross annual salary, in dollars, is 3x what it was in 1993, however:

Gasoline runs between $3.50 and $4/gallon for 91 octane unleaded.

A generous burger+fried+soda is $10.

Using $4/gallon to keep the math simple, a full tank of gas is $60 to $80 (newest car we have is a 20gallon tank, older car is a 15gallon tank.

So, now, it seems a US$100 bill has the buying power of a US$20 bill from twenty years ago.

So, even though my salary is 3x of 1993, the cost of living (using the simple metrics of gasoline and a burger+fries+soda) has gone up 4x!

Doesn't take calculus or fancy math to see, factually, I have fallen behind. I'd need my gross salary to be $120k/year to match the buying power I had in 1993!

I will be at retirement age in another twenty years from now. If the trend continues, even if I save enough so that in retirement I have $100k/year, it may mean I barely have enough for food and a place to live, if the dollar continues to erode in buying power like it has so far. $100k/year of today may only have the buying power of $25k/year in that future of 20yrs from today!


Tags: , , ,


Worked on nc_834v5010generator for about five hours today.

Worked on the _834v5010RULES file.

Changed the file so that data element codes and their code description share a single line of text. Made the validator logic easier to do.

Worked on the validator.

Added code statements to load all the data element attributes into a data element from the _834v5010RULES file. Used DDD to step through the program. Found a bug whereby the DATA_ELEMENT_MAXIMUM_LENGTH does not seem to load correctly (DDD says that value is -1, which means an error.)

Worked on the data element.

Added many "set" methods, added a boost::unordered_map to store dataElementCode/dataElementCodeDescription pairs

Put a RXL comment block into the validator cpp file, to remind myself where I had stopped.

Ran make, and verified the program compiles successfully, then updated the source code to and the _834v5010RULES file to

EDIT 2014-10-21

Just spent a little time on the program today: 1hr.

Starting adding methods to the validator and segment so that I can spew the in-memory state of the loaded _834v5010RULES, to assist with debugging.

EDIT 2014-10-23

Did some code cleanups. At first I didn't mind seeing compiler warnings about deprecated C-lang string assigments:

char * foo = "Bar";

But, well, now it bugged me. So did some googling to convert them to:

char * foo = new char[strlen("Bar") + 1];
strcpy(foo, "Bar");

...use foo for stuff...

// free dynamic objects created with malloc or new
delete [] foo;

...which does not give compiler warnings. Uploaded the cleaned-up code to the nc_834v5010generator website.

EDIT 2014-10-24

Code cleanups. Made sure each char* created with new char[] had a matching delete[] at the end of it's use. Fixed a bug in data element. Slowly debugging more and more of the validator's loading of _834v5010RULES from file, into memory. Uploaded bug fixes to website.

Tags: , , , , , ,


Need to give a bit more thought to the parsing algorithm, for reading the v5010RULES file.

*** loop 1 or more of: ***
Segment stuff
(blank line)
Data Element stuff for Segment
(blank line)
more Data Element stuff for Segment -or- start of a new Segment
(blank line, then more loops of segment/data-element definitions, or EOF)

Need to sit down with paper (or on here?) and sketch out the DFA for this, and what state-keeping variables I might need to add, to have the parsing logic always work correctly.

EDIT 2014-10-01

KISS. Slow is Fast.

First thoughts were to have the logic act like a parser I did in c++ back when I took the "Compiler construction" class when working on my Bachelor's in Computer Science: Do one line "look ahead" and compare CURRENT_STATE to NEXT_LINE_OF_DATA.

Now, I realize I do not have to be so fancy. Instead, I'll add a token to the last Data Element for a Segment, that says "LAST_ELEMENT_FOR_THE_SEGMENT", and that will will tell the validator to switch state from READING_DATA_ELEMENT_DATA to READING_SEGMENT_DATA.

EDIT 2014-10-05

Added code to the validator and data element classes. Updated the _834v5010RULES file to use the token "DATA_ELEMENT_LAST_ELEMENT_FOR_THE_SEGMENT"

Tags: ,



As the years add up on my personal odometer, I have started to feel Shame.

At first, I could not describe the feeling as shame. At first, I felt frustration, light self-loathing, at the mental mirror of myself, for my age, where I am in life, in terms of professional advancement, salary, position in society, how my little family is doing.

But lately, especially last year, and this year, the feeling is, in a word: Shame.

When I was in college, I really figured that, by the time I was an Older Adult, of around 50yrs of age, that I would be a Scientist, or Manager, of Senior Software Engineer, Lead, and such.

So, from a First World self assessment, I am failing. I do not make the salary I think I should be at, by now. I do not have the job title that I should have by now. My little family still survives paycheck-to-paycheck, without much, if any, growth in our savings. I cannot afford to have a new car, so I try to keep 'my' car, which is a 1998 Jeep Cherokee (and my wife's old car) running. We don't go on vacations like 'the American dream.' Any vacation is a rare 1 day off, now and then, and maybe a week off, now and then, which is used to visit my Mom, so the kids can get some Grandmother time. We don't go out to dinner. Pizza delivery is a rare treat. Foods cooked at home are very humble. Mac-n-cheese, baby carrots, oatmeal, modest meats now and then.

But, to be kind to myself, if I self-assess myself from a Third World point of view, I am a success: I have a 'real' job. My family has full medical/dental benefits from my workplace and my benefits. I still have a pension that my current employer provides. I still put away retirement funds into 401k's and 403b's.

Tags: ,


Frigidaire affinity 6000 series HE clothes washer - troubleshooting

To find the model number, open the front-loading door. There is a sticker on the inside of the door, at the 5 o'clock position. Our washing machine is old enough that some of the writing has worn away. The visible part remaining shows model number with ending digits of 6000FS0. The serial number seems to be XC72321787

We experienced some weird power surges recently, and caused the #8 circuit breaker in the house to trip.

I turned off the main, disconnecting all power to the house, then turned off all the individual circuit breakers, about 20 of them, for all the separate zones of the house.

Then turned back the main breaker, now that all the zone breakers were "off."

I then, 1 by 1, slowly turned to "on" each zone circuit breaker, saving the tripped #8 for last.

#8 circuit breaker seems to be the east-most "back" of the house. So I unplugged our home-office PC's power strips, then turned #8 back on.

#8 stayed okay. The back room had the faint smell of burned plastic, which made me suspect one of the PC power strips had failed, most likely a MOV shorting out.

Smelling each back-room power strip, I found one that smelled. Threw it away.

Now, with house power restored, went back to doing normal household stuff.

Only then, did I notice that the clothes washing machine would not power-up.

Disconnected power to it. Turned off the water valves, and with a bucket underneath, disconnected the water feed hoses from the wall, and let them drain.

Disconnected the drain, and put it into the bucket.

Then moved the washing machine away from the wall, so that I could access the back of it.

The middle-back of the unit has an oval metal access panel, held in place with about 8 #2 Philips screws. Removing it gives access to a belt, that connects the washing drum to the motor.

At the top-back of the unit, there are two philip #2 screws at the top-back of the ledge. Remove them. Then grasp and pull the top shelf more towards the back. It will slide back about 1 or 2 inches. You can then remove the top of the unit.

If you standing at the back of the unit, there is a built-in paper service manual at about 2 o'clock.


Wife said: I put the manual in a big zip-top bag, in the shelf under the machine. Huzzah! (later) Well, nuts: None of the manuals actually say the specific model number of our machine.

EDIT google docs Affinity 6000 and 7000 washer on-line service manual:

EDIT most of the on-line troubleshooting web site articles say to replace the control board, if the machine will not even power up.

To access the control board: It is immediately behind the buttons of the front of the machine that the User presses.

Remove the top of the machine, by removing the two top-most screws on the back of the top of the machine. Then slide the top about 1 or 2 inches more back, then lift off.

Remove the detergent dispenser, by slowly pulling it all the way out, until it stops, then there is a plastic tab, in the farthest back, left-hand side. Press it down, then you can fully remove the dispenser.

With the dispenser removed, there are three #2 philips screws. The longest goes in the leftmost lower position. Note that these 3 screws that are hidden when the dispenser is reinstalled, are longer than all the rest.

With the top of the machine removed, there are two #2 philips screws, closest to the front panel, on the top. Remove them.

With all the screws out, there are three tabs at the top inside of the plastic cover that covers the button and knob. Gently put a flat blade screwdriver under each tab, and lever them straight up, one by one, then you can roll the panel off, and it will pivot forward.

Here is a picture of it, showing all the wire harness connections (so I can put them back in correctly!) FridigareAffinity6000WasherControlBoard

Tags: , ,


nc_834v5010generator - project is back online

Updated my vanity subdomain software homepage. Added links to the nc_834v5010generator source code, makefile, and the verification module's text configuration files.

The nc_834v5010generator homepage is now at:

The nc_834v5010generator source code is now at:

Tags: , ,


San Gabriel - heat wave - 108F today, according to my back yard thermometer.

Tags: , ,


According to the thermometer I have in my back yard, that is in the shade: San Gabriel - heat wave - 107F today, too.

Tags: , ,


San Gabriel is 107F at 12:37pm, in the shade, in my back yard.

Have both little window air-conditioners running. The therometer in the middle of the house is reading 83F, which is pretty good! Hope I can keep my little family comfortable for the entire day. *fingers crossed*

Tags: , ,


dreamhost - how to sftp into


Tags: , ,

Name: mrflash818
Website: My Website
Back October 2014
page summary