Sunday, May 23, 2010

Leadership Benton County

On Thursday I will graduate with the Leadership Benton County class of 2009-2010. I was honored to be selected to participate in this year-long program, and thoroughly enjoyed the experience.

The Leadership Benton County program is hosted by the 3 local Chambers of Commerce: Rogers/Lowell, Bentonville/Bella Vista, and Siloam Springs. The goal of this program is to provide leadership training for future community leaders.

The program runs from August until May, and requires a commitment of a full day per month, plus a 2½ day trip to Little Rock. We spent some time at the Soderquist Center for Leadership and had monthly sessions to learn about our community on topics such as Human Services, Education, Tourism, Economy, State and Local Government, and Humanities. We were given the chance to visit numerous businesses and organizations in Benton County and meet with a diverse group of community leaders.

I gained a great deal from participation in the program. If I had to pick the one single thing that stands out, I would say that it is the recognition that leaders are not fundamentally different than anybody else - they simply choose to get involved and lead.

I would encourage anybody with an interest to get involved. For more information on the program, click here.

Sunday, May 9, 2010

Replace $1 bill with $1 coins

The United States has been trying to get a $1 coin circulating for at least 30 years, since the introduction of the Susan B. Anthony dollar in 1979. Every attempt has failed for one simple reason: we are still making $1 bills. As long as the bills are available, the public will not convert to $1 coins.

There is a very strong, obvious reason to convert to coins: COST! Let's look at the details.

The US Government spends about 7.5 cents to create a one dollar bill, according to the US Bureau of Engraving and Printing (BEP). By comparison, the cost of creating a dollar coin is 16 cents, per the US Mint annual report, page 32.

However, a dollar bill only has an average life of 21 months in circulation, per BEP. By comparison, the average life of a coin is 25 years, per US Mint. So for twice the cost we can produce a product that lasts 14 times as long. That sounds like easy math to me.

To confirm this point, according to the BEP website (same page as above), an astounding 95% of all bills printed are to simply replace circulating notes.

In 1995, the Congressional Budget Office urged Congress to consider this option. At the time it was projected that over the following 5 years it would save $100 million dollars. According to the US Mint, a report by the General Accounting Office in 2002 revised this estimate to $500 million dollars.

Is it just me, or does this seem like a really easy decision? What are we waiting for?

And if you still aren't convinced, the next time it takes you a dozen tries to get the Coke machine at work to accept your wrinkled up dollar bill, just think how much easier it would be if you had a $1 coin in your pocket!

Thursday, May 6, 2010

ASP.NET and AJAX Incremental Page Loading

I had been searching the internet at work this week for a good example of using AJAX to do an incremental page load. As often happens, I just couldn't quite find the right page, though I found a promising video which I was not able to watch at work. I finally got a chance to watch it tonight and it provides a perfect, simple walk-through of implementing this. See the video here.

The only thing I didn't like in the example was that each call used a different success function. What I wanted was a page that would report statistics back on multiple tables, and incrementally display the results as they came in. My webservice would accept the table name as a parameter and return a string containing the results. But if I had 20 tables, I didn't want to have 20 success functions.

With a little more searching, I discovered that when you execute the webservice, you can add an additional parameter at the end for user context, which is an arbitrary string that is passed along and sent to the success function. In my case I passed along the name of the div I wanted it to update, so a single success function could insert the results into the correct location. Here is the code:

function pageLoad() {
WebService.GetInfo("Table1", OnComplete, OnError, "Div1");
WebService.GetInfo("Table2", OnComplete, OnError, "Div2");
WebService.GetInfo("Table3", OnComplete, OnError, "Div3");
WebService.GetInfo("Table4", OnComplete, OnError, "Div4");
WebService.GetInfo("Table5", OnComplete, OnError, "Div5");
}

function OnComplete(result, divname) {
document.getElementById(divname).innerHTML = result;
}