freenode/#lisp - IRC Chatlog
Search
13:05:34
Demosthenex
jackdaniel: you see that POC code to make a webserver return one script for a browser, and a malicious one for curl?
13:06:26
Demosthenex
apparently the pipe to bash causes blocking and timing that is readable by the remote
13:07:44
Demosthenex
jackdaniel: https://www.idontplaydarts.com/2016/04/detecting-curl-pipe-bash-server-side/
13:11:56
Demosthenex
oh, you had that cl-charms mcclim writeup. nice! i'm looking forward to your mcclim charms backend ;]
13:17:41
Demosthenex
i've been looking for a TUI library for simple things... i recall using turbovision ages ago and can't seem to find anything like it
13:18:10
Demosthenex
but something you said in that article about "making 1/10th of clim in text" rings true...
13:19:23
jackdaniel
" Any sufficiently complicated C or Fortran program contains an ad-hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp. "
13:19:46
Demosthenex
that's true, but it also highlights the different between having curses level control (ala charms), vs a real UI library with event loops, widgets, and screen controls.
13:20:51
Demosthenex
i find it uniquely weird that something as simple as an AS/400 style full screen form should have zero open libraries nowadays
13:21:25
jackdaniel
from other fun useless things I want to do is adding libcaca extension to that charming-clim backend
14:09:36
void_pointer
if for no other reason that to implement the second oldest language family in the oldest
14:14:39
void_pointer
Should be fairly easy to implement lisp 1.5 in fortran 95 or newer with no limitations other than available RAM. Fortran 77 would, if completely conformant, have a fixed at compile time limit on the number of conses
14:21:42
beach
void_pointer: Yes, in fact, the first Lisp system I used was an implementation of Interlisp in Fortran.
17:05:13
trocado
hi! i think my quicklisp configuration is broken... anything other than quickloading a specific dist gives an error.
17:05:30
trocado
for example: (ql:update-dist "alexandria") -> There is no applicable method for the generic function
17:14:52
pjb
before, you may collect the list of installed packages, if you want to re-install them.
18:38:21
manumanumanu
Anyone here familiar with the iter macro? I want to get the fibonacci numbers getting it, but all I am getting is powers of two :)
18:39:06
manumanumanu
which is because I don't know how to work around it's let*-style variable bindings
18:41:33
pjb
(loop :repeat 10 for a := 1 :then b :and b := 1 :then (+ a b) :do (prin1 a) (princ " ")) #| 1 1 2 3 5 8 13 21 34 55 --> nil |#
18:41:41
pjb
(loop :repeat 10 for a := 1 :then b :for b := 1 :then (+ a b) :do (prin1 a) (princ " ")) #| 1 1 2 4 8 16 32 64 128 256 --> nil |#
18:42:44
manumanumanu
I am just curious to see how they compare, and I got stuck implementing my first test
18:44:35
manumanumanu
they suggest working around the non-parallel bindings using iter's support for "previous x"
18:45:01
Bike
https://common-lisp.net/project/iterate/doc/Parallel-Binding-and-Stepping.html#Parallel-Binding-and-Stepping is what the manual says.
18:45:31
manumanumanu
(for (repeat 10) (for a previous b initially 0) (for b initially 1 then (+ a b)) (collect b)) still produces 0 1 2 4 8 16 ...
18:49:18
pjb
(iter (repeat 10) (for a previous b initially 0) (for a_-1 previous a) (for b initially 1 then (+ a_-1 b)) (collect b)) #| --> (1 1 2 3 5 8 13 21 34 55) |#
18:53:33
asarch
"Good" in the sense of SQLAlchemy and not just "an ORM" in the sense of SQLObject (both for Python)
18:55:26
manumanumanu
pjb: I am implementing something similar myself, but I'll probably go with something more let and let* styled. Like for and for*
19:06:50
dim
asarch: also Postmodern offers some high-level APIs to talk to PostgreSQL, that might be all you need here really
20:14:46
aeth
asarch: I'm sorry in advance if you're the person I said this to last time this subject came up, but...
20:15:33
aeth
So people in CL normally want something like s-expressioned SQL so they can just treat SQL like a DSL
20:17:05
PuercoPop
minion: memo for Fare: I can't find any reference to the QUAKE ORM you mentioned. Do you happen to have a link?
20:19:05
aeth
Essentially, you want to build a language that solves your problem exactly, such as loop or format or cl-ppcre.
20:19:57
aeth
If your language uses s-expressions it's very easy to integrate into CL. (Those examples don't.)
20:22:35
asarch
Well, from the point of view of them (Perl/Python people), ORMs are for abstract SQL operations on queries and since (as the On Lisp book says) you can actually create your own programming language with Lisp, I thought this "step" was "natural"
20:24:29
aeth
If you can express an SQL query as an s-expression (which is then translated to a string), you can process it in Lisp. Even if this is done entirely at compile time (and at runtime you only have the SQL string), you can still do things with it in macros that generate that macro.
20:28:48
aeth
Even if you have a CL ORM at some point it's probably just going to be working on SQL-as-s-expressions. (And you could build one on top of such a system.)
20:30:05
aeth
Probably because even the select is a form within something and isn't itself a macro/function
20:31:29
aeth
It's not flat like your line, though, which makes sense. You'd want something like (:and (:= ...) (:< ...))
0:28:32
asarch
People said that if you enter this operator at debug screen at work, you will enter to a hidden place with free beers and donuts