Saturday, September 30, 2006

WLW Paste As 1.0 Plugin Preview

Here's a preview of my new Paste As Plugin for Windows Live Writer. It's all ready to be released, all I need is an "okay" from work (due to IP contracts, etc).

This is really a simple plugin that makes it easier to copy formatted HTML and paste it into a WLW post as plain text. Another cool benefit is that it makes it easier to paste raw HTML snips into a WLW post.

Say you have copied an raw HTML snip. Now you paste it into WLW (while in Normal mode). What do you get? A bunch of text that looks like HTML. Like this; <a href="http://photos1.blogger.com/ blogger/ 5930/ 214/ 1600/ WLWPasteAs.1.0.a.png"><img style="cursor: hand" alt="" Src="http://photos1.blogger.com/blogger/ 5930/ 214/ 320/ WLWPasteAs.1.0.a.png" border="0">

When what you really wanted was this;  

The Paste As Plugin makes pasting raw HTML easier and simpler. Copy the HTML to the clipboard, click on "Insert Paste As", click Ok. That's it, two clicks and the HTML is inserted into your post as formatted HTML (i.e. you get the image/bitmap/picture and not the HTML tags...)

 

Here are some preview screenshots;

 

If there's text data in the clipboard the plugin will be prepopulated...

There are currently three Paste As options. Normal, Block Quote and Preformatted. Why? I thought having those options might be cool and useful.. :)
  

You can easily see a preview of the Paste As...

 

And here's an example post with all three Paste As options used
 

Here's a pasting raw HTML example. Let's say you're a Blogger user and want to upload/post screenshots. You use the Blogger Create post and upload your pictures. Now you copy the URL's to the clipboard

Then you click on "Insert Paste As". As you can see, it's already populated with the HTML.

And lastly you click on the Ok button. Now the images you just posted on Blogger are in your new WLW post.

   

Idea's for the Future:

  • Add a "one click paste as" option.
    • This is an option that skips the dialog and just pastes in the contents of the clipboard as plain text. This plugin is already simple, basically just two clicks, but with this option it cuts that in half...

In any case, I'll post an update when I get the clearance to release this as OSS. Now I just need to decide where to post it... A new CodePlex project? The WLWPlugins CodePlex Project? GotDotNet? So many choices...

Related Past Post XRef:
WLW Paste As Plugin

WLW Paste As Plugin

I'm such a dork sometimes (lol sometimes?). Earlier this week Microsoft released an updated beta of Windows Live Writer... In my post about it I said it would be nice if there was a "Paste As" (paste as plain text, etc) feature.

Well I just had a "light over my head" moment. Why don't I just shut up break out Visual Studio and quickly bang out my own "Paste As" plugin?

Clear as day (in hindsight). Working on it now...

I'm not spending a ton of time on it as a future version of WLW will/may have "Paste As" functionality built in. But until then a simple plugin will be just the ticket...

I should have something releasable tomorrow'ish.

WLW Text Template v1.2 Released

I've just released v1.2 of my Text Template Plugin in the CodePlex project.

For more details, please see the CodePlex project home page, but so as to not leave you hanging, here are some screenshots...

The major change from 1.2 beta to production was the addition of the About dialog and the change to real time filtering.

I just didn't like how the filtering was working as I used the plugin. It didn't feel right and not as user friendly as I'd expect a feature like this to be. So instead of forcing the user to click the "Apply" button, I changed it to real time. As you type in a title or select a category, the grid is automatically filtered.

Real time filtering changes the usage landscape a great deal, making the filter feature into a primary selection feature mechanism.  I now find myself entering a letter to very quickly narrow my list almost every time I use the plugin. Where as before it was easier just to scroll down...

Since everything is in memory the performance is pretty good. With 10-100'ish items real time rocks. With 1000 it's "okay" and workable, if not perfect... I'm betting on most people having less than 100 items, so real time it is and I'll tweak if more if people ask.

Anyway here are the screenshots...

The new About dialog. I used the stack of pennies because I thought it was a good representation of the intent of the plugin. Adding a little of of value/time savings each time you use it, adding to a lot of value over time...  ;)

 

The Select Template with the About This Plugin link and titlebar Help added.

    

The real time filtering in action.

Friday, September 29, 2006

Writing Windows Live Messenger Add-ins in .Net by the ADOGuy

The ADOGuy - Writing Windows Live Messenger Add-ins with .NET

"...in this article, I show you how to write your own add-in for Windows Live Messenger using .NET.

Beginning with version 8 of Windows Live Messenger, Microsoft has allowed users to write code, using the .NET Framework, to interact with Messenger client. By using the Messenger SDK, you can write an assembly that is loaded into Messenger and which will react to events in the messenger user interface.

..."

Shawn Wildermuth (aka the ADO Guy) has written a cool article on writing add-ins for Windows Live Messenger 8 in C# and VB.Net.

From turning on the add-in capability to writing the code to deployment and seeing it in use, he covers all the "hello world" bases (with C#/VB.net source downloadable too).

This looks like something fun to play with...  ;)

Missing Base VHD (Base01.VHD) from Orcas September CTP VPC... (Make sure you ALSO download the VSCTPBase.exe)

I'm RTFI now, but it looks like there's an issue with the Visual Studio Orcas CTP Virtual PC image download.

It downloads fine and extracts with no problems (creating a 9.27GB VSSep2006CTP.vhd and 11K VSSep2006CTP.vmc).

But when launching the VMC, I get the below dialog;

Um... err... Base01.VHD? Um... nope, doesn't exist and wasn't in the download.

It seems like the VSSep2006CTP.vhd was a Differencing VHD and that the base/parent VHD wasn't provided. Or maybe I'm having a brain cramp...?

Time to look up the support/feedback options...

Update #1 9/26/2006 @ 10:03AM (PDT):

I WAS having a brain cramp! As Dustin pointed out in the comments, there's a link to download the base image in the Installation Instructions

  • "Download the Base image (one-time only): Save the self-extracting base image VSCTPBase.exe and extract to a folder on your computer. This base contains the Operating system and is common to all "Orcas" CTPs. "
  • Stupid Greg... I KNEW I should have RTFI better (but then again, I did scan them a couple times and still kept missing that reference... I wonder how many other people will too?).

    BTW, I really dig the Base Image/Differencing usage. That should save us users/downloaders a good bit of time with future CTP's.

    Related Past Post XRef:
    Visual Studio "Orcas" September CTP Virtual PC Download

    System.Security (SecureString, SymmetricAlgorithms) C# WinForm Example - Simple Password Manager

    The Code Project - Simple Password Manager Using System.Security

    "The main goal of this application is to show how easy is to work with System.Security (SecureString, SymmetricAlgorithms) in a Windows Forms project. The application uses the SecurePasswordTextBox control made by Paul Glavich. SecurePasswordTextBox is a Windows Forms TextBox control that uses the .NET V2 SecureString class to store its contents. More details about this control can be found at Paul Glavich's blog.

    Why do we need SecureStrings? Well, the MSDN documentation is very explicit on this, I will just quote it: "An instance of the System.String class is both immutable and, when no longer needed, cannot be programmatically scheduled for garbage collection; that is, the instance is read-only after it is created, and it is not possible to predict when the instance will be deleted from computer memory. Consequently, if a String object contains sensitive information such as a password, credit card number, or personal data, there is a risk the information could be revealed after it is used, because your application cannot delete the data from computer memory." So, as a programmer, you must make sure that the sensitive data that you are dealing with in your applications like passwords are as much as possible protected. In my manager, I am receiving the password string as a SecureString with help from the Paul Glavich's control, and then I encrypt it with a symmetric algorithm (Rijndael) for storage and internal use. There is a moment when you can't protect the string, and that moment comes when the user wants to see his password in clear, or wants to paste it into a web page. ..."

    This is another SecureString related project that I'd like to look at...

    Related Past Post XRef:
    SecurePasswordTextBox - A SecureString TextBox

    Does a Negative Downloaded Percentage Mean I'm SENDING Data? ;)

    It makes me laugh when I download big files in my install of IE. -318% Completed (now I'm at -402% and counting...)

    Does a negative download mean I'm actually uploading data? (Just kidding... I know it's just a math bug...).

    Still it makes me smile when I see that. Yeah, I know I have a strange sense of humor sometimes.. ;) 

    Visual Studio "Orcas" September CTP Virtual PC Download

    Microsoft Downloads - Microsoft Pre-release Software Visual Studio Code Name "Orcas" - September Community Technology Preview (CTP)

    "Visual Studio Code Name "Orcas" delivers on Microsoft’s vision of smart client applications by enabling developers to rapidly create connected applications that deliver the highest quality rich user experiences. This new version enables any size organization to rapidly create more secure, manageable & reliable applications that take advantage of Windows Vista and the 2007 Office System. By building these new types of applications, organizations will find it easier than ever before to capture and analyze information so that they can make effective business decisions.
    This download is the September 2006 Community Technology Preview of Microsoft Visual Studio Code-Named “Orcas”.

    Note: This CTP is available only as a Virtual PC image. You will need Virtual PC or Virtual Server to run this image. Depending on your hardware the download files make take between 30-60 minutes to decompress.

    ...

    The highlights of this CTP include:

    • Improvements on the widely acclaimed Visual Studio 2005 product set
    • Significant investments in improving product quality
    • LINQ to Objects API
      • LINQ to Objects API supports queries over any .NET collection, such as arrays and Generic Lists. This API is defined in the System.Query namespaces inside System.Core.dll. Click here for more details about LINQ.
    • ...
    • NET Framework improvements such as:
      • New managed add-in model enables developers to add a version-resilient extensibility model to their products.
      • Support for time zone conversion, enumeration and serialization, including cases where Daylight Saving Time rules change over time.
      • ...
    • ...

    ..."

    It's only a 3.6GB compressed download, so of course I'm getting it now...  ;)

    I'm a little torn about this. On one side I'm happy to see VS improve and am excited about the new features, but on the other I'm upset that VS 2005 still isn't "done" and we've had to wait so long (with months yet to go) for SP1. Yeah, yeah, I know it's a huge product, and everyone has limited resources, yada, yada, yada. Still... Any Battlefield 2 fans out there? How do you feel about 2142 coming out soon? While BF2 is still, well, um... yeah. Kind of the same thing, IMHO.

    And OMG, let's not talk about VS2003 on Vista...  :|

    LOL, but then again, we bitch that MS doesn't move fast enough and there's too long a period between major versions of their products. Those poor guys and gals just can't win... lol

    In any case, with VS Orcas probably 9-12 months from release (that's just my WAG.. Wild Ass Guess) I think it's worth checking out and playing with a little, especially since it's been provided as a VPC image. This was a smart move MS...

    Wednesday, September 27, 2006

    Windows Live Writer 1.0 Beta Update

    Writer Zone - New Release! Windows Live Writer 1.0 (Beta) Update with Windows Live Gallery

    "...

    The following is a summary of the changes in the Writer 1.0 (Beta) Update:

    • Tagging support
    • Support for Blogger Beta
    • Categories are sorted by name and support scrolling, plus improved support for reading categories from your blog
    • Improved startup performance
    • Paste is enabled for Title region and TAB/SHIFT+TAB navigation between title and body supported
    • Insert hyperlink added to context menu when text is selected
    • Title attribute in Insert Link dialog
    • Custom date support for Community Server
    • Improved keyboard shortcuts for switching views
    • Change spell-check shortcut key to F7
    • Add ‘png’ to insert image dialog file type filter
    • More robust image posting to Live Spaces
    • Improved style detection for blogs 
    • Fixed issues with pasting URLs and links
    • Remember last window size and position when opening a new post
    • Open post dialog retrieves more than 25 old posts

    ..."

    An update to the WLW 1.0 Beta has been released. Posting with it now...

    Install was smooth, upgrading my existing install in-place, and best of all my plugin still works (yeah!).

    BTW, This weekend I plan on finishing up v1.2 of my plugin (addressing remaining Code Analysis items, adding an About box, etc) and submitting it to the WLW Gallery.  ;)

    Biggest thing I like so far in this WLW update? The ability to cut-n-paste in the Title region... It's always the little things isn't it?

    Things I need to submit as feedback;

    • When inserting a Link, if the Clipboard contains a URL, prepopulate the Link URL: field.
    • Add a Paste Special or Paste as Plain Text option
    • Provide real time spell and grammar checking (i.e. like Word)(I'd bet big this is already on their list...)

    VSTS/TFS Resource List (MS Dogfooding Stat's, Tools, Books, URL's, News, etc)

    adamga's WebLog - Team system resources list, updated September 27, 2006

    Adam Gallant just posted a cool list of VSTS/TFS resources.  From info on MS's dogfooding on TFS, to Blogs/Websites, Third party utilities, tools, whitepapers and more.

    If you're getting into TFS, this is a good place to start...

    Tuesday, September 26, 2006

    Real VML Patch is Out

    F-Secure - Real VML patch is out

    "Microsoft has released a patch against the VML vulnerability outside of their normal update cycle. Which is great.

    The patch is available right now via update.microsoft.com.

    Get It" [Post Leached In Full]

    From Update.Microsoft.com;

    "A security issue has been identified in the way Vector Markup Language (VML) is handled that could allow an attacker to compromise a computer running Microsoft Windows and gain control over it. You can help protect your computer by installing this update from Microsoft. After you install this item, you may have to restart your computer.  Details... "

    I sure you'll be seeing this everywhere, so consider this a "Note to Self" post...  ;)

    In my case, on two machines, it installed easily but did need to reboot one (on the machine I hadn't yet unregistered the DLL).

    Related Past Post XRef:
    IE/Windows VML Exploit - Short Term Fix

    Lazy Load Property Example/Snippet

    Vault of Thoughts - Lazy Load Property Snippet

    "I have written an article on Visual Studio Code Snippets - how to use them, and how to create your own. I have provided there a couple of snippets that I use on daily basis. You can also check Mads Kristensen's blog where he provides a snippet for "safe events". Today I have thought of yet another useful snippet...

    ...

    If using 2.0 version of the .NET Framework, you can do better and use the Nullable type for the field. And that is exactly the code snippet I provide. With it you can create such a lazy initialized property very quickly.

    ..."

    I'm about to begin work on an API where I want to implement lazy property loading...

    The nullable approach discussed above seems smart, simple and easy to maintain. Something to look at/think about anyway...

    Online IE7 Search Provider Creator

    EnhanceIE - IE7 Search Provider Builder Tool

    "You can use this page to easily add a new search provider to your list of available IE7 search providers.  Search providers appear in the dropdown next to the search box inside of the new IE7.

    "

    This is a very cool service/utility...

    There's a place to enter the search URL and what you want to name it. Then click on the Install button and now you have a new IE Search Provider.

    Make sure you read the instructions on the form though (I clicked on it a couple times, getting a warning/error before I read the big bold instructions to use the search term "TEST"... dugh).

    (via Digital Thoughts - EnhanceIE.com - IE7 Search provider builder)

    Monday, September 25, 2006

    CodePlex Project for the Text Template WLW Plugin

    The CodePlex project is up for my Text Template Windows Live Writer Plugin...

    The latest 1.2 beta (1.2.2.2, the same as was put on GotDotNet) has been uploaded as a Beta Release. v1.1 Production release is also available.

    I'm still moving in, updating the wiki, adding the source, etc...

    This CodePlex project will be the official home now for the Plugin, but of course as I make changes/releases/etc I'll still be talking about it here. ;)

    Again, any suggestions, comments, feature requests, etc would be appreciated... (If you don't I'll just keep adding stuff I think is cool...  :)

    Related Past Post XRef:
    WLW Text Template v1.2 Beta Released to GotDotNet
    Text Template Plugin v1.1 for Windows Live Writer Released (and a Preview of v1.2)
    WLW Text Template v1.1 Beta Test
    WLW - Text Templates Plugin on WLWPlugins.com
    My Windows Live Writer Plugin - Text Template

    WLW Text Template v1.2 Beta Released to GotDotNet

    I've released v1.2 beta to GotDotNet for your downloading and such...

    Download (as download link, just updated file)

    In this version/zip is the VB.Net source, manual setup instructions and new to this release, a "normal" setup (i.e. setup.exe and an MSI).

    Nothing much has changed since 1.2 Preview Post, but to keep you from having to click over, I've included the feature list and screenshots below.

    Due to the release delay when posting to GotDotNet (and because I want to play there), I'm in the process of getting this into a CodePlex project. I'll update the GotDotNet Sample with stable releases in the future, but the CodePlex project will be the one stop shop for this Plugin (applied this weekend, so it should be up "real soon" ...)

    v1.2 Feature List:

    • Replacement of the listbox on the Select Template dialog with a grid, which allows sorting, filtering, etc of Templates.
    • Added Categories to Text Templates, which allow for cooler sorting and filtering
    • Added Icons to Text Templates, which let you associate an icon with a given template making it easier to identify and select a given template
    • Added a Preview feature to the Add and Select dialogs, which let you see your inserted HTML in its full HTML glory.
    • Added Filtering to Select Template dialog
    • Added a Setup.

    Screenshots:

    Here's a preview of the new Select dialog. Much prettier isn't it?

    The updated Add dialog, showing off the Category feature.

    Selecting an Icon for your new Template...

    A preview of your new Template

    The Categories are "smart" in that if you type in a new, non-existing category you'll be asked if you want to add it to your list (so you can use it again in the future)

    The newly added Template

    Showing off the sorting... Like most features of this plugin, the sort column and direction is remembered between sessions, so if you like to sort by Category, the next time you Select a Template the grid will already be sorted.

    The Filter works much the sample way. The last entered Title and Category used to Filter will auto-magically filled in for you, but will not be applied...

    The Filter feature is one that might change based on your feedback. For example, after you have "Apply" a filter, as soon as you type in the Title field or select a new Category, the filter is cleared. I thought this a less confusing operation, but you may tell me otherwise...

    Also I'm thinking about real time filtering, i.e. doing away with the Apply button and as you type, auto-magically apply the filter. I didn't do that this round as I was worried about performance for those with a large number of templates.

    This current version works quite well with over 1,000 templates...  ;)

     

    Please let me know if you have any questions, comments or suggestions!

    Sync Outlook with Google Calendar and more...

    Chris Pirillo - Syncing Outlook, OS X, Google with Ease

    "Not sure how it happened, but I ran into The Holy Grail of Synchronization - how to synchronize Microsoft Outlook (multiple locations), Google Calendar, Gmail, iPod, and mobile phone with Funambol, ScheduleWorld....

    ...

    Standards to the rescue! Engtech, as described, pointed me to ScheduleWorld: “An experiment in a new kind of rich Internet application, built on the foundations of open standards that enables you to access your data from virtually anywhere using a growing number of interoperable devices and software.” Yes, it’s absolutely free - and absolutely 100x more useful than you may realize..."

    Interesting... Just yesterday I was looking for a cheap and easy way to sync some calendars...

    Sunday, September 24, 2006

    RTFI (Read The Fine Instructions!) or How NOT To Use Bug Bombs (Gee... if 1 is good, then 15 MUST be great!)

    LAFD News & Information - North Hollywood Explosion: Failure To Follow Instructions

    "On Sunday, September 24, 2006 at 10:06 AM, three Companies of Los Angeles Firefighters, two LAFD Rescue Ambulances, one Rehab/Air Tender Unit, one EMS Battalion Captain and one Battalion Chief Officer Command Team under the direction of Battalion Chief Peter Benesch responded to an explosion at 5505 Bonner Avenue in North Hollywood.

    Firefighters arrived quickly to discover residents streaming from a two story garden style apartment building on the southwest corner of Cumpston Street and Bonner Avenue.

    ...

    There was no fire, but structural damage was evident.

    Firefighters soon determined that fifteen full-release aerosol insecticide 'bug bombs' had been used contrary to instructions within one upstairs apartment in an effort to exterminate pests.

    An adult male occupant of the apartment below was the sole injury. He sustained a minor head laceration and following on-site treatment, declined transportation to the hospital.

    ..."

    And you only thought it an urban legend or Myth Busters episode (episode 23)...