Wednesday, December 19, 2007

Good Political Ad

My friend Dave has been posting plenty of positive press on on his favorite candidate. So following his lead I'm making some political comentary of my own. I am not endosing the candidate here, but I am endorsing having fun with a process that has become painful.

This ad is just good clean fun.

Sunday, December 16, 2007

Kids play at piano recital

Yesterday was piano recital day. I forgot the real video camera, so I used my digital camera to record video, it is a Canon SD500 I got a couple years ago, it is not real clear, but still you get the idea. Click the play ">" buttons on the lower left of the image to see and hear them play.


Isaac, 11, first set


Isaac, 11, second set


Brittany, 14, first set


Brittany, 14, second set

Saturday, October 27, 2007

Thank you Sir! May I have another?

Imagine your doctor writes you a prescription, you bring it to the pharmacist and he has the medicine. But your insurance company wants your doctor to get the medication pre-approved before they will cover it, and that pre-approval is being held up in paperwork somewhere. You’ve used the medication in the past, so you know it will help. In fact you know that without this medication, you will have problems. So you decide to pay for the medication yourself. Your doctor prescribed it, your pharmacist has it, you need it, and you are able and willing to pay for it. Done deal, right?

Not if the State is your insurance company.

Our children are adopted. They came to us from the foster care system. You can listen to our NPR interview on real audio about the program we worked with. In the end, we have four wonderful children to brag about.

As a result of them coming out of the foster care system, each of the children came with “Adoption Support.” In our case, our children receive Title 19 medical assitance, what is more commonly known as Medicaid. This is not the same program as the hotly debated SCHIP program.

Long ago, we decided to put our children on our family insurance plan offered by my employer. We do this for emotional reasons. We don’t want our kids ever believing we wouldn’t pay for their health care, and translating that into some message of rejection.

So Medicaid functions as a secondary insurance policy. Whatever is not paid by our employer provided insurance is then covered by Medicaid. So that $15 dollar doctor visit co-pay is covered, the seven dollar medication co-pay is covered. The glasses that get broken before the two year cycle is up are covered. It’s nice, but it really doesn’t add up to any large sum benefits.

To maintain our eligibility we have to submit annual tax statements and jump through some hoops. Last year they required a second opinion before a medication could be covered, which resulted in a trip to a doctor they selected at Children's Hospital. This year just before school started, the State sent us a letter informing us they wanted all four children to go in for a check-up within 30 days. The doctor’s schedule is pretty tight with all the new kids getting ready for school and athletics, so getting four kids non-emergency medical attention is impossible. We got them in within 45 days, but we had to pull them all from a day of school.

Today I encountered the exact situation described in the opening paragraph, where the doctor prescribed, the pharmacist was able to provide, our primary insurance would pay for most of a medication,
but the State wanted pre-approval to cover only the CO-PAY. I tried to pay, and the pharmacist said he was unable to let me do that. If he were discovered accepting money from someone on Title-19 insurance, he could face penalties.

Gee thanks. I’m glad my government knows so much better how to take care of my family’s health than my doctor and I do. I can’t wait to have more government run health care.

Monday, October 15, 2007

Verizon Swing and a Miss

FIOS has hit my 'hood. 49.95 for lightining fast, 39.95 for merely blazing. But wait, there is more. I can get it as a "package" with home phone, internet, and cell service. But the pricing confuses me, and I contact customer support. Below is my conversation, with spelling corrections.

Your chat ID number is 10150791940.
Welcome to Verizon Live Chat. You have selected to chat about:
TN:425pppnnnn
Subject:Product Information / General Bill Inquiry
15:29:24 A Verizon eCenter Representative will be with you shortly. Thank you.
15:42:58 Estimated wait time is approximately 5m:39s's, we apologize for the delay. You are next in the line. A representative will be with you shortly.
15:43:09 Agent John has joined.
15:43:09 John: Chat ID for this session is 10150791940.
Roger: Hello, I am trying to figure out how to compare the cost of a bundle to my existing bill. According to the website, if I get fios (fast is good) I can get it for 39.95 vs 22.77 I am paying now. (17 buck for the extra speed). and phone in a bundle for 44.99, but my current cost is 34.34 (all taxes included) -- 10.65 extra. this bundle costs me more. how is that better?
John: You get Unlimited Long Distance, calling features, and state of the art Internet services.
Roger: but I use my cell phone for long distance already...
Roger: and the fios is 39.95 even with out the phone package.
John: Yes, perhaps the bundle is not the ideal package in your situation.
Roger: so is it just the extra calling features I get for the extra 10.65?
Roger: Seems odd that a bundle would cost me a bundle more.
Roger: that's too bad.
John: Long distance is the main advantage, and the features are included in the price.
Roger: I suppose the other advantage would be unlimited calling between my cell and my home.
John: If you have the Verizon Wireless, yes.
Roger: ok, so I’m not misinterpreting the offer.
John: I do not think so. Its a general offer, it may not fit everyone’s calling needs.
Roger: I had hoped the package would offer me more benefit.
Roger: Thanks for your time.
John:Thank you for your interest in the services.
Roger: :(
John: Do you have any other questions I can help you with today?
Roger: can you make the package help me?
John: The bundle is as listed online. There really are no options to rearrange this bundle. I apologize.
Roger: kinda figgered, but you asked. :D
John: I understand.
Your session is now closed.
Thank you. Have a nice day.

Sunday, August 19, 2007

The six Fs (don't get your hopes up)

My friend Adam observed there are six words that begin with F that motivate people in their jobs. I'll list them in alphabetical order
  1. Family / Friends - a job that provides an opportunity for you to spend time with your family. Imagine limited work hours, extra vacation, or even telecommuting.
  2. Fame - success at your tasks will make you famous. Think of Mark Andreeson, Jim Barksdale, Adam Bosworth, Bill Joy.
  3. Force - releasing a product that changes the world. Microsoft Office, Internet browsers, relational database.
  4. Fortune - If you succeed, you become wealthy. For some, this is to break $100,000 a year. For others it is to break $1,000,000.
  5. Freedom - to work on what you wanted. An example of this would be Google's 20 percent time.
  6. Fun - This job is just a fun place to be. Nerf rockets, positive feedback, video games, group lunch.

What motivates you?

Monday, July 02, 2007

The problem with learning from experience is the test comes before the lesson.

Insurance companies rule the aviation industry. As an example, in the 12 years I've had a pilot’s license, I've not had an accident resulting in any damage -- knock on wood. Admittedly I've had one declared emergency, and one near miss (and why is it a near miss? I was nearly hit!). I have accumulated an instrument rating, a complex endorsement, a high performance endorsement, spin training, advanced maneuvering and upset recovery training, a commercial license, and a multi-engine license, and am most of the way through my instructor license. I have also accumulated over 600 hours of flight time.

My commercial license allows me to charge people for rides in the plane. To get this license, I must have completed 250 hours of flight time. But the insurance company requires that I have 500, or double that amount of time, to be insurable. To get a multi-engine license (ME), I must have been trained by a federally certified instructor, and get his or her approval to sit for the test. Then I must be orally reviewed by a federally designated examiner. Once that is complete, I must also fly with the examiner so he can review my ability to operate the aircraft systems, under duress. With his or her approval I can have my multi-engine license. But then the insurance requires I fly the plane for an additional 8 hours with an instructor before I can fly it alone. To act as a co-pilot of a multi-engine charter flight, the insurance company requires 1,200 hours of time!

This is where today’s story starts. I have had my ME for a bit less than a year, and I simply have not made the time to acquire the time required to satisfy the insurance company, so Sunday morning I made plans to go bore some holes in the sky. I met my instructor with his favorite white chocolate mocha at the airport.

I prepped the flight school's Piper Seneca and we climbed aboard. We marked things off the check list in preparation for take off, and ran the plane down the runway to the south. After lift-off we climbed clear of the runway, retracted the gear, set the plane to climb at 120 mph, and performed the climb-out checklist. I turned right continued my climb on the crosswind leg, and exited the pattern toward the opposite side of the Puget Sound. Upon reaching 3,000 feet, I pulled the power back to 23 inches of manifold pressure and slowed the propellers down to 2,300 rpm. This is a good setting for cruise. The nose lowered towards the horizon and the plane accelerated up to about 150 mph, and I pointed the plane towards Port Townsend.

The nacelles that enclose the Seneca's engines open from either side and hinge in the middle. This allows for excellent access to the engines during preflight. However, the latches that hold the panels closed are notoriously finicky. As a final step after securing these latches, most pilots give the panels a good firm pat to make sure the are really latched. As the plane settled into cruise I had completed the cruise check list, closing the cowl flaps and turning off the fuel boost pumps. As an additional step, I scanned outside the airplane, with particular attention on the nacelle panels.

To no great surprise, the outer panel on the left engine appeared to have come open. But it was oddly opened. The front corner along the center hinge, nearest the propeller was open about two inches. As I looked at it, aside from being open, it seemed open wrong. And for a fleeting moment I wondered how, at 150 mph 3,000 feet above the waters of the Puget Sound, could it possibly be opened right? Being a master of the obvious, I pointed to the engine and said to my instructor, "That doesn't look good."

We quickly agreed that going back to the airport was the right thing to do. I banked the plane into a 180 degree turn, and contacted the tower. "Paine Tower, Seneca one six two niner two, we are returning to the airport for a full-stop landing," I said in my best pilot-in-command-radio-voice.

The controller in the tower responded "Seneca one six two niner two, make right base for runway one six right, report the ferry dock. Do you require assistance?"

Wow, "assistance." I didn't think I sounded stressed, how did he know? My instructor was urging me to slow the airplane down to 105 mph to reduce the aerodynamic forces on the panel that were clawing to peel the gap wider. I keyed the microphone and said "We’re doing OK." I was impressed with the controller. He had several other planes he was working, and we had just departed his airspace. But at hearing we were coming back, he rightly guessed that something unusual was occurring, and offered extra assistance. I briefly considered asking for runway one-one, which was straight ahead, but decided no, since the controller had several planes in motion, and my clearance was already in place. I didn't want to throw any curves in to the process as long as things were flowing. Plus runway one-six-right is twice as long.

The next plane to report in was north of me, or to my left, and requested to land on runway one-one, straight in front of me. Since I was headed to the left to join the right base leg, to allow new plane to land on one-one meant he would have to pass in front of me from left to right while I turned to the left behind him. The controller, still sensing something was amiss, refused the new request and assigned the new airplane to land on runway one-six-right with land and hold short instructions, thus preventing the other plane from passing in-front of my path. The controller then turned his attention back to me, gave me the current wind conditions as three-zero-zero at eight, and offered me a straight in approach to runway one-one, a much simpler path for me to fly.

With the winds coming 300 degrees, and me landing on a runway heading of 110 degrees, that meant they winds were blowing from nearly directly behind me, just off my left side. At 8 knots they were below my personal 10 knot tailwind landing limit. So I accepted the clearance.

We landed and turned off the runway into Regal’s parking area where we secured the plane’s engines and examined the open panel. Much to our surprise the finicky latches were still secure. But the forward hinge on the panel had failed and all left holding the front corner of the access panel down was a grounding strap. At this discovery my instructor and I agreed we were done flying for the day.

Even though I only got to log .5 hours of flying, I was once again struck by the lessons of the day. First was the ingenuity of the Piper engineers. The grounding strap could have been installed anywhere along the center-line of the cowl, but by placing it on the front of the panel, when the hinge failed, the grounding strap acted as a backup to hold against the 150mph wind. If the rear hinge had failed, no strap would have been necessary as the wind would have been pressing the trailing edge of the panel down. Second I was impressed again by the situational awareness demonstrated by the Paine Tower controllers. He knew something was up, and cleared a straight path for me without me even asking, all the while presenting me with current information that would aid me in making a decision. Third, I was impressed by the importance of knowing the equipment. There are a lot of things going on in the airplane, and the checklist is there to help us. It is important to run the checklist to keep track of all those things, but it is also important to know your equipment. Knowing to the latches are finicky, led me to visually verify them in cruise, and that resulted in me seeing the related failure.


Never let the plane take you anywhere your head has not already been.

Wednesday, May 16, 2007

Just the facts, ma'am

I am a local general aviation pilot, who occasionally generates airplane noise around Harvey Field. I have yet to grasp the difficult reasons for modifying the current runway alignment, but the latest set of misrepresentations, half-truths, and deception that passes for facts in has inspired me to write.

It is true the population of the area has swelled; however the FAA no longer considers it “other than congested” and it is a “congested area.” According to Federal Aviation Regulation (FAR) 91.119, this increases the minimum altitude from the misstated 500 feet to 1,000 feet above the highest obstacle, unless landing or taking off.

Further, the airspace over Harvey Field is not considered “free.” Starting at the ground up to 700 feet is “uncontrolled” but at 700 feet (300 feet below the minimum altitude) it becomes controlled “Class-E” airspace with very specific visibility, ceiling, and separation requirements as defined in FAR 91.127. At 6,000 feet, the airspace becomes even more stringently controlled “Class-B” as defined in FAR 91.131, requiring radio communication and approval from the SEATAC controllers.

The writer asserts a half-truth that Kirkland and Seattle are controlled all the way to the ground. They are not. Kirkland has the same controlled airspace as Snohomish starting at 700 feet and then it becomes the more restrictive space at 3,000 to 5,000 feet. Much of Seattle north of downtown is similarly classified.

It is true that part of Seattle does have some controlled airspace starting at the ground. But so does Marysville, Everett, Renton, Bellingham, Mukilteo, Olympia, Lynnwood, Spokane, Oak Harbor, Port Angeles, and Moses Lake! The reason? They all have large airports to which the writer objects! If you want controlled airspace, it comes with “super-sized” airports.

Flight plans are not required for any domestic visual flight, and are primarily designed for search and rescue to locate missing aircraft. Visual flight plans have no bearing on the aircraft being directed by air traffic controllers. The writer’s use of this point is purely a distraction.

Finally, it is a misrepresentation to claim the airport will be super-sized. There is no intention of attracting larger or noisier aircraft. The proposed runway changes REDUCE the useful length of the runway, and increase its distance from hazards.

If the community is expected to make good decisions about a difficult issue, we need to stick with facts.

Sunday, February 25, 2007

Getting Parameters to .ascx files

In .net, the preferred way of performing server side includes is to use the web control, or .ascx file. As I noted earlier .aspx files must have the html and body tags in them. but .ascx files do not. These are simply easy to use html blocks that can be plugged in to an .aspx file.

They also allow you to write code behind the html blocks, like the .aspx file does. However, passing parameters to the control is not apparent, so again hacking comes to the rescue.

Let's imagine an aspx file that selects an XmlNodeList from a document. Then each item in the node list should be passed to the control for formatting and inclusion in the webpage.

To pass that node, add the node to the Session, and then in the .ascx, always start by retrieving the value from the Session.

This creates a loose coupling between the .aspx and the .ascx which must be documented. I also like to create public string constants that are used for keys to the session context.

If there is any interest, I will post code samples.

Wednesday, February 21, 2007

Servlets in .net?

Today I am writing a website using .net 2.0, and one of the pages needs to return a .pdf rather than HTML. So the return back needs to not output the normal html headers and content. But in ASPX, every webpage must contain at least this:
<html><body/></html>

But once that is emitted into the stream, I am not outputting a .pdf any more. So I needed to subvert the streaming of that content.

Here's what I did:
<%@ Page Language="C#" AutoEventWireup="true" 
CodeFile="Default2.aspx.cs" Inherits="Default2" %>
<% if (true)
{
Emit_Content();
}
else
{ %>
<html><body/></html>
<% } %>

Once the html tags were subverted, I was able to write the Emit_Content() function in Default2.aspx.cs. Note that byte array _buff and Int32 _got are member variables.

    /*
* Write out the contents of the
* pdf to the http response socket
*/
protected void Emit_Content()
{
try
{
Response.ContentType = "application/pdf";
Response.AddHeader("Content-Disposition",
"inline;filename=new.pdf");

Response.BinaryWrite(_buff, _got));
}
catch (Exception ex)
{
Response.Write("<html><body>" +
ex.Message + "</body></html>");
}
}

Saturday, January 27, 2007

More Funny Dell Stories.

One of the 20 or so Dell computers I support was complaining during startup that some of its memory was not working. If you tried a couple times, the computer would boot and run, but then eventually error out later on a memory read failure. The computer is still under warrantee, so I called Dell.

The support techs put me through the normal memory failure drill.
  • Boot the computer, hitting F12 (boot options) and select diagnostic utilities. Run the memory test. Failure.
  • Unplug the computer, remove the memory, clean the contacts with and eraser, and install the memory. Failure.
  • Remove both memory sticks and swap slots. Failure.
  • Remove just the stick from slot one. Computer Boots and runs fine.
  • Reinstall the memory to slot one and remove the memory from slot two. Failure.
By now we know the memory is bad, and that it is the memory in slot one. The support tech says he will be sending out technician with replacement memory for us. I counter that he can just send the memory, and I’ll install it at a time the system can be taken off line without disrupting the business.

So the support tech says “Are you comfortable installing the memory yourself?”

I laughed out loud and retorted “Um, I just took it out, cleaned, put it back in, swapped it, and removed and reinstalled them one at a time to help you diagnose the problem. You tell me if you think I can install the new ones.”

We both had a good laugh, which concluded with him admitting that he is required to ask.

The next day, I had new memory waiting for me. Dell delivers the fix, and good humor at the same time.

Friday, January 12, 2007

RAVE: I love bluetooth.

Long ago I gave up my regular flip phone in favor of a smart phone. Even as a nerd, I wanted to carry around the fewest gadgets possible. At first I had a TREO 600, a great phone to be sure, but it has some drawbacks.

What I really want is a phone with a built in PDA. What is available is a PDA with a built in phone. My idea of a phone is a flip phone. Something like a old Star Trek communicator -- flip it open and announce, "Kirk to Enterprise!" and a voice responds from the ether. One of my all time favorite phones was my old StarTac (ironic huh? StarTac vs Star Trek?). Then when the conversation is done, close the phone, and stick it in your pocket. Done, simple, fool-proof.

Instead I have a small brick I hold to my head. It does EVERYTHING I want from a PDA, but as a phone, it feels like I'm holding a VHS cassette to the side of my face. And corded headsets are frought with their own trouble. I was always catching the cord on something or dragging it along behind me. The cord evenutally caught somewhere, and the force of it jerking the plug from the recpical broke the contacts inside, making the phone usable only WITH a corded headset -- go figure!

I am at my core, frugal. My friends call me a cheapskate, and I'll accept that. I had been lusting after a newer treo, but my broken 600 was still under contract, and a new 650 or 700 with bluetooth was going to exceed my personal spending cap.

Then the the patron saint of the skinflints smiled on me. I was working on a customer's computer system, and he had a Treo 700w box on his desk. I asked him how he liked his phone.

"I hate it." He responded. "It is too big and bulky, so I got this instead." He remove a RAZR from is pocket.

"Would you sell me you old one?" I offered, hoping to buy it within my budget.

His response was curt and final. "No. Take it off my desk so I don't have to throw it away."

I bought a Jabra 250v headset off ebay the next week.

It was a breeze to connect, and has great sound quality. Now I have no brick by my face, no cords to get tangled, and I am one happy yacker! Give me a call some time.

Monday, January 08, 2007