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
_whitelogger has joined #picolisp
zod_ has joined #picolisp
coffeecup12345 has joined #picolisp
zod_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<tankfeeder> task done
<Regenaxer> tankfeeder, cool! Looks very advanced!
<tankfeeder> :)
<Regenaxer> The code is good I think
<Regenaxer> (I don't know the algorithm though)
aw- has joined #picolisp
<tankfeeder> implementation is not practical, but correct
<Regenaxer> ok
<aw-> oh
<aw-> TOTP
<aw-> i need that for a project
<aw-> tankfeeder: if you include base32 lib, can generate Google Authenticator codes
<aw-> could be useful for PilBox
<tankfeeder> i have base32 already, not included here
<aw-> yes i know, that's my point
<aw-> hmm
<aw-> why (def 'totp hotp) ?
<aw-> doesnt make sense
<tankfeeder> it use hotp
<tankfeeder> check rfc tests
<tankfeeder> it need modification to be usefull
<tankfeeder> ok for rosetta
<aw-> OK
rob_w has joined #picolisp
<Regenaxer> Now installing Debian on Arm64/Qemu
rob_w has quit [Quit: Leaving]
rob_w has joined #picolisp
rob_w has quit [Client Quit]
alexshendi has joined #picolisp
aw- has quit [Quit: Leaving.]
<beneroth> Regenaxer, how to set the cdr of a cons pair?
<beneroth> got it
mickiebyrd has joined #picolisp
<joebo> beneroth: morning!
<beneroth> hi joebo !
<joebo> for my own education (testing my knowledge)... was it con?
<beneroth> actually I didn't got it right
<beneroth> good hint with con xD
<joebo> :)
<beneroth> List: ((1 . "some") (2) (3 . "string"))
<beneroth> I want to replace (2) with (2 . "foo")
<beneroth> (set (get List 2) (cons 2 "foo")) results in ((1 . "some") ((2 . "foo")) (3 . "string")) which is wrong
<joebo> -> ((1 . "some") (2) (3 . "string"))
<joebo> : (cadr L)
<joebo> -> (2)
<joebo> : (con (cadr L) "foo")
<joebo> -> "foo"
<joebo> : L
<joebo> -> ((1 . "some") (2 . "foo") (3 . "string"))
<joebo> :
<joebo> where L is
<joebo> (setq L '((1 . "some") (2) (3 . "string")))
<joebo> does that look right?
<beneroth> yes!!
<beneroth> thanks joebo !
<joebo> np!
* beneroth hugs joebo
<joebo> :)
<joebo> thanks for the break from javascript :)
<beneroth> your welcome :)
karswell_ has joined #picolisp
<Regenaxer> ret
<Regenaxer> beneroth: With 'con'
<Regenaxer> yes, thanks joebo!
<joebo> hi Regenaxer !
<Regenaxer> :)
<beneroth> yeah joebo helped me :)
<Regenaxer> Perfect!
alexshendi has quit [Ping timeout: 255 seconds]
alexshendi has joined #picolisp
coffeecup12345 has quit [Ping timeout: 255 seconds]
mtsd has joined #picolisp
alexshendi_ has joined #picolisp
alexshendi has quit [Read error: Connection reset by peer]
alexshendi has joined #picolisp
alexshendi_ has quit [Ping timeout: 240 seconds]
<beneroth> Regenaxer, external symbols, I can put stuff into the NIL property for caching, those will not be written to db, right?
<beneroth> so (put> 'Obj NIL "foo") ?
<Regenaxer> correct
<beneroth> perfect thx
<Regenaxer> it is a "volatile" value
<beneroth> perfect for caching
<beneroth> how to read it?
<Regenaxer> hmm, rather the opposite of caching (?)
<Regenaxer> (get Obj NIL)
<Regenaxer> The value is there only a short time
<beneroth> I intend to store the result of a expensive method call, so the method can return the cached result instead of run again. if the obj gets wiped, the cache is invalidated too (right) ?
<beneroth> define "short time" ?
<Regenaxer> ah yes, good
<Regenaxer> until the next commit or rollback
<beneroth> yeah that is fine
<beneroth> perfect even, good cache invalidation :)
<Regenaxer> I used it to mark objects it the gui, eg during drawing
<Regenaxer> ok :)
<Regenaxer> This feature can be extremely useful sometimes
zod_ has joined #picolisp
<beneroth> my method reads certain data from a blob. I might want to use that data multiple time, so either I have to store the result in a variable or the method checks NIL for it (assoc list) and only gets the result from the blob if not already cached
<Regenaxer> Without it, complicated data structures may be needed
<Regenaxer> yeah, reading the blob may also be fast
<Regenaxer> I think the difference is not high
<beneroth> without volatile property you might need a external symbol class and a business/logic class which holds all volatile properties plus the external symbol... thats more complicated
<Regenaxer> exactly
<Regenaxer> needs some lookup
<beneroth> depends on the blob. if it is a small file, than the caching is not much use. but if it is a big file, that might be much faster, saving IO
<Regenaxer> right
<Regenaxer> And one can store lots of things in that property
<Regenaxer> perhaps even a full idx tree of data :)
<beneroth> that is my thinking!
<beneroth> key val caching store
<Regenaxer> T
<cess11> Brilliant.
alexshendi has quit [Read error: Connection reset by peer]
<cess11> The 'NIL property, that is.
<Regenaxer> yeah :)
<Regenaxer> easy to forget that it is there
<beneroth> cess11, and something completely different than the global NIL ;-)
alexshendi has joined #picolisp
alexshendi_ has joined #picolisp
alexshendi has quit [Ping timeout: 240 seconds]
alexshendi_ has quit [Read error: Connection reset by peer]
stacksmith has left #picolisp [#picolisp]
stacksmith has joined #picolisp
coffeecup12345 has joined #picolisp
mtsd has quit [Quit: Leaving]
coffeecup12345 has quit [Ping timeout: 255 seconds]
mtsd has joined #picolisp
mtsd has quit [Remote host closed the connection]
alexshendi has joined #picolisp
<stacksmith> cess11: tinycore website states "We offer 3 different x86 "cores" to get you started"... I am looking for ARM...
_whitelogger has joined #picolisp
karswell_ has quit [Ping timeout: 240 seconds]
<cess11> stacksmith: Right, my bad.