May 2005 - Posts
Sometimes when developing web applications it is useful to have them live at the root of the web space instead of a virtual directory (which is the default for Visual Studio). This is not always the case these days, but when I was still doing a lot of classic ASP development, I would often need this. Since XP Pro only allows one web site (as opposed to Windows 2000/2003 Server, which allows multiples), I spent a lot of time loading IIS, going to the properties page, and changing the "Home Directory" for the web site.
Maybe it's because my computer was crappy, or maybe there was too much other stuff in memory, or maybe it's always this way, but IIS was slow to load, plus that seemed like a lot of clicks for something so simple. So, a long time ago I wrote a simple utility in VB6 (to help me deal with this. Then as I was learning .NET, I re-wrote it as a WinForms app (including the designer generated code, it's all of 157 lines of VB.NET). In a nutshell, it lets you choose a new folder to be the webroot on your local machine. Additionally, it keeps a history of directories used (in a text file) so that you can easily switch back to another in the future.
For me, the main benefits were that it loads much quicker than the IIS console, and that there are not as many clicks needed, especially if you're just switching back to a previously used web root. But it's far from perfect, so here are a couple ideas for possible future improvement (if I ever work on it again):
- Also copy virtual driectory and IIS application settings when changing web roots. Currently, only the web root itself is changed with this utility. All virtual directories are left unchanged. This may be good, or it may be bad, but there should be an option.
- Build a more complete console, similar to IIS, based on something like Cassini. This could allow multiple web applications to be running at the same time, each at the root of their own web site. Of course, this will take away the simplicity that currently exists, so I don't know how much I like this idea.
- Possibly some integration with the HOSTS file. I'm not sure what I would want here, but it might make sense.
So anyway, take it for what it's worth. Use it if you want. As always, use it at your own risk. Here is the ZIP download. Aside from this post, there are no docs of any kind -- you're on your own. If anyone is interested in source, I can supply that as well, or you can just use Reflector. It's pretty basic, but if you want to make any improvements (my ideas or your own), I'd like to see the result.
I rarely use this anymore, but it came to mind again recently, so I thought I'd post it in case it might be of use to someone else.
I found this quote online today in this article on MarketingProfs.com:
"Guided by our parents, our teachers, our managers and by psychology's fascination with pathology, we become experts in our weaknesses and spend our lives trying to repair these flaws, while our strengths lie dormant and neglected."
Hmmm. That one made me stop and think for a few minutes. How true it is, for me at least. Lately I've been finding myself examining my weaknesses and trying to go about correcting them. I don't want to do anything poorly.
The thing is, those "weaknesses" don't affect my ability to perform well. If I focused the same effort toward improving my strengths, the net result would be a more productive Scott than if I continue trying to improve my weaknesses.
Of course, there are, and always will be, some weaknesses that need improving. There will always be new things to learn, better ways to do things, and mistakes to correct. But the balance of trying to not do anything poorly keeping me from really excelling at what I am already good at -- it's keeping me from becoming an expert.
I've always thought to myself, "I don't have to be the best at Topic X, but I don't want to be the worst." Perhaps what I should have been thinking was, "Since I want to be the best at Topic A, I'm not going to really worry about Topics X, Y or Z anymore, and it doesn't matter if I am the worst at those." I just have to learn to accept that it's OK if I suck at some things, as long as that allows me to excel at others.
The whole concept is not new to me -- I've even blogged about it before. Related conversations might discuss specialization, niches, long-tail, Purple Cow, etc. Sometimes, more important than something being said is the way it's said.
Hmmm. I like that sentence, so I'll quote myself now to make it stand out more:
Sometimes, more important than something being said is the way it's said.
(I'm not sure what the rules are for quoting yourself from within the same context as the original quote. Just in case, I'll mention that I found this quote here.)
But I suppose that diversion will take us away from my actual topic here, so I'll have to come back to that another day.
So anyway, I'm going to try to update the filters, and only concentrate on the important stuff.
There you go, about a dozen paragraphs to tell you that I'm going to try to focus on something. I guess that just shows that one of my weaknesses is knowing when to be verbose and when to not be verbose. :)
So I found out yesterday that someone I know is going to work for Telligent Systems, the company that makes Community Server, which is teh software that I use for this blog.
Congratulations to Dan Bartels, a fellow Milwaukee-area developer, on this new position.
Now that I know someone on the CS team, I'll have to start sending in lots of feature suggestions and bugs...
I mentioned the other day that I'm going to see the new Star Wars movie with a few friends.
That's happening tomorrow night, but in the meantime, if you're any kind of a Star Wars fan, you need to check out Store Wars.
From Glenn Vanderburg via Matt Terski:
It should be noted that no ethically-trained software engineer would ever consent to write a DestroyBaghdad procedure. Basic professional ethics would instead require him to write a DestroyCity procedure, to which Baghdad could be given as a parameter.
-- Nathaniel S. Borenstein
So, like any good geek, I have a USB flash drive. I have the 512MB Cruzer Micro by SanDisk. I love it because it is so small, even compared to most other USB drives I've seen. I use it regularly, but not everyday -- I typically use it 1-2 times per week.
Well, today, I forgot it at home. Ok, so I didn't actually forget it -- it fell out of my pocket while relaxing in my chair in the living room last night. Of all days to not have it, today I have actually reached for it at least 3 times, only to remember that it's not there. Apparently, I am actually lost without it.
Sigh.
I was really worried about it at first, because I didn't know where it was. Fortunately my wife went home for lunch and found it deep inside the cushions of the chair. (Thanks, Kelly.)
So I finally bought a Design Patterns book, Refactoring to Patterns, by Joshua Kerievsky. I haven't cracked it open yet, but it was recommended by a few people, including The Agile Developer and Gerry. This will be my first official foray into Design Patterns -- hopefully I can keep my interest up long enough to learn something from this book. :)
Also, a few of us are going to see Star Wars, Episode III, Revenge of the Sith next Thursday night (the night it opens). That should be a lot of fun. I'm not really a huge sci-fi fan, and I'm far from a Star Wars expert, but I've always liked the movies, and have seen all of the others at least once or twice each.
So it should be a really fun night. Just me, a few friends, and a few hundred other geeks...
Today was a crazy, crazy day! I'm not sure if it's good or bad, but time will tell.
But, I did get my new DMB CD. I got to listen to about half so far, and it's awesome!
The Dave Matthews Band is releasing a new studio album, Stand Up, tomorrow and Kelly pre-ordered it for me.
In case you couldn't tell by the fact that (1) I am blogging about (2) pre-ordering the CD, I am a pretty big fan. :)
Last I checked, my copy is somewhere between Louisville and here. I should see it tomorrow sometime.
Tuesday night (5/10) is May's .NET UG meeting. Matt Deiters (The Agile Developer) will be presenting on Design Patterns with .NET. I got an overview/preview of his presentation last week and am looking forward to getting into it a little deeper. If you're free, you should definitely be there.
Apparently, even the government thinks that penguins might be dangerous.
Speaking of the TSA, did you know that knitting needles are allowed as carry-on items? I was on a flight a couple weeks ago and there was a lady knitting with two 10" (estimated) knitting needles that appeared to be made out of stainless steel or some other metal. But pliers and toy weapons aren't allowed? Now, I'm not looking to allow pliers or plastic guns on planes, but I would think that if those weren't allowed, then long, pointy knitting needles wouldn't be allowed either.
Fortunately for all of us, cattle prods are prohibited. Call your airline or go here for a complete listing.
I mentioned a bit earlier how we were going to dinner tonight for our anniversary. Well, the restaurant was really quite good. I'd recommend it to anyone who likes Maggiano's or good Italian.
Anyway, off to bed.
Gather 'round, kids, I'm going to tell you a little story. Today is a very special day. It's Cinco de Mayo. What is Cinco de Mayo, you ask? It's a Mexican holiday, but that's not really part of this story. Today is special for another reason.
Many, many days ago -- 1,461 days ago to be exact -- I found myself in Kohler, Wisconsin, at a hotel called "The American Club". It's a very nice hotel, with beautiful gardens and fountains and furniture and just about everything else a 5-diamond hotel should have. I was there with a few friends for a special gathering.
On May 5, 2001, I was blessed to be able to marry my wife, Kelly. It was a wonderful day, and there have been many wonderful days since -- almost 1,461 of them.
In celebration of that day, 208.71 weeks ago, I am taking my wife to dinner tonight at a new restaurant in Brookfield, BRAVO! Cucina Italiana. Feel free to wish us a happy 4th anniversary, but, whether you do or not, it will be happy.
P.S., I'd also like to wish a happy 1st anniversary to Brian and Belinda Tinkler, who celebrated their day yesterday, and will be celebrating another special day in about a month -- the birth of their son.
Today I had another learning lunch. This time, Gerry and I met Matt Deiters at Panera in Delafield which is much more convenient for me than going downtown. A co-worker of Matt's, Chris, was also there.
Sidenote: Matt and Chris are very bright guys. I typically consider myself to be of above average intelligence, but when I'm around people like them, I can see just how much that I don't even know that I don't know.
Next Tuesday (May 10), Matt is speaking about Design Patterns in .NET at the WI .NET Users Group. Today he ran through his presentation with Gerry and me. It was practice for him and learning for us. It was very interesting, and my only two complaints were:
- I got there late and had to wait for the lunch rush to die down before I could get any food.
- I wish we had another 3 hours to talk about this stuff.
I did find out that something I developed just last week used the Strategy Pattern. I didn't know that then, and I'm still not 100% sure about all the details of this pattern, but his code sample looked very similar to my application. I have to admin that I felt pretty good about that, even though, at the time, I didn't really understand the relevance of what I was doing.
Anyway, he only skimmed his slide deck and we spent most of the lunch in the code (due to time constraints at lunchtime), but I liked that better and it was very interesting. Gerry and I each had a few questions and comments, but overall it made sense. I understood what was going on, although I may not be able to tell you when something should be done using one of these patterns.
He's going to be recommending a few books and other resources, so I'll be sure to check into those. If anyone has any suggestions or reviews (good or bad) of their own, feel free to list them here in comments.
Like Sean, Matt is another guy that I could definitely learn a lot from. I'll have to try to have lunches like these more often.
I booked hotel yesterday via Hotwire. I booked a room for myself and one for a co-worker at the Westgate Lakes Resort & Spa. It looks pretty nice -- Hotwire even called it a "condo". We got it for a pretty good rate, too -- only $58 per night.
I've talked to a few people over that last few weeks that were either going or planning to go. Of course it's sold out now, so I don't know if those "planners" are going to make it. So, anyway, all of us Milwaukee-area locals that are going should plan on meeting at lunch one day or something.
If you're going and would be interested in hooking up during some downtime, leave a comment here with your link or e-mail so I can get in touch with you later.
Otherwise, I'll just have to hang out with my co-worker, Steve, and with Gerry.
More Posts