Archive for April, 2006
News on Community Server v2.1 and the new blog skin
Some of you may have noticed that a few days ago Alex posted an update on Community Server v2.1’s progress. One thing it mentions is that it will be released July 2006. This has produced a certain amount of clammouring on the forums, and should be noted that it isn’t set in stone. Release dates are very hard to predict if you don’t have a hard requirement (like releasing to coincide with a conference or something). So July is somewhat of a worse-case scenario. Plus, we always prefer at least about a month of betas before reaching a final release phase, so a public version is not very far off.
Other thing worth noting is that the CS Announcements blog is now an attractive new blog skin called Paperclip that will be included in CS v2.1 with a couple of varients. I like it so much, it almost makes me want to dump my current skin!
Summer is on its way
I remember back when I was a kid, summer was like the Holy Grail… the main thing you looked forward to anytime after Christmas. Three months to do absolutely nothing. No school, playing outside, swimming pools, the works. Too bad it isn’t quite the same anymore. Now I see summer as three things: 100+ degrees, high electric bills, and delightful allergies.
Yes, last night it dawned on me that summer is now well on its way. I am constantly running my air conditioning all day and night during the summer. I like it cool, and since I work from home, I need to fell comfortable where I work. Additionally, the combination of computers and afternoon sun makes my office noticeably warmer than the rest of the place in the afternoon. Ohh, and don’t forget being on the third floor, which is a nightmare.
Often times, I like to open the windows at night when there is breeze so I don’t have the run the AC. I have to be very cautious with this though, especially if I want to leave the window open over night. I have allergies pretty much year round, and while none of them are really extreme enough to send me to the hospital or anything, I do have a very wide range that can lead to waking up with a mind splitting sinus headache that won’t go away.
So yesterday was pretty much our first warm day, reaching the high 80s and very slowly trailing off at night. Finally, around 9 at night, I notice the A/C click on and I’m thinking well surely by now it is cool enough to open the windows. So I go over to the little weather station alarm clock my sister got me for our wedding, and what does it show? 76 inside, 74 outside. Oy! Forget that. 2 degrees difference? A 74 degree breeze doesn’t feel much better than a 76 degree room (76 is pretty cool, though I’d say with it there, the office is around 78-79, which is tolerable).
So then when I went to bed around 11:30, I figured I might crack the window open to keep it cool. Again, go and look at the temperature, and it was only down to around 71 degrees. Since I’d been hit with a fun allergy morning a few days ago, figured the allergy risk / cool breeze benefit ratio was too high to risk it.
In the end, I am left with a continuingly degrading situation ahead of me. Allergies will get worse, my electric bill will double, and we will eventually get 100+ degree weather, when there is no chance in hell I’d open the windows.
ReSharper 2.0 beta!
Got an email from JetBrains this evening informing me that they’ve released an official beta of ReSharper 2.0. I’ve been using their alpha releases of 2.0 for a while now in both Visual Studio 2003 and 2005. There have been some bugs, but notice them get processively better with each build. 2.0 is definitely a nice upgade from v1.5. One of th things I like most is it refreshes its cache of all of the files in the background instead of while the project is loading, slowing down the load time.
If you haven’t yet discovered ReSharper, I definitely give it a huge recommendation. The email mentioned that when v2.0 comes out, the price will be raised from $149 to $199, however if you buy it now, the upgrade is free. If you already own it, then the upgrade is free as well (yippee!).
They aren’t paying me to promote it or anything, but ReSharper is probably the single tool that has etched its way so deeply into my development that I cannot live without it. I do not know how I used Visual Studio before it. I rebuild my PC a few weeks ago and had launched Visual Studio before installing ReSharper and it felt so foreign. Its keyboard shortcuts are just so natural to me now.
Anyway, if you haven’t at least tried it, check it out. Excellent tool, and many uses far beyond its keyboard shortcuts.
Hardware changes all around
Lately, I have been making a number of hardware changes around the house…
First up, I am no longer using the Toshiba m200 tablet and I am back to my old Thinkpad T40. After a while, I realized I was hardly using it in tablet mode. I almost had to force myself to use it in tablet mode, and most of the time, it was just for reading my RSS feeds and what not. About the same time, the backlight on my wife’s old old old Toshiba laptop burnt out, so she is now using the tablet like we had originally planned, but didn’t plan on her backlight giving out.
I haven’t yet set the tablet up for her to take to school, since it still has things like Visual Studio, SQL Server, and other stuff she doesn’t need on it. Plus, I need to get all her documents off of her old machine still.
As for myself and getting a tablet, going to pass. I am glad to be back to the larger screen of my Thinkpad, and my wife likes the m200 with the font size turned up.
[photo:1636]
Next, made some changes to the network here. Got rid of my old Netgear ProSafe VPN/Router (since it occassionally would give up) and my old Netgear 802.11g access point (which simply sucked) and upgraded to something a little more reliable and robust. After listening to Hanselminutes podcast on the Linksys WRT54GL, I decided it might be a nice upgrade. So went out and got one and put DD-WRT on it and have been quite happy. Having it be the router, DHCP server, access point (using WPA2), and VPN server. Definitely very nice… especially with the VPN server, so that I can get on the network when I’m not home. Also upgraded to gigabit with the Linksys EG008W 8-port gigabit switch. Gigabit is definitely very nice, especially with some of the other changes I’m making (see below).
[photo:1637]
I recently stopped colocating my own server and instead I’m now hosting with one of my coworkers, Eric. He has a beast of a machine colocated at DataPipe (probably amung one of the best) and runs a small hosting business. Network speeds are a little better than before, and pings are definitely lower. My server was so underutilized, and I wasn’t ready to invest into all the software I’d need to sell hosting space on the right way. So I picked up the server last time I was down in San Jose and have it sitting around here for now. Set it up with Windows Server 2003 R2 the other day for the heck of it (was running Small Business Server 2003 before). Probably going to be throwing it up on Ebay, but not looking forward to it as it may not sell right away, and shipping will be a PITA. Hate to get rid of it, since it is a beauty, but better than collecting dust.
[photo:1638]
And finally, my new pride and joy. I’ll be posting more about this box shortly, but it is my new test environment. It is a dual Opteron 246, 4gigs of RAM, and 2x 250gb in RAID1 on an Intel SRCS14L PCI-X SATA RAID card, running VMware ESX Server. Basically, a pure virtual machine operating system. Instead of something like Microsoft’s Virtual Server, which runs on a separate host operating system, with ESX Server, the host operating system is basically built in. It is essentially a modified Linux install, but the virtualization is integrated at the kernel level and it separates the resources from the host OS. I’ll post some more on this in the next couple of days, once I get all my virtual machines built up. But it works quite nice… can run and entire network all on this one box.
Too much spam!
Thinking of dumping my qgyen.net domain name… I’ve been using this domain name since like ‘98 or ‘99 (I forget which), so it would be hard to let it go, but after all that time of handing out my email address to who knows how many sites. On my new hosting, around 250 messages slip through the built in spam filter per day. Most then get caught by Outlook’s Junk Mail filtering, but not before playing the new mail sound and showing the new folder icon on my taskbar.
Plus there is the issue of difficulty when I give out my personal email address or my website… “what is qgyen? how do you spell it?”
But then the question is… what would I change it to? Not easy coming up with a catch domain name that isn’t already registered.
Implementing Getting Things Done with Outlook and ClearContext
I’ve been reading through (Getting Things Done)[http://www.davidco.com/] and I have been anxious to start collecting all of my “stuff”. One of the biggest problems I’ve found is that initial purge of everything you could possibly have to take action on. It is hard to force yourself to thing of everything that inital time. The second problem is coming up with a complete, reliable “trusted system” at the beginning. The trusted system is supposed to hold all my stuff, and I only want to have to input/set it all up once, so I don’t want to change my mind in a week and use something else.
I started by checking out (MyLifeOrganized)[http://www.mylifeorganized.net/] and liked it at first. Its key benefit is its hierarchial task structure. After using it for a short while, I quickly noticed a number of problem points though:
-
I don’t really care for its views. Its Projects and Views panes are very nice, but would be nice to have them combined some way. And its ToDo tab has no hierarchy to it. Using the Places as Context seemed kind of ad hoc and not nicely exposed in the main view.
-
I want to be able to view the same information on my XV6700 as well, and they have a PPC version, but not a very attractive solution. Mentions some issues with WM5, needing a separate license, export/import is laborious, and currently only a beta with nothing solid on a final version.
-
It supports syncing with Outlook, but you completely lose the nice hierarchy when syncing. I have a project called “Finish NNTP Server v2.1″, with some subtasks, and then in outlook, the project and subtasks are all on the same level since Outlook has no hierarchy. MLO could have done some fancy work with categories/views or something to at least try and maintain the hierarchy.
-
A lot of my tasks come as a result of emails. Someone emails me “take a look at this”, so I set up a task to “take a look at this”. This is made quite nicely through the use of ClearContext v2.x, but then I am creating tasks in two buckets. I’d have to create the task with ClearContext, sync it to MLO, then put it with a project and all. Kind of laborious. MLO itself doesn’t seem to have a nice way to link/reference the emails directly. So kind of feel like I am losing something. Want the task to nicely reference the email and utilize everything ClearContext adds, but want a more fully featured task environment than what Outlook has. Well, can’t have everything.
So it is looking like MLO won’t fill my needs. I already have a vested interest in ClearContext (I bought it and have been already using it) and do not want to give it up for anything. So have been coming up with a way to handle everything around it.
In future versions of ClearContext, it should become quite a bit easier as one of the highly request features is extending the properties directly to the Task object, so that can be a part of the Task View. Once I have that, I will be in heaven.
In the meantime, I have come up with my own way of organizing things. I wanted to use what was already there in Outlook and to fit the GTD concepts around it. Things don’t fully line up, but for my own personal needs and uses, I could easily bend them to fit within Outlook
In GTD, a part of it involves breaking tasks up by context, priority, time available, and energy available. The context is basically things like “at the office”, “at home”, “on the road”. Part of the goal of GTD is to capture everything in your life, from gardening, groceries, projects, coding, conference calls, anything and everything. So you can have different contexts, like doing gardening when at home, and conference calls while in the office, and coding while you have a computer. For me, my context is almost always the same. I work at home, so my office is my home. I can simply create a category/project for “Errand” stype actions, so I can essentially get rid of contexts.
Now, I basically have two key criteria to group by… priority and project (errands being a project). Priority is commonly things like Urgent, Day, Week, Month, Year, and Someday/Maybe (I am skewing the filing system slightly, but only to get it to fit in with the software). Unfortunately, Outlook has only 3 levels of priority. Things that are like Urgent will be marked as High priority, Day will be Normal with a due date or be a scheduled item on the calendar, Week/Month will be Normal, and Year/Someday will be Low priority. I then set the category on all of my tasks to be the project, such as “Community Server”, “Mail Gateway”, all the way down to “Errands” and “Personal”. In cases where I need things like “@Waiting For”, I just set the status to be “Waiting on someone else”.
I then set up a customized tasks view with the fields Complete (checkbox), Priority (an icon), Attachment (an icon), Subject, Categories, Status, Total Work, % Complete, and Due Date. I then set it to group by Priority descending and Categories ascending. Finally, it sorts by due date descenting, % complete descending, and total work ascending.
Overall, this should suit me quite well as an introduction system to GTD. In time, future versions of ClearContext should enable me to better expose the custom fields so I can do a more clearer Category/Topic grouping to link up with GTD’s concept of Action/Project. Overall though, I am quite impressed with ClearContext v2.0 now that I’m using its tasks features. Next would be to look into using ActiveWords.
- ClearContext has an ActionView to show Categories/Topic type grouping, but I am not very font of it and prefer the standard task view. Additionally, I don’t have ClearContext on my laptop because of a known issue of using ClearContext on two machines when Outlook is open on both at the same time (as I frequently do, and am doing right now). So I can’t use the ActionView from my laptop.
New books!
Now that I am fully recovered from my birthday cold, thought I’d post some new reading I’ve got ahead of me.

I’ve been wanting to read GTD for a while, and finally got it. It is the first book on my list to read. Just barely started on it, but so far looks really interesting.

Think Big, Act Small is a book that I read about a while ago on Scott’s blog a while ago and it had been on my To-Get list.

This book was actually recommended by my Grandfather. In his younger years (and still now), he was heavy into investing. He’d read this book and liked it, so he has been recommending it to all his grandchildren, trying to get them to read it.

My mom loves Suze Orman and is also always trying to pass on financial knowledge to me. She’d heard this book was pretty good, so she got it for me. Should be good, since I am interested in investing and I like money (who doesn’t, it pays the bills).
Quarter of a century
Today is my 25th birthday. I had originally planned on taking the day off, simply to take it easy and get some things done. Instead of having a nice day off though, been couped up inside, sick. Started coming down with a cold like Thursday and Friday of last week, then went down to my parent’s in San Jose over the weekend and started feeling a bit worse through Sunday.
Not quite what I had planned, though hopefully will be feeling better tomorrow.
Paying attention to dynamic dependencies
I recently stumbled upon an interesting issue that is so easily overlooked when coding applications that run in the background. On boot up, Windows starts up all the registered services one by one, taking into account which ones depends on the others. In this way, any services it is dependent upon will be ensured to be running before it is started. With Mail Gateway, all the configurations we’ve seen have had MSMQ running on the same machine, and there was an issue where the server could start Mail Gateway before MSMQ is running, causing it to not start up properly. So, we made a change so that Mail Gateway had a dependency upon MSMQ.
Then, we recently discovered an issue were the News Gateway add-on failed to start on boot up. The problem this time was that the SQL Server it uses is on the same box, and on start up, the News Gateway gets a list of available sites and their settings. It is quite common for SQL Server to be on the same machine, and for an application to need to connect to it on start up. The problem is that the machine could start the application before SQL Server has been loaded. So, we could just have the installer create a dependency on SQL Server, however in CS, we don’t require the database to be on the same machine.
So the problem is, we would need to create the dependency on installation, but at install time, we don’t know where the database is going to be. We could ask the user, and then create the dependency if needed, but they could change their mind, and uninstall SQL Server, which could leave News Gateway in limbo. The same issue is prevalent with Mail Gateway and its dependency on MSMQ. With most configurations, it is on the same box, but we don’t actual require that. Our main reason for choosing to use MSMQ was to enable a more diverse and distributed configuration.
Another issue is that background applications don’t have any interface with the user. So when it fails to start up, sure it writes a message to the log, but there isn’t anyone continuously checking the logs. So it will go unnoticed until someone says “hey, I haven’t gotten any emails for a few days” or “I can’t connect over NNTP”. Then you are kind of caught with your pants down.
The solution is not to use a dependency, but to change the programs so that if they fail to connect on startup, they will continue on (instead of exiting and aborting), and to continue to retry until it is able to connect. So, the main point of my post, is to be aware of what your application is using that is beyond your control, and to code it so you can control them… in a way.
Wall Art
Sometimes it is awesome what kind of things you can find with just a few random clicks. This morning, after browsing a news website and clicking on a link here and there, I ended up finding this company called Blik who specializes in wall decals. They got some pretty cool stuff for kids, geeks, and modern enthusiast. Think I am definitely going to have to get some of their stuff once we buy a house and I get to decorate my office.