Tony Davis

Simple-Talk Editor
News, views and good brews

Music before bells and whistles

Published Thursday, March 04, 2010 5:29 PM

Why is it that Windows has so much difficulty in finding content on its file system? This is not an insurmountable technical problem; on my laptop, I have a database within which I can instantly find text or names within millions of records, within 300 milliseconds. I have a copy of Google Desktop that can find phrases within emails or documents, almost as quickly.

It is an important, though mundane, part of an operating system to be able to find files. The first thing I notice within Windows is that the facility to find files or text within files is called 'search' rather than 'find'. Hmm. This doesn’t bode well. What’s this? It does a brute-force search for file names? Here we are in an age when we can breed mice that glow in the dark, and manufacture computers that fit in our shirt pockets, and we find an operating system that is still entirely innocent of managing and indexing content in hierarchical data. I can actually read the files of my PC into a database, mimic the directory/folder hierarchies and then find files in a flash; but when I do the same with Windows Vista, we are suddenly back in a 1960s time warp.

Finding files based on their name is bad enough, but finding files based on the content that they contain is more or less asking for an opportunity to wait 20 minutes in order to see a "file not found" message.

Sadly, with Windows 7, Microsoft seems to have fallen into the familiar trap of adding bells and whistles before finishing the song. It's certainly true that Microsoft has added new features and a certain polish to Windows Search 4.0, the latest incarnation. It works more like a web search and offers a new search syntax, called Advanced Query Syntax, which allows you to search on file author, file size, date ranges (e.g. date:>=7/4/09still does not work reliably.

I've experienced first-hand its stubborn refusal, despite a full index, to acknowledge the existence of a file I know exists, based on a search for a specific term within that file that I know is in there somewhere; a file that Google Desktop search, or old wingrep, finds in seconds. When users hark back to the halcyon days of Windows XP search, you know something is seriously amiss.

Shouldn't applications get the functionality right before applying animated menus and Teletubby graphics, or is advancing age making me grumpy? I’d be pleased to hear your views, as always.

Cheers,

Tony.

Comments

 

adrianh said:

I always thought it strange that, by default, Windows XP Professional's search includes an animated dog.  The strange part is that Microsoft think it's appropriate for a "Professional" operating system to waste resources on an animated dog.

What's possibly worse is that when you switch the dog off, you have to wait while the dog jumps down a hole before you can get back to doing what you wanted in the first place.

Windows and software developers on Windows seem to forget who owns the computer and who gets to decide what it does.  One day, I switched on my PC to do some work and was interrupted by some incredibly important information.  My printer drivers were out of date!  I don't know if HP know this, but I didn't switch my PC on just to check that my drivers were up-to-date.

Windows Update constantly asking to restart and stealing focus when typing so that you accidentally hit enter at the wrong moment is a prime example.

Finally, Windows Server 2003 has a great option when updating, Install Updates and Shut Down.  I can't remember the last time I wanted to shut down my server.  So, I have to sit there (on Remote Desktop) while it installs just to restart it.  Can't we have a "Just Do It" option?

Opening a large network share takes eons of time while Explorer freezes and stops responding, but opening up a command line window and running "dir" takes seconds.

When you move a directory, if one file can't be moved, the whole operation fails halfway through without rolling back.

When you delete on a USB stick or network share (or worse, a mapped drive), there's no recycle bin.  That confuses users.

When you perform some operations in Explorer, you can "Undo" something.  What can you undo?  There's no list of recent operations to "undo".

When you are in the middle of copying something from one drive to another and you realise that you also want to copy something else, both operations attempt to occur simultaneously.  I'd like the option to queue the second operation.

The progress bars are useless, and don't really provide enough information.  Again, a command line prompt and robocopy is much better.

The tragic fact is, that there's so much to compain about...
March 8, 2010 3:09 AM
 

randyvol said:

You have hit a hot button of mine !!!  There are two things I just cannot understand about Windows; #1 is the registry - why is this not a better managed database of some sort? and #2 - why after all these long years of development of Windows can no one there seem to understand what the basic 'find' mechanics should be?

WindowsXP Pro was the last O/S that was even rudimentarily useful.  At least I could point to a drive or drives and type something such as 'Apr10bud*.xls' and attempt to find an excel budget file; but even this simple mechanism has been subordinated to a completely useless windows desktop search in Windows 7.

Microsoft seems to suddenly (with Vista and now, Windows 7) become fearful of searching my media types, and worse, seems to think that this is the sole search criteria anyone would ever need in Windows?!?!

One would think in the era of 500 GB - plus drives coming as standard on many PCs that someone over at MSFT would understand the necessity for providing mere mortals with a comprehensive utility to find a file or set of files on a variety of criteria starting with the ability to enter a file name string, with wild cards, and/or the ability to constrain the search further with some string of the content of the file.

As to indexing - I'm constantly amazed at the amount of 'hits' you can get from an internet search engine for "Windows", "index", "performance" as in; indexing when turned on kills my PC - why?

I suspect one of two things, probably more the latter.  #1 - Developers are MSFT are so facile using the windows file system object and scripting to fetch whatever they need that they are clueless about the needs of mere mortals to be able to do the same thing with a search / find Windows tool.  #2 - when I consider how many file systems MSFT has injected into Windows over the years, and the number of issues that have surfaced on each iteration, I begin to wonder if there is not some core deficiency in the design?

The major alternative O/S - Unix (with all of its derivatives) has, what many consider to be a more elegant, simple yet powerful file system - with literally every device being a file.  I always found that the find capabilities on linux were straightfoward.  Indexing, if any was necessary, was so low overhead that I never knew it was happening.

I admit I am no kernal hacker; but I know enough development to know when something is just plain wrong in a system design - file indexing and file searching in Windows is highly suspect in my view.
March 8, 2010 8:08 AM
 

Lee said:

I started in this racket 25 years ago -- first on IBM mainframes, then on Unix boxes (Sun), and didn't find my way into a Windows shop until 1999.  My theory is that when you are familiar with something that works, it makes you resent all the more being stuck with something that doesn't.

I'm no computer scientist or Ubergeek, and certainly not an expert on operating systems.  But it seems to me that the first test of an operating system is whether it has control over the processes it runs -- which brings me to my pet peeve (I have several other peeves, but they live in the barn) about Windows:  it has no control over its processes.  Okay, maybe it has some minor advisory influence, but that's about it.

Haven't we all experienced this before?  You click on something -- Windows Explorer, IE, Outlook, SSMS -- and your process spins out of control.  You get the hour glass -- or the obnoxious shimmering blue ring -- and it stays and stays.  After ten minutes, you try to end the process.  You start by clicking the 'x' at the upper right corner -- you know it isn't going to work, but you try it anyway.  Then you open Task Manager, if it will let you.  You locate your rogue task, highlight it, and click the button that says, teasingly, "End Task".  And then you click it again.  And again.  And again.  And again.  But of course, nothing changes.  Well, okay, maybe it will, eventually.  Or maybe it won't.

I'd love to read an essay by Microsoft designers based on the rhetorical question, "What 'End Task' Means to Me"...  There's no telling what we'll discover about their thought processes.

In Unix, it's simple.  Go to the command line.  Type in 'ps -ef' to get a list of active processes and their integer IDs.  Find the integer that applies to your rogue process.  Type in 'kill {int}'.  If that doesn't work, type in 'kill -9 {int}'.  -9 is the 'dammit' option.  When you run the 'kill dammit' command, a strange and wonderful thing happens:  the process is killed.  No argument.  No lip.  No finger-wagging Windows messages.  It's dead.  End of story.

It leads me to believe that, whatever else there is to say about Unix, it does have control over its processes.  I don't think a program deserves to be considered an operating system unless it does.
March 8, 2010 8:22 AM
 

saran said:

This is also a thing that I had wondered from my early Windows 3.1 days. I started with PCDOS MSDOS, Unix, Linux and then Windows. Even though I was in school, I was able to understand the process, file copy, file search, text search on those old  AT and XT machines. Performance was never an issue, even though 1 UNIX server was shared by umpteen number of users.
The Windows Find/Search was confusing from the start, and is still today. Forget about searching on the network folders. Searching through the documents, had to wait for long and sometimes it would hang my machine.
In between I tried to use Google Search. While it was good, it was a resource hog. Windows Search was able to search on Network, but again it wasn't so good. Needless to mention the results weren't so good.All this is on my good laptop with 17GB of used space. Network drives are Terabytes.
Not sure why still today, they haven't implemented the filesystem that they had promised on the LongHorn. Until then I have the link of files on a separate folder on my desktop.
March 8, 2010 10:00 AM
 

SusanK said:

I don't think it's advancing age at all, just good sense!  Or maybe I'm grumpy too
March 8, 2010 10:41 AM
 

Paul Misoni said:

    MS Access is one product that's actually seen (in my opinion) a reduction in functionality in the 2007 version.  I recently ran into an issue where a client was having issues importing data from a file into and existing MS Access database table.  Data imports using the wizard are pretty straightforward.  I couldn't replicate the issue, so I had the client send me the database  and import files.  The data loaded without so much as a hiccup.  It turns out that the client was using MS Access 2007, while I was using the 2003 version.  
    According to the Help file for 2007, "To avoid errors during importing, make sure each source field contains the same type of data in every line. Access scans the first 25 rows of a file to determine the data type of the fields in the table. We highly recommend that you make sure that the first 25 source rows do not mix values of different data types in any of the fields. Also make sure that non-text values that are to be treated as text values are enclosed in single or double quotation marks."
    What?!?  Rather than check the table for the actual field datatypes, it guesses!!!  I can understand using that logic for dynamically creating a new table, but it blows my mind that they don't even bother using the existing table metadata.  I haven't checked the 2010 version, yet.  I'm hoping that someone has fixed this deficiency, but I'm not holding my breath.  
    It's not that I want to bash Microsoft.  It's just that they shouldn't be ignoring the quality level of their mainstream products, by placing too much focus on NEWER and PRETTIER.  They should be progressing and improving the quality of their applications, setting an example and standard for the rest of the industry to follow.  
March 8, 2010 11:08 AM
 

timothyawiseman@gmail.com said:

@Paul Misoni, something similar happened in the transition from DTS with SQL Server 2000 to SSIS in SQL Server 2005.   Overall, I greatly prefer SSIS and find it easier to use and more scriptable, but tI have had files that imported effortlessly in DTS that required a great deal of careful scripting to import in SSIS.  DTS was overall less powerful, but in some ways it was more resillant to "dirty" data.
March 8, 2010 11:46 AM
 

Matt Cherwin said:

@Lee: isn't the kill functionality you're looking for implemented by the "end process" and "end process tree" functions of Windows task manager? I've never issued an "end process tree" to a process and had it do anything other than immediately terminate.

March 8, 2010 12:45 PM
 

paschott said:

I'd say that this really does depend on what you're developing. Some programs can really benefit from the extra GUI elements thrown in. They get people's attention and then the functionality can be tweaked later (sometimes just to make it actually work). However, for your example getting the functionality correct with a not-so-decent interface would probably have been preferable.  In an ideal world the two would come at the same time, but I think we'd all agree that's rare.

For a major application, there's definitely some balance - get the right amount of bells and whistles so people will want to use the product combined with the level of functionality so people don't jump ship.  If you have a great set of functionality but a really hard to use interface, people won't use it.  The same can be said for a great interface with little functionality.

In regards to desktop search, I used Copernic for the longest time because it offered customizations that neither Google nor MS offered, including the ability to index Outlook tasks.  Google's desktop search has a very simple basic UI.  Both get the job done easily and offer the ability to drill in for more options.

MS Search has always suffered in functionality, in my opinion/experience. The latest seems to work better, but I've had fits with it in the past to the point where I had to completely turn it off and install a different search engine.  In this case, MS needs to focus more on core functionality.


However, to focus on this to the exclusion of everything else done in Windows 7 would have been a mistake. MS really needed something to help people forget Vista. I think that it's safe to say that Windows 7 overall has been a huge win for MS. They can then fix/tweak Windows Search (or other modules) as it can be updated separately. That still gets people using Windows 7 with a "good enough" search function and gives MS the opportunity to offer updates later as people clamor for them.
March 8, 2010 1:44 PM
 

Ed.Carden said:

The reason that Find, now re-packaged as 'Search' does not work has more to do with sales & marketing then anything technical.  The fact that competing software (i.e. Google and others you mention) can do this while what is built into Windows cannot is all the proof you need to rule out this being a technical issue.

The sad truth is that fixing the Find, err I mean Search function does not add value to the 'Upgrade Now' or 'New Version' dogma because it is not something new but something old that is finally fixed. This is seen as something like a service pack update or bug fix and not something one should pay for and so it is pushed to the back burner or at best to the least experienced developer.  This explains why the thing never seems to get better despite clear improvements elsewhere.

I'd even venture to say it may be Microsoft’s intent to not fix this thing.  Why?  By letting it stay relatively the same they are never in the situation of explaining why a long time feature that has never fully worked is finally available and working but only in a paid for upgrade.  

Its all about perception and marketing and money.  Sad but true.  I'm willing to bet that there are just as many Windows developers unhappy about this (percentage wise) as windows users because they too are stuck dealing with it and unlike users they may have less freedom with installing an alternative product.
March 8, 2010 1:48 PM
 

mcair said:

My biggest problem with Windows is Microsoft's assumption that the default user isl be someone who has never seen a computer before and doesn't understand basic concepts such as copying (or searching for) files. The handholding has gotten progressively more onerous with each iteration of their OS, even though one would expect that as time has progressed, many more people have been exposed to Windows and already understand the basics as so want to avoid the nanny approach that Windows has adopted.

Take the Vista/Win7 explorer for example. Why did they mess with that? There seem to be half a dozen variations on its appearance depending on what/how it was launched. The first thing I do when setting up a new machine, or establishing a new account for myself, is to change the default folder view to "windows classic/details", then select the filename/size/date modified columns, then click the "Apply to All Folders" button. Except it doesn't. Whenever it finds a file with a picture-type extension, it assumes I want to see the "Date Taken" and "rating" columns, or switches to the absolutely useless icon-view.

I wish Windows would popup a message when you install it, or have a setting that asks whether the user is a) newbie b) comfortable with Windows or c) developer/geek, then adjust the UI behavior appropriately. It would save the aggregated countless hours switching things back when Windows steps in and tries to "help".
March 8, 2010 2:03 PM
 

thensley said:

I haven't trusted "Search" in Windows for a long time.  I'm still running XP on my laptop, and it constantly fails to find files I know are there no matter what I do with the indexing.  Especially when I'm trying to find files by content.

I don't want to load yet another "search" tool like Google.  I've got enough things hogging up CPU, memory, and disk space.

I usually revert to the command line FIND.  It takes a while, but at least I can trust the results.

Sad.
March 8, 2010 4:27 PM
 

talusMaximus said:

What you all need is "Evertything" by void tools. It indexes NTFS volumes and the results are instantaneous.
March 10, 2010 12:10 PM
 

JonRobertson said:

@Matt Cherwin:  Yes, that is the functionality Lee is talking about.  And if it has always worked for you, that's fantastic.  Many, many times it does not work for me.  I have two command line utilities: PSKill (part of PSTools from SysInternals) and Kill (not even sure where it came from).  Both of them are great when End Process fails, yet I find that often either of them might not do the job but the other one will.  That's why I keep both of them around.

@mcair:  You've hit on one of my biggest pet peeves.  If I "Customize this folder" and specify the layout I want (which is the classic "All Documents"), Windows should NEVER change it.  Just because a folder of 200 files contains ONE image, does not mean I want to view the entire folder as images.  Every time Windows changes my folder view from that I've set, I want to scream.  Unfortunately, if I did, my co-workers and family members would probably send me to the looney bin.  :)

What aggravates me so much about Windows Search is that it will not "find" a file that I can see plainly in another Explorer window.  I don't even both to use Windows Search when searching content because I don't have success when searching words within the filename.

Microsoft has the potential to create an awesome search feature, particularly since IFilters "know" the structure of many file types and can retrieve content rather than doing a strict binary search.  Nonetheless, for filename searches I use DIR /S /A and for content searches I use Find In Files from my favorite text editor, TextPad.  Both are far superior to Windows Search.

Not to mention that before disabling the Windows Search service, it will often completely consume the PC's resources.  And not while you're away from the PC, but usually when you're using the PC and in the middle of a time crunch.
March 22, 2010 8:18 AM
You need to sign in to comment on this blog


















<March 2010>
SuMoTuWeThFrSa
28123456
78910111213
14151617181920
21222324252627
28293031123
45678910
Raw Materials: Command-Line Nostalgia
 Arthur finds philosophy deep in a dialog box. Read more...

Increasing Email Size Limits for your High Profile Users in Exchange 2010
 If you ever need to set up fine-grained rules to control the maximum size of messages a subset of your... Read more...

Product Review: Schema Compare for Oracle
 One of the more important tasks in the process of rolling out incremental developments to a... Read more...

Implementing the OUTPUT Clause in SQL Server 2008
 In retrospect, it was probably the inclusion of the OUTPUT clause in the MERGE statement that gave... Read more...

SQL Source Control: The Development Story
 Often, there is a huge difference between software being easy to use, and easy to develop. When your... Read more...