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)