Show HN: A web text-editor where you can write, compute and draw
lambdaway.free.fr
lambdaway.free.fr
Very neat, and impressive. The one downside I noticed for the exemplar page is the browser CPU load. constant 33% of 1 CPU on an AMD Ryzen 7 1800X with Firefox v103.0.2, and around 32% with Chromium v104.0.5112.79.
I guess that's fair though since the 'page' is playing Towers of Hanoi AND animating the Hilbert curve AND a linear watch (clock)!
I enjoy the presentation itself too - no wasted space, nice multi column, no space-wasting top-bar, no annoying sidebars.
Being able to invoke the code editor with the floating resizeable text-area feels so natural.
The one thing that would be good seeing as the page is a viewport onto a larger canvas is auto-scrolling the viewport when the pointer approaches the margins - so we don't have to chase, make visible, and manually grab the browser scroll bars. That would make the page naturally follow where our attention currently is.
Certainly brings a whole new meaning to "Single Page Application".
Not even going to attempt to view it on a small device though!
The only downside is requiring client-side Javascript to render - I wonder if there's a way to have a fallback to render server-side in that case?
I've been procrastinating over choice of some kind of simple wiki-like static site generator for recording many real-time stream-of-consciousness disparate unrelated bug investigations,fixes and code hacking across a wide range of open-source software.
This has a quirkiness to it that I like and it feels like a nice fit for someone with a coding ethos (even if not usually into functional!).
It may even conquer my preference for Markdown!
Time to explore!
You write: "The one thing that would be good seeing as the page is a viewport onto a larger canvas is auto-scrolling the viewport when the pointer approaches the margins - so we don't have to chase, make visible, and manually grab the browser scroll bars. That would make the page naturally follow where our attention currently is." On my Powerbook I move the page using two fingers on the trackpad and on my iPad or smartphone I use one finger. No need scroll-bars.
You write: "The one downside I noticed for the exemplar page is the browser CPU load. constant 33% of 1 CPU on an AMD Ryzen 7 1800X with Firefox v103.0.2, and around 32% with Chromium v104.0.5112.79." In fact you can see on top of the frame-editor the cost of computing the page, it's about 30ms on my iPad. When the page is loaded no more CPU cost. The Hilbert curve CSS animation and the linear_watch (JS setInterval()) have a very small cost.
The mail system
<marty.alain@free.fr>: host mx1.free.fr[212.27.48.7] said: 550 spam detected
(in reply to end of DATA command)Now all you need do is write "lambda-mta" to take over email!
Seriously - that 'free.fr' MTA spam block needs fixing if it triggers on proper 7-bit ASCII email that doesn't contain MIME parts (which are usually stuffed with HTML and/or images).
I use Mozilla Thunderbird in "Plain Text" mode. One benefit is there is no possibility to embed hidden malicious links in plain text. Another is small size (some embedded HTML emails are HUGE!).
I like the idea of avoiding any application except the web browser. And I use emails as I use SMS on my smartphone, very small and, when developements have to be given, I just put the link to a wiki page created for this purpose, here it was in the page "sandox". It may be quirky but it is very practical when the developments are important, need to be well formatted, easy to memorize, if they need to allow for group work, etc...
You have noticed that I have eliminated the animation on the Hilbert curve, which reduces the processor load to very little. The load of the "JS setInterval()" used by the "linear watch" being very low I kept this watch.
I have a slot in github, https://github.com/amarty66, but I don't work in it and it's an old version of the lambdaway project. Forking it would probably be a waste of time.
- the easiest and immediate way to test lambdatalk is to work in my wiki ( without saving anything ) just writing something like this: http://lambdaway.free.fr/lambdawalks/?view=my_test_page
- you can test and save in the sandbox http://lambdaway.free.fr/lambdawalks/?view=sandbox
- you can easily tell me something in this page http://lambdaway.free.fr/lambdawalks/?view=agora , even if it is not a true forum,
- you can mail me at marty.alain _at_ free.fr , sometimes host servers are not friends, most of the time they are and mails work fine.
- You can freely download and easily instal the lastest version of the lambdaway project from this link http://lambdaway.free.fr/lambdawalks/?view=download ; please respect the FSF licence http://lambdaway.free.fr/lambdawalks/?view=licence , and it would be nice if you give me a feedback if you like it and do something with it.
Thank you for your interest.
I'm curious as to your take on the following opinion:
Even if your representation for an imperative programming language and declarative markup language are the same (I quite like using a parenthesized prefix notation for both), it's beneficial to cleanly separate those two languages in order to preserve a clean and distinct set of semantics for both.
(you can also extend this to a "presentation language" - what I'm getting at is that you can take the view that the tripartite separation of HTML, CSS, and JS in web technologies is actually a feature because it leads to a cleaner design than trying to mix all of those languages together (although I think that all of those particular languages have their own sets of flaws))
λ way is a very interesting project and I'm curious to see where it will go!
About the tripartite separation of HTML, CSS and JS it's always possible using the two special forms "style" and "script". But sometimes I find better to mix both in user defined functions, easier to build and edit inside a kind of box, it's a matter of choice.
Lambdatalk hides the different syntax of HTML, CSS and JS behind a single one, s-expressions, 9 special forms, [lambda, def, if, let, quote, macro, style, script, require] and a set of primitives dealing with words, sentences and arrays in a coherent style. For instance {W.first word}, {S.first sentence} and {A.first array} get the first term of a word, a sentence and an array. Using Javascript you would write word.charAt(0), string.match( /[^\s]*\s/ ) and array[0] to get the first character of a word, the first word of a sentence, the first term of an array.
Where will the lambdaway project go? I don't know. I have been working with for years, quasi lonely, trying to ipprove it and it is useful for me, as a tool to create documents and/or to explore funny algorithms.
I loved the idea of creating my own text format by code, but now I think markdown + pandoc filters are enough for my need.
I am a bit surprised about this comment. Have you tried `racket-mode` in Emacs?
It’s easy to make everything a Lisp. What’s more interesting, and more challenging, is how to create expressive and expedient interchange formats that don’t turn into programming languages.
Love it :)
How does it feel to author prose with this? I noticed the text isn't directly editable (wysiwyg) and starting to think that's probably the right trade-off.
I am very interested to see some audio/algorithmic composition applications with the language.