Thought I’d try it out. You can follow me at my twitter page and I’ll follow you back. Also trying out putting twitter status on my blog.
I’ve been thinking about twitter for a while, but still not sure how I’ll use it.
Thought I’d try it out. You can follow me at my twitter page and I’ll follow you back. Also trying out putting twitter status on my blog.
I’ve been thinking about twitter for a while, but still not sure how I’ll use it.
With the acquisition of a Blackberry I wanted to be able to sync both my work and home Outlook setups to the Blackberry (and to each other). I tried a number of free tools (though they aren’t that easy to find) and quickly concluded I would need a better solution.
Enter SyncMyCal. It’s easy, it’s cheap (only $25), and you can try for free. I rarely have duplicated events, and I don’t have to think about it ever–it just WORKS.
How it works: SyncMyCal synchronizes an Outlook calendar with a Google calendar. First I created a Google calendar, then I set up SyncMyCal on both work and home computers. I set the home computer to take priority in conflicts, but at work I set the Google calendar to take priority over Outlook–this way there’s a hierarchy of priority that helps to prevent unresolvable conflicts and duplicates.
I bought it days before Google released their Outlook sync tool, but SyncMyCal can do a lot more and I don’t regret the purchase one bit.
The latest version also syncs contacts, but I haven’t used that yet.
There are so many postings out there on all sorts of blogs about how not to waste time that I’m not sure I can contribute something very meaningful (certainly not new), but since it’s something I’ve been thinking about, I might as well spill some ideas about it.
Like this? Please check out my latest book, Writing High-Performance .NET Code.
Any discussion of time-wasting is profitless unless you define what wasting time is. My definition is:
Wasting time is doing anything that does not contribute to my goals.
That is a very broad definition, but it is very useful. It presupposes a goal-oriented mind set and I don’t want to get too far down that path here. If you’re really interested in a goal-focused system, I highly encourage you to read The 7 Habits of Highly Effective People, which is a principles-based approach to effectiveness and goal-setting is a huge part of it.
Whatever your personal system, much of the corporate world and building software specifically revolves around goals (aka “milestones”, “targets”).
This definition includes taking breaks and eating lunch, but let’s not be silly–we’re not talking about that and I’m not going to water down the definition nor am I going to spend pages talking pointlessly about exceptions to it. We’re all intelligent people here and can understand the important principles.
Software development processes have been undergoing evolution since the beginning and lately the whole agile process seems to be taking over. Whatever the process, many companies are finding more success in breaking down large projects into tiny goal-driven chunks, sometimes lasting as little as a week.
This same principles can be applied to ourselves at both large and fine-grained levels. It is definitely good and desirable to have the overall vision of our project in mind, but this doesn’t often help us get the work done. Some of my most productive days are when I break down a huge task into tiny subtasks and set a goal for each one (“I will have this done by 11am today, then I will wrap up this other small one by 4pm.”)
An example: I’m currently writing some code to move a huge amount of data around in our production database. We’re going to be rolling out a major update that requires some fundamental changes to how things operate. This task is so large and daunting that I get a headache just thinking about it and so I could put it off, just spinning my wheels until I decide to face the inevitable. Instead, I’ve broken it into several smaller tasks that are each easily managed and understood.
Before | After |
|
|
(In my example, the After column actually contains about 30 items, depending on how far I want to break it down…it could be more.)
Now, instead of being overwhelmed by the complexity of a large task (and thus doing nothing), I can easily handle each of the sub-steps efficiently. I’ve changed a two-week task into many hour-long tasks.
The psychological effect of too-hard/too-complex/too-much is devastating. You can’t handle something like that–no one can, and so you won’t–you’ll just end up wasting time fretting about it. Break it up for your sanity and happiness, as well as productivity.
Often, a key to not wasting time is having sufficient motivation. Motivation can come in all sorts of ways–the key is to figure out what motivates you and then set yourself up to succeed by using that motivation as a carrot to pull you forward. It can be a good idea to share your motivations with managers so they understand what drives you.
Motivation can often begin with picking good goals. If your goals are unrealistic, you are almost guaranteed to fail in some way. Despair feeds on itself and will sink your productivity and cause you to engage in anything but work. Not only will you avoid the drudgery of work, but you won’t take steps to improve yourself or change the situation. This cycle must be broken immediately.
If your projects are just not that interesting this can be a challenge. Everybody has tasks they don’t particularly like, but if the majority of your time is spent doing stuff you get no pleasure out of, you are doing a huge disservice to yourself and your future. Eventually, you’ll become wasted and useless to both yourself and your employer. Fix the situation–get a new project, get a new job, find side projects to do that you do enjoy as rewards for getting through the drudgery–anything to avoid becoming the shell of a person you once were.
Maybe you don’t necessarily need a new job right now–maybe you just need to fix the situation at your current job, get some enjoyable hobbies at home, spend more time with the family. The needed changes aren’t always drastic–but figure them out so you don’t spend every day wallowing in a mire not doing anything useful.
I don’t think I’ve answered my office phone in about a year. Not that many people call it in the first place, e-mail being highly-preferred around here, but I like to say I stand on principle. You can read a lot about creating the right environment for highly-skilled software developers in the fabulous book Peopleware: Productive Projects and Teams.
I’ve also stuck to the practice of keeping my e-mail inbox cleared. I delete almost everything I receive unless I need to store it for later or act on it.
In my entry about working an 8-hour day, I talked about various time-wasting activities that I’ve observed, such as wandering the halls, micro-managing, too many words, poor inbox management skills, and more.
The goal of eliminating distractions is not to completely choke off any aspect of fun, diversion, and other social aspects of working in an office–those are good things. The goal is eliminate the things that don’t help us in our jobs and that aren’t really all that enjoyable to us anyway, all things considered.
One way of eliminating your distractions is to go out of your way ahead of time to manage them so they don’t come up later. Some ideas:
Finally, bringing it around full circle back to goals: plan as much as you can to the extent it makes sense. That’s a weasel sentence, I know, but there’s no way around it. In general, though, I think we could all do with more planning.
Effective planning combines all the above principles into a coherent framework for your work week.
Every week, you have certain meetings, tasks to be completed, issues to be researched, people to be spoken to.
Every day, a certain subset of those must be done.
Every hour, you must pick a task to work on.
My plan is to take 10-20 minutes every day to plan the day’s activities, set min-goals, while at the same time strategizing to eliminate distractions. Every Monday morning I take an additional 10-20 minutes to review and set the major goals for the week, ensure meetings are scheduled, projects are given the correct priority, I know my tasks and responsibilities, and that I have enough dead-time left unscheduled because things always come up (we operate quickly-growing 24/7/365 services–there’s no avoiding issues).
Every time you finish a task, there should be another one waiting, whether you decide to tackle it right away or take a break and do something else. As long as you have a plan, it’s ok.
There are tons of other resources out there–I’ll just link to some in the forums of Steve Pavlina.
Now I should stop wasting time and get back to work… 😉
I’ve setup a new domain for a front page for my software hobbies and what will eventually be my “store front”:
It uses WordPress, but it’s not a blog–it’s for the software I write. So far, only a few products are up, including DiskSlicer (a new version!), Windows Media Top 10 Plugin, and Word Count for Windows Live Writer.
I also setup forums for those projects. The site is still pretty small, but it’s functional and it will grow.
Thanks for looking!
I was taking a look at the download page for my Word Count Plugin for Windows Live Writer.
It’s gotten a few hundred downloads (thanks!), but the single review is actually spam. Unfortunately, I can’t remove it or even report the review from my account since it’s my own software.
Plea for help: Can a helpful reader out there please report this review as spam and request it to be removed? Also, could someone out there who does use Live Writer write a real review of the plug-in?
If you have further ideas to improve it, please let me know.
or Why I Don’t Leave The House Anymore
The last movie I saw in the theater was the 3-D version of Beowulf. The theater was fairly empty–maybe 30-40 people total. Two teenage girls sat two seats to my left. A man was in front of me. The two girls talked loudly through before the movie and when it started, they didn’t stop. They continued to talk and laugh loudly until the man in front gave up first:
Man: Excuse me ladies, the time for talking is over.
Girl: I ain’t talking to you! You turn right around and shut up. I ain’t disturbin’ no one.
Main: if you don’t stop talking, I will go get a manager and have you thrown out.
Girl: You shut up. Turn around, turn around… turn around mister.
Girl: <to me> excuse me, sir, am I disturbing you?
I looked at her and said, “Yes, you are.”
She shut up after that.
That wasn’t all in this showing. A man/woman couple behind me had the following exchange:
Woman: shut off your phone!
Man: I ain’t shutting off my phone! I don’t shut off my phone for anyone–I don’t even shut it off in church!
Woman: shut it off!
Man: No way!
(this repeated a few times in a similar vein.)
This man got up and left half way through the movie when his phone went off. He came in 20 minutes later with a friend, and they stood in the doorway and talked VERY loudly to each other and on the phone. The man in front of me got up and asked them to leave, and they did..after a minute or two.
What goes through the heads of these imbeciles?
My mother, grandmother, and family friend were in London. They got tickets to see Dirty Dancing (which they thought was good, but not as good as the movie of course). Apparently that show is popular as a destination for girls’ bachelorette parties. The entire performance was punctuated by screams and yells every time the lead male came out.
I’m not against a good time, but this is the theater not a private party. Most of the audience is there to see a show. The theater should advertise certain days as more appropriate for this thing–theater aficionados beware.
When my wife was visiting family in San Antonio they got tickets to see the touring Phantom of the Opera. They had nosebleed seats, which made the experience even more unfortunate.
Apparently, the theater serves beer throughout the performance–not just intermission. The guys in front of them got up half a dozen times to refill their beer glass throughout the show, blocking their view for a significant period of time. Add to this, the glare from the beer glasses, the opening of cell phones during the performance, bathing everyone in bluish glow, talking, and basically acting as if they were at a rodeo.
What is wrong with people that this is accepted behavior? Why aren’t these people kicked out more often? we (I’m including myself)willing to tell them their behavior is unacceptable and get management to act ? And I mean without a refund–maybe even a fine or a ban.
Edit: My wife was so upset at the experience that she wrote the theater a letter of complaint.
Yeah, I’m a snob. So what–it doesn’t make me wrong.
All of these stories come down to rudeness at a basic level. People just don’t care what effect their actions will have on others. Sooner or later, this will creep up into the higher arts–classical music and opera, if it hasn’t already. Nobody will enjoy anything because of the few who just don’t care and ruin the experience for everybody.
I actually don’t think I’ll ever attend the theater to see a film again. We finally bought our first TVand a sound system. It’s modest, but it’s better than having expensive experiences marred by idiots.
I’m using Simple Tags to do the tags on this site. I wanted to enable support for these tag links in Windows Live Writer (it beats having to log in and edit each post after publishing).
Quite easy:
HTML Template: <a href=”https://www.philosophicalgeek.com/tag/{tag-encoded}” title=”{tag}” rel=”tag”>{tag}</a>
Now you can select Simple Tags as your tag provider.
This kind of thing has happened to be a few times now, so I thought I’d share the fun.
In one of our pieces of software we have a process that looks like this:
void MyThread()
{
while (true)
{
DoFunctionA();
DoFunctionB();
SleepFor10Seconds();
}
}
While FunctionA and FunctionB are conceptually similar, they interact with completely different systems.
We had a problem with FunctionA the other day–it was taking 120 seconds to do its thing instead of the normal 10 (or less) because a remote server was down. This caused problems for FunctionB because it wasn’t running as often as it should have so things were getting backed up in the system. Oops.
Now, the solution is to split these two functions into two independent threads so they don’t interfere with each other, and I’ve been meaning to do this for a while, so that’s what I proposed.
Response back: “That’s a good idea, but before we do something complicated like that, can we just put FunctionB first?“
Um, no.
The time we want to minimize is the time between running FunctionB, which is TimeSleep + TimeA. Putting FunctionB first makes it TimeA + TimeSleep. Last I checked, those were actually equivalent.