iovec has quit [Quit: Connection closed for inactivity]
karlosz has joined #lisp
lxbarbosa has quit [Ping timeout: 268 seconds]
lxbarbosa has joined #lisp
lxbarbosa has quit [Ping timeout: 245 seconds]
quazimodo has joined #lisp
FreeBirdLjj has joined #lisp
bitmapper has quit [Ping timeout: 240 seconds]
karlosz has quit [Quit: karlosz]
JohanP has joined #lisp
JohanP has quit [Ping timeout: 240 seconds]
libertyprime has quit [Ping timeout: 265 seconds]
quazimodo has quit [Quit: Reconnecting]
quazimodo has joined #lisp
FreeBirdLjj has quit [Remote host closed the connection]
akoana has joined #lisp
FreeBirdLjj has joined #lisp
17SAAETAH has joined #lisp
EvW1 has quit [Ping timeout: 264 seconds]
akoana has left #lisp [#lisp]
dale has quit [Quit: My computer has gone to sleep]
17SAAETAH has quit [Client Quit]
FreeBirdLjj has quit [Ping timeout: 240 seconds]
space_otter has joined #lisp
libertyprime has joined #lisp
lxbarbosa has joined #lisp
xkapastel has quit [Quit: Connection closed for inactivity]
FreeBirdLjj has joined #lisp
JohanP has joined #lisp
clothespin_ has joined #lisp
t58_ has joined #lisp
x[LGWs4x4i]uG2N0 has quit [Read error: Connection reset by peer]
x[LGWs4x4i]uG2N0 has joined #lisp
JohanP has quit [Ping timeout: 245 seconds]
mindCrime_ has quit [Ping timeout: 264 seconds]
clothespin has quit [Ping timeout: 276 seconds]
FreeBirdLjj has quit [Remote host closed the connection]
ralt has quit [Quit: Connection closed for inactivity]
clothespin_ is now known as clothespin
t58 has quit [Ping timeout: 276 seconds]
paul0 has quit [Read error: Connection reset by peer]
paul0 has joined #lisp
Josh_2 has quit [Remote host closed the connection]
FreeBirdLjj has joined #lisp
GoldRin__ has quit [Remote host closed the connection]
x[LGWs4x4i]uG2N0 has quit [Read error: Connection reset by peer]
ltriant has quit [Read error: Connection reset by peer]
x[LGWs4x4i]uG2N0 has joined #lisp
ltriant has joined #lisp
GoldRin__ has joined #lisp
Jesin has quit [Ping timeout: 245 seconds]
cmatei has quit [Ping timeout: 245 seconds]
hiredman has quit [Ping timeout: 245 seconds]
xantoz has quit [Ping timeout: 245 seconds]
hiredman has joined #lisp
xantoz has joined #lisp
cmatei has joined #lisp
wxie has joined #lisp
Jesin has joined #lisp
semz has quit [Ping timeout: 245 seconds]
prite has quit [Ping timeout: 276 seconds]
wxie has quit [Remote host closed the connection]
JohanP has joined #lisp
superkumasan has quit [Ping timeout: 265 seconds]
JohanP has quit [Ping timeout: 268 seconds]
semz has joined #lisp
semz has quit [Changing host]
semz has joined #lisp
prite has joined #lisp
<aeth>
So I'm printing HTML but the problem probably almost comes out when printing XML or even just {...}s in curly bracket languages... heck, even s-expressions themselves.
paul0 has quit [Remote host closed the connection]
paul0 has joined #lisp
<aeth>
The problem basically is, if I want something to be dynamic, I need to be able to generate something like a closure containing format with the format string "<foo>~A</foo>" since not all of the input will be available at compile time.
orivej has joined #lisp
<aeth>
Now, I can think of two options. One is to use ~/package::foo/ which will call a write-to-stream function from within the format string.
<aeth>
The other would be to put it in one big string, but with splits, so e.g. a bunch of (write-string string stream :start start :end end) with the custom WRITE-FOO called in between. This way I don't have to escape ~s so it's more robust, but less elegant.
<aeth>
These seem like the only way to split up a precalculated writable string, at least that I could think of.
ahungry has joined #lisp
mindCrime_ has joined #lisp
JohanP has joined #lisp
JohanP has quit [Ping timeout: 240 seconds]
buffergn0me has joined #lisp
<buffergn0me>
Does anyone know if there is a way to handle a condition without doing a control transfer or using the continue restart?
lxbarbosa has quit [Remote host closed the connection]
<buffergn0me>
I am trying to coalesce 1 or more conditions of a known class that an arbitrary piece of code signals into a single condition.
prite has quit [Ping timeout: 240 seconds]
<Bike>
well, "handling" a condition means a control transfer by definition.
<Bike>
what do you want to happen exactly?
<Bike>
(CONTINUE is a control transfer also, jsyk)
<buffergn0me>
Bike: I would like to stop any outer HANDLER-BIND condition handlers from seeing a condition, without affecting control flow.
<buffergn0me>
Bike: Basically in this situation conditions are being used as a non-local communications mechanism.
<Bike>
how is that different from continue?
<Bike>
or do you want it to go into the debugger immediately?
<Bike>
i guess not, if it's for communications
<buffergn0me>
Bike: It is exactly like CONTINUE, I am just wondering if there is a way I can get away without having to write CONTINUE restarts for all the code that signals the conditions
<aeth>
if there isn't you can write a macro (or even a reader macro)
<Bike>
you can just wrap it up in a function. (defun communicate (condition) (with-simple-restart (continue "") (signal condition))) or something
<aeth>
oh, or a function
dale has joined #lisp
<buffergn0me>
Option B for this is to do communications by binding special variable(s) that act as accumulators. Which I am leaning towards.
FreeBirdLjj has quit [Remote host closed the connection]
JohanP has joined #lisp
GoldRin__ has quit [Ping timeout: 252 seconds]
t58_ has quit [Quit: Leaving]
JohanP has quit [Ping timeout: 265 seconds]
prite has joined #lisp
yoja has joined #lisp
torbo has quit [Remote host closed the connection]
paul0 has quit [Read error: Connection reset by peer]
paul0 has joined #lisp
_whitelogger has joined #lisp
JohanP has joined #lisp
dddddd has quit [Remote host closed the connection]
mindCrime_ has quit [Ping timeout: 264 seconds]
JohanP has quit [Ping timeout: 240 seconds]
krid has quit [Ping timeout: 276 seconds]
salinasc has quit [Ping timeout: 245 seconds]
salinasce has joined #lisp
Bike has quit [Quit: Lost terminal]
MichaelRaskin has quit [Quit: MichaelRaskin]
karlosz has joined #lisp
nwoob has joined #lisp
<nwoob>
Is CL good for learning Object oriented programming
<xristos>
Smalltalk is better
<xristos>
CL will teach you that OO isn't the end-all be-all
salinasce has quit [Ping timeout: 252 seconds]
prite has quit [Ping timeout: 276 seconds]
gravicappa has joined #lisp
buffergn0me has quit [Ping timeout: 245 seconds]
libertyprime has quit [Quit: leaving]
dale has quit [Quit: My computer has gone to sleep]
JohanP has joined #lisp
<aeth>
nwoob: it depends on what you mean by "object oriented programming" because there are many different definitions. Always with objects, almost always with classes, almost always with methods... but lots of variation past that.
<aeth>
C++ and JavaScript OOPs are pretty far from CL OOP (and from each other)
<nwoob>
But javascript isn't oop right? It's object based
<xristos>
Smalltalk is worth playing with even if you never use it again in the future
<xristos>
it'll teach you what Alan Kay meant by OO
<nwoob>
Ok
<xristos>
mainly late binding, messaging and encapsulation
<xristos>
so when you get exposed to the C++ or Python or ... modern OO, you'll understand what a travesty it has become
JohanP has quit [Ping timeout: 252 seconds]
<aeth>
nwoob: Most contemporary OOP are very noun-oriented (especially Java), but CLOS is very verb-oriented because the methods don't live with objects, look like ordinary function calls, and use multiple dispatch
<aeth>
that third feature simplifies a lot of OOP that's awkward in, say, C++
<nwoob>
What is noun oriented and verb oriented means
<beach>
Good morning everyone!
<beach>
nwoob: Common Lisp is excellent for learning about object-oriented programming, but not if you later want the restricted kind that is proposed by other languages.
<saturn2>
why do you want to learn object oriented programming?
<beach>
xristos: Common Lisp is completely object oriented. Every object is an instance of a class.
<xristos>
beach: sure
Inline has quit [Quit: Leaving]
<beach>
xristos: Furthermore, Common Lisp allows for multiple dispatch, and generic-function invocation is more symmetric than in most other object-oriented languages, which of course reflects the fact that it allows for multiple dispatch.
<xristos>
beach: you're preaching to the choir
<beach>
Maybe so. I haven't had my coffee yet.
<xristos>
the main takeway from OO, for me, is late binding
<xristos>
everything else falls by the wayside
<xristos>
both smalltalk and cl allow for late binding
<xristos>
in somewhat different ways
<ebrasca>
beach: Morning!
ahungry has quit [Remote host closed the connection]
<beach>
nwoob: Don't let yourself be impressed by phrases such as "in <language x>, everything is an object", though. It is not true in Common Lisp, and not in most other languages either, if any.
<loke>
beach: It could be. You just have to define “object” in a way that makes the statement true (which also highlights how useless that terminology is, IMHO of course)
<beach>
You could do that, sure.
JohanP has joined #lisp
<beach>
Or, the more popular technique, which is to restrict "thing" to mean "object".
<beach>
loke: As it turns out, "object" is defined by the Common Lisp HyperSpec glossary, so you can't expand it.
mangul has joined #lisp
JohanP has quit [Ping timeout: 265 seconds]
<beach>
Even before I finished my coffee, I could think of four things in Common Lisp that are not objects: 1. Comments in source code. 2. Types. 3. Places. 4. Bindings.
<beach>
5. Blocks.
* beach
is going through the glossary, looking for nouns.
<beach>
I'll leave the rest as an exercise.
clothespin has quit [Ping timeout: 245 seconds]
shka_ has joined #lisp
JohanP has joined #lisp
JohanP has quit [Ping timeout: 240 seconds]
abhixec has joined #lisp
pjb` has joined #lisp
varjagg has joined #lisp
JohanP has joined #lisp
pjb has quit [Ping timeout: 246 seconds]
buffergn0me has joined #lisp
mangul has quit [Remote host closed the connection]
<beach>
tourjin: I am asking about the Common Lisp implementation you are using.
Ricchi has quit [Remote host closed the connection]
<beach>
It appears to be SBCL.
iovec has quit [Quit: Connection closed for inactivity]
<beach>
And SBCL does not have a package named "EXT".
<tourjin>
ah.. I followed the book.
Ricchi has joined #lisp
<beach>
What book?
<tourjin>
i see. by conrad
<beach>
What is the name of the book?
JohanP has joined #lisp
<tourjin>
I don't know the english name. land of lisp?
<beach>
That book must not be using SBCL then. Is that the book that is notorious for using implementation-specific stuff?
ravenous_ has quit [Ping timeout: 246 seconds]
<beach>
If so, you should either find a different book, or use the implementation that the code in the book requires.
<Shinmera>
beach: the notorious one is Let Over Lambda
<beach>
Ah, OK, thanks.
<tourjin>
I see . thanks . this is the only book I can find in the library.
<saturn2>
clisp has ext:shell
<loke>
saturn2: I knew it :-)
<beach>
tourjin: For learning Common Lisp? Come on! PCL is on-line for free, so is PAIP, and several others.
<tourjin>
gnuclisp is clisp?
ravenousmoose has joined #lisp
<tourjin>
is PCL book name?
<tourjin>
PAIP
<beach>
minion: Please tell tourjin about PCL
<minion>
tourjin: please look at PCL: pcl-book: "Practical Common Lisp", an introduction to Common Lisp by Peter Seibel, available at http://www.gigamonkeys.com/book/ and in dead-tree form from Apress (as of 11 April 2005).
<beach>
minion: Please tell tourjin about PAIP.
<minion>
tourjin: PAIP: Paradigms of Artificial Intelligence Programming. More about Common Lisp than Artificial Intelligence. Now freely available at https://github.com/norvig/paip-lisp
<saturn2>
tourjin: yes, gnu clisp
JohanP has quit [Ping timeout: 264 seconds]
<tourjin>
i found recently there are a lot of excelent online books.
<no-defun-allowed>
beach: the Land of Lisp uses CLISP functions for socketing (instead of using a portable library like usocket)
<beach>
no-defun-allowed: Thanks.
<tourjin>
saturn2 then can I connect my emacs with gnuclisp like sbcl?
<saturn2>
it's possible as far as i know although i've never tried it
<loke>
tourjin: SBCL is the main recommended version of Common Lisp, unless you have specific requirements.
<shka__>
CCL/SBCL i would say
<loke>
(for example, need to run on the JVM: Use ABCL. Need to use from C: Use ECL. Need to be portable to obscure architectures: Use CLISP)
<shka__>
people on OSX love CCL
<tourjin>
i see. most of you said that before. thanks.
<loke>
need to spend money: LW or Allegro
vlatkoB has quit [Remote host closed the connection]
<saturn2>
tourjin: if you have quicklisp installed, you should be able to use uiop:run-program instead of ext:shell
<tourjin>
i'm still reading an introduction to programming in Emacs lisp. I even feel a spasm on my fingers.
<loke>
tourjin: Do note that Emacs Lisp and Common Lisp are two distinct languages.
<loke>
THey have some things in common, but they are very different.
<tourjin>
oh. yes I have quicklisp installed though I'm not sure I did it correctly.
<shka__>
emacs lisp is pretty close lisp 1.5 in many ways
<shka__>
common lisp is a more advanced
<shka__>
language
<tourjin>
thanks saturn2 . I'll try it at home. hm.. am I reading wrong document? It helped me a lot . :-) I learned some emacs moves.
cosimone has joined #lisp
vlatkoB has joined #lisp
<tourjin>
I thought that document was about lisp using emacs. there is another emacs lisp? then would I better move to other documents?
<beach>
What document is that?
iovec has joined #lisp
<tourjin>
An Introduction to Programming in Emacs Lisp.
<beach>
tourjin: It is a bit confusing. Emacs is (partly) written in its own dialect of Lisp called "Emacs Lisp", and that dialect is not Common Lisp. But then, to program in Common Lisp, you typically use your Common Lisp implementation form Emacs.
<beach>
tourjin: This channel is dedicated to Common Lisp, so it is not appropriate for discussing Emacs Lisp.
pjb has quit [Read error: Connection reset by peer]
* beach
is not sure that tourjin's question was answered.
niceplace has quit [Read error: Connection reset by peer]
niceplace has joined #lisp
tourjin has quit [Remote host closed the connection]
tourjin has joined #lisp
JohanP has joined #lisp
yoja has joined #lisp
cosimone has quit [Quit: Terminated!]
cosimone has joined #lisp
JohanP has quit [Ping timeout: 252 seconds]
prite has quit [Ping timeout: 265 seconds]
tourjin has quit [Read error: Connection reset by peer]
zdm has joined #lisp
cosimone has quit [Quit: Terminated!]
prite has joined #lisp
jonatack has joined #lisp
prite has quit [Ping timeout: 246 seconds]
zdm has quit [Remote host closed the connection]
isBEKaml has quit [Quit: leaving]
amerlyq has joined #lisp
JohanP has joined #lisp
Duuqnd_ has joined #lisp
lemoinem is now known as Guest73730
Guest73730 has quit [Killed (cherryh.freenode.net (Nickname regained by services))]
lemoinem has joined #lisp
yoja has quit [Ping timeout: 252 seconds]
Duuqnd has quit [Ping timeout: 240 seconds]
Duuqnd has joined #lisp
yoja has joined #lisp
Duuqnd_ has quit [Ping timeout: 252 seconds]
JohanP has quit [Ping timeout: 240 seconds]
xkapastel has joined #lisp
yoja has quit [Ping timeout: 276 seconds]
cosimone has joined #lisp
bitmapper has joined #lisp
gabiruh_ has joined #lisp
scymtym_ has joined #lisp
scymtym has quit [Ping timeout: 250 seconds]
cosimone_ has joined #lisp
gabiruh has quit [Ping timeout: 240 seconds]
cosimone has quit [Read error: Connection reset by peer]
cosimone_ has quit [Remote host closed the connection]
cosimone has joined #lisp
cosimone has quit [Remote host closed the connection]
cosimone has joined #lisp
kajo has quit [Ping timeout: 276 seconds]
lucasb has joined #lisp
kajo has joined #lisp
Inline has joined #lisp
jonatack has quit [Ping timeout: 240 seconds]
kajo has quit [Read error: Connection timed out]
kajo has joined #lisp
jonatack has joined #lisp
clothespin has quit [Ping timeout: 250 seconds]
wxie has joined #lisp
JohanP has joined #lisp
nika_ has joined #lisp
JohanP has quit [Ping timeout: 240 seconds]
lxbarbosa has quit [Quit: ERC (IRC client for Emacs 27.0.50)]
wxie has quit [Quit: wxie]
prite has joined #lisp
wxie has joined #lisp
yoja has joined #lisp
paul0 has quit [Remote host closed the connection]
wxie has quit [Remote host closed the connection]
niceplaces has joined #lisp
Bike has joined #lisp
vaporatorius has joined #lisp
vaporatorius has quit [Changing host]
vaporatorius has joined #lisp
niceplace has quit [Ping timeout: 240 seconds]
niceplaces has quit [Ping timeout: 250 seconds]
yoja has quit [Ping timeout: 268 seconds]
LiamH has joined #lisp
clothespin has joined #lisp
q9929t has joined #lisp
cosimone has quit [Quit: Terminated!]
Duuqnd has quit [Ping timeout: 240 seconds]
<bmansurov>
o/ Anyone knows how to make paredit aware of Common Lisp pathnames? When I type #P", Paredit inserts a space before the quote. How can I prevent it?
<loke>
bmansurov: THere is a way... let me check what I did to fix it
<bmansurov>
loke: cool!
gabiruh_ has quit [Read error: Connection reset by peer]
varjag has quit [Quit: ERC (IRC client for Emacs 25.2.2)]
clothespin has quit [Ping timeout: 240 seconds]
EvW1 has joined #lisp
ravenous_ has quit [Ping timeout: 276 seconds]
XenophonF has joined #lisp
warweasle has joined #lisp
<XenophonF>
I want to download a 6-GB JSON doc and upload it to a PostgreSQL database using SBCL, but I'm at a bit of a loss as how to do the following in Lisp.
cc0 has left #lisp [#lisp]
<XenophonF>
Progressively downloading a (large) JSON document.
JohanP has joined #lisp
<XenophonF>
Stepping through it as it downloads. Maybe that's a dumb thing to do.
ravenousmoose has joined #lisp
<XenophonF>
Not reading the whole JSON document into memory while processing it.
ljavorsk__ has joined #lisp
<Shinmera>
You'll need an incremental JSON parser library. I'm not sure there is one (yet).
<XenophonF>
I could maybe use PostgreSQL COPY to do the load, but I don't want the data in JSON/JSONB format, hence the need for some parsing.
<XenophonF>
even better, looks like there's a quicklisp package, too
ljavorsk_ has quit [Ping timeout: 268 seconds]
JohanP has quit [Ping timeout: 252 seconds]
vaporatorius has quit [Read error: Connection reset by peer]
X-Scale has quit [Read error: Connection reset by peer]
red-dot has joined #lisp
stux|RC has joined #lisp
vaporatorius has joined #lisp
vaporatorius has joined #lisp
vaporatorius has quit [Changing host]
sjl_ has joined #lisp
papachan has joined #lisp
JohanP has joined #lisp
ljavorsk_ has joined #lisp
random-nick has joined #lisp
ljavorsk__ has quit [Ping timeout: 268 seconds]
JohanP has quit [Ping timeout: 265 seconds]
niceplace has quit [Read error: Connection reset by peer]
bitmapper has quit [Ping timeout: 240 seconds]
orivej has quit [Ping timeout: 265 seconds]
niceplace has joined #lisp
zaquest has joined #lisp
ravenous_ has joined #lisp
ravenousmoose has quit [Ping timeout: 252 seconds]
Cymew has quit [Ping timeout: 240 seconds]
smazga has joined #lisp
dale_ has joined #lisp
dale_ is now known as dale
JohanP has joined #lisp
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
ravenous_ has quit [Read error: Connection reset by peer]
JohanP has quit [Ping timeout: 240 seconds]
ravenousmoose has joined #lisp
JohanP has joined #lisp
enrio has joined #lisp
JohanP has quit [Ping timeout: 252 seconds]
kajo has quit [Ping timeout: 252 seconds]
red-dot has joined #lisp
superkumasan has quit [Ping timeout: 250 seconds]
sjl_ has quit [Quit: WeeChat 2.3-dev]
enrio has quit [Ping timeout: 268 seconds]
JohanP has joined #lisp
elinow has quit [Ping timeout: 240 seconds]
Lord_of_Life has quit [Ping timeout: 265 seconds]
Lord_of_Life has joined #lisp
cosimone has quit [Quit: Quit.]
JohanP has quit [Remote host closed the connection]
cosimone has joined #lisp
JohanP has joined #lisp
Oladon_wfh has joined #lisp
aindilis has quit [Remote host closed the connection]
aindilis` has joined #lisp
Josh_2 has joined #lisp
aindilis` has quit [Remote host closed the connection]
ravenousmoose has quit [Ping timeout: 276 seconds]
aindilis has joined #lisp
ravenousmoose has joined #lisp
JohanP has quit [Remote host closed the connection]
aindilis has quit [Ping timeout: 240 seconds]
JohanP has joined #lisp
jgodbout has joined #lisp
gareppa has joined #lisp
gareppa has quit [Client Quit]
ravenousmoose has quit [Read error: Connection reset by peer]
ravenousmoose has joined #lisp
JohanP has quit [Remote host closed the connection]
JohanP has joined #lisp
vms14 has joined #lisp
cosimone has quit [Quit: Quit.]
orivej has joined #lisp
cosimone has joined #lisp
cosimone has quit [Client Quit]
EvW1 has quit [Ping timeout: 252 seconds]
cosimone has joined #lisp
clothespin has joined #lisp
shka_ has joined #lisp
JohanP has quit [Remote host closed the connection]
JohanP has joined #lisp
rogersm has joined #lisp
hhdave has quit [Quit: hhdave]
gareppa has joined #lisp
GoldRin has quit [Ping timeout: 246 seconds]
gareppa has quit [Remote host closed the connection]
m00natic has quit [Remote host closed the connection]
rogersm has quit [Quit: rogersm]
JohanP has quit [Remote host closed the connection]
JohanP has joined #lisp
t58 has quit [Quit: Leaving]
JohanP has quit [Quit: ERC (IRC client for Emacs 26.3)]
JohanP has joined #lisp
JohanP has quit [Remote host closed the connection]
JohanP has joined #lisp
XenophonF has quit [Quit: leaving]
zdm has joined #lisp
ravenousmoose has quit [Read error: Connection reset by peer]
ravenousmoose has joined #lisp
JohanP has quit [Ping timeout: 240 seconds]
JohanP has joined #lisp
varjag has joined #lisp
pedh has joined #lisp
JohanP has quit [Ping timeout: 265 seconds]
nika_ has quit []
SN_ has joined #lisp
red-dot has quit [Read error: Connection reset by peer]
SN_ is now known as red-dot
vms14 has quit [Remote host closed the connection]
cosimone has quit [Quit: Quit.]
cosimone has joined #lisp
clothespin has quit [Ping timeout: 240 seconds]
kajo has joined #lisp
aindilis has joined #lisp
Josh_2 has quit [Remote host closed the connection]
JohanP has joined #lisp
JohanP has quit [Remote host closed the connection]
seok has joined #lisp
<seok>
Hi guys
<seok>
which library do you guys recommend for statistical operations?
krid has joined #lisp
gareppa has joined #lisp
vlatkoB has quit [Remote host closed the connection]
MichaelRaskin has joined #lisp
sauvin has quit [Read error: Connection reset by peer]
shka_ has quit [Read error: Connection reset by peer]
wooden has quit [Ping timeout: 265 seconds]
shka_ has joined #lisp
shka_ has quit [Read error: No route to host]
wooden has joined #lisp
wooden has quit [Changing host]
wooden has joined #lisp
shka_ has joined #lisp
superkumasan has joined #lisp
cosimone has quit [Quit: Quit.]
ljavorsk_ has quit [Ping timeout: 245 seconds]
<_death>
check out sapaclisp
papachan has quit [Quit: Leaving]
kark has quit [Remote host closed the connection]
edgar-rft has quit [Quit: Leaving]
lxbarbosa has joined #lisp
ebrasca has quit [Remote host closed the connection]
scymtym_ has quit [Ping timeout: 245 seconds]
salinasc has joined #lisp
salinasc has quit [Remote host closed the connection]
carloss__ has joined #lisp
carloss__ has quit [Remote host closed the connection]
enrio has joined #lisp
mindCrime has quit [Ping timeout: 252 seconds]
clothespin has joined #lisp
bitmapper has joined #lisp
akhetopnu has joined #lisp
<akhetopnu>
has anyone had any success with async queries in postmodern or everyone just uses it synchronously / with threads? Does it even support async queries? I don't see any info about it in the docs
orivej has quit [Ping timeout: 240 seconds]
enrio has quit [Read error: Connection timed out]
enrio has joined #lisp
pedh has quit [Quit: Connection closed for inactivity]
gravicappa has quit [Ping timeout: 240 seconds]
scymtym has joined #lisp
jonatack has joined #lisp
ggole has quit [Quit: Leaving]
rippa has quit [Quit: {#`%${%&`+'${`%&NO CARRIER]
mindCrime_ has joined #lisp
shka_ has quit [Ping timeout: 268 seconds]
ravenousmoose has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
Oladon_wfh has quit [Ping timeout: 260 seconds]
prite has joined #lisp
karlosz has joined #lisp
Bike has quit [Quit: Bike]
addies has joined #lisp
troydm has quit [Ping timeout: 246 seconds]
voidlily has quit [Ping timeout: 250 seconds]
longshi has joined #lisp
karlosz has quit [Quit: karlosz]
<p_l>
akhetopnu: the underlying protocol is synchronouse
<p_l>
and I think postmodern reflects that
voidlily has joined #lisp
EvW has joined #lisp
whartung has quit [Ping timeout: 240 seconds]
JohanP has joined #lisp
* thijso
wonders why some programmers revel in making their systems as hard to use as possible, preferably with hidden and magic interpretations of keywords so that no sane person can make heads or tails of it
<thijso>
that, or I'm just stupid. Also possible.
<Xach>
thijso: sometimes it's all due to context - something made sense at the time and in a particular context
<thijso>
Sorry, rant over. Not (directly) related to #lisp, so in the wrong window to boot. mea culpa
<Xach>
building on previous experiences both good and bad to arrive at what seems like the best thing to do at the time
<thijso>
Xach: true. But in the case of CMake I'm wondering what they were smoking at the time they made it
<thijso>
Anyway. I'm done. Time to veg out in front of the TV to wipe this filth out of my head. And start over tomorrow, sadly...
<p_l>
thijso: a significant portion is lack of 1) compiler courses being taken 2) people not having good tools to make DSLs
enrio has quit [Ping timeout: 240 seconds]
<Shinmera>
I think there's a fundamental lack of extensive language design courses.
<Shinmera>
Which is something that's not really related to compilers.
<aeth>
thijso: You definitely think differently in different programming languages. Just write something in C, and in C++ (being heavily used for modern OOP not as C-with-classes), and in Python, and in CL... and even in Scheme. You'll get completely different solutions to some things.
<aeth>
Even though some of the languages are in theory quite close, like C with C++, or CL with Scheme.
<aeth>
That is, if you care about utilizing the standard library and key recommended libraries, and writing idiomatic code.
<aeth>
Now, if people did p_l's approach and first made a DSL to solve the problem, then you'd get much closer solutions across all of the languages, but people won't even think about doing that (especially if they're using a language where that's hard)
<aeth>
A lot of "hard to use" systems are, stereotypically, enterprise Java, working around limitations in the Java language (especially really ancient versions of the Java language whose issues were later fixed... since we're talking about enterprise, after all)
<ralt>
nah, java devs just have a hard-on on xml
<aeth>
OOP in C++ and Java are all about encapsulating individual values within classes, and protecting those from outsiders.
<aeth>
This really gives you different class design than in Python or CL
<aeth>
(not to mention static vs. dynamic typing)
<ralt>
python is like this too...?
<ralt>
I mean, all attributes are ultimately reachable, but it can be really hard
gilez has quit [Remote host closed the connection]
<ralt>
(a bit like in java, with reflection)
<p_l>
ralt: a lot of java devs don't have a hard-on for XML. What a lot of Enteprise Programmers For A Dime do love is IDEs automagically generating "XML" from their bashed together classes
<p_l>
which isn't really related to either XML or Java
<antoszka>
python, by convention, is just a vertical wall of state modifications, à la MS Basic in 1984
<antoszka>
except pretends to be trendy OOP
* p_l
remembers when classes were still plain dicts with magic symbol names
<aeth>
XML in Java is just a relic of the time it's from imo... if Java was up and coming in 2019 it'd all be about structured JSON with elaborate JSON schemas...
Bike has joined #lisp
<p_l>
they don't differ much from that
<antoszka>
speaking of DSLs, XML and Java reminded me of this joke: – What's Java? – A DSL for turning XML files into stack traces.
<p_l>
aeth: or something else
<aeth>
p_l: don't tell them about YAML
* p_l
actually likes XML. And SOAP
<aeth>
Please don't let people know about YAML...
<Ober>
or toml
<Shinmera>
Can we get back on track and ditch all this talk about languages that are not Common Lisp? Thanks.
<aeth>
Anyway, multiple dispatch is probably the biggest thing that affects OOP design and, that's kind of CLOS vs. the world.
<p_l>
aeth: now consider that all JSON is valid YAML, of course so long as the JSON somehow fits local definition of JSON
<p_l>
as for XML stack... it's a powerful tool in a domain that requires thought in design (file/data interchange format design domain). Unfortunately XML made it possible to make "interoperable" format with click of a mouse button, and that had horrible results
<aeth>
With CLOS you get (impact asteroid spaceship) vs. asteroid.impact(spaceship) or spaceship.impact(asteroid) but perhaps that's not the best example. Another one would be (intersect ray geometry) vs. ray.intersect(geometry) or geometry.intersect(ray)... Where does the method live? Well, nowhere of course
iovec has quit [Quit: Connection closed for inactivity]
<aeth>
p_l: XML is almost a good format but it's really ambiguous as to whether you should do <foo> <bar> 42 </bar> whatever </foo> or <foo bar="42"> whatever </foo> or even <foo bar="42" msg="whatever" />
addies has quit [Ping timeout: 265 seconds]
<p_l>
aeth: that's why I said it requires thought.
<aeth>
You could make it less verbose by only having a start name and kind of combinding both into something like this: <foo <bar 42> whatever>
<aeth>
*combining
<p_l>
But barely anyone outside of W3C designs an XML-based format by starting from XML Schema and thinking
<p_l>
aeth: one thing people forget is that XML was designed for much higher ratio of content to tags than typical use of, let's say, JSON
<p_l>
and that one should think in design what is attribute and what should be nested. It's not "ambiguous" because they are not equivalent. The decision is left to Schema designer to weight different reasons for both
<aeth>
I can't wait for s-expression schemas, personally.
red-dot has quit [Quit: Going offline, see ya! (www.adiirc.com)]
<p_l>
aeth: it might work with CL packages
<aeth>
For s-expressions as data, you're basically already there, but you probably should use true and false instead of t and nil to make things more cross-language. (If it's XML-style, everything has a prefix, so there's no ambiguity between nil-as-empty-list and nil-as-false, though. It'd always be nil-as-false.)
<aeth>
ralt: That's exactly the kind of sloppy, problematic s-expression-as-data that I'm criticizing. It uses "nil" for false and "t" for true, but has no prefixes...
<aeth>
It has "(value0 value1 value2)" as its example for lists and "(:key0 val0 :key1 val1)" as its example for "dicts"
JohanP has quit [Remote host closed the connection]
JohanP has joined #lisp
<aeth>
So an empty "dict" and an empty list would both be ()? Is that equivalent to nil here? If it's not, we just made a CL implementation harder
<p_l>
namespaces are some of the best additions of XML
<p_l>
also, a proper such format needs, IMO, canonicalization routine
<aeth>
ralt: If it's s-expressions as a compromise between JSON and XML instead of s-expressions as basically just a rewriting of JSON, the ambiguities go away at the expense of a bit more verbosity.
<p_l>
considering that JSON is essentially the kind of crippled s-expression that could have been born in JS-land...
<p_l>
remember, the canonical JSON reader implementation was eval('('+ jsonString + ')');
<aeth>
I had to add a bit more complexity to handle mismatched parens
davr0s has quit [Ping timeout: 240 seconds]
<aeth>
I'm going to do something a bit fancier and also write an implementation in Scheme just to make sure it's not too CL-reliant, though
davr0s has joined #lisp
davr0s__ has quit [Ping timeout: 265 seconds]
salinasce has quit [Remote host closed the connection]
salinasce has joined #lisp
zdm has quit [Remote host closed the connection]
karlosz has joined #lisp
karlosz has quit [Client Quit]
<LdBeth>
Gd afternoon
lnostdal has quit [Quit: "Fascism, Nazism, Communism and Socialism are only superficial variations of the same monstrous theme—collectivism." -- Ayn Rand]
<aeth>
_death: the problem is that if you treat <foo bar="zot"/> as (foo (bar "zot")) you need to be aware of foo.
<aeth>
at least for HTML, that's mostly unnecessary, you only need to know the elements if they're an empty element, because (:br) will become <br> or <br /> depending on the conventional or XML style used.
<_death>
yeah.. or you can use XHTML
<aeth>
If you represent <a href="https://example.com/">example</a> as (:a :href "https://example.com/" "example") then what you do is you iterate until you no longer have a valid key-as-keyword plist and then the rest is the body contents. If you do (a (href "https://example.com/") "example") well congratulations, now you need to keep up with the living standard of HTML and know all of it.
<aeth>
Because you need to know that it should be <a href... instead of <a> <href...
<_death>
aeth: Naggum talks about this
salinasce has quit [Remote host closed the connection]
JohanP has joined #lisp
<_death>
btw you only need to keep up if you want to use the latest and the "greatest".. if your values diverge from the standard-churning committees you may be ok with not using every fancy new feature they dream up
<aeth>
_death: The only remaining issue is that it is much more complicated to do this dynamically than statically, i.e. replacing (:p "Hello, world!") with (:p "Hello, " person "!")
<aeth>
That's because there's now a layer of indirection. You'd need to write the HTML markup to a string, and then write that string to the desired stream at run time. Technically, it'd probably be faster to do that even statically.
<aeth>
TMA: easiest implementation, but not the most concise if attributes aren't common
travv016 has quit [Remote host closed the connection]
<aeth>
It's more verbose for "plain" HTML, but there's certainly a lot of generated HTML that is full of (span :class foo ...) that could just as easily be (span (:class foo) ...)
<aeth>
hmm, maybe I should put it as an alternate syntax
karlosz has joined #lisp
LiamH has quit [Quit: Leaving.]
<_death>
aeth: yes, that's what good html generators do.. they interleave the static HTML fragment strings with the code to generate the dynamic parts
<_death>
I've not written any web stuff these recent years, but yaclml would still be my go-to library for this
varjag has quit [Ping timeout: 276 seconds]
prite has quit [Ping timeout: 240 seconds]
karlosz has quit [Quit: karlosz]
JohanP has joined #lisp
<_death>
it does differentiate between tags and attributes.. as you come up with your own tag macros you can choose to do away with the latter I guess, though in my projects I did not
<_death>
*elements
JohanP has quit [Ping timeout: 240 seconds]
smazga has quit [Quit: leaving]
Josh_2 has joined #lisp
<Josh_2>
Xach you here?
longshi has quit [Ping timeout: 246 seconds]
<Xach>
Josh_2: hi
superkumasan has quit [Ping timeout: 245 seconds]
<Josh_2>
I have a question about how you are writing zs3. I am just curious, I was reading through some of the sourcecode and I noticed that you are generating lots of lambdas based on the value of 'form' (I think) why are you writing the code like this instead of using clos and generic functions?
prite has joined #lisp
<Josh_2>
I was specifically looking in xml-binding.lisp
<aeth>
_death: It would probably be wiser to use a library but (1) most libraries I've seen don't solve the problem in a satisfactory way, in that you're mostly just format niling a bunch of intermediate strings around the place at runtime and (2) I'm kind of going for a more, idk, pandoc approach?
sjl has joined #lisp
<aeth>
I think I'm going to try org after markdown, although if I do that I'll probably never finish
JohanP has joined #lisp
<aeth>
BBcode might be a simpler next target
JohanP has quit [Ping timeout: 265 seconds]
<_death>
aeth: heh, I guess it's another rite-of-passage thing.. to write your own html generator
nowhere_man has joined #lisp
edgar-rft has joined #lisp
<Xach>
Josh_2: how would it be different with clos and generic functions?
<Xach>
Josh_2: generating functions to do matching is something i borrowed from cl-ppcre
<aeth>
_death: Well, generating HTML is kind of secondary to my goal here, although not secondary enough for me to rely on a library to do what I want.
<_death>
aeth: what is the goal? generating documentation?
<aeth>
_death: sort of
<aeth>
_death: I mean, exactly yes, it's just that the documentation is incredibly elaborate and difficult compared to an ordinary library because the library I am going to be documenting is a game engine
nowhereman has joined #lisp
<aeth>
_death: So I need to essentially be able to document linear algebra, computational physics, computer graphics, etc. And with an insane target like HTML (or XHTML) instead of a sane target like LaTeX
nowhere_man has quit [Ping timeout: 276 seconds]
<aeth>
_death: Hence the several month diversion from the engine itself (although the commits only go back a few weeks)
<_death>
I've been going the texinfo route lately..
<Josh_2>
Xach is there a tutorial or an explanation on this somewhere?
JohanP has joined #lisp
<aeth>
_death: I'd love to be able to explore different routes, but I'm kind of forced into one of two routes (not mutually exclusive): in-browser documentation and in-editor documentation... assuming my engine will one day get an editor like most game engines tend to bloat into having these days... except I don't have the latter at this point.
red-dot has joined #lisp
<Xach>
Josh_2: cl-ppcre sources are good to read!
troydm has joined #lisp
JohanP has quit [Ping timeout: 240 seconds]
<aeth>
_death: texinfo->html might work, but I suspect the subset is far too much of a subset for my needs. If I had to use an external markup+tool, I'd probably try to do some LaTeX->HTML
<_death>
aeth: yeah, I guess markdown is reasonable for that.. so when you have an editor you can easily render it
<_death>
Xach: I remember a blog post of yours that demonstrated the technique..
<aeth>
_death: The important characteristics about Markdown are (1) you can embed HTML into it to get features it doesn't support and (2) it's commonplace to extend it (especially tables) to fit a particular domain. Also, familiarity, I guess, but I personally have used org, Markdown, restructuredtext, MediaWiki markup, BBCode, LaTeX, etc., and they all have advantages and disadvantages and it's not hard to pick up quite a few of them.
<aeth>
_death: Of course, the disadvantage of Markdown is that if you do use that HTML feature, it's not as simple to implement a new, non-browser backend for it since the language then isn't as simple as it seems.
<_death>
yeah.. some years ago I used org for writing documentation and generated pdf/html.. I used emacs in batch mode, but also had to hack htmlize.el a bit to get what I wanted
lxbarbosa has quit [Remote host closed the connection]
<aeth>
yeah, that's the thing... you kind of need to control the whole pipline if you want (a) input->HTML to work and (b) input->something-else to eventually work using the subset of features that you need it to support
random-nick has quit [Ping timeout: 245 seconds]
<_death>
hmm, either htmlize or org-export-as-html or both.. apparently I hacked both for some purpose in the past :)