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
orivej has quit [Ping timeout: 260 seconds]
alexshendi has quit [Ping timeout: 268 seconds]
<Regenaxer> Interesting 'T shirt discussion :)
orivej has joined #picolisp
alexshendi has joined #picolisp
<tankf33der> as you all remember ive already post how t shirt could be
<tankf33der> like this
alexshendi has quit [Read error: Connection reset by peer]
<Regenaxer> tankf33der, yes, that's cute!
rob_w has joined #picolisp
<beneroth> tankf33der, cute!
<tankf33der> documentation done
<beneroth> nice!
mtsd has joined #picolisp
<Regenaxer> tankf33der, can you tweet it?
<tankf33der> sure
<cess11_> great!
<Regenaxer> thx
<mtsd> Good morning everyone
<Regenaxer> Hi mtsd!
<mtsd> Hi Regenaxer!
<Nistur> g'mornin' all
<Regenaxer> Hi Nistur!
<Nistur> tankf33der: if I can find somewhere to set up a shop, should I add that to the designs? :P
<Nistur> o7
<tankf33der> Nistur: sure
<tankf33der> i dont know how it should be organized, but money should be transfered to Regenaxer
<Regenaxer> Nono, I don't want any money
<Nistur> Regenaxer: are you human?
<Regenaxer> Not sure. What *is* human?
<Nistur> even people who don't wont money as such, tend to want the things money can buy
<Nistur> aha, so you've now been replaced by a bot running on picolisp, of course :)
<Regenaxer> I don't buy, this is done by my wife
<Regenaxer> :)
<Nistur> :P
<Nistur> so money from the sale of tshirts to be transferred to your wife?
<Regenaxer> haha, no, she has money from her sushi courses
<mtsd> Picolisp T-shirts? Sign me up for one! :)
<Nistur> mtsd: hopefully if I can find a place that allows me to make a store, and will allow images and text
<mtsd> Good idea
<Nistur> so far spreadshirt would do the former, but doesn't let me put text on it, shirtinator will do the latter, but not allow me to sell tshirts there
<Nistur> well, if Regenaxer doesn't want tshirts, I assume there will be an option on whatever site I find which allows me to choose how much "I" want per tshirt, which I'll put as close to zero as it'd allow me.
<Regenaxer> I would gladly have a pil t-shirt too
<mtsd> Regenaxer, we, the community, might just show up outside your house one day and simply dump all the profits from pil t-shirts on your lawn ;)
<Regenaxer> :)
<Nistur> all 0.05 EUR of it :P
<Regenaxer> Then we could take it and go for a drink all together
<mtsd> We'll buy the drinks then. I insist
<Regenaxer> ok :)
<mtsd> I think you are probably the most helpful programmer I have ever encountered. The patience of a saint with all the questions :)
<Regenaxer> oh ;)
<Nistur> well, I'll take another look at trying to find a suitable store, otherwise I'll have to go with spreadshirt which is a bit of a shame, I wanted one with a picolisp logo on the front and (bye) on the back
<Regenaxer> cool
<mtsd> Very good
<Nistur> on a tangentially related topic... I need to set up Wake on LAN on my PC at home, so I can SSH in from work occasionally. I have my pi running, so that's fine, but not EVERYTHING I want to do runs on ARM
<beneroth> oh nice use case for wake on lan
<beneroth> hi mtsd !
* Nistur is wondering whether mtsd is 'Mid Traumatic Stress Disorder'
<Nistur> Mild? Magenta? Motorised?
<mtsd> haha
<Nistur> teespring looks like a decent option for store
<mtsd> hate to disappoint you, but no smart acronym.
<Nistur> shame :P
<mtsd> just some letters from my first and last name
<Nistur> matthew...
* Nistur squints at the letters
<mtsd> Mattias Sundblad. Swedish, so Matthew the english form :)
<Nistur> ahh
<Nistur> I worked with a swedish Mattias at one point
<Nistur> he was... a little crazy
<mtsd> haha, in what way?
<Nistur> he was quite highly strung
<Nistur> I am in gamedev, the offices are rarely quiet
<Nistur> I was doing a code review for one of my colleagues, sat next to Mattias
<Nistur> we had beanbags in the office... they were tiny and pretty much useless... but management thought it would liven up the place... anyway, there wasn't a spare chair, so I was sitting on one of these beanbags
<Nistur> which stretched it tight, and I was (lightly!) drumming on it while doing the code review
<Nistur> and Mattias turned around and shouted at me for about a minute about making a noise
<Nistur> I am not exaggerating this, the drumming was by far not the loudest thing in the office, and his shouting was... much louder :P
<mtsd> He and I are not the same person then. I have no memory of such an event :)
<Nistur> I heard that in his next job he shouted at a junior artist so much that they ran off crying and quit
<Nistur> mtsd: I would not have mentioned this if I thought you might have been ;) I recall his surname
<mtsd> Besides, I am not known to shout very much at all :)
<mtsd> Would have been funny i if I had been him and started to type in capital letters all of a sudden
<Nistur> :)
<cess11_> Most swedes are fairly quiet.
<mtsd> THAT DRUMMING WAS UNBEARABLE, I AM GOING TO ETC ETC ETC
<mtsd> ;)
<Nistur> yeah, I've known a few... until you get alcohol into them they are quite quiet :P
<Nistur> Mattias was certainly the exception :P
<mtsd> True. Swedes and Finns tend to be that way, in many cases
<Nistur> although I wouldn't be surprised if some one told me he was drunk the whole time
<mtsd> I like the suggestion "Mid Traumatic Stress Disorder". :)
<Nistur> :)
<mtsd> More Tea Sounds Delicious ?
<Nistur> My Turnips Solicit Damsels
<Nistur> thoughts?
<Nistur> it says (bye) on the back
<Nistur> Helvetica looks like the best font to use in both circumstances
<Regenaxer> Looks great!
<mtsd> Very nice
<Nistur> ok, design #1 done then :P I'll have to see if I can get a higher res CC0 heart to do tankf33der's design
<Nistur> teespring suggests a price of $21.99, so it'd be $9.57 profit/sale... I'll see how low it'll let me go, but there's also an option for "I would like to donate some or all of my profit to charity" so I can maybe find a suitable charity for the this if it insists on not selling at cost
<Nistur> do we have any females here? Is it worth me doing this design on female tshirts?
<Regenaxer> Not many I'm afraid. I know only from a woman in india in the mailing list
<Regenaxer> s/from/of
<Nistur> Regenaxer: https://teespring.com/picolisp#pid=2&cid=2397&sid=front
<Nistur> from what I understand about this, they print batches every 3 days
<Nistur> so "available until Friday" is... maybe just one of those pressure sale things
<Regenaxer> T
<Nistur> teespring is not quite what I was expecting. I was hoping that I could just make some designs and keep them all together, but they seem to have campaigns, so I'm not sure I can do that
<Nistur> but yeah, I've put the prices as low as it'd let me
<Nistur> I think there's something like $0.05 profit on some of them :P
<Nistur> I have not yet signed up for the mailing list, but I think maybe I should, and post the link to this :P
<beneroth> :D
<Nistur> Regenaxer: do I just need to send an email with the subject 'Subscribe'?
<Nistur> or does there need to be content too?
<Regenaxer> yep
* Nistur facepalms
<Nistur> :P
<Regenaxer> no, but you can write some at that point too
<Nistur> will that get sent to the list?
<Regenaxer> T
<Nistur> ok
<Nistur> Did that come through? It doesn't show up on the archive yet, but I don't know how long that'd take :P
<Nistur> once I'm subscribed successfully, I'll post the link :P
<Regenaxer> The server polls every 4 minutes (see last line in misc/mailing)
<Nistur> ahh ok
<Regenaxer> Nothing here yet
<Regenaxer> ah, it takes 8 minutes max
<Nistur> I'll leave it a little while then
<Regenaxer> on each loop it fetches, and sends the last one
<Regenaxer> arrived here
<Nistur> woop :P
<Regenaxer> nice text :)
<Regenaxer> Ah, of course! anjaa is female :)
<Nistur> almost my wife's name.
<Regenaxer> :)
<Nistur> ok, tshirt email sent :P
<Nistur> Aha, I can have a storefront in teespring, it just isn't set up by default
alexshendi has joined #picolisp
<Nistur> Regenaxer: you know... I was going to offer to order a tshirt for you :P
alexshendi has quit [Ping timeout: 240 seconds]
alexshendi has joined #picolisp
<Regenaxer> Oh! Nice!
<Nistur> when I started the campaign, it asked how many I'd expect to sell, I put 10. It would have allowed me to put down to 1, but I was being optimistic :P 3 are already sold
<mtsd> I think I am going to buy a sticker as well.
<Regenaxer> Wow!
<Regenaxer> No idea how many will be interested
<tankf33der> announce needed
<mtsd> I usually don't like putting stickers on laptops, but I am thinking of making an exception this time
<Nistur> Regenaxer: I don't think there is actually a minimum quantity
<Regenaxer> True. And on a tablet it is probably a bad idea
<Regenaxer> OK, I see
<Nistur> mtsd: yeah, I remove all stickers and never put them on, but when I saw they had stickers, I thought I might find a use, so I added it to the list of available things
<mtsd> My kids love stickers. I can get some for them too
<mtsd> Putting them on the right path from the start ;)
orivej has quit [Ping timeout: 268 seconds]
orivej has joined #picolisp
alexshendi has quit [Ping timeout: 246 seconds]
orivej has quit [Ping timeout: 245 seconds]
orivej has joined #picolisp
<Nistur> Regenaxer: you know we were talking about changing the background colour in PilOS? I have the value here in front of me in beg.l but I cannot figure out what the format is. I don't suppose you can remember, can you?
<Regenaxer> hehe, I
<Regenaxer> must look
<Regenaxer> It is 4 words of 16 bits
<Regenaxer> 1F20
<Regenaxer> 20 is space
<Regenaxer> so 1F is the colour
<Regenaxer> yes, seems so
<Nistur> so 0F is probably black then
<Nistur> and then just 'make' in the pilos directory?
<Regenaxer> you must fix more places
<Regenaxer> in ttyOutB
<Regenaxer> the above is only clearing the screen
<Regenaxer> eg movb $0x1F, 1(%edi) # Remove cursor
<Nistur> ok
<Regenaxer> Then perhaps only one more: mov $0x1F201F20, %eax # Clear last line
<Regenaxer> The bytes are (hopefully) written without attributes
<Regenaxer> mov %al, (%edi) # Store byte
<Regenaxer> So this writes only an 8-bit value, ok
<Nistur> ttyNL as well
<Regenaxer> yes, the one above, Clear last line
<Nistur> and then, just make?
<Regenaxer> yes, gives the .img
<Nistur> nope :) Error! :P Woo for the macOS dev setup
<Nistur> still has colour codes in there, sorry
<Regenaxer> Hmm, a different assembler?
<Nistur> possibly
<Nistur> where is the assembler defined?
<Regenaxer> in make.l
<Regenaxer> "as"
<Nistur> yeaaaaaaaaahhhh... so you know how everything on macOS points to clang? :P
<Regenaxer> sadly, yes
* Nistur wonders if 'brew install gas' will get him something which will work
<Nistur> noe
<Nistur> (nope
<Nistur> **
<Nistur> I can type today, honest.
<Regenaxer> :)
<Nistur> so ok, you cannot build PilOS on macOS
<Nistur> looks like you cannot (easily?) get the GNU Assembler
<Nistur> even changing all of the calls to use gcc, it doesn't like it
<Nistur> I assume gcc just calls through to as so it still uses the clang assembler
<Regenaxer> oh
<Nistur> macOS is not particlularly picolisp friendly :P
<Regenaxer> Apple in general is not developer-friendly
<Nistur> you will hear no arguments that that statement from here :P
mtsd has quit [Quit: Leaving]
alexshendi has joined #picolisp
rob_w has quit [Quit: Leaving]
alexshendi has quit [Read error: Connection reset by peer]
<Nistur> ... I should probably work more on trying to figure out how to get Windows building and running than macOS and PilOS...
<Regenaxer> yeah, this question pops up more frequently
<Regenaxer> I hope joebo will write some tips to the ML ;)
<Regenaxer> I'm a bit clueless, as I have no Windows, and always forget how the situation is
<Nistur> you don't have a PC at all, do you?
<joebo> hi Regenaxer !
<joebo> I would like to write Arie back but need to do some testing... it's been awhile since I've worked with pil on windows
<Regenaxer> I have a Desktop in my basement with Debian
<Regenaxer> Hi joebo! :)
<Regenaxer> Great!!
<joebo> I am out of touch on a few things... including the status of midipix
<joebo> and flinux works but is dead as far as I know
<Regenaxer> I'm afraid midipix gets stuck at the same place cygwin did several years ago
<joebo> and windows subsystem for linux has issues with locking
<joebo> so a bit of research is needed still :)
<Regenaxer> right
<Regenaxer> Cool! Thanks for the answer Nistur!
<Nistur> Regenaxer: I did have a go at getting pil running on various other platforms at the weekend, unfortunately the "easiest" one, the PS2 (because it has an actual linux kernel running) wasn't possible because I haven't had my PS2 actually running for a while, so digging out all the cables etc took too long :( But I think I'm going to drop this for now :P I want/need pil working on Windows so, I should
<Nistur> really aim for that
<Regenaxer> :)
<Nistur> I mean, I'd rather not rewrite chunks of your code to use msvcrt in order to work, but I've actually done that before, and if it's what needs to happen... I will be able to do that for my copy at leas
<Nistur> *least
<Regenaxer> ok
<beneroth> Nistur, did you check out midipix?
<Nistur> I had not looked into it before, but I shall now
<Nistur> doesn't look like it's available to mere mortals yet, but I may hang out in the IRC channel
<Nistur> but yeah, obviously I'll try and get this working with the smallest amount of code changes possible :) It doesn't really make sense to do too much
alexshendi has joined #picolisp
<joebo> Nistur: are you running windows 10?
<beneroth> joebo, he only has a Win7 currently
<joebo> beneroth: ah. I started writing up steps for the mailing list for win7 with midipix
<joebo> something is not working nicely on win10 ... I'm not sure if it's something that worked only on my old win7 machine which is on the shelf, or if it's win10 related
<joebo> nistur, if you want to try, this should get you pretty close
<joebo> I'll be around to help troubleshoot if you want
<joebo> back in about 30 mins
orivej has quit [Ping timeout: 256 seconds]
dtornabene has joined #picolisp
grp has joined #picolisp
dtornabene has quit [Remote host closed the connection]
dtornabene has joined #picolisp
<m_mans2> Hi all!
<Regenaxer> Hi m_mans2!
<m_mans2> I've just tried 'mail with my Gmail account:
<m_mans2> ssl: Can't connect
<m_mans2> (mail "smtp.google.com" '("mmamkin@gmail.com" "my_pass" . 465) "mmamkin@gmail.com" "mmamkin@mail.ru" "Test message" '("app/menu.css" "menu.css" "text/plain") "Hello" NIL "Bye")
<grp> so, what exactly is an object-local index. What's +Hook and what is it for?
<Regenaxer> m_mans2, oh!
<grp> I've seen +Ref accepting a +Hook arg
<Regenaxer> grp, it is a +Link or +Joint usually to some other object
<m_mans2> I'll try to trace 'line and 'prinl
<Regenaxer> and that object holds a root of index trees
<Regenaxer> m_mans2, 'ssl' changed recently
<m_mans2> : (version)
<m_mans2> -> (18 4 12)
<m_mans2> 18.4.12
<Regenaxer> ssl now verifies the host
<Regenaxer> not only the cert
<Regenaxer> ie it "validates" the host, checks if the cert is for that domain
<Regenaxer> Before that it only checked if the cert itself was ok
<grp> (rel sup (+Hook +Link) (+Sup)) <-- so, why the +Hook if there's a +Link already?
<Regenaxer> you can always (also before this version) disable cert checks if you pass a negative port
<Regenaxer> -443
<Regenaxer> +Hook is a prefix class
<Regenaxer> Prefix class for +relations, typically +Link or +Joint.
<grp> oh
<Regenaxer> So this supplier has private trees for e.g. unique item numbers
<grp> as in a root-symbol with it's own structure?
<Regenaxer> no special structure
<grp> so, why does +Ref have a +Hook attribute instead of using +Hook as a prefix class? convenience?
<Regenaxer> hmm, I don't get the question
<Regenaxer> You are in the example in the ref?
<grp> yes
<Regenaxer> ok
<Regenaxer> these 3 lines are meant to be part of the model of an item
<Regenaxer> The supplier is a +Link
<Regenaxer> and 'nr' is a unique index, *but* unique only for that supplier 'sup'
<m_mans2> oh, my fault, I should use gmail.com, not google.com
<Regenaxer> To look up a number, it is searched in the index in that supplier
<Regenaxer> (show (db 'nm '+Sup "MySupplier))
<grp> oh, I seee, so it's a sepparate tree that can hold it's own unique keys
<Regenaxer> you will see there is an +Item property that holds tree(s)
<Regenaxer> yes, exactly
<Regenaxer> m_mans2, ah, cool! :)
<Regenaxer> grp, so a hook is always there, but it is the *DB root object if NIL
<Regenaxer> if not specified
<grp> I see
<m_mans2> line = "235 2.7.0 Accepted"
<m_mans2> line : T
<m_mans2> prinl = "^M"
<m_mans2> prinl : "MAIL FROM:" "mmamkin@gmail.com" "^M"
<m_mans2> line = "555 5.5.2 Syntax error. b186-v6sm2950083lfb.47 - gsmtp"
<Regenaxer> uh
<Regenaxer> It expects some other protocol?
<Regenaxer> Did it work before?
<m_mans2> no, it seems I had no luck with Gmail
<Regenaxer> Nasty stuff :(
<m_mans2> see: (out S (prinl "MAIL FROM: <" (fin From) ">^M"))
<m_mans2> and this: (out S (prinl "RCPT TO: <" To ">^M"))
<m_mans2> now it works
<m_mans2> but it's dirty hack
<m_mans2> it would be nice to handle both "mail@domain" and "text <mail@domain>", what do you think?
<Regenaxer> I see
<Regenaxer> strange, yes
<m_mans2> I could try improve it
<Regenaxer> ok
<Regenaxer> So you think it *needs* < and > ?
<m_mans2> MAIL FROM:<reverse-path> [SP <mail-parameters> ] <CRLF> This command tells the SMTP-receiver that a new mail transaction is starting and to reset all its state tables and buffers, including any recipients or mail data. The <reverse-path> portion of the first or only argument contains the source mailbox (between "<" and ">" brackets)
<m_mans2> seems yes
<m_mans2> I go to bed, see you!
<Regenaxer> OK, sleep well!
<Regenaxer> Lets stay on this!
<m_mans2> ok!
<m_mans2> let my try to improve it later
<m_mans2> *me
<Regenaxer> great! thx!
dtornabene has quit [Quit: Leaving]
<grp> Regenaxer: regarding dbs, (2 +CuSu) <-- this means +CuSu symbols (+ attributes I suppose) go to that db, but relationships are stored elsewhere (4 (+CuSu nr plz tel mob))?
<Regenaxer> correct
<grp> ACK
<Regenaxer> s/relationships/indexes
<Regenaxer> it is only concerned about trees
<Regenaxer> the relations itself are directly stored as properties in the objects
<grp> hmm, so it means the indexes of those relationships go there?
<Regenaxer> yep
<grp> got it
<Regenaxer> Usually bigger blocks (4 above)
<Regenaxer> for the B-Tree nodes
rob_w has joined #picolisp
<grp> then, why is (+Role nm) stored with scale 2 while (+CuSu nm) has scale 4?
<grp> amount of entries?
<Regenaxer> yes, for very small trees it is enough
<Regenaxer> small in number of entries and key length
<grp> ok, let's say I did (2 (+CuSu nm)), what's the implicances of that? performance hit? or is it more than that?
<Regenaxer> it may even be that a single entry does not fit into a node if the name is extremely long
<grp> and? gets truncated?
<grp> or spans another node?
<Regenaxer> then the node gets allocated 2 blocks an thus a little inefficient
<Regenaxer> normally a node is not bigger than one block, as it gets split
<grp> maybe not inefficient but you get suboptimal max objects addressability?
<Regenaxer> yes
<Regenaxer> no
<Regenaxer> the max is not concerned I think
<Regenaxer> but it needs 2 read accesses to fetch a node
<grp> I guess nodes are linked in that case, possibly swapping some memory pages?
<grp> (I mean, they couldn't always be contiguous)
<Regenaxer> yes, they are linked, and normally not contiguous
<Regenaxer> depends on the order they are allocated on disk
<grp> right, and free blocks after db-gc
<Regenaxer> Maybe fetched from the free list and thus at an arbitrary place
<Regenaxer> exactly
<grp> ack
<grp> this may be nonsense: when I declare a relation as holding objects of some class (or group of classes): is that of any use aside from database methods/relations? Suppose I have a prefix class +Ethernet meant for equipment with ethernet capability. Such class would add some methods and symbol attributes, but in the data model I am storing merely (+Equipment) objects. Is it allright to instance (+Ethernet
<grp> +Equipment) objects and store them in that relation?
<cess11_> Sure.
<grp> good
<Regenaxer> Yes
<cess11_> Here's some examples of using 'class and 'dm for such things rather than data storage.
<grp> what if instead of some attributes, +Ethernet defines relations? Like (rel eths (+List +Joint) port (+Service))? What I'm trying to model is: have a relation with a list of services, but only if it has connectivity (be it +Ethernet, +WiFi, both...) and then, when listing +Services, refer back to what port it's been assigned
* grp clicks
<Regenaxer> (+List +Joint) is a relation, not a new one
<cess11_> Sure, if symbols are too flimsy for your use case it is the way to go.
<Regenaxer> Yes, looks right
<Regenaxer> relations can always be empty (missing, ie. NIL)
<grp> Regenaxer: what I mean is: +Equipment has no relation to +Service, but once it's prefixed with +Ethernet, it holds a list of joints
<Regenaxer> ok, you can just specify +Any and then put anything you like
<cess11_> You might want to look at 'be too, it can be used for similar purposes as inheritance.
<grp> so if I have a class +Client with (rel eq (+List +Joint) cl (+Equipment)), can I then store elements (+Ethernet +Equipment) which then have a relation (rel eths (+List +Joint) port (+Service))
<Regenaxer> yep
<grp> great
<grp> cess11_: I'll take some time to munch that
<grp> reading
<grp> ok, time to experiment and burn my ass until I get it right
<Regenaxer> good :)
mtsd has joined #picolisp
<grp> btw, this is the structure I made: https://imagebin.ca/v/3yc1CHKWWoew Still doing calcs for torsion and soil-footing
<grp> but it's good, reeeeaaaallly stifff
<grp> kind of overkill actually
<grp> file says 1h33m edit time, nice
<grp> that's the 2nd design I made. The first one is cheaper but less rigid. Need to calc deflections to see if it's viable. In any case, it WILL hold
mtsd has quit [Quit: Leaving]
grp has quit [Quit: box shutting down...]
orivej has joined #picolisp
alexshendi has quit [Ping timeout: 256 seconds]
libertas has quit [Read error: Connection reset by peer]
libertas has joined #picolisp
rob_w has quit [Read error: Connection reset by peer]
alexshendi has joined #picolisp
f8l has quit [Quit: Upgrade]
f8l has joined #picolisp
alexshendi has quit [Ping timeout: 276 seconds]
Regenaxer has quit [Ping timeout: 255 seconds]