HN user

mlajtos

600 karma

https://mlajtos.mu

Posts23
Comments364
View on HN
mlajtos.github.io 5d ago

Show HN: Fluent, tiny lang for reactivity and autograd

mlajtos
6pts2
github.com 6mo ago

Show HN: Fluent, a tiny lang for differentiable tensors and reactive programming

mlajtos
3pts0
mlajtos.mu 1y ago

My Notes on Apple Math Notes

mlajtos
178pts67
mlajtos.mu 2y ago

How to Give Insanely Great Apple Vision Pro Demo

mlajtos
2pts0
mlajtos.mu 3y ago

Improbably Right

mlajtos
83pts136
mlajtos.mu 3y ago

No Code, Clean Performance

mlajtos
1pts3
deepnote.com 3y ago

Layoff Relief Program

mlajtos
1pts0
www.youtube.com 3y ago

Programmable Ink – programming with pen and paper

mlajtos
2pts0
techreflect.net 3y ago

Apple Books 2022, in Pictures

mlajtos
3pts0
mlajtos.mu 3y ago

Eye-tracking is a missing input device for VR experiences

mlajtos
134pts134
mlajtos.mu 3y ago

Quo vadis, Jupyter?

mlajtos
2pts0
mlajtos.mu 4y ago

Gaze – The Missing Input Device for VR Experiences

mlajtos
1pts0
mlajtos.mu 4y ago

Serverless Collaborative Hierarchical Todo App in 200 LoC

mlajtos
2pts0
mlajtos.mu 4y ago

Finally a State Management (In React) for Dummies

mlajtos
3pts0
mlajtos.mu 4y ago

Your Next Mac

mlajtos
33pts96
returnyoutubedislike.com 4y ago

Return YouTube Dislike Count – Browser Extension

mlajtos
1pts1
mlajtos.mu 4y ago

Thinking, Fast and Slow

mlajtos
3pts0
www.youtube.com 4y ago

Calculator Designed for iPad and Pencil

mlajtos
1pts0
mlajtos.mu 4y ago

New Kind of Paper, Pt. 3: Chalktalk, Magic Paper, APL, PyTorch and Pascaline

mlajtos
2pts0
mlajtos.mu 4y ago

New Kind of Paper, Part Two

mlajtos
6pts7
mlajtos.mu 5y ago

New Kind of Paper

mlajtos
205pts124
github.com 5y ago

ES1995 – The Missing JavaScript Polyfill

mlajtos
1pts0
github.com 5y ago

Recovering My Mom's Gmail Password

mlajtos
3pts0

Fluent is attacking multiple problems.

On the surface, it blends APL and LISP. Making S/M-exprs terse and building “diamond-less” left-to-right APL on top. This part is pretty okay.

In core, unification of FRP and AD as already mentioned. This is mainly to do efficient online/incremental learning. Currently this is a disaster and main source of tech debt. I got some attacks.

Fun and curiosity is the main motivator. Having single system that can do user-editable explorable ML explanations is just cherry on top.

https://www.cs.utexas.edu/~EWD/transcriptions/EWD04xx/EWD498... – How do we tell truths that might hurt? 1975

FORTRAN —"the infantile disorder"—, by now nearly 20 years old, is hopelessly inadequate for whatever computer application you have in mind today: it is now too clumsy, too risky, and too expensive to use.

He told the truth and in turn Fortran corrected its course, but Dijkstra probably didn't change his mind about it.

---

These pioneers, even when they disagreed, had pretty precise arguments and very rarely feeling the feelies.

The feud between Backus and Dijkstra kinda persuaded me of the opposite.

https://medium.com/@acidflask/this-guys-arrogance-takes-your...

Interesting. Bird-Meertens formalism? That was directly influenced by APL. In the broader scope — algebra of programs — Dijkstra heavily disliked Backus’ FP.

Very interesting flip! For much of his life, Dijkstra opposed functional programming. He even more strongly criticised FP from Backus and APL from Iverson, which are both very funcional/function-level.

As he said, Java is a mess and any sensible person would oppose the switch from Haskell to Java. I am almost sure he never used any of them. Might have read about them, but highly doubt he run any on computer.

As for the high-level status of Haskell and APL — both languages are very mathematical. Haskell goes very into the abstract realm of computation, while APL tackles very raw form of computation. Semantically, Haskell is way more high-level. In terms of economy of notation and unified concepts, APL has no match.

Oh, he would definitely hate it even more. It was too high-level for his taste.

What I would like to know is how he would bend Algol 60 if he had tablet with pencil that could evaluate it in real-time.

Maybe, given the lens, I've not given Dijkstra a proper chance to demonstrate a more positive attitude, so I'm open to any suggestions of writings where he doesn't seem like such a grump.

Kinda hard to find where Dijkstra praised something (except Algol 60).

One funny example: he called FORTRAN "an infantile disorder", though he said this about the team behind it: "At that time this was a project of great temerity and the people responsible for it deserve our great admiration.".

On LISP: "LISP has jokingly been described as 'the most intelligent way to misuse a computer'. I think that description is a great compliment because it transmits the full flavor of liberation: it has assisted a number of our most gifted fellow humans in thinking previously impossible thoughts."

Alan Kay on Dijkstra: "Arrogance in computer science is measured in nano-dijkstras."

Dijkstra's go-to language (pun intended) was Algol 60 (& Pascal) – everything else was shit in his view. Some of his comments:

FORTRAN — "an infantile disorder"

COBOL — "the use of COBOL cripples the mind"

BASIC — students exposed to it are "mentally mutilated beyond hope of regeneration"

PL/I — "the fatal disease"

APL — "a mistake, carried through to perfection"

He liked his languages and programs to be easily traceable with pen & paper. He always wrote programs on the paper (and proved correctness) and only then into computer. REPL-driven development (what APL pioneered) was a foreign concept to him. He would be so appalled by LLM code generation.

FIXAPL 3 months ago

This is a good idea.

Monadic/dyadic case for single glyph works nice only when you have a default value associated with it. For example `√16` is actually `2√16`. Or `log 100` is `10 log 100`. And `-3` is `0-3`.

In order to provide live two-way video between the lab and the conference hall, two microwave links were used. English also commanded a video switcher that controlled what was displayed on the big screen. The camera operator in Menlo Park was Stewart Brand, who at the time was a non-computer person, best known as the editor of the Whole Earth Catalog. Stewart Brand advised Engelbart and the team about how to present the demo. Engelbart got to know Stewart Brand when they experimented with LSD at the same lab.

Last sentence is epic.

New Kind of Paper 4 months ago

This is the first part of the "New Kind of Paper" series that deals with concept of "handwritten calculator" – you scribble "1+2" and the system responds with "3". Think "Apple Math Notes", but 3 years before its debut. And with vectors, matrices, tensors, etc.

There are 5 parts so far:

1. https://mlajtos.mu/posts/new-kind-of-paper – overview of the concept

2. https://mlajtos.mu/posts/new-kind-of-paper-2 – intro to Fluent notation

3. https://mlajtos.mu/posts/new-kind-of-paper-3 – inspirational prior inventions

4. https://mlajtos.mu/posts/new-kind-of-paper-4 - how to think efficiently (including longer demo)

5. https://mlajtos.mu/posts/new-kind-of-paper-5 – review of Apple Math Notes and suggestions for improvements

Keyboard version of Fluent is available here: https://mlajtos.github.io/fluent/?code=RG9jdW1lbnRhdGlvbg

Lil' Fun Langs 5 months ago

Actually, it's not quite "ML-family" enough for this post. But it is a remarkably cool project! :)

Fair. Thank you :)

Pure visual object tracking in visionOS is considerable laggy (even with increased detection rate). Natively tracked peripherals (Logitech Muse, PSVR2 controllers) are super responsive, but are designed for hands and are too specialized. There is a place for generic 6DoF tracking device that can be attached to any object you want to track. This could be tiny IR LED array if you want to track it inside the field of view, but when you need precise position outside of your FoV, your options are limited.

You are exactly right that the original vision of APL was a handwritten, non-ambiguous, consistent, and executable math notation. This was never accomplished.

In 2021, I made a prototype calculator designed for iPad and Pencil and wrote four essays called "New Kind of Paper" describing this concept. The video demonstration of the prototype [Demo] sums up pretty well how it might be used.

In 2024, Apple released Math Notes, which implements this concept for standard math notation. My "review" of it is at [MathNotes]. In short, it is currently a preview of a damn great tool, but its future depends on notation and expressivity.

APL is a language from 2066, created in 1966. While its semantics make more sense now due to machine learning, syntactically it remains alien to most people. Backus' FP/FL and Iverson's J are more approachable to current programmers, but still not there. In New Kind of Paper, I created a tiny language called Fluent, which is nowhere near the ambition of any language mentioned, but it is intentionally designed to be handwritten. A week ago, I open-sourced it. [Fluent]

There is plenty of work left to do, but it is a good start.

[NKoP]: https://mlajtos.mu/posts/new-kind-of-paper

[MathNotes]: https://mlajtos.mu/posts/new-kind-of-paper-5

[Fluent]: https://news.ycombinator.com/item?id=46649223

[Demo]: https://youtu.be/y5Tpp_y2TBk

Thanks for coming to my TED talk.

I have a project using tfjs and jax-js is very exciting alternative. However during porting I struggle a lot with `.ref` and `.dispose()` API. Coming from tfjs where you garbage collect with `tf.tidy(() => { ... })`, API in jax-js seems very low-level and error-prone. Is that something that can be improved or is it inherent to how jax-js works?

Would `using`[0] help here?

[0] https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...

Pipe "operator" for the rest of us:

    Object.prototype.pipe = function(fn) { return fn(this) }

    'hello'.pipe(upper).pipe(ex('!!!'))
Or code golf version:
    Object.prototype.P=function(...F){return F.reduce((v,f)=>f(v),this)}
    'hello'.P(upper,ex('!!!'))