A tale of two command arguments

A common issue I see in platform abstraction libraries is complete ignorance of fundamental incompatibilities between platforms. Let's look at an example case study: the arguments to the main function in C and C++. For starters, what text encoding do they use? Do you know off the top of your head? Better yet, where do they even come from? What is the purpose and source of the provided arguments? Do they come from a user? From the operating system? From a mix of the two? Do you really know what a locale is? Perhaps you think you know all these answers. There was once a time where I thought I did. Can you really be confident in your answers to these questions when you consider all platforms you hope to develop for? Consider this: on desktop operating systems, program arguments are often used for passing filesystem paths. The NTFS filesystem used by Windows stores file and directory names as arbitrary sequences of 16-bit numbers. Aside from a few banned numbers and sequences with sp

I broke my Windows DevKit 2023

I've been using my Windows DevKit 2023 a lot over the past years since it has good performance for software development and doesn't make my room hot like my traditional desktop PC. Inside it is a Microsoft SQ3 processor based on the Qualcomm Snapdragon 8cx Gen 3, making this a Windows on ARM device. It shipped with Windows 11, which was annoying until they finally added back the ability to get window titles on the taskbar, though it took them a long time to work out the bugs with that. Unfortunately, today's post is mainly about issues specific to this device, rather than to Windows 11 in general. I typically use the maximum supported number of displays: 3. Up to two displays can be 4k, but I only have one 4k display. I basically just re-use my existing 4 display setup for my x86 desktop which arranges the displays in a 2x2 grid (4k display is bottom right, primary display is bottom left, extra displays are above), using the extra monitor inputs and excluding the top right

Downgrading to Windows 10 on ARM

Ever since Microsoft made x86-64 emulation exclusive to Windows 11 on ARM, they've been heavily pushing Windows 11 for all devices regardless of architecture. However, Windows 11 removed the ability to see window titles on the taskbar without using 3rd party tools, which is a dealbreaker for me due to the way my mind works while I am working at my PC. Clearly, I'm not the only person with a reason to prefer Windows 10, as I've seen many people online sticking to it as much as they can, including Surface Pro X users who are giving up x86-64 support in favor of Windows 10. As a developer, I need to make sure my software runs on the operating systems people are using, but it's getting more difficult as Microsoft is no longer selling Windows 10 licenses in their store, nor Windows 10 on ARM devices in general. In my previous post I talked about trying Windows 11 on ARM with the Lenovo ThinkPad X13s, and while it runs well, I just can't get past the lack of window titles

Finally Trying Windows 11 on ARM

I've long enjoyed my Lenovo Miix 630, a Windows 10 on ARM device with a Snapdragon 835. Microsoft decided not to support that CPU for Windows 11 , so I got to keep Windows 10 on it just as I like. However, Microsoft introduced some bug with storport.sys that resulted in it bluescreening at bootup repeatedly, and despite multiple attempts to wipe and reinstall, the issue persisted. I ended up sending it in for out-of-warranty repair, during which time Microsoft fixed the bug of course. While waiting for Lenovo to fix my device, I started getting antsy. While I had the QC710 to keep me company, its Snapdragon 7c processor was far too sluggish for my liking, and I had upgraded it from Windows 10 to Windows 11. Project Volterra is looming on the horizon, but still not out yet (UPDATE 2022-10-24: Project Volterra is released! ). I had been keeping my eye on the new Lenovo ThinkPad X13s for months, watching review videos and reading articles about it. It was quite tantalizing since it s

Project Volterra is NOT the first desktop Windows on ARM device

 Microsoft recently announced Project Volterra, their second desktop Windows on ARM device after the QC710, seen in this video at 12:17: However, a lot of online reporting is falsely claiming this to be Microsoft's first desktop Windows on ARM device. It seems everyone has already forgotten the QC710 , which has still been available for months sold directly from the Microsoft store . Both the QC710 and Project Volterra are aimed at developers, but it seems like Project Volterra is getting a bigger marketing push from Microsoft, so perhaps most tech press just genuinely had not heard of the QC710 before. My time with the QC710 has been fine, though I was unable to upgrade it from Home to Pro until 2022-06-24 and it still hasn't magically acquired hardware virtualization support, but it works well for its purpose of being a desktop WoA device for development and testing. I will probably get Project Volterra too, since it will likely have better specs than the QC710. There's n

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

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

(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