Jake Mitchell

@jmitchell
37 Followers
109 Following
20 Posts
they/them
@ldopa pretty natural response to a dump truck if you ask me. ;)
@emacsen Another tradeoff is the added size overhead would probably make full reads slower. A header with a span index table and an offset to the start of the expression may be a good compromise. Unless the expressions get really large there’s probably no need for these extensions.
@emacsen I like it. Another variant that could be useful in some contexts is length-prefixing the lists as well. That way if you somehow know a particular list isn't of interest you can skip over it faster. I suppose that feature would be more interesting if there were a schema to inform these kinds of seeks.

@darius Great talk. I have Qs.

Do we need mechanisms to let users of a node have a say in when these internode connections are made or revoked?

In case a subset of users disagree with the outcome what recourse should they have? Splitting off to make a new node could work if accounts were portable. In that case should they automatically inherit the same neighborhood before the change, or would that cause other problems?

How can we detect and handle bad actors mirroring content they shouldn't?

"If your tests are complex, convoluted, and hard to explain, then know that your testing experience is likely to match their [human operators'] operational experience as well."

_Property-Based Testing with PropEr, Erlang, and Elixir_ (https://www.propertesting.com/)

Property-Based Testing with PropEr, Erlang, and Elixir

A book on Property-based Testing

This was a great talk: https://invidio.us/watch?v=1SKpRbvnx6g

tl;dr Beware of tl;dr's and hot takes. Though there's plenty else to it.

re:publica 2019 - Eben Moglen: Why Freedom of Thought Requires Attention

Find out more at: https://19.re-publica.com/node/30297 We are building the new neuro-anatomy of the human race. In the process we are destroying the human attention system, changing our idea of what i

@[email protected] @grainloom Typed Racket is another interesting point isn’t the design space. Broadly it’s using gradual typing to ease interoperability with the untyped stuff, and it has to do more work at runtime than many compiled langs.

Generally Racket’s concept of phases blur the distinction a bit between compile-time and run-time, while maintaining explicit control. I haven’t gotten used to using them directly yet, but it seems like a useful concept.

@[email protected] @grainloom I think dynamically typed languages tend to have better runtime introspection, but there’s nothing fundamentally preventing that with strong, statically typed langs. I’m exploring BEAM languages largely because I appreciate how much runtime introspection and interaction it offers.

OTOH, those benefits also weaken runtime security properties depending how you use it.

@[email protected] @grainloom wish I had satisfying answers. I ought to explore Rain’s suggestions more sometime.

There seems to be tension between how much is done at compile-time (validation, code generation, optimization) and run-time. Many intentionally designed type systems use type erasure to intentionally lighten the output and prevent runtime cheats. Idris does some clever tricks to determine which dependent types need to be checked at runtime.

@[email protected] @grainloom yeah, I’ve used dialyzer and it can be a bit frustrating, esp. compared to type driven development in languages designed with strong, static typing.

Maybe Gleam (https://gleam.run) has found a reasonable solution. Before getting into that I’m trying to get more comfortable with Erlang and Elixir style which very much rely on dynamic types, particularly for sending and receiving messages.

Gleam programming language

Discover a friendly language for scalable, type-safe systems. Gleam comes with compiler, build tool, formatter, editor integrations, and package manager all built in.