Signs of a simpleton having fun with a new microcontroller:

  1. Write a program that makes the LED blink like a mother fucker.
  2. Write a program that spams a hello world to USB serial.
  3. Write a Read Eval Print Loop over USB serial.
Compared to what I’ve done in C with simpler micros like the 8051 family, I’m finding the RP2040 really damned nice. Not only because of the Cortex M0’s horse power, but because of the really nice library that comes with the Raspberry Pi Pico. For the hell of it, I decided to abuse it with some simple C++ by for the REPL just to see that C++ I/O and string handling, does in fact work.
Of course, me being me, I ended up with a really simple set of commands:

static string evalline(const string& line)
 {
     if (line.empty())
         return “”;
     if (line == “monkey”)
         return “Willow?”;
     if (line == “monster”)
         return “Corky?”;
     if (line == “sweet”)
         return “Misty?”;
     if (line == “help”)
         return “Try nicknames with fur”;
     blink(100);
     blink(100);
     blink(100);
     return string(“Unknown command: “) + line;
 }

Because why not? 😜

Pimoroni’s New Pico Display Takes It to the Max

“Damn it, people! Stop making me want a handheld Pico that can play DooM!” — Terry Poulin upon seeing how many buttons this display has.
A reoccurring thought of late has been just how much of DooM could fit within the Pico’s memory constraints, and a practical way to handle storing the wad files externally.

WHERE ARE ALL THE CHEAP X86 SINGLE BOARD PCS?

Interesting picture it paints, but perhaps short sighted.
Part of the rise of the PC IMHO: owes to the level of binary compatibility Intel’s x86 processors maintained, and the relatively open hardware architecture around that processor. I don’t think I even met a 5 1/4” our Tandy failed to run until the late ‘90s. Which surprises me even more today than it did then.
I rather like ARM’s approach to the whole IP core thing. ARM processors are largely ARM processors the way Intel processors are largely Intel processors. But the relationship between architecture and a product in your hands is quite different. Because of this we have a very broad range of ARM based products and vendors out there, and while compiling code retains strong compatibility the overall hardware varies significantly.
While ARM largely focused on doing its share well, and other companies doing what they do well. Intel largely retained control over its niche, occasionally spreading into other hardware fronts. In practice Intel and AMD are the only big players in x86 today, and Intel has often helmed the development. You can get an ARM based processor from more vendors than you can shake a stick at, or given sufficient cash and effort start developing your own hardware around it. If you want an x86 then odds are you’re buying Intel, or second sourcing from AMD.
While I think the compatibility made a big difference, I’m not so sure that we benefited from Intel’s monopoly over its ISA. When I think about why there are few cheap ass x86 SBCs, I usually think of this as “Because that’s not Intel’s market” — and Intel’s the real stick in that mud.

APPLE ISN’T JUST A WALLED GARDEN, IT’S A CARRIER – The return of the Angry God of ARPU.

This is one of the more interesting metaphors you could apply. Walled garden has been used so long for Apple’s modern eco-system that it is the defacto definition, if not the dejure definition of the App Store. Using the metaphor that Apple is a carrier: seems highly appropriate, but sadly, I think paints the case that Epic should win.
You see companies are first of all in the business of staying in business. For some reason, the FUPM scene from Goodfellas is playing in the back of my mind. What is good for users, and customers, is not always what is perfect for businesses. I like to believe what is good for the customer should be good for the business if you achieve a fair compromise rather than a big stick.
The real moral of this story is that large one sided monopolies are bad. Carriers like Verizon and AT&T got away with all but murder because of the extent of their power over their own networks. To be fair, when it’s “Yours”, you should have some say in that. I believe that the whole digital signatures thing for installing apps on modern platforms is a great thing. The difference is kind of in implementation: Apple runs the App Store, and they should have power over it. Much as Google does over Google Play. But one of the twists is that on Android: the user is the last stop on the right to install software. On iPhone: Apple has total control. In my opinion users should have more control over the software they can install, not more control over a provider’s store front.
Having stopped sewing people at the drop of a hat, Apple has been doing a fair job of obeying Wheaton’s Law—don’t be a dick. Which is key to prolonging your monopoly and circumnavigating confrontations like Epic vs Apple. Because if you’re more benevolent than malevolent it is harder for your enemies to gather strong support, and come for your bottom line.
The greater your enrage customers and businesses in between: the more support potential adversaries can build. Carriers like AT&T and Verizon Wireless have done the big stick to beat down companies and shove up users keesters so well, that pretty much no one loves them for it. Eventually if you’re a big enough dick: someone will punch you in the nuts.

Rimuru – Refit 1

For me the distinction on Rimuru between 16 and 32 GB of RAM, has more to do with the my goal for the machine to last 10 years of service life. Centauri retired after 8, and I had designed it with 5 in mind.

So I decided to acquire two sticks of the same kind of memory, and fill the other two slots while it’s still possible to get them. Actually, I think this is the first time one of my personal machines has had 4 largely identical sticks; only difference is the color to help ID the slots.

On most of my Windows machines, it’s not uncommon for my “Idle” to hover somewhere between 3.5 ~ 6.5 GB of memory. Centuari had been designed as a 2×4=8 GB machine that grew to a 12 GB when her older sister, Dahlia was decommissioned.

Since my “Work” environment already stresses the hell out of my laptop’s 16 GB, I decided Rimuru’s decade outlook called for 32 GB.

Running a single go of PassMark’s Linux version in WSL2, I had scores of 3298 before and 3520 on the Memory Mark. Which at least confirms to me no performance lossage, that shouldn’t occur because there’s no reason. I like verification. The difference between scores is within margin.

One of the aspects of my old ass Logitech 2.1 system going wonkers was replacing it with a set of Creative Pebble v3s. Since the speakers’ USB mode would only function on any of my machine’s via USB-C, that’s been consuming Rimiru’s lone front USB-C port.

Well, now I have a pair of 10 Gbit/s rated USB-C ports in the back. Problem solved.

If I was a genius, I would probably put a C to C or a C to Micro 3.0 cable in the other port and route it to my desk/monitor area. Much as I have a USB-A 3.0 extension that makes it easier to hook up hard drives and Xbox controllers and such.

 In my opinion this video should be titled, “on why user space Linux sucks”.

In terms of what most users think about in terms of desktop this video has jack shit to do with you. Rather the video mainly focuses on the concerns of packaging your binaries and expecting it to run on Joe Random Linux Distribution.

I kind of applaud Torvalds for his long fought religious mantra of Don’t Break User Space. When you’re working with Linux itself, out of tree drivers breaking or needing pieces rewritten isn’t that unusual. Don’t maintain your driver, and you’re liable to go oh snap they replaced an entire subsystem or removed a deprecated API after comical number of years. But compatibility between the Linux kernel and user space software, is pretty superb.

One of the reasons why MS-DOS PCs took off, and CP/M before it, is the drive towards binary compatibility between customer machines. As much as Windows has often deserved its hate, backwards compatibility and stable ABIs–not I said, ABI, not API, has generally been pretty good.

Binary compatibility between Linux distributions has improved from the days where source systems were the best way to make shit work. But just the same, I did have to snicker at Torvald’s comments about the GNU C library (glibc), which has often pissed me off over the years with their concept of compatibility for such a core piece of user space.

As someone quite fond of desktop linux, I can’t say that binary compatibility of large applications between distributions is especially a fun thing. Not because it’s impossible, but because most of us involved just don’t care. I assume most, like me learned Unix systems in an environment where API compatibility was the only path to victory, or they simply don’t care about the zillion other Linux distributions.

Opinion: The M1 iPad Pro needs iPadOS 15, not macOS

While I typically roll my eyes at many posts regarding fruity things, I find this one more sane.

As a weirdo who actually prefers a Tablet First life style for my non terminal, non video game computing needs, I don’t have a lot of problems with how iPadOS 14 has evolved. So much as I wanted to puke at how iOS 12 was 😝.

Personally, I don’t really care about macOS. In the era of OS X, I used to consider the UNIX underpinnings a reason to choose it over XP if I ever had to choose between an NT or Mac based corporate machine. Basically, I don’t give much of a flying fuck about Macs outside of the POSIX programming environment that overlaps with BSD and Linux based systems.

Being the kind of weirdo who used to dock an Android tablet to a monitor, mouse, and keyboard to do actual work, my main beef with iPadOS today is that it can’t do what I used to. The limitations on background connections make it impractical for me to use my iPad Pro like a terminal. The lack of software like Docker Desktop and XCode, just make the iPad ineffective for local development. So SSH apps being forcefully disconnected by the OS after a short time in the background, means iOS is a poor terminal if you’re switching apps.

For more general use cases are kind of meh. If your GUI software doesn’t work well on my tablet, I’m probably not going to have a big opinion of it on my laptop  either. Software design has come a bit of a long way from just slap a 1990s style menu bar around it. A prime example of sorts: AquaMail worked superbly on my Android tablets and Chromebooks, so much that I wished for a PC version of the app. Something closer to Gmail or Apple Mail or Windows 10 Mail or Thunderbird or Claws, yadda, yadda — just don’t care.

I suppose there is the perk that most of my harsher software demands tend to take a command line centric view. Many of the pieces of software I really do care about fit into the unix history of command line tools from a Bourne style shell session. Not a bunch of clicky all over the place GUIs; I’ll care more about GUIs when I need to use my fat puddgy fingers to interact with a screen or when a keyboard is a combat ineffective way of interacting with a problem. For example, I wouldn’t want a command line version of GIMP, but I don’t need a GUI version of vi either. I’m weird :P.

As it turns out there seems to be more upsides to building a demon lord class machine than expected. A while back, I discovered the massive improvement this makes in H.265/HEVC encoding times.

Series currently running has been averaging about 6 minutes per episode, since it’s one that’s more talky and less stabby than some. But the interesting thing is the responsiveness. See, Centauri could do video encoding at a modest pace but HandBrake would render the desktop hardly usable and nicing it out to take over the whole system didn’t help much because there was no head room above the encoding. Thus leaving the system rather lethargic even if you tried to keep it usable. Rimuru, just doesn’t care.

Rimuru on the other hand remains functional and responsive despite running full bore, it’s spare cycles just breeze through. To the point that I was able to pipeline my work by having MakeMKV start ripping the second disc while the first was still encoding in HandBrake. I couldn’t even tell that my system was under load, as opposed to the “Gah, I’ll come back in half a day” approach that Centauri could offer.

Little Smiles

One of the things I’ve generally adapted to is using a local mail client again at home. Something, I sort of blame on a mixture of work and my tablet-first life style. As such, given my deep annoyance for most mail clients above the scope of mailx and mutt, I’ve mostly suffered the native Windows mail app. In particular because such applications are about the only good way to integrate my contacts and calendar accounts with the modern desktop. For me it’s worked out, since I also hate clients like Thunderbird and Outlook but suffer them just the same.

Something that has long irked me is how Windows Mail defaults to showing a couple folders (inbox, drafts, sent) and none of the many folders my mail accounts are organized into. Thus, I get a little smile when I realize the fancy spancy modern looking menu supports right clicks and defines this ridiculously short list as “Favorites”.

That’s at least one less annoyance :).