Windows has a path length limit that are typically at the order of 250 (260 for Windows 10) that’s a pain in the butt when moving files. Despite you can override it, it’s no fun when you copy a jillion files just to find out a few can’t make it because the path is too long and you have to find out which ones are not copied!
There’s a short command to check if the path exceed certain number of characters, which I recommend testing for 240 character so you can at least have a 10+ character folder on the root folder to put the files in:
powershell: cmd /c dir /s /b |? {$_.length -gt 240}
There are not many decent Cantonese IME around. The best option for Windows 7 and before are CPIME. It borderline worked for Windows 8/10 (desktop mode only), but I heard recently Windows 10 broke it in its 1903 update.
Dr. Choi kindly wrote another Cantonese IME called CAP, which I came across while looking for Cantonese IME for Linux. This is the only option that works with Windows 10 natively (apps and desktop).
Getting CAP 2018 to install [Deprecated, please use CAP 2021 instead, see below]
Unfortunately the installer failed on a fresh Windows 10, saying that “CAP.dll” cannot be registered. I looked at the error code and it usually suggest a missing dependency for the DLL. I used Dependency Walker to look at what’s broken and noticed those are Visual C++ 2015 DEBUG runtime DLLs. Since debug builds aren’t suppose to have a redistributable runtime (it’s actually called NonRedist), the only solution is to install the community edition of Visual C++ 2015 to obtain these DLLs.
Note that “Common Tools for Visual C++ 2015” must be included (installed) so the IME won’t be broken (grayed):
The cause is the missing UCRTBASED.DLL. The files are located at:
C:\Program Files (x86)\Windows Kits\10\bin
It’s under the (x86) variant of Program Files regardless of whether it’s 32-bit or 64-bit.
The missing link to API-MS-WIN-CORE-PATH-L1-1-0.DLL is not important.
After you installed the IME after installing Visual C++ 2015 (any flavor, minimal is OK), you can remove Visual C++ 2015 without breaking the IME, EXCEPT you need to back up the UCRTBASED.DLL first and put it next to the core CAP.DLL file for the IME:
CAP 2021 still won’t install on fresh installation of Windows 10, and I ran it through Dependency Walker and noticed it’s missing VCRUNTIME140_1.dll. Based on this post, this is part of the Microsoft Visual C++ 2019 Redistributable:
Microsoft rolled the runtimes for 2015, 2017, 2019 and 2022 into one package, so if you want missing 2019 runtime DLLs, you might as well install it. This time the package didn’t use any debug version of the runtime like in 2018, which makes life much easier.
I have an ancient SONY NW-507 MP3 player (I still love it because of the 60hrs battery life) that the MP3 Manager software just interpret ANSI names encoded in the ID3 tag based on whatever system language the program started on.
I used to use AppLocale for that. There was a better variant called pAppLocale (or paip Applocale) but it’s no longer maintained anymore. Today I discovered a modern, much more powerful equivalent called Locale Emulator.
Microsoft Edge does default search provider is set using opensearch: you need to go to www.Google.com first before the Google option is available in the “Change Search Provider” lists. Otherwise all you’ll see is a disabled option
EasyBCD messes up the boot menu under UEFI. VisualBCD Editor is too low level. Use BootICE instead: it’s simple and free. It was designed for up to Windows 8.1, but it works for Windows 10.
Windows 10 cannot access network file shares of older Windows (7 and before) out of the box, and I’m not impressed that Microsoft let millions of users waste their productivity to figure it out.
The issue is caused by SMB negotiatons. Basically at the time of writing, there are 3 major versions of SMB:
More accurately, this blog post provides the negotiation chart for up to Windows 8 (think of Windows 10 is the same for now).
Turn on SMB 1.0 in newer Windows (8, 10 and above):
The SMB v1 does not have encryption, therefore a security risk. Makes sense to disable it unless there’s a compelling reason (like obsolete industrial computer under tightly controlled network).
SMB v2 might need to be enabled by registry in Windows 2008 if not already done so:
HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters
SMB2 (DWORD): 1 for enable, 0 for disable
This web page tells you how to turn on/off each SMB version individually.