Dr Frames Catherine White @oxinabox.net · 23/09/2026It seems there is actually no great way to do open telemetry over GitHub actions. Solutions seem to be: Kinda broken: eg setup-opentelemetry Completely nuts: eg thoth Not opentelemetry: gha_buildevents Or only run in post, so can't be traceparent of stuff running in steps. Everything else. 100
Dr Frames Catherine White @oxinabox.net · 07/09/2026I do not like been given 2+ page long reports generated by claude They violate the expectation that anything i am being asked to read took at least 2x as long to write as it will for me to read it. And documents that I can't trust not to be lying to me with a great deal of confidence hurt my brain 191
Reposted by Dr Frames Catherine WhiteDr Frames Catherine White @oxinabox.net · 29/08/2026Slides from my pycon-au lightning talk. "There is only one operation for which humans care about enough to implement quintuple dispatch" It's either pro-or-anti multiple dispatch I guess. (For screen reader accessible see on canva: canva.link/jg27bz1t3q5n... It's almost all text) 292
Dr Frames Catherine White @oxinabox.net · 29/08/2026Slides from my pycon-au lightning talk. "There is only one operation for which humans care about enough to implement quintuple dispatch" It's either pro-or-anti multiple dispatch I guess. (For screen reader accessible see on canva: canva.link/jg27bz1t3q5n... It's almost all text) 292
Dr Frames Catherine White @oxinabox.net · 12/08/2026it's quiet amusing to me that LayeredLayouts.jl has 11 direct dependants (and 2 more indirect). Laying out DAGs is useful. Its why many languages implement smart heuristic algorithms for them. I did not implement a smart heuristic algorithms. I implemented the NP-Hard always optimal algorithm. 200
Dr Frames Catherine White @oxinabox.net · 15/05/2026On the maintaince of academic software there are two things I will always remember: (1/3) 100
Reposted by Dr Frames Catherine WhiteCatherine Frames @oxinabox.bsky.social · 15/05/2026Then: "why doesn't your kinetic model have any parameters" Me: "😭they are all state😭 why does everything effect everything?😭" Them: "how's your solver doing?" My solver: 😭 022
Dr Frames Catherine White @oxinabox.net · 15/05/2026added to my startup.jl `ENV["JULIA_PKG_PRESERVE_TIERED_INSTALLED"] = "true"` so hopefully i can stop precompiling things constantly when making minor changes to dependencies a package that indirectly depends on hundreds of packages. Somethings always getting updated at that scale 000
Dr Frames Catherine White @oxinabox.net · 11/05/2026love having PRs from 2020 merged, on active projects. It's like "I was right back then, and now you all see it" github.com/JuliaLang/ju...github.comempty fall back to emptymutable rather than Set() directly by oxinabox · Pull Request #34676 · JuliaLang/juliaI am going over the AbstractSet interface and it seems odd to define both of these seperatately as fallbacks to Set() 070
Dr Frames Catherine White @oxinabox.net · 13/03/2026It is starting to feel like I am going to have to learn all the theory behind Hit-and-run samplers, and other MCMC / probabilistic programming stuff. 010
Dr Frames Catherine White @oxinabox.net · 07/03/2026Had a PR merged without further changes, after 5 years github.com/queryverse/Q...github.comMore informative error message for noniterators by oxinabox · Pull Request #47 · queryverse/QueryOperators.jlIt was confusing when I was trying to implement a able and I got an error with no message 040
Dr Frames Catherine White @oxinabox.net · 06/03/2026was thinking back about my first vaguely significant open source PR today. Almost a decade ago. Feels much longer. github.com/JuliaLang/ju...github.comFast exp2(::Int) (fixs #17412) by oxinabox · Pull Request #17447 · JuliaLang/juliaThis Fixes #17412, using bit twiddling to find exp2(::Int). The method for doing subnormal results is from @ScottPJones The testing code may be a bit excessive, but it is fast. And it is important ... 030
Dr Frames Catherine White @oxinabox.net · 11/02/2026My employer did a spotlight on me for their social media. 😊😊😊 www.linkedin.com/posts/meet-o...linkedin.comMeet Our Team: Frames C White | Cell BauhausMeet the people making Cell Bauhaus work – and making it a place worth working for. First up: Frames Catherine White. 010
Dr Frames Catherine White @oxinabox.net · 30/01/2026Something I have been thinking about on and off is about the annotation of function primatives with properties, like nilpotent, associative, commutative, etc, then using (type) inference to infer this about functions built in them. Then using that for automatic parallelism and other optimisations. 120
Reposted by Dr Frames Catherine WhiteCatherine Frames @oxinabox.bsky.social · 29/01/2026I accidentally turned on AI completion in VS-Code yesterday. And I though "_fine_, I will finally try this thing" and I am really not liking having my tab completion lie to me? I just have to check it when it doesn't work, then look up the right way. When I could have just immediately looked it up 3352
Reposted by Dr Frames Catherine WhiteDr Frames Catherine White @oxinabox.net · 19/11/2025the amount of hatred i have for good tests that were marked "skip" because they are too slow that have bit rotted, is only exceeded by my hatred for good tests that were marked "skip" that are still good and would have caught bugs had they not been set to skip 051
Reposted by Dr Frames Catherine WhiteGomahuAzarashi @gomahuazarashi.bsky.social · 17/12/2025I've just created a #JuliaLang package BlueskyClient.jl github.com/AtelierArith... . You can post text, images with ALT text, GIFs, and MP4 videos from the package. Give it a try!github.comGitHub - AtelierArith/BlueskyClient.jl: Client application for Bluesky based on AT ProtocolClient application for Bluesky based on AT Protocol - AtelierArith/BlueskyClient.jl 3145
Dr Frames Catherine White @oxinabox.net · 14/01/2026this is a really cool page on all the tricks you can use to express different ideas in terms of (Mixed Integer) linear programming. Cos the whole thing is very tricky. Like the trick of splitting variables so you can have L1 regularisation which is nonlinear in naive implementationdocs.mosek.com9 Mixed integer optimization — MOSEK Modeling Cookbook 3.4.0 110
Dr Frames Catherine White @oxinabox.net · 02/12/2025I have spent far too much time dealing with flakey tests and nondeterministic failures today 040
Dr Frames Catherine White @oxinabox.net · 19/11/2025the amount of hatred i have for good tests that were marked "skip" because they are too slow that have bit rotted, is only exceeded by my hatred for good tests that were marked "skip" that are still good and would have caught bugs had they not been set to skip 051
Reposted by Dr Frames Catherine WhiteDr Frames Catherine White @oxinabox.net · 11/11/2025yes, I find i often in python I have modules that are really just one function (at least in their public API). Because it makes sense for all that to be in one file. Combined with explict imports and it makes quiet a complexity of import headers. 111
Dr Frames Catherine White @oxinabox.net · 14/11/2025does python 3 have an abstract base class for strings? I feel like it should. because for data-structures like a rope you want the string API, but you definately do not want to store it like a string, so inheriting from str is no good. en.wikipedia.org/wiki/Rope_(d...en.wikipedia.orgRope (data structure) - Wikipedia 220
Dr Frames Catherine White @oxinabox.net · 11/11/2025I 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. 110
Dr Frames Catherine White @oxinabox.net · 30/09/2025So 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. 140
Dr Frames Catherine White @oxinabox.net · 23/09/2025I 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 150
Dr Frames Catherine White @oxinabox.net · 13/09/2025I made an OpenSCAD library for engraving emoji into 3D prints. github.com/oxinabox/ope... 070
Dr Frames Catherine White @oxinabox.net · 24/08/2025Pretty 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. 021
Reposted by Dr Frames Catherine WhiteGuillaume Dalle @gdalle.bsky.social · 22/08/2025🚨 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 1135
Dr Frames Catherine White @oxinabox.net · 03/08/2025I ordered a 3D printer. I haven't had access to one since I left uni in 2018. And that one was ancient and temperamental. 040
Dr Frames Catherine White @oxinabox.net · 03/08/2025I 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 130
Dr Frames Catherine White @oxinabox.net · 03/08/2025One 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... 100
Dr Frames Catherine White @oxinabox.net · 03/08/2025The 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. 110
Dr Frames Catherine White @oxinabox.net · 03/08/2025Sometimes 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 PRgithub.comGitHub - plut/ConstructiveGeometry.jl: Algorithms and syntax for building CSG objects within Julia.Algorithms and syntax for building CSG objects within Julia. - plut/ConstructiveGeometry.jl 030
Dr Frames Catherine White @oxinabox.net · 01/08/2025DataStructures.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 160
Reposted by Dr Frames Catherine WhiteDr Frames Catherine White @oxinabox.net · 12/07/2025Biology 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) 121
Dr Frames Catherine White @oxinabox.net · 29/07/2025I actually quite like SQL. Nice language to express things in. Though how different versions of the same query will perform is mysterious 121
Dr Frames Catherine White @oxinabox.net · 12/07/2025Biology 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) 121
Dr Frames Catherine White @oxinabox.net · 02/07/2025Something i just said seriously at work: "How different is a human from yeast anyway? Probably not that different." 020
Dr Frames Catherine White @oxinabox.net · 27/06/2025What 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. 210
Dr Frames Catherine White @oxinabox.net · 25/06/2025I 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". 160
Dr Frames Catherine White @oxinabox.net · 13/06/2025I 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. 210
Dr Frames Catherine White @oxinabox.net · 12/06/2025I 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... 110
Dr Frames Catherine White @oxinabox.net · 12/06/2025NetworkX 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: 120
Dr Frames Catherine White @oxinabox.net · 06/06/2025Python is a 1 based language. It's just that indexing is written as `x[-i]`. The hyphen is important! Also lists are printed backwards. 151
Dr Frames Catherine White @oxinabox.net · 04/06/2025Classic 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. 000
Dr Frames Catherine White @oxinabox.net · 04/06/2025for 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: 100
Dr Frames Catherine White @oxinabox.net · 30/05/2025Inheritance was a mistake. Multiple inheritance, multiply so. 020
Reposted by Dr Frames Catherine WhiteMehmet Hakan Satman @jbytecode.bsky.social · 28/05/2025JOSS has now published more than 3,000 articles, and I've personally edited 60 of them (still editing +5). Being a part of JOSS has been one of the most fulfilling experiences of my life. @joss-openjournals.bsky.social #JOSS 042
Dr Frames Catherine White @oxinabox.net · 29/05/2025Anyone else with Github Teams suddenly see all Github Actions failing because if billing reasons? Today we started see that all of a sudden and i was confused cos out billing looks good. Then i noticed we had a new(?) budget tab. Which said 100% used ($0/$0). Changing that got things working again 000