The Lisper
The Lisper
  • Видео 67
  • Просмотров 50 876

Видео

The Loop Macro in Common Lisp: Not Lispy but Convenient
Просмотров 17514 дней назад
The Loop Macro in Common Lisp: Not Lispy but Convenient
Verifiy JWT: OAuth Client From Scratch In Common Lisp [2/2]
Просмотров 12821 день назад
Verifiy JWT: OAuth Client From Scratch In Common Lisp [2/2]
How To Get A Access Token: OAuth Client From Scratch In Common Lisp [1/2]
Просмотров 235Месяц назад
How does the Authorization Code Grant with PKCE work? Let's build it from scratch in Common Lisp. Github Repo: github.com/albertolerda/htmx-with-cl/tree/main/oauth-intro Code we started with taken from: github.com/albertolerda/htmx-with-cl/blob/main/basic-htmx/basic-htmx.lisp Session with redis: ruclips.net/video/O2uIL_JKTHw/видео.html
CLOS: defgeneric and defmethod
Просмотров 2474 месяца назад
What are defgeneric and defmethod?
CLOS: Introduction and usage of defclass
Просмотров 4765 месяцев назад
What is CLOS? What is a class and how to define one? All with the interactivity of Common Lisp!
Haskell-Like Type System In Common Lisp With Coalton
Просмотров 6735 месяцев назад
Algebraic Data Types in Common Lisp??? With Coalton it is possible!
Manage Cookies Securely With Clojure and Ring
Просмотров 966 месяцев назад
Manage Cookies Securely With Clojure and Ring
Series: A Functional Approach To Common Lisp
Просмотров 7036 месяцев назад
Series: A Functional Approach To Common Lisp
Building a Webapp in Clojure with Ring
Просмотров 2766 месяцев назад
Building a Webapp in Clojure with Ring
Common Lisp Installation With Roswell On Windows And Linux (with Tips For Troubleshooting)
Просмотров 2277 месяцев назад
How to install roswell? What to pay attention during the installation? How to choose the implementation we want?
Clojure installation on Windows and Intellij IDEA
Просмотров 4107 месяцев назад
Quick video on how to setup Clojure in Intellij IDEA
ABCL (Common Lisp) Installation
Просмотров 5807 месяцев назад
Let's see how to install ABCL and share some first sight impression. What about you, have you ever used ABCL?
.env (dotenv) in Common Lisp (+ Codition System bonus!)
Просмотров 5457 месяцев назад
What is a .env file? How to deal with them in Common Lisp? As a bonus we will see how to deal with error in an interactive environment! Commit described: github.com/ollelauribostrom/cl-dotenv/commit/a1f513c15d98e810e9de5732685a54c2ac407f70
Easy database with cl-dbi and sxql (Common Lisp)
Просмотров 4388 месяцев назад
Easy database with cl-dbi and sxql (Common Lisp)
Cookie and Session with Common Lisp (using Lack)
Просмотров 3158 месяцев назад
Cookie and Session with Common Lisp (using Lack)
Improving The Countdown with Forms in Phoenix Liveview [Elixir]
Просмотров 1838 месяцев назад
Improving The Countdown with Forms in Phoenix Liveview [Elixir]
From Clack to Ningle passing through Lack (Common Lisp)
Просмотров 7608 месяцев назад
From Clack to Ningle passing through Lack (Common Lisp)
HTMX with Common Lisp: Dynamic Tables and Advanced Forms
Просмотров 5828 месяцев назад
HTMX with Common Lisp: Dynamic Tables and Advanced Forms
Common Lisp: defvar vs defparameter
Просмотров 3849 месяцев назад
Common Lisp: defvar vs defparameter
Tail Recursion With Common Lisp, Do or Don't?
Просмотров 9079 месяцев назад
Tail Recursion With Common Lisp, Do or Don't?
Myth: Lisp Is Slow
Просмотров 1,7 тыс.9 месяцев назад
Myth: Lisp Is Slow
Build A Countdown Using Phoenix Liveview
Просмотров 3359 месяцев назад
Build A Countdown Using Phoenix Liveview
Elixir For Lisper: Concurrency, Macros and Community
Просмотров 42110 месяцев назад
Elixir For Lisper: Concurrency, Macros and Community
Dynamic Forms and Tables with Common Lisp and HTMX
Просмотров 70310 месяцев назад
Dynamic Forms and Tables with Common Lisp and HTMX
Closures in Common Lisp, when CLOS Is Too Much
Просмотров 85810 месяцев назад
Closures in Common Lisp, when CLOS Is Too Much
Lisp 1 vs Lisp 2
Просмотров 51010 месяцев назад
Lisp 1 vs Lisp 2
Dynamic Page With HTMX and Common Lisp
Просмотров 2,2 тыс.11 месяцев назад
Dynamic Page With HTMX and Common Lisp
What is Lisp used for?
Просмотров 2,7 тыс.11 месяцев назад
What is Lisp used for?
TDD with Datomic and Clojure using clojure.test
Просмотров 20411 месяцев назад
TDD with Datomic and Clojure using clojure.test

Комментарии

  • @michaellazarou6891
    @michaellazarou6891 10 дней назад

    I think you do the best CL stuff on here, now

    • @the-lisper
      @the-lisper 9 дней назад

      Nice to hear! Thanks!

  • @GlueTubber
    @GlueTubber 11 дней назад

    updated finding: if you set *print-circle* t, and define a long list with repeating elements, you will see that the elements that repeat are not stored as individual elements, but are stored as pointers pointing to the original list item that it duplicated... I guess this changes when you update the element? Anyway, when you print the list in the repl, you will see items that are list as #1YourItem, #2AnotherItem, etc. When the printout gets to the repeating elements, instead of printing them it will show (for example) #1# (if the item is a repeat of the first list item). This really threw me when I stumbled over it. But if you take (nth somenumber yourlist) and somenumber is a repeat item, you will see the correct list item. just an FYI. cheers!

    • @the-lisper
      @the-lisper 11 дней назад

      Yes! In the video we have shown how to use the reader macro #1# to create a recursive data structure (putting it in the tail), but it can actually be useful every time you want to see if two references are the same!

  • @alessandroporfirio1910
    @alessandroporfirio1910 12 дней назад

    Mr. Lisper, what do you think about doing a series on Data Structures and Algorithms implementation in Common Lisp? I would love to watch that.

    • @the-lisper
      @the-lisper 12 дней назад

      That is a nice idea! :)

    • @alessandroporfirio1910
      @alessandroporfirio1910 12 дней назад

      @@the-lisper there is a great lack of such content for Lisp on RUclips. You would bring great value to the community :)

  • @simonsaville9962
    @simonsaville9962 13 дней назад

    You're a mind-reader! I was just thinking earlier about using a circular list, and their dangers. Thank you, for the explainer.

    • @GlueTubber
      @GlueTubber 13 дней назад

      lol, both of you are! I just implemented a couple of functions with circular lists over the weekend!

    • @the-lisper
      @the-lisper 12 дней назад

      Happy to help! Circular lists are definitely interesting. Glad the timing worked out! Thanks for watching!

    • @evanskarani7508
      @evanskarani7508 12 дней назад

      @@the-lisperThank you for your top-tier content, a true gift in this long lisp journey. I'm having a bit of trouble implementing lack-middleware-csrf with my djula templates. Could you please make a tutorial with an example of the same?

    • @the-lisper
      @the-lisper 12 дней назад

      @@evanskarani7508 Never actually used it, I can put it in the backlog!

  • @krzysztofwalkiewicz8431
    @krzysztofwalkiewicz8431 18 дней назад

    My favorite YT channel 🙂

  • @adrien335
    @adrien335 20 дней назад

    I'm personally a big fan of this macro. But I mostly use. the iterate library.

    • @the-lisper
      @the-lisper 20 дней назад

      Yeah, I completely agree with you... Both do and loop are at times a little bit harsh

  • @marcrohrer7130
    @marcrohrer7130 20 дней назад

    Great! Thank you! Could you also show do in more detail?

    • @the-lisper
      @the-lisper 20 дней назад

      There was a small introduction in one of the first videos ruclips.net/video/aL1Sdjdo1MY/видео.html , but for sure do deserve a video by its own and more in details!

  • @serenditymuse
    @serenditymuse 26 дней назад

    Definitely do. This is Lisp. It should support anything that is useful to do.

    • @the-lisper
      @the-lisper 26 дней назад

      Ja, the ANSI standard just doesn't mandate to optimize it. Even though it usually does (when possible)

  • @serenditymuse
    @serenditymuse 26 дней назад

    Why would you want public keys to be secrets? They are "public" for a reason. Am I missing something?

    • @the-lisper
      @the-lisper 26 дней назад

      Nono just the client secret has to be secret, the rest is just not good practice to have them in the code...

  • @टिरंजननकले
    @टिरंजननकले 29 дней назад

    Over complicated in my opinion. Is there any tutorial /book which can explain this? what are :initarg and :text ? How to get them populated in IDE? I am using Portacle

    • @the-lisper
      @the-lisper 29 дней назад

      Thanks for the feedback, I assumed some basic knowledge of CLOS, which is a prerequisite for the condition system.. For :initarg for example there is this video ruclips.net/video/cssHR_MLwNQ/видео.html

  • @PretoriousVids
    @PretoriousVids Месяц назад

    This is excellent and will be useful for my first large CL project! Thank you for your work on these videos, I watch every single one.

  • @टिरंजननकले
    @टिरंजननकले Месяц назад

    Interesting. But thats's not from scratch. I was under impression that Auth provider will be in Common Lisp! Authentik is written in Java or Golang i believe.

    • @the-lisper
      @the-lisper Месяц назад

      I meant writing the OAuth client from scratch... Updated the title...

    • @टिरंजननकले
      @टिरंजननकले Месяц назад

      @@the-lisper Thanks

    • @टिरंजननकले
      @टिरंजननकले Месяц назад

      @@the-lisper Thanks.Which IDE do you recommend? I tried Emacs but could not adjust. How is VS Code?

    • @the-lisper
      @the-lisper Месяц назад

      I am an emacs user... If the problem is setting up emacs, you can try Portacle which comes preconfigured (the first videos on this channel were made with it). Sadly I cannot talk about VS Code, because I have never used the plugin for Common Lisp... If I will ever try it, for sure I will make a video!

  • @adrien335
    @adrien335 Месяц назад

    always happy when you post :)

  • @rpx8787
    @rpx8787 Месяц назад

    Great you are back again.

    • @the-lisper
      @the-lisper Месяц назад

      Finally talking about authentication and authorization!

  • @टिरंजननकले
    @टिरंजननकले Месяц назад

    Which IDE to use for Common Lisp? I really don't like emacs and its flavors.

    • @the-lisper
      @the-lisper Месяц назад

      I am a Emacs/Portacle user... But I have heard that the situation is improving with VSCode. I cannot really talk about it now, because I have never tried it...

  • @patriot925
    @patriot925 2 месяца назад

    Papers have been written proving that compiled lisp code can be just as fast as C code, especially with statically typed variables and optimal data structures like indexed arrays and vectors.

    • @the-lisper
      @the-lisper Месяц назад

      Yes, that is exactly what I meant!

  • @DanielMojoli
    @DanielMojoli 2 месяца назад

    Good tool for faster solutions while keeping CL.

  • @oPorks
    @oPorks 2 месяца назад

    Thanks!

  • @laughingvampire7555
    @laughingvampire7555 2 месяца назад

    I love to see the common lisp community growing and getting more active.

  • @laughingvampire7555
    @laughingvampire7555 2 месяца назад

    so, are we making competition to HTMX?

    • @the-lisper
      @the-lisper 2 месяца назад

      No, we don't.. We use it together! ruclips.net/video/xnwc7irnc8k/видео.html :)

  • @qc4191
    @qc4191 3 месяца назад

    That's really inspiring, thanks a lot!

    • @the-lisper
      @the-lisper 3 месяца назад

      Thanks to you for the comment, it is important to use packages correctly!

  • @laughingvampire7555
    @laughingvampire7555 3 месяца назад

    so, about the type inference is it exclusive for classes or applies to structs and types with deftype as well?

    • @the-lisper
      @the-lisper 3 месяца назад

      Type inference is quite implementation specific, for example in SBCL the strictness is configurable up to a certain point. Coalton is a library that doesn't depende on the implementation.

  • @laughingvampire7555
    @laughingvampire7555 3 месяца назад

    I love to see a new raise in the common lisp community, is slow and steady, this is the best, because in the last times, it was fast and went as fast as it came, we need time to build an ecosystem that makes lisp great again.

    • @the-lisper
      @the-lisper 3 месяца назад

      Common Lisp has had some great introductory material for some time for who is interested, but the ecosystem can really be improved...

  • @laughingvampire7555
    @laughingvampire7555 3 месяца назад

    you forgot to talk about CLASP implementation of Common Lisp, targeting LLVM to interface with C++ and compile everything to native, no interpreter and it is being used to work in chemistry for nanotechnology and design nanomachines and molecules.

    • @the-lisper
      @the-lisper 3 месяца назад

      Yeah, there are a lot of interesting projects!

  • @FlickeringBytes
    @FlickeringBytes 4 месяца назад

    Excellent, thanks for a short and effective presentation 😊

  • @haroldostenger5160
    @haroldostenger5160 4 месяца назад

    Do you know of anything like flet for multiplatform (gtk / web/ mobile) implementations usable and integrateable like this from CL ?

    • @the-lisper
      @the-lisper 4 месяца назад

      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)

  • @marknaylor7322
    @marknaylor7322 4 месяца назад

    I like how emacs org-mode is used to drive the presentation.

    • @the-lisper
      @the-lisper 4 месяца назад

      Org-mode is convenient everywhere! :P

  • @40Ants
    @40Ants 4 месяца назад

    Really useful video. I heard about py4cl but didn't use for anything practical yet.

    • @the-lisper
      @the-lisper 4 месяца назад

      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!

  • @DanielMojoli
    @DanielMojoli 4 месяца назад

    Informative! I was aware of those libraries, but as a CL beginner I needed some perspective. These videos are a public service.

    • @the-lisper
      @the-lisper 4 месяца назад

      Yes, I also think that some context is important when choosing a library!

  • @amorphousblob2721
    @amorphousblob2721 5 месяцев назад

    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.

    • @the-lisper
      @the-lisper 5 месяцев назад

      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!

  • @PixelOutlaw
    @PixelOutlaw 5 месяцев назад

    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!

    • @the-lisper
      @the-lisper 5 месяцев назад

      Yes, "Object-Oriented Programming in COMMON LISP: A Programmer's Guide to CLOS" and "The Art of the Metaobject Protocol" is the way to learn CLOS!

  • @vinapocalypse
    @vinapocalypse 5 месяцев назад

    Do you think its possible to use CFFI to interface with the Unreal Engine APIs? I understand it has its own GC...

    • @the-lisper
      @the-lisper 5 месяцев назад

      Sorry, I cannot say because I really don't know its APIs...

    • @raynei
      @raynei 4 месяца назад

      AFAIK, you can't. Unreal API uses C++, which is fundamentally different from C in terms of FFI.

  • @DanielMojoli
    @DanielMojoli 5 месяцев назад

    Excellent approach to teaching! I will imitate it. Thank you!

  • @simonsaville9962
    @simonsaville9962 5 месяцев назад

    You're a mind reader, I was thinking about getting dirty with some CLOS earlier today. TFTV!

    • @the-lisper
      @the-lisper 5 месяцев назад

      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!

  • @puduwatom
    @puduwatom 5 месяцев назад

    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

    • @the-lisper
      @the-lisper 5 месяцев назад

      Yes, SBCL is production ready (see for example www.grammarly.com/blog/engineering/running-lisp-in-production/ )

  • @JasonSmith80513
    @JasonSmith80513 5 месяцев назад

    Also ABCL for Common Lisp on Java...

    • @the-lisper
      @the-lisper 5 месяцев назад

      At the moment I have little experience with it...

  • @getpunned
    @getpunned 5 месяцев назад

    I'm sure the video title sounds like silly nonsense words to non-programmers 😂 Anyway, good video

  • @anono71
    @anono71 5 месяцев назад

    How much math would one need to know in order to master lisp?

    • @the-lisper
      @the-lisper 5 месяцев назад

      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.

  • @RicardoBigEggs
    @RicardoBigEggs 5 месяцев назад

    As someone currently starting with CL, this is very useful. Thanks a lot!

    • @the-lisper
      @the-lisper 5 месяцев назад

      Thanks for the feedback!

  • @olegharput9988
    @olegharput9988 5 месяцев назад

    Will you make a video for before, after and around methods?

    • @the-lisper
      @the-lisper 5 месяцев назад

      Yes, in the future I may discuss MOP more in details! I wouldn't say "soon"

  • @piotrkozbial8753
    @piotrkozbial8753 5 месяцев назад

    I think more properly it's a Hindley-Milner type system, used by the whole ML language family, notably OCaml, F# and Haskell.

    • @the-lisper
      @the-lisper 5 месяцев назад

      True, but I thought it was too much for a title, maybe comparing it to OCaml would have been even better since it is not lazy

  • @RicardoBigEggs
    @RicardoBigEggs 6 месяцев назад

    Very interesting

  • @jacekjacenty
    @jacekjacenty 6 месяцев назад

    Did types beat Lisp? Or did Lisp manage to swallow a typed language?

    • @the-lisper
      @the-lisper 6 месяцев назад

      I think that it is not really about win or lose, it is more about freedom (and being able to do everything with macros!)

    • @AntLobach
      @AntLobach 3 месяца назад

      Exactly

  • @jarbihc2714
    @jarbihc2714 6 месяцев назад

    too quiet, even at max volume..

    • @the-lisper
      @the-lisper 6 месяцев назад

      Thanks for the feedback!

  • @名-t8p
    @名-t8p 6 месяцев назад

    とても良い動画ですね。 Doug HoyteのLetOverLambdaのチャプター2(和訳だと第一章) letoverlambda.com/index.cl/guest/chap2.html#sec_7 の、 まとめを読んだ様な気分。古き良きletとlambdaだけでOOモドキが簡単に 出来て楽しい。特にmake-personのリターンが値の一覧では無くてlambdaの 一覧なのが、なんかファンクショナルで良いですね。ところで、 外側のdefunと内側のlambdaの役割分担は、 ・外側のdefun - インスタンスの作成(new) ・内側のlambda - アクセサとかセッター という風に考えて良いのでしょうか? また宣言した*person*を削除(delete-person)する様に改変するなら どの様にしますか? OOとしては足らない機能は何ですか?

  • @simonsaville9962
    @simonsaville9962 6 месяцев назад

    Now I understand! Thanks for saving my sanity.

    • @the-lisper
      @the-lisper 6 месяцев назад

      The condition system has to be explored a little bit at a time!

  • @meow-iskander
    @meow-iskander 6 месяцев назад

    Parabéns!

  • @40Ants
    @40Ants 6 месяцев назад

    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.

    • @the-lisper
      @the-lisper 6 месяцев назад

      .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

  • @ciaspo
    @ciaspo 6 месяцев назад

    Grazie per l'utilissimo video. E che sorpresa vedere che l'autore è un omonimo Italiano! Un saluto dalla Scozia 👋😊

    • @the-lisper
      @the-lisper 6 месяцев назад

      Grazie mille per il commento! 😊 Sono felice che il video ti sia stato utile! 👋🇮🇹

  • @Achy1les
    @Achy1les 6 месяцев назад

    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.

    • @the-lisper
      @the-lisper 6 месяцев назад

      Thanks for the tips! I will think about them!