<<Prev Next>> Scroll to Bottom
Stuff goes here
L1[01:13:10]
<Forecaster>
%inv add a weird mental feel
L2[01:13:11] *
MichiBot summons 'a weird mental feel' and adds to her inventory.
This seems very sturdy.
L3[01:13:18]
<Forecaster>
%pet amanda
L4[01:13:18] *
MichiBot pets amanda with @Forecaster's doorknob collection. 3
health gained!
L5[01:13:25]
<Forecaster>
what D:
L6[01:13:30]
<Forecaster>
MichiBot!
L7[01:14:15]
<Forecaster>
%loot
L8[01:14:16] <MichiBot> Forecaster: You get
a loot box! It contains a Magic monitor stand bolt! (25%)
L9[01:26:35] ⇦
Quits: Doty1154
(Doty1154!~Doty1154@c-73-189-164-179.hsd1.ca.comcast.net) (Quit:
Leaving)
L11[01:44:10]
<Forecaster>
so... this is a thing...
L12[01:44:20]
<Forecaster>
hashtag stupid kickstarters
L13[01:52:06]
<logan2611>
so whats the practical use of this
L14[01:54:48]
<Forecaster>
there's none, it's for "showing off"
L15[01:55:03]
<logan2611>
hmm
L16[01:55:07]
<logan2611>
so why is this on kickstarter
L17[01:55:23]
<Forecaster>
because someone had this idea and wants money for it?
L18[01:55:28]
<logan2611>
understandable
L19[03:46:47] ⇨
Joins: CommonwealthOfPolandAndS
(CommonwealthOfPolandAndS!~commonwea@198.154.110.130)
L20[03:47:11] ⇦
Quits: CommonwealthOfPolandAndS
(CommonwealthOfPolandAndS!~commonwea@198.154.110.130) (Client
Quit)
L21[04:04:10]
<Forecaster>
%loot
L22[04:04:11] <MichiBot> Forecaster: You
get a loot box! It contains a chocolate bar that was left out in
the sun.
L23[04:10:27] ⇨
Joins: Skiuileuf
(Skiuileuf!~skiuileuf@198.154.110.130)
L24[04:22:21] ⇦
Quits: Skiuileuf (Skiuileuf!~skiuileuf@198.154.110.130) (Remote
host closed the connection)
L25[04:44:20] ⇨
Joins: Inari (Inari!~Pinkishu@84.175.255.108)
L29[05:50:33]
<Forecaster>
wont stay shiny for long in a desert though :P
L30[05:50:46] <Izaya> nonsense
L31[05:50:51] <Izaya> where else will it
get a good sandblasting?
L32[05:59:48] <Inari> vifino: lewd
L33[06:13:00] ⇦
Quits: Dark (Dark!~MrDark@2607:fcc8:d48b:eb00:713b:4a3b:511a:f107)
(Read error: Connection reset by peer)
L34[06:15:55] ⇦
Quits: ben_mkiv (ben_mkiv!~ben_mkiv@p57972C4E.dip0.t-ipconnect.de)
(Ping timeout: 198 seconds)
L35[06:17:31] ⇨
Joins: Dark
(Dark!~MrDark@2607:fcc8:d48b:eb00:a466:b84d:280d:3e1c)
L36[06:20:20]
<Forecaster>
%inv add sand, sand everywhere
L37[06:20:20] *
MichiBot summons 'sand, sand everywhere' and adds to her inventory.
This seems rather fragile...
L38[07:05:33] ⇨
Joins: ECS (ECS!~ECS@94.242.34.251)
L39[07:05:42] ⇦
Quits: ECS (ECS!~ECS@94.242.34.251) (Client Quit)
L40[07:11:58] <Izaya> ~w internet
L43[07:30:28] ⇨
Joins: DarkCow
(DarkCow!~MrDark@2607:fcc8:d48b:eb00:edd1:ce5e:c2f5:31c4)
L44[07:31:11] ⇦
Quits: Dark (Dark!~MrDark@2607:fcc8:d48b:eb00:a466:b84d:280d:3e1c)
(Ping timeout: 202 seconds)
L45[07:37:35] <Inari> %pet DarkCow
L46[07:37:36] *
MichiBot pets DarkCow with a cowhouse. 10 health
gained!
L47[07:37:44] <Inari> MichiBot 10/10
L48[07:38:04] <Inari> MichiBot++
L49[07:38:05] <MichiBot> Inari: Michibot
now has 25.0000000000001 points
L51[07:39:05] <Temia> Pff
L52[07:39:41] <Inari> %pet Temia too
L53[07:39:41] *
MichiBot pets Temia too with sand, sand everywhere. 1 health
gained!
L56[07:39:58] <Inari> Forecaster++
L57[07:39:59] <MichiBot> Inari:
Forecaster|AFK now has 2147484658.0 points
L58[07:40:19] <Inari> Temia: Sand
cleans!
L59[07:40:20] *
Temia shakes the sand off
L60[07:40:58] <Temia> Do I look like a
gerbil? D:
L62[07:42:34] <Inari> gerbil, cowbil, cow
with a bill
L64[07:43:17] <Temia> ...no
L65[07:43:23] <Temia> Not even.
L67[07:43:33] <Inari> But you like
birds
L68[07:43:59] *
Temia lightly baps
L70[07:44:12] <Temia> Not ducks D:
L71[07:44:29] <Inari> I'm fairly sure birds
other than ducks have bills?
L72[07:44:38] <Temia> Not geese
either
L73[07:44:45] <Temia> Or swans, or...
L75[07:45:03] <Inari> I need a cow in
Starbound
L77[07:49:04] <Inari> %inv add an
egg-laying wool-milk-sow
L78[07:49:04] *
MichiBot summons 'an egg-laying wool-milk-sow' and adds to her
inventory. This seems rather fragile...
L80[08:09:44]
<Forecaster>
it's a cat
L81[08:10:22] <AmandaC> The design at a
quick glance made me think of Okami's markings
L82[08:11:46] <AmandaC>
s/Okami's/Amataratsu's (in Okami)/
L83[08:11:46] <MichiBot> <AmandaC>
The design at a quick glance made me think of Amataratsu's (in
Okami) markings
L87[08:19:53] <Inari> Though currently my
illness is more sneezing and throatpain than coughing
L88[08:21:10] ⇨
Joins: Thutmose
(Thutmose!~Patrick@host-69-59-79-181.nctv.com)
L89[08:23:57]
<MGR>
%ohno
L90[08:23:58] <MichiBot> MGR: ohno
L91[08:30:01] <Izaya> does .install run
before or after install executes
L92[08:34:17] <Izaya> well
L93[08:34:31] <Izaya> it appears that it
runs instead of normal installation
L94[08:37:05] <Orbstheorem> Hi, I'm trying
to send and receive broadcast messages: I'm using
`component.modem.broadcast(36992, "Hello")` on one
computer and `local _, localNetworkCard, remoteAddress, port,
distance, payload = event.pull("modem_message")` in the
other one. The receiving computer freezes and I don't get any
messages
L95[08:37:23] <Orbstheorem> I can see the
messages passing with the relay block
L96[08:37:24] <Izaya> Did you open the port
on the receiving computer?
L97[08:37:44] <Orbstheorem> No :(
L98[08:37:54] <Izaya>
component.modem.open(36992)
L99[08:39:07] <Inari> %pet AmandaC
L100[08:39:08] *
MichiBot pets AmandaC with a hollowed-out bible with a handgun in
it. 2 health gained!, an adventurer came by and claimed the
hollowed-out bible with a handgun in it was the artifact they were
looking for to save their village.
L101[08:39:34] <Inari> And thus a cult was
born
L102[08:39:37]
<Forecaster>
xD
L103[08:39:38] <Orbstheorem> Yay :D
L104[08:39:42] <Orbstheorem> thansk!
L105[08:39:46] <Orbstheorem> thanks*
L106[08:39:55]
<Forecaster>
you're welcome random citizen
L107[08:40:04] <Orbstheorem> :D
L108[08:40:23] <Orbstheorem> what are the
consequences of opening all ports?
L109[08:40:43] <Orbstheorem> increased
memory usage?
L110[08:41:20]
<Forecaster>
nothing really
L111[08:41:29]
<Forecaster>
it'll just catch any and all broadcasts
L112[08:41:49]
<Forecaster>
which wont do anything if you don't have any other computers
broadcasting
L113[08:42:27]
<Forecaster>
which wont do anything if nobody have any other computers
broadcasting [Edited]
L114[08:45:39] ⇦
Quits: Thutmose (Thutmose!~Patrick@host-69-59-79-181.nctv.com)
(Quit: Leaving.)
L115[08:46:13] <Orbstheorem> And also
takes a long time :(
L116[08:49:33] <Izaya> huh, mayonel isn't
here
L117[08:52:22] <Inari> s/have/has/
L118[08:52:22] <MichiBot>
<Forecaster> which wont do anything if nobody has any other
computers broadcasting [Edited]
L119[09:11:03]
<Forecaster>
mayo has no bouncer
L120[09:12:59] <Izaya> they do
though
L121[09:13:07] <Izaya> and after a quick
look they're here under another name
L122[09:15:55]
<Forecaster>
oh
L123[09:25:15] <Izaya> oh hey there's a PR
to add Solaris natives
L124[09:25:18] <Izaya> that's mildly
amusing
L125[09:32:43] <S3> Hey does OC yield the
coroutine when using sleep?
L126[09:33:27] <AmandaC> openos does
L127[09:33:35] <AmandaC> sleep isn't
provided to other OSes
L128[09:34:13] <AmandaC> ( BEcause it's
trivial to implement, and deeply tied to the OS's event pump
)
L129[09:35:03] <S3> Yeah I just saw
that
L130[09:35:37] <S3> I wish that someone
made an event firing timer though
L131[09:35:46] <S3> But into the ocean
api
L133[09:36:21] <S3> Would make things a
lot easier than watering time making timers like it was 1995 in
qbasic
L134[09:36:32] <S3> Wasting*
L135[09:37:37] <S3> Because it has to do
in my scheduler wasting runs
L136[09:37:50] <S3> When other stuff is
multitasking
L137[09:39:32] <S3> Fortunately it's only
a problem when other events are happening
L138[09:41:07] <S3> At least it's easy to
make a timer on my os, by just spawning ba process that sends you
any message you want to any process I'd you wish after an
interval
L140[09:51:31] <S3> I wonder how many
coroutine I can spin up at once
L141[09:52:21]
⇨ Joins: Cervator
(Cervator!~Thunderbi@2601:4c1:4001:1d5d:29b2:6893:d93f:258c)
L142[09:53:49] <S3> Much as i want
relatively speaking I guess
L143[09:57:53]
<MGR>
%defragment
L144[09:58:01]
<MGR> Didn't
that used to be a command?
L145[09:58:34]
<MGR>
%defragment MichiBot
L146[09:58:34] ⇦
Quits: Guest13 (Guest13!~sh@ustj-77-106-10-155.vologda.ru) (Read
error: Connection reset by peer)
L147[09:58:54]
⇨ Joins: Guest13
(Guest13!~sh@shpd-178-69-111-32.vologda.ru)
L148[09:59:36] *
MajGenRelativity defragments MichiBot
L149[09:59:44]
<MGR>
¯\_(ツ)_/¯
L150[10:09:47] <AmandaC> %defrag
L151[10:09:49] <Mimiru> Izaya, payonel is
here
L152[10:09:52] <Mimiru> Guest7358
L153[10:09:56] <AmandaC> no idea
L154[10:09:58] *
Izaya nods
L155[10:10:00] <Mimiru> Or, was..
L156[10:10:13] <Mimiru> That was his nick
:P
L157[10:11:45] <Mimiru> Hmm..
L158[10:11:45] <Mimiru> no
L159[10:11:57] *
Mimiru pokes znc
L160[10:12:29] <Mimiru> Ah
L161[10:12:30] <Mimiru> Guest13445
L162[10:13:31] <Mimiru> Re: defrag, iirc
that was part of the reactions, and those are disabled right
now
L163[10:13:37] <AmandaC> ah
L164[10:13:56] <Mimiru> Yep,
confirmed.
L165[10:15:49] <Mimiru> %restart
L166[10:15:52] ⇦
Quits: MichiBot (MichiBot!~MichiBot@eos.pc-logix.com)
()
L167[10:16:21]
⇨ Joins: MichiBot
(MichiBot!~MichiBot@eos.pc-logix.com)
L168[10:16:21]
zsh sets mode: +v on MichiBot
L169[10:17:00] *
Mimiru defragments MichiBot
L170[10:17:09] <MichiBot> That
tickles!
L171[10:17:32]
<MGR>
Eyy
L172[10:17:35]
<MGR> It's
back
L173[10:17:39]
<MGR> Thank
you Mimiru
L174[10:17:48]
<MGR> I knew
I wasn't crazy
L175[10:17:58] <Mimiru> Well....
L176[10:18:03] <Mimiru> :P
L177[10:23:00] <Inari>
reinterpret_cast<PIllow*>(AmandaC)->lieOn();
L178[10:23:21] <S3> You all are
crazy
L179[10:34:29] <Orbstheorem> Hey, is there
any way to run shell scripts?
L180[10:34:37] <Orbstheorem> do shebangs
work?
L181[10:34:46] <Orbstheorem> I just don't
want to use the shell API :P
L182[10:36:15] <Izaya> I think they
do.
L183[10:42:44] <AmandaC> Inari: no getting
snot in my fur. D:
L184[10:42:55] <Inari> :P Well I said
pillow, not tissue!
L185[10:48:46]
<Ristelle>
in OC's GPU it says that setBackground needs to be sent as a number
but in the 0xRRGGBB format
L186[10:48:52]
<Ristelle>
how am i supposed to do that?
L187[10:49:31] <Skye> 0xFFFFFF is
white
L188[10:49:37] <Skye> 0x000000 is
black
L189[10:49:42]
<Ristelle> I
know that
L190[10:49:47]
<Ristelle>
but it expects a number
L191[10:49:53] <Inari> 0xFFFFFF is a
number
L192[10:49:54] <Skye> that's not in
OC?
L193[10:49:54]
<Ristelle>
not a "0xFFFFFF" string
L194[10:49:59] <Skye> you literally
L195[10:49:59] <Inari> No string
L196[10:50:00] <Inari> Just
L197[10:50:02] <Inari> 0xFFFFFF
L198[10:50:07] <Skye>
gpu.setBackground(0xFFFFFF)
L199[10:50:12]
<Wuerfel_21>
leave the quotes off
L200[10:50:23] <Inari> 0x means you input
hexadecimal instead of decimal :D
L201[10:50:28]
<Ristelle>
and how do I get it from the string "0xFFFFFF" ->
0xffffff
L202[10:50:30]
<Mimiru>
0xFFFFFF is indeed a number
L203[10:50:33] <Inari> So 0xF is like
writing 15
L204[10:50:37]
<Ristelle> I
know that ?
L205[10:50:40] <Inari> Oh
L206[10:50:43] <Inari> You have a string,
for some reason
L207[10:50:50]
<Ristelle>
Yes I do
L208[10:50:58]
<Mimiru>
theres a function for that! Somewhere. :P
L209[10:51:13] <Inari>
tonumber("0xFFFFFF")
L211[10:51:21]
<Mimiru>
that
L212[10:51:22]
<Ristelle>
Thanks
L213[10:51:25]
<Mimiru> 's
the one
L214[10:51:40] <Inari> I thought you had
to specify the base, buta pparently not, and it knows the 0x means
hexa
L215[10:52:08]
<Mimiru>
Ok... now to figure out how to get HexChat to run on osx
L216[10:53:50]
<Mimiru>
First person to give me shit about osx gets a 10 minute timeout.
:p
L217[10:54:16]
<Wuerfel_21>
hmm, the serialization API serializes everything in decimal IIRC?
one could write one that uses hex when appropriate
L218[10:54:29]
<Wuerfel_21>
to save a couple bytes on large integers
L219[11:00:20] <Mimiru> Ok... it's HexChat
2.10.2... but it's HexChat at least.
L220[11:07:24] <Inari> I wonder if its
possible to sneeze while asleep
L221[11:07:45]
⇨ Joins: Vexatos
(Vexatos!~Vexatos@p200300C10717943207851660F240505D.dip0.t-ipconnect.de)
L222[11:07:45]
zsh sets mode: +v on Vexatos
L223[11:08:57] *
Inari sneezes at Vexatos
L224[11:09:00]
<Wuerfel_21>
%tonk
L225[11:09:00] <MichiBot> I'm sorry
Wuerfel_21, you were not able to beat Forecaster's record of 1
week, 5 days, 2 hours, 10 minutes, 50 seconds this time.
L226[11:09:01] <MichiBot> 5 days, 17
hours, 40 minutes, 19 seconds was wasted!
L227[11:09:18]
<Wuerfel_21>
%loot
L228[11:09:18] <MichiBot> Wuerfel_21: You
get a loot box! It contains a broken .7z.
L229[11:09:26]
<Wuerfel_21>
meh
L230[11:09:29]
<Wuerfel_21>
%loot
L231[11:09:29] <MichiBot> Wuerfel_21: You
get a loot box! It contains the official baby talk translation
guide.
L232[11:09:32] <Inari> %loot
L233[11:09:32] <MichiBot> Inari: You get a
loot box! It contains a living tombstone.
L234[11:09:49]
<Wuerfel_21>
that may come in handy
L235[11:15:06] *
Vexatos unsneezes himself
L236[11:17:07] <Orbstheorem> So, I have a
transposer inside a microcontroller. I run this script:
https://paste.gnugen.ch/raw/prdb but It does not
move any items, if I use down instead of up, it works as expected.
Can this be a bug?
L237[11:20:49] <Orbstheorem> NB: I have an
ic2 nuclear reactor on both above and bellow
L238[11:23:43] <Mimiru> %loot
L239[11:23:43] <MichiBot> Mimiru: You get
a loot box! It contains a twig.
L240[11:23:58] *
Mimiru sighs and throws it on the pile of other useless shit she's
got from MichiBot
L241[11:23:59] <MichiBot> Hello
Mimiru
L242[11:24:00] <MichiBot> Okay
L243[11:24:01] *
MichiBot purrs
L244[11:24:20] <Mimiru> And THIS is why
the response module was disabled.
L245[11:24:21] <Mimiru> lmao
L246[11:24:43] *
Mimiru shanks @Forecaster
L247[11:24:55] <AmandaC> O.o
L248[11:25:04] <AmandaC> %blame
@Forecaster
L249[11:25:04] *
MichiBot blames @Forecaster for adding cattle prods to the
inventory!
L250[11:59:29] <Guest13> so I forgot to
implement getViewport and setViewport in my gpu virtual component.
how could that be that /lib/tty didn't crash as soon as getViewport
is attempted to be called? It only crashed later, when it tried to
use tty.window.height, which was uninitialized
L251[12:01:18] <Guest13> Is it possibly
called by one of /boot scripts first, which wraps it inside a
pcall() and ignores any errors, even if those invalidate library
state?
L252[12:01:40] <Guest13> I'm just used to
more strict approach with python; maybe that's what I should expect
in lua?
L253[12:02:12] <Guest13> Or should either
/lib/tty or the unknown /boot script handle this sort of
error?
L254[12:09:45] <Guest13> This is code
quality question rather than anything else
L255[12:10:31]
<Wuerfel_21>
possibly some effort for backwards compat with old OC
versions?
L256[12:13:10]
⇨ Joins: ben_mkiv
(ben_mkiv!~ben_mkiv@p57972C4E.dip0.t-ipconnect.de)
L257[12:22:42] <AmandaC> getViewport isn't
used as much as getResolution, in my experience
L258[12:27:56] <Guest13> what's the
difference between them?
L259[12:29:36] <AmandaC> viewport is a
subset of resolution
L260[12:30:01] <ben_mkiv> and doesnt have
to start at 0,0?!
L261[12:30:20] <Guest13> gpu.getViewport()
only returns a pair of numbers
L262[12:30:33] <Guest13> tty viewport
concept might be different from that tho
L263[12:34:23] <Guest13> gpu.viewport is
only called under condition in /lib/tty tho: if window.fullscreen
and screen and not screen_cache[screen] then.
L264[12:39:00] <S3> I'm working on
something i think is cool like open computers
L265[12:39:09] <S3> In open
computers*
L266[12:39:36] <S3> What do you guys think
about a Hayes command set program for the modems?
L267[12:40:32]
<Ristelle>
Right soo Apparently... the struct library I'm using is far too
slow.
L268[12:41:02]
<Ristelle>
and crashes with a too long without yielding
L270[12:41:31] ⇦
Quits: jazzpi (jazzpi!~jazzpi@jazzpis.space) (Quit: ZNC - http://znc.in)
L271[12:41:53] <Guest13> payonel ^ please
check this out. this feels like a bug fix to me, while i'm not
really sure that i'm just not doing something wrong instead
L272[12:42:22] <S3> Ristelle you need to
yield! :):)
L273[12:42:27] <S3> Bed nice to your
fellow processes
L277[12:45:26] <S3> Are you trying to
binary pack data in lua?
L278[12:45:34]
<Ristelle>
unpack
L279[12:46:00] <S3> Using lua5.3 and the
bitwise operators?
L280[12:46:08] <S3> Not the
functions
L281[12:46:27]
<Ristelle>
Not using bitwise as of yet
L282[12:46:37] <S3> The operators are
faster because less shindig call overhead
L283[12:46:48] <S3> Function call*
L284[12:47:16]
<Ristelle>
hmm there is no string.unpack right?
L285[12:47:22] <S3> Also if you are using
a loop make sure you're yielding in it
L286[12:47:39]
<Ristelle>
yielding as in?
L287[12:47:45] <S3> I don't think there is
no, at least bit the one your looking for
L288[12:48:03] <S3> Coroutine
yielding
L289[12:48:07]
<Ristelle>
oh
L290[12:48:21] <S3> That'll get rid of the
error
L291[12:48:52] <Orbstheorem> So, I'm
trying to iterate over each stack of an inventory by using a
(a=getAllStacks(side)), but I need the stack and the index of the
stack. Unfortunatelly a() gives me the stack info, but not its
index, is there something I'm not seing?
L292[12:48:59] <S3> ristelle whatchya got
for me this l I'll mbocon
L293[12:49:09] <S3> This limbocon*
L295[12:49:42]
<Ristelle>
This
L296[12:50:25] <S3> Lol whatchya
makin
L297[12:50:55] <S3> In can't wait to show
off my telecom operating system
L298[12:51:08] <S3> Called trotwood,
inspired by erlang
L299[12:52:06] *
ben_mkiv wonders how the gps turned out that someone wanted to
try
L301[12:53:28] <S3> Yes i remember
L302[12:53:38] <S3> I didn't make mine
because he wanted to and i was lazy
L303[12:53:54] <ben_mkiv> that was like
earlier today :D
L305[12:54:06] <S3> I'm talking about a
few months ago
L306[12:54:21] <S3> I don't want to feel
with 3d gps equations
L307[12:54:23] <ben_mkiv> but his plan was
to use microcontroller with wireless network cards as they sent how
many blocks a signal travelled
L308[12:54:26] <S3> Deal*
L310[12:54:36] <ben_mkiv> isnt it just
tris?
L311[12:54:45] <S3> It's not hard just
annoying
L312[12:55:01] <ben_mkiv> ^^
L313[12:55:22] <S3> 2d gps is much
easier
L314[12:55:42] <S3> Because you don't need
trilatteration!
L315[12:56:14] <S3> But then every modem
had to be the same altitude
L316[12:56:28] <ben_mkiv> yea, 3d would be
cooler
L317[12:56:39] <ben_mkiv> but im curious
if it will be block precise
L318[12:56:53] <ben_mkiv> idk how it
determines the distance
L319[12:56:57] <S3> Well i wouldn't worry
about being exact
L320[12:56:59] <ben_mkiv> for the
signal^
L321[12:57:29] <S3> You could use a vor
kinda like approach
L322[12:57:52] <S3> Where it tells you how
far from the love of don't say some angle theta you are
L323[12:58:00] <S3> Line of sight...
L324[12:58:28] <S3> Then you could aim
yourself and count from there
L325[12:58:44] <S3> But that's dumb
L326[12:59:17] <ben_mkiv> how does 3D
work?
L327[12:59:30] <ben_mkiv> is it just that
you also have to calc tris which are like 90� rotated? :>
L328[12:59:37] <ben_mkiv> and find the
crossing point
L329[13:01:19] <S3> Yeah you basically
calculate the intersection of circles
L330[13:01:27] <S3> In a process called
trilatteration
L331[13:01:49]
⇨ Joins: Doty1154
(Doty1154!~Doty1154@c-73-189-164-179.hsd1.ca.comcast.net)
L332[13:02:28] ⇦
Quits: Arimil (Arimil!~Renari@75.97.175.72.res-cmts.bgr.ptd.net)
(Read error: Connection reset by peer)
L333[13:03:05]
⇨ Joins: Renari
(Renari!~Renari@75.97.175.72.res-cmts.bgr.ptd.net)
L334[13:05:56] <Guest13> payonel, now i'm
inclining that the patch above is likely a workaround, the real
problem is happening somewhere before.
L335[13:53:36] ***
Guest13445 is now known as payonel
L336[13:53:37]
<Molinko>
Hey guest are you trying to mock a gpu and give it to try only to
have it error on scroll?
L337[13:53:58]
<Molinko>
Hey guest are you trying to mock a gpu and give it to tty only to
have it error on scroll? [Edited]
L338[13:53:58]
zsh sets mode: +v on payonel
L339[13:54:41] <payonel> Guest13: am i
familiar with /lib/tty.lua ? i wrote it. i'm the openos dev
L340[13:54:58] <payonel> Guest13: tty.lua
is undocumented on purpose. it's not an api. i will change it every
commit i make :)
L341[13:55:22] <payonel> Guest13: term is
an api, is should be documented. if something is undocumented, it
might not be an "api"
L342[13:55:35] <payonel> Guest13: but yes,
get and setViewport are api
L343[13:56:04] <Guest13> what's the
difference between gpu.getViewport and getResolution?
L344[13:56:30] <payonel> Izaya: i was
here, but i lost my nickserv for a bit
L345[13:57:13] <payonel> Mimiru: maybe
i'll fix my registration with your bouncer :)
L346[13:58:09]
<Molinko>
when gpu.setViewport is called the gpu resolution wont change
L347[13:58:39] <payonel> Guest13: i keep
reading more and more of your comments about /lib/tty -- it's not a
public api :)
L348[13:58:41]
<Molinko>
just the viewable area of the screen
L349[13:59:13] <Guest13> payonel, Allright
allright) I'm just tracking a bug, no idea where it is
L350[13:59:27] <payonel> Guest13: a
viewport is a view inside a resolution
L351[13:59:50] <payonel> you can write
anywhere inside a resolution, but it is rendered in the
viewport
L352[14:00:40] <Guest13> rendered=visible
to user?
L353[14:00:43] <payonel> Guest13: what are
you trying to do?
L354[14:00:48] <payonel> to the
screen
L355[14:00:58] <payonel> yeah, to be more
specific, rasterization is relative to the viewport
L356[14:02:05] <Guest13> i'm still working
on my netgpu project (remote gpu, screen, keyboard). My issue was
that istead of getting reasonable message I would expect when
someone calls a function I forgot to implement (like, nil was
attempted to be called like a function), I've got some random error
later (nil < number comparison)
L357[14:03:01] <Guest13> test
L358[14:03:09] <Guest13> /tmp/event.log
also doesn't make sense. it sort of points me to gpu, but to the
wrong place as well
L359[14:03:18]
<Molinko>
i've tried to mock the gpu with tty and had similar issues with the
copying in tty scrolling
L360[14:04:26] <payonel> Guest13: are you
mocking a library or the gpu component?
L361[14:04:37] <Guest13> Molinko, yeah, my
original crash happened in tty.stream.scroll too
L362[14:04:41]
<Molinko>
perhaps a metamethod on your gpu proxy to throw errors for
unimplemeted errors would help
L363[14:04:48] <Guest13> payonel, I'm
mocking the components
L364[14:05:01]
<Molinko>
perhaps a metamethod on your gpu proxy to throw errors for
unimplemeted methods would help [Edited]
L365[14:05:03] <Guest13> Molinko, yeah,
that's in the queue
L366[14:05:16]
<Molinko>
fyi this stumped me...
L367[14:05:32] <Guest13> not error(), but
just some modem.broadcast() logging/cry for help
L368[14:05:34] <payonel> maybe i should
move tty to /lib/core/
L369[14:06:13]
<Molinko>
the copy method can receive coords from outside its resolution and
return blank 'pixels' for that area beyond the resolution
L370[14:06:25] <Guest13> payonel, not sure
how this could improve something?
L371[14:06:39] <payonel> only to
communicate that it isn't an api
L372[14:06:50] <Guest13> oh
L373[14:06:54]
<Molinko> I
dont think he wants to give the impression we should dick around in
tty :3
L374[14:07:06] <payonel> :)
L375[14:07:13] <Guest13> i don't think
it's reasonable to put all internals into one file then)
L376[14:07:24]
<Molinko> I
look just to be familiar with term windows
L377[14:07:45]
<Molinko> I
stick mostly to term and a little term.internal if im feeling brave
:3
L378[14:07:52] <Guest13> but some
automated way to at least mention all public methods in the docs
would be good
L379[14:08:06] <payonel> yeah, it has been
suggested that i add lua docs to openos
L380[14:08:12] <payonel> and build the
ocdoc api details from it
L381[14:08:20] <payonel> i like that
suggestion
L382[14:08:24]
<Molinko>
That would be amazing ?
L383[14:08:26] <Guest13> i'm not sure
about luadocs though - that would bloat the size like 3 times
L384[14:08:46]
<Molinko>
the build could string the comments from in-game files
L385[14:08:51] <Guest13> it's already half
a megabyte
L386[14:08:54]
<Molinko>
the build could strip the comments from in-game files
[Edited]
L387[14:09:05] <Guest13> yeah, that's
better
L388[14:09:08] <payonel> i wouldn't modify
the files for ingame
L389[14:09:16] <payonel> i would just have
some comments on methods
L390[14:09:27] <payonel> the lua doc
parsing would be outside the openos source
L391[14:09:39]
<Molinko> ah
i c
L392[14:10:21] <Guest13> also, what does
component.list("filesystem")[filter] is intended to do
specifically?
L393[14:10:43]
<Molinko>
makes it nice to use in a for loop
L394[14:11:00] <payonel> component.list()
returns a table
L395[14:11:17] <Guest13> does it? I
thought it returned an iterator
L396[14:11:23]
<Molinko> i
thought it returned an iterator
L397[14:12:30] <payonel> nope. it is a
table with a __call though
L398[14:12:38] <payonel> thus a
table-iterator :)
L399[14:12:45] <Guest13> I see. another
undocumented feature)
L400[14:12:52] <payonel> :)
L401[14:13:13] <Guest13> lua question: if
I add metatable.__index to my function, would it behave the same as
it were a table with __call?
L402[14:13:18]
<Molinko>
oooo
L403[14:13:30] <payonel> Guest13: no
L404[14:13:31]
<Molinko> i
just saw that. fancy
L405[14:13:39] <payonel> t() calls
__call
L406[14:13:56] <payonel> t.a = b calls
__index
L407[14:13:59] <payonel> derp
L408[14:14:02] <payonel> __newindex
:)
L409[14:14:06] <payonel> b = t.a calls
__index
L410[14:14:14] <payonel> b = t() still
calls __call
L412[14:14:43]
<Molinko>
index can be a table to lookup or a func(t, k) to give a
value
L413[14:14:53] <payonel> yeah, two options
there
L414[14:14:58] <payonel> Guest13: what
part did you want me to read?
L415[14:15:11] <payonel> ive read it
all
L416[14:15:17] <Guest13> #2.4. and that's
for Molinko
L417[14:15:22] <payonel> ah
L418[14:16:32] <Guest13> payonel, why they
are not the same? (function with __index and table with
__call)
L419[14:17:00] <Guest13> or do you mean
that I should also add __newindex then?
L420[14:18:20] <payonel> Guest13: for what
purpose?
L421[14:18:26] <payonel> to see what is
called that doesn't exist?
L422[14:18:32] <Guest13> I'm mocking
component api
L423[14:18:35] <payonel>
s/called/used/
L424[14:18:35] <MichiBot> <payonel>
to see what is used that doesn't exist?
L425[14:18:51] <payonel> ah, you're trying
to make your own vcomponent?
L426[14:18:52] <Guest13> I found that
/lib/filesystem uses indexing on the supposed iterator
L427[14:18:55] <Guest13> yeah
L428[14:19:10] <payonel> gamax92 made a
good vcomponent library
L429[14:19:12] <payonel> i would look at
what he did
L430[14:19:20] <Guest13> gamax's
vcomponent doesn't override indexing either
L431[14:19:44] <payonel> indexing is the
natural behavior
L432[14:19:49] <Guest13> oh no wait. he
just returns a table. yeah
L433[14:19:50] <payonel> __call is the
bonus feature of the table it returns
L434[14:20:31] <Guest13> yes though, he
returns an iterator
L436[14:21:16] <Guest13> so his
implementation shouldn't support indexing, i guess
L437[14:21:32]
<Molinko>
true..
L438[14:21:53]
<Molinko>
most people use it as an iterator in my experience..
L439[14:22:02]
<Molinko> so
you might get by with it
L440[14:22:18] <payonel> just return a
table, with __call pointing to an indexdr
L441[14:22:21] <payonel> indexer
L442[14:22:34] <Guest13> why can't I
return a function with __index instead?
L443[14:22:49] <Guest13> I still don't
understand why
L444[14:22:50]
<Molinko>
metamethods are for tables
L445[14:22:51] <payonel> you can't set
metamethods on a function
L446[14:23:13] <Guest13> > Every value
in Lua can have a metatable
L447[14:23:17] <Guest13> 2.4, first
sentence
L448[14:23:28] <Guest13> gonna go test it
now
L449[14:23:50] <payonel> %lua
setmetatable(function()end, {})
L450[14:23:51] <MichiBot> luasb:115: bad
argument #1 to 'setmetatable' (table expected, got function)
L451[14:25:35] <Guest13> > You cannot
change the metatable of other types from Lua
L452[14:25:38] <Guest13> oh
L453[14:25:44] <Guest13> i see now
L454[14:26:49] <Guest13> just for
completeness: > You can replace the metatable of tables using
the setmetatable function. You cannot change the metatable of other
types from Lua (except by using the debug library); you must use
the C API for that.
L455[14:27:54] <Guest13> are the docs in a
separate repo currently?
L457[14:28:33] <payonel> and some in our
manual, which IS in the repo
L458[14:29:06] <Guest13> is there a repo
for docs? I'm looking into doing some pull requests
L459[14:29:22] <payonel> no, just fix
ocdoc
L460[14:29:24] <payonel> it is a
wiki
L461[14:29:29] <Guest13> oh ok
L462[14:29:36] <payonel> and if+when i add
docs to the source, i'll pull what we have from ocdoc
L463[14:30:57] <S3> So payonel
L464[14:31:04] <payonel> yeah
L465[14:31:19] <S3> How do i fix your damn
typoes in ocdoc
L466[14:31:27] <S3> Or add nice
pictures
L467[14:31:48] <payonel> ocdoc is a public
wiki
L468[14:31:55] <payonel> you dont even
need a pr to fix it :)
L469[14:32:05] <payonel> to add pictures,
there is a media manager
L470[14:32:09] <payonel> also in the
wiki
L471[14:33:49] <Vexatos> payonel, t[a]
calls __index too
L472[14:35:22] <Guest13> so I edit in
component.fields and component.slot, and component.list()[]?
L473[14:35:36] <payonel> Vexatos:
true
L474[14:35:37] <Guest13> payonel, do
I?
L475[14:36:05] <payonel> to make your own
vcomponent?
L476[14:36:09] <S3> Oh good i thought it
was private
L477[14:36:14] <Guest13> no, I mean on the
wiki
L478[14:36:20] <S3> Because sometimes i
get mad when i can't find stuff
L479[14:36:27] <S3> That doesn't exist
yet
L480[14:36:40] <payonel> Guest13: sure.
but be clear that list() returns a table that has __call to act as
an iterator
L481[14:36:48] <S3> Or has no pictures
that help explain things
L482[14:36:48] <Guest13> I just need
another confirmation that all these three are official api
L483[14:36:52] <Guest13> ok
L484[14:36:56] <payonel> S3 and Guest13 --
if you want ideas of stuff we need in the docs .......
L485[14:37:07] <payonel> Guest13: yes,
everything from the machine is official api
L486[14:37:14] <S3> Pictures of
tablets
L487[14:37:18] <payonel> stuff i add in
openos is not always an api
L489[14:37:28] <MichiBot>
Title:
The Big Wiki issue
| Posted by: payonel
| Posted: Mon
Dec 18 19:14:42 CST 2017
| Status: open
L490[14:37:30] <S3> Also why do tablets
support the Piston upgrade rofl
L491[14:37:37] <Guest13> payonel, I hereby
notify you that I screenshoted your statement :)
L492[14:37:38] <payonel> S3 and Guest13 ,
work on that ticket for me :)
L493[14:37:59] <payonel> S3: haha,
nice
L494[14:38:09] <payonel> Guest13: stuff
from the machine are `computer` and `component`
L495[14:38:17] <payonel> plus the lua
libraries we expose
L496[14:38:21] <S3> Oh nice I'll have to
bookmark this
L497[14:38:23] <payonel> like table,
string, math, etc
L498[14:38:43] <Guest13> btw why it's
table.unpack, not just unpack?
L499[14:39:23] <S3> What do you mean by
make template for api
L500[14:39:38] <S3> Is that like the table
of calls component pages have?
L501[14:39:42] <S3> On other pages
L502[14:39:58] <payonel> Guest13: because
this is lua?
L503[14:40:05] <payonel> %lua return
table.unpack, unpack
L504[14:40:05] <MichiBot> function:
0x7f1c205050a0, nil
L505[14:40:20] <payonel> S3: we want
templates in our wiki
L506[14:40:26] <payonel> S3: xarses has a
lot of ideas there
L507[14:40:42] <S3> I also need to test
how many open ports you can have at once... On a modem
L508[14:41:05] <S3> Oh like mediawiki
templates?
L509[14:41:48] <payonel> S3: yes,
mediawiki templates
L511[14:42:39] <S3> I would like to be
able to put sample problems in it too
L512[14:42:45] <S3> Because people like
examples
L513[14:42:50] <payonel> definitely
L514[14:42:52] <S3> But i dunno if you
want that
L515[14:43:01] <payonel> xarses: we should
make those templates
L516[14:43:02] <payonel> i do
L517[14:43:14] <payonel> S3: see the
samples we have in the thread docs
L518[14:43:19] <payonel> we should have
more of those and for others
L519[14:43:21] <payonel> ~w thread
L521[14:44:04] <Guest13> also, who did
invent the domain event? I can never remember it
L522[14:44:20] <payonel> what?
L523[14:44:26] <payonel> who did invent
the domain event?
L524[14:44:33] <payonel> i dont understand
that question
L525[14:45:48] <Guest13>
s/event/name/
L526[14:45:48] <MichiBot> <payonel>
who did invent the domain name?
L527[14:46:09] <Guest13> no idea what my
hands were thinking while typing that
L528[14:46:12] <payonel> who invented the
domain name?
L529[14:46:24] <payonel> the domain name
for what?
L530[14:46:25] <Guest13> yep
L531[14:46:27] <payonel> sorry, i'm a bit
confused
L532[14:46:34] <Guest13> cil.li
L533[14:46:38] <payonel> AH
L534[14:46:39] <payonel> for the
site
L535[14:46:40] <payonel> haha
L536[14:46:55] <payonel> i'm not sure.
Lizzy or Mimiru would know
L537[14:47:08] <payonel> ok i have to go
afk
L538[14:47:09] <payonel> o/
L539[14:47:41]
<Lizzian>
cil.li is @Sangar's baby, i just run the forums
L540[14:48:17] <Vexatos> I don't run
anything other than myself :D
L541[14:58:06] <S3> Huh. You can swap
eeprom with the shift key what
L542[14:58:15] <S3> Never knew that
lol
L543[14:59:58] <S3> Should also be a list
of working alternative operating systems in some page
somewhere
L544[15:00:12] <S3> Not mine, but like
plan9k
L545[15:05:28] <Orbstheorem> How hard
would it be to get threads in a microcontroller?
L546[15:07:48] <Orbstheorem> rationale: I
want to use a microcontroller to control an unstable nuclear
reactor, but I don't want to risk the main thread dying and causing
a meltdown, do I want every calculation/logic on its own
thread
L547[15:14:43]
<Forecaster>
I don't run
L548[15:22:53] <Orbstheorem> s/do
I/I
L549[15:22:53] <MichiBot>
<Orbstheorem> rationale: I want to use a microcontroller to
control an unstable nuclear reactor, but I don't want to risk the
main thread dying and causing a meltdown, I want every
calculation/logic on its own thread
L550[15:23:31] <Orbstheorem> oh, hello
there MichiBot, you beauty
L551[15:23:31] <MichiBot> Hello
Orbstheorem
L552[15:23:32] <MichiBot> Maybe.
L553[15:23:33] *
MichiBot purrs
L554[15:23:48] <Temia> Keep in mind that
the Lua interpreter doesn't have pre-emptive multitasking -- while
pcall() will offer safeties, everything will still run
linearly.
L555[15:24:39] <Orbstheorem> I promise
threads won't go into infinite loops :)
L556[15:25:18] <Orbstheorem> but it it
crashes it yields and I would call some sleep function in every
thread (I want to reduce server load anyways)
L557[15:25:32] <Temia> With some time and
effort, you could also implement a task scheduler as well.
L558[15:25:52] <Orbstheorem> I don't think
I have enough space for a full-blown scheduler
L559[15:26:23] <Orbstheorem> but maybe
something simple is okay
L560[15:26:23]
<Forecaster>
make a half-blown scheduler :D
L561[15:26:24] <Temia> Netboot might help
there
L562[15:26:39] <S3> Believe it or not
orbstheorem
L563[15:26:54] <Orbstheorem> what I don't
known is how scheduling is handled by the lua VM
L564[15:27:04] <S3> My scheduler hasn't
been cleaned up yet and it takes only half the space of sn
eeprom
L566[15:27:16] <Orbstheorem> Oh
L567[15:27:24] <S3> And i have a lot of
crap in it that probably doesn't have to be in there
L568[15:27:38] <S3> The actual scheduler
is a small portion of the code
L569[15:28:11] <S3> I really really like
my scheduler because it's extremely robust and very simple
L570[15:28:50] <Orbstheorem> Temia:
Netboot is might be a good idea
L571[15:28:59] <Orbstheorem> S3: gh?
L572[15:29:08] <Orbstheorem> (Or better
yet, gitlab :D)
L573[15:29:08] <S3> Izaya has a working
netboot eeprom
L575[15:30:03] <Orbstheorem> Oh, I just
realized my plan is fundamentally flawned
L576[15:30:10] <Orbstheorem> S3: Thanks, I
will still take a look!
L577[15:30:26] <S3> Orbstheorem i can let
you know when i push the working fixes
L578[15:30:27] <Orbstheorem> I need both
an adaptor and a transposer for my nuclear reactor :(
L579[15:30:36] <Orbstheorem> S3: Cool!
^^
L580[15:30:53] <S3> Just do you know this
is the actor model ported to lua
L581[15:31:04] <S3> Not sure if you are
familiar
L582[15:31:15] <Orbstheorem>
actor/messages from fp?
L583[15:31:40] <S3> Yeah it's 100% message
passing
L584[15:31:50] <Orbstheorem> I've worked
professionally with akka, so Yey!
L585[15:32:07] <S3> Its inspired by
erpang, my os that is
L586[15:32:14] <S3> Erlang*
L587[15:32:22] <S3> I'm using it to make
telecon switches in oc
L588[15:32:28] *
Orbstheorem 's dream is to code in haskell or idris
L589[15:32:28] <S3> Telecom sorry
L590[15:32:36] <Orbstheorem> Cool!
L591[15:32:38] <S3> Oh that is neat
L593[15:33:09] <S3> Yeah at some point i
want to be able to let you sit openos on top of trotwood
L594[15:33:16] <Orbstheorem> I have a
friend who's very passionate about erlang, we've talk a bit and it
seems to be a very nice VM
L595[15:33:23] <S3> As a supporting os
that provides automatic clustering
L596[15:33:41] <S3> Yeah i wire a lot of
elixir these days
L597[15:33:50] <S3> Which runs on
erlang
L598[15:34:32] <S3> So yeah, basically
trotwood is a server / trlecom hardware / scalable computing
os
L599[15:34:47] <S3> Not really intended
for personal use but who cares :)
L600[15:35:11] <S3> I'm also making a
binary c
L601[15:35:34] <S3> Binary distributed
cluster filesystem for it
L602[15:35:50] <Orbstheorem> what's
trotwood exactly?
L603[15:35:55] <Orbstheorem> an OS?
L604[15:36:15] <S3> It will be
L605[15:36:22] <S3> Surrounding the actor
model
L606[15:36:51] <S3> The scheduler i have
not pushed yet does work and processes never fun unless they have
something to do
L607[15:37:18] <S3> So there's no
polling
L608[15:37:27] <S3> Never run*
L609[15:37:37] <Orbstheorem> Yay
L610[15:38:01] <S3> Anyways I'll be
excited to see what you can some up with for a scheduler
yourself
L611[15:38:15] <S3> I'm hoping to make
mine extremely tiny
L612[15:39:47] <S3> It puts every process
in it's own sandbox so there's no shared memory
L613[15:40:09] <S3> You just build
reactive processes that read mail and subscribe for signals
L614[15:40:33] <S3> And when a process
gets an write it immediately is forces to crash
L615[15:42:05] <S3> But an event is pushed
announcing the crash so you can make processes that do nothing but
supervise and automatically restart processes to clean up
state
L616[15:42:17] <S3> This way the os is in
theory relatively impossible to crash
L617[15:42:44] <S3> And if course
supervisors don't run thru something happens
L618[15:43:19] <Orbstheorem> The back of
my mind thinks of IO(msg) and msg->IO(response) x) [haskell,
processes]
L619[15:43:30] <Orbstheorem> (and gets
exited :) )
L620[15:48:42] <S3> Yeah i mean I'm more
excited about the framework of the scheduler than the os l I
l
L621[15:48:56] <S3> It just makes receive
programming so much easier on oc
L622[15:49:07] <S3> Which is important for
networking switches
L623[15:49:41] <S3> Reactive programming
*
L624[15:52:59] <S3> Orbstheorem if you
have anything cool if recommend entering into l I'll mbocon
:)
L625[15:53:10] <S3> Limbocon i mean
L626[15:53:30] <S3> I'm showing off
trotwoods capability there
L627[15:53:51] <S3> For high availability
scalable systems in Minecraft
L628[15:56:55] <S3> I want to still
promote open os for non real-time applications
L629[15:57:02] <S3> Personal use
L630[15:57:33] <S3> Because open os is
really nice
L631[15:58:51] <S3> But if i sit openos on
top of trotwood i can make openos use it's scheduler and spawn
actors
L633[16:05:49] <Orbstheorem> l?
L634[16:05:57] <Orbstheorem> mbocon?
x)
L635[16:27:37]
⇨ Joins: Thutmose
(Thutmose!~Patrick@host-69-59-79-181.nctv.com)
L637[16:32:27] *
Orbstheorem pokes S3
L638[16:32:49] *
Orbstheorem dreams with having CI/CD directly into
minecraft
L639[16:40:39] <Guest13> Orbstheorem, I'm
stealing some nice patterns for myself
L640[16:40:49] <Orbstheorem> Doh! I just
realized I can't put an adapter into a microcontroller
L641[16:40:53] <Orbstheorem> Guest13: my
pleasure!
L642[16:41:13] <Guest13> Isn't "local
function" redundant?
L643[16:41:36] <Orbstheorem> I'm a lua
noob, I recall reading somewhere to make everything local :P
L644[16:41:39]
</dev/illy>
open computer lua CI in minecraft :P
L645[16:41:41]
</dev/illy>
heh
L646[16:41:46] <Guest13> yeah, that's good
approach
L647[16:41:52] <Guest13> I'm just asking
about functions
L648[16:42:03] <Orbstheorem> maybe?
L649[16:42:18] *
Orbstheorem goes to ask on #lua/freenode
L650[16:43:25]
<Pablu> I'm
having a small issue
L652[16:43:53]
<Pablu>
Looks like it's killing the process?
L653[16:48:08] <S3> hey Orbstheorem I just
got home recently. What is the difference between gitlab.com and
gitlab.io?
L654[16:48:58] <Guest13> Orbstheorem, you
should switch key and value in preconditions
L655[16:49:37] <Guest13> %lua
{[nil]="something"}
L656[16:49:37] <MichiBot> main:1: table
index is nil
L657[16:49:48] <Guest13> if one of your
components is absent, you get this
L659[16:51:16] <Guest13> this is probably
better. haven't tested it, but it should work
L660[16:54:41] <Guest13> even earlier,
your component.proxy will throw an error when you give it a nil
instead of an uuid
L661[16:58:28] <Orbstheorem> I had
something like that before, I just panicked when I got the EEPROM
size error: 42296568
L662[17:00:11] <Guest13> weird
L663[17:00:21] <Orbstheorem> is the code
of openos in the oc repo?
L664[17:00:26] <Guest13> eeprom size, not
memory overflow?
L665[17:00:45] <Guest13> Orbstheorem, it's
under assets/loot/openos somewhere
L666[17:01:26] <Orbstheorem> thanks
L667[17:01:30] <Orbstheorem> (got
it)
L668[17:01:50] <Orbstheorem> Guest13: when
I ran flash, I got a stack trace of file too big or something
L669[17:01:51] <Guest13> you can also find
your disks in saves/World/opencomputers
L670[17:02:07] <Guest13> flash code is
limited to 4kB
L671[17:02:16] <Guest13> (depending on
config)
L672[17:02:17] <Orbstheorem> Guest13: that
breaks the RP, but good to know :)
L673[17:02:57] <Guest13> i couldn't edit
files there tho normally. I still copy-paste from vim into
minecraft
L674[17:03:40] <AmandaC> You can if you
change the config to not buffer changes
L675[17:03:53] *
AmandaC does that for her stuff
L676[17:04:08] <Guest13> thx
L677[17:04:18] <Orbstheorem> same, I run
`edit tmp && flash -q tmp "dev" && rm
tmp; echo Ready && ./listen_broadcast.lua` everytime
L678[17:05:03] <Orbstheorem> (That's why I
asked about writing shellscript, when I reboot my computer my
history is gone and it's painfull to use the lua shell api
:P)
L679[17:05:45] <Guest13> AmandaC,
description of that option scares me a bit tho
L680[17:06:13] <AmandaC> What's scary
about it, exactly?
L681[17:06:17] <Guest13> still gonna have
to use separate fs tree for editing, but at least I can setup
inotify hooks to copy it there
L682[17:06:53] <Guest13> when I see 'out
of sync', I just get scared
L683[17:07:30] <AmandaC> It's saying that
stuff will be out of sync if you leave it on the default, I
think
L684[17:07:52] <AmandaC> Bcause OC will
store the file's changes / contents in memory, instead of going to
the disk immediately
L685[17:08:27] <Guest13> "the
advantage of having this enabled is that data never go 'out of
sync'"
L686[17:08:36] <Guest13> hence, disabled =
data may go out of sync
L687[17:08:48] <Guest13> that's my
interpretation at least
L688[17:12:15] <Guest13> Orbstheorem, I
test flash script on a PC first. Just add some `if computer==nil
then computer=require("computer") end` in the beginning,
and such
L690[17:12:25] <S3> okay, let me push
Orbstheorem
L691[17:12:33] <S3> 1~its still messy but
it works
L692[17:14:01] <S3> Orbstheorem: all
pushed now :D
L693[17:14:11] <S3> I only pushed init.lua
though, not the other files..
L694[17:14:21] <S3> I'm trying to develop
a nice tmpfs compat system for it
L695[17:14:38] <S3> and there's some code
that doesn't belong in the init.lua
L696[17:15:10] <S3> Orbstheorem: Also,
here's an idea I had, if you don't like the 4KB limit of the
EEPROM, maybe it would be nice to have an EEPROM that runs off of
tmpfs
L697[17:15:17] <S3> you get 64KB of boot
firmware space
L698[17:15:21] <S3> treat it like
EFI
L700[17:16:02] <S3> I plan to run Trotwood
in tmpfs for my switches, in a way that you provision them over the
network via the eeprom
L701[17:16:12] <S3> the eeprom would have
a mini file transfer protocol or something
L702[17:16:17] <S3> TFTP like
L703[17:19:49] <Orbstheorem> S3: you
pushed where? x)
L704[17:20:11] <S3> oh uh
L706[17:20:22] <Orbstheorem> Guest13: I'll
keep it in mind, thanks!
L707[17:21:03] <S3> hmm. I think the
complicated part is the callback code.
L708[17:21:14] <S3> If I can get rid of
that and recreate it without the help of the scheduler..
L709[17:21:26] <S3> I don't see why
not
L710[17:21:50] <S3> also if it doesn't
slow it down.. maybe I can push signals..
L711[17:22:49] <Orbstheorem> S3: consider
luacheck :)
L713[17:23:37] <S3> I use luac to check
early runtime syntax and test every run.
L714[17:23:54] <Orbstheorem> I have it
integrated in vim and help out to spot unused variables, dead code
and stuff like that
L715[17:24:02] <S3> oh for that
L716[17:24:06] <Orbstheorem> s/help
out/helps out/
L717[17:24:06] <MichiBot>
<Orbstheorem> I have it integrated in vim and helps out to
spot unused variables, dead code and stuff like that
L718[17:24:22] <S3> interesting
L719[17:25:06] <S3> the premise ofthe
program as it is now, which is definately subject to change, is
that you have a loop, the scheduler runs the loop, nothing else.
the scheduler pulls signals, looks into a subscriber list of
processes subscribed to signals..
L720[17:25:10] <S3> sends them as
messages
L721[17:25:17] <S3> processes can send
messages, as well as spawn other processes
L722[17:25:25] <S3> pids are
decimals
L723[17:25:34] <S3> (why? well, because of
a very nice feature)
L724[17:26:35] <Orbstheorem> Great
:)
L725[17:26:36] <S3> the actual PID is the
digits after the decimal point. the number left of the decimal
point is the node ID. This is used for computer clusters when you
want to run trotwood across multiple computers.
L726[17:26:58] <S3> node ID 0 is reserved,
it means "the current running node" and anything greater
than or equal to 1 means it will be sent over the network
L727[17:27:07] <S3> so if you send a
message to 5.48
L728[17:27:15] <S3> it will send a message
to pID 48 on node 5
L729[17:27:24] *
Orbstheorem smells erlang <= nodes
L731[17:27:51] <S3> it makes it easy
because the schedulker literally can be like
L732[17:27:53] <Orbstheorem> It's a really
nice idea actually ^^
L733[17:28:17] <S3> if pid < 1 then
--[[ code to route to local pid ]] end --[[ code to send to router
]]
L734[17:28:20] <S3> neat eh
L735[17:28:30] <Orbstheorem> yep
L736[17:28:31] <S3> makes the pid routing
easy
L737[17:28:55] <Orbstheorem> Í'm wondering
how you marshall functions and closures though
L738[17:29:49] <S3> What do you mean
L739[17:29:57] <Orbstheorem> How do you
handle the case when a function want to reach a variable outside
its body or arguments
L740[17:30:10] <Orbstheorem> ?
L741[17:31:14] <S3> Ah, so due to Lua's
limitations and performance, there's a couple things here. a)
there's no shared memory. so process communication has to be done
by sending information, but in terms of pure functions,etc, it's
100% on you. It's not prohibited, it's just bad practice to store
outside variables.
L742[17:31:24] <S3> unless you have an
extremely good reason that's a limitation of Lua
L743[17:32:06] <S3> I haven't set this
part up yet, but if you send a table to another process as a
message, it deep copies it to prevent another process from
accidently editing some table that somebody is stupidly using for
state
L744[17:32:34] <S3> so, it's better to
send a list of data, and tables sparingly
L745[17:32:37] <S3> fpr performance.
L746[17:33:02] <S3> right now, there's no
deep copy, so you just need to write your programs carefully
L747[17:33:27] <S3> i.e. don't do
send(pid, mystate)
L749[17:33:42] <Orbstheorem> (I'm okay
with that, but if you think about powering OpenOS with that, it's
something to take into account)
L750[17:33:44] <S3> also, I have sorta
kinda half implemented the ability to name your pids
L751[17:33:46] <S3> like in erlang
L753[17:34:20] <S3> the idea behind openos
sitting on top of it is to prevent an Os to the user that is no
different for them
L754[17:34:25] <S3> but with the actor
model stuff in back
L755[17:34:57] <S3> present*
L756[17:35:20] <S3> but for now I am only
worried about making it easy to quickly make systems using this
actor factory
L757[17:35:36] <S3> I shouldn't call it a
factory, but screw OOP :D
L758[17:36:32] <S3> also, the scheduler
uses a.. different error mechanism
L759[17:36:39] <S3> erlang like
sorta
L761[17:37:01] <S3> ok, pid =
spawn(code)
L762[17:37:01] <Orbstheorem> ?
L763[17:37:19] <S3> if ok == ':error' then
print pid end
L764[17:37:32] <S3> no pattern matching,
unfortunately
L765[17:37:41] <Orbstheorem>
#patternmatching
L766[17:37:59] <Orbstheorem> (I known you
don't handle the example I sent you, but what happens “by
default”)
L767[17:38:13] *
Orbstheorem doesn't know how functions are represented
L768[17:39:38] <S3> oh yeah! so I actually
was not able to actually get a solution for that one, by the
way
L769[17:39:52] <S3> I thought of that, I
just basically said, be careful when spawning functions
L770[17:39:57] <S3> and recommend spawning
strings
L771[17:40:16] <S3> because there's no way
without debug lib you'll ever prevent that
L772[17:40:43] <S3> fortunately, you can
spawn files
L773[17:40:49] <S3> and files are strings
anyways essentially
L774[17:41:22] <S3> so I recommended that
when spawning anonymous functions, design them only to be small
tasks for that process
L775[17:41:37] <S3> which does not read
from the outside world and only runs with what is given to
them
L776[17:42:02] <S3> On Lua 5.1 they had
setfenv.. which would have helped.
L777[17:42:13] <S3> but unfortunately
without debug you can't do it
L778[17:43:25] <Orbstheorem> is there
anyway to `introspect` the ast and find all “foreign” references
(and then filter out standard “lib” stuff
L779[17:43:39] <S3> That requires the
debug lib
L780[17:43:49] <Orbstheorem> (like
computer, component, ...)
L781[17:43:54] <Orbstheorem> Oh
L782[17:44:03] <S3> yeah. in 5.1 you could
set the env of one function
L783[17:44:07] <S3> which would have fixed
all problems
L784[17:44:26] <S3> but you can only set
the env of a string being loaded with load()
L785[17:44:46] <Orbstheorem> can you
“transform” back a function into a string?
L786[17:44:51] <S3> I was mad then
realized hey, if you make anonymous functions that read outside
their state that's a you problem, not a me problem :D
L787[17:45:18] <Inari> %pet AmandaC
L788[17:45:19] *
MichiBot pets AmandaC with a pawprint stamp. 11 health
gained!
L789[17:45:19] <S3> not without
debug
L790[17:45:28] <Orbstheorem> x)
L791[17:45:41] <S3> I had hoped
L792[17:45:48] <S3> and you can't use load
to load a function either
L793[17:46:34] <S3> setfenv and getfenv
are actually very easy to build with debug, but then again I think
getfenv is bad practice and setfenv is good practice.
L794[17:47:23] <S3> you should not be able
to get the env of another environment ever
L795[17:47:49] <S3> oh! Orbstheorem do you
know much about modems?
L796[17:47:55] <S3> hayes modems
perhaps
L797[17:48:29] <S3> I'm developing a
program for Open Computers that places a Hayes compatible layer
behind an Open Computers modem
L798[17:48:43] <S3> This basically means a
very advanced modem level telnet
L799[17:49:27] <S3> The idea is that it is
just a library, and you can get a program that uses the lib, that
handles handshakes and connecting, and transmitting, etc
L800[17:49:34] <S3> in an STDIN / STDOUT
like manner
L801[17:50:03] <Orbstheorem> Oh
L802[17:50:42] <S3> Yeah. Trotwood will
use it for all mdoem comms
L803[17:50:47] <S3> modem*
L804[17:50:49] <Orbstheorem> (I don't know
much about modems, but I know a bit of computer
networks/architecture/hpc)
L806[17:51:09] <S3> well imagine you fire
up a terminal program and type something like:
L807[17:51:31] <S3> ATDU
f13068cc-1103-4c6c-85ae-9c5eff017808
L808[17:51:34] ⇦
Quits: Inari (Inari!~Pinkishu@84.175.255.108) (Quit: 'Do you have
confidence glands in your boobs?' [Commie]
(Kotoura-san))
L809[17:51:44] <S3> where
f13068cc-1103-4c6c-85ae-9c5eff017808 is some other modem on the
network
L810[17:52:41] <Orbstheorem> you could
also have a tiny arp-like stack to do node
autodiscover/autoassignement
L811[17:52:41] <S3> a moment later. you
get something like this:
L812[17:52:52] <S3> CONNECT (some
information about the remote modem here)
L813[17:53:00] <S3> yeah, that will be for
higher lervelk stuff
L814[17:53:20] <S3> for example the
trotwood switch software I was telling you about? uses the lower
segment of the UUID
L815[17:53:42] <S3> so
f13068cc-1103-4c6c-85ae-9c5eff017808 would just be f13068cc
L816[17:53:50] <S3> which is much easier
to type in a config file or whatever
L817[17:53:56] <Orbstheorem> yeah
L818[17:54:10] <S3> but under the hood the
modem command system uses the full uuid because Oc needs that
L819[17:54:35] <S3> I'm also using modem
messages that have nil as their message body
L820[17:54:42] <S3> guess what that does
:D
L821[17:55:02] <Orbstheorem> I'm just
wondering if there's anyway to regen the UUID. As in when a new
node joins the network they can try to send a packet to their
shortUUID and if they receive an answer they regenerate their
own
L823[17:55:27] <S3> well there's plenty of
things you can do..
L824[17:56:06] <S3> the trotwood switch
(it's called OC-DMS btw) allows you to group connections and
multiplex them on multiple or single ports using trunk
numbers
L825[17:56:22] <S3> for example, you can
say calls from f13068cc-1103 go to T4/2
L826[17:56:28] <S3> which means trunk 4
channel 2
L827[17:56:57] <S3> and then youc an say,
calsl from T4 go to 9be80e2d-66b9-40c1-8b8b-89bf310d38e0
L829[17:57:04] <S3> go to 9be80e2d
L830[17:57:09] <S3> which is some other
modem on another switch
L831[17:57:21] <S3> and of course you
supply the port number
L832[17:57:41] <S3> maybe your trunk is on
port 7
L833[17:57:45] <S3> so 9be80e2d:7
L834[17:58:37] <S3> the key thing here is
that routing is 100% addon software, this project literally just
does telecom like switching
L835[17:58:59] <S3> so you can sit other
protocols on it, such lyqydnet-oc or copper or such as MGR's
GERT
L836[17:59:34] <S3> MGR doesn't support
OC-DMS because I think he doesn't understand or want to support the
idea of high speed telecom backbones on your server from town to
town but..
L837[17:59:40] <S3> that's just his
opinion :D
L838[17:59:45] <MajGenRelativity> Hold
up
L839[17:59:59] <MajGenRelativity> That's
100% now true
L840[18:00:03] <MajGenRelativity>
not*
L841[18:00:09] <S3> LOL you said now
L842[18:00:37] <S3> MajGenRelativity: I
only said it to wake you up lol
L843[18:00:49]
<MGR> I just
got home from work
L844[18:01:03]
<MGR> I
never said I didn't support OC-DMS
L845[18:02:14] <S3> Last I heard you say
was "Anything that tunnels or backbones a GERT connection or
messes with it in any way is unsupported"
L846[18:02:43]
<MGR> I just
meant for bug reports
L847[18:02:53]
<MGR> I
never said it was a bad idea, or that I didn't approve of the
idea
L848[18:03:00] <S3> course it doesn't
really touch GERT at all it just takes messages on a modem uuid and
a port # and re-emits the exact message verbatim on another uuid
and port number
L849[18:03:24]
<MGR> All I
was trying to avoid is people coming to me to help them work your
system
L850[18:03:28] <S3> which is particularly
useful for bypassing the 4 relay limit without running a full
network stack
L852[18:03:56]
<MGR> Like I
said, I never meant that OC-DMS was a bad idea or that I
disapproved
L853[18:04:31] <S3> well you can rest
assured, the ONLY people I would remotely ever imagine using OC-DMS
is an ISP.
L854[18:04:42] <S3> somebody who knows wtf
they are doing
L855[18:05:24] <S3> it's simple but too
complicated for the average joe
L856[18:06:02]
<MGR>
Ok
L857[18:07:01] <S3> its really because,
you're not going to use it if you only have one switch down
L858[18:07:10] <S3> and telecom is very
easy when it's one switch
L859[18:07:28] <S3> but it gets extremely
messy very fast and you'll want to write shit down and memorize
your damn network
L860[18:07:38] <S3> or else you'll be
confused really fast
L861[18:08:28] <S3> protocols like GERT
make it easy, because dynamic routing and all, but switching is
like, hey, I'm literally plugging in wires from point a to point
b
L862[18:08:46] <S3> oh! you want backbone
access? let me set up an additional virtual wire in the
switch
L863[18:08:50]
<MGR>
Yes
L864[18:09:30] <S3> you can do some super
retarded cool things with it though
L865[18:10:16] *
Orbstheorem is doing pedestrian pattern matching with key
pairs
L866[18:10:23] ⇦
Quits: Vexatos
(Vexatos!~Vexatos@p200300C10717943207851660F240505D.dip0.t-ipconnect.de)
(Quit: Insert quantum chemistry joke here)
L867[18:10:23] <S3> like, oh, okay, town
of foobar, which is 5 towns away from bizbaz, okay everything that
gets sent to trunk 5 goes to bizbaz, ha ha! I just routed all GERT
traffic to bizbaz because I'm whacky! ...
L868[18:10:52] <S3> that's a horribly bad
example and makes no sense
L869[18:11:04] <S3> but nothing stops you
it's a biproduct feature
L870[18:11:48] <S3> the only time you
would ever want to do that is if you wanted to create a fail over
mesh between every town in case somebody cut the wires
L871[18:11:54] <S3> but gert may already
mesh? I dunno
L872[18:12:44] <S3> Orbstheorem: oh, I ran
on and on because I do that.. but sending nil as a modem message is
the same exact thing as picking your phone off the hook
L873[18:12:55] <S3> that's you signalling
the other end to pick up
L874[18:14:02]
<MGR> GERT
already does do mesh networking, which v1.1 will enhance
L876[18:14:59]
<MGR> Thank
you
L877[18:15:13] <S3> what does it do about
duplicated messages?
L878[18:15:21] <S3> because I read on the
wiki that is a problem with redundant loops
L879[18:15:33] <S3> loop as in network
cable loop
L880[18:15:36]
<MGR> There
are no duplicated messages
L881[18:15:41] <S3> that is nice
L882[18:15:49]
<MGR> Thank
you
L883[18:17:17] <S3> I realize that I can
make a private virtual line in OC-DMS using its default features so
that there's like a VPN VLAN for connecting to the command line
shell of switches for management in a way that if you were trunking
GERT or something through it would never see
L884[18:17:43] <S3> which, could be useful
if you say had GERT on trotwood itself, because then people
couldn't screw with your gert nodes
L886[18:18:14] <S3> I dunno enough to know
if that's a necessary thing but in the real world they do it
L887[18:30:12] <Orbstheorem> what can I
use instead of string.unpack to deserialize my data?
L888[18:32:49]
<MGR> If
you're working with tables, you can use the serialization
library
L889[18:34:44] <S3> serialization isn't
too bad
L890[18:35:02] <S3> in Lua
L891[18:35:09] <S3> I made my own that was
very tiny
L892[18:35:18] <S3> but I dunno where it
went
L893[18:35:35] <S3> oh shit!
L894[18:35:48] <S3> I can hear Foreigner
playing a few towns over down the river
L896[18:35:53] <S3> the band
L897[18:36:07] <S3> oh shit the
crowd
L898[18:36:14] <S3> I can hear their damn
cheering how the f
L899[18:52:21] <Orbstheorem> I'm working
in a uC
L900[18:52:25] <Orbstheorem> Can't use
libs x)
L901[18:52:31]
<MGR>
?
L902[18:52:33] <Orbstheorem> (Not in an
easy way :D)
L903[19:03:32] <AmandaC> %tell Inari
"hey, what sound does a fox make? Is it meow meow!?"
"They go kon-kon" "oh? I'd like to hear it
myself!" *Everyone looks at the fox expectantly* *Bark!* (ED
starts)
L904[19:03:32] <MichiBot> AmandaC: Inari
will be notified of this message when next seen.
L905[19:05:13] ⇦
Quits: ben_mkiv (ben_mkiv!~ben_mkiv@p57972C4E.dip0.t-ipconnect.de)
(Ping timeout: 194 seconds)
L906[19:24:16]
⇨ Joins: Nachtara
(Nachtara!~Nachiebre@2604:2d80:c02c:9742:c598:e9dd:fd0:f33f)
L907[19:50:11] ⇦
Quits: erratic (erratic!erratic@shells.yourstruly.sx) (Quit: this
server has gone to sleep)
L908[20:26:20]
⇨ Joins: erratic
(erratic!erratic@shells.yourstruly.sx)
L909[20:35:37] ⇦
Quits: erratic (erratic!erratic@shells.yourstruly.sx) (Quit: this
server has gone to sleep)
L910[20:43:19] <S3> Orbstheorem: nothing
wrong with that
L911[20:43:39] <S3> once I get my modem
program working I can make a file transfer thing for it
L912[20:43:41] <S3> like kermit
L913[20:43:48] <S3> so you can provision
uCs easily
L914[20:55:10] <S3> particularly like
XMODEM
L915[20:59:57]
⇨ Joins: erratic
(erratic!erratic@shells.yourstruly.sx)
L916[21:02:54] ⇦
Quits: erratic (erratic!erratic@shells.yourstruly.sx) (Client
Quit)
L917[21:06:14]
⇨ Joins: erratic
(erratic!erratic@shells.yourstruly.sx)
L918[21:21:43] <Orbstheorem> OC website
down :(
L920[21:31:39] <S3> JUKE BOX HERO
L921[21:31:44] <S3> He'll come alive
TONIGHT!
L922[21:32:02] <S3> guys probably think
I'm crazy
L923[23:03:41] <Guest13> payonel, I've
just realized /lib/core is a directory, not /lib/core.lua. Yeah, I
think moving tty there might turn out to be reasonable then
L924[23:06:00] <Guest13> does openos have
a logo? does OC have a logo?
L925[23:29:13] ⇦
Quits: Cervator
(Cervator!~Thunderbi@2601:4c1:4001:1d5d:29b2:6893:d93f:258c) (Quit:
Cervator)
L926[23:32:45] ⇦
Quits: Thutmose (Thutmose!~Patrick@host-69-59-79-181.nctv.com)
(Quit: Leaving.)
L927[23:48:38] <Guest13> I hate that
component.list()[]. It's just the same as component.type() but with
extra steps
L928[23:49:16] <Guest13> And it makes me
replace my beautiful tricky memory-efficient implementation with
slow memory-greedy dump implementation
L929[23:49:25] <Guest13> *dumb
L930[23:51:21] <Guest13> and
setmetatable(tab, {__call=pairs}) is the best and most useful
metatable I've ever did. Don't get me wrong, I'm not being
sarcastic, I'm just new to lua
L931[23:51:33] <Guest13> and it's my first
metatable
L932[23:53:48]
⇨ Joins: Thutmose
(Thutmose!~Patrick@host-69-59-79-181.nctv.com)
L933[23:55:59]
<CntKillMe>
that wouldn't even work
L934[23:56:57]
<CntKillMe>
well discord didnt scroll down
L935[23:56:57]
<CntKillMe>
ignorem e