I <3 Steve McConnell*
Coding Horror
programming and human factors
by Jeff Atwood

January 08, 2008

Don't Pollute User Space

What is user space? User space is the location in the filesystem where users put their personal files-- their "stuff". Here's the user space folder structure in the Windows XP operating system:

\Documents and Settings\User\
   \Application Data
   \Cookies
   \Desktop
   \Favorites
   \Local Settings
   \My Documents
      \My Music
      \My Pictures
   \My Recent Documents
   \NetHood
   \PrintHood
   \SendTo
   \Start Menu

And here's the user space folder structure in the Windows Vista operating system:

\Users\User\
   \AppData
      \Local
      \Roaming
   \Contacts
   \Desktop
   \Documents
   \Downloads
   \Favorites
   \Links
   \Music
   \Pictures
   \Saved Games
   \Searches
   \Videos

This new Vista user space folder structure may seem oddly familiar to people using operating systems based on Unix. It gives new life to the famous quote "Those who do not understand Unix are condemned to reinvent it, poorly". Regardless, I'm glad we no longer have to deal with a scarily long default user path -- with aggravating embedded spaces, even-- to our personal stuff. If a user is keeping notes in a text file, we can reasonably expect to find those notes at the following path:

\Documents and Settings\User\My Documents\notes.txt
\Users\User\Documents\notes.txt

Now that we've established what and where user space is, I have a message for all the programmers reading this-- including myself. Keep your dirty, filthy paws out of my personal user space!

Take a look in your Documents folder right now. Go ahead. Look. Do you see any files or folders in there that you personally did not create? If so, you've been victimized. Applications should never create or modify anything in your documents folder without your permission. And yet, sadly, it happens all the time. Applications, and more specifically, the programmers who wrote those applications, think it's perfectly A-OK to carpet bomb your personal user space with their junk.

Well, it isn't.

As Omar Shahine originally pointed out almost two years ago, we should be mad as hell, and we shouldn't take it any more. If applications need to store shared files, that's what the \AppData and \Application Data folders are for. In OS X, which inherits a lot of filesystem conventions from BSD Unix, Apple has a great set of guidance appropriately titled Don't Pollute User Space:

It is important to remember that the user domain (/Users) is intended for files created by the user. With the exception of the ~/Library directory, your application should never install files into the user's home directory. In particular, you should never install files into a user's Documents directory or into the /Users/Shared directory. These directories should only be modified by the user.

Even if your application provides clip art or sample files that the user would normally manipulate, you should place those files in either the local or user's Library/Application Support directory by default. The user can move or copy files from this directory as desired. If you are concerned about the user finding these files, you should include a way for the user to browse or access them directly from your application's user interface.

Discovering this made me realize how much I missed the good old days of strict operating system and GUI conventions. Granted, Apple is cheating quite a bit by inheriting the well-worn conventions of classic Unix operating systems. But so much of Windows seems dangerously ad-hoc in comparison.

At any rate, it is our obligation as programmers to let the user's folders belong to the user. Do the responsible thing and store your application files in an appropriate location, not as virtual litter amongst the user's other files. Please don't pollute user space.

Posted by Jeff Atwood    View blog reactions

 

« The Magpie Developer No Matter What They Tell You, It's a People Problem »

 

Comments

So you're saying I *shouldn't* have these auto-created folders called "Visual Studio 2008" and "SQL Server Management Studio Express" under "My Documents"?

sam on January 8, 2008 06:27 PM

Amen. And yes sam, that's exactly what he is saying.

Kal_Torak on January 8, 2008 06:37 PM

Argh, yes! I've got:
* Code Snippets
* Fax
* Fiddler
* My Code Snippets
* My Games
* My Weblog Posts
* OneNote Notebooks
* Scanned Documents
* Snippet Compiler 2008
* Visual Studio 2005
* Visual Studio 2008

Domenic on January 8, 2008 06:37 PM

You have a strange idea of what "user space" is. I think most people would agree with wikipedia: http://en.wikipedia.org/wiki/User_space

eric on January 8, 2008 06:43 PM

Totally agree, and while I haven't really thought about it so deeply, I generally lean toward getting rid of programs that do it. It's tough enough to clean up my own messes when I know what is in My Documents.

Morgan on January 8, 2008 06:46 PM

On a tangentially related note, it's good to see that with Vista we drop the convention of My this and My that, at least for these folder names.

mike on January 8, 2008 06:50 PM

Vista makes this easier, but what are you supposed to do in XP? For example (this happens to be something I had to deal with personally) Vista provides a User\Saved Games folder, very handy for making it easy for the user to manage saved games themselves outside of our game. Microsoft's Games for Windows requirements demand that users easily have access to saved games in both Vista and XP. However, Application Data is hidden from the user by default, so there's no easy way to tell a user, for example, where to find saved games and replays to upload to the net if they're in a hidden folder. The suggested solution from Microsoft is to store them in My Documents, in a folder of your own creation, for your game.

App Data just isn't appropriate if you want your users to be able to find data files on their own machines, so I have to disagree with you on this point (at least when working with XP.)

squidbot on January 8, 2008 06:53 PM

Under the "My Documents" folder on my WinXP box, I currently have the following *unrequested* folders for game saves...
- Bioshock
- My Games (holds game saves for Crysis)
- Ubisoft (for all Ubisoft game saves)

I know there were more there before I reformatted too. Damn Windows...

Frank on January 8, 2008 07:05 PM

Well I hope this does awaken developers to the existance of it. Just this week I finished explaining to a co-worker (developer) about the use of environment variables in Windows (knew they existed but that is about where it stopped). On my Vista box I have variables for APPDATA and LOCALAPPDATA - not to mention the Isolated Storage facilities provided by .NET.

That being said, it can be abused (painfully, I am looking at you Adobe) - but overall it is a very clean way to manage things, and makes backup/restore a relative snap.

Goyuix on January 8, 2008 07:13 PM

Who puts their files there? I have whole hierarchies of file paths that I have been using for over 10 years. Some stuff starts in \Chris, other stuff in \Corporate and other stuff in \Temp. I guess I could do what MS says to do, then do something else next year, then something else the year after that. I type a lot of my paths when opening files (because it keeps defaulting to that damn "My Documents" shite), so very, very little actually goes there.

Chris Chubb on January 8, 2008 07:21 PM

Forgot to mention. If Windows would let me preceed a path with "~" to indicate whatever the "user root" du jur is, I might be able to live with that. Again, reinventing UNIX, badly.

Chris Chubb on January 8, 2008 07:22 PM

This is not just about the user space.
What about the other random places where programmers keep the data?
I have seen programs that keep data in the windows folder, the system or system32 folder and other creative and imaginative places.

And I have seen "encryption software" that stores the password in plaintext in the windows folder in a file named "sys123.d"

I suppose 50% of the programmers are only 50% programmers.

I totally agree that almost every application data should be kept in the Appdata folder.
And then there is an issue of polluting the registry.

Niyaz PK on January 8, 2008 07:24 PM

I think this is actually a larger failing in Windows rather than just an issue of developer guidance - there's no good location for storing user accessible application data. Take, for example, Visual Studio code snippets. I want to be able to install them, copy those between machines, back them up and restore them, etc. Burying them in AppData isn't a good solution - that's an opaque store that isn't even visible (never mind decipherable) to users by default.

Kevin Dente on January 8, 2008 07:37 PM

You know, it might not be such a mess if they'd just pick a damn naming convention and stick with it.

sburnap on January 8, 2008 07:43 PM

Surprisingly enough, a lot of the entries in the Documents folder are from Microsoft's own programs.

Folders from other software:
Cakewalk
CyberLink (PowerDVD)
EA Games (The Sims 2)
My Google Gadgets (hey, I uninstalled that...)

Folders and files from Microsoft:
MSDN
My Music
My Pictures
My Recieved Files
My Shapes (Visio, even has a custom icon)
My Videos
OneNote Notebooks (about the only thing I'd consider "forgivable" for saving in My Documents)
Visual Studio 2005
spider.sav
default.rdp (hidden)

And that's not to mention the programs (oh look, Visual Studio 2005) who hard-code the directory and get it wrong when I redirect it in the registry.

I think it's safe to blame Microsoft for this state of things.

Doesn't worry me - I use an entire drive for my personal data. Screw "My Documents". All the litter in My Documents has made it necessaray to continue the practice in the name of backwards-compatability, thus forever tainting it to really be "My Misbehaved Program's Documents".

Andrew Russell on January 8, 2008 07:55 PM

User can tamper with environment variables. Use the CSIDL values and related API calls instead to locate paths.

hmm on January 8, 2008 07:59 PM

What if you're creating a setting archive that might be needed to be used by a different log-in than the log-in that the file was created under? Esp. with Vista, what choice do you have than to put it in a All Users\Documents type folder?

A better don't do this would be to not place important files in hidden system folders. The authentication software that my company currently uses (and is being phased out) does that very thing in Vista. Now that's bad behavior.

Rocketboy on January 8, 2008 08:01 PM

Raymond Chen discussed the CSIDL vars that hmm mentioned above.
http://blogs.msdn.com/oldnewthing/archive/2005/07/01/434647.aspx

Scott on January 8, 2008 08:17 PM

eric: Jeff is not talking about user 'process' space. He probably used the wrong term, but I am sure he knows what he is talking about.

Anaamica on January 8, 2008 08:22 PM

User space is already used for something else in CS / software engineering (kernel space / user space, different CPU address spaces in process / kernel interaction). Use a different phrase, Jeff.

Barry Kelly on January 8, 2008 08:46 PM

Not being a Vista owner, it's kind of nice to see that the new operating system has for the most part done away with the spacing in the names. As someone mentioned above, removing "My" along with no spaces(with the exception of Saved Games), is refreshing to see.

This isn't really such a hot topic for me, as I sub everything from My Documents or from eleswhere, such as someone else mentioned - that is, if I'm actually in windoze. But 99% of the time I'm on Linux... where life has been beautiful for almost five years now, and steadily improving on top of that.

Patrick on January 8, 2008 08:48 PM

Jeff actually just posted an entry on the User Space/Kernel Space thing, so I'd agree, I think he knows the difference.

It is annoying that apps take over the My Documents folder with utter abandon and this article will make me think a little more about the handling of external data in my apps.

Mike on January 8, 2008 08:57 PM

It is also important to note that the way the vast majority of applications store data in OSX makes it incredibly easy to add and remove applications! Every time I am on a Windows machine and I have to go to add/remove programs I cringe at how long it takes to tell me what is on my machine. It also pisses me off to no end when I am told I cannot remove something from my machine and I am the Administrator. Or that the application is already removed and Windows just didn't realize it or some random trace is left on the system.

Ryan Smallegan on January 8, 2008 09:24 PM

This year, the ridiculously long folder names with spaces! Next year, the Registry!

David W. on January 8, 2008 09:33 PM

Ugh, don't get me started on *nix .program_name configuration files. If only someone way back when had decided to have a ~/conf/ for this sort of thing, I wouldn't have to trip over a mass of .foobar files and directories every time I browse my home directory.

(Yes, you can hide them, but then what do you do when you actually want to see them besides hunting around in configuration dialogs to find the checkbox to make them visible again?)

Cabbage on January 8, 2008 09:34 PM

What Jeff has referred to as User Space I consider temp directories; I do not believe in storing data, personal or otherwise on a boot drive. Learned that the hard way when I had to restore a ghost image due to some corruption and lost data. The save paths and templates for Visual Studio and Office point to secondary drives.

But I do agree with the sentiment that third party apps should not be polluting User Space, regardless of where it's located.

Steve S on January 8, 2008 09:36 PM

Agreed,user space shouldn't be polluted with application data.But what if the data been put in "my documents" by the apps are actually user files eg saved games,saved projects(visual studio).you would agree these examples qualify as the user's files (why? He/she created them.).think about it.

gogole on January 8, 2008 09:37 PM

> User space is the location in the filesystem where users put their personal files-- their "stuff".

And i think you should append that definition with the phrase "directly or indirectly".

gogole on January 8, 2008 09:43 PM

Hallelujah, brother. Just the last few days I've been cursing a few applications that broke this cardinal rule.

Despite Apple's stern warning to the contrary, I already have a few invaders in the Documents folder of my fresh Leopard install. In my case it's 'RDC Connections' (Microsoft's Remote Desktop Connection) and 'Virtual Machines' (VMWare Fusion). They both bug me. What's more, I don't believe there is even a setting to control this in MS RDC.

In the case of VMWare Fusion, however, I can sympathize with the purpose: the user does create the virtual machines, and has the option to put it somewhere else upon creation (or later for that matter). Furthermore, virtual machines can be downloaded, lending themselves to a 'user created file' like treatment. A strong case could be made, then, for storing these in Documents, but I'm in favor of the App Data convention since I will almost always be accessing these files through the program itself, and not via browsing.

One last thing, thanks for a great blog!

Drew Wilder-Goodwin on January 8, 2008 09:44 PM

There are things that annoy me when developing for Unix/Linux systems (the moving C++ ABI comes to mind...), but this is one thing that I really appreciate: a recognised standard for where things go.

Any files that the application needs, but in the normal course of things, the user shouldn't have to edit go in /usr/share/whatever. Files that the user creates with an application, that they don't directly save and load go in a hidden file/folder in the users Home directory (which is accessible with just a `~` character, thank God).

Bernard on January 8, 2008 09:54 PM

I didn't realise anybody actually used the 'My Documents' (or similar) folder within Windows OS's. I've never used it. I have a dedicated HDD with folder names specifically for managing MY files. None of them are named 'My Music' either. Just simply 'Music'.

My sister has a folder on this PC with her name as the name of the folder. She has her own separate 'Music' folder in there also.

Ok, a cheap dig at the 'My X' naming convention.. but a dig none-the-less. I get personally annoyed when apps save files to the My Documents folder without asking WHERE I want to save files to.

I'm looking at MSN in particular - which defaults to this behaviour. Firefox also. Default behaviour should be to ASK where a user wants to save their stuff.. not just slammed into a random directory inside My Documents.

`Josh on January 8, 2008 10:15 PM

The problem is as Kevin Dente above states that there is no good place to store user accessible application data that gets installed with an application.

Linux works because its users understand folder structure and where to find things whereas your average Windows user believes the only two places documents reside are on the desktop or in 'My Documents', anything else is voodoo for most people. For example one of our applications ships with end-user specific document templates and we *tried* placing them outside the 'My Documents' space and we heard no end of frustration that people couldn't find the documents and that our install was broken. So, back into Documents they went and everyone was happy.

So while *you* (and me and other nerds) may like a nice, tidy, clean, organized folder structure most actual users of software tend to want everything in one location. I mean, you have seen most business users desktops right?

Shawn Oster on January 8, 2008 10:18 PM

> (Shawn Oster) So while *you* (and me and other nerds) may like a nice, tidy, clean, organized folder structure most actual users of software tend to want everything in one location. I mean, you have seen most business users desktops right?

Yes, I've also sat there and watched while they *try* to find anything on their desktop too :)

Drew Wilder-Goodwin on January 8, 2008 10:22 PM

It seems like a small gripe, as I've grown accustomed to ignoring "Documents" for this very reason, but when I think of the things about using Windows that get on my nerves the most, this is the first thing that comes to mind.

Dan Finch on January 8, 2008 10:33 PM

I never store anything important in "My..." folders.
Once i wanted to do clean install over existing Windows installation because i couldn't boot anymore. Installation told me: "Your Windows, Program Files AND My documents!! folders will be deleted. From then, i keep only temporary files there, and that only because some programs defaults they save dialogs to My documents folder.
So, any app can feel free to pollute it, i don't care.

Hugo Riley on January 8, 2008 10:39 PM

No PG-rated words can explain strongly enough how I feel about this issue.

This is my documents folder:

3dsmax
Adlm
Adobe
AdobeStockPhotos
Architecture Journal Reader
Bioshock
Documents
Downloads
EA Games
Expression
Fax
Fiddler
FX Composer 2
Halo 2
Hitman Blood Money Demo
maya
My Art
My Chat Logs
My Demo
My Games
My Received Files
My Saved Spaces
My Sharing Folders.lnk
My Virtual Machines
My Web Sites
Notes
OneNote Notebooks
Program Data
RCT3
Remote Assistance Logs
Scanned Documents
Small Business Accounting
SQL Server Management Studio Express
Updater5
Version Cue
VirtualDJ
Visual Studio 2005
Visual Studio 2008
Visual3D Worlds
World In Conflict - BETA
XamlPad_Saved.xaml

The folder I've entitled Documents is my REAL documents folder. The Downloads folder was created by uTorrent, which can't even figure out that Vista already HAS a Downloads folder.

And for some of these (surprisingly fewer than you may think) you CAN change the path, but I can't be bothered - easy enough just to DITCH the folder altogether.

ARE COMMERCIAL SOFTWARE DEVELOPERS (including Microsoft, who commit this crime frequently) listening???

And in regards to the "My Websites" folder Expression Web creates and Projects folder for Visual Studio. I DON'T LIKE THIS. I have my own PROJECTS folder for ALL my projects. Get the f**k outa my Documents folder.

There should be a law against this NOW.

Christopher Hawkins on January 8, 2008 10:45 PM

In response to: "So while *you* (and me and other nerds) may like a nice, tidy, clean, organized folder structure most actual users of software tend to want everything in one location. I mean, you have seen most business users desktops right?"

Not true. All the casual users I know (family, friends, client's and their employees) like to CHOOSE where they put their stuff. Organisation is NOT only valued by nerds, in fact, by the look of my desk, it's valued less.

The desktop is a strange space though... I'll admit to having never seen a clean one other than my own.

Christopher Hawkins on January 8, 2008 10:49 PM

I totally agree with you.

It is so annoying when apps put folders into my 'My Documents' folder.

Currently, I have the following, all set to hidden to I dont have to see them:
*Aptana Studio
*My Virtual Machines
*My Webblog Posts
*My Sharing Folders (just a shortcut)
*Adobe
*My Chat Logs
*My Received Files
*My RoboForm Data
*EA Games
*My Downloads

Its just a real pain to have all these folders clogging up my daily routine.

Josh Hunt on January 8, 2008 11:04 PM

Well, as the "user space" is the only space the user is (sort of) guaranteed to have write access, where else should I store user and application specific files?

Save games are the perfect example here:

Storing save games in the installation folder (C:\Program Files\...) can't be it, because firstly I am usually running those as restricted user (so I don't have write access) and secondly the PC is shared with the rest of the family (I don't want the little girl to overwrite *my* personal save games).

Thirdly, I want to be able find it. So, would

C:\Documents and Settings\Users\User Name\Local Settings\App Data\Company Name\Application Name\Save Games\

really be the right location? Especially because that's a hidden folder?

Think about that.

Vinzent Hoefler on January 8, 2008 11:16 PM

I personally feel that this re-vamp of file structure was the best new "feature" in Vista.

JeffCityJon on January 8, 2008 11:25 PM

Vincent: Yes, you should put them there and yes, if you're so worried about users finding it, you should heed Apple's advice and provide a "Open Saved Games Folder" option in your game to quit fullscreen and issue a nice ShellExecute("explorer.exe the-quoted-folder-path-here"); exit(0);.

Or use Vista's Games Folder functionality, which gives you another way to let users interact with saved games (with nice thumbnails too).

There should be very, very few reasons for anyone to put data in ~\{My ,}Documents. We have %APPDATA%! (On the Mac, Microsoft is the only one I know that breaks this rule.)

millenomi on January 8, 2008 11:46 PM

I have 13 'My something' directories under My Documents. And it's a computer I installed only 3 months ago.

Wait there's more: Out of these 13 My... subdirs, only 2 contain files I created. And in both cases, it's simply because the app didn't give me any (obvious) choice (which might actually not be such a bad idea).

Serge Wautier on January 8, 2008 11:53 PM

That's a good point, Steve S. I don't know why, when Dell et al can ship HDDs with a recovery partition, they can't ship with at least two partitions visible to Windows. One for windows itself (say 20GB) and the other one for all the user's apps and data and where My Documents automatically points to. At least many corporations do this for their desktop machines. At home I thought about setting up my DIY win2k system variables to follow my 4 partition system (boot, documents/pictures, music, downloads), but it seemed too much bother.

Since I grew up on DOS/Win3.11, I only really took to using the personal space provided by the OS when I got OSX with my MacBook. The personal space is easy to get at with the command prompt and I've even found that after 6 months of cold turkey I don't even need the tree view I that Windows had made me addicted to. In fact, after hating it at first, I'm starting to want the column view in Windows.

John Ferguson on January 8, 2008 11:53 PM

This once again makes me glad that I almost never have to use Windows. :-)

There are very, very, VERY few Linux programs that do this, and they're almost all commercial.

-Max

Max Kanat-Alexander on January 9, 2008 12:02 AM

This problem is very old, and years ago I made a decision which (after so much time) is absolutely correct. I don't use "My Documents" at all, I keep all my "user data" in a different directory, with my own hierarchy, on a different partition. If I delete everything in "My Documents" I won't have a psychological trauma after that (worst case scenario - some programs will lose some of their configuration, which will be created from scratch and reset to default values when the program is started again).

Generally, I think it is important to keep my stuff away from the system stuff. It's something like "compartimentalization" (as described in Schneier's "Beyond fear"), a problem "here" won't affect the stuff "there". You can read more about it on this forum: http://forum.dekart.com/showthread.php?t=954&highlight=separate+data

Alex Railean on January 9, 2008 12:08 AM

I guess
- Visual Studio 2005 (also default storage for projects, ofc, but has a lot of stuff I do not even know what it is good for),
- SQL Server Management Studio (have not opened that folder until today) and
- Default.rdp
are like the worst programs doing that.
I totally agree that programs should not use those folders without having the user point them there, especially if AppData or such would be much more appropriate.

hangy on January 9, 2008 12:11 AM

Regarding "user space", MS named the dir "Users", so "user folder" sounds better.

Or "home", "home dir", so converters will feel at "home" on their switch.

Hoàng Đức Hiếu on January 9, 2008 12:29 AM

Finally someone to write my thoughts on paper (well sort of), especially the strict conventions part. Bravo!

Nikola on January 9, 2008 12:39 AM

Personally, I think as far as multiuser goes MS have got lots wrong. This is one of them.

The problem is that you end up with things that are specific per user being stored in "wrong" places - if you use a mandatory profile nothing actually is actually written back to the profile. (and why does MS insist on storing some registration details in the User part of the profile, my software should be registered per computer not the bloody user!)

The only place, in XP at least, to put thing is in the "My Documents" area, as those are the ones that the user will be able to access anywhere. (or should be if you've created folder redirection)

And to all you saying you don't use "My Documents" - why don't you just move where "My Documents" targets to? My Documents is just a system setting pointing to somewhere.

Tubs on January 9, 2008 12:58 AM

You're right, but what I find even more annoying is that you have no *easy* way to configure the path of your "user space". I've two drives and I always save my documents on another drive than c:. This way, I'm always sure that I can format my c: drive without loosing anything (since I'm loosing IE favs and settings :( ).

Fabian on January 9, 2008 12:58 AM

A very good point, some Applications go further and create folders for this stuff even though there are no files for it. On my Apple;

Microsoft User Data - Not sure what this is but contains a folder relating to Entourage which I've never even run and an MDB file (!!!)
iChats - Again never used it
Roxio Converted Items - It's empty and I've no idea what would ever get saved here

Also, in my actual user directory I've got;
Sites
Movies
Music

which are all empty and are therefore useless debris.

Sometimes I'll delete these folders and they'll come back again (Roxio!) other times I'm wary because something could break in the future (Microsoft)

BillyN on January 9, 2008 01:04 AM

Why would anyone care what's in their My Documents folder? Either ignore what's there, or create your own folder for your stuff elsewhere. Usually My Documents is on the C drive, and I try and keep my C drive small and store my data on another drive.

Also, it's not really `user space` as that already has a perfectly good definition. I know Jeff likes to come up with breathless, exciting headlines like `Don't pollute user space` but it comes over a little drama queeny.

Dave on January 9, 2008 01:05 AM

What's so weird is that there are no guidelines for this, not from Microsoft or anybody else. How are developers suppose to do the right thing if nobody defines the right thing?

This, I think, is Microsoft's biggest mistake in regards to this.

Adam on January 9, 2008 01:06 AM

Also, installers shouldn't put shortcuts to the application on the desktop! That one really annoys me.

Skizz

Skizz on January 9, 2008 01:09 AM

This is one of my pet peeves, and the main one is the rediculously annoying Cyberlink folder, that recreates itself everytime you start up PowerDVD. I just gave up deleting it....

Colin on January 9, 2008 01:10 AM

I unlike most people I know don't keep things on my desktop and don't store things in "My Documents" I have folders I created for this ..

This means the My Documents folder contains only the cruft that programs put there and the Desktop folder (which I don't display as Icons on my desktop...) only contains shortcuts to programs which I don't pay any attention to.

Seems I have several meg of files in their, but I treat it like the various temp folders (Why is their not one temp folder...!)

Jaster on January 9, 2008 01:27 AM

This is a problem that hit also Mac OS X. In my personal folder I've a lot of hidden directory and files (from pure *NIX apps) and under Documents directory I've some folder created by installed apps.
For example, these are files and folders I've in my personal folder:
.CFUserTextEncoding
.Xauthority
.Xcode/
.bash_history
.bash_profile
.cups/
.dvdcss/
.eclipse_keyring
.idlerc/
.lesshst
.subversion/
and these are files and folders I've in my Documents folder:
Dati utente Microsoft/ (created by Microsoft Messenger)
RDC Connections/ (created by Microsoft Remote Desktop Connection)

sirus on January 9, 2008 01:45 AM

And for Microsoft it took only.. How many years to copy this nice convention from *nix? :)

cx on January 9, 2008 01:48 AM

Oh my, the grave danger of "user space" pollution. What's next, crusading for kibibytes?

"(My) Documents" is NOT pure user space on Windows. Many, many programs (including many by Microsoft) automatically save all kinds of stuff to this directory tree. Just accept that as a fact, and save yourself the stomach ulcer.

If you care enough to want your own separate user space, just make a new directory that only you know about. Then you can simply add a link to the Documents folder for easy navigation.

Chris Nahr on January 9, 2008 01:50 AM

Yup, I agree - it's very annoying. I've got so much crap in my Documents folder that I've created another folder to use instead. As Chris says, that works.

But he seems to miss the point - I shouldn't have to.

Andy Burns on January 9, 2008 02:08 AM

People use Documents and Settings for their stuff? Yes it is nice dialogs default there but if you create your very own user space you can then guarantee no pollution except by yourself. I have been making a c:\projects or c:\[name] with my stuff forever off the root. It helps keep things tidy.

Ryan on January 9, 2008 02:39 AM

It's interesting seeing that Apple guideline in the original post because my documents folder on my mac is also riddled with folders I didn't create!

ed on January 9, 2008 02:57 AM

Max: "There are very, very, VERY few Linux programs that do this, and they're almost all commercial."

That is not true:

In my Linux home folder applications frequently add .xxx folders and files - hiding them doesn't stop them being there.

It is accepted practise.

~/.subversion/
~/.bash_profile
~/.bash_history
~/.bashrc
~/.idlerc/
...


-Perros-

Perros on January 9, 2008 02:57 AM

I remember having this discussion with a game developer (since their game makes a saved game folder under "My Documents"), and they pointed me to Vista programming guidelines that they reckoned *required* them to save this data there. I didn't quite agree with the interpretation, but the problem is that the guidelines *aren't* at all clear, especially for games where users don't expect to have their immersion broken by a standard file dialog appearing when they choose "save game". I'm afraid I can't find the guidelines at the moment, but my interpretation is that:

Any data that the user might need to treat as "documents", such as saved games and custom levels, should go in the personal (My Documents) folder hierarchy. Documents can be copied, emailed, deleted, renamed and moved.
Any files in the personal folder hierarchy *must* have file associations, be recognisable to the user, and should work when opened no matter where they're moved to by the user.
It does not seem to be mandatory that the game allow the user to choose *where* in the personal folder hierarchy the files should go.

The main problem with using a folder other than My Documents is that My Documents has the special privilege of appearing just off the root "Desktop" of the folder hierarchy, and many applications will default to it when you choose "Open" or "Save as" from the file menu. It can be awkward to navigate to other folders. The worst case is when an application makes you choose a folder with the folder browsing dialog - it doesn't have the shortcuts to common folders down the side that the file browsing dialog does, and may not even let you type in a path. (Under XP, anyway. Maybe Vista fixes this?)

Weeble on January 9, 2008 02:58 AM

Another common thing that really pisses me off is the default directory to install apps/games. Almost all uses C:/Program Files/Stupid Company Name/App Name. Why dear god? I don't care if Adobe PhotoShop is in the same folder as the Adobe Acrobat Reader. The matter is worst when you do not know what company made that program you want to find.
Thank god it is possible to change that before the installation, but how does a normal user install a program? Yes, I agree, Yes, Yes, ... , Yes (in 2 or 3 seconds).

Hoffmann on January 9, 2008 03:07 AM

Who stores personal data and files in "My documents"? Not me. I have a seperate drive to save my files. "My documents" is more like my junk folder.

kaushik on January 9, 2008 03:12 AM

I do not agree at all; for personalisation it is necessary for a place. And I still have a chance to create a 'home' directory inside

\Documents and Settings\User\

and use a shortcut for it.

Actually, I am annoyed by folder structure. Assume that I have an album of my photographs and I want to organise them in folders. For example, I want to put some photos into 'My Family' folder and also want to put some photos into 'Vacation' folder.

So, what should I do if I had a vacation with my family?

I was expecting a tagging system for files, however developers of Micros~1 still insisting on using folder based organisation.

Moosty on January 9, 2008 03:17 AM

The problem I have with this discussion, is from a user's backup perspective. Me personally, I want to just backup the My Documents folder, and know that I've got all my personal files covered, this includes things like saved games and letters etc. I can't just back up the app data folder, for two reasons:
1. In many cases it's useless. On several ocassions when I've copied the entire user profile folder to a new machine, first of all I get random permission errors, and secondly some applications don't work properly. So it's a waste of time.
2. For some unknown reason, the app data folder contains the default temp data folder. This is typically 500MB+ and contains stuff that shouldn't be there, and is a waste of space and backup time.

Jack on January 9, 2008 03:18 AM

Perros: you're missing several points here:

1. As you said, it's the accepted convention. Which means there is one, and it's respected.
2. Those are files hidden. Most file managers, as well as the ls command, don't display them unless asked. And even if you choose to see them, they're nicely grouped at one end of the list, thanks to the naming convention (notice how they all start with a dot?)

Felix Pleşoianu on January 9, 2008 03:25 AM

Would be nice if they at least had a different icon for empty folders (a transparent folder?)... I've started using iColorFolder, and this has let me grey out useless folders and highlight interesting ones, makes it a lot quicker to use explorerer.

Stu on January 9, 2008 03:32 AM

Yeah ! The removed the "my " prefix to folders in vista's user space ? Good riddance. :)

As for programmers using folders as they please, I second your opinion, but don't know if the situation is going to change anytime soon.

I believe that a lot of "windows problems" are caused by "bad programs", who do whatever they please. Maybe Windows should be stricter, killing apps that misbehave ? But that would cause a lot of old apps not to run anymore, and a lot of confused users ... :|

Well then, they're doomed.

Manu on January 9, 2008 03:49 AM

> 2. Those are files hidden. Most file managers, as well as the ls command, don't display them unless asked. And even if you choose to see them, they're nicely grouped at one end of the list, thanks to the naming convention (notice how they all start with a dot?)

That's right, but if you work with Windows you have to show hidden files, otherwise you cannot access important stuff.

tontechniker on January 9, 2008 03:52 AM

On my machine, "My Documents" contains 1,347 files in 53 folders.

Of those, I created 4 files.

But to be fair, I don't use "My Documents" as a place to put my stuff. Perhaps this is why.

Chris on January 9, 2008 04:08 AM

I don't use the my documents folder anymore for storing my documents... i created a "users" folder and place everything in there. (Even in another partition, so when a reinstall is needed... just format c:)

Federico on January 9, 2008 04:23 AM

My 'My Documents' isn't that bad, a few programs have felt like placing files there, however it's only 1-2 and it's very unnoticeable as I have a lot of university papers are such saved there as a sort of 'backup' in case a professor tells me they lost my paper, again.

Sean on January 9, 2008 04:32 AM

But interestingly ( unless this has changed ) I believe that in order to achieve "Games For Windows" accreditation, you _have_ to place the Save Game data in My Documents

( Please, someone tell me I'm wrong )

Jonny Hopper on January 9, 2008 04:43 AM

>But interestingly ( unless this has changed ) I believe that in order to achieve "Games For Windows" accreditation, you _have_ to place the Save Game data in My Documents

Isn't a saved game a file a user has created? Isn't it appropriate to place it there then? To me it's nice know that if I'm having a hard disk crash, that I only have ONE folder location to recover. I grew up gaming on Win9x and at almost EVERY LAN party everyone would be reformatting their machines because of all the Viruses and other malware floating around. Trying to go through 10+ games to get all of your saved data is Extremely annoying.

Brian on January 9, 2008 04:59 AM

Being administrator or not should also be mentioned here. If you are an administrator (or possibly power user) on you machine you can update the "Program Files" (it is called different things in different languages) folders and store the data together with the binaries. If you are not the settings must be stored somewhere else.

Now Dotnet2 solves this by splitting myapplication.config into the "Program Files" part and a user part. Guess where the user part is placed? Where else can it be placed?

LosManos on January 9, 2008 05:01 AM


Sheesh, they're never happy - we should forget about putting it in "My Documents" and "Program Files". Lets just put it back into C:\

Ben on January 9, 2008 05:23 AM

doh, it missed my "cynical programmer" tag

Ben on January 9, 2008 05:24 AM

I'm a Linux user, and, umm... I'm not so sure you should be holding up Linux (UNIX) as an example of what we should strive toward. Here's a listing of my home folder:

.adobe
.asadminpass
.asadmintruststore
.audacity-data
.bash_history
.bashrc
.beagle
bin
BOINC
.BOINC Manager
.cddb
.config
.DCOPserver_aerelon__0
.DCOPserver_aerelon_:0
Desktop
dev
.dmrc
Documents
.dvdcss
.dvipsrc
.eclipse
.emacs
.emerald
.esd_auth
.exrc
.fontconfig
.fonts
.fonts.conf
.foxrc
.gconf
.gconfd
.gimp-2.2
.gnome2
.gnome2_private
.gnupg
.google
.googleearth
.gstreamer-0.10
.gtk-bookmarks
.hgrc
.htoprc
.ICEauthority
Incoming
.inputrc
.java
.kde
.kde4
.kderc
.kermrc
.keystore
.lesshst
.local
logs
ls.txt
.m2
.macromedia
.mailcap
.mcop
.metacity
.miro
Movies
.mozilla
Music
.muttrc
.mysqlgui
.nbi
.netbeans
.nx
.ooo-2.0
.opera
.profile
projects
public_html
.purple
.qt
.realplayerrc
.recently-used
.recently-used.xbel
.rezound
.rhapsody
.rnd
.skel
.spamassassin
.ssh
.subversion
Themes
.thumbnails
.thunderbird
.turnpike
.urlview
.viminfo
.vlc
vmware
.vmware
.wapi
.webex
.wireshark
workspace
.Xauthority
.xcompmgrrc
.xcoralrc
.xemacs
.xim.template
.xine
.xinitrc.template
.xsession-errors
.xtalkrc
.y2log

Out of all of these folders, I think I created about 5 of them.

Rob on January 9, 2008 05:27 AM

It's nice that Apple provides the "Don't pollute user space" guidelines, but of course, Apple itself violates this -- iPhoto, iMovie, and a whole host of other Apple apps pollute my user space with their libraries and document folders.

Jason on January 9, 2008 05:29 AM

I think it depends on what you classify as user content. If a user saves a document from within an application, is that considered user content? Application configuration data should be saved in APP_DATA while files created by the user or on behalf of the user should be in the "user space". So all those saved game files and OneNote notebooks are correctly located in the My Documents.

Bart on January 9, 2008 05:35 AM

How is Apple cheating? Go with what works. Vista should have been UNIX based as well. ;)

Akira on January 9, 2008 05:43 AM

Hey Now Jeff,
Very interesting post. The folders that put there grubby hands my user space are 5 on this workstation:
Visual Studio 2005
MSDN
SnagIt Catalog
WebEx
PGP

Coding Horror Fan,
Catto

Catto on January 9, 2008 05:59 AM

I actually like storing certain application specific files in "My Documents" because when I run my daily back up of My Documents I know I've got the latest files for all my programs.

The programs that don't store files there I have to go through the trouble of backing them up to a folder called "Backup" that I created to make my daily back up easier.

Kevin on January 9, 2008 06:00 AM

I have given up on "My Documents" folder. I create a separate folder on drive root to store _my_ documents & just forget about "My Documents".

Suraj Barkale on January 9, 2008 06:00 AM

*SO* right.

I loved to have my Documents folder clean, now it looks like every game will put some garbage in there (and not even into the My Games folder).

In the end, I'm going to have to create a separate user, something I've always hated (having to log off and on, or switch users in XP are concepts I don't like).

paketep on January 9, 2008 06:04 AM

I have used both Vista and XP and don't like how either OS pollutes the User Space. That's why I've just created my own "User Space" on a separate hard drive. Since I would only really find a need to browse directly to music, videos, and pictures under the User Space, I've just created those three folders on the other hard drive. That way, I only have to navigate to one of those three (and not constantly find new folders in that directory every time I look). If any applications I have create folders/files in the User Space, I just let them. I rarely find myself even opening "My Documents" or "Documents" and I love it.

Mike on January 9, 2008 06:09 AM

I think the rule "don't touch user space" is a wee bit simplistic. It's a good starting point, and should be followed if there's no legitimate reason not to - however, all too often there are legitimate reasons for applications to store information in what you define as "user space".

For example, I've written a program that lets users manage camera settings, including saving them to file. The files are saved under a subdirectory of the user's folder named "Camera Settings" - a folder my application creates, right next to My Documents, My Pictures, etc. This is no less appropriate than Microsoft Word saving documents under My Documents.

As always, logic, rather than cookie-cutter rules, should dictate the final outcome of any decision.

TadGhostal on January 9, 2008 06:27 AM

Ironically, I've compensated by moving My Documents to E:\ (using TweakUI), and repurposing it as the new Application Data, Local Data, etc folder. And I try to reconfigure my apps to store their data in E: whenever possible - it makes backup a little easier to manage.

F:\ is the new My Documents ;)

And yes, damn Microsoft for ever setting "Documents and Settings" as an important system folder that can't be moved (easily, or safely).

kureshii on January 9, 2008 06:31 AM

The same on Linux.

$HOME is so polluted that I have my own $HOME/room
for my things (ssh-shared on all my accounts).

alcortes on January 9, 2008 06:33 AM

It only gets worse.

The one I hate the most is "My eBooks". Even if I delete it the first time I load up Adobe Reader it re-appears in My Documents.

I miss the days back in Windows 3.1 when there was no "My Documents", "My Pictures", "My Music", etc... I could put my files where I wanted to put my files.

Billkamm on January 9, 2008 06:37 AM

It's too late, give up and go home. There's already so much badly written software out there you're just going to have to live with it. Introducing different file paths is just compounding the problem by adding a little more variation.

Don't get me started on how many times I've seen people cry because when they backed up their 'My Documents' folder and reinstalled only to realise that none of their emails from Outlook are there as well as half a dozen other things.

Looking in c:\Documents and Settings\username\* gives me the shivers.

Rules
1. Don't bother me with files that aren't mine. If they were copied from the install, I don't want to see them outside of the program.
2. Try not to assume that only 1 person ever uses the computer.
3. Make it easy for stupid people to back up things that are mine. Make your bloody program be able to pick up the old settings when i reinstall it to a new machine.

I have to agree with Mike. I periodically empty out MyDocs and use my own folders in c:\docs. Only special thing is to move Outlooks default pst and I'm set.

Pfffft

TooLate on January 9, 2008 06:42 AM

I hate the default setup in XP. So much so, in fact, that when I re-installed the OS recently I created my own structure. I don't use the "My..." anything folders, or the "Program Files" folder. I absolutely hate spaces in directory paths. So, I created a structure like so:

C:/apps
C:/apps/program_name_here/...
C:/ben/work/
C:/ben/play/
C:/ben/music/
C:/ben/movies/
C:/ben/websites (I'm a web developer)

Ben Lacy on January 9, 2008 06:46 AM

I don't feel hidden .conf files in your home directory is a mess. Do you ls -l everytime your in there?

oh yeah and /home/user/ is a lot nicer than C:/Users/user/Documents

Joe Beam on January 9, 2008 06:52 AM

I fully agree with the message portrayed by this post, and I am glad you posted it. However, I am not so sure "User Space" is the proper terminology, as already pointed out in another comment. I would call it "My own effin' chunk of the HD", and it certainly should not be messed with!

Josh Stodola on January 9, 2008 06:55 AM

I agree with you all. Programs should not pollute, but they should not make the useful files (saved games, yes) hidden either. I think the important part is habing official standards, set by the OS, so that from then, people can start ignoring them.

I think one of the problem is that many coders who code for windows don't have the correct information, and won't find it even if such documentation exists and is easy to find. They'll ASSUME it's something like that, and go on. (I'm not really better myself, but then, it's not directly my job either).


The My Document mess is pretty bad, but I'm more troubled by the program files mess itself. Some program seem to think this folder is not good enough for them, and will use simply "C:\" instead and that, without asking.

Marc-O on January 9, 2008 07:04 AM

So where should programs save their files? I thought writing to the C:\program files\ directory was a no-no? Doesn't that give a UAC warning? Your program certainly shouldn't write to C:\

David C on January 9, 2008 07:21 AM

Actually, "Users" and "Library" are NextStep conventions, not the historic unix/linux ones (which use "home" and "lib" for much the same purpose, displaying the unix allergy to uppercase letters and uncontracted words).

Re the "dot files": remember that on unix/linux, files/directories beginning with a period are hidden files and don't show up in normal listings. Though I wish they'd picked /home/username/.etc/ to dump them all in.

Pooky on January 9, 2008 07:28 AM

> The one I hate the most is "My eBooks". Even if I delete it the first
> time I load up Adobe Reader it re-appears in My Documents.

So use the free Foxit reader instead.

Dave on January 9, 2008 07:33 AM

I hate all this "My Pictures" "My Skype Shared Files" "My Buggy C# Code" that Windows seems obsessed with. I know it's mine, it's on my PC (or at least my profile).

And no, Visual Studio shouldn't create its own folder to put your files in. That should be your job. What if I have somewhere else that I store source because I don't just use Visual Studio? Just make step 1 of the startup wizard "where do you want to store your files?".

Ask me where I want stuff to go, don't tell me where it's going... it's MY documents after all, as Windows is so insistent on telling me. That means it conforms to MY structure.

When programs want to store data they should ask the user, and default to My Documents, just like MS Office does. If it wants to save a directory structure then make the program ask the user on its first run where that should go.

Now someone change the Unix convention so we get a "Documents" directory so that our work isn't mashed in with hundreds of dotfiles and bits of random junk ;-)

James on January 9, 2008 07:41 AM

A program I've been working on for a while uses has three "layers" of data:

1. Application Files - Files are never updated (yeah, still working on the updater module for that 8^D). This stays in the C:\Program Files\Dillie-O Digital\Deck Studio folder

2. Application Data - There are only two files, but they are updated periodically through an update feature. They are stored in the C:\ProgramData\Dillie-O Digital\Deck Studio folder or the C:\Documents and Settings\All Users\Application Data\Dillie-O Digital folder based on your OS. Interestingly enough, I have to work the UAC and the Manifest to allow Users to write to this location in order for the update process to work properly.

3. User Data - The custom deck (and a sample one) files that a user creates simply goes into the C:\Users\User\Documents or C:\Documents and Settings\User\My Documents folder based on OS.

Everything I've seen up to this point says this is the "recommended" way to do things and will also cause the least hassle with the Vista UAC. Am I missing something here?

I'm quite happy as well that they restructured the naming to the User folder. I've actually started using it slightly since then 8^D

Sean Patterson on January 9, 2008 07:54 AM

Vista is a vast improvement on the handling of user home *directories/folders* (user space is a memory/process issues) over any previous Windows I've used. However, it appears that Linux is picking up bad habits from Windows, at least the KDE desktop environment (or some of its apps are). Imagine my surprise after years of never seeing automatically generated visible directories in /home/user when I suddenly saw things like "Documents" and "Music"! At first I thought this was because I share my main personal /home/user and mount it on other machines (including a Vista system) and that Windows had somehow done this to me. Not so. Turned out it was KDE that done it.

As for .hidden directories on Linux/Unix: they are not-visible by default in the GUI and via `ls` and normally I wouldn't put .hidden directories in /home/user for my own purposes. So .hidden directories are good for user-specific data, like configs or saved games... where else would you put that data on a Linux system since /home/user is probably the only place an app can write without privilege escalation?

michael on January 9, 2008 08:05 AM

On the other hand, what are VBA script kiddies like me supposed to do? I'm someone who writes a fair amount of scripts and solutions for Microsoft Office, and being able to just plunk my crummy little template into C:\Documents and Settings\Geoff\Application Data\Microsoft is kind of handy, in many cases. That way, I'm the only one who's the victim of my crappy macros. :)

Geoff Lilley on January 9, 2008 08:09 AM

I just make a folder with a custom name within Documents, and use that as my "user space". No other app can pollute it because they don't know what it is. Any "official" user folder will eventually be polluted by software. Unless of course someone will pull their head out of their ass and invent an OS where every app has its own sandbox...

anon on January 9, 2008 08:20 AM

Even funnier is that Microsoft breaks the Mac OSX convention as well. Install Microsoft Office on your Mac and you get a Directory called 'Microsoft User Data' in ~/Documents as opposed to ~/Library/Application Support which is where it should go.

Andrew on January 9, 2008 08:22 AM

I couldn't agree more, and it drives me absolutely nuts (most especially when non-user editable files are dropped in my documents; for example saved games and application configuration files. If the user never directly opens the file for manipulation it belongs in application data). However vista has come to the rescue!

I have found that the only viable way to use Vista is to not view hidden files and folders (as there are so many more) but this has afforded me the opportunity to us mklink at the command line to make a symbolic link in the documents folder pointing to where the file really should be stored, which I then hide. I suppose I could just hide the offending folder in documents, but this way I know absolutely where that file is (with all other similar files) and it *isn't* hidden in that location when I want to go find it. I think mklink is my single favorite thing in vista as it allows me to organize the file system how I want, not how any other developer wants (what they hell do they know about how my system is configured).

It is also a great way to move the user directory off of the system partition so that I can format/reinstall the OS without jeopardizing my user files.

El Chupageek on January 9, 2008 08:46 AM

I haven't used Vista much, because what little bit I have used I've hated, but the user data directory system seems even more awkward than XP. I do agree though, half of the folders in my main documents folder were not created by me. Why couldn't those go in the Application Data folder?

On a side not, Jeff, I have a recommendation. Alex over at The Daily WTF just implemented a new feature where he highlights his favorite user comments on each post, these show up in blue at the top of the comments. It would be nice, since you have so many commenters, to see the same thing here. Just a thought.

Mattkins on January 9, 2008 08:51 AM

I agree that Windows apps should be more courteous and consistent about where they store things.

Microsoft has other ideas. Vista introduced the new, extensible Known Folder system, which offers much fuller Windows-integrated support for adding all sorts of application-specific crap to user space:

http://msdn2.microsoft.com/en-us/library/bb776910(VS.85).aspx

Frankly, the mess that results from this sort of thing is largely the result of Microsoft's failure to lead software developers effectively. If MS was better at explaining what features were intended to accomplish, apps would be more consistent and polite. If MS was interested in making Windows a little more actively self-administering, a lot of these things could be gently guided toward consistency by the "make the easy thing the right thing" principle.

Western Infidels on January 9, 2008 08:52 AM

Well you know what, developers used to store settings in the application's program folder and in the windows folder. That was before we cared about security and everybody ran as an admin. Nowadays, I write my config files, etc to Application Data, whether the User's one or the All Users one.

Nchantim on January 9, 2008 09:11 AM

Jeff I have to agree, like others I frequently uninstall programs that put more stuff in my My Documents folder, as titled those are My Documents, not application documents.

oh, and Cabbage let me introduce you to "ls -al".

Arron on January 9, 2008 09:17 AM

Wrong, Wrong, and Wrong.

Developers should use the user space to store information.

This is especially true one machine is shared among more than one user. For example, say I have a machine that is shared among 4 family members. Each family member is going to have its own login. If you develop an application that is configurable, it natural to use the current logged in user's personal space to store that information. Its easy to maintain with code as no pathing needs to be hardcoded on a per user basis as .net has method calls to retrieve this information automatically. So when each user logs into your application, the correct file is pulled to configure the application. Otherwise, how are you going to store files for each user, create directories for them under your application and maintain that structure? Extra work IMHO. The structure is already created for you by Windows. Use it with only a few lines of code.

Additionally, the user area is one area of the machine that a program should be able to read and write from all the time, so naturally it a good location to write and read files from. Other areas of the the drive may not be accessible if the user has limited privileges and are not garanteed to be accessible. Therefore, the user area is prime choice to store files without encountering permission type errors.

If you want to truly create you own area, create a directory on your hard drive and only assign your user access to it and store your crap there.

Jon Raynor on January 9, 2008 09:18 AM

To Cabbage:
"(Yes, you can hide them, but then what do you do when you actually want to see them besides hunting around in configuration dialogs to find the checkbox to make them visible again?)"
What do you mean, "dialog boxes"?
alive@m00h test $ ls
visiblefile
alive@m00h test $ ls -a
./ ../ .hiddenfile visiblefile

There. That makes perfect sense, doesn't it?

But my arrogance to the side, if you prefer to use a graphical file manager and a graphical text editor to "hunt around" in your "hidden files", I'd suggest Nautilus where you can just click "View->Hidden Files" to show all the "hidden" files in your system.

Rada on January 9, 2008 09:19 AM

This is such a bad problem to me that I put all my personal files on a separate drive, mounted at /media/files. My /home/justin directory just contains the Desktop directory and tons of hidden configuration stuff.

I absolutely can't stand having OS configuration data mixed in with my personal files. Am I in the minority here? Both Linux and Windows do it by default.

James Justin Harrell on January 9, 2008 09:20 AM


I disagree with your thesis. The less computer-savvy a user is, the more appropriate it is to add some things to "user space". A program responsible for pulling images from a digital camera for example. The pictures should definitely go in the folder the user expects (My Pictures).

If I'm playing a game, I'd rather have my saved game files show up in "user space" in a folder named "WhizBang Saved Games" than have those files tucked away under some arbitrary AppData folder.

Moreover, I really like the way Linux stores application data in .folders, like .mozilla, or .wine. The dot puts them out of the way during a regular ls -l command, but still leaves them in a convenient location like ~/.wine/drive_c/ when I want to get to something. If Windows can't hide dot-folders in it's graphical shell (Windows Explorer), then that's what needs to be fixed, not the programmers who are storing data in an intelligent way.

Finally, if you don't want my dirty, filthy paws on your user space, I suggest you not run any programs that I write. It's not my fault you chose a half-assed operating system shat into the world by a convicted monopolist.

Programmer on January 9, 2008 09:46 AM

I put all my documents into directories i create. I don't use the My Documents or Documents folders.

I PREFER apps to place directories for there projects/files in the Documents folder. Like Visual Studio. I prefer projects to go in the Documents/VS2008 folder when i DO NOT specify a directory. I wish ALL programs would create a directory inside Documents and use that as the DEFAULT save locations. Then i know where stuff was dumped and don't have to go looking for it when i want to place it into a REAL folder.

Because apps do not do this i must ALWAYS select the final resting place for documents OR create the directory in Documents to dump into, before i finally move them to a real directory.

I Use Documents, Downloads, Pictures, and Music as temporary resting places before organizing them properly. I cannot imagine the mess I would have otherwise.

brian on January 9, 2008 10:11 AM

Personally this issue never bothered me, but stuffing "My Documents" full of various folders can become annoying if you have tons of apps which put their things there...


However my biggest annoyance with this (and the whole app data thing) is ANYTHING which puts ANYTHING AT ALL on my C: drive. DO NOT PUT STUFF ON MY C: DRIVE WITHOUT ASKING ME.

I constantly have to clean up C because of stupid apps which put their stuff there. Almost all bigger apps and some games put gazillion megabytes of files, eventually clogging up C: to the point where you no longer have enough free space on the partition. ARGH.

Jani on January 9, 2008 10:12 AM

As others have said the main issue issues are as follows:

1) No one has even discussed the difference between "roaming" and "local" users yet. Most programmers don't know the difference. This means that there are two different sets of preferred folders for a local user. On XP the naming is ridiculous. At least they improved it a bit on Vista.

2) There is no clear guidance from Microsoft.

3) The folders that are considered "preferred" are actually marked as hidden by default so users can't find them anyway. Why they did this I'll never know.

4) It is hard to distinguish between what a "user" creates and what a "program used by the user" creates.

5) It is difficult to support applciations that can be installed for either multiple users or just a single user. It should be a simple base path change to support both but it isn't. This is also confusing for users.

6) Multi-user folder ownership is difficult. If a standard user creates a new folder under the shared documents area then they are the sole owner (even though it is under a shared folder). Other users can see the files in this folder but they can't delete or modify them. In a world where users used to always run as administrators this wasn't an issue. But now that users are supposed to be running as standard/limited users we have to worry about giving all users on the machine ownership to each folder we create.

Matt on January 9, 2008 11:04 AM

"Apple has a great set of guidance appropriately titled Don't Pollute User Space"

Funny, iTunes is polluting my user space.

Jason on January 9, 2008 11:53 AM

All of the nerd reasons for polluting the Documents folder have already been addressed, and yet people continue to repost them.

You want users to be able to move/copy/e-mail them? Put a link to that folder in the program's UI. It's seriously not that hard. If it's something like a full-screen game, then put the link in the app's Start Menu group and name it "XYZ Saved Games" - that way it's also easy to find using the search box on Vista.

Oh, but you want to be able to back up all your program data! How on earth are you supposed to back up stuff in the "Application Data" folder? Oh, that's right... you take six seconds to put a checkbox next to it in your backup software. And don't even try to complain that average users won't know where to find it, because we all know that average users don't make backups at all (even most geeks don't bother).

But save games are files that the user created!!! No, they aren't. The user has no awareness of the name of this file, where it's going, or even that it exists at all. It's like saying I've created radio waves by dialing on my cell phone; do I even care, much less have a desire to categorize them? It's an implementation detail, and for all your average gamer knows, his save games are being beamed from ex-Soviet satellites or bound by magical energies (most likely the latter). An unprompted save game is as much a "document" as something in my browser cache - which, by the way, is in AppData for non-IE browsers and a special folder for IE.

Folks, stop making excuses. As Raymond Chen puts it, the one and only reason for this pollution is that developers and product managers grossly overestimate the importance of their software. Oh dear, how will our users, who will undoubtedly be using Awsomo 3.1 for 17 hours every day to create thousands if not millions of documents, be able to organize this vast array of data if we don't help them do it? God forbid it might end up in the same directory or universe as another program's documents!

Get over it - your crapplication isn't that interesting. And most of the time, the regular Joes don't even want that level of organization. They expect anything and everything to be on their desktop, and if not there, then maybe right in their Documents folder. Any deeper nesting than that ("My Received Files") just confuses them. You aren't helping them by providing one more layer of indirection.

The guidelines, contrary to (apparently) popular belief, are very clear: if saving a file is an interactive process, start them off in My Documents. If the users can't choose the location, then it goes in AppData. If you desperately need them to be able to find it later, then give them an option to find it later. It's really very simple and straightforward.

Aaron G on January 9, 2008 12:01 PM

We are fighting between rigid order and flexible disorder.

I mean, when MsDos ruled, applications stored ALL their data ONLY in their own installation folder. Uninstalling was easy: Just delete the folder. As time goes by, apps get more powerful and for some reason they spread into increasingly deep and hidden folders. It is supposed there are reasons for this. First, the reason was avoiding waste of space in hard disks. But now hard disks have lots of space, specially if you measure it for an application basis (not in an emule basis, for example, where a lot of space is always few for those users).

Why spreading apps, then?

oscar on January 9, 2008 12:06 PM

>> Aaron G: The guidelines, contrary to (apparently) popular belief, are very clear: if saving a file is an interactive process, start them off in My Documents. If the users can't choose the location, then it goes in AppData. If you desperately need them to be able to find it later, then give them an option to find it later. It's really very simple and straightforward.

I wish that kind of simplistic attitude actually worked. You may want to re-read my post above.

Your "rule" doesn't address "local vs. roaming". It doesn't address the issue of "standard users vs. admins" and ownership/privileges and the havoc it wreaks on programs meant to be used by all users on the system.

The world was easy when everyone ran as admins. By default in XP, files/folders created by admins are owned by all other admins on machine. And when everyone is an admin that all works fine. But files created by limited users on XP are NOT automatically owned by all other users. And it often takes admin privileges to grant permissions on them to other users. So if a standard user creates a text file while using your program then no other user can touch it... even if it is in a public folder!

So you may want to go back and make sure that your simplistic approach is really the right implementation. As I said, it is definitely not simple or clear and given that most programmers are still trying to write to c:\Program Files, we have a long way yet to go.

Matt on January 9, 2008 12:18 PM

> The less computer-savvy a user is, the more appropriate it is to add some things to "user space".

I agree with you totally ,the geeks posting are only considering themselves in this matter (selfish!).Average Joe's should also be considered here.i think it is too late to change anything now ,you just can't wean Average Joe's on user space pollution to the point that it becomes normal for them and decide to change it when they are most comfortable with it.the bottom line is : the user space standards should have been enforced in the "beginning".

gogole on January 9, 2008 12:57 PM

Also when programming a C++ only library namespaces should be used to prevent for example my vec2, vec3 and mat4 classes clashing with yours or worse, using a prefix on every single class.

Instead of:
class chrisVec2;
class chrisVec3;
class chrisMat4;
etc.

It has the added advantage that it makes the library code more readable:
namespace chris
{
class vec2;
class vec3;
class mat4;
etc.

I can then either pollute my global namespace by saying:
using chris;

or I can use:
chris::vec2 v;
chris::mat4 mat;
etc.

Which has the added advantage of autocompletion after typing in chris:: in most modern IDEs. Also using chris::vec2 shows that I know where it is coming from and tells other programmers instantly that I know where it is coming from.

Chris on January 9, 2008 12:57 PM

I don't think "User Space" is meant to be a "term" per se, I think he means to use the English words, 'user,' and 'space,' not the single Term "user_space" Some people really like to split hairs.

Cheers for this post.
The commenter who noted that WinXP has no default folder for Saved Games is also correct, however, that there really isn't a clear solution to that. Pleacing the Saved Games folder inside C:\Program Files\Game\Saved_Games\ isn't a bad idea, but users might have to actuallly read the documentation, if that were the case.

I really hate when Apps do this, and doubtlessly is best to avoid junking up User Space, if possible.

Jeremy on January 9, 2008 01:37 PM

>> Jeremy: Pleacing the Saved Games folder inside the C:\Program Files\Game\Saved_Games\ isn't a bad idea...

Uh, well it is if your users are running as standard users and don't have permmissions to write to that folder...

Matt on January 9, 2008 02:02 PM

Every app creates it's own subfolder and stores files there - all without asking. But i don't want to store files sorting them by their extension or creator program - i want to file them "object oriented":
For every project i'll create an own folder, which contains files of all different types. Storing a music file under "my music" and the associated jpeg-files under "my pictures" is wrong, if they are used together to form an video - which will be stored under "my videos" by default. They all belong to one folder for this project. The folder "my pictures" could be an automatic view, which aggregates all jpegs virtually, as seen in newer outlook-versions.
In Outlook virtual mail-folders are used, why not in the OS Vista?

titrat on January 9, 2008 03:18 PM

Another thought: In today's time, every application should be viewed as potentially hostile. But in the process of installation, the setup could create folders and files in nearly all places over the system. Ok, in vista the system-folder is tabu now.
How would it be if an application could store files at just two predefined folders:
programs\app_xyz\
and
userdata\app_xyz\
(where app_xyz is defined by the OS)

The OS should throw a warning box if any other place is corrupted with files or folders. If the program is used, and the user wants to store the newly created data, only the folder or filename choosen by him in an standard-dialog may be used by the application.
The OS should take care, that no other destinations could by used be the application. This behaviour could be made transparent to the application. It's a sort of virtual-machine, but without the overhead.

Web-Applications are sort of that, but privacy with such apps is a big concern for me there. No installation needed, but i have to trust the offeror.

titrat on January 9, 2008 03:34 PM

1) "Those who do not understand Unix are condemned to reinvent it, poorly"
2) Granted, Apple is cheating quite a bit by inheriting the well-worn conventions of classic Unix operating systems.

No. You even said it yourself.

blah on January 9, 2008 03:41 PM

Didn't bother checking for dupes, but I hate how the Unix tree is typically set up. I want / to only contain a few folders, say, /usr and /sys maybe. and /usr/MYNAME/home should be mine, and should be pointed to by ~ while all my stupid .files belong in /usr/MYNAME/

Montana Rowe on January 9, 2008 03:43 PM

To all the guys that said linux unix isn't much better than that, I would say you guys are fucktard....

Well, I need to explain a little bit.

so guys are saying that .document .vim .bash ... shouldnt be inside the home directory of the users?

First, the home directory isn't the "Document" directory
Second, While the Home directory != MyDocument whatever it is great and it should stay like that... why?

Because in english it is MyDocuments...in french MesDocuments and so on for any language you use.

So to the guy who proposed putting these files inside the ~/conf
i would say it won't happen anytime soon because conf could change depending on the language. Like my Desktop folder isn't named desktop but Bureau.

So why it is great to put every .configuration file/document inside the root of your home...
It isn't language dependent. The document cannot be deleted by accident deleting every configuration file in one shot.

And for developpers, creating a folder inside ~is less typing than
~/${configuration_folder}/

just put it on the root of your home directory.
Then i would say that software never putted thing inside my Document directory. Because my home folder is my home folder not my document directory...Understood?

and i would add something else...
Where is located the My Document Directory inside windows xp?
Any Guess...

document and settings\user\my document... OH
so the home folder inside windows isn't my document directory.
Oh same thing in linux...home folder isn't MyDocument directory.

Loic on January 9, 2008 03:43 PM

If someone put up the idea to put files inside
~/etc
~/bin
~/lib
~/share

i would say why not...because it keep the skeleton of unix folder.
While i don't think it is necessary. May be one day

Loic on January 9, 2008 03:48 PM

I can completely see this perspective. In the Unix namespace; a user's home is separated from the system although a system user can do anything. As a rule, Unix folks tend to do things based on who you are and where you are at (which Peter Seller's taught us all is the key to success) - however - some software exists that interferes with the user experience and such software is a recent *thing*.

I do not want to name any software in particular, so instead I will say *software that can start userland server processes* (feel free to fill in one) that not only does not help the user but often clashes with what other users might be doing.

Point being - Microsoft (or Apple for that matter) are not the only ones who do not get this concept of leave the user *alone* as much as you can.

Thanks Jeff,
Jay

Jay Fink on January 9, 2008 03:56 PM

In case my last post wasn't clear: it's that precise attitude of saying that someone is doing something right but that it doesn't matter anyways because they didn't invent it that got Microsoft in the horse shit that it is in right now. Who knows, maybe it has to do with Patents. But no, it actually doesn't and we all know it doesn't...

Whether Apple 'cheated' or not is so moot, I can't even think of a superlative or expletive to qualify it. Justification has *no* room in the argument of being Wrong versus being Right. This is why after 15 years of professional windows programming and usage, I've just completely jumped over to OS X and haven't looked back since. Justification? It's Right(tm).
I even pay the $129 to buy OS X legally. Something which I've stopped doing a long time ago for MS.

blah on January 9, 2008 03:58 PM

This always bothered me on Windows too. Not so much on my Mac, with one exception: "Microsoft User Data". Without this (application database) folder, my Documents folder is nice and tight, easily RSynch'd across the network or even VPN to various backup locations. However, spurning Apple HIG and common practice, Microsoft decided that this is the best place for it to put a bunch of configuration files and a honking monolithing Entourage email database (which obviously changes every time I check mail, so RSynch wants to copy the whole thing over again every single time).

Microsoft: these things go into [~]/Library/Application Support. That's why that whole folder exists! Stop dumping on my Documents folder!!!

Tom Dibble on January 9, 2008 05:34 PM

@Rob:
You are right, in that there should be a ~/config/ folder that holds all of the .appname files/folders. However, you are also wrong in that your Documents folder is ~/Documents, and that's the one we are talking about.

Simon Pieman on January 9, 2008 09:39 PM

Interesting how the operating systems' conventions are converging. Kudos to Microsoft for not letting ego get in the way, and going with (mostly) similar folder names to Apple. This is good for users. (And even though I rarely use Windows, I am sincerely thankful for the liquidation of the embarrassing "My Pony" naming convention!)

Mac OS 9 (1999) actually had a user accounts and home folders system, which it inherited from At Ease (c 1991). But no one used it. The default start-up had no user account associated, and users continued to put their files wherever they felt. It's a good thing that the clean break of OS X was able to impose a tidy new organization on both users and developers.

I've migrated my user folder through several machines since the previous century, and the only intrusive folders appearing are the empty ~/Documents/AdobeStockPhotos (now trashed) and Apple's ~/Documents/iChats, containing my chat logs. Yes, iTunes and iPhoto each drops its own folder into Music and Photos respectively. Perhaps if Apple created them today, these apps would store their data in ~/Library (you can move and rename music files and folders and iTunes won't blink, but woe be on ye who touches anything in iPhoto Library).

In Mac OS X, you can also add an ~/Applications folder, and the OS will support applications' system services. Of course you can still drag a program into any other folder and still run it. Putting user apps here lets you move your entire account to another mac by copying the user folder, but it is easier to let the Migration Assistant do this.

It's too bad that XP's chaos drove all the savvy users to use a separate folder or hard drive, as attested by so many comments here. Although Vista has an improved structure, it looks like MS isn't encouraging developers to clean things up, so the transition could be a long one.

With OS X Leopard adding the new Downloads folder, both OSes now have a very similar home folder structure.

In Mac OS, no standard folders are hidden:

Desktop
Documents
Downloads
Library [=~\AppData\]
Movies [=~\Videos\]
Music
Pictures
Public
Sites

Vista:

AppData [= ~/Library/]
Contacts [= ~/Library/Application Support/AddressBook/?]
Desktop
Documents
Downloads
Favorites [= ~/Library/Safari/]
Links [how is this different from "Favorites"?]
Music
Pictures
Saved Games [= ~/Library//, perhaps]
Searches [= ~/Library/Saved Searches/]
Videos [= ~/Movies]

By the way, since the Mac OS X file system is not path based, the folder names are internationalized. So if I go to the International System Preference and drag Русский to the top of the language list, when I next log in to that account the home folder names are displayed as Библиотеки, Документы, Загрузки, Изображения, Музыка, Общие, Рабочий стол, Сайты, and Фильмы. Will Vista do this?

Michael Z. on January 9, 2008 11:20 PM

[quote]Take a look in your Documents folder right now. Go ahead. Look. Do you see any files or folders in there that you personally did not create? If so, you've been victimized. Applications should never create or modify anything in your documents folder without your permission. And yet, sadly, it happens all the time. [/quote]

Well Jeff, I took a look at my Documents folder, and guess what I found... a folder called 'Family.Show'. Rings a bell?

Maybe you'd beter be telling the above to your co-workers.. ;-)

Jacob on January 10, 2008 02:20 AM

The first thing in my OSX based Documents folder not created by me?

Appleworks User Data.

Not that I'm suggesting they're hypocrites or anything.

Deb on January 10, 2008 05:34 AM

This whole issue is the reason that I ignore Documents and Settings, and keep my files in a (very unix-like) structure of my own creation. The penalty is that I frequently have to re-target default paths, (eg, when saving from my word processor). That's where customizing the "Places Bar" comes in handy. (See Microsoft's TweakUI.)

Chris Noe on January 10, 2008 06:34 AM

So I went and looked at my "My Documents" folder, oh what a mess. Then I took it a bit further and looked at my C drive, oh what a mess. I really need to get better orginized....

If it wasn't for Google Desktop I don't think I could find anything, ever...

Craig on January 10, 2008 08:15 AM

It is funny how much everyone is like 'waking up' to find this issue. "My ..." has been trashed and abused for a long time now. Software developers move from creating weird and crazy stuff in the registry to "poluting" "My ..." folders. Overall I just ignore those folders for personal use and never store anything there. In the software development app settings go to Application Data and any other files I need to store: user chooses the location.

Laimis on January 10, 2008 11:34 AM

Yes, this is a another flaw in Windows. I don't put any documents into My Documents, but My Documents is always expanded when I start browsing folders. I have to collapse it to save screen space.

Except iTunes music stays ok in My Documents. That way I never have to worry about where the music files are when I rearrange my real folders. When I buy a song, I don't have to name the file nor choose a folder for it before I can listen to the song, too. That is progress.

Don on January 10, 2008 11:53 AM

>>you should place those files in either the local or user's Library/Application Support directory by default

Just so you know, the path is "~/Library/Application Support". I noticed that you didn't format the "Support" with the rest of the path, so maybe somebody at Apple messed that up, or maybe you missed it. But now you know.

Also, plenty of Mac OS X applications (like ... Office) do install things in the user space, and it pisses me off. As of right now, the current applications have installed data on the TOP LEVEL of my user directory:

Linotype FontExplorer X
Limewire (at least I assume that's where the "Incomplete" folder came from, but it's empty, so now it's gone)
Zinio Reader
Opera
Poison (a p2p client for OS X)

I don't even use thes p2p clients anymore. And that's not to mention all the stuff in my Documents folder. AARG.

WurdBendur on January 10, 2008 04:03 PM

YES YES YES YES! I can't stand it anymore. Do you know what I do?
I don't use the My Documents directory... come on, let'em write all the bull crap they want in those ugly and hard to find (in the file system) directories... I make my own "c:\MyName" directory...

Norman normal on January 10, 2008 06:44 PM

What's worst is the games that give themselves a folder in My Documents instead of Application Data or elsewhere. These aren't my documents!

I used to keep my stuff in a folder in C:\, but My Documents has its own convenient button in the Windows file dialog.

Jonathan Drain's D&D Blog on January 11, 2008 12:02 AM

agreed:
my evernote files
my google gadgets
my surfulater
my skype content

jj on January 11, 2008 12:21 AM

You guys all don't get it.

When the computer says those files are "My Documents", it means literally that they're the computer's documents, not yours. So of course no one should store his/her docs in this folder ;D

john the nameless monster on January 11, 2008 01:44 AM

Ok, what about in the case of Quicken files (QDFs) that are stored in My Documents\Quicken in my experience this placement has helped several users who had catastrophic HD failures and it allowed the USER to retreive the data (most are familiar with MyDocs, but you try to explain the AppData location with hidden folders, etc). In this case I consider the MyBusiness.QDF to be a user-generated file just like a DOC, JPG, etc.

Bob on January 11, 2008 10:01 AM

so vista gets rid of the "my" naming convention (which is fantastic) but they still use "program files"? why didn't they change it to "programs"?

cowgod on January 11, 2008 10:15 PM

this has p!ssed me off so much in the past that i no longer use the docs&settings dir for any of my personal stuff - i keep it all on a seperate drive and let all the crap apps destroy the default space as they wish

bastards.

fusi on January 12, 2008 12:44 PM

I get so annoyed by this too. Microsoft did a decent job with the user directory structure in Vista, then they themselves didn't stick to it.

- Documents\Visual Studio 2005 ?
- Documents\Visual Studio 2008 ? Come on, learn your lesson

I don't even save my projects there because it's not *MY* folder, it's a folder the program created. I save them to my own Software Projects directory.

If you use Windows Fax/Scanner you get two more folders:

- Fax
- Scanned Documents

And what's with games wanting to make their own directories in Documents? Even the "Games For Windows" certified games, you'd think they'd use the \Saved Games\ folder.

If Microsoft lead the way, perhaps others would follow, but that doesn't mean it's all Microsoft to blame. I have lots of other directories in my Documents folders from other non-MS programs. I even have files in my User Directory created by GIMP and that's a GNU program.

The best I can do is to set these directories to hidden, because if I delete them, they'll be back. But then, some MS apps make directories that can't even be hidden.

It makes it awkward to make backups, I'd love to be able to select my Documents folder and add that to the backup list, but first I have to un-check all of the crap that I DON'T want to backup.

Lee Christie on January 15, 2008 08:23 AM

I OH so fully agree..

Admittedly, my "My Documents" folder is so crufty, I didn't even notice when it happened, but once when I was cleaning it up, I accidentally deleted all my save game files for about 6 different games.. because I KNEW I hadn't saved anything important in files like "EA Games" in my my documents folder.. and then later, when I opened one of the games again, I was rather confused why it had lost all my settings.. All previous games I had played, rather rationally, used "Application Data" to store their settings...

Araemo on January 15, 2008 01:51 PM

And, besides that, I don't use \documents and settings\%user%\my documents.. I've always used my own folder in the C drive, but since windows 2000, I've redirected my documents to it, for simplicity, since some programs insisted on opening up to my documents by default EVERY SINGLE OPEN/SAVE....

Araemo on January 15, 2008 01:53 PM

I completely agree. Office 2004 (Mac) creates ~/Documents/Microsoft User Data/ which bugs me to no end.

Per on January 22, 2008 01:46 AM

Mac OS X's sane directory structure is actually inherited from [NeXTSTEP][1]. Steve Jobs solved this problem more two decades ago yet Windows-land is still in the dark!

[1]: http://www.channelu.com/NeXT/NeXTStep/3.3/nd/UserInterface/08_File/File.htmld/index.html

Martin on January 27, 2008 06:35 AM

Jeff beats me yet again to another article I had planned (sadly, I am too bogged down to blog at this time).

Junctions and attributes are the saving grace here: hide them and redirect them somewhere more sensible.

A good rule of thumb for developers: If a user searches for it and double-clicks it in Explorer to access it, it is a user document. Otherwise, it is appdata. Exception: databases are always appdata unless the user is developing their own.

Paul Coddington on January 29, 2008 08:30 PM

I totally agree, but why is there a Twitty (a Twitter client made by Vertigo) folder in My Documents?

Derek Morrison on February 12, 2008 08:21 AM

HELP. I need some links to point a developer to that has developed a brand new application and with it he creates 5 folders into the ROOT of the C drive. I argue that it is wrong and he says it's fine that I know nothing. Well I know not to write to the root of the OS.

ANyone have any MS docs that xplains why this is bad?

Doug on February 14, 2008 08:23 PM

ummm, there's nothing inherently wrong with that Doug, it generates unnecessary clutter, but there's no danger to it.

popeh on March 9, 2008 08:44 AM

btw, why is the captcha ALWAYS orange?

popeh on March 9, 2008 08:44 AM







(hear it spoken)


(no HTML)




Content (c) 2008 Jeff Atwood. Logo image used with permission of the author. (c) 1993 Steven C. McConnell. All Rights Reserved.