HNHacker News
TopNewBestAskShowJobs

TeeWEE

1,416 karma · joined April 22, 2010

Software engineer. Love Mobile!Keywords: Android, Appengine, Python, Golang, Java, NodeJS, etc. Learning Machine Learning. Experience with google cloud and AWS.
submissionscomments
TeeWEE··on New Research Shows AI Strategically Lying
What tells you that your brain is not a probabilistic machine?
TeeWEE··on Llama 3.1 405B now runs at 969 tokens/s on Cerebras Inference
How can a rule book help fixing incidents. I mean I hope every incident is novel. Since you solve the root issue. So every time you need to dig in the code, or recently deployed code and correlate it with your production metrics.

Or is the rulebook a simple rollback?

TeeWEE··on Tesla Optimus Bots Were Remotely Operated at Cybercab Event
This results in me trusting Tesla less.

If this was fake, how do we know the robovans were not remotely operated? They might as well be too to get the stock price up?

There is no way to know. I am really doubting Tesla now. It wouldn’t surprise me that, in order to prevent mishaps during the event, everything is remotely operated…

People will say: that’s not true. But where did Tesla clearly specify this upfront?

I saw the initial fullscreen disclaimer. But that might also apply to the robovans right?

TeeWEE··on Why Everything Is CRUD
This person doesn’t seem to know about table stream duality. Crud is just an immutable event stream. All crud systems use this in their journaling system.
TeeWEE··on Show HN: InstantDB – A Modern Firebase
Very nice!

However for our use case we want total control over the server database. And wanted to store it in normalized tables.

The solution we went for us is streaming the mutation stream (basically the WAL) from/to client and server. And use table stream duality to store them in a table.

Permissions are handled on a table level.

When a client writes it sends a mutation to the servers. Or queues it locally if offline. Writes never conflict: we employ a CRDT “last write wins” policy.

Queries are represented by objects and need to be implemented both in Postgres as wel as SQLLite (if you want offline querying, often we don’t). A query we implement for small tables is: “SELECT *”.

Note that the result set being queried is updated realtime for any mutation coming in.

It’s by default not enforcing relational constraints on the clientside so no rollbacks needed.

However you can set a table in different modes: - online synchronous writes only: allows us to have relational constraints. And to validate the creation against other server only business rules.

The tech stack is Kotlin on client (KMM) and server, websocket for streaming. Kafka for all mutations messaging. And vanilla Postgres for storing.

The nice thing is that we now have a Kafka topic that contains all mutations that we can listen to. For example to send emails or handle other use cases.

For every table you: - create a serializable Kotlin data class - create a Postgres table on the server - implement reading and writing that data, and custom queries

Done: the apps have offline support for reading a single entity and upserts. Querying require to be online if not implemented on the client.

TeeWEE··on Toothpaste Null-Terminator
Hahaha, why not just check if the toothpaste you're grabbing is the last one?
TeeWEE··on The AI Scientist: Towards Automated Open-Ended Scientific Discovery
AI hype in one sentence:

"We expect all of these will improve, likely dramatically, in future versions with the inclusion of multi-modal models and as the underlying foundation models"

So much hype, so much believe. I no believe no hype

TeeWEE··on Study shows that tacking the “AI” label on products may drive people away
90% of AI companies are just thin layers on top of an LLM, sometimes useful but they have all the problems LLM have (I will explain)

For existing companies with AI features: more useful but mostly LLM bolted on with the same use cases. They can improve the product if used right. But for me it’s mostly often just a gimmick.

The problem with LLMs: They mostly generate stuff they have seen and are bad as truly new stuff. They make mistakes You need to put time and energy in the review it.

For stuff that transforms data it’s useful. Like rewriting a piece of text.

It’s also useful for search queries on the corpus the LLM is trained on.

It’s good at pattern recognition and lastly: human like voice interfaces.

But for generating novel stuff: good luck reviewing it.

People who just blindly copy paste the output of an LLM: that’s quite dangerous and potentially plain wrong.

At least that’s my experience.

TeeWEE··on Postgres.new: In-browser Postgres with an AI interface
It is a neat tech demo but it clearly shows the limits of AI:

- I got it to generate invalid SQL resulting in errors - it merely generates reasonable SQL, but in my case it generated to disjoint set of tables…. - In practice you have tot review all code - It can point you into the wrong direction. Novel systems often have something smart/abstract in there. This system creates mostly Straightforward simple systems. That’s not where the value is

All in all, it’s not worth it to me. Writing code myself is easier than having to review LLM code

Within our organization we have forbidden full LLM merge request because more often than not the code was suboptimal. And had sneaky bugs/mistakes.

I’m not saying these can’t be overcome. But not with current LLM design. They mostly generate stuff they have seen and are bad as truly new stuff.

TeeWEE··on Show HN: PGlite – in-browser WASM Postgres with pgvector and live sync
That means getting those 2 million patients on every device... Really bad choice for medical software.
TeeWEE··on How Uber tests payments in production
Testing against the test environment works well for us. Even for terminal in person payments. Even makes it much easier to simulate edge cases.
TeeWEE··on How Uber tests payments in production
Why not change the backend yourselve? Don’t you have access to the repo?
TeeWEE··on Common side effects of not drinking
I don’t drink alcohol anymore. But I still drink. 0% alcohol beverages. 0.0 beers. Or <0.5% beers. I especially like IPA or Weissbeers

I still get invited for drinking. I still join parties. I still act crazy. Just without the bad side effects.

Note: going to a dance party the whole night still gives you a hangover. But because you were active. Not because of the alcohol. It’s less extreme.

TeeWEE··on CrowdStrike Update: Windows Bluescreen and Boot Loops
Even if you deploy manually all at once: you have the same problem.

A solution is slow rollout. Not a manual deploy button

TeeWEE··on Reverse engineering Ticketmaster's rotating barcodes
One things this articles kind of misses: You need that unique token... Ok, you can get it in some way.. But ticketmaster should keep it private, then, even if you know the algorithm. You still cant do a lot without the token......

So he reversed engineered it, but its still secure: You need the token.

TeeWEE··on Reverse engineering Ticketmaster's rotating barcodes
The barcode in apple wallet also auto-updates.
TeeWEE··on PostgreSQL and UUID as Primary Key
So it can’t use the internal id index, result: slow lookups for external ids.
TeeWEE··on PostgreSQL and UUID as Primary Key
Big serial is sequential and it’s very easy to guess the next number. So you got the problem of sequential key attack…

If you use only uuid in your outwards facing api then you still have the problem of slow queries. Since you need them to find the object (as mentioned below)

UUIDv7 has a random part, can be created distributedly, and indexes well.

It’s the best choice for modern application that support distributed data creation.

TeeWEE··on PostgreSQL and UUID as Primary Key
If you have distributed data creation. (Creating data on the client). And a CRDT style mechanism for syncing, then you can’t use bigserial because of the simple fact that it is sequential. The best solution here is uuidv7. Since you can generate these at the client even when offline.
TeeWEE··on Safe Superintelligence Inc.
Also to support this: Biological systems are often very simple systems but repeated a lot... The brain is a lot of neurons... Apparently having a neural net (even small) predicts the future better... And that increased survival..

To survive is to predict the future better than the other animal. Survival of the fittest.

TeeWEE··on Safe Superintelligence Inc.
Lossy compression of all world information results in super intelligence....

Thats the whole eureka thing to understand... To compress well, you need to understand. To predict the next word, you need to undestand the world.

Ilya explains it here: https://youtu.be/GI4Tpi48DlA?t=1053

TeeWEE··on Are flying cars finally here?
A Dutch company sold 100 flying cars to Dubai:

https://innovationorigins.com/en/dutch-flying-car-soars-with...

TeeWEE··on Double-entry bookkeeping as a directed graph
https://martin.kleppmann.com/2011/03/07/accounting-for-compu...
TeeWEE··on Netherlands is the second-largest exporter of agricultural products
According this this 80% of the exports are manufactured in the Netherlands: https://www.cbs.nl/nl-nl/nieuws/2016/23/nederland-tweede-lan...

Things like vertical food farms, huge greenhouses, intensive farming help us become (one of) the biggest

- milk and milk powder producer - apples (apples in South Africa are likely to come from the Netherlands) - tomato’s in Spain come from the Netherlands

Etc etc.

TeeWEE··on D2 Playground
Mermaid solves the problem for me for now.
TeeWEE··on Nix is a better Docker image builder than Docker's image builder
Just pin the dependencies and your mostly fine right?
TeeWEE··on Testcontainers
True but if you want to test every merge-request it becomes expensive.

We had a customer k8s cluster per feature branch with e2e testing.

A middle ground is testcontainers for feature branches, and the trunk branch a full e2e suite deployed to a live cluster...

TeeWEE··on Testcontainers
This is useful too but expensive.

Test containers provide a middle ground.

For example we have pure unit tests. But also some tests that boot up Postgres. Test the db migration and gives you a db to play with for your specific “unit” test test case.

No need for a complete environment with Kafka etc. It provides a cost effective stepping stone to what you describe.

What would be nice if test containers could create a complete environment, on the test machine and delete it again.

Still a deploy with some smoke tests on a real env are nice.

TeeWEE··on All you need is Wide Events, not "Metrics, Logs and Traces"
This is basically a metric with tags. Only difference is that a metric has a main unit it measures.

In the end anything can be represented as a structured log.

A span is NOT what the OP calls a “system wide event”. A span has a begin and end time. What he/she describes doesn’t have that.

In the end giving different kind of instrumentation instruments a name makes sense, mainly for processing them / rendering them / altering on them.

TeeWEE··on Meta's new LLM-based test generator
The proof is in the pudding, show me the code!

In my experience LLM are smart but sometimes inconsistent and over a long chat it might say things that are logically self contradictions… when you tell it that it confirms it.

It just seems like it lacks a consistent world view.

I don’t trust them yet. Maybe with even more scale they become better.

They act a little bit like young children, with a lot of domain knowledge.

← PreviousPage 2 of 23Next →