<<Prev Next>> Scroll to Bottom
Stuff goes here
L1[00:00:01] <Izaya> Then I can add loading
from the data portion
L2[00:00:08] <peelz_> RIP you
L3[00:00:22] <peelz_> time to practice dem
code golfing skills
L4[00:00:38] <Izaya> I mean, I've gotten
like 10K down to 4K
L5[00:00:48] <peelz_> not bad
L6[00:01:12] <peelz_> I mean, surely you can
figure out a way to yank 12 bytes?
L7[00:02:53] <Izaya> honestly at this point
it may be a bit of a stretch
L8[00:02:59] <Izaya> I don't want to break
the API entirely
L9[00:06:23] <Izaya> 92 bytes available now
:D
L10[00:06:25] <Izaya> I only needed
48
L11[00:12:13] ⇦
Quits: Cervator
(Cervator!~Thunderbi@2601:4c1:4001:1d5d:c1b6:cf21:6194:8c) (Quit:
Cervator)
L12[00:45:43] ⇨
Joins: freacknate09
(freacknate09!~freacknat@97-92-106-20.static.reno.nv.charter.com)
L13[00:45:47] <freacknate09> hey
L14[00:46:01] <freacknate09> What is the RC
API? The wiki page is practically nil
L15[00:46:11] <Izaya> it can run
stuff
L16[00:46:27] <Izaya> in all seriousness,
it's a good way to do startup scripts
L17[00:46:35] <freacknate09> Ahh, how do I
use it?
L18[00:46:40] <Izaya> you put a file in
/etc/rc.d with a start() and a stop() function
L19[00:46:51] <Izaya> or really any other
name but start will let you autorun it
L20[00:47:17] <Izaya> use the start()
function for any startup stuff and stop() to close open files and
such
L21[00:47:28] <Izaya> then you can do rc
filename start and rc filename stop
L22[00:47:45] <Izaya> (if you had a
function called foo you could also do rc filename foo)
L23[00:47:49] <freacknate09> ok, sounds
very useful. I jumped on tonight specifically for this. That and I
am gonna try and learn more Lua and the like.
L24[00:47:53] <freacknate09> nice
L25[00:48:01] <Izaya> arguments also
work
L26[00:48:13] <Izaya> function start(a,b,c)
print(a,b,c) end
L27[00:48:17] <Mimiru> no they don't! (This
is an argument :P)
L28[00:48:20] <Izaya> and then you did rc
filename start 1 2 3
L29[00:48:25] <Izaya> it'd respond with 1 2
3
L30[00:48:51] <Izaya> if you want to
autorun it you can do rc filename enable
L31[00:49:00] <Izaya> you don't need an
enable function
L32[00:49:10] <Izaya> enable adds it to the
autorun section of /etc/rc.cfg
L33[00:49:19] <freacknate09> ok
L35[00:50:01] <freacknate09> I created a
new creative world for tinkering with OC, once I get a building
made, I am gonna play with RC and whatnot. What does minitel
do?
L36[00:50:13] <Izaya> minitel is my
networking stack
L37[00:50:35] <Izaya> it does mesh routing
and reliability
L38[00:50:41] <freacknate09> ahh, I am not
gonna even ask about networking :) lol, I suck with basic stuff,
muchless networking
L39[00:50:42] <Izaya> also streams if you
use the higher-level APIs
L41[00:52:14] <freacknate09> Thanks,
reading now
L42[00:54:50] <freacknate09> How do the
relay blocks work? I know they have cycle rate, packets/cycle, and
queue size. Other than that, I have no clue.
L43[00:55:47] <Izaya> they separate
component networks - your computer and its peripherals - and relay
network packets between them
L44[00:56:31] <freacknate09> ahh, ok
L45[00:57:19] <Izaya> ~w relay
L47[00:57:24] *
Izaya frowns
L49[00:58:52] <freacknate09> what is this
shadowkat.net site?
L50[00:59:00] <Izaya> that's my site
L51[00:59:06] <freacknate09> ahh
L52[00:59:18] <Izaya> I have a script that
runs once a day and updates the copy of the manual I have there if
there are any changes
L53[00:59:23] <freacknate09> ahh,
nice
L54[00:59:37] <Izaya> has a bunch of other
random shit there too
L55[01:02:03] ⇨
Joins: freacknate
(freacknate!~freacknat@97-92-106-20.static.reno.nv.charter.com)
L56[01:03:03] ⇦
Quits: freacknate09
(freacknate09!~freacknat@97-92-106-20.static.reno.nv.charter.com)
(Ping timeout: 202 seconds)
L57[01:03:32] ***
freacknate is now known as freacknate09
L58[01:04:47] <freacknate09> Well, I have a
working computer, aaand no idea what to do. It is too late
irl
L59[01:05:17] <freacknate09> I am gonna
deal with this tomorrow, see yall tomorrow
L60[01:05:41] ⇦
Quits: freacknate09
(freacknate09!~freacknat@97-92-106-20.static.reno.nv.charter.com)
(Client Quit)
L61[02:21:25] ⇨
Joins: Backslash
(Backslash!~Backslash@ip-94-114-162-224.unity-media.net)
L62[02:22:09] ⇦
Quits: Backslash_
(Backslash_!~Backslash@ip-94-114-162-224.unity-media.net) (Ping
timeout: 198 seconds)
L63[02:30:22]
<Forecaster>
%loot
L64[02:30:22] <MichiBot> Forecaster: You
get a loot box! It contains an empty bottle.
L65[02:31:49] ⇦
Quits: jackmcbarn (jackmcbarn!jackmcbarn@gateway02.insomnia247.nl)
(Ping timeout: 195 seconds)
L66[02:34:03] ⇨
Joins: jackmcbarn
(jackmcbarn!jackmcbarn@gateway02.insomnia247.nl)
L67[03:00:37] ⇨
Joins: Vexatos
(Vexatos!~Vexatos@p200300C107179417E6752CEF91E246A9.dip0.t-ipconnect.de)
L68[03:00:37] zsh
sets mode: +v on Vexatos
L69[03:26:34] <Izaya> reee ATA
jumpers
L70[03:41:29]
<Kodos>
%loot
L71[03:41:29] <MichiBot> Kodos: You get a
loot box! It contains a broken .zip.
L72[04:00:54]
<Forecaster>
%loot
L73[04:00:54] <MichiBot> Forecaster: You
get a loot box! It contains a tiny bag of catnip.
L74[04:13:01] ⇦
Quits: peelz_
(peelz_!kiwiirc@modemcable157.151-83-70.mc.videotron.ca) (Ping
timeout: 182 seconds)
L75[04:32:50] ⇦
Quits: Doty1154
(Doty1154!~Doty1154@c-73-189-164-179.hsd1.ca.comcast.net) (Read
error: Connection reset by peer)
L77[05:16:50] ⇨
Joins: ben_mkiv
(ben_mkiv!~ben_mkiv@p57972032.dip0.t-ipconnect.de)
L79[06:43:30] <Skye> Izaya, no room for
encryption? ;)
L80[06:43:45] <Izaya> I'm using the data
partition now
L81[06:43:54] <Izaya> for the fget
client
L82[06:43:57] <Skye> that's still less than
4K
L83[06:44:05] <Skye> isn't that 256
bytes
L84[06:44:10] <Izaya> yes
L85[06:44:15] <Skye> .___.
L86[06:44:17] <Izaya> I'm using it because
I filled the main storage
L87[06:44:36] <Skye> yeah
L88[06:44:37] <Izaya> 4057 bytes for the
main EEPROM image
L89[06:44:46] <Skye> no room for encryption
lol
L90[06:44:54] <Skye> not even for signature
checking
L91[06:45:00] <Izaya> 160 bytes for the
fget client
L92[06:45:10] <Izaya>
that
said
L93[06:45:17] <Izaya> if you were running
this in a network
L94[06:45:55] <Izaya> you could totally add
a call to the data partition to download and run the stuff for
encryption from an frequest client
L95[06:46:04] <Skye> Izaya, could you port
an ECDSA thing to Lua and then use a public key to verify external
code
L96[06:46:32] <Izaya> you'd only need to do
like,
pcall(load(fget("server","/crypto-lib.lua")))
L97[06:46:48] <Skye> but you'd need ECDSA
to verify the external code you're loading
L98[06:46:57] <Izaya> well
L100[06:47:07] <Izaya> gl
L101[06:47:22] <Izaya> if you stripped the
terminal and REPL you get uh
L102[06:47:48] <Izaya> 2213 bytes
used
L103[06:48:27] <Izaya> 1883 bytes to
implement ECDSA
L104[06:48:35] <Izaya> oh wait, frequest
client
L105[06:48:42] <Izaya> 1723 bytes
L106[06:48:47] <Skye> x_x
L108[06:49:41] <Izaya> that said, if you
had a data card you could probably do it
L109[06:49:42] <Skye> has a C and Python
impl
L111[06:51:18] <Izaya> just saw it
L112[06:51:30] <Izaya> it's short, so
maybe doable I guess
L113[06:51:45] <Skye> you'll need SHA256
as well
L114[06:52:00] <Izaya> that's basically
going to be about 5KB on its own
L116[06:52:22] <Skye> x_x
L117[06:52:25] <Skye> no compact
SHA256
L118[06:53:58] <Skye> Izaya, tbh you just
need any competant hashing algo
L119[06:55:01] <Skye> Izaya, would this
even be doable without a data card
L120[06:55:07] <Skye> with a data card it
would be very easy
L121[06:55:16] <Izaya> It would not be
easy, I imagine.
L123[06:56:43] <Skye> ecdsa(data:string,
key:userdata[, sig:string]):string or boolean
L124[06:56:43] <Skye> Generates a
signiture of data using a private key. If signature is
present
L125[06:56:43] <Skye> generated signature
string. and the original string.
L126[06:56:43] <Skye> verifies the
signature using the public key and the previously generated
L127[06:56:56] <Izaya> no I mean doing it
without a data card would not be easy
L128[06:56:59] <Skye> with a data card it
is one line of code
L129[06:57:37] <Skye> wihtout a data card
you need SHA256, and ED25519
L130[06:57:40] <Skye> which uh
L131[06:57:48] <Skye> relatively
compact
L132[06:57:52] <Skye> but not enough for
an EEPROM
L133[06:59:07] *
Izaya nods
L134[07:00:13] <Izaya> I'm rather
impressed that this works so well though
L135[07:00:59] <Izaya> This is like, 3
libraries away from where PsychOS was.
L136[07:01:05] <Izaya> And a scheduler, I
guess.
L137[07:01:19] <Skye> key questions I have
about the data card
L138[07:01:33] <Skye> is it ED25519 or
P-256
L139[07:01:49] <Skye> basically it has
ECDH and ECDSA
L140[07:01:59] <Skye> but which curve does
it use
L141[07:11:40] <Skye> so OC uses a ECDH
curve
L142[07:11:48] <Skye> but I can't find any
docs
L143[07:11:50] <Skye> aaaaaa
L145[07:14:10] <Skye> 5 Recommended
Algorithms and Elliptic Curves
L146[07:14:26] <Skye> Furthermore, in
order to encourage interoperability, implementations
L147[07:14:28] <Skye> SHOULD use the
elliptic curve domain parameters specified by ANSI
L148[07:14:30] <Skye> [X9.62], NIST
[FIPS-186-2] and SECG [SEC2].
L149[07:14:52]
⇨ Joins: Inari
(Inari!~Pinkishu@p4FC1E088.dip0.t-ipconnect.de)
L151[07:15:55] <MichiBot> Thu May 17
14:59:41 CDT 2018 @dixonij: A friendly cyberawareness reminder that
this Royal Wedding 'Royal Name' meme thing is quite literally
asking for th…
https://t.co/vrrhz54E1R
L153[07:17:07] <Skye> basically
L154[07:17:19] <Skye> I think the data
card uses Curve P-256
L155[07:17:29] <Skye> while all
implementations of Curve 25519
L156[07:17:35] *
Skye sighs
L157[07:17:52] <Skye> as in
L158[07:18:02] <Skye> the only Lua /
simple implementations of EC stuff
L159[07:18:06] <Skye> use curve
25519
L160[07:19:42] <Skye> and apparently P-256
is not the greatest but is more common
L161[07:19:43] <Skye> bleh
L162[07:20:17] <Skye> Izaya, so here's the
question, would it be better to try to use the older stuff in Lua,
or to add the newer stuff to the data card
L163[07:22:27] <Skye> Izaya, if I wanted
to, I could try to implement the modern goodies on the data card
using existing Java code?
L164[07:22:34] <Skye> would it be worth
it?
L165[07:22:46] <Izaya> Newer algos would
be nice.
L166[07:22:52] <Izaya> But the question is
do you want to do it?
L167[07:23:05] <Izaya> If you'd enjoy it,
you should do it.
L168[07:25:36] <Skye> if I find the time I
will
L169[07:25:47] <Skye> Izaya, basically
will it more convenient?
L170[07:25:55] <Skye> like chacha20 is
simpler than AES
L171[07:26:18] <Skye> so will havving the
ability for it to work well in pure lua be better/
L172[07:26:18] <Izaya> If we can have
interoperable software and hardware crypto stuff that is more
compact that would be nice
L173[07:26:53] <Skye> Izaya, so basically
I need to find the most compact algorithms and then add them to the
data card?
L174[07:27:31] <Izaya> I mean, it's your
call. I'd find them useful, and I'm sure other people would too,
though.
L175[07:28:05] <Skye> so... chacha20
L176[07:28:12] <Skye> sha2 or sha3?
L177[07:28:21] <Skye> we might want a MAC
as well
L178[07:42:19] ⇦
Quits: ben_mkiv (ben_mkiv!~ben_mkiv@p57972032.dip0.t-ipconnect.de)
(Ping timeout: 194 seconds)
L179[07:56:36]
⇨ Joins: ben_mkiv
(ben_mkiv!~ben_mkiv@p57972032.dip0.t-ipconnect.de)
L180[09:29:14] *
Inari wonders if theres any loli tax accountants hireable in the
region around Frankfurt or Wurzburg :p
L181[10:57:46] <pwootage> I seem to be
getting SSL errors in Gradle attempting to download oc's API from
maven (hostname mismatch) but when I manually check it, it looks
fine. Any ideas what I have configured incorrectly?
L182[10:58:08] <pwootage> (this was
working fine 6 months ago, just updating everything)
L183[11:04:12] <AmandaC> pwootage: the
servers are in the processs of being updated, might be a problem in
that regard
L184[11:04:35] <pwootage> Hm, alright,
guess I'll just try again later :p
L185[11:04:52] <AmandaC> @Sangar might
know more, since he's the one updating the servers.
L186[11:22:20] <pwootage> Testing
now
L187[11:23:00] <pwootage> Looks good,
thanks!
L188[12:01:41] <Inari> So bored
L189[12:11:48] ⇦
Quits: TheCryptek (TheCryptek!~TheCrypte@ircbouncehouse.com) (Ping
timeout: 182 seconds)
L190[13:17:49]
⇨ Joins: TheCryptek
(TheCryptek!~TheCrypte@ircbouncehouse.com)
L191[13:28:26]
⇨ Joins: peelz_
(peelz_!kiwiirc@modemcable157.151-83-70.mc.videotron.ca)
L192[14:04:56] <payonel> peelz_: i
personally don't like `cp -i` as the default
L193[14:04:59] <payonel> but it's been
there a long time
L194[14:05:06] <peelz_> hmm
L195[14:05:21] <payonel> also, as i noted
in the github ticket, the transfer lib is internal
L196[14:05:34] <peelz_> yup I saw my gh
notifications :P
L197[14:06:05] <peelz_> So there's
currently no way to invert that?
L198[14:08:26] <payonel> options. unalias
cp in your .shrc | i change -f to override -i | i remove -i from
the default
L199[14:08:33] <payonel> | or do nothing
:)
L200[14:11:22] <peelz_> payonel: I
manually patched my cp to expose `f` LUL
L201[14:11:55] <CompanionCube> lol: 'No it
is not that simple as 64 bit architecture use processor registers
of 64 bits which are twice as large as 32 bit architecture. Because
of size, a 64 bit architecture is slower than a 32 bit architecture
and use more resources when using stuff are built for 32 bit
architecture as those probably don't take advantage of bigger
registers.' this is something someone said
L202[14:12:14] <payonel> peelz_: ...
L203[14:12:17] <payonel> peelz_: i was
wrong
L204[14:12:23] <peelz_> about what?
L205[14:12:39] <peelz_> Is it not
aliased?
L206[14:13:13] <peelz_> the alias is set
in /etc/profile.lua
L207[14:13:42] <payonel> transfer.batch
and the force override is not an oversight, that's how i wanted the
my internal lib to work as far as i remember, but that's besides
the point
L208[14:13:55] <payonel> it was an
oversight, rather, that the -f option isn't handled in
/bin/cp
L209[14:14:09] <payonel> now, since
transfer does respect -f more than -i, maybe i'll just expose
-f
L210[14:14:30] <payonel> and let some
crazy random person down the road complain that it doesn't match
real life
L211[14:14:37] <peelz_> lmao
L212[14:14:57] <payonel> Izaya: nice
work
L213[14:17:08] <payonel> Izaya: one other
thing maybe you could do:
load((([[...]]):gsub("E","elseif"))
L214[14:17:25] <payonel> that would save
45 bytes
L215[14:17:26] <payonel> :/
L216[14:17:31] <payonel> haha
L217[14:18:00] <payonel> i missed a ) or
something in that
L218[14:18:13] <payonel> but the gsub
result would need an additional () to not confuse load
L219[14:18:34] <payonel> load(
(([[]]):gsub()) )
L220[14:18:51] <AmandaC> I wonder if
@20kdc's compression would be minimisable enough to use as an
eeprom bootstrapper, Izaya
L221[14:24:45]
⇨ Joins: Doty1154
(Doty1154!~Doty1154@c-73-189-164-179.hsd1.ca.comcast.net)
L223[14:25:33] <peelz_> payonel: have you
seen the POC KVM code I sent you on Discord?
L224[14:26:29] <payonel> i'm rarely on
discord, sorry
L225[14:26:33] <payonel> i'll check
-
L226[14:26:35] <peelz_> ah that's what I
thought
L227[14:26:43] <payonel> but in the
future, feel free to paste it here and tag my nick
L228[14:26:44] <peelz_> I'll send a newer
version here hold up
L229[14:26:46] <payonel> i scroll
history
L231[14:39:17] <payonel> peelz_: you're
doing good work :) i wish sometimes i wasn't behind so many todos
for oc. and i could just play the game myself :)
L232[14:39:52] <peelz_> thanks :D I feel
you lol
L234[14:46:58] <payonel> AmandaC: i have
no idea what that is
L235[14:47:27] <AmandaC> payonel:
mailchimp is a mailinglist manager for companies to send stuff like
promotional emails
L236[14:47:52] <AmandaC> That's the page
someone got when clicking the "unsubscribe" link in one
of those such emails
L237[14:48:00] <payonel> AmandaC: but
there is something in the comment that grammatically confuses
me
L238[14:48:06] <payonel> "Periodic
reminder that we can see your MailChimp list names when we
unsubscribe"
L239[14:48:22] <AmandaC> payonel: we =
users who mailchimp is emailing on your behalf
L240[14:48:25] <payonel> ah, they can see
the GROUP NAME
L241[14:48:37] <payonel> "list
name" makes no sense to my brain
L242[14:49:00] <payonel> i feel a bit
dense
L243[14:49:00] <AmandaC> whatever company
that email was sent on behalf of, named the list for targetting the
email rudely
L244[14:49:03] <payonel> but i get it
now
L245[14:49:08] <payonel> yeah
L246[14:49:22] <payonel> i would call it
group name, but sure
L247[14:49:45] <payonel> i feel like
english isn't my native language trying to read that title
L248[14:49:56] <peelz_> lmfao
L249[14:50:01] <Mimiru> It's a Mailing
List, so it's the name of the list the "List Name" if you
will.
L250[14:50:02] <Mimiru> :P
L251[14:50:21] <payonel> this my brain,
ok?! => but where is the freaking verb?
L252[14:50:31] <payonel> "mailchimp
list" <- the noun
L253[14:50:35] <payonel> "names"
it names something
L254[14:51:05] <payonel> or does
mailchimp, the subject, list, the verb, some names, the
object
L255[14:51:09] <payonel> then i just
can't
L256[14:51:09] <AmandaC> `Mailchimp list's
name` would have been another way to word it
L257[14:51:43] <AmandaC> English is
Hardâ„¢
L258[14:52:04] <payonel> peelz_: it's not
easy :) haha
L259[14:52:04] <peelz_> payonel: if I
wanted to add /dev/ entries, how would I go about doing that? (for
my vscreens)
L260[14:52:06] <peelz_> D:
L261[14:52:15] <AmandaC> There's no devfs
API yet, is there?
L262[14:52:18] <payonel> do you want a
standalone pseudo file? or a component drive in components/ ?
L263[14:52:32] <AmandaC> s/API/public
API/
L264[14:52:32] <MichiBot> <AmandaC>
There's no devfs public API yet, is there?
L265[14:52:46] <peelz_> not sure what that
means haha
L266[14:52:51] <payonel> yeah, devfs is
only in its 2nd incarnation
L267[14:53:07] <payonel> i think something
needs like 10 revisions before it's probably stable (api)
L268[14:53:11] <AmandaC> haha
L269[14:53:31] <AmandaC> meanwhile, I've
had my kittiesdb REST API fixed at version 0 for like, years
L270[14:53:48] <payonel> peelz_: do you
want a new type of component to be listed? or do you just want a
/dev/{file} ?
L271[14:53:50] <AmandaC> ( That's not to
say I've not touched it / broken it, just that I'm too lazy to
label it )
L272[14:53:55] <peelz_> I wanted to do
something like this to print the vscreen buffer:
`/dev/vscreen/by-uuid/00000000-0000-...`
L273[14:54:08] <payonel> ah
L275[14:54:44] <payonel> you want
/lib/core/devfs/adapters/
L276[14:54:56] <peelz_> ah
L277[14:55:47] <AmandaC> payonel: have you
heard of the VS Session Sharing stuff, ooc?
L278[14:56:37] <payonel> ooc? vs as in vs
code? is this a plugin?
L279[14:56:53] <payonel> peelz_: 01_hw.lua
and 02_utils.lua load when devfs loads
L280[14:56:55] <AmandaC> ooc = out of
curiosity, and yeah, vs and vscode
L281[14:57:12] <payonel> 02_utils is what
creates the psuedo files, like /dev/null
L282[14:57:21] <payonel> and 01_hw is what
loads the adapters
L283[14:57:49] <peelz_> payonel: wait are
you sure it's ìn `/lib/core/devfs/adapters/`?
L286[14:58:23] <payonel> peelz_:
yeah
L287[14:58:40] <payonel> the 01_hw
02_utils are core files to devfs, don't change those
L288[14:58:44] <payonel> i'm just
explaining how it loads
L289[14:58:46] <AmandaC> It's not quite as
seamless on linux as win/mac, but they're working on it.
L290[14:58:52] <peelz_> ah
L291[14:58:59] <peelz_> parent folder,
gotcha
L292[14:59:01] <payonel> so 01_hw looks
for all components it gets from component.list()
L293[14:59:16] <payonel> and if looks for
${type_name}.lua in that adapters folder
L294[14:59:17] <peelz_> ah great I see it
now
L295[14:59:26] <payonel> yeah, don't
modify those, though
L296[14:59:33] <peelz_> obviously
haha
L297[14:59:34] <payonel> so if you have a
new type, add it to adapters
L298[14:59:42] <peelz_> okay
L299[14:59:59] *
payonel now catches up on AmandaC's cool comments
L300[15:00:20] <payonel> woah, made by
msft?
L301[15:00:22] <payonel> golly msft
L302[15:00:26] <payonel> you be cool
now
L303[15:00:34] <payonel> i've never been
anti-msft, tbh
L304[15:00:38] <payonel> used to work
there, in fact
L305[15:00:49] <AmandaC> heh
L306[15:00:50] <payonel> but i like the
dev stuff they've been doing in the past few years
L307[15:01:28] <payonel> AmandaC:
DEFINITELY worth looking into
L308[15:01:29] <payonel> thank you
L309[15:01:31] <AmandaC> on win/mac
clicking a link causes vscode to launch, though it's not wired up
in linux yet, it's marked for may 2018
L310[15:01:44] <payonel> i tutor a young
women, in college, and we use discord to work on her
assignments
L311[15:01:50] <payonel> she is using
vscode, so this would be better
L312[15:01:54] <AmandaC> nice. :D
L313[15:02:02] <AmandaC> I used it with my
co-admin to work on some of our ansible stuff
L314[15:02:17] <AmandaC> since he's much
more familiar with that shit than me.
L315[15:02:38] *
payonel fist bumps AmandaC
L316[15:02:40] <payonel> thanks for the
ref
L317[15:02:47] <Xal> 2018: electron text
editors
L318[15:03:01] <payonel> Xal: i dont
really care what it is built on
L319[15:03:03] <payonel> i like it
:)
L320[15:03:11] <AmandaC> It even supports
forwarding ports, so if you're working on something webby you can
even have it so they can access the dev instance on your machine
with localhost:foo too
L321[15:03:22] <payonel> heh, fancy
L322[15:03:41] <payonel> that wouldn't
affect me, but it is interesting
L323[15:03:45] <Xal> just means you'll
have to deal with js when writing extensions
L324[15:03:56] <peelz_> but js is great
>:(
L326[15:04:16] <peelz_> Who doesn't need a
little bit of js in their life?
L327[15:04:25] <AmandaC> js isn't as bad
as vimscript, at least.
L328[15:04:27] *
AmandaC hides
L329[15:04:49] <Xal> AmandaC: that is
actually true
L330[15:05:07] <AmandaC> and most of the
vscode stuff is written in TypeScript, which transpiles down to
JS.
L331[15:05:19] <Xal> typescript is really
just a bandaid
L332[15:05:26] <payonel> peelz_: the
adapter functional interpreter is fairly advanced --
L333[15:05:46] <Xal> also
L334[15:05:51] <Xal> >optional static
typing
L335[15:05:58] <payonel> it can handle a
few different types of functions and is intuitive about types
conversion (for some fixed cases)
L336[15:06:18] <peelz_> oh nice
L337[15:06:26] <payonel> peelz_: so, if
you have a "file function" you need some guidance on, and
the other adapters are confusing in that regard, feel free to poke
me
L338[15:06:44] <peelz_> will do!
L339[15:06:45] <payonel> just as long as
you don't assume this is an API :)
L340[15:06:54] <peelz_> I'm not there yet,
I was looking into that since I got that idea yesterday
L341[15:06:58] <payonel> though, it'll be
a LLOOOOONG time before i change this
L342[15:07:25] <peelz_> Hah, alright.
Hopefully it can become a documented API at some point
L343[15:08:00] <S3> I think I'm too tired
to write in Lua today lol
L344[15:08:17] <AmandaC> I should play
with my KOS stuff some more
L345[15:08:25] <AmandaC> %choose servery
or gamy
L346[15:08:25] <MichiBot> AmandaC:
servery
L347[15:08:30] <AmandaC> hrm.
L349[15:08:57] <S3> Does it olt work with
number indexed tables?
L350[15:09:01] <S3> I didn't think
so
L351[15:09:17] <AmandaC> `olt`?
L352[15:09:34] <AmandaC> oh, only
L353[15:09:50] <AmandaC> yeah # and
table.len only work with sequentially-indexed tables starting at
1
L354[15:09:59] <AmandaC> same as
ipairs
L355[15:10:25] <S3> I could have sworn I
have used something to count the number of things in a table like
this. weird.
L356[15:10:32] <S3> not even a month
ago
L357[15:10:42] <AmandaC> Maybe usng
metatable to overwrite #?
L358[15:10:46] <payonel> S3: there isn't.
but you can check if a table is empty
L360[15:10:59] <S3> That's really all Iw
ant to do
L361[15:11:01] <AmandaC> the metatable
function __len overrides #
L362[15:11:17] <payonel> if not next(tbl)
then print("it is empty") end
L363[15:11:45] <S3> I really just want to
check if the table has no keys
L364[15:11:53] <payonel> well, that'll do
it
L365[15:11:57] <S3> and tat's cool
AmandaC
L366[15:12:03] <S3> I didn't know abut
__len
L367[15:12:22] <S3> oh yeah I forgot about
next
L368[15:14:44] <S3> I don't think I've
used next in forever
L369[15:25:00] <payonel> peelz_: an rc
script is a collection of functions. if you `enable` an rc script,
the rc-manage attempts to call `start` when the system boots
L370[15:25:08] <payonel> that is the
extent of an rc script, really
L371[15:25:17] <payonel> there is no
process or stack or much else
L372[15:25:24] <peelz_> ah
L373[15:25:29] <payonel> once start()
finishes, it is done
L374[15:25:43] <payonel> but during
start(), the rc script may register stuff in the event system
L375[15:25:53] <payonel> that's generally
how an rc script runs as a daemon
L377[15:26:11] <payonel> you'd normally
expect to see some event.listen() calls in the rc script start, and
some event.ignore() calls in the stop
L378[15:26:44] <peelz_> so if that daemon
were to use vscreen, I'd need to spin up a process of its own in
order to detach it from the OS?
L379[15:26:50] <peelz_> not sure if I
understand correctly
L380[15:28:17] <payonel> you only need a
new process if you want to do things to the process meta without
affecting other processes
L381[15:28:49] <peelz_> so the way I made
that rc script, I'd need to create a new process so that it can get
a window of its own?
L382[15:28:49] <S3> I kinda wish you could
concatenate a table to a string the way you can print a table
address
L383[15:28:50] <payonel> what do you mean
by "detach it from the OS" ?
L384[15:29:03] <payonel> S3: you can if it
is an array
L385[15:29:17] <peelz_> well the
process.info().data.window would be the same one as the
shell?
L386[15:29:22] <payonel> peelz_: yes, but
why does the rc daemon need a window?
L387[15:29:37] <payonel> peelz_: yes, in
this case, same as the init process window
L388[15:29:52] <payonel> yeah, shell is
running in init
L389[15:29:55] <payonel> why? because
meh
L390[15:30:03] <peelz_> lol
L391[15:30:05] <S3> I'm using tables as
pid numbers like you were suggesting a ways back, payonel but it'd
be nice to be able to go 'cannot enqueue poccess with pid ' .. pid
': no such pid'
L392[15:30:07] <payonel> there are some
protections, not a lot
L393[15:30:14] <S3> I typoed that
L394[15:30:17] <S3> but you know what I
meant
L395[15:30:17] <peelz_> > why does the
rc daemon need a window?
L396[15:30:22] <peelz_> That's why I'm
making vscreen :P
L397[15:30:54] <peelz_> so that multiple
processes can register their own screens without needing multiple
physical screens
L398[15:31:02] <payonel> peelz_: your
daemon keeps a connection to the clients?
L399[15:31:06] <payonel> that's where you
manage the client list?
L400[15:31:20] <payonel> and vsmanage is
just a tool to send commands to the daemon?
L401[15:31:22] <S3> maybe I should use
decimals instead
L402[15:31:27] <peelz_> well not
really
L403[15:31:42] <S3> where the whole number
part is the cluster node ID
L404[15:31:48] <S3> and the fractional
part is the pid on that node
L405[15:31:55] <S3> 0 is reserved for
local system
L406[15:32:00] <peelz_> the daemon we're
talking about in this scenario isn't related to the project
L407[15:32:03] <S3> 0.123 is pid # 1234 on
the current node.
L408[15:32:04] <payonel> S3: so you'll
have holes? in that case, yeah, there isn't a one-liner per se for
that
L409[15:32:14] <peelz_> it's just a random
dameon that uses vscreen
L410[15:32:23] <S3> payonel oh yeah I
forgot about that problem
L411[15:32:25] <peelz_> programs have to
opt into using vscreen
L412[15:33:13] <payonel> peelz_: but yeah,
if you have a daemon that wants to write to a window and you want
it to be a custom window, it should run in a process
L413[15:33:27] <payonel> peelz_: but rc's
... for me to explain this you're going to have to do deeper
L414[15:33:42] <peelz_> hm
L415[15:33:53] <peelz_> "to do
deeper"?
L416[15:34:01] <payonel> yeah, i'll have
to pull back the curtain more
L417[15:34:05] <payonel> openos arch
L418[15:34:06] <peelz_> haha
L419[15:34:33] <payonel> peelz_:
so.......... event registration is the key to daemons
L420[15:34:40] <payonel> either you are
running on a timer, or listening for signals
L421[15:34:55] <payonel> the event
dispatcher runs on the root thread, which is init
L422[15:35:21] <peelz_> right
L423[15:35:21] <payonel> when ANY other
process is running, the core event dispatcher is handling those
signals and registrants on its own
L424[15:35:37] <payonel> that all happens
in the scope of the init thread
L425[15:36:12] <payonel> anyways -- the
point is
L426[15:36:38] <payonel> when your rc
event registered handlers are running, you dont know nor own the
process that might be executing
L427[15:36:55] <peelz_> right
L428[15:36:57] <payonel> in a better arch,
i would gave made sure it is the same process each time
L429[15:36:59] <payonel> but it might not
be
L430[15:37:02] <peelz_> but I could just
process.load() it?
L431[15:37:03] <payonel> why? memory
cost
L432[15:37:15] <peelz_> to spin a new
process
L433[15:37:24] <payonel> peelz_: but when
does that process return?
L434[15:37:31] <peelz_> it needs to
return?
L435[15:37:40] <payonel> a process runs
until completed
L436[15:37:44] <peelz_> oh yikes
L437[15:37:54] <payonel> yeah, not
multi-threaded :)
L438[15:37:57] <peelz_> hmm
L439[15:38:02] <peelz_> it can't run
detached and yield?
L440[15:38:14] <payonel> one step at a
tiem
L441[15:38:15] <payonel> time*
L442[15:38:44] <payonel> so, after you
create a process, you get back a coroutine, and you could resume
and yield it as you would any other coroutine
L443[15:38:44] <S3> Well I don't have to
randomize pids
L444[15:38:57] <payonel> peelz_: that's
not NORMALLY what i do with processes, but you could
L445[15:39:12] <peelz_> oh so it's doable
after all
L446[15:39:13] <peelz_> phew
L447[15:39:19] <payonel> normally, a
process is run in process.internal.continue
L448[15:39:24] <payonel> and that runs it
until completion
L449[15:39:30] <payonel> that is what
technically is called for all processes
L450[15:39:33] <payonel> shell
commands
L451[15:39:56] <payonel> but this is a bit
low level imo, requires you to do a bit of lifting with these low
level objects
L452[15:40:14] <payonel> what you really
want here, is a thread
L453[15:40:18] <payonel> ~w thread
L455[15:40:27] <payonel> that is a process
made for users
L456[15:40:30] <peelz_> threads are fairly
new, right?
L457[15:40:34] <payonel> and it yield and
resumes itself
L458[15:40:36] <payonel> yeah
L459[15:40:42] <peelz_> oh sweet
L460[15:40:50] <payonel> you have to still
yield, such as via event.pull or what not
L461[15:40:53] <peelz_> and threads get a
process of their own?
L462[15:41:00] <peelz_>
s/process/window
L463[15:41:01] <MichiBot> <peelz_>
and threads get a window of their own?
L464[15:41:01] <payonel> but inside your
thread code, you are in a process and also completely isolated from
the world
L465[15:41:11] <payonel> peelz_: they get
a process
L466[15:41:17] <payonel> and all processes
inherit meta from their parents
L467[15:41:21] <payonel> so, they do NOT
get a window
L468[15:41:24] <payonel> but you could
assign one
L469[15:41:27] <S3> payonel: I think I can
just keep a free_PIDs table and a table of processes by pid. when
you create a new process, it looks in the free pids table first. If
there are none then it makes a new one one larger than the current
cap
L470[15:41:28] <peelz_> perfect
L471[15:41:41] <payonel> S3: i think so,
yeah
L472[15:41:49] <payonel> peelz_: so i do
not recommend you create a new process
L473[15:41:52] <payonel> but a new
thread
L474[15:42:06] <peelz_> yeah it just
sounds like a workaround if threads weren't a thing lol
L475[15:42:15] <peelz_> or something I
would've had to do before threads became a thing
L476[15:42:15] <payonel> yep
L477[15:43:22] <payonel> i have to run for
a bit
L478[15:43:24] <payonel> good luck
:)
L479[15:43:27] <S3> I can still use
decimals too to recognize neighboring nodes.
L480[15:43:28] <peelz_> payonel: btw, I
can explain the arch of the vscreen project a bit more if you want,
just so you get the full picture
L481[15:43:31] <peelz_> ty :P
L482[15:46:01] <peelz_> vsmanage is a
program that's shipped with the dev lib. It exists on all the
client computers. When you run `vsmanage list`, it only lists the
screens registered by processes on the computer.
L483[15:46:56] <peelz_> vsmaster is the
daemon that runs on the machine with the screen, it receives and
manages all the register and bind requests from the clients
L484[15:48:26] <peelz_> vsremote (might
have to think of a better name) is the GUI that's used to control
the vsmaster daemon. It can request displaying (i.e. `bind`
command) a specific vscreen (with key combos like ^b, c)
L485[15:48:52] <peelz_> vsremote runs on
the same machine as vsmaster
L486[15:49:03] <peelz_> for now
anyway
L487[15:49:55] <peelz_> oh and when
vsmaster sends a `bind` command to a client, it registers a new gpu
component with the specified address (triggering
`component_added`)
L488[15:50:54] <peelz_> so implementers
are gonna have to make sure they're a) running in a process of
their own; and b) they can handle dynamically rerenderieng the
screen
L489[15:51:13] <peelz_> hopefully that
makes sense
L490[15:53:43] <peelz_> multiple machines
(clients) run `/usr/lib/vscreen + /usr/bin/vsmanage`, and only one
master server runs `vsmaster + vsremote`
L491[16:05:34] <S3> Woops :D
L492[16:05:40] <S3> Can't enqueue pid 1:
No such pid
L493[16:05:40] <S3> TESTING! My PID is:
1
L494[16:05:48] <S3> I got some logic going
on here..
L495[16:05:54] <S3> problems*
L496[16:07:07] <S3> ok it works :D
L497[16:09:55] ⇦
Quits: ben_mkiv (ben_mkiv!~ben_mkiv@p57972032.dip0.t-ipconnect.de)
(Ping timeout: 198 seconds)
L500[16:15:27] <S3> payonel: ^
L501[16:15:36] <S3> so now I just need to
convert to decimals
L502[16:16:54] <S3> I believe the next
step after that is to pcall all coroutine runs
L503[16:17:15] <S3> so I can catch process
crashes and send an event for their supervisors to reboot
them
L504[16:17:19] <S3> or ignore them
L505[16:21:15] <S3> decimals
complete
L506[16:21:29] <S3> TESTING! My PID is:
0.001
L507[16:21:33] <S3> maximum of 999
processes :D
L508[16:22:09] <S3> (0.000 is an ilegal
pid)
L509[16:22:20] <S3> or anything .000
L510[16:27:28] ⇦
Quits: Keridos
(Keridos!~Keridos@static.56.72.76.144.clients.your-server.de)
(Quit: ZNC - http://znc.in)
L511[16:27:59]
⇨ Joins: Keridos
(Keridos!~Keridos@static.56.72.76.144.clients.your-server.de)
L512[16:37:22] <S3> It all works :D
L513[16:39:36] <peelz_> I keep writing
"||" instead of "or". I can't help it
L514[16:39:37] <peelz_> D:
L515[16:52:24]
⇨ Joins: ben_mkiv
(ben_mkiv!~ben_mkiv@p57972032.dip0.t-ipconnect.de)
L516[17:02:19] <S3> payonel: What do you
think of this? :)
L518[17:03:00] <S3> I don't want to have
that local log handler there, but the idea is that this is the
anatomy of a process
L519[17:03:58] <S3> callbacks are pretty
easy to register, and the idea is that theres some meta table magic
to do something kind of like actor.log("Test") and it
will figure it out
L520[17:04:21] <S3> however there's
challenges such as that pids are decimals not tables
L521[17:04:27] <S3> if pids were tables it
would have worked great
L522[17:07:29] <S3> if you don't call
spin, the process quits, which is good
L523[17:07:41] <S3> spin() is actually a
helper for callbacks and handles yields for you
L524[17:33:00] <Izaya> AmandaC: I believe
that compression setup has a not insignificant runtime, which is
fine for 64k, but not for 4k
L525[17:33:13] <AmandaC> Izaya: ah
L526[17:34:50] <S3> Izaya: it's
coming!
L527[17:35:01] <S3> the actor model stuff
is working so far
L528[17:35:08] <Izaya> Ooooooo
L529[17:47:17] ⇦
Quits: Inari (Inari!~Pinkishu@p4FC1E088.dip0.t-ipconnect.de) (Quit:
'Flow, like the river.' - Hanzo (Overwatch))
L530[17:47:40] <S3> Izaya: what do you
think of this for my OS though, two functions to spawn processes,
spawn and dspawn. spawn will spawn a process on the current node,
while dspawn will instead announce a process spawn broadcast on the
network, all nodes in the cluster will hash the resource path
(filename i.e.) and determine which node will load the lua code for
the process via its clustering filesystem, Centrifuge FS. this way,
processes get distributed around the
L531[17:47:40] <S3> network.
L532[17:48:34] <S3> the third is pspawn
which loads and spawns a process on EVERY node.
L533[17:49:20] <S3> a process that does
this on my OS is the combonent bus, which makes every component on
the network appear to all computers as one computer's worth of
components
L534[17:49:50] <S3> it's really just a way
to prevent nodes from doing weird things to components attached to
both nodes
L535[17:53:20] *
Izaya nods
L536[17:53:53] <S3> I know I yabber
L537[17:58:10] <S3> My ISP keeps calling
me asking if I want to purchase the same thing every time they
call
L538[17:58:22] <S3> they're asking if I
want voip phone service
L539[17:58:57] <S3> I have my own asterisk
server, you can't top my prices, I pay less than something between
.007 and .007 cents per minute per line with infinite phone
lines
L540[17:59:15] <Skye> O_O
L541[17:59:18] <S3> that is what I tell
them
L542[17:59:21] <Skye> how do you get that
good deal
L543[17:59:28] <S3> and then they call
back every day and say would you like voip service?
L545[18:00:53] <S3> scroll down and look
at those :D
L546[18:01:29] <S3> ok 0.7 cents a minute
now
L547[18:01:33] <S3> but it's still
extremely cheap
L548[18:01:40] <S3> it used to be much
cheaper
L549[18:02:49] <S3> Skye: the best part is
unless the terms have changed and I havent noticed there's no
monthly charge besides the phone numbers which are like a dollar a
piece
L550[18:03:02] <S3> so you literally just
pay for the line use pretty much
L551[18:03:42] <S3> you can also get
vanity 1800 numbers for like $2
L554[18:05:15] <S3> hm. I have an
idea..
L555[18:05:56] <S3> Izaya: what do you
think about being able to stack my OS under / on top of OpenOS, so
that you can keep the OpenOS interface, and just start making calls
to actors.
L556[18:06:01] <S3> from from your OpenOS
programs
L557[18:06:10] <S3> in an automatic
clustering system
L558[18:06:30] <Izaya> It'd be nice
L559[18:06:45] <Izaya> I tried to get OOS
running on PsychOS once and it didn't work though
L560[18:06:56] <S3> Skye: whats that
like
L561[18:07:07] <Skye> S3, haven't use
AAISP yet
L562[18:07:14] <S3> what is that
L563[18:07:16] <Skye> but they do have
number porting so I'm planning on using them
L564[18:07:21] <Skye> best UK ISP
L566[18:09:30] *
AmandaC decides to go play some more Yonder instead of coding more,
though
L567[18:10:13] <S3> what is yonder
L568[18:10:18] <S3> a game
L570[18:10:44] <AmandaC> Yes,
L572[18:20:10] ⇦
Quits: Doty1154
(Doty1154!~Doty1154@c-73-189-164-179.hsd1.ca.comcast.net) (Quit:
Leaving)
L573[18:38:52] ⇦
Quits: Corded (Corded!~MichiBot@eos.pc-logix.com) (Remote host
closed the connection)
L574[18:39:00]
⇨ Joins: Corded
(Corded!~MichiBot@eos.pc-logix.com)
L575[18:39:01]
zsh sets mode: +v on Corded
L576[18:39:02] <Mimiru> working now
@Forecaster ?
L577[18:39:31] <peelz_> how can I make a
table return docs when evaluated throug the lua interpreter?
L578[18:40:05] <Forecaster> nope
L579[18:40:07] <peelz_> e.g. `=component`
returns info about the methods, their signature and a comment
explaining its purpose
L580[18:44:44] <peelz_> I figured it out
-- docs are generated through native code magic ;w;
L582[18:44:52] <peelz_> __tostring, here I
come
L583[18:45:52]
<Forecaster>
Now it's working :D
L584[18:55:30] <Mimiru> I saw my message
when I sent it
L585[18:56:31]
<Forecaster>
I think my desktop client was borked still
L586[18:56:43]
<Forecaster>
Cause nothing was showing up there
L587[18:56:51]
<Forecaster>
%loot
L588[18:56:51] <MichiBot> Forecaster: You
get a loot box! It contains a expired lottery ticket.
L590[19:16:26] <S3> my init is
crashing
L591[19:16:28] <S3> whyyyyy
L592[19:16:34] <S3> or something
L593[19:23:23] ⇦
Quits: Vexatos
(Vexatos!~Vexatos@p200300C107179417E6752CEF91E246A9.dip0.t-ipconnect.de)
(Quit: Insert quantum chemistry joke here)
L594[19:42:12] <S3> THERE
L595[19:42:17] <S3> OS is up and
running
L596[19:43:10]
⇨ Joins: ben_mkiv|afk
(ben_mkiv|afk!~ben_mkiv@p4fed41a6.dip0.t-ipconnect.de)
L597[19:44:51]
⇨ Joins: Cervator
(Cervator!~Thunderbi@2601:4c1:4001:1d5d:f14c:e442:be77:2a5d)
L598[19:45:40] ⇦
Quits: ben_mkiv (ben_mkiv!~ben_mkiv@p57972032.dip0.t-ipconnect.de)
(Ping timeout: 182 seconds)
L599[19:54:35]
⇨ Joins: DarkCow
(DarkCow!~MrDark@2607:fcc8:d48b:eb00:3ca5:f1b:98e4:1af9)
L600[19:55:39] ⇦
Quits: Dark (Dark!~MrDark@2607:fcc8:d48b:eb00:f501:96a3:6707:2994)
(Ping timeout: 202 seconds)
L601[19:58:09] ⇦
Quits: ben_mkiv|afk
(ben_mkiv|afk!~ben_mkiv@p4fed41a6.dip0.t-ipconnect.de) (Ping
timeout: 198 seconds)
L602[20:26:26] <S3> okay guys
L604[20:26:34] <S3> What am I
missing?
L605[20:26:47] <S3> Beside the code
obviously
L606[20:26:51] <S3> these are the calls
for my VFS
L607[20:27:14] <AmandaC> You're closing
the register_sync before the callback
L608[20:27:32] <AmandaC> ( `),` )
L609[20:27:53] <S3> oh shit
L610[20:28:09] <S3> what I meant though
was what what I missing for VFS functions :D
L611[20:29:31]
<Brisingr
Aerowing> @Skye In reference to your crypto convo above, there's
a library called Pure Lua Crypto with a number of algorithms.
L613[20:29:56]
<Skye> I
know
L614[20:29:57] <S3> oh neat
L615[20:30:09]
<Skye> But
it has different algorithms to the data card
L616[21:09:15] <AmandaC> %choose accept
10$ or don't
L617[21:09:15] <MichiBot> AmandaC:
don't
L618[21:09:21] <AmandaC> night
nerds.
L619[21:09:29] <peelz_> night
L620[21:12:47] <S3> Almost...
L621[21:12:58] <S3> tryng to get callbacks
to actually work
L622[21:23:46] ⇦
Quits: erratic (erratic!erratic@shells.yourstruly.sx) (Quit: this
server has gone to sleep)
L624[21:57:15]
⇨ Joins: erratic
(erratic!erratic@shells.yourstruly.sx)
L625[22:17:03]
<MalkContent> anyone successfully made
robots use tc gauntlets?
L626[22:18:30] <Izaya> but they don't have
hands
L627[22:35:21] ⇦
Quits: Cervator
(Cervator!~Thunderbi@2601:4c1:4001:1d5d:f14c:e442:be77:2a5d) (Quit:
Cervator)
L628[22:53:17]
<MalkContent> I.. uh.. huh.