D <
nospam@example.net> writes:
On Mon, 24 Feb 2025, Salvador Mirzo wrote:
>
D <nospam@example.net> writes:
>
On Sun, 23 Feb 2025, Salvador Mirzo wrote:
>
D <nospam@example.net> writes:
>
On Thu, 20 Feb 2025, Salvador Mirzo wrote:
>
Now... do you seriously think anyone would ever be interested in that? ;)
>
LOL! It turns out I'm *highly* interested in your leafnode. Please,
can you put a package somewhere and let me look at it, try it out et
cetera? I've been thinking about doing something like that myself. I
can probably just live with your changes.
>
Of course!
>
Please grab a copy here:
https://send.vis.ee/download/749384a5de2f4f33/#6ZgrL_j_qwmhqBNuXenoJA
>
Thanks! Got the package and unpacked it fine. By the way, fdm is
already pulling my mail and I know it's able to download NNTP articles
too, so chances are it can do what leafnode has been doing for you.
I'll keep you posted. Thanks very much for providing the package.
>
Really?? I had no idea! Maybe I can scrap my leafnode setup then and
move to fdm? I think fdm (well I guess, I haven't actually checked)
might be more minimal even than leafnode, so thank you for the
pointer! I will definitely have to check out the fdm manual today! =)
>
Precisely---fdm is minimal. The reason I am not yet setting it up for
news is because fdm all by itself is not enough. You need to reply to
articles and fdm will not send articles out for you. It will only
download'em, so you can read them. (I assume this. I haven't tried
it.)
>
Sounds perfect for my needs. Alpine, my email client, has built in
news functionality. The thing is that you can activate it by turning
on "rich headers" and if you do that a Newgrp: field pops up. If you
fill in the newsgroup there, alpine then magically takes care of
posting it to the group.
Interesting!
So if fdm can download the files in a nice spool folder format, I
might even be able to apply my small python script to copy the news
posting into Maildir folders, and there I can read, and alpine then
posts.
I'm sure fdm can download and write them to a Maildir: it's how I use
it.
And by now I am willing to write a new one from scratch, so I intend to
make leafnode obsolete as well.
>
Best of luck! =) Sounds like a nice project!
>
It is. :) It's the most fun I've ever had with programming. I think
Common Lisp is a big part of it. I tried Racket before Common Lisp.
Common Lisp is so much my way than Racket is.
>
Go is the next on my list. What is it that makes you like lisp so
much? I have never considered it, so I am curious. Doesn't it wear out
the () keys on your keyboard? ;)
Lol. [L]ots of [S]tupid, [I]rritating [P]arenthesis.
Have you ever used paredit-mode in the GNU EMACS? It makes you love the
parenthesis. You're a vim user, so you likely never heard of paredit.
If you have the energy, the time and the curiosity, you could watch a
3-minute demo at
https://www.youtube.com/watch?v=D6h5dFyyUX0A few seconds will be enough to get the spirit, but I don't care if you
watch it---just skip it.
It's a pleasure to use paredit-mode. Let me quote Donald Norman. I'm
gonna show a larger quote, but my point here is on pleasure of use and a
``feeling of control''.
``The details of the interaction matter, ease of use matters, but I
want more than correct details, more than a system that is easy to
learn or to use: I want a system that is enjoyable to use. This is
an important, dominating design philosophy, easier to say than to
do. It implies developing systems that provide a strong sense of
understanding and control. This means tools that reveal their
underlying conceptual model and allow for interaction, tools that
emphasize comfort, ease, and pleasure of use [...]. A major factor
in this debate is the feeling of control that the user has over the
operations that are being performed. A `powerful,' `intelligent'
system can lead to the well documented problems of `overautomation,'
causing the user to be a passive observer of operations, no longer
in control of either what operations take place, or of how they are
done. On the other hand, systems that are not sufficiently powerful
or intelligent can leave too large a gap in the mappings from
intention to action execution and from system state to psychological
interpretation. The result is that operation and interpretation are
complex and difficult, and the user again feels out of control,
distanced from the system.'' -- ``User Centered System Design'',
capítulo 3, ``cognitive engineering'', ``on the quality of
human-computer interaction'', pages 48--49, Donald A. Norman, CRC
Press, 1986, ISBN 0-89859-872-9.
When we use software, we like to feel in control. I personally say that
every command I give to a software should come with a very easy to make
prediction of what's going to happen. When I press the A-key, I know
the letter ``a'' will appear and where. That gives me a feeling of
control. The GNU EMACS is a program that I can very easily read the
source code of the command I give, so I can find out exactly what it
does, which helps me to predict what will happen when I say something.
That's a feeling of control. Paredit-mode gives you control over the
parenthesis with very little effort, so it's pleasurable to use because
we like the control.
What about Lisp itself? That's harder to say. It's easier to tell the
story. The USENET is part of the story. I first fell in love with UNIX
and the USENET helped me to learn a lot. Barry Margolin was an active
presence in comp.unix.programmer and many others. I always learned so
much from him. I then decided to see where else I could find him. I
then found him in comp.lang.lisp. I was intrigued---I thought Lisp was
an old, archaic language. But then I started seeing how they did things
with small bits of code that I could hardly do with other languages and
back then my language was mainly C. I then decided to learn Lisp. I
couldn't. It was difficult. I had no clue about recursion and so on.
I almost gave up. Eventually I found the book HtDP (at htdp.org). That
book was awesome to me. But then I went towards Racket, which is a very
different Lisp than, say, Common Lisp. Only more recently I realized
Racket was a mistake for me. I decided to give Common Lisp a try in a
weekend. I had so much fun with the language.
Why?
I think it begins with macros. Macros in Common Lisp are so much easier
to write than in Racket. They're simpler. They may have less academic
elegance or whatever, but it has the awesome beauty of being extremely
simple and practical and getting the job done and being perfect in the
practical sense. Also, Common Lisp has all of its years with a lot of
smart people having perfected the tools (and they're still doing it).
As a result, you have awesome compilers such as SBCL. It produces fast
native code, which is a pleasure to see running. Racket, on the other
hand, doesn't have the same amount of years for optimization, say.
I think another thing about Common Lisp is that I developed a confidence
that what I do at the REPL will work exactly the same at run time, when
loaded by the OS directly. In other words, there's a sense of control
that I get with Common Lisp that I never got with Racket.
So Donald Norman nailed it.
Another point I can make, which other people have made in comp.lang.lisp
before is that Racket adds a thick layer on top of POSIX. I studied the
POSIX interface, so when I use a language that doesn't let me guide
myself by way of the POSIX interface, I'm already at a loss. For
instance, you'll find no select(2) call in Racket because it's /likely/
buried in their completely different interface called events. But then
I don't know if they're using select(2) or poll(2) or what. I would
expect them considering this an advantage. Of course, Common Lisp has
nothing to do with select(2), but you can the calls you need in the UNIX
packages of your compiler. I couldn't find such things in Racket.