ChanServ changed the topic of #picolisp to: PicoLisp language | Channel Log: https://irclog.whitequark.org/picolisp/ | Picolisp latest found at http://www.software-lab.de/down.html | check also http://www.picolisp.com for more information
orivej_ has joined #picolisp
orivej has quit [Ping timeout: 272 seconds]
orivej_ has quit [Ping timeout: 248 seconds]
orivej has joined #picolisp
<clacke[m]> thats why it's the anti-Scheme LISP.
aw- has joined #picolisp
aw- has quit [Quit: Leaving.]
<beneroth> Good morning all
<Regenaxer> Good morning beneroth
<beneroth> cess11, anjaa False rape allegations IS a thing. How many cases? How can we know as long as we don't look? http://www.coventrytelegraph.net/news/uk-world-news/liam-allen-14056981
<beneroth> Hi Regenaxer :)
<beneroth> security news: someone using enigmail ? has a vulnerability which allows a silent man-in-the-middle-attack of the PGP traffic: https://twitter.com/symbolicsoft/status/943106337617084417
<beneroth> Regenaxer, still busy with the pilBox bug?
<Regenaxer> yes, though I found a workaround kind of
<Regenaxer> I'll consider the issue more ...
<beneroth> not bad. a workaround might be no longterm solution, but it buys time :)
<beneroth> and it might be good enough.
<Regenaxer> yes
<beneroth> I have to make HTTPS requests to a SOAP webservice (XML bloat hell). Best way? curl? stunnel? I looked into socat but I guess it is better for permanent connections?
<beneroth> I need to issue POSTs with xml body
<Regenaxer> In the single case where I used socat so far (mail polling) I switched to @bin/ssl
<beneroth> so you use @bin/ssl for this now? :)
<Regenaxer> ok, POST will not work with @bin/ssl
<Regenaxer> yes
<beneroth> yeah that is the problem
<Regenaxer> POST works fine with curl
<beneroth> the simple solutions don't apply
<beneroth> yeah
<beneroth> saw that, thought I will try out this. writting body into a temp file, then curl.
<beneroth> good enough.
<Regenaxer> T
<Regenaxer> curl works fine
<Regenaxer> I did not look more at socat, seems also very good
<beneroth> performance is not an issue. but the server cert has to be properly checked, security is a concern and the nature of data makes it interesting enough for attacks, actually.
<beneroth> in socat manpage was something written about checking validity of server cert (with accepted CAs, signature, etc) but not checking if the common name of the cert matches the server name.
<Regenaxer> Isn't this implied by a correct check?
<Regenaxer> otherwise it is meaningless (man in the middle)
<beneroth> "With socat version 1.6.0, the SSL server per default requires the client to present a trusted certificate. socat's OpenSSL implementation still does not check the contents of a certificate like host name or host address."
<beneroth> I'm not sure if this still applies
<beneroth> no issue if you connect with client certificates
<beneroth> but when connecting to an arbitrary server (e.g. HTTPS), just checking if the cert is valid and trusted is not enough without checking that the certificate belongs to that server
<Regenaxer> T
beneroth has quit [Ping timeout: 240 seconds]
mtsd has joined #picolisp
beneroth has joined #picolisp
<mtsd> Good morning
<Regenaxer> Good morning mtsd
<mtsd> Good morning Regenaxer
<mtsd> Hope things go well with Pilbox and the work projects
<Regenaxer> yes, quite ok :)
<mtsd> Good :)
<anjaa> beneroth: never said it wasn't, only said it's suspicious to want to focus on the margin cases
<cess11> beneroth: Congrats, you're back on ignore.
<anjaa> beneroth: you can read this and then follow the links: https://www.rapecrisisscotland.org.uk/false-allegations/
<m_mans> I can't fugure out how to let 'range pridicate to do apply 'get in pilog filter. I have list value in entity property ('cu from +Stamp prefix class). So I wrote: (range @Dat @@ cu 1). No luck :). Then I've studied pilog.l, I see that in "range" function there is a line at the end: (T ("range" (apply get (car L) X) (cdr L))) ) )
<m_mans> I suppose I need to wrap @@ cu 1 into some list, but how exactly?...
<Regenaxer> All these db predicates know about lists themselves
<Regenaxer> should work right out of the box
<m_mans> 'cu property holds list of date and user, the idea was to check only the first item of the list
<Regenaxer> yes, so it is 1 as you wrote
<Regenaxer> cu is (+List +Bag)?
<m_mans> (rel cu (+Bag) # Creator ((+Date)) ((+Link) (+User)) )
<m_mans> just +Bag
<Regenaxer> ok, then it is just 1
<Regenaxer> (range @Dat @@ cu 1) should be fine
<Regenaxer> to get the date
<Regenaxer> you could do (trace 'get) to see what it does
<Regenaxer> or to see what goes wrong
alexshendi has quit [Ping timeout: 240 seconds]
<m_mans> strange, I get !? (get Y (car L))
<m_mans> 736984 -- Bad argument
<m_mans> ? Y
<m_mans> -> 736984
<m_mans> ? L
<m_mans> -> (1)
<m_mans> ?
<m_mans> let me trace
<m_mans> get : {12561} cu
<m_mans> get = (736984 {12722})
<m_mans> get : 736984 1
<m_mans> [app/modRequest/pos_gose.l:24] !? (268479 $177767777774164 $177767777774166)
<m_mans> 736984 -- Bad argument
<Regenaxer> hmm
orivej has quit [Ping timeout: 264 seconds]
<Regenaxer> strange
<m_mans> afk for 10 min
<Regenaxer> me too
<Regenaxer> It is the same situation as last week
<Regenaxer> Pilog is meant for atomic data
<Regenaxer> if it finds a list, it iterates it automatically
<Regenaxer> So just a +Bag is not good. (+List +Bag) is all right again
<Regenaxer> or (+List +String) or (+List +Joint) etc
<Regenaxer> atomic data which happen to come in lists
<Regenaxer> afp
<m_mans> back
<m_mans> ok. I can write my own predicate if I need, right?
<Regenaxer> yes
<Regenaxer> or try something like (val (@Cu @X) @@ cu) (range @Dat @Cu) ..
<Regenaxer> (not tested)
<m_mans> (^ @ (let (ObjDat (get (-> @@) 'cu 1) Dat (car (-> @Dat))) (or (=T (car (-> @Dat))) (> ObjDat Dat)) ) )
<m_mans> my first lisp expression in filter :)
<m_mans> it works
<Regenaxer> ok
<Regenaxer> but not +Bag is not an option
<Regenaxer> ?
<Regenaxer> eg. two separate relations?
<m_mans> it is possible of course. But I simply use what we already have (+Stamp prefix class)
<Regenaxer> right
<m_mans> and we already have it in the database
<Regenaxer> ok
<m_mans> and most important for me was to learn concepts
<Regenaxer> :)
<Regenaxer> Yeah, and Pilog is for convenience for the common, typical cases
<Regenaxer> and these are either atomic, lists of atoms, or list bags
<m_mans> so, at least I'm not afraid anymore of lisp expressions in select's filters
<Regenaxer> cool :)
<m_mans> as I understand, expression must return non-NIL value to let object pass the filter?
<Regenaxer> yes
<Regenaxer> and '@' is good, as we are not interested in the value
<Regenaxer> afp again
<m_mans> thanks for the suggestions and help! I must go
miskatonic has joined #picolisp
orivej has joined #picolisp
miskatonic has quit [Quit: ERC (IRC client for Emacs 24.5.1)]
mtsd has quit [Quit: leaving]
libertas has joined #picolisp
karswell has joined #picolisp
Regenaxer has left #picolisp [#picolisp]
alexshendi has joined #picolisp
tankfeeder has quit [Quit: Connection closed for inactivity]
Regenaxer has joined #picolisp
beneroth has quit [Read error: No route to host]
nonlinear has quit [Ping timeout: 256 seconds]
<rick42> moin
libertas has quit [Ping timeout: 256 seconds]
chuckJ has joined #picolisp
beneroth has joined #picolisp
<rick42> wb beneroth ! o/
<beneroth> \o hey rick42
chuckJ has quit [Ping timeout: 264 seconds]
nonlinear has joined #picolisp
<Regenaxer> Hi rick42
<Regenaxer> Hi beneroth
<rick42> Hi Regenaxer :)
<rick42> Regenaxer: how do you throw an error message to the user? i tried using `throw` but i think it is probably via another call
<Regenaxer> yes, 'quit'
<rick42> ok thanks!
<Regenaxer> Can also be caught with 'catch'
<rick42> even the quit call?
<rick42> nice
<Regenaxer> yes, using a list of (partial) strings
<Regenaxer> : (catch '("oo") (quit "foobar"))
<Regenaxer> -> "oo"
<rick42> oh i see. substring matching
<Regenaxer> yes
orivej has quit [Ping timeout: 240 seconds]
<rick42> Regenaxer: that is very convenient, now that i think of it: no reason to create error/exception classes b/c if you write good, standardize messages, then the execption mechanism can match on those no problem. very neat!
<beneroth> and you can give those transient symbols a value -> localized error message ;)
<beneroth> Regenaxer, I guess the matching happens on the symbol name, not value ?
<beneroth> matching as in (catch)
<rick42> beneroth: yes i have known this for a while. it's all very nicely designed
<Regenaxer> beneroth, correct
<Regenaxer> catch uses pointer equality though for the tags
<Regenaxer> So throw and quit never conflict
<rick42> beneroth: i should have said "good point". you brought to light a lower level design decision that this matching takes advantage of
<rick42> (i'm hoping that if i hang around smarter people than i that it will make me smarter. but i sometimes forget that it's not my osmosis that this may happen -- i have to put some effort in myself :)
<rick42> by* osmosis
<rick42> ah, my friends, i have to leave
<rick42> have a good night!
<beneroth> I think there is an osmosis effect, but yeah effort and initiative helps a lot ;)
<beneroth> have a nice evening rick42 o/
<Regenaxer> Good night rick42!
<beneroth> Gute Nacht Regenaxer !
<beneroth> :)
<Regenaxer> Gute Nacht :)
orivej has joined #picolisp