HackerTrans
トップ新着トレンドコメント過去質問紹介求人

leontrolski

no profile record

投稿

Prism: An Impure Functional Language with Typed Effects

stephendiehl.com
6 ポイント·投稿者 leontrolski·16 日前·0 コメント

Generalised plusequals

leontrolski.github.io
16 ポイント·投稿者 leontrolski·3 か月前·11 コメント

“Disregard That” Attacks

calpaterson.com
129 ポイント·投稿者 leontrolski·4 か月前·94 コメント

Aldo's Game of Music

aldodevos.nl
1 ポイント·投稿者 leontrolski·4 か月前·0 コメント

National Raisin Reserve

en.wikipedia.org
6 ポイント·投稿者 leontrolski·7 か月前·0 コメント

Show HN: I 3D printed a running buggy

leontrolski.github.io
1 ポイント·投稿者 leontrolski·8 か月前·0 コメント

Using Python 3.14 template strings to write Python

leontrolski.github.io
3 ポイント·投稿者 leontrolski·9 か月前·1 コメント

Cheeky Python Shell Script

leontrolski.github.io
3 ポイント·投稿者 leontrolski·12 か月前·1 コメント

コメント

leontrolski
·22 日前·議論
Similarly - 80 line LISP interpreter with integers, lexical scope, first class functions

https://leontrolski.github.io/interpreter.html
leontrolski
·2 か月前·議論
Neat.

I'm trying to compress recipes into little schematics https://leontrolski.github.io/recipes.html
leontrolski
·3 か月前·議論
What would be the equivalent to this in Haskell (with or without lens):

    cat = Cat(age=3)
    l = [1, [2, cat], 4]
    alt l[1][1].age.=9
That would give us l equal to:

    [1, [2, Cat(age=9)], 4]
leontrolski
·3 か月前·議論
This is surprising to me:

  l[1][1].age:9
  # (1,(2,{"age":9}),4)
How come it doesn't return just:

  {"age":9}
Or is there something totally different going on with references here? As in, how is this different to:

  l_inner = l[1][1]
  l_inner.age:9
leontrolski
·4 か月前·議論
Yes, AI or no AI, tell me about something actually interesting that you're working on.

Currently it feels a bit like everyone is talking about what new editor they're using. I don't care about that type of developer tooling very much. AI isn't coming up with some exciting new database, type system, etc etc.

"Look at how I'm able to web dev x% faster" because of LLMs is boring.
leontrolski
·8 か月前·議論
Ditto, another Upset blog post - https://leontrolski.github.io/upset.html
leontrolski
·10 か月前·議論
Lovely writeup!

> Pascal did not have sum types because Wirth thought they were less flexible than untagged unions

I'm not sure whether my dream language would have tagged or untagged unions (Scala 3 has both it seems). I'd be interested if anyone has any further points of comparison beyond:

Tagged unions, eg. in Rust: enum Tagged {A(i64), B(String), C(f64)} Untagged unions, eg. in typed Python: Tagged = int | str | float

Tagged unions are better as you can represent duplicated types and types with no data, eg: enum Tagged {A, B(f64), C(f64)}

Untagged unions are better as you can willy nilly create new subsets and intersections of types. I find often in AST-ish work I want to express eg: def f(x: A | B | C) -> A | B
leontrolski
·12 か月前·議論
A reminder of all the features available right now with PWAs - https://whatpwacando.today
leontrolski
·昨年·議論
> also fast when transactions are held open

In my linked example, on getting the item from the queue, you immediately set the status to something that you're not polling for - does Postgres still have to skip past these tuples (even in an index) until they're vacuumed up?
leontrolski
·昨年·議論
I'd be interested as to how dumb-ol' polling would compare here (the FOR UPDATE SKIP LOCKED method https://leontrolski.github.io/postgres-as-queue.html). One day I will set up some benchmarks as this is the kind of thing people argue about a lot without much evidence either way.

Wasn't aware of this AccessExclusiveLock behaviour - a reminder (and shameless plug 2) of how Postgres locks interact: https://leontrolski.github.io/pglockpy.html