Monday, February 07, 2005

A43 File Management Utility (Explorer Replacement)

BG's Home

"A43 is a freeware file management utility for Windows 2000/XP.

Integrated text editor with unlimited size. Dynamic highlighting for the web.

Integrated zip/unzip features. Simply drag-n-drop files or click a button. You can also turn your zip archives into self-extracting archives the same way.

Integrated file search to quickly locate and jump to those lost files.

Integrated quick launch area for fast access to the programs you use the most.

Favorite buttons to quickly open those often used folders.

Dual-pane view for those that demand speed in file management.
Requires no installation, no data is written to the system registry.

A43's configuration information is saved in a local .ini file.
Keep it on your pen/jump drive and take it where ever you go. ..."


The "nothing to install, run from a thumb/pen/jump drive" is interesting.

While I'm not really into Exploder replacements, I'm going to take a look at this one...

(via Jeremy Wagstaff's LOOSE wire - Another Explorer Replacement)

SQL Full Text Search: IFilters or Indexing Filters used with SQL FTS...

SQL Full Text Search: IFilters or Indexing Filters used with SQL FTS...

"Indexing Filters, or more commonly shortened to IFilters, play an important role in Microsoft's Search technology starting with Indexing Server 1.0 on Windows NT 4.0 (see "Anatomy of a Search Solution") and have been enhanced and added to by not only Microsoft, but by many 3rd party independent developers and software vendors (ISV's). Many of the IFilters are free or relatively low cost and cover many file types formats or extensions. IFilters are an established and open standard that is documented on Microsoft's MSDN and code examples and utilities are available in Microsoft's Platform SDK (PSDK).

...

Interestingly, other software vendors, such as Oracle Text also uses Stellent's Outside In Technology. Furthermore, the Google Mini Search Appliance supports searching in 220 file formats, which is approx. the same number of file formats supported by Yahoo's X1 for their desktop search. I am not surprised by this as I'm sure that many other search vendors are using the Outside In technology from Stellent.

..."

Stellent, how well I know you...

Anyway this post has more IFilter info, more links to IFilter providers, etc. And more info/link for the very cool, IFilter Explorer 1.0

SQL Server Enterprise Manager Tip: Printing Diagrams

SQL Server Enterprise Manager Tip: Printing Diagrams

"This is one of those simple tips you could overlook for years, as have I.

In Enterprise Manager, when you try to print database diagrams, the insane things always end up straddling multiple pages. It's a nightmare trying to get a nice simple print out.

...

Right-Click and select the option 'View Page Breaks'. Now you can rearrange your tables to avoid page breaks. And a neat print out is as easy as pie.

I'm kicking myself, wishing I'd noticed this sooner."


LOL. Man, how long have I been using Enterprise Manager? sigh...

I used to hate Enterprise Mangler's (err... um I mean Enterprise Manager... yeah.. that's it) Diagramming and have stayed as far as possible, preferring to use ERWin.

But ERWin is expensive and doesn't yet support SQL 2K5. So I thought I was going to be stuck with Visio for my DB diagrams. You see, printing a diagram is a big part of my DB design process. I take the printout, wander around looking at it, think on it, play it out in my head, mark it up, wash rinse repeat.

So printing a usable DB diagram is critical to me. And I thought EM's diagram printed.. well.. um... sucked?

Now I know better. Grr. Live and learn.

Thanks to the Leon Bambrick (aka the SecretGeek) for pointing this out.

Sunday, February 06, 2005

Pogo Products EZPower Universal Remote: No Batteries Required

Gizmodo : Pogo Products EZPower Universal Remote: No Batteries Required

"Pogo Products' new EZPower Universal remote looks great. Not because its a universal remote, which replace the convenience of a few different remotes with the nightmare of figuring out how to program an all-in-one device, but because it takes no batteries at all. Instead, give the knob at the bottom a few turns and you'll have enough juice to power the EZPower for a week at a time. Even better? It's only $25. ..."

Now that's cool... And the timing is outstanding as I have a remote that's on its last legs (the scotch tape holding it together is a sure sign...)

.NET XSLT Command Line Utility

.NET XSLT Command Line Utility

"nxslt is a small but feature-rich command line utility that allows to perform XSL Transformations (XSLT) using .NET Framework's XSLT implementation - System.Xml.Xsl.XslTransform class. nxslt basically duplicates functionality and command line options, provided by Microsoft's MSXSL.EXE Command Line Transformation Utility with small difference: unlike msxsl.exe, nxslt does not support specifying start mode. In addition, nxslt has some distinct advanced features, like support for XInclude, embedded stylesheets, custom URI resolving, multiple result documents, custom extension functions, built-in rich library of EXSLT extension functions etc. See nxslt and msxl.exe for more info.

..."

Sounds cool.

This is something I might be able to use. And something my users might be able to use... The embedded stylesheet support might be the key feature for me. Will have to see...


(via Signs on the Sand - ANN: nxslt.exe (.NET XSLT Command Line Utility) version 1.5

Saturday, February 05, 2005

Creating Site Roll-ups in Sharepoint with RSS

Creating Site Roll-ups in Sharepoint with RSS

"Roll-ups of information from several (top-level or nested) Windows Sharepoint Services sites has been a "nice-to-have" feature mentioned in several Sharepoint projects I've been involved with. Commercial solutions is available in the market, like the CorasWorks package. However these solutions tend to be too expensive to justify.

By using a combination of RSS feed generation and RSS feed consumption webparts (both opensource or freeware) it is possible to create roll-up like functionality with minor configuration effort.

The Leadit.Sharepoint.Services, written by Jan Tielens, provides an RSS feed for every site in the portal, and the SmilingGoat FeedReader displays such feeds in a webpart. (More Sharepoint RSS solutions listed by Daniel here).

..."

Simple, yet effective, way of creating SharePoint roll-ups.

I like it because it's dual purpose. The subsite RSS feeds can be used individually by interested users as well as for the roll-up. And of course the price is just right...

Friday, February 04, 2005

RIAA Sues Deceased Grandmother

BetaNews | RIAA Sues Deceased Grandmother

"The recording industry's latest assault on file sharing has netted an unusual suspect: a deceased great-grandmother from West Virginia. In a lawsuit filed in January, the RIAA accused 83-year old Gertrude Walton of sharing over 700 pop, rock and rap songs under the alias 'smittenedkitten.'

What the RIAA didn't know is that Walton had passed away in December following a long illness. Her daughter, Robin Chianumba, has lived with Walton for the past 17 years and told the Charleston Gazette that her mother refused to even have a computer in the house.

..."

LOL. RIAA is at it again...

I'm all for paying for value received (i.e. I'd rather buy my music than steal it), but RIAA's actions just rub me the wrong way... There has to be a better way for them get the results they want.

Or maybe not. Maybe the entire music production and distribution industry needs to be reworked from the ground up. Then again, since I don't know jack about the music production and distribution, maybe I should just shut up...

:|

MS SQL Server to FireBird migration

The Code Project - MS SQL Server to FireBird migration. That's a Pain! - C# Database

"Recently I read article Embedded Firebird at Code Project and decided to try FireBird. I like the idea of embedded database. FireBird allows .Net developer to put a dll into bin directory, create database file and use usual database access. It sounds very attractive and simple. In theory. So I decided to migrate from SQL Server to FireBird.

..."


This article covers some lessons learned when migrating an app (and experience) from MS SQL to Firebird.

Through I don't necessarily agree with conclusion of the article's author (i.e. um.. of course it's not plug and play... it's a totally different DB engine. Of course there will be things you are not used to, that work different, etc...) it still contains some good info...

If I play with FireBird like I talked about here, then this info might come in handy.

Some Friday Humor

Friday fun....

"This was shared on the NT SysAdmin email list today.

The following is an actual question given on a University of Washington chemistry mid-term. The answer by one student was so "profound" that the professor shared it with colleagues, via the Internet, which is of course, why we now have the pleasure of enjoying it as well.

Bonus Question: Is Hell exothermic (gives off heat) or endothermic(absorbs heat)?

Most of the students wrote proofs of their beliefs using Boyle's Law (gas cools when it expands and heats when it is compressed) or some variant.

One student, however, wrote the following:

First, we need to know how the mass of Hell is changing in time. So we need to know the rate at which souls are moving into Hell and the rate at which they are leaving. I think that we can safely assume that once a soul gets to Hell, it will not leave. Therefore, no souls are leaving. As for how many souls are entering Hell, let's look at the different Religions that exist in the world today. Most of these religions state that if you are not a member of their religion, you will go to Hell. Since there is more than one of these religions and since people do not belong to more than one religion, we can project that all souls go to Hell. With birth and death rates as they are, we can expect the number of souls in Hell to increase exponentially. Now, we look at the rate of change of the volume in Hell because Boyle's Law states that in order for the temperature and pressure in Hell to stay the same, the volume of Hell has to expand proportionately as souls are added. This gives two possibilities:

1. If Hell is expanding at a slower rate than the rate at which souls enter Hell, then the temperature and pressure in Hell will increase until all Hell breaks loose.

2. If Hell is expanding at a rate faster than the increase of souls in Hell, then the temperature and pressure will drop until Hell freezes over.

So which is it? If we accept the postulate given to me by Teresa during my Freshman year that, "it will be a cold day in Hell before I sleep with you" and take into account the fact that I slept with her last night, then number 2 must be true, and thus I am sure that Hell is exothermic and has already frozen over. The corollary of this theory is that since Hell has frozen over, follows that it is not accepting any more souls and is therefore, extinct...leaving only Heaven thereby proving the existence of a divine being which explains why, last night, Teresa kept shouting "Oh my God"
"

MSDN .NET Framework Developer Center: Designing .NET Class Libraries

MSDN .NET Framework Developer Center: Designing .NET Class Libraries

"The Designing .NET Class Libraries series presents design guidelines for developing classes and components that extend the .NET Framework. The goal of the Designing .NET Class Libraries series is to encourage consistency and predictability in public APIs while enabling Web and cross-language integration. The guidelines presented in Designing .NET Class Libraries are intended to help class library designers understand the trade-offs between different solutions. There might be situations where good library design requires that you violate these design guidelines. Such cases should be rare, however it is important that you provide a solid justification for your decision.

..."


Topics Include:
Introduction
Naming Conventions
Rich Type System
Member Types
Designing Inheritance Hierarchies
API Usability
Designing Progressive APIs
CLR Performance Tips
Designing for a Managed Memory World
Understanding Interoperability
Packaging, Assemblies and Namespaces
FxCop in Depth
Enabling Development Tools
Security
Q&A


I want to check these when I next get the chance. I'll be revising/rewriting a framework in the near future and this info might help...

(via Scooter's Musings - Check Out MSDN's New Center: Designing .NET Class Libraries

RSS to Webpart Transform

x5 Windows SharePoint Services RSS

"XSL converts RSS to a native Windows SharePoint Services DataViewWebPart DWP file.

No binaries, installation or server configuration necessary.
Supports RSS versions 0.90, 0.91, 0.92, 1.0, and 2.0.
Supports the Atom Syndication Format 0.3.
Supports Microsoft's Channel Definition Format.
Html output is similar to the links list summary view.
Title, Description, and DetailLink come from the RSS channel element.
RSS 2.0's time to live attribute or RSS 1.0's syndication module are used to determine cache time for the webpart.
Please email me any suggestions/bugs/fixes.
Absolutely free: MIT License.

..."


This is a pretty cool. Enter the URL for a RSS feed and download the DWP for a webpart of that feed. Sure there are other RSS readers for SharePoint, but the tech behind this one what is pretty cool.

XSL is used to transform the feed into a DWP, which can be downloaded too.

(via Fear and Loathing - Zero touch RSS Web Part)

Thursday, February 03, 2005

steepvalley.net: XP Common Controls [XPCC]

steepvalley.net: XP Common Controls

"When I was starting to develop in VS.net I wanted that nice XP-Look for all of my Programs. The problem is, that VS.net 2003 shipped without most of them. The most missed controls where the Taskbox/Taskbar control and the Grouped ListView Contol.

I ran into some implementations of some of the controls on the internet (namely vbAccelerator and the TaskVision Sample on http://www.windowsforms.net ) and into a document provided by Microsoft named "Windows XP Design Guidelines" . This document provides detailed information on some of the new controls and I started to recreate some of these controls for VS.net (with hints and help from the sites mentioned above - thank you again!)

The one feature I wanted to have with the XP Controls was theming. But since it always needed some direct dll calls to uxtheme.dll I wrote my own theming dll. This has some positive and some negative effects.

Positive:

It runs on any OS that supports the .net-Framework; means it will run on non-XP Systems like Win95 and Win2000. That said, I must also tell you that the theme listener and the grouping and tiling of the XPListGroup won’t work without Win XP.

..."


Man I can't believe I've not posted about this before. These are some very cool looking .Net UI components.

You can find the list of components here.

And it has a great license.
"The controls plus the source code are completely free to use. There are no cost at all attached to this project. "

More stuff to play with. :)

(via Code/Tea/Etc. - Free XP Themed Windows Forms Controls)

GMail Invites (Last Time... I Promise)

If there's anyone left who doesn't have a GMail account, and wants one, send them my way.

I have 50, yes five-zero, invites that I can give out.

Email me at gduncan411 >at< gmail you know... Need a first and last name and an email address to send the invite to. No strings attached, first come, first served, etc, etc.

Given how easy it's become to get a GMail invite, this will be the last time I post about it...(Really... truly... hopfully...)

SQL Server Service Broker: samples and tools for the [near] future...

SQL Server Service Broker: samples and tools for the [near] future...

"Today I've found a great post about possible tools and samples for SQL Server Service Broker on www.sqlservicebroker.com:

- External Activator - (This is a work in progress. Similar to our internal proc activation, this is an NT Service that launches service programs outside of SQL Server (ie. .exe). Allows configuration of things like min, max, etc. Logs all activity and even recovers (based on the log) in the event of unexpected shutdown.) We plan to deliver this sample to you in the next couple of months, maybe by the end of February. It has no GUI, the config is an XML file that the program monitors for changes. Any good GUI writers out there want to build an admin interface for this?

- Broker-based chat - This is also a work in progress, but on a slower ship schedule.

- IE protocol handler - Offline browing anyone? This is a protocol handler that talks to a back-end broker service via dialogs that in turns talks to web sites / SOAP-based services. Another sample that we are working on slowly as a back-burner project. The purpose of the sample is to illustrate how to bridge dialogs to other technologies.

- Auto-route populater - This sample will respond to the broker's notifications of missing routes by fetching routes from a master and adding them, thereby allowing stalled conversations to continue. One example of this is being worked on currently. Many variations makes sense given how many different ways customers like to store their "master" meta-data: LDAP directories, UDDI, custom solutions, etc.

- Broker-based scheduler - Reliable, distributed scheduling based on the arrival of messages, time, completion of another scheduled task, etc.

- Broker diagnostic dashboard - The idea behind this is to build a command / control style interface that allow for quick diagnosis of the health of a given service and its conversations. This could be much bigger than this even, but that gives you the basic idea.

- Paging service - Service that accepts incoming requests via dialogs and translates them to alpha pages or cell phone messages.

- Emailer service - Same as above, except for email.

- Pub / Sub Service - Service that matches up publishers and subscribers and takes cares of delivering a given incoming messages to all of the subscribers. Broker-based spam anyone? Just kidding.

- Broker Explorer - GUI-based creation and maintenance of broker objects. I know of one of these being built.

- Visual Studio wizards - Wizards to simplify creation of service broker applications."



People seem to be having a hard time getting their hands around the new SQL Server 2005 Service Broker. These samples (if they come to light) might go a long way toward helping with that...

[Languages] Another .NET language list

[Languages] Another .NET language list

"I just found a new .NET language List at Brian Ritchie's Dotnetpowered.com site and discovered a couple of .NET languages that are news to me. In particular, it looks like the ADA community is now on the boat with A#, a port of ADA to .NET..."

That's cool. I want to code against the .Net framework in ADA... Not really sure why, I guess it just sounds cool?

And if that's not enough, on the .NET language List I see there's SmallTalk, LISP and more.

Looks like my Programming Language of Year (used to be Language of the Month, but then my brain got full...) club will be busy for a while.... :|

Capturing the current directory from a batch file

Capturing the current directory from a batch file

"Sometimes people go to great lengths to get information which is available in a much simpler way. We saw it a few days ago when we found a 200+-line C# program that could be replaced with a 90-byte batch file. Here's another example of a rather roundabout way of capturing the current directory from a batch file.

The easy way is to use the %CD% pseudo-variable. It expands to the current working directory.

set OLDDIR=%CD%
.. do stuff ..
chdir /d %OLDDIR% &rem restore current directory

(Of course, directory save/restore could more easily have been done with pushd/popd, but that's not the point here.)

The %CD% trick is handy even from the command line. For example, I often find myself in a directory where there's a file that I want to operate on but... oh, I need to chdir to some other directory in order to perform that operation.

set _=%CD%\curfile.txt
cd ... some other directory ...
somecommand args %_% args

(I like to use %_% as my scratch environment variable.)

Type SET /? to see the other pseudo-variables provided by the command processor."


I don't do command/batch coding enough so every time I do it seems I have to relearn everything (I really wish my Brain 2.0 [Expanded Storage Edition] order would arrive)

I've needed this in the past, and instead used a lame (i.e. hard coding) approach.

Now if I could just find where I put that batch file... :|

dtSearch: Not Dead. Not Yet.

Jeremy Wagstaff's LOOSE wire: dtSearch: Not Dead. Not Yet.

"...I still stick for most of my searching with dtSearch. It's expensive, it's tough, it's ugly, but it gets the job done. And now they've added a feature which might not get you too excited, but for me is key: better viewers (or file parsers, if you want to get technical) for Microsoft documents.

..."


Just a reminder to myself to upgrade to the latest dtSearch version, 6.5.

The new index format comming in v7 sounds interesting...

Wednesday, February 02, 2005

WFTV.com - News - Emergency Broadcasting Test Mistakenly Calls For Connecticut Evacuation

WFTV.com - News - Emergency Broadcasting Test Mistakenly Calls For Connecticut Evacuation

"HARTFORD, Conn. -- Despite what residents may have seen on television, the state of Connecticut was not ordered evacuated Tuesday.

State emergency management officials believe someone pressed the wrong button, and instead of running a test of the emergency alert system, midday television viewers and radio listeners were told that the state was being evacuated.

..."


LOL... It must suck to evacuate an entire state. Those darn buttons. Can't they write a program to fix that?

"...State police said they received no calls related to the erroneous alert."

I guess it's good everyone ignored it.

:|

EWSoftware PDI Class Library

EWSoftware PDI Class Library

"The EWSoftware Personal Data Interchange (PDI) Library presents you with a complete set of classes that let you have access to all objects, properties, parameter types, and data types as defined by the vCard (RFC 2426), vCalendar, and iCalendar (RFC 2445) specifications. Using these classes, you can read and write data files in a well-defined format used by many applications on various platforms to exchange personal information such as business cards, telephone numbers, addresses, dates and times of appointments, etc. A recurrence engine is also provided that allows you to easily and reliably calculate occurrence dates and times for even the most complex recurrence patterns. The classes can be used in both Windows Forms applications and ASP.NET web applications.

..."


For some reason I think I'll need this... (silly subconsous...I wish it would get a clue :)

IEFavSynch - IE Favorites folder Synchronization Utility

GotDotNet User Sample: IEFavSynch - IE Favorites folder Synchronization Utility

"One afternoon I got tired of trying to keep the Favorites synchronized across all my PCs at home and work, so I wrote this neat little utility that zips up your IE favorites folder, password protects it, and FTP's it to your favorite site / folder. When you are at another PC somewhere else, just press a button and it gets your zip and unzips it into your current IE Favorites folder. Includes MSI Installer if you aren't interested in the source code. Illustrates use of FTP Library, ICSharpCode.ZipLib, Custom configuration file load / save, and other little 'tricks'. "

Sounds interesting. I also hate having all my machines with different fav's. Sure I've played with the online bookmarking, but none stuck.

I don't have a FTP space but I do have some web/webdav space. A little tweaking and I might be good... We'll have to see.

.NET VNC Viewer

.NET VNC Viewer

"Introduction
.NET VNC Viewer is a VNC viewer written entirely in C#. It is binary compatible with Pocket PCs (.NET Compact Framework) and Windows desktops (.NET Framework). I write this mainly because other VNC viewers on Pocket PC do not do full screen and rotation.

..."

Cool. Fits quite well with my wanting to play with VNC...

(via Larkware - The Daily Grind 551)

Tuesday, February 01, 2005

Cool Security Tools

(Security) Tools I frequently use

"...
MakeMeAdmin
Sysinternals tools (Regmon, Filemon, ProcExp, Autoruns)
PureText
MSN Desktop Search
IFilters for Desktop Search
Windows 2003 Resource Kit tools
XP Power Toys (TweakUI, Open Command Prompt Here)
DropMyRights
Adobe Reader Speedup
Group Policy Management Console
Microsoft AntiSpyware
Advanced Security for Outlook
Spamhilator
RMS Toolkit
..."


A very cool list of security tools from Mike Lonergan. Some I know/use, but some were new to me...


PrivBar -- An IE/Explorer toolbar to show current privilege level

PrivBar -- An IE/Explorer toolbar to show current privilege level

"I've long wanted a way to know at a glance whether I am logged in as a member of the all-powerful Administrators group, the slightly less-powerful Power Users group, or as an ordinary User. The more I use RunAs (including with Explorer)and MakeMeAdmin, the more I need to be able to distinguish privilege levels of various apps on my desktop. Someday I might try to come up with a robust way to do this for all windows on my desktop. For now, I've got PrivBar.

PrivBar is a toolbar for Explorer and Internet Explorer that shows you broadly at what privilege level that particular instance is running. ..."


A cool IE toolbar that shows you the basic privilege level of IE's user context (i.e. if the launching user is in the local admin, power users or users group.

A nice companion if your on the "Run IE as a normal user" ride...

Enabling host disk cache under Virtual PC

Enabling host disk cache under Virtual PC

"When you are running operating systems other than Windows NT / 2000 / XP / 2003 under Virtual PC you can gain a performance boost by enabling host side disk caching. This is not enabled by default as it is not architecturally correct behavior - but I have seen situations where it can result in a 25% speed improvement in disk I/O intensive applications.

You can enable host disk caching by starting Virtual PC with the '-usehostdiskcache'. This setting is then enabled globally on all virtual machines that you launch in that session.
Cheers,
Ben"


Nice tip if you're running non-NT based OS's as a VPC guest OS.

Monday, January 31, 2005

RFC 3994:Indication of Message Composition for Instant Messaging

RFC 3994: Indication of Message Composition for Instant Messaging, H. Schulzrinne

"Status of This Memo

This document specifies an Internet standards track protocol for the
Internet community, and requests discussion and suggestions for
improvements. Please refer to the current edition of the "Internet
Official Protocol Standards" (STD 1) for the standardization state
and status of this protocol. Distribution of this memo is unlimited.

Copyright Notice

Copyright (C) The Internet Society (2005).

Abstract

In instant messaging (IM) systems, it is useful to know during an IM
conversation whether the other party is composing a message; e.g.,
typing or recording an audio message. This document defines a new
status message content type and XML namespace that conveys
information about a message being composed. The status message can
indicate the composition of a message of any type, including text,
voice, or video. The status messages are delivered to the instant
messaging recipient in the same manner as the instant messages
themselves.

..."


Now I'm all for standards, but a RFC for this? :|

Cubicle Mines

cubicle mines - hack a day - www.hackaday.com:

"it's officialy monday again. another week of mindless drudgery and stolen red staplers. if going postal with a nerf gun isn't your bag, perhaps something more subtle such as this mini claymore mine would be more appropriate. you can make one from common materials found in your desk drawer and a strech of scotch tape provides a functional and decorative trip wire. yeah, probably a really bad idea but a great hack nonetheless."

Yeah, probably a bad idea... sigh

But for those of you [additional comments deleted] who keep stealing my pens and post-its, you better keep your eyes open!

:|

Using AI to beat CAPTCHA

Using AI to beat CAPTCHA...

Interesting post on ways to beat simple CAPTCHA used to protect many blogs against comment spamming.

It's insipred a minor flamewar, as you might expect.

(via Julia Lerman Blog - Don't Be Iffy... - Mad Genius at work

Sunday, January 30, 2005

Updater Application Block V2

patterns & practices: Updater Application Block: News item

"This current release of the Updater V2.0 is the Feature Complete community drop. This includes the source code for the block, 4 quick starts and the design document.

We have refactored the design and code considerably from the last release. We have added three new quick starts bringing the number of quick starts to a total of four. We have added several new post processors that could be invoked as part of the activation.

Please the read FeatureComplete_UABv2.ReadMe.doc in FeatureComplete_UABv2.zip (downloadable from the Releases section), for step-by-step details to run the quickstart and to get an understanding about the overall design of UAB v2. "


This latest Updater block also ties into/has a dependency with the new Enterprise Library.

In the past I've looked at this and the App Updater Component and went with the component due to its simpler implementation. But with this new Block it might be time to take a second look...

.NET User interface for Tracking down managed memory leaks

.NET User interface for Tracking down managed memory leaks

An interesting .Net UI for hunting down memory leaks... Also included are some links to other posts on detecting .Net memory leaks.

Bin and source are both available...

Saturday, January 29, 2005

Automated transcription of WAV files in .NET using Microsoft Speech API (SAPI)

Automated transcription of WAV files in .NET using Microsoft Speach API (SAPI)

Interesting VB.Net code snip that uses Microsoft Speech SDK, SAPI 5.1's speech recognition on a wave file.

Interested in "OCR" for wave files, I played with this a little last night. I've only been playing with it a little, but in very short order I was able to take a wave file, where I recorded myself reading the Declaration of Independence and then convert that to text (with position marks).

It's no where near perfect (eyeballing the text file, I'd say 70-80% accuracy). But it IS free.

I'm thinking it might be used to triage voice files prior to sending them for professional transcription. Given the costs of profession transcription, the more focused you are in using such a service, the better…

I'm still in the very early phase of investigating this tech and am only doing it with spare cycles... One thing I'm not happy with yet is how well it handles low sampling level wav files (i.e. like a voice mail converted to wav). Taking my sample and lowering is level from 22khz to 8 destroyed the accruacy... It was still clearly understandable, but SAPI didn't like it... So more research (cause I could be doing something stupid too)...

Even in the best circumstances, if you've played with the dictation feature in Office2k3/XP you'll know there's only so much you can expect.

Friday, January 28, 2005

Gizmodo : Toto's MP3 Playing Toilet

Gizmodo : Toto's MP3 Playing Toilet

"It's not wrong to love a toilet company, I promise. Toto continues to innovate in the john, with a brand-new model that includes an MP3 player that loads songs from swappable SD cards. It appears to be an optional accessory for Toto's new models, which also include built-in air fresheners and other civilized accouterments."

If it's self-cleaning then I'm sold...

Download details: Enterprise Library

Download details: Enterprise Library

"patterns & practices Enterprise Library
January 2005
This release of Enterprise Library includes: Caching Application Block, Configuration Application Block, Cryptography Application Block, Data Access Application Block, Exception Handling Application Block, Logging & Instrumentation Application Block, and Security Application Block.

Overview
The patterns & practices Enterprise Library is a library of Application Blocks designed to assist developers with common enterprise development challenges. Application Blocks are a type of guidance, provided as source code, that can be used as-is, extended or modified by developers for use on enterprise development projects. Enterprise Library features new and updated versions of application blocks that were previously available as stand-alone blocks. All blocks included in Enterprise Library have been updated with a particular focus on consistency, extensibility, ease of use and integration."


As you'll read everywhere in the MS blog-sphere, the MS Enterprise Library is now available...

Fiddler PowerToy - Part 1: HTTP Debugging

Fiddler PowerToy - Part 1: HTTP Debugging

"Introduction
Have you ever found yourself wondering how Microsoft Internet Explorer interacts with your Web application? Have you encountered a strange performance bottleneck that you can't track down? Are you curious about which cookies are being sent, or what downloaded content is marked as cacheable?

Microsoft Fiddler can help you answer these questions, and many more. Fiddler is an HTTP debugging proxy that logs all HTTP traffic between your computer and the Internet. Fiddler enables you to inspect all HTTP traffic, set breakpoints, and "fiddle" with incoming or outgoing data. Fiddler is much simpler to use than NetMon or other network debuggers because it exposes only HTTP traffic and does so in a user-friendly format.

Fiddler includes a simple but powerful Microsoft JScript .NET event-based scripting subsystem flexible enough to support a broad array of HTTP debugging tasks. Written in C# on the Microsoft .NET Framework, Fiddler is available as an unsupported PowerToy for Internet Explorer.

..."


MSDN has just published this article on the very cool tool called Fiddler. Since I found it (http://coolthingoftheday.blogspot.com/2004/04/fiddler-http-debugger-fiddler.html), Fiddler has earned its place in my "must have" tool set.

(via IEBlog - Http Debugging with Fiddler

Nice, Free Resources

Nice, Free Resources

"...

www.zoneedit.com: This allows you to create and manage up to 5 DNS zones for free. I have had some zones with them for a little over a year now with no downtime.

www.cacert.org: This site will let you create SSL certs for free. Unfortunetly, the root chains arent included with popular browsers, but it is an alternative solution to just creating the cert yourself.

..."


A couple interesting free resources...

ISBN Validator

Altair Software Production

"This software is validation control for ASP.NET applications. Provides standard way to validate if user entered correct ISBN (International Standard Book Number). Can handle both ISBN-10 and new ISBN-13 format (more info about these formats may be found at www.isbn.org)."

Something I might be able to use for my Bookshelf project.

Thursday, January 27, 2005

Addison-Wesley Articles and Sample Chapters

Articles

993 articles and sample book chapers from Addison-Wesley.

Here are just the first ten...

"1. Fearless Change: Where Do You Start?
By Mary Lynn Manns, Linda Rising
Jan 21, 2005

2. Installing and Configuring SQL Server Reporting Services
By William Vaughn, Peter Blackburn
Jan 21, 2005

3. Organizations and Change
By Mary Lynn Manns, Linda Rising
Jan 21, 2005

4. Overview of OpenBSD
By Brandon Palmer, Jose Nazario
Jan 21, 2005

5. User Interface Design and the Importance of Color for .NET Database Systems
By Rebecca M. Riordan
Jan 21, 2005

6. Using Eclipse AspectJ: Your First Steps
By Andy Clement, Adrian Colyer, George Harley, Matthew Webster
Jan 21, 2005

7. Building the Foundations for a Highly Available Windows Server Architecture
By Jeffrey Shapiro, Marcin Policht
Jan 14, 2005

8. Introduction to Troubleshooting Linux Firewalls
By Scott Shinn, Michael Shinn
Jan 14, 2005

9. J2EE Schema Management with Hibernate
By Will Iverson
Jan 14, 2005

10. Introduction to SOA with Web Services
By Greg Lomow, Eric Newcomer
Jan 7, 2005 "


Generally tons of reading and a nice way to check out a title prior to purchase.

On a similar note, I might have to buy this soon, Unicode Architecture: Not Just a Pile of Code Charts.

(via Ohad's WebLog - Addison Wesley's Free Chapters and Articles

ClickOnce - Everything you ever wanted to know about

ClickOnce - Everything you ever wanted to know about

The title says it all... This post has a number of ClickOnce links.

.NETiT - Open Source/Java Projects Ported to .Net

.NETiT - Home Page

".NETiT is a repository for Open Source projects that have been ported to Microsoft .NET.

Released
jCollections - GNU Classpath 0.6.0 Collections Package
jNaming - GNU Classpath 0.6.0 Naming Package
ORO.NET - Apache Jakarta ORO 2.0.8 Text-Processing Package
Regexp.NET - Apache Jakarta Regexp 1.3.0 Regular Expression Package
Xalan.NET - Apache Xalan 2.5.2 XSLT Processor
Xerces.NET - Apache Xerces 2.6.0 XML Parser

Scheduled
jSecurity - GNU Classpath 0.6.0 Security Package
Crypto.NET - GNU Crypto 1.1.0 Package
Jessie.NET - GNU Jssie 0.9.5 Package, clean-room implementation of Java Secure Sockets Extension (JSSE)

Being Considered
jClasspath - GNU Classpath, a clean-room implementation of Java class libraries
jTools - GNU Classpath Tools

..."

Cool ...

Nice that .Net can build on Java's open source existing knowledge foundation.

(Ohad's WebLog - NETiT - Open Source projects that have been ported to .NET

Wednesday, January 26, 2005

William H Gate's Blog

William H Gate's Blog

Yes, THAT William H. Gates.

It looks real and doesn't appear to be a hoax. But then again I have to wonder...

I'm sure time will tell.

(via IPattern.com (Maxim V. Karpov) - Sir Bill W. Gate is blogging!)

UPDATE via IPatten.com: Time did tell. Site is offline now...

Very Nice Microsoft Certification Plan

The road to Microsoft certifications

"Part of my new job includes getting at least a MCP. The road I am interested in is architecture and there is no certification offering from Microsoft as yet. So, I am designing my own based on existing certifications. If I mapped it correctly I will pick up the following certs, in order, over the next 10-12 months:

MCP
MCAD
MCSD
MCDBA
MCSA
MCSE

Seems pretty aggressive! After all, you need to take the following number of exams: MCP=1, MCAD=3, MCSD=5, MCDBA=4, MCSA=4, MCSE=7. That's 24 exams! Let's slow down a bit. Betcha I can do it in 12 tests. Here's how

..."


Very nice MS Certification plan... With all the cert's I'd like to get one day.

Maybe this is my Cert year? :|

Memtest86+ - Advanced Memory Diagnostic Tool

Memtest86+ - Advanced Memory Diagnostic Tool

"... The first version of Memtest86+ was released on early 2004, based on memtest86 v3.0 that was not updated since mid-2002. Our main challenge was to provide an up-to-date version of this useful tool, as reliable than the original. Our work started when we got the first AMD64 system. Unfortunatly, the original memtest v3.0 didn't run at all. After looking at the source code, we fixed the bug.After some days, I saw lot of other things like chipsets or CPU that were not correctly detected or not detected at all. As I'm the chief-editor of a french hardware website (www.x86-secret.com), I have access to lot of recent hardware and I can test and debug on quite all available motherboards on the market. After adding detection for all current CPUs, I've added detection for all current chipsets (SiS, VIA, nVidia, Intel) and ECC Polling for AMD64, i875P and E7205. Then, I decided to display some useful settings for the most popular chipsets. For exemple, on i865PE/i875P series, memtest86+ will now display FSB & Memory frequency, PAT status, memory timings, ECC status and the number of memory channels. Next version will perhaps contain several enhancements and bug-fixes. ..."

A cool open source memory test utility that you can use via a bootable CD or USB Stick/ThumbDrive...

(via l'XPditif... Le weblog Bleu-Blanc-Belge qui décoince - Nouvelle version de MemTest)

CodeSmith Template Resource

Template Share :: CodeSmith Support Forum

Ton's-o-Templates... Another cool CodeSmith resource.

Larkware - The Daily Grind 545

GotDotNet User Sample: AppUpdater Extended

GotDotNet User Sample: AppUpdater Extended

"I extended the AppUpdater.dll to support the use of a fileserver or simply any drive or folder, on top of the available WebServer support. All settings (polling rate, etc.) are now stored in an .ini file and can be changed dynamically inside the main application with one simple statement. The whole process has extensive logging that may be enabled by a simple setting in the ini file. Not all functions of the dll have been tested though: for instance, the handling of strongly named updates has to be tested yet. Oh yes, I ported the source to VB... It's worthwhile to have a look at how event raising between threads is handled."

I've used the original AppUpdater component in a number internal apps and it does the job quite well. Nice to see it extended in this way.

The Code Project - Distributed Command Pattern

The Code Project - Distributed Command Pattern - an extension of command pattern for connected systems - C# Programming

"Distributed Command Pattern is a pattern for connected systems which implements command pattern. It frees designers from thinking about the communication and helps them concentrate on implementing commands as if it is a regular desktop application. The framework takes care of the communication.

...

Distributed Command Pattern is a proposed pattern for solving the extra architectural design issues which need to be considered for connected systems than designing regular applications. The goal of this pattern is to “Have the same design for both standalone and connected systems”. This pattern allows developers to concentrate on designing a regular application following the Command Pattern [Gamma 1995] without ever thinking that this application is going to connect with other systems. This pattern frees a developer from thinking about the transport and communication protocol while designing the commands, and keeps the architecture simple. Designers need not worry about how to send necessary data to the server when some command gets executed and how to process received data from the server and then reflect on the UI of the connected applications. When a command gets executed locally on one running application, distributed design pattern takes care of the hurdles of executing the same command in all connected systems simultaneously in order to keep them in the same state. From a designer’s point of view, the architecture remains as simple as a regular desktop application designed using regular command pattern having no network awareness, yet it performs all the necessary communications in order to execute the commands on all connected applications as if the command has been invoked internally.

... "


Added to my Read This folder...

I want to take a much closer look at this. I need to build a highly distrubuted and scaleable processing system (i.e. everything runs on 1 machine or is spread across 150+...) for the next rev of a work system and really don't want to reinvent.

Tuesday, January 25, 2005

The Code Project - Introduction to Mono - Your first Mono app

The Code Project - Introduction to Mono - Your first Mono app - Cross Platform

"Introduction to Mono - Your first Mono app
By Brian Delahunty

The first in a series of articles about Mono. This article explains how to install Mono and shows how to compile your first Cross Platform application.

..."


Cool article on getting up and running with Mono on Windows/Linux (which can be a pain sometimes) and writing your first Mono app ("Hello world" of course... :)

woot - CubeSmart CubeDoor

woot_detail



"If you could buy this and then turn in your TPS report - that'd be greeeeaaaat.

$19.99 + $5 Shipping and Handling

If your co-workers are anything like ours, it's probably easy for you to drift off into periods of reverie, daydreaming that you're pushing them down the fire stairs, or slamming the copier lid on their heads over and over and over and over and over.

Man, listen to that guy at the next desk trying to give out a URL over the phone.

...tactfully let the rest of your fellow office monkeys know you’re too busy to gab—by retreating behind your Cube Door. Take note: this is no crappy cardboard cut-out cube curtain! No, it’s made from NanoWeave, whatever that is.

Also included at no additional cost to you is one (1) Iomega Zip Monitor Mirror so you can keep an eye on those creeps alongside whom you labor. (Smile in your face, all the time they want to take your place.) Just like you check the side mirror before you open a car door, you are advised to check this Monitor Mirror before you open a porn window.

Features:
When closed, co-workers can still see you, but the “BUSY” message is clear.
Takes just seconds to install, and starts working immediately
Made from NanoWeave™
Coverage area 40” wide x 36” tall
Metal roller frame/housing
..."


I SO need one of these. I just wish it including soundproofing

:|

OpenTTD 0.3.6 Released

OpenTTD

"Tuesday, January 25th 2005 01:24 GMTOpenTTD 0.3.6 Released!

The OpenTTD team is proud to announce version 0.3.6 of OpenTTD merely a month since 0.3.5 was released. A ton of fixes and new features so enjoy!"


Open TDD is a cool open source implementation of Transportation Tycoon Deluxe that I've been playing for a while.

Recently it seems to have become more active with the release's coming quite often.

If you liked TTD, you should check this out...

ieSpell - Spell Checker add-on for Internet Explorer - v2.1.1 (build 325) released! 01/22/2005

ieSpell - Spell Checker add-on for Internet Explorer

"ieSpell v2.1.1 (build 325) released! 22/01/2005

This minor update contains the following fixes and new features:
Previously, the support for ShowModalDialog only works if the referenced HTML contains full markup (i.e. enclosing tags). In the new implementation, ShowModalDialog can take _any_ HTML elements.
Fixed bug where ieSpell may miss spelling errors when a sentence has line breaks but without preceding spaces in them. (very rare)
Added support for HTMLArea2 (a freeware HTML rich text editor)
Added support for ignoring words with underscore in them.

..."


An update for the VERY cool IESpell utility has been recently released...

Monday, January 24, 2005

Gizmodo : BEX-1 Earthquake Shelter Bed

Gizmodo : BEX-1 Earthquake Shelter Bed

Living in Southern California I find this bed intersting...

New/updated Icon Sets with Visual Studio 2005

New/updated Icon Sets with Visual Studio 2005

"Visual Studio installs with a collection of bitmaps, cursors, icons, metafiles, and videos to assist developers with Windows and Web application development. The collection of image resources from various Microsoft products has accumulated over time, and we've heard clearly from our customers that the old outdated elements are essentially unusable and what they need is a library of updated, current images for use in their new applications!
...
To answer this need, we have defined and organized a new image resource collection to be shipped with Visual Studio 2005. In Visual Studio 2005 Beta2, customers will see over 600 images in .bmp and .ico format, including the most common actions and elements found Windows, Office and Visual Studio UI. In the RTM version, we will additionally extend the library to include web format (.gif) for our users who would appreciate a smaller size for their web applications.

... "


Some great news via Julia Lerman's blog...

When you're graphaiclly challenged like I am this really is good news. And it's nice to see MS take this step to update the collection [personal comments about how it's about time deleted].

:)

(via Julia Lerman Blog - Don't Be Iffy... - New Icons to be included with VS2005

Roman's Weekly SQL Server Tip - Better way of sending email from SQL Server (XPSMTP)

Roman's Weekly SQL Server Tip - Better way of sending email from SQL Server

"If you've ever used SQL Mail to send email messages from T-SQL, you probably know how painful it is to get the whole thing up and running. One of the reasons is that both SQL Mail and SQL Agent Mail rely on MAPI, forcing you to go through a complicated setup process, including having to install Outlook on the SQL Server machine and creating an Exchange profile. Another problem is that MAPI is not reliable on SQL Server clusters and this scenario is actually not supported by Microsoft."

Yeah, I've disliked MS SQL's email feature for forever... the most reliable email system I've used is to use a command line program (blat) to send emails. And that's just doesn't feel right.

"...I recently discovered that Gert Drapers, a member of the SQL Server team, wrote an extended stored procedure called xp_smtp_sendmail that allows you to easily send SMTP mail from T-SQL code. You can use it with both SQL Server 7.0 and 2000 but they are implemented as separate DLLs. You can download the xp_smtp_sendmail stored procedure from Gert's SQLDev.net website. The setup is very easy, just drop the dll to the binn folder and run sp_addextendedproc to register the extended procedure with SQL Server. Gert's site provides very good documentation and sample code to get you up and running very quickly. ..."

Very cool...

As I wrote this post, it really started to sound familar!

sigh... Time to search my blog.

LOL. Guess what I found.
http://coolthingoftheday.blogspot.com/2004/05/xpsmtp-smtp-emails-from-sql-server.html

Well I guess if it was cool last year, it's still cool now... :0

The Code Project - IProgressDialog .NET

The Code Project - IProgressDialog .NET - .NET

"...The reason for this article is to show 'pure' .NET wrapper for IProgressDialog[^] unleashed by sytelus in his Using Windows Explorer Progress Dialog In Your Application article.

Whilst the original article is quite good and I liked the idea greatly, I have found it a bit too 'slow and heavy' with .tlb imports. I was also unable to find any other articles/examples of implementation for .NET, so I decided to see if I can do it myself.
So here is what I have come up with

..."


Damn. You really do learn something new every...

I never knew the Progress dialog HAD an interface, or was callable from my apps. I thought it was built into Explorer... Well now I know better. And now I have to throw away my frmProcess form. And I put a number of hours into it, making it match as closly as possible and to be reuable... Oh well less code for me to maintain. sigh :|

The above article covers .Net, but I also have a number of VB6 apps. Doing a quick google for VB6 samples, there's a number of examples but the first shows me just what I need IProgressDialog

I feel kind of stupid not knowing about this and in spending any time at all on a virtual copy. But then again I know there are others in my shop who don't know about it and have made their own virtual copies, so I don't feel too bad (RIGHT... I still feel stupid. Damn I HATE reinventing the wheel).

Well nothing can be done about the past, so time to focus on the future...

Sunday, January 23, 2005

New Beta 2 Feature: File-system based web applications are now supported on the Distributed System Designer

New Beta 2 Feature: File-system based web applications are now supported on the Distributed System Designer

"A built-in file-sytem based application server is one of the great features in VS 2005. It gives you the option of creating a new Web application in any folder in your file-system without requiring Internet Information Services (IIS) or Front Page Server extensions installed on your computer. This is awesome because it allows users to develop and debug Web applications without having IIS installed and without having Administrator access. This server further provides users with a more secure way of building applications on a development machine, as the Web server cannot be accessed remotely, and automatically shuts down when Whidbey is closed.

While the file-system based server has been in VS2005 since Beta 1, there was no support on our designers for those types of web service applications. Consequently, in Beta 1, IIS was required if you were planing on implementing any web applications on the Application Designer. This resulted in significant customers feedback. So... I'm happy to say... in Beta 2... we will have support for the built in file-system based application server! Architects/Developers will no longer need IIS to implement applications on our designer. Furthermore, you can now bind a file-system based ASP.NET application to an IIS Logical host to verify that it can be deployed in production; when you will no longer use the built-in file system based application server.

In fact, we believe that most customers will prefer the file-system based application during development. Therefore, ASP.NET Applications now default to file-system based web-applications on the design surface. To switch to IIS based web applications you will now have to manually enter an http:// location for the ASP.NET web application project in the 'Project' property.

..."


This is VERY cool! According to the comments on the original post, I'm keeping my eyes open for B2 in March 2005...

I still think .Net 2.0/VS2005 is going to be the break out version...

MSDN Events Online - Debugging and Tweaking Week

MSDN Events Online - Debugging and Tweaking Week

"David Waddleton, well-known for his "Geek Speak" webcasts, is presenting a 5-part series on testing and optimization entitled "Debugging and Tweaking Week". Join David as he dives into techniques you can use today with .NET 1.1 and into the future with the upcoming release of Visual Studio 2005."

Parts 1 & 2 are already full, but as of this morning there's still room in Parts 3-5 (and of course you can also pick up the recorded versions of 1-2 after...).

MSDN Webcast: Debugging and Tweaking Week (Part 1 of 5): How to Debug with .NET (Level 200)

MSDN Webcast: Debugging and Tweaking Week (Part 2 of 5): Debugging Production Applications (Level 400)

MSDN Webcast: Debugging and Tweaking Week (Part 3 of 5): Visual Studio 2005 Debugging Enhancements (Level 200)

MSDN Webcast: Debugging and Tweaking Week (Part 4 of 5): How Optimized is Your Data? (Level 300)

MSDN Webcast: Debugging and Tweaking Week (Part 5 of 5): Test Driven Development with Visual Studio 2005 (Level 300)

MS's webcasts are good (and the price is just right). Very little market-speak, presented well, by those who know what they are talking about.

In almost every 'cast I've heard/seen at least one new thing I didn't already know. While they can only provide so much information in a hour, the number of different casts make up for that. It's kind of like a Dev conference (TechEd, PDC, VSLive, etc). But instead of having your brain cramped full in a week, it's spread out over a number of days...

Amazon Web Services Blog

Amazon Web Services Blog

An Amazon Development blog... One I'll be watching to see if there's any good poop on coding against the Amazon Web Services...

(via Patrick Tisseghem's Blog - Amazon Web Services Blog)

Saturday, January 22, 2005

Installing and Using the Office 2003 Primary Interop Assemblies

Office Developer Center: Installing and Using the Office 2003 Primary Interop Assemblies

"Summary: Learn how to get and install the Office 2003 primary interop assemblies (PIAs), and how to reference and troubleshoot them.

Contents
Introduction
Getting the Office 2003 PIAs
Installing the Office 2003 PIAs
Using the Office 2003 PIAs
Additional Resources

Introduction
In Microsoft Office 2003, you can work with COM objects exposed by the Office applications by using a primary interop assembly (PIA). In this article, find out how to get, install, and reference the PIAs.

You can find details about PIAs and interop assemblies and how to program against the interfaces and classes exposed by Office 2003 in managed code from a number of articles on the subject. For information about PIAs, interop assemblies, and their uses, see Primary Interop Assemblies (PIAs) and A Primer to the Office XP Primary Interop Assemblies.

..."


I'm going to need this sooner or later...

Slashdot | Linux Live Gaming Project

Slashdot | Linux Live Gaming Project

"Fabio writes 'The mission of LLGP (Linux Live Game Project) is show to Wintendo users that also Linux can be used to game. And now a new version is out. Features: KDE 3.3 with Plastik theme and Nuvola icons, kernel 2.6.10, Nvidia drivers, TORCS, Wesnoth, SuperTux, TuxRacer and much more! It's based on Knoppix, but contains deep changes in the startup scripts. Now the hardware probing is completely based on hotplug and udev; kudzu was removed. Challenge your friends on LLGP, and convert them to Linux!' "

I dig bootable linux images... Why? Not too sure. I never seem to find the time to play with them much. I guess it's just the concept behind them that I like. Installing OS's, drivers, apps, etc is such a pain and in the windows world it's something you seem to need to do every year or so...

So I look at these bootable OS's as a possible alternative. Also it's pretty hard to spyware/virus infect a CD-R... :)

Now that DVD-ROMS are pretty much standard, I'm interested in seeing just how complete a dual layer DVD-R bootable OS image can be. Look at what's been done with 650MB and imagine what could be done with 8GB...

Anyway, I've downloaded this and will be burning this to CD real soon now. Also so far it seems to run pretty well as a Virtual PC Guest OS.

The Code Project - Circular Menu Component

The Code Project - Circular Menu Component - .NET


"Describes the use and architecture of an animated, circularly arranged pop-up menu control written in C#.

...

Circular menus have a few advantages when compared to traditional popups:

1. They look cooler: Users will appreciate the fresh look and feel associated with this type of menu, and it will add extra coolness to your application.

2. They're more fun: The animation and new style of circular popups help to create a more "fun" atmosphere for your program. This can help users lower their guard and learn your application with less resistance.

3. They can provide better user efficiency: Because menu options are arranged circularly around the click position, each option is equidistant from the user's mouse when the menu is originally shown. Circular menus are iconic, and can be thought of as a temporarily visible toolbar. Because users can find icons more rapidly than they can text, use of the circular popup can be faster than a normal popup, and because the popup appears where the user's focus is, they can even be faster than a normal toolbar.

..."

Circular menus are now quite common in PC games. Now Mark Biddlecom has released one I can use for WinForms.

Anyone looking for a new popup/right-click menu paradigm should check this out. Sometimes "standard" is good, but it's "sizzle" that sells. My only problem with this component is that the icons will make or break it and I'm pretty graphically challenged... sigh

Still, it looks like a pretty cool component. Maybe I can draft some graphic help... :)

Friday, January 21, 2005

DotNetFirebird - Using Firebird SQL in .NET

DotNetFirebird - Using Firebird SQL in .NET

Dan at dotnetfirebird.org just emailed me, pointing me to DotNetFirebird: Using Firebird SQL in .NET, http://www.dotnetfirebird.org

As quoted from the DotNetFirebird home page,
"Firebird SQL is a powerful open source database that can be easily used in .NET. I believe it has a big potential (it is full-featured, requires zero administration, can be embedded, etc.). However this potential has not been fully discovered by .NET developers who rely on Microsoft SQL Server heavily."

Firebird has been getting some airplay recently. And with the "dude, check out this site..." [paraphrased] email from Dan, well it's time I took a closer look.

For those of you who have a life (err, I mean... um... yeah :), Firebird is based on/derived from/a child of/etc Borland's Interbase (who I believe purchased it from someone else, bla bla bla). I'm not going to do a long history of Firebird/Interbase, but it does have a long "under the radar" history. For example, I briefly played with Interbase when it was bundled with Delphi (v1 or 2 I think... i.e. about a million tech years ago).

It "really" doesn't compare to Access (apples and oranges). It does compare, and compare well to MSDE. Where it has a good head start. SQL Express is closer to Firebird in the embedded space, but we have a while to wait for that... And of course Firebird is not only free but also open source.

Another thing I find really interesting is the work on integrating/linking/using Firebird and DotLucene. You know I've been jones'ing to play with DotLucene/OpenLucene (here and here.

On http://www.dotnetfirebird.org/ you'll find a ADO.NET provider for Firebird, links to download Firebird, code snips, and generally a bunch of information on using Firebird and .Net together.


Thanks for the cool tip Dan.

Netron Light Framework

Netron Light Framework


"Francois Vanderseypen has just published a new article about The Netron Project on The Code Project. "Netron Light" is a getting started guide to the Netron diagramming library for .NET. He has also release a special light version of the framework, which should be easier for novice users to get started with. You can download the light framework here and the article in PDF format here.

It is simply a lovely framework - well written and easily extensible.

..."


I could have sworn I've posted about Netron in the past... But I guess not.

I've been following this project for a while, planning on playing with it as soon as I needed a diagram solution. I've downloaded it before and took a quick look. The main package is a little much and there's a learning curve that I wasn't ready to climb yet.

Well the Light framework and Code Project article will help me up this curve a long way...

Lord of the Rings (Chris Pirillo) [Humor]

Lord of the Rings (Chris Pirillo)

This is an animated GIF that parodies LOTR-Fellowship.
LMAO. Oh man, this just killed me...

CodeGuru: Access Newly Available Network Information with .NET 2.0

CodeGuru: Access Newly Available Network Information with .NET 2.0

"Welcome to the next installment of the .NET Nuts & Bolts column. This article explores some new items in the System.Net namespace, including the new System.Net.NetworkInformation namespace that will be included in the upcoming 2.0 release of the Microsoft .NET Framework. It adds support for some very useful network-related items, such as network address and traffic information, that were not included in the 1.0 and 1.1 versions of the base class library (BCL). The article explores some of these new items and how you can use them to your advantage.

..."


A cool short article that highlights some of the new and very cool "network" related functionality coming in .Net 2.0.

For example, it will take about two lines of code to "ping" now. FTP'ing is also very easy (three lines to download a known file...). NIC info is right at hand too...

Slashdot | Bugzilla 2.18 Goes Gold

Slashdot | Bugzilla 2.18 Goes Gold

"After almost three years of development, the Bugzilla project has released long-waited Bugzilla 2.18. It contains many new features, a huge number of bug fixes, some security updates, and more. It is also the first Bugzilla version to run unmodified on Windows. In parallel, security release 2.16.8 and a new development snapshot 2.19.2 have been announced."

I've been watching Bugzilla, waiting for a good Windows install procedure. Well the wait is over. The Windows install procedures appear to be very complete, with instructions, links, tips, etc.

When/if I ever need another bug tracking system, Bugzilla will be one of the first I look at...

The Code Project - Merging .NET assemblies using ILMerge - .NET

The Code Project - Merging .NET assemblies using ILMerge - .NET

"As you know, traditional linking of object code is no longer necessary in .NET. A .NET program will usually consist of multiple parts. A typical .NET application consists of an executable assembly, a few assemblies in the program directory and a few assemblies in the global assembly cache. When the program is run, the runtime combines all these parts to a program. Linking at compile time is no longer necessary.

But sometimes it is nevertheless useful to combine all parts a program needs to execute into a single assembly. For example you might want to simplify the deployment of your application by combining the program, all required libraries and all resources into a single .exe file.

...

Since a .NET module is basically just an assembly without an assembly manifest, it should be possible to convert an assembly to a .NET module, at least that is what I thought. When researching this on google I found a tremendously useful tool on Microsoft research called ILMerge. This little gem makes it possible to link multiple assemblies to a single one.

First, you would compile your libraries to dlls and your program to an exe referencing the dlls. This is exactly what visual studio would do if you had multiple libraries and a program referencing these libraries, so there is no need to do this on the command line.

csc /target:library /out:ClassLibrary1.dll ClassLibrary1.cs
vbc /target:library /out:ClassLibrary2.dll ClassLibrary2.vb
vbc /target:winexe /out:Program.exe /reference:ClassLibrary1.dll, ClassLibrary2.dll Program.vb

This will produce a normal .exe that requires the two dlls in the program directory or in the global assembly cache to run.

Now you can link these parts to a single self-contained exe using ILMerge:

ILMerge /target:winexe /out:SelfContainedProgram.exe Program.exe ClassLibrary1.dll ClassLibrary2.dll

The nice thing about this is that you can also merge third party assemblies like commercial class libraries into your program. And you do not have to modify your build process. All you have to do is to merge the assemblies to a single exe before deploying.

..."


Very cool!

I've seen a third party product (Thininstall) that does something like this, as well as include the needed Framework components all in one EXE... But those kinds of products scary me a little. Not saying that ThinInstall doesn't sound VERY cool too though... I just wonder about testing, compatibility, support, etc, etc.

ILMerge is a MS utility, and one that is a little less scary. Its scope is less broad and just builds on the capabilities of the .Net Framework. i.e. No magic involved.

For more information, check out the ILMerge home page at http://research.microsoft.com/~mbarnett/ilmerge.aspx.

Here's a snip from the home page.

"ILMerge is a utility that can be used to merge multiple .NET assemblies into a single assembly. It is freely available for use from the MSR Downloads site. If you have any problems using it, please get in touch. (mbarnett _at_ microsoft _dot_ com)

ILMerge takes a set of input assemblies and merges them into one target assembly. The first assembly in the list of input assemblies is the primary assembly. When the primary assembly is an executable, then the target assembly is created as an executable with the same entry point as the primary assembly. Also, if the primary assembly has a strong name, and a .snk file is provided, then the target assembly is re-signed with the specified key so that it also has a strong name.

ILMerge is packaged as a console application. But all of its functionality is also available programmatically. While Visual Studio does not allow one to add an executable as a reference, the C# compiler does, so you can write a C# client that uses ILMerge as a library.

There are several options that control the behavior of ILMerge. See the documentation that comes with the tool for details.

The current version is 1.0.1816.20370 (created on 21 December 2004)."


Not only is it cool, but development on it seems pretty active.

Deploying .Net app's is already pretty easy (assuming the framework is already in place). This makes xcopy deployment even easier. I think this utility is a keeper...

Thursday, January 20, 2005

FileFormat.Info - file format information and conversions

FileFormat.Info - file format information and conversions

This might well become my favorite File Extension / Unicode character web site...

Not only are file extensions & formats listed, but there's a format conversion, file specification details, MIME types and info on unicode characters.

(via Sorting It All Out - Search here or search for info on Unicode characters!

Scripter.NET 1.0

Quantum Whale | Products | Scripter.NET

"Scripter.NET is a component libary allowing to integrate script for the .NET
Framework script engines into applications, and to execute code at run time.

Scripter.NET uses VSA technology that makes possible to use VB.NET and JScript.NET scripts.

Scripter.NET is freeware product, meaning that you can use it for unlimited period of time and distribute binaries with your application for free. Source codes are available upon registration.

..."


Interesting sounding component.

(via WindowsForms.Net Scripter.NET)

beSpacific: Innovative Legislative Tracking Tool Now Available

beSpacific: Innovative Legislative Tracking Tool Now Available

"Joshua Tauberer, a grad student at U. Penn, has created an amazing legislative tracking service, GovTrack.us, which won the top prize in the Technorati Developer's Contest. The site's automated monitoring services are free, and the data is obtained from federal sources including THOMAS and the websites of the U.S. House and Senate. Users may track bills, issues or committees, representatives, or topics. Daily or weekly email updates are available for registered users, as well as news feeds. The site also includes blog postings on legislation, by authors registered with the site to have their comments appear on the GovTrack Blog."

http://www.govtrack.us/about.xpd
"...GovTrack.us fills the need for a source of information useful for people. It is both a large collection of data as well as a tool for filtering out what you don't want to see. You can dig deep in GovTrack, finding information the mass media does not have room for, and you can let GovTrack send information to you, like a newspaper customized to your interests. It's the power of the Internet put to use to close the citizen-country divide.

On this site you'll find the status of legislation, the speeches of representatives on the House and Senate floors, voting records, campaign contribution summaries, and more, plus the opinions of other users through their blog entries. And you can follow only the issues that interest you through email updates and RSS feeds."


Very cool.

What I think is the coolest is that the site provides information on the underlying data the site uses (Source Data). Including tips on using it yourself. Now that's cool.

Download details: Log Parser 2.2

Download details: Log Parser 2.2

"Log parser is a powerful, versatile tool that provides universal query access to text-based data such as log files, XML files and CSV files, as well as key data sources on the Windows operating system such as the Event Log, the Registry, the file system, and Active Directory. You tell Log Parser what information you need and how you want it processed. The results of your query can be custom-formatted in text based output, or they can be persisted to more specialty targets like SQL, SYSLOG, or a chart.

Most software is designed to accomplish a limited number of specific tasks. Log Parser is different... the number of ways it can be used is limited only by the needs and imagination of the user. The world is your database with Log Parser."


LogParser is a pretty cool tool. One of those utilities you might not need every day, but when you need it you really need it... It also has a COM API, which I find cool. The download includes not only the EXE/DLL but samples and nice a help/chm. AND you can plug in your own input formats...

You'll also want to check out, http://www.logparser.com/, The Unofficial Log Parser Support Site.

This is one of the more under utilized MS utilities...

(via Paul Schaeflein's SharePoint Experience - Log Parser v2.2)

NSurvey v1.8 is now available

free .net survey software solutions web based

NSurvey v1.8 is now available from the release download section.

This release has, again, some cool and unique features ... From the integration of the FreeTextBox component in your forms to an advanced file upload type and the new amazing repeatable section features, NSurvey gives you all the power you need to create, manage and enjoy your surveys or forms.

...


Cool, my favorite free Web Survey tool has rev'ed... It's getting better and cooler with each release.

(via TheServerSide.NET - NSurvey v1.8 released)

The Code Project - Release Excel Object - VB.NET

The Code Project - Release Excel Object - VB.NET

"Nearly every developer have encountered one day what I encountered while dealing
with com object and the pain in releasing it from memory.

in the following example, I will describe my experience in how I solved an issue with Excel object, and the way I followed to kill those hanging objects where I tried many known methods and none worked."


Seems like .NET <-> COM/Excel is fun for everyone... I ran into this early last year too and posted about it here, VS2003 & Excel "Leaking..." and Forcing Garbage Collection and here, How to fully close Excel when using COM Interop (addm: VS2003 & Excel "Leaking..." and Forcing Garbage Collection)

It's easy to go overboard when trying to deal with this. Also given how common this issues seems to be, I would think MS could provide official guidance, pattern, etc.

Yeah, once you figure it out, it's not hard to handle, but think about the man hours being wasted on this one issue. If I've run across three pretty much by accident, then how many other people have run into then then solved this? Hundreds? Thousands? Now add in the people making manged Outlook addin's and their "fun" with ReleaseCOMObject...

There must be a easier, less error prone and more "standard" way to work with COM objects from .NET. The PIA's seem to help, but only if you're using Office XP/2K3. And yeah, one day we'll live in a Managed world. But that's many years yet...

The Code Project - .NET UPS XML Tracking Interface DLL - SOAP and XML

The Code Project - .NET UPS XML Tracking Interface DLL - SOAP and XML

"A .NET DLL and sample application that interfaces with UPS's XML API to retrieve tracking information. You can also use it to generate an RSS feed...

The latest version, along with additional information will always be available at http://www.Young-Technologies.com/Utilities/Shipper_Interface/

This application demonstrates the .NET DLL that can be used to interface with the UPS API. Right now, UPS is the only supported shipper, and only tracking information is supported. The only viable alternatives are to write your own, or use an expensive commercial version.


..."


And I didn't know UPS had a XML API...

Saturday, January 15, 2005

MSDN .NET Framework Developer Center: Designing .NET Class Libraries

MSDN .NET Framework Developer Center: Designing .NET Class Libraries

"Designing .NET Class Libraries

The Designing .NET Class Libraries series presents design guidelines for developing classes and components that extend the .NET Framework. The goal of the Designing .NET Class Libraries series is to encourage consistency and predictability in public APIs while enabling Web and cross-language integration. The guidelines presented in Designing .NET Class Libraries are intended to help class library designers understand the trade-offs between different solutions. There might be situations where good library design requires that you violate these design guidelines. Such cases should be rare, however it is important that you provide a solid justification for your decision."


14 part series, spread over 4 months. Part one is the only one available so far.

I want to check this out when I get a chance... Every little bit helps and the price is just right.

ActiveWin.com - Scriptomatic 2.0

ActiveWin.com - Scriptomatic 2.0

"A completely new version of the famous Scriptomatic, the utility that writes WMI scripts for you. (And, in the process, teaches you the fundamental concepts behind writing WMI scripts for yourself.) Unlike its predecessor, Scriptomatic 2.0 isn't limited to writing just VBScript scripts; instead, Scriptomatic 2.0 can write scripts in Perl, Python, or JScript as well. In addition, Scriptomatic 2.0 gives you a host of new output formats to use when running scripts, including saving data as plain-text, as a stand-alone Web page, or even as XML. Scriptomatic 2.0 handles arrays, it converts dates to a more readable format, and it works with all the WMI classes on your computer; on top of all that, it also writes scripts that can be run against multiple machines. "

If you're doing WMI scripting, you'll want to check this out...

Friday, January 14, 2005

Honda to lease fuel cell vehicles to U.S. individuals

Japan Today - News - Honda to lease fuel cell vehicles to U.S. individuals - Japan's Leading International News Network

"DETROIT Honda Motor Co announced Tuesday that it will start leasing its pollution-free fuel cell vehicles to individual customers in the United States by the end of 2005, becoming the first automaker to do so.
At present, Honda and Toyota Motor Corp are marketing fuel cell vehicles to corporate clients and U.S. public entities on a leasing fee basis in both Japan and the United States. (Kyodo News)"


I have a Civic Hybrid and am very happy with it. Real world Los Angeles driving gets me 40-45 MPG. Still I'd rather not be buying gas at all. I've been waiting for a feasible non-gas vehicle for a while. CNG is close, but not close enough.

I really want a fuel cell car...

What really kind of pisses me off is that I have to buy my hybrid compact car from a non-US auto dealer. And now it looks like I might have to buy a fuel cell car from a non-US dealer too?

US Automakers. WAKE UP. I WANT to buy your products, but can't cause the only hybrids offered are SUV's. Um DUGH! I'm trying to SAVE gas here...

Sigh... sorry. Didn't mean to rant.

Here's to hoping that my next car will have a fuel cell based power plant...

(via Ed Draper - Honda to lease fuel cell vehicles to U.S. individuals

Download details: Office 2003: XML Schemas

Download details: Office 2003: XML Schemas

"This download contains documentation on a number of XML schemas for Microsoft Office 2003 Editions including Microsoft Office Word 2003, Microsoft Office Excel 2003, Microsoft Office InfoPath 2003, and Microsoft Office Visio 2003 schemas. It also includes schema information for Microsoft Office OneNote 2003, Microsoft Office Project 2003, and Microsoft Office Research Services.

This download contains the Microsoft Office 2003 Edition XML Schema References and related documentation including the following:

Overviews on WordprocessingML (the XML file format for Word 2003), SpreadsheetML (Excel 2003), FormTemplate XML schemas (InfoPath 2003) and DataDiagramingML (Visio 2003).
Additional XML schema information for OneNote, Project, and Research Services.
Reference documentation on all Office 2003 schemas, detailing every element and type.

..."


Wow. Now this is an File Spec release. All the information you may ever need about Office 2003 Document/XML files.

Not only the schema/XSD but a nice Help/CHM that describes each schema and how they are, or can be, used.

I'm sure soon or later I'll be hip deep in Office 2K3 XML files and I'll need this reference information.

(via TheServerSide.Net - Microsoft Releases XML Schemas for Office 2003 Products)

Safe cracking for a computer guy

Safe cracking for a computer guy

"I found this paper by Matt Blaze via Schneier on Security It seems it has completely pissed off the locksmithing community. Interesting.. A bit scary..."

More than you'll ever probably want to know about safe locks... (and how to open them).

Skype API COM Wrapper

Skype API COM Wrapper

"The SkypeAPI COM wrapper is an ActiveX 'layer' around the Skype API (documentation here). It's designed to make it simpler for COM-client development environments (VB, .NET, etc.) to communicate with Skype
Some of the API's features include

Easily manages sending messages to and from Skype (no need to deal with WM_COPYDATA command)
Event triggers for changes in online status, call status, etc.
Enumerated types defined so you don't have to hardcode strings in your app
Collection classes defined so you can easily deal with lists (i.e. For-Each support)

The API is free to use in your app (commercial or otherwise). You can distribute the compiled .DLL with your app, but may not redistribute the source code. You can use the library without referring to it in your application or its documentation

..."


Skype is a cool VOIP application that works very well. My wife and I use it quite a bit (even when we're both home... Why get up from the PC's when we can just Skype each other? :)

It recently added a public C++ API. Now someone has created a COM wrapper.

That's cool... Time to start writing Skype things.

(via Matthew Cosier's Blog - Skype 1.1 API)