October 26, 2003

Change NTP Time Update Interval

I'm often amazed by the processing speed of my new computer, but I'm disappointed by its inability to tell time. Even with Windows XP's built-in NTP time update service enabled my system's clock is often up to seven minutes fast. To lessen the problem, I now have my system synchronizing its clock every day.

By default, Windows XP's NTP service synchronizes your system's clock every seven days, but the update interval (in seconds) can be changed via this registry key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\
W32Time\TimeProviders\NtpClient\SpecialPollInterval.

Here's a REG file you can run to make your system clock synchronize with your time server daily.

Posted by JoshC at 07:39 PM | Comments (0) | TrackBack

October 20, 2003

Arrays and Lists in SQL

Here's the best reference I've found on how to deal with arrays in SQL: http://www.algonet.se/~sommar/arrays-in-sql.html. The author goes over several approaches with various complexity and performance considerations.

Posted by JoshC at 11:05 PM | Comments (0) | TrackBack

October 16, 2003

Metabuilders free ASP.NET controls

Metabuilders.com has a bunch of free ASP.NET controls. You can even suggest new ideas for controls and others can vote on them.

Posted by JoshC at 09:24 AM | Comments (0) | TrackBack

October 15, 2003

Windows Command Line Tips

Here are some handy tips for the Windows command line:

  • 'Findstr' is 'grep' for Windows. I don't know when they slipped this in, but I missed it for a long time.
  • Use 'setlocal' and 'endlocal' in batch scripts to limit the scope of changes to environment variables such as PATH.
  • 'Pushd' works just like 'cd' but saves your current path on a stack. Calling 'popd' will change your current directory to the path on top of the stack. These are godsends for navigating deep path hierarchies.

Let me know if you have any other tips and I'll add them to the list.

Posted by JoshC at 11:38 PM | Comments (0) | TrackBack

Snippet Compiler

Jeff Key's Snippet Compiler is simply amazing. It allows you to write short snippets of C# or VB.NET code and run them without the hassle of setting up a new VS.NET project. It is incredibly handy for running examples found in the MSDN docs.

Perhaps the most amazing thing about Snippet Compiler is how much development it's gone through in a short amount of time. The first version I started using was little more than a text box that compiled and ran the code. Now it imports VS.NET projects, exports snippets to HTML or RTF, and... would you believe it even has Intellisense??? I still can't.

Posted by JoshC at 11:21 PM | Comments (0) | TrackBack

GNU Utilities for Win32

If, like me, you often find yourself typing 'ls', 'cat', and 'less' in a Windows command prompt, you should download the GNU Utilities for Win32. It includes most of the common unix utilities built as native Win32 apps that don't require an emulation layer like cygwin.

Posted by JoshC at 11:12 PM | Comments (0) | TrackBack

OpenSmtp.NET

OpenSmtp.Net is an open source library for .NET that allows you to send emails directly using SMTP. It includes classes for generating emails with MIME bodies, too. Very cool.

Posted by JoshC at 10:57 PM | Comments (0) | TrackBack

CropMonkey 1.1 Release

CropMonkey 1.1 is a relatively minor release that I wanted to get out the door before I start making the big changes I have planned. This release fixes several bugs, greatly improves performance of selecting/sizing an area to crop, improves the 32x32 icon for better visibility on the desktop, and the installer now will add a "Crop with CropMonkey" item for when you right click JPG and BMP files.

Click here to download CropMonkey.

Posted by JoshC at 08:01 AM | Comments (0) | TrackBack

October 08, 2003

Generics in the CLR

I found this article by Jason Clark about how generics are being implemented in the .NET CLR. He does a good job explaining what makes C# generics different (and better) than C++ templates and Java's version of generics. Read it here.

Posted by JoshC at 01:51 PM | Comments (0) | TrackBack