HNHacker News
TopNewBestAskShowJobs

tlarkworthy

5,770 karma · joined October 22, 2012

Software Developer with a passion for transparency.

Firebase -> Google -> Futurice -> Taktile

Now in Berlin.

submissionscomments
tlarkworthy··on There’s Toxicity, and There’s Toxicity (2017)
Why does Botox contain the most toxic substance? I thought it was just filler. Now I am totally curious with what is the mechanism of Botox.
tlarkworthy··on Give me /events, not webhooks
This article is premised on the incorrect strawman that webhooks are complicated because the consumer has an extra persisted message bus.

But if the producer retries and the consumer does not respond with 200 until it has processed the message, no consumer side message queue is needed, the consumer can rely on the producer to reach at-least-once delivery.

In both cases (webhooks and /events) storage is needed producer side, so nothing consequential has changed, only with /events you need long lived TCP connections which ties up (e.g. you can't do this on FaaS endpoints)

Functions as a service are absolutely ideal for low frequency webhook receivers. SO SO SO cheap.

tlarkworthy··on Give me /events, not webhooks
long polling is not good for serverless consumers. webhooks are great for compute on demand so we should work towards that (it's cheaper coz it's more effecient).

You do not need storage in the producer AND in the consumer, you just need a queue in the producer. Yes, even that is annoying, but the suggested architecture will still lose data if the long poller is down unless there is storage in the producer... so nothing significant has really been solved

tlarkworthy··on My trust in software, an all time low
This is a topic close to my heart and I am trying my best to create a serverside platform that can only run open source software. My hope is making digital services transparent half the shenanigans will go away. For two reasons

  1. bad actors can't hide B.S.
  2. good actors have something they can point to that has 3rd party validation.
So for digital services where the source code is always available, my runtime dynamically loads the source code indicated in the URL each request. So you are free to go to the URL directly, and you can figure all the routing out in advance of data leaving your device (in theory).

For the sake of moving fast, the 1st supported code repository the runtime can run serverside code from is Observablehq, which has the additional property of being a code IDE which simplifies greatly how you actually upload code to a public location.

The core building block: https://observablehq.com/@endpointservices/serverless-cells

Some blogspam: https://medium.com/nerd-for-tech/towards-a-better-serverless...

I built the IndiaAuth provider using this transparent technique, so you can see exactly how it works.

https://observablehq.com/@endpointservices/auth

tlarkworthy··on Reconcile All the Things
> At this point I should address the elephant in the room. If we're talking about declared computations with input dependencies and cached results, isn't this what data flow graphs are for? Today DFGs are still only used in certain niches. They are well suited for processing media like video or audio, or for designing shaders and other data processing pipelines. But as a general coding tool, they are barely used. Why?

sidenote: the programming model of Observablehq is a data flow graph and its bloody excellent for hot developing a running program. You can swap one dataflow node for a completely different piece of code and leave the rest of the program state in place. This is finer grain iteration than a REPL.

The topic is reconciliation on top of that... and those kinda of experiments are possible. Observablehq exposes the "this" value to access the previous value of the node. So you can do traditional reconciliation: https://observablehq.com/@tomlarkworthy/reconcile-nanomorph

An individual dataflow at the top level can be seen as a stream of values.

I have not thought much about general reconciliation, but if I were shooting for maximum efficiency I would be thinking about maybe you could add delta sync to these streams.

I definitely observe the situation where I want a dataflow node to be an array of values, or an aggregate result over an array, and then I want to add a single datum to the dataset upstream. Currently everything just gets recomputed from scratch which seems wasteful. I am not sure if generalising reconciliation helps with the issue though.

tlarkworthy··on Show HN: Napkin – Build back-end functions in the browser
I made one for Observable runtime https://observablehq.com/@endpointservices/serverless-cells

it's amazing having seamless code sharing between front end and backend, with inline code documentation.

I made a whole oauth server like this! https://observablehq.com/@endpointservices/auth

tlarkworthy··on Trish Rothgeb coined ‘third wave’ and is looking toward coffee’s future (2019)
if you read the article it explicitly states she herself says she borrowed the term from her reading of feminism. so yes.
tlarkworthy··on Ask HN: What software do you use to gather requirements?
I use https://cawemo.com/ business process modelling notation (graphical) because it's multiplayer realtime and works well over video.
tlarkworthy··on The myth of the myth of the lone genius
like everything, societal contribution is Pareto.
tlarkworthy··on I can't stand developing for Safari anymore
that would be https://caniuse.com/
tlarkworthy··on Today we’re eating the winners of the 1948 Chicken of Tomorrow contest
Chicken is relatively friendly to climate. I would consider it a good thing if people ate more chicken and less red meat. They are our top animal protein source at scale for least greenhouse gas emissions [1].

[1] https://extension.uga.edu/publications/detail.html?number=B1...

tlarkworthy··on Utopia, a visual design tool for React, with code as the source of truth
This is why I like Business Process Modelling Language as a better UML too
tlarkworthy··on I want to learn D3. I don’t want to learn Observable. Is that ok?
ObservableHQ has the tightest feedback loops because of the reactive runtime. It's a better way to program visual things. I prefer non-sequentially executing programs. It's better.

Code changes are local operations, so your running program state is generally preserved . This is an amazing boost for iterative development. This is Smalltalk level productivity boosts

Sucks if you want to do something legacy but I want to move forward with programming and breaking the sequential execution model is the right step IMHO.

tlarkworthy··on Animal testing is exploitative and largely ineffective
Neuroscience is built on animal testing. I can't see a realistic was of learning about the brain without animal experiments, unfortunately.

https://speakingofresearch.com/2015/12/10/importance-of-anim...

Do we want to give up learning the brain? (And other organs but brain is extra special)

tlarkworthy··on Web Applications from the Future: A Database in the Browser
no, it works as long as you logged in once. You have to ensure auth persistence is on (https://firebase.google.com/docs/auth/web/auth-state-persist...). You cannot login when offline, but if you were already logged in, and expiry is set to indefinate, you can stay logged in while offline.
tlarkworthy··on Web Applications from the Future: A Database in the Browser
Just use Firebase (firestore) ...

It's got: offline first, latency compensation, pubsub, partial sync, authorization rules and serverside timestamps, and global transactions, and 5 9s availability backed by spanner for umpteen languages. https://tomlarkworthy.endpointservices.net/blogs/firestores-...

tlarkworthy··on Logical replication and decoding for Cloud SQL for PostgreSQL
I second federated table connector (and scheduled queries).
tlarkworthy··on Using a magnetic string to fish for a lost iPhone 12 in a Berlin canal
> I'd wager that even after accounting for taxes, most Europeans have more money in their pocket than Americans working in the same field.

Having worked in SF and Berlin... SF was definitely better paid overall and I made enough money to buy a nice apartment in Berlin, something which seems unachievable by working in Berlin all your life.

tlarkworthy··on You Don't Need to Rebuild Your Development Docker Image on Every Code Change
It's hotcode reload and debugging where I find docker starts to annoy me. (Also resource consumption and performance to an extent)
tlarkworthy··on You Don't Need to Rebuild Your Development Docker Image on Every Code Change
I have done this but if possible I just run my code locally and reserve docker for infra (e.g. DB). Java, nodejs, go are all very easily run locally.

Maintaining a complex Dockerfile is just more crap that makes programming tedious.

tlarkworthy··on Sign a PDF document client-side with no data leaving the computer
That's a network service (I don't want Adobe reading my financial docs) and also was not around when they ripped me off in 2018.
tlarkworthy··on Sign a PDF document client-side with no data leaving the computer
In the case of sensitive pdfs, it's enough to check you network is not inexplicably in use, and I explain how to do a network audit in the notebook (yay literate programming). BTW this is "sign" as in overlay an image of your physical signature, not certify with a digital signature.
tlarkworthy··on Sign a PDF document client-side with no data leaving the computer
I wish I had known that!
tlarkworthy··on Sign a PDF document client-side with no data leaving the computer
By exposing your source publically it only requires one person to check to provide herd immunity. It's game theoretically superior to providing source code for one off audits on request.
tlarkworthy··on Offload Mental Simulation
This is https://observablehq.com the way you can partially modify code while retaining program state is amazing, plus it works with a production debugger (chrome devtools)
tlarkworthy··on Dataflow, a self-hosted Observable notebook editor
https://observablehq.com/@observablehq/databases
tlarkworthy··on Why programmers don’t write documentation
my docs are a single page full of one liners for practical issues that have organically arisen several times over the years, with a table of contents at the front.

As I said, I write good docs, but no-one will read them until they have been caught out 3 times asking obvious questions had they gone to the doc first. If I am not around, I know the docs will be abandoned immediately despite it representing a tome of hard won knowledge that saves an incredible amount of aggregate time from never needing to figure out how to do the same task twice.

tlarkworthy··on Hosting SQLite databases on GitHub Pages or any static file hoster
works on ObservableHQ

https://observablehq.com/@tomlarkworthy/phiresky-sqlite-quer...

tlarkworthy··on Why programmers don’t write documentation
It would help if people read them. I write good docs and I often wonder why, as I have to endless redirect inbound queries to the doc. It's ok for my team, they learn, but it's annoying that the whole org never reads anything.
tlarkworthy··on IndieWeb: A people-focused alternative to the “corporate web”
I recently decided to switch my Auth for cloud services over to Indieweb. It has huge benefits on platforms hosting user generated code as the user identities are transferable out of the box and don't require pre-approved redirect URIs. Hence, it works very well for authors on observablehq.com who move code around user content domains.

https://observablehq.com/@endpointservices/auth

I use this Auth as replacement for Firebase Auth... I can issues tokens for backend services using Indieweb identities that engage with Firebase security rules.

Anyway, I am super excited to have observable/Firebase/Indieweb all interoperable

← PreviousPage 14 of 34Next →