Tuesday, January 04, 2005

CodeGuru: Who's Locking? v1.3

CodeGuru: Who's Locking? v1.3

"Have you ever tried to copy a DLL and had an "Access Denied" or "Shared Violation" error? Did you have to reboot everytime you needed to upgrade a DLL?

If yes, this program is for you!

Who'sLocking? is a a devpt/system management tool to find which process is locking a DLL.

Whenever a process loads a module (DLL), it locks the DLL and no other process can delete and/or write in it: you get "Sharing Violation" errors (or "Access Denied").

Once you know the name of the process who's locking your DLL, you can stop this process and have full access to the DLL module. There's no need to reboot your system anymore...

PROGRAM FEATURES

  • Integrated in Windows Shell (right-mouse menu on DLL, OCX, or EXE files).
  • Automatic installation/registration when launched first time.
  • 1 parameter: name of executable module to search (DLL, OCX)
  • Display list of processes who are locking a DLL (if DLL is loaded by multiples processes)
  • Displays process name, PID, executable pathname (if applicable), and service name (if applicable)

..."

Cool tool. This will help you figure out what application/process/etc has a given file/dll/etc open.

It's free and the source is available too...

(via Shaju Thomas - Who's Locking?)

What The Spec?!? - The Daily WTF

What The Spec?!? - The Daily WTF

"I've noticed that there have been a lot of IT Project Portals popping up over the last few years; you know, the ones where you post a project and get bids from coders and companies all over the world. If you've ever used these before, you may have noticed that some of the proposals are ... umm ... slightly less-than professional.

But I can honestly say I've never quite seen a proposal like this (as discovered by Péter Zoltán). It's for small software e-commerce site. Here are some excerpts:

"The server is gonna be at my home, connects to the internet through satellite with fix IP"
"Softwar downloadable by anyone before he is our customer"
And there will be a button like send order ner the catalog button
Thiss will send the order for us"

Actually, it's pretty hard to pick excerpts. The whole damn thing is like that. See for yourself. "



Looks like some spec's I've been given... :|

Monday, January 03, 2005

Gizmodo : TiVoToGo Launches

Gizmodo : TiVoToGo Launches

"If you have a Series2 TiVo you can go to the website and download the software today to copy shows to your laptop, although the DVD burning software that will facilitate permanent archiving is still not available."

I wonder if it's time to Tivo? I've been going back and forth between getting a Tivo or Adelphia DVR. (A Media Center would be cooler, but they are so much more expensive initially...)

TivoToGo might tip the balance in Tivo's favor... It sure does sound cool doesn't it?

.Net Plugin Application Architecture

During the holiday period, I started seriously playing with building a .Net application that was based on a plugin architecture.

First I wanted to do it the hard way, the better to really understand what was going on, how to best build it, etc, etc. After a while I had a simple application where I could plugin new funcationality without recompiling the primary application. Yeah!

What a pain. I had the simplest implementation working. Now all I needed was to use a new AppDomain, show copy, dynamic plugin loading, etc, etc. I.e. a real implementation.

Now that I'd done it the hard way, I decided it was time to punt and not try to reinvent the wheel. I've posted about MSINC.Plugins before and now was the time to use it.

Oh my. Talk about making my life easier. That library just rocks. In just minutes I had replaced my cheese/hard way plugin architecture with MSINC.Plugins. And now I had a real plugin application. Now that's cool...

If you're looking at implementing plugins in your application, take a look at this library.


Now it's time to actually build some plugins... :)

PS. It seems MS-INC's site (http://www.ms-inc.net) is current down. Hopefully it's "just a thing"...

My "Read These" Folder #2

My second "Read These" links... I first talked about my Read These folder, here.

One thing I miss when using Blogger/BlogSpot are categories... It would be nice to have a category for these posts. Of course I could start a new blog, but that seems like overkill. And keeping one personal blog updated is hard enough (plus I like have a single remote memory space to search...)


Customizing MSI Installation
"Go beyond the basics of creating setup routines in Visual Studio .NET! Vishnu Prasad H explores setup project templates, editors, custom installers, and more. Then he pulls it all together in an example that deploys a database application."

VB-Helper: Stick to the Script
"No matter how hard you try, you can never anticipate every user's needs. And whether you get paid by the hour or by the product release, constantly adding new features can be alluringly profitable, although often tedious. However, if you build enough flexibility into your applications, users can often implement their own solutions. This month, Rod Stephens explains how to add scripting to your VB.NET programs. Then, when your users ask for a new feature, you can tell them to do it themselves."

The Fallacy of the Data Layer by Rocky Lhotka
"It is commonly held as a truth that applications have a UI layer, a business layer and a data layer. In most of my presentations and writing I use a four layer model: UI, business, data access and data storage. In this case the "data storage" layer is really the same as the traditional data layer in a 3-layer model.
But I want to challenge this idea of a data layer. Over the past few months, in discussing service-orientation (SOA) as well as distributed object-oriented architecture, I have become increasingly convinced that the idea of a data tier, data layer or data storage layer is fundamentally flawed."


A BLOB of a Different Color
"You might be used to BLOBs in ADO, but a BLOB in ADO.NET is a completely different animal
Michael Otey
Converting legacy ADO applications to ADO.NET requires a lot of work, and one of the hardest parts of moving to ADO.NET is converting BLOB import or export code. Although many features in ADO.NET are closely related to those in ADO, BLOB access isn't one of them. In ADO, you manipulate BLOB data by using the standard Recordset and Field objects with either the Field object's chunking methods or the Stream object. However, none of those objects exists in ADO.NET. In ADO.NET, you can use the SqlDataReader to retrieve BLOB data from your SQL Server database, then use the ADO.NET DataSet and DataField objects to import BLOB data from the file system into SQL Server."


HOW TO: Read and Write a File to and from a BLOB Column by Using ADO.NET and Visual Basic .NET
"This article explains how to read and write data from BLOB (LongVarBinary) columns in a database table."

HOW TO: Read and Write a File to and from a BLOB Column by Using Chunking in ADO.NET and Visual Basic .NET
"This step-by-step article describes how to use the Microsoft SQL Server READTEXT and UPDATETEXT statements to read and write data from BLOB (LongVarBinary) columns in a database table.

Unlike with ADO 2.6 and later, ADO.NET does not support reading and writing BLOB objects by using Stream objects. ADO.NET data providers do not have GetChunk and AppendChunk methods available to the Data Access Object (DAO) and ActiveX Data Objects (ADO) Recordset objects. To read a BLOB field for in-memory manipulation, you can use a DataReader object to select the row, or you can cache the data in a DataSet.

However, if you want to stream the data to a different medium, such as disk or Web response, then you can read the BLOB from the server in smaller chunks to minimize the amount of memory that the process consumes. This is especially important in Web Forms applications, where you may have multiple concurrent applications running at the same time and you want to conserve memory resources. "


How To Read and Write BLOB Data by Using ADO.NET with Visual Basic .NET
"The GetChunk and the AppendChunk methods are not available in ADO.NET to read and write binary large object (BLOB) fields. This article describes how to use the FileStream object and a byte array to read and to write BLOB data from Microsoft SQL Server to a file."


Can you tell I was doing ADO.Net BLOB research? :)

15 Seconds : ClickOnce Deployment in .NET Framework 2.0

15 Seconds : ClickOnce Deployment in .NET Framework 2.0

A short article on using the new ClickOnce deployment method coming in .Net 2.0.

I'm hoping the second time is the charm (vs No Touch deployment) and that it's not all just hype... Cause I REALLY could use something like ClickOnce, as long as it works as advertized and there are not TOO many additional "issues" with it...

We'll see later this year...

The Code Project - ZIP Code Utility

The Code Project - ZIP Code Utility

"This article provides an easy method to lookup a U.S. City/State by ZIP Code, or one or more ZIP Codes by City/State. It also describes a method to calculate the distance between two ZIP Codes and find all other ZIP Codes within a radius of X miles of a specified ZIP Code.
...
Intrigued by Ben Fry's zipdecode[^] applet, I decided to write a little ZIP Code utility that allows lookups of U.S. locations by ZIP Code, City/State, or all three. Since the data were already in the database in the form of latitude/longitude pairs, I added the capability to find the distance between two points, and to find all other ZIP Codes within a radius of X miles from the original location.
... "


A disconnected method (i.e. no web service/map point/etc) of determining the distance between two zip codes/locations is something I might be able to use...