Thursday, December 21, 2006

Merry Christmas

It's that time of year once again. Time for me to be politically incorrect by saying Merry Christmas to all. God has blessed my life in so many ways; I wouldn't feel right giving any other reason for this wonderful time of year. I hope all of you (well the few of you) who read my blog have the best of time with your family this year, and remember what the true meaning of Monday is. If you don't share my belief, that is fine also, I still wish you Merry Christmas.

Regardless though, it's great time of year to see family, help others, respect everyone and just be happy. We are all truly blessed.

Chris

Monday, December 18, 2006

Pre-allocated Strings in Win32 API

As a part time developer, I can say that I have nowhere near mastered C#. When I find something that took me quite a while to figure out I might as well post it here in hopes it will make someone else's life easier. My problem was calling a Win32 API from within C# (PInvoke) with a char* that needed to be pre-allocated. Example:

long JustATest (long handle, char * pPreallocatedText)

Normally in the scenario of char* I would simply pass a type of string. This works fine until the API needs the string to already be allocated. From my test, there was no way to get the call to succeed using:


 

[DllImport("sample.dll", EntryPoint = "JustATest")]

public static extern int JustATest(int handle, string text);

What I finally discovered (thanks to another blog) was that you can use a StringBuilder instead and just pre-allocate its size:

[DllImport("sample.dll", EntryPoint = "JustATest")]

public static extern int JustATest(int handle, StringBuilder text);

To make the call simply create a StringBuilder:

StringBuilder text = new StringBuilder(2000);

Than call the API.

int iResult = JustAtest(myHandle, text);

This seemed to work perfectly. Hope this helps someone.

Chris

Saturday, December 09, 2006

KnowledgeLake 2007 Products Enter Beta

I got to take a giant breath last night and started thinking about the 60 days ahead. We released our 2007 product line to public beta last night, and I can tell you I am proud and lucky to have the team I do. It's one of the most determined groups of individuals I've ever worked with. If you are a current KnowledgeLake customer with a maintenance contract you should be able to download our two desktop products early next week. Many customers signed up to test the entire line of Beta products and I look forward to seeing them all on Monday for the Beta training.

Our 2007 product line is the biggest single development project KnowledgeLake has ever taken on, as well as myself. I've always known that adding bodies to help code isn't always the answer, but I have to say that the support group around those developers cannot be big enough. I have a few key individuals (MM BP and JD) that really stepped up in non-development roles to help kick this Beta into high gear.

Let me just mention quickly about the products that are part of the Beta Program.

KnowledgeLake Enterprise Imaging Server 2007

We were hoping to invent the longest product name ever, but we just couldn't quite beat Microsoft Visual Studio Tools for Office 2007, however we got close. The good thing like VSTO, we just call ours EIS for short. Anyway, this is our product that really turns either MOSS or WSS into a true Document Imaging system. It allows user to Scan, Index, Search, View, Print, Export and Import documents into SharePoint Document Libraries, directly from the SharePoint web application. The new features that have been added since our 2003 products are Scan, Index, Print and Export. I'll be blogging more about these individual features in the near future, but my feeling is these additions are going to completely separate us from other ECM vendors.

KnowledgeLake Product/Desktop Capture 2007

We have two versions of our 2007 Capture product. Unlike before where the production and desktop version were based on completely different platforms the 2007 products share a majority of their code. The big difference between the two products is the drivers it supports. Desktop Capture only works with Twain and WIA devices, although either product can be extended to use any scanner driver if you have a way to code against it in .NET. Production Capture also includes a license that connects it to our upcoming Enterprise Capture Services, due to be in Beta in a couple weeks.

KnowledgeLake Connect 2007

A complete overhaul of our original Connect product, the new Connect, while not necessarily loaded with new features, sets us up with a much better platform to grow this product. The single biggest thing we did was share the Indexing code between all products including Connect. This allows administrators to setup validations and lookups on the server side and then just consume them on all of our clients. Other cool new features include the ability to add folders to document libraries directly from the tree view, ability to upload a batch of files, prompts to overwrite files and the ability to release to Enterprise Capture Services.

If you are interested in any of these products, just hit our web site http://www.knowledgelake.com for more information on contacting us, or just keep checking my space and I'll talk about each product in detail over the coming weeks.

Have a great weekend,

Chris

Monday, December 04, 2006

Snipping Tool has Issues, Snag-It Still Rocks

I had blogged a couple weeks ago about the new Snipping Tool in Vista and about how it was going to replace Snag-It. Well I must say that I must retract that as I just installed Snag-It for the following reasons:

  • Clipping Tool can't be executed with hot keys (that I can tell) and therefore can't always capture what need, such as the Application Menu in Office 2007 client applications.
  • Clipping Tool saves to clipboard as an odd format because I can't paste into my favorite Icon program, which is Axialis. This forced me to use Paint or something archaic as an intermediate step.
  • Image cleanup is very limited compared to Snag-It.

Those are enough reasons for me, and besides Snag-It is cheap.

Have a good week,

Chris

Friday, December 01, 2006

Run As Administrator in Vista

I've found a happy place in Vista, and that's by running stuff as an Administrator. I originally thought I was in trouble and would have to roll back to XP, but I'm feeling better about it tonight. I've realized that XP drivers get installed in places that only administrators have rights to, and even though applications may seem to work fine I still need to run them as admin in order for the drivers to work correctly. I'm sure the security stuff in Vista will pay off, but for now I wish it'd quit complaining.

Have a good weekend,

Chris

Run As Administrator in Vista

I've found a happy place in Vista, and that's by running stuff as an Administrator. I originally thought I was in trouble and would have to roll back to XP, but I'm feeling better about it tonight. I've realized that XP drivers get installed in places that only administrators have rights to, and even though applications may seem to work fine I still need to run them as admin in order for the drivers to work correctly. I'm sure the security stuff in Vista will pay off, but for now I wish it'd quit complaining.

Have a good weekend,

Chris

Wednesday, November 29, 2006

Post Build Aggravation on Vista

I really like a lot of things about Vista, and I know when I really start to understand it I will be singing the praises of this new OS. In the mean time I am just completely frustrated. My latest rant happened when I was trying to get my post build events working in Visual Studio. In the past I had always kept a "Projects" folder in the root that contained every project I was currently working on. When I moved to VS 2005 full time I decided to start keeping my new projects in the Visual Studio 2005\Projects directory. This seemed to work fine and even made backups easier as everything I did was now contained under "My Documents". Last week I moved to Vista and as I started getting back into some coding this week I spent a good day pulling my hair out over something really dumb.

I noticed that my post build events were no longer executing, and of course causing my build to fail. The post build events are a must because I was debugging some assemblies in our new Capture product that are late bound. I spent the first couple hours trying to figure out what had changed in my events (shown below).

copy $(TargetPath) "..\..\..\..\Application\bin\debug\Plugins\Win\$(TargetFileName)" /Y

copy $(TargetDir)$(TargetName).pdb "..\..\..\..\Application\bin\debug\Plugins\Win\$(TargetName).pdb" /y

This all seemed simple enough and worked fine with XP, but why did I now error with an exit code of 0? I changed the target directories to something very simple, like c:\temp and still no luck… exit code 0. The error messages were showing the full paths showing me that the directories seemed fine.

c:\users\chris.caplinger\Documents\Visual Studio 2005\Projects\KnowledgeLake\Capture\4.0\KnowledgeLake.Capture.Win

I took the commands being executed from the error message and decided to simply drop them into a command line window, and of course the copy failed. This made no sense as the directories were correct. I changed to the source directory and tried it again and Wham!, it worked. I have no idea on why this behavior is happening and figure it's probably a bug or a feature I could live without. After some more experiments I determined that the "c:\user" path is screwing everything up. Maybe this has something to with the new shadow folder since this used be "c:\documents and settings". I have just come to the realization for now that you can't copy stuff from paths in the "User" folder on the command line unless you are in that specific directory. And even then you won't be able to copy to other folders under "User".

The only fix I could come up with was to move all my projects back to "c:\projects", which resolved the problem and got me back on my way. Hopefully you get to read this before you spend several hours in frustration.

Chris

Monday, November 27, 2006

Vista Scanning Frustrations

This is more of a plea than a post. If anyone knows how to make legacy TWAIN and WIA devices work with Windows Vista please drop me a line and let me know. I did a fresh installation of Vista Ultimate and have not succeeded in getting any of my three scanners working. I made the not so intelligent assumption that Windows XP driver "should" work in most cases.

Chris

Saturday, November 18, 2006

Snipping Tool in Vista

I made the plunge yesterday into Windows Vista Ultimate. I can't believe how different the UI is. I have found some things I like and hate and I'll blog about them some other day, but if you haven't upgraded yet you may not know that Vista contains an application called Snipping Tool. This is basically a SnagIt type tool that simply allows Free Form, Window, Rectangle and Screen snippets to be captured. I'm sure TechSmith isn't too thrilled about Microsoft including this feature in Vista. At this point I'm not sure whether or not I'll even install SnagIt, as the Snipping Tool is very easy to use. I just dropped in my quick launch where it can be launched easily and when you're done it shuts down so it doesn't eat up system resources.

Have a good weekend,

Chris

Wednesday, November 15, 2006

KnowledgeLake 2007 Beta Program is on the way…

For those of you who may be interested in beta testing our 2007 software products, we have good news. It looks like the program will kick off on December 11th. We will have a free training/overview class that day. We will have several different ways to participate in the beta, and more information will be available late this week.

What happened to Imaging for Windows

Doing some research for a project this morning, I got completely side tracked and started down the path of the history of Document Imaging inside the Windows platform. This topic is of obvious interest to me because I really feel KnowledgeLake is the new "Imaging for Windows", but in the form of "Document Imaging for SharePoint".

The Beginning

Sigma Imaging Systems was founded in 1988 and developed a Document Imaging and Workflow solution for MS-DOS. Sigma formed a partnership with Unisys in late 1989 that allowed Unisys to OEM the technology into a product called InfoImage. Unisys continued selling its UNIX based InfoImage, based off pieces of both internally developed code and FileNet code. Sigma maintained a separate code base for their product and InfoImage, which continued up until 1999.

Windows 95 and Wang

In April of 1995, Wang Laboratories formed an agreement with Microsoft to supply workflow and imaging capabilities to for Windows NT and Windows 95. Wang purchased Sigma Imaging Systems in July of 1995 for $20 million in order to fulfill this agreement. Sigma's product was renamed Imaging for Windows when released with the new operating systems. In exchange for being allowed to package the software Microsoft purchased $90 million in stock from Wang (or invested depending on how you look at it), as well as allowed Wang to advertise and sell upgrades to Imaging for Windows. Included with Windows 95 was the ability to scan using TWAIN devices, view, annotate and print TIFF, BMP, AWD (Microsoft Fax) documents. The viewer would also show and print JPEG and PCX/DCX images. Microsoft still maintains a web page on Imaging for Windows at http://support.microsoft.com/?kbid=140980.

Kodak Purchases Wang

In 1997, Wang sold its Imaging division to Kodak for $260 million (no clue on how much Microsoft still owned of Wang) and formed the Eastman Software subsidiary.

Windows 98/2000

The Imaging for Windows software was basically repackaged for as a Kodak product for Windows 98, with no change in functionality. The product did get upgraded to 2.0 at some point, but it was basically the same product.

Unisys Agreement Ends

Depending on who you talk to you'll hear different stories here, but Eastman Software and Unisys terminated their agreement in early 1999. Eastman claimed it needed to stop supporting the InfoImage code in order enhance its workflow product, while Unisys said they did it to obtain the rights to source code and allow them to independently market their product.

Kodak spins off Eastman Software

Kodak spun off Eastman Software in August of 2000 and was renamed eiStream soon afterwards. Sometime during this transaction the agreement was broken with Microsoft to allow the Imaging for Windows software to continue being packaged with the Windows OS. In 2005 eiStream changed their name to Global360 and competes globally in the ECM space. Global360 still sells Imaging for Windows today worldwide with just minor upgrades from the product that was shipped with Windows 2000.

Microsoft releases Office 2003 with MODI

Microsoft contracted with Nuance, then known as ScanSoft, to create Microsoft Office Document Imaging (MODI) for release with Office 2003. Not taking this market serious at all, I believe Microsoft really missed with this product. Although it still has most of the features of Imaging for Windows, it does not support the old Wang format for annotations within TIFF files, which makes it incompatible with the older files. It also uses a new format called MDI by default instead of TIFF. TIFF is still supported, but the annotations are a new format. The MODI software is part of the Office 2007 product with virtually no changes except for a version 12 stamp.

I think that's enough for now without diving into our product. Have a good weekend,

Chris

Wednesday, October 25, 2006

This is not my real Blog. Although I try to send posts here, my main blog site is http://chrislcap.spaces.live.com.