Librechat is much more stable than Openwebui. I tried using Openwebui precisely because I don't want inference to stop when I change the app on my iPhone, and it totally failed me in that regard.
Allegro takes the side of the seller when pointing the customer to the carrier's complaint form in cases where the packaging is damaged (a judgement expected to be made by the customer). The responsibility for the shipping lies on the seller's side as long as the selller had influence over the carrier choice (AFAIK alwyas the case in Allegro). See UOKIK's commentary here.
Radical is better than Baikal for self hosting personal calendar for CalDav use.
By default, Librechat uses Sonnet 4.5 to generate chat titles. It's unhinged.
I really like the natural scrollback I get in the terminal when using Pi coding agent. It's frustrating when I run Copilot or Claude Code through iSH and tmux on my iPhone and I can't read responses spanning more than a single smartphone screen.
I recently had a dispute with a business selling products on Allegro. They refused to refund full price after I sent back the product. They claimed that my unpacking of the product to test it made it lose almost all its value because it would be difficult to resell.
The customer ombudsman sided with me. So did the Allegro Buyer Protection programme, subsequently refunding me money. I'm still not fully satisfied - Allegro told the seller they were not expected to reimburse the money themselves.
Librechat requires scraper and reranker configured in addition to SearXNG before the "web" tool is presented to the LLM. I understand the reasoning behind it but I think it should be the administrator's choice if they want to only use SearXNG.
I went around this limitation by exposing SearXNG via MCP. One problem I'm having is that the context window fills very quickly when an agentic model like GLM-5 uses the search and URL read tools. I'm not sure if this problem happens with the "official" web tool in Librechat.
Grok 4.1 Fast seems too good at following my custom system prompts. Its abbreviation skills are impressive.
I finally understood why a Victorinox kitchen knife feels better than an OLFA blade when unpacking boxes. It's because of the rigidity of the blade. It means better control.
I understood it after testing three different baby spoons. It's easier to scrape the leftover soup off the baby's chin with a long rigid spoon than with a short spoon that bends.
The main selling point of the iPhone 16 Pro Max for me was the Action Button. I was happy I would be able to turn on flashlight with a single button.
Alas, this does not work with my settings. I suspsect the disabled "raise to wake" feature. The button does not wake up the smartphone and it simply doesn't work until I click the power button first.
Once again I am reminded that this is not my smartphone. Cupertino will decide when the screen is on and when it's not.
The reason why I trust a doctor to operate on me is not that I know him personally or did a deep analysis of his past performance. It's the system around him that makes sure he will be personally responsible for any issues caused by the surgery.
An architect can charge a hefty premium if they commit to supervising the actual construction work and not just designing a building. The value the customer gets is a single point of contact in case of any issues, a single contract, a single entity responsible for the quality of the work.
Perhaps what most people sell is not as much the service they perform as the liability transfer. This might be the reason why AI will struggle to replace humans. Big Tech will never take responsibility for the actions of an LLM (see the hilarious clauses in Claude Code or Github Copilot ToS).
The optimistic vision is that this means the LLMs will usher in a future where rent seeking and responsibility avoidance are much more difficult than they are today. I'm looking forward to increased accountability in our society.
Desperation displays are fatal in courtship. The other side treats them as a heuristic for your self-perceived "dating market" value. Unbalanced relationships are often toxic and to be avoided.
Once again, the middle way wins. Communicate affection and warmth without seeming too eager to "close the deal".
Desperation displays are fatal in courtship. The other side treats them as a heuristic for your self-perceived "dating market" value. Unbalanced relationships are often toxic and to be avoided.
Once again, the middle way wins. Communicate affection and warmth without seeming too eager to "close the deal".
Compressing images
As this site is now hosted on Github Pages, there is a limit of 1 GB of total storage size. Realistically it would take a looong time for me to reach that limit, but it's good practice to compress your stuff properly anyway. Fetching an 800kb image as part of the site load is annoying.
Cache FTW
Recently I was migrating my posts off a site hosted on Azure. I had barely started and the old site started suddenly returning 403s. It turned out the temorary subscription I had been using was disabled. For various reasons it would be a huge hassle to re-enable it right now. And, obviously, I had no proper backup of the site. I guess I had figured "if it's in the cloud, it probably won't get lost". Sure enough, you can't export App engine's data from Azure after its subscription has expired. I searched through my external hard drive and my other laptop and didn't find a backup of the site.
Why, Microsoft?
I've been on a vacation. Not anymore. I came to the office, greeted my co-workers, turned on my laptop. There seemed to be an update, but I'm already used to seeing those at random moments. What I'm not used to seeing, however, is software I have never installed popping up in the foreground.
The AKG K512 MKII
Around six years ago, I had a pair of AKG headphones - the K512 MKII. The audio quality was sufficiently good, but my ears aren't picky - to me, much more important pros of those headphones were the weight and breathability. After the AKGs wore off, I got a pair of Sennheiser HD 518s and used it as my main desktop headset for several years.
HPSTR: Grav theme customization
I wanted to customize the theme my old website was using. I needed to have my own fork and I didn't want to modify the compiled SASS styles directly. In the original repo, though, there were no instructions on how the styles have been compiled in the first place.
Shoving JavaScript down my throat
How come Facebook functions perfectly well with no JS? I can read and send messages, even ones with images, I can browse posts, groups, heck, I can even play videos if I can be arsed to disable NoScript for each of them individually. All this buttery smooth, no slow, incremental loading of pages, no single-page-application navigation bullshit. What about some other sites? Maybe I've been a slave to JS with no reason for all those years?
Skype for Business
The Android version of Skype for Business won't log me in unless:
- I give it access to my smartphone's camera
- I give it access to my smartphone's microphone
- I give it access to my smartphone's storage
- I give it access to my contacts
- I give it access to manage phone calls on my smartphone
- I provide my phone number
If I provide a fake phone number and try to revoke all the permissions after logging in, it automatically logs me out.
Where did we go wrong?
Networking layer 2 on Cisco devices
In this article I focus on the first layer of the TCP/IP network model, specifically the Ethernet standard. I will build a small simulated network and explore the frame flow through networking and end devices along with the protocols making the communication in the Network Access Layer possible. You can read a quick summary of the TCP/IP network model here and get an overview of the more extensive OSI model here. The software you can use to recreate the examples presented here by yourself is Cisco Packet Tracer. It is available for free for the Cisco Networking Academy members (the registration is a free process as well).
About
I build things on the web—sites, applications, systems. I think deeply about how design and code can work together to create clarity and delight. This is where I write about those obsessions.