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~/Librarydirectory, your application should never install files into the user's home directory. In particular, you should never install files into a user'sDocumentsdirectory or into the/Users/Shareddirectory. 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/ApplicationSupport 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.
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 6:27 AMAmen. And yes sam, that's exactly what he is saying.
Kal_Torak on January 8, 2008 6:37 AMArgh, 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
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 6:43 AMTotally 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 6:46 AMOn 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 6:50 AMVista 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 6:53 AMUnder 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 7:05 AMWell 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 7:13 AMWho 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 7:21 AMForgot 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.
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.
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 7:37 AMYou 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 7:43 AMSurprisingly 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 7:55 AMUser can tamper with environment variables. Use the CSIDL values and related API calls instead to locate paths.
hmm on January 8, 2008 7:59 AMWhat 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 8:01 AMRaymond Chen discussed the CSIDL vars that hmm mentioned above.
http://blogs.msdn.com/oldnewthing/archive/2005/07/01/434647.aspx
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 8:22 AMNot 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 8:48 AMJeff 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 8:57 AMIt 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 9:24 AMThis year, the ridiculously long folder names with spaces! Next year, the Registry!
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 9:34 AMWhat 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 9:36 AMAgreed,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 9:37 AMUser 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 9:43 AMHallelujah, 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 9:44 AMThere 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 9:54 AMI 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 AMThe 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 AM(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 AMIt 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 AMI 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.
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 AMIn 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 AMI 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 AMWell, 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 AMVincent: 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 AMI 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 AMA 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 1:04 AMWhy 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 1:05 AMWhat'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 1:06 AMAlso, installers shouldn't put shortcuts to the application on the desktop! That one really annoys me.
Skizz
Skizz on January 9, 2008 1:09 AMThis 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 1:10 AMI 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 1:27 AMI 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 1:37 AMThis 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)
And for Microsoft it took only.. How many years to copy this nice convention from *nix? :)
cx on January 9, 2008 1:48 AMOh 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 1:50 AMJeremy: 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 2:02 AMYup, 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 2:08 AMPeople 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 2:39 AMIt'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 2:57 AMMax: "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-
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 2:58 AMAnother 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).
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 3:12 AMI 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 3:17 AMThe 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.
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?
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?)
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 3:32 AMAnother 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 3:34 AM1) "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.
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 3:43 AMTo 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.
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
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.
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 3:52 AMI 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
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.
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 4:08 AMI 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 4:23 AMMy '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 4:32 AMBut 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 4:43 AMBut 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 4:59 AMBeing 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 5:01 AMcynical programmer
Sheesh, they're never happy - we should forget about putting it in "My Documents" and "Program Files". Lets just put it back into C:\
/cynical programmer
doh, it missed my "cynical programmer" tag
Ben on January 9, 2008 5:24 AMI'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 5:27 AMIt'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 5:29 AMThis 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 5:34 AMHow is Apple cheating? Go with what works. Vista should have been UNIX based as well. ;)
Akira on January 9, 2008 5:43 AMHey 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
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 6: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 6:04 AMI 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 6:09 AMI 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 6:27 AMIronically, 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 6:31 AMThe same on Linux.
$HOME is so polluted that I have my own $HOME/room
for my things (ssh-shared on all my accounts).
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 6:37 AMIt'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 6:42 AMI 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)
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 6:52 AMI 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 6:55 AMI 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.
The comments to this entry are closed.
|
|
Traffic Stats |