Hi 👋, I'm Alberto, if you are curious about applying the old Lisp art in the modern cloud, you are in the right place!
Here, web dev, DevOps and security meet macros and interactive programming. You should expect to find videos about languages like Common Lisp or Clojure, but also Unix and Emacs-related stuff.
No, sorry... The CL ecosystem provides a lot of building blocks, but integration with many platform is a lot of works and requires a bigger community... I think that the best chance is to integrate CL as a shared library (ECL or sbcl-librarian) into some other products outside the CL ecosystem... (or buy LispWorks)
I also really like the idea, Lisp has to find ways to talk to the outside world. This way it can be used to write the core logic and take advantage of libraries that receive a lot of development!
With the _closer-mop_ library in most Common Lisp implementations, you can deny access to a slot by defining the SLOT-VALUE-USING-CLASS method. Your method would check if it's being called by an approved caller (using a special variable that either does or doesn't have the correct sentinel variable, and a macro to define approved accessor functions in such a way that the special variable has the sentinel value), and it would signal an error if it wasn't. A metaclass that uses a custom slot type would give you a place to store the visibility of each slot.
Thanks for the tip! I think that one should have strong reason to build such a construction, most of the time I would provide the "public interface" and discourage the usage of the "internal interface". The user may mess up at its own risk. Nevertheless, yeah, it is interesting the one can do whatever he wants!
I think the CLOS is a very good OOP system. It's unfortunate that C++ and Java have implemented such schizophrenic notions of classes souring an entire generation on what OOP can be. I used functions quite heavily, but for stateful components in a system (especially when I want dispatch) CLOS is excellent. There are quite a few CLOS books too!
That’s awesome timing! CLOS is such a fascinating topic. Enjoy getting into it, and feel free to comment if you have some questions or interesting discovery!
I'm pretty surprised what CLisp is capable of, but is it safe for production environments ? I'm asking this as a newcomer in the language, because in my whole life I used java and golang for web apps
Probably knowing some math may help, it may make you see things in a different way. Nevertheless, it is really not required, one can learn by doing and there are no really prerequisites from math.
Why to write a special reader function and use SHELL syntax for config, when you can just LOAD a lisp file with any code holding config values? Usually I just use UIOP:GETENV in a place where confuration value is used and have (LOAD ".local.lisp") which SETF these variables if .local.lisp file exists. In production these env variables are configured in a dockerfile or in the systemd config.
.env file and environmental variables are almost the standard in webapp configuration, you can use the same config directly with your lisp implementation or passing it to docker without changing it
Very good examples using Portacle. Could you make more videos using Portacle? I am asking it because I know some people who uses Windows who might be interested in Emacs, but never heard about it... And it is a good way to start leading them into the Linux/OpenSource path... Apart from that, when you make new videos about Lisp/Emacs, could you use lighter themes and bigger fonts? Just think about people who are short-sighted and would like to follow your YT channel. Thx.
Hello, I would suggest looking at the resources in the various subreddits related to lisp, there is usually a section with tutorial and books. For example you could start from www.reddit.com/r/lisp/ and then looking at the one regarding the lisp you are interested in, for example common lisp ( www.reddit.com/r/Common_Lisp/ ) or clojure ( www.reddit.com/r/Clojure/ )!
If you're looking for Common Lisp, get yourself a copy of Peter Seibel's book. It's awesome and also available online. For Clojure, there are many high quality books out there.
Let-over-lambda means define a function inside another lexical scope, when you call the function you are actually outside that scope but it was not freed because you are still using some references. The outer defun let you "parameterize" the closure, and create basically some "objects"
@the-lisper But you could create and parametrize objects with let inside, so I still don't understand difference between (let (defun ...) and (defun (let ...)
let-defun basically declare "global" variable, every call to that function share the same variable defun-let-lambda let's you create "parametrized" lexical scope Thanks! :)
I was so confused on the back tick operator cause of the accent, I thought it said bactic. Then I read the terminal error which said "Comma not in backquote" and realised lmao
Thanks for your explanations! I had been considering to learn a Lisp dialect like Scheme or Racket just for fun because I had never met in person someone who knew what the hell Lisp is…
Thanks man! I love you! My first ever programming language was Lisp, when i read SICP ( even though they use schema), but life made me a Java developer :/ ... Still using Lisp, tho.... And, dude, 3 yrs since i've been in love with Lisp. I hope to find a job that allows me to use it, i'm 20 yrs old, but i don't think the avarege Lisp dev-team would accept someone so young... But thx anyway!! Stay recursive! <3
@@the-lisper That's exactly what I was looking for. That was of great help. thanks. (flexi-streams:with-output-to-sequence (s :element-type '(unsigned-byte 8)) (gen-captcha s))
Yo i recently discovered this channel and it's really cool! I'm still new in lisp development so I'm really grateful for the information you're sharing. Hope you stick around and teach us some new stuff. Grazie mille
This is an example from another video in which the session middleware is used together with ningle! github.com/albertolerda/cl-experiments/tree/main/session
Do you mean something like this ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-ehazNwdTZBE.html or this ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-N7abOnNPvi8.html ?
At the moment I like web dev and prefer to keep it as simple and "bare metal" as possible, that is why I have chosen ningle+htmx, it is the least you need to write something proficiently.
You can see a simple example for using SQLite here ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-n5URvYd0VT8.html In the future I plan to do a video also on cl-dbi!