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
groovy2shoes has quit [Quit: Leaving]
aw- has joined #picolisp
groovy2shoes has joined #picolisp
orivej has quit [Ping timeout: 248 seconds]
zod_ has joined #picolisp
<clacke[m]> I'm not 40 quite yet! One year left.
<clacke[m]> beneroth being a decade younger than me is a surprise
<clacke[m]> next year will be my 16th 25th birthday
<aw-> fuuuu
<aw-> almost 36 here.. .getting old
<m_mans> Hi all
<Regenaxer> Hi m_mans
<m_mans> Regenaxer: I have question about archiving :)
<Regenaxer> ok
<m_mans> Archived object must have some links from other places (e.g. at least one index), otherwise it will be zap'ed during dbgc, right?
<Regenaxer> correct
<Regenaxer> And can't be found anyway, basically non-existent
<m_mans> how do you provide this for your objects?
<m_mans> do you make some indexes for archived version?
<Regenaxer> Usually no need. All indexes are deleted, but objects are referred to from other objects
<Regenaxer> eg if a customer is deleted, it is still there in the invoices
<Regenaxer> There will always be a link, otherwise the object is really useless and *can* be deleted
<m_mans> if all network of linked objects got archived, so you let them be purged, right?
<Regenaxer> if they can't be found, yes
<Regenaxer> They are not "archived"
<Regenaxer> I archive objects which should *not* be gone
<m_mans> so, in general, archiving is not about "storing forever"
<Regenaxer> no, it is
<m_mans> hm, I'm confused
<Regenaxer> they are to be searched in the future, but should be out of the way
<Regenaxer> To make searching for active objects easier
<m_mans> so, how do provide that they are not gone?
<Regenaxer> So the user eg. selects the archived class in the search dialog
<Regenaxer> I switch the class
<Regenaxer> a common abstract superclass
<Regenaxer> and one "normal" and one "archived" subclass
<m_mans> and +Arc.. class has own index?
<Regenaxer> not needed
<Regenaxer> (collect 'nr '+Cls) <-> (collect 'nr '+Arc)
<Regenaxer> The class definition is the same
<m_mans> ahh
<Regenaxer> Just (set!> Obj '(+Arc))
<m_mans> just with 'isa restriction
<Regenaxer> no 'isa' called
<m_mans> ok, got it
<m_mans> I mean in low level
<Regenaxer> yes, so 'isa' is also not called internally
<Regenaxer> The class determines the behavior completely
<m_mans> but what about 'select' predicate?
<m_mans> I should use 'isa' then?
<Regenaxer> What should be different?
<Regenaxer> usually not
<Regenaxer> It uses +Arc for the search
<Regenaxer> btw, to define the classes in er.l I do:
<m_mans> but e.g. 'nr index is in common superclass?
<Regenaxer> (de "person" ()
<Regenaxer> (rel nm (+Need +Sn +IdxFold +String)) # Name
<Regenaxer> (rel plz (+Ref +String)) # Postleitzahl
<Regenaxer> (rel ort (+Ref +String)) # Ort
<Regenaxer> (rel lnd (+Ref +Link) NIL (+Land)) # Land
<Regenaxer> ...
<Regenaxer> (class +Kunde +Person)
<Regenaxer> ("person")
<Regenaxer> (class +Partner +Person)
<Regenaxer> ("person")
<Regenaxer> (class +Btg +Person)
<Regenaxer> ("person")
<Regenaxer> ...
<Regenaxer> same for archived objects
<Regenaxer> ie define the relations in a common function
<Regenaxer> No, 'nr' is *not* in common usually
<Regenaxer> (collect 'nr '+Cls) <-> (collect 'nr '+Arc)
<m_mans> ok. Btw, 'common function' is interesting hack :)
<m_mans> thanks!
<Regenaxer> yes, so we do not need to write (rel nr ...) multiple times
<m_mans> yes, but in that case only code is shared, but index trees are different (just for explain to everybody)
<Regenaxer> right
<Regenaxer> they always refer to the current class
<Regenaxer> The above is not an example for archiving, but easier to understand without context
<Regenaxer> For +Arc it is the same principle
orivej has joined #picolisp
roundsf`` has joined #picolisp
roundsf` has quit [Ping timeout: 264 seconds]
<beneroth> hi all
<beneroth> Regenaxer, nice explanation.
<beneroth> My approach is similar
<Regenaxer> Hi beneroth
<Regenaxer> Good to hear
nihirash has joined #picolisp
miskatonic has joined #picolisp
rob_w has joined #picolisp
nihirash has quit [Quit: Ex-Chat]
orivej has quit [Ping timeout: 240 seconds]
rob_w has quit [Quit: Leaving]
orivej has joined #picolisp
<cess11> Clever way to reuse 'rel, thanks for sharing.
miskatonic has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
<beneroth> remote code execution in Exim mail server: https://lists.exim.org/lurker/message/20171125.034842.d1d75cac.en.html
<beneroth> no patch yet, but a workaround
beneroth has left #picolisp ["Verlassend"]
beneroth has joined #picolisp
miskatonic has joined #picolisp
aw- has quit [Quit: Leaving.]
<beneroth> list of 34C3 talks/presentations: https://halfnarp.events.ccc.de
miskatonic has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
zod_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
alexshendi has quit [Read error: Connection reset by peer]
alexshendi has joined #picolisp
miskatonic has joined #picolisp
orivej has quit [Ping timeout: 260 seconds]
alexshendi has quit [Ping timeout: 260 seconds]
miskatonic has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
alexshendi has joined #picolisp
nihirash has joined #picolisp
nihirash has quit [Remote host closed the connection]
nihirash has joined #picolisp
nihirash has quit [Remote host closed the connection]
orivej has joined #picolisp
zod_ has joined #picolisp
alexshendi has quit [Ping timeout: 248 seconds]
alexshendi has joined #picolisp
orivej has quit [Ping timeout: 260 seconds]
zod_ has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
zod_ has joined #picolisp
zod_ has quit [Client Quit]
miskatonic has joined #picolisp
<beneroth> wow
<miskatonic> frankenstein is responsible for everything
<miskatonic> so this mongodb is not spql, but still relational?
miskatonic has quit [Quit: ERC Version 5.3 (IRC client for Emacs)]
<beneroth> no, it is not relational
<beneroth> not in the slightest