Windows 11: Just say no

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • Visual Studio Code

    Visual Studio Code

  • Here how WebGL is used for the terminal in VSCode,

    https://github.com/microsoft/vscode/issues/85971

    Or how Rust is used for search via ripgrep.

    https://github.com/microsoft/vscode-ripgrep

  • reactos

    A free Windows-compatible Operating System

  • This is part of what I read on HN:

    The first thing we observe is that the directory structure is basically identical. Yes, NT kernel subsystems are identified with short codes like "Ke" or "Ex". It's plausible that someone with a lot of NT knowledge would end up creating top level directories with these exact names, as is true of the WRK. But it seems kind of unlikely: the Wine sources do not show this pattern.

    If we look at the Kernel Executive (Ke) subtree, we can see that there is a thing called a "Balance Set Manager". Both source trees define it in a file called balmgr.c - not only the location of the file but also the file name is identical.

    https://github.com/Zer0Mem0ry/ntoskrnl/blob/master/Ke/balmgr... https://github.com/reactos/reactos/blob/master/ntoskrnl/ke/b...

    It appears from the module description that the "balance set manager" is an optimisation of some sort related to reducing memory usage. Is this really something that needs a reimplementation with identical function prototypes?

    Looking at the code of the identically named KeBalanceSetManager function, we can see that not only is the function prototype identical, but the order in which it does things is also identical. First it changes a thread priority, then it schedules a periodic timer callback.

    Some of the local variables in these functions have identical names: PeriodTimer, DueTime, WaitObjects. Yes, these are obvious names. It's not a smoking gun. But it's not looking good.

    Finally we discover that the ReactOS Balance Manager does .... nothing. It enters a loop which starts out by doing a wait for an event (fine, it's inherent to the task), and then switches on the result. But the code in the arms of the switch are commented out (the commented out code does a subset of the stuff in the NT code). The loop does nothing, just sits blocking in a loop forever. Why does this code in ReactOS exist if it does nothing?

    It's the same story for the other big function in this file, KiScanReadyQueues. The code is virtually identical, line for line, with minor formatting and occasional trivial naming differences. Even the assertions are identical.

    I'm not alleging anything specific or illegal, just comparing a small part of both codebases. However given what I've just seen, I wouldn't touch ReactOS with a barge pole. The Microsoft guy's complaint is entirely understandable.

    https://news.ycombinator.com/item?id=20345645

  • SurveyJS

    Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.

    SurveyJS logo
  • Windows Terminal

    The new Windows Terminal and the original Windows console host, all in the same place!

  • Honestly, I would have just stayed with Windows 7, if not for Windows Terminal [1]. The Unicode support and ANSI escape code support is a big improvement. However I was not eager to upgrade, as people reported over and over all the privacy and telemetry issues. I have turned off all Windows Updates, and ideally I wont be upgrading Windows for a long, long time.

    1. https://github.com/microsoft/terminal

  • website

    The elementary.io website (by elementary)

  • Yup. I've been running EOS (https://elementary.io/).

    It's almost as pretty as my MBP, and vastly more usable than Windows. And I have everything I really need (with first class Linux support):

    * Gaming - Steam + Proton

    * Digital Audio Workstation - Bitwig

    * Video Editing - DaVinci Resolve

    * 3d Modeling - Blender

    * 2d Image - Gimp (this one could be a lot better)

    -----

    The only thing I can imagine dual booting into Windows for is Oculus Link. But I don't really think it's worth it.

  • vscode-ripgrep

    For consuming the ripgrep binary from microsoft/ripgrep-prebuilt in a Node project

  • Here how WebGL is used for the terminal in VSCode,

    https://github.com/microsoft/vscode/issues/85971

    Or how Rust is used for search via ripgrep.

    https://github.com/microsoft/vscode-ripgrep

  • pipewire

    Mirror of the PipeWire repository (see https://gitlab.freedesktop.org/pipewire/pipewire/)

  • If you've got a tool you're used to, it's probably best to stick to it.

    That being said, Bitwig does support Jack, so routing should be pretty open ended.

    And there's this linux project (https://pipewire.org/) that's been doing really, really well. It (sorta) combines all the different audio servers into one.

  • Monaco Editor

    A browser based code editor

  • Take a look at Monaco, the editor that powers VSC: https://microsoft.github.io/monaco-editor/

    The rest of it is in hosting the processes and plug-ins for it. Microsoft also developed the Language Server Protocol that provides intellisense and other features for each language: https://microsoft.github.io/language-server-protocol/

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • language-server-protocol

    Defines a common protocol for language servers.

  • Take a look at Monaco, the editor that powers VSC: https://microsoft.github.io/monaco-editor/

    The rest of it is in hosting the processes and plug-ins for it. Microsoft also developed the Language Server Protocol that provides intellisense and other features for each language: https://microsoft.github.io/language-server-protocol/

  • psst

    Fast and multi-platform Spotify client with native GUI

  • ntoskrnl

  • This is part of what I read on HN:

    The first thing we observe is that the directory structure is basically identical. Yes, NT kernel subsystems are identified with short codes like "Ke" or "Ex". It's plausible that someone with a lot of NT knowledge would end up creating top level directories with these exact names, as is true of the WRK. But it seems kind of unlikely: the Wine sources do not show this pattern.

    If we look at the Kernel Executive (Ke) subtree, we can see that there is a thing called a "Balance Set Manager". Both source trees define it in a file called balmgr.c - not only the location of the file but also the file name is identical.

    https://github.com/Zer0Mem0ry/ntoskrnl/blob/master/Ke/balmgr... https://github.com/reactos/reactos/blob/master/ntoskrnl/ke/b...

    It appears from the module description that the "balance set manager" is an optimisation of some sort related to reducing memory usage. Is this really something that needs a reimplementation with identical function prototypes?

    Looking at the code of the identically named KeBalanceSetManager function, we can see that not only is the function prototype identical, but the order in which it does things is also identical. First it changes a thread priority, then it schedules a periodic timer callback.

    Some of the local variables in these functions have identical names: PeriodTimer, DueTime, WaitObjects. Yes, these are obvious names. It's not a smoking gun. But it's not looking good.

    Finally we discover that the ReactOS Balance Manager does .... nothing. It enters a loop which starts out by doing a wait for an event (fine, it's inherent to the task), and then switches on the result. But the code in the arms of the switch are commented out (the commented out code does a subset of the stuff in the NT code). The loop does nothing, just sits blocking in a loop forever. Why does this code in ReactOS exist if it does nothing?

    It's the same story for the other big function in this file, KiScanReadyQueues. The code is virtually identical, line for line, with minor formatting and occasional trivial naming differences. Even the assertions are identical.

    I'm not alleging anything specific or illegal, just comparing a small part of both codebases. However given what I've just seen, I wouldn't touch ReactOS with a barge pole. The Microsoft guy's complaint is entirely understandable.

    https://news.ycombinator.com/item?id=20345645

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts