5 ms·
And they even made the setting easily accessible, just hit [HKEY_CURRENT_USER\Software\Microsoft\Notepad] and change some registry key
by dmannorreys 8y ago
And they even made the setting easily accessible, just hit [HKEY_CURRENT_USER\Software\Microsoft\Notepad] and change some registry key
- Spivak 8y agoI don't know if this is sarcasm or not but that's pretty standard in the Windows world. Your ops team wouldn't blink at tweaking reg values.
- eterm 8y agoIndeed, the registry is actually a good feature, it's a configuration database rather than relying on flat files as in the "just go to /etc/<package>/<package>.config or /home/<user>/.package/<package>.config" of the linux world. The problem is that when it was first introduced in windows 95 the registry would easily and often corrupt causing many issues so some people still associate the registry with being a bad design, when it was actually just a bad implementation of a good design.
- Hello71 8y agoif it's trying to be a database, it's doing a terrible job. all the problems of not being files (can you do "find HKEY_CURRENT_USER -name mypackage" to see what the uninstaller left behind?) with none of the benefits of a database (ACID).
- Analemma_ 8y ago> with none of the benefits of a database (ACID) This is not correct, Windows Registry updates are atomic and transactional. There may be other problems with the registry model, but it is a "real" database.
- krylon 8y agoACID means more than atomic updates, though. To be ACID-compliant, you'd have to be able to group several changes to the registry and have them take effect either all at once or not at all.
- eterm 8y agoA word for that is transactional.
- fulafel 8y agoIt's implied by the I (isolation).
- Const-me 8y ago> To be ACID-compliant, you'd have to be able to group several changes to the registry and have them take effect either all at once or not at all. You mean transactions? Windows registry supports them since Vista when they added Kernel Transaction Manager: https://msdn.microsoft.com/en-us/library/windows/desktop/bb986748(v=vs.85).aspx https://msdn.microsoft.com/en-us/library/windows/desktop/bb9... See CreateTransaction, RegCreateKeyTransacted, RegOpenKeyTransacted, CommitTransaction[Async], RollbackTransaction[Async] APIs.
- krylon 8y agoI stand corrected. Good to know, thank you!
- Const-me 8y agoTo be fair, I’ve never used KTM in my apps. In cases when I need to write several values atomically (e.g. in a program with persistent window positions, after user moved a window I want to write all 4 coordinates of the rectangle), I just keep them in a single value, either string or binary. Even without KTM, registry API already guarantees value writes are atomic.
- krylon 8y agoWhen they were working on Windows 7, Microsoft tried to be more open about the development process in order to repair some of the damage Vista had done. So one day, I came across this video, an interview of a few Windows developers. At one point, the person doing the interview asks, "So, what do you guys think of the Registry?". Awkward silence, followed by uncomfortable laughter. Finally, one of the programmers says, "I think it's fair to say it was far more [widely used] than any of its designers had anticipated." (Quoting from memory from a video I saw once, ~10 years ago, so the wording might not be perfectly accurate, but that's how I remember it.)
- ksk 8y agohttps://msdn.microsoft.com/en-us/library/windows/desktop/ms724875(v=vs.85).aspx https://msdn.microsoft.com/en-us/library/windows/desktop/ms7... Could you point out which of these doesn't work as intended?
- mappu 8y ago> can you do "find HKEY_CURRENT_USER -name mypackage" Powershell comes with a kind of FUSE mount for the registry: PS C:\> Set-Location HKCU: PS HKCU:\> Get-ChildItem -Recurse | where-object { $_.Name -match "HeidiSQL" }
- joeyaiello 8y agoJust to make sure everyone on HN knows you can get real pithy with PowerShell, this also works: PS C:\> cd hkcu: PS HKCU:\> ls -r | ? name -m 'HeidiSQL'
- Slackwise 8y agoOr for those who come from Unixland and see way too much typing, PowerShell has aliases that make this much shorter: cd HKCU: ls -r -i *HeidiSQL* Or if you really want to use the match operator, regex, or other expression, you can still pipe it through the Where-Object alias: ls -r | ? {$_.Name -match "HeidiSQL"}
- anothergoogler 8y agoGNOME provides a registry called gconf, now dconf (binary format). Many applications outside of the GNOME project use this registry.
- jacquesm 8y agoThe windows registry is absolutely terrible at its job. The namespace is polluted from day #1 after installation and this only gets worse as a box gets older. The number of places the same key could appear are baffling and you never really knew when you had exterminated the last instance of HKEYsomethingorother to achieve the desired effect.
- ksk 8y agoThe job of the registry is to be a reliable structured storage with access control and other features. It is not responsible for the things that go into itself. Here is the API. https://msdn.microsoft.com/en-us/library/windows/desktop/ms724875(v=vs.85).aspx https://msdn.microsoft.com/en-us/library/windows/desktop/ms7... Could you point out which one of these doesn't work as intended?
- jacquesm 8y agoIf you put together a structure like that and leave the sordid details up to the implementer and you supply a mostly confusing example as the set shipped with the OS, and subsequently mess it up even further with your own application installs you own the mess.
- ksk 8y agoI'm unable to extract anything specific from your comments. Are you still talking about the registry or about something else? Its cathartic to vent, but the registry is not the source of your frustration.
- jacquesm 8y ago> I'm unable to extract anything specific from your comments. That's ok.
- thomastjeffery 8y agoThat's because it's about the bigger picture.
- krylon 8y agoI think the major problem with the registry - besides being obscure - is that it can grow really slow as it fills up, and many programs do not clean up their registry data when being uninstalled. I think this is one of the major factors why Windows grows so slow after a couple of years on machines where lots of software is being installed and uninstalled.
- mappu 8y agoMost Linux programs don't remove their files from /etc/, ~/.local, ~/.config on uninstall either.
- nitrogen 8y agoThat's what the purge option to apt/dpkg is for.
- krylon 8y agoGranted, but the presence of those files does not slow down the system significantly. With leftover registry keys, you pay the price until you install the system from scratch. (Windows might have improved the registry handling code since Windows 95/98, I think it's not quite as bad these days... but that might also have to due with computers being much faster than 20 years ago.)
- kalleboo 8y agoI think the macOS User Defaults system is still my favorite config system. Unified api (`defaults` and NSUserDefaults), but stored in user-editable (and easily cleaned up) files with standardized naming and formatting. It's not perfect (kooky and unwieldy XML syntax, no standard equivalent of conf.d), but it solves the pain points I've seen with the Windows Registry (monolithic inscrutable database) and unix commands (random config files each with their own custom place and format)
- zaarn 8y agoWe live in a world where MongoDB is at the butt-end of all Database and ACID jokes. But the award should go the Windows Registry, a Key-Value store that combines the drawbacks of a half-assed filesystem with the advantages of piping your database to /dev/null. A Database would be capable of using an index to traverse all the keys. The Registry does a linear lookup at each pathnode. There is a good blogpost [https://rwmj.wordpress.com/2010/02/18/why-the-windows-registry-sucks-technically/ https://rwmj.wordpress.com/2010/02/18/why-the-windows-regist...] that details the insanity of a database that managed to be worse than MongoDB at the lowest level of jokes before MongoDB was even invented.
- reaperducer 8y ago>I don't know if this is sarcasm or not but that's pretty standard in the Windows world. Your ops team wouldn't blink at tweaking reg values. I can only assume that requiring an ops team to change a setting in a basic text editor is pretty standard in the Windows world, too?
- codazoda 8y agoI was pretty surprised that editing the registry to change stuff like this is still a thing.
- notatoad 8y agoWeird settings are supposed to be hidden in weird places. There's no reason that a setting like "use broken line endings" should be in a nice easy to find place.