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 A future for SQL on the web (2021)
Completely agree.

Have you my chance come across a good SQLite vector extension that works in the browser? I haven't found one yet.

samwillis··on A future for SQL on the web (2021)
It would be quite hard to do a HTTP range request VFS for the official build as it's sync only, lots of hoops to jump through. The wa-sqlite build on the other hand is available as both a sync and async build, and so should be quite possible (you can easily build an async VFS). Roy has a great range of example VFSs you can learn from too.
samwillis··on A future for SQL on the web (2021)
Whenever WASM SQLite comes up there is discussion as to if it would have been better for WebSQL to have become a cross browser standard.

I believe this route with WASM is the correct one. WebSQL would have been tied to one single version of SQLite, with no alternative implementation.

With browsers adopting safe low level APIs like WASM and OPFS it enables a much broader range of databases to be available in the browser. We already have SQLite, DuckDB and various vector dbs.

OPFS is still under active development, but with some of the changes coming to it in 2024 it's going to become significantly better to use.

All of this is part of the enabling tech behind "local-first" apps. I'm somewhat biased as I work on ElectricSQL (we sync Postgres on a server to SQLite in the browser), but 2024 is going to be a supper exciting time for local-first software.

samwillis··on SQL as API
With SQLite in the browser via WASM, and the sync technology that's available for that (ElectricSQL (I work on this), CR-SQLite, Sqlsync), webapps are increasingly using SQL in the UI layer to a local DB. It's only one step further to then have a multi-modal app that uses SQL to query the server database for non-synced data.

I'm expecting raw SQL to replace the API for a whole class of apps.

Throw in an event sourcing architecture for server side processing and you have a single SQL based API for all operations.

samwillis··on Figma and Adobe abandon proposed merger
There seems to be multiple references to the fee being payable if the deal falls through due to regulatory issue.

"He also noted that the original terms call for Adobe to pay a $1 billion break-up fee even if the deal falls through over regulatory issues."

https://www.barrons.com/articles/adobe-stock-figma-acquisiti...

samwillis··on Figma and Adobe abandon proposed merger
There's a $1B fall through fee, I assume that gets paid to Figma now?

I wander if that will make its way to early employees who were hoping for a liquidity event.

samwillis··on 18y Ago Today: Snakes & Rubies, Django+Rails Comparison by Adrian Holovaty & DHH
Credit to Simon Willison for the link: https://twitter.com/simonw/status/1731353118074671203
samwillis··on Volvo delivers 74-tonne electric truck
> reinventing the highway pavement system

A number of years ago there was a demo of a technology where they mixed (something like) iron filings in the asphalt. By slowly driving over it with a massive electromagnet they could heat the asphalt from within, helping to fix any small cracks before water ingress could cause a larger problem.

samwillis··on Monsters of the Road: What Should the UK Do About SUVs?
Even better tax based on weight to number of permanent seats ratio. 7 seaters for larger families shouldn't be penalised, but structure it so manufactures can't just throw a couple of fold down seats in the back of a large SUV as a work around.

But everything about road tax needs to change with the reduction of fuel duty due to electric cars. The public haven't seen this coming yet, but it's going to be a difficult transition.

samwillis··on A bold new look for the Gov.uk homepage
The thing that's changed in recent years is who "owns" the practices. Traditionally they were owned by the senior GPs, they became partners (owners) in the practice they ran.

Now increasingly as older GPs who are partners in prentice's retire they sell their practice to privet equity backed groups. GPs don't want to buy into a practice anymore.

The result of this is significantly worse care and service as the PE backed groups try to extract profits from the system. It's an attractive deal for PE, guaranteed income based on patent list size, and an opportunity to cut costs to make a profit.

samwillis··on How many billions of transistors in an iPhone processor?
And we haven't been back in 50 years, despite all the incredible technology improvements.

The Apollo guidance computers had "several tens of thousands of transistors"[0], we now have 19 billion in our pocket!

0: https://www.aei.org/technology-and-innovation/apollo-11-mank....

samwillis··on Pope tempted by Python. Signs off on coding scheme for kids
The Register has just won headline of the year, love it, and the initiative!
samwillis··on The first Local-first Software London meet up is next week (18th Oct)
Hey everyone,

We are holding a first ever Local-first Software London meet-up on the 18th October, at IDEALondon, near Old Street. The idea is to get together, chat local-first and have a few talks.

We have an awesome lineup of talks:

- "Everything's better with Friends" from Sunil of PartyKit

- "Designing the DDLX - a local-first database rule system" from Paul Harter of ElectricSQL

- "CRDT challenges in the wild" from Russell Brown of Ditto

- and an into to Local-first from myself.

Do register to let us know you're coming.

samwillis··on Never write a database, even if you want to, even if you think you should
Writing software to store data, with retrieval and querying APIs, not using any existing database system.
samwillis··on Call to shut down Bristol schools’ use of app to ‘monitor’ pupils and families
I have a friend who has been the safeguarding lead in a school, it's a tough and emotional job with enormous responsibility. He's found it incredibly fulfilling, but I can only imagine what he has had to deal with based on the few hits we have heard.

My understanding is that the teachers that take on these roles are incredibly well trained, understand the responsibility, and know how to be both discreet and keep things privet. I believe a lot of the information available through this app was already being made available to the safeguarding leads in schools.

Challenging the use of this app is good, that's the role of these origination, checks and balances and all that. We need to be sure it is a net benefit for all involved. There is no denying though that if it helps teachers in safeguarding children that is a good thing.

samwillis··on Show HN: ElectricSQL, Postgres to SQLite active-active sync for local-first apps
Absolutely, we are really keen to support an encryption pattern. We are at the design phase, the current thinking is to have a hook enabling developers to provided their own encryption callback so that you can have unencrypted data in the local database. Essentially encrypting and decrypting, on and off the sync layer.
samwillis··on Show HN: ElectricSQL, Postgres to SQLite active-active sync for local-first apps
Hey, I work for Electric,

Quite right, the latency should be low single figure ms. There is actually a slight bug in how that latency is calculated on the demo and includes an extra render tick, I was digging into it earlier but didn't get a chance to push a fix yet.

samwillis··on Show HN: ElectricSQL, Postgres to SQLite active-active sync for local-first apps
Not at all, it's perfectly possible to use it with Angular. While we haven't built any specific helpers for Angular, like we have for React, our TypeScript client is perfectly useable from any JS/TS framework or project.
samwillis··on Show HN: ElectricSQL, Postgres to SQLite active-active sync for local-first apps
Hey, I work at Electric,

The CouchDB/PouchDB pattern is how I originally got interested in local first, they are such a good tool, but having the full power of Postgres and then SQLite on the client, I believe, is a real game change.

Sounds like Electric could be a really good fit for your use case. If want any advice join the Discord and we are happy to help out.

samwillis··on Show HN: ElectricSQL, Postgres to SQLite active-active sync for local-first apps
Hey, I work for Electric.

The WASM module is just a standard build of SQLite, about 1.1mb - there are many landing pages 10x that size - and something that we think is easily justifiable for the types of apps that people can build with Electric.

In terms of use cases, there are numerous, broad-ranging possibilities - anything from a replacement for GraphQL or a REST API in your existing stack, all the way up to building large collaborative apps. Our intention is that you can build collaborative tools similar to Linear, and we do actually have a demo of this sort of thing (http://linear-lite.electric-sql.com), but it’s certainly not limited to that.

samwillis··on Show HN: ElectricSQL, Postgres to SQLite active-active sync for local-first apps
OP here, I work for Electric,

Electric is designed to support partial sync, and so you don’t have to sync your whole dataset. (Note that this is feature is under development and not yet public)

There are limitations on how much data a browser will store for an individual site, so the number of rows you can sync will depend on the shape of your dataset. Finally there are also some performance considerations with WASM SQLite, this is something the SQLite team are working on in collaboration with the browser developers, particularly with the development of the new OPFS apis which we plan to support as they mature.

So, thousands of rows are definitely viable, and we have that working with our own internal development tests. Hundreds of thousands or millions may cause issues right now, but are something we do want to support.

samwillis··on Adobe will charge “credits” for generative AI
I'm convinced this will be a short lived business revenue structure - paying per use of generative AI in the cloud.

I'm sure that in the not too distant future (a few years at most) we will be happily running these on customer level hardware.

I do wander if companies working to develop these type of revenue models truly think it's a long term structure?

samwillis··on How to store a chess position in 26 bytes using bit-level magic (2022)
When I was building my multiplayer Sudoku app, I had fun experimenting with how small I could pack a sudoku grid into a URL. I came up with a scheme combining bit packing with the knowledge of how the grid works. So as you move through the grid, based on the knowledge of what's been placed where and the remaining digits you have a fewer options.

Was fun, I was playing code golf with myself. Sadly seem to have lost the code and I didn't use it in the end.

It would probably have been possible to go smaller than I got it by combining it with a sudoku solver, so stop packing positions once it's solvable. But life moved on.

samwillis··on Arm IPO to kick off today
Our first family computer was an Acorn Archimedes, we had it for maybe a year before it was replaced by a PC with an Intel.

Now here we are 30 years later and I'm typing on a laptop running on a ARM (née Acorn RISC Machines, then Advanced RISC Machines), I have an ARM in my pocket, another in a tablet in my bag. My wife is next to me on an ARM laptop, she's also got an ARM on her arm... we're listening to music on a wifi speaker running on an ARM. There are probably 30-40 ARMs in one way or another around our house. Amazing really.

samwillis··on The Silicon Valley elite who want to build a city from scratch
Previous discussion when the owners were anonymous:

"'Mystery company' buys land worth $800M near Travis AFB, raising concerns" - 114 points - 35 days ago - 170 comments

https://news.ycombinator.com/item?id=36816387

There were all sorts of rumours, and concerns due its proximity to an important military base. I can't imagine the government and military not knowing that this prominent group were behind it.

samwillis··on “For fun, I decided to add <BLINK> tag support to NCSA Mosaic”
Nitter mirror: https://nitter.net/awesomekling/status/1695451330427473996
samwillis··on The WordPress 100 Year Plan
If we create something of value it will naturally survive. Artificially extending the life of something transient is a waste.

When we except that both what we create and ourselves are transient, life become better. Concentrate on the now.

--

Edit: not sure which reply to reply to, so commenting here.

My badly made point was that trying ourselves to insure the longevity of something we create is not the best use of our time and resources.

If we create something of value, and it means something to other people, it will spread, and it will be saved for the future and future generations.

Society saving things for the future is essential, and we generally do a good job of it.

samwillis··on I cycled to all the villages in alphabetical order
I quite liked the fact they he didn't, it was fun to construct a location in my head. But then I know the area fairly well.

It's a good location for this as it's quite flat, very few hill, and those that exist are more like a hump.

samwillis··on Hydra: Column-Oriented Postgres
Each cell in the column is store one after another in memory, you have continuous memory of one column. Effectively think of having text file for each column, each cell having a line, to reconstruct a row you have to get its line from every column file. To sum a column you only have to scan the one file for that column.

In row oriented, each cell for each row is next to each other in memory. Think traditional CSV files, each row is a line in the file. To sum a column you have scan the whole file and all data for all columns.

samwillis··on Kamal – Deploy web apps anywhere
This is the new site and name for MRSK from 37 Signals:

> In early celebration of the forthcoming v1.0 release, we've renamed MRSK to Kamal, after the ancient Arab navigational tool (and to celebrate our complete cloud exit with a couple of vowels ). Will record a new video shortly. New website is live at ->

https://twitter.com/dhh/status/1694354914804482253

← PreviousPage 6 of 34Next →