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
f8l has quit [Ping timeout: 240 seconds]
f8l has joined #picolisp
andyjpb has quit [Ping timeout: 250 seconds]
ubLIX has quit [Quit: ubLIX]
xkapastel has quit [Quit: Connection closed for inactivity]
xkapastel has joined #picolisp
<beneroth> Good morning
<Regenaxer> Good morning beneroth
<beneroth> Good morning Regenaxer :)
<Regenaxer> :)
<aw-> hi all
<aw-> beneroth: no info about arm64
<Regenaxer> Hi aw-
xkapastel has quit [Quit: Connection closed for inactivity]
<beneroth> aw-, good point. though why should it not apply to arm64, does arm has better stack protection on by default?
<beneroth> hm, I can't tell. they haven't tested on ARM it seems, aye.
<beneroth> aw-, your desktop/dev machine is the rocket?
<aw-> rock64
<aw-> arm64 cpu
<beneroth> Huawei wants to go into ARM servers I heard (as reaction to US blockade).
<aw-> unaffected by Spectre and Meltdown
<beneroth> even the newer spectre variants? no L3 cache or what?
<beneroth> any disadvantages/discomfort you have using the rock64?
<aw-> unaffected i think
<aw-> well.. rock64 is Linux
<aw-> before that i was using a Mac for ~10 years
<aw-> so.. it's different
<beneroth> well good for you. Linux is better for developer I think. Devs are just afraid to setup a linux I guess.
<aw-> yes
<aw-> working from Linux is a thousand times better than my Mac ever was
<aw-> since I do mostly dev/systems/network stuff
<aw-> but JavaScript is fucking slow as balls on the rock64
<aw-> it's unbelievably slow
<beneroth> thx for confirmation. I never worked on Mac as dev, only worked on Mac when I was in art school (graphic designer were/are on Mac mostly for historic reasons)
<beneroth> ok, that was were my question pointed at. slow js. makes sense.
<aw-> so i disable it by default in my browser, whitelist sites for JS, and i run very few addons in Firefox because those also slow down a lot
<beneroth> firefox stinks more and more :(
<aw-> yeah...
<aw-> desktop is super fast and responsive, everything works perfectly
<aw-> it's just.. web+js which is horrible
<beneroth> well, its horrible :D
<aw-> painful is a better word
<aw-> one tab with slow JS will freeze the entire browser
<aw-> sometimes for 10-15s
<beneroth> any ideas/recommendation for a arm64 server system? would the rock64 be suitable?
<aw-> and running developer tools is also insanely slow.. so doing web dev on here is also horrible
<aw-> (firefox developer tools)
<aw-> beneroth: yeah I have a ton of rock64s actually
<aw-> all for server stuff
<aw-> router/firewall/dns/dhcp/pxe/iscsi/backups etc..
<beneroth> backups? so you put some big disks on it?
<aw-> the problem is it has no expansion for PCIe devices, and it doesn't have onboard SATA... so you can't easily expand it as normal servers
<beneroth> ok
<aw-> yeah one big disk for backup over USB 3
<aw-> but a real "server" platform you can add PCIe HBA or PCIe SFP fiber optic cards etc for 10Ge.. can't do that with a tiny rock64
<beneroth> I'm setting up my company office (kinda the first one), and maybe I will change my dev setup and I definitely have to remake my little server (its still based on openVZ, running a bunch of containers, e.g. git server, seafile, proxy, internal apps, ...)
<aw-> also they are usually bigger and use more power
<aw-> yeah in that case a tiny rock64 is perfect for that
<aw-> max power usage is 75W, and no fan!
<beneroth> lxc on rock64 ?
<beneroth> good point!
<aw-> yes lots of people doing k8, docker, etc
<aw-> my setup is aimed at having a distributed "cluster" with multiple rock64, instead of one big power hungry server
<beneroth> ok, sounds like I should order some rock64
<aw-> try it, they are so inexpensive it's not much loss
<beneroth> how long did it take to be delivered? I guess they ship from US?
<aw-> and once it's setup, you can just run it headless: no monitor keyboard mouse
<beneroth> yeah I run currently a intel nuc that way
<aw-> hmmm.. in Japan we have a few distributors with large quantities in stock
<aw-> i can order one and get it in 2 days
<beneroth> nice boxes, those IntelNUCs
<beneroth> but well...intel :D
<aw-> didn't Intel discontinue the NUC?
<beneroth> ah nice
<aw-> also yes those are cool but they are also 100% closed
<beneroth> probably, dunno. I thought they just released a new version again?
<beneroth> T
<aw-> rock64 is 100% open source/ open hardware
<aw-> no closed firmware blobs
<aw-> unlike raspberrypi
<beneroth> at least in theory
<aw-> haha yeah
<beneroth> oh raspi has such stuff officially? how so?
<aw-> I also run a few NanoPi Neo2's also.. just as WiFi access points
<aw-> raspbi has a closed firmware blob.. i forget for which device.. maybe broadcom chip or something
<aw-> if you do mostly Linux-based work, you should work from a linux computer. It makes everything sooooo much simpler
<beneroth> I work from a linux computer for years now
<beneroth> still work on windows when I have to for customers, but then its their devices usually
<aw-> 10 years ago it was a bit of a pain you know? setting up wifi, Xwindows, hardware support was so-so... now you just boot from an sdcard and everything *just works*.. except when you want to do something different haha then you need some linux-hacker skills
<beneroth> I know. I started like 10 years ago. I remember when NTFS was read-only, no write access yet.
<aw-> oh good
<beneroth> and then I see Mac not having write on NTFS in 2018 and laugh.
<beneroth> printer setup works better on linux than windows for many years now, I found.
<aw-> beneroth: also avoid rockpro64 for now.. most people have hardware issues due to instability etc
<beneroth> (finding the right driver automatically vs. search half the internet for legacy printer driver... the printer is fine)
<beneroth> ok, thanks for the advice aw- ! much appreciated!
<aw-> haha yeah printers are well supported now
<beneroth> it got worse on windows with win8 (don't know about win10, but I cannot imagine that they include drivers in 10 which they kicked out in 8)
<beneroth> ah and rock64 is not vulnerable to spectre as it has indeed no L3 cache :)
<beneroth> so
<aw-> nice
<beneroth> there seems to be a reseller in germany: https://sha256systems.eu/pine64
<beneroth> very slow loading website
<aw-> hmmm
<aw-> loads fast without JS ;)
<aw-> dude hooly shit don't order from there
<aw-> 102 euro for the 4GB?
<aw-> that's DOUBLE the retail price, wtf
<beneroth> hehe, so I thought too
<aw-> it's USD $50 for 4GB model
<beneroth> the two big swiss computer parts traders don't have it :/
<aw-> :\
<beneroth> (well I might be able to talk one or the other into it, but unsure)
<aw-> check for Nanopi as well, they have many different models with various features
<aw-> those are very well supported
<beneroth> switzerland has usually better prices than EU, because we have often have better trade deals for electronics
<beneroth> ok, thanks!
<aw-> seems you can order from the official pine64 store as well
<beneroth> yeah should be possible
<aw-> not sure where they ship from.. maybe directly from China?
<beneroth> you're right, the chances that NSA steals the package and inserts some chips is the same
<aw-> ahahahahha
<aw-> your threat level is high
<beneroth> they did with cisco stuff. no idea why, with all the backdoors cisco has...
<beneroth> it isn't. only my awareness and sarcasm level.
<aw-> you can look at the board when you receive it, inspect for things which aren't on the published schematic
<aw-> beneroth: hahaha
<aw-> oh, I have Tor running on one of my rock64 as well
<beneroth> oh nice
<beneroth> that's also an idea, running a bridge. but even bridges can get your door kicked in by police these days :(
<aw-> you plan to use it for server stuff only?
<aw-> or also desktop?
<beneroth> probably mainly server. desktop would be nice, but I'm doing a lot web stuff for now.. so maybe not feasible yet.
<beneroth> probably I start by replacing the NUC
<aw-> right
<aw-> oh, I had one rock64 running LibreElec as well (kodi)
<aw-> i was running a nightly build, so it crashed occasionally, but it worked perfectly for audio and 1080p video
<aw-> video on here works better than on my aging Mac
<beneroth> nice
<aw-> got rid of LibreElec because i didn't want to dedicate a whole device just for that, it's wasteful
<beneroth> yeah another thing would be a "pilDB / pilApp in a box", e.g. ship pilApp (database mainly) on a hardware box.
<aw-> yeah that works too
<aw-> picolisp runs so well on arm64
<beneroth> the bottleneck for DB could the IO / usb be then, but well, usb3 should be more than enough.
<beneroth> I've gotta go
<beneroth> write more if you like to, will read in the evening
<beneroth> thanks!
<beneroth> your advice is much appreciated!
<beneroth> bbl
<aw-> ok! see you
<Regenaxer> cu beneroth!
<Regenaxer> DB over USB is no problem I think. I found that disk speed doesn't matter cause to the extensive caching
<aw-> hi Regenaxer
<aw-> yes usb 3 is fine
<Regenaxer> Doesn't stop snowing here. Just removed 25 cm
<aw-> wow
<aw-> happy i don't live in a snowy place anymore
<aw-> i really hated it
<Regenaxer> Not like east Japan
<Regenaxer> in Canada?
<aw-> yes Canada
<aw-> the snow... it seems to never stop
<Regenaxer> 100 km south of me they have more than one meter now
<aw-> :|
<Regenaxer> Some villages are cut off
<aw-> you clean the snow, then a few hours later it's all covered again
<Regenaxer> Supplied by helicopter
<Regenaxer> yeah
<aw-> wow
<aw-> so those places need snowmobile
<Regenaxer> I'll have to go out soon again
<Regenaxer> The problem are the trees breaking down and closing the roads
<aw-> haha yeah
<aw-> or falling on power lines
<Regenaxer> right
<aw-> i lived in a building before, we paid monthly for a company to clean the snow
<aw-> 6 apartments paid, so it was fairly cheap
<Regenaxer> That's better
<aw-> and they even do it at 5 or 6am so you can at least leave the house to drive to work
<Regenaxer> I did once 6:30 this morning, then 8:40 again
<aw-> well.. it keeps you in shape ;)
<Regenaxer> Indeed! :) It looks nice though https://software-lab.de/Schnee10jan19.jpg
<aw-> no that looks terrible
<aw-> gives me nightmares
<Regenaxer> :)
<Regenaxer> We don't have that often here
<Regenaxer> usually 2 or 3 days per winter
<aw-> oh ok
<aw-> not so bad
<Regenaxer> T
rob_w has joined #picolisp
<Nistur> mornin'
<Regenaxer> Hi Nistur
<Nistur> o/
<Regenaxer> :)
<Nistur> how's tricks?
orivej has quit [Ping timeout: 272 seconds]
orivej has joined #picolisp
orivej has quit [Ping timeout: 246 seconds]
andyjpb has joined #picolisp
xkapastel has joined #picolisp
orivej has joined #picolisp
libertas has quit [Ping timeout: 245 seconds]
libertas has joined #picolisp
orivej has quit [Ping timeout: 246 seconds]
libertas has quit [Ping timeout: 258 seconds]
libertas has joined #picolisp
orivej has joined #picolisp
libertas has quit [Ping timeout: 250 seconds]
orivej has quit [Ping timeout: 258 seconds]
libertas has joined #picolisp
razzy has quit [Read error: Connection reset by peer]
razzy has joined #picolisp
razzy has quit [Read error: Connection reset by peer]
razzy has joined #picolisp
razzy has quit [Read error: Connection reset by peer]
razzy has joined #picolisp
rob_w has quit [Quit: Leaving]
<razzy> hmm, how can i stop repl from printing huge outputs when saving file i use (setq C (need 200000 42)) ; <- this coma. is there better way?
<Regenaxer> Just write something in the same line
<Regenaxer> : (range 1 10000000) T
<Regenaxer> -> T
<razzy> nice
<Regenaxer> The repl prints only the result of the last expr
<razzy> also, does (copy) copy all insides instantly? or copy only difference made later
<beneroth> see in ref
<beneroth> good evening all :)
<beneroth> razzy, it copies instantly, its not copy-on-write
<beneroth> also it is not a deep copy
<beneroth> see reference
<beneroth> Regenaxer, nice photo. we used to sit there :)
<beneroth> here it was snowing the whole day too. maybe a bit less than at your place.
<Regenaxer> Good evening beneroth
<razzy> my guess there is no function that do copy-on-write ? from high lvl, view it is the same output, only copy on write is easier on resources
<beneroth> its not necessarily easier on resources. you need to keep check on every write if there is something to copy.
<beneroth> that's overhead too
<beneroth> you pay some speed to gain some space. (in most optimization, you pay space to gain speed)
<beneroth> also "premature optimization" is one of the worst things to do. don't do it.
<razzy> thx. i agree. sometimes you do small incremental changes on 1% of file, and you do not want to make whole copy
<Regenaxer> beneroth, yes, we sat there, but without snow ;)
<Regenaxer> razzy, use the DB. It operates on small blocks of the file
<beneroth> T. that is the correct answer.
<beneroth> use the right tool for the specific task.
<razzy> my ask is, if there is such copy-on-write function
* razzy is lazy, and want to avoid learning DB as possible
<beneroth> you are really lazy, not efficient.
<beneroth> afaik there is no general copy-on-write in standard picolisp
<beneroth> maybe there is one on rosettacode?
<beneroth> else best guess is probably to look into c libraries
<beneroth> the very best thing would be to optimize your task in the proper way. which is most likely not copy-on-write, unless it should really be a DB.
<beneroth> you could make all this thinking and looking for solutions I just listed here BEFORE you ask here in the channel. that would be respectful and constructive.
<Regenaxer> I wonder what razzy means with such a "function". It it were, it would rather be a mechanism of the whole interpreter machinery, not an isolated function
<Regenaxer> And "write" where when "copy" what?
<Regenaxer> a cell?
<razzy> Regenaxer: it would need to be mechanism. propably whole picoDB aparatus. but on outside it could look as a function :] (copy-on-write ToSymbol FromSymbol)
<Regenaxer> What exactly does that do?
<razzy> maybe, not sure
<razzy> give me 15 min
<razzy> ok, i have something. big letters are variables. if i explained it badly, ask. It require only special function-call when accesing specific symbol (might be easy or hard to do). On outside works as (copy). (copy-on-write ToSymbol FromSymbol) create anonymous AnonSymbol symbol from FromSymbol, (copy-on-write) creates Change-data than captures changes on FromSymbol. (copy-on-write) creates Change-data2 than captures changes on
<razzy> ToSymbol. From this point on, when ToSymbol is called, it reads AnonSymbol + adds Change-data2.
<Regenaxer> I don't understand
<Regenaxer> Why not (setq ToSymbol (box Value)) and hen (put ToSymbol ... ?
<Regenaxer> What the hell means "write" in this context?
<Regenaxer> (copy) is something different
<Regenaxer> nothing to do with symbols
orivej has joined #picolisp
<razzy> as i understand it copy-on-write or shallow-copy shares parts that are equal to both copies. something like picolisp do with paraell processes when using later
<Regenaxer> (doc 'copy)
<Regenaxer> it is a shallow copy
<razzy> uh?
<Regenaxer> yes
<razzy> there is also deep copy, that makes copy bit by bit.
<Regenaxer> All non-destructive functions share some stuff
<Regenaxer> eg 'append' or 'delete'
<Regenaxer> Do you understand how they work?
<razzy> uhm, than what i thought about copy is wrong
<razzy> now i have better idea
<Regenaxer> I have no idea what you really want to do
shpx has joined #picolisp
<Regenaxer> Are you sure you don't again throw in terms you picked up somewhere without knowing what they mean?
<razzy> i propably do that again at some point.
<Regenaxer> Please don't!
<Regenaxer> You waste *our* time
<Regenaxer> What exactly do you want to do?
<Regenaxer> Why do you ask about copy-on-write when it makes absolutely no sense? Just to show that you heard of the term?
<Regenaxer> I already asked: What "copy" and what "write"?
<Regenaxer> What sense does it make in the Pil VM?
<razzy> i made blunder, when i thought copy-on-write is same as shallow-copy
<Regenaxer> What *copy* do you talk about? You don't even answer my questions!
<Regenaxer> And what *write*?
<Regenaxer> I'm willing to answer your questions, but not if you just throw in nonsense
<beneroth> shallow copy has absolutely nothing to do with copy-on-write.
<Regenaxer> a (fork) does a copy on write in the process memory space(s)
<beneroth> shallow copy is the opposite of deep copy. deep copy means, everything nested/pointed at/indirectly connected gets copied too. shallow copy means usually only the direct connected stuff is copied.
<razzy> Regenaxer: thank you for answering. i have no further questions.
<beneroth> that's completely independent of lisp or any specific language. this are general programming terms.
<beneroth> use wikipedia.
<Regenaxer> beneroth, good explained
<razzy> at this point i am propably wasting your time,
<Regenaxer> true
<razzy> any good reference on copy-on-write?
<beneroth> you tried wikipedia?
<razzy> yop, not very good references imho
<beneroth> you lazy <insert-insult-I-cant-decide-on-one>
<beneroth> aha, why not?
<beneroth> the explanation is good and correct.
<razzy> all explanations still feels like shallow-copy
<beneroth> then look up shallow copy
<beneroth> then go and take a real CS class
<beneroth> lazy copy has to do with copy-on-write. but not shallow copy.
<beneroth> not the least
<beneroth> copy-on-write is usually only used in context of filesystem or forking/threading processes.
<beneroth> shallow/deep copy is usually only used in context of object oriented programming, though it obviously applies to all kind of memory structures
<beneroth> you should give us your address so we can send you an invoice.
<razzy> my take from what i read so far is that: shallow-copy in context of filesystems and processes is called copy-on-write
<razzy> and there are multiple lvls of "shallowness"
<Regenaxer> I would not say so
<beneroth> definitely no
<beneroth> lazy-copy, but not shallow-copy.
<Regenaxer> In shallow copy no "write" is involved
<razzy> i will meditate on it, thx
<beneroth> stop wasting your time, Regenaxer
orivej has quit [Ping timeout: 250 seconds]
<Regenaxer> yeah, thanks :)
orivej has joined #picolisp
<tankf33der> beneroth: i got threema
<beneroth> cool
<beneroth> see direct message
<beneroth> send me something which makes me believe you are you and not someone spying on our IRC traffic :P
<beneroth> then maybe I can send you something back which makes you believe it is me and not someone who changed the code before it reached you and is now MitMing us :P
<beneroth> (hm impossible, shit)
<beneroth> tankf33der, do you use python? any point in learning it (beside e.g. using one of its libraries or so) ?
<tankf33der> hm
<tankf33der> should be trivial, no?
<tankf33der> and i dont use python, im boring sysadmin, never worked as coder.
<beneroth> T
<beneroth> ok
<beneroth> good you used the word "coder" and not programmer ;-)
orivej has quit [Ping timeout: 246 seconds]
andyjpb has quit [Ping timeout: 244 seconds]
andyjpb has joined #picolisp
orivej has joined #picolisp
ubLIX has joined #picolisp
orivej has quit [Ping timeout: 258 seconds]
ubLIX has quit [Quit: ubLIX]
orivej has joined #picolisp
xkapastel has quit [Quit: Connection closed for inactivity]
orivej has quit [Ping timeout: 272 seconds]
xkapastel has joined #picolisp
shpx has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
orivej has joined #picolisp
shpx has joined #picolisp