DEV Community

Dave Jacoby
Dave Jacoby

Posted on • Originally published at on


Seeking an In-Depth Linux-To-Windows Translation

At work, I have two computers on my desk. In general, the one to the left runs Ubuntu Linux and has many editor and terminal windows open, and the one on the right runs Windows and has browser windows open, because those who use my tools run Windows computers and Firefox.

I’ve learned the slightest amount of developing for Windows. I have a C# Project to set a JPG as my background image, and have found and slightly modified code that allows me to lock, shutdown and reboot the computer from PowerShell. Not much, to be sure, but as a 90s-vintage Linux guy, I’m of the demographic to offhandedly use “Micro$oft” and say things like “Andy Giveth and Bill Taketh Away”.

But the Microsoft of 2018 is not the Microsoft of 1998, and many people who I trust (including two in-real-life friends) have gone on to work for the new Microsoft. They have Revolution R. They have Visual Studio Code. They have Bash and Ubuntu’s userland running on Windows, and Powershell running on Linux. I used to run Windows just enough to be helpdesk for my coworkers and to get to the popular toys (music and video streaming services, mostly, and some games). I now want to try to really use it.

Which brings us to a pain point. On Linux, I have many tasks that are scheduled via crontab, determine if there’s a status change I need to be notified about, and uses notify-osd to tell me. What sort of things? Often, mail from people I care about, such as bosses, coworkers, and family. I hate little as much as random notifications about mail from automated lists. But also things like coming storm fronts, a change in the status of our web servers or file servers, or even just that we’ve reached the top of the hour. (I like flow state, but when you look up, thinking it must be lunchtime by now and find it’s 6:23pm, you’re too disconnected from your environment.)

It doesn’t really matter what needs to be alerted, it is just that I decide what it is and I get it going on Windows 10.

Which leads us to Known Unknowns and Unknown Unknowns. The Known Unknowns are things I have some sense of, but don’t necessarily understand how they will work. Things I am sure a little bit of searching on Stack Overflow will get me to where I want to be. This includes XML or JSON parsers, HTTP client actions, and, to some extent, TOAST. TOAST, I know, is the mechanism by which things are sent to the Action Center, and I have found PowerShell code that used to create the pop-up part, but didn’t add it to the Action Center. It no longer works, and I don’t know if it’s something I did or not.

The Unknown Unknowns, beyond all the things I’ll need to understand when moving to the Windows way of configuration, is scheduling. I’m used to adding

0 * * * * /path/to/my/program --quiet
Enter fullscreen mode Exit fullscreen mode

as the way to schedule most things. I know there’s scheduling involved in this task, but I have no sense whether using the Admin privileges to get to the Scheduler is the Windows way or not.

I am not social with many Windows developers, and those few I do know, I don’t think I know well enough to give meaningful answers to this. And it is far too free-form to be a Stack Overflow question.

This is very high-level; I don’t need code samples. Appropriate keywords and links to MSDN pages should do me well. I know how to program; I just don’t know how to do things in Windows. Any help is greatly appreciated.

If you have any questions or comments, I would be glad to hear it. Ask me on Twitter or make an issue on my blog repo.

Top comments (0)

The AI Brief

AI generated git commit messages

Minimize the struggle of remembering what you just coded. AI-generated commits make it easier to manage projects and keep track of changes. The Nutlope/aicommits project demonstrates how AI can improve commit messages.

I open sourced an AI that creates any UI in seconds

Make AI-generated user interfaces a breeze. This open-source project harnesses the power of generative AI technologies like chatGPT to create versatile, quick, and intuitive UI components.

Use AI to commit like a PRO in 1 second

Upgrade your commit message game with AI. Boost your productivity by using ChatGPT to generate commit messages and avoid context switching. OpenCommit is an open-source library that helps you achieve this easily.

Build your own ChatGPT starter kit

Train AI models on custom data for improved domain-specific knowledge. Combine the power of WebView technologies and this starter kit to train your ChatGPT model on specific websites, allowing for better-optimized outcomes.