This morning, someone on Twitter pointed me to PEP 5621, which introduces __getattr__ and __dir__ at the module level. While __dir__ helps control which attributes are printed when calling dir(module), __getattr__ is the more interesting addition. The __getattr__ method in a module works similarly to how it does in a Python class. For example:...
As long as I'm getting things on the record (while I still can without too much fear of reprisal) I want to endorse As long as I'm getting things on the record (while I still can without too much fear of reprisal) I want to endorse a video by Legal Eaglea video by Legal Eagle that lays out the case against voting for Donald Trump in 18 minutes of some of the best video commentary I've ever seen. It's well worth watching, and encouraging others to watch, but just in case you don't want to invest the time and would rather read, I'm posting a (very... that lays out the case against voting for Donald Trump in 18 minutes of some of the best video commentary I've ever seen. It's well worth watching, and encouraging others to watch, but just in case you don't want to invest the time and would rather read, I'm posting a (very...
Programming language design should follow the half of Postel’s Principle that says be “conservative in what you send.” There should be one way to do anything, not many. That way I can include your code in mine and vice versa. I can understand what you’re doing. Tools can be developed that make it even easier […]
The Toronto Public Library (and many other libraries) offers e-book access through Overdrive, which I can read through the Libby app on my phone. It turns out that I can select passages to highlight. It also turns out that I can use the Reading Journey view to export the highlights as JSON, even for books I've returned. This is what the JSON...
Go 1.23 shipped with a new major feature: ranging over functions (also known as "iterators"), per this proposal. This feature is nicely covered in the official Go blog post from August. This article is a rewrite of my older post that described this feature when it was still in …
Something many people don’t realize is that I didn’t write the original coverage.py. It was written by Gareth Rees in 2001. I’ve been extending and maintaining it since 2004. This ancient history came up this week, so I grabbed the 2001 version from archive.org to keep it here for posterity.I already had a copy of Gareth’s original page about...
Every once in a while, I’ll have a post gain traction over on ye ole’ orange site (Hacker News). I find out about it because my analytics digest will get a yuge uptick in page views. What’s interesting is all the referral sources that show up in my analytics. The Hacker News is always at the top, but then after it comes a bunch of clones or...
Claude Token Counter Anthropic released a token counting API for Claude a few days ago. I built this tool for running prompts, images and PDFs against that API to count the tokens in them. The API is free (albeit rate limited), but you'll still need to provide your own API key in order to use it. Here's the source code. I built this using two...
What does Call of Duty's massive success (and horrendous user interface) mean about the importance of design?
Textcasting is getting some love from Hackers News. No comments, but lots of pagereads. Was expecting them to excoriate me. May still happen.
Please publish and share more 💯 to all of this by Jeff Triplett: Friends, I encourage you to publish more, indirectly meaning you should write more and then share it. [...] You don’t have to change the world with every post. You might publish a quick thought or two that helps encourage someone else to try something new, listen to a new song, or...
Aliens, robots, non-organic life forms, space ships and neon skies are the backdrop to a mystery about reality, family, time, love and the memories that define us. What would you do if you woke up with no memory of your...
SmolLM2 New from Loubna Ben Allal and her research team at Hugging Face: SmolLM2 is a family of compact language models available in three size: 135M, 360M, and 1.7B parameters. They are capable of solving a wide range of tasks while being lightweight enough to run on-device. [...] It was trained on 11 trillion tokens using a diverse dataset...
There’s lot of things I don’t know about, even as I’ve aspired to broaden the reach of my awareness. I’ve mentioned before how social media (specifically, at the time, Twitter) almost was single-handedly responsible for exposing me to lived experiences not my own, often by expanding the range of authors and books I choose to read fiction and...
swift-format is only one of several options for Swift language formatting tools, but as it is part of the official Swift GitHub organization and is built by Apple, it stands a good chance of coming out as the primary one. As of Xcode 16, swift-format is bundled with Apple’s IDE for Swift...
The theme for this month’s IndieWeb Carnival is impact. In the announcement, Xandra, who is hosting the event this month, noted “has someone made a profound impact on you?” as a potential question to explore. While saying to a friend “I’m not sure where to start with such a big topic,” followed by a smiling face emoji to take the tension away...
Code is tree structured, but manipulated as a sequence of characters. Most language tools1 need to convert these sequence of characters to the tree form as the first thing to be able to do anything. When the program is being edited, the tree structure is often broken, and often to the point where the tool cannot operate. For example: An opening...
In the rapidly evolving world of technology, we often celebrate every new tool, library, or framework as a breakthrough. Headlines scream about the “next big thing” in coding, and developers rush to adopt the latest trend, eager to stay ahead of the curve. But amidst this frenzied pace, an unsettling pattern has emerged: the cycle of...
Hello! Lots of writing in October (what early parenthood takes away in terms of deep flow, it gives back in terms of twenty-minute pockets of time and thought): On the content front, I wrote about Monster Sanctuary (a delightful JRPG), The Anderson Tapes (a solid late-period Sean Connery heist), Trust (a rare postmodern novel that I disliked),...
Hello! Lots of writing in October (what early parenthood takes away in terms of deep flow, it gives back in terms of twenty-minute pockets of time and thought): On the content front, I wrote about Monster Sanctuary (a delightful JRPG), The Anderson Tapes (a solid late-period Sean Connery heist), Trust (a rare postmodern novel that I disliked),...
Before you optimize your code, you should run a profiler to understand how your code performs. In Python, you can use cProfile to profile your code. cProfile is part of the Python standard library. With cProfile, you can find out: How long functions take to run in your code, both per call and cumulatively; How many times functions are called;...
In Plasma 6.2, KWin switched from doing linear blending with HDR to blending in a gamma 2.2 space. Let’s take a look at what that means, and why it was done.
Well, this came completely out of left field. As someone who relies on Pixelmator daily since they shipped 1.0, I am happy for them, but sincerely quite afraid Apple will botch this–their track record with acquisitions is dismal (just look at how they gimped Shortcuts even as they folded it into the OS, how Dark Sky essentially vanished, and what...
Well, this came completely out of left field. As someone who relies on Pixelmator daily since they shipped 1.0, I am happy for them, but sincerely quite afraid Apple will botch this–their track record with acquisitions is dismal (just look at how they gimped Shortcuts even as they folded it into the OS, how Dark Sky essentially vanished, and...
Pixelmator Team: A new home for PixelmatorToday we have some important news to share: the Pixelmator Team plans to join Apple.This is huge for this company, and it’s well-deserved. Pixelmator has long-been a prime example of what a great Apple developer looks like, and I’
Since I’m changing jobs without even taking a proper break, I haven’t been able to take part in the blow by blow as Apple “phoned in” the Mac updates this week, but I still have feelings about them. I must confess I have zero enthusiasm for the iMac update. I did chuckle at Nilay Patel’s take on Apple’s latest work of art in the unlabelled charts...
From Naptime to Big Sleep: Using Large Language Models To Catch Vulnerabilities In Real-World Code Google's Project Zero security team used a system based around Gemini 1.5 Pro to find a previously unreported security vulnerability in SQLite (a stack buffer underflow), in time for it to be fixed prior to making it into a release. A key insight...
In the early days of computing hardware (and actually before) mathematicians put a lot of effort into understanding and mitigating the limitations of floating point arithmetic. They would analyze mundane tasks such as adding a list of numbers and think carefully about the best way to carry out such tasks as accurately as possible. Now […] The...
As of today, I am back at Microsoft Consulting–or, as it’s known these days, Industry Solutions Delivery, in the role of a Principal Program Architect. And even with today being a local bank holiday, I already had two calls and have a deadline for Monday. The first time it happened I completely re-vamped my office, the pace of things changed...
Claude API: PDF support (beta) Claude 3.5 Sonnet now accepts PDFs as attachments: The new Claude 3.5 Sonnet (claude-3-5-sonnet-20241022) model now supports PDF input and understands both text and visual content within documents. I just released llm-claude-3 0.7 with support for the new attachment type, so now you can do this: llm install...
It’s been a couple of weeks since I last wrote about WordPress. Stuff’s been happening in the background, but I’ve been trying to ignore it. This morning I read a story that bothered me enough to require another round of therapy-by-blog-post.
The ScreenCastsONLINE giveaway has ended, and I have a winner to announce! The winners! Congratulations to: Christian Arendt You should have received an email with details, please let me know if you didn’t hear anything! But I didn’t win! If you didn’t win, sorry, but ScreenCastsONLINE is still worth checking out. You’ve got a lot to learn, and...
short horror story in the form of a series of 1999-era screenshots about a Windows screensaver simulating life on an island #
Papers Please/Obra Dinn creator Lucas Pope dropped a surprise spooky free web game inspired by 1980s LED handhelds #
for the last 19 years, Michael Pusateri has tracked children's Halloween costumes at his front door and published the stats online #
a dozen surprise new games released to everyone at the same time on a regular schedule #
look in the direction you want to move, open and close your mouth to go faster #
Louie Zong, Worthikids, and Brian David Gilbert formed a supergroup making Steely Dan-inspired music and are playing L.A. next month!? #
Lord Clement-Jones: To ask His Majesty's Government what assessment they have made of the cybersecurity risks posed by prompt injection attacks to the processing by generative artificial intelligence of material provided from outside government, and whether any such attacks have been detected thus far. Lord Vallance of Balham: Security is central...
Control your smart home devices with the Gemini mobile app on Android Google are adding smart home integration to their Gemini chatbot - so far on Android only. Have they considered the risk of prompt injection? It looks like they have, at least a bit: Important: Home controls are for convenience only, not safety- or security-critical purposes....
I added linkding searching to SearchLink this morning. It works the same as Pinboard searching, just with !ld (or !ding) as the search shortcut. See the bottom of the Pinboard search page for configuration setup. No big deal, just updating to work with the tools I’m using. Get the latest version of SearchLink on the project page. Like or share...
John O'Nolan: Democratising PublishingHaving seen how things worked on the inside for several years, the conclusion I personally came to was that WordPress and Automattic were not truly about democratising publishing, after all.At the same time, I felt the product was becoming slow and bloated. WordPress
Question: Why do you have the politics you have today?
I just learned 42 programming languages this month to build a new syntax highlighter for llamafile. I feel like I'm up to my eyeballs in programming languages right now. Now that it's halloween, I thought I'd share some of the spookiest most surprising syntax I've seen.
In a previous blog post, I talked about how we can use TLA+ to specify the serializability isolation level. In this post, we’ll see how we can use TLA+ to describe multi-version concurrency control (MVCC), which is a strategy for implementing transaction isolation. Postgres and MySQL both use MVCC to implement their repeatable read isolation …...
In 2011, I was finishing 9th grade. As a gift, I got to choose a laptop in the 400 EUR range. I ended up picking an ASUS Eee PC 1201PN. It was new and the first computer in my life that was 100% mine, but awfully slow for a lot of tasks. It was so slow that I ended up giving Linux a go as a result. Linux! I didn’t even know computing all that...
This month, the Simons Foundation’s SPARK had autism researcher J. Kiely Law, M.D., MPH answer questions about autism research, and it should come as no surprise that I have something to say about it, especially since the very first question is about the phrase “evidence-based”. Q: The terms “evidence-based medicine and treatment” or...
When thinking about how to kick off NaBloPoMo 2024 this past weekend, instead of picking one of several drafts or mostly written articles I naturally decided that we should instead start with something fresh!
Kevin Twohy has a list of heuristics for new projects/clients, and my favorite is simple: No Bozos. Simple policy. No exceptions. You know it when you see it. Every founder has a story about the time that they ignored the red flags and bent over backwards for a particularly standoffish or problematic customer/prospect/client/hire. It's easy to...
Kevin Twohy has a list of heuristics for new projects/clients, and my favorite is simple: No Bozos. Simple policy. No exceptions. You know it when you see it. Every founder has a story about the time that they ignored the red flags and bent over backwards for a particularly standoffish or problematic customer/prospect/client/hire. It's easy to...
I have noticed a pattern across my work in search and on static site generators: in both cases, the key to offering good performance for users is to precompute as much information as you can. Text search engines rely on “reverse indices,” which map words to the documents they are in. Reverse indices are structured in such a way that allows...
Managing a high-traffic website effectively requires a robust and well-optimized backend to handle the surge of concurrent requests, minimize server load, and ensure a seamless user experience. PHP and MySQL, being a popular tech stack, offer various strategies and best practices to optimize performance. This guide explores key caching...
Before I start: I’m writing this both to clear my head and to vent / rant a little, but also in response to people both from the Netherlands and from abroad who have shown interest in working as an independent contractor over here.
Search engines help us find information. Over the years, web search engines such as Google have experimented extensively with how that value proposition translates into a user experience. At first, search engines helped you find web pages that addressed queries. Google famously showed “10 blue links.” Then, search engines started to render more...
A deep dive into Pkl, Apple's configuration language that aims to replace JSON and YAML
It’s not an uncommon notion that writing tests is more of a storytelling task than a technical one. Most recently I encountered it in The Bike Shed podcast, but you can find blog posts and conference talks about it as well. And if it is a storytelling act, perhaps we should look into narrative principles to make our tests better? One of the first...
I forgot to write a retrospective for the 2024 Q2 Quarterly Cup, because my approach to forecasting has become kind of boring: I only do it by gut feeling. No research, no analytics, not looking at the community prediction. This is not because my gut feeling is so great – it is because I have too many other things going on that I cannot take the time to forecast more accurately. I forgot to write a retrospective for the 2024 Q2 Quarterly Cup, because my approach to forecasting has become kind of boring: I only do it by gut feeling. No research, no analytics, not looking at the community prediction. This is not because my gut feeling is so great – it is because I have too many other things going on that I cannot take the time to forecast more accurately. I still want to share what my accuracy is, though, in the interest... I still want to share what my accuracy is, though, in the interest...