Saturday, February 11, 2006

"Autosize the last column in a ListView control using WndProc"

Autosize the last column in a ListView control using WndProc - The Code Project - C# Controls

"It has always been a pet-peeve of mine, that I prefer grid or list controls to auto size their columns to fit the control canvas. Some of you may remember the early OCX and ActiveX controls that implemented auto-size last column properties to resolve this problem. Essentially, the last column in the grid or list view is automatically expanded to take up any available space. As the form is resized, or column widths are resized by the user at runtime, the last column size is automatically increased or decreased to keep the column aligned with the control right edge.

In fact, the ListView class does provide a ColumnHeader.Width property. The MSDN documentation describes two special values related to auto-sizing the column, as follows: "To adjust the width of the longest item in the column, set the Width property to -1. To auto size to the width of the column heading, set the Width property to -2".

A special feature of setting the Width to -2, is that it ALSO automatically expands the last column to the right-edge of the control. This would seem to solve the problem, except that it does it a one-time auto-size that is not preserved if the user resizes any of the column widths at runtime, or the ListView control is set to resize with the form.

…"

This is a better way of implementing this (last column in a listview expanded to fill control) than I’ve used, so I’m noting it here.

And again I’ve learned something new. The special ColumnHeader.Width = -1 or -2 settings are cool… (So much easier than calc’ing the width based on control size, size of other columns, etc… yeah, I did it the hard way before… sigh)

Friday, February 10, 2006

Internet Explorer Developer Toolbar Beta 2 Now Available for Download

Download details: Internet Explorer Developer Toolbar Beta

"This Beta 2 version of the toolbar contains functionality and stability enhancements over previous versions and includes the following improvements.

-- You can now selectively enable and disable CSS parsing.
-- The Misc menu contains a color picker.
-- Several link reports are available.
-- When you select an element in the DOM element tree list, the selected element scrolls into view if it is not already visible in the browser window "

IE Dev Toolbar Beta 2 is now available for download.

Installing it now…

(via Dave Massy's WebLog – Developer Toolbar Beta 2)

Past Post XRef:
IEDevToolbar

"IRAQ RAMADI STRONGHOLD. (IRAQ) 2006-02-10"

IRAQ RAMADI STRONGHOLD. (IRAQ) 2006-02-10

"
IRAQ — Lance Cpl. Cory Mince, left, of Simi Valley, California and Pfc. Ruben Almaraz, of Surprise, Arizona, scan rooftops for insurgents from their position in the open back of a humvee in Ramadi, 115 kilometers (70 miles) west of Baghdad, Iraq, "

Go Simi! (He’s not Army, but he’s still okay… ;)

But I have to ask… Doesn’t this almost look like a screenshot from BattleField 2?

Stay safe guys…

"CAB Hands On Labs (Visual Basic 2005)"

Download details: CAB Hands On Labs (Visual Basic 2005)

"Visual Basic 2005 version

Training content for the Composite UI Application Block (Visual Basic 2005) "

Cool Hands on Lab for CAB – VB. (Here’s the C# version)

Related Past Post XRef:
Composite UI Application Block RTM for C# and Visual Basic .NET Now on MSDN
Composite UI Application Block Webcast
Composite UI Application Block (C# Version) Released
Composite UI Application Block (CAB) Tech Preview 1
A little More Info on Guidance Automation Toolkit (GAT) and the Composite UI Application Block (CAB)

"Blender 3D: Noob to Pro"

Blender 3D: Noob to Pro - Wikibooks, collection of open-content textbooks

"This book is a series of tutorials arranged in a sequence to help the newbie user become a Blender expert. The tutorials attempt to increase in difficulty along the learning path that a user will likely take, so that intermediate users can jump in at whatever tutorial is most suitable for their knowledge and can continue along the sequence. Although there are many different learning paths a user could take, we've made a concerted effort to accomodate everyone.

The tutorials should be followed in sequence. Blender beginners should not skip ahead in tutorials and expect to be able to accomplish anything because the tutorials build on what was taught in the previous tutorials. Best of luck to all! …"

Because I’ve been interested in PC 3D since playing with it on my Amiga… (But always sucked at it).

I’d like to work through these tutorials “one day real soon now.”

RSS Template Updates

Microsoft Team RSS Blog : Windows RSS Publisher's Guide (work-in-progress)

"… In order to tell IE (and other browsers, for that matter), that your page has an associated web feed, you need to add a link element inside the header of your web page. This helps users discover that there is a feed to subscribe to.
Here is an example of RSS autodiscovery:

<html>
  <head>
    <link rel="alternate" type="application/rss+xml" title="your feed title here" href="http://www.company.com/feedurl.rss
">
  </head>
<body>

... "

It’s Blogger Template Update Time! Yeah!
(Well not really, but a full rework of my template is coming one day… I do not like my current template, but since everyone is reading my posts via my feed, the template is not that big of a deal? You are reading this via a feed reader… right? Don’t make me get my Scoble RSS Stick out…  ;)

I’ve updated my template to include feed IE7 auto-discovery and to make it a little clearer what to click on to subscribe from the main page (i.e. updated to use the new standard feed image).

I’ve also removed the other feed subscription links and am now only making my Feedburner feed visible. Why? Because Feedburner provides me a great deal of useful information about my feed consumers (and more importantly it lets me add “flair” to my feed items… I want to make sure I have my 15 pieces of flair…).

Wink - Freeware Tutorial Creation Application

Wink - [Homepage]

"Wink is a Tutorial and Presentation creation software, primarily aimed at creating tutorials on how to use software (like a tutor for MS-Word/Excel etc). Using Wink you can capture screenshots, add explanations boxes, buttons, titles etc and generate a highly effective tutorial for your users

This is a good example of how you can create tutorials in Wink, by capturing screenshots, mouse movements and specifying your own explanations with them. And all this in a standard Windows-based UI with drag-and-drop editing makes it very easy to create high quality tutorials/documentation.

  • Freeware: Distributed as freeware for business or personal use. However if you want to redistribute Wink, you need to get permission from the author.
  • Cross-Platform: Available for all flavours of Windows and various versions of Linux (x86 only).
  • Input formats: Capture screenshots from your PC, or use images in BMP/JPG/PNG/TIFF/GIF formats.
  • Output formats: Macromedia Flash, Standalone EXE, PDF, PostScript, HTML or any of the above image formats. Use Flash/html for the web, EXE for distributing to PC users and PDF for printable manuals.
  • Multilingual support: Works in English, French, German, Italian, Danish, Spanish, Serbian, Japanese, Brazilian Portuguese and Simplified/Traditional Chinese.
  • Smart Capture Tools: Capture screenshots automatically as you use your PC, based on mouse and keyboard input (great time saver and generates professional captures).
  • Performance/Quality: Creates highly compressed Flash presentations (few kbs to few hundreds of kbs, much smaller than competing commercial products) ideal for using on the web."
  • Interesting. Sounds easier and quicker than creating a screencast

    (via .Net Adventures – Wink - freeware tutorial and presentation creation program)

    Thursday, February 09, 2006

    I am the SpotBot Master!

    BISSELL SpotBot

     

    Yesterday I bought my wife one of these as an early Valentines Day present (aren’t I just the romantic one?). Well guess who’s been the SpotBot Dude all day? Yep, you’re looking at him…

    My wife’s actually pretty happy about the whole thing. Not only does she get a toy/appliance/thing that she wanted but someone to operator it for her too! What a deal…

    Actually it’s pretty darn cool. It doesn’t move around or anything like a roomba (that would be really cool), but it sure is easier to use than manually scrubbing with a spot lifter/deep cleaner. Fill it, put it on the spot, tell it to clean and 4–6 minutes later (depending on the type of cleaning you tell it to do) it’s done. Then you move it to the next spot.

    It’s a very well thought-out design. The clean and dirty water reservoirs are matched in real world size (the dirty water is a littler bigger to make room for the crud you pick up and the foam, etc). So when you have to empty one, you know to fill the other. And the size is related to the two clean modes. So you get two Deep cleanings per reservoir filling or four Surface cleanings.

    So now I’m hunting down and killing all the spots from all over our carpet (I’m even looking under the coffee table, LOL). But damn it, I’m about out of cleaning formula… Time to go to the store.

    I really think I need a life…

    Wednesday, February 08, 2006

    Process Explorer 10.02

    Sysinternals Freeware - Process Explorer

    "This major Process Explorer update has an extensive list of new features and enhancements aimed at usability and malware hunting. Just some of the examples include Runas and Run As Limited User commands, process restart, column sets, enhanced process tooltips for service-hosting and Rundll32 processes, working set breakdown columns, and DLL image verification and packed-image detection."

    New major release of Process Explorer, 10.02…

    "Borland to exit IDE business, focus on ALM"

    Update: Borland to exit IDE business, focus on ALM | InfoWorld | News | 2006-02-08 | By James Niccolai, IDG News Service

    "Borland Software plans to sell off its struggling Java development tools business to focus instead on selling services and products for managing software development, the company announced Wednesday.

    Borland is seeking a buyer for its IDE (integrated development environment) business, which includes its Delphi and JBuilder products. The move will allow it to focus on growing its business in the area of application lifecycle management, or ALM, it said. …"

    And so we say goodbye to Borland, once and for all?

    Wonder if MS is considering making this purchase? I wouldn’t be too surprised. Add Delphi.net as an “official” MS language? That would so rock…

    "Less MSIérables: A tool to Extract the contents of an .msi File"

    Less MSIérables: A tool to Extract the contents of an .msi File

    "…spent a night hacking together a simple tool that lets me take these miserable .msi files and extract their contents. Since others may find it useful too, I figured I'd put it out here.

    It works from the command line, has a simple form that lets you extract files and view msi tables. Let me warn you the first time you run it, it will add an "Extract" item to the right-click menu in explorer when right-clicking on .msi files (the added registry entry is made at \\\Registry\HKEY_CLASSES_ROOT\Msi.Package\shell\Extract\command\). Thanks to the WiX project for the handy utility classes for working with msi files and awesome reference on msi internals.

    screenshot of less msiérables: a tool to extract the contents of an .msi file …"

    Very cool…

    Sometimes I just need to pull a specific file from a MSI and this looks like just the tool to help me do that. Plus I thought the name cute (err… um… cute? Na, can’t be seen saying that in public… um… Clever.. yeah, that’s what I meant… it’s a clever name!  ;) 

    (via SHELL EXTENSION CITY)

    Tuesday, February 07, 2006

    SqlClrProject Updated

    Niels SQL Server Blog : New Release of SqlClrProject

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

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

     The SQLCLRProject has been updated…

    Past Post XRef:
    SqlClrProject

    CreateVirualDirectory Snippet

    GotCodeSnippets.NET: Snippet Detail and Download

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

    Cool VS 2005/VB 8 snippet… 

    HealthMonitor

    HealthMonitor Web Site - Welcome to HealthMonitor

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

    About HealthMonitor

    “What is HealthMonitor ?

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

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

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

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

     (via TechNet Magazine)


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

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

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

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

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

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

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

    (via Kintan'swriting "WOW" emails)

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

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

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

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

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

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

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

    …"

    Another .Net MHTML project to keep an eye on…

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

    Pleo - Designer Life Form

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

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

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