Chris Armstrong 's Avatar

Chris Armstrong

@chrisarmstrong.link.bsky.social

Software developer. Javascript/TypeScript, AWS. OCaml my camel. other tech stuff. πŸ‡¦πŸ‡Ί πŸ³οΈβ€πŸŒˆ Blog: https://www.chrisarmstrong.dev Twitch: https://twitch.tv/lambdalith

1,061 Followers  |  450 Following  |  401 Posts  |  Joined: 23.10.2024  |  2.089

Latest posts by chrisarmstrong.link on Bluesky

Ludicity <blockquote> "While I'm deeply sympathetic, the author should be discussing their issues with a therapist rather than spreading this on the internet." </blockquote> I finally rage-quit and started a...

This writing resonates with me far too much with respect to Australia's tech market for someone this far into their career.

I can't look away

ludic.mataroa.blog (yes, of "I Will Fucking Piledrive You If You Mention AI Again" fame)

07.08.2025 00:15 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

My starter burned through its white flour in 4 hours after sluggishly working through rye flour in 12. wtf is this monster

06.08.2025 11:57 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
OCaml - The dynlink library: dynamic loading and linking of object files

And dynlink in the manual looks relevant ocaml.org/manual/5.3/l...

03.08.2025 04:30 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Dynamic Loading of Packages with Findlib - Dune documentation

This is how it’s done with done, which is probably a good starting point dune.readthedocs.io/en/stable/ad...

03.08.2025 04:30 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

We ended up building our own on @honeycomb.io which has made it really easy to identify the worst tests and monitor for performance regressions. I was recently on a call with Gitlab trying to debug an issue and it was this observability that helped us find the issue, not theirs.

03.08.2025 04:26 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

With CI/CD observability, you’re usually trying to answer high level questions like β€œwhats the slowest/jankiest test” and β€œhow long does it take to run a merge pipeline”, questions most providers make it hard to answer.

03.08.2025 04:26 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

*Observability*: I don’t think any provider supports this well (the podcast mentions Github, which I agree is particularly bad. Gitlab is passable for individual workflows but terrible in the aggregate).

03.08.2025 04:26 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

We solve it with spot instances, which helps with both scale-up and scale-down as well as minimising cost, but the support from CI/CD providers is very limited (we use Gitlab, who don’t really support it fully and where we find lots of issues with their fleeting plugin)

03.08.2025 04:26 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

*Spikey workloads*: like agentic AI, serverless development workflows spin up a new environment for testing each branch, resulting in quick surges of demand on CI/CD infrastructure. This poses both a scale-up and cost issue.

03.08.2025 04:26 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

The external systems are not just legacy ones; we find the same issue with modern SaaS products as well. The solution (unfortunately) is usually contract testing and/or emulation.

03.08.2025 04:26 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Flakey tests:* for me, this is the same, mostly browser-based tests. But also integration tests: the cause is usually an external system that cannot deal with the load of CI/CD servers spamming it with requests.

03.08.2025 04:26 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
Software Huddle Technology Podcast Β· Updated Daily Β· Join Alex DeBrie and Sean Falconer in insightful and in-depth interviews with tech experts, covering software development, entrepreneurship, and technology trends....

Listening to podcasts.apple.com/au/podcast/s... and they highlight several issues I find with CI/CD and serverless development workflows, not just AI agentic 1/n

03.08.2025 04:26 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Maybe using the compilerlibs to emit and then using the plugin infra (I forget the name of it) to load something

03.08.2025 03:28 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Rounding up the mooglets in FF7 so they get back to work is such a metaphor for the market disciplining labour, or whatever

02.08.2025 11:39 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

TIL I could use `#variant_name` to split up a polymorphic variant in OCaml e.g.

type standard_status = [`OK, | `Bad_request | ...]
type status = [standard_status | `Status of int]

let normalised_status status = match status with
| `Status x -> Status.of_code x
| \#standard_status as s -> s

02.08.2025 10:34 β€” πŸ‘ 11    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0

We now have borders and passports because travel is cheap and easy, and the state does not have legitimacy as a political entity unless it has meaningful control over its territory.

01.08.2025 22:55 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

This was:
* true for anyone who could afford the the privilege of travel
* possible no thanks to a vast British Empire that rules half the world
* obviously excluded those forbidden by exclusionary laws like the White Australia policy that could be applied arbitrarily to anyone at the border

01.08.2025 22:48 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

It wasn’t mentioned anywhere on the mlx page and I didn’t think the reason one would work as they seem to be different calling conventions

30.07.2025 21:17 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Ok you were right @sabine.sh mlx with html_of_jsx is pleasant

30.07.2025 10:04 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 1    πŸ“Œ 1

I’ve tried to leave a cursory review but I’ve not had the chance to run it and try it out (it is something I’m interested in using down the track though)

29.07.2025 22:32 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

It does sound like this PR should be a new ansistyle library, with ansifmt evolving to add the missing Formatting API mentioned in the README

29.07.2025 21:57 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Based on some of the description about being incompatible and missing features from the previous version, Im wondering if this should be a totally different library with a new name? Unless you had few downstream consumers of the previous version

29.07.2025 21:50 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

I think this would give a much better result as it tries to be more sophisticated in how it handles string children vs non string children etc

29.07.2025 12:04 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
GitHub - davesnx/html_of_jsx: Render HTML with JSX Render HTML with JSX. Contribute to davesnx/html_of_jsx development by creating an account on GitHub.

Oh I see this now, which is what I was trying to build: github.com/davesnx/html...

29.07.2025 12:04 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 2    πŸ“Œ 0

This is what I’m talking about. On its own it needs a ppx but even then I’m questioning the whole stack

29.07.2025 06:52 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

I think jsx like structures don’t map elegantly onto anything in ocaml so i wonder if it’s a dead end

28.07.2025 22:58 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

So I wrote a ppx to convert mlx from function calls to a tree structure and realized the solution doesn’t really work for type safety of attributes or autocomplete or meaningful error messaging and now going back to square one.

28.07.2025 22:58 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 2    πŸ“Œ 0

How the hell did Eurydice and Orpheus reenter the zeitgeist with such a vengeance.

I’ve seen so many tv and movies and theatre adaptations in the past few months

27.07.2025 23:41 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

The only saving grace is that were probably about 15-20 years ahead of the UK and US on the response to irregular migration that it will be hard to repeat the same politics in the same way - its likely to be another issue like regular migration or housing which does not demand the same cruelty.

27.07.2025 23:02 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Looking at all the authoritarian and populist garbage politics arising in other anglosphere countries is depressing because I know how appallingly weak Australia’s political structures are and it only seems like a matter of time.

27.07.2025 23:02 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

@chrisarmstrong.link is following 19 prominent accounts