Saturday, July 16, 2011

Why I believe the media makes our political system worse

I am absolutely convinced that the media deserves a significant amount of the blame for the problems with our politics in this country. Within about 10 minutes of each other I read an analysis of the debt ceiling issue from my investment advisor, and then a news story on the same subject. It is amazing how different the tone is. Read these comparisons:

Investment Analyst:
It's clear that Washington needs to take action regarding the debt ceiling in the short term, but also address our longer-term deficit and debt issues. Amidst all the negative headlines and "what if" scenarios, it's normal to be concerned. But remember, emotions shouldn't drive your investment decisions. We don't recommend making any changes to your portfolio based on the small chance that Congress fails to act. While we don't know exactly what will happen, Congress has raised the debt ceiling every year for the past 10 years, and we don't think this time will be any different.


Leading line from online news source:
AP - Horror stories are flying about the damage that might be wreaked should Congress and President Barack Obama fail to cut a deal by the Aug. 2 deadline to increase America's borrowing limit. Nearly every American is in harm's way, either directly or indirectly.

All they do is stir the pot and get everybody fired up and angry at each other. I do believe the last line of that statement - that every American is in harm's way. But the media is the one causing the harm.

And yes I am 100% in favor of free speech and the 1st amendment. It is just a shame that the majority of people in that industry choose to exercise those rights in such an irresponsible way.

Friday, May 20, 2011

The importance of verbal communication - debunking the myths

My entire life I've heard people say that 80-90% of all communication is nonverbal. The top result on Google claims 93%. The problem is, I just can't believe it.  I believe the verbal part of communication is so essential to the process that all the studies skip over this completely.

If 93% of communication is non-verbal, I could listen to somebody speaking German or Chinese and understand nearly everything they were saying. Obviously that is not true at all. Non-verbal communication can only express emotions. You can listen to somebody speaking another language and get a sense of whether they are happy or sad, excited or upset, but you miss the message itself. If somebody ran up to you needing help and tried to communicate that to you in another language, you would immediately sense that they were distraught, but would have no way of knowing the actual problem.

As humans we have the capacity to contemplate, communicate, and discuss deeply complex ideas. We can have philosophical discussions about abstract concepts, imagine alternate realities, and ponder hypothetical questions about our very existence.  Non-verbal communication is not going to get you there.

If communication was so heavily dependent on the non-verbal aspect, how can you explain the power of the written word? Writing has helped spark national revolutions, changed societies, and created world-wide religions. How is that possible if it only represents utilizing 7% of the communication process?

Without question, there are non-verbal clues that help you interpret the words being spoken, provide context, and help refine the message.  But without the words themselves, communication as we know it would not exist.

Monday, November 22, 2010

Change axis font in Excel 2007

Want to change the axis font in your Excel 2007 chart, and can't find it anywhere in the Format Axis window? Just click the axis and then use the toolbar items to change it just like you would any other cell.

Sunday, October 3, 2010

Kudos for Customer Service done right

I've had a good string of excellent customer service experiences lately, so I thought I'd take a moment to recognize these companies for a job well done:

Netflix
About 6 months ago we conceeded that we had officially lost a movie, so we paid the $15 so they would send us the next movie in our queue.  At the time they informed us that if we found it within a year, we could return it and they would credit the amount back to us.  Well sure enough, a couple weeks ago I was moving furniture and there it was.  I shoved it in the return envelope along with another movie, shipped them off, and the credit was immediately applied to our card with no other action required on our part.

Lowe's (Rogers, AR)
We bought a replacement faucet for the kitchen sink in our rental house. When we opened the box to install it, a piece was missing, so we took it back and exchanged it for another box no problem. We got that one installed but it wasn't sealing properly and water was spraying all over. We removed the pull-out handle and associated parts and took it back. We got a 3rd box, opened it up in the store, and realized it was also missing a piece, though not the one we needed. Lowe's basically allowed us to rifle through the box, swapping out the pieces we needed until we had a functional set. We took it home, and in 5 minutes had the job finished and everything working great.

(On a side note, I think somebody over at the Moen plant needs to step it up in quality control.)

Definitive Speakers / Best Buy
About 4 years ago, Christie and I bought a home theater system from Best Buy, including 2 Definitive brand tower speaker units with built-in sub-woofers.  A month ago one of them started acting up, producing a lot of interference-type static, even when the TV was off. I took it up to Best Buy to see what my options were on a repair. It turns out that the speakers carry a 5 year manufacturer's warranty. Best Buy sent it back to Definitive, who determined that the amp and woofer were blown. They replaced them and shipped it back to me in about 2 weeks, and it didn't cost a dime. Wow - now there's a company that knows how to stand behind their product.

Trend Micro
A great example of a company who had some hiccups and still created a positive experience through good customer service. My internet security and virus subscription expired, so I renewed online. They sent me an updated program install to run. However, installing it on my Windows 7 box gave me an error that it was not compatible with that version. Clicking the "search for solution" button took me to a page on Trend's site stating that to resolve the issue, they were offering a free upgrade to their newer product, which solved the problem. However it didn't recognize my updated subscription and said I was expired. I went on their site to use the "chat with a tech" feature, and within 2 minutes they had the issue resolved and I was up and running.

Thanks to these companies and the helpful staff - I am a loyal customer because of it!

Tuesday, September 28, 2010

ASP.NET Gridview - Group Header Rows and Export to Excel

I'm working on an ASP.NET portal project that has 2 very common blocks of code in it, but could not find good information on integrating these two together.

First I need to great a group header row on my gridview to collect related columns together. A typical example is to create a gridview with headers like this:

Group 1Group 2
CountAmountCountAmount

This can be accomplished in the GridView's DataBound event and adding the extra row above the header. A typical code example can be found here.  So far so good.

Of course, our users also want to be able to export the results of these grids to Excel. Again, a very common task. An example of implementing this code can be found here.

The only problem comes when you try to use both. The grid looks great on your webpage, but when you export it to Excel, you only get the original row from the designer - not the new group header row.  The other day I decided to get to the bottom of this.

The export class pulls the header information from the gridview through the HeaderRow property. As the name implies, it only returns a single row. So I went exploring through the various properties of the gridview to see what else I could find.

The code that adds the group header is based on the premise that gridview.Controls[0] can be cast as a Table to get the table representation of the entire grid. A table of course contains a collection of Rows. Now each row has a property on it called TableSection, which is an enumerated type with values TableHeader, TableBody, and TableFooter. However, I found something interesting: the rows created by the default gridview all have the TableSection property set to TableBody - even the header row.

I decided to exploit this in my code. In the DataBound event, before adding my new row to the header, I simply set the TableSection property to TableHeader:

if (t != null)
{
row.TableSection = TableRowSection.TableHeader;
t.Rows.AddAt(0, row);
}

This allows my new header row to be differentiated from the default header. I use this to identify the row in my export to excel class:

if (gv.HeaderRow != null)
{
// Check for extra header rows created
Table GridAsTable = (Table)gv.Controls[0];
if (GridAsTable.Rows[0].TableSection == TableRowSection.TableHeader)
{
GridViewExportUtil.PrepareControlForExport(GridAsTable.Rows[0]);
table.Rows.Add(GridAsTable.Rows[0]);
}

// Now add the "normal" header row
GridViewExportUtil.PrepareControlForExport(gv.HeaderRow);
table.Rows.Add(gv.HeaderRow);
}

Of course, this code only allows one additional header row to be exported - if you have need for more simply loop through the Rows and find all those flagged with TableHeader.

In the end I found this was a very simple solution to the problem, and my users can now see the column group titles when exporting to Excel.