July 2005 - Posts

Issue Resolved - Don't Need my Day in (Small Claims) Court
26 July 05 03:14 PM | Scott Mitchell

This is the fourth installment of my ongoing Small Claims Court Experience...

The need for going to small claims court has ended since, as of yesterday, I received payment in full from the company. While it would have been educational to have my “day in court,” I still learned a lot about the process of filing a claim, serving a defendant, and all the other fun stuff that is required when moving to small claims court. So I guess I got the best of both worlds - a bit of education and payment in full!

Hopefully the company has learned its lesson - don't keep those you owe money to in the dark. About one week after I filed the paperwork for small claims court I heard from the company for the first time since Feb./March of this year (other than me barging into their offices back in June). They called and said, essentially, “Partial payment has been sent, should be in the mail today, we'll send more later this week.” Sure enough, payment was in the mailbox that afternoon and another check later in the week. There were another two partial payments, with the last one arriving yesterday.

The whole reason there was frustration - frustration that boiled over into action - was because this company was giving me the runaround by not returning phone calls or answering emails. All it would have taken was a polite and apologetic explanation. I also had a chance to talk to other instructors who have also reported receiving partial payment (haven't followed up to check if they've been repaid in full). So things righted themselves in the end, fortunately.

Thanks for the interest/suggestions/comments from those reading my assorted blog entries on this topic, as well as a thanks to Carl Starett, a local San Diegan blogging lawyer who exchanged a few emails with me, answering assorted newbie questions.

A complete list of blog entries related to this topic can be found at My Small Claims Court Experience and through Going Independent category. Your feedback is most welcome - please leave a comment or drop me a line.

Filed under:
How Do You Keep Track of TODO Items?
21 July 05 03:12 PM | Scott Mitchell

I was working with a client a couple weeks ago, giving a demo through a remote desktop session, when he wanted to jot down a few notes. His “TODO” list is saved on Outlook, sort of. What he did to record his thoughts was pen them in a new email message, which, when completed, he simply saved and closed. Later I saw his Drafts folder in Outlook, which had several thousand drafts, all various TODO notes. (Interestingly, this client wasn't using any desktop search, so to find a TODO he apparently poked through the draft subject lines or used Outlook's molasses-slow search... I recommended using Google Desktop Search, so hopefully he's now a snappier TODO list searcher.)

Anyway, this got me thinking - how do you manage your TODO list? I have the annoying habit of - gasp! - writing things down on little pieces of paper. This habit is annoying for several reasons, the most significant one being the end result of a cluttered desk with bits of paper everywhere with reminders, ideas, and tasks. Add to the fact that if I'm away from my desk I cannot access my TODO list, and you can see why this is a no-win situation.

Due to my haphazard approach to maintaining a TODO list, I decided to change things up. I wanted to be able to quickly record a TODO item, be able to search a list of TODO items quickly, and have the TODO list be accessible from any computer, be it my desktop where I do 99% of my work, my laptop, or a public terminal. Clearly I needed to use some Web-based solution here, but rather than reinventing the wheel I decided to simply use GMail.

One of the nice things about GMail is that you can send an email to yourself and add on a “qualifier” after the email name. That is, if your email address is me@gmail.com, you can send yourself email like me+todo@gmail.com. The +todo is what I call the “qualifier” and, despite its addition, your email will get delivered as normal. The benefit of this is that you can create a filter that looks for incoming messages addresses to me+todo@gmail.com and have them automatically labeled and archived, thereby bypassing your Inbox. With GMail the TODO list is readily accessible from any online machine and can be quickly searched. And when I finish the TODO task, I simply delete the email from GMail.

To facilitate quick additions to the list I added an Outlook contact that goes to me+todo@gmail.com, along with a Contact in my GMail address book to the same address. Therefore, either from my desktop through Outlook, or from a remote computer through GMail, I can add to my TODO list by whipping out a quick email to the appropriate contact, adding my TODO item in the subject with any details needed in the message's body.

Is this how you manage your TODO items? Got a better idea/approach/suggestion? If so, share away by making a comment!

Filed under:
Watch Your Cookies!
18 July 05 05:14 PM | Scott Mitchell

RCF 2109 - HTTP State Management Mechanism - provides the standard for how browsers should handle cookies. Near the end of the RFC, the following recommendation is made:

Practical user agent implementations have limits on the number and size of cookies that they can store. In general, user agents' cookie support should have no fixed limits. They should strive to store as many frequently-used cookies as possible. Furthermore, general-use user agents should provide each of the following minimum capabilities individually, although not necessarily simultaneously:

  • at least 300 cookies
  • at least 4096 bytes per cookie (as measured by the size of the characters that comprise the cookie non-terminal in the syntax description of the Set-Cookie header)
  • at least 20 cookies per unique host or domain name

On KB article 306070, Number and Size Limits of a Cookie in Internet Explorer, Microsoft states that they “comply” with the RFC by providing the bare minimum cookie requirements. Urm, hello, Microsoft... these are the minimum capabilities. Perhaps the goal here was not to have to have different cookie-handling code for IE based on the device (for example, a hand held device or cell phone might need to place such size/length restrictions on cookies), but it seems a bit annoying that such limitations should be placed on IE 6 when being used on my desktop, which has dozens of gigabytes just waiting to hold cookie data. (There is a workaround for the 20 cookie limit - namely, use a cookie dictionary. See the KB article for more info.)

Anyway, this 20 cookie limit came to bite me in the behind. The scenario: a website using forms-based authentication and a Web page using Telerik's r.a.d. spell control. Each r.a.d. spell control on a site emits a session-based cookie for the purpose of 'securing the dialog.' I'm not 100% clear what that means or what, exactly, is being secured. Initially I assumed that it had something to do with the client-side spell checking dialog, ensuring that some cross-site script or some other attack couldn't be used to read or modify the contents while being spelled checked. That was my guess, at least, until I found that there's a UseSession property that will store whatever is needed to ensure the 'security' in a session variable. Hrm, so it's a server-side check... I'm confused, but I digress.

Anywho, the UseSession property is False by default, so by default each time a user visits a page that has a spell checker control, or visits a page with many spell checker controls, new cookies get added to the browser. You can probably see where I'm heading with this - one particular page had over 40 spell checking control instances on it which proceeded to write 40+ cookies to the client. Since IE can only remember 20, it conveniently decided to nix my forms-based authentication ticket cookie. The end result? Whenever I visited this page, after posting back I'd immediately be kicked back to the logon page because the authentication ticket was getting overwritten by the slew of r.a.d. spell cookies. Meh.

The workaround, in my case, was to simply set the UseSession property to True, thereby avoiding the plethora of r.a.d. spell cookies and thereby preserving my forms-based authentication ticket.

It took a bit of researching to figure this particular one out, and it wouldn't have been possible without Fiddler, a great tool for inspecting the incoming & outgoing HTTP streams. (I mentioned Fiddler a few weeks back in my Scott Hanselman's Recommended Tools blog entry.) Thanks to Fiddler I was able to see the mess of cookies being added by r.a.d. spell and the corresponding loss of my forms-based authentication ticket cookie. In addition, I set a breakpoint on the Global.asax's AuthenticateRequest event handler and added to the Watch window Request.IsAuthenticated. On postback, then, I would hit the breakpoint and see that I had 'lost' my authenticated status.

In any event, if you find yourself being 'automagically' logged out of your site, perhaps it may be due to using IE as your browser and having too many cookies from your domain. Hope this helps someone save the time that I invested.

Happy Programming!

Filed under:
TONIGHT: What Are .NET Web Services? Talk
14 July 05 10:54 AM | Scott Mitchell

Tonight I will be presenting a talk titled What are Web Services? for the San Diego .NET User Group Beginner's SIG (a synopsis of the talk is given at the end of this post). The talk starts at 6:30 and is held in an office in Del Mar, just north of the 56 and just east of the 5. In addition to hearing me babble on about Web Services for an hour and change, there will be free pizza!!! Hope to see you there!

This talk will examine the fundamentals of Web services from a beginner's perspective, focusing on the goals of Web services and common uses of Web services in industry today. It Includes a high-level look at the core Web service standards, along with live demos illustrating how to create a Web service and client application using Visual Studio .NET.

Filed under:
Database Projects in Visual Studio .NET
13 July 05 12:07 AM | Scott Mitchell

Until about two years ago, I was completely ignorant about Visual Studio .NET's Database projects. That is, until my wife let me in on the secret. Actually it was kind of funny, she came home from work one day excited after she had learned about the Database project type in VS.NET and wanted to show me how to create/setup/use such a project. We were about to head out of the house, so I said, Later, and over the next few weeks she mentioned it occassionally, but there never was a good time.

Finally, we both had some free time and I asked her to show me the Database project. Since then I've been using them in every single data-driven ASP.NET Web application project I've created, and have immensely enjoyed the benefits. Many thanks, my dear.

I recently wrote an article on 4Guys about the advantages of Database projects and how to get started using them. I invite you to read this new article, Database Projects in Visual Studio .NET. Additionally, be sure to check out the Visual Studio .NET Database Projects sample chapter from Database Access with Visual Basic .NET.

To summarize the advantages of Database projects, I quote from my article on 4Guys:

  • Source control on database objects - if you are using source control (and you most definitely should be), the scripts managed through the Database project can be added to your source control provider. This means that any changes to your database objects will be recorded by your source control provider, thereby providing the myriad of advantages that source control affords (rolling back to older versions, a complete history of changes, etc.).
  • A centralized development experience - rather than having to poke through SQL Enterprise Manager you can manage your database-related objects through the same IDE that you are using to manage the pages and components in your ASP.NET application.
  • An improved text-editor - Visual Studio .NET's text-editor is head and shoulder's above SQL Enterprise Manager's built-in text-editing experience. Additionally, with SQL Enterprise Manager many of the dialog boxes that are used to create/edit database objects are modal, thereby making it impossible to examine other facets of the database when creating/editing a database object. Not so when doing it through Visual Studio .NET.
  • Ease of deployment - if you need to quickly replicate your database's structure having a Database project makes it as easy as right-clicking on the Database project's objects and selecting the 'Run' context-menu option.
Filed under:
Free Tools for Managing Small, Hobby Websites
04 July 05 02:53 PM | Scott Mitchell

I run a number of websites that account for just a few thousand page views per day in total. Many of these websites are simple hobby sites I created for myself, friends, or family over the years, such as NBAWebLog.com and ReadyToBurst.com. Many of these sites are hosted with different web hosting providers. I am interested to learn what tools you use to manage small, hobby sites. (By 'manage' I mean to track site usage, monitor the site's health, and so on.) I've been using the following two free tools that I'd recommend to others:

  • StatCounter.com, for tracking/viewing reports on site traffic across the various websites, and
  • SiteUpTime.com, for keeping dibs on the site/web hosts's overall uptime/health.

Both services are free only in limited ways: StatCounter.com is free for sites that get less than 9,500 page views per day; SiteUpTime.com is free for monitoring one site.

StatCounter.com is pretty easy to setup, you simply create a new 'project' and provide the URL of your site. They then give you a cookie to place on each page in your site. Once you've added this cookie to your site and some visitors have stopped by, you can go back to StatCounter.com and view reports on your site's traffic. The reports are nothing fancy, and from what I see you cannot view reports for multiple projects at once (i.e., compare traffic patterns for site X vs. taffic patterns for site Y), but for the price I'm very pleased with the service.

I'm interested in learning about more 'must-have' resources for managing/running small, non-mission-critical websites. If you have any tools you find invaluable for this means, be sure to share them by posting a comment.

Filed under:
Happy Birthday to My Blog!
02 July 05 07:27 PM | Scott Mitchell

Today ScottOnWriting.NET turned two years old. My first post was on July 2nd, 2003 titled, aptly, Welcome to my Blog! The past two years has seen 273 posts and 1,592 comments.

ScottOnWriting.NET started out with the goal to focus on issues and interests pertaining to technical writing (hence the OnWriting bit in the domain name). Since its inception, though, I've branched this blog out to cover other areas of technology, not just the act of writing it. One thing I am proud of regarding this blog is that I have kept it fairly focused (IMO). There's no posts about the movie I saw last night, my noisy neighbors, or the latest and greatest joke I heard. I've made it a goal to keep the signal to noise ratio as high as possible. (Of course this ratio gets lowered a bit with entries like this one...)

However, I do like blathering on and writing, so it should come to no surprise that I've always wanted to write about non-technical stuff on my blog and have suckled that need primarily by annoying people with frequent posts to of the private listservs I'm on; additionally I've used NBAWebLog.com as a place to write about my favorite sport and hobby, basketball. I've decided to celebrate the two year anniversary of this blog by starting another blog... well, actually two other blogs:

  • ScottOnLife.com - this blog serves as a place where I can ramble on about anything - books I'm reading, movies I liked, politics, curent events, blah blah blah.
  • ReadyToBurst.com - this blog focuses on the housing bubble. Yes, I realize this topic is being wayyyyyyyyyyyyyyy overdone in the 'blogosphere,' but it's a topic of interest to me seeing as I live in one of the most (IMO) overpriced areas (San Diego, CA) and it's my ardent hope to see the bubble burst here so that I can afford a nice single family home in the part of town I like. Of course, this may be all pure fantasy, but it's fun/stress-relieving to read up on articles/data that suggest that we're in a housing bubble, and then post them to ReadyToBurst.com with self-reassuring comments.
Filed under:
Partial Payment Received
01 July 05 11:51 PM | Scott Mitchell

This is the fourth installment of my ongoing Small Claims Court Experience...

Well, I guess I wasn't being fed a load of lies when I travelled to the company on Wednesday with my small claims court papers and was told not to file, that partial payment was on its way. After some thought and comments from interested readers, both in my blog and via email / IM, I decided nuts with it and filed on Thursday (yesterday).

Lo and behold, today I got in the mail partial payment, exactly half of what is owed to me. The letter was postmarked June 30th, so I'm not certain if they really had “mailed out” the partial payments earlier in the week and they just had yet to get around to taking them to the post office, or if me showing up at the company with a short temper and papers in my hand prompted them to send me 50% in an attempt to placate me.

Any suggestions as to what to do now? As I see it I have two options:

  1. Accept the partial payment and wait (hopefully not another six months) for the other half. The upside with this approach is that I actually get to see some of the money owed to me materialize into my bank account. That would be nice, eh? The downside, of course, is that I believe acceptance of partial payment would require me to drop my suit, no? As commenter Brian said, “ In Georgia and Florida too, I believe, if you accept a partial payment it is considered giving credit to the debtor. Giving someone credit means you have a different route to take to win your case and get paid in full. For example if someone owes you $1,000 they send a partial payment of $20 and say they will continue to pay you as they can then you cash the $20 check. You have now granted a loan to that individual and must give them whatever legal time they are entitled to repay the loan.”
  2. Reject the partial payment. With this option I would be passing up the “bird in the hand.” I like Brian's suggestion, though: “ My advice if you do receive the check go back to their office with the check and the legal paperwork and demand either another check to make the debt paid in full or return the check and tell them you are going to court.” If they refused to pay I would then proceed to take the matter through the legal channels.

So, any suggestions as to what route I should take? The total payment due is low enough that even if I don't see a red cent it won't impact me financially, but I would like to be paid as promised for services delivered, naturally. Plus, I'm no Vanderbilt - whereas I won't go hungry or miss a mortgage payment if this payment is never paid, I'm still going to miss it, as I've always had a strong attraction and bond to every dollar bill I've ever met.

As I see it the benefits of going through with the court case are:

  • Education - I've never had to go this route before and this unfortunate circumstance presents a lesson to be learned that, if floundered, won't be a big deal.
  • Showing this company that they can't push around the little guy - this company really needs to review how it interacts with its instructors. Did I receive one call explaining partial payment was on its way? No. And on Wednesday, when I wrote an email to the controller asking them to verify that partial payment was, indeed, on the way, did I hear back at all? No. This company's communication patterns mimic that of a black hole.
  • Getting paid in full (hopefully) - I know a judgement doesn't equal getting paid, but who knows if I'll ever see the other half of the payment if I accept their terms.

The major downsides of pursuing a case would be (and in this order):

  • Time - the courthouse is like 15-20 minutes away, one way. Lines are long. Filing the paperwork ate out about two hours of my day, two hours I could be working for clients who do pay. I've calculated at this point that the time I've spent so far pursuing this, plus the additional time that would be required in court and whatnot, would end up costing me more dollar-wise than the other half of their payment.
  • Not seeing a dime - if I accept the partial payment I'm half way to getting what's owed to me. If I reject it, who knows how this whole mess will turn out? I might end up not seeing a penny.

Due basically to the time costs I'm leaning toward just taking the half they sent and waiting for the rest. I'd really like to stand up against this company, but at the rate this is going I don't know if it makes economic sense. Any insight, comments, suggestions, etc. most appreciated. Thanks!

A complete list of blog entries related to this topic can be found at My Small Claims Court Experience and through Going Independent category. Your feedback is most welcome - please leave a comment or drop me a line.

Filed under:
More Posts


My Books

  • Teach Yourself ASP.NET 4 in 24 Hours
  • Teach Yourself ASP.NET 3.5 in 24 Hours
  • Teach Yourself ASP.NET 2.0 in 24 Hours
  • ASP.NET Data Web Controls Kick Start
  • ASP.NET: Tips, Tutorials, and Code
  • Designing Active Server Pages
  • Teach Yourself Active Server Pages 3.0 in 21 Days

I am a Microsoft MVP for ASP.NET.

I am an ASPInsider.