Connect with us

Tech

Cross-compiling binaries for Windows is easier than building natively

Published

on

Cross-compiling binaries for Windows is easier than building natively

I want Microsoft to do better, want Windows to be a decent development platform-and yet, I constantly see Microsoft playing the open source game: advertising how open-source and developer friendly they are – only to crush developers under the heel of the corporate behemoth’s boot.

The people who work at Microsoft are amazing, kind, talented individuals. This is aimed at the company’s leadership, who I feel has on many occassions crushed myself and other developers under. It’s a plea for help.

The source of truth for the ‘open source’ C#, C++, Rust, and other Windows SDKs is proprietary

You probably haven’t heard of it before, but if you’ve ever used win32 API bindings in C#, C++, Rust, or other languages, odds are they were generated from a repository called microsoft/win32metadata.

Unfortunately, the source of truth for these generated SDKs – the Windows SDK .idl files – are proprietary despite living in the same repository with only an MIT license at the root.

Are derived community works, like say the D-language, Dart, or Zig bindings to the win32 API which are generated from those files open source – if Microsoft did not release them as such? I’ll let you decide.

Azure Kinect DK is not open source

If you’re one of the unlucky few who spent a few hundred dollars on an Azure Kinect developer kit, eyes shimmering with possibility and staring at that totally open-source microsoft/Azure-Kinect-Sensor-SDK repository – it was perhaps short lived.

Unfortunately, the Body Tracking SDK is a proprietary binary blob – so if you were looking to improve upon the body tracking, add ARM CPU support, get it working on Linux, or anything else – you’re out of luck.

.NET is not an open

As covered in isdotnetopen.com, despite best efforts .NET is still not an open platform:

  • ramming in a proprietary extension to continue to lockdown .NET.
  • an open programming language is missing a debugger
  • leadership decision to remove hotreload angers community and devdiv employees

I’m still blown away that they literally made the .NET team revert the dotnet watch PR at the last minute, so that they could sell it as a feature.

VS Code is marketed as open source, but it’s not

The messaging around VS Code is clear, albeit a bit slippery, about being open source:

Visual Studio Code – Open Source (“Code – OSS”)

This project has adopted the Microsoft Open Source Code of Conduct.

Free. Built on open source.

Meanwhile:

Side note: If you’re making VS Code extensions, please also publish them to open-vsx.org as Microsoft has sent cease-and-desists to those who use their extension registry outside of the VS Code product, so it cannot be used in the open-source fork vscodium.

I’m fine with proprietary software, but stop labeling it as “Made with natural ingredients.”

It’s not the fact that this software is proprietary that bothers me. I live with and use proprietary software daily. I’m not some purist.

What bothers me is that Microsoft pushes the idea these projects are open source, hosts them on GitHub, only has MIT licenses in the repositories, and doesn’t mention it anywhere.

Then someone who actually cares digs in, only to find hidden proprietary binary blobs and closed GitHub discussions concluding ‘legal said no, we won’t change the license’

“Made with natural ingredients.” is what it feels like. And I understand why they do it, too, how many people would eat the VS Code cereal if it read:

VS Code! A proprietary editor from Microsoft Corp! download now!

Windows development is broken (symlinks)

While I’m airing all of my greviences, I’ve been writing a game engine, Mach, in Zig for the past year. You know what Windows developers constantly complain to me about?

I tried it. It says the file doesn’t exist

I point them to our FAQ, which gives two options:

  1. Option 1: Fix Windows
    1. Enable “Developer Mode” (warning: this turns on symlinks, which Microsoft says are a security risk)
    2. Enable symlinks in Git (Developer Mode is not enough.) git config --global core.symlinks true
    3. Retry
  2. Option 2: Cross-compile from WSL -> Windows using zig build -Dtarget=x86_64-windows

Because somehow in 2022 cross-compiling Windows native binaries from Linux is easier than building on Windows natively.

I wish that was the end of the Windows developer pain story

  • Long file paths: Azure, OpenSearch, and ~90 other open source projects have to document how to enable long file paths on Windows because the default is a ~255 character limit.
  • CRLF: (Also, you know to configure core.autocrlf right?)
  • PowerShell … BTW, Windows 10 ships with an outdated PowerShell version in which HTTP file downloadsare ~122x slower, you know you were supposed to update that out-of-band, right? Because Windows Update won’t do that for you.

What does Developer Mode in Windows do again?

My plea to Microsoft

Again, the people who work at Microsoft are amazing, kind, talented individuals. I have no issues with you, I’m sure you are fighting the Microsoft behemoth in the same way to improve developer’s lives.

I beg of Microsoft to do the following:

(1) Stop hiding proprietary code in ‘open-source’ GitHub repositories

It’s not in the spirit of open source. It feels like code “Made with natural ingredients.” only to find a plutonium core. If the license says MIT, it shouldn’t contain proprietary source code.

Enact a policy to never put proprietary code on GitHub. Have it clearly stated in the README when a project contains proprietary code, or depends on substantial proprietary code to be used effectively.

I’m tired of finding this out through closed GitHub issues.

(2) Fix Developer Mode on Windows

I’m just trying to reiterate that real people are facing the issues I described above. They don’t constantly raise these through your Feedback Hub where you can count them because, surprise! They just expect Windows development to be painful like this and expect to have to Google workarounds 24/7.

Here’s how you can fix this:

If someone installs or launches developer tools (WSL, VS Code, Git, PowerShell, etc.) then prompt them to enable Developer Mode.

It’s insane you can be using these tools, developing on Windows, without any knowledge a ‘developer mode’ exists. It’s almost impossible to develop on a Mac without knowing about XCode.

If you turn on Developer Mode, have Clippy pop up and prompt the user:

Do you want me to enable symlinks (warning: this is a security risk)?

Do you want me to update PowerShell? (or stick with the multiple years-old version where file downloads are ~122x slower?)

Do you want me to enable file paths >255 characters? (warning: may break file explorer and other apps)

Do you want me to install Git?”

Do you want me to configure Git to use long file paths?

Do you want me to configure Git to use symlinks?

Do you want me to configure core.autocrlf?

Problem solved!

Thanks

Again, I’ve no qualms with the people spending their diligent efforts trying to improve Microsoft/Windows. This is feedback, I hope you’ll direct it to the right people.

You can find me on Twitter @slimsag in case you need to send the Clippy hit squad.

Read More

Continue Reading
Click to comment

Leave a Reply

Your email address will not be published.

Tech

USB logos finally make sense, thanks to a redesign

Published

on

By

USB logos finally make sense, thanks to a redesign


Author: Mark Hachman
, Senior Editor

As PCWorld’s senior editor, Mark focuses on Microsoft news and chip technology, among other beats. He has formerly written for PCMag, BYTE, Slashdot, eWEEK, and ReadWrite.

Read More

Continue Reading

Tech

Cheaper OLED monitors might be coming soon

Published

on

By

Cheaper OLED monitors might be coming soon


Author: Michael Crider
, Staff Writer

Michael is a former graphic designer who’s been building and tweaking desktop computers for longer than he cares to admit. His interests include folk music, football, science fiction, and salsa verde, in no particular order.

Read More

Continue Reading

Tech

New Pixel Watch leak reveals watch faces, strap styles and more

Published

on

By

New Pixel Watch leak reveals watch faces, strap styles and more
Google Pixel watch



The Google Pixel Watch is incoming
(Image credit: Google)

We’re expecting the Google Pixel Watch to make its full debut on Thursday, October 6 – alongside the Pixel 7 and the Pixel 7 Pro – but in the meantime a major leak has revealed much more about the upcoming smartwatch.

Seasoned tipster @OnLeaks (opens in new tab) has posted the haul, which shows off some of the color options and band styles that we can look forward to next week. We also get a few shots of the watch interface and a picture of it being synced with a smartphone.

Watch faces are included in the leak too, covering a variety of different approaches to displaying the time – both in analog and digital formats. Another image shows the watch being used to take an ECG reading to assess heartbeat rate.

Just got my hands on a bunch of #Google #PixelWatch promo material showing all color options and Watch Bands for the first time. Some details revealed as well…@Slashleaks 👉🏻 https://t.co/HzbWeGGSKP pic.twitter.com/N0uiKaKXo0October 1, 2022

See more

Full colors

If the leak is accurate, then we’ve got four silicone straps on the way: black, gray, white, and what seems to be a very pale green. Leather straps look to cover black, orange, green and white, while there’s also a fabric option in red, black and green.

We already know that the Pixel Watch is going to work in tandem with the Fitbit app for logging all your vital statistics, and included in the leaked pictures is an image of the Pixel Watch alongside the Fitbit app running on an Android phone.

There’s plenty of material to look through here if you can’t wait until the big day – and we will of course be bringing you all the news and announcements as the Google event unfolds. It gets underway at 7am PT / 10am ET / 3pm BST / 12am AEDT (October 7).


Analysis: a big moment for Google

It’s been a fair while since Google launched itself into a new hardware category, and you could argue that there’s more riding on the Pixel Watch than there is on the Pixel 7 and Pixel 7 Pro – as Google has been making phones for years at this point.

While Wear OS has been around for a considerable amount of time, Google has been leaving it to third-party manufacturers and partners to make the actual hardware. Samsung recently made the switch back to Wear OS for the Galaxy Watch 5 and the Galaxy Watch 5 Pro, for example.

Deciding to go through with its own smartwatch is therefore a big step, and it’s clear that Google is envious of the success of the Apple Watch. It’s the obvious choice for a wearable for anyone who owns an iPhone, and Google will be hoping that Pixel phones and Pixel Watches will have a similar sort of relationship.

What’s intriguing is how Fitbit fits in – the company is now run by Google, but so far we haven’t seen many signs of the Fitbit and the Pixel lines merging, even if the Pixel Watch is going to come with support for the Fitbit app.

Dave is a freelance tech journalist who has been writing about gadgets, apps and the web for more than two decades. Based out of Stockport, England, on TechRadar you’ll find him covering news, features and reviews, particularly for phones, tablets and wearables. Working to ensure our breaking news coverage is the best in the business over weekends, David also has bylines at Gizmodo, T3, PopSci and a few other places besides, as well as being many years editing the likes of PC Explorer and The Hardware Handbook.

Read More

Continue Reading

Trending

Copyright © 2022 Xanatan