HackerTrans
TopNewTrendsCommentsPastAskShowJobs

ryangibb

no profile record

Submissions

UK 'invention agency' grants £50M of public money to US tech and VC firms

theguardian.com
2 points·by ryangibb·قبل شهرين·0 comments

Apt Graph Colouring

github.com
1 points·by ryangibb·قبل 4 أشهر·0 comments

Go and Versioning: Minimal Version Selection

research.swtch.com
2 points·by ryangibb·قبل 5 أشهر·0 comments

Tech Independence

sive.rs
35 points·by ryangibb·قبل 5 أشهر·8 comments

Semantic Versioning in OCaml Is Hard

jon.recoil.org
4 points·by ryangibb·قبل 7 أشهر·0 comments

Why I'm Fascinated by Package Management

nesbitt.io
3 points·by ryangibb·قبل 7 أشهر·0 comments

Formally Specifying a Package Manager

hillelwayne.com
1 points·by ryangibb·قبل 7 أشهر·0 comments

How Busy Is the Tube?

howbusyisthetube.com
1 points·by ryangibb·قبل 8 أشهر·0 comments

Scientists develop first accurate blood test to detect chronic fatigue syndrome

theguardian.com
6 points·by ryangibb·قبل 9 أشهر·3 comments

City2graph

city2graph.net
2 points·by ryangibb·قبل 9 أشهر·0 comments

Grid Parts and Relationships

redblobgames.com
2 points·by ryangibb·قبل 9 أشهر·0 comments

The mechanics of software engineering teams

chrisloy.dev
2 points·by ryangibb·قبل 10 أشهر·0 comments

Caledonia: Command-Line and Emacs Calendar Client

ryan.freumh.org
3 points·by ryangibb·قبل 10 أشهر·0 comments

Expanding My Vocabulary to a Million Words

ryan.freumh.org
3 points·by ryangibb·قبل 10 أشهر·0 comments

comments

ryangibb
·قبل 4 أشهر·discuss
You mean like endorsement? https://info.arxiv.org/help/endorsement.html
ryangibb
·قبل 4 أشهر·discuss
As far as I can tell, checking for proc macro crates by suffix, only one: ergol -> ergol_proc_macro with >=0.0.1, <0.0.2.

I didn't include singular dependencies in this grep (=) just upper bounds (< and <=).

Some rough scripting is telling me there's over 600,000 singular dependencies of which just under 10,000 are proc-macro pairs.
ryangibb
·قبل 4 أشهر·discuss
> there's nothing stopping you from pulling in every single dependency of every dependency

It depends on the exact system; for example npm's peer dependencies means we can reduce from SAT to npm.

But if there is no such functionality (e.g. just the concurrent package calculus with g(v)=v) they yes, I agree.
ryangibb
·قبل 4 أشهر·discuss
(author here) I also gave a talk on this work at FOSDEM this year: https://watch.eeg.cl.cam.ac.uk/w/iPX1Xx8LAZnuhojVYbyvAB
ryangibb
·قبل 4 أشهر·discuss
> Presumably you mean compatible rather than incompatible there?

I've edited for clarity, I mean "because packages with different major versions should have incompatible APIs anyway."

> While you can specify upper bounds for the depdnency ranges, that is extremely uncommon in practice.

In https://github.com/rust-lang/crates.io-index I count just under 7000 upper bounds on dependency ranges that aren't just semver in disguise (e.g. not ">=1.0.0, <2.0.0"):

    $ rg --no-filename -o '"req":"[^"]*<[^"]*"' . | grep -Ev '< ?=? ?([0-9]+(\.0){0,2}|0\.[0-9]+(\.0)?)"' | wc -l
    6727
So it's definitely used. One person's non-breaking change is another's breaking change https://xkcd.com/1172/
ryangibb
·قبل 4 أشهر·discuss
(author of the paper here)

My sibling makes a great point about type errors: did you know Cargo (Rust) only supports diamond dependencies where the versions differ only in major version[^0]? So you can have exactly the same problem with B depending on [email protected] and C depending on [email protected] in Cargo. I believe the reason for only supporting concurrent versions with different major versions (to use the paper's parlance) is because packages with different major versions should have incompatible APIs anyway.

[^0]: Or 0 major version and differing minor version -- Cargo has it's own definition of semver incompatible

> ... and it becomes a pseudo SAT problem in some cases if you want optimal dependency resolution

A couple of clarifications: many dependency resolution algorithms are essentially SAT even if they support concurrent versions (see Cargo). Section 3.3 of the paper might be an interesting read -- it discusses the spectrum of complexity in the problem of dependency resolution, and why some ecosystem's approaches don't work for others. Also, it's generally a 'pseudo SAT problem' (i.e. NP-complete and can be reduced to SAT) to find any valid resolution, not just an optimal one.

> This is the core algorithmic and architectural limit on package managers. Almost everything else is just implementation and engineering details.

I agree, and that's why the paper focuses on the semantics of dependency expression and dependency resolution! But there's a lot more than concurrent versions in the semantics of how package managers express and resolve dependencies, i.e. features, formula, peer dependencies. The point of the paper is that there's a minimal common core that we can use to translate between package management ecosystems, which we're planning on using to build useful tooling to bridge multilingual dependency resolution.
ryangibb
·قبل 6 أشهر·discuss
What does NAT do for security that a firewall doesn't?
ryangibb
·قبل 7 أشهر·discuss
E.g. DNS-Based Authentication of Named Entities? https://www.rfc-editor.org/rfc/rfc6698

There's a TLSA resource record for certificates instead of a TXT encoding.

As far as I know no major browser supports it, and adoption is hindered by DNSSEC adoption.
ryangibb
·قبل 9 أشهر·discuss
The MirageOS project [0] is a great collection of functionality pure OCaml libraries that are useful outside of unikernels. I've used the DNS library with an effectful layer for various nameserver experiments [1].

[0] https://mirage.io/

[1] https://ryan.freumh.org/eon.html
ryangibb
·قبل 9 أشهر·discuss
Author of Eon here, there's still some open questions I have here about managing the lifetimes of these certificates. Renewal is supported via a Capnproto callback and there's some ad-hoc integration in with NixOS nginx to restart it on a certificate renewal. https://github.com/RyanGibb/eon/blob/3a3f5bae2b308b677edfb3f...

This doesn't work in the general case, e.g. for postfix and dovecot, and is only becoming more pertinent with short lived certificates. It would be great if the service manager could use these capabilities directly. I think GNU Shepard's integration with Guile Goblins and OCapN is a step in the right direction here: https://spritely.institute/news/spritely-nlnet-grants-decemb...

I've written a little more about this here: https://ryan.freumh.org/eilean.html
ryangibb
·قبل 9 أشهر·discuss
Many Circassians settled in Jordan, refounded Amman, and to this day the King of Joran has a Circassian Bodyguard.
ryangibb
·قبل 10 أشهر·discuss
This is a good argument for the Unix philosophy's "do one thing" to avoid the bloat the author describes. E.g. vi, sendmail, and some bash for Word's mail merge. Or Emacs and some lisp. But then the onus is on the user to compose these tools to something that solves their particular problem.
ryangibb
·قبل 10 أشهر·discuss
I've got a small project that uses a Cap'N Proto capability to do the key exchange for a mosh session which might be interesting to some: https://github.com/RyanGibb/capability-shell/blob/619d26dbb1...
ryangibb
·قبل 10 أشهر·discuss
Ely (a few miles south of this project) used to be an island with a large eel fishing industry, from which it derives it's name. The Fens were drained in the 17th century with help from Dutch engineers, and I believe much of the area is now below sea level; the river Ouse is raised above the surrounding land with embankments. I've ran past some of the pumping stations on the Roman lodes myself: https://www.openstreetmap.org/way/125065713

I wonder what the risk is of rising sea levels to this project?
ryangibb
·قبل 10 أشهر·discuss
> The second I stepped outside I was set upon by a flood of mosquitos like I have never experienced before. I have been to the jungles of Vietnam, the swamps of Florida and the Canadian countryside. This was beyond anything I've ever experienced.

> There are bugs in my mouth, ears, eyes and nose almost immediately. The photo below is not me being dramatic, it is actually what is required to keep them off of me.

> In fact what you need to purchase in order to walk around this area at all are basically bug nets for your face. They're effectively plastic mesh bags that you put on.

This is pretty standard for Scotland in the summer too.
ryangibb
·قبل 10 أشهر·discuss
The difficulty with the GNS is getting the public keys that enable the decentralisation. Key signing parties seem to have their limits.

There’s a bunch of alternative DNS roots out there, that are similarly hierarchical, but really interesting: https://en.wikipedia.org/wiki/Alternative_DNS_root#Implement...
ryangibb
·قبل 10 أشهر·discuss
Given the website, is worth noting that keyboards like this can avoid the infamous Emacs pinky. I've got the keys two rows below the homerow bound to the modifiers right alt, super, alt, control, and shift. And reversed on the other hand. This makes any modifier shortcuts very ergonomic -- one hand 'chords' the modifiers and the other hits the non-modifier key.
ryangibb
·قبل 10 أشهر·discuss
I built similar functionality into a DNS server so the device can be woken from beyond the local network: https://github.com/RyanGibb/eon/tree/main/bin/hibernia

There's a bit of a writeup here: https://www.sicsa.ac.uk/wp-content/uploads/2024/11/LOCO2024_...