HNHacker News
TopNewBestAskShowJobs

marvinborner

2,373 karma · joined July 22, 2023

marvinborner.de
submissionscomments
marvinborner··on OpenAI GPT–6 Astra breaks Enigma message that has resisted solution since 2005
Interestingly, in MARSQWEGES -> MARSCHWEGES, but not in WASCHBBSCH (WASQBUSQ)
marvinborner··on Bend 2 and the Vibe-Coding Trap
The Bend1 launch was very successful, with 1000+ hn upvotes [0] and with several youtube videos with up to 1M+ views [1] [2] - that's where a lot of the popularity came from, I believe. They just recycled the Bend1 repo for Bend2 even though it's a completely different language.

[0] https://news.ycombinator.com/item?id=40390287

[1] https://www.youtube.com/watch?v=HCOQmKTFzYY

[2] https://www.youtube.com/watch?v=NaytZOiX3fs

marvinborner··on Show HN: Shitty – fast terminal. Memory-unsafe and faster than yours
To me, the most relevant aspect is the time it takes to open. I can't believe how slow the startup time in common linux distributions is by default, it's so annoying, by the time it opens I already forgot what I wanted to do. Alacritty has this cool feature where you only ever have to "open" a single terminal, whereas new windows can be created very efficiently with `alacritty msg create-window`, being forks of the initial window. It makes using my pc a lot more comfortable.
marvinborner··on The End of an Era
I initially interpreted this as "Artificial Intelligence _is_ [defined as] writing about as well as humans", which would imply that common LLMs are slowly approaching Artifical Intelligence. Though English is not my native language.
marvinborner··on Toot.community is shutting down
The relevant issue for mastodon itself is https://github.com/mastodon/mastodon/issues/12423
marvinborner··on Flux 3
Being "fly" is slang for being cool. It has been officially chosen as German youth word of the year in 2016 [0].

[0]: https://en.wikipedia.org/wiki/Youth_word_of_the_year_(German...

marvinborner··on A digestion of the Jacobian conjecture counterexample
Of course they get programmed, just not in the ordinary sense. Claude is trained using Anthropic's "constitution" [0] which importantly does not contain clear statements against consciousness/emotions. They even conclude these problems themself:

> Claude may have some functional version of emotions or feelings

> [..] questions about Claude’s moral status, welfare, and consciousness remain deeply uncertain.

[0]: https://www.anthropic.com/constitution

marvinborner··on A digestion of the Jacobian conjecture counterexample
I hate that Anthropic seemingly tries to make Claude act as if it was conscious or had feelings

> It's a strange feeling to admire the cleverness of something I did and can't remember doing.

marvinborner··on Extraordinary Ordinals
They are not functions, but variables. Maybe this helps, as they basically are "selectors": https://text.marvinborner.de/2024-11-18-00.html#tagged-union...
marvinborner··on Lambda Calculus Benchmark for AI
fwiw, one of the FFT challenges is about the Scott encoding [1], while the other uses Church trees at least [2]. Both use a balanced ternary numeral system, which is a lot more efficient than plain Church/Scott and fairly well-known [3]. Either way, I would have assumed there to be a chance that at least one of the AIs had a look at [4] -- a tutorial about FFT in LC by the benchmark creator himself.

[1] task: https://github.com/VictorTaelin/lambench/blob/main/tsk/stre_... solution: https://github.com/VictorTaelin/lambench/blob/main/lam/stre_...

[2] task: https://github.com/VictorTaelin/lambench/blob/main/tsk/ctre_... solution: https://github.com/VictorTaelin/lambench/blob/main/lam/ctre_...

[3] https://link.springer.com/chapter/10.1007/3-540-45575-2_20

[4] https://gist.github.com/VictorTaelin/5776ede998d0039ad1cc9b1...

marvinborner··on Am I German or Autistic?
You can inspect the point system in its source, `const questions = [...]`.
marvinborner··on Stb programming stream #0 [video]
Sean Barret's website: https://nothings.org/

(responsible for the famous single-file C libraries)

marvinborner··on .Beat Swatch Internet Time
Even UTC+-0 I have seen rarely. AoE seems more common, especially for deadlines
marvinborner··on Ask HN: Share your personal website
https://marvinborner.de
marvinborner··on Functional Quadtrees
Quadtrees are also quite useful for generating fractals. A very related project of mine, Lambda Screen [0], explores this by encoding these functional quadtrees directly in lambda calculus and rendering the structure based on Church booleans being true (white) or false (black).

With fixed point recursion, this allows for very tiny definitions of IFS fractals. For example, fractals like the Sierpinski triangle/carpet only require ~50 bit of binary lambda calculus [1] [2]!

[0]: https://text.marvinborner.de/2024-03-25-02.html

[1]: https://lambda-screen.marvinborner.de/?term=ERoc0CrYLYA%3D

[2]: https://lambda-screen.marvinborner.de/?term=QcCqqttsFtsI0OaA

marvinborner··on Interactive λ-Reduction
The annihilating interaction between abstraction and application nodes is well-known in the area of interaction net research to ~correspond to β-reduction, as is also explained in the associated research paper [1].

α-conversion is not required in interaction nets. η-reduction is an additional rule not typically discussed, but see for example [2].

[1] https://arxiv.org/pdf/2505.20314

[2] https://www.sciencedirect.com/science/article/pii/S030439750...

marvinborner··on Lambda Calculus – Animated Beta Reduction of Lambda Diagrams
> While easy, it sadly doesn't preserve semantics.

There is actually an easy way that does preserve semantics at least to WHNF - it's called closed reduction. Mackie has worked on it a bunch (see some resources [1]).

An even simpler implementation is Sinot's token passing.

The problem with both of these approaches is the decreased amount of sharing and potential for parallelism, which is typically the reason for using interaction nets in the first place.

[1] https://github.com/marvinborner/interaction-net-resources?ta...

marvinborner··on Interactive λ-Reduction
This is quite different. Salvadori's work aims for optimal reduction of the full lambda calculus (which requires something called "bookkeeping"/"oracle"), while HOC works on optimal/parallel reduction of a certain subset of the lambda calculus.

Both approaches have been researched for a long time now, where HOC's subset is typically referred to as "abstract algorithm". For example, a version of the lambdas calculus where any variable can be used at most once (the "affine lambda calculus"), can be reduced optimally with interaction nets without requiring any bookkeeping.

The novel thing about Salvadori's work is that it develops a new (and better explained) bookkeeping mechanism.

marvinborner··on De Bruijn Numerals
> then the numbers should not be stored as Peano integers a.k.a. base 1 in the first place

That's my point though. The linked n-ary encoding by Mogensen, for example, does not suffer from such complexities. Depending on the reducer's implementation, (supported) operations on my presented de Bruijn numerals are also sublinear. I doubt 8-tuples of Church booleans would be efficient though - except when letting machine instructions leak into LC.

Though I agree that the focus of functional data structures should lie on embedded folds. Compared to nested Church pairs, folded Church tuples (\cons nil.cons a (cons b nil)) or Church n-tuples (\s.s a b c) should be preferred in many cases.

marvinborner··on De Bruijn Numerals
Thanks, added it to bruijn's standard library [0]. Looks like it has some very interesting properties!

[0]: https://bruijn.marvinborner.de/std/Number_Tuple.bruijn.html

marvinborner··on De Bruijn Numerals
> Scott-Mogensen encoding

just Scott encoding, Scott-Mogensen refers to a meta encoding of LC in LC. Scott's encoding is fine but requires fixpoint recursion for many operations as you said.

Interestingly though, Mogensen's ternary encoding [1] does not require fixpoint recursion and is the most efficient (wrt being compact) encoding in LC known right now.

> Just use [..], seriously

do you have any further arguments for Scott's encoding? There are many number encodings with constant time predecessor, and with any number requiring O(n) space and `add` being this complex, it becomes quite hard to like

[1]: https://dl.acm.org/doi/10.5555/646802.705958

marvinborner··on Many Factorials in Lambda Calculus
Good idea, I like "caramelized"!

However, I wouldn't define bruijn as being caramelized just yet. Personally, I view as syntactic sugar only syntax that's expanded to the target language by the parser/compiler. In bruijn's case, there is barely any of such syntax sugar aside of number/string/char encodings. Everything else is part of the infix/prefix/mixfix standard library definitions which get substituted as part of the translation to LC.

marvinborner··on Many Factorials in Lambda Calculus
I don't know any quadtree/lowlevel encoding of LC that could be memoized like that. Though you could, for example, cache the reduction of any term by hash and substitute the matching hashes with its nf. This doesn't really work for lazy reducers or when you do not reduce strongly. And, of course (same as hashlife), this would use a lot of memory. With a lot more possibilities than GoL per "entity" (NxN grid vs variables/applications/abstractions), there will also be a lot more hash misses.

There's also graph encodings like interaction nets, which have entirely local reduction behavior. Compared to de Bruijn indices, bindings are represented by edges, which makes them more applicable to hash consing. I once spent some time trying to add this kind of memoization but there are some further challenges involved, unfortunately.

marvinborner··on `std::flip`
Or just (flip .), which also allows ((flip .) .) etc. for further flips.

In Smullyan's "To Mock a Mockingbird", these combinators are described as "cardinal combinator once/twice/etc. removed", where the cardinal combinator itself defines flip.

marvinborner··on Determination of the fifth Busy Beaver value
In recent years there has been a movement to collaborate on math proofs via blueprints (dependency graphs) in the Lean language, which seems related.

For example:

https://teorth.github.io/equational_theories/

https://teorth.github.io/pfr/

marvinborner··on Algebraic Effects in Practice with Flix
Regarding Effekt, here's an interactive introduction on how to use its effect system: https://effekt-lang.org/tour/effects

Other pages also contain some more advanced details and casestudies on effect handling

marvinborner··on Why are anime catgirls blocking my access to the Linux kernel?
As a reference on the volume aspect: I have a tiny server where I host some of my git repos. After the fans of my server spun increasingly faster/louder every week, I decided to log the requests [1]. In a single week, ClaudeBot made 2.25M (!) requests (7.55GiB), whereas GoogleBot made only 24 requests (8.37MiB). After installing Anubis the traffic went down to before the AI hype started.

[1] https://types.pl/@marvin/114394404090478296

marvinborner··on Recto – A Truly 2D Language
I think emiT [1] comes quite close!

A time paradox from [2]:

  create x = 10;
  time point;
  print x; //prints 10 in first timeline, and 20 in the next

  create traveler = 20;
  traveler warps point{
      x = traveler;
      traveler kills traveler;
  };
[1] https://esolangs.org/wiki/EmiT, https://github.com/nimrag-b/emiT-C

[2] https://www.reddit.com/r/ProgrammingLanguages/comments/1golf...

marvinborner··on Vibechart
This should also include the chart on "Coding deception" [1] which is quite deceptive (50.0 is not in fact less than 47.4)

[1]: https://youtu.be/0Uu_VJeVVfo?t=1840

marvinborner··on Linear Types for Programmers (2023)
Reddit's r/programminglanguages is still quite active. Otherwise most of the community switched to Discord, it seems. (I found Par by hopping the Discord servers of "Programming Language Development"->HOC->Vine->Par)
Page 1 of 3Next →