<<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)
L10[01:44:05] <Forecaster> https://www.kickstarter.com/projects/1233092039/avolio-design-pocket-fishnet-open-style-jeans
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)
L26[04:44:41] <Inari> Temia: https://twitter.com/Hanse00/status/1007484833847599104 :o
L27[04:44:42] <MichiBot> Thu Jun 14 23:47:57 CDT 2018 @Hanse00: @Imalune https://t.co/l5vqVRorMt
L28[05:46:24] <Izaya> https://my.mixtape.moe/zrqutd.jpg we shiny and chrome now
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
L41[07:11:58] <ocdoc> http://ocd.cil.li/api:internet
L42[07:18:34] <Temia> :>
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
L50[07:38:08] <Inari> :3
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!
L54[07:39:44] <Inari> xD
L55[07:39:56] <Temia> :<
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:
L61[07:41:49] <S3> Lol
L62[07:42:34] <Inari> gerbil, cowbil, cow with a bill
L63[07:42:35] <Inari> :D
L64[07:43:17] <Temia> ...no
L65[07:43:23] <Temia> Not even.
L66[07:43:25] <Temia> :c
L67[07:43:33] <Inari> But you like birds
L68[07:43:59] * Temia lightly baps
L69[07:44:10] <Inari> :<
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...
L74[07:44:47] <Inari> :P
L75[07:45:03] <Inari> I need a cow in Starbound
L76[07:47:14] <S3> Moo
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...
L79[07:58:08] <Inari> https://i.pinimg.com/736x/74/91/d4/7491d400cab5726c9842b3852ffff14d--monster-hunter-hunters.jpg pretty :o
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
L84[08:14:22] <Inari> http://tinyurl.com/y7yv9neu
L85[08:15:38] <Inari> https://twitter.com/xChaai/status/1007014489521192960 heh
L86[08:15:38] <MichiBot> Wed Jun 13 16:38:58 CDT 2018 @xChaai: What the fuck https://t.co/HfhZMXDmsm
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
L132[09:35:49] <S3> OC*
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
L139[09:41:16] <S3> A*
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")
L210[10:51:16] <Skye> ^
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
L269[12:41:04] <Guest13> https://gist.github.com/sshilovsky/1ee77c1c5353994b89504099d2f1780b
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
L274[12:42:38] <S3> Be*
L275[12:44:50] <Ristelle> I give a challenger to you all. Make a faster struct library: https://raw.githubusercontent.com/iryont/lua-struct/master/struct.lua
L276[12:44:56] <Ristelle> I give a challenge to you all. Make a faster struct library: https://raw.githubusercontent.com/iryont/lua-struct/master/struct.lua [Edited]
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*
L294[12:49:39] <Ristelle> https://cdn.discordapp.com/attachments/387658212632952832/457238464690388993/unknown.png
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
L300[12:53:24] <S3> Omg
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
L304[12:53:59] <S3> Oh
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*
L309[12:54:28] <Ristelle> https://github.com/GlobalEmpire/OC-Programs/commit/6f3269cc0a0cd87c66c7ace8a44094118104a46d
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
L411[14:14:33] <Guest13> http://www.lua.org/manual/5.2/manual.html#2.4
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
L435[14:20:40] <Guest13> https://github.com/OpenPrograms/gamax92-Programs/blob/master/vcomponent/vcomponent.lua#L33
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?
L456[14:28:23] <payonel> on, just http://ocdoc.cil.li/
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
L488[14:37:27] <payonel> https://github.com/MightyPirates/OpenComputers/issues/2686
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
L510[14:42:16] <S3> Fun!
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
L520[14:43:21] <ocdoc> http://ocd.cil.li/api: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
L565[15:27:10] <S3> An*
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
L574[15:29:56] <S3> Orbstheorem i will push tonight, but the old nasty code is http://github.com/bhodgins/trotwood if i topped that correctly
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
L592[15:32:39] <Guest13> Obstheorem https://gist.github.com/sshilovsky/176f5fc9e187623c018060c3ccc4fe32
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
L632[16:00:26] <S3> Aaq
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)
L636[16:32:11] <Orbstheorem> Well, if anybody would like to take a look: https://gitlab.com/roosemberth/OpenComputers-Programs :)
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
L651[16:43:42] <Pablu> http://tinyurl.com/yacggq6t
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
L658[16:51:04] <Guest13> https://gist.github.com/sshilovsky/ba7cfa5634fabb43d845fab23d802e95
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
L689[17:12:18] <S3> hmm
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
L699[17:15:25] <S3> :)
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
L705[17:20:19] <S3> http://github.com/bhodgins/trotwood
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 :)
L712[17:23:01] <S3> For?
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
L730[17:27:29] <S3> haha
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)
L748[17:33:29] <S3> :D
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
L752[17:33:56] <S3> yeah
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
L760[17:36:59] <Orbstheorem> What happens if you do something like this: https://paste.gnugen.ch/raw/PHWd
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)
L805[17:50:55] <S3> cool
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
L822[17:55:19] <S3> heh
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
L828[17:56:59] <S3> oops
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
L851[18:03:41] <S3> haha
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
L875[18:14:40] <S3> nice
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
L885[18:17:46] <S3> :D
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
L895[18:35:49] <S3> :D
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 :(
L919[21:23:44] <S3> uh
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
<<Prev Next>> Scroll to Top