Winget

I decided to upgrade my Windows laptop to Windows 11 yesterday. It was an awful slog, replete with many failed Windows Update attempts, permissions issues that prevented me from changing the necessary diagnostic data sharing settings, and even a hardware firmware update. I ended up having to “reset” Windows—which deleted all my apps, data, and settings—to move forward.

However, hours later, once Windows had finally gotten all of its updates in, I had the opportunity to use Winget for the first time. Winget is Microsoft’s command line package manager. Although not as mature as the package manager I am most familiar with, APT, Winget is pretty awesome. I was able to use it from the Windows CMD shell (because Windows Terminal does not come pre-installed) to install everything I needed, from Visual Studio Code to Vim to NextDNS. It saved me a ton of time. If I set up new Windows machines frequently, I could write a script to automate all of it.

It is interesting to see all the developer- and administrator-friendly enhancements Microsoft has made to Windows over the past few years. Windows Terminal, Winget, and Visual Studio Code are miles ahead of what Microsoft offered just a few years ago.

You Really Need to Quit Twitter

I saw this article by Caitlin Flanagan on Om Malik’s blog. It’s a fun read if, like me, you’ve been through the quitting Twitter part she goes through.

Transloader: A remote control downloader for iOS and macOS

I learned about the app Transloader thanks to a MacStories article that popped up in my RSS feed today. Transloader lets you send a URL from any Mac or iOS device you have to your Mac, and the Mac will download it, send it to an app, or pass it or the downloaded file to an Automator workflow.

Saving downloads to my NAS is something I have longed to do for ages. I have tried to make iOS Shortcuts that do this, but I never got anything to work reliably. Transloader makes this task possible, though it ropes my Mac into the process. Fortunately, it even works (albeit with delays) if you don’t keep your Mac on all the time.

What I’m looking for in an open source project repo

When the Micro.blog client apps were open-sourced, I reviewed the Github repos for the two I use most (the iOS app and the macOS app). I wondered if I could contribute something to the projects—probably something small, like more hardware keyboard shortcuts or an enhancement to how the post editor works. I wasn’t sure if that would be welcome, based on the brief “About the open source project…” verbiage in the REAMDE, and based on (1) the very old, but open, issues in the iOS repo, and (2) seeing no issues in the macOS repo.

I “know” Manton because I have been listening to his podcast with Daniel Jalkut for years (which is where I learned about Micro.blog), so I think of him as thoughtful, considerate, and certainly not as unfriendly. But I did not actually expect him to open source the apps when he did, and I figure that her has a business to run and may not be ready for a bunch of user requests on client apps that he may be happy enough with already. Manton saw my prior post about the apps and commented on it: “I wrote that README quickly and should expand on it…”

In true blogging fashion, I am responding to his comment with this blog post, with the aim to be helpful to Manton as he thinks about how to expand on the README he wrote.

What I look for in an open source project.

Two things, really. Can I report an issue? And, can I contribute?

Issues

Ideally the issues list will be kept current and will tie to development efforts (bug fixes and enhancements) going forward. Very old issues that the maintainer no longer wants worked on will be closed. Issues that the maintainer is interested in will be labeled “help wanted”, “good for beginners”, etc.

The maintainer should say in the README how user-reported issues will be addressed. It is OK to state that the maintainer does not plan to consider some or all feature requests from users. It is best to be open and realistic about how the project will operate.

Contributing

I always look for a CONTRIBUTING document or section in the README to learn whether or not the maintainer will accept pull requests, and if possible, how that process should work. Is opening an issue, then resolving it with a pull request later on, the right way or the wrong way to go about it? I have worked with maintainers who preferred that approach, to solicit conversation, and have worked with others who preferred the code change to come first and the discussion afterward.

Also, it is OK if the maintainer is not going to accept pull requests; I would rather know up front.

The future

I think it is perfectly OK if the way a project is maintained changes over time. Not every decision made on day one has to be carried out forever. As a potential contributor, I just like to know what I might expect if I approached the maintainer now.

On open-sourcing the Micro.blog client apps

This week @manton open-sourced the iOS and macOS Micro.blog apps. I think that is a great move in general, but it is not one of the things I require in the software I use. I never felt that comfortable when, a while ago now, I read users’ blog posts expressing anger or dismay that the client apps were not open-sourced. (Let’s put aside, for now, that what makes Micro.blog work is the server-side code.)

As a paying customer, and as a developer myself, I don’t think Manton and his team are obligated to share their client source code with me. I don’t think anyone is. If they want to, that’s great—but it is no guarantee that the client app itself will be better, more secure, more feature-rich, or even have a future many years from now. Heck, it doesn’t even look likely that Micro.blog will accept pull requests, so it is unclear whether open-sourcing it will change its development direction or iteration time at all. I’m not complaining about that, though. Maintaining an open source project/community and running a successful blog hosting business are almost entirely orthogonal to each other. Open source doesn’t really give me added comfort that an app I love or depend on will be there for me forever, because nothing is forever, even open-source software projects.

As a computer user and enthusiast, I used to care a lot more that I do now about free, libre, and open-source software. My primary reason was that I thought I could trust it more than closed source software. It is harder to hide malware, tracking, and obvious security flaws when the code is publicly viewable. History has shown that not to be entirely true. Remember Heartbleed? That incident showed us that widely used libraries may be maintained by only one or two people, and their source code can contain bugs and security flaws that go unnoticed for years, because no one is actually looking at the source code.

My secondary reason for preferring open-source software was more theoretical, but larger in scope and more exciting to me: open-source software can be a more practical and a better use of humanity’s programming resources. That’s because one of the great, unfulfilled promises of computer science is the ability to solve a certain problem once and for all, for everybody. Open source utilities, like the Unix command line tools, and open-source libraries, like OpenSSL, theoretically could make this happen. But it didn’t happen, at least not fully. We spend a lot of time, collectively, solving the same software problems over and over again. We may approach these problems in new ways, with new languages, and on new platforms. But in the end, we are repeating ourselves. Imagine where we could be if we didn’t keep repeat ourselves!

I actually think that most of the repetition is the inevitable result of human nature. Humans are curious; we want to know how something works, and how to do it ourselves. Humans are also prideful: we think “I can do the same thing, but better.” Most importantly, humans need to learn; each of us is born knowing nothing, and must learn extensively from our forebears to push our collective knowledge out just a little further.

In the end, what is most useful to me about Micro.blog open-sourcing its codebase is that I can look at it and learn from it. That could be very helpful. Long ago, I was interested in creating a dead-simple iOS app (extension, widget, whatever) for Micropub posting. Eventually, well before this week, Micro.blog open-sourced its Snippets library, which would have made writing such an app much easier. Now, with the client app also open sourced, I could review its code to see (presumably) how to call, configure, and use the Snippets library in an iOS app. That is even more useful than the Snippets library alone.

Now that the Micro.blog client app source code is free and open, maybe I could use some of it to help me build that little utility app now. In the same vein, maybe someone else could use much more of that source code and build a better, more feature-rich client app based on it. Maybe the Micro.blog app is a solved problem, and no one has to solve it again (at least until Apple stops supporting the frameworks it is based on), and a hundred other Micropub-blogging-based small businesses could spring up, all using a common client app. Who knows? That possibility is a risk to Manton and Micro.blog, but it is also a gift to the greater world.

Thanks, @manton, @cheesemaker, and @jean (are there others at Micro.blog?) for all the work you do.

Pipeline Investigation Upends Idea That Bitcoin Is Untraceable

Nicole Perlroth, Erin Griffith and Katie Benner report, in The New York Times, on how the Justice Department traced and recouped a huge ransomware payment:

Bitcoin is also traceable. While the digital currency can be created, moved and stored outside the purview of any government or financial institution, each payment is recorded in a permanent fixed ledger, called the blockchain.

That means all Bitcoin transactions are out in the open. The Bitcoin ledger can be viewed by anyone who is plugged into the blockchain.

Bitcoin was never really anonymous. It is pseudonymous, so it makes sense that transactions can be traced to some extent and tied to a unique owner or wallet.

What is interesting is not just that law enforcement can identify which Bitcoin wallet was involved in the fraud, but also that law enforcement could also crack the wallet’s password and retrieve/steal the money out of it. I wonder how. Was it a weak password? Was it social engineering? Was it a brute-force password crack? If so, was it cracked by a normal computer or by a quantum computer that no one else knows about?

Bitcoin seems fundamentally broken to me. I won’t touch it.

I am a little too excited to be getting Office 365 installed on my work laptop tomorrow. I have been on Office 2016 for so long it is absurd.

Google wants to build a useful quantum computer by 2029. If it does, I’m sure it will cancel the project by 2030.

I unblocked Reddit.com earlier this week because the domain keeps coming up in tech question-related search results. After only a few days, I’m back looking at mechanical keyboards and expensive headphones on Reddit like an addict. I just blocked the domain again.

Microsoft is changing the default Office font and wants your help to pick a new one

Per Tom Warren In The Verge:

Microsoft is changing its default Office font next year and wants everyone to help pick the new default. While there are more than 700 font options in Word, Microsoft has commissioned five new custom fonts for Office, in a move away from the Calibri font that has been the default in Microsoft Office for nearly 15 years.

I am unusually attached to Calibri so I am not looking forward to this change. Then again, at work I often have to publish using Arial Narrow, which I think is objectively awful in terms of aesthetics and legibility, so it probably won’t affect me too much.

Microsoft announces Surface Laptop 4 with choice of Intel or AMD processors

Tom Warren’s article on The Verge caught my eye:

Microsoft is refreshing its Surface lineup with the Surface Laptop 4 today, which now offers the choice between AMD or Intel processors across both the 13.5- and 15-inch models. Both sizes will ship with Intel’s latest 11th Gen processors or AMD’s Ryzen 4000 series processors. Microsoft is shipping its Surface Laptop 4 on April 15th in the US, Canada, and Japan, starting at $999 for the AMD model and $1,299 for the Intel version — a $300 price gap between the pair.

If I was more of a Windows guy I would probably buy only Microsoft-brand laptops at this point. They don’t always have the best specs, but I like their designs a lot.

I spend most of my computing time using Windows for work. I try to forget that I have a Lenovo laptop by putting it behind a giant monitor and using an external keyboard and trackball to operate it. Lenovo laptops are good, I guess, as long as I don’t have to touch them. I don’t like their keyboards (both in terms of layout and feel) or the pointing devices (the trackpad is too small, and I’m done with using the trackpoint/eraserhead thing). The Surface Laptops keyboards and trackpads have always seemed a lot more sensible to me in how they are designed.

I never would have predicted that in 2021 I would be using a text-mode file manager from the 1990s, a command-line based to-do list program, and, at least sometimes (by choice!), the Vim text editor.

Linux on the M1 Mac Mini

The Linux kernel is gaining Apple M1 support. I have been wondering if, years from now, I can move my M1 Mac Mini to a home app-server role, running Linux, when it gets too old for Xcode and stops getting macOS updates. I have a Celeron based PC doing that for me now, but it runs hot and can be noisy, too. If a machine can run Linux, it extends its lifespan considerably for me.

Today I discovered that there is an open-source community creating a modern GUI file manager for Windows. It’s called Files and it is OK and seems to be heading in the right direction. It is a shame that Microsoft essentially abandoned feature development for their file explorer many years ago.

Apple Arcade just got a huge update of new games, including some mobile classics

As reported by Andrew Webster in The Verge:

Apple’s gaming subscription service just got a massive influx of new titles. The headliner is Fantasian — the latest release from the creator of Final Fantasy — which is joined by other titles like new versions of NBA 2K and The Oregon Trail, and World of Demons from PlatinumGames. As part of the update, the service is getting two new categories of games: Apple calls them “Timeless Classics” and “App Store Greats.”

I literally just canceled my (second) Apple Arcade free trial twelve hours before this announcement. I just can’t seem to get into Apple Arcade at all. For the most part, the reason is that I find my iPhone 12 mini to be too small to be a compelling gaming device. Secondarily, I don’t want to get into a complex, involved game on my iPhone or iPad. I prefer my mobile games to be simple things that can be jumped into and out of, more like the “Timeless Classics” that Apple is now adding to Apple Arcade. It’s too bad for Apple Arcade that I already own almost all of those games.

After a few days of work, I just published my new, Hugo-based website for one of my iOS apps: Simple Call Blocker. The site is not as beautiful as I would have liked, but it is way better than it was, and now I have a framework I can use to add more content to it if I need to.

OpenAI’s text-generating system GPT-3 is now spewing out 4.5 billion words a day

James Vincent reports in The Verge:

The best-known AI text-generator is OpenAI’s GPT-3, which the company recently announced is now being used in more than 300 different apps, by “tens of thousands” of developers, and producing 4.5 billion words per day. That’s a lot of robot verbiage. This may be an arbitrary milestone for OpenAI to celebrate, but it’s also a useful indicator of the growing scale, impact, and commercial potential of AI text generation.

The obvious industry target for auto-text is journalism. It is already being used there for sports reporting, and could probably be used for local government reporting too. There are other areas it will encroach on that are news-adjacent (think financial news or business book digest services like Blinkist), like education and entertainment.

I’m an auditor, and I think that, eventually, auto-text is going to destroy about 50% of our billable hours. Auditors spend a ton of time writing. We document our procedures. We record our work. We summarize our findings. We write reports for our clients. Making sense of all the work, both for our own understanding and for our client’s, for the sake of writing it down, takes a lot of time. Moreover, the simple act of typing it out and, especially, hyperlinking everything together so we support our conclusions, requires a lot of manual work. Some of this work is communicative, but a lot of it (like the hyperlinking part) is mechanical. Consequently, much of it is ripe for automation.

I think, though, that transforming this laborious and time-consuming writing process into something auto-generated by a bot would produce a lot more information but a lot less knowledge than we had before. You gain a lot more understanding how a company, business process, or control works by writing about it than by reading about it. Why? Because writing is thinking. To write well is mentally strenuous. It requires you to think how you would communicate an idea to someone else, notably someone else with a different perspective and different knowledge than you have. At the end of the writing process, you should understand your subject backwards and forwards and from all sides; you could probably describe it in a number of different ways; and you will likely remember the gist of it, and specific nuances about it, for far longer than you would if you had just read about it in a report.

The world won’t end, and few will shed tears, when AI writes audit reports and work papers. Audits cost money, and businesses mostly don’t think they benefit from them. If it makes the auditors less knowledgeable, however, side effects will develop, and those will be long-lasting. Knowledgable auditors help make good control environments possible, which leads to more stable and more solvent companies. Decreasing the understanding of auditors could make systems and processes more unstable and less trustworthy over time. Additionally, knowledgable auditors often move to the business side and go on to manage well-controlled organizations. While the auditor-to-manager career path will likely continue, such moves would not result in the same level of management quality if the auditors don’t have to think as deeply about what they are auditing as they did before the AI text-bots took over. Neither of these side effects bodes particularly well for the people the auditors and the audited companies (and their fancy AI) serve.

Does anybody know if scheduled posts, posted from Ulysses, show up in the timeline? I think my 1:00 PM Eastern blog post did not show up in the timeline, but made it to my blog on time.

Alt+F4

I have been using AutoHotKey for many years, and I never thought until today to map Windows+Q to quit the active app and close the active window. That creates something very similar to Mac’s Command+Q shortcut to Windows.

The default Windows keyboard shortcut for quitting an app is Alt+F4, which is a two hand operation for me. Note that in AutoHotKey, you don’t even need to send that key command; you can use the WinClose function instead:

#q::  
WinClose, A  
Return  

One of the best things Apple has ever done with their support of keyboard shortcuts was to pretend that function keys (F1 through F12) don’t exist.

Intel invests $20 billion into new factories, will produce chips for other companies

Chiam Gartenberg reports in The Verge:

At the company’s “Engineering the Future” announcement today, Gelsinger announced plans to outsource more of Intel’s chip production to third-party foundries; a $20 billion investment into two new fabs in Arizona; and a new branch of the company called Intel Foundry Services, which will see Intel’s foundries produce chips for other companies.

Intel has had an awful decade, having missed out on smartphone chips and having stalled out at their 14nm process for years. Still, it is a strategically important company for my country, and I have to ill will toward it, even if I don’t prefer their products right now. I would love to see them become competitive again.

The idea of Intel fabbing chips for other companies is a big deal. Intel has never done that before. It seems to me like it could be the first step of spinning off that part of the business into its own company, and focusing on process shrinks in ways that the fully integrated Intel could not before.

Ulysses and Micro.blog

It is amazing that Ulysses supports posting to Micro.blog now. I love the functionality, and its inclusion definitely cements Ulysses as my only writing app on iOS and macOS at this point.

Now let’s bug the Ulysses team to do some other cool things:

  1. Implement publishing workflows, by which publishing a sheet can automatically trigger the sheet to be tagged with a keyword, be moved to a particular folder (such as “published”), or call an iOS Shortcut.
  2. Make every command accessible via a hardware keyboard shortcut. (I’m thinking mainly of the iPad version.)
  3. Add a command palette, like Visual Studio Code and Sublime Text have.
  4. Support Mermaid, a text-based markup language for creating flowcharts, in fenced code blocks, like Typora does.

Regular Expressions App for macOS

I was bummed to find out that my favorite regular expressions editor for the Mac, Oyster, completely disappeared from the App Store (and it seems, the Internet). I wish I hadn’t deleted it from my old MacBook Pro, because RegEx is hard, even if you have used them off and on for decades. After failing to find something helpful for free, I had to buy another app (Patterns) which did the trick.

I deleted my LastPass account today. I have switched over to Bitwarden and love it.

I’m setting up a new Celeron based mini PC. It came with Windows 10 Professional on it, which surprised me for such a low-end PC. Microsoft must be giving those licenses away now. Its fan spins up and for a second or two each time I do anything, which reminds me of the frequent hard disk chatter from my 90s and 00s PCs.

The first time I heard the term “NFT” was yesterday, and I’m already sick of it.