404 Gallbladder Not Found

Putting off health matters is never a good idea, and my gallbladder took an opportunity of painfully reminding me of that this past Thursday evening. Excruciatingly so.

The upshot of this was that I spent a few days in the (aptly numbered) room 404 of a nearby hospital recovering from an unscheduled laparoscopy–which, if you haven’t kept up with medical jargon for the past 125 years, is the quaint (and handily reversable) technique of temporarily inflating humans and turning them into bagpipes with the goal of sticking various pointy implements into them and patching up misbehaving bits in the abdominal cavity.

Somewhat like miniature drone warfare, but in squishier, more constrained environs and with a better soundtrack (the playlist they had on in the OR as they put me under was quite cheery and upbeat).

The Key Lesson

Now, I’ve had , and this was comparatively “fine” even if the hours leading up to it were excruciatingly painful. And serendipitously, I ended up staying in room 404 for extra geek cred:

My room number, for posterity
My room number, for posterity

The key lesson here for those of you following at home is that this was not unexpected–I had , did a few rounds of additional consultations, and was supposed to have planned this out and had it done as overnight/outpatient surgery over a year ago.

But , the resulting scramble for and the recurring rounds of layoffs led to my neglecting the situation until it was a tad out of control–and this is exactly what I shouldn’t have done. I wasn’t in any truly serious risk, but the operating word here was “truly”–it could have been worse.

The Usual Existential Questions

Do I blame work? Yes.

And the reason why will be familiar to most people working in large corporations–no matter how many internal e-mails you get saying that your health is important and you should take time to take care of yourself, the peer pressure to do other things is always there, and that kind of internal propaganda quickly starts to ring hollow.

The implicit pressure I mention is most apparent if, like me, you work across multiple time zones by default, and actually got a bit worse in my current role due to the need to occasionally coordinate with sales teams (which are by default chaotic and have no notion of planning or schedules) and customers (who are my prime priority during delivery but obviously work on their own time). My current manager is an amazing person and told me time and again to take it easy, but there was only so much he could do–I’m the one who should have done more.

Other things like stress, organizational instability, recurring layoffs and constant trampling of any calendar slots I tried to set apart for myself (from having a quiet meal to being able to go out and exercise) were a factor in my letting things slide, yes, but they’re just details–I mostly blame myself for not pushing back.

Doing things as simple as saying no (which is hard for me to do) or walking away from messy projects (which I avoid since it is kind of anathema for my reputation as a “fixer”) might have helped, yes, but in retrospect I am just not sure–it’s been a crazy couple of years.

What Have I Learned (If anything)

Although I know that I will be back to work the day doctors cut me loose, I cannot help but remark that spending a weekend in blissful solitude walking nearly a dozen kilometers1 around the (nice, modern, tidy but ) hospital to help my sutures settle (pro tip–walking and taking slow, deep breaths does wonders for relaxing your abdomen), catching up on books and movies, messaging with friends and finding overly creative ways to bypass the hospital Wi-Fi (which is OK but uses a stupid Fortinet firewall that blocks Tailscale) has been… fun, although a tad expensive and unusually concerned with blood and other fluids as far as hospitality is concerned.

What these few days did was cement the idea that I would instantly leave my current job if I had a financially viable alternative that allowed me to walk or cycle to work and truly take care of myself instead of, well, just being spammed with e-mail about it (even if I am lucky enough to be working with the best people I ever met at my current employer).

Not Much Will Change Though

Sadly, relocating to California, London or Zurich is not an option (and likely not an immediate improvement in quality of life regardless of considerations about income and personal challenges).

There are no job alternatives for me in Portugal either–like I was discussing with a dear friend of mine last week (who happens to have had several key roles as head hunter for C-level positions), there are zero equivalent roles out there right now, and Portuguese companies are stupefyingly stingy, backwards and ageist–in that they hire people based on their public presence and job titles rather than their intrinsic value, abilities and ability to deliver (in true banana republic style, you will often find former sales people or consulting lobbyists with questionable backgrounds leading pretty high-profile technology organizations over here, which should give you an idea).

So as an “architect”, I am invariably cast as a techie rather than someone who actually manages a sizable amount of digits’ worth of people, resources and budget, and I’m off most people’s radars.

I’ve sort of learnt to deal with it, but the backwardness of this country can be grating sometimes–we do have excellent surgeons, though.

Conclusion

And this, in a nutshell, is why there haven’t been any geeky updates this weekend. Apologies for the mild ranting, but having at least five holes poked in you does lend itself to coloring one’s mood.

As to the next few posts you’re likely to read, I have a few bits of hardware I’m looking at (and more on the way to review) and I was planning to publish a project last weekend, but for the moment I’ll focus on catching up, adjusting my diet and taking it easy this week.


  1. This according to my Apple Watch and my right heel, which now sports a blister that is actually slightly more painful than the largest scar (by the way, surgical glue has come a long way). ↩︎

Notes for June 2025

It was a strange month. This update is late since I have had , and that has also impacted a few projects, but there are a few things I want to note:

Vibe Coding

I have been doing a little experiment with my feed summarizer over the past , and I’m very sorry to say that the latest version was pretty much all written using .

and Claude have evolved a lot in terms of integration and my is still valid, but there have been quite a few annoyances along the way.

Here are some of the main issues I’ve noticed:

  • Over-Eagerness to process TODO items:
    Most models now tend to churn through TODO lists unprompted, often without validating whether the resulting code actually works as intended.

  • Zero Short-Term Memory:
    Even with SPEC, TODO, and the new .github/copilot-instructions.md grounding, coding agents still:

    • Ignore coding standards.
    • Fail to re-use or call previously written code.
    • Deviate from established code structures.
    • Write overly complex, verbose, and often redundant functions.
  • Untidiness:
    Claude, in particular, is prone to:

    • Producing emoji-laden checklists and proclaiming success before tasks are truly complete.
    • Littering the repository with ad hoc test_ files that are frequently re-written and rarely re-used.

And I think the key word here is “eager”. The chat interactions have become grating and annoying, so I now just say “Implement item #3 in the TODO.md and write appropriate tests”.

The upshots are that the current codebase has a lot more logging than I would have ever bothered with and an (arguably) better database schema, but I am not overly impressed. Overall, using AI saved me just a little more time than the time I spent working the problem and explaining to it the issues it created, and it can be more mentally burdensome to type out the stuff I want fixed (because I have to write an all-inclusive prompt to avoid deviations) than to fix it myself.

As to the changes I’ve noticed over time, I suspect this is mostly due to tweaks in the scaffolding (updating the system prompts inside the editor, etc.) and nothing I can really ascribe to any model improvements.

I don’t really like the code, but it is stuff I didn’t really want to write myself. Time will tell how correctly it works, but I am a bit worried about overall quality–not just of my stuff, but of the generation of software that is being written today.

Media and Entertainment

We finally finished watching the second season of Andor, which is, together with Rogue One, undoubtedly the best Star Wars I’ve ever seen. In comparison, all the other Star Wars spinoffs feel like kitschy messes and self-serving director playgrounds that might as well be binned, but I don’t suppose Disney will really get this–we were just lucky.

On a lower note, for the first time in a couple of years I am behind on my regularly scheduled reading to the point where I really need to step things up a tad. In my defense, I wasn’t expecting the Blue Ant Series (which I had actually never read in order) to be this long-winded.

The ESI Xsynth

It’s been a long while since I last wrote about a piece of music gear (and there are quite a few I got in the intervening years that I have been meaning to write about), but I recently got my hands on the ESI Xsynth and despite only having spent a few weeks with it, I thought I’d write a quick review.

The ESI Xsynth
The ESI Xsynth

Disclaimer: ESI sent me a review sample of the Xsynth free of charge (for which I thank them), and as usual this article follows .

Hardware

The product page has a list of detailed specifications, but there are five things worth highlighting and that I found particularly interesting:

  • Two octave (25 key) keyboard with polyphonic aftertouch
  • 3-oscillator polyphonic (10-voice) synth that has a modulation matrix and several effects that can be applied to both the synth engine and aux input
  • A built-in audio interface that can record the synth engine and aux in directly to a Mac (or iPad) via USB-C
  • MIDI in and out ports interfaces with 3.5mm TRS jacks (so it can also act as a MIDI interface for other devices)
  • Built-in arpeggiator, glide, and hold functions, as well as minimalist pressure-sensitive modulation and pitchbend controls

All of it in a surprisingly compact and portable package that only needs a USB-C connection to work. No battery, but the power draw is low enough that you can use it directly with an iPad without needing anything but a cable.

The device feels solidly built, with a mix of stylized metal and plastic that looks and feels nice–at 387mm x 148mm x 27mm with slightly over half a kilo (634g) in weight, it certainly feels solid enough to take on the road, and given that the encoders are fairly compact and don’t protrude much, I would have no qualms about tossing it into a backpack or laptop bag.

Keyboard

The keyboard was a bit of a surprise for me, since for some reason I was expecting mini keys–instead, what you get is a two-octave set that matches the general dimensions of a normal keyboard (which is great if you have trouble switching between mini keys and regular keyboards), although the mechanism and feel is rather different.

I especially like that unlike my , both the black and white keys are long enough to interleave and allow you to place your fingers in exactly the same way you’d do it on a regular keybed.

A key aspect is that pressing on the keys anywhere results in a nearly uniform response (velocity and aftertouch-wise). You can tap a key at any corner and it will go down uniformly, which is quite a unique feel, and the evenness of that response makes the the Xsynth feel a lot more usable (and expressive) than the NanoKey Studio or an Akai MPK Mini.

On that topic, the polyphonic aftertouch is a bit of a mixed bag depending on whether you’re used to a piano keyboard or a synth keyboard, since given the keyboard has a very short travel distance, the aftertouch response varies a lot depending on how much pressure you’re used to applying.

Despite having a I spend a lot of time on synth keys, so even though I had no trouble with the default velocity curve, aftertouch required some tweaking to work for me to use it effectively–so I recommend using the companion desktop app to tweak things to your liking.

Also, there are no modulation or pitch wheels, just two buttons that are rather short and somewhat unresponsive for my liking. They do work, but I found them somewhat fiddly to use (and, more annoyingly, easy to hit by mistake since, again, I found the orange backlights hard to read).

I spent a while trying out the Xsynth on its own and quickly figured out that I had to use the modulation matrix to send aftertouch values to an oscillator or filter (which not all the built-in presets do), so expect some finagling before you get a result you’re comfortable with.

Both velocity and aftertouch work via MIDI, even though (at least in my case) I have more software with MPE support than “just” aftertouch. In any case, Logic Pro’s Alchemy synth had no trouble with Xsynth input, although, again, a consistent feel was a bit elusive given the limited key travel.

But I can’t think of anything equivalent in this size that has polyphonic aftertouch and all the other features, so I am not complaining too much.

Screen and UI

One of the first things that you’ll notice when you turn on the Xsynth is the built-in OLED screen, which is used to show the current patch, parameters, and other information. It is a fairly small screen, but it is bright and clear enough to be readable in most lighting conditions–much more so, ironically, than the orange backlit buttons, which are a bit dimmer than I would have liked and can be hard to read even in completely dark conditions.

The default setting is to render the current waveform, which for me isn’t overly useful–so I disabled that as soon as I could to be able to always see patch names and parameters:

The screen while editing a patch
The screen while editing a patch

In general, the UI is really straightforward–each of the four left encoders corresponds to a parameter, and you can switch between pages of parameters by hitting the left and right buttons. The far right encoder is used to navigate through patches, and the enter button is used to confirm changes, except in a particular case that gave me a bit of trouble:

You can hit the “Global” to init a patch, and it is far too easy to hit Enter by mistake and completely wipe out the current patch, simply because the “Cancel” button is immediately on top of the “Enter” button and (again) the buttons are a bit dimmer than I would have liked:

My nemesis - the init patch dialog
My nemesis - the init patch dialog

So I ended up wiping out a few factory patches before I got used to this quirk. Strangely enough, saving edits to a patch required me to hit the “Enter” button in some circumstances, which is a bit counterintuitive (I kept hitting it once and then wondering why it didn’t save).

I would have preferred a “hold down X for 2 seconds to confirm” type of confirmation for both resetting or saving patches, or at least a “hold down X + Y to confirm” approach for more destructive actions.

But going back to the Global menu, that’s where you can set up MIDI channels and other parameters, including having local audio on or off, which is useful if you want to use the Xsynth as a MIDI controller only:

Global menu interface showing MIDI and audio settings
Global menu interface showing MIDI and audio settings

Synth Engine and Patches

You get four banks (A-D) of 128 patches, the first two of which have factory presets of various types (bass, lead, pad, etc.). I typically skip over effects and bass patches (it’s just a personal preference), but a few of the leads and pads were quite nice, and I ended up using those as starting points for my own parameter tweaking.

A nice touch is that you can browse through patches using a category mode, which lets you quickly skim through all pads or leads, etc. This is a lot more useful than the usual “scroll through all patches” approach, and it makes it easier to find something that fits your needs.

But there is a surprising amount of flexibility in the synth engine itself:

Block diagram showing the internal signal flow of the Xsynth
Block diagram showing the internal signal flow of the Xsynth

If you look at the block diagram above, you’ll see that the Xsynth does a few interesting things:

  • The three oscillators are set up in a Y cascade (with the first one cascading into the second and third), but with feedback from the third oscillator to the first one, and with a separate ring modulator.
  • The envelopes and modulation matrix extend from the oscillators through to the filter and amplifier, which I’ve only seen in the Arturia Minifreak (which I’ve never actually written about here either, but which I also have and use).
  • The aux input actually goes through the mixer, filter, amplifier and effects chain, so you can use the Xsynth as a simple effects unit for external audio sources, which is a nice touch especially considering that it has a built-in audio interface.

This doesn’t mean that it’s easy to create patches (as with any modern synth, you need to spend a fair amount of time learning the implications of some controls), but it does mean that you can do a lot more with the Xsynth than you might expect.

For me at least, it was much more productive to use the desktop editor to create and edit patches, since it has a much larger screen and a more intuitive interface for editing parameters:

The Xsynth desktop editor

The editor is available for both macOS and Windows, and as a bonus it can also be used to do firmware upgrades and restore factory settings.

Effects

In a nice departure from the usual “effects are a separate box” approach, the Xsynth supports a small set of built-in effects that (as you can glean from the diagram above) can also be applied to incoming audio, and fall into roughly four categories (which are mapped to the four right encoders):

  • Distortion (several kinds), Compressor, Auto-Wah, Lo-Fi
  • Reverb (Room, Stage, Plate, Spring)
  • Chorus and Delay
  • EQ (various types, with selectable frequencies)

The reverb is serviceable and the delay works well enough, and I spent a little while trying to get the Auto-Wah (of all things) to work with the aftertouch. So yes, you can have some fun with the effects, but they are not the main selling point of the Xsynth.

Like I mentioned above, the aux input can also be used to process external audio, and they worked fine with , which I hooked up to the Xsynth via both MIDI and audio.

Portability and iOS Compatibility

Despite being bigger than I initially expected, the Xsynth feels rugged enough to just drop into a backpack and laptop bag without a lot of concerns, and like I mentioned above, I was able to use it with my iPad Pro 11” with a single USB-C cable and use AUM with it:

Using the Xsynth with AUM on iOS

I also had no issues using it with GarageBand, and went for AUM mostly because I completely suck at looping and having a keyboard that I can use as an audio interface was a great way to hook up a few of my standalone synths and use them as audio sources for practicing that.

The Xsynth as a Master Keyboard

I also had no trouble using the Xsynth as a master keyboard for my Mac and with on a Linux laptop1 and it worked well enough with both Logic Pro and .

If you want to use the Xsynth as a master keyboard, you can do so by connecting it via USB to your computer and using Midi CC to control your DAW or other software.

What I found most useful is the ability to have multiple pages of CC assignments for the encoders, which you can switch between by hitting the left and right buttons.

In my case, I set it up to control Arturia’s Analog Lab on my Mac (which really demands eight controls, but it’s workable).

Conclusion

I’ve barely scratched the surface of what the Xsynth can do in a couple of weekends, but one of the reasons I wanted to write this review is to share my initial impressions before Summer vacation starts and I have a bit more time to play with it.

The size and comparative ruggedness makes it quite suitable to use on the go, and I can see myself taking it along with me on Summer break instead of the , which can’t do much more than act as a MIDI controller and has no built-in synth engine.

It does have a few quirks, but like Floyd Steinberg, who did a video on it recently, I would rate it an 8/10 (or 4/5 stars, if you prefer that rating system) for its price point and features, especially considering the built-in audio interface and range of effects.

For me, other than the software quirks, the only physical changes I’d make would be switching the orange backlights to white and adding more conventional modulation and pitch controls (perhaps control strips).

Given that I prefer to travel with an iPad, I would love a mini-keys version of the Xsynth that I could pack in roughly the same space as the iPad Pro 11”–I will probably update this review after I have done a couple of trips with it and can figure out whether the full-sized keys make up for their size.

But I am quite happy with the Xsynth overall and look forward to diving deeper into its capabilities in the coming months.


  1. I forgot to mention that the Xsynth ships with a few goodies including Cubasis LE and a 8-track license, which is a nice touch. ↩︎

Checking In

It’s been a crazy few weeks, and in keeping with the geopolitical situation, it doesn’t seem like it’s going to get any better soon, so keeping positive things in mind is a bit of a challenge.

Read More...

Six Months with the Supernote Nomad

It’s been (and around six months since I started using it), so I thought some kind of update would be in order and gathered my notes into a sort of mid-term review.

Read More...

WWDC 25 Keynote Thoughts

If you discount the completely over the top book-ending (the F1 cameo featuring Craig’s hair and the weird app review medley at the end), there were a few actual surprises in the keynote.

Read More...

The Sky's the Limit

I’ve been sitting on this draft for a few days now, partly because I thought it would turn down the bitterness, and partly because I kept asking myself whether I should even write it. But I think it is worth getting out of my system, so here goes.

Read More...

Notes for May 2025

This was a busy month, but there were a few things worth noting in between the usual work and family stuff, so here goes.

Read More...

Early Summer Musings

It’s early Summer, and the slanted sunlight from beneath the drawn blinds reminds me it’s a balmy 30oC outside in a way the orange arc that frames the temperature complication on my Apple Watch can’t, spraying warmth into the living room, so I retire to the rear balcony and spent an hour reading Pattern Recognition in a slightly faded lounger, the tarp taut with my weight.

Read More...

The Chuwi MiniBook X N150

The netbook era has come and gone, but I am one of the many people who miss small form factor laptops (12” or smaller), and I’ve found it somewhat frustrating that they’ve been nowhere to be found in mainstream offerings.

Read More...

The Vibes

The profusion of hype on the Internet has led me to take a lot of things with a grain of salt, and if you’re a regular reader, you’ll know that generative AI has already added more than a few teaspoons into the broth of -driven coding.

Read More...

The Orange Pi RV2 RISC-V SBC

Although I’ve spent many years looking at SBCs, so far nearly all of them have been ARM-based, and this is the first time I’ve had a proper look at a RISC-V system.

Read More...

Notes For Recent Weeks

This was a bit of an eventful week–at work and otherwise. I seem to be energized by constant context switching, so a peak of project work actually resulted in me needing to “relax” more thoroughly and do a lot more hobby stuff than usual at the expense of sleep (I’ve slept an average of 6h/night over the past month…)

Read More...

Archives3D Site Map