Wednesday, June 06, 2007

Funny Lines from Actual Court Transcripts

Law Firm Blogging.com - Attorney jokes from actual trial excerpts

"... These are from a book called Disorder in the American Courts, and are
things people actually said in court, word for word, taken down and
now published by court reporters who had the torment of staying calm
while these exchanges were actually taking place.
...
________________________________________
ATTORNEY: Were you present when your picture was taken?
WITNESS: Are you shittin’ me?
______________________________________

...
______________________________________
ATTORNEY: ALL your responses MUST be oral, OK? What school did you go
to?
WITNESS: Oral.
______________________________________

..."

This post had my crying I was laughing so hard...

Tuesday, June 05, 2007

SourceGear DiffMerge - Free Cross Platform GUI Diff & Merge Utility

Eric.Weblog()Free Diff Tool: SourceGear DiffMerge

"...

DiffMerge is "free of charge", or as some folks say, "free as in beer".  DiffMerge is not open source nor is it "free" in the Richard Stallman sense of the word.  DiffMerge is a no-cost application that anyone can download and use.  It is not a trial, a demo or an eval.  It is fully functional and fully featured.

...

So, we're unveiling SourceDiffMerge 3.0 as our attempt to be the best of the breed.  I'm not sure we've hit the target, but we've come very close.  Highlights include:

  • Compare two text files
  • Lots of supported character encodings
  • Intra-line highlighting of the changed portion of a line
  • Three-way merge, including automatic merge whenever possible
  • Compare folders
  • Cross-platform:  Runs on Windows and Mac OS X.  Oh, and Linux too.
  • Full support for editing
  • Fully customizable

..."

I was just looking for a Windows GUI Diff app the other day. This one looks pretty cool and is perfectly priced...

[Download]

(via dzone - Free Diff Tool: SourceGear DiffMerge)

Deploying a VB6 App when using the Interop Forms Toolkit

The Visual Basic Team - Deploying Applications with the InteropForms 2.0 toolkit

"...

To save you some time, here's what we recommend in general with building mixed apps.

a) Use the Interop Forms Toolkit to build Interop Usercontrols instead of Interop Forms.
b) Remove the reference to Microsoft.InteropForms.dll library unless you plan on taking advantage of some of it's functionality such as the Globals class (for sharing state) or the EventMessenger class (for raising application-level events).
c) Configure your usercontrol manifest appropriately and create an application manifest for your VB6 app so you can take advantage of Reg-free COM
d) Modify your legacy setup to copy over your new usercontrol binary and the application manifest into your application folder.

If you can do this, you can easily augment an existing application in a painless way. ...

..."

Some great tips on deploying your VB6 app if you've decided to take the Interop Forms plunge.

I've been watching the Interop Forms Toolkit space since it came out and am starting to come around. I've not yet used it, but I can't seem to kill some of my VB6 apps (funny that... how hard it is to kill/overhaul an app suite that's helping bring in some good revenue... ;) and I've come to really like .Net 2. It feels like I'm stepping back into the 90's every time I code in VB6... Wait I AM stepping back into the 90's every time fire up my VB6 brain cells! :/

Anyway... I'm starting to get over my initial hesitation about this Toolkit (I'm thinking about it like I'm adding bionic's to my VB6 apps.... making it better, stronger, yada ) and may very well use it in production... maybe...

When/if I do, the above post will come in handy...

Related Past Post XRef:
Microsoft Interop Forms Toolkit Rev'ed to 2.0

Monday, June 04, 2007

MS SDK for Open XML (June CTP)

Microsoft Downloads - 2007 Office System: Microsoft SDK for Open XML Formats

"The 2007 Microsoft® Office system introduces a new file format that is based on XML called Open XML Formats. Microsoft Office Word 2007, Microsoft Office Excel® 2007, and Microsoft Office PowerPoint® 2007 all use these formats as the default file format. Open XML formats are useful for developers because they are an open standard and are based on well-known technologies: ZIP and XML. Microsoft provides a library for accessing these files as part of the WinFX technologies in the System.IO.Packaging namespace. This SDK is built on top of the System.IO.Packaging API and provides strongly typed part classes to manipulate Open XML documents [GD: Emphasis added]." [Description leached in full]

That sounds pretty cool. That should/could make automated Office doc creation much easier...

I'll likely wait for it to RTM (or until I really need to OpenXML, like when I extend my Blogger Backup utility to output WordML? ;) but I WILL be watching...

(via US ISV Developer Evangelism Team - MicrosoftSDK for Open XML Formats)

Google's Other Purchase Last Week - GreenBorder (Application Virtualization)

virtualization.info  - Google acquires application virtualization vendor

"On end of May Google silently acquired application virtualization startup GreenBorder.

GreenBorder uses application virtualization for security containment of desktop software like browsers, email clients, rich-media players, archivers, etc.

..."

I REALLY dig application virtualization and believe it could help solve a number of problems. I would love to see it baked into the next version of Windows... 

Interesting seeing Google get into this space.

Scott Hanselman's 32 Blogging Tips

Scott Hanselman's ComputerZen.com - Blog Interesting - 32 Ways to Keep Your Blog from Sucking

"I blog for me, mostly so I can Google myself later.  But, I also enjoy the back and forth, the connections, with you, Dear Reader. I like being able to kick ideas around with a collective of peers and smart folks. I also would like this blog to not suck.

Recently Richard Campbell and I were chatting about what makes a blog, technical or otherwise, suck less. Here's what I came up with, with Richard helping as scribe.

..."

Scott provides 32 great blogging tips. If you're a blogger, his post is WELL worth a read...

Sunday, June 03, 2007

WLW Picture Post Plugin 1.0.0.7 Released (Windows Live Writer Beta 2 Release)

I've updated and released v1.0.0.7 of my Windows Live Writer Picture Post Plugin

The primary update in this version was to get it working in Windows Liver Writer Beta 2 (WLW B2).

Release Notes

PLEASE NOTE: This version only works with Windows Live Writer Beta 2

  • Better implementation of the WLW B2 fix (this time using the AssemblyResolve event. See below for the dirty details)
  • Added Preview Feature
    • Now you can preview how the picture/thumbnail will look prior to inserting it (to make sure the selected thumbnail size is what you had in mind, etc).
  • Changed initial plugin behavior - canceling the initial file selection dialog also cancels the Upload Picture Dialog
    • So now you don't have to click Cancel twice...
  • Added Plugin version number to the dialog Title (This was fun too... again, see below for more details)
  • Added Visit FlickrNet linklabel 
    • To give additional credit to the library that without which coding this plugin would have been much harder...
  • Fixed layout/dialog resize with the Insert As label and combobox

 

This plugin still needs some polishing, but it works and does for me what I need it to do (which is quickly upload pictures to Flickr/23hq and insert them into the WLW post)...

Once Zooomr Mark 3 is stable, I'll again see about adding Zooomr support (I need to find a way to get a Developer Key)

Here are some screenshots from this new version.

   

 

WLW B2 Dependant Assembly Resolution Notes

Background:

I was having an dependant assembly load issue. With WLWL B2, my plugin wasn't able to find the FlickrNet assembly and was gacking. And probably rightly so...

When I started using FlickrNet I was worried about file collisions with other WLW plugin's with used it (like Flickr4Writer, etc). I didn't want to worry that I might overwrite a newer version or have another plugin's install overwrite mine (or worry about version comparability, etc). I wanted to be sure that the FlickrNet version I was using was always what I intended. And while FlickrNet is strong named, I didn't want to GAC it (for xcopy deployment simplicity).

So what did I do? A slimy hack... I renamed the FlickrNet.dll to WLWPicturePost.FlickrNet.dll. And it seemed to work okay, until now...

In hindsight, I now feel that was officially "bad" (Ya think? To rename a strongly named DLL. I should have used another approach).

And now with WLW B2, this hack came back to bite me.

Resolution:

To resolve this, I'm now creating a private bin "WLWPicturePost" subfolder in the Windows Live Writer\Plugins folder and putting my correctly named FlickrNet.DLL in there. And doing another hack... sigh.

To enable my plugin to find FlickrNet in it's new subfolder, I had add the following code snip;

AppDomain.CurrentDomain.AppendPrivatePath( _ AppDomain.CurrentDomain.SetupInformation.PrivateBinPath & "\WLWPicturePost")

The issue is that AppendPrivatePath is deprecated and will likely go away in the future.

I tried changing my plugin's App.config, adding runtime dependantAssemply redirection, codebase href, updating the probe, etc, but no joy (because it's an assembly inside another .Net App?). Can't use PrivateBinPath because that only works when creating a new AppDomain. I tried hooking into the AssemblyResolve event, but... well... I got lazy and didn't work too hard on getting that to work.

So at least AppendPrivatePath works, but....

Anyway, I'm not TOO worried about the deprecated usage though... The .Net 2 framework base will be with us for another couple years at least (since .Net 3 & 3.5 all include 2.0 as their base), so I don't have to fix this today. But I have to say this current solution just doesn't smell all that good to me...

Probably the AssemblyResolve event will be the right way. Or probably even better, GAC'ing FlickrNet (since it's already strongly named, GAC'ing it solves my version concern, and any user installing a Plugin already has to have rights to write to the Program Files folder, so will likely have to be admin elevated anyway...?).

[...the next day...]

I woke up this morning and just didn't feel right with my AppendPrivatePath solution...

So after a quick SearchDotNet I found this Microsoft Knowledge Base article, "How to load an assembly at runtime that is located in a folder that is not the bin folder of the application", which was exactly what I needed.

A few minutes later, I had a "good" working solution to my dependant assembly issue. Yeah! I feel much better now... :)

 

Plugin Version in the Title Notes

I like putting an app's version number into it's Title text. I've found it makes my support life easier. I never have to ask a user, "what version are you using..." when they send me a screenshot (nor do I have to guess).

Usually it's as easy as putting the below line in the Form_Load event;

Me.Text = Me.Text & " (" & My.Application.Info.Version.ToString & ")"

Well guess what happened when I did this for this plugin? I got a version number all right. The WLW Version number! (12.0.1183.516). Dogh!

Well I KNOW my assembly has it's own version number, all I had to do was find a way to get at it.

After a bit of playing around (and looking at the work down in the above AssemblyResolve event handling), this is the solution I found...

Imports System.Reflection

.... Form_Load ...

Dim objExecutingAssembly As [Assembly]
objExecutingAssembly = [Assembly].GetExecutingAssembly()
Me.Text = Me.Text & " (" & objExecutingAssembly.GetName().Version.ToString & ")"

 

Related Past Post XRef:
WLW Beta 2 Notes
Picture Post Windows Liver Writer Plugin v1.0.0.4 Released (Web Proxy Release)
Windows Live Writer Picture Post Plugin v1.0.0.1 Beta Released
Another Weekend, Another WLW Plugin - WLW Picture Post Plugin

Saturday, June 02, 2007

PowerShell Quick Reference & Graphical Help File(chm)

Microsoft Downloads - Windows PowerShell Quick Reference

"Quick reference guide to commonly-used Windows PowerShell commands. For best results, open the file in Microsoft Word, print the contents to legal-sized paper (8 inches by 14 inches), and fold the resulting printout in half, making a four-page booklet."

Microsoft Downloads - Windows PowerShell Graphical Help File


"View the Windows PowerShell 1.0 help (including cmdlet help and the About topics) in a fully-searchable, graphical format (a standard Windows .chm file). Also included in the help file is the VBScript to Windows PowerShell Conversion Guide."

The VBScript to PowerShell Conversion Guide sounds like it might come in handy...

Friday, June 01, 2007

ClickOnce Publish with TeamBuild

Tim Hibbard - Publishing a ClickOnce app with TeamBuild

"After much frustration, I've finally configured our TeamBuild proj file to publish our ClickOnce app, and increase the version number (kinda an important step).  The Vertigo blog talks about using SolutionToPublish, but that doesn't work for all situations.  Specifically, when your solution contains projects that reference other projects. 

So I started playing with the MSBuild Community Tasks Project, and came up with the following Xml for my proj file:

..."

Another background "want" I've had is to ClickOnce publish via TeamBuild. I guess if you wait long enough... (and read enough blog posts... ;)

Google Has Bought FeedBurner...

Google Blog - Adding more flare

"As you know, we're constantly looking for ways to identify and offer new tools for content creators and website publishers. Likewise, we constantly aim to give AdWords advertisers broader distribution to an even wider audience of users. For these reasons, we're very pleased to tell you that we've just acquired FeedBurner.

..."

That's a pretty logical move.

Microsoft, you need to pickup NewsGator now, before Google does. You know it's coming that someone will pick them up, and if MS doesn't I'd put money on Google (though there is a good bit of product/service overlap between NewsGator and Google).

I think MS needs them much more, since they don't have a good web based Feed platform, nor a mature Feed Windows client, nor a central feed repository, etc.

Think;
"Windows Live Web Feed Reader" (web, NewsGator Online)
"Windows Live Reader" (full client, FeedDemon)
"Windows Live Feed Service" (feed repository, NewsGator Online/Sync API)
"Windows Live Feed Outlook" (feed reading in Outlook, NewsGator Inbox)
"Windows Live Caststation" (podcasting, Feedstation)
"Windows Live Feed Mobile" (NewsGator Go)...

Then there's the enterprise Feed server/hosting (NewsGator Enterprise) which would be cool in Exchange or maybe SharePoint...

Ton's Of Cool XNA (XBox360) Examples

XNA UK Users Group - Rare Examples

"When Microsoft released version 1.0 of the XNA Framework they had a couple of parties, one of them here in England. If you were there then chances are you got hold of some of Rare's XNA tests that they coded up. If you weren't there then now you can.

We have several new downloads available, from simple examples to full-on 3D platformers with in-game editors. There's loads of good code to pore over. You can get them in our downloads section. Oh, one thing most of them are setup for the Xbox 360, but the code is still good for Windows." [Post Leached In Full]

Some very cool XNA/XBox 360 examples...

Below is a leached listing from the download section.

[Xbox 360 Only] 1 to 4 player game. Plays like a cross between asteroids and gravity wars.
[Xbox 360 Only] Breakout clone.
[Xbox 360 Only] Shows a real-time deformable height map terrain. You can deform the height map by firing at the ground.
[Xbox 360 Only] Basic example of getting started with XNA.
[Xbox 360 Only] 2D platformer with paralax scrolling and in-game editor.
[Xbox 360 Only] 3D puzzle/platformer with in-game editor.
[Xbox 360 Only] Expands on the deformable height map example to provide a character that can be moved around the landscape and alter it by using different types of grenades.
[Xbox 360 Only] A rhythm action game demonstrating advanced sound techniques.
[Xbox 360 Only] Example of a 3D particle system. Uses an interesting generator technique for easily generating values for the various particle system parameters.
[Xbox 360 Only] Marble Blast like game where you control a rolling, jumping marble. Navigate 3D platforms that can be moving and spinning to reach for the star.
[Xbox 360 Only] Roll a ball around avoiding red sectors and hitting green sectors.
A selection of 3D models in various file formats.
Selection of music tracks from Rare's composers.
Selection of sprite textures.
[Xbox 360 Only] Shows how to draw text using a custom font renderer.
Shows simple game state/screen management.
[Xbox 360 Only] Um, it's space invaders but this time you (up to 4 of you) are the invaders!
[Xbox 360 Only] 2-4 player top down tank game.
[Xbox 360 Only] Witchy, 2.5D bullet hell shoot 'em up.

(via Mykres Space - XNA Rare Examples for Download)

TreeViewAdv 1.6 Released (Free/OSS TreeView Component for .Net)

SourceForge - TreeViewAdv for .Net

"Extensible advanced TreeView. 100% management C# code. Features: Model/View architecture. Multicolumns. Multiselection. Different controls for each node: CheckBox, Icon, Label... Drag&Drop highlighting. Load on demand. Incremental search."

Screenshot Screenshot

I've been keeping my eyes open for a new/upgraded/uber free/OSS TreeView control for .Net for future projects.
(I use Infragistics at work and have gotten used to using an advanced TreeView, but for home, OSS, and personal projects Infragistics is not really viable...)

TreeViewAdv is one I've recently started monitoring and I noticed today that v1.6 was released.

I've not played with this component yet, but it looks pretty interesting...

Thursday, May 31, 2007

You May Want to Grab a Copy of Office XP/2003 From MSDN Subscriber Downloads

MSDN Subscriptions WebLog - 30 Days and Counting...

"Important news on Office 2003 and Office XP – Effective June 30, 2007, MSDN Subscriptions will no longer be offering any activation versions of Office 2003 and Office XP from MSDN Subscriber Downloads or on media. We are working with the Office team to provide non-activation versions to replace these editions, and wanted you to be aware now so that you may download any needed Office 2003 and Office XP bits from MSDN Subscriber Downloads before they’re removed later this month. [GD: Emphasis added]

Please note that the existing Volume License versions of these products will continue to be made available on MSDN Subscriber Downloads for MSDN subscribers who purchased their subscriptions through our various Volume Licensing programs.

..."

I'm not really sure what "non-activation version" means, but I assume its a version that doesn't need or require online activation? (I'd assume so, but you know what they say about the word, "assume" ;)

If non-activation versions are provided, that would be cool (if I understand the intent correctly), but just in case I'm downloading the Office 2003 ISO's now... (It's just drive space... I'll put them next to my VB6 ISO's  :)

WLW Beta 2 "Insert Previous Post" Thoughts...

I had missed the new Insert Previous Post (accessed via the Insert menu, Hyperlink selection, Link To button, Previous Post selection) feature until I saw it mentioned in Darren's post.

I like it, but as of this beta, I don't think it's going to put my WLW Related Post Plugin project out of business. But it could! It's so close...

What it needs is;

  • The ability to search the listed posts (with the ability to list the last 500 posts, a simple search/filter is key)
  • Preview a selected post (i.e. open it in a new browser session)
  • Default the new hyperlinks' Text field to the Title of the selected post. (All of which my plugin does ;)

The one thing I like about WLW's is that it's not limited to the posts available in a given feed (as my plugin currently is), and it is automatically setup to get posts from all the Weblogs you have setup in WLW. Making post cross references much much easier...

It's sooo close... (BTW, just so you don't think I spouting off... I'm making these suggestions "official" on the new "Windows Live Betas" connect.microsoft.com connection)

BTW, if I haven't made it clear, I REALLY like Windows Live Writer. It's by far my favorite Windows blog posting client. My comments and suggestions are only intended to try to make it a little better (for me at least ;)

(via Office Rocker! - Live Writer beta 2)

Wednesday, May 30, 2007

WLW Beta 2 Notes

Notes:

  • VERY NICE (but now I'm going to nit-pick ;)
  • Install/upgrade (on vista) was smooth.
    (I ran the Install exe as Admin)
  • Why does the WLW Install want to change my IE Home Page? I hate that
    (Easy enough to uncheck, and I understand this is a free, not even ad supported application, but still...)
  • Remember to turn "Checking spelling before posting" back on.
  • Backup your Ping Servers list before upgrading to beta 2
    (as my Ping list is now empty and I have to try to reconstruct it. Got to love betas  ;)
  • Beta 1 plugins seem to work okay Beta 2
    (so far at least, though I do have one, my WLW Picture Post plugin, that now causes WLW to report an error... Looks like I have a coding task this weekend. )
  • Still no support for picture uploading to Blogger
  • Nice to see Blogger Labels/tags/categories supported
  • The Toolbar and Menus seem a little duplicative
    (The View, Tools and Weblog menus are duplicated in the toolbar). Feels a little cluttered. And the two different toolbars seems a little weird (and the Insert menu is duplicated on the bottom menu, but in this case, I think it makes good sense).
  • The new Paste Special rocks.  :)
  • I dig the ability to save/post drafts to the blog.
  • The new Sidebar UI (with collapse/expand button) is very nice.
  • The table functionality is also very nice...

I think that's enough for now. All in all, WLW Beta 2 rocks. If you're using Windows Live Writer, upgrade to Beta 2 NOW.

Windows Live Writer Beta 2 Now Available

Writer Zone - Windows Live Writer Beta 2 Now Available

"The Writer team has been working hard on a new release and we're excited that it is now available for download!

Download

This release incorporates a ton of feedback from our discussion forums and your blogs. Here are some of the new features you'll find in Beta 2:

New Authoring Capabilities

  • Inline spell checking
  • Table editing
  • Ability to add categories
  • Page authoring for WordPress and TypePad
  • Support for excerpts and extended entries
  • Improved hyperlinking and image insertion
  • Paste Special

..."

Yeah!

Downloading now..

How sad... My Old PC Converted to a Media Center Edition PC just died...

There I was listening to music streaming from my Media Center PC when I suddenly stopped. Then a warning that the source file could not be read...

"Okay, time to reboot the MCE PC, I guess..."

Power down, wait, power up and... and... and... err... and... um... and... crap.

Won't boot, won't POST, won't do anything. Power light comes on, drives spin, fans whirl and that's it.

Crack open the case, blow out the inches of dust (err... um... heat build the root cause? Ya think?) check all the cabling, RAM seating, etc. No joy. Pull some RAM DIMMs, no joy. Let it cool off for a while. No joy.

GRRRR

And the family and I were really enjoying having a MCE PC. I had learned the joy of TV time shifting and the XBox360 streaming with very cool.

Now I'm going to have to watch TV on their schedule? Oh no, that's just not going to fly... ;)

Of course, the converted PC was VERY old (1 ghz Compaq Presario ;) so it was only a matter of time I guess.

Now comes the decision time. Rent a box from Time Warner (and finally get digital cable, HD, etc), build another cheap MCE PC, or buy an uber MCE PC?

I'm probably going to go with a Time Warner box (yeah, I know). But it's a "good" excuse to upgrade to Digital/HD and it's a much lower up front cost...

But I'm going to miss my MCE. :(

sigh...

SDC Tasks Project's New Home on CodePlex

CodePlex - SDC Tasks Library

"This is the latest version of the SDC Tasks for .NET 2.0. The SDC Tasks are a collection of MSBuild tasks designed to make your life easier. You can use these tasks in your own MSBuild projects. You can use them stand alone and, if all else fails, you can use them as sample code.

There are over 300 tasks included in this library including tasks for: creating websites, creating application pools, creating ActiveDirectory users, running FxCop, configuring virtual servers, creating zip files, configuring COM+, creating folder shares, installing into the GAC, configuring SQL Server, configuring BizTalk 2004 and BizTalk 2006 etc.

..."

Nice to see this project is alive and well...

(via Buck Hodges - SDC MSBuild tasks library is now on CodePlex (moved from GotDotNet))

 

Related Past Post XRef:
MS UK Enterprise Solutions Build Framework (SBF) Updated
More on the Solution Build Framework (SBF) (MSBuild Tasks) From MS UK
MS SDC.Tasks, a MSBUILD tasks library with over a hundred new tasks...

Paint.Net now has it's own, official blog...

Paint.NET - The new blog home for Paint.NET!

"This is the new blog home for Paint.NET! The old location was at http://blogs.msdn.com/rickbrew. If you were subscribed to that blog, then I invite you to subscribe to this one. ..."

Subscribed.

(via Rick Brewster's blog - Paint.NET blog has moved ! Also, there's a new BETA release (3.08))

Tuesday, May 29, 2007

VB6 Unicode Tutorial (aka "Ton's O VB6 & Unicode Fun")

CyberActiveX - Tutorial - Using Unicode in Visual Basic 6.0 

"...

Although Visual Basic 6.0 stores strings internally as Unicode(UTF-16) it has several limitations:

  1. * Ships with ANSI only controls (Label, Textbox, etc.).

  2. * Properties Window in IDE is ANSI only. Unicode strings are displayed as '????'

  3. * PropertyBag automatically converts Unicode strings to ANSI.

  4. * Clipboard functions are ANSI only.

  5. ? Menus are ANSI only.

The purpose of this tutorial is to resolve these issues and provide working VB code solutions. The level of difficulty of these solutions vary but in general require intimate knowledge of ActiveX Controls and Classes. Subclassing and API programming are a must to gain functionality that Vb does not directly support.

...    

A coworker sent me this site today. It looks to be an outstanding VB6/Unicode resource. Last having been updated October 4, 2006, you can tell it's actively getting care and feeding.

To help you get a feel for all the great information available, I've reproduced the index below...

Index

01 Introduction 16 Custom Control Example 31 Input Methods 46 Win98
02 Flowchart 17 Unicode Aware Controls 32 Resource Files 47 MapString
03 Character Sets 18 Convert Utf8 - Utf16 33 Satellite DLLs 48 Byte Array
04 SBCS-DBCS 19 Export UTF-8 Example 34 XP Themes 49 IStream
05 Test Strings(Unicode) 20 Export To File 35 Menus 50 Calendars
06 Platforms 21 ClipBoard 36 Database 51 Sorting
07 LocaleLCID 22 Unicode Blocks 37 Grid Controls 52 References
08 Codepage 23 DrawText Align Flags 38 Misc Source Code 53 Links
09 Fonts 24 RTL(RightToLeft, Mirroring) 39 IsUnicode 54 Troubleshooting
10 Uniscribe 25 Hints 40 IdeographicDescChar 55 Final
11 Mlang 26 Why use a Type Library? 41 SurrogatePairs    
12 RichEdit 27 Chinese GB18030 Support 42 DateTime    
13 MSLU 28 PropertyBag 43 FileIO    
14 GDI+ 29 PropertyBag-UTF8 44 VbAccelerator
ListViewTreeview
   
15 User Controls
Owner/Custom Draw
30 Property Pages 45 Registry    

Copy Checkin Policies - Free Command Line Tool to Copy TFS Checkin Policies from one Project to Another.

Tiago Pascoal - Team Foundation Server - Copying Checkin Policies between projects

"After creating a Team Project in Team Foundation Server, one of the tasks that we are supposed to do is configure the checkin policies. Whilst this is not a difficult task, it easily becomes a very boring task and time consuming task (specially if you configure the code analysis rules).

It is quite common that all projects share the same (or at least a common base) code analysis rules (specially if you a company/division/department/whatever wide policy regarding code conventions).

We have developed a command line tool called Copy Checkin Policies, ..."

As we (my employer) move to TFS and start using more Checkin Policies this may really come in handy...

(via Larkware News - The Daily Grind 1152)

Debugging an Application Crash 101

Ask the Performance Team - Basic Debugging of an Application Crash

"One of our common issues is troubleshooting application crashes (for example, the Print Spooler or a third-party application).  These crashes usually result in the infamous Dr. Watson error. 

First, let's discuss terminology.  A crash is when something experiences a fault and has no choice but to exit.  In the case of an user mode process that generally means a Dr. Watson popup and application exit, and in the case of the kernel, a Bugcheck.  A crash can be caused by something as simple as a value being set to zero when a function is expecting a non-zero response, or trying to access a section in memory that has either become damaged or that belongs to another process.

Determining the cause of an application crash can be very simple, or extremely complicated - depending on the failure.  You can do something as simple as viewing the Dr. Watson log, or you can do a full debug.  Debugging is very much an art, and a complicated one at that, so we are only going to touch on the really basic concepts in this discussion.  First, let’s go the easy route.

..."

I thought this was a great "Intro to Hunting Down the Crash" post... There's some information I KNOW I will need (for example when I need to hunt down a rare, and impossible to reproduce so far, print spooler crash that gets reported to me every 6 months or so...)

MSSecurityLibrary

Mohamed Sharaf's Blog - Back to MSSecurity library again

"If you have seen my previous post about the class library that I developed to encrypt text or files using symmetric encryption (Rijndael algorithm). So you would already know that it was developed using .NET Framework 1.1. I've upgraded the library to .NET Framework 2.0 and fixed a bug I discovered in the decryption methods.

I already described the methods in this library before so allow me to copy-and-paste them from my previous post

The library called MSecurityLibrary and it consists of only two classes

Encryption: does the symmetric encryption using Rijndael algorithm and a key size of 256 bits.

Hashing: hash any string with MD5 hashing algorithms

Encryption class has 11 public methods. I'll describe the main functions here.

public void encryptFile(string sourceFile,string distinationFile,string password)
public void encryptFile(string sourceFile,string distinationFile,byte[] key)

These two methods encrypt a file using either a password or an array of bytes as a key. ...

..."

How many times have you one-off'ed a MD5 hashing function? Or encryption/decryption? Sure .Net provides the infrastructure for hashing/encryption/decryption, but there's still a good bit of work required to actually use them.

Packaged as an easy to use and consume assembly (with C# source, and test application), the MSSecurityLibrary provides that simple to use security wrapper.

Friday, May 25, 2007

FeedDemon 2.5 Released

FeedDemon Home Page - FeedDemon 2.5 Release Notes

"FeedDemon 2.5 is a free upgrade for all FeedDemon 2.x customers. Just install this version directly on top of your previous version, and your existing settings will be retained.

Top Five New Features in FeedDemon 2.5

  1. Synchronized news bins with shared RSS feeds - share a FeedDemon "news bin" (similar to a link blog) as an RSS feed so that others may subscribe to it. Simply copy a post from any feed into a shared news bin, and everyone subscribed to that news bin's feed will get a copy of it. You can also drag-and-drop FeedDemon browser tabs - or even hyperlinks from an external browser - into a news bin to share those links.
  2. Vastly improved offline support - including the ability to prefetch links and images in all unread items for offline reading.
  3. Completely rewritten "Popular Topics" - view the most popular topics in all the feeds you're subscribed to, alongside the topics that are popular with all NewsGator subscribers.
  4. Embedded video support - video objects embedded in feed items can now be securely viewed inside FeedDemon.
  5. "Who's linking here?" - with a single click, find out who in the blogosphere is linking to a specific post in your subscriptions.

..."

My favorite pay Windows client Feed reader has rev'ed to 2.5. The upgrade for me, from 2.1, was smooth and painless...

Lord of the Rings Online Buddy Key

I just received an additional Lord of the Rings Online (LOTRO) Buddy Key from Turbine. This will let the Buddy download and play LOTRO free for 10(?) days (but a credit card may still be required to create an account).

I'm now giving this key away... First come, first served. Please email me at gduncan411----hotmail (email address is also on my blog page) and the first email I get, gets the key.

I'll update this post once the key is gone (and gone now it is)...

See you on Meneldor (I play as Dunc, Duncion, Duncili, Duncgrim and Duncric... all original names aren't they...lol  :)

Update #1 5/27/2007 @ 10:15AM (PDT):

The key has been given away...

Using VB.Net to Create a PowerShell CmdLet

CodeGuru - Creating PowerShell Cmdlets in VB 2005

"...

Most custom cmdlet examples are written in C#. I suppose this is because PowerShell was written in C#, has a similar grammar, and many programmers who want to write cmdlets prefer C#. I searched the Internet extensively, but I could not find a single cmdlet written in Visual Basic. Now that I have said that, I am sure someone will send me a link to a VB cmdlet example. That said, in the remainder of this article, I will attempt to create a basic PowerShell cmdlet using Visual Basic.

..."

I know I'll want/need to write a PS CmdLet one of these days and having more examples in VB (the language I program in in my dreams ;) will make it that much easier for me.

 

Related Past Post XRef:
VS2005 PowerShell VB & C# Templates (Project, Cmdlet & PSCmdlet)
VS2005 (C#) PowerShell Cmdlet New Item Template

Steve McConnell, Author of Code Complete, is now blogging...

10x Software Development - The Existential Pleasures of Blogging

"...

Blogging seems to me to be quintessentially a short attention span task. That's not the greatest match for my interest in software development topics. But it isn't a bad match for my interest in recreational topics. And I think I can bring myself to focus on software development in bite-size chunks, at least from time to time. Consequently I've set up two blogs, one for software development and one for everything else. This blog, 10x Software Development, will focus on leading software development practices. My other blog, Waxing Philosophical, will focus on more personal topics.

Cheers,
Steve McConnell"

You've read Code Complete, right? (You mean you haven't? Well I won't tell anyone... as long as you run out and get it now... ;) Well Steve's blogging now too. Not many posts yet (4), but still WELL worth adding to my bRoll.

(via you've been haakced - Why Didn't Anyone Tell Me Steve McConnel Has A Blog!?)

Related Past Post XRef:
This Month's Reading List
Code Complete, 2nd ED Home Page

Thursday, May 24, 2007

PDC 2007 is a No Go?

PDC Blog - PDC Update

"We are currently in the process of rescheduling this fall’s Professional Developer Conference. As the PDC is the definitive developer event focused on the future of the Microsoft platform, we try to align it to be in front of major platform milestones. By this fall, however, upcoming platform technologies including Windows Server 2008, SQL Server code name “Katmai,” Visual Studio code name “Orcas” and Silverlight will already be in developers’ hands and approaching launch, which is where we’ll focus our developer engagement in the near term. We will update this site when we have a new date for the PDC that is better timed with the next wave of platform technologies.

..."

I was planning on PDC 2007 being my yearly required CPE related training, but now it looks like I need a backup plan...
(Working at one of the Final Four US Accounting Firms, I have to go to XX hours of training each year. While sometimes it can be a pain, all in all it actually rocks because that means they have to give me money to go to training each year...  ;)

Time to look at some local training options.

Developmentor has been a fav in the past, but I really hate my drive to it. I think there are some in-person/classroom/instructor lead (i.e. much easier to get CPE credit) training options closer to home (or in Downtown LA, where I could take the train...).

Now where did I put that mailer...  

Related Past Post XRef:
PDC 2007, October 2-5, Los Angeles

Team Development with Visual Studio Team Foundation Server Guide (Beta 1) - Free PDF from Microsoft and TFS Community

CodePlex - Team Development with Visual Studio Team Foundation Server [Beta 1 Guide Release]

"Welcome to the patterns & practices Team Development with Visual Studio Team Foundation Server project site! This guide shows you how to make the most of Team Foundation Server. It starts with the end in mind, but shows you how to incrementally adopt TFS for your organization. It's a collaborative effort between patterns & practices, Team System team members, and industry experts. This guide is related to our Visual Studio Team System Guidance Project. - J.D. Meier, Jason Taylor, Alex Mackman, Prashant Bansode, Kevin Jones

...

Chapters

  • Introduction
  • Ch 01 - Introducing the Team Environment
  • Ch 02 - Team Foundation Server Architecture
  • Ch 03 - Structuring Projects and Solutions
  • Ch 04 - Structuring Projects and Solutions in Team Foundation Server
  • Ch 05 - Defining Your Branching and Merging Strategy
  • Ch 06 - Managing Source Control Dependencies in Visual Studio Team System
  • Ch 07 - Team Build Explained
  • Ch 08 - Setting Up Continuous Integration with Team Build
  • Ch 09 - Setting Up Scheduled Builds with Team Build
  • Ch 10 - Large Project Considerations
  • Ch 11 - Project Management Explained
  • Ch 12 - Work Items Explained
  • Ch 13 – MSF Agile Projects
  • Ch 14 - Process Templates Explained
  • Ch 15 - Reporting Explained
  • Ch 16 - Team Foundation Server Deployment
  • Ch 17 - Providing Internet Access to Team Foundation Server

..."

The Beta 1 Guide is a huge 360 pages of focused and detailed TFS information.

After glancing through it all I can say is "wow."

Even in its current Beta state, this project is must have resource for anyone using or thinking of using TFS.

(via Geir Morten Allum's MS application platform hvor, hva, nÃ¥r, hvorfor, osv... - TFS Guide - Beta 1 tilgjengelig) [I think it's kind of funny that I have no idea what this post title says, but when I saw "TFS Guide" I focused right in on it... lol]

Related Past Post XRef:
Visual Studio Team System (TFS) System Guidance Codeplex Project Download Index Now Available
Branching Guidance on CodePlex
New Guidance in the Visual Studio Team System Guidance Project

Wednesday, May 23, 2007

Smashing Magazine Provides Two CSS Articles as PDF's (80 total pages of CSS'ness)

Smashing Magazine - PDF: 70 Coding Ideas + 80 Design Tips

"...

Recently we’ve published 35 Designers x 5 Questions and 70 Expert Ideas For Better CSS Coding, in which we’ve tried to cover some parts of coding and design in the web-development. Afterwards we’ve received dozens of e-mails, in which you asked us to pack both articles in .pdf-files, so they can easily be printed out for quick reference. And we’ve promised to do it. In every e-mail we’ve received.

So now it’s time to keep the promise. You can download both articles as .pdf-files, print them out and use as a handy cheat sheet for usual problems you might run into in your next projects. ..."

I don't CSS NEAR enough to feel I have any competency in using it (hence why this post struck a cord with me).

The next time I need to do anything CSS related, I'll have these PDF's close at hand...

Cropper Plugins 1.1 Released

Cropper Plugins - 1.1 Release

"This release includes a new plugin, Send to S3, which upon capture sends your image to your S3 account and places the URL of the image on your clipboard for easy pasting into an email or img tag (if say, posting a blog entry).

Also, this release is the first release we've applied global versioning to the plugins so the plugins can be identified with the release" [Description Leached in Full]

Very cool... Nice work guys.

Here's a list of the current plugins;

Related Past Post XRef:
Cropper Plugins CodePlex Project
Cropper 1.9.1 Released (Includes Vista Compatibility)

Ruby Rocks? I think I'm maybe starting to get it... maybe...

Scott Hanselman's ComputerZen.com - Programmer Intent or What you're not getting about Ruby and why it's the tits

"A user named yesthatmcgurk left a comment on DotNetKicks where he/she said:

I must be a complete loser, because I can't see where Ruby is such hot shit. I'd love to read a story, "What you're not getting about Ruby and why its the tits."

Such a great comment that I had to get involved. One of the other commenters pointed to a post over on "Softies on Rails" that's really worth reading.

Note: Forgive the use of "the tits" in this context. "Slang Definition: A description of something you show great liking to, or greatly appreciate..." Usually not a work-friendly phrase, but perhaps pub-appropriate.

...

There are some fun one-liner comparisons though and some folks think that paying a:

Java:

new Date(new Date().getTime() - 20 * 60 * 1000)

Ruby:

20.minutes.ago

..."

I've been wondering about the hype around Ruby. Wondering if I had to make room in my brain for another programming language. Wondering just what Ruby brought to the table and exactly how it would make my life easier. Wondering why I should care...

Well the above one-liner sealed it for me. That IS magic JuJu.

Once .Net has production support for Ruby (i.e. when the Dynamic Language Runtime [DLR] & Ruby support ships, announced at MIX07) I'm going to give it a go.

myWatchList += Ruby

Tuesday, May 22, 2007

CodePlex to support Subversion

you've been haacked - CodePlex To Roll Out TortoiseSVN Support

"This just in. CodePlex is planning to roll out TortoiseSVN support!

A little while ago I wrote a comparison of TFS vs Subversion for Open Source projects. I’ll spare you the suspense by telling you that Subversion wins hands down, primarily because it itself is open source and is designed with open source in mind.

It turned out that there was already a work item for SVN support and it was the highest vote getter. On Friday, Jim Newkirk commented within the work item that they are adding support for TortoiseSVN. ...

...

UPDATE: It looks like the CodePlex team has created a Subversion bridge to TFS. In other words, from the outside, it looks just like Subversion so you can connect using TortoiseSVN and SVN.exe, but under the hood, it is TFS. ...."

That is very cool.

While I'm not a big Subversion/TortoiseSVN/etc user, it's how Microsoft and the CodePlex team responded to their users that's so cool. And not being afraid to embrace/support something "so OSS" like Subversion.

I feel it shows a great commitment by MS to CodePlex and the OSS community. IMHO supporting a Subversion interface is a "hard right, over easy wrong" decision. The easy wrong would have been to blatantly/arrogantly ignore the request. An old MS might have done this (I hate to say this, but this is almost the expected MS stance, isn't it? Or it was in the past at least...). The hard right was to embrace the request and just make it happen. To understand their current and intended CodePlex audience and do what I feel was the right thing.

Good job guys...

Monday, May 21, 2007

Interesting Orcas Feature of the [XYZ]: Client Application Services

Windows Forms Documentation Updates - Client Application Services in Windows Forms: End-to-End Walkthrough Available

"The Beta 1 release of Visual Studio Code Name "Orcas" includes a new feature called Client Application Services. This feature enables Windows client applications to easily access user-management services hosted by a centralized ASP.NET Web service application.

The documentation for client application services is still in progress, but we have created an end-to-end walkthrough to demonstrate the key features. This walkthrough will be used as a lab session at the upcoming TechEd 2007 conference, but if you want a sneak peek, download the attached zip file, which contains the walkthrough and sample projects in Visual Basic and C#.

..."

Now that's interesting...

My first thought was that Client Application Services would increase the complexity of an application and its deployment for what value?

Then I started thinking (ouch, ouCH, OUCH ;)...  

This WOULD be cool in that you could use this to provide centralized business login services, one authentication backend for all in-house WinForm apps. And I wonder if caching will be available (think shared caching for ### WinForm apps)?  And... and... and...

Hum... Added to my mental keyword/watch list. 

(via WindowsClient.Net Feed)

Sunday, May 20, 2007

Blogger Backup 1.0.1.6 Released (and status change from Alpha to Beta)

I've just released and checked in the code for v 1.0.1.6 of my Blogger Backup Utility.

This version was tested on my blog, backing up 2,340 posts and 294 post comments (each of the 294 files will contain all the comments for a given post. So that's not 294 comments, but that 294 posts had comments and those were backed up/saved to disk...)

I'm also upgrading its status from Alpha to Beta.

By Beta, I mean it works, I use it, others have used it, but there's still stuff to be done to it yet (like supporting other save formats). I considered calling this version RTM, but wanted a "it's still a beta" safety net, just in case... ;)

Highlights:

You can now backup "Only new posts since" date/time. Meaning you can now back up the new posts since your last backup, or posts posted between and a given date/time in the past

The date/time of the newest post backed up is now stored. Making the "Only new posts since" feature that much more useful.

Nuked Blogger 2.0 (Old Blogger) references/etc.

Release Notes:

  • Removed "Blogger 2.0 (Old Blogger)" as an option
    • Added "Only new posts since" feature
  • Using this to get the posts posted between now and the given date
  • Changed form/control layout
  • Added an initial "All Posts since last backup" type of feature
    • Now the newest/latest Post's date is saved when backing up.
    • The next time that blog is selected; the "Only new posts since" fields will be populated with that date/time.
  • Fixed a bug in the "Safe Name" function, where it wouldn't work after creating a "0001" named file.
    • So after saving a same-named post for the third time, the application would appear to freeze up.
    • Stupid location of a Dim was the cause (Note to Self, Dim/initialize an incrementing variable OUTSIDE the loop ... sigh...)
  • Added more reliable Comment saving.
    • Added retries and cleaned up the code a little to try to make comment saving more reliable.

Related Past Post XRef:
Blogger Backup 1.0.0.5 Alpha Released
Blogger Backup v1.0.0.2 Alpha Release
Blogger Backup v1.0.0.1 Alpha Release
Blogger Backup Utility v1.0.0.0 Alpha Released
Blogger Backup using the C# GData Client Library...

Easier WinForm UI Multithreading Support

ISerializable - Roy Osherove's Blog - Easier Winform UI Thread Safe Methods with DynamicProxy2 and Osherove.SimpleInterception

"Wouldn't it be cool if you could write something like this in your winform apps? :

[RunInUIThread]
protected virtual void DoSomeUIStuff()
{
this.Text = "hey"
}

Download the binary files from here. (here are the source files)

Inspired by Ayende's talk at devTeach where he showed using Castle Windsor, I decided to take a closer look at how to implement a UI-Thread-Safe solution for winforms, based on his talk.

..."

That WOULD be cool, very cool. Much easier than the InvokeRequired/Delegate game...

I want to take a good close look at this (and the Castle Windsor license [Apache 2.0]).

Also when I've had more coffee, I want to take a look at the Castle Windsor project (by first reading and groking Introducing Castle - Part I and Introducing Castle - Part II)

(via Christopher Steen - Link Listing - May 19, 2007)

Saturday, May 19, 2007

How does it work, MSMQ Edition.

Motley Queüe - MSMQ's Major Moving Parts, part one

"In MSMQ, there are two important kinds of entities. As you might expect, they are messages and queues.

To MSMQ, a message is a bundle of properties. The thing you normally think of as being the message, the actual content, is one of those properties, known as the body. A survey of message properties would be an entire post by itself, so I'm going to leave that for later. Every message in the system is required to be associated with ("in") a queue.

..."

I've been asked by non-tech's/developers in the past, "Just what IS MSMQ?"

Which of course I respond with, "Um... It's a Queue Manager... thing... that hosts messages... which get routed... to... queues... thing..." 

(Actually I respond with a deck of cards metaphor. That a MSMQ queue is like a stack of playing cards, with each card having its own value and applications always pulling one card from the top of the deck, yada, yada, yada...)

The above post does a great job IMHO of using non-uber technical terms to describe MSMQ's moving parts.

LA Bloggers Live!

leahpeah - 1 of 2 New Projects

"I decided to start two new projects. Why? Because I’m me. This one is called LA Bloggers Live! and if you live in the Los Angeles area, you can come and listen to your favorite bloggers reading their own words. I know, right? Awesome. And if you are a blogger in the Los Angeles area or visiting the LA area, you are invited to come and read, also!

Sign up at the website.

..." [Post leached almost in full]

My wife says I need to try to be a little more social and get out of the house more. I don't know why... Is it bad that sometimes I don't leave the house for 10-14+ days in a stretch? I'm like our cat's... an inside human...  ;)

Well... um... yeah... right...

Anyway, when I saw Leah's post about her new project, LA Bloggers Live!, I thought I might be able to kill a couple birds with one stone. Blogging, socializing AND leaving the house! What a deal... LOL

The only problem is that I don't know if I'll have the "want to" when the day comes around. Still every journey begins with a first step...

New SlickEdit Developer Blog

Jason of SlickEdit emailed me the other day letting me know about their new blog, "Hello World" The SlickEdit Developer Blog.

What I liked, hence why I'm blogging about it, is that this isn't a bland marketing or company/product specific blog. It feels like the posts are a view into people working at SlickEdit (i.e. like many of the Microsoft blog's). As you expect there are some SlickEdit related posts, but there seem to be as many posts that are not.

Here are some recent post titles:

  • VSIP: Detecting code window switches in VS 2005
  • do { … } while (false);
  • This is me… [I think I still have my TI 99/4a. ;]
  • How to Write an Effective Design Document
  • What is a Power Programmer?
  • Is Your Editor Working Hard Enough?
  • Key Binding, Command, Menu: The Golden Triangle

Again, why am I posting about this? I guess I thought it was cool to see into the world of an ISV like SlickEdit... Subscribed.

"Fun" Uninstalling Guidance Automation Extensions (GAX) (on Vista)

In order to play with the updated Smart Client Software Factory I blogged yesterday I had to upgrade my installed Guidance Automation Extensions (which I previously installed when playing with Project Glidepath last month).

That's when my fun started.

I spent a good bit of time trying to get the Guidance Automation Extensions to uninstall. So to try to help others, I've tried to capture some steps, related information and links.

Uninstall Summary:

Special Note: Keep the old versions of the install Guidance Extension MSI's around. You may need these to uninstall them in the future...

  • Uninstall all Guidance Packages (like Project Glidepath, Smart Client Software Factory, etc) [Control Panel - Add/Remove Programs worked for me here)
  • Uninstall Guidance Automation Toolkit [I didn't have this installed, so I was good]
  • Uninstall Guidance Automation Extensions (GAX) [This is where my problems started]

If can't uninstall GAX, due to a "2769" error or like in my case a blank/empty dialog with no text just an ok button;

  • Double check to make sure you have all the Guidance packages uninstalled.
  • Try launching an elevated CMD prompt, and then using the original MSI run, "msiexec /x GuidanceAutomationExtensions.msi"
  • If that still doesn't work, in the same elevated CMD prompt, repair the GAX install. "msiexec /fa GuidanceAutomationExtensions.msi"
  • NOW try to uninstall it via the elevated CMD prompt, "msiexec /x GuidanceAutomationExtensions.msi"

For me the repair step was the magic step. Once that was done I had no problems uninstalling GAX.

 

Venting Note: I know that GAX/GAT are in a CTP status, and I know MS is working on this, but having to go through this much work to play with Guidance Packages is a major roadblock for me. Before I can push/roll Guidance packages at work, I'm going to need to see some easier way of rolling out new versions of GAX and Guidance packages... I can't imagine what a pain it would have been to upgrade GAX if I had had a number of Guidance packages installed (like Web Service, SCSF, etc, etc).

I really like the idea and concept, but I think I'm going to go slow on Guidance stuff for a while and let it bake a bit (i.e. wait for RTM, etc).

But that doesn't mean I'm not going to play with it at home though... ;)

 

Additional Information and Links

[Uninstall Log File Snip - For Search Engine Indexing]

...

MSI (s) (5C!B0) [08:02:44:662]:
Error 1001.
DEBUG: Error 2769: Custom Action _36E5DCE7_976B_42A9_8FBB_BE543209DC4A.uninstall did not close 1 MSIHANDLEs.
The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2769. The arguments are: _36E5DCE7_976B_42A9_8FBB_BE543209DC4A.uninstall, 1,
Action ended 8:02:44: InstallFinalize. Return value 3.
Action ended 8:02:46: INSTALL. Return value 3.
Property(S): UpgradeCode = {28FA2806-320E-4482-995E-71AD04E0A2A1}
Property(S): _36E5DCE7_976B_42A9_8FBB_BE543209DC4A.uninstall = /installtype=notransaction /action=uninstall /LogFile= /Host="VisualStudio" /Installer="Microsoft.Practices.RecipeFramework.VisualStudio.RecipeFrameworkInstaller, Microsoft.Practices.RecipeFramework.VisualStudio" "C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PublicAssemblies\Microsoft.Practices.RecipeFramework.dll" "C:\Users\Greg\AppData\Local\Temp\CFGADE4.tmp"
...

[/Snip]

Tom Hollander's blog - Guidance Automation Extensions and Guidance Automation Toolkit: February 2007 Community Technology Preview

"...

Installing and Uninstalling the Guidance Automation Extensions

You cannot install the Guidance Automation Extensions if you already have an earlier version installed. Before uninstalling the Guidance Automation Extensions, you must first uninstall all guidance packages, including the Guidance Automation Toolkit. If the guidance packages were installed from a Microsoft Windows Installer (MSI), you can use the Add or Remove Programs tool to uninstall them. If the guidance packages were registered using the Register Guidance Package recipe in the Guidance Automation Toolkit, you should open each guidance package in Visual Studio and run the Unregister Guidance Package recipe.

If for any reason you are unable to uninstall any guidance package cleanly, you can manually remove it from the list of installed guidance packages. This list is stored in a file that is typically located in C:\Documents and Settings\All Users\Application Data\Microsoft\Recipe Framework\RecipeFramework.xml. If you open this file in a text editor, you will see a <GuidancePackage> element for each guidance package still registered. If you delete all of the <GuidancePackage> elements manually from the XML file, the Guidance Automation Extensions can be uninstalled. However, it will not remove the registry keys of those packages, so you should take this approach only as a last resort.

After all guidance packages are uninstalled, you can uninstall the Guidance Automation Extensions. You can then install a later release of the Guidance Automation Extensions and reinstall any desired guidance packages, including the Guidance Automation Toolkit.

..."

Microsoft Forums - Feb 07 CTP GAT Install Fails: Can't find Microsoft.Practices.RecipeFramework.VisualStudio.RecipeFrameworkInstaller

"...Try to repair the installation before try to uninstall...."

Update #1 5/23/2007 @ 8:20AM (PDT):

Some additional help on uninstall GAX/GAT, Re: Guidance Automation Extensions and Toolkit: June 2006 Release 

(via Chad Brooks Web Log - Problems removing GAT/GAX)

Friday, May 18, 2007

Smart Client Software Factory - May 2007 now available for download

Microsoft Downloads - Smart Client Software Factory - May 2007

"The Smart Client Software Factory provides an integrated set of guidance that assists architects and developers in creating composite smart client applications. The software factory includes: QuickStarts, reference implementations, how to's, patterns, and Visual Studio .NET extensions."

I think this time I'm going to really check this out... really...

Adding Custom Dialogs to a Visual Studio Setup Project

Code Project - Custom Dialogs to Visual Studio Setup Projects

"The Visual Studio setup projects that come installed as part of Visual Studio are handy for knocking out quick-and-easy installers, but they are a bit limited in scope. Two main drawbacks are:

  • You have only a limited number of dialogs to choose from, which can easily run out on a relatively simple install. Say, for example, that you have a need for a further set of textboxes for a piece of information that contextually belongs on its own and does not look correct if tagged onto one of the other dialogs.
  • The information you can enter is limited. Have you ever needed a dialog with 5 radio buttons? What about a pick-list of options?

...

Okay, some installer zealots would say that the use of scripts and .NET Installer-classes is bad ju-ju and should be avoided. Instead we should all use proper custom actions, i.e. native DLLs. However, we live in the real world, folks, and we do what we can in the limited time given to us. The problem in going with point 4 is that it is usually at the end of the project when we discover we need that extra customisation. By then, it is too late to buy new tools and get to grips with them before the product is shipped.
That leaves us with a problem: how do we create that extra dialog?

..."

In a perfect world I'd be using WiX, or like, to create my setups, but then again in a perfect world I would be a lotto winner and only develop the stuff I want to develop... ;)  VS Setup Projects may not be uber, but they get the job done for me in many cases.

I see the above Project helping me when I need "just a little more" setup juju...

Thursday, May 17, 2007

"Using the Adapter Pattern" (in .Net)

ASP Alliance - Using the Adapter Pattern

"Using the adapter pattern makes interfacing with a variety of differing applications much easier. This pattern is especially useful when an application must connect to multiple external applications that differ in their requirements. This article will show you how.

With a myriad of API's available in business systems, programs (like Microsoft Word), web services, etc., there are many different interfaces a developer has to understand to tie them all together into one business solution that he or she may be developing.  For instance, maybe an application needs to connect to credit card service gateways to verify a customer's credit limit or to run a debit against the account.  An application could connect to a health insurance provider to bill them for services provided.  An application could display maps from varying map providers.

One thing that is certain with tying in various business systems is that the API's a developer uses will be different. There is not any standard interface across the industry for implementing a certain type of system, but there is good reason for you to want to do so. Uniformity in application development makes maintenance and documentation easier and makes the application design better.

However, with these varying systems, how can one tie together all of these interfaces into one common one?  This is where the adapter pattern comes into play, as we will see next.

..."

I've been thinking of adding an adapter like interface to a couple app's so I keyed in on this. I want to give this article another closer read...

Ouch - "Unspecified error" for the world to see...

Ardent Dev - Giant Yellow Screen of Death

ouch

Enough said.

Xceed DataGrid for WPF 1.1 Released

Xceed - Xceed DataGrid for WPF updated (v1.1)

"Xceed DataGrid for WPF v1.1 features enhanced sorting, grouping, and scrolling performance, as well as the ability to control whether end-users can sort, group or re-order columns, configurable item scrolling, customizable “today” label in the Calendar, the ability to create alternating styles for data rows, snappy real-time scrolling, and a custom CollectionView that provides fine-grained and efficient control over the grid’s underlying data source. ..."

Xceed Releases DataGrid WPF v1.1 (Press Release)

"MONTREAL, QC - May 15, 2007 — Xceed today released version 1.1 of Xceed DataGrid for WPF. In addition to significant performance improvements, new standard capabilities, and bugfixes, all for free, this version marks the introduction of advanced features available exclusively to Vanguard subscribers.

...

All registered users can take advantage of these new free features and performance enhancements, in addition to the bugfixes. Current users of version 1.0 can update their license key by visiting the Xceed DataGrid for WPF registration page.

..."

The first free (registration-ware) full featured WPF datagrid has rev'ed to 1.1... This time with an upsell to a paid subscription to get additional features.

Related Past Post XRef:
Free Xceed DataGrid for WPF Now Available for Download
Free WPF DataGrid from XCEED (Coming Soon)

Digital Effects for MSN Messenger

Microsoft Research - Digital Effects for MSN Messenger

"Digital Effects, a plug-in for MSN Messenger video chatting, produces special effects for video communication. While the plug-in loads, users can select 3-D costumes or other digital effects in a pop-up window, and those effects will be applied to a selected photograph. Users also can blur the background of photos to help protect privacy." [Description Leached in Full]

That sounds like it might be fun to play with...

End of the End For Third Party Components and CLR1.x - No More CLR1.x versions for Infragistics NetAdvantage

FAQ:Final release of CLR 1.x version of NetAdvantage for .NET

"In the 2007 Volume 1 release, Infragistics has released new features for the NetAdvantage for .NET product for both the CLR 1.x and CLR 2.0 versions. The 2007 Volume 1 release is the final release that our NetAdvantage for .NET product will be compiled against .NET Frameworks 1.0 and 1.1. Developer Support will continue to be available for the CLR 1.x version of the product, and product maintenance is available for the published lifecycle of release date + expected date of 3 future releases (roughly one year from release date). ..."

I've been seeing this from smaller component companies, the focusing on CLR2+, but seeing a major playing like Infragistics drop further development for CLR1.x, IMHO is a milestone. If they are not doing CLR1.x anymore, then what's the likelihood that others will?

Oh I know it's time and I understand the move. Frankly I'm happy and impressed that they kept rolling CLR1.x stuff as long as they have.

With no official Vista support for VS2003-, and the drying up of third part component support, CLR1.x app development days are numbered (LOL.. "Gee Greg, do dugh?"  I have a gift for the obvious don't I?  ;)

Snoop - Spy++ for WPF (kind of, sort of)

Snoop (a WPF utility)

"A random utility made to simplify visual debugging of WPF applications at runtime. It's basically a collection of things that may have seemed useful at one time or another with the common goal of making it easier to track down bugs in WPF applications.

This is not an official tool, just a utility that was found useful and added to when functionality was needed. It's provided in the hopes of helping others.

...

 ..."

This might come in handy...

(via .Net AdventuresA Spy++ like utility for WPF applications)

Monday, May 14, 2007

Now That's a Cool Bar Chart - Using POV-Ray to Render Your Charts?

Saveen Reddy's blog - Bar Chart Explorations with POV-Ray

"A few samples of how one could apply the ray-traced rendering goodness of the Persistence of Vision Raytracer (POV-Ray) to the task of displaying data. My goal was to create a "rich" feel to the charts using light and shadow, rather than explore alternatives to bar charts.

...

"

Now that's a feature for the next version of Excel... ;)

There's something about using raytracing to render business charts that really tickles my fancy. Yeah I know it's like uber-overkill, but still if you're looking to add some "punch" to your PowerPoint slides...