HNHacker News
TopNewBestAskShowJobs

chris_armstrong

266 karma · joined August 7, 2019

submissionscomments
chris_armstrong··on Zig got a new ELF linker and it's fast
zig has a cross-compiler frontend (zig cc) which can be used as a drop-in replacement for a custom sysroot + binutils + gcc for several platforms. I've used it to build OCaml cross-compilers that only depend on zig itself (https://www.chrisarmstrong.dev/posts/ocaml-cross-compilation...).

There are other projects that have used it in a similar way too.

[1] https://actually.fyi/posts/zig-makes-rust-cross-compilation-... [2] https://jcbhmr.com/2024/07/19/zig-cc-cmake/

chris_armstrong··on Zig got a new ELF linker and it's fast
If I recall correctly, this is one of the final pieces that allows zig to be used as a fully self-contained cross-compiling C toolchain (once its linker is enabled for more platforms / formats)
chris_armstrong··on Étoilé – desktop built on GNUStep
Damn this is a blast from the past - it was such an ambitious project with so many interesting ideas to explore. CoreObject itself was revolutionary in its thinking about distributed document sharing and versioning, let alone some of desktop environment ideas for managing projects.

I know Quentin Mathé, kept CoreObject going for a decade longer, but I haven't heard from the rest of those involved for a very long time.

chris_armstrong··on OCaml as my primary language
I almost never find a use for GADTs or functors or carefully specifying module types, but when I need them, they help me get stuff done neatly.

Even the object system which most OCaml developers avoid, is actually very useful for some specific modelling scenarios (usually hierarchies in GUIs or IaC) that comes with similar type system guarantees and minimal type annotations.

chris_armstrong··on OCaml as my primary language
As someone who uses OCaml for hobby projects, I appreciate how little the language gets in your way when you want to just “get shit done”, despite the language’s origins in academia and industrial uses.

The type system usually means that I might take longer to get my code to compile, but that I won’t spend much (if any) time debugging it once I’m done.

I’m in the middle of pulling together bits of a third party library and refactoring them over several days work, and I’m pretty confident that most of the issues I’ll face when done will be relatively obvious runtime ones.

chris_armstrong··on Researchers value null results, but struggle to publish them
Onlynulls, the subscription-only service you’d be too ashamed to have your supervisor find you on.
chris_armstrong··on The Art of Lisp and Writing (2003)
I think the tragedy is that we don't have fluid ways to move between them, that these different development modes (solitary and social, dynamic and static) have produced philosophically and practically incompatible tools and methodologies.
chris_armstrong··on The Art of Lisp and Writing (2003)
The author spends a lot time describing programming as a solitary activity (discovery, analysis) using like metaphors (poets, explorers, etc) and draws his conclusions thus, emphasizing the malleability of LISPs and Smalltalk as ideal for this task.

I think the author examining the fads of agile or XP would draw quite opposite conclusions if they observed programming as a social activity, building a shared knowledge and understanding that is constantly refined before it is "abandoned" as a piece of software.

chris_armstrong··on The ‘white-collar bloodbath’ is all part of the AI hype machine
The wildest claims are those of increased labor productivity and economic growth: if they were true, our energy consumption would be increasing wildly beyond our current capacity to add more (dwarfing the increase from AI itself).

Productivity doesn’t increase on its own; economists struggle to separate it from improved processes or more efficient machinery (the “multi factor productivity fudge”). Increased efficiency in production means both more efficient energy use AND being able to use a lot more of it for the same input of labour.

chris_armstrong··on Hyper Typing
Might I add - this isn't limited to languages like TypeScript which simply try and make underlying untyped languages (like JavaScript) safer. It affects well-designed strongly-and-statically-typed-from-the-ground-up languages which have expressive type-constructs (Rust, anything ML-based, etc.) used to reduce repetition and code-generation steps.
chris_armstrong··on Hyper Typing
Many of the highlighted problems come from TypeScript allowing such complex type definitions in the first place, which in turn stems from JavaScript allowing such an open and untyped (and yet convenient) compositional model.

The expressiveness of JavaScript is a curse upon every library author who (in vain) may try to design an interface with a simpler subset of types, but is undone by the temptation and pressure to use the flexibility of the language beneath.

The author's instincts are right though - target a simpler subset of TypeScript, combine code generation with simpler helper libraries to ease the understandability of the underlying code, and where a simpler JavaScript idiom beckons, use runtime safety checks and simpler types like `unknown`.

chris_armstrong··on Ask HN: What less-popular systems programming language are you using?
OCaml

The compiler is very fast, even over large codebases.

Mostly trying to bring AWS tooling to the platform[1], or experimenting with cross-compilation[2] using another less well known systems language, zig.

[1] https://github.com/chris-armstrong/smaws/ [2] https://github.com/chris-armstrong/opam-cross-lambda

chris_armstrong··on Go should sometimes be a no-go
I hate Java just as much, but at least it’s trying to improve and grow beyond its past limitations, instead of promoting bad design decisions as good for the programmer.
chris_armstrong··on Insects rely on sounds made by distressed vegetation to guide reproduction
A recent book, the Light Eaters, summarises much of the recent research into plant behaviour like this, including how maligned and misreported it has been over the past 50 years or so.
chris_armstrong··on Ask HN: What Are You Working On? (October 2024)
Investigating tree-shaking in OCaml (tldr; there isn't any, but it's been discussed a lot over the past 8 years) https://www.chrisarmstrong.dev/posts/dead-code-elimination-d...
chris_armstrong··on Forbes Marketplace: The Parasite SEO Company Trying to Devour Its Host
Although Docs have almost given up making in Northampton, you'll still find a number of shoemakers producing good quality boots that should last a decade or more. You'll be paying £250-£500 as you guessed.
chris_armstrong··on Gentle Guide to Self-Hosting
It's different degrees of the same thing I would have thought.

If you're running your own box, you still depend on network infrastructure and uplink of a service provider, whereas a cloud infrastructure provider may go the other way and negotiate direct connections themselves.

Plenty of valuable lessons await for those who even just provision a virtual host inside AWS and configure the operating system and its software themselves. Other lessons for those who rack up their own servers and VNETs and install them in a data-centre provider instead of running them onsite.

There's only so much you can or should or want to do yourself, and its about finding the combination and degree that works for you and your goals.

chris_armstrong··on Swimmable Cities
Interesting to see Sydney Water put their sponsorship near the top of this. So much of Sydney including its larger rivers and waterholes are swimmable. Even our unique (but not very well known) ocean pools make many of our more dangerous surf beaches accessible.
chris_armstrong··on Htmx, Raku and Pico CSS
> I am a simple sole, I want to reduce the cognitive load in my web projects. The general idea is to go back to the halcyon early days of the web before Netscape dropped the JS-bomb. You know HTML for the layout and CSS for the style. An elegant division of roles.

(I'm not quite sure if this is the author's sentiment), but the point shouldn't be to escape JS entirely, but make it into something that can be used in a repeated pattern that works in lockstep with your application, such that you are neither creating custom JS for each page (e.g. React), nor blindly manipulating the DOM (like JQuery).

The division of roles between CSS and HTML is an almost contradictory point - your styling and layout should be coupled if you are to impose any meaningful order in your design. If you are rejecting the "decoupling" of front-end and back-end that React gives you, then why would you expect to be able to do it between HTML and CSS?

chris_armstrong··on Working Title (Insurance)
You’d think conveyancing would be cheaper here, but you’re still spending $2-3k on who knows what to transact property. At least the process is quick and final compared to the mess in other common law jurisdictions
chris_armstrong··on Working Title (Insurance)
This whole situation is absolutely bizarre to me as an Australian. Our states converted to a system of centrally registered title (also known as Torrens title) over a hundred years ago to avoid the “old system” problem of tracing ownership records backwards in time. Although the system is still in effect for some properties, in many cases they’ve been converted anyway.
chris_armstrong··on Show HN: A free site to explore and discover 6k plants
I'd love to do something like this for Australian native plants. It seems like quite a lot of work though!
chris_armstrong··on OpenTelemetry at Scale: Using Kafka to handle bursty traffic
A similar idea [^1] has cropped up in the serverless OpenTelemetry world to collate OpenTelemetry spans in a Kinesis stream before forwarding them to a third-party service for analysis, obviating the need for a separate collector, reducing forwarding latency and removing the cold-start overhead of the AWS Distribution for OpenTelemetry Lambda Layer.

[^1] https://x.com/donkersgood/status/1662074303456636929?s=20

chris_armstrong··on How fast are Linux pipes anyway? (2022)
Absolutely amazing, I know about page tables and the like but tying it to performance analysis with `perf` makes it clear how central it is to throughput
chris_armstrong··on Ask HN: Has meetup.org been replaced by anything?
I'm the organizer of a social meetup in Sydney for LGBTQIA+ scientists, engineers and technologists.[^1]

We still mostly find new members through the platform and word-of-mouth (probably about 50-50), but compared to pre-pandemic, the numbers are generally smaller. There is less being organised in general, but I suspect people have competing commitments, or are less enthusiastic about trying it out: I find many people sign up to join the group but only a handful will ever show up at any event. Attendance can be very seasonal too.

As a platform I find Meetup quite expensive given how buggy and slow it is. Participants complain about not getting notifications (it frequently fails to send me anything). There is lots of duplicated and flakey functionality, like chat and discussion groups. I'd love to use something else but I don't know if its worth the risk trying to drive people elsewhere.

Trying to foster a sense of community with tech platforms alone is also a bit futile - it really boils down to the vibe of the group and other participants, and it's a difficult balancing act as an organiser.

[^1] https://www.meetup.com/turingcircle/

chris_armstrong··on Kickstarting a book to end enshittification, because Amazon will not carry it
The proposed solution to market monopolisation by Amazon seems to boil down to the old refrain, "design better markets", with a lament for the innovation and freedom of the old anarchistic (i.e. unregulated) web.

It's a touch ironic but nevertheless predictable, an old problem wrapped us as a new one, making me wonder: why the book will be all that interesting?

Large publishers have forced DRM and squeezed authors in other media markets such as music or TV and film, protecting their monopolies on distribution and consequent power to market-make. What is new?

chris_armstrong··on LazyVim
i love lazyvim, as someone who is productive with vim movements and keyboard macros, but has zero interest in learning every inch of the vim plugin ecosystem and writing the corresponding lua to configure it.

In fact, I've found it easier to learn the ecosystem of what is going on and feel more comfortable customising it, now that I have a solid base of customisation to build upon.

I just wish the documentation included more commentary on what each plugin does and why it is available - having to click through on each one is a bit annoying.

chris_armstrong··on Show HN: Thoughts on Flash in 2023, in Flash, in 2023
You could take the perspective that this is art, and sometimes art sets constraints on how the viewer can experience it that be a limitation of the medium or something deliberate on the part of the artist.

I was happy enough to go with it, even though the flashing at first made me feel a bit uneasy. I'm glad people still find joy in this stuff - I remember building Flash animations in the early 2000s and quite enjoying learning about all this cool animation stuff and laying background music I'd ripped off a disc.

chris_armstrong··on OCaml-cfgen: generate CloudFormation in OCaml
WiP implementation of CloudFormation bindings in OCaml, with the intent of being able to programatically generate CloudFormation JSON in OCaml (similar to CDK).
chris_armstrong··on A Bank of One's Own
It is crucial because new loans generate growth and economic activity. The economy would seize up and enter a deep recession if regular savers stashed their money in 100% reserve ratio bank. (Many would if there was no government-backed deposit insurance for regular-sized amounts.)

I think the reason such institutions don't exist is that they are very unprofitable compared to regular banks and would be expensive to keep deposits in them.

← PreviousPage 2 of 4Next →