Posts

Showing posts from 2021

Windows on ARM is off to a shaky start, but it is the future

Image
After waiting and waiting, the Snapdragon Developer Kit for Windows on ARM that was promised to be released before the end of the summer was finally released on 2021-11-14. It's called the ECS LIVA Mini Box QC710 Desktop, and it can be purchased from the Microsoft store with a zero refunds policy, in your browser or in your Microsoft Store app . We have known the specifications since the original announcement back in May, and based on the specs many people were expecting a low end price, but the actual price ended up being $219 USD before tax. This is a bit more expensive than what some were expecting, but it could be to combat supply chain shortages by discouraging ordinary people from buying it, thus leaving enough supply for developers. This is unfortunate as ideally Microsoft would want to jump start Windows on ARM development by getting these devkits into the hands of as many developers as possible, but at least we have it at all and it is indeed cheaper than other Windows on

Down the Windows on ARM devkit rabbit hole

Image
(UPDATE 2021-11-14: It's finally available on the Microsoft Store !) Microsoft and Qualcomm recently teamed up to create a Snapdragon Developer Kit for Windows on ARM. I already have a WoA device, but it's an older processor that doesn't support hardware virtualization, and might not even support Windows 11 , so I am excited to get my hands on this new devkit. It was announced first at Microsoft Build in this rather unusual presentation: At first, I didn't understand why it was so awkward, or why these two Microsoft employees seemed to simultaneously dislike each other and not care about each other. I was incredulous, laughing and naively wondering if Microsoft had really let some passive-aggressive beef between two engineers slip out like this. Then, I showed the video to someone else, and they pointed out that it was a parody of the comedy celebrity interview series Between Two Ferns. That's when things clicked, and I appreciated the presentation even more. The d

I wish UWP had succeeded

I work professionally as a C++ developer, and as part of my job I personally ported multiple Win32 games to run on UWP for Desktop and Xbox. I will admit, there are some aspects of the Universal Windows Platform that I found annoying, but overall I liked the direction it was going and the features it offered. The main thing I liked about UWP apps was the user experience: the app/game runs in a sandbox with limited permissions that the user can see in advance and even turn off or customize. I am a huge, huge advocate of giving users control over what apps are allowed to do on their system. This is difficult to do with any real reliability for Win32 apps, especially without sacrificing performance, and it's why antivirus software has stepped up as an alternative. UWP on the other hand had sandboxing and permissions baked in while being really performant, especially if you implemented your UWP app or game as C++/WinRT with DirectX 11 or 12. Android, iOS, and other mobile operating sys

How to build WinDirStat for Windows 10 on ARM

Image
WinDirStat is a 32-bit x86 app, so it can already run through emulation on Windows 10 on ARM. However, it is surprisingly easy to build an ARM-native version of the app. I thought it'd be fun to try, so here's what worked for me. First, you'll need to install Visual Studio. I used Visual Studio 2022 Preview 1.1 for this, but things should work in Visual Studio 2019 as well. Importantly, within Visual Studio Installer, you need to select the Desktop Development with C++ workload, and in the optional components you need to select MFC, specifically for ARM. You can find it by searching for ARM MFC in the Individual components screen. You should install MFC for x86 as well to verify that you can build WinDirStat in its default configuration. Once you have Visual Studio installed, you need to download the WinDirStat source code. When I did it, it was hosted on OSDN as a mercurial repository, so I installed mercurial and cloned the repository. With the source code in hand, all I

Windows 10 on ARM has always been able to run 64-bit apps

Image
The transition from x86-based processors to ARM-based processors is one of the most interesting and exciting technology events for me right now, and it is happening so stealthily that most people don't even understand what is going on. I keep seeing reviews that say Windows 10 on ARM "can't run 64-bit apps" or articles titled "Will Windows 10 on ARM be affected by ARM dropping 32-bit support?" or other such misleading things. The confusion comes from a misunderstanding of what 32-bit and 64-bit even are - people don't realize that 64-bit ARM code exists at the same time as 64-bit x86 code. Here's a handy table to hopefully clear things up before I delve into details: Ability Windows 10 on x86 Windows 10 on ARM Windows RT MacOS on x86 MacOS on ARM Linux Run 32-bit x86 Yes Natively Yes Emulated No Never No Not Anymore No Never Yes Run 64-bit x86 Yes Natively Yes (insider builds) Emulated No Never Yes Yes Translated (Rosetta 2) Yes

Gray Patterns

You may have heard of dark patterns, where technology is designed in intentionally malicious (or, dark) ways. But what about when it's unintentional? There are a ton of habits I have developed over the years purely to account for bugs I have encountered in software I use. These bugs may be fixed someday, but for now the defensive habits remain, sapping precious energy and time from me. Here are some examples. I have multiple monitors, and in Windows 10 there's an option to have a taskbar on each monitor and to only show open windows on the taskbar of the same monitor as there the window is at. If you focus a program on one monitor, then focus a program on another monitor, both programs stay focused on both taskbars even though only one is truly in focus. Clicking in the blank area of any taskbar fixes the display issue. So, I now have a habit of clicking to focus a program, clicking in a blank area, then refocusing the program again, just to avoid this distracting visual bug. W