ChanServ changed the topic of #picolisp to: PicoLisp language | Channel Log: https://irclog.whitequark.org/picolisp/ | Check also http://www.picolisp.com for more information
orivej has quit [Ping timeout: 245 seconds]
ubLIX has quit [Quit: ubLIX]
ubLIX has joined #picolisp
ubLIX has quit [Quit: ubLIX]
alexshendi has quit [Ping timeout: 264 seconds]
freeemint has joined #picolisp
rob_w has joined #picolisp
freemint has quit [Ping timeout: 240 seconds]
freeemint has quit [Ping timeout: 244 seconds]
freemint has joined #picolisp
freemint has quit [Ping timeout: 272 seconds]
freemint has joined #picolisp
<Regenaxer> freemint, good morning! The problem with (> (length (car X)) 1) is that if you *publish* such code, others will think it is good and do the same
freeemint has joined #picolisp
<Regenaxer> freeemint, good morning! The problem with (> (length (car X)) 1) is that if you *publish* such code, others will think it is good and do the same
<Regenaxer> Must go. afp
freemint has quit [Ping timeout: 240 seconds]
freemint has joined #picolisp
freeemint has quit [Ping timeout: 264 seconds]
<freemint> I see your point there but readability to mathematicians was a primary concern
<Regenaxer> ret
<Regenaxer> For me it is really a pain to see such code
<Regenaxer> It is the point where PicoLisp is all about
<Regenaxer> Understanding what you do, what happens internally
<Regenaxer> and taking the length means going through *each* CDR of the list, counting them, then compare with 1
<Regenaxer> Ridiculous
<Regenaxer> And people start to do such things all over
<Regenaxer> If you worry about people understanding your code, you should write a comment at this place
<beneroth> T
<Regenaxer> Hi beneroth!
<beneroth> Good morning Regenaxer :)
<Regenaxer> :)
<beneroth> I can understand freemints motivation. It's partly getting less trouble reviewing his program with non-lispers and partly attempting to making picolisp more accessible. At the beginning when I started picolisping I had similar thoughts. But Regenaxer is absolutely right, the essence and very foundation of picolisp is the extremely disciplined, seemingly-stubborn focus on minimalism. This allows the emergence of re-usability and combinability of picolisp co
<beneroth> de in a degree which is not seen in any other language.
<beneroth> Seeing and believing this effect requires quite some picolisp experience. But every time when something "just works simply", as a combination of other picolisp elements, this trait is active.
<Regenaxer> thx!
xkapastel has quit [Quit: Connection closed for inactivity]
<beneroth> The risk of polluting the picolisp style with bad code-habits is a real one. I think this risk is at the moment rather small, but it's not difficult to envision that suddenly a bigger number of new people would pickup picolisp (e.g. because of the pil DB or some other specific feature) than our current, tiny community can assimilate, and this could lead into a degeneration of picolisp style, surely would bring the creation of many new (often useful) librar
<beneroth> ies, but the risk of the stack getting varied enough to lose the combinability feature is high.
<Regenaxer> I saw such things already
<Regenaxer> People taking bad examples, then using it in their blog etc.
<Regenaxer> So such bad code propagates surprisingly fast
<beneroth> Yeah, generally this is very widespread. Stackoverflow-copy-paste-programming.
<Regenaxer> exactly
<beneroth> I still struggle myself with reducing things to its essential simplicity. Its hard. And I really love interlinked OOP constructs where the main functionality emergences from the combination of stupid OOP pieces. But the risk of it becoming unmanageable (to complex to hold completely in the head) is great. And I already rushed into dead ends with the architecture of my web/db-system, turning back, finding simpler better approaches.
<Regenaxer> yes, you made a quite involved inheritance structure
<Regenaxer> in a way I never did, graph instead of tree
<beneroth> hehe, yeah. that's how I find the bug in the multi-inheritance handling.
<Regenaxer> It was not in inheritance, but the entity counts (ECnt)
<beneroth> yes, the bug was essentially that it didn't count correctly in case of multi-inheritance.
<Regenaxer> yep
<beneroth> What I've written above is one reason (beside lack of gain for the project itself, as I'm not yet in project state where I'm interested in contributors) why I don't opensource/publish my main project yet. I don't want to publish something I know I can do better. And I don't want to publish stuff that isn't tested fully with real world applications and will likely change fundamentally again.
<beneroth> I could and should publish my helper/tooling/library code (e.g. some string handling, datetime handling, such stuff), but I didn't take the time to do that yet :P
<Regenaxer> No hurry. As you say, better when you feel it is ready
<beneroth> In parallel I do real client projects using that code so I do get it tested, especially also for maintainability when bug arise (seldom) or new features must be add (all the time, clients never believe that they will need X in 6 months when I tell them, and then in 6 months they want it added to the finished code...)
<beneroth> Slows down the development tremendously, with other daily business I can rarely really work on developing the system further, and only a small part of my vision is implemented yet.
<Regenaxer> understand
<beneroth> But I guess it makes the stuff really tested and stable, gives me experience, and all in all I'm on the right track.
<beneroth> The power of the "extremely simple elements, can be combined and re-used in all sorts of manners" in picolisp really cannot be over-estimated. It gives so much flexibility and saves a lot of time and headaches. But it requires very strong discipline when building "elements of the application (architecture)" to achieve this property. Strong focus of making sure to not accidentally introducing restrictions which are not essential to the task at hand (minimal
<beneroth> restrictions = highest re-usability), and strong discipline in using the proper functions and proper constructs (not overusing custom list structures, better using symbols with properties then, such stuff.).
<beneroth> freemint, if you can afford the time, then an idea would be to make two versions of your picolisp code: 1) "explain" version in code which is more easily accessible to non-lispers, and a 2) proper version with the uttermost minimalism, proper use of picolisp functions and fully following the picolisp naming conventions
<beneroth> This could also be used to explain to non-picolispers how to come from a initial first version to an optimized pure version of the code, and to explain and stress the minimalism of pure picolisp.
<beneroth> better would be aw- approach with making a in-depth explanation of the picolisp code, without dumbing down the code.
<Regenaxer> yeah, but thats a lot. I think, simply changing (> (length (car X)) 1) to (cdar X) and writing a comment like "longer than 1" behind it would suffice
<Regenaxer> "(car X) longer than 1"
<aw-> beneroth: the problem with my 'explain' documents is they quickly get outdated when I make code changes
<Regenaxer> An old problem with separate docs
<Regenaxer> I really lover the shadow screen concept or Forth
<Regenaxer> Should build that into Vip
<beneroth> aw-, yeah, the problem with every documentation.
<beneroth> aw-, your explain documents are a very good reference for other people, I find.
<aw-> cool
<aw-> good to know
<beneroth> aw-, its meaningful to keep those around even if your code changed (if the change was because of needs)
<beneroth> well your documentation help understanding a lot, e.g. (native). much more accessible than the short dense description in the reference (nothing wrong with that, I'd argue we needs both).
<beneroth> Regenaxer, what is the shadow screen concept of Forth ?
freemint has quit [Ping timeout: 264 seconds]
<Regenaxer> Each source screen has a "shadow". You toggle between them with a single keystroke
<Regenaxer> So the comments are not in the way
<Regenaxer> but still 1:1 with the sources
<Regenaxer> (Forth sources are in "screens" traditionally. 64x16 chars)
<beneroth> ah, nice idea. I see.
freemint has joined #picolisp
freemint has quit [Ping timeout: 240 seconds]
freemint has joined #picolisp
freeemint has joined #picolisp
freemint has quit [Ping timeout: 244 seconds]
rob_w has quit [Quit: Leaving]
orivej has joined #picolisp
alexshendi has joined #picolisp
xkapastel has joined #picolisp
alexshendi has quit [Read error: Connection reset by peer]
orivej has quit [Ping timeout: 272 seconds]
freemint has joined #picolisp
freeemint has quit [Ping timeout: 246 seconds]
alexshendi has joined #picolisp
<beneroth> "4chan mathematicians solved an interesting problem but nobody knows how to cite them. "
<beneroth> 4chan is an online community, pretty old, one of the nastiest and most fucked up places on the internet and at the same time quite often pretty awesome
<Regenaxer> hehe
<Regenaxer> Solved it accidently it seems
<beneroth> well not exactly accidentally, but just as trying to solve a nice riddle, coming to a solution which didn't exist yet anywhere else :)
freemint has quit [Ping timeout: 245 seconds]
freemint has joined #picolisp
grp has joined #picolisp
<freemint> Regenaxer i agree that it was inefficient. Beneroth I will make a blogpost out of it. (once i have a blog running) Both: I see the danger. But i wanted to make it a self documenting as possible if i 'cdr i would have needed to explain how cons cells work. In the blogpost i will write two versions... this seems a good idea. along the line: this code is good let's look what he does and make him great step by step and explaining the mathematics
<freemint> also i went to a Karrieremesse today. It was hosted by my uni. I put on a causal, nice shirt and went with the source code from yesterday and the FPGA board with the porting kernel to cpu story. My sales pitch was "i am not searching for a job any time soon but i got some free time for my own project. Let's suppose i make a good hire in the future. Tell me about the most interesting project or skill i could acquire that would make very attracti
<beneroth> nice strategy
<freemint> It went great.
<beneroth> what did you get back ? :)
<freemint> Possibly one contact to "the coding wizard" at GLS (packet logistic company)
<freemint> An high animal at the IT service of Bahn said me i was only one who he handed his business card. Attached was the offer: "we got enough people who do stuff, we need more ideas. Out of for 4 ideas you send me there will be one we can agree on that it would be good and we can then turn in to praxis, (together was implied but not stated)
<beneroth> once you get into actual job hiring stuff, make sure to not undersell yourself. companies like young computer freaks because they usually don't know their value and therefore are cheap
<freemint> One local company said: "If you want a long term part-time job we hire you."
<beneroth> well Bahn should first fix the security nightmare in their WLAN portal haha. How they handled that looks more like that they don't have any competent people.
<beneroth> nice. so companies try to sell themselves to you, that is pretty good.
<freemint> A insurance software house said "we could imagine you writing a report for us on emerging technologies, pay implied.
<beneroth> haha, nice. so you should write them about what blockchain is or something like that, probably xD
<freemint> and a challenge by an space optics company which will get me hired if i complete it (hard, very hard but duable.)
<freemint> also some tips for front-end dev.
<beneroth> wow thats exciting stuff
<beneroth> nice
<beneroth> you probably don't want to go into front-end dev, I suspect :)
<freemint> i need some for my blog, the questions were geared towards that
<beneroth> good
<freemint> Feedback that the code i wrote made someone think of his time at SAP where people wrote such mathematical code. He picked the style and praised the comments.
<freemint> Some insights how Rewe digital does agile.
<freemint> some general "Ferienjobangebote"
<freemint> and some awesome Kugelschreiber
<freemint> and free Sprite/Fanta Dosen
<beneroth> nice :)
<beneroth> I think I heard some stories from inside Rewe once, didn't sound so good (from their ERP department)
<freemint> Rede Digital is online shop mostly.
<beneroth> ah, yeah thats probably a completely different group and system
<freemint> they seem to use SCRUM and doing so sanely.
<freemint> it was estimated that only 20% of meetings were bullshit.
<freemint> which seems ok i think
<beneroth> good. SCRUM in bad mode is horrible and very stressful for developers. but good scrum is certainly worth something.
<freemint> Also they write a lot more lines per day than Regenaxers 15 lines per day.
<beneroth> that number is not from Regenaxer really, I heard it before from other sources.
<beneroth> best programmers write negative line numbers.
<beneroth> but line numbers is a bad indicator at best - heavily depends on programming language, stack, and application.
<freemint> and they transitioned to a mirco service architecture after there eingekaufte Monolith failed to scale and 1/8 of the time was spent on fixing merge problems due to multiple teams developing on it.
<freemint> beneroth i agree and we did talk about the caveats. They do many lines of test per day but without thta it is way less
<beneroth> Regenaxer, freemint apparently the 10 lines of code per day comes from the Mythical Man Month, the still best book about software project management
<freemint> Am aware
<beneroth> " at a large project you usually spend most of the time figuring the relationships between the parts, and only a small amount to actually changing/adding. whereas in a new project - you mostly write..."
<freemint> of the Bahn guy told me he will look into my code in his free time.
<beneroth> this is my experience, too. usually I spend about 1/3 of a project/tasks time questioning the initial request, discussing caveats and consequences, 1/3 implementation, 1/3 testing.
<freemint> He seemed to be really impressed and is "Leiter" as a job.
<freemint> i will tie up the lose ends in the next few days.
<freemint> Oh and there was a logic / programming challenge which was take home. I took out my laptop and solved it "on the spot". I will be supplied with more interesting puzzles.
<freemint> Which number is 3 times it's sum of the digits it was made out of.
<beneroth> awesome
<beneroth> you used picolisp for the puzzle on the spot?
<freemint> I only talked with HR'esque people from that company but she promised me to have there "wizard" (my words) look over my code and have him make new challenges for me. why wizard the HR girl claimed he looked at it said 27 and said it was way to easy.
<beneroth> freemint, see, you are obviously an good, clearly over-average programmer. it's also obvious to those people :)
<freemint> (for I (range 0 10000) (when (= I (* 3 (apply + (mapcar format (chop (format I))))) (prinl I]
<freemint> i looked at the problem and said 0 (right answer too) i only found 27 with the help of code
alexshendi has quit [Read error: Connection reset by peer]
<freemint> i wrote the code from memory so the (prinl I) Maybe in the wrong place
<freemint> (here)
<freemint> The comment of "HR" was: next time two minutes faster ... (i think i would have taken negative time then ;) )
<freemint> The HR girl was definitely cute and helpful. she was responsible for IT hiring so he knows AL the IT guys.
<freemint> beneroth it is above average in English
<beneroth> ah right, thx ^^
<freemint> also i got several tips from people i will not recount. was there for roughly 5 hours.
<freemint> and i skipped lunch ... that maybe why i stared to each so much free cake ...
<freemint> an the Bahn guy was very clever i think. He offered me space to do my under his guidance. If i take that offer he got an huge advantage in hiring me eventually and depending what carrots he has that might be worth it.
<freemint> my project under his
<freemint> (that were all my thoughts now i got fetch my girlfriend from the train in half an hour. If somebody wants to talk about with me feel free any time.
<freemint> Also beneroth thanks for your opinions and nitpicks
<freemint> and sorry all for the wall of text
<beneroth> your very welcome, no problem, have a nice evening!greetings to gf :)
<freemint> beneroth can you give me a pointer to your graph inheritance story arc?
<freemint> greetings back
<beneroth> thx.
<beneroth> puh. might be in the IRC archive, but would need to search. It was the 30jun14 picoLisp-3.1.7 "Entity-Count in DB root objects" bug
<freemint> in 2014? whitequark irc archive does not date back that far
<beneroth> I'm surprised that it really is that long ago
<freemint> why did you do a inheritance graph?
<freemint> 4 years ago i was fresh picolisp blood then
<beneroth> in pilDB, you create your database classes (similar to tables) by defining a class inheriting from +Entity
<freemint> yes
<beneroth> as with normal picolisp classes, you can let it inherit from other classes too. or you make an abstract (class +colors +Entity) and then sub-classes (class +Red +color) (class +Yellow +color) or so...
<freemint> nice example
<beneroth> also, in pilDB the root object {1} which is available in the *DB globale has a property for each +Entity-class which has indexed properties (+Ref, +Key etc). those properties is another DB object which has a property for every indexed property/field of that class. and that property has a cons pair as value, which is (<number of entires in this index> . <index root node>)
<beneroth> e.g. id (2 . {B65})
<freemint> i was not aware of that so explicitly but i still follow
<beneroth> this counter is automatically updated whenever (put> +Entity 'indexed-property 'value) is called. the method (put>) on +Entity is calling additional put> methods depending on the definition of the property (e.g. (+Ref +Link) or (+Ref +Number) or (+List +Ref +Link), such things.
<Regenaxer> ret
<Regenaxer> freemint, no, the point is *not* efficiency
<freemint> (no need to answer soonish Regenaxer)
<Regenaxer> it is rightnels
<beneroth> if your class inherits from an +Entity class, you get multiple such counters, one for every class.
<Regenaxer> rightness
<beneroth> Regenaxer, T T T T this
<freemint> can say it in german?
<beneroth> but this is in direct opposition to business IT :D
<Regenaxer> :)
<Regenaxer> "richtige" oder "wahrer" Weg?
<beneroth> freemint, e.g. a counter for +color and one for +Red and another for +Yellow. The +color obviously should be equal to the sum of the +Yellow and +Red counters (unless you have additional +color classes)
<freemint> Vielleicht Wahrhaftigkeit?
<beneroth> freemint, now if your db class happen to inherit from two or more classes which also inherit from +Entity, then the bug was that not all counters got correctly updated because the counter-update-code only took care of the first branch of parents which lead up to +Entity, ignoring parent entity classes which happened to be on another (lower priority) inheritance branch
<beneroth> freemint, Korrektheit
<beneroth> freemint, there are functions in @lib/too.l to check and correct entity counters which are wrong for some reason, but that code also assumed that a class has only one inheritance line going up to +Entity
<freemint> spotty internet connection from now on.
<freemint> well read up on it
<beneroth> which is the normal and usual case. in most cases its not good practice to inherit from the same parent class via multiple classes in between. in other languages, where inheritance is not a prioritised/ordered list of parents as in picolisp, such an inheritance leads to the diamond problem.
<beneroth> the diamond problem is the reason for java and c# not allowing multiple inheritance on classes but only on "interfaces" (abstract class definitions without implementation).
<Regenaxer> beneroth, the ECnts were not the ones in the index root
<beneroth> T
<Regenaxer> they were correct, one per index
<beneroth> T
<Regenaxer> it is in the value of the root object
<beneroth> right, I mixed them up :)
<beneroth> thanks for pointing it out. I noticed it, but didn't care to spell it out :P
<beneroth> but yes, better to do so! especially for the log!
<Regenaxer> Both counts are in fact not really critical
<beneroth> T
<beneroth> its just a nice cached value
<Regenaxer> just used in the GUI to display a size
<Regenaxer> yeah
<Regenaxer> The index counts are used in 'dbCheck' though
<freemint> beneroth Korrektheit doesn't seem to quiet fit it. It is to technical. It's like "Unwahrheit sprechen" when "Lügen" is the proper word. Lügen corrupts the character and makes futre true speech harder
<Regenaxer> as a redundant check
<Regenaxer> yes, neither korrect nor wahr
<Regenaxer> it is "richtig"
<Regenaxer> etwas richtig machen
<beneroth> freemint, agreed, though Lügen involves purpose (absichtlich die unwahrheit sagen), while you can tell something wrong or use bad/incorrect style without being aware of it.
<beneroth> you can lie about something and still say the truth, if you believe that what you say is untrue.
<beneroth> even when it happens to be the actual truth.
<beneroth> I would say :)
<Regenaxer> truth is always relative anyway
<beneroth> no!
<beneroth> I view lying as "stating something as true when yourself are convinced that is untrue"
<Regenaxer> Is there *any* absolute truth?
<Regenaxer> It is always relative to some axioms
<beneroth> truth is not always relative! that view leads to social constructivism and denial of objective scientific truth, which might not be directly observable but is the real thing.
<Regenaxer> no, also scientific truth is not absolute
<beneroth> if the car hits you, you get physical damage, even if you don't believe in the truth of cars.
<Regenaxer> you assume something
<beneroth> right
<beneroth> you assume that there is an absolute truth, and try to find the most accurate and practical heuristic
freeemint has joined #picolisp
<Regenaxer> also logic is not absolute
freemint has quit [Ping timeout: 252 seconds]
freemint has joined #picolisp
<Regenaxer> yeah, practical
<Regenaxer> or common agreement on some axioms
<beneroth> but if you throw the assumption of absolute truth over board, then everything just becomes a subjective opinion and you get into social constructivism where truth is a value made up from social consent without any need for a "hidden reality" behind it.
<Regenaxer> I never assumed absolute truth
<beneroth> thats the worldview that drives the people who attempt to change society by changing language, believing if you can't speak about bad things anymore they become untrue and inexistent to some degree.
<beneroth> I assume absolute truth. I don't assume to be capable of knowing or measuring it, only maybe glimpses of it.
<Regenaxer> This is a big illusion
<Regenaxer> For example, tell me one absolute truth
<beneroth> well most of the human experience is an illusion. you don't see with your eyes, you see a projected model made up by your brain partly based on physical input from your eyes interpolated with your memories.
<Regenaxer> Which does not depend on some axiom
<beneroth> I exist.
<Regenaxer> yes
<beneroth> Descartes :P
<Regenaxer> How do you know?
freeemint has quit [Ping timeout: 245 seconds]
<beneroth> who is asking?
<Regenaxer> He said it
<Regenaxer> but what is "I" then?
<Regenaxer> What exists?
freemint has quit [Ping timeout: 245 seconds]
<beneroth> thats a good question. but you can definitely say that it is, whatever it is. that it is something else than non-existent.
<Regenaxer> Also, what means "exist"
freeemint_ has joined #picolisp
<Regenaxer> ?
<Regenaxer> You assume that I and exist are defined
<beneroth> no, I don't
<Regenaxer> to tell a "truth" about them
<beneroth> well, right, I assume that I and you exist, but I'm aware that is an assumption. but for practical purposes I basically need to make this assumption.
<Regenaxer> yes, so it is a relative truth
<beneroth> the other path leads to solipsism or nihilism. both might be valid but both are impractical :)
<Regenaxer> You can prove something only relative to other truths
<beneroth> yes, but a relative truth is something completely different than a completely made-up and/or subjective-truth
<Regenaxer> yes
<beneroth> science works on the assumption that there is some underlying truth, some underlying "logical" rule-set.
<beneroth> that is the big advantage of the physicist over the programmer.
<Regenaxer> No, these truths are deliberately defined
<Regenaxer> axioms
<Regenaxer> eg the rules of logic
<beneroth> deliberately but not arbitrary
<Regenaxer> kind or arbitrary
<Regenaxer> as it turns out to fit best
freemint has joined #picolisp
<beneroth> the physicist assumes there is an underlying logic, and he tries to debug nature to deduce those stuff. the programmer debugging some legacy software knows that the underlying system might be a complete arbitrary fuckup :)
<Regenaxer> ie match the reality our mind percieves
<beneroth> to fit best to what? to fit best to repeated actual observation!
orivej has joined #picolisp
<beneroth> not fit best to some personal political agenda or personal view or beliefes.
freeemint_ has quit [Ping timeout: 252 seconds]
<beneroth> that is the difference of science compared to other methods for generating "knowledge" or guidelines
<Regenaxer> Because the rules are commonly agreed on due to observation
<Regenaxer> but observation is not absolute
<Regenaxer> just all people observe the same
<Regenaxer> It may be a bug in human observation
<beneroth> no, observation is bound to the measuring device, as quantum mechanics proved, and eventually it is all bound to the human brain as interpreter.
<Regenaxer> eg a=b and b=c -> a=c
<Regenaxer> it is not absolute, just observed
<Regenaxer> and defined as true
<beneroth> but also, as long as something stays consistent to all human observation than its ok to take it as truth because any other truth has no relation and no effect to our experienced reality, so it is meaningless.
<Regenaxer> to be true, you must prove that logic itself is true
freeemint has joined #picolisp
<Regenaxer> All humans are dreaming perhaps
<beneroth> yes, and you prove it by making prophecies which match the past and future observation
<Regenaxer> So if we make an axiom that humans are not dreaming ...
<Regenaxer> So it is all relative
<beneroth> it doesn't matter, because you can't make prophecies on that axiom.
<Regenaxer> there is *no* absolute truth
<beneroth> read some asimov
<Regenaxer> He is not absolute either
freeemint_ has joined #picolisp
<beneroth> "John, when people thought the earth was flat, they were wrong. When people thought the earth was spherical, they were wrong. But if you think that thinking the earth is spherical is just as wrong as thinking the earth is flat, then your view is wronger than both of them put together."
<beneroth> read the essay, it is exactly about the matter we discuss here
<Regenaxer> First you assume that earth *exists*
<beneroth> the core is there is no absolute right. but there are definitely differences in wrongs!
<Regenaxer> and that something like a shape exists
<Regenaxer> what is a shape?
<beneroth> stop mental masturbating Regenaxer, it doesn't fit you well :P
<Regenaxer> No, it is very simple
freemint has quit [Ping timeout: 240 seconds]
<Regenaxer> no masturbation
<beneroth> lets speak about the consequences
<Regenaxer> I would be glad to see any absolute
<beneroth> I think you/I inherently cannot.
<Regenaxer> It was about "rightness" initially
<Regenaxer> T
<Regenaxer> "rightness" relative to PicoLisp ;)
<beneroth> yes, and the property of rightness that matters is not if it is the absolute truth, but that it fits all current observations so far and that is not wrong!
<beneroth> and there are definite wrongs!
freeemint has quit [Ping timeout: 264 seconds]
<beneroth> and even if the understanding A turns out to be less "right" than previously believed, it is not therefore necessarily in the same category as a known wrong!
freemint has joined #picolisp
freeemint_ has quit [Ping timeout: 252 seconds]
<Regenaxer> There are wrongs, but also not absolutely. They are right if you make the right conditions or axioms
<beneroth> read the asimov essay, it is not that long: http://chem.tufts.edu/answersinscience/relativityofwrong.htm
<Regenaxer> So wrong only inside a given formal system
freeemint has joined #picolisp
<beneroth> I will not further discuss that topic with you before you read that asimov essay :P
<Regenaxer> too long to read it now ... What is the point?
<Regenaxer> Science?
<Regenaxer> If you accept logic and observation as true, science is true
<Regenaxer> otherwise not
<Regenaxer> easy
<beneroth> doesn't matter
freemint has quit [Ping timeout: 252 seconds]
freemint has joined #picolisp
<freemint> i reflected a little more why i wrote that code, readability was not the reason actually it was just an impromptu excuse. the real reason was Unwissenheit. I was not aware that i could just check for the cdr
<beneroth> freemint, yay, we know. it's always the case, I observed the same with myself in the past :)
<beneroth> good reflection
<freemint> also the parts of your discussion so far brought to an unrelated topic which is highly relevant
<beneroth> hehe
<beneroth> Regenaxer, the essay is about the point that not all wrongs are equal, and that this matters.
<beneroth> if you want to sideline observation as whole, you can do it. you reach assassins top tier philosophy: nothing is true, everything is allowed.
<beneroth> this is both a powerful but a very dangerous insight.
<freemint> it is from a clinical psychologist and "pop-philosopher" (derogatory-ly said but i think he is actually a very good guy)
<beneroth> you started listening/reading Peterson or what? :)
<freemint> you know him too? I've been following him for some time
<beneroth> yeah, I think he is pretty right on many things.
freeemint has quit [Ping timeout: 268 seconds]
<freemint> Regenaxer i found a fitting word our linguistic discussion https://m.dict.cc/englisch-deutsch/proper.html
andyjpb has joined #picolisp
<freemint> The logos transforms chaos in to being by truthful speech. I translate that such in this case:
andyjpb has quit [Client Quit]
<beneroth> freemint, with Peterson, and well everyone: make sure to question them too. they are wrong on some things too, even extremely wrong sometimes. on the other side, even people who say a lot stupid/wrong stuff sometimes have something important to say, try not to completely ignore them.
<freemint> The true and perfect programmer creates functioning and "living" (as opposed to "crippled, dead born, obese, undead") programs by speaking truthfully (not lying what you want from the program and being aware what you actually want)
orivej has quit [Ping timeout: 252 seconds]
<beneroth> e.g. Petersons daughter is spreading a pretty weird diet: only eating beef (rindfleisch) and drinking fruit juice. Peterson also adopted that diet himself. The daughter has some very nasty gene defects leading to all sort of health problems, and apparently this diet helped her. but spreading this seems dangerous, as it is pretty clear that such a diet leads to very unhealthy malnutrition problems at last after a few years.
<beneroth> freemint, T, good wording. that is the purpose of picolisp style.
<beneroth> the point about being yourself aware what you actually want is a pretty big one.
<freemint> beneroth the analogy goes way deeper.
<freemint> *ideal*
<Regenaxer> beneroth, "not all wrongs are equal, and that this matters" I never doubted
<freemint> *perfect*
<Regenaxer> I just said there is nothig absolute whatever
<beneroth> Regenaxer, agreed, but there are different degrees, and differencing them is very important.
<Regenaxer> right
<freemint> That is an absolute statement too but i agree mostly .
<beneroth> else you end up in the "everything is untrue, everything is allowed", which is also a kind of optimistic-nihilism
<Regenaxer> *absolutely* true ;)
<beneroth> the alternative to assuming that there is some kind of right/wrong/system is the full freedom to go full sociopath.
<beneroth> you should read Robert Anton Wilson eventually :) though it might be to weird and confusing for you :)
<Regenaxer> haha, yeah
<Regenaxer> Why confusing?
<freemint> my caveat with all things are "nothing absolutely true" is. Our mental resources are limited and it (as shown by evolution (i can elaborate on that)) is a better strategy to act like if certain things are universally true then acting like you doubt all things$
<beneroth> it heavily makes use of the james-joyce-style of changing perspective/context/story-line mid-sentence, mixes conspiracy theories, real conspiracies, science, history, occultism, economy, religion, fantasay and quantum mechanics together :)
<Regenaxer> freemint, absolutely agreed
<Regenaxer> beneroth, yes, confusing
<Regenaxer> but in line with me that everything is relative
<beneroth> well now I speak about Illuminatus! trilogy, written by Wilson and Robert Shea. There are more books from Wilson alone which goes into philosophy, occultism. he kinda was busy with researching the nature of the human mind all his life.
<freemint> what does the line separate and which side is which
<Regenaxer> any truth is true in its right context
<beneroth> Regenaxer, absolutely
<beneroth> freemint, yeah, that was my initial point! thank you :)
<freemint> question: in what context is "I am false" true?
<Regenaxer> In another logic
<beneroth> just imagine that neuro-science finally proves that criminals could not decided otherwise, that free will is an illusion - we would need to keep that illusion and pretend free will to be a real thing, else our whole rule of law and society systems fall apart.
<Regenaxer> We cannot assume that the rules of logic are absolute
<freemint> this is a very blurry answer so blurry that i am not sure if you sharpen it that there is anything at all.
<Regenaxer> Probably other universes exist, with other logic systems
<Regenaxer> The human logic is a product of the human brain
<Regenaxer> it does not exist outside the brain
<freemint> Regenaxer how a PicoLisp look inside that other universe?
<freemint> how would
<Regenaxer> good question! I would not understand it at all
<beneroth> as we cannot tell or experience/observe those alternative states, they are completely meaningless (beside mental masturbation)
<Regenaxer> Humans assume that their logic is universal, because they cannot grasp another one
<Regenaxer> but you see the limits
<Regenaxer> borders
<Regenaxer> You get at borders with logic everywher
<Regenaxer> e
<beneroth> grasp another one = detect another one. not the same.
<Regenaxer> Gödel
<freemint> I doubt that because you wrote a PicoLisp and he wrote a PicoLisp and there maybe an universal essence of beauty carrying over that would help you to understand.
<beneroth> we haven't fully grasped our logic and "our universe" yet-
<Regenaxer> The great questions, quantum physics etc
<Regenaxer> What was before time?
<Regenaxer> Logic cannot map them
<beneroth> the question is meaningless, there exists no time before time by definition :)
<beneroth> T
<Regenaxer> beneroth, yes, we cannot
<Regenaxer> will never
<beneroth> T
<Regenaxer> meaningless in our logic, yes
<Regenaxer> But there must be more
<Regenaxer> To explain what we percieve
<beneroth> things that don't affect us and that we cannot affect are meaningless/mental masturbation to think about.
<freemint> must there? i am curious why you think why.
<Regenaxer> An insect is affected by the climate change, though its logic cannot grasp it
<Regenaxer> it doesn't exist in its universe
<freemint> beneroth but anything that you think about affects you. Possibly it corrupts possibly it improves you.
<beneroth> same for humans as of yet. the somalia pirates are likely one consequence of the ongoing climate change.
<beneroth> freemint, the act of thinking is not the same as the content of that thinking :)
<beneroth> I see your point, good thinking :)
<beneroth> bbl
<Regenaxer> The insect is not aware of our logic, so we are of higher logics
<Regenaxer> see you!
<Regenaxer> We simply cannot grasp them
<Regenaxer> There may be brains capable of them, but we cannot know
<Regenaxer> We just see the borders, not what is beyond
<freemint> I said that the truthful speech as good code analogy goes further. would be interested?
<Regenaxer> I was away from time to time and did not read all
<Regenaxer> What do you mean?
<Regenaxer> speech as formal system?
<freemint> The logos transforms chaos in to being by truthful speech. I translate that such in this case:
<freemint> The true and perfect programmer creates functioning and "living" (as opposed to "crippled, dead born, obese, undead") programs by speaking truthfully (not lying what you want from the program and being aware what you actually want)
<Regenaxer> agreed
<Regenaxer> Here we stay inside human logic
<Regenaxer> And programming is a kind of speech
<freemint> the question is asked myself is: Why do some programming language encourage lying and other not?
<Regenaxer> truth is absolute here
<Regenaxer> Lying in which way?
<Regenaxer> or how do they encourage?
<freemint> you want to check the length of list to be larger than one versus you do not want check whether a second element exists
<freemint> (as example for a lie)
<Regenaxer> it is not a lie
<Regenaxer> It is a consequence
<freemint> It is a thing i "say" right?
<Regenaxer> if the second element does not exist, you know that the length is 1
<freemint> It is a thing that is wrong.
<Regenaxer> yes, but it is true, not a lie
<freemint> And it is a thing that corrupts my future ability to programm (in small way)
<Regenaxer> Nope
<Regenaxer> you are free
<Regenaxer> free to choose the best way
<freemint> But i am shaped by my past decision and habits
<Regenaxer> if they are logically equivalent, both are true
<freemint> somewhat atleast
<Regenaxer> yes, shaped in a good way
<Regenaxer> you learned
<Regenaxer> In the example above, you don't even want the length
<freemint> Regenaxer your statement is undeniably right but it misses my point. Could you go with my definition of lie for a bit?
<Regenaxer> You want to say that only 1 exists
<Regenaxer> there is no length
<Regenaxer> no, because there is no un-truth involved
<Regenaxer> you never lied
<freemint> T but i think i got something interesting to say that depends on that formulation
<Regenaxer> What if you define a function?
<Regenaxer> length=1
<Regenaxer> (de length=1 (L) (and L (not (cdr L]
<Regenaxer> Point solved! :)
<Regenaxer> I would of course prefer (de len1 (L) ... ;)
<freemint> I am trying to tell you some very recent and deep thought i had. But since it is brand new it depends on using an imperfect language.
<Regenaxer> or 'has1'
<Regenaxer> hmm, ok, elaborate more
<freemint> If you are not willing to listen to me in my terminology it is fine but ...
<Regenaxer> Your terms are not well-defined
<freemint> ok let's agree on some definitions:
<freemint> (for the moment)
<Regenaxer> ok
<freemint> speech is truthful if and only if it is what i really want/ought to say
<Regenaxer> no
<Regenaxer> want does not imply truth
<freemint> to bad then i can not explain it to you now
<Regenaxer> You mean "useful" instead of "truthful" perhaps?
<Regenaxer> speech is useful ...
<freemint> stronger than useful, more like the most useful
<Regenaxer> ok, got it
<Regenaxer> accurate?
<freemint> works
<Regenaxer> ok, accurate speech is needed to explain things
<Regenaxer> So "only 1 element" is more accurate than "length is 1"
<Regenaxer> I feel
<Regenaxer> length is irrelevant
<Regenaxer> it is an attribute of the list
<Regenaxer> you want to say that there is only 1 thing
<Regenaxer> so no CDR
<freemint> yes
<Regenaxer> qued
<Regenaxer> (not (cdr L)) is thus more accurate then (=1 (length L))
<Regenaxer> "there is no second one"
<freemint> exactly my question was: Why do some languages say things not very accurately, so much so that you actively have to trick the€ into doing your bidding?
<freemint> *make you say thinds
<Regenaxer> understand
<Regenaxer> yep
<Regenaxer> They cannot express it better
<freemint> My idea is that also a language "can lie" to you
<Regenaxer> hmm, this is what I would not say
<Regenaxer> lie is the wrong term in my view
<Regenaxer> not "lie", but express it in a different, perhaps confusing way
<Regenaxer> eg. pil cannot express things like complex numbers
<freemint> A JIT compiler lies to you since it makes you think everything is interpreted when in fact it is compiled
<Regenaxer> or even just floats
<freemint> does that make sense?
<Regenaxer> right, this is a kind of lie
<Regenaxer> mimicking something else
<Regenaxer> Parallelism is such a lie then
<Regenaxer> on a single-core at least
<freemint> a C++ compiler lies to you about objects by hiding what it is actually doing (tens of constructor types)
<Regenaxer> here I find "lie" too strong
<Regenaxer> It gives an abstraction
<freemint> i have not found a better word for that discussion
<freemint> (as of now)
<Regenaxer> is an abstraction a lie?
<Regenaxer> mental model?
<freemint> a good question
<Regenaxer> "lie" is too negative. It must not be bad
<freemint> mhh then let's use foo instead
<Regenaxer> But the whole reality is a lie
<Regenaxer> empty space
<Regenaxer> We just built a mental model of things which are really just empty space with some fields whirling around
<Regenaxer> All is a lie, we are lying to ourselves
<Regenaxer> We assume for the moment that 2 processes run at the same time
<freemint> when you rank languages from foo to accurate about what they are doing.Picolisp would be at the accurate end of the list
<Regenaxer> but in fact they run alternatively
<Regenaxer> Well, pil also makes mental models, but you can dig into them
<freemint> The only place where it is not honest about what it is doing is with gc.
<Regenaxer> right
<Regenaxer> you mean it promises infinite memory
<freemint> and it hides the gc
<freemint> and that you stop executing
<Regenaxer> Not completey
<Regenaxer> you can (gc)
<Regenaxer> Stops, yes
<Regenaxer> but stops also after time slice
<Regenaxer> OS scheduler
<freemint> But different picolisp implementation are differently accurate about what they are doing, Java implementation is way more foo, Emu is less of foo and pil64 is very accurate
<Regenaxer> T
<freemint> (other than that pilassmebly is not executable from the language directly ... ignore that)
alexshendi has joined #picolisp
<freemint> could Java impl be more foo that Emu, because the underlying substrait, namely Java being more foo than C being more foo than assembly?
<Regenaxer> correct
<freemint> i think that hints at something bigger about programming languages.
<Regenaxer> It is language in general
<Regenaxer> Humans make words for concepts to hide internal complexity
<freemint> you should not foo the language about what you want to do and the language should not foo you about what it actually does. and if all foo's and conflicts would be removed programs would run way better and programming would be less of a pain.
<freemint> and resulting conflicts
<Regenaxer> Not sure, you need abstractions of low-level concepts. But not too much
<freemint> I would say Java foo's you about their objects but PicoLisp does less so.
<Regenaxer> Java abstracts them, by not documenting them on the language level
<Regenaxer> They want to keep implementators more flexible
<freemint> Objects in picolisp are cells which you can access and understand
<Regenaxer> pil documents them, and wants the programmer to use them fully
<freemint> yeah but they could have allowed the programmer to interface the implementation in a sensible way, but the implementation is just hidden
<Regenaxer> More responsibility on side of programmer
<Regenaxer> yes
<Regenaxer> they want to support the lang, not the user
<freemint> This leads to theological question what is the most accurate program we mortals can work with.
<Regenaxer> the lang implementor has more freedom in Java
<freemint> *language
<Regenaxer> and the programmer less power
<Regenaxer> Depends on the individual mortal
<freemint> Ok i think i got an idea ... but one would need to test it out
<freemint> an idea what an most accurate language would look like ... or atleast a core property of it
<Regenaxer> Turing machine? Brainfuck?
<freemint> no ...
<freemint> Abstractions are proper
<freemint> And you need a chain of abstractions to get something meaningful in a few lines.
<Regenaxer> The trick is to find the optimal set of abstractions
<freemint> But each abstractions and intermediate representations should be part of the language in so far as that all details off all levels are exposed in highest abstracted language
<Regenaxer> right, that's what PicoLisp tries to do
<Regenaxer> OK, I'm off for a shower
<Regenaxer> bbl
<freemint> If your code gets translated to pilASM, the pilASM translation should be accessible and modifiable by a high-level lisp Programm before it is translated into machine assembly, which then again should be accessible before translation into words executed, which again should be exposed to high level before that are put in a place where they are executed by the processor
<freemint> (i know that code does not get translated into pilASM)
<freemint> (oh and the translators would be available in the high-level language but executed as assembly
<freemint> (because of a speed))
<freemint> to summarize translations and abstractions should not hide results or make you unable to modify intermediate steps or intermediate results
<freemint> for all code that is executed there should be a high level representation even if that is never executed at high level.
<freemint> For example there should be a high level representation of make which actually translates does to the make we execute in arm
<freemint> not all mappings are possible of course. sometime they require a programmer
orivej has joined #picolisp
<freemint> close paren
freeemint has joined #picolisp
freemint has quit [Ping timeout: 240 seconds]
freeemint has quit [Ping timeout: 240 seconds]
freemint has joined #picolisp
freeemint has joined #picolisp
freemint has quit [Ping timeout: 268 seconds]
freemint has joined #picolisp
freeemint has quit [Ping timeout: 268 seconds]
alexshendi has quit [Read error: Connection reset by peer]
<Regenaxer> ret
<freemint> afk
<Regenaxer> See you!
<Regenaxer> I retire too
<beneroth> back
<beneroth> exciting and fun discussion. made me laugh and be happy :)
<Regenaxer> yess :)
freeemint has joined #picolisp
<beneroth> freemint, what you describe at the end is what picolisp attempts to be. and its the best attempt on that I ever saw, better then I could imagine before.
freemint has quit [Ping timeout: 272 seconds]
<beneroth> for purity sake you might want get rid of pilASM as much as possible, let as much as possible be implemented on lisp level.
<beneroth> and thats the big absolut epic thing about lisp in general: the core of lisp is pretty small and simple. everything else can be built with very few simple basic instructions
alexshendi has joined #picolisp
freeemint has quit [*.net *.split]
grp has quit [*.net *.split]
grp has joined #picolisp
freemint has joined #picolisp
freemint has quit [Ping timeout: 252 seconds]
freemint has joined #picolisp
alexshendi has quit [Ping timeout: 276 seconds]
<freemint> beneroth i agree but we can guess at what could be better
<freemint> Picolisp is really great only my exposure to Picolisp and Regenaxer made me to think that
<freemint> The idea of putting a vision is out
<freemint> *my reason for putting an vision out there is that i can be ripped a part i can inspect the fault lines after i stop crying because sky in the caste is destroyed
<beneroth> aye
<beneroth> same reason I put statements out here (or other chats)
xkapastel has quit [Quit: Connection closed for inactivity]
xkapastel has joined #picolisp
freemint has quit [Ping timeout: 252 seconds]
alexshendi has joined #picolisp
freemint has joined #picolisp
<alexshendi> Hi, freemint
<freemint> Hi
<freemint> what is?
<beneroth> hey alexshendi :)
<alexshendi> Nothing particular, just wanted to say hi.
<alexshendi> Hi, beneroth
<Regenaxer> Hi alexshendi!
<Regenaxer> (also just hi ;)
<beneroth> alexshendi, how are you doing? happy on track with your plans?
<freemint> Hi back then
<alexshendi> Hi Regenaxer
<Regenaxer> :)
<alexshendi> beneroth: No, I'm rather behind what I wanted to accomplish. As usual :(
<Regenaxer> I'm officially already retired for today
<beneroth> Regenaxer, well earned
<freemint> well earned
<Regenaxer> Thanks! :)
<freemint> alexshendi we all are once we start to do meaningful things
<alexshendi> Oh it's past ten already...
<beneroth> alexshendi, are you sure that this is not just a subjective feeling, personal bias because you don't notice a stark contrast as you are too close to notice the change?
<beneroth> I have the same feeling about my own progress, but I suspect its mostly this personal bias...
<beneroth> (or so I hope xD )
<alexshendi> beneroth, of course this is a subjective feeling. What does not help is that I currently have a new job and have to drive ~1 hour each way to get to it.
<alexshendi> I also am looking for new place to live and am not making much progress there either.
<beneroth> I see. yeah that's exhausting.
<beneroth> I wish you all the best! you will surely have it better soonish :)
<freemint> good luck
<alexshendi> Thank you
<freemint> Good night
ubLIX has joined #picolisp
freemint has quit [Quit: Yaaic - Yet another Android IRC client - http://www.yaaic.org]
grp has quit [Quit: box shutting down...]