freenode/lisp - IRC Chatlog
Search
2:29:25
jcowan
That article on vacuous truth doesn't make clear that sentences like "All my dogs are green" has two logical forms:
2:30:46
jcowan
whereas the reading "Each member of {my_dogs} is green is vacuously _false_ if I have no dogs.
2:31:11
jcowan
The first one has a negation in it, because A -> B = ~A or B, whereas the second does not
2:32:18
jcowan
I don't know any formal set theory, but it was explained to me in these terms by a logician
2:33:06
Bike
i'm unaware of how the second case would be written out in regular first order logic in a way that differs from the first case
2:35:41
jcowan
whereas here we have a qualified variable, whose domain is not every object (as in FOPL) but only the objects in the set
2:37:30
jcowan
I think this paper is relevant https://projecteuclid.org/download/pdf_1/euclid.ndjfl/1093887729
2:38:09
Zhivago
I think the simplest way to consider it is that it is a not-invalid subset of a valid set.
2:38:38
Zhivago
Which implies that when you take the union of that with another valid set you should get a valid set.
2:43:41
Bike
so, like i have no dogs, and my pal Negasi has one green dog. we can say ««all dogs Negasi and Bike have are green» is true iff all dogs negasi has are green and all dogs bike has are green». all dogs negasi and i have are green, and all of negasi's dogs are green, so to make the equivalence work all of my dogs should be considered green as well.
2:45:05
Bike
but it does mean that "all A are B" doesn't imply "some A are B". it's my understanding that aristotle killed boole in a duel over this
2:49:16
jcowan
Well, they definitely fought it out, but who's the winner is still an open question, as usual in philosophy
2:52:02
pierpa_
here https://plato.stanford.edu/entries/quantification/ there must be the answer. Unfortunately it is too long to read now :)
3:14:43
Bike
if i put the dolist in a function and call it it's still an error but there's no crash...
3:26:58
didi
loke: SLIME's debugger, so I'm guessing "yes". Here what it looks like: https://paste.debian.net/hidden/9987bb28
3:32:18
didi
If it's relevant, I am running SBCL version "1.4.5" with --dynamic-space-size 4096 and --control-stack-size 32.
3:33:54
loke
If you have more than a few tens of arguments, you should consider changing your design.
3:35:19
loke
A list is much better than rest arguments of course, but a vector would probably be faster still (depending on what you intend to do with it)
3:36:23
loke
didi: Yes, but not for the purpose of creating lists several hundreds (or even thousands) of elements long.
3:42:28
pierpa_
They've been too optimist when defining CALL-ARGUMENT-LIMIT. Resetting it to 50 should fix this problem. 50 btw is way more than reasonaly high.
3:50:24
Zhivago
I'm not sure that I can agree. Having call-argument-limit makes things like code generators much harder to deal with.
3:56:00
pierpa_
loke: a code generator which must work by the spec and not by accident can rely on not more than 50 arguments, anyway.
4:02:17
dtornabene
does anyone know of any security tooling done in lisp? or people who do security work in lisp whose brain I could pick about some questions...?
4:05:08
dtornabene
rosette https://emina.github.io/rosette/ is this beautiful tool, and there's been some really interesting work done in the last few years utilizing SAT/SMT around security issues
4:05:37
dtornabene
stuff like Sean Heelans work https://www.cprover.org/dissertations/thesis-Heelan.pdf
4:06:04
dtornabene
Automatic Generation of Control Flow Hijacking Exploits for Software Vulnerabilites
4:06:23
smokeink
well you can do pretty much any kind of securing tooling with lisp, I think an intelligent sql-injection tester with lisp would be cool, but I haven't heard of any yet
4:08:15
smokeink
it's like python on steroids, with super speed and the full power interactive developing and other things that make the program logic easier to follow
4:08:20
dtornabene
I've googled a little bit, was hoping there was some code to look at, haven't found anything yet. Which struck me as odd, given what would seem like the strengths of lisp for security work
4:10:02
smokeink
actually I also wanted to see such stuff in Lisp, but most lispers are into areas of research other than security
4:10:26
dtornabene
like, in the applications tab of rosettes website theres a tool for verifying BGP policies, a couple of other things, but no offensive tools
4:17:48
smokeink
dtornabene: https://www.pvk.ca/Blog/2014/03/15/sbcl-the-ultimate-assembly-code-breadboard/
4:27:07
smokeink
dtornabene: (not lisp related, but nice nonetheless) "I've a dream: A peer-to-peer network, where services like search engines or social networks aren't offered by big companies, who in turn need to make money by selling the privacy of their users. Where all data is encrypted, so that access is only possible for people who have the key and really are authorized. Which layman can use without cryptic user interfaces. Where the browser is a platform for
4:27:07
smokeink
running useful applications without the mess of Flash and JavaScript. Without the lag of "buffer bloat" and without the speed problems of a protocol not designed to be assisted by hardware." http://www.complang.tuwien.ac.at/anton/euroforth/ef16/papers/paysan.pdf https://fossil.net2o.de/net2o/doc/trunk/wiki/net2o.md
4:29:38
burzos
The difficulty I think is that we have the technical ability to do that^ piece-by-piece but that won't get critical adoption.
4:30:04
burzos
You'd need a facebook competitor, not just something that did encrypted chat correctly.
4:40:11
didi
Thank you, everybody. Now everything is good and well. Tho, IMO, SBCL shouldn't accept calls for functions with more arguments it can handle. I even got some wrong answers from the offending function, so it didn't crash every time.
7:30:15
Shinmera
It is a bit funny to me that two reviewers note that the paper is too short, despite the fact that demo papers are supposed to be no more than two pages, which I've already exceeded.
7:49:35
Shinmera
Apparently there were 21 submissions and only 14 of them are getting accepted to make the conference less crowded.
7:53:40
Shinmera
If the amount of submissions keeps up it might start to make sense to extend the symposium by another day.
8:07:42
dim
it looks like a timeout, but I'm travelling on using not-that-reliable networks, so I don't think it's on the ELS website end
8:14:05
Shinmera
My opinion on web frameworks is that they shouldn't try to do too much and should give me full control over how things work. Weblocks stands in opposition to that.
8:17:09
samla
For sure, if I understand it correctly (automatically updating widgets in a tree through AJAX) then it might be a nice way of making something like a SPA+Ceramic desktop program
8:18:36
jackdaniel
not sure if it is the best approach for web stuff, but still a very nice thing to play with
8:19:12
samla
jackdaniel: is what I wrote above in parens about automatically updating widgets true or have I misunderstood everything :-)?
8:21:00
jackdaniel
for instance I've created a widget which changed application language. clicking it did update whole website to a localized version
8:21:56
jackdaniel
(keep in mind that it wasn't redirection to some other location, it worked like a toggle button)
8:23:06
jackdaniel
but: 1) above certain level of complexity it was hard for me to change it (lack of experience with weblocks?); 2) I've hit bugs quite frequently and project seemed to be abandoned
8:26:19
samla
Hehe :-) the server/client communication is through JavaScript magic (not websockets actually!)
9:04:35
schweers
is there a way to use slime on a remote host, so that disconnecting (or network failure) will not terminate the current execution?
9:04:51
schweers
I don’t mean to not terminate the lisp session, I know that there is :dont-close for that
9:05:25
schweers
but I have a long running command which I’d like to watch in slime, and I’d like to be able to do this even in the presence of network failures
9:10:31
smokeink
what could be tricky about having it in a separate thread? slime also works in a thread of its own (I am not saying there isn't anything tricky, just asking, cuz I also want to know)
9:12:38
jackdaniel
then when you get disconnected and when you connect again you get the same session
9:17:11
schweers
jackdaniel: should this also keep running if I issue `slime-disconnect' from emacs?
9:21:47
schweers
smokeink: I don’t see a way to attach a repl to a separate thread. Not sure how to properly phrase this.
9:22:12
schweers
I don’t get what is printed to standard-output, for instance, although that should be easy to fix
9:24:45
smokeink
in the worst case to get a repl after the debugger has popped out, you can evaluate (loop (print (eval (read)))) or something like that , in the frame
9:27:32
smokeink
"Print a message onto the top-level using a thread" https://z0ltan.wordpress.com/2016/09/02/basic-concurrency-and-parallelism-in-common-lisp-part-3-concurrency-using-bordeaux-and-sbcl-threads/
9:31:31
smokeink
you can also just run the plain simple repl over the ssh+screen/tmux session, without slime or emacs
9:34:27
schweers
I was thinking of this last option, but I don’t like it very much. I’ve become quite accustomed to having slime available. So I guess it will be running a local emacs instance
9:38:23
smokeink
another option: you can run a gui Emacs on the remote computer and do X forwarding through ssh so that the emacs window is rendered on your local desktop (not sure how it will behave when the connection gets interrupted)
9:41:38
smokeink
https://www.xpra.org/ "it allows you to run programs, usually on a remote host, direct their display to your local machine, and then to disconnect from these programs and reconnect from the same or another machine, without losing any state. "
9:46:45
schweers
I’m still waiting for the remote host to finish something else, then I’ll try one of these solutions. Thanks for the input!
9:47:34
smokeink
https://serverfault.com/questions/19634/how-to-reconnect-to-a-disconnected-ssh-session "I can't believe no one has mentioned MOSH;Mosh is a seperate protocol that can hook into the SSH login process, it keeps your session alive after days of disconnection, changing IP, high latency and so on."
9:57:11
schweers
I’m not entirely sure, but the FAQ has a section which suggests this, as the security of mosh is compared to ssh and ssl. It uses ssh in the beginning though.
9:58:29
loke
schweers: You'd assume the SSH connection is used to exchange the session keys, making the opportity to screw stuff up smaller.
9:58:53
loke
At least they don't have to deal with key exchange, diffie-hellman, assymetric keys etc.
10:08:02
TeMPOraL
a quick question - did anyone here had a problem with log4slime (log4cl), in which the menu worked, but REPL buffer didn't colorize/propertize log output?
10:18:12
TeMPOraL
ok, found it; prettify-symbols-mode breaks half of SLIME coloring, and it also breaks log4slime
12:32:18
flip214
does somebody know of a CL library that help with text analysis? ie. building word vectors in N dimensions etc.?
12:45:13
Lycurgus
that looks nice, would like to some more integrations though, e.g. wordnet, maybe that comes next or is in there but not upfront
12:50:08
ecraven
who is the artist that sings https://www.gnu.org/fun/jokes/eternal-flame.en.html in the ogg all the way down that page?
12:52:59
schweers
I first heard the song ages ago, long before I knew any lisp. the more I learnt, the more I understood what the song was about.
12:53:25
schweers
As far is I know, the original song was written and performed by her, as well as the performance of the parody done by her.
12:53:46
schweers
But as I’m not at all familiar with any of her work, besides this one, I don’t know for sure
13:18:31
dlowe
anyway, if we're going to talk about the lisp family instead of common lisp, let's bring it to ##lisp
14:09:42
smokeink
can (describe #'func) be made to return the lambda list of #'func instead of just printing it to the standard output? or is there any alternative function for doing that?
14:13:41
smokeink
I'm playing with a code that converts postfix math to lisp (prefix) math http://pastecode.ru/40a1c8b/
14:14:38
smokeink
it only works with operations that accept 2 params. (rpn 4 sqrt) fails for example
14:16:09
smokeink
I'm curious what ways are there to make it work with sqrt (only 1 param) and other functions that need more than 2 params
14:20:21
Bike
the lisp operators aren't so well behaved for this. for example, floor/ceiling take one OR two arguments.