HNHacker News
TopNewBestAskShowJobs

samwillis

30,161 karma · joined March 17, 2008

Multidisciplinary Developer, Designer and Engineer. I invent products both online and offline.

Working on sync engines, PGlite, and Tanstack DB at Neon/Databricks. Previously co-founder ElectricSQL (acquired by Databricks).

sam dot willis at gmail dot com

samwillis.co.uk

Twitter: @samwillis

submissionscomments
samwillis··on Telling the Bees
Life and our eventual death is f-ing scary. Anything anyone wants to do to help cope with that, no matter how batshit crazy it is to other people, is fine by me (as long as it doesn't hurt anyone else).
samwillis··on Telling the Bees
Love this! It effectively a type of therapy or mindfulness for bee keepers, much like prayers and confession.

I wander if as we all start to use chat based LLMs in our everyday lives similar "superstitions" and traditions may appear? People telling them the things that have happened in their lives...

samwillis··on Creating a search engine with PostgreSQL
With the move to the "edge" for compute, having your database at the edge reduces latency and basically makes it viable. So the theory is that SQLite read replicas will be the answer to a lot of these plans. See what Fly and Cloudflare are investing in with the edge network and SQLite plans.

On top of that SQLite is now viable in the browser with WASM and the "origin privet file system" api. And so people are increasing looking at moving more state and persistence to the browser with an eventually consistent sync. This is what the "Local First" movement, myself included, are excited about.

samwillis··on Pines – Alpine and Tailwind UI Library
Sort of...

I would describe it as closer to an alternative to hand rolling js, using JQuery, or older templating libraries like Knockout.

Where its at its best is with server rendered frameworks like Django, Laravel, or plane old hand rolled CGI. You can sprinkle in some Alpine with no build steps. It works particularly well with HTMX.

I wouldn't call it a React alternative because there are places where React (or Vue, or Svelt...) are better placed. But there are places they are overkill and it slots in perfectly.

Alpine borrows quite heavily from Vue, it has a very similar template DSL, and uses its reactivity subsystem (I personally think this is very well designed and makes Vue 3 an incredibly good app platform).

I also believe the new Laravel Livewire just released is built on top of Alpine, they are from the same developer.

If I'm doing server side rendering and need to sprinkle in some client side interactivity Alpine is what I reach for.

(You could describe any client side templating system as a React alternative)

samwillis··on Threads: The BBC drama which affected a generation of viewers
Yes! I remember thinking the first series was better than later ones.
samwillis··on Privatisation has been a costly failure in Britain
You've cherry picked two routes Birmingham/Manchester to London where there is choice, but for the majority of the country there isn't. From my town there is one train company that has exclusive use of the route, and its motivator is profit extraction, not quality of service and encouraging more people off the roads on to the trains.

Also comparing trains to cars and busses as a positive competition is missing the point that our roads are over capacity. Moving more people off of the roads onto the train networks should be a priority.

samwillis··on Three amateurs cracked 445-year-old code to reveal Mary Queen of Scots’ secrets
Mirror: https://archive.is/wsqXY
samwillis··on Every person on the planet should have their own website
This post makes big broad statements but doesn't consider the nuance. I think they are somewhat correct, and the reality is most people do have a "website", it's a page on a social media site where they post stuff. The accessibility for everyone to have a publishing space is one of the most incredible advances in civilisation.

However, the identity of the page, publishing under your own name is the thing that this post doesn't really cover. They mention not linking to their own old site as it has stuff that they did when they were a child. They really should have expanded on that.

Archive.org is both an incredible resource but also a risk to people publishing things that they later regret. We have a right to change our mind, grow up and become a different person. Under GDPR there is the "right to be forgotten", we are early in the societal development of such rights in relation to the internet, and they can be abused by people removing thing the public should have a right to know. However I believe this is an important right, and because of it I believe the right to publish online under a pseudonym is important.

So yes, almost everyone should have an online presence, and most do. But we should also have a right for it to disappear in time.

I write online for myself now and the communities I contribute to, not for my children or their theoretical children. Certainly not some random slooth in future.

samwillis··on Chat with Andreas Kling about Ladybird and developing a browser engine
I'm not sure I agree with this metaphor but it's too tempting not to propose:

Labybird/LibWeb is to Chrome/Blink as Saturn V is to SpaceX Starship...

Not sure where that puts Andreas, hence my hesitation.

samwillis··on Chat with Andreas Kling about Ladybird and developing a browser engine
This is a really insightful conversation, it's so interesting how much success they have had by "just"* translating the html/css specification directly to code. The "debugging" of the docs that this is achieving is so valuable. Other larger browsers are going to also gain so much from all this insight.

Well worth a listen!

Slight aside, Andreas has had a bunch of donations and sponsors in the last month (over 300k), and just today announced he has hired a full time dev to help on the browser engin:

https://twitter.com/awesomekling/status/1676896595936198657

> Thrilled to announce that I've hired @KalenikW to work full time on @ladybirdbrowser

> Alex has been with the project since last year, and already done great work on CSS layout, testing infra, and more. Lately he's digging into JS performance and making great progress!

* massive understatement

samwillis··on Responding to “Are bugs and slow delivery ok?”
Ultimately it all comes down to business case. If there isn't one to invest in CI, developer time to build a test suite with 100% coverage, and then ongoing upkeep of that, then it's not going to happen.

We are too often religious about these things, and may not have visibility within the business to see why there isn't a case for it.

Having said that it can also be very hard to convince management of the business case. That may have had a bad experience of these tool and practices before and see them as a waste. Thay may also, in that specific case, be right.

samwillis··on Threads profile can only be deleted by deleting Instagram account, Meta says
its clear Meta are trying quite hard to piggyback Threads off the more palatable brand of Instagram rather than Facebook. However ultimately it's all still the same company, the same data mining and ad/influencing platform.

It's an interesting strategy, the app on the Apple App Store is published by "Instagram Inc" rather than Meta, prominently named as "Threads, an Instagram App". They could have launched it as a completely separate brand, but that would have required marketing such as "the new app from Meta", and everyone more closely associates Meta with Facebook.

It's quite surprising they never launched a microblogging network before, but I suppose they have never really launched a new network, only ever acquired them... does that show that they feel threatened, have weakening market position, and need a new direction?

samwillis··on Hacking around the Twitter login thing
Anyone doing industrial scraping already knows all the tricks for user agent swapping and making headers, including their order, look like "real" browsers or bots. It's not about pushing people to the API.
samwillis··on Hacking around the Twitter login thing
It was announced as an anti scraping "feature" but the reality is it's about encouraging signups, tracking for ads and starting the sales funnel for upgrading to Twitter blue. Every other social media site has done the same at some point to increase logged in users.
samwillis··on Rich text editors and rendering engines
Everyone who's ever build on top of contenteditable has war stories, my first bash with it was about 19 years ago. But tools like Prosemirror and Lixical solve most of those issues and separate the content from the presentation. 99% of the time they do what you want, but that 1% is impossible (page breaks!). Personally I'm a fan of TipTap, it's a great abstraction over the lower level complexities of Prosemirror. The TipTap/ProseMirror/Yjs combination is insanely good for being able to build collaborative editing.

Amused by the nod to the Ladybird WASM idea at the end, I'm taking credit for that: https://news.ycombinator.com/item?id=35521878. Good ideas spread. (Joe, apologies for not getting back to your email, it's been a rather busy few months)

samwillis··on News is bad for you – and giving up reading it will make you happier (2013)
For the last few years I vary rarely followed the national news, I'm certainly happier for it. When I do, I have noticed a decline in mood.

On "actionable" news, the only thing that really impacts me is interest rates. But even then I'm three years out from having to consider that, so happily remaining as ignorant as possible - which I suppose isn't massively so due to the volume.

There is so much truth to "ignorance is bliss".

samwillis··on Update on Twitter's Rate Limits
As with almost any time "RIP [someone/something]" trends in Twitter, the death of Twitter is greatly exaggerated.

(That's not to say I like the decisions that are being made)

samwillis··on What gets to the front page of Hacker News?
Oh, thought of another important one to add.

HN post titles have to (mostly) match the title of the page/article. Think carefully how you title your posts so that they are descriptive enough about the post. Short titles, like "why we are awesome", with no lead or indication of topic do very badly.

For GitHub repositories, include a description of the tool along with the name of it in the readme title.

Your page title is your HN post title.

samwillis··on What gets to the front page of Hacker News?
This is a good rundown but misses the biggest thing, random chance.

Depending on time of day the your post will stay on page one of "new" for between 20-40 minutes. It needs about 4-6 upvotes in that time to drop onto the bottom of the homepage, and then with that a chance of more eyeballs. Some people skim page two and look for thing with a couple of votes for closer inspection, but the reality is you have that brief moment to catch attention of people who are interested in your topic.

The more high profile the item you're posting is the more likely it will catch the attention of people who are interested in the short window. More obscure topics are obviously harder to catch those initial votes.

The new page is very busy at some particular times of day. It can be a good idea to post more obscure topics in a "down time" period.

2-6pm UTC is by far the busiest time, you often see corporate posts aiming to land in new during this time, even to the point of scheduling their blog posts for this window. The payoff in traffic is worth the chance of a very brief period on page one of new.

The other thing to note is that HN is a different place at the weekend, interesting long reads do well then along with somewhat fun and silly side projects.

Also consider "Show HN" posts, they have a different ranking "gravity" and can be easer to get into the homepage, but don't necessarily stay there or as high for as long. If you are launching something, this is your best bet. They also hang around on the "show" page for days with a log tail of traffic.

Finally there is the "second chance pool" [0], I don't know the details of who or how, but some posts are flagged to be given a second chance on the bottom of the homepage. Sometimes hours or days later. A surprising proportion of top of homepage posts come from that pool - good things have a high chance of entering it.

Best advise, write what you're interested in and keep posting.

0: https://news.ycombinator.com/pool

samwillis··on Things that surprised me while running SQLite in production
DuckDBs concurrency model is not ideal for every use case. It's either single read/write process or multi read process (no write).

Other than that it's awesome. I've stuck to its native file format though as scanning SQLite is slower.

samwillis··on Hugging Face – Looking into incident, a malicious user took over Meta's account
In case your Twitter is rate limited, or you don't have an account:

> We are looking into an incident where a malicious user took control over the Hub organizations of Meta/Facebook & Intel via reused employee passwords that were compromised in a data breach on another site. We will keep you updated

samwillis··on TabDB: Using browser tabs as a database like only a maniac would
No, this is local first, and a great example of it. Although it's missing its serverless edge functions for collaborative multiplayer support.
samwillis··on TabDB: Using browser tabs as a database like only a maniac would
This is a good idea but badly implemented, there is no persistence between browser sessions. Clearly they should be using the document.location.hash to store the compressed db then you also get undo via back...

Also with no LLM or chat based ui it's a hard pass from me.

samwillis··on Scaling Linear's Sync Engine
ElectricSQL are in this space, and have the concept of a central source of truth. SQLite in the browser and Postgres on the server with two way syncing using CRDTs. All open source but backed and funded.

https://electric-sql.com/

I'm not convinced that separating the two tools is best for usability, loose coupling sure. But some level of integration enables the reactive front end querying to swap between the front end copy and central source depending on if you have the data copied locally.

Also many of the mechanisms needed for reactive re-querying are also needed for two way syncing.

samwillis··on NXP has messed up their password form validation
They probably need to replace /^[\d\w!@#$%^&*-]$/i with /[^\w\d]/g.
samwillis··on Tkinter Designer: Quickly Turn Figma Design to Python Tkinter GUI
Neat! I can see this being a useful way to build quick demos from a Figma design, not sure I would use it for proper apps though.

If I follow correctly, it's building the whole UI from images from the Figma file, so isn't using any native OS styling. Thats fine for demos and some simple apps.

It would be interesting if it was possible to combine this with BeeWhare [0] for mobile UIs, mobile is much more forgiving with none native style. I wander if it could be modified to output BeeWhare/Toga code.

0: https://beeware.org

samwillis··on The Mac Pro’s biggest problem is the MacBook
The thing is, the trash can Mac Pro kinda fits the market segment the Mac Studio is now in. If Apple had created the "Studio" range back then for it, rather than suggest it was the successor of the Pro, it would have been better received.

Apple don't tend to make the same mistake twice, this time they created the new marketing category for that product. 99% of people who would have been in the "Pro" category are happy getting a "Studio", plus a bunch upgrading from an iMac.

The Studio is the new Pro to them, it's just for marketing they needed to change the name and have a "continuation line" for the old product. As you said it's here for the long haul but mostly has a legacy range.

samwillis··on Kagi raises $670k
> Looking ahead, we are cognizant that when building Kagi, we are running a marathon and not a sprint.

They are specifically drawing attention to the fact that they are aiming to build a long term sustainable business, not grow quickly and exit. Thats likely to be important to their customers.

They needed some cash for investment, but didn't need to maximise investment to push for rapid growth.

samwillis··on Kagi raises $670k
I can see that, certainly in bursts. Some days it's research, some days it's reading docs, some it's heads down and very little searching.
samwillis··on Kagi raises $670k
That would be one search every 3 min, if you sleep 8hrs a day...
← PreviousPage 11 of 34Next →