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
nonlinear has quit [Ping timeout: 240 seconds]
nonlinear has joined #picolisp
orivej has quit [Ping timeout: 256 seconds]
orivej has joined #picolisp
orivej has quit [Ping timeout: 256 seconds]
karswell_ has quit [Read error: No route to host]
<clacke[m]> Yes, that armv7 message was resolved on the channel. :-)
<clacke[m]> Nice to see that tags work for finding kindred spirits!
<clacke[m]> serendipity in action
<clacke[m]> would you look at that, it was aw- who made them :-) https://github.com/aw/picolisp-nanomsg
<Regenaxer> Ah, yes, now I faintly remember ;)
<Regenaxer> good morning btw!
orivej has joined #picolisp
<clacke[m]> not surprised in the least
<clacke[m]> good afternoon!
<Regenaxer> :)
<clacke[m]> the weather is humid, visibility is up to 1 km instead of yesterday's 100 m, and I'm at home hacking nix expressions and nursing a boy with a fever. although he's taking care of himself and watching "Boss Baby" on the tablet.
<clacke[m]> Yesterday was warm enough that I had to close the windows and turn on the A/C to be able to get my brain going.
<clacke[m]> Today is nice and cool.
<Regenaxer> Where are you? Far east?
<clacke[m]> HK
<Regenaxer> ah
<clacke[m]> Oh yeah, I haven't mentioned -- I got a job wrangling racket and nix. All free software. Best place I've been in my professional life yet.
<Regenaxer> Congrats! :)
<clacke[m]> my employer lives a few towers away. We know each other thanks to a talk on guix that I gave January last year. So give talks, people!
<Regenaxer> OK, yeah, should do ;)
<Regenaxer> Here we have mist and slightly below zero
<Regenaxer> will go up till 10 C today
<Regenaxer> Yesterday was sunny
<Regenaxer> Getting spring slowly
<clacke[m]> We had the coldest winter I've yet experienced, it went down all the way to +5.
<Regenaxer> ox
<Regenaxer> oh
<clacke[m]> (yet experience here)
<Regenaxer> Here too the coldest February since 30 years
<Regenaxer> but Dec - Jan were far too warm
<clacke[m]> then we had 20-25 degrees and then it went down to 10 again. But by now I think spring/summer has been secured.
<clacke[m]> Yeah, my friend went to sunny Spain to escape Sweden, and the day after he arrived, it started snowing.
<Regenaxer> Yep, Spain too
<clacke[m]> In that one day, he had already started bragging about how nice the weather was :-D
<Regenaxer> hehe
<clacke[m]> So anyway, I'm parenthetically involved at last. One of these years, maybe it'll even be picolisp!
<Regenaxer> good :)
<Regenaxer> Racket is a Scheme, right?
alexshendi has quit [Ping timeout: 248 seconds]
shpx has joined #picolisp
rob_w has joined #picolisp
<beneroth> Good morning clacke[m], Regenaxer :D
<Regenaxer> Good morning beneroth
<clacke[m]> hallo beneroth
<beneroth> thanks for the mastodon background explaining, clacke[m]
<clacke[m]> sure thing
<clacke[m]> I'm passionate for getting things right ;-)
<clacke[m]> One Of These Days we are several people who want to collate a History of the Fediverse, setting the record of the last decade straight once and for all
<clacke[m]> in the meantime, https://robek.world/featured/what-is-gnu-social-and-is-mastodon-social-a-twitter-clone/ is a memey, rowdy but mostly correct overview :-)
<beneroth> yay thanks
<beneroth> I always appreciate corrections of my hear-say knowledge :)
<clacke[m]> rw has a particular writing style that may not be right for everyone
<clacke[m]> I figured. As do I
orivej has quit [Ping timeout: 255 seconds]
<beneroth> I can see what you mean. Its funny unless one is in a bad mood I guess.
<beneroth> (rw's writing style)
<clacke[m]> I'm a big fan of the observation that the fastest way to get information is not to ask questions on the internet, it's to be wrong on the internet.
<beneroth> T
<beneroth> I like very much the diversity we have here in the channel
<clacke[m]> yeah, you have to be not too tired or maybe just the right type of tired, and maybe a little tuned into the zany side
<beneroth> so.. a little drunk, eh? xD
<clacke[m]> probably helps :-)
<clacke[m]> I'm drunk on life. Sometimes combined with actually drunk.
<beneroth> Same. I get drunk from funny thoughts and good reads, too
<beneroth> And ideas ofc, but who doesn't.
<clacke[m]> I think this channel is blessed in that there is nowhere else to go to talk pico. A small community makes keeping the peace essential and leaves little room for tantrums. It also makes it a small arena to gain anything from displays of moral superiority.
<clacke[m]> Basically we're here before it got cool and sold out.
<clacke[m]> I'm impressed with the racket community too. It's much bigger, but it's also very friendly and helpful still. Even the founder and main developer are hands-on in the channel and on the mailing list. First pull request I got was from the founder Matthias Felleisen fixing my code style.
<clacke[m]> professor in programming language theory going in to polish a hacky proof-of-concept for an obscure intersection of interests
<beneroth> Yeah, though I think its not only the size but also that pico acts a filter - people need to be attracted to it, so its likely a filter for curiosity, stubbornness and hopefully some humbleness
<beneroth> interesting
<clacke[m]> agree
<beneroth> I have the hope that the filter influence of pico does not fall away with growth. though probably it restricts growth.
<clacke[m]> it's a personal choice whether one considers lack of growth an issue
<clacke[m]> as the haskellers say
<clacke[m]> avoid succes at all cost
<beneroth> well I don't think avoiding success is a very successful strategy - keeping quality and reason is then also just a side-effect, no? :P
<beneroth> pil: keep it simple above all & radically executed.
<clacke[m]> (Simon PJ has clarified that the proper parsing is "avoid (success at all cost)" rather than "(avoid success) at all cost")
<beneroth> ah
<beneroth> then I agree
<beneroth> my main turnoff from haskell is the syntax
<clacke[m]> well I like Python
<clacke[m]> and I like about ruby that you can leave out the parens a lot
<clacke[m]> you can write ruby like lisp too
<clacke[m]> although that has pitfalls. there is no difference between (method) and method. If it has zero arity it will execute
<clacke[m]> haven't used haskell enough to know what I think, but I expect I would like it. I'm rather enjoying nix right now, which is a hodgepodge of ideas but with an ML'y streak.
<clacke[m]> nix has currying as the only way to receive multiple scalars, for example
<beneroth> I guess I would like haskell too. if strong typing, then do it correctly as haskell, then it gives benefits (unlike mainstream languages, mainly introducing the disadvantages without much benefits).
<clacke[m]> although people often send a dictionary instead
<clacke[m]> yes
<clacke[m]> do dynamic or do crazy sophisticated static
<clacke[m]> inbetween is just horror and holes
<clacke[m]> dynamic plus gradual typing may be worthwhile though. racket people are doing it and they have some interesting stories on performance
<beneroth> if you compile. what a weird idea ^^
<beneroth> ;)
<clacke[m]> basically you get a hit when you switch paradigm, so if you do 20% static you lose perf, but then you gain as you add static (depending on where you add it)
<clacke[m]> ;-)
<clacke[m]> interpreted static, there's an idea
<clacke[m]> I guess ML and Haskell REPLs do that
<clacke[m]> and those C REPLs I've heard abut long ago
<beneroth> ah, basically just-in-time-compilation? or compile to intermediate byte-code - this are java and .net doing. kinda messy, I think,
<clacke[m]> I think PiL is more and more unique in not having bytecode compilation
<clacke[m]> all the cool kids are doing it
<freemint> beneroth, what do you mean by diversity here in the channel
alexshendi has joined #picolisp
<beneroth> freemint, the backgrounds (professional, cultural, geographical) and the interests/fields of activity of the participants of this channel are very broad and varying
<beneroth> different experts (in the good sense of the word) and points of views come up here, I like that.
<freemint> beneroth i might be baised but the audience seems mostly programmers (obviously), western, europaen
<clacke[m]> yeah but within that circle :-)
<beneroth> wildly different programmers. also many non-european people in the community.
<beneroth> algorithms, networking, statistics/big data, business applications/ERP, specialised back-ends, etc etc.
<beneroth> also many people with different programming languages.
<beneroth> different communities they're active in (e.g. mastodon)
<clacke[m]> we've got cess11_ who is pretty deep in Swedish feminism and active in politics, and then we've got beneroth and Regenaxer who are rather more ... cautious in attributing causes and prescribing political solutions.
<clacke[m]> and we have both the parenthetically-enthusiastic and the cautiously parenthesis-curious
<beneroth> what else to wish from a programming IRC channel? ;)
<beneroth> yeah, even in non-technical matters we're rather diverse (for an IRC channel), I guess
<clacke[m]> as well as fully-dynamic-and-interpreted-all-the-way-baby vs yeah-interpreted-has-its-place people
<beneroth> while having enough in common to be able to communicate with each other :)
<clacke[m]> and even omg-why-aint-you-compiling huy dropping in once in a while, riling everybody up :-D
<clacke[m]> guy*
<beneroth> curiosity, stubbornness, overly proud of largely not following fashions, optimists with some masochism thrown in (= long time programmers I say :P)
<clacke[m]> yeah gotta have at least some interest in minimalism to drop by here
<clacke[m]> which implies like 90% of what you just said :-)
<beneroth> aye
<beneroth> and most times very nice and friendly (unless poked strongly)
<beneroth> I visited #python once. 3 flamewars going on at the same time, while a few people tried to ask questions in between
aw- has joined #picolisp
<beneroth> hi aw-
<beneroth> :)
<yunfan> can picolisp run on embeded device like esp8266?
<yunfan> or stm32f serial
<Regenaxer> yunfan, yes
<Regenaxer> I have it here on STM32
<Regenaxer> miniPicoLisp
joebo has quit [Ping timeout: 260 seconds]
<Regenaxer> also, search for Mizar PicoLisp
shpx has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
shpx has joined #picolisp
<beneroth> [security]: LTE protocoll has security holes (mobile network): http://www.zdnet.com/article/new-lte-attacks-eavesdrop-on-messages-track-locations-spoof-alerts/
<beneroth> Who is using mobile text messages for 2FA? e.g. in eBanking? :P
mtsd has joined #picolisp
<yunfan> Regenaxer: so what about esp8266?
<aw-> hi beneroth
<Regenaxer> I don't know
<yunfan> beneroth: in china, each important bank accounting operation would ask you to input verify code sent via mobile text message
<aw-> yunfan: no picolisp on esp8266
<yunfan> also including other 2fa steps
<yunfan> aw-: is it possible for such device to run picolisp?
<yunfan> i mean the resources it had
<aw-> yunfan: i've only seen esplisp: https://github.com/yesco/esp-lisp
joebo has joined #picolisp
<aw-> yunfan: not that i know of, unless you modify miniPicoLisp
<Regenaxer> mini needs about 100 KiB of RAM
<Regenaxer> at least
<aw-> yeah there's too many constraints on the ESP
<aw-> same for Arduino
<yunfan> Regenaxer: that's too much campared to forth
<yunfan> ok, i will keep on using punnyforth on esp devices
<Regenaxer> yes
<Regenaxer> Lisp needs a lot more resources than Forth
<yunfan> which of you really use picolisp's web support to build a website?
alexshendi has quit [Ping timeout: 240 seconds]
* beneroth uses picolisp for websites and custom web applications, though mainly his own system (form.l usage planned for one project right now)
<yunfan> also if picolisp is so efficient, are there any library like clojure's datomic ?
<Regenaxer> yunfan, search for PicoLisp on https://shodan.io
<yunfan> i have some side project ideas, and i want to try some different language other than my working lang => python
<Regenaxer> yes, try it :)
<beneroth> yunfan, no distributed database in that sense in picolisp as of now, though one can build distributed systems with master/slave duplication and messaging between different instances/write-masters
<yunfan> Regenaxer: cool, found lots of sites :d
<beneroth> yunfan, I think the datomic principles could be added to pilDB comparably easy - though no little effort ;)
<yunfan> beneroth: so which storage solution do you recommend?
<Regenaxer> What are your requirements?
<yunfan> actually i need a git like store system, was considering using a small language inside the storeage side
<Regenaxer> I must confess that I did not look at datomic
<beneroth> I use picolisp db, set up with regular snapshots and a live-mirror for fallback. no distributed setups in use right now (not required)
<Regenaxer> I use a heavily distributes setup
<yunfan> Regenaxer: imaging i want to store data like store code in a git repo, i need to got all version , and could easilly checkout
<Regenaxer> also involving mobile devices temporarily offline
<yunfan> Regenaxer: and i dont need branch support
<beneroth> yunfan, so you want to deduplicate binary data similar to what git does with text files (using lines as a chunk)
<yunfan> beneroth: yes like that, but i am worried about the efficiency problem when i need to check some version
<beneroth> yunfan, why not just using seafile? seafile.com
<yunfan> its like redis's aof support, you store all the modification in timeline
<beneroth> can recommend it
<yunfan> and when you need some version, you replay the events from begining
<yunfan> maybe like movie format, you need to set up some key snapshot :D
<yunfan> beneroth: cause i want to make my own :D
<beneroth> Regenaxer, datomic principle: single (or low number of somehow coordinated) write masters databases who do nothing than generate a transaction ID. clients always get first a transaction ID, then submit their data/changes to one/multiple datomic instances which all mirror each other. in queries the transaction IDs are again used to make sure that the instance you read from got that changes your worldview is based on.
<beneroth> (correct me yunfan)
<beneroth> so the transaction coordinater (ID generator) is a single point of failure, but being reduced to its easy single task it is easy to kept alive. all other nodes may appear/drop out of the database network at any time.
<Regenaxer> A redundant setup?
<beneroth> aye, everything redundant. that is basically the meaning of "distributed" in mainstream usage: everything redundant, so the machines can be available/unavailable (network problems) and it still works, ideally.
<Regenaxer> I see
<beneroth> in practice you need some non-redundant master to tell what the real truth is (as in datomic), or a number of instances consent by majority to what the truth is = can result in multiple truths when the network of databases gets split up into multiple local networks = how to merge again?
<aw-> oh haha some of my apps appear in Shodan
<Regenaxer> What are "transaction IDs" needed for?
<yunfan> also there's a project named pumpkindb which use a forth like language to handle everything
<beneroth> aw-, yeah shodan finds us
<aw-> well.. it's all open source so I don't really care
<beneroth> Regenaxer, to order transactions, so you can say what is the truth at a given time (= after given transaction id)
<yunfan> aw- i could only saw in one page
<beneroth> Regenaxer, so even when multiple writes happen at the same time in parallel, each as a transaction ID which gives them a absolute order
<aw-> yunfan: just make an account there, it's not very difficult
<Regenaxer> ok
<yunfan> aw-: i am worry about they analyze my searching.
<beneroth> Regenaxer, you can also query older (historic) database states by basing your query on an older transaction ID, that way you don't have to wait until your instance got the newest writes
<yunfan> beneroth: oh, i never know such features. could they provide date info of sepcific transaction ID?
<yunfan> beneroth: oh, i never know such features. could they provide date info of sepcific transaction ID?
<beneroth> dunno, I never worked with it, I only read stuff xD
<beneroth> damn, I thought you to be the expert :D
<beneroth> I can find some links if you are interested
<yunfan> beneroth: no i am totally a newbie
<beneroth> Regenaxer, one does this distribution to gain load balancing / high availability in reading, or high availability / performance in writing (e.g. log analysis/collection) - or because fashion
<yunfan> i just happened to have a zealot time of clojure , so i got knew datomic
<beneroth> ah
<beneroth> Regenaxer, or people just use it because "it's the standard database for this language - and the best anyway (or so they say)" ;)
<Regenaxer> beneroth, I think a similar behavior could be set up with pil DBs
<beneroth> (not that we are any different)
<beneroth> Regenaxer, exactly
<beneroth> on top of it
<Regenaxer> yeah
<aw-> yunfan: yes they will
<beneroth> aw-, do they call the police if I look like an botnet builder looking for targets? which police? :P
<aw-> haha who knows
<yunfan> aw-: my daily job is analyzing people from datas, so i am very sensortive of being analyzing
<beneroth> Regenaxer, yunfan I see the value in such setups for when they're really needed - but I guess its often overused. doing this big setups for just everything (because its so easy and safe!!) either turns out to be more problematic to maintain in practice - or even if not, its a waste of energy and resources I would say.
<Regenaxer> indeed
<yunfan> beneroth: who cares of such waste, you might heard of chunk moore's talking about operation system :D
<beneroth> plus dependency on the big cloud vendors (there are not so many)
<aw-> yunfan: don't worry, we're all paranoid here
<yunfan> which is a biggest fraut according to him
<beneroth> if we would lightly trust stuff, we would not have searched for picolisp xD
<beneroth> yunfan, well even if one doesn't give a damn about elegance - energy costs and environment effects should not be so grossly ignored I think. plus a product with low requirements can be more widely/freely used.
<yunfan> beneroth: be careful, maybe the whole universe collapsed when you found the most elegance solution :D
<yunfan> turn out we live in a simulation universe of someone's lab
<beneroth> yunfan, apart from the distributed aspect (which you might not really need) the biggest puzzle in your plan is the "how to do chunking". in text you have lines delimited by linebreaks, and in code many lines are always the same, so good base to deduplicate. but in binary the question is much harder.
<beneroth> you have no delimiter.
<yunfan> beneroth: of course i need that in binary even for someone dont that care of waste
<beneroth> big chunk size is bad for small files, too small chunk size is bad when having many big files (or even a few with much history).
<yunfan> if you use line break, then you need to quote the data, which import another waste
<beneroth> and you want some way of hashing to determine when to stop chunking, because you would prefer that a small edit at the beginning of a file does not change all the chunks of the file.
<yunfan> beneroth: yes, i got to understand why fossile store all the change in sqlite
<beneroth> nah, I'm not talking about storing
<beneroth> I'm talking about indexing and deduplication
<yunfan> forget it, i will try redis's aof like solution
<yunfan> its a side project
<beneroth> just use seafile :P
<yunfan> no. it dont store files
<yunfan> you might misunderstand me
<yunfan> its like github, but store datas not files
<beneroth> define: datas
<yunfan> well , you had used redis ,right?
<beneroth> no
<yunfan> wow
<beneroth> I'm just reading about stuff, I'm not using much xD
<beneroth> I just try to find good ideas to have inspiration for the pilDB extensions I make
<yunfan> ok then have you every used berkeylydb or memcache?
<beneroth> nope
<yunfan> or any other key-value db?
<beneroth> memcache is just a ram caching afaik (and currently used for DDOS because standard installation has unprotected UDP access in the internet)
<beneroth> key-value model is too simple. I like schemas. I like graph.
<yunfan> yes, i just need to ensure you could understand my concept
<yunfan> ok, here we go
<yunfan> memcache's value is a chunk, so you give key, it return you the whole chunk
<yunfan> while redis support you to store different type of data in the value, and you might get from that partly
<beneroth> I'm working on a database (extray layer on top of pilDB) to do automatic schema migrations (up and down, on all or on selected records, whatever you want)
<beneroth> yeah
<yunfan> for example, when you have a rank of monthly programming language
<yunfan> you could save it in redis's list like store
<yunfan> and get the top 10 from it
<yunfan> you got that?
<beneroth> how do you get the top 10, without first fetching the whole list?
<beneroth> you store them as top 10 during writting?
<yunfan> beneroth: no, you could do that by some special data structure
<yunfan> like linked list,
<yunfan> but i think redis hasnt use it to implent list
<beneroth> well how to decide what the top 10 is? you need a schema for this, not just key value pairs.
<yunfan> beneroth: yes, so redis support many different data types
<beneroth> I understand your plan now as following: key-value store + history. which means you want to do deduplication to not store many times very similar data.
<yunfan> beneroth: for this rank problem, you have sorted set
<beneroth> got you
<yunfan> beneroth: yes and the value part need to support rich types like redis does
<yunfan> i dont want memecache'
<yunfan> for eg, i might store a tree of programming language revolution by year
<yunfan> and i could check them by a year
<yunfan> like 1990
<yunfan> 2000
<yunfan> its more like wiki i think
<beneroth> what I know about redis - pilDB supports all that data types and more. also its persistent but also has the memory caching feature if you just use a long-living application process.
<yunfan> except wiki store article while i want to store datas
<beneroth> ah ok. so no history of edits.
<beneroth> well what ware datas? binary blobs of varying lengths? or well-defined structured data?
<yunfan> well-defined sturctured data
<beneroth> so - just normal database stuff?
<yunfan> no need that complex
<yunfan> just redis like
<yunfan> list/dict/sorted set
<beneroth> 1) use whatever you know/like 2) try with pilDB and get support here (from Regenaxer, me, others)
<yunfan> ok
<yunfan> will try that
<yunfan> need to go home now, see you
<beneroth> about what amount of data are we talking? what number of concurrent users?
<beneroth> ok, go home well :) looking forward talking to you again :)
<yunfan> beneroth: huge, but i could partition them , dont worry about that
<Regenaxer> see you yunfan
<yunfan> i only want the single query could be in realtime
<beneroth> I see no reason why picolisp would not fit, unless you also want a high number of concurrent users or global high availability, which might be easer/faster achieved with other solutions
<beneroth> pilDB has the very nice feature of pilog - rule based queries. very powerful if you really need to do complex big queries
<cess11_> PilDB is similar to both Datomic and Redis, I'd say.
<cess11_> Perhaps not the same performance but one can get quite close to both the efficient in-RAM key-value store and Datalog-like clever DB-stuff.
<cess11_> I tried using Redis as backend from pil last summer, worked OK but I quickly decided it was easier for my use case to just keep it all in generic picolisp classes instead.
<beneroth> interesting, thanks for sharing your experience cess11_
<Regenaxer> yes, thanks!
alexshendi has joined #picolisp
shpx has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
shpx has joined #picolisp
orivej has joined #picolisp
mtsd has quit [Quit: Leaving]
aw- has quit [Quit: Leaving.]
alexshendi has quit [Ping timeout: 248 seconds]
shpx has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
rob_w has quit [Remote host closed the connection]
orivej has quit [Ping timeout: 256 seconds]
rob_w has joined #picolisp
orivej has joined #picolisp
mircea_popescu has joined #picolisp
<mircea_popescu> hello folks.
<beneroth> hi mircea_popescu
<beneroth> welcome
<beneroth> currently it's not our main time, so not so many people are active
freemint has quit [Ping timeout: 276 seconds]
<mircea_popescu> i got whitelogger's logs.
<mircea_popescu> clacke[m] i confess i first interpreted that as "a history of the last decade ~of lisp~, set the record straight" etc.
<mircea_popescu> twitter-bs, sadly not as interesting.
rob_w has quit [Read error: Connection reset by peer]
<beneroth> hehe
<beneroth> mircea_popescu, we like to discuss off-topic-stuff here sometimes
<mircea_popescu> re https://irclog.whitequark.org/picolisp/2018-03-06#21482442 and following, the WoT voice model seems to be working splendidly for #trilema in the same vein.
<Regenaxer> Hi beneroth, mircea_popescu
* mircea_popescu waves
<Regenaxer> :)
<Regenaxer> Actually, I'm already near to go to sleep ;)
<beneroth> good night Regenaxer :)
<Regenaxer> Good night! :)
<Regenaxer> afp
<beneroth> [IT Security]: Remote Code Execution in all versions of Exim mailserver: https://devco.re/blog/2018/03/06/exim-off-by-one-RCE-exploiting-CVE-2018-6789-en/
shpx has joined #picolisp