HNHacker News
TopNewBestAskShowJobs

adeptima

521 karma · joined March 12, 2012

done with @adeptima, mainly known as @reactima

Want to discuss comment or brainstorm. Dont hesitate, text me

https://t.me/reactima https://api.whatsapp.com/send?phone=818047562323

Creating SaaS applications with Reactjs/Python/Golang/TS. If got interested in any of my comments with lot links and github references, feel free to ping me on whatsapp or telegram.

Notes and fragments for LLVM hallucination https://zeroread.com/

submissionscomments
adeptima··on Datadog acquires Quickwit
No, no. It's all good and amazing. IMHO Grafana is getting even more important in the light of possible disappearing a solid potential competitor. Hope Datadog will be smart enough with Quickwit and opportunity to win the hearts and minds.

Clearly an opportunity for Datadog to make a big statement here, and change its perceptions.

adeptima··on Datadog acquires Quickwit
There are multiple possible outcomes from the merge with Datadog.

As my ex manager once told - there is no such thing as nice people in P&L statement. Someone has to pay

It's very easy to be anxious and see the path to the dark side here.

However one of possible outcomes - there will be a valid open source competitor to Grafana ecosystems, and this along secure the rest of scene from relicensing. There is a chance it will be all win-win with clear sustainable path and no money and power struggles for founders.

I want to stay on the positive here. Time will show.

adeptima··on Datadog acquires Quickwit
Congratulations! The fact you and your team managed to built Tantivy is a huge contribution to open source.

As someone who never managed to built a fond relationship with Apache Lucene based products (Solf, Elastic). I was extremely happy to see Tantivy in open source.

BM25 scoring, proper asian language support, speed, memory foot prints, etc - amazing job! Thank you so much!

https://github.com/quickwit-oss/tantivy

IMHO Datadog made a smart move!

If Tantivy itself just stays permanently under Apache2 licence and find a sustainable path to co exist with the rest of open source community - it's all good guys. You are more than deserve a commercial success.

adeptima··on KAG – Knowledge Graph RAG Framework
This comment and an idea to work backwards deserve an article!

Just finished a call a few mins, and we came to conclusion we do natural query language, BM25 scoring with Tantivy based code first

https://github.com/quickwit-oss/tantivy

In meanwhile we collect all questions to ask LLM so we can be more consious at Hybrid Search implementation phase

adeptima··on Why HNSW is not the answer and disk-based alternatives might be more practical
Highly recommend to prompt the following in LLM if you are trying to grasp Hybrid(Keyword, Filter + Vector) search or HNSW vs IVF flavour topics

Graph-Based (HNSW) vs Cluster-Based (IVF)

Memory Usage: Higher for HNSW due to graph storage requirements vs Lowerfor IVF; stores cluster centroids and subsets of vectors

Accuracy: High recall and precision, close to exact search vs Recall depends on the number of clusters and visited partitions

Build Time: Slower for HNSW, Faster for IVF

Best for: Real-time, high-accuracy tasks requiring dynamic updates vs Large, static datasets with strict memory constraints

Notable Graph-Based (HNSW) Variants - Faiss HNSW or PANNG (Proximity and Navigable Neighbor Graph)

Cluster-Based (IVF) Variants - IVF-PQ for memory-constrained environments, Multi-Index IVF partitions, IVF-GPU

adeptima··on Building Effective "Agents"
IMHO Temporal and its team is great - it checks all boxes on abstracting away queues, schedulers, distributed state machines for your workflows related load balancers/gateways.

After following discussions and commits Hatchet, Inngest, Windmill, I have a feeling in few years time all other systems will have 95% overlap in core features. They are all influence each other.

Much bigger question what price you will pay by introducing workflow system like Temporal in your code base.

Temporal and co are not for real-time data pubsub.

If latency is an issue or want to keep small memory footprint, better to use something else.

The max payload is 2 MB. It needs to be serializable. Event History has limitations. It's a postgres write heavy.

Bringing the entire team on the same page, and it's not trivial either. If your team has strong Golang developers like in mine. They might oppose it and state something like Temporal is unnecessary abstraction.

Writing your code is fun. Studying and reusing someone else patterns is not so much. Check https://github.com/temporalio/samples-go

For now, I decided to keep prototyping with Temporal and has it running on my personal projects till I create strong use cases and discover all edges.

The great side of effect of exploring Temporal and its competitors you will see better ways of structuring of your code. Especially with distributed state and decoupling execution.

adeptima··on Building Effective "Agents"
100% agree. I did a research on workflows, durable execution engines in context of Agents and RAGs. Put some links in a comment to the article below
adeptima··on Building Effective "Agents"
The whole Agent thing can easily blow in complexity.

Here some challenges I personally faced recently

- Durable Execution Paradigm: You may need the system to operate in a "durable execution" fashion like Temporal, Hatchet, Inngest, and Windmill. Your processes need to run for months, be upgraded and restarted. Links below

- FSM vs. DAG: Sometimes, a Finite State Machine (FSM) is more appropriate than a Directed Acyclic Graph (DAG) for my use cases. FSMs support cyclic behavior, allowing for repeated states or loops (e.g., in marketing sequences). FSM done right is hard. If you need FSM, you can't use most tools without "magic" hacking

- Observability and Tracing - takes time to put it everything nice in Grafana (Alloy, Tempo, Loki, Prometheus) or whatever you prefer. Attention switch between multiple systems is not an option during to limited attention span and "skills" issue. Most of "out of box" functionality or new Agents frameworks quickly becomes a liability

- Token/Inference Economy - token consumption and identifying edge cases with poor token management is a challenge, similar to Ethereum's gas consumption issues. Building a billing system based on actual consumption on the top of Stripe was a challenge. This is even 10x harder ... at least for me ;)

- Context Switching - managing context switching is akin to handling concurrency and scheduling with async/await paradigms, which can become complex. Simple prompts is a ok, but once you start joggling documents or screenshots or screen reading it's another game.

What I like about the all above it's nothing new - all design patterns, architecture are known for a while.

It's just hard to see it through AI/ML buzzwords storm ... but once you start looking at source code ... the fog of mind wars become clear.

Durable Execution / Workflow Engines

- Temporal https://github.com/temporalio - https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...

- Hatchet https://news.ycombinator.com/item?id=39643136

- Inngest https://news.ycombinator.com/item?id=36403014

- Windmill https://news.ycombinator.com/item?id=35920082

Any comments and links on the above challenges and solutions are greatly appreciated!

adeptima··on The secret life of DNS packets (2019)
There are many more dark secrets of DNS packets. Especially, in the context of internet providers and censorship industry - DNS Filtering, DNS Spoofing/Poisoning, Blocking Public DNS, etc
adeptima··on Dear OAuth Providers
Dear OIDC/OAuth Providers, please do proper support for SCIM, design your systems with "API first mindset" and let me design my routes for redirects and embedded login functionality ... before you move onto GNAP (Grant Negotiation and Authorization Protocol) https://oauth.net/gnap/ ... reconsider your decisions
adeptima··on 1BRC Coding Challenge: Nerd Sniping the Java Community
Gosh, ant thnx for sharing. Hope this would never become a mainstream during coding interview. Imaging - please list top 10 hash table implementations and its time and space complexity
adeptima··on 1BRC Coding Challenge: Nerd Sniping the Java Community
Amazing! I've just asked few secs ago to share more posts discussing 1BRC in different languages, and here we go. Thank you!
adeptima··on 1BRC Coding Challenge: Nerd Sniping the Java Community
thanx! 2.9 seconds (4.5 GB/s using .NET 8 on my Xeon Mac)
adeptima··on 1BRC Coding Challenge: Nerd Sniping the Java Community
please share! it's such great challenge to map each language internals. here's an idea how to write up https://r2p.dev/b/2024-03-18-1brc-go/
adeptima··on 1BRC Coding Challenge: Nerd Sniping the Java Community
... previously https://github.com/shraddhaag/1brc
adeptima··on 1BRC Coding Challenge: Nerd Sniping the Java Community
@ThePrimeTimeagen trigger ... BRazil mentioned ...

New Go Billion Row Challenge w/ Great Optimizations | Prime Reacts

- https://www.youtube.com/watch?v=SZ1PDS7iRU8

- https://r2p.dev/b/2024-03-18-1brc-go/

Spoiler:

SwissMap: A smaller, faster Golang Hash Table

- https://www.dolthub.com/blog/2023-03-28-swiss-map/

- https://github.com/dolthub/swiss

Want to see Paul Allen's implementation in Rust, Zig, Mojo ... and even Bun.sh, Deno.com

adeptima··on FLOSS/fund for free and open source projects
"The rise of the "open core" model and the unfortunate license changes in many good open projects recently, are clear signs of this growing turmoil. ... That said, Python libraries raising massive amounts of VC funding in quick time does not look like a healthy trend."

I call it a "happy problem" - kind of problem you get in with lot of money.

All participating parties are having middle class above life style and looking for the way to balance each other.

adeptima··on Software engineering industry in 2024 what, why changed in 2 years, what is next
United States Fed Funds Interest Rate

https://tradingeconomics.com/united-states/interest-rate

Next Jackson Hole Symposium to speculate on 2024-08-22 12:00 AM https://en.wikipedia.org/wiki/Jackson_Hole_Economic_Symposiu...

"The Symposium often serves as a platform for major policy announcements by the Federal Reserve and other central banks. "

adeptima··on Software engineering industry in 2024 what, why changed in 2 years, what is next
Found it very good, and plain simple.

Keynote at Craft Conference 2024 video https://www.youtube.com/watch?v=VpPPHDxR9aM

01:22 Small teams moving faster than before

03:21 What else is familiar from earlier?

05:13 What is going on in the tech industry?

11:13 Root cause #1: interest rates

18:37 Root cause #2: smartphone & cloud revolution

20:57 The new reality for software engineers

23:41 Shopify's preparation to this "new reality"

25:56 The new reality for software engineering practices

34:21 Haven't we seen this before?

Very simple explanation on interest rate impact on VC funding and IPO, and what might come next with related tech bubble, trigger events

adeptima··on Show HN: Sendune – open-source HTML email designer
This work looks very promising. "HTML for email" is indeed hard to design and hard to implement. Especially editing on mobile, tablet devices, or asian (two+ bytes japanese, chinese) languages input nightmare.

I do lot of email templating for B2B CRM use cases and decided to opt out for a bit different approach based on slatejs/platejs editor

https://docs.slatejs.org/

https://github.com/ianstormtaylor/slate

https://github.com/udecode/plate

The internal representation of email template with variables in slatejs/platejs json format can look like:

{ "type": "h1", "children": [ { "text": " Blocks {{template_value}} {{$timenow}}}" } ], "id": "1" }

Can be easily stored in Postgres jsonb. Very easy to add Reacjs base widgets like mentioning, media, diagrams, etc inside of slatejs/platejs editor.

The drawback is that you can't design the exactly the same pixel perfect template.

The better abstraction is probably MJML - https://mjml.io/ ... and yet with slatejs/platejs json format you can copy&paste your editings across various assets in CRM, knowledge base, etc

Storing data in MJML is not a great choise for me

<mj-text align="left" color="#55575d" font-family="Arial, sans-serif" font-size="13px" line-height="22px" padding-bottom="0px" padding-top="0px" padding="10px 25px"> ...

Was thinking about using something similar to /SendWithSES/Drag-and-Drop-Email-Designer as the last final step ... but couldn't settle it my brain and most end-users dont care anyway.

Any thoughts on data representations and "Postgres <> Editor > Email HTML > Send button" dataflow is greatly appreciated. Very few people have serious thoughts on the subject.

adeptima··on Panic at the Job Market
I actually enjoyed reading it. There are lot of tech bro folklore in it.

- company in California with a motto of “never hire Americans because 16 year old outsourced Croatian interns know everything already

- it would take a couple million united states freedom bucks to build working prototypes ...

There is enough lines to spin off Silicon Valley successor from it, or at least have a good conversation with the author at local bar.

adeptima··on Three ways to think about Go channels
Well writen. Will recommend to all newcomers from other languages.

As for uncovered topics or part 2 - long running Go channels can be a nightmare.

You need to implement kind of observability for them.

You must find the way to stop/run again/upgrade and even version payload to handle your channels/goroutine.

Common problem with channels overuse is so called goroutine leaks. Happens more often than most devs think. Especially, if lib writers initiate goroutines in init() to maintain cache or do some background cleanup job. It's good to scan all used packages for such surprises.

You might also find concepts like "durable execution" or "workflow" engines down the road.

adeptima··on Ask HN: Why do message queue-based architectures seem less popular now?
The hype was cooled down once companies realized "they have more microservices than actual users"

Was never obsessed with "event-driven" distributed systems using message queues.

The major issue is to keep syncing state between services.

Quite for a long time used to get decent results with simple golang and postgres scripts to distribute work between workers on multiple bare metal machines

Took ideas from projects similar to MessageDB

https://redis.io/docs/latest/develop/data-types/streams/

CREATE TABLE IF NOT EXISTS message_store.messages ( global_position bigserial NOT NULL, position bigint NOT NULL, time TIMESTAMP WITHOUT TIME ZONE DEFAULT (now() AT TIME ZONE 'utc') NOT NULL, stream_name text NOT NULL, type text NOT NULL, data jsonb, metadata jsonb, id UUID NOT NULL DEFAULT gen_random_uuid() );

along with Notify https://www.postgresql.org/docs/9.0/sql-notify.html

or polling techinques

Redis Stream here and there worked well too https://redis.io/docs/latest/develop/data-types/streams/

Another possible alternative can be "durable execution" platforms like Temporal, Hatchet, Inngest mentioned on HN many times

- Temporal - https://temporal.io/ - https://github.com/temporalio - https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...

- Hatchet https://news.ycombinator.com/item?id=39643136

- Inngest https://news.ycombinator.com/item?id=36403014

- Windmill https://news.ycombinator.com/item?id=35920082

Biggest issues I had with workflow platforms - it requires a huge congnitive investments in understanding SDKs, best practices, deciding how properly persist data. Especially, if you optout to host it yourself.

adeptima··on The upcoming iterator design for Go 1.23
thnx for compiling quotes! useful
adeptima··on The upcoming iterator design for Go 1.23
I guess my system got immuned to such things after TS/JS coding, but if 20% of community will say it has "hidden magic" I'm not excited too.

Fast learning curve for new hires is a top golang feature for me too.

adeptima··on The upcoming iterator design for Go 1.23
Nice write-up! At my personal level, I feel nothing about Iterators or even Generic. I can live with or without it, and kind of dont mind it to be used by library authors.

I didnt had a single line of code broken by golang version up updates in 7+ years, scanning through golang source code is always a pleasure. No hidden magic. I dont read documention either - just surfing inside of source code by clicking with CMD key.

My main KPI for Golang is the ammount of clicks required to understand internals ... very few compare to other languages.

If its stamped by guys like Russ Cox (rsc), I can sleep well too.

adeptima··on Postgres 17: Streaming I/O for sequential scans and ANALYZE
thnx!
adeptima··on Postgres 17: Streaming I/O for sequential scans and ANALYZE
Let me do a lazy copy-paste "The phrase "Postgres is the database OS" is often attributed to Bruce Momjian, a co-founder of the PostgreSQL Global Development Group and a prominent figure in the PostgreSQL community. He has frequently used this phrase to highlight the extensibility and versatility of PostgreSQL, comparing it to an operating system in terms of its ability to support a wide range of functionalities through extensions and customizations."
adeptima··on Postgres 17: Streaming I/O for sequential scans and ANALYZE
100% agree with brasetvik! So much efforts put in it!

Postgres is not just a database, but "database OS"

Discovered it a few months ago, and going through its last year posts and videos.

Postgres ecosystem is clearly booming with all its extensions like pgvector, paradedb and many many amazing tools, and derived projects

All videos annotated and accompanied with summary article

https://pganalyze.com/blog

Just look at the past 3 episodes

- E118 https://pganalyze.com/blog/5mins-postgres-17-materialized-ct...

- E117 https://pganalyze.com/blog/5mins-postgres-planner-join-equiv...

- E116 https://pganalyze.com/blog/5mins-postgres-17-beta1

Scaling Postgres is a great too

- https://www.youtube.com/@ScalingPostgres/videos

- https://www.scalingpostgres.com/episodes/

Postgres is eating the database world

https://medium.com/@fengruohang/postgres-is-eating-the-datab...

PG Feature Matrix https://www.postgresql.org/about/featurematrix/

adeptima··on Postgres 17: Streaming I/O for sequential scans and ANALYZE
100%!
← PreviousPage 3 of 6Next →