Thursday, February 23, 2006

.NET String Formatting gotcha

Ok, so I found the problem.

I was using this snippet of code to format the date:

DateCreated.ToString("yyyy-MM-ddThh:mm:ssZ")


What I should have been using was:

DateCreated.ToString("yyyy-MM-ddTHH:mm:ssZ")


Notice the "hh" versus "HH". The small hh gives 12-hour hours, and the large HH gives 24 hour hours. So, 9PM with hh is 09, and 9PM with HH is 21.

Blogger expects the 24-hour time format, so my post showed up as 12 hours earlier than it should have been.

All fixed now, though.

Time issues

I just realized that I was posting my entries with a Universal time, instead of my local time. That jacked up what time my last post was. There's only like 1 minute difference between these two posts, but check out the time stamp.

DeskBlogger Update

I added save and load support into DeskBlogger. So now, I can save a post or load a post from disk. Right on, right?

Sure will make it easier to create long-winded posts.

Monday, February 13, 2006

Vault on hosted machines

I was reading The Daily Grind today, and came across this link: How to Setup SourceGear Vault and Dragnet on WebHost4Life, Part 1.

This is cool, and encourages me to consider dropping my server at the house, and running everything from a hosted account. I think this is the last item that would have concerned me; I have to have my source control available.

UI and Usability in the real world

I have read several usability books recently. I read Joel Spolsky's User Interface Design for Programmers , and I read Mark Gunderloy's Developer to Designer.

In both books, they talk about many things dealing with usability and UI design. The two books disagree in several places, as you would expect; two authors writing about the same subject never agree on every point.

However, they both agree on one particular point. And they both argue vehemently for this point.

Confirmation dialogs are a waste of time; both the user's time and the developer's time. Most people don't read the text in a confirmation dialog box more than once.

Think about it. How many times do you stop and read the box that says 'are you sure you want to delete this file'? Everyone reads that box the first few times they delete a file. Almost no one reads the message the 4,000th time they delete something.

I ran across another article today that talked about this very same issue. This article provides several alternatives to the 'are you sure' dialog box.

We had this discussion at work recently. I was of the belief that we should not have a confirmation dialog in a particular place, because I knew, from use, that no one would read that box more than twice, and it really broke the flow of the app. We actually had two confirmation boxes; one to ask if you really wanted to delete; then one to tell you, after you confirmed, that it really did delete.

The second broke a different UI/usability rule: The user expects that your app will work properly. You don't have to tell them it worked. If you don't tell the user there was a problem, then they are correct in assuming that the operation completed successfully.

The real kicker to both of these dialogs is that they are both on a page in our app that is not publicly visible. The only people who ever see this page are our employees. And generally, they hit this page many times in succession, not just once. So, they have two extra clicks added to every iteration, and usually have hundreds of iterations to do. How's that for wasted time?

I was overruled at work, and the first dialog is back in the app. I don't think the second has made it back in yet, but it's removal was listed as a bug. Care to guess what priority bug it was?

Sunday, February 12, 2006

First public version of DeskBlogger

So, I have DeskBlogger pretty much feature complete, at least for now, and ready for download.

Here is a list of the pertinent features:


  • Support for multiple users

  • Support for the most common HTML elements

  • Text formatting via buttons and <ctrl> key combos

  • Installation program that checks for pre-requisites (.NET framework 2.0)



If you have a Blogger blog, try out the tool, and let me know what you think. It's available at http://www.csquaredcomputing.com/products/DeskBlogger.msi (344 KB).

Feature #2

So, now I can italicize, bold, etc text in the post.

New Blogging Tool

So, this weekend, I decided that I was fed up with the current blogging tools I have been using. I have been using w.Bloggar for a while, and mostly have been happy with it.

There is one thing, however, that I was never happy with: No support for the Blogger Title element. So, when I create an entry through w.Bloggar, I have to log in to the site anyway, and modify the post title.

Being the geek that I am, I decided to see what would be involved with creating my own tool.

Guess what? There isn't that much to it. This post was created with the new tool that I made, after only two days of work.

The feature set is still REALLY limited. Once I get a few more features coded, I will be making this little baby available for download.

Eric, this app is currently a great example of "MeWare".

Friday, February 10, 2006

Funny Jarhead Story(FJS): Marine Boredom

So, when I was stationed in Okinawa, Japan, my unit (3d Battalion, 12th Marines, 3d Marine Division) went to mainland Japan frequently. We went to Camp Fuji (at the base of Mount Fuji) 9 times in 18 months.

One time, we were in the field for about a month. There were several groups within our battalion. One of the groups is called Counter-Battery Radar. Their job is to track incoming enemy artillery rounds, and use physics to extrapolate where the rounds were coming from.

Needless to say, we didn't receive a lot of enemy fire during our training exercises. So the guys in CBR were bored a lot. In addition to having no job, they were always set up a long way from the gun batteries and the other Marines in the unit.

Here are these three or four guys stuck in a tent together, in the middle of nowhere, with nothing to do. For days and days.

After the exercise, we're in a bus, on the way to Yakota Air Force base to fly back to Oki. We somehow start talking about how boring the exercise was. The CBR guys tell us that we don't know bored; they know bored.

Apparently, they were so bored, they decided to have a little contest. We were shocked when we heard what they were competing about. They decided to see who could stick his finger the farthest up his nose!

The best part is that the guy who won showed us how far he could shove it... I swear that man tickled his gray matter. He must have stuck his finger 3 inches up his nose!

We laughed for 20 minutes on that one.

Announcing a new series

So, I decided to start a new series of posts. There are two reasons for this:
  1. They are really funny stories
  2. If I don't get them down, I'll forget them

The next post will be the first in the series, and I'll post more as the mood strikes.

Wednesday, February 08, 2006

Great Quote

I got a great quote off of today's entries on The Old New Thing.

"Writing specifications is like writing a novel. Writing code is like writing poetry."

This quote was reprinted without permission. Raymond, if that upsets you or your coworker, just email me, and I'll take down the post.

Tuesday, February 07, 2006

We be needing some new source control

Today, I found another reason why we should change our source control product. You'd think, after more than a year, I would have discovered all of the reasons, but I found another one.

I am at a client site, in Houston, TX. While visiting at this client, I needed to make a change to our code base. No problem, right? We use SourceOffSite, we can connect to our SourceSafe backend over the internet.

Except, I couldn't log in to SOS. We use an unusual port for source control. I think the client was blocking all outbound traffic except 80 and 443. So, our solution is to VPN to our network, and then connect to SOS.

Except, since they are blocking most of the traffic, I can't connect to the VPN either.

It's too bad there isn't a really reliable source control product that works over port 80, so networks allow the traffic. Cough, cough. Like, I don't know, Vault.

Did I mention that I talked to the owner and creator of Vault, and he told me he could get my company a great deal on the software?

How many times do we have to look like idiots in front of clients before it's worth paying for decent source control?

Man, if only someone at my company, with the authority to make these kind of decisions, read my blog. Maybe we could get hooked up with some decent source control.

Did I mention that the retail cost is only $329 with integrated bug tracking? Or $289 without? Once again, that is the retail price, not our price.

Monday, February 06, 2006

Lunch with a Software Craftsman

Last week, the Jacksonville DotNet Users' Group(www.JaxDug.com) hosted Eric Sink (www.SourceGear.com) as a guest speaker. In addition to their normal 2 hour presentation, they arranged to have Eric eat lunch at Panera with members of the group.

As you all know(SourceGear Customer Service, Buggy Source Control), I am a huge fan of Eric's, and of his company. I jumped all over the chance to eat lunch with him, being the second person to sign up. The plan was to meet at Panera's around 11:30 ish.

I was, of course, detained by work. I got there around 12:15 or so, expecting to see like 20 people gathered around, jostling to speak with Eric. Luckily for me, there were only 4 members there, plus Eric. So, I went and grabbed a seat, and introduced myself.

What a treat. Eric was such a nice, down-to-earth kind of guy. He spoke eloquently, and gave us some great insights as to what MS is doing right, and what they are doing wrong in the source control field. He also spoke about why he isn't too concerned about Vault's place in the world, and the future of SourceGear.

They say that the measure of a person's intelligence is the degree to which they agree with you. Eric must be a genius, then. I totally agreed with nearly everything he had to say, which is great, since I totally agree with his writings on software (Software.EricSink.com).

I waited, like a hunter, until all of the other members had left, and then I attacked! I grabbed a moment of semi-privacy when Eric was throwing away the box his lunch came in, and told him that I would be totally stoked to come work with him, and that I would love to be considered the next time he had a C# position open. I let him know I had been monitoring his blog for new positions, and had every intention of applying for the next open one.

Imagine my surprise, then, when he requested that I send him my resume, so he could review it! He said they are in a period of rapid growth, and always on the lookout for new talent (see, I told you I was talented). So, I sent him off my resume.

We'll see what happens. SourceGear would be second only to MS, and only because I like the idea of Seattle a little more than Champaign, IL.