HNHacker News
TopNewBestAskShowJobs

groodt

1,200 karma · joined March 18, 2012

[ my public key: https://keybase.io/groodt; my proof: https://keybase.io/groodt/sigs/hJRjjV6YOixT_kHJoqgs80lQm1kowvRBa8VVoitVczA ]
submissionscomments
groodt··on Evals are not all you need
The article doesn’t provide any alternatives?

I think there are indeed many challenges when evaluating Compound AI Systems (http://bair.berkeley.edu/blog/2024/02/18/compound-ai-systems...)

But evals in complex systems are the best we have at the moment. It’s a “best-practice” just like all the forms of testing in the “test pyramid” (https://martinfowler.com/articles/practical-test-pyramid.htm...)

Nothing is a silver bullet. Just hard won, ideally automated, integrated quality and verification checks, built deep into the system and SDLC.

groodt··on Canonical's 'distroless' Linux images are a game-changer for enterprises
Is this a response to Chainguard? https://www.chainguard.dev/
groodt··on Show HN: Mesop – Open-source Python UI framework
Exciting!

I'm surprised to see nobody has mentioned gradio yet. It seems to sit in the same niche as streamlit and mesop.

https://gradio.app/

groodt··on Modern Java/JVM Build Practices
+1

Bazel and monorepo are a bit exotic to most enterprise Java devs, but now that I've experienced it, I'll never go back to Gradle or Maven or sbt.

groodt··on The NixOS Foundation’s Call to Action: S3 Costs Require Community Support
Shopify and Target have been known to use it.
groodt··on Using Nix with Dockerfiles
This is neat!

The nixos:latest reference is amusing. A reproducible image from a non-reproducible reference.

groodt··on Cerebras-GPT: Open Compute-Optimal Language Models Trained on Cerebras Cluster
Thanks for publishing this. I quickly skimmed the paper, I saw the impressive linear scaling as you scaled to 16 nodes. How long did it take to train the various models in wall clock time?
groodt··on Python 3.12 will have a Per-Interpreter GIL
Link to PEP 684 https://peps.python.org/pep-0684/
groodt··on Reliable event dispatching using a transactional outbox
Any thoughts how to detect direct DML on the state table? Presumably allowing direct DML on the state table without the same on the Outbox table would lead to silent data corruption or lost updates.
groodt··on Just use a monorepo
What’s the story behind google3? What happened to google and google2?
groodt··on Underappreciated challenges with Python packaging
Python packaging gets a lot of criticism. It's a meme. The thing is, it's actually improved dramatically over the years and continues to improve.

The problems it solves are very complex if one looks a little below the surface. It is solving different problems to the ecosystems that it's often compared to: golang, rust, java, js.

groodt··on Push-based outbox pattern with Postgres logical replication
Does using this approach prevent direct DML changes or migrations outside application logic?
groodt··on 98% of top Python packages on PyPI distribute wheels
352 packages of top 360
groodt··on Announcing the PyOxy Python Runner, a single file (C)Python distribution
Yes, the idea is a more efficient version of a Python zipapp https://realpython.com/python-zipapp/

It's called Python Packed Resources https://pyoxidizer.readthedocs.io/en/stable/oxidized_importe...

Looks like a very slick set of tools.

groodt··on Show HN: Hatch 1.0.0 – Modern, extensible Python project management
This is true.

However if the transitive-closure in the dependencies contains an sdist package anywhere in the tree, written in a way that wasn't designed to be imported on all platforms (this is rare, but does happen), then it isn't possible to resolve cross platform.

The prevalence of wheels does alleviate this to some extent. I think it is one of the early design decisions that pip can only install/resolve for the current platform and this will be very difficult to unwind. There are movements slowly in a direction that may one day make it possible to statically resolve python packages and remove dynamic dependency metadata or builds happening during dependency resolution.

groodt··on 95% of top Python packages on PyPI distribute wheels
342 out of 360
groodt··on Hyperparameter Optimization with Argo
Data Platform Group lead at Canva here.

There are many open and commercial options for hyperparameter optimization.

We didn't select Argo for hyperparameter optimization. The situation is that because we already used Argo for our ML training and data processing jobs, we wanted to see if it could be extended for hyperparameter optimization. It actually can!

As mentioned briefly in the article, we try to use tools with minimal overlap. It's not always possible of course and sometimes new tools are necessary.

groodt··on Hyperparameter Optimization with Argo
Data Platform Group lead at Canva here.

Yes, YAML does seem to be the "Cloud Native" tax. For all but the simplest of Workflows, it is necessary to use a templating language or one of the Argo SDKs.

We use jsonnet for building and manipulating YAML at the moment and are reasonably happy with it.

groodt··on Nixos-unstable’s ISO_minimal.x86_64-Linux is 100% reproducible
This is a big deal. Congratulations to all involved.

In Software, complexity naturally increases over time and dependencies and interactions between components become impossible to reason about. Eventually this complexity causes the Software to collapse under its own weight.

Truly reproducible builds (such as NixOS and Nixpkgs) provides us with islands of "determinism" which can be taken as true invariants. This enables us to build more Systems and Software on top of deterministic foundations that can be reproduced by others.

This reproducibility also enables powerful things like decentralized / distributed trust. Different third-parties can build the same software and compare the results. If they differ, it could indicate one of the sources has been compromised. See Trustix https://github.com/tweag/trustix

groodt··on Enabling real-time collaboration with RSocket
Really solid detail on load-balancing. Always so tricky with socket servers.
groodt··on Cosmopolitan Libc: build-once run-anywhere C library
This is very clever. I wonder if it could be adopted for Python C extensions (where possible) to make it easier to distribute cross-platform binary distributions. Of course it wouldn’t be suitable for gui toolkits, but I imagine that the majority of Python C-extensions could be handled.
groodt··on Python Pip 20.3 Released with new resolver
Seen a few mentions of poetry. Not many for pip-tools which has been around longer, is less opinionated and has many of the same benefits https://github.com/jazzband/pip-tools
groodt··on Python Pip 20.3 Released with new resolver
Yes, the new resolver is the highlight.

Permalink to the release notes: https://github.com/pypa/pip/blob/c31c148a5b1d87591862c715adc...

groodt··on Python Pip 20.3 Released with new resolver
Permalink to the release notes: https://github.com/pypa/pip/blob/c31c148a5b1d87591862c715adc...
groodt··on Changes to the pip dependency resolver in 20.3
Huge kudos to pradyunsg and the rest of the team.

In a world where we focus on the shiny new things, it is so easy to ignore the legacy systems upon which they are built.

This will be the end of a 7+ year GitHub issue: https://github.com/pypa/pip/issues/988

Python is an old language (older than Java) and its packaging systems are often the butt of many jokes. Its fantastic to see investments and improvements in this area. It isnt easy with Python, given that the build process is often executing code "setup.py" so resolving dependencies statically isn't possible without running Python.

groodt··on Metaplane – A metadata catalog for modern data teams
Looks interesting. I'm finding that using dbt and the automatically generated docs helps with quite a lot of this. There are other sources of metadata though, so I can see why some might want a tool like this.
groodt··on Python Wheels Crosses 90%
I think still a while off https://mail.python.org/archives/list/distutils-sig@python.o...
groodt··on Python Wheels Crosses 90%
Apologies, I think the question was edited/clarified after my comment.

Gems are more similar to Python sdist’s. Native code is compiled on the installing host.

There is no specification like manylinux1,2010,2014 like there are for Python Wheels.

In this sense, Python Wheels can be considered more sophisticated than Ruby Gems.

groodt··on Python Wheels Crosses 90%
If you were using PyPI before Wheels were available, you would have encountered source distributions (sdist).
groodt··on Python Wheels Crosses 90%
Gems
Page 1 of 2Next →