Wednesday, May 31, 2006

Correcting Browser Image Flicker

I was reading Slash Dot today and noticed that any time I ran the mouse over the logo, it flashed; how annoying.

I asked a colleague about it and he suggested I change the settings on my browser, because it had to do with image cache. While I could adjust my browser, it seemed there must be another way.

It turns out you can adjust the settings on your server to set default caching requirements for graphics and this will fix the problem, but it didn't seem right that I would have to ask my hosting provider to change server settings either....

So a little more searching and I found the solution (assuming you're using ASP.NET). You can create an HTTP handler for images. I'm not going to go into the details here, since this article is all you need.

How to make that change

If you want to change something in your life, it's common to try to stop the behaviors you don't like. While this certainly seems logical, it seldom works. The reason is simple - you create a vacuum where the old behaviors used to be. Since nature hates a vacuum it will fill the new void with anything it can find - typically the very behaviors you're trying to stop (since they're so familiar). Instead of stopping certain behaviors, try focusing on what you want to create and begin using the new behaviors. Over time, the old behaviors will be replaced by the new.

One place this idea can be important is in changing your management style. If you are abrupt or abrasive with employees and WANT to change the behavior, focus on being patient and pleasant rather than focusing on stopping the undersireable behavior.

What about weight loss? How many people focus on what they have to stop doing in order to lose that extra weight; quit snacking so much, don't eat such large meals, no snacks before bed, etc. Focus on what you should do instead; eat smaller meals more often during the day, eat fresh fruits, eat fresh vegetables, etc.



Try it yourself:
1. Identify something in your life you feel you've got to stop doing.

2. Think about what you need to start doing in that area.
3. Be specific and write down the specific new behaviors.
4. Don't punish yourself for the old behaviors. Stay committed to the new ones and the old ones will eventually disappear.

Tuesday, May 30, 2006

Real Fight Clubs

URL: Techies beat each other bloody at fight club

Wow. This is disturbing. I've met maybe five people in my 15+ years in IT that I suspect would willingly attend one of these events. And I am sorry, but I do not believe this is a latent behavior learned from video games nor do I think this is anything close to normal. This isn't about being a man, this is something else entirely. Sparring with a trained karate partner is not the same as bare knuckle brawls for "fun."

I loved the movie Fight Club. It was edgy and a great fantasy. But it was fantasy and nothing more. If I recall, the guy that started the whole thing ended up to be a nut job who killed himself. Not your typical hero.

This, ultimately, is few dozen men in serious need of therapy.

Monday, May 29, 2006

Happy Birthday

Happy Birthday to my wonderful wife!

Today is my wife's birthday. We did not do much celebrating as we spent the day driving home from Chicago where we visited with my parents and grand parents. I drive for a few hours, my wife drove for a couple, and our daughter drove for a couple. I think the last part, where my daughter drove (she's 16), was most taxing on my wife.

Anyway, I wanted to tell my wife in front of witnesses and the cyber world just how much she means to me. We've been married for 17 years and I look forward to seeing her every day. She is my strength, my lighthouse in the storm. She always provides me the right path, no matter how lost I feel and she is with me even in my lonliest moments.

Jennifer, you are most precious to me. And I love you.

Always.

Michael

Saturday, May 27, 2006

Interesting Take On Gender

Thank you to my friend Leonid for sharing this one.

One of Leonid's customers has a home-grown CRM system. They asked him to perform some analysis on the database for code inefficiencies, vulnerabilities, etc. While reviewing the system, he came across a table named "SEX_TBL" and, of course, was just too curious.

A simple query showed four rows in the table:
Male

Female
Unknown
Group

Male and Female seem self-explanatory. Even unknown in these modern times makes sense, but Group Sex always meant something entirely different to me....

Friday, May 26, 2006

ReSharper 2.0 Released!

Ok, so I'm a little slow on this one....

JetBrains has released the 2.0 version of their Visual Studio add-in. For those of you who are unfamiliar with ReSharper, it provides error highlighting, unit test integration, and support for code refactoring all from the Visual Studio IDE. Certainly worth a look.

You can download a 30-day trial from the JetBrains site.

Thursday, May 25, 2006

Injection Rejection

I've been studying Cross-Site Scripting and SQL Injection lately for a security project I am working on. I found this article on one of my favorite "free time" sites and thought I would share.

Thanks to Alex Papadimoulis for his site The Daily WTF.

URL:
Injection Rejection

ASP Impersonation

Had an interesting challenge over the weekend. I received a call from an individual who is running a web site written in ASP. The site started out as a simple HTML site, but slowly grew into something more and is now a form of revenue for him. I won't get into any more detail than this about the specific site - for his own protection. ;)

Again, skipping some details, the site authenticates users against a database and then sets a cookie to indicate the user is authenticated. The challenge was that a specific page in the site needed elevated rights in order to update some text files within the site - think of it as one web page writing another.

Anyway, this posed a serious problem for him. The users are not actually authenticated against the server as NT users, so everything they do is under the IUSR_MACHINE user account. In order to be able to update text files, he elevated the rights of the IUSR_MACHINE user. he then was concerned he may have granted all of his pages too much access to his machine.

So how to get around this?

In ASP.NET, it is relatively easy, but with ASP, we have a challenge.

After some digging, I found a simple way to write a DLL that does the lifting for you and allows you to temporarily act as another user.

We implemented the spiffy new DLL, lowered the rights of IUSR_MACHINE and created a separate user with the rights desired. The page now impersonates the desired user and then reverts back to IUSR_MACHINE when done.

This post will help you get started:
http://support.microsoft.com/default.aspx?scid=kb;EN-US;248187

Tuesday, May 23, 2006

Excellent Series on Management

Prior to my new assignment of Senior Application Architect, I was a Software Development Manager. I loved that job and I took it quite seriously. Having been recently hired into a tumultuous environment where upper and middle management was changing every 2 months (I was unaware of this phenomena until AFTER I was hired), I found myself with a relatively new and dysfunctional team. I struggled for a bit, trying to get them to come together as a unit, but I discovered a series of books written by Patrick Lencioni that helped a great deal.

These books may seem too simple at first. As a manager, you are faced with complex problems. A simple parable with simple lessons could not possibly hold the answers to your unique and difficult situation. The lessons learned in these books are not new and they are quite simple. Most important, they are effective.

Anyway, I recommend them for a read.

The Five Dysfunctions of a Team
Overcoming the Five Dysfunctions of a Team
Death By Meeting
The Five Temptations of a CEO

He has others, but I have yet to read them.

I will be concentrating more on technology and less on people as my new role demands. I do hope someday (soon) I will be able to put my focus on people once again. Perhaps I will find an employer who truly values people and recognizes that it is through leadership, not management, that the best results are achieved.

Monday, May 22, 2006

How Would You Feel?

About a week ago, I was informed that my bright shiny and rewarding job of Software Development Manager was being eliminated in an organizational flattening. This was a "no fault" move - I had done nothing wrong, the organization was simply too management heavy. As a result, I was being provided the opportunity to select from any one of three different jobs to fulfill; Lead Software Developer, Lead Project Manager, or Senior Application Architect. I was to receive the same compensation for the new role.

Many of you may say, "That is unfortunate, but at least you are still employed and did not get a cut in pay." While I recognize both of these factors, I struggle to find genuine tiding in the situation and certainly no comfort.

Less than one month prior to this flattening of the organization, a new manager was moved into our group. There was no requisition open. We had no need. He brought with him only two employees and no defined set of responsibility. He had, however, been with the company for ten years compared to my one. He had been a manager in another division of IT, but had grown weary of the struggles of the role and asked that he be placed somewhere else. This gentleman is now my boss and has inherited my 17 person organization as his own.

It is the orchestration of these events that trouble me. There was no open position or need in our group for another manager. We were already manager heavy and we knew it. He was unhappy in his role and wanted something else. I suspect he makes a great deal more than I and could not have been easily moved into a lower pay-grade without a salary adjustment or extremely limited opportunity for raises and incentives.

Should they reward his loyalty? Certainly. Should I or anyone else have to lose their position because he elected to step down from his own? I think not. And to add insult to injury, he is now my boss.

I will work to fulfill my new role to the best of my abilities. But for this company to ask or expect my loyalty from this point forward is perverted.