Nine Years at Microsoft

Let’s not beat about the bush: I have no compunction about classifying this as my worst year (and believe me, there were a few doozies before that).

Fortunately, I am certain things are going to improve–after months in a limbo of sorts, things started making sense again yesterday, and that is something I will eventually write about later.

Looking back over last year, things were not so rosy. I’m not going to go into , but there are a few topics I cannot help but reflect upon.

Work Life

Just like , layoffs, , took a huge toll on my work-life balance.

Looking back, however, and without going into any , none of it was unexpected–if you weren’t too caught up in the events leading up to it. Microsoft is legendary for constantly renewing itself relentlessly to align with business goals, and that was… It. I cannot put it more succinctly.

But the past few years have been a roller-coaster, and the churn has been peaking to a point where even someone like me (who’s gone through a lot of change) has to wonder where things are going:

what I’ve been up to
A long, winding road to someplace

And if there’s something I learned throughout the years, its that regardless of where and how things are going, the key is figuring out what you’re accomplishing.

Impact

what it feels like sometimes
Nine years of it, of varying quality but usually trending up.

I came late to the concept of impact as hyped in startups and US corporate culture, because of my European roots and the Portuguese business landscape–where people conflate showmanship with achievement.

Impact doesn’t have to be a circus act, or set you up as a public figure–it isn’t even a solo sport.

But it does tend to revolve around personal contributions to key projects, deals or events, and once you figure out how to strain the ego out of its sometimes inebriating cocktail it can be an enjoyable (if addictive) thing to have.

Since I’ve always been on the bleeding edge of something (sometimes with bits of it poking out of my chest), I ended up doing great for a few years–until these crazy times.

Given the turmoil the tech industry is experiencing, I think the biggest challenge for anyone in it right now, from a personal perspective, is finding the right time, place and way to have the most impact in their work–and I don’t mean technically, or using AI, or piling on the hype train.

Motivation

This has always been a sore point for me, and is now a daily sticking point that comes to mind the instant I wake up. Every. Single. Day.

The notion of “purpose” or ikigai as I experienced it during my younger, brasher years was always around creation–I’d wake up in the morning raring to create and build things (code, products, anything), and the daily satisfaction from achieving that provided the impetus for the next day, and the next, eventually forming the backbone of many a long-term project.

But right now, the thing keeping me going is not so much enthusiasm but my insufferable stubbornness in plowing through obstacles to try to find interesting things to do. I wake every day not to follow a golden path, but to stubbornly plow it, and that’s a very different thing motivation-wise.

The daily yearning to create remains, but my current motivation falls more into the category of rallying against the despondency and pointlessness of “normal” work and creating enough clarity to get the unimportant parts out of the way so we can actually do something.

That means focusing on creating value rather than managing decline. Even if mistakes are made, you should take the fall, get up, and just move on.

And for that view I can thank one of my first managers in consulting, who once told me: “You’re one of our senior people, and that means you are expected to set yourself up as a one-man business: you have to build your own pipeline, recruit your own teams and manage your own stakeholders, inside and outside the company.”

And I’ve tried to live by that, plowing through.

? Oh, look, there’s a void to fill, because the function it fulfilled was not picked up by anything else. Someone needs my particular expertise? Great, let’s go and discuss how I can help.

Fending for myself (not for money, but for the sanity of seeking out and pitching for the things I want to do) is what’s kept me going this far.

That and people reaching out to me and saying “we need your help with this” or “we know you’re the right person to do X”–this has fortunately happened almost every week over the past few months, and I’m extraordinarily lucky to have that recognition and acknowledgment of my capabilities.

Landscape

The thing is, it’s never been this overwhelmingly bad: War, US politics, a technology industry gone mad around AI (and I am to that), European anachronisms and a local (Portuguese) economy that defies any rational explanation save gross mismanagement over the past 50 years.

The job market is the worst I’ve seen it (ever), and until yesterday (when I finally sorted out what I will be doing next year, or at least signed the initial paperwork) I was in a tripartite limbo of location, skills and age.

Sustaining an international career is incredibly hard, but having any sort of serious career progression and physically remaining in Portugal is almost impossible, and there are a number of factors at play in that. For starters, there is the usual economic rift between US roles that I am qualified to fill but cannot apply to (either due to location or unwritten policy) and European “technology” jobs (where companies hire the cheapest possible “IT” resources).

Two more factors have played their part in recent years: specialization (my particular set of skills, even the soft ones, isn’t valued in companies that don’t build technology) and ageism (the sad truth is that older, more experienced and independently minded people are seldom sought after in tech).

And yes, one of the reasons the technology industry has gone to shit over the past few years is that it assumes more, cheaper, less skilled staff can magically deliver quality solutions (I present the modern Internet and our current computing landscape as counter-evidence).

Then there’s the cultural rift, and that comes in two parts that I find myself revisiting every time I interview outside FAANG:

  • European companies (let alone Portuguese ones) don’t understand matrix management and the hands-on role of independent contributors (even Principal level ones) in running the business. Even when desperate for change, they look for new management, which means they self-perpetuate their own inability to get things done.
  • Recruiters (even the ones who tout themselves as doing “executive” recruiting) all follow the same lazy modus operandi of spamming inboxes and doing keyword matching1, and don’t care one whit if you have more authority and experience in running the business than a VP.

In short, every time I chat with non-FAANG recruiters it’s like initiating First Contact with a planet-bound alien civilization too self-absorbed in driving themselves to extinction. And it’s getting worse as more and more companies try to automate and cut down on recruiting costs, to the point where any discussion where people ask you for a CV first thing is pointless.

If I ever become an evil overlord, you can be dead certain I’m going to burn a pile of money on employing knowledgeable people that can work unsupervised, because it is going to save me millions down the line. And I’m going to bootstrap that by hiring people who know how to assess other people.

Remote and RTO

I’m good. Portuguese law recognizes my home as my place of employment, and although I do miss the social niceties of talking to people and having a proper lunch nearly every day, the notion that I would be more productive by wasting hours commuting to and from an office to sit in video calls surrounded by arguably nicer furniture is ludicrous.

I see the technology industry at large utterly failing to grasp this, and I think that short of an extinction-level event across vast swathes of incompetent upper and middle management (and the sort of HR policies that emphasize creating “company cultures” with mascots and itemized “principles”), things are going to get worse.

The reason for that is plain: management can be taught in schools, but leadership has to be earned, and there aren’t that many top-level industry executives who lead by serving their organization rather than their own interests (the exception for me is probably still Apple, which when I dealt with them a few years back was refreshingly full of non-ego-driven people, and I assume they haven’t changed).

Right now, though, going permanently back into an office is not something I see happening (legally or otherwise), and although I might welcome a hybrid arrangement, my main motivation would be for the sake of leaving the house–preferably walking to work and improving my health.

Alas, many companies don’t care about that, and I don’t care much for them either.

Personal Life

I’m borderline hopeful I will manage to realign my schedule to my own timezone in a way that lets me leave the house daily and exercise–which remains the one thing I haven’t fixed over the past two years (or more).

Worryingly, though, my home office has become a place I studiously avoid on weekends even at the expense of my hobbies, and I need to change that since I end up squirrelling time away doing random inconsequential things for the sheer fun of it–a human trait, I’m told, and a natural way to cope with frustration at work, but not one that sits well with a workaholic for whom, in the past, even hobbies had to be a learning experience.

And I know perfectly well why that is–I need a better mission, not a better job.

I think I’ve sorted out the latter yesterday, and it’s high time I get started on the former.


  1. I have a lot of keywords in my CV, and I’ve seen recruiters go over it and try to match all of them against a single job description. It’s like they’re playing buzzword bingo. ``` ↩︎

The Keychron K2 HE

I don’t think I’ve ever used so many different keyboards in a year. But I am happy that things have been improving so fast that I can actually feel the difference between them.

Keychron K2 HE
The Keychron K2 HE

The Keychron K2 HE is a very different beast from the I reviewed earlier this year, and I was lucky enough to try out its Special Edition version over the past few weeks.

Disclaimer: Keychron supplied me with a review unit free of charge, and as usual this post follows my .

Why

As a (somewhat retired) FPS gamer, I’ve tracked the recent controversies around magnetic/Hall effect keyboards and their tunable activation points (most notably that Valve banned them in CS2), so when Keychron offered me a review unit I was already primed to be interested.

But when I looked at the specs, I was even more intrigued by the fact that this keyboard has full-height keys–something that I have steered away from for years due to RSI issues.

I fully expected to try it out and then go back to the I’ve been using for the past few months, but the key feel on the K2 HE is so remarkably different that I’m actually torn at that prospect–even though I’m a stickler for desktop real estate and the K2 HE is definitely bigger and bulkier than a standard Apple Magic Keyboard:

comparison with an Apple keyboard
Keep in mind this does not show how thick each keyboard is...

But I’m getting ahead of myself, as always.

In The Box

The packaging is the usual Keychron fare–a sturdy cardboard box with a foam insert that keeps the keyboard safe during shipping, a nice quick start guide, and a small assortment of accessories.

You get the usual 2.4GHz wireless dongle (they keyboard supports up to 3 Bluetooth devices as well), spare key caps (to replace the Mac-specific ones with Windows fare), a nice braided USB-C cable (with a 90 degree Type C plug, since this keyboard has its USB port on the side), a key puller, and a small Philips screwdriver.

Design and Build Quality

The K2 HE has a very classic, straightforward design–it looks not so much like a keyboard but rather like a piece of furniture.

Back left view
An unusual angle, showing off both the external build and the subtle curve of the keycaps.

I chose the black version since I have a mix of cork and dark laminate desks, and I do not regret it in the least (plus I’ve found that black keyboards tend to look better over time). But the white would look absolutely smashing next to my , so… There’s that.

Besides the wooden accents, the keyboard has a very solid feel to it, and since the keys are capped off with nice black aluminum frames in the top and bottom, the USB port and control switches are on the side, which is a nice touch:

Back left view
A full-on side view showing the USB port and control switches.

As usual, you get to switch between Bluetooth and wired modes as well as Windows/Android or Mac/iOS modes, which translate into different key mappings and programmable layers (to a total of 4), including media controls.

This is also not a lightweight keyboard–you’ll be hard pressed to nudge it or slide it on your desk, and the best way to move it is to actually lift it, which adds to the feeling of solidity.

Ergonomics

A key difference between this and the other Keychron keyboards I’ve tested is that this is a full-height keyboard. This means two things:

  • That my hand and wrist position shifts considerably when using it
  • That key travel is (or, rather, should be) longer than what I’m used to for keys to register.

Well, I was wrong. I almost immediately started feeling the need for a wrist rest to avoid arching my hands (which is one of the main triggers for my RSI), but as I settled in I realized that the keycap layout and its gentle curve greatly helped in reaching the keys without having to strain my hands as much as I do on other keyboards.

Still, coming from the and its ergonomic layout, there was indeed a bit more strain posture-wise–I think Keychron should consider shipping some kind of wrist rest with the K2 HE, but I was able to adjust my typing position to a more comfortable one after a few days of use.

Layout

This is a 75% keyboard, and as such you get an entire row of function keys–which actually felt surplus after a year of more compact layouts.

That is, of course, conveniently mapped to Mac media controls and (surprise) a screenshot key right next to Del (which I found surprisingly useful).

You also get an extra column of movement keys (with PgUp/PgDn and the like, which I also didn’t have in previous keyboards), but I must confess going back to having a standard, US-style dedicated tilde key (instead of having to use Esc+Fn on more compact layouts) felt really good.

So even though I missed the ergonomic layout from the excellent , adjusting was fairly quick.

A nice improvement over the for me is the addition of an extra modifier key (Ctrl) near the cursor keys, which considerably helps doing quick switching between virtual desktops on the Mac.

I am considering remapping it as another Alt key (which helps a lot with cursor movement when writing), but not having anything near the cursor keys was a bit of a sore point with the .

Keycaps and Overall Feel

The main reason why I took to this keyboard so quickly is the key feel and responsiveness–and, as we will see, the switches.

Right from the start, I felt that these full-height keys were very responsive and that I did’t need to bottom them out for them to register–that was very nice and did away with a lot of which is very nice.

But before getting into the switches, a subtle difference I noticed almost immediately was that the keycaps, despite having a smaller area than on the , cupped my fingertips quite nicely. They felt smaller and my fingers slipped along the gaps for a day or two as I adjusted, but after the first two weeks I had zero trouble typing “blind”.

The keys do make a little bit of noise when bouncing back, so this isn’t as quiet a keyboard as the , but I very seldom had to bottom them out to get them to register, which is a huge improvement for me.

Switches and Response Times

The K2 HE comes with Gateron double-rail magnetic purple stem switches, which means it has linear switches able to detect variations in travel of at least 0.1mm–which is the main reason they feel so responsive, and also why I have zero need to bottom them out.

A key result of all this sensitivity is that switch resets are near instantaneous (which is a very sought-after feature in gaming keyboards for improved reaction times), and the keyboard’s ability to prioritize the last key pressed means that you can switch directions (and alternate strafe) much quicker than on regular keyboards–a somewhat controversial feature these days. Again, pure gaming keyboards from Razer and Wooting were banned from online matches, and I can understand why.

A short round of (which is still the fastest, twitchiest game I play) was enough to convince me that this keyboard is pretty for gaming, although I did not go as far as to try to tune the activation points.

The more interesting things for me, though, are that you can effectively use each key as an analog control, and assign up to 4 distinct actions per key based on key depth (which, in practice, requires a fair amount of self-control).

Software

Instead of VIA, you use Keychron Launcher to configure the keyboard. Like VIA, it is a web-based tool that allows you to remap keys, create macros, and adjust the RGB lighting, and you need to run a Chromium-based browser to access it.

What I did was to create an “app” using Edge (which is based on Chromium) and pin it to my dock, where after a few tussles with macOS’s security settings I was able to use it to review the key mappings:

The Keychron Launcher in action. Note that you can even set a different response curve for each key.

I am now (as with previous Keychron keyboards) experimenting with using the Windows layer as an exploratory setup for my Mac, since I was quite surprised to see that I could set up a layer as a “gaming” layer with analog controls and different key mappings.

I haven’t yet gone much into the weeds, though, other than fiddling with the different actuation points to change movement speed in games. But I have an idea about using the analog controls for 3D and video editing, so I will be experimenting with that in the coming months.

Backlight and Battery Life

The only disadvantage of the Special Edition is that its PBT keycaps are opaque, so the backlight feels a little redundant since it doesn’t shine through and help with locating keys in the dark.

But since I recently revamped my night-time bias lighting setup had no need to use the backlight at all–although Iyou can expect the usual assortment of RGB lighting effects.

Due to my not using the backlight, battery life is, as you’d expect, excellent–I’ve only charged the keyboard once in the past month, and I’ve been using it for full workdays. This is too little sampling to provide an accurate account of how long it will last, but, as usual with Keychron keyboards, using Fn + B will show you the battery level by lighting up the number row.

Conclusion

In short, the K2 HE is an excellent keyboard, and is turning me into somewhat of a mechanical keyboard fan. Having gone through this year has given me a different perspective on the quality of the things I pound my fingers all on day–I used to look for flat, low-profile keyboards that wouldn’t trigger my RSI, and now, surprisingly, I have a fully mechanical one that just… doesn’t.

As someone who usually preferred low-profile keyboards and has trouble with the repeated impact that comes with full-size switches bottoming out, I found the magnetic switches to be buttery smooth, quiet enough and extremely responsive without requiring me to bang down on the keys, allowing for a very light, quick touch.

I was expecting to go back to the ’s ergonomic layout without qualms, but the key feel on the K2 HE is so remarkably different that I’m actually torn (although I suspect the slightly smaller footprint of the and its volume knob will win out).

The gaming features… Well, I get them. I even enjoyed them. But the biggest upside for me is the typing response speed, and since I’m not obsessed with first-person shooters anymore (well, at least not that much) and have made the switch () to gamepad gaming, it will take a while for me to take full advantage of them–but other people are sure to love them.

As to the fit and finish, I think that the Special Edition look also has a bit to do with why I like this keyboard–the black/wooden look just looks great on my desk in a way the grey/metal ones don’t, and I would even say the thing borders on the luxurious.

It’s going to be hard even testing other keyboards after this one…

The Banana Pi M5 Pro

I’m down with the first flu of the season, so I thought I’d write up my notes on the Banana Pi M5 Pro and how it’s fared as part of my increasingly eclectic collection of single-board computers in the post- age.

Disclaimer: Banana Pi sent me a review unit (for which I thank them), and this article follows my . This piece was written after a month of (remotely) daily driving the board and is based on my own experiences with it.

Also known as the ArmSoM Sige5, this is a board along the lines of the I reviewed , and which I wanted to take a look at to get a better feeling for how its (theoretically) slower RK3576 chipset would perform.

This means there will be a lot of comparisons to the in this review, so if you’re interested in that board, you might want to read first.

Hardware

The Banana Pi M5 Pro
The Banana Pi M5 Pro - very, very familiar territory

Again, the general theme of the board is that it’s a little brother to the I reviewed earlier:

  • The CPU is a RK3576 with [email protected] and [email protected], and a 6 TOPS NPU, which is quite similar to the RK3588. The GPU, however, is a Mali G52, which is a little slower.
  • Like with the , you get an underside M.2 2280 PCIe NVMe slot, but it’s 1xPCIe 2.0 only (still speedy, but not as fast as the one on the )
  • The Ethernet ports are gigabit instead of 2.5Gb, although wireless connectivity is the same (802.11a/b/g/n/ac/ax WIFI6 and BT 5.0)
  • Most of the other connectors on the board (MIPI, CSI, DSI, GPIOs, etc.) are the same as the .
  • My board came with “only” 8GB of RAM (although you can get it up to 16GB) and a 64GB eMMC

I was sad that the 16GB model wasn’t available at the time, since that would have made for a better comparison to the .

But, as it is, at least connector-wise the board looks like a decent drop-in replacement for the for less demanding industrial applications.

Operating System Support

As you would expect, the board has great support–unlike the it’s not listed as “platinum” supported, but I had zero issues getting a fully up to date working image, and over the past month I have gotten regular updates from the rk35xx vendor branch, so as of this writing I’m running kernel 6.1.75:

   _             _    _                                         _ _
   /_\  _ _ _ __ | |__(_)__ _ _ _    __ ___ _ __  _ __ _  _ _ _ (_) |_ _  _
  / _ \| '_| '  \| '_ \ / _` | ' \  / _/ _ \ '  \| '  \ || | ' \| |  _| || |
 /_/ \_\_| |_|_|_|_.__/_\__,_|_||_|_\__\___/_|_|_|_|_|_\_,_|_||_|_|\__|\_, |
                                 |___|                                 |__/
 v24.11 rolling for ArmSoM Sige5 running Armbian Linux 6.1.75-vendor-rk35xx

 Packages:     Debian stable (bookworm)
 Support:      for advanced users (rolling release)
 IP addresses: (LAN) 192.168.1.111 192.168.1.168 (WAN) 161.230.X.X

 Performance:

 Load:         3%               Up time:       0 min
 Memory usage: 2% of 7.74G
 CPU temp:     43°C             Usage of /:    17% of 57G

 Tips:

 Support our work and become a sponsor https://github.com/sponsors/armbian

 Commands:

 System config  : sudo armbian-config
 System monitor : htop

Last login: Mon Sep 30 10:35:13 2024 from 192.168.1.160
me@black:~$ uname -a
Linux black 6.1.75-vendor-rk35xx #1 SMP Thu Aug  8 17:42:28 UTC 2024 aarch64 GNU/Linux

It was also trivial to set up my usual LXDE remote environment on it and working on it from my iPad, and I took the time to put myself through the paces of editing and building software on it, which was very smooth:

Remote Desktop to the Banana Pi M5 Pro
Yes, that's BasiliskII in the background, and word2vec. Color me eclectic.

Benchmarking

This time around I had to skip my NVMe testing since I had no spare SSDs–however, given that the NVMe slot is only PCIe 2.0, I would expect the IOPS figures to be only around a quarter of what the can do (i.e., 3000 IOPS), which would still be faster than a SATA SSD and thus more than enough for the vast majority of industrial use cases.

Also, I should point out that the stuff I ran had zero issues running off the EMMC, so I didn’t feel the need to push it to the limit.

Ollama

However, the ollama testing was more interesting than I expected.

for run in {1..10}; do echo "Why is the sky blue?" | ollama run tinyllama --verbose 2>&1 >/dev/null | grep "eval rate:"; done | \
awk '/^eval rate:/ {sum += $3; count++} END {if (count > 0) print "Average eval rate:", sum/count, "tokens/s"; else print "No eval rate found"}'

I was quite surprised when the M5 put out better results than the originally had (11.12 tok/s, which was better than the 10.3 I had gotten), so I plugged in the again, updated the kernel and ollama, and ran them again:

Machine Model Eval Tokens/s

Banana Pi M5 Pro

dolphin-phi 3.92
tinyllama 11.22

Banana Pi M7

dolphin-phi 5.73
tinyllama 15.37

…which goes to show you that all benchmarks should be taken with a grain of salt. There are several variants here:

  • Both systems are running a newer kernel than when I tested the
  • The is now in a matching case to the M5, so heat dissipation should be slightly improved (although that was not a big factor in earlier testing)
  • ollama has since been further optimized (even though it still doesn’t support the NPU on either system).

This seems like a good reason to try out sbc-bench when I get an NVMe drive to test with (it is, after all, a more static workload, and unlikely to be further optimized), but for now I’m happy with the results, and, again, I don’t really hold much stock in benchmark figures.

Update: I found the time to run sbc-bench on both boards, and here are the results:

Device / details Clockspeed Kernel Distro 7-zip multi 7-zip single AES memcpy memset kH/s
Banana Pi M5 Pro 2304/2208 MHz (throttled) 6.1 Armbian 24.11.0-trunk.190 bookworm 11870 1842 1310870 5740 16650 18.03
Banana Pi M7 2352/1800 MHz 6.1 Armbian 24.8.4 bookworm 16740 3170 1314240 12740 29750 -


As you can see, there is a significant difference in performance, but that’s both due to the differences in SOC bandwidth and compounded by the fact that the M5’s defaults seem to throttle it more aggressively.

Power and Cooling

In general, the M5 Pro’s power profile was pretty similar to the ’s but lower. The only thing I found odd was that the idle wattage (1.4W) was a little higher, but CPU governors might be the cause here.

In almost direct proportion with the compute performance, it peaked at 6.4W under heavy load (instead of the 10W I could get out of the ) and quickly went down to 5.7W when thermal throttling–so on average it will always spend less than the for generally similar (but slightly lower) performance, which makes its much lower pricing all the more interesting.

Since this time I got the aluminum case with the board (in a very discreet matte black), thermals were also directly comparable between both boards, but very predictable in this case:

Over several ollama runs, the reported CPU temperature peaked at 80oC, with the clock slowly throttling down from 1.8 to 1.6 and then 1.4GHz over 5 minutes (and bouncing right back up when the temp dipped below 79oC).

So I really liked the way this handled sustained load–the 400MHz drop isn’t nothing, but it’s quite acceptable.

Conclusion

First off, I need to spend a little more time with the M5 Pro to get a better feel for it–and yet the only thing that I really wish was that I’d gotten the 16GB RAM model, which would have made for a better comparison to the .

Considering all the above and the fact that during almost a month’s worth of testing (editing and building programs remotely on it) I had zero issues where it regards compatibility and responsiveness, I’d say the M5 Pro is a very nice, cost-effective alternative to the –like I mentioned above, you can probably use it as a drop-in replacement for most industrial applications, and unless you really need the additional networking and storage bandwidth, likely nobody will be the wiser.

I also need to take another look at the power envelope (I’m not really keen on almost 50% additional power draw on idle), but I suspect that’s fixable by tweaking CPU governors, so I’m not worried about it.

Notes on Bazzite, Steam Link, and Rebuilding my AI Sandbox

Gaming hasn’t exactly been one of my most intensive pastimes of late–it has its highs and lows, and typically tends to be more intensive in the cold seasons. But this year, with and my interest in preserving a time capsule of my high-performance Zelda setup, I decided to create a VM snapshot of it and (re)document the process.

Read More...

Notes for... September

I’m starting to from the , but am still not fully there yet. Work remains far too much of a rollercoaster (mostly because I care too much, to be honest), and I’m still trying to find my footing.

Read More...

The AURGA Viewer Wireless KVM

As much as I love virtualizing machines in my homelab and putting the hardware as far away from my desk as possible, the truth of the matter is that there always comes a time when you need “physical” access to the host to deal with boot issues, change BIOS configurations and other types of housekeeping–and regular remote access just won’t cut it in those times.

Read More...

Re-Surfacing

It’s been a harrowing .

Read More...

The Geniatech XPI-3566-Zero

Although most single-board computers these days ship in a “full” 3/4/5 “B” form-factor or larger, I have been on the lookout for Zero variants for a long time, and the Geniatech XPI-3566-Zero is the latest one I’ve tested.

Read More...

The iPhone 16 event

OK, fine. Since I upgraded , I was quite unfazed by Apple’s 2024 iteration on either the iPhone or the new watches (let alone AirPods), but there were a few things I liked–and some I didn’t.

Read More...

Notes for August 26-September 8

And so it came to pass that I took a break from writing (and most other things) for a couple of weeks, and now I’m back. Sort of.

Read More...

Archives3D Site Map