Hacker Newsnew | past | comments | ask | show | jobs | submit | patrickkidger's commentslogin

I'd love to have a way to make xlsx files be git-compatible, i.e. stored in plaintext.

I realise this may be out-of-scope as it's kind of baked into the file format, but does Nobie offer any functionality in that direction?


via the CLI, you could probz stream values and formatting out of the sheet, although we probably need to add a few things to ensure you can reach into every nook and cranny of the xlsx file.

We an example on our site of how you might use git & nobie together.


The Tiny Pharma Company | Founding Scientist | London/Zurich

https://tinypharma.bio/jobs/

AI+pharma startup, and each person owns a program, from concept to clinic. (Further details omitted, still in stealth.) We hire anyone exceptional in AIxBio, we don't look to fill defined roles.

Founding team (including me! https://kidger.site) are ex-{Cradle, Google, Oxford, ETH}, backgrounds in protein language models, antibody design, JAX scientific ecosystem, neural differential equations.

"RenTech of pharma"!

:)


I'll offer a +1 to the sibling comment here.

Yeah it's totally true you can't build a one-size-fits-all foundation model, the data just isn't there. But also... no-one needs that. It's totally fine to tweak a foundation model for any individual problem, and that's the bulk of what is being described in the linked blog post / in the underlying paper.

FWIW whilst at Cradle we had a lot of doubts going into this. Like, thermostability is clearly evolutionarily correlated so it was always pretty likely that by hook or by crook the models could do that correctly. But, binding? Aggregation? Not at all clear that the same principles should hold. And the exciting finding was that yes, yes they do.


Oh hello Thomas, fancy seeing you here :D ex-Cradlers unite!


A rare breed!


Oh heck, this is awesome to see on the front page! I wrote the underlying Cradle-1 paper that is being discussed!

I used to work for Cradle and writing this paper was the last thing I did before leaving – on good terms – to found my own startup. :D And we'll 100% be using Cradle for our lead optimization.

(On the off-chance: I'm at PEGS Boston this week chatting all things AI+antibodies, in particular for rare diseases. If this topic is of interest to any other protein+tech geeks here then send me an email, let's grab coffee.)


I'm not sure if I'm about to be the old man yelling at clouds, but Anthropic seem to be 'AWS-ifying'. An increasing suite of products which (at least to me) seem to undifferentiated amongst themselves, and all drawn from the same roulette wheel of words.

We've got Claude Managed Agents, Claude Agent SDK, Claude API, Claude Code, Claude Platform, Claude Cowork, Claude Enterprise, and plain old 'Claude'. And honourable mention to Claude Haiku/Sonnet/Opus 4.{whatever} as yet another thing with the same prefix. I feel like it's about once a week I see a new announcement here on HN about some new agentic Claude whatever-it-is.

I have pretty much retreated in the face of this to 'just the API + `pi` + Claude Opus 4.{most recent minor release}', as a surface area I can understand.


Quick heads-up that these days I recommend https://github.com/patrick-kidger/jaxtyping over the older repository you've linked there.

I learnt a lot the first time around, so the newer one is much better :)


Ah, I would have never thought jaxtyping supports torch :)


I think so!

I've not tried a couple of things you mention (e.g. background images) but e.g. for dynamic placing there are libraries like https://typst.app/universe/package/meander

The core of Typst is a pretty featureful well-thought-out FP language. This makes expressing libraries for any piece of functionality very pleasant.


This is how static type checkers are told that an imported object is part of the public API for that file. (In addition to anything else present in that file.)

C.f. "the intention here is that only names imported using the form X as X will be exported" from PEP484. [1]

I'm generally a fan of the style of putting all the implementation in private modules (whose names start with an underscore) and then using __init__.py files solely to declare the public API.

[1] https://peps.python.org/pep-0484/


That looks like its only for stub files not __init__.py


It also applies to any .py file. (At least in practice with e.g. pyright)

That said, the documentation on this matter is close to nonexistent.


Oh neat! This is my library. Happy to answer any questions.

(Though it's really a pretty tiny library that just does what it says on the tin, not sure how many questions there can be. :D )


I have a question. Why do you prefix your package files with an underscore?

In fact, you write all of your python like you really have something to hide ;) Like `_Todo`.

Where did you get this pattern?

(I’m way more curious than accusatory. Are people embracing private modules these days as a convention, and I just missed it?)


I think _private has always been a convention in Python, though I'd say most Python is not so rigorous about it. I don't see why it couldn't be applied to modules.

I honestly love when I see a package do stuff like this: it's very clear then what is public interface, and I should consider usable (without sin) and what is supposed to be an internal detail.

Same with the modules: then it is very clear that the re-export of those names in __init__.py is where they're meant to be consumed, and the other modules are just for organizational purposes, not API purposes.

_Todo is then a private type.

Very clean.


I tend to do the same, some colleagues as well, so I guess this is some common pattern.

The way I see it there are two schools:

- The whitelist school: You write everything without _ prefix, then you whitelist what you want accessible with __all__.

- The explicit school: You forget about all and just use _ for symbols, modules, etc.

I find the latter more readable and consistent (can be applied to attributes, free functions, modules...


Yup, you(/sibling comments) have it correct, it's to mark it as private.

Not sure where I got it from, it just seems clean. I don't think I see this super frequently in the ecosystem at large, although anything I've had a hand in will tend to use this style!


I just want to say this is brilliant. I've had my share of problems with asyncio and went back to using sync python and deque instead.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: