You have two competing goals:
- You want to make it easy to read long names
- You want to make it easy to recognize acronyms
The first rule recognizes the fact that most identifiers in programs are more than one word and thisisseveralwords just takes too long to parse and it might be outright awkward as in "pimp" or "pImp", "childmolestring" vs. "childMoleString".
On the other hand, we are used to read RAM, CPU, ID, DB, IBM which would lead to IBMDB2DBConnector instead of IbmDb2DbConnector - both are ugly because we are not used to read characters put patterns. Our brains don't see I-B-M, they see >IBM< (as if that was a bitmap instead of three characters).
Notice that rule #2 is in fact a specialization of rule #1: the ultimate goal is to make the code readable. It's hard enough to understand an unknown algorithm if you're not ripped out of your concentration all the time by weird names.
My solution is to try to avoid acronyms to solve issue #2. So instead of "getRAM()" how about "getMemory()" or better "getFreeMemory()"? DB is short but it's really a database and with modern IDEs, that's just one Ctrl+Space.