Planet Lisp
20h38 06  août
Alexander Artemenko: packet
This library is suitable to build a binary protocol to exchange data with programs written in other languages like C. It is possible to define data structures like this: POFTHEDAY> (packet:defpacket person ((name (:string 20) :initform "" ...
20h28 05  août
Alexander Artemenko: cl-qprint
This small library implements a Quoted-Printable encoding algorithm suitable to use in multipart emails. In this example, we’ll encode a string into the quoted-printable and then back into the Lisp string. CL-QPrint encodes bytes. That is why I’m using babel here: POFTHEDAY> (babel:string-to...
19h09 04  août
Alexander Artemenko: deeds
This is library by Shinmera. It implements a message-passing protocol. With deeds you are sending events of some class to the handlers. Handlers are much like methods, but with additional abilities. For example, here is the handler which filters and process only messages containing Hello ...
20h44 03  août
Alexander Artemenko: cl-speedy-queue
This system implements a non-consing queue. Internally it uses a simple vector to organize a circular buffer. First two elements of the buffer are reserved for start and end pointers: POFTHEDAY> (defparameter q (cl-speedy-queue:make-queue 10)) POFTHEDAY> q #(2 2 #:EMPTY 0 0...
20h42 02  août
Alexander Artemenko: cl-stream
This system defines a new streams API for CL. It is still WIP, but something already works. For example, there is how we can make a stream to read numbers from a vector: POFTHEDAY> (defparameter s (cl-stream:sequence-input-stream #(1 2 3))) ;; Standard read function does not...
17h40 01  août
Alexander Artemenko: modf
This system provides a macro which acts like setf but does not change original data-structure. It will be useful if you want to write the code in a functional style, without side-effects: POFTHEDAY> (defparameter foo '(#(1 2 3 4 5) #(6 7 8) #(9))...
11h56 01  août
Nicolas Hafner: Moving On - August Kandria Update
This month marks the release of the Kandria 0.0.2 demo It also marks a change in focus, but I’ll talk about all of that in a second. First, if you want to give the demo a try, you can get a copy here: https: kandria.com prototype Now, last month I talked at length about the engine changes and...
19h41 31  juillet
Alexander Artemenko: graylex
This system provides a way to extract tokens from streams. This can be useful when working with data, received from the network or to read large files from disk. Here is the example of a simple parser: POFTHEDAY> (with-input-from-string (input "001, 110, 101") (loop with...
19h30 30  juillet
Alexander Artemenko: crypto-shortcuts
Crypto-shortcuts serves a single purpose - to reduce an amount of headache when you have to encrypt, decrypt or make some kind of hash. This Shinmera’s library has a nice documentation. Today I lack time, so here is the only one example of making a sha256 hash out of string. This code which uses...
18h46 29  juillet
Alexander Artemenko: utilities.print-items
This is a library by scymtym. It provides a composable way to write print-object methods for complex class hierarchies. It has a good tutorial. Just to give you idea for cases where it can be useful, consider you have the following class hierarchy: POFTHEDAY> (defclass user () (...