Posts

Showing posts from April, 2005

Teaching computers to make "Better Mistakes"

TRN has an interesting piece here about how the MIT media lab has accumulated a vocabulary usage database that helps speech recognition by reducing mistakes and boosting recognition speed. The researchers evaluated their common sense speech recognition technique by logging the errors and dictation times of users who dictated text that contained topics covered by the Open Mind database. It prevented 17 percent of the errors and reduced dictation time by 7.5 percent. Kind of a "Social AI", if you will. This is a concept that can be used in business intelligence as well, not just voice recognition. I see some real business opportunities here for good DB people.

ASP.NET 2.0 Speed Tests: Where's the Fire?

I read a very nicely done piece on MSDN about how the ASP.NET 2.0 pipeline, even though it is more complex than the ASP.NET 1.1 pipeline, has been optimized to be 30 percent faster. "Great!", I thought. "Let's do a couple of tests." So I whipped up a page in ASP.NET 2.0 that just outputs "Testing...", and removed all extraneous HTML from the ASPX portion except the FORM Tags. Did the same in ASP.NET 1.1. Pages were substantially identical, being designed primarily to test the pipeline itself - get a request, set up and process the Page, send it out. I did two sets of tests on each using "Homer", 1 with 100 threads, no delay. and another with 100 threads, a 10X multiplier (the equivalent of 1000 simultaneous requests), and no delay between requests. In both cases, the ASP.NET 2.0 pipeline was SLOWER, not faster. Both sets were compiled and run in Release, not Debug mode. I suppose I should consider the fact that it is still BETA, but - SLOWER

RSS - Aggregate the Aggregators?

After quite a bit of peripheral research on RSS (not just what is is, because we've been using it for a long time - more about where the "whole thing is headed"), I decided to try my hand at "aggregating the aggregators". There are enough search engines of various types now that offer to return their results as RSS that it made sense to build a "Multisearch RSS aggregation engine" -- and so I did. Basically what this little puppy does is take your list of search URLs - which usually have two parts - the main URI part, then your query term(s), and then an optional "part 2" that determines RSS, number of results, etc. These all take your query and send it out to each engine asynchronously on a threadpool (I like Ami Bar's "SmartTthreadpool" - a really magnificent job). The results are stored in a hashtable with the link as the key so as to be able to easily weed out duplicate links. Then, they are ordered by pubDate most recent fi

Get Ready for the next Book Tsunami . . .

All the Microsoft "2.0" stuff (whatever it really is, VS.NET 2005, ASP.NET 2.0, SQL Server 2005, etc) is expected to be released later this year, and we are in for a hell of a learning curve. For starters, Scott Guthrie says the number of classes in .NET 2.0 has doubled ! Well! Pie r Square, and Cornbread r Round! Or is it the other way? Hey, we're still having trouble grappling with all the classes in .NET 1.1. I'm an MS C# MVP, I've been working with this stuff since the first .NET Beta in 2000. I have a lot of books on the shelf about .NET Some I've bought, others are review copies from publishers because I've written reviews for them. But, man - we are in for an onslaught. I can see it now: "Professsional ASP.NET 2.0" "ASP.NET 2.0 Revealed" "C# Iterators for Dummies" "Sql Server 2005 Service Broker Quick Start" "Team System Developer's Reference" Umm, you get the picture.

PatternShare Community: An Idea Whose Time has Come . . .

Recently I came across Daniel Cazzulino's post about the CUA (Composite UI Application Block) they are working on jointly with Microsoft. Now we know, Daniel, why you've been so quiet lately! I sense from Daniel's excitement about it that we are in for a very nice present! Among the referenced links was one to the new "Patternshare" web . Among others, Gregor Hoepke's work is mentioned. I've been reading his Enterprise Patterns book off and on and it has been a real eye-opener. This Patternshare site is well-organized and has lots of friendly features. Highly recommended.

Windows 64-Bit Registry Tricks Department

The Windows 64-Bit Registry on x64 versions has a new section "Wow6432Node" in each major Registry hive. By adding: \Wow6432Node\ in the proper position, many older 32 - bit registry .REG files will suddenly become functional. This applies to things like license keys, settings entries, and some shell extensions. Look at where your .REG script put the original entries, and see if there is a corresponding Wow6432Node to match. Modify your script to put the entries under that node.

Dual Boot Windows 64 bit and Windows XP 32 Bit Scenario

I held off for quite a bit on installing Windows XP Pro 32-bit on the other drive, but surprsingly, despite all the cautionary tales I've read, it was a non-event. I have two drives, a big SATA 200G primary, and another ATA 60G I threw in there as a slave. Simply booted off the XP CD, chose the correct drive, installed XP, and it was fine. Contrary to what I had read, it DID NOT replace the NTLDR and related files on the primary partition with their 32-bit counterparts (Although I'd still recommend backing them up somewhere safe -- that's boot.ini, NTDetect, and NTLDR). The only remaining task was to edit the boot.ini file on the primary to allow for the dual boot. Mine looks like so: [boot loader] timeout=5 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003 Enterprise x64 Edition" /fastdetect /NoExecute=OptIn multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="Microsoft Windows XP

Here's the Thing about BETAs

The thing is, the reason for all these fixes and workarounds is partly because the developers at Microsoft are testing their installations on pristine machines with a fresh OS and a brand new Registry. But the developers out here (you and me) aren't doing that. We're installing it on a working development machine (yeah, yeah, I know what they say, but nobody listens) and so we need to uninstall our old BETA or CTP and try to install the new guy. The uninstalls leave orphaned Registry entries (that's the primary culprit) that interfere with the new guy getting in and being completely happy. So you have junk where you either can't install, or your Help doesn't work, or your IIS ASP.NET Tab isn't there, and so on, ad - infinitum. So what's the answer? Well, you can't change human nature. We aren't going to stop installing BETAs and CTPs on our regular development boxes. What the people at Microsoft need to do is spend more time doing it the same way w

Does anybody read this stuff? Uninstall order, Visual Studio.NET 2005 Pre-Beta 2 items:

Uninstalling Previous Versions of Visual Studio 2005 If you have installed previous versions of Visual Studio 2005, such as Beta 1 or Community Technical Preview (CTP) builds of Visual Studio Team Suite, Visual Studio Standard or Visual Studio Professional, then you must uninstall the pre-Beta2 components in the exact order below before beginning to install any version of Visual Studio 2005 Beta 2. Go to the Control Panel and launch Add/Remove Programs Remove "Microsoft Visual Studio 2005 Professional" or other related IDE installs such as (Visual Studio Professional/Standard/Enterprise Architect/Team Suite, etc.) Remove "Microsoft SQL Server 2005 Express Edition" Remove "Microsoft SQL Server 2005 Tools Express Edition" Remove "Microsoft SQL Native Client" Remove "Microsoft Visual Studio 64bit Prerequisites Beta" Remove "Microsoft MSDN Express Library 2005 Beta" Remove "Microsoft Visual Studio Tools for Office System 2005

ASP.NET 2.0 BETA 2: Hey, my ASP.NET IIS Tab is missing!

Chris Adams says this: This is a problem caused by the change between Beta 1 and Beta 2. To fix, check the following 3 regkeys - HKEY_CLASSES_ROOT\CLSID\{7D23CCC6-A390-406E-AB67-2F8B7558F6F6}\InprocServer32 HKEY_CLASSES_ROOT\CLSID\{FD5CD8B1-6FE0-44F3-BBFB-65E3655B096E} \InprocServer32 HKEY_CLASSES_ROOT\CLSID\{FEDB2179-2335-48F0-AA28-5CDA35A2B36D}\InprocServer32 Under (expand) InProcServer32, look for the presence of a non-2.0.0.0 (example 2.0.36.0) and remove it. It has a reference that causes this to break. If you do not have this MMC interface, you can use aspnet_regiis.exe aspnet_regiis -s where path equals the location in the metabase where you want the mappings to change. Note: There is also a switch to do this non-recurvisely if you desire. and Stebner's VS.NET 2005 beta removal tool: http://blogs.msdn.com/astebner/archive/2005/04/19/409555.aspx

Visual Studio.NET 2005 Beta 2 and ASP.NET 2.0 -- First Take

1) Installed VS.NET 2005 Beta 2 on an AMD 3400+ with Windows Server 64Bit version, without a hitch! 2) If you want your ASP.NET 2.0 web apps in IIS to run properly, have to drop to the Framework 2.0 32 bit Framework (you may have both 32 bit and 64 bit frameworks) folder and run ASPNET_REGIIS -i -wow64 The -wow64 switch is required for a full install on 64 bit machines. Otherwise, when you attempt to run or debug your app, you will get an HTTP "Service Unavailable" error. Word to the wise.

Little Known ASP.NET Debugging Quirk Solved

I like to run Windows Server because IIS 6.0 allows me to add as many IP addresses as I want and configure completely separate web sites. This is a big advantage with ASP.NET projects because now everything you do is relative to the real web site root (not the Virtual Directory root) and so you can expect exactly the same behavior in your app during development and debugging as you will when it is deployed to a real web site remotely. The problem I've run into is that ASP.NET debugging doesn't always work. There are lots of reasons why ASP.NET debugging doesn't work, and there are lots of fixes, but this one is germane to the specific situation mentioned above: If you have an ASP.NET app that is targeted to a specific web site root at a specific IP Address in IIS (not "all avalable" as is the default), you may need to modify both the .sln file and the .webinfo file to replace the site name with the actual IP address of the site. Then, ASP.NET debugging will work f

Here, Beta Beta! It's here!

Yup, the long awaited BETA 2 of Visual Studio.NET is up on Subscriber Downloads! And from the speed I am getting from Transfer Manager, looks like a lot of other developers have the same news...

Microsoft Anti-Spyware on Windows Server x64 - Yes!

It works "like a charm" - sprang into action and killed the little bastards, every single one of them! Nice, get yours here . Nyaa, nyaa you nitwit spyware mongers! Up yours! Bastards!

AssemblyLoadFrom and CAB files and multiple assemblies

Junfeng Zhang is one of the few MS folks that focus on and are acutely aware of the lower-level intricacies of the .NET framework. His blog is at: http://blogs.msdn.com/junfeng/ One of the valuable snippets I've picked up from Zhang is about using CAB files. I reproduce a portion here. Note that when Junfeng uses the word "we", what he means is "This is what the Framework does": You can deploy assemblies using cab files. http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpcondeployingcommonlanguageruntimeapplicationusingcabfiles.asp There are two ways to load assemblies from cab files. 1. Assembly.LoadFrom You can give the URL of the cab file to Assembly.LoadFrom. For example, Assembly.LoadFrom("http://myserver/myasm.cab"); 2. Use app.config, and specify codebase hint, then use Assembly.Load. For example: <configuration> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"&

ASP.NET 32-bit on Windows Server x64 IIS - Yes?

Windows Server 2003 x64 edition is so cool, now that I have a new 64 bit AMD machine to play on. One thing I was worried about, though, is how do you get ASP.NET 32 bit support in IIS 6.0 - which is now 64 bit! Uh-Oh! Turns out there's a script mod you can make (the only place I found this is here .) if you run the following command in Command Prompt, you will be able to use .NET 1.1 ASP.NET in x64s IIS6 (which runs in 32-bit mode): cscript %SystemDrive%\inetpub\AdminScripts\adsutil.vbs set w3svc/AppPools/Enable32bitAppOnWin64 1 Oops! -- And here is the info from the "horses mouth" at TechNet. DETAILS: Running 32-bit Applications on 64-bit Windows (IIS 6.0) Windows Server 2003 TM , Service Pack 1 enables IIS 6.0 to run 32-bit Web applications on 64-bit Windows using the Windows-32-on-Windows-64 (WOW64) compatibility layer. IIS 6.0 using WOW64 is intended to run 32-bit personal productivity applications needed by software developers and administrators, including 32-bit In

More Pyew from Pew on SPAM

Image
Yah, well Pew Internet and American Life Project has their latest thingy: they say we're not any less annoyed by spam, just more accepting of it. They say that 53% of adult e-mail users in the United States now say they trust e-mail less because of spam, down from 62 percent a year ago and about the same as a June 2003 Pew survey. They found that 22 percent of e-mail users say they are spending less time on e-mail because of spam, down from 29 percent last year. (BTW, the chart below is not from "PEW", but I thought it would be an interesting and informative addition so you can see how SPAM is focused on the member). Deborah Fallows, a senior research fellow at Pew and the study's author, opines: "This shows some level of tolerance that people are manifesting," and continues "Maybe it's their getting used to it. Maybe it's like other annoying things in life - air pollution, traffic - they are just learning to live with it." Do you believe

Here Beta Beta! Here Beta! C'mon boy! At'sa good fella. Hey, Beta? . . . Uh, BAY-TAAA!

I'm sure it will be here. It's gotta be here. Maybe it already came and I missed it? What happened, did he run away? You probably could check the new MS Forums , they have a thread on it there. Uh, hello? Yes! You have my resume?....

Open Source .NET Forum Started

We get so many questions and requests for open - source .NET components and libraries to do this, that or the other, that we decided to open a new Google Groups Open Source .NET Forum Anyone can join and post information. The focus is OPEN SOURCE SOFTWARE for .NET PLATFORM (not advertising "your" product, spamming, or whatever).