Dr Frames Catherine White
oxinabox.net
Dr Frames Catherine White
@oxinabox.net
(She/her)
PhD.
Working on biology cell simulations.
Engineering, ML, Constrained Optimization, Modelling, JuliaLang, AutoDiff, Programming

This is my professional bsky.
I wanted to see if I was part of the Anthropic settlement class:

✅ Book on LibGen before 2021
✅ Book has ISBN
❎ were registered with the United States Copyright Office

Alas, I am not.
While my rights have obviously been violated, it is not in a way that is covered by this court case.
November 11, 2025 at 8:49 AM
So we had a model incorporating thermodynamic constrains called a ThermoModel.
And another model with enzyme constraints called a GeckoModel.
(Gecko = Genome-scale model Enzyme Constraints, using Kinetics and Omics.)

And we were making a model to combine them.
Some kind of ThermoGecko.
September 30, 2025 at 4:29 AM
I need to set julia to always run with bounds checks enabled.
I have done this before.
The big virtue is no more redoing precompilation between running normally and running tests.
Since julia makes seperate compliation caches for the 3 different settings for bounds checks.
+tests always have them on
September 23, 2025 at 2:40 AM
I made an OpenSCAD library for engraving emoji into 3D prints.

github.com/oxinabox/ope...
September 13, 2025 at 11:07 AM
Pretty happy with this for something I designed and printed all in one day,
while doing other things.

It snugly fits the brace on the back of mirrors. Which has a funny bumpy shape.

No more bracelets scattered over my dressing table.
August 24, 2025 at 3:09 PM
Reposted by Dr Frames Catherine White
🚨 Breaking news 🚨
Two epic tutorials announced for #JuliaCon Local Paris 2025: one about Pluto notebooks and one about using JuMP for optimization. Be sure to get your tickets this week, otherwise the early bird pricing will be gone 🦜
@juliacon.bsky.social @julialang.org @pydataparis.bsky.social
August 22, 2025 at 3:28 PM
I ordered a 3D printer.
I haven't had access to one since I left uni in 2018.
And that one was ancient and temperamental.
I should implement the same design o want to 3D print in OpenSCAD,
Descartes.jl, ConstructiveGeometry.jl, ImplicitCAD and a few other programatic CADs.
Then compare and contrast
August 3, 2025 at 10:52 AM
I should implement the same design o want to 3D print in OpenSCAD,
Descartes.jl, ConstructiveGeometry.jl, ImplicitCAD and a few other programatic CADs.
Then compare and contrast
August 3, 2025 at 10:27 AM
One julia thing I am coming around to after using python for a bit is explicit imports.

I used to be moderately hard against it. Working out where something is from is a tooling problem that is kinda solved.

But when jumping into a codebase where you are unfamiliar with the whole ecosystem...
August 3, 2025 at 4:40 AM
The 1 module per file pattern is not idiomatic Julia.
I am dubious of its success in python where it is built in and required.

You end up with a hell of avoiding circular dependencies.
And trying to match API organisation (external) to development organisation (internal) is just messy.
Long files.
August 3, 2025 at 4:30 AM
Sometimes it's fun to pick up random open source repos and contribute to them.
Yesterday I picked up ConstructiveGeometry.jl
Which is a Julia based OpenSCAD alternative.
It's a 1 person effort not touched in 4 years, and I got it working with latest releases of its dependencies etc.
and made a PR
GitHub - plut/ConstructiveGeometry.jl: Algorithms and syntax for building CSG objects within Julia.
Algorithms and syntax for building CSG objects within Julia. - plut/ConstructiveGeometry.jl
github.com
August 3, 2025 at 4:15 AM
DataStructures.jl v0.19 has been released..
Our first breaking release in 5 years.
It shouldn't be too breaking if you kept up with removing deprecated calls.
(For reference 0.18 has 22 patch releases which was an annoying amount of backporting to do. Might be a record for backporting)

#julialang
August 1, 2025 at 4:54 AM
Reposted by Dr Frames Catherine White
Biology be like:

So 1 gene encodes for 1 protein right? It's 1-1.
Well no, some genes are no coding.
Ok so it's 1-0/1

Well no, each AA can come from multiple different codons so two different genes can technically make the same protein.
Ok so many-0/1.

(It gets worse though)
July 12, 2025 at 3:04 PM
I actually quite like SQL.
Nice language to express things in.
Though how different versions of the same query will perform is mysterious
July 29, 2025 at 10:04 PM
Biology be like:

So 1 gene encodes for 1 protein right? It's 1-1.
Well no, some genes are no coding.
Ok so it's 1-0/1

Well no, each AA can come from multiple different codons so two different genes can technically make the same protein.
Ok so many-0/1.

(It gets worse though)
July 12, 2025 at 3:04 PM
Something i just said seriously at work:
"How different is a human from yeast anyway? Probably not that different."
July 2, 2025 at 10:11 AM
What database normalisation rule is broken by having redundant information

For example have a column for middle name and another column for middle initial.

It clearly breaks some rule as they could be updated separately and end up inconsistent.
June 27, 2025 at 4:39 AM
I was away for one week and someone added a `utils` file to the code base.
`utils` files are an antipattern because it's a meaningless name, an unclear grouping.
(A utils folder is ok if the files have good names).
And it tends to be where evil code lives.
often without tests.
Cos "its just utils".
June 25, 2025 at 11:01 AM
I wish github had a thing that would let me right click an item in a check-list and open a subissue with it's text as the title.
And edit the original post's checklist to be a link to that subissue.

That would make breaking stuff down for project management purposes much better.
June 13, 2025 at 4:31 PM
I thought Dask was supposed to be this really reliable thing, especially when using it with Coiled so I can't screw up my infrastructure.

But I have been fighting it all day, of it seemingly getting to a point where it stops talking back to client...
June 12, 2025 at 12:03 PM
NetworkX allowing anything to be the nodes in graphs is solidly nicer than Graphs.jl

Look how nice it is to go from a CobraPy model (a reaction network) to a (bipartite) Graph:
June 12, 2025 at 5:25 AM
Python is a 1 based language.
It's just that indexing is written as `x[-i]`.
The hyphen is important!

Also lists are printed backwards.
June 6, 2025 at 5:03 PM
Classic bio-data hell 🥰🥰🥰
I realised our tests depend on 5 subtly different GEMs for the ecoli core metabolism.
And they can't be substituted for each other without some rework.

Plus 2 for yeast, and 1 for salmonella.
June 4, 2025 at 11:33 AM
for any axis L of a convex polyhedron H
a function taking a point in P and returning the cross sectional area of a slice of H is convex.

similar for any direction D perpendicular to L, a function f_D(p in L) that returns the width of H in that direction D at point p, is convex.

So a question:
June 4, 2025 at 4:11 AM
Inheritance was a mistake.
Multiple inheritance, multiply so.
May 30, 2025 at 7:24 AM