It’s been over 4 years since my first post on this blog. During those 4 years I’ve written over 90 posts, received over 1 million clicks, a dozen legitimate reader e-mails and thousands of spam e-mails. And I love it! I’ve found that writing can be very fulfilling and I encourage you to at least give it a try. This post covers the reasons why I...
PayPal Newsroom: Introducing PayPal Everywherecustomers can now add their PayPal Debit Card to Apple Wallet in just a few steps and use it with Apple Pay, enabling even more ways to pay.PayPal is a pioneer in digital wallets, they’re one of the biggest wallets in the
about me I am 18, born in 2006. This is generally a good thing as I am in the prime of life currently. I am not one of those people who think they were “born in the wrong decade”, I think I was born at the perfect time to take advantage of superlinearly growing technological advancements. the internet today I generally greatly dislike social...
Some thoughts on why I started livestreaming my open-source development sessions and my future plans.
I had a productive day today! I did many different and unrelated things, but they all had the same unifying theme:
I’m probably going to be the only one saying this, but the new Reeder is a massive disappointment. I pretty much live inside what is now “Reeder Classic”, since it is the first app I fire up every morning on my iPad mini to catch up on 200+ RSS feeds. And the new Reeder just doesn’t do what I need it to. In fact, it doesn’t even do what it tries...
Reeder is out today and Devon Dundee has a great overview over on MacStories. I wanted to call out a few things because as a Reeder 5 (now Reeder Classic) fanatic, I have thoughts.With a product as successful and engrained as Reeder, it would be easy for the app&
the course of medication that cures Hepatitis C costs $84,000 at $1,000/pill, but can be produced for only $700 or $0.83/pill #
the ruling is "a knife in the back of libraries," claiming that authors won't write new books if libraries lend digital books for free #
Closures are essential for creating functions that maintain state, without relying on global variables.
Abstract: There is a natural way to interpret the propositional connectives and quantifiers in terms of the three semantic values 0, i, and 1, where 0 and 1 are understood as falsity and truth, and i is understood as some intermediate value. These three-valued valuations do not, by themselves, determine a logic, because for that, you need to...
This post is not advice, it's what's working for me. It's easy to pick up bad habits and hard to create good ones. Writing down what's working for me helps me maintain any good habits I've worked hard to develop. Here's an unordered list of 10 things that have helped me increase speed and maintain a respectable level of quality in the product I'm...
I bought one of Apple’s FineWoven cases when they came out last year because I thought they had to be pretty good. Apple had a great track record with making what I thought were the best phone cases on the market and I was convinced that they wouldn&
CodeEdit is a fully native macOS editor heavily inspired by Xcode UX conventions that is very interesting to me as an alternative to Visual Studio Code on the Mac.
I will be completely honest, I don’t know performance dev tools as well as I probably should. I always find articles and talks on performance fascinating but when I come to learn stuff myself, my eyes often glaze over. Articles like this are really helpful though because it’s a real world problem that I’m sure a lot of us have unwittingly done:...
I want to test RSS-to-Mastodon posting via MastoFeed, so here’s a test post with a photo of Mojo, who wants to come inside. Update: I couldn’t get MastoFeed to work, and ended up following these instructions for Pipedream instead.
Hot on the heels of my various posts about wanderlust and past travels, today as I watch a Red Sox exhibition game against the Northeastern Huskies to begin Spring Training,...
There’s a moment in Lost when Desmond is down in an access tunnel beneath the Swan station trying to turn a failsafe key while a recorded voice on a loop...
The sort of existential crisis I’ve been having lately about blogging happens to be coincident with the controversies over Automattic’s various deals to provide data for purchase, sometimes for the...
It started with an offhand mention on Mastodon that I’m tired of my blog design, again and already, then turned into a whole other thing on Bluesky because I do...
I’ll try not to belabor the issue, but obviously I am having some issues when it comes to what I want to be doing with my blogging, as well as...
While prophecies of the end of Usenet or the wider internet never came true, notwithstanding the latest variant that it’s already dead, this blog is coming to a close. Since...
In the Associated Press report on the Harris-Walz campaign accepting the proposed terms for the September debate between Kamala Harris and Mine Furor, most of the interest appears to be...
Think about how hard it would be to get all of humanity to agree on and learn one language. It’s impossible right? Even if we made contact with aliens who told us they would destroy the planet unless we all learned one language it’s still not going to happen. Coordination at that scale is out of humanities grasp right now and even getting a group...
Yesterday, I was trying to set a unique constraint for comments in Buttondown to prevent accidental double-commenting, and I ran into a problem that I hadn't seen before: index row size 2816 exceeds btree version 4 maximum 2704 for index "emails_comment_email_id_subscriber_id_text_0542cca9_uniq" DETAIL: Index row references tuple (165,7) in...
There have been words on Twitter, so I thought it would be useful to write down how ordinals came to be. Ordinals is a few things. Ordinals proper is made up of ordinal numbers, the numbering and tracking of satoshis, designed ultimately as vehicles for NFTs; inscriptions, the NFTs which ride on the backs of ordinals; runes, the degenerate black...
I posit that it’s statistically unlikely for an engineer to get a job working on a system that isn’t either imaginary or legacy software. There is no middle ground.
Yesterday, I was trying to set a unique constraint for comments in Buttondown to prevent accidental double-commenting, and I ran into a problem that I hadn't seen before: index row size 2816 exceeds btree version 4 maximum 2704 for index "emails_comment_email_id_subscriber_id_text_0542cca9_uniq" DETAIL: Index row references tuple (165,7) in...
In 9th grade my English teacher told me I was writing an assignment with broad over-generalizing maxims and beliefs. I tend to write absolutely, especially when being un-technical/un-scientific. I think this is because this makes my writing more concise and more clearly communicative–unencumbered by the recognition of my limitations or the...
Here's a quick reference page for Easy Script on the Commodore 64. Because who wouldn't need this?
I posit that it’s statistically unlikely for an engineer to get a job working on a system that isn’t either imaginary or legacy software. There is no middle ground.
Yesterday, I was trying to set a unique constraint for comments in Buttondown to prevent accidental double-commenting, and I ran into a problem that I hadn't seen before: index row size 2816 exceeds btree version 4 maximum 2704 for index "emails_comment_email_id_subscriber_id_text_0542cca9_uniq" DETAIL: Index row references tuple (165,7) in...
We finished Buttondown’s migration from MDX to Markdoc last week. It went swimmingly, except for one little hitch: our RSS feeds, which sat on top of getServerSideProps and read in the flat .mdoc files, threw 500s in Vercel. (They worked fine locally and in CI, but then those files were purged by Vercel as part of the post-compile deploy.) I was...
Just after I published the previous article on bubble sort, I stumbled over another account claiming bubble sort is somehow more robust than better algorithms (emphasis mine):11 I should clarify that I generally agree with the author’s sentiment. It’s just...
the appeals court ruled that, despite being a nonprofit and no evidence of market harm, its implementation of Controlled Digital Lending isn't fair use #
One of the responsibilities of the department chair is to introduce new colleagues at the first faculty meeting of the new academic year. So I just wrote one-minute introductions for my new colleagues, Sachintha Pitigala and Richard Torres Molina. I thought I’d share them here: Sachintha Pitigala joins us this year from Sri Lanka, where […]
I look at some people’s personal websites and think, “Stupendous! If I ever reach that zenith of personal web design, I will call it quits.” Then I read a post by them later and they say something like, “Gah! I just really don’t like where I’m at with my personal website.” And in my mind I say, “WHAAAAAATTTT??!?!?” To me, they’re living the...
[This piece is co-authored with Vsevolod Livinskii.] Formal verification isn’t some sort of magic pixie dust that we sprinkle over a computer system to make it better. Real formal verification involves a lot of the same kind of difficult, nasty, grungy engineering work that any other systems-level job involves. Furthermore, the verification tools...
Over the past few years, it seems like the rate at which new CLI tools are being written has picked back up again, accelerating after seeing relatively little activity between ~1995 and ~2015. I’d like to talk about this trend I’ve noticed, where people are rewriting and rethinking staples of the command line interface, why I think this trend...
open-source music visualizer that synchronizes MIDI to bouncing balls in a modified game of Pong #
Async Rust is powerful. And it can be a pain to work with (and learn). Async Rust can be a pleasure to work with, though, if we can do it without `Send + Sync + 'static`.
Suppose you’re working in C using one of the major toolchains — that is, it’s mainly a C++ implementation — and you need regular expressions. You could integrate a library, but there’s a regex implementation in the C++ standard library included with your compiler, just within reach. As a resourceful engineer, using an asset already in hand seems...
Last week Leslie Lamport posted The Future of TLA+, saying "the future of TLA+ is in the hands of the TLA+ foundation". Lamport released TLA+ in 1999 and shepherded its development for the past 25 years. Transferring ownership of TLA+ to the official foundation has been in the works for a while now, and now it's time. In the document, Lamport...
This second part of Chapter 4 of the Designing Data Intensive Applications (DDIA) book discusses methods of data flow in distributed systems, covering dataflow through databases, service calls, and asynchronous message passing.For databases, the process writing to the database encodes the data, and the reading process decodes it. We need both...
I’ve finished my two-year leave at OpenAI, and returned to being just a normal (normal?) professor, quantum complexity theorist, and blogger. Despite the huge drama at OpenAI that coincided with my time there, including the departures of most of the people I worked with, I’m incredibly grateful to OpenAI for giving me an opportunity to […]
In Lifehouse, Adam Greenfield writes: Stability will be the fundamental value proposition of a certain kind of politics in our time of undoing, and we need to reckon with just how seductive it will prove to be.
MathJax.Hub.Config({ CommonHTML: { scale: 105 } }); table.xyz { table-layout: fixed; border-collapse: collapse; margin-left:auto; margin-right:auto; } table.xyz th, table.xyz td { border: 1px solid black; } table.blueTable { border: 1px solid #1C6EA4; background-color:...
Adam Greenfield proposes a strategy for surviving the climate crisis: Lifehouses, or a network of places of care, mutual aid, resource distribution, and solidarity.
We made a video about a nonstandard way to understand the A* algorithm. This blog post collects a few more clarifications, thoughts, and links. Another Example of a Run of A* Here is another run of A*, this time from Sarajevo (in the Balkans) to southeast Italy. You can notice that at the beginning, there … Continue reading The hidden beauty of...
Apparently gourmet chocolate shops make batches unsuitable for customers, but perfectly suitable for low-lifes like me.
A suggestion for better Zig meetups.If you're trying to learn Zig in 2024, one key ingredient is still interacting with the Zig community. More docs, blog posts, videos about Zig are getting released over time, but in my opinion direct collaboration is still the most effective way to dispel unknown unknowns, get unblocked when you're stuck, and improve your overall coding style by adopting new patterns as they get discovered by other members of the community.When it comes...
For a few years now I have been working on the Haskell Language Server (HLS), and the lsp library for the LSP protocol and writing LSP servers. Unsurprisingly, I have developed some opinions about the design of the LSP! Recently I gave a talk about HLS and LSP at the Haskell Ecosystem Workshop at Zurihac 2024. One slide featured a hastily-written...
Clarity is key: being explicit makes your code more readable and maintainable.
In their paper on Evolvability, Marc Kirschner and John Gerhart discuss the separation of concerns within our genetic code. They pay special attention to limbs: The limb is a complex structure with precisely placed bone, cartilage, muscle, nerves, and vascular elements, and one might think it is difficult for such a structure to change in...