Ask HN: Must do's and must know's when switching to Windows?
I am switching to Windows from Linux (and MacOS on my last work laptop). It used to be my main OS years ago, and I think the time has come for another try. I know I won't be especially happy with it, just like I am not especially happy with Mac and Linux, so I am looking for anything that can make the experience more pleasant.
57 comments
[ 5.2 ms ] story [ 110 ms ] thread- Expect not to be able to SSH into your machine, for example when you really need to remotely make that git push you forgot before you left work.
- Expect either a very slow unix emulation through Cygwin, or a very glitchy one through the new Ubuntu subsystem for Windows.
- Expect installing software to be a royal PITA, and expect to start trusting binary blobs from random vendors because that's just how software is delivered on Windows. Expect every single piece of software to have its own update system, each of which will notify you separately when updates are available and have their own varying degrees of reliability in performing the update.
- On Windows 10 you can not permanently install unsigned drivers even if you really, really want to. The closest you can get is booting up in a one time development mode which is disabled the next time you reboot, or enabling a test mode which watermarks your screen. Very annoying if you have esoteric or bespoke hardware, and I don't like being told what I can and can't do on my own system.
Other than that, my major issues - common to Windows and every linux DE I've tried - were with running on my MacBook with retina (high DPI) display. It's a 1/3 chance for a given piece of software whether it will gracefully support the higher pixel density, will display as a tiny window with unreadable text, or a combination of both. Lack of smooth zoom and scrolling with the trackpad was also annoying, though not a showstopper.
HiDPI is a mess on Windows. Apple got this right and everyone else still seems to be playing catch up.
For "unix", you can actually run linux on windows now: https://msdn.microsoft.com/en-us/commandline/wsl/install_gui...
If you want to use windows store, it acts like any other walled garden store regarding "binary blobs", but personally I have never used this. The only software I have in windows is Steam which acts like an "app store" for games.
Now, I use Linux almost exclusively (there are one or two games I boot my gaming machine to windows to play), but it's actually gotten better over the years, not worse.
Just remember to block all the telemetry stuff in your firewall. https://github.com/crazy-max/WindowsSpyBlocker
Have you ever used an installer? Because that's a binary blob.
I have never noticed any performance problems with Cygwin.
Then again, for the given scenario, you could connect to the Windows PC via RDP.
What have you been doing with it? Even just running a configure script is very noticeably slower than on Linux or OS X. You can actually see the pauses while it executes each test binary.
http://www.thewindowsclub.com/show-file-extensions-in-window...
- Install git bash for command line.
- Install ConEmu: a windows console emulator [0]. This takes console to next level on windows. I highly recommend it.
[0] https://conemu.github.io/
Learning powershell is part of that.
Otherwise, not so much.
* Powershell: open source, multiplatform.
* .Net: open source, multiplatform.
* MSSQL: running on Linux, but there's always Postgres.
* Clang: works beautifully on Windows.
* Node: first-class citizen.
That statement is nothing more than dogma.
Yes, but what does it help when 99.9% of Node deployments is on *nix and they don't match the Windows dev environment 1:1?
As a matter of fact, just setting up Node on my dev machines is way simpler and easier on Windows when compared with Mac or Linux. It's the same on every Windows box - download the Node.js installer, run it. Done.
Meanwhile on Linux and Mac I have to jump through hoops and deal with things like package managers not being up to date, Brew getting broken after updates, lack of standards for installing apps, installs just not working, no easy upgrade path, etc.
Honestly, if I have to type out any commands to install stuff then the situation is already fucked. Commands that I don't run very often are subject to being forgotten. Then when I go to do an update, I have to remember how I installed it in the first place or I have to find some tool to completely clean it off my system (or I have to use Node to update itself with something like https://github.com/tj/n, which was invented for this exact situation.)
And this statement is nothing more than a mischaracterization.
MSSQL: "running" on linux. If you think anyone runs business critical code that uses MSSQL on anything other than windows servers I got a bridge I'd like to sell you , and the "open source" version of .NET is laughable, and already way behind the MS version. Yes, VSCode is actually wonderful -- I use it daily on my machine! Grouping VSCode with the rest of these (it's telling that you placed VSCode as your first example) is a little disingenuous, considering it was built using open source technologies (primarily, electron), and none of the rest of the traditional Microsoft stack.
Node being a first class citizen? That's news to me, I need to check that out. Last time I tried to develop any serious node application and deploy it (a couple weeks ago, if my calendar is right) it was still downright abysmal.
Clang working on windows is not surprising, being that processor architecture is what matters more in that world, and not so much operating system.
Got any better examples?
Would you care to guess what "greater than" is?
That's pretty subjective, right? I think plenty of folks would argue that they have a highly efficient workflow on other operating systems already. I would say the ability to pipe things around in UNIX is pretty efficient, or macOS' ability to drag almost anything almost anywhere is pretty efficient. Other than PowerShell, what makes Windows so efficient for you?
- The command line is much improved. Look through the properties to see what new options are available (text wrap, copy/paste, etc)
- If you're getting a laptop, pay a lot of attention to the trackpad. Windows laptops have a huge range from unusable to really good.
- If you're a developer you owe it to yourself to checkout the development tools like C# and Visual Studio, if only to set the bar for good tooling in your head regardless of what environment you actually program in.
- Check out the modern Windows 10 apps in the store. Mostly garbage but I regularly use and prefer a number of these to their web equivalents, e.g. Microsoft Groove, Netflix/Hulu, etc.
- When I got a PC, despite not gaming for a really long time I've gotten back into it. It's amazing how many wonderful games there are that are up my alley now-a-days, e.g. Broken Age, Firewatch, N++, Obduction, etc. If you've ever been a gamer, give that world another go.
- Get a great, high-dpi display. Windows support for it is fantastic and all those that say otherwise are crazy.
- If you're sufficiently nerdy and end up having a house full of Windows machines, you can invest in a dedicated server to handle things like a central file server and backup. Windows Server Essentials can make for a fun, accessible-but-still-nerdy project.
- If you're super concerned about privacy there's some reading to do to turn off all the new telemetry in Windows 10. I don't bother with this.
- Microsoft Office is best on Windows, and cloud support is better than ever. I enjoy using OneDrive and OneNote everyday on both my PC and iPhone. Give them another go if you gave up on them while using other OSes (Outlook on Mac is particularly awful).
- Windows is so fucking crazy keyboard accessible. Going back to using Windows involved me unlearning some of my bad habits from Mac.
- Windows 10 can be a little buggy in surprising ways. I had to reinstall at some point because the start menu broke. Seriously. And I tried really hard to fix it without reinstalling. Just keep backups and it should be fine, it's not way buggier than macOS or Linux, just older versions of Windows.
- Set "Developer mode" http://www.hanselman.com/blog/Windows10DeveloperMode.aspx (does a bunch of useful things like turning on file extensions in Explorer)
I've been getting pretty frustrated with my new mac and im supe r tempted to try out a Razer Blade.
Classic Shell (simpler start menu)
7-zip (lzma, etc.)
SyncBack Pro (local/s3/on-insert backups)
JetAudio Plus (BBE harmonic extrapolation mp3 HF restoration)
USBDLM (external hdd serial # based drive letter assignment)
As another commenter said, Windows has its own way of doing things and expecting it to act like Linux or MacOS will just frustrate you.
My recommendation would be to, if you don't build the machine yourself, buy a Microsoft Signature PC. These don't come with all of the crapware that Windows machines tend to come with.
If you decide to install the OS on an existing machine, make sure you find the appropriate network driver and save it on a USB stick first. This is probably the only driver you will actually need - once Windows can connect to the network it can download the drivers for everything else from Windows Update.
Some Windows stuff doesn't work as well as the Mac and Linux equivalents, and vice-versa. The built-in MacOS VPN client and the NetworkManager StrongSwan CPN client are both a lot better (for me, anyway) than the one in Windows 10. On the flip side, accessing network files (through SMB, of course) is lightyears beyond the way Linux and Mac do it - UNC paths are at the top of my list of things I miss about Windows.
It can and does fail silently. (e.g. with too long path names or simply no backup drive attached in a long time)
Also I wanted to mention 7+ Taskbar Tweaker (http://rammichael.com/7-taskbar-tweaker), which is a fantastic little util that helps you make your taskbar just the way you want it. Mousewheel over taskbar for volume control, middle click closes programs, etc...
- If you have a HiDPI screen, you may run into problems with older programs looking blurry. The fix is to right click on the .exe, click 'Properties', go to the 'Compatibility' tab, and check the box next to "Disable display scaling on high DPI settings".
- File extensions are hidden by default in the file manager. To turn them on, open File Explorer, go to the 'View' tab, and check the box next to "File name extensions".
- Use a text editor like Notepad++ or Visual Studio Code which lets you switch back and forth with your line endings and encodings; Some editors coughNotepadcough add a BOM to the front of your unicode documents. (As an aside, I've been using the FTP plugin for Notepad++ lately, and it is just a pleasure to use.)
- Between Powershell and WSL, there's rarely anything you can't do on the command line as long as you're willing to code switch a little. In particular, WSL works great for SSH. Cmder is a wrapper around ConEmu (mentioned elsewhere in the thread) and makes for a great terminal environment.
- Chocolatey is the closest thing Windows has to a package manager. (I'm still hoping that OneGet becomes a thing.)
- Other recommended programs: Everything search (life changing, bind it to a hotkey and never look back), Sumatra PDF, Glasswire, CCleaner, either Irfanview or Xnview, WinDirStat.
https://www.royalapplications.com
1. install chocolatey https://chocolatey.org/, and install everything with it
2. install conEmu for a decent command line
3. install git for windows, which comes with a bash shell that brings you all the linux commands, inlcuding ssh.
This brings a Windows PC relatively far. You can even get ssh-agent working with an according .bashrc script (along the lines of https://github.com/joaotavora/holy/blob/master/share/zsh/ssh...)
This does it for me to do node / web-dev / java/ android centered development, I prefer it over macOS and Linux.
Things I do not use:
1) Cywgin. Quite the behemoth, and I get by with git bash just fine
2) The Ubuntu Subsystem. I tried it, had trouble with ssh stuff, seems not ready yet...
3) putty. the open-ssh that comes with git is better and closer to linux.
I often wished that each HN user got one '10x upvote' a week. I would give it to you this week.
- Install an anti-malware program for when you do get malware.
- Install adblock plus, or other recognized ad blocker this will reduce your malware infections.
- Be VERY VERY WARY when you download files and install software (especially if some web popup says you need some media player or driver update). Make sure you are getting any software from legit sites (which bing and yahoo don't necessarily put high on search results). When running installer be wary of the ride-along installs of additional malware (changing search settings, toolbars, dubious security shovelware, etc.) sometimes you have to check or un-check boxes cancel install dialog before the real program install dialog, etc.
- Decide whether you like the pre-installed anti-virus, want to un-install and activate windows defender, or get another 3rd party anti-virus. Usually the co. who pays the PC manufacturer the most gets their AV installed - doesn't mean its good.
- Check the installed browsers and remove pre-insalled unwanted plugins or extensions.
- If you depend on PDFs just working make sure whatever PDF solution in your machine works for you, might want to switch to Acrobat Reader if it isn't Adobe.
- Learn how to invoke the task manager (control-alt-delete) shut down tasks, restart the system in safe mode etc. Some malware will thwart progress without knowing these things. - A second computer and google will help get you out of a lot of these situations.
- Any pop-up official looking message saying "you" are in trouble, your computer is infected - call this number, etc, are likely scams, be prepared to see that stuff too.
Think of it this way - now you will have stuff to talk about with all your friends who use Windows.
- You really want to be on windows 10, not 7. It's better in all ways but one to 7. The one is the forced updating. To avoid having updates forced on you in the middle of a day, give windows a chance to do updates by shutting down every once in a while.
- Settings are spread across the settings app (start), the control panel and various control applets (right-click on start), the registry (windows+R, regedit <enter>) and files on disk (like the hosts file in windows/system32/drivers/etc). Honestly, it's a mess, and google is your friend. It bites you in the beginning, but once set up it really doesn't matter.
- Secondary screens: windows+P switches modes (mirror, second-only, ...). Saves you from unplugging and replugging cables with your fingers crossed. Mixed dpi is a mess, still. You can configure the scaling of different screens separately from display settings, but apps which haven't been updated (properly) for compatibility with mixed dpi look blurry, tiny or huge on any screen that wasn't the primary screen when you signed in to windows, and sometimes look off even on that one. This is getting better, but still a pain.
- People will advocate the linux subsystem for windows, and it's great, but it lives in its own walled garden. If you want access to linuxy tools from the regular cmd.exe consider installing something like msys2 to get the basics in your windows path. Or learn powershell.
- Learn the shortcuts to manage your windows / virtual desktops. Windows is pretty good at managing windows. https://www.thurrott.com/windows/windows-10/4915/windows-10-... (props to Paul Thurrott for his many awesome tip articles.)
- Be more careful where you get software from. If you were last a windows user in the era of download.com and the like, forget about those sites. They're all malware-ridden. Only get software directly from the vendor's site. Also, ninite is pretty good to get a basic set of software going. You don't need a third-party anti-virus, the baked in one is good enough.