Thursday, November 13, 2008

A binary/hex file editor that helps you actually understand the binary file (Think formatted, template driven, hex file editor on steroids) – 010 Editor

010 Editor

“010 Editor is a professional-grade text editor and hex editor designed to quickly and easily edit any file or drive on your computer. Combining an easy-to-use interface with a whole range of editing tools, 010 Editor is a valuable tool for anyone working with text or binary files.

  • View and edit any binary file on your hard drive (unlimited file size) and text files including Unicode files, C/C++ source code, etc.
  • Unique Binary Templates technology allows you to understand any binary file format.
  • Find and fix problems with hard drives, floppy drives, memory keys, flash drives, CD-ROMs, processes, etc.
  • Analyze and edit binary data with powerful tools including Find, Replace, Find in Files, Binary Comparisons, Checksum/Hash Algorithms, Histograms, etc.
  • Powerful scripting engine allows automation of many tasks (language is very similar to C).
  • Import and export your binary data in a number of different formats.

Binary Templates - The Power Behind 010 Editor

One of the most powerful features of 010 Editor is the ability to parse virtually any binary file using a Binary Template. Instead of browsing through a long range of hex bytes as with traditional hex editors, Binary Templates allow a file to be understood. Templates are easy to write and can be used to completely parse any data format, such as BMP or ZIP files (Templates for reading these files are included with 010 Editor).

A Binary Template looks similar to a C/C++ structure, but is actually run as a program. Every time a variable is declared in a Template, that variable is mapped to a set of hex bytes in a file. Data in the file can then be read or written by modifying the variable. Because the Template is run as a program, if, for, or while statements as well as functions or complex expressions can be used. When a Template is run, the defined variables can be edited using the Template Results, as shown on the left. New Templates can be added to 010 Editor and can even be configured to run automatically when a file is loaded. For more information on Binary Templates see the Binary Templates page.

010EdTemplate3

…”

010 Editor - 010 Editor - Binary Template Archive

“This page contains a repository of Binary Templates for use with 010 Editor. Please feel free to submit any templates you have that may be useful to other people. For more information on templates, see the Binary Templates page. Please review the terms and conditions for using this archive.

image

…”

While not free, though there is a free 30 day trial version, this reasonably priced utility seems officially cool. It’s not the hex editing, but the templating that I find so cool. It adds an additional information layer on top of the raw data you usually see in a hex editor. Best of all, is that the templates are independent of the program. So you can write your own binary file templates.

How often have you written a “viewer/dumper/etc” for some sort of binary file just so you could spelunk its data? Yeah, me too… Now, with this utility, we can just focus on the file format and ignore the UI goo.

A co-worker pointed this out to me as something cool and I had to agree (how cool is that, that some of my co-workers are stumping for the Cool Thing of the Day?… Thanks Jim. ;)

Wednesday, November 12, 2008

RichText Builder – Think StringBuilder for RTF; build a RTF document just like you would build a StringBuilder string

CodeProject - RichText Builder (StringBuilder 4 rtf)

“…

Rich Text is ubiquitous in windows forms applications yet notoriously hard to manipulate programatically. Display of Rich Text is based on the RTF specification (an archaic format dating way back to early windows 3). Parsing Rich Text is beyond the scope of this article. If however you need to build up simple rich text with FontStyle, Font ,Font size Font Colour, Back Colour ,Tables , insert images and merge RTF documents then this little utility may help you.

It is based on the StringBuilder Class Design and Can be used in place of StringBuilder. It will output RTF when ToString() is Called.

Using the code

Create a new RTFBuilder and simply append text in a similar fashion to Stringbuilder usage.

Add Formatting Calls where necessary.

RTFBuilderbase sb = new RTFBuilder();
sb.AppendLine("AppendLine Basic Text");

sb.Append("append text1").Append("append text2").Append("append text3").Append("append text4").AppendLine();

sb.FStyle(FontStyle.Bold).AppendLine("Bold");

sb.FStyle(FontStyle.Italic).AppendLine("Italic");




Also included is a GDFBuilder class which can be used interchangeably with the RtfBuilder(base) in code and will generate Images that can be displayed in a paging image control(included.)



…”




Okay, that’s officially just very darn cool. What a great way to build/generate a RTF document/file.

Tuesday, November 11, 2008

From a Vet to Active Duty, Reserve, National Guard and Vet’s – Thank you

Just a quick note to say, thank you.

As a vet myself, I can’t say how proud I am of you, our American active duty, reserve, national guard and veterans. No matter the service (cough… Army rocks… cough ;) you know more than anyone that freedom is not free. No matter your MOS, every one of you are, or have been, on the front line protecting our freedom, our way of life and, in the end, my friends and family.

Thank you

Monday, November 10, 2008

Save yourself from a “Big R” CLM (Career Limiting Move) – Reply All Information and Confirmation Outlook Macro

Confessions of a Microsoft Consultant - Job/Life/Reputation protector 2.0

“Back in January I posted some simple VBA code for adding an “are you sure?” type question to the Reply To All button in Outlook.  Since then I have received a few suggestions for improving the code, one of the most common of which was to add to the question box the list of names that the mail will be sent to.  So, as requested, you can find below the updated code! 

image_6

Just place this code in a module in Outlook (you can get to the VBA editor by pressing ALT+F11) and then assign it a button on the toolbar

…”

Disabling Reply All can be overkill, but sometimes you also want to sanity check your Reply All too. This little macro/VBA snip can help you with that.

Mix this with a delay sending rule (Outlook's 1-Minute Rule [Auto Defer Email Send for 1 Minute Rule]) and you may save yourself a little future hassle.

 

For more information on “Big R” please see the The Microsoft Lexicon,

Sunday, November 09, 2008

NTrace 1.0 (Beta) Released - Event Tracing for Windows (ETW) for C# Developers

Andy Hopper's Blog - Announcing NTrace v1.0

“I’m pleased to announce the general availability of the NTrace library and preprocessor. NTrace is a combination of a runtime library and a preprocessor that enables you to incorporate the same kind of tracing flexibility and performance that was previously only available to the lucky folks still writing unmanaged code. There are a log of advantages to using NTrace/ETW: higher performance, flexibility, and zero-config tracing.

In terms of performance, we’re talking orders of magnitude faster when no tracing is being performed, and 2-3 faster when tracing is enabled. …

In terms of flexibility, you can configure ETW tracing to log in many different ways: real-time to a console (similar to listening to the OutputDebugString spew), logging to a flat binary file, logging to a binary circular log, and for those with intestinal fortitude, writing a custom ETW listener (we do plan to eventually surface this via the NTrace API as well).

However, I’ve saved the best for last: one of the best features of the ETW tracing APIs is the ability to turn tracing on in your applications without needing to modify any configuration files or restart it …

…”

CodePlexNTrace

“NTrace is a library that provides flexible, high-performance, and zero-config trace logging for your C# applications.

NTrace is currently 100% C#.

…”

NTrace - Using the ETW tracing preprocessor in your Application(PDF)

“What is this ETW thing?
Event Tracing for Windows is a kernel-level tracing service that has been around since Windows 2000. Since it’s baked right into the kernel, it is extremely fast. Most of the developers that use ETW are writing drivers, but why should they have all the fun?

Why should I use ETW?
ETW Tracing has several benefits over the tracing classes provided with the .NET Framework. Most importantly, ETW tracing can be turned on and off without having to restart the application, but it also has features like built-in high performance circular logging (a circular log is one that never grows above a specified size by flushing out older trace messages), and the ability for you to capture the logs from multiple sources into a single trace session.

What is this preprocessor and why do we need it?
Put simply, to maximize application performance when tracing is not enabled. In a perfect world, an application’s performance when tracing is disabled would be identical to one where tracing wasn’t included at all. The problem is that your code is only compiled once; if those trace calls are in there, they’re GOING to get called, and while the ETW functions return quickly when tracing is disabled, the runtime still has to evaluate trace arguments, allocate memory, construct method call stacks, and so on. The application performance would be even faster if the functions were never called in the first place.

…”

Sounds pretty cool. I’m a little bummed that this seems for C# development only (due to the changes in the build process). I’ll be keeping my eye on this anyway, as well as for a way where I can use this (since most of my projects are VB  ;)

Saturday, November 08, 2008

My PDC List Maker utility source updated to consume the PDC Channel 9 RSS Feed (resulting in the Keynotes now being included in the list), but fixes, etc.

CodePlex - PDC Resource List Maker

image

Just a note to say that I’ve checked in a tweak to my PDC List Maker utility so it now optionally uses the Channel 9 PDC RSS Feed

As you can see in my FUBLY (FUnction But ugLY) UI, there are now there List/Catalog/Data sources. The one I original used, the Channel 9 RSS feed and a version of that feed that I captured/cached today. Of the three, the last is by far the fastest, since there’s no initial catalog download.

This gave me a chance to play with System.ServiceModel.Syndication for the first time. And I have to say, it’s pretty darn cool and easy to use.

But I need to do more R&D into it. The Channel 9 Feed is very complete, with a great list of enclosures (if you look at the raw XML). But when I use the Feed object, I’m only getting the default enclosure. i.e. The Links collection only contains 2 links, the alternate and the default enclosure. I just don’t yet see a way to get the rest of them. Sure I can parse the XML by hand, or via Linq, but first I have to confirm I’m just not being stupid and missing something…

So why am I spending so much time on this? LOL, good question, I have no idea. Okay, that’s a lie… One reason is that I love coding and solving problems and I just don’t get to do that enough in my day life. ;)

 

Update #1 11/8/2008 @ 5:00PM PST:

Yep, I was kind of being stupid. The stuff I was looking for was can be accessed as raw XML via the SyndicationItem.ElementExtensions collection.

For example:
Debug.Print(feed.ElementExtensions(5).GetReader().ReadInnerXml)

So now I’m doing something like this (not quite this lame, but you get the idea);
Dim x As XElement = XElement.Parse(feed.ElementExtensions(5).GetReader().ReadOuterXml)

I’m still playing with this as I don’t think this is the right way to get this data into an XElement. While it works, it smells bad…

 

Related Past Post XRef:
My PDC Video Link List Maker project & source is now available on CodePlex
Another way to get all the PDC Videos… This time as a RSS feed, with WMV videos as an enclosure (i.e. Catch them all for your Zune/IPod)
PDC 2008 Quick Video Link List updated with link verification
PDC2008 Quick Video Link List (Updated: Now with link verification)

VSTS 2008 TFS Power Tools - October 2008 (aka 2.3) Released – Manage Source Files via Windows Shell/Explorer extension, new PowerShell extensions and Team Members tool

Microsoft Downloads - Visual Studio Team System 2008 Team Foundation Server Power Tools - October 2008 Release

Version: 2.3
Date Published: 11/7/2008
Language: English
Download Size: 28 KB - 15.7 MB*


The Visual Studio Team System 2008 Team Foundation Server Power Tools is a set of enhancements, tools and command line utilities that improve the Team Foundation Server user experience.
The following tools are installed with the tfpt.msi package:

  • Command line tool (TFPT.EXE)
  • Team Explorer IDE menu additions
  • Build Notification tool
  • TFS Best Practices Analyzer
  • Process Template Editor
  • Work Item Templates
  • Custom check-in policies
  • TFS Server Manager
  • TFS Users tool
  • Alert Editor
  • TFS Power Shell Extensions [GD: New in this release]
  • TFS Windows Shell Extensions [GD: New in this release]
  • Team Members Tool [GD: New in this release]

…”

bharry's WebLog - Oct '08 TFS Power Tools are Available!

“Yes, I know it's November now :(  We had originally planned to release them about two weeks ago but an early release to our MVP showed us that we still had work left to do to really get it ready.  You can read about all the cool new stuff in this release here: http://blogs.msdn.com/bharry/archive/2008/10/01/preview-of-the-next-tfs-power-tools-release.aspx.  We think the release is in pretty good shape but as I say in that post, this is a very big and very broad release.  As such we are expecting to have to do some mop up work in the next update.  At this point I'm expecting that to happen in late Jan or early Feb.  In the mean time, please let us know about any issues you hit so we can investigate them and fix them for the next release.

In addition to the major new features I listed in the post above (Team Members, Windows Shell Extension, Power Shell support, and Custom component download, tfpt unshelve /undo and BPA improvements), we have added a couple of new things.  The include:

tfpt searchcs - A new tfpt command that allows you to search for checkins, filtering by date, user, path, and string matches in the comment and checkin notes.  It's a very handy tool if you are looking for a checkin but aren't 100% sure what you are looking for.

Improved setup - The new setup now installs for "all users" rather than just the current user.  This was necessary because the Windows Shell Extension can only be installed for "all users".  That's not really an improvement, just a change :)  …”

bharry's WebLog - Preview of the next TFS Power Tools release

“…

There are 3 major new components to the October Power Tools release and the usual incremental improvements.

  • Team Members - We've added a new node to the Team Explorer called "Team Members".  It appears under each Team Project and is used to identify who are the people who work on the project.  It serves as a "pivot point" for information about and operations on people and teams.
  • Windows Shell Extension - We've built a Windows shell extension that allows you to do the core version control operations directly inside the Windows Explorer without using the Team Explorer.
  • PowerShell Support - We've started working on a PowerShell pipeline and commandlets for TFS.  Our initial set support basic version control operations but over time we plan to add work item tracking, administration, build and more.

…”

This is a huge release. The TFS Power Toys have become more of a “must have” with every release, with this one just emphasizing that. The Windows Shell Extension alone is worth the price of admission (not that you have to pay for this as it is still free, but you get the idea)

 

Note that if you do a Setup Type – Custom, that the Windows Shell Extension is not selected by default, that you have to explicitly turn it on. I don’t know if the Setup Type – Typical installs it, but I would assume it does? (I’m testing that now on a different machine… If not, I’ll let you know) (NOPE, see below)

image

UPDATE: The “Typical” install does not seem to install the Windows Shell Extension. You need to select Custom and then explicitly select it, turn it on, etc for installation.

If you’ve already installed this version vi Typical, then go to Add/Remove Programs, and Modify the installation. From that point you can install the Windows Shell Extension (i.e. you don’t have to do a full uninstall/reinstall)

I’m sure this is mentioned somewhere in Barry’s posts, but if I missed it, then you might too… so…

 

(via <FreeToDev…/> - TFS Power Tools October 2008)

 

Related Past Post XRef:
TFS Power Tools - July 2008 Release (aka v2.2) – Welcome to Alert editing goodness
TFS Power Tools - March 2008 Release (aka v2.1). Build Notification, Find in Source Control, Process Template Editor TFS2008 updates and Destroying Work Items...
VSTS 2008 TFS Power Tools (December 2007) Released (aka TFPT 2.0)
TFS Power Tools, v1.3 (September 2007 Release), with Two New Tools, TFS Best Practices Analyzer and Work Item Templates
Team Foundation Server Power Tool, Process Template Editor Tip - If you open a *.WIT file and it appears as a normal XML file, instead of in a Designer...
Microsoft Visual Studio 2005 Team Foundation Server Power Tool (formerly known as Power Toys) - V1.2, February 2007

Friday, November 07, 2008

NetMon Parsers – Existing parsers available and more coming via CodePlex

Network Monitor - Open Source Parsers for Network Monitor 3.2

“With the release of NM3.2, we revamped the parser management so that we can support parser upgrades. So I’m pleased to announce that we just released a new version of the parsers on http://www.codeplex.com/nmparsers. As new parsers become available or the current parsers become extended or improved, you’ll be able to get the latest version.

The Plan

Our plan is to release a new set parsers every month. The updates will be based on your feedback and bug/issue reports that are filed on the site. It may take us a bit of time to completely convert our development over to CodePlex. In the meantime there may be fixes for bugs that have been filed internally. But soon you’ll see the parser files updated live along with a matching MSI installer each month. We have already released a new MSI with the current parser changes. Just look at the Release tab off of our CodePlex site and choose the MSI package that matches your installed Network Monitor OS version.

Eventually, we will document and expose the code for MSI creation so that you can create packages for your own parser sets. Also, we are planning to provide documentation for how to test parsers so that you can understand how we test internally for regressions and compatibility.

…”

CodeProject - Network Monitor Open Source Parsers

“Welcome to the Network Monitor Open Protocol CodePlex Project!
This project will contain the latest updates for the Network Monitor parsers. All parser development will be done through this CodePlex site starting in November 2008, and we welcome your input as well as your parser bug reports.

Introduction
This project will contain the latest updates for Network Monitor parsers. All parser development will be done through this Codeplex site starting in November 2008 and we welcome your input as well as your parser bug reports.

While parsers for many protocols have always shipped with Network Monitor, we have now decided to ship parsers for the protocols described in the Windows Open Protocol Specifications and to move parser development into the CodePlex open source environment. This is a big step for us, so please be patient as we get settled in.

With the launch of this portal, we have also released an updated set of parsers for Network Monitor 3.2. Over the course of the next month, we’ll be moving to develop completely within CodePlex so parser developers, enthusiasts, and the like can have access to the latest parser changes immediately. In the meantime, we’ll be synching the CodePlex branch with our internal development once a week and dropping a couple of new tested parser installation packages every couple of weeks.

…”

Just looking at the amount of NetMon parsing code now in the CodePlex project is making my eyes bleed… Man I love open source (or Source Available or what ever ;)

To give you a feel for what the NetMon Team is releasing check out these two snaps of the source code trees. Each listed item is a parser (i.e. protocol)

Change Set 16184 / NPL / common

image

Change Set 16184 / NPL / Windows

image

See what I mean? That’s a ton-o-NetMon parsing!  :)

 

Related Past Post XRef:
NetMon API – Capture, Parse and and Capture File Access (with Managed P/Invoke example too)
Network Monitor 3.2 (aka NetMon, NM3) Beta Released – Now with application network conversation tracking UI
NetMon 3.1 Released
Network Monitor 3 (aka NetMon 3, aka NM3) Re-released for Vista
NetMon 3.0 RTW

IIS Media Pack 1.0 – Helps make IIS7 a happy, media serving, camper

Microsoft Downloads - IIS Media Pack 1.0 - 32-bit/IIS Media Pack 1.0 - 64-bit 

File Name: IISMedia32.msi
Version: 1.0
Date Published: 11/7/2008
Language: English
Download Size: 712 KB

 

File Name: IISMedia64.msi
Version: 1.0
Date Published: 11/7/2008
Language: English
Download Size: 931 KB


“IIS Media Pack 1.0 provides media-specific extensions that make delivering media from IIS simple, and cost-effective.  Building on the security, reliability and manageability of IIS 7.0, IIS Media Pack protects media assets as it increases scalability by supporting more concurrent users per server.  IIS supports all media file types, including WMV, FLV, and MP4, and provides a great way to use your existing Web infrastructure to deliver compelling rich media content to clients such as Microsoft Silverlight.

With IIS 7.0 and IIS Media Pack 1.0, you can:

  • Save bandwidth costs by throttling the speed at which content is downloaded
  • Decrease network traffic by metering your media deliveries
  • Monetize media assets with Web playlists that personalize content and prevent ad skipping
  • Intelligently deliver multiple media formats from a single server, including .wmv, .flv, and .mp4 files

…”

This is one of those, “I know I’m going to need this one day” posts. Plus I’ve not seen this mentioned much, so…

 

Update #1 11/7/2008 @ 8:00 PM PST:

Some more details on this release.

Chris Knowlton's Blog - IIS Media Pack 1.0 Released

“Following up on our Smooth Streaming announcement last week, today we released IIS Media Pack 1.0! This first release of the IIS Media Pack features two IIS 7.0 extensions that focus on the intelligent delivery of video and audio to end users: Bit Rate Throttling, and Web Playlists.

Bit Rate Throttling

Bit Rate Throttling gives Web server administrators the ability to automatically meter the delivery of 11 built-in media file types, including Windows Media Video (.wmv), Flash Video (.flv), and MPEG-4 (.mp4) files.

Web Playlists

Web Playlists let you deliver server-controlled media playlists from your Web server infrastructure, rather than using a dedicated streaming server. …”

SQL Server 2008 FileStream and VB.Net – The Sample

Dave Noderer's Blog - SQL Server 2008 Filestream and vb.net

“I’ve become interested in a few aspects of SQL Server 2008. One is the new FILESTREAM datatype.

The basic idea is to have a SQL datatype you can use in queries and searches and is managed by SQL but which does not have any particular size limitation.

There are a number of articles on the multiple  steps it takes to setup a database  to utilize the new FILESTREAM features. I’m not going to cover that in this article. I highly recommend reading Paul Randal’s white paper on the subject, now published on MSDN: http://msdn.microsoft.com/en-us/library/cc949109.aspx. Both he and Kim  Tripp have lots of great SQL server content online at www.sqlskills.com. Paul also has some performance graphs of that will give you an idea of when to use FILESTREAM vs image or text.

Unfortunately there is very little on how to actually utilize the FILESTREAM from a programming standpoint. Most of them show how to utilize Win32 API and the SafeFileHandle, I only found one (I’m sure there are more) that talked about using the managed interface, SQLFileStream.  You can find that paper at: http://blogs.microsoft.co.il/blogs/bursteg , this was also all C#, not VB.

So I have created a vb project which illustrates using FILESTREAM… The presentation, visual  studio project and sql script can all be found here: …”

While I could convert past reference C# FileStream samples into the language I dream in (yes, VB & T-SQL… sigh… I so need a life ;) why convert when Dave has already done such a great job with the heavy lifting? 

Make sure you grab the referenced zip as it has the T-SQL and VB all packaged nicely for you…

 

Related Past Post XRef:
SQL Server FileStream Whitepaper – A DBA/IT focused FILESTREAM paper
Run to Run As Radio for a great SQL Server 2008 FILESTREAM show
SQL Server 2008 FILESTREAM Attribute from Start to C#
SQL Server 2008, the FILESTREAM Attribute and Partitioning - Apparently not as easy as it looks (yet at least)...
A future world without the SQL Server Image/Text/NText data types. Now's the time to start planning for that future...
SQL Server 2008 FILESTREAM - Writing a file to a FILESTREAM column
More SQL Server 2008 FileStream Fun
Playing with the SQL Server 2008 FileStream Attribute

Battlestar Props and Costume Auction – I think I now know what Santa can bring me this year…

Gizmodo - Viper MkII from Battlestar Going Up for Sale Along With 100s of Other Props

“Want to be the coolest guy in your neighborhood? Slap a full-sized Viper MkII on your lawn. Too big? Well, how about sprucing up your office with President Roslin's desk? Or making yourself more intimidating by wearing Colonel Tigh's eyepatch? This is the motherlode, my friends.

All this stuff, along with costumes, set pieces, production art and loads more props, will all be available at a Battlestar auction in Pasadena, CA in January. Can't make it to the west coast? The auctions will be broadcast live on the internet and there will be full internet bidding capability, so you can bid on Callie's deck helmet from the comfort of your own home.

…”

http://www.battlestarprops.com/

bglogo

There are some “just too cool for words” things available, with XMas and my birthday right after, and it’s local too? Muhahhahaha (Now if it weren’t for the stupid economy… President Elect Obama, can you fix it by then? Pretty please? ;)

Hum how to convince my Domestic CFO that this would be an “investment”… :p

Lucene.Net Resource List – Books, links and API’s, oh my…

MyNotePad - Lucene.Net Resources

“Lucene.Net is a source code, class-per-class, API-per-API and algorithmatic port of the Java Lucene search
engine to the C# and .NET platform utilizing Microsoft .NET Framework.

image

…”

It’s been a few months since I’ve posted anything about one of my longest running, “I want to do something with this one day” background thread projects, Lucene, so when I saw this, well…

(via WF Community Bloggers - Lucene.Net Resources)

 

Related Past Post XRef:
Five pages to getting started with Lucene.Net - Introducing Lucene.Net
LINQ to Lucene
Lucene.Net & C# Indexing and Searching WinForm Example
Using Lucene.Net to Index And Search C# Source
Lucene.Net 2.0 Final Released
DotLucene 1.9 Final Released
"DotLucene / Lucene.Net has moved to ASF"
Indexing Database Content with dotLucene
DotLucene: Full-Text Search for Your Intranet or Website using 37 Lines of Code
Lucene.Net 1.4.0 Beta build-001
Open Lucene.NET - The Open Source Search Engine
SourceForge.net: Lucene.Net core moved from SF
SourceForge.net: Project Info - Lucene.Net search engine

SQL Server 2008 Full Text Search Best Practices from the SQL CAT Team

SQLCAT Blogs - Best Practices for Integrated Full Text Search (iFTS) in SQL 2008

“This blog is a result of lessons learned while working with the new Integrated Full Text Search in SQL Server 2008. It is not intended to be an in-depth tutorial on how to implement it. Instead, it will concentrate on best practices. The basics of how the new full text search feature works is found in Books On Line.

If you would like a good introductory tutorial, start with SQL 2008 Books Online, then read this whitepaper: http://msdn.microsoft.com/en-us/library/cc721269(SQL.100).aspx. It is one of the best whitepapers I’ve seen recently on a product feature.

Also for more introductory lessons here is an excellent link: http://sqlblogcasts.com/blogs/simons/archive/2008/02/19/SQL-Server-2008---iFTS-Introduction.aspx

Simon Sabin also has a nice series of posts on the new iFTS features: http://www.sqlskills.com/blogs/simon/2008/02/20/SQLServer2008IFTSNewFeatures.aspx

The new iFTS feature is not rocket science, but you should expect to spend some time learning about the new vocabulary, like Fragments, Master Merge, etc. You will also spend some time learning the new DMVs (like sys.dm_fts_index_keywords and sys.dm_fts_index_keywords_by_document) .

Performance

Here is what we noticed about the performance of iFTS in a production environment.

iFilters

Limitations

Memory Settings

Other notes about FDHost

Miscellaneous notes:

Upgrade

…”

With some of the recent discussions of SQL Server FTS going on, even though I don’t use SQL’s FTS, I thought it made sense to note this posting. While not an uber-deep article, there are a number of interesting points that might help if you’re using, or planning on using, FTS.

Wednesday, November 05, 2008

Making threading in Silverlight powerfully lighter, Wintellect & Jeffery Richter release new version of their Power Threading Library with SilverLight support

Jeffrey Richter's Blog - New version of Power Threading Library dated October 30, 2008

“The latest version of Jeffrey Richter’s free Power Threading Library, which includes a DLL for use by Silverlight applications and components is now available for download. The Silverlight version includes Jeffrey’s popular AsyncEnumerator class that allows developers to use a synchronous programming model while performing asynchronous operations. This allows developers to create very fast and responsive applications while using very few threads.

…” [Post Leach Level: 95%]

Wintellect - WINTELLECT ANNOUNCES RELEASE OF JEFFREY RICTHER’S POWERTHREADING LIBRARY FOR SILVERLIGHT
“Wintellect, a consulting, debugging, and training firm specializing in Microsoft .NET and Windows technologies, today announced that co-founder Jeffrey Richter’s Power Threading library for Silverlight is now available for immediate download from http://Wintellect.com/PowerThreading.

This new library includes a DLL for use by Silverlight applications and components. The Silverlight DLL weighs in with a size of 23KB (approximately ¼ the size of the desktop version) while still containing the most useful classes of the library.

…”

Wintellect - Jeffrey Richter’s Power Threading Library

“Wintellect’s own Jeffrey Richter has produced the Power Threading library (DLL) containing many classes to help with threading and asynchronous programming.

Jeffrey has described many of the classes contained in the library by way of his MSDN Magazine Concurrent Affairs columns.

The library also contains some non-threading related classes for working with exceptions, command-line parsing, the change journal, opportunistic file locking, and more.

The Power Threading Library is available for download here. [GD: Click through for the download link]

…”

If you’re going to use the SilverLight version make SURE you read the included license agreement. I’m far from a lawyer (cough… thank god… cough… ;), but there an “interesting” clause that states;

“…

SCOPE OF LICENSE. The software is licensed, not sold. This agreement only gives you some rights to use the software. Wintellect reserves all other rights. Unless applicable law gives you more rights despite this limitation, you may use the software only as expressly permitted in this agreement. In doing so, you must comply with any technical limitations in the software that only allow you to use it in certain ways. You may not: [GD: Emphasis added]

Use the software on any non-Microsoft produced platform [GD: Emphasis added] [For the curious, the reason for this is because I sold the patent rights to an idea I had to Microsoft. In return, I negotiated a license with Microsoft that allows people to use this patent invention for free as long as the use of the code is on a Microsoft produced platform.]

…”

So does this mean that you can’t use this on SilverLight on a Mac? I’d say that yes, you probably can, since SilverLight on a Mac is a Microsoft produced platform. Now for MoonLight? I’d say probably not…?

Still it’s free for what’s shipping now, and given that price, if you have a “power threading need” then you might want to check this out.

The download includes both binaries, the desktop AND SilverLight DLL’s

 

BTW, sorry for the post title, it’s been a long day…

 

Related Past Post XRef:
Wintellect's PowerCollections is now on CodePlex
"The C5 Generic Collection Library for C# and CLI"
Power Collections 1.0 Released
Power Collections version 1.0 is feature complete
Wintellect - Power Collections

Free addin to help make your Visual Studio fly (well a little at least) – Free CodeRush Xpress for C# Developers

DevExpress - Announcing CodeRush Xpress for C# Developers

“Glendale, CA – DevExpress is proud to announce the immediate availability of CodeRush Xpress – a free Visual Studio add-in for C# developers. CodeRush Xpress is a comprehensive IDE Productivity toolset specifically designed to help you simplify and shape complex code – making it easier to read and less costly to maintain.

More and more developers are recognizing that simple, easy-to-read code is the key to application flexibility and easy maintenance. However, uncertainty about maintenance costs and concern about breaking code keep many developers from cleaning up their code. CodeRush Xpress for Visual Studio 2008 solves this problem for C# developers by dramatically reducing the cost and complexity traditionally associated with improving, simplifying and refactoring existing code.

The following Integrated Code Navigation features are available to you and your team free-of-charge:

  • Duplicate Line
  • Highlight All References
  • Increase or Reduce Selection
  • Smart Clipboard Operations
  • Generate from Using (TDD)
  • Quick Navigation Window
  • Quick File Navigation

In addition, CodeRush Xpress Ships with the following 25 Code Refactorings:

…”

Free is a price that’s hard to beat. It’s not even reg-ware, just click and download…

 

(via Public Sector Developer Weblog - Free Coding Assistance Add-in for Visual Studio Developers)

.Net/Scrum Metaphors

The .NExT Step - Scrum metaphors with .net

“…

Scrum and the whole Agile movement use metaphors help people understand and reason about it. So as I have to blog about .net I will contribute with my own metaphors inspired on the .net Framework. I hope you find it useful and eventually become as powerful as the metaphors already available. Here we go:

  • If a Sprint were a .net Framework type it would be System.String type because it is immutable.
  • If the ScrumMaster were a .net Framework component it will be the CLR because it is the supervisor and responsible for the correct implementation of the Scrum process just as the CLR is the supervisor of all .net programs, guaranteeing certain properties and behaviors.

…”

The first metaphor made me laugh…

Tuesday, November 04, 2008

Another way to get all the PDC Videos… This time as a RSS feed, with WMV videos as an enclosure (i.e. Catch them all for your Zune/IPod)

granth's blog - Downloading all PDC2008 session videos

“If you missed out on PDC this year, you probably know that all the sessions were recorded and made available on MSDN’s Channel9. It’s not immediately obvious from the Channel9 site, but it is possible to get an RSS feed of all the videos that are available.

This makes it very easy to download all the videos and convert them to your Zune for commute viewing.

The RSS feed is: http://channel9.msdn.com/posts/pdc2008/RSS/Default.aspx

If you want to download all 130 videos (37Gb), then download the attached PDC2008_Videos.txt [GD: Click through to actually download the text file… I don’t want to leach ALL his traffic… ;) ] file and import it into your favourite download tool. I like Free Download Manager.

…”

Since this feed has the keynotes in it I’m thinking about tweaking my PDC List Maker to use this feed as its initial catalog… (Hum and that would let me use the cool Syndication stuff in .Net 3.5… okay, sold. Firing up VS now…  ;)

 

Related Past Post XRef:
My PDC Video Link List Maker project & source is now available on CodePlex
PDC 2008 Quick Video Link List updated with link verification
Another way to get all the PDC Video Sessions Downloaded - The DownloadThemAll FireFox addon and Luciano Evaristo Guerche’s PDC link lists
PDC2008 Quick Video Link List (Updated: Now with link verification)

Infragistics NetAdvantage Select 2008 Volume 3 released today

“We have a new volume of NetAdvantage Select 2008 Vol. 3 shipping today that includes updated ASP.NET and Windows Forms controls!


What's new in NetAdvantage Select 2008 Volume 3?
Please review the new features in the NetAdvantage ASP.NET controls (http://www.infragistics.com/dotnet/netadvantage/aspnet.aspx#NewFeatures) and the NetAdvantage Windows Forms controls (http://www.infragistics.com/dotnet/netadvantage/winforms.aspx#NewFeatures) in this release posted to our website.

…”

What’s New (WinForms)

“In this new release of the NetAdvantage Windows Forms controls we have added .NET 3.5-native assembly builds, support for the latest file formats, and numerous enhancements that will be of interest to WinCalcManager™ developers and users of the our Infragistics.Excel class library whether it is to import workbooks containing Excel functions or exporting the data grid to Excel.  Read on to learn about all of the added features.

…”

What’s New (WinForms) - 2008 Vol 2

“Empowering many data entry scenarios that will leave users appreciating the usability of your data-intensive applications, NetAdvantage for Windows Forms 2008 Vol. 2 has rewritten the book of what is possible with several new data grid features in the WinGrid™ control like row edit templates, column header rotation, CardView printing and custom checkbox glyphs. Combined with new controls like the WinValidator™ to ensure data input by users is correct, and the new intuitive suggest mode in WinCombo™, we think you'll agree this release delivers tremendous value.

WinChart™ - Adds Tree Map Chart Type

NetAdvantage for Windows Forms 2008 Vol. 2 has added the tree map chart type to WinChart. Tree maps are used to display large hierarchical data sets as nested rectangles, where the size of these rectangular regions correlate proportionately to the importance of the data point the rectangle represents. They are also sometimes referred to as heat map charts, although WinChart already has a separate chart type for measuring heat and other intensities over a continuous area or 3-D surface which is different from the tree map. Real world examples of tree map charts include maps of the stock market or hard disk defragmenting utilities.

Example of a Tree Map showing Level-of-Detail in a Customers Assets and Liabilities

…”

I didn’t know until talking to the Infragistics crew at PDC that they had a TreeMap component (well kind of a component, it’s part of their WinChart component). It was pretty funny. I was asking them, that if I had a wish, one thing I would like from them was a TreeMap. He looked at me funny, and said, “poof… We recently released one…” LOL

Getting the VSTS2010 CTP Virtual Machine working well on Hyper-V

granth's blog - Converting VS2010 CTP to Hyper-V

“…

You can download the VPC from here. It’s quite a large download at 7.11GB and I suggest you follow Brian Keller’s post on a more reliable and faster download experience.

The purpose of this post is to show you that it is possible to run the CTP under Hyper-V. This can yield better performance depending on your hardware configuration.

Caveats:

  • This is not an officially tested scenario. Things may or may not work. You’re on your own.
  • Microsoft Excel is immediately crippled to reduced functionality mode. You will need to install your own licensed copy if you want to use it.
  • Microsoft Project remains in countdown mode.

Summary:

  1. Download the CTP and uncompress it
  2. Create a new Virtual Machine in Hyper-V Manager
  3. Attach the extracted .vhd
  4. Boot the virtual machine
  5. Uninstall Virtual PC VM Additions by going to Control Panel > Programs and Features
  6. Run msconfig.exe and enable ‘Detect HAL’ under Advanced options
  7. Reboot
  8. Install the Hyper-V Integration Services
  9. Reboot
  10. Wait for all the new hardware to be detected
  11. Reboot
  12. Install your own copy of Excel
  13. Take a snapshot
  14. Enjoy!

Steps

…”

This post is a great guide for getting the VSTS2010 and updating it so it runs on Hyper-V. Make sure you click through to see the detailed steps…

This finally kicked me off the fence and I’m now copying the VM’s to our Dev Hyper-V host machine and will be executing these steps so my team can also play with VSTS2010,.Net 4 and Win7. These VM’s combined with Virtual Machine Manager (so they can request their own VM’s) should be pretty cool for the team…

 

Related Past Post XRef:
VSTS 2010 and .Net 4 CTP VPC now available for download

Monday, November 03, 2008

KILL With StatusOnly – Where Killing, isn’t. Using “KILL ## With StatusOnly” to get transaction rollback status information

I want some Moore - I KILL-ed you! Now can I go for a coffee break while you die?

“…

How many times have you issued a query that you had no idea how long it would run, just to loose your patience after 10 minutes and rolled it back, forgetting that it'll probably take 10+ minutes to rollback anyway?

Come on don't be shy... raise your hand... I know you're one of them :)

Although there is no way to get the rollback time from the ROLLBACK command (if there is do let me know) we can use an extended way of calling the KILL command.

KILL command has an option WITH STATUSONLY that tells you how long until will the killed process completes.

We call it like this:

KILL 60 WITH STATUSONLY;

…the message you'll get is this:

/*
spid 60: Transaction rollback in progress. Estimated rollback completion: 2% Estimated time left: 130 seconds.
*/

…”

From the SQL Server 2000 BOL;

“…

WITH STATUSONLY

Specifies that SQL Server generate a progress report on a given spid or UOW that is being rolled back. The KILL command with WITH STATUSONLY does not terminate or roll back the spid or UOW. It only displays the current progress report.

For the KILL command with WITH STATUSONLY option to generate a report successfully, the spid or UOW must be currently in the rollback status. The progress report states the amount of rollback completed (in percent) and the estimated length of time left (in seconds), in this form:

SpidUOW <xxx>: Transaction rollback in progress. Estimated rollback completion: yy% Estimated time left: zz seconds.


If the rollback of the spid or UOW has completed when the KILL command with the WITH STATUSONLY option is executed, or if no spid or UOW is being rolled back, the KILL with WITH STATUSONLY will return the following error:

Status report cannot be obtained. KILL/ROLLBACK operator for Process IDUOW <xxx> is not in progress.


The same status report can be obtained by executing twice the KILL spidUOW command without the WITH STATUSONLY option; however, this is not recommended. The second execution of the command may terminate a new process that may have been assigned to the released SPID.

…”

Let’s see, I’ve been using KILL for how many years? Sigh… Still I guess better late than never.