Anyone reading this via my RSS feed, I’ve switched over to feedburner for better tracking. The new RSS feed is:
http://feeds.feedburner.com/uhri
For some reason I can’t seem to remember this when I need it.
If you have a dropdownlist in ASP.NET:
<asp:dropdownlist id="states" runat="server">
If this dropdownlist is databound:
DataSet ds = new DataSet();
ds.ReadXml(Server.MapPath("states.xml"));
states.DataSource = ds;
states.DataBind();
...and you want to add a blank value to ensure the user has selected a value, do the following:
states.Items.Insert(0,"");
You can substitute any value for the blank string, such as "--select--".
As much as I’d like to be one of Steve Pavlina’s polyphasic mutants, its not a sleep structure I beleive will work with my job and family lifestyle. The basic gist of a polyhasic sleep schedule is to take many small naps throughout the day instead of a large chunk of time in the evenings. Mr. Pavlina indicates that after 90 days he sees no reason to switch back to being a hibernating “bear” in a monophasic sleep schedule. He has the advantage of setting his own work schedule (as he is self employed) and has only 1 young daughter. I don’t think it will work out for me.
One component of the polyphasic sleep schedule which has always run true for me, however, is the idea of a short nap: the so-called Power Naps. My first experiences with the power nap were with my dad. Each day, after returning home from the office to eat lunch, he would relax in his recliner. He would fall asleep until his office called for him. He would get up and go to his appointment none the worse for wear.
Having seen his example, I started the same technique in college. With classes scheduled around a central lunch break, I had time to squeeze in a quick snooze before afternoon class. I crashed on the couch in our apartment in favor of my bed… I didn’t want to be too comfortable and oversleep. Actually, I didn’t use an alarm clock; my internal clock was able to wake me up in 20 minutes every time. These refreshing naps recharged my mind and body and made long days of classes bearable.
These days I don’t take specific time for power napping unless I feel particularly drowsy. I feel a bit weird about it, so my particular method is to leave my employer’s property and park somewhere relatively quiet. I set the alarm on my cell phone for 20 minutes and crash. I find taking a half hour out of my afternoon for a nap is much more effective than other methods of trying to stay awake. Its certainly a better policy than incoherent time “on the clock”.
My understanding is that another coworker uses the same technique, although I’ve never talked to him about it. Some companies have seen the benefits of the power nap and even provide “relaxation rooms” for their employees. Nike is one of the biggest companies to give this benefit to its employees. There are other enlightened companies, especially in transportation, that encourage quick nap breaks.
One tweak to the power nap I recently came across is the Caffeine Nap. With this technique, you drink a cup of coffee followed by a nap chaser. The caffeine clears the drowiness during your sleep leaving you more alert afterward. I can vouch for the caffeine nap — I used to do it all the time. My routine was a little different, though, since I used it as a wake-up technique. I’d set my first alarm for an hour earlier than I needed to be up. When it went off, I’d turn on the coffee maker I prepared the evening before. I’d cool the coffee down with ice when it was ready, and drink it as quickly as I could. Once finished, I’d climb back into bed and fell back asleep. The second alarm would wake me at the time I needed to get up. I’d get up and be fully awake the second time.
One final note about power napping: get a clock with a nap button. This brilliant feature lets you set a nap alarm with one button click. I have an Emerson Alarm Clock with Nap Timer. This clock has given me a couple of problems with the regular alarms not going off and the radio turning on when I turn them on. It is also blindingly bright — I turn it toward the wall to be able to sleep. But the nap button! It makes all the other foibles disappear. You might have more luck with the Neverlate 7-day Alarm Clock.
Here are a couple of resources I’ve found on the subject of power napping:
- Pzizz.com’s power napping page.
- Luxe Vivant’s Who is Napping page.
(hat tip: Randomize’s Caffeine Nap)
I have been using email for over 13 years. In that time, I have seen it go from a little used but useful tool to the primary way of delivering information in the business world. What amazes me is the volume of business email created every day. My wife, for example, returns from a day of vacation to find her mailbox swamped with over a hundred emails. She spends most of the morning back at the office weeding through the pile.Now I don’t have nearly the volume she does, but often the email I do receive is of poor quality. The message isn’t clear and I have more questions when I’m finished reading than before. I hate email that wastes my time. I can’t imagine dealing with ten times as much of it.
Other than being obnoxious, there really isn’t anything I can do to make others write better email. I’ve tried to improve the quality of the email I send, hoping others might catch a few of my good habits and improve the email world a little bit. I would like to offer a few tips of my own.
Currently I am reading The Art of Project Management by Scott Berkun. It’s a great book so far and not nearly as boring as it sounds. In it, chapter 10 is “How not to Annoy People” and covers processes, email and meetings. Some of his thoughts on how to be effective via email are really good, and will be something I add to my repertoire. This post should lay out a number of my thoughts about email.
Message Recipients
Smaller, specific recipients
When I write an email, I attempt to minimize the number of people getting the email. There just isn’t a need to involve everyone in a thread that may be only peripherally relevant. If there is a reason someone should be added, I like to send a separate email (or a forward) outlining the reason I think it is important to him or her.
To:
When I add someone’s name to the to: box, its because he or she is directly involved in the email. It either contains information or a request for action on his or her part.
CC:
I try to avoid cc:-ing people if I can. Generally, carboning somebody means its an FYI, and that’s just clogging up their inbox. Unless somebody is micro-managing a process, they don’t need every little detail in an email thread. If someone is intimately involved in the topic, however, I add him or her to the cc:.
The one exception I do follow is when I mention somebody else in an email. I like to give the person a heads up that they’ve been involved in a conversation. Typically this happens when I’m solving a problem for somebody and I’ve consulted with a third person. The third person at least can see what I’ve said about our conversation. Since they are mentioned, they may be contacted and I want them to know why.
BCC:
I never use blind copy. The recipient of a bcc: is one mouse click away from “Reply to All”. When this happens, I’m usually embarrassed and the to: recipient will feel like I don’t trust them. If there’s a specific reason I would need to send it to a third, uninvolved party, I will forward it to them with a separate note explaining why.
Subject:
The subject line is the most important detail of the email. It separates the good from ugly from spam. Because we work with multiple clients on multiple projects, its critical to distinguish the types of mail I send. My approach is to always list the project name or initials as part of the email. For example CE2 - Weekly Status Report Would be my weekly status report for the CE2 project. Typically I don’t need to add the customer name as everyone receiving the email know to which customer I’m referring. Its would also be a bit odd as a client to receive an email with their company name in every subject. After all, they know who they are. I’m not as successful at consolidating the email message in the title as I’d like to be but the point should be to give as many of the relevant facts as part of the subject as I can.
I continue to improve in this area by focusing the subject line on direct action statements rather than generic topics. “Which source control product to use” is much less useful than “I recommend Subversion for Source Control”.
Replying and Forwarding
Ever get one of those emails where its nothing but Re: re: re: re: re: Status in the subject line? Yeah, me too; and pretty soon the subject line is a bunch of useless crap. I trim any extras down to the last two (re: re: Status) and call it a day. I try to keep the cruft down.
Thread changes
When the topic of an email has changed, I denote this by providing a new subject line. The old subject is denoted with “was:” for a single response. If I reply again, I remove the was. For example: New Equipment [was: re: Status] This continues the flow for any recipients, and provides a new starting place to follow the thread. When I reply again, it becomes re: re: New Equipment
Body
The message body is where everything really happens.
Email I send is always formatted as plain text. Because of varying recipients and email applications, this is the only way to go. I’ve seen horrible, eye-searing html email formats. The powder blue backgrounds and 16 font variations do nothing but distract from the message being sent. It screams wannabe FrontPage web developer instead. ASCII is the only way to go.
Replying and Forwarding
Snip
When replying and forwarding email, I snip out any irrelevant text or very old email messages. It saves a bit of bandwidth and those old posts with six forward marks (> > > > > Hi.) don’t add value. Anything I cut from the email I’m replying to are marked with [snip]
Reply in Context
When replying to an email from another person, I always cut and paste what they said, preceeding it with a “>”.
> Do you want to go out for Sushi? This provides the reader with the context I was in when replying to their questions or information. The more I can improve their comprehension of my message, the better.
Yes, let's go at 11.
Don’t reply inline
I was working once with a third party consultant. I would provide him with my list of questions (clearly deliniated). His response was always “See answers below”. He would then add his responses into my message. It was difficult to read and to follow. I had to search through all of my questions to find the answers I needed. Often my questions went ingored
Edit
Before I send an email, I wait a minute and then re-read it. I should start reading the email aloud, if possible, to catch any awkward phrases or sentences. I check for the tone which comes through and ensure I haven’t written anything fatal. Often I end up just trashing the message if it will add no value.
Edit more
I try to reread the email once more and edit out any final errors.
Hyperlinks
Because I work on a software development team, I am often required to send email containing a number of links to white papers, resources and samples online. There are several things I do to ensure the most success with hyperlinks.
My first trick is to double check the links. Sometimes, I’ve found that the cut and paste or editing can mess up a link destination. By clicking on the link, I make sure the intented page can be found.
If I get a long link (MSDN, I’m looking at you!), I run the risk of frustrating my recipients by cutting and pasting these links wholesale. Instead, I head to sites like TinyUrl to build a shorted link. By using TinyUrl, I eliminate the problem of line break trashed links.
The third tip for adding hyperlinks goes back to the idea of context. A page with 4 or more links starts to waste the time of the reader. There is not a good way for the reader to process all of the links without opening each one of them. This problem is actually compounded with TinyUrls, where all context in the URL is lost. If there is any ambiguity in the URL, I add a descriptive comment. The reader can determine for him or herself what emails are important enough to warrant their attention.
Attachments
Don’t attach documents if they’re not needed. Human Resource departments seem to love this one. They send an email sent to everyone in the company with an attachment. Opening the attachment I find a memo only a paragraph or two long.. It would have been much more efficient to cut and paste that information into the body of the message instead.
Follow up.
Assuming that any one has read the concise literary masterpiece I crafted is pretty silly. If I don’t hear back from the recipients within a business day, I will follow up with another email, or a more personal interaction. On the other side, I try to respond to email within 24 hours of receiving it. Sometimes its simply an email stating I haven’t even looked into it yet.
“Reply to All” is the Spawn of Satan. Its particularly bad when Reply To All is used on a company-wide email. I once instigated a company-wide spamathon by replying to all after receiving several snarky comments to the original email. It was finally killed by the HR department informing us it was a waste of company resources to continue the thread. I apoligized for my involvement in that one.
Encourage good emails
One tip I learned from Mr. Berkun’s book is to reward good emails. When a short, concise email arrives in your inbox, take 10 seconds to respond with “Good email”. The goodwill and encouragement will do wonders. The writer will start writing more email that way.
Other email tips
- Harvard Business School has some Tips for Mastering E-mail Overload.
- Ironically, while I was drafting this post, Guy Kawasaki posted his tips for being The Effective Emailer.
- Another Ten tips for better emails.
I finally got over the Not-Invented-Here (NIH) Syndrome about the blog here at Uhri.com. Wow, what a relief.
In 2000, when I first set up this website, I decided I would write my own app to add posts to the front page. These became known as Spectacularities. I’m not sure that at the time the word “blog” even existed. It certainly hadn’t caught on by that point if it did. Essentially, I was building software for blogging.
I wrote a quick little utility to add Spectacularities to the home page. It consisted of a user control for displaying the page, a single form for post entry, and one database table. It was enough to get things working that day and I was happily on my way. I never intended for my little blogging app to stay as small as it was. I never intended for it to end up as decrepit as it did.
For reasons I can’t remember at the moment, the admin page eventually fell into disuse. Something broke and I just never fixed it. It may have been right around the time .NET arrived and I never upgraded the page. I switched instead to using the stored procedure directly in Query Analyzer to add and update my posts. It was a lot of single quote manipulation and generally a pain in the rear.
Then the archive page, built using the said user control, began to get out of hand. When three years of posts began to appear on it the load time was unbearable. I took the archive offline.
With just the current post displayed and a propped up SP, things really began to go downhill. I posted less and less frequently. Finally, at the end of 2004, I put Uhri.com out of its misery. The whole site got replaced by a single flatline graphic. It was a sabbatical which lasted almost an entire year.
In September of 2005 I approached the problem with new vigor. I came up with a new strategy for my own blogging software, tenatively dubbed “uBlog” (I thought it was a clever name, anyway). I started the “very public” redesign of the site with requirements gathering and everything. I put up use cases and details about how the site would be designed. It was all part of my grand plan to write an XHTML and CSS-based blogging software in ASP.NET.
I started checking out the other blogging tools out there. WordPress had caught my attention on several occasions because of its standards compliance. I reviewed dasBlog, .Text and its fork SubText, and a newcomer to the .NET blogging tools, VineType. VineType seemed to be the most promising — a .NET-based blogging tool with XHTML standards. I may still consider VineType in the future as their codebase grows. The developers there seem to have a good thing started and while it may not grow to the size of WordPress, they do provide the basis of a good blogging system in ASP.NET.
As I reviewed these competitors, I came to a sinking realization.
I had NIH Syndrome. I wanted to create my own tool with features the way I wanted them. I saw the thriving WordPress community and was jealous. There were plug-ins for anything feature I could possible want. With the exception of VineType, the .NET blogging tools looked like garbage. If I were to roll my own, I could make it as easy and beatiful as WordPress. But if I built my own software, I could never reach the critical mass of WordPress. There wouldn’t be a community of developers building add-ins that would make a great .NET blogging application. There just aren’t enough bloggers in the .NET world that would care.
I wust wasn’t sure I was ready for the kind of commitment involved in something that would most likely be unsuccessful.
Joel probably said it best:
If it’s a core business function — do it yourself, no matter what.
As a corrollary, if it’s not a core business function, outsource it.
It turns out blogging software isn’t a core business function. Its not what I want to spend my free time doing. I’m much more interested in the creation of content. That’s what the blogging software is for, after all. I’d be crazy to reinvent the wheel just to call it uWheel (hey, another catchy name).
So I installed WordPress and haven’t looked back.
