Tuesday, February 07, 2006

SqlClrProject Updated

Niels SQL Server Blog : New Release of SqlClrProject

"Back in December I released a new version of SqlClrProject, it was followed by an update in January. After the update I received some functionality requests - being able to define the names of the parameters that are being created. Some times, the names you want to give to your procedure/function parameters may not be valid .NET param names, so in those cases it can be useful to be able to explicitly define the names.

Anyway, I have implemented that by defining a new custom attribute - SqlParamFacetAttribute - which derives from SqlFacetAttribute. As this new attribute is a custom attribute it has to be deployed to SqlServer in its own dll. The deployment task is doing that automatically during deployment if the attribute dll is not here already. …"

 The SQLCLRProject has been updated…

Past Post XRef:
SqlClrProject

CreateVirualDirectory Snippet

GotCodeSnippets.NET: Snippet Detail and Download

"Usage:
Dim vir As New CreateVirualDirectory
vir.CreateWebFolder(vir.GetCurrentPath() & "\SampleVDir", "SampleVDir", True)
vir.CreateWebFolder("c:\temp\SampleVDirI", "SampleVDirI", False)
vir.CreateWebFolder("c:\temp\SampleVDirII", "SampleVDirII", True) "

Cool VS 2005/VB 8 snippet… 

HealthMonitor

HealthMonitor Web Site - Welcome to HealthMonitor

"HealthMonitor is changed, we spent a lot of time rewriting the application from scratch, developing a new web site and providing a lot of exciting features such as plugin management, remote host checking... Ok, ok... most of all are impatient and want to see it in action so just click here to download or click here for some screenshots ;-) "

About HealthMonitor

“What is HealthMonitor ?

HealthMonitor is a free powerful and featureful monitoring tool for Windows.
It works as a Windows Service, monitor system performances/thresholds (CPU load average, free memory, disk space, Event Viewer...)  and handle specific check plugin (Check HTTP, windows services, custom script).
It can log result on a database or send a notification by E-Mail, SMS, PopUp...”

This is a Open Source (GPL) VB.Net (7.1) project that looks pretty interesting. I like the plug-in capability…

I’ve had to re-invent a number of these checks (Disk Space and Pinging) and while I dig the coding, I don’t dig re-inventing the wheel…

BTW, the HealthMonitor 3.0 VB source downloads (once you get a CVS client like TortoiseCVS) and builds with zero problems (at least on my machine ;). If you’ve ever downloaded OSS and tried to rebuild it you’ll know why I note this point.

 (via TechNet Magazine)


Update #1 5/4/2006:
The correct/official URL for HealthMonitor is http://healthmonitor.sourceforge.net

"Let the Good Times Roll--by Guy Kawasaki: The Effective Emailer"

Let the Good Times Roll--by Guy Kawasaki: The Effective Emailer

"…12. Chill out. This is a rule that I've broken many times, and each time that I did, I regretted it. When someone writes you a pissy email, the irresistible temptation is to retaliate. (And this is for an inconsequential email message--no wonder countries go to war.) You will almost always make the situation worse. A good practice is to wait twenty-four hours before you respond. An even better practice is that you never say in email what you wouldn't say in person--this applies to both the sender and recipient, by the way. The best practice is to never answer and let the sender wonder if his email got caught in a spam filter or didn't even matter enough to merit a response. [Emphasis added] Take my advice and do as I say, not as I have done--or will do. :-) …"

LOL. Nice… And words to live by. I’m slowly learning the above email rule. In some cases I like following the advice in bold… ;)

An email flame war does no one any good and only makes you look childish (no matter how right you are or wrong/irritating the other person is). Rise above it.

If you have to reply, like Guy says, wait 24 hours and only reply to valid business points. If you disagree, then say so (I disagree on your point about XYZ…), but don’t bash, slam or try to “win”. You’ve already won by being the business focused and professional adult.

(via Kintan'swriting "WOW" emails)

MHTML Library for .NET - The Code Project - .NET

MHTML Library for .NET - The Code Project - .NET

"Most people who use the web are familiar with pages written using HTML, which reference other files such as images and stylesheets.

As email became more prevalent, there was the desire to email HTML content and all related resources.
In 1999, an RFC (RFC-2557) proposal was submitted that described aggregating HTML and related resources into a single file. This soon became known as MHTML.

MHTML defines a standard format for the encoding and storing of web related resources so it can be stored or transmitted easily.

… CDOSYS and CDONTS have existed for a while and is the common way for most developers to create MHTML documents. In fact, CDOSYS has the method CreateMHTMLBody(), so it was no surprise when this was chosen to be used.

I was dissatisfied with the interface CDOSYS exposed. I found it to be cumbersome and difficult to use in the context of this application. I began thinking of how this might be improved and made easier.  Written entirely in C#, this library exposes an object model for the downloaded content and makes integrating into an application very easy.  It also provides an extensibility model.

…"

Another .Net MHTML project to keep an eye on…

Related Past Post XRef:
Convert any URL to a MHTML archive using native .NET code

Pleo - Designer Life Form

nxtbot.com Blog » Blog Archive » Ugobe reveals Designer Life Forms

"…Designed to look like a newborn dinosaur (a 1-week old Camarasaurus sauropod, to be exact), Pleo sports 40 sensors, a life-like movement system, 14 servo joints and the ability to exhibit a variety of lifelike moods and actions, including anger, boredom, sneezing, etc. …"

I don’t see the “lifelike mood and action,” “chase cat”  :|

 

Saturday, February 04, 2006

Single Instance Store (SIS) in Windows Storage Server R2

The Filing Cabinet : Single Instance Store (SIS) in Windows Storage Server R2

"Single Instance Storage (SIS) in Windows Storage Server 2003 R2 is starting to generate some buzz on other blogs. A blog reader asked us to explain SIS in more detail. Over the next couple days, I’ll publish a series of 4 posts covering SIS basics and design. Many thanks to Claus Joergensen for providing this information.

SIS is a storage feature available on Microsoft® Windows Storage Server™ 2003 R2.  Single Instance Storage (SIS) recovers disk space by reducing the amount of redundant data stored on a volume by identifying identical files, storing only a single copy of the file in the SIS common store and replacing the files with links to the file in the SIS common store. Consider the following scenario:

1. Two users receive the same e-mail with an attachment. They both save the attachment to their home folder. SIS runs in the background and detects the two identical files on the volume and moves one of the copies into the SIS common store and replaces both files with a link to the file in the SIS common store.

SIS provides the following benefits:

  • SIS reduces disk space consumption by eliminating duplicate files--our own IT department (MS-IT) saved 14 TB (40%) on servers hosting MS products
  • SIS is a set it and forget it feature. It does not require daily maintenance.
  • SIS is transparent to the end users and applications
  • SIS provides a backup API that allows backup apps to determine if file is SIS’d and only back up the file once (most major Backup application vendors support SIS)

"

Interesting…

Friday, February 03, 2006

"Repairing Outlook 2003 PST Files and Size Limits by Mr. Tweak"

Repairing Outlook 2003 PST Files and Size Limits by Mr. Tweak - Windows Network & Admin Tweaks

"…

Size Limit of Outlook 2003 .PST’s: Using a Unicode database, instead of ANSI, allows the 2003 .PST file to reach a size of about 32TB (yes, terabytes!). The problem is that this is a file-based database and not a database server that properly indexes, caches, and allocates memory carefully. The result is that larger files just require more and more system resources to deal with. I am not aware of any utility currently available for dealing with 32TB Unicode .PST’s hitting their maximum file size (or any system that could efficiently use a .PST file that large either).

…"

I’m sure it’s only a matter of time until I get my first 10GB PST, and then 100GB PST and so on…

I’ve handled a good number of 2GB PST’s for a couple years now… Now that Outlook 2003 is getting some traction, it’s reasonable for me to expect much larger PST’s coming my way.

Now I have to figure out a way to scale out my processing to be able to handle 10 – 500GB PST’s.

Doesn’t EDD (Electronic Data Discovery) development sound like fun?

[Wow, there’s no Wikipedia entry for EDD and/or Electronic Data Discovery! This my chance for fame and fortune? Right…lol  ]

"Stored Procedure Object Interface Layer (SPOIL)"

Download details: Spoil.msi

“Brief Description
SPOIL essentially creates an objected-oriented (OO) layer on the database so the application can stay in the OO paradigm."

Overview

Sample code for the Stored Procedure Object Interface Layer (SPOIL). This creates an object abstraction over SQL stored procedures providing applications with an object view of the data layer.”

I don’t know what this is, but I like the name…  ;)

Since I’m in the “Stored Procedures are Good” camp, I’m checking it out now.

Thursday, February 02, 2006

WOW, now THAT'S faith in Your Product!

Jeff Atwood : The Ultimate Dogfooding Story

“… A table saw is an extremely dangerous tool.  My saw can cut a 2-inch thick piece of hard maple with no effort at all.  Frankly, it's a tool which should only be used by someone who is a little bit afraid of it.  It should be obvious what would happen if a finger ever came in contact with the spinning blade.  Over 3,000 people each year lose a finger in an accident with a table saw. 

A guy named Stephen Gass has come up with an amazing solution to this problem.  He is a woodworker, but he also has a PhD in physics.  His technology is called Sawstop.  It consists of two basic inventions:

  • He has a sensor which can detect the difference in capacitance between a finger and a piece of wood.
  • He has a way to stop a spinning table saw blade within 1/100 of a second, less than a quarter turn of rotation.

The videos of this product are amazing.  Slide a piece of wood into the spinning blade, and it cuts the board just like it should.  Slide a hot dog into the spinning blade, and it stops instantly, leaving the frankfurter with nothing more than a nick.

Here's the spooky part:  Stephen Gass tested his product on his own finger!  This is a guy who really wanted to close the distance between him and his customers.  No matter how much I believed in my product, I think I would find it incredibly difficult to stick my finger in a spinning table saw blade.  Unbelievable! …”

Like Jeff says, Wow…

[Venting] IE7B2 Bugs? A beta with bugs? No way...!

<vent>

You know all the news about bugs in IE7B2 (Preview) is starting to irritate me off… Gee, there are bugs? NO WAY! Bugs In a beta? Oh MY! In a PREVIEW of a beta? Say it’s not so! How could MS release a beta preview with BUGS!  :0

Come on people (I’m talking to those jumping up and down about it and the many news outlets that have picked up the stories)... It’s a preview of a beta (does that make it an alpha beta?). It’s GOING to have bugs. It’s EXPECTED to have bugs! That’s the nature of beta’s. DUGH.

Report your bug finds to MS, which is the responsibility you accepted when you installed the beta…

</vent>

TFS Check In Policies, Code to Police Code

James Manning's blog : check-in policy to disallow certain patterns (for instance, particular extensions).

"A request that's come up a couple of times is to have a checkin policy help guide developers about certain file extensions that they shouldn't check in to version control. While making a policy with "forbidden extensions" is certainly possible, it's basically the same amount of work to make "forbidden regular expressions" and give more power to the user - extensions are just a subset, like "\.tmp$" for "don't check in any files end in .tmp".

…"

I think it’s pretty cool that TFS Check In policies can be created by writing code. Allows for a good bit of flexibility doesn’t it?

It just seems ironic, yet appropriate, in some way (code to police checking in of code).

BTW, James’ blog has a number of cool TFS check in policy examples as well as general good poop on TFS.

Cropper 1.8 Released

Brian Scott : Cropper 1.8 Released.

Ton’s of new features and fixes.

I think I dig the Print Screen keyboard button capture the most.

“… 3) Print Screen captures. You can now use the Print Screen button to take screen shots with Cropper. The crop form can be minimized. The images will be saved with the same options as regular screen shots….”

This fits Cropper better into my normal way of doing things (which is usually ALT – [PRT SC], Paste into MSPaint, save as PNG… yeah, I know pretty old school, but it’s easy, works and is free…).

Downloaded and installed.

Wednesday, February 01, 2006

VB.Net EXIF Class

The ExifWorks class - The Code Project - VB.NET.

" What is EXIF
EXIF stands for Exchangeable Image File Format. This format is used for storing various metadata in images, and is widely used mainly in digital still cameras. More information about EXIF can be found here, or in the document Description of the EXIF file format by TsuruZoh Tachibanaya.

When I was trying to find any sources regarding comfort access from .NET environment to these data, I was not successful. So I wrote this class and gave it freely available as open source.

What is ExifWorks
ExifWorks is a class written in 100% pure managed VB.NET, which allows comfort reading and writing of embedded EXIF metadata. …"

Something I might be able to use sooner than later…