Micolithe
Agender
36 years old
Philadelphia, PA
Online Now
Last Login: 08/30/2007

Agender Enby, Trans, Gay, AND the bearer of the gamer's curse. Not a man, not a woman, but instead I am puppy.
I got a fat ass and big ears.

--

Yes I did the cooking mama Let's Play way back when. I post alot about Tech (mostly how it sucks) and Cooking and Music and Television Shows and the occasional Let's Play video
💖@FadeToZac

--

We all do what we can ♫

So we can do just one more thing ♫

We can all be free ♫

Maybe not in words ♫

Maybe not with a look ♫

But with your mind ♫


last.fm listening



kokoscript
@kokoscript
This page's posts are visible only to users who are logged in.

kokoscript
@kokoscript
This page's posts are visible only to users who are logged in.

spitfire
@spitfire

the most annoying part of this, at least on windows, is that all of this is documented!!

there's a whole list of conventions and best practices, detailing what files should go in which special directories! in fact, it's mentioned in like 3 different parts of the win32 docs, and also in the separate "Windows Logo" certification guidelines (not applicable for most software, but still worth a read if you're a windows developer).

there's basically no excuse, people just don't RTFM when they really should! and even if someone hates reading the docs so much, a quick look at related questions on stackoverflow should be enough to understand the basic concept of Not Filling User's Documents Folder With Trash!

anyway, here's a quick summary of the most common special directories. hopefully this is useful to someone and helps prevent at least a single case of Documents Garbage Syndrome:

  • AppData\Roaming (%AppData%) - all user-specific, but not machine-specific application data goes here. "Roaming" means it can be shared between machines/servers in a network profile environment, so don't fill this with gigabytes of trash or the sysadmins will come to your house at night and murder you in your sleep.
    use for: configs, bookmarks, databases, etc.
    do NOT use for: anything machine-specific, very large files, cache or temporary files
  • AppData\Local (%LocalAppData%) - all user-specific and machine-specific application data goes here.
    use for: same as above but for stuff that shouldn't roam to a different machine, cache, any sort of large data or assets, logs, etc.
    do NOT use for: anything that isn't user-specific
  • ProgramData (%ProgramData%) - all machine-specific, but not user-specific application data goes here.
    use for: assets, patches, updates, configs that can be shared by all local users
    do NOT use for: data that contains any kind of sensitive or personal information
  • Documents - it's the user's files. anything readable and editable by a human usually goes here. still, don't just assume the user wants to use this folder (you can use it as a default suggested location)
    use for: files explicitly created and saved by the user, document templates
    do NOT use for: anything that belongs in any of the above directories!!!
  • Users\username (%UserProfile%) - don't fucking use this one ever. don't even think about it. and especially don't prefix shit with dots, this isn't fucking unix!!! it just moves all that crap to the top when you sort by name!!
    use for: NO
    do NOT use for: literally anything

wildweasel
@wildweasel

"Hello, I'm Electronic Arts. I'd like to save all DLC and saved games to %UserProfile%/Documents/Saved Games/Electronic Arts. Sorry, I meant to say, %UserProfile%/Documents/Saved Games/EA Games. Sorry, I meant to say, %UserProfile%/Documents/My Saved Games/Electronic Arts. Sorry, I meant to say--" (sound of sudden explosion)


muffinlord
@muffinlord

hey it's your good friend Minecraft, you should come by sometime! I live at

%userprofile%\appdata\roaming\.minecraft

you know, the folder that's for important stuff that can be transferred between computers? yeah, prime real estate.


micolithe
@micolithe

On linux if you can't find something in the apt repos you either have to download a .deb installer or in pycharm's case download and extract a .tar.gz. which will get extracted into a folder in your home directory, where your software now lives permanently.


You must log in to comment.

in reply to @kokoscript's post:

iirc that's partly an artifact of the vista-era Games for Windows branding that unfortunately stuck around, but also it's pretty understandable that they wouldn't want to hide things (like save data) away in appdata because the less technically savvy can otherwise struggle to find stuff if it's there.

the other part is that windows doesn't really like it when you write to program files/yourshitgame/savez anymore

in reply to @kokoscript's post:

yeah i always wind up creating a TrueDocs folder on any Windows systems i wind up using for an extended period of time because Documents is too unpredictable.

in reply to @spitfire's post:

according to the registry usage guidelines, anything larger than 2 kB should be stored as a file (with the registry optionally used to store the path to the file). no limits are given for how many smaller entries should be stored at once though

ah so storing 29 301 bytes of data within one key across 710 different values which never individually exceed 297 bytes, as Spark the Electric Jester 2 does, is technically a‐ok and nothing to complain about. this is good to know thank u

oof that's pretty bad

actually, i double checked the guidelines and it's a bit ambiguous whether they mean 2kB in a single value, or 2kB combined?

seems like the suggested limit is based on performance of registry vs file I/O, so they probably mean something like "2kB when read/written within a short period of time"

I think this is just a thing that Unity games do by default? I remember downloading a bunch of Unity games from a gamejam whose configuration I screwed up thanks to the really unintuitive default Unity launch window, and I was confused as to why deleting them and downloading them again didn't reset their configs.

Then I checked the registry... and there they all were, storing their configurations across dozens of different values. Irritating!

in reply to @micolithe's post:

Yeah, according to the Linux File System Standard each non-package-manager package gets its own folder under /opt. The practice dates back to unix graybeards at Bell. That way, there's zero chance of a future package manager update overwriting your config. The hidden footgun is that typically, you'd sudo mv the package there and then discover your normal user can't access it without some judicious use of chmod.