<<Prev Next>> Scroll to Bottom
Stuff goes here
L1[00:00:02] <pay​onel> @Kristopher38 he's on a server he doesn't run
L2[00:00:07] <pay​onel> he's talking about editing remote files
L3[00:00:48] <Kristo​pher38> Oh, sorry, I wasn't paying enough attention
L4[00:02:18] <Some​body> @Kristopher38 Thanks though, i've noticed that config before but for this i'll have to manually edit things and wget/copy-pasta things 🙂
L5[00:37:53] ⇦ Quits: Inari (~Pinkishu@pD9E8F6CF.dip0.t-ipconnect.de) (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/)
L6[00:47:45] ⇦ Quits: immibis (~immibis@x52716a8d.dyn.telefonica.de) (Ping timeout: 189 seconds)
L7[01:32:14] <pay​onel> this took a lot of work, tweaking, testing
L8[01:32:23] <pay​onel> announcement, gpu video ram
L9[01:32:36] <pay​onel> commit message: gpu video ram with allocate, free, bitblts. writing text and color data to a gpu page is free and server side only. bitblt to screen cause an update and has more budget and power cost
L10[01:34:16] <Adorabl​eCatgirl> 👀
L11[01:34:19] <Adorabl​eCatgirl> YES
L12[01:34:30] <Kristo​pher38> Is this a new update I see
L13[01:34:35] <pay​onel> yeah
L14[01:34:38] <pay​onel> it took a lot of work 🙂
L15[01:34:42] <pay​onel> i'm working on the wiki page now
L16[01:34:51] <Adorabl​eCatgirl> i
L17[01:34:52] <Adorabl​eCatgirl> really
L18[01:34:53] <pay​onel> i need opinions on api
L19[01:34:54] <Adorabl​eCatgirl> really like this
L20[01:35:30] <Kristo​pher38> I'll try this in a minute
L21[01:35:46] <pay​onel> @here new feature: accessible gpu ram
L22[01:35:56] <Adorabl​eCatgirl> I should get back to work on OSSM so I can have a lot of fun with more OC stuff
L23[01:36:01] <Adorabl​eCatgirl> I want my smart cards now
L24[01:36:04] <Klea​dron> :hyperclap:
L25[01:36:05] <Eve​ryOS> Awesome
L26[01:36:06] <ThePi​Guy24> hmmm
L27[01:36:10] <wα​єrm> 😍
L28[01:36:13] <Xand​aros> HWHAT‽
L29[01:36:17] <Eve​ryOS> (:
L30[01:36:20] <Z​ef> oh shit what
L31[01:36:20] <Ch​az> Ooh
L32[01:36:21] <bende​vnull> Any documentation yet? 👀
L33[01:36:22] <Adorabl​eCatgirl> brb
L34[01:36:23] <Adorabl​eCatgirl> gotta reboot
L35[01:36:27] <CaveJoh​nson376> woaaah
L36[01:36:27] <The​Fox> >.>
L37[01:36:33] <Sap​hire> @payonel SPRITES?
L38[01:36:33] <ThePi​Guy24> real time high res colour video playback is gonna be good now
L39[01:36:34] <TheDr​ummer> WHO THE FRICK @ ME
L40[01:36:39] <Sap​hire> @TheFox oh hi
L41[01:36:44] <The​Fox> Hia Saph!
L42[01:36:45] <Eve​ryOS> @TheDrummer Payonel
L43[01:36:48] <Sap​hire> And hah, everyone is here now
L44[01:36:49] <bende​vnull> > real time high res colour video playback is gonna be good now
L45[01:36:49] <bende​vnull> @ThePiGuy24
L46[01:36:49] <bende​vnull> This lol
L47[01:36:55] <TheDr​ummer> Payonel
L48[01:37:05] <Kristo​pher38> Woah, that caused quite a stir :D
L49[01:37:08] <ThePi​Guy24> i already have fairly low res video playback
L50[01:37:08] <Ch​az> After ten thousand years I'm finally here
L51[01:37:09] <R​ph> yes!
L52[01:37:09] <TheDr​ummer> You're gonna pay on God.
L53[01:37:11] <The​Fox> Poor Payonel drew the short stick, after a feature like that he's going to be the man of the year
L54[01:37:15] <R​ph> accessible GPU ram seems like an amazing idea
L55[01:37:18] <Sap​hire> So
L56[01:37:25] <TheDr​ummer> Anyone?
L57[01:37:26] <Sap​hire> Are we at Atari level yet
L58[01:37:30] <pay​onel> i'm working on the wiki doc now
L59[01:37:32] <TheDr​ummer> No one one like that pun?
L60[01:37:33] <Peach​Master> And they say, and they say, and they say, shiverary is dead.
L61[01:37:33] <pay​onel> but this is a BRIEF overvie
L62[01:37:37] <TheDr​ummer> Or I mean play on words?
L63[01:37:37] <Sap​hire> No wait, Amiga, derp
L64[01:37:40] <Ar​iri> Tensorflow on OC?
L65[01:37:40] <pay​onel> you can allocate a buffer
L66[01:37:43] <TheDr​ummer> No one
L67[01:37:46] <pay​onel> then you can set your gpu to that buffer
L68[01:37:48] <TheDr​ummer> I'll see myself out.
L69[01:37:48] <The​Fox> > Tensorflow on OC?
L70[01:37:49] <The​Fox> @Ariri
L71[01:37:50] <The​Fox> ohno
L72[01:37:52] <R​ph> @payonel are you taking idea suggestions or did you design this already?
L73[01:37:55] <pay​onel> and once set, reads/writes to the gpu are to the buffer, not the screen
L74[01:37:58] <Sap​hire> @payonel hold up, full 2d buffer stuff, not just sprite/text mode?
L75[01:38:01] <pay​onel> also, you can use a gpu without a screen
L76[01:38:09] <pay​onel> correct, it is a full text buffer, equal to a screen
L77[01:38:14] <pay​onel> and you can set your own size
L78[01:38:19] <ThePi​Guy24> colour too?
L79[01:38:22] <pay​onel> yes
L80[01:38:25] <ThePi​Guy24> nice
L81[01:38:26] <Sap​hire> ... Text, not pixel?
L82[01:38:28] <pay​onel> the depth is based on the g pu tier
L83[01:38:29] <ThePi​Guy24> this gonna be good
L84[01:38:41] <pay​onel> the totalMemory is maxWidth maxHeight tier
L85[01:38:50] <Ar​iri> I'm seeing people in the chat I have never heard from before XD
L86[01:38:51] <pay​onel> so, T1 gets 1 full screen size, T2 gets 2, and T3 gets 3
L87[01:39:11] <pay​onel> @Rph the work is "done"
L88[01:39:15] <Sap​hire> Ooh, back buffer?
L89[01:39:19] <pay​onel> but definitely open to feedback, suggestions, fixes, etc
L90[01:39:21] <bende​vnull> So theoretically, we could design multiple frame buffers with 2 and 3?
L91[01:39:28] <Sap​hire> Yup
L92[01:39:32] <pay​onel> yes. you can bitblt between buffers too
L93[01:39:33] <CaveJoh​nson376> omg
L94[01:39:35] <pay​onel> or to/from the screen
L95[01:39:38] <ThePi​Guy24> is there any eta on when it will have a full release?
L96[01:39:40] <Sap​hire> ... Nice
L97[01:39:53] <pay​onel> again, you can use a gpu without a screen
L98[01:39:54] <CaveJoh​nson376> so basically, gpu can be used as more powerful cpu?
L99[01:40:01] <pay​onel> though right now, there is no gpu->gpu copies
L100[01:40:09] <pay​onel> i MIGHT add that, but we'd need a meaningful api suggestion
L101[01:40:14] <Sagh​etti> :Pingsock:
L102[01:40:18] <bende​vnull> Does each GPU have its own memory?
L103[01:40:19] <Sagh​etti> but still
L104[01:40:22] <Sagh​etti> nice feature :D
L105[01:40:23] <pay​onel> es
L106[01:40:25] <pay​onel> yes*
L107[01:40:27] <R​ph> Well, I had another idea for how this could be done:
L108[01:40:27] <R​ph> The viewport feature could be expanded so that you have a 160x50 screen but a 320x100 framebuffer and you can display each quadrant and quickly swap between them
L109[01:40:32] <pay​onel> a gpu can allocate and use its buffer without a screen
L110[01:40:35] <bende​vnull> And is it possible to have more than one GPU in a computer?
L111[01:40:43] <Sagh​etti> yeah, always has been
L112[01:40:48] <Adorabl​eCatgirl> yea
L113[01:40:48] <pay​onel> @bendevnull yes
L114[01:40:52] <bende​vnull> Oh damn lol
L115[01:40:57] <bende​vnull> I've never tried it honestly
L116[01:40:57] <CaveJoh​nson376> hmmm
L117[01:41:12] <Adorabl​eCatgirl> gonna work on smart cards
L118[01:41:23] <CaveJoh​nson376> i want to try to make an ray-tracing thingy with these computers
L119[01:41:29] <pay​onel> here is one of my tests
L120[01:41:30] <Sagh​etti> smart cards? yes
L121[01:41:36] <Sagh​etti> smart cards? yes please [Edited]
L122[01:41:51] <pay​onel> Code Block pastebined https://paste.pc-logix.com/waxodafubi
L123[01:42:19] <Sap​hire> @payonel eheh.. so when are we getting SLI/CrossFire
L124[01:42:25] <pay​onel> there is SOME call budget cost on `gpu.set` even when it is a buffer. but blits are fast
L125[01:42:31] <pay​onel> 🙂
L126[01:42:53] <Bohemi​anHacks> ping happened?
L127[01:43:28] <Adorabl​eCatgirl> i can finally make my terminal faster
L128[01:43:30] <CaveJoh​nson376> soooooo
L129[01:43:49] <pay​onel> my test code ^ btw...is using a LOT of default params
L130[01:44:01] <CaveJoh​nson376> i didn't get into it
L131[01:44:02] <pay​onel> for example, `gpu.bitblt()` defaults everything
L132[01:44:03] <CaveJoh​nson376> i didn't get into it well [Edited]
L133[01:44:08] <pay​onel> yes, i'm working on docs...
L134[01:44:13] <CaveJoh​nson376> ok then
L135[01:44:19] <CaveJoh​nson376> when update?
L136[01:44:28] <Mic​hiyo> BLT's at @payonel's
L137[01:44:31] <pay​onel> ```
L138[01:44:31] <pay​onel> bitblt(dst, col, row, width, height, src, fromCol, fromRow)
L139[01:44:31] <pay​onel> ```
L140[01:44:46] <Adorabl​eCatgirl> LT?
L141[01:44:48] <Adorabl​eCatgirl> *BLT?
L142[01:44:54] <Adorabl​eCatgirl> binary lua tables
L143[01:44:55] <Mic​hiyo> %google blt
L144[01:44:56] <MichiBot> Mic​​hiyo: https://www.food.com/recipe/classic-blt-sandwich-129615 - *Classic BLT Sandwich Recipe - Food.com*: "I use to always make my BLT's this way. I used one large slice of tomato only, and two strips of thick bacon or it may not fit in the mouth. I also added a little onion."
L145[01:45:03] <CaveJoh​nson376> LOL
L146[01:45:04] <CaveJoh​nson376> XD
L147[01:45:06] <Bohemi​anHacks> neat, so we can have even more realistic in game cryptocurrencies 😄
L148[01:45:07] <Mic​hiyo> :P
L149[01:45:15] <Adorabl​eCatgirl> oh fuck
L150[01:45:19] <Adorabl​eCatgirl> i may have uh
L151[01:45:24] <Adorabl​eCatgirl> i may have lost BLT
L152[01:45:25] <Adorabl​eCatgirl> 👀
L153[01:45:27] <Sagh​etti> %google block level transfer
L154[01:45:28] <MichiBot> Sagh​​etti: https://help.goodsync.com/hc/en-us/articles/360002346092-Block-level-copy - *Block-level copy – GoodSync*: "Block-level transfer is an optimized method of file transfer that focuses on providing high-performance transfers across our GSTP protocol. With block-level  ..."
L155[01:45:36] <Sagh​etti> dang it
L156[01:45:37] <Sagh​etti> x2
L157[01:45:47] <Sap​hire> eats your BLT
L158[01:45:50] <Adorabl​eCatgirl> nevermind found it http://tinyurl.com/ydhqtgfc
L159[01:45:55] <R​ph> @payonel another idea: would something equivalent to computercraft's `term.blit` be possible?
L160[01:45:59] <R​ph> setting a whole line
L161[01:46:04] <R​ph> with predefiend characters and colors for every character
L162[01:46:11] <CaveJoh​nson376> so in general, it will allow to read/write all that faster?
L163[01:46:21] <Sagh​etti> also will it be possible to have buffers in displays?
L164[01:46:23] <pay​onel> Message contained 4 or more newlines and was pastebined https://paste.pc-logix.com/amubarokim
L165[01:46:27] <Sagh​etti> or is it just GPUs
L166[01:46:54] <pay​onel> @Rph you could do that with a buffer
L167[01:47:04] <pay​onel> video ram* buffer
L168[01:47:09] <Aiv​ech> who the h e c c just pinged
L169[01:47:36] <pay​onel> @Aivech i did. new feature: acccessible gpu ram
L170[01:47:55] <pay​onel> @Rph i mean: you can now do that
L171[01:47:59] <Aiv​ech> does this mean we have to write graphics drivers now
L172[01:48:02] <pay​onel> although, now directly from, e.g., a string
L173[01:48:15] <Aiv​ech> can i port vulkan to oc
L174[01:48:15] <pay​onel> so about this--
L175[01:48:29] <pay​onel> there is a lot of cost in updating clients (game clients) of a new buffer data
L176[01:48:39] <pay​onel> so for very fast graphics consider 2 important thing
L177[01:48:41] <pay​onel> things*
L178[01:48:53] <pay​onel> 1. smaller resolution buffers if you need buffers than change often
L179[01:49:00] <pay​onel> 2. large static buffers that you plan to not change
L180[01:49:09] <pay​onel> the backend code only sends a buffer when it is "dirty"
L181[01:49:17] <pay​onel> and then the blits occur via remote api
L182[01:49:49] <pay​onel> typo: 1. smaller resolution buffers if you need buffers that* change often
L183[01:50:03] <R​ph> yeah, I wanted to play around with fast moving images, I think doing differential compression is my best friend here
L184[01:50:10] <R​ph> And doing stuff with lower resolutions
L185[01:50:24] <pay​onel> we leverage mc forge packet compression already
L186[01:50:32] <pay​onel> not saying you can't do better/more -- just saying, there is SOME
L187[01:50:59] <Klea​dron> does the GPU only display with text characters as usual?
L188[01:51:09] <Sagh​etti> ~~make bitmap mode~~
L189[01:51:10] <pay​onel> also, from my testing, i found it is easy to get a computer "stuck" in the wrong buffer 🙂
L190[01:51:18] <pay​onel> buffer index zero is always the screen
L191[01:51:23] <R​ph> I mean, you can leverage braille characters for pixel-style characters
L192[01:51:30] <R​ph> I do that quite a lot in my software
L193[01:51:35] <pay​onel> so if your script hangs/dies during the wrong active buffer, you basically have to hard reset the machine
L194[01:51:50] <R​ph> Couldn't that problem be fixed partly by OpenOS?
L195[01:51:54] <pay​onel> yes it can
L196[01:51:59] <R​ph> maybe having the shell force itself back to buffer 0
L197[01:52:04] <Kristo​pher38> ^this
L198[01:52:12] <R​ph> after program execution concludes
L199[01:52:13] <pay​onel> i could cause ctrl+alt+c to reset the buffer to zero
L200[01:52:20] <pay​onel> eh, maybe
L201[01:52:23] <pay​onel> anyways, it's a thing
L202[01:52:33] <R​ph> I think this shouldn't be behaviour done in java but rather by lua software on computers
L203[01:52:37] <DaCompu​terNerd> so what does this new update do anyways
L204[01:52:38] <Kristo​pher38> no, I mean when the xpcall that the shell is doing when you launch a program from the shell
L205[01:52:40] <R​ph> so like, the OS should decide how to handle buffer updates
L206[01:52:44] <pay​onel> going to SCREEN in shell is a good suggestion though, i'll think about that
L207[01:52:50] <Kristo​pher38> if it fails, reset the buffer to zero
L208[01:53:06] <R​ph> this new change is going to make my project to create a virtual GPU quite a bit more complex
L209[01:53:13] <R​ph> but I like this change a lot
L210[01:53:20] <Klea​dron> i mainly just want square characters so i could use stuff like this http://tinyurl.com/y9apdc7k
L211[01:53:34] <Adorabl​eCatgirl> you can use block characters
L212[01:53:45] <R​ph> or braille.
L213[01:53:48] <Adorabl​eCatgirl> font is basically 8x16 iirc
L214[01:53:52] <DaCompu​terNerd> did multiple gpus actually make a difference before
L215[01:53:55] <R​ph> braille lets you go for 320x200 on a T3 monitor
L216[01:53:56] <DaCompu​terNerd> like if bound to the same screen
L217[01:54:03] <Adorabl​eCatgirl> i don't think so
L218[01:54:18] <Adorabl​eCatgirl> ?
L219[01:54:48] <pay​onel> hmm...what if bitblt for dst and src instead of ints, you could provide a string, which is a component guid .. and you could copy to another gpu? it would use that gpu's active buffer?
L220[01:54:50] <pay​onel> not sure
L221[01:55:08] <pay​onel> it's dangerous for me to brain storm publically
L222[01:55:09] <Corded> * <pay​onel> hides
L223[01:55:11] <DaCompu​terNerd> lol
L224[01:55:11] <Brothe​r_Leon> What is the best way to get into LUA and this mod?
L225[01:55:11] <MichiBot> It's Lua, not LUA. Name not an acronym.
L226[01:55:13] <R​ph> I wonder how many novel ways to break this the community will manage to find
L227[01:55:20] <Brothe​r_Leon> What is the best way to get into Lua and this mod? [Edited]
L228[01:55:29] <Kristo​pher38> ALOT
L229[01:55:29] <MichiBot> ALOT: http://tinyurl.com/y42zurt
L230[01:55:30] <pay​onel> @Rph 🙂
L231[01:56:08] <Or​tho> asie used braille too
L232[01:56:13] <DaCompu​terNerd> brother leon, I'd recommend finding a lua tutorial online, reading through until you understand probably up to tables and functions, then using the wiki to help do what you want to do with OC
L233[01:57:09] <Adorabl​eCatgirl> >hop into an MW2 game in 2020
L234[01:57:17] <Adorabl​eCatgirl> >all i hear is paranoid playing and helicopters
L235[01:57:18] <B​ob> When will be parallel threads a thing tough
L236[01:57:24] <pay​onel> never
L237[01:57:30] <Or​tho> multiple computers :P
L238[01:57:35] <B​ob> also colab with NuclearCraft for a quantic architecture
L239[01:58:01] <B​ob> %tutorial
L240[01:58:02] <MichiBot> B​​ob: https://www.tutorialspoint.com/lua/index.htm
L241[01:58:07] <Brothe​r_Leon> Thank you, @DaComputerNerd . Tables and Functions then just look up
L242[01:58:25] <B​ob> Also OC has a wiki , look up components and signals asap
L243[01:58:32] <B​ob> core part of the mod
L244[01:58:50] <R​ph> @payonel question:
L245[01:58:50] <R​ph> Are improvements to the internet functionality planned any time? (Faster requests, websockets, async requests)
L246[01:58:50] <R​ph> Async requests would basically mean you queue a signal with the response instead of blocking the read call
L247[01:59:48] <B​ob> internet response events 🤔
L248[02:00:11] <B​ob> that would be an intrusting idea
L249[02:00:12] <R​ph> I am looking a bit at what CC does, in their case when you do http.get, it yields until it receives a response
L250[02:00:13] <R​ph> and other code can run
L251[02:00:23] <DaCompu​terNerd> well, work through to tables and functions, don't jump to them
L252[02:00:42] <Kristo​pher38> @payonel you said gpu.set calls and whatnot aren't entirely free in the buffer, so how much exactly do they cost
L253[02:00:53] <Kristo​pher38> in terms of fractions of the call budget of 1.0
L254[02:01:27] <DaCompu​terNerd> the ability to actually get a benefit from multiple gpus is nice, and I will be sure to update once the update is out
L255[02:01:44] <pay​onel> @Kristopher38 you can fill a screen size buffer with 1-char set calls in about .5s -- at least from my testing running mc from intellij
L256[02:01:45] <ebopa​lisesy> :dogping:
L257[02:01:59] <B​ob> :GWvictoriaBlobNomPing:
L258[02:02:34] <pay​onel> @Rph no, i'm not looking to advance the internet cards
L259[02:03:03] <pay​onel> our internet card already has async api
L260[02:03:19] <pay​onel> and it uses signals if you want to handle the response async too
L261[02:03:22] <R​ph> I must have missed that when looking at the documentation
L262[02:04:40] <Kristo​pher38> @payonel isn't this explicitly stated in the code somewhere? 🤔 I know there's a table that's used to determine call cost for each operation and for each gpu tier, but is it used by the code when printing to buffers? also on what CPU were you testing, the tier3 cpu has 1.5x multiplier
L263[02:05:06] <Kristo​pher38> table->array*
L264[02:05:39] <pay​onel> it is listed in the code, i have control over the budget costs. there is no explicit cost on the gpu set calls to the vram buffer currently
L265[02:05:53] <pay​onel> but there is always some context switching going on with machine states
L266[02:06:07] <Sket​amine> :GWthedarthPingGasm:
L267[02:06:11] <pay​onel> but it is important to not lock-up server ticks, so i'll be reviewing this workflow later
L268[02:06:37] <Kristo​pher38> also what you're saying would amount to roughly 8000 calls per 0.5s, 800 calls per tick
L269[02:07:02] <pay​onel> and that was all in dev env, so, your pixels may vary
L270[02:07:26] <Kristo​pher38> we assume dev to be slower?
L271[02:07:38] <pay​onel> i would 🙂
L272[02:08:02] <Sagh​etti> oc2 hypeee
L273[02:08:12] <DaCompu​terNerd> oc2?
L274[02:08:18] <DaCompu​terNerd> this does seem hypeworthy
L275[02:09:29] <Tomat​oSoup> @payonel if you were to target a minecraft release other than 1.12.2, which would it be?
L276[02:09:40] <Tomat​oSoup> hypothetically speaking
L277[02:09:42] <pay​onel> for what?
L278[02:09:48] <pay​onel> for a hypthetical oc2?
L279[02:09:52] <Tomat​oSoup> yeah.
L280[02:10:10] <pay​onel> i have to run. but -- latest whatever
L281[02:10:11] <pay​onel> 🙂
L282[02:10:13] <pay​onel> bbl
L283[02:10:20] <Si​nZ> 1.15.2, right?
L284[02:10:20] <Tomat​oSoup> Take care. Love your work.
L285[02:10:35] <Tomat​oSoup> Sounds like that, unless getting OC2 takes so long 1.16 is stable
L286[02:10:37] <R​ph> 1.15.2 technically isn't latest anymore
L287[02:10:44] <R​ph> Fabric runs on snapshots already
L288[02:11:02] <Si​nZ> snapshots update weekly, not sustainable
L289[02:11:14] <R​ph> But this causes the discussion between modloaders which I'd rather not start
L290[02:11:49] <Tomat​oSoup> As long as the target api stays stable, then I imagine it would be sustainable. Most changes won't require changes to the mod, just a new API version.
L291[02:12:41] <Tomat​oSoup> Fabric only recently crossed my radar. Rph, do you have a handy run down of it I could read? Not looking for a discussion here.
L292[02:15:12] <B​ob> Forgr is more hefty with what it provides, whike fabric stays light
L293[02:15:39] <B​ob> Forge has to port over most of the toolset while fabric can quickly jump over to the next version / snapshot / change
L294[02:15:59] <Ore​ole1> hello, came because of ping
L295[02:16:03] <Tomat​oSoup> Why is that? What allows them to react so quickly?
L296[02:16:52] <B​ob> Not having all of that mumbo jumbo to port and adapt ?
L297[02:17:43] <Tomat​oSoup> So it's less feature filled, but that makes it exceptionally fast to adapt. Whereas forge does much more, but is even more work to bring all those features forwards. That's a good summary?
L298[02:19:41] <B​ob> Kinda
L299[02:23:15] <pay​onel> ok back
L300[02:23:17] <pay​onel> got grub
L301[02:23:25] <Tomat​oSoup> excellent. what kind?
L302[02:23:27] <pay​onel> @Oreole1 new oc feature, gpu vram
L303[02:23:31] <pay​onel> eggs
L304[02:23:34] <pay​onel> i do keto
L305[02:23:38] <Tomat​oSoup> right on
L306[02:27:25] <Kristo​pher38> Hmm, I'm doing something wrong, only the first frame gets displayed :GWchadThonkery:
L307[02:29:23] <Kristo​pher38> @payonel can I write on an already-written buffer?
L308[02:30:21] <pay​onel> each page acts like a screen
L309[02:30:23] <pay​onel> same rules apply
L310[02:30:34] <Kristo​pher38> hm
L311[02:30:41] <pay​onel> only the first frame is displayed? could be a bug 🙂 it is alpha i suppose
L312[02:30:46] <pay​onel> can you share your code?
L313[02:30:54] <pay​onel> i do want to get the docs out first, then i can debug
L314[02:31:31] <Kristo​pher38> uhh, the setup I've got is very specific, let me write something more concise, while you finish the docs
L315[02:37:44] <Kristo​pher38> @payonel your example, modified
L316[02:37:44] <Kristo​pher38> Code Block pastebined https://paste.pc-logix.com/cowirimoho
L317[02:38:18] <pay​onel> that is going to update the screen faster than you'll see it happen
L318[02:38:31] <pay​onel> but i can add some checks in the code to make sure that 100 client-side bitblts happened
L319[02:38:36] <33​01> Is this mod going to be updated to 1.14?
L320[02:39:06] <Kristo​pher38> even if I add artificial delay, like event.pull(0.25) it still doesn't work
L321[02:39:38] <Kristo​pher38> it should flash 10x10 area in the top left corner with a -> b -> a and so on
L322[02:39:41] <pay​onel> @Kristopher38 oh, you're.. um
L323[02:39:45] <pay​onel> ok, i'll review later
L324[02:40:29] <Kristo​pher38> sure, np
L325[02:42:10] <Kristo​pher38> also I think I haven't thanked you already so - thank you for this new feature
L326[02:43:16] <Kristo​pher38> also I think I haven't thanked you yet so - thank you for this new feature [Edited]
L327[02:43:58] <Tech​okami> oh man this new feature sounds kickass! But the real question is, will this also be part of the 1.14+ update or is it still for 1.12 and lower? 🤔 This is like, the last big mod I'm missing from my 1.14.4 pack right now, and things like being able to actually swim keep me from going back to 1.12
L328[02:43:58] <Tech​okami> inb4 payonel shoots me
L329[02:48:21] <Kristo​pher38> there won't be OC for 1.14+, but there is theoretical OC2 planned for whatever will be the latest version
L330[02:49:14] <Klea​dron> i stick to 1.7.10 because i feel like it has the mods at their best before they started losing all sense, i was playing izaya's 1.12.2 modpack a while ago which had enderio in it, which i thought was a pretty good mod except for the fact it makes you light bedrock on fire to get bedrock dust to get started with it
L331[02:49:24] <Klea​dron> and then there's buildcraft 7.99
L332[02:49:42] <Klea​dron> i don't want to deal with all of this fuel processing bullcrap
L333[02:50:02] <pay​onel> https://ocdoc.cil.li/component:gpu#video_ram_buffers
L334[02:50:37] <Klea​dron> the fuel processing stuff is cool and all, but you're shoving that into one of the easiest to learn and fun and simple mods
L335[02:50:48] <pay​onel> @Kristopher38 ok, i'll load up and poke at this issue
L336[02:51:51] <Klea​dron> the oil processing makes buildcraft feel more "realistic" to me, and i didn't come to modded minecraft for the realism
L337[02:52:37] <Klea​dron> only if i feel like it sometimes
L338[02:53:37] <Klea​dron> which is why if i ever learn modding properly, i'm going to port buildcraft 7.1 to future versions
L339[02:58:00] ⇨ Joins: flappy (~flappy@88-113-149-197.elisa-laajakaista.fi)
L340[02:59:44] ⇦ Quits: Thutmose (~Patrick@host-69-59-79-181.nctv.com) (Read error: Connection reset by peer)
L341[03:01:40] ⇨ Joins: Thutmose (~Patrick@host-69-59-79-181.nctv.com)
L342[03:09:21] <Kristo​pher38> ah crap, it's starting to get bright outside
L343[03:19:17] ⇦ Quits: Cervator (~Thunderbi@70.241.38.147) (Quit: Cervator)
L344[03:23:14] ⇨ Joins: Cervator (~Thunderbi@70.241.38.147)
L345[03:24:26] <Nathan -​ Not abel> payonel just a quick question would it be possible to make the restone i/os pushable by pistons as a feature?
L346[03:25:50] <Sagh​etti> is it possible? yes
L347[03:25:54] <pay​onel> i dont see why not
L348[03:26:01] <pay​onel> i'm sure i'll find dragons as soon as i try
L349[03:26:02] <pay​onel> 🙂
L350[03:26:04] <pay​onel> but sure
L351[03:27:17] <Kristo​pher38> @payonel also I looked at the part in the source where you calculate bitblt call cost, `if (dirtyPage) bitbltCosts(tier) else setCosts(tier)`, if you want to incentivize using smaller pages over one big page for the whole screen, I'd suggest scaling the cost linearly by the page size (number of pixels copied), i.e. page which is full size of the screen would be multiplier 1.0, smaller pages like 1/4 screen size would be multiplier 0.25 to the
L352[03:27:17] <Kristo​pher38> call cost
L353[03:28:08] <pay​onel> seems reasonable
L354[03:28:17] <Kristo​pher38> otherwise people are gonna use one big page for the whole screen since that's more efficient in terms of not spending the call budget
L355[03:28:20] <pay​onel> right now the costs are arbitrary, to be honest
L356[03:28:29] <pay​onel> i need to find bugs, do some big server testing, get metrics, etc
L357[03:28:49] <pay​onel> true
L358[03:28:52] <pay​onel> that's a good point
L359[03:29:25] <pay​onel> also note, those cost values you just found, are NOT used for vram->vram writes
L360[03:29:33] <pay​onel> or screen->vram
L361[03:29:44] <pay​onel> basically, if the destination is a gpu buffer, there is no extra charge
L362[03:30:11] <Kristo​pher38> oh, I see, that's cool
L363[03:30:36] <pay​onel> i'm surprised how much work this took, btw
L364[03:30:47] <pay​onel> i spent probably ... 30 hours the last 3 days to do this
L365[03:33:29] <Kristo​pher38> Hmm I reread your answer on the issue
L366[03:33:46] <Kristo​pher38> `gpu vram writes are free`
L367[03:34:04] <Kristo​pher38> Are they?
L368[03:34:22] <Kristo​pher38> Sorry if I'm asking that again, I might be
L369[03:34:26] <Kristo​pher38> It's late
L370[03:34:27] <pay​onel> well, the gpu imposes no cost (no budget, no energy)
L371[03:34:47] <pay​onel> there is some time to context switch lua calls to the component
L372[03:34:54] <pay​onel> but there is no added cost
L373[03:35:17] <pay​onel> i want to make it faster, but for now, i'm focusing on correctness
L374[03:37:27] <Kristo​pher38> Sure, it's already a lot faster :D
L375[03:39:38] <Kristo​pher38> I should be going now
L376[03:40:04] <Kristo​pher38> I'm up for some testing tomorrow tho
L377[03:40:40] <Kristo​pher38> I'm downfor some testing tomorrow tho [Edited]
L378[03:41:11] <Kristo​pher38> I'm down for some testing tomorrow tho [Edited]
L379[03:41:14] <Kristo​pher38> Gn
L380[03:41:34] <pay​onel> goodnight
L381[03:41:36] <pay​onel> thanks for your help
L382[03:49:07] <Adorabl​eCatgirl> oof
L383[03:49:10] <Adorabl​eCatgirl> turns out
L384[03:49:20] <Adorabl​eCatgirl> hiding like 3000 lights hurts space engineers
L385[04:02:12] <Z0id​burg> lol
L386[04:03:07] <Ar​iri> Lua
L387[04:04:07] <pay​onel> ok this is really fun. i'm using psh (my remote ssh program for openos)
L388[04:04:26] <pay​onel> and i'm testing buffers on a remote machine so i can test 1 api at a time from the lua repl on machine b
L389[04:04:43] <pay​onel> and i can watch the screen on machine a -- even though machine a's buffer is offscreen
L390[04:05:14] <pay​onel> (and so, normal programs won't be drawing to the screen, so interactive io on it is not possible)
L391[04:05:19] <Ar​iri> o.o
L392[04:16:39] <pay​onel> @Kristopher38 should be fixed now
L393[04:34:53] <Michiyo> I managed to rewrite that code I nuked last night..
L394[04:35:05] <Michiyo> in about 4 hours previous run took 2 days lol
L395[04:37:19] <Ocawes​ome101> I mean, hey, at least it only took you that long
L396[04:37:29] <Ocawes​ome101> and not 2 day
L397[04:37:31] <Ocawes​ome101> + s
L398[04:39:00] <The_St​argazer> %tell Inari in all my infinite wisdom I forgot to tell you the name of the manga, it's "Gakuen Game Neptune Katsudou Diary"
L399[04:39:00] <MichiBot> The_St​argazer: Inari will be notified of this message when next seen.
L400[05:14:15] * Amanda points a powerful magnet at michiyo's new server
L401[05:14:28] * Amanda giggle flees off to bed
L402[05:17:32] <Sagh​etti> jokes on you, it's all solid state
L403[05:24:56] ⇨ Joins: ben_mkiv (~ben_mkiv@88.130.156.27)
L404[05:27:18] <CompanionCube> Izaya: oh, forgot to ask earlier: opinions on getting the shadowrun collection of rogs on steam?
L405[05:27:23] <CompanionCube> *rpgs
L406[05:32:45] ⇦ Quits: Backslash (~Backslash@d137-186-220-152.abhsia.telus.net) (Read error: Connection reset by peer)
L407[06:25:45] ⇦ Quits: Thutmose (~Patrick@host-69-59-79-181.nctv.com) (Quit: Leaving.)
L408[06:33:15] <SquidDev> %tonkout
L409[06:33:15] <MichiBot> Waesucks! Squi​dDev! You beat your own previous record of 4 hours, 24 minutes and 33 seconds (By 7 hours, 14 minutes and 22 seconds)! I hope you're happy!
L410[06:33:16] <MichiBot> Squi​dDev has tonked out! Tonk has been reset! They gained 0.011 tonk points! plus 0.02 bonus points for consecutive hours! Current score: 0.50483, Position #4 Need 0.16576 more points to pass Li​zzy!
L411[06:35:11] ⇦ Quits: Cervator (~Thunderbi@70.241.38.147) (Quit: Cervator)
L412[06:55:12] <pay​onel> @Kristopher38 pixel set the entire back buffer appears to be 4x faster than setting the screen
L413[06:55:40] <pay​onel> i'm working on a much more logical budgeting cost for bitblt, similar to your suggestion
L414[07:00:48] <The_St​argazer> `java.lang.IllegalStateException: Keyboard must be created before you can read events` haha what
L415[07:01:15] <The_St​argazer> i've seen Minecraft crash in unusual ways before but this.. this is just plain "this should never happen"
L416[07:01:48] <The_St​argazer> LWJGL oof'd itself
L417[07:11:31] <pay​onel> 🙂
L418[07:11:55] <pay​onel> ok -- i've been wondering why it takes me .5 seconds to call set 8000 times on the vram
L419[07:12:17] <pay​onel> figured it out, there is a "clamp" call budget cost of .001 per invoke
L420[07:12:28] <pay​onel> and the maxBudget is 1.5
L421[07:12:42] <pay​onel> so, that's 1500 calls before your budget times out
L422[07:13:29] <pay​onel> thus it should, at best, take 5.333 time outs to write to 160x50 buffer slots (or 8k)
L423[07:13:44] <pay​onel> if a timeout takes a tick to recover, that'd be .25s
L424[07:14:14] <pay​onel> also, i had my test wrong, i was writing too far
L425[07:14:21] <pay​onel> so, yeah, i actually get .25s
L426[07:14:24] <pay​onel> perfect!
L427[07:14:46] <pay​onel> ok, so you can redraw, pixel by pixel, an entire off-screen buffer in .25s
L428[07:15:06] <pay​onel> and the entire screen in 1.3s
L429[07:15:52] <pay​onel> nice -- ok everyone (who cares) 🙂
L430[07:16:23] <pay​onel> time to draw pixel by pixel to screen 160x80: 1.3 seconds
L431[07:16:23] <pay​onel> time to draw pixel by pixel to vram then bitblt to screen: .3s
L432[07:18:04] <Klea​dron> i hear about pixels
L433[07:18:58] <pay​onel> i always mean char slots or whatever you want to call them
L434[07:27:28] <The_St​argazer> so like, x1 y1 on the OC screen = 1 OC pixel?
L435[07:28:11] ⇨ Joins: Inari (~Pinkishu@pD9E8FAE1.dip0.t-ipconnect.de)
L436[07:29:52] ⇨ Joins: Vexatos (~Vexatos@port-92-192-23-38.dynamic.as20676.net)
L437[07:29:52] zsh sets mode: +v on Vexatos
L438[07:30:17] <pay​onel> yeah
L439[07:37:55] <Vexatos> @payonel cool stuff on the vram
L440[07:41:08] <Klea​dron> nice tall "pixels" you got there
L441[07:46:13] <The_St​argazer> TIL MultiMC can even do jar mods
L442[07:58:25] <Izaya> like, modloader style core mods?
L443[07:58:58] <A_D> open jar and dump/replace .class files jar modding
L444[08:03:31] <The_St​argazer> Izaya: no, like pre-forge jar mods (unless that's what you meant?)
L445[08:04:52] <Izaya> yeah that's what I meant
L446[08:05:03] <Izaya> modeloader style, where you have to remember to delete META-INF
L447[08:05:23] <The_St​argazer> oh, then yeah
L448[08:05:31] <The_St​argazer> why do you have to delete META-INF
L449[08:05:43] <The_St​argazer> i remember it's basically the golden rule of jar mods
L450[08:05:53] <Izaya> it contains a signature and hash for the file
L451[08:06:07] <Izaya> if it doesn't fit the jar file java won't load it
L452[08:06:25] <The_St​argazer> ohh
L453[08:06:29] <The_St​argazer> is that in every jar file?
L454[08:17:20] <pay​onel> Izaya: i did a thing
L455[08:19:50] <Izaya> a thing? :D
L456[08:23:42] <pay​onel> yeah, https://ocdoc.cil.li/component:gpu#video_ram_buffers
L457[08:25:30] <Izaya> so one could draw to buffers then blit the whole display?
L458[08:25:42] <pay​onel> yes
L459[08:26:04] <The_St​argazer> so does this mean that we can store bits of screen in a buffer, then draw the buffer onto the screen when needed?
L460[08:26:12] <pay​onel> yes
L461[08:26:24] <The_St​argazer> amazing
L462[08:26:48] <pay​onel> one of my favorite parts about this is that it gives real value to gpus
L463[08:26:48] <The_St​argazer> do i need to use `bitblt` or can i just use `setBuffer`
L464[08:27:02] <The_St​argazer> also yea, now they're more.. gpu-y
L465[08:27:02] <pay​onel> in fact, there is value now in even having a T3 gpu with a T2 or T1 screen
L466[08:27:11] <pay​onel> it has its own value
L467[08:27:12] <Izaya> I like that.
L468[08:27:19] <Izaya> Are the GPU capacity amounts still the same?
L469[08:27:24] <The_St​argazer> so T3 gpu + T1 screen is no longer useless?
L470[08:27:26] <The_St​argazer> \o.
L471[08:27:28] <The_St​argazer> \o/ [Edited]
L472[08:27:31] <pay​onel> @izaya same as what?
L473[08:27:38] <pay​onel> @The_Stargazer right 🙂
L474[08:27:39] ⇦ Quits: lord| (~ba7888b72@66.109.211.150) (Ping timeout: 190 seconds)
L475[08:27:46] <pay​onel> t3 gpu can hold a ton of "tall pixels"
L476[08:27:50] <Izaya> old version
L477[08:27:52] <pay​onel> 3 160 50
L478[08:28:01] <pay​onel> @izaya what is "capacity", sorry?
L479[08:28:10] <pay​onel> are you just referring to the device info?
L480[08:28:19] <Izaya> like, how much video RAM does it have
L481[08:28:35] <Izaya> previously, a T3 GPU had a capacity of 8000 because that's 160x50
L482[08:28:54] <pay​onel> @izaya: right, that's the same. that's technically the screen
L483[08:28:57] <pay​onel> but that's all the same
L484[08:29:07] <pay​onel> this is vram
L485[08:29:34] <Izaya> so buffer 0 is always displayed but you can switch to other buffers to draw to them, then blit them to the display?
L486[08:29:46] <pay​onel> T1 gpu: has 1 T1 resolution of `totalMemory` for vram buffers
L487[08:29:46] <pay​onel> T2 gpu: 2 T2 resolution ..
L488[08:29:46] <pay​onel> T3 gpu: 3 * T3 resolution
L489[08:29:55] <pay​onel> @Izaya yes
L490[08:29:59] ⇨ Joins: lord| (~ba7888b72@66.109.211.150)
L491[08:30:00] <pay​onel> and this works without a screen
L492[08:30:06] <pay​onel> well, you have buffers you can draw to
L493[08:30:22] <pay​onel> there isn't (yet...still thinking about logistics and api) a method to blit between gpus
L494[08:30:40] <pay​onel> i need to get this new feature working solid before i expand the scope, but that's in my mind
L495[08:30:44] <The_St​argazer> what's a blit?
L496[08:31:02] <pay​onel> right now i'm merging it up from 1.7.10 to 1.12, stuck on 1.10 (the screens are refreshing with the blits for some reason)
L497[08:31:10] <pay​onel> @The_Stargazer a bitblt? heard of this?
L498[08:31:14] <The_St​argazer> nope
L499[08:31:18] <The_St​argazer> never in my life :P
L500[08:31:33] <pay​onel> heard of memcpy?
L501[08:31:37] <The_St​argazer> uhh...
L502[08:31:42] <The_St​argazer> it sounds C-ish so.. no
L503[08:31:47] <pay​onel> ok -
L504[08:31:55] <The_St​argazer> i know basically no C/C++
L505[08:32:00] <pay​onel> bitblt is an api to copy a 2D region to another 2D buffer
L506[08:32:16] <The_St​argazer> ohhh, so it copies a region of the screen to a buffer?
L507[08:32:20] <pay​onel> yes
L508[08:32:27] <pay​onel> vram->vram, or vram->screen, or screen->vram
L509[08:32:35] <The_St​argazer> makes sense
L510[08:32:49] <The_St​argazer> so it allows for finer control than `setBuffer`?
L511[08:33:14] <pay​onel> you make me think my docs are quite detailed enough 🙂 you should provide some wiki edits 🙂
L512[08:33:19] <pay​onel> but to answer your question, and to expand
L513[08:33:26] <pay​onel> `setBuffer` "points" the gpu to a buffer
L514[08:33:27] <The_St​argazer> i'm assuming that `setBuffer` just draws the whole vram to the screen?
L515[08:33:30] <The_St​argazer> ohh
L516[08:33:34] <pay​onel> it is pointing to zero by default
L517[08:33:47] <pay​onel> this is a new feature, i'm open to change the api to make more sense
L518[08:33:55] <pay​onel> it isn't "release" yet 🙂
L519[08:33:58] <The_St​argazer> so the currently "selected" buffer is what is drawn to?
L520[08:33:59] <pay​onel> selectBuffer?
L521[08:34:06] <pay​onel> perhaps i should change the name....
L522[08:34:06] <The_St​argazer> yeah selectBuffer makes more sense
L523[08:34:12] <pay​onel> ok word
L524[08:34:16] <pay​onel> i'll change it tonight. i agree
L525[08:34:23] <pay​onel> what about `getBuffer` ?
L526[08:34:28] <pay​onel> that is the inverse of select
L527[08:34:34] <The_St​argazer> hmm
L528[08:34:40] <The_St​argazer> maybe `getCurrentBuffer`?
L529[08:34:44] <pay​onel> getCurrentBufferIndex? 🙂 it doesn't work as nicely as `selectBuffer`
L530[08:35:09] <The_St​argazer> could just be `currentBuffer()` but that might be confusing
L531[08:35:22] <pay​onel> well, you need to figure this out 🙂
L532[08:35:26] <pay​onel> anyways ---
L533[08:35:34] <pay​onel> the idea is to allocate and select vram buffers
L534[08:35:46] <The_St​argazer> question
L535[08:35:51] <pay​onel> once a buffer is selected, ALL subsequent gpu api calls are talking to that buffer (e.g. not the screen)
L536[08:35:57] <pay​onel> yep?
L537[08:36:08] <The_St​argazer> when a new buffer is selected, it doesn't affect the screen, correct?
L538[08:36:14] <pay​onel> correct
L539[08:36:14] <The_St​argazer> i.e. what's on the buffer doesn't get drawn
L540[08:36:23] <pay​onel> not until you blit it to the screen
L541[08:36:27] <The_St​argazer> ah
L542[08:36:29] <The_St​argazer> that makes sense now
L543[08:36:36] <pay​onel> word
L544[08:36:42] <pay​onel> also, this is stored/part of the gpu
L545[08:37:03] <pay​onel> so if, for example, you swap screens (e.g. physically remove a screen, or bind to a new one) --
L546[08:37:10] <pay​onel> all the buffer data is still in the gpu
L547[08:37:13] <The_St​argazer> right
L548[08:37:15] <pay​onel> so then you can blit separately
L549[08:37:20] <The_St​argazer> is it lost on shutdown?
L550[08:37:23] <pay​onel> yes
L551[08:37:26] <The_St​argazer> makes sense
L552[08:37:42] <The_St​argazer> one question -- in `bitblt` is `width, height` the area to copy to?
L553[08:37:51] <pay​onel> yes
L554[08:37:52] <The_St​argazer> the docs say "resolution of the destination buffer"
L555[08:37:57] <pay​onel> that's the default
L556[08:37:59] <The_St​argazer> which doesn't imply "copy area"
L557[08:38:01] <The_St​argazer> oh
L558[08:38:06] <pay​onel> you can call `gpu.bitblt()` with no args
L559[08:38:09] <The_St​argazer> i'm stupid :P
L560[08:38:33] <pay​onel> `gpu.bitblt()` with no args will copy the whole selected buffer to the screen
L561[08:38:36] <pay​onel> as much as it can
L562[08:38:40] <The_St​argazer> ah
L563[08:39:08] <The_St​argazer> how many buffers are availble by default?
L564[08:39:12] <pay​onel> 0
L565[08:39:14] <pay​onel> haha
L566[08:39:21] <The_St​argazer> is there a max buffers or is it just VRAM limited?
L567[08:39:27] <pay​onel> so, again, you should edit the wiki to explain this
L568[08:39:38] <pay​onel> 1. the screen index is reserved, it is buffer index 0
L569[08:39:40] <Vexatos> @payonel that's some cool stuff and actually fairly OC-esque
L570[08:39:42] <The_St​argazer> i would but i'm horrible at explaining things
L571[08:39:47] <The_St​argazer> also i don't think I have edit perms
L572[08:40:04] <Vexatos> now the question is, what to use it for
L573[08:40:06] <SquidDev> How does this work on the network side of things? From what I can tell, it syncs the vram buffer to the client and then sends a copy command?
L574[08:40:08] <pay​onel> 2. you start with no buffers. you can `allocateBuffer()` to get one. you can specify its size, or take default (which is your screen size)
L575[08:40:10] <Vexatos> how expensive is bitblt
L576[08:40:18] <Vexatos> call cost wies
L577[08:40:21] <Vexatos> wise*
L578[08:40:33] <The_St​argazer> SquidDev: are you trying to steal this for CC? 🤔 (nah i'm just kidding)
L579[08:40:35] <pay​onel> bitblt of a dirty page is very budget expensive
L580[08:40:42] <The_St​argazer> what is a 'dirty' page?
L581[08:40:44] <pay​onel> i've been doing a lot of load testing
L582[08:40:46] <Vexatos> nice
L583[08:40:57] <pay​onel> a dirty page is a modify bufffer
L584[08:41:00] <The_St​argazer> oh
L585[08:41:01] <pay​onel> bufffffffer typo 🙂
L586[08:41:10] <The_St​argazer> so a 'clean' page is a blank buffffffffffffffffffer? :P
L587[08:41:19] <pay​onel> so once you have your vram cached, you can bitblt for super tiny network costs
L588[08:41:23] <pay​onel> haha yes
L589[08:41:41] <The_St​argazer> any more f's and it'll turn into.. well, a large collection of f's
L590[08:41:49] <The_St​argazer> i am not good at naming things
L591[08:42:27] <The_St​argazer> although i'm unsure if that's just a programmer trait - "great at making things... not so great at naming said things."
L592[08:42:30] <pay​onel> basically, any dirty blit call is a full budget timeout
L593[08:42:36] <The_St​argazer> oh
L594[08:42:42] <The_St​argazer> so it uses the entire call budget?
L595[08:42:51] <pay​onel> yes definitely
L596[08:42:56] <The_St​argazer> ah
L597[08:43:03] <The_St​argazer> so you can't rapidly blit?
L598[08:43:12] <pay​onel> you can. very rapidly
L599[08:43:15] <The_St​argazer> oh
L600[08:43:22] <pay​onel> a dirty page has the cost
L601[08:43:31] <pay​onel> once a dirty page is sync'd, it is clean
L602[08:43:35] <The_St​argazer> oh
L603[08:43:45] <pay​onel> and you can blit it at low future cost
L604[08:43:52] <The_St​argazer> so once Buffer A = Buffer B (selected) it's 'clean'?
L605[08:44:04] <The_St​argazer> is that correct?
L606[08:44:56] <SquidDev> The whole design of this is very smart. I guess I worry about some potential for abuse with people dirtying all buffers, and then blitting a single pixel from each - so one sends all buffers, while using very little of the call budget.
L607[08:45:02] <pay​onel> the only thing that needs sync'ing is the client screen
L608[08:45:11] <pay​onel> vram->vram or screen->vram is all server-side only
L609[08:45:19] <pay​onel> that cost is near-zero
L610[08:45:41] <The_St​argazer> oh, ok
L611[08:45:45] <The_St​argazer> so vram > screen is costly?
L612[08:46:13] <pay​onel> @SquidDev yes, this is not impervious to abuse. i've done things to make it safer, i can do more and i'm reviewing some ideas. but you're right. someone could grief
L613[08:46:31] <The_St​argazer> there'll always be someone tho
L614[08:46:34] <pay​onel> @The_Stargazer right, once you go to the screen there is an initial cost
L615[08:46:39] <The_St​argazer> ah
L616[08:46:53] <The_St​argazer> so only vram to screen is costly, but screen > vram and vram > vram are low-cost?
L617[08:47:02] <The_St​argazer> that makes sense
L618[08:47:16] <The_St​argazer> i would expect drawing to screen to be much more costly than saving an area of screen
L619[08:47:20] <pay​onel> @squiddev i can run a tight loop of dirty blits, millions of times, and the game world plays just fine
L620[08:47:52] <SquidDev> payonel: Yeah, in practice it's rarely a problem. I guess I'm always a little nervous as I've built monitor arrays which send 3MB over the network each time they change.
L621[08:47:57] <SquidDev> Would not recommend on a server :).
L622[08:47:57] <pay​onel> i haven't stress tested the max, but i'm predicting 8 screens could do this without absurd tick lag
L623[08:48:01] <The_St​argazer> >3MB
L624[08:48:02] <The_St​argazer> jesus christ
L625[08:48:12] <The_St​argazer> isn't that pointless anyway?
L626[08:48:22] <The_St​argazer> like, isn't there a max resolution for a screen array
L627[08:48:37] <SquidDev> This is CC, so you can put multiple ones together: https://squiddev.cc/assets/img/posts/2020-05-08-monitor-4k.png
L628[08:48:58] <The_St​argazer> i mean, that's CC
L629[08:48:59] <The_St​argazer> the home of unbalanced :^)
L630[08:49:04] <pay​onel> @SquidDev yeah....one of my ideas is a network limiter
L631[08:49:16] <pay​onel> and there i go brainstorming in public again
L632[08:49:19] <SquidDev> The_Stargazer: As I said, would not recommend :).
L633[08:49:21] <pay​onel> i should really stop doing that
L634[08:49:38] <The_St​argazer> also, for OC, i'd say that projectors would be much better for large images
L635[08:50:14] <The_St​argazer> SquidDev: no servers I play on have CC (or OC)
L636[08:50:23] <pay​onel> :/
L637[08:50:28] <pay​onel> i never make a pack without oc 🙂
L638[08:50:33] <SquidDev> payonel: Definitely. You're probably in a better position for that given your network code is using packets, rather than blumin' TE data.
L639[08:50:34] <The_St​argazer> there is a concerning lack of good OC servers
L640[08:50:49] <The_St​argazer> "good" meaning "there are people active"
L641[08:51:01] <pay​onel> @The_Stargazer you have a job to do, btw
L642[08:51:04] <pay​onel> i need a better name
L643[08:51:05] <pay​onel> do it
L644[08:51:09] <The_St​argazer> better name for what
L645[08:51:15] <pay​onel> `getBuffer`
L646[08:51:28] <The_St​argazer> oh god
L647[08:51:28] <The_St​argazer> uhhh
L648[08:51:28] <The_St​argazer> no promises but i'll try and think of one for tommorow
L649[08:51:31] <The_St​argazer> when i'm next on
L650[08:51:45] <pay​onel> @Vexatos thanks! (regarding, "this is oc style") i'm actually really proud with how this turned out
L651[08:52:12] <SquidDev> switchcraft.pw is a combined OC/CC server, though a fair amount of bias towards the latter.
L652[08:52:13] <Vexatos> yea it's been a long-standing feature request
L653[08:52:18] <Vexatos> and it fits well into the mod
L654[08:52:34] <The_St​argazer> SquidDev: i would know, i played the original SwitchCraft :)
L655[08:52:42] <Vexatos> the fact that the coolness of the tier 3 GPU scales inversely with the tier
L656[08:52:50] <Vexatos> screen tier*
L657[08:53:01] <Vexatos> because using it on a tier 1 screen just gives you a billion screens of space
L658[08:53:08] <pay​onel> @SquidDev (and vex, and anyone) i need a better name: part of the api is `gpu.selectBuffer(index: number)` which selects a buffer by index to work with. The method to get the index of the currently selected buffer is (currently) `gpu.getBuffer(): number` -- i dont like the name, i need a better one
L659[08:53:10] <Vexatos> (or a tier 3 screen with tier 1 resolution)
L660[08:53:28] <The_St​argazer> i can think of two already
L661[08:53:29] <Vexatos> getBuffer and setBuffer?
L662[08:53:34] <The_St​argazer> getCurrentBuffer and currentCurrentInde
L663[08:53:35] <pay​onel> those are the current names
L664[08:53:38] <Vexatos> selectBuffer and currentBuffer
L665[08:53:40] <The_St​argazer> getCurrentIndex*
L666[08:53:55] <The_St​argazer> also maybe getIndex
L667[08:54:04] <pay​onel> but @The_Stargazer thought `setBuffer(index: number)` was confusign, and maybe `selectBuffer(index: number)` make more sense
L668[08:54:10] <The_St​argazer> yeah
L669[08:54:30] <pay​onel> oh maybe setBufferIndex and getBufferIndex ?
L670[08:54:33] <The_St​argazer> `set` gives off the impression (at least to me) that that's now the current "screen"
L671[08:54:37] <SquidDev> Or "useBuffer"?
L672[08:54:56] <pay​onel> useBuffer ... somehow...maybe i'm making this up, that sounds CC-ish to me 🙂
L673[08:55:03] <SquidDev> Sorry!
L674[08:55:06] <Vexatos> I mean
L675[08:55:07] <pay​onel> hahaha
L676[08:55:11] <Vexatos> you have getViewport and setViewport
L677[08:55:19] <SquidDev> You've uncovered my master plan!
L678[08:55:19] <Vexatos> and getResolution and setResolution
L679[08:55:30] <The_St​argazer> SquidDev: ohno
L680[08:55:44] <The_St​argazer> all this time you were planning to slowly turn OC into CC?!
L681[08:55:46] <SquidDev> You could have `{get,set}TargetBuffer`, if you want to make the fact that it's not the visible one more explicit.
L682[08:55:48] <Vexatos> and getBackground and setBackground
L683[08:55:54] <Vexatos> soooooooo
L684[08:56:12] <pay​onel> yeah, i like the get/set pairs. they are a family 🙂 a tradition across apis
L685[08:56:21] <The_St​argazer> actually.. yeah, get/setTargetBuffer does imply what it's supposed to
L686[08:56:24] <Vexatos> well not just that
L687[08:56:32] <Vexatos> it would be consistent within the GPU
L688[08:56:42] <pay​onel> yeah. i like target. vex?
L689[08:56:48] <pay​onel> {set/get}TargetBuffer
L690[08:57:02] <Vexatos> well the target is always buffer 0
L691[08:57:06] <Vexatos> (get/set)ActiveBuffer?
L692[08:57:10] <The_St​argazer> well... not really
L693[08:57:13] <pay​onel> no, you can target any buffer
L694[08:57:15] <The_St​argazer> isn't buffer 0 the screen?
L695[08:57:18] <pay​onel> buffer 0 is default if you don't specify
L696[08:57:29] <pay​onel> buffer 0 is always the screen, it is a reserved index.
L697[08:57:35] <pay​onel> but you can blit to any index
L698[08:57:39] <Vexatos> I'd use (get/set)ActiveBuffer
L699[08:57:42] <The_St​argazer> ActiveBuffer implies (to me anyway) that that buffer is replacing the visible area
L700[08:57:43] <SquidDev> "Active" implies the visible one to me.
L701[08:57:50] <Vexatos> eh
L702[08:57:55] <pay​onel> eh
L703[08:57:55] <Vexatos> hm
L704[08:57:58] <The_St​argazer> eh
L705[08:58:07] <pay​onel> i dont think Active is bad
L706[08:58:25] <The_St​argazer> so ActiveBuffer vs TargetBuffer?
L707[08:58:31] <The_St​argazer> personally, i'd vote for TargetBuffer
L708[08:58:47] <Vexatos> (get/set)CurrentBuffer
L709[08:58:49] <Vexatos> idk
L710[08:58:58] <pay​onel> haha! no worries
L711[08:59:09] <pay​onel> i'll mull this over and make a call later/tomorrowish
L712[08:59:26] <SquidDev> Bikeshedding at it's finest :).
L713[08:59:28] <pay​onel> so yeah, back to debugging 1.10
L714[08:59:42] <Vexatos> I mean targetbuffer is also not bad
L715[09:00:06] <Vexatos> if you interpreted as "the buffer that GPU operations are targeted at"
L716[09:00:14] <Vexatos> interpret*
L717[09:03:06] <The_St​argazer> %s/intrepreted/interpret it
L718[09:03:12] <The_St​argazer> aw :(
L719[09:03:20] <The_St​argazer> MichiBot dead?
L720[09:03:30] <The_St​argazer> %tonk
L721[09:03:31] <MichiBot> Jiminy Cricket! The_St​argazer! You beat Squi​dDev's previous record of <0 (By 2 hours, 30 minutes and 15 seconds)! I hope you're happy!
L722[09:03:32] <MichiBot> The_Stargazer's new record is 2 hours, 30 minutes and 15 seconds! The_Stargazer also gained 0.0025 tonk points for stealing the tonk. Position #9. Need 0.0999 more points to pass DaCompu​terNerd!
L723[09:03:36] <The_St​argazer> ..no
L724[09:03:48] <The_St​argazer> is %s disabled?
L725[09:04:00] <The_St​argazer> or did I just not type it right
L726[09:04:36] <ThePi​Guy24> %s/or did i/i did/
L727[09:04:45] <SquidDev> I didn't think you needed the %?
L728[09:04:45] <ThePi​Guy24> hmm
L729[09:04:55] <The_St​argazer> % is for michibot's s/
L730[09:04:56] <ThePi​Guy24> you do on discord
L731[09:05:06] <Vexatos> s/you do/do you/
L732[09:05:06] <MichiBot> <ThePiGuy24> do you on discord
L733[09:05:14] <The_St​argazer> if i just do s/ it does discord s/
L734[09:05:17] <Vexatos> IRC is clearly better
L735[09:05:31] <ThePi​Guy24> because discord tries to interpret itself and edits your last matching message
L736[09:05:33] <The_St​argazer> i know, but people like MGR are usually on Discord not IRC
L737[09:05:39] <pay​onel> also...right now bitblt is only has a "COPY" mode
L738[09:06:01] <pay​onel> there are features in my ... why am i announcing this publically.... there can be different modes. optional last param
L739[09:06:16] <pay​onel> so, for example, merging or inverse modes
L740[09:06:26] <The_St​argazer> payonel: why not announce it publically?
L741[09:06:32] <pay​onel> because then people ask about it
L742[09:06:35] <The_St​argazer> oh, right.
L743[09:06:37] <Vexatos> OC2 btw
L744[09:06:40] <pay​onel> and what if i change my mind, or get busy 🙂
L745[09:06:45] <pay​onel> yep, like oc2 🙂
L746[09:07:00] <SquidDev> Apparently announcing things means you're less likely to do them too, as you've already got the satisfaction from people going "ooooh".
L747[09:07:11] <The_St​argazer> should the iteration of which we will not speak of become a banned topic
L748[09:07:11] <SquidDev> Explains why I never finish a project.
L749[09:07:27] <Vexatos> announcing: urn 2: parenthesis boogaloo
L750[09:07:40] <The_St​argazer> the hell is urn
L751[09:07:50] <SquidDev> https://urn-lang.com/ Only the second greatest language.
L752[09:08:03] <The_St​argazer> the greatest would be Lua?
L753[09:08:11] <Vexatos> no :^)
L754[09:08:26] <The_St​argazer> also: `Urn is a new language developed by SquidDev, and demhydraz.` Don't know if you can call your own language "the second greatest".
L755[09:08:43] <SquidDev> (joint) second greatest.
L756[09:09:39] <The_St​argazer> random thought: i -really- wish there were active OC servers
L757[09:09:58] <Vexatos> https://quantum-chemistry.is-pretty.cool/2z59QXN.png
L758[09:10:15] <The_St​argazer> Vexatos: nice room
L759[09:10:26] <The_St​argazer> SP or MP
L760[09:10:35] <SquidDev> That's from BTM, so MP.
L761[09:10:35] <Vexatos> BTMP
L762[09:10:47] <The_St​argazer> never heard of that one
L763[09:11:09] <The_St​argazer> Oh, BetterThanMinecon
L764[09:11:41] <Vexatos> you mean the not-trademark-ambiguous BugTestingMarathon
L765[09:12:11] <pay​onel> @SquidDev i have a short-ish list of bugs i want to fix. there are 2 cc bugs. one is the component api return thingie that needs to map to array[] or something. the 2nd is rednet and oc interop. not right now, but, we should discuss those. you've given good info, it's just i think of you each time i see those
L766[09:13:54] <SquidDev> Is the first of those https://github.com/MightyPirates/OpenComputers/issues/3212? That /should/ be fixed (well, for 1.12) now, I just haven't got round to checking.
L767[09:13:54] <MichiBot> Title: Calling certain external component functions works on OpenComputer through the 'component' variable, but the same functions return "nil" if called through a relay with a ComputerCraft computer | Posted by: Yarillo4 | Posted: Sun Jan 12 02:25:10 CST 2020 | Status: open
L768[09:15:02] <pay​onel> yes
L769[09:15:58] <SquidDev> Grand. I'm happy to put together a PR which fixes it for older versions. Have one more exam, and then should be free :).
L770[09:16:33] <pay​onel> sure. i'm happy to back port too, i would just need help with a repro world/pack for example to test
L771[09:16:47] <pay​onel> i have almost no cc knowledge, so those types of bugs really slow me down
L772[09:17:05] <Vexatos> imagine having free time again
L773[09:17:19] <The_St​argazer> %s/again//
L774[09:17:19] <MichiBot> <Vexatos> imagine having free time
L775[09:17:20] <Vexatos> becuse I could totally do this too >_>
L776[09:17:43] <pay​onel> didn't know your github creds still work
L777[09:17:44] <pay​onel> 🙂
L778[09:17:53] <SquidDev> Vexatos: I'm ignoring the fact that I'll need to find a job. *Looks at the impeding economic collapse*.
L779[09:18:05] <The_St​argazer> SquidDev: you in the collapsing USA?
L780[09:18:13] <pay​onel> i am
L781[09:18:16] <The_St​argazer> oof
L782[09:18:23] <SquidDev> Hah, I'm in the UK. We have a Brexit/Covid double wammy.
L783[09:18:28] <The_St​argazer> i really don't think America's gonna be stable-ish for much longer
L784[09:18:36] <The_St​argazer> SquidDev: i thought brexit happened ages ago
L785[09:18:38] <Vexatos> @payonel I am less dead than 2019 https://quantum-chemistry.is-pretty.cool/ADh8MHp.png
L786[09:19:02] <SquidDev> The_Stargazer: We officially left January, but won't properly leave until December.
L787[09:19:08] <The_St​argazer> oh god
L788[09:19:17] <The_St​argazer> also: does brexit sound like a cereal or what
L789[09:19:34] <ThePi​Guy24> yes
L790[09:19:44] <The_St​argazer> all-new Brexit Flakes™️!
L791[09:19:44] <The_St​argazer> Complete with economic crisis!
L792[09:20:10] <The_St​argazer> Buy one, get twenty free!
L793[09:20:21] <Vexatos> friends of my mum have been wanting to move to Germany for five years now, but the husband had his chronically ill mum to take care of
L794[09:20:27] <Vexatos> she died of covid a few weeks ago
L795[09:20:39] <Vexatos> now they are scrambling to emigrate the moment the borders reopen
L796[09:20:40] <ThePi​Guy24> f
L797[09:20:44] <The_St​argazer> wait, who is this
L798[09:20:46] <The_St​argazer> i'm confused
L799[09:20:48] <The_St​argazer> who's husband
L800[09:20:59] <The_St​argazer> you're mother's friend's husband?
L801[09:21:03] <Vexatos> friends of my mum are a married couple, yes
L802[09:21:06] <The_St​argazer> your? you're?
L803[09:21:07] <The_St​argazer> ¯\(ツ)/¯
L804[09:21:16] <The_St​argazer> i cba to check
L805[09:21:23] <Vexatos> yore*
L806[09:21:23] <The_St​argazer> i think it's the former, tho
L807[09:21:37] <The_St​argazer> that's actually quite sad
L808[09:21:57] <ThePi​Guy24> y'o'u'r'e
L809[09:22:03] <Vexatos> she was expected to die many years ago
L810[09:22:06] <The_St​argazer> it's always been a known fact that people die, but I don't think people will ever stop being sad about death
L811[09:22:10] <The_St​argazer> Vexatos: wait, really?
L812[09:22:27] <The_St​argazer> so I guess COVID-19 was the final straw?
L813[09:22:37] <Vexatos> she survived diabetes, a stroke and pneumonia, at the same time
L814[09:22:50] <The_St​argazer> goddamn
L815[09:23:04] <Vexatos> they bought a house in Germany five years ago because everyone expected her to kick the bucket back then
L816[09:23:15] <The_St​argazer> that's one tough woman
L817[09:23:26] <The_St​argazer> so wait
L818[09:23:28] <Vexatos> she's basically been permanent guest in the intensive care unit
L819[09:23:30] <The_St​argazer> diabetes, stroke, and pneumonia
L820[09:23:34] <The_St​argazer> all at the same time
L821[09:23:36] <The_St​argazer> and she didn't die
L822[09:23:39] <Vexatos> yep
L823[09:23:42] <The_St​argazer> goddamn that's amazing
L824[09:23:53] <Vexatos> at like 85 years
L825[09:23:58] <The_St​argazer> wow.
L826[09:24:08] <The_St​argazer> the human body still continues to give death the middle finger I see
L827[09:24:49] <Vexatos> now they have to sell the old woman's house, prepare to rent out their existing house, and emigrate to Germany before brexit happens proper
L828[09:24:51] <The_St​argazer> reminds me of my mother somewhat, who had a near-death experience at a young age
L829[09:24:54] <The_St​argazer> her appendix burst
L830[09:25:03] <The_St​argazer> Vexatos: oof
L831[09:25:49] <The_St​argazer> also: i thought it was immigrate?
L832[09:26:14] <Vexatos> immigate is inbound, emigrate is outbound
L833[09:26:21] <The_St​argazer> ohh
L834[09:26:31] <The_St​argazer> the english language is a confusing mess
L835[09:26:41] <Vexatos> it's Latin
L836[09:26:47] <The_St​argazer> oh
L837[09:26:49] <The_St​argazer> okay
L838[09:26:53] <Vexatos> @SquidDev, come to Germany, we have health care that doesn't suck
L839[09:26:55] <Vexatos> :^)
L840[09:27:04] <SquidDev> So do we! We just have a government which does.
L841[09:27:06] <The_St​argazer> %s/health care/railways
L842[09:27:07] <MichiBot> <Vexatos> @SquidDev, come to Germany, we have railways that doesn't suck
L843[09:27:12] <SquidDev> OK, that's fair.
L844[09:27:28] <Vexatos> brexit+covid = the UK will be fine because boris said so
L845[09:27:58] <SquidDev> It costs me >£40 and >7 hours to get from Edinburgh to home :/.
L846[09:28:10] <Vexatos> by that I mean I am really looking forward to cheap UK vacations
L847[09:28:16] <Vexatos> once the pound is below €0.50
L848[09:28:18] <Vexatos> :^)
L849[09:28:41] <The_St​argazer> 40 pounds??
L850[09:28:41] <The_St​argazer> wouldn't that be like
L851[09:28:41] <The_St​argazer> the price of a really long trip i.e. not a normal trip from A to B
L852[09:28:48] <Vexatos> that's like 50 euros
L853[09:29:12] <The_St​argazer> and about $80 NZD
L854[09:29:29] <SquidDev> For reference, I can fly for ~£28. Which doesn't include bus to/from the airport, but still...
L855[09:29:47] <Vexatos> I can fly to London for €20
L856[09:30:06] <SquidDev> Hah. That's absurd, it's a much longer trip.
L857[09:30:12] <The_St​argazer> FLY?!
L858[09:30:12] <The_St​argazer> you guys have inter-town planes??
L859[09:30:17] <Vexatos> it's a 1h flight
L860[09:30:27] <Vexatos> from my place to the UK
L861[09:30:29] <The_St​argazer> well, i mean
L862[09:30:36] <The_St​argazer> at least you guys have a railway..
L863[09:30:58] <The_St​argazer> i haven't been on a train since...
L864[09:31:02] <The_St​argazer> a long time ago
L865[09:31:29] <The_St​argazer> i--
L866[09:31:29] <The_St​argazer> wait, what
L867[09:31:30] <The_St​argazer> there's apparently a railway where I live
L868[09:31:38] <Vexatos> as far as I know, Norway has a single railway, and it's one track shared by both directions, making a 200km trip take 5 hours
L869[09:31:51] <Vexatos> and the track was built by the Germans back when the Germans were in Norway
L870[09:31:55] <The_St​argazer> is that good or bad
L871[09:32:05] <Vexatos> which is now over 80 years ago
L872[09:32:22] <Vexatos> and I don't think it has been replaced since
L873[09:33:01] <SquidDev> "When the Germans were in Norway" Hrrm.
L874[09:33:49] <Vexatos> norway in WW2 is a very weird story
L875[09:33:59] <ThePi​Guy24> 80 years is nothing compared to аlot (try complaning now michibot) of british railways
L876[09:34:17] <The_St​argazer> did you put a ZWS in there
L877[09:34:28] <ThePi​Guy24> no i just use a cyrrilic a
L878[09:34:33] <Vexatos> discord remvoes removes zws
L879[09:34:34] <The_St​argazer> ohh
L880[09:34:43] <The_St​argazer> sneaky
L881[09:34:46] <ThePi​Guy24> looks identical to latin a, but its not
L882[09:34:50] <SquidDev> I'm now just imagining an ALOT wearing a IKB-esque stovepipe hat and cigar.
L883[09:34:50] <MichiBot> ALOT: http://tinyurl.com/y42zurt
L884[09:35:11] <The_St​argazer> bad MichiBot
L885[09:36:08] <ThePi​Guy24> you can also replace the o to make alоt which also looks identical but is not
L886[09:36:40] <SquidDev> αℓoτ
L887[09:36:48] <Vexatos> SquidDev, I mean honestly as a programmer you can find a job in any country
L888[09:36:49] <ThePi​Guy24> алот
L889[09:37:06] <Vexatos> should the economy actually collapse
L890[09:37:44] <SquidDev> I know. I'm not panicking too much, just a little trepidatious.
L891[09:37:52] <Vexatos> @ThePiGuy24 αλοτ
L892[09:38:46] <ThePi​Guy24> cyrrilic is just square greek
L893[09:38:58] <Vexatos> regarding aforementioned friends of my mum: the husband just told his company he'd be working from Germany now and they said ok
L894[09:39:04] <Vexatos> basically permanent home office
L895[09:39:10] <Vexatos> (He's a programmer)
L896[09:39:29] <SquidDev> So remote working basically? That's good.
L897[09:39:36] <Vexatos> in fact, he can actually consider part of his home office space and have them pay for it
L898[09:40:26] <Vexatos> SquidDev, what he does for a living it salvage and rescue critical legacy software when it breaks
L899[09:40:38] <Vexatos> so when a company has ancient program and it breaks, they call his company to fix it ASAP
L900[09:40:55] <SquidDev> That sounds incredibly fun, stressful and distressing at the same time.
L901[09:40:59] <Vexatos> so it involves knowing basically every programming language and being able to read a codebase very fast
L902[09:41:11] <ThePi​Guy24> sounds like hell
L903[09:41:26] <Vexatos> the "yea this was written in perl by a guy who hasn't been with the company in decades" type of software
L904[09:41:37] <Vexatos> well he says it's fun and he makes very good money from it
L905[09:41:43] <Vexatos> being basically always on call
L906[09:41:58] <ThePi​Guy24> well i mean if you can then i guess why not
L907[09:42:01] <Vexatos> as I said they were able to just afford owning an uninhabited house in Germany for five years
L908[09:42:06] <Vexatos> in a city centre
L909[09:42:26] <Vexatos> and it's owned, not rented
L910[10:01:15] <pay​onel> there be bugs, same in 1.7.10. not 1.10's fault. i'll fix this but...tiers don't mix and i think this is a packed color issue
L911[10:01:28] <pay​onel> Code Block pastebined https://paste.pc-logix.com/yixudutovi
L912[10:01:49] <pay​onel> typos* 🙂
L913[10:02:36] <The_St​argazer> Vexatos: so he's the "oh fuck this broke" guy?
L914[10:11:06] <Vexatos> yea
L915[10:11:17] <Vexatos> high-stess problem solving job
L916[10:11:21] <Vexatos> makes sense that he likes chess
L917[10:12:32] <The_St​argazer> chess is good for anything logic-related
L918[10:12:53] <The_St​argazer> the skills gained from it can be applied to a lot of things
L919[10:18:37] <Vexatos> meanwhile Cruor and I spent a couple dozen hours over the past few days to make our map editor 8x faster or so so that's nice
L920[10:18:58] <The_St​argazer> Cruor?
L921[10:19:09] <SquidDev> Cruor.
L922[10:19:16] <The_St​argazer> Who's that
L923[10:19:22] <Vexatos> he's been part of the CC community longer than dan200
L924[10:19:24] <Vexatos> and dan200 wrote CC
L925[10:19:31] <The_St​argazer> oh damn.. wait, what
L926[10:19:34] <The_St​argazer> how
L927[10:19:39] <Vexatos> I am joking
L928[10:19:47] <Vexatos> CC was released on december 25, 2012
L929[10:19:54] <Vexatos> Cruor started using it on December 27 or so
L930[10:19:57] ⇦ Quits: TheCryptek (~TheCrypte@us-01.ircbouncehouse.com) (Ping timeout: 204 seconds)
L931[10:20:01] <The_St​argazer> damn
L932[10:20:11] <The_St​argazer> which came out first tho, CC or OC
L933[10:20:13] <The_St​argazer> im guessing CC?
L934[10:20:24] <Vexatos> OC was 2013
L935[10:20:36] <SquidDev> Vexatos: I think 2011? The forums were set up in 2012 at least.
L936[10:20:44] <Vexatos> o
L937[10:20:46] <Vexatos> maybe yea
L938[10:22:04] ⇨ Joins: Blue_595 (webchat@47.196.97.219)
L939[10:22:30] <Vexatos> anyways cruor and I have been working on a map editor for the video game Celeste over the past two years and we just spent a lot of time making it faster so that's nice
L940[10:22:41] <Blue_595> the coronavirus (in America at least) is a bit like their version of Chernobyl:
L941[10:22:55] <Blue_595> a preventable disaster caused by a bunch of people being idiots,
L942[10:23:04] <Blue_595> dismissed, downplayed, and mismanaged until tens of thousands were dead
L943[10:24:24] <SquidDev> Wait Vexatos, why have you got one written in Lua?
L944[10:24:41] <Vexatos> SquidDev, because it's faster
L945[10:24:48] <SquidDev> Than Julia? RIOT!
L946[10:24:52] <Vexatos> no
L947[10:24:54] <Vexatos> Than Gtk.jl
L948[10:24:55] <Vexatos> Gtk sucks
L949[10:25:00] <Blue_595> <Start transmission>
L950[10:25:02] <Vexatos> 90% of our execution time is spent in GTK draw calls
L951[10:25:18] <SquidDev> Ahh, so you're using Love. That's fair.
L952[10:25:20] <Blue_595> i have an idea for a way to obfuscate a relatively small file, namely in Exapunks, perhaps for a steam challenge
L953[10:25:51] <Vexatos> SquidDev, julia is awesome but holy shit the GTK bindings suck
L954[10:25:53] ⇨ Joins: TheCryptek (~TheCrypte@us-01.ircbouncehouse.com)
L955[10:26:08] <SquidDev> `function getMaskFromString(s::String)` I had not realised Julia had the worst parts of Haskell and Lua combined :p.
L956[10:26:10] <Blue_595> (getting my flash drive)
L957[10:26:26] <Vexatos> SquidDev, type specification is optional
L958[10:26:47] <Vexatos> julia is basically matlab with lua syntax and C++ speed
L959[10:26:53] <Vexatos> that's the TL;DR
L960[10:26:54] <SquidDev> Oh, it's just the using of `::` for type annotations.
L961[10:26:57] <Vexatos> ye
L962[10:26:59] <SquidDev> `:` is the One True Way.
L963[10:27:33] <Blue_595> before i can properly explain my idea i need to define a map of 24 4-bit values:
L964[10:27:38] <Vexatos> I wouldn't have minded : but :: makes it unambiguous compared to ternaries
L965[10:28:00] <Vexatos> and you can place type assertions inside of expressions so it helps
L966[10:28:22] <SquidDev> Make `if` an expression and that solves everything :p.
L967[10:28:35] <Blue_595> 1234, 2134, 1324, 2314, 3124, 1243, 2143, 1342, 2341, 3142, 3241, 1423, 2413, 1432, 2431, 3412, 3421, 4123, 4213, 4132, 4231, 4312, 4321
L968[10:28:39] <SquidDev> Is Int vs Integer basically native vs arbitrary precision?
L969[10:28:43] <Vexatos> actually "if" is an expression
L970[10:28:49] <Vexatos> julia macros allow full AST access
L971[10:28:55] <Blue_595> wait did i do something wrong
L972[10:29:10] <Blue_595> i missed a number somewhere
L973[10:29:25] <Vexatos> SquidDev, Int is a type alias that means Int32 or Int64 based on your architecture, all Int extend Signed, all UInt extend Unsigned, and both of those extend Integer
L974[10:29:34] <Blue_595> the actual sequence is 1234 2134 1324 2314 3124 3214 1243 2143 1342 2341 3142 3241 1423 2413 1432 2431 3412 3421 4123 4213 4132 4231 4312 4321
L975[10:29:59] <Blue_595> all possible arrangements of the numbers 1 2 3 and 4
L976[10:30:35] <Vexatos> SquidDev, if you care about julia, please ask me anything it's my favourite language :)
L977[10:30:37] <Blue_595> so you have the data, lets say 2320 1408 8031 2040
L978[10:30:41] <SquidDev> Fair enough. I guess that's still a saner number tower than Lisp.
L979[10:30:47] <Vexatos> I use it all the time at work
L980[10:31:19] <Blue_595> and a garbage set, 8024 3940 2888 34 783 119 9901 4010 728 9011 2470 307 2101 78 5995
L981[10:31:23] <Vexatos> SquidDev, well Integer also extends Real which extends Number, other subtypes of Real are AbstractFloat (the float types), Irrational and Rational
L982[10:31:28] <Blue_595> whose length is 3 times the length of the input set, plus 3
L983[10:31:32] <Vexatos> other subtype of Number is Complex
L984[10:31:39] <SquidDev> Integer extends Real? The heck?
L985[10:31:43] <SquidDev> That's a lie.
L986[10:31:44] <Vexatos> because julia has native complex, irrational, and rational numbers
L987[10:31:59] <Vexatos> well irrationals are ""native""
L988[10:32:02] <pay​onel> setActiveBuffer is fairly popular, but then I found that unity calls it the target buffer
L989[10:32:07] <Blue_595> a table of "garbage blanks" same length as the input data, non-duplicate values, capped between 1 and the length of the garbage set
L990[10:32:10] <pay​onel> for `Camera.setTargetBuffers`
L991[10:32:14] <Blue_595> like 5 9 10 14 for example
L992[10:32:21] <Vexatos> I guess targetbuffer is fine then payo
L993[10:32:25] <pay​onel> i'm leanging towards respecting unity naming
L994[10:32:26] <Vexatos> although unity sucks
L995[10:32:32] <pay​onel> 🙂
L996[10:32:36] <Vexatos> and you should not use it as reference for anything
L997[10:32:45] ⇨ Joins: S|h|a|w|n (~shawn156@c-76-25-73-212.hsd1.co.comcast.net)
L998[10:33:02] <SquidDev> I miss my theorem provers, where you just work on groups and rings. None of that faffing around with concrete type.
L999[10:33:12] <Vexatos> well all types in julia are optional
L1000[10:33:15] <Blue_595> take the garbage set and put in an item of the data set at the location described in the garbage blanks at the same index, you get 8024 3940 2888 34 2320 119 9901 4010 1408 8031 2470 307 2101 2040 5995
L1001[10:33:29] <Vexatos> it is mostly statically typed at runtime
L1002[10:33:32] <Blue_595> generate a set of shuffle keys, such as 20 7 9 4 +14
L1003[10:33:33] <Vexatos> but they are JITed in
L1004[10:33:56] <Vexatos> the fewer types you declare the more you can just let the julia compiler do it for you
L1005[10:34:08] <SquidDev> "Statically typed at runtime" I know what you mean, but that's not a thing :p.
L1006[10:34:25] <Blue_595> turn those into swizzles using the table from earlier, 4213 1243 1342 2314 2413
L1007[10:34:41] <Blue_595> shuffle the garbage blanks using all but the last value, and you get 50 9000 1 1040
L1008[10:35:08] <Blue_595> file so far is <modified garbage block> -1 <shuffled blanks>
L1009[10:36:11] <Blue_595> use a compressed keys thing by squishing all but the last key together like xxyy since x and y will always be under 25, resulting in 2007 0904 +14
L1010[10:36:41] <Blue_595> shuffle the compressed keys using the swizzle from the table indexed by the last value, resulting in 270 49
L1011[10:37:11] ⇨ Joins: Vexaton (~Vexatos@port-92-192-52-80.dynamic.as20676.net)
L1012[10:37:11] zsh sets mode: +v on Vexaton
L1013[10:37:21] ⇦ Quits: Vexatos (~Vexatos@port-92-192-23-38.dynamic.as20676.net) (Ping timeout: 189 seconds)
L1014[10:37:24] <Blue_595> append negative (number of normal keys - 1) followed by shuffled keys, followed by the last key
L1015[10:37:31] <Vexaton> well it is SquidDev, julia allows access to the AST before types are compiled in but also after
L1016[10:37:33] <Blue_595> all the information to get the file back is right there, it's just obfuscated
L1017[10:37:35] *** Vexaton is now known as Vexatos
L1018[10:37:38] <Blue_595> <End transmission>
L1019[10:38:05] <Vexatos> SquidDev, this is a cool example for the language by the way https://giordano.github.io/blog/2017-11-03-rock-paper-scissors/
L1020[10:38:17] <Vexatos> to see some of its type magic
L1021[10:38:48] <The_St​argazer> the heck is a swizzle
L1022[10:39:11] <pay​onel> active buffer wins
L1023[10:39:24] <pay​onel> i was just writing some documentation notes and i explained it as the active buffer
L1024[10:39:28] <pay​onel> so obviously, that's it
L1025[10:39:47] <Vexatos> I mean I do understand the concern that it might sound like the buffer that's currently drawn
L1026[10:39:50] <Vexatos> on screen
L1027[10:40:38] ⇦ Quits: Blue_595 (webchat@47.196.97.219) (Quit: webchat.esper.net)
L1028[10:41:53] <pay​onel> @Vexatos you dislike active because is could be interpreted as the buffer that draws on the screen 🙂 you dislike target because unity uses that name
L1029[10:42:05] <pay​onel> but no, sticking with active
L1030[10:42:12] <pay​onel> it is fine, it's good
L1031[10:42:18] <pay​onel> i'm off to bed now
L1032[10:42:23] <pay​onel> it's almost 3am
L1033[10:42:37] <Vexatos> no I disliked target because it also sounded like the target buffer i.e. screen's buffer
L1034[10:42:44] <SquidDev> Vexatos: For the initial case, OCaml impl is somewhat neater, but the dynamic dispatch stuff later on is neat. Like CLOS, but actually sane.
L1035[10:42:49] <Vexatos> as in the target you want the buffer to output to
L1036[10:43:08] <Vexatos> SquidDev, it's static dispatch
L1037[10:43:18] <Vexatos> it's dispatch at compile time
L1038[10:43:40] <Vexatos> dynamic dispatch is when julia fails to do that and has to dispatch at runtime but that can be avoided
L1039[10:44:20] <Vexatos> but yea one of the two best things about julia is that you can compile-time dispatch on any argument, and any combination of them
L1040[10:44:23] <SquidDev> The call to play within playrand will be dynamic, surely?
L1041[10:44:35] <Vexatos> and it will always pick the implementation with the most specialized types
L1042[10:44:59] <Vexatos> playrand will be dynamic, yes
L1043[10:45:15] <Vexatos> you have no way of knowing the type at compile time there
L1044[10:45:40] <SquidDev> Yeah, that's what I meant. multi-methods in general are neat, even if _kinda_ ambiguous.
L1045[10:46:09] <Vexatos> the julia compiler is insane
L1046[10:46:16] <Vexatos> some benchmarks have it faster than C code
L1047[10:46:20] <pay​onel> ok, alpha version of vram pushed to 1.12
L1048[10:46:30] <Vexatos> but it's usually within an order of magnitude of C
L1049[10:46:35] <pay​onel> goodnight all
L1050[10:46:38] <Vexatos> night
L1051[10:46:41] <SquidDev> G'night!
L1052[10:47:18] <Vexatos> julia is one of five languages to ever reach a petaflop of compute on a supercomputer
L1053[10:47:36] <The_St​argazer> o/
L1054[10:47:40] <SquidDev> The others being C, FORTRAN, C++ and ?
L1055[10:47:47] <Vexatos> assembly
L1056[10:47:52] <SquidDev> Oh, that's cheaty.
L1057[10:47:55] <Vexatos> yea
L1058[10:47:58] <Vexatos> but also valid
L1059[10:48:11] <Vexatos> manual ASM is still doable today :P
L1060[10:48:15] <The_St​argazer> Vexatos: what are the other four?
L1061[10:48:22] <Vexatos> SquidDev just mentioned them
L1062[10:49:01] <SquidDev> Kinda sad LuaJIT isn't up there, but not surprising.
L1063[10:49:21] <Vexatos> I also assume noone was ever dumb enough to compile luajit on a supercomputer
L1064[10:49:26] <Vexatos> and also it kinda, you know, needs MPI
L1065[10:49:38] <Vexatos> or some way of distributed conversation
L1066[10:49:53] <SquidDev> Right, and probably SIMD, which LuaJIT doesn't do.
L1067[10:50:37] <The_St​argazer> oh, discord being slow
L1068[10:51:03] <Vexatos> https://docs.julialang.org/en/v1/base/base/#Base.SimdLoop.@simd
L1069[10:51:43] <Vexatos> this is the program that did it btw https://github.com/jeff-regier/Celeste.jl/
L1070[10:52:06] <Vexatos> a astronomical object identification machine
L1071[10:53:04] * SquidDev cries with single-threaded OCaml.
L1072[10:54:00] <Vexatos> > Celeste is written entirely in Julia, and the Celeste team loaded an aggregate of 178 terabytes of image data to produce the most accurate catalog of 188 million astronomical objects in just 14.6 minutes with state-of-the-art point and uncertainty estimates.
L1073[10:54:22] <Vexatos> > The Celeste team achieved peak performance of 1.54 petaflops using 1.3 million threads on 9,300 Knights Landing (KNL) nodes of the Cori supercomputer at NERSC
L1074[10:54:35] <Vexatos> imagine having 1.3 million threads
L1075[10:55:32] <Vexatos> SquidDev, so yea high-performance language
L1076[10:55:45] <Vexatos> and I use it for automation scripts
L1077[10:55:56] <Vexatos> >_>
L1078[10:56:13] <SquidDev> And map makers. A different kind of Celeste.
L1079[10:56:22] <Vexatos> no I mean at work
L1080[10:56:25] <SquidDev> Ahh.
L1081[10:56:25] <Vexatos> I just use it because python (read: numpy) sucks and I need to do a lot of maths in it
L1082[10:56:53] <Vexatos> for Ahorn it's cool too, the bottleneck is just that GTK sucks
L1083[10:56:57] <Vexatos> and the GTK bindings suck too
L1084[10:57:05] <Vexatos> and that combines into a lot of bad
L1085[10:57:30] <Vexatos> julia doesn't exactly have a lot of graphical frontend libraries
L1086[10:57:52] <Vexatos> there is one brand new one but it's only existed for like a year or so
L1087[10:57:55] <SquidDev> Is there no OpenGL binding? Or is it just too much of a faff?
L1088[10:58:00] <Vexatos> it looks good but it's nowhere near ready yet
L1089[10:58:08] <Vexatos> there is but yea no
L1090[10:58:20] <Vexatos> might as well use love2d then :P
L1091[10:58:30] <Vexatos> fun fact Lönn is written with selene :^)
L1092[10:58:39] <Vexatos> unironically :^)
L1093[10:58:51] <SquidDev> Urn PR incoming :p.
L1094[10:59:10] <SquidDev> Or Amulet, if you fancy an over-complex type system, and terrible codegen.
L1095[10:59:26] <Vexatos> that's not how you spell terra
L1096[10:59:51] <Vexatos> love2d with terra when
L1097[10:59:54] <Vexatos> (don't)
L1098[11:37:01] <Kristo​pher38> Damn, I wanted to give my 2 cents on the name
L1099[11:37:43] <Kristo​pher38> Active buffer to me sounds very much like it's the buffer displayed currently on the screen
L1100[11:38:04] <Kristo​pher38> Target buffer would be a lot better imo, no confusion
L1101[11:43:33] ⇦ Quits: S|h|a|w|n (~shawn156@c-76-25-73-212.hsd1.co.comcast.net) (Read error: Connection reset by peer)
L1102[11:48:21] ⇦ Quits: ben_mkiv (~ben_mkiv@88.130.156.27) (Killed (NickServ (GHOST command used by ben_mkiv|afk!~ben_mkiv@mue-88-130-63-155.dsl.tropolys.de)))
L1103[11:48:26] ⇨ Joins: ben_mkiv (~ben_mkiv@mue-88-130-63-155.dsl.tropolys.de)
L1104[11:54:28] ⇨ Joins: immibis (~immibis@x52716a8d.dyn.telefonica.de)
L1105[11:57:58] <Inari> 178 terrabyte, nice
L1106[11:58:13] <Inari> @The_Stargazer tyty
L1107[11:58:19] <The_St​argazer> np
L1108[11:58:37] <The_St​argazer> wait, 178tb of what
L1109[11:58:57] <Inari> image data, apparently
L1110[11:59:06] <Inari> It's what vexatos wrote above
L1111[11:59:06] <Inari> :p
L1112[12:13:39] ⇨ Joins: kjksink123 (~kjksink12@dh207-67-197.xnet.hr)
L1113[12:13:54] ⇦ Quits: kjksink123 (~kjksink12@dh207-67-197.xnet.hr) (Client Quit)
L1114[12:20:39] ⇨ Joins: TheSainEyereg (~TheSainEy@176.108.168.178)
L1115[12:21:46] ⇦ Quits: TheSainEyereg (~TheSainEy@176.108.168.178) (Client Quit)
L1116[12:23:01] <Forec​aster> %sip
L1117[12:23:01] <MichiBot> You drink a prickly grass potion (New!). The next glass of water Forec​aster has tastes like Rubium.
L1118[12:23:08] <Forec​aster> Huh
L1119[12:55:38] <Lizzy> %tonk
L1120[12:55:39] <MichiBot> Dagnabbit! Li​zzy! You beat The_St​argazer's previous record of 2 hours, 30 minutes and 15 seconds (By 1 hour, 21 minutes and 52 seconds)! I hope you're happy!
L1121[12:55:40] <MichiBot> Lizzy's new record is 3 hours, 52 minutes and 8 seconds! Lizzy also gained 0.00408 (0.00136 x 3) tonk points for stealing the tonk. Position #3. Need 0.08982 more points to pass Forec​aster!
L1122[13:42:18] ⇨ Joins: t20kdc (~20kdc@cpc139340-aztw33-2-0-cust225.18-1.cable.virginm.net)
L1123[14:03:07] <freq​uency> I'm getting duplicate messages when using event.pull() in a loop. I send one modem message but the handler gets called twice. Is this a thing other people have seen?
L1124[14:03:33] <Kristo​pher38> @frequency you might have a dangling handler hanging around
L1125[14:03:47] <Kristo​pher38> i.e. unregistered handler from previously running the code
L1126[14:03:52] <Kristo​pher38> have you tried rebooting?
L1127[14:03:54] <freq​uency> I've restarted both machines
L1128[14:04:02] <freq​uency> I'll try again
L1129[14:04:25] <freq​uency> Yeah same behavior, both machines fresh restarts
L1130[14:04:27] <M​GR> Check your cabling for loops also
L1131[14:04:46] <freq​uency> I don't have any cabling, it's from a robot to a computer wirelessly
L1132[14:04:46] <Kristo​pher38> also when you're doing both event.pull() and event handlers, both event handlers and event.pull() will receive the event
L1133[14:05:18] <Kristo​pher38> no relays?
L1134[14:05:32] <freq​uency> My code is basically just the general purpose event handler at the bottom of this page: https://ocdoc.cil.li/api:event
L1135[14:06:56] <freq​uency> Something I was wondering about was using event.listen() vs event.pull(). How does "driver mode" vs "primary mode" work?
L1136[14:08:04] <M​GR> event.pull is blocking, while event.listen is not
L1137[14:08:09] <M​GR> Event handlers run in the background
L1138[14:09:10] <Kristo​pher38> driver mode is basically event handlers which get called whenever there was a specified event and you yielded back to the OS
L1139[14:09:23] <Kristo​pher38> primary mode is when you're manually doing event.pull()
L1140[14:12:10] <Kristo​pher38> @payonel the current call costs set for the bitblt nullify its advantage, here's a comparison - on the left directly gpu.setting the screen, on the right setting the buffer and then doing bitblt http://tinyurl.com/y9n59gq8
L1141[14:15:14] <freq​uency> Aha, I think my issue is that the robot was positioned right next to the computer, so maybe it was sending it once locally and once wirelessly?
L1142[14:17:17] <Zen​1th> tf
L1143[14:17:23] <Zen​1th> sionce where is there bitblit in OC ?!
L1144[14:17:26] <Zen​1th> is it an addon mod?!
L1145[14:17:29] <Zen​1th> since where is there bitblit in OC ?! [Edited]
L1146[14:17:38] <ThePi​Guy24> since yesterday/early this moring
L1147[14:17:42] <Zen​1th> OMG
L1148[14:19:30] <Zen​1th> is it in base OC ?!
L1149[14:19:30] <Zen​1th> is it in base OC ?!!!!
L1150[14:20:03] <Kristo​pher38> yeah, it's in the dev builds
L1151[14:20:10] <Kristo​pher38> https://ci.cil.li/view/OpenComputers/job/OpenComputers-MC1.7.10/
L1152[14:40:11] <Kristo​pher38> @payonel also there doesn't seem to be any speed difference with different CPU tiers when doing this animation with bitblt method, where with gpu.setting directly to the screen there's a visible difference, higher tier cpu plays the animation at higher speed
L1153[14:43:03] <Zen​1th> wait
L1154[14:43:15] <Zen​1th> are dev builds only for 1.7.10 for now ?
L1155[14:43:30] <SquidDev> No, the rest are at https://ci.cil.li/view/OpenComputers/
L1156[14:43:42] <Zen​1th> ok thanks you
L1157[14:44:27] <Zen​1th> time to test those upcoming features 🙂
L1158[14:44:38] <Zen​1th> + i can't wait for the applications of those for GUI systems
L1159[14:45:17] <Zen​1th> not even speaking about games
L1160[14:45:50] <Kristo​pher38> @Zen1th be aware that it's in alpha stage at this time
L1161[14:45:55] <Zen​1th> yea ik
L1162[14:46:01] <Zen​1th> i just want to test it for now
L1163[14:51:36] <Kristo​pher38> @payonel there's also no speed difference when bitblt'ing the whole buffer vs only ~1/3 of it (both on the same-tier cpu machine), I'd imagine it to be 3x faster
L1164[14:52:00] <Kristo​pher38> @payonel there's also no speed difference when bitblt'ing the whole buffer to the screen vs only ~1/3 of it (both on the same-tier cpu machine), I'd imagine it to be 3x faster [Edited]
L1165[14:52:35] <Zen​1th> from what you've tested, does GPU operations on buffer cost less than writing to screen?
L1166[14:57:16] <Kristo​pher38> @payonel I think it might be related to how call budget is managed, as I believe nothing was intended to consume more than the whole call budget of the cpu in one tick. You set the bitblt cost for tier3 gpu to 8.0, but the maximum call budget is 1.5 on a tier3 cpu. Call budget is consumed here https://github.com/MightyPirates/OpenComputers/blob/df1939cb0eca340ba95aeef39aba44e060c5685a/src/main/scala/li/cil/oc/server/machine/Machine.scala#L281
L1167[14:57:16] <Kristo​pher38> and then reset here https://github.com/MightyPirates/OpenComputers/blob/df1939cb0eca340ba95aeef39aba44e060c5685a/src/main/scala/li/cil/oc/server/machine/Machine.scala#L517 The only piece of information I'm missing is, is the update method where the reset takes place called once per tick? If so, that would mean the call budget is reset every tick, so every tick bitblt can be called, as opposed to what the 8.0 call cost would suggest
L1168[14:57:35] ⇨ Joins: Cervator (~Thunderbi@70.241.38.147)
L1169[14:57:45] <Kristo​pher38> @Zen1th yeah, they cost 0.001 of the call budget
L1170[14:57:53] <Zen​1th> wow
L1171[14:57:57] <Zen​1th> this is very advantageous 🙂
L1172[14:58:02] <Kristo​pher38> call budget being 0.5, 1.0 or 1.5 on cpu tiers 1, 2 or 3 respectively
L1173[14:58:14] <Zen​1th> this also mean it could technically be used for hardware double-buffer without worrying too much about call budget
L1174[14:58:59] <Kristo​pher38> @Zen1th if the bugs I mentioned above get fixed and call budget cost for bitblt gets changed
L1175[14:59:16] <Kristo​pher38> why do I keep pinging people
L1176[14:59:24] <Zen​1th> ¯\(ツ)/¯
L1177[14:59:26] <Zen​1th> but ok
L1178[15:00:17] <freq​uency> just ran my robot assembler for the first time and it totally works 🎊
L1179[15:01:59] <Zen​1th> also oddly enough from what i tested, cost of GPU operations on buffers *currently* is above operations on screen for some reason ? http://tinyurl.com/y8hjbwx9
L1180[15:03:05] <Kristo​pher38> you're measuring that wrong is all I can say
L1181[15:03:15] <Kristo​pher38> or I think so
L1182[15:03:24] <Zen​1th> maybe
L1183[15:03:30] <Zen​1th> i'll try to do multiple tests in a row and do an average
L1184[15:03:30] <Kristo​pher38> you're using os.clock()
L1185[15:03:34] <Zen​1th> true
L1186[15:03:40] <Inari> clockety clock
L1187[15:03:43] <Zen​1th> why would problem come from it?
L1188[15:04:01] <Kristo​pher38> os.clock() measures time spent in executor thread
L1189[15:04:05] <Zen​1th> ah yea sh*t
L1190[15:04:08] <Kristo​pher38> that is, how long your lua script runs
L1191[15:04:18] <Kristo​pher38> not counting the time all the component calls take
L1192[15:04:41] <Zen​1th> which is most precise then : os.time() or computer.uptime() ?
L1193[15:04:54] <Kristo​pher38> there's also computer.uptime() which you can use, but it has a really low resolution, like 0.1s or something
L1194[15:05:03] <Zen​1th> so i'll take os.time i guess
L1195[15:05:04] <Kristo​pher38> or rather 0.05s
L1196[15:05:09] <Kristo​pher38> *
L1197[15:05:24] <Kristo​pher38> computer.uptime() takes into account component calls though
L1198[15:05:32] <Kristo​pher38> (afaik)
L1199[15:05:47] <Kristo​pher38> since it measures "real time"
L1200[15:05:50] <Kristo​pher38> not just cpu time
L1201[15:05:58] <Zen​1th> uhm
L1202[15:06:00] <Zen​1th> in all cases
L1203[15:06:07] <Zen​1th> computer.uptime() and os.time() returns 0 s of execution
L1204[15:06:11] <Zen​1th> gotta try doing them 100 in a row
L1205[15:06:25] <Zen​1th> (i mean the tests inside the loop)
L1206[15:06:26] <Kristo​pher38> yeah, as I said, it has 0.05s resolution
L1207[15:06:50] <Kristo​pher38> so worst case 0.05s has to pass before you can measure a change in time
L1208[15:07:01] <Kristo​pher38> yeah, I'd suggest doing repeated test in a row
L1209[15:07:06] <Kristo​pher38> yeah, I'd suggest doing repeated tests in a row [Edited]
L1210[15:07:35] <Zen​1th> here's what i get for 10,000 gpu.set http://tinyurl.com/y9odqwyn
L1211[15:07:35] <Kristo​pher38> with measurements taken before starting them, and after finishing them all
L1212[15:07:44] <Zen​1th> yea that's what i did obviously
L1213[15:07:46] <Zen​1th> anyways
L1214[15:07:58] <Zen​1th> look like writing to buffer currently is 3x faster than writing to screen
L1215[15:08:47] <Kristo​pher38> gpu.set to the screen costs 1/256 of the call budget, gpu.set to the buffer costs 1/1000 of the call budget
L1216[15:08:59] <Kristo​pher38> that'd amount to almost 4x speedup
L1217[15:09:05] <Zen​1th> yea
L1218[15:09:11] <Zen​1th> running more loops should have affined the results
L1219[15:09:21] <Zen​1th> making the loop longer should have affined the results [Edited]
L1220[15:09:23] <Kristo​pher38> so your numbers are almost right
L1221[15:10:21] <Kristo​pher38> the cost of doing bitblt is too high as of right now though, and it isn't even as bad as it's intended to be because of a bug
L1222[15:10:24] <ThePi​Guy24> Code Block pastebined https://paste.pc-logix.com/zusoqolage i think this should work
L1223[15:10:36] <Kristo​pher38> you're missing `do`
L1224[15:10:39] ⇨ Joins: Thutmose (~Patrick@host-69-59-79-181.nctv.com)
L1225[15:10:43] <ThePi​Guy24> oh ye
L1226[15:10:48] <Zen​1th> also i already got the benchmark thing correct
L1227[15:10:52] <ThePi​Guy24> Code Block pastebined https://paste.pc-logix.com/ekacexamum i think this should work [Edited]
L1228[15:11:03] <Zen​1th> anyways with my program got the result http://tinyurl.com/y759aapu
L1229[15:11:13] <Zen​1th> so it's not an actual 4x speedup
L1230[15:11:21] <Zen​1th> but a 3.5x speedup
L1231[15:11:29] <Kristo​pher38> alright, in practice it's a bit slower
L1232[15:21:20] <Kristo​pher38> @payonel even with the bitblt call cost values which were set in the initial fix (2.0, 1.0 and 1/2 for each tier), filling the buffer and bitblting to the screen is still slower than directly writing to the screen. This video was recorded on build 1325, before you changed the costs to (32, 16 and 8). Bitblting on the left, directly writing to the screen on the right http://tinyurl.com/y8ucxwrj
L1233[15:22:35] <Zen​1th> does this mean bitblitting currently takes all of the call budget whatever the size is ?
L1234[15:25:32] ⇦ Quits: ben_mkiv (~ben_mkiv@mue-88-130-63-155.dsl.tropolys.de) (Ping timeout: 378 seconds)
L1235[15:29:12] ⇨ Joins: rudy (~rudy@pool-100-40-67-37.prvdri.fios.verizon.net)
L1236[15:29:18] <rudy> ooga
L1237[15:32:17] <Inari> %translate ^
L1238[15:32:17] <MichiBot> ooga
L1239[15:33:07] ⇨ Joins: tcfun (~tcfun@pool-100-40-67-37.prvdri.fios.verizon.net)
L1240[15:33:16] <tcfun> ah
L1241[15:33:41] ⇦ Quits: rudy (~rudy@pool-100-40-67-37.prvdri.fios.verizon.net) (Remote host closed the connection)
L1242[15:34:21] ⇦ Quits: tcfun (~tcfun@pool-100-40-67-37.prvdri.fios.verizon.net) (Quit: tcfun)
L1243[15:46:23] ⇨ Joins: Blue_595 (~c8h10n4o2@47.196.97.219)
L1244[15:46:37] <Blue_595> (actual german by the way) "birth control pills" translates to Antibabypillen :D
L1245[15:48:06] <Blue_595> beautiful
L1246[15:51:57] ⇦ Parts: Teris (uid315557@id-315557.brockwell.irccloud.com) ())
L1247[15:52:34] ⇨ Joins: Teris (uid315557@id-315557.brockwell.irccloud.com)
L1248[15:53:08] <Blue_595> get out you Tetris ripoff
L1249[15:55:20] <Blue_595> when i put a disk in my laptops optical drive, it sounds like a freaking box fan
L1250[15:59:03] <Blue_595> imagine writing a 5 page datasheet about a 9 volt battery
L1251[15:59:26] <Blue_595> (UltraLife U9VL-J-P)
L1252[16:21:16] <Lizzy> %tonkout
L1253[16:21:17] <MichiBot> I'm sorry Li​zzy, you were not able to beat Li​zzy's record of 3 hours, 52 minutes and 8 seconds this time. 3 hours, 25 minutes and 37 seconds were wasted! Missed by 26 minutes and 30 seconds!
L1254[16:21:22] <Lizzy> shit
L1255[16:22:00] <Blue_595> :D
L1256[16:22:59] <Zen​1th> uhm
L1257[16:23:02] <Zen​1th> %tonkout
L1258[16:23:14] <Zen​1th> ah uhm it's an irc-only bot 😦
L1259[16:24:07] <M​GR> No, it works on both
L1260[16:24:12] <M​GR> There's just a rate limiter
L1261[16:24:19] <Adorabl​eCatgirl> 15 minutes between
L1262[16:24:53] <Adorabl​eCatgirl> anyways i gotta pull the fortuna implementation off my laptop
L1263[16:30:59] ⇦ Quits: Blue_595 (~c8h10n4o2@47.196.97.219) (Quit: WeeChat 1.9.1)
L1264[16:48:17] ⇨ Joins: Gan_Master (~Gan_Maste@static.154.80.201.138.clients.your-server.de)
L1265[16:48:50] ⇦ Quits: Gan_Master (~Gan_Maste@static.154.80.201.138.clients.your-server.de) (Client Quit)
L1266[17:09:41] <asie> https://github.com/MightyPirates/OpenComputers/issues/779#issuecomment-629886964
L1267[17:09:42] <asie> wait, what!?
L1268[17:09:42] <MichiBot> Title: Video RAM for faster drawing | Posted by: Inari-W​hitebear | Posted: Fri Jan 02 19:27:58 CST 2015 | Status: closed
L1269[17:09:54] <asie> does that mean ice1/ice2's cost calculation is now broken? payonel
L1270[17:12:35] <Kristo​pher38> ice?
L1271[17:12:53] <Vexatos> asie, looks like it changed yea
L1272[17:13:06] <Vexatos> also looks like payo hasn't changed the hardware info to let you check
L1273[17:13:54] <Vexatos> although I am not sure on the exact amount
L1274[17:15:57] <Vexatos> asie, gpu.set seems to consume linearly with the number of pixels changed in power
L1275[17:15:59] <Vexatos> same with gpu.copy
L1276[17:16:50] <Vexatos> but that might have been the same before?
L1277[17:17:42] <Vexatos> nope
L1278[17:17:52] <Vexatos> it's definitely different now
L1279[17:18:21] <Vexatos> it's now gpuSet cost (default 2.0) times the number of pixels set?
L1280[17:18:23] <Vexatos> just flat out
L1281[17:18:37] <Vexatos> from what I read
L1282[17:18:40] <Vexatos> otherwise wait for @payonel
L1283[17:34:50] <Forec​aster> http://tinyurl.com/y8a6k4ks
L1284[17:35:21] <Skye> Vexatos, I wonder if that could be extended to support multiple screens on one GPU...
L1285[17:35:25] <Skye> as in
L1286[17:35:28] <Skye> oh
L1287[17:35:32] <Skye> hmm
L1288[17:35:37] <Skye> you'd need to modify the scala
L1289[17:44:46] <Kristo​pher38> You could keep rebinding the GPU
L1290[17:45:06] <Kristo​pher38> As that's basically free call budget cost-wise
L1291[17:45:24] <Kristo​pher38> Cycle through the screens
L1292[17:46:52] <Kristo​pher38> Although that would most likely flicker
L1293[17:55:40] ⇨ Joins: tcfun (~tcfun@pool-100-40-67-37.prvdri.fios.verizon.net)
L1294[17:55:57] <tcfun> hi all
L1295[17:56:49] <Forec​aster> %hello
L1296[17:56:50] <Ocawes​ome101> ho tcfun
L1297[17:56:51] <MichiBot> Forec​​aster: Hello! Welcome to #oc! The one and only opencomputers channel! Please ask your questions directly (dont ask to ask) and provide error/code examples! (Use pastebin.com if theyre more than one line!) Dont mind the random conversation you might have walked into.
L1298[17:56:53] <Ocawes​ome101> hi*
L1299[17:57:12] <tcfun> whats up
L1300[17:57:46] <Forec​aster> the chatlog :P
L1301[17:58:21] <tcfun> this is epic a computer in side of a minecraft
L1302[17:59:39] ⇦ Quits: tcfun (~tcfun@pool-100-40-67-37.prvdri.fios.verizon.net) (Client Quit)
L1303[18:01:06] ⇨ Joins: tcfun (~tcfun@pool-100-40-67-37.prvdri.fios.verizon.net)
L1304[18:01:25] <tcfun> so
L1305[18:01:45] <tcfun> what is open fm raido do???
L1306[18:01:57] <Forec​aster> play web radio
L1307[18:02:08] <tcfun> how2 get that working
L1308[18:02:19] <Forec​aster> follow the instructions
L1309[18:02:26] <tcfun> ok
L1310[18:03:10] <pay​onel> @Vexatos yep i'm not done with the budgets. i need to revert the set costs and copy costs to what they were before
L1311[18:03:12] <pay​onel> asie: ice?
L1312[18:04:19] <pay​onel> @Kristopher38 good investigation. i found the same issue and conclusions last night. and went to bed. it needs more balance, and i'm looking at network load. in the meantime, if you could share your bouncing test with me, that would be a great part of my analysis
L1313[18:04:29] <Vexatos> his video library
L1314[18:04:42] <Vexatos> for OC
L1315[18:05:01] <Vexatos> it needs to do call budget maths to align frames I assume
L1316[18:05:39] <pay​onel> ah
L1317[18:05:41] <tcfun> hmmm
L1318[18:06:04] <pay​onel> yeah i need to clean that up
L1319[18:06:04] <tcfun> how to get a open fm raido
L1320[18:09:33] <Adorabl​eCatgirl> oh yeah
L1321[18:09:38] <Adorabl​eCatgirl> i need to do that thing in OSSM
L1322[18:10:01] <Adorabl​eCatgirl> also i'm gonna need to make my power system stuff if i wanna make the towers as expensive as they should be.....
L1323[18:10:06] <Kristo​pher38> @payonel sure, I'll give you the code and steps to repro, mind you that you'll need to disable power draw and enable unlimited memory for lua since it the animation keeps all the frames in memory :P
L1324[18:10:13] <Kristo​pher38> and it's very power hungry
L1325[18:10:34] <Kristo​pher38> I don't know if that's a valid test case if you need to do that tho
L1326[18:10:38] <dequbed> Vexatos: Wtf is that "good example of Julia" blogpost? Like apart from getting a bunch of technical stuff wrong and the ... interesting argument that the example is much shorter than all the other ones being a point for Julia somehow.
L1327[18:11:33] <pay​onel> @Kristopher38 it adjusted the power draw to write to vram considerably. it is not my intention that fast vram writes kills power
L1328[18:11:43] <pay​onel> so, it's an important part of my balancing tests
L1329[18:11:59] <pay​onel> I* adjusted the power dray
L1330[18:12:23] <Kristo​pher38> was that in the latest 1328 build?
L1331[18:12:49] <pay​onel> yes
L1332[18:12:55] <pay​onel> 1329 has the api change, btw
L1333[18:13:02] <Kristo​pher38> oh there's new build I see
L1334[18:13:03] <pay​onel> `setActiveBuffer` and `getActiveBuffer`
L1335[18:13:23] <Kristo​pher38> 1328* has
L1336[18:13:35] <pay​onel> and as others pointed out, i broke budget on set/copy -- i need to revert that behavior for pre-existing workflows
L1337[18:13:58] <pay​onel> oh youre right
L1338[18:14:03] <pay​onel> forgot about the pr i just merged
L1339[18:14:03] <Kristo​pher38> oh 1329 is only robot name addition
L1340[18:14:08] <pay​onel> so yeah, 1328 is "latest"
L1341[18:14:13] <Kristo​pher38> hehe
L1342[18:14:14] ⇦ Quits: tcfun (~tcfun@pool-100-40-67-37.prvdri.fios.verizon.net) (Quit: tcfun)
L1343[18:14:35] <Vexatos> dequbed, it shows off how the dispatch works
L1344[18:16:47] <Vexatos> what's wrong with it?
L1345[18:19:13] <dequbed> Apparently I've been writing C++ wrong my whole life, dynamic dispatch has become efficient in the last decade and Rock-Paper-Scissors is not a zero-sum game anymore.
L1346[18:20:10] <Vexatos> it says in the blog post it's not a zero-sum game?
L1347[18:21:02] <Vexatos> what do you mean even
L1348[18:21:09] <dequbed> Rock-Paper-Scissors-Well specifically but either I read the description wrong or the person writing doesn't know what makes a zero sum game.
L1349[18:21:14] <Vexatos> it certainly is a zero-sum game when played randomly
L1350[18:21:34] <Ocawes​ome101> ngl these manpages are pretty nice http://tinyurl.com/y97elbcm
L1351[18:22:17] <Kristo​pher38> pretty coloring
L1352[18:22:33] <Ocawes​ome101> yes
L1353[18:22:55] <Ocawes​ome101> I made a very dumb parser so I don't have to manually insert all the color codes
L1354[18:22:59] <Vexatos> also uh it mentions nothing about C++ apart from it not having multiple dispatch on its own
L1355[18:23:33] <Ocawes​ome101> just a simple Lua script that replaces certain chars with VT100 codes; i.e. `*` -> `\27[97m`, `&` -> `\27[37m`, etc, etc.
L1356[18:23:49] <Vexatos> @Ocawesome101 that's fancy
L1357[18:23:59] <Ocawes​ome101> why thank you
L1358[18:24:04] <Ocawes​ome101> it's not very fast but it certainly works
L1359[18:24:21] <dequbed> Vexatos: That it does. I don't want to pick on Julia, I don't know or care about the language enough to do so. Just that blogpost has some interesting ideas.
L1360[18:25:48] <Vexatos> dequbed, I am pretty sure C++ does not have multiple dispatch...
L1361[18:26:02] <Vexatos> At least I have never seen or heard of code where it's used
L1362[18:26:39] <Vexatos> Do you have an example?
L1363[18:26:47] <Zen​1th> Fuchas documentation is very ugly but it have hyperlinks 😎 http://tinyurl.com/yc7hm8hd
L1364[18:27:11] <Zen​1th> and it's interactive (woo hoo)
L1365[18:27:16] <Vexatos> as far as I know C++ only has single dispatch just like C# or Java
L1366[18:28:44] <Zen​1th> Fuchas documentation is very ugly but it have hyperlinks http://tinyurl.com/yc7hm8hd [Edited]
L1367[18:28:53] <dequbed> Vexatos: C# has built-in multiple dispatch since some 2010 and in C++ it's a case of fucking about with RTTI, dynamic_cast or something to that regard.
L1368[18:29:18] <Vexatos> yea everything I can find online says C++ only has single dispatch unless you hack
L1369[18:29:26] <SquidDev> Multiple-dispatch would involve some shenanigans with dynamic I assume?
L1370[18:29:30] <SquidDev> (In C#)
L1371[18:29:33] <dequbed> SquidDev: Yep
L1372[18:29:58] <dequbed> Vexatos: "Hack" in the same what that any other RT has to do to support multiple dispatch. No language that has it gets any of that for free.
L1373[18:30:07] <dequbed> s/what/way
L1374[18:30:07] <MichiBot> <dequbed> Vexatos: "Hack" in the same way that any other RT has to do to support multiple dispatch. No language that has it gets any of that for free.
L1375[18:30:13] <Vexatos> julia has compile-time multiple dispatch too
L1376[18:30:17] <Vexatos> so that's literally free
L1377[18:30:53] <dequbed> If you have static multiple dispatch then you can make it free. But at that point you're basically template level fuckery deep in your type checker.
L1378[18:31:34] <Vexatos> that's... the point of having the language do it for you?
L1379[18:33:36] <Vexatos> compile-time multiple dispatch is like one of the main selling points of julia, anyway
L1380[18:33:51] <Vexatos> along with having a usable stdlib >_>
L1381[18:34:07] <Vexatos> SquidDev, the dynamic keyword looks funky thanks for telling me about it
L1382[18:34:21] <SquidDev> It's so great to (ab)use.
L1383[18:34:41] <SquidDev> I'd argue type classes (or modular implicits, or w/e) are a more elegant approach to this, but rather unsuitable for a gradually typed language like Julia.
L1384[18:34:51] <Vexatos> I mean it basically means you throw compile-time type safety out the window
L1385[18:35:03] <Vexatos> why even bother coding C# then
L1386[18:35:14] <SquidDev> They did that with null already.
L1387[18:35:16] <Vexatos> sounds like a good thing for shitty hacks though
L1388[18:35:19] <Vexatos> you're not wrong
L1389[18:35:24] <Vexatos> just like null
L1390[18:35:33] <pay​onel> they added it for integrating with data from other languages
L1391[18:35:34] <Vexatos> my favourite java type is Boolean
L1392[18:35:38] <SquidDev> ^ It's meant to be useful for things like IronPython, where they're compiling to CIL.
L1393[18:35:38] <Vexatos> because it can be true, false, and null
L1394[18:35:51] <SquidDev> It's just C# exposes most of the CLR features, hence dynamic.
L1395[18:35:56] <Vexatos> and yes I unironically used that for easy ternaries before
L1396[18:36:30] <SquidDev> I assume you can do the same with Java, INVOKEDYNAMIC and some MethodHandle magic. It's just not exposed to the user.
L1397[18:37:08] <Vexatos> I mean in java you don't really need it because you can just compile your own code at runtime
L1398[18:37:22] <Vexatos> bless the ASM library
L1399[18:37:23] <SquidDev> You can with the CLR as well.
L1400[18:37:39] <SquidDev> I assume with Julia too?
L1401[18:37:45] <Vexatos> I mean yea
L1402[18:37:48] <Vexatos> julia has eval()
L1403[18:38:01] <dequbed> Vexatos: Okay I worded that badly; full static specialization on all types is neat and offers some great dependently typed functionality. If Julia actually manages that that's really neat. I can't reach any of the docs for Julia atm but it appears to me that that it is using entirely dynamic dispatch for that.
L1404[18:38:27] <Vexatos> you can just feed it any code block, and it has the quote...end block or :() syntax for making code blocks and single expressions, respectively
L1405[18:38:55] <Vexatos> it's got a bunch of metaprogramming stuff since its macros give you full AST access, but the code a macro produces still just looks like normal code
L1406[18:38:58] <Vexatos> much like in good lisps
L1407[18:39:09] <SquidDev> And C♯/F♯ :p.
L1408[18:39:14] <Vexatos> ye
L1409[18:39:28] <Vexatos> example macro I made https://git.io/JfEj5
L1410[18:39:45] <SquidDev> R still has the best macro system.
L1411[18:39:48] <Vexatos> macros are evaluated at compiletime in julia so they aren't slow either
L1412[18:39:56] <Vexatos> (luckily)
L1413[18:40:21] <Vexatos> dequbed, I mean as I said it is one of five languages to ever reach over 1 petaFLOPs
L1414[18:40:36] <Vexatos> so it cannot be too bad
L1415[18:40:36] <dequbed> ... What is that even supposed to mean.
L1416[18:40:48] <Vexatos> I thought your worry was in terms of performance
L1417[18:41:00] <dequbed> FLOPs are a *CPU* measure last I checked, not a *LANGUAGE* benchmark?
L1418[18:41:29] <Vexatos> well it's also a benchmark for language overhead
L1419[18:41:40] <dequbed> How?
L1420[18:41:51] <Vexatos> by how fast code in that language can possibly be >_>
L1421[18:41:55] <Skye> but
L1422[18:41:55] <Vexatos> SquidDev, link?
L1423[18:42:02] <Skye> you need to compare it for that to make sense
L1424[18:42:04] <SquidDev> Link?
L1425[18:42:04] <Skye> like
L1426[18:42:07] <Skye> what computer
L1427[18:42:08] <Vexatos> SquidDev, R macros
L1428[18:42:10] <Skye> what other lanugghaes
L1429[18:42:10] <Vexatos> cool example
L1430[18:42:13] <pay​onel> i guess it's like flying the kieper belt in 13 parsecs
L1431[18:42:19] <dequbed> Vexatos: Sorry, I really don't get your point. Either you're shitting me and got me good or I'm completely missing it.
L1432[18:42:32] <pay​onel> kuiper*
L1433[18:43:08] <Vexatos> dequbed, https://en.wikipedia.org/wiki/Petascale_computing
L1434[18:43:08] <dequbed> She can do the kessel run in 42 parsecs. Suprisingly, since the Kessel run is just 39 parsecs in distance usually.
L1435[18:43:37] <Vexatos> as in "languages capable of using petascale clusters"
L1436[18:43:40] <SquidDev> Vexatos: So something like https://www.rdocumentation.org/packages/dplyr/versions/0.7.8 is a nice example of silly things you can do. But definitely being sarcastic - R is lazily evaluated, but has a function to get the actual term behind a thunk.
L1437[18:43:49] <dequbed> Vexatos: Ah okay now I get it.
L1438[18:43:53] <pay​onel> dequbed exactly 🙂
L1439[18:43:54] <Vexatos> SquidDev, I know R is slow
L1440[18:44:01] <Vexatos> But that doesn't mean the macro system can't be cool
L1441[18:44:06] <Vexatos> see: almost every lisp
L1442[18:44:09] <SquidDev> It's a cool system, it's just incredibly dumb.
L1443[18:44:15] <Vexatos> lisps are slow and cool
L1444[18:44:44] <Vexatos> dequbed, sorry if I was confusing
L1445[18:45:28] <dequbed> Julia definitely was designed for the kind of computing hardware computing clusters are made of, that much is certain ^^
L1446[18:45:35] <Vexatos> ok SquidDev if you wanna have some black magic https://github.com/jrevels/Cassette.jl
L1447[18:45:42] <Vexatos> or the docs https://jrevels.github.io/Cassette.jl/stable/
L1448[18:45:53] <pay​onel> https://www.nextplatform.com/2017/11/28/julia-language-delivers-petascale-hpc-performance/
L1449[18:46:35] <SquidDev> Oh thanks, I hate it.
L1450[18:46:43] <Vexatos> SquidDev, cassette might be my favourite julia package that I have no use for
L1451[18:47:13] <Vexatos> "What if you could multiple-dispatch but based on the methods your methods are called from"
L1452[18:48:07] <SquidDev> I feel "favourite x that I have no use for" is true for most metaprogramming though. They'll be one or two useful things, and a lot of useless but very cool stuff.
L1453[18:48:12] <Vexatos> SquidDev, here is the release video https://youtu.be/_E2zEzNEy-8?t=237
L1454[18:48:12] <MichiBot> JuliaCon 2018 | Cassette: Dynamic, Context-Specific Compiler Pass Injection for Julia | J Revels | length: 37m 15s | Likes: 25 Dislikes: 0 Views: 1,603 | by The Julia Programming Language | Published On 9/8/2018
L1455[18:48:27] <dequbed> Vexatos: Wait. *Source* based dispatch? Thanks *I* hate that.
L1456[18:48:38] <Vexatos> yesssss
L1457[18:48:40] <Vexatos> it's so cursed
L1458[18:48:55] <Vexatos> watch the video for a good overview I guess
L1459[18:49:02] <Vexatos> but yea you define a context
L1460[18:49:16] <Vexatos> and every supported method called in that context will be dispatched based on the context you're in
L1461[18:49:22] <dequbed> Ah nah thanks, that's a project to build into gcc when I'm drunk and bored again.
L1462[18:49:34] <Vexatos> and it's written in pure julia
L1463[18:50:04] <Vexatos> actually on an ILlevel, after macro processing, IIRC
L1464[18:50:29] <Vexatos> I suspect they might have only made that package to show off julia metaprogramming
L1465[18:50:37] <Vexatos> because I really do not see a realistic use for it
L1466[18:50:44] <Vexatos> but it's cool nonetheless
L1467[18:51:06] <Vexatos> I mean there is https://www.youtube.com/watch?v=lTR6IPjDPlo
L1468[18:51:07] <MichiBot> JuliaCon 2019 | Building a Debugger with Cassette | Lyndon White | length: 29m 12s | Likes: 8 Dislikes: 0 Views: 846 | by The Julia Programming Language | Published On 25/7/2019
L1469[18:51:34] <Vexatos> oh right it was IR code level
L1470[18:51:45] <Ocawes​ome101> oh, by the way, Izaya: I stole your idea of custom VT100 colors, they're now loaded from `/etc/vtcolors.cfg`
L1471[18:51:57] <Zen​1th> i should also steal that one day
L1472[18:51:59] <Vexatos> so LLVM stuff
L1473[18:54:22] <Vexatos> SquidDev, I mean the debugger in that video is actually kinda cool but still .-.
L1474[18:54:33] <B​ob> Julia beating LuaJIT 😦
L1475[18:55:03] <Vexatos> actually our map editor written in love2d is about 50 times faster than the one written in julia, while being 1% of the filesize
L1476[18:55:11] <Vexatos> the former is just because GTK is terrible though
L1477[18:55:30] <Vexatos> and in love2d cruor has to write his own graphics framework from scratch
L1478[18:55:42] <Zen​1th> also even if hardware buffers are the alpha-st of alpha features, i added a way to store GPU buffers to RAM when there's not enough VRAM available
L1479[18:56:09] <Kristo​pher38> it's the 6th time today that you say gtk sucks :D
L1480[18:59:48] <B​ob> LÖVE2D is a gem tough
L1481[18:59:50] <Amanda> Vexatos: sounds like an overly complicated method of passing in a interface-having class
L1482[19:01:12] <Vexatos> well the point is that you can use this to interact with other people's code
L1483[19:01:18] <Vexatos> but it's cursed
L1484[19:02:58] <Adorabl​eCatgirl> so
L1485[19:03:14] <Adorabl​eCatgirl> i wonder if using fastsqrt will really make my code that much faster
L1486[19:04:08] <Forec​aster> who decided to name whatever that is "fast sqrt"
L1487[19:04:23] <Vexatos> but it's cursed?
L1488[19:04:23] <Kristo​pher38> depends on what you're doing and on what machine
L1489[19:05:32] <Amanda> Vexatos: I've not watched/listened to the talk, but I could see it being used a cursed alternative for something I've got in my RPC daemon in OC -- I switched from one RPC protocol from another, largely what I had to do was replace a Context "type" passed in to reply with the new protocol's way of sending a response. Somethinglike that from what I've read in here could be used to do that kind of thing, except the context wouldn't be
L1490[19:05:32] <Amanda> explicit, it'd be "magic"
L1491[19:06:31] <Adorabl​eCatgirl> what
L1492[19:06:37] <Adorabl​eCatgirl> also this is in kotlin lmao
L1493[19:07:51] <Vexatos> Amanda, I totally haven't generated an exception in java before to parse its stack trace to find whether my code was being called from a particular method
L1494[19:13:17] <Inari> Gamedev is always kinda weird to me. You get so many glitches in (esp. old) games that seem like... why did they even do it this way?
L1495[19:13:37] <Inari> Esp. when it feels like the more proper way would be easier
L1496[19:13:59] <Forec​aster> limitations, be they hardware, time, or money
L1497[19:16:16] <Inari> Sure, but, e.g. Ocarina of Time uses loading zones, when you walk into one you get teleported to the connected map (as far as I understand). Some of the things in the world change as adult link. And some loading zones are still active but inaccessible due to geometry changes. Just feels like it would've been easier to just have a enable flag for loading zones and disable all the irrelevant ones
L1498[19:16:28] <Inari> than to make sure you can't accidentally walk into any loading zones you shouldn't be walking into
L1499[19:17:26] <Skye> Inari, maybe adding the flag would require recomplining something
L1500[19:17:30] <Skye> like
L1501[19:17:34] <Skye> maybe it'd need a structure to change
L1502[19:17:38] <Skye> breaking <x>
L1503[19:17:43] <Skye> and you don't want to fix <x>
L1504[19:17:53] <Skye> so you do a workaround
L1505[19:18:53] <Forec​aster> there being a different solution that works better doesn't mean there is time to implement said solution, assuming someone even thought about it at the time
L1506[19:19:05] <Inari> Sure, but like
L1507[19:19:22] <Inari> Sounds like it would be less time than to alwyas makes sure all loading zoens you shouldn't access can't be accessed
L1508[19:19:55] <Forec​aster> and that's great, if you thought of it ahead of time
L1509[19:20:21] <Inari> In fact, a lot of the time for some reason games prefer to move stuff out of bounds or whatever than to disable it
L1510[19:28:43] ⇨ Joins: tcfun (~tcfun@pool-100-40-67-37.prvdri.fios.verizon.net)
L1511[19:28:55] <tcfun> listen what is the command to read a floppy in openos
L1512[19:29:11] <pay​onel> to read a floppy?
L1513[19:29:19] <tcfun> yeah
L1514[19:29:22] <Forec​aster> in what? a program? in the shell?
L1515[19:29:23] <pay​onel> it's mounts as a filesystem
L1516[19:29:33] <tcfun> yes
L1517[19:29:57] <pay​onel> openos will automount it under /mnt/ for you, using the first 3 chars of its guid for the path, like /mnt/abc
L1518[19:30:07] <pay​onel> under that you can read/write files
L1519[19:30:17] <tcfun> ok
L1520[19:32:41] <Inari> Hey, listen!
L1521[19:32:50] <tcfun> hey
L1522[19:33:52] ⇦ Quits: tcfun (~tcfun@pool-100-40-67-37.prvdri.fios.verizon.net) (Quit: tcfun)
L1523[20:10:00] ⇨ Joins: baschdel (~baschdel@2a02:6d40:3672:b201:33c7:d66f:f023:d163)
L1524[20:24:18] ⇦ Quits: immibis (~immibis@x52716a8d.dyn.telefonica.de) (Ping timeout: 190 seconds)
L1525[20:29:17] <Sla​p4ss> Hi everyone, could someone explain me how to get the nanofog terminal to work please ? Searched everything including this discord and got no luck trying to make it work... No block never shows up, but vanishing animation performs when I break the terminal and sometimes it drains the dna and shows energy usage, some others it does not. Problem was previously reported here but seems to lack solution, if any :/
L1526[20:40:51] ⇨ Joins: immibis (~immibis@x52716397.dyn.telefonica.de)
L1527[20:40:53] <SquidDev> %tonkout
L1528[20:40:54] <MichiBot> Bejabbers! Squi​dDev! You beat Li​zzy's previous record of 3 hours, 52 minutes and 8 seconds (By 27 minutes and 29 seconds)! I hope you're happy!
L1529[20:40:55] <MichiBot> Squi​dDev has stolen the tonkout! Tonk has been reset! They gained 0.004 tonk points! plus 0.003 bonus points for consecutive hours! (Reduced to 50% because stealing) Current score: 0.51333. Position #4 Need 0.16134 more points to pass Li​zzy!
L1530[20:57:19] ⇨ Joins: Backslash (~Backslash@d137-186-220-152.abhsia.telus.net)
L1531[20:57:50] <pay​onel> @Slap4ss wat?
L1532[20:57:59] <pay​onel> i dont make a nanofog device in oc
L1533[20:58:32] <Sla​p4ss> oh sorry, I think it's the wrong discord, it's in open security
L1534[20:58:48] <pay​onel> ah. we have some open security devs here though
L1535[21:01:21] <pay​onel> @Vexatos are there any twitch-launcher modpacks that have computronics?
L1536[21:01:33] <Vexatos> no clue
L1537[21:01:41] <Vexatos> I mean GT:NH has tronics and is on curseforge
L1538[21:02:02] <Vexatos> I don't know any mod packs on CF
L1539[21:02:03] <pay​onel> gregtech:newhorizons?
L1540[21:02:05] <Vexatos> yes
L1541[21:02:13] <pay​onel> no worries. a friend just asked me
L1542[21:05:48] <Sla​p4ss> Well, hope they could help me then !
L1543[21:08:39] <pay​onel> @Michiyo ^
L1544[21:09:38] <Inari> https://www.youtube.com/watch?v=8LWLof0Crhg
L1545[21:09:38] <MichiBot> Female foxes screaming! | length: 2m 28s | Likes: 2,440 Dislikes: 12 Views: 14,686 | by SaveAFox | Published On 18/5/2020
L1546[21:11:08] <Forec​aster> I saw a fox while driving home today
L1547[21:11:23] <Forec​aster> not often that happens
L1548[21:11:28] <Inari> Ooooh
L1549[21:11:30] <Inari> Did you cuddle it?
L1550[21:11:41] <Forec​aster> uh no
L1551[21:11:50] <Forec​aster> I was in my car, driving past a field
L1552[21:12:01] <Inari> Poor fox
L1553[21:12:22] <Forec​aster> I'm sure it was the ideal situation for both me and the fox
L1554[21:16:48] ⇦ Quits: brandon3055 (~Brandon@81.25.68.91) (Ping timeout: 190 seconds)
L1555[21:17:03] ⇨ Joins: brandon3055 (~Brandon@81.25.68.89)
L1556[21:22:06] <Michiyo> @Slap4ss State your question, and when I have time I'll see what I can do. Sadly my crystal ball is in the shop.
L1557[21:26:33] <Forec​aster> sorry, I accidentally set it to Fox News and it exploded
L1558[21:27:12] <Amanda> Yet more evidence of the evil of foxes!
L1559[21:27:38] <Lizzy> %tonk
L1560[21:27:38] <MichiBot> Dagnabbit! Li​zzy! You beat Squi​dDev's previous record of <0 (By 46 minutes and 44 seconds)! I hope you're happy!
L1561[21:27:39] <MichiBot> Lizzy's new record is 46 minutes and 44 seconds! Lizzy also gained 0.00078 tonk points for stealing the tonk. Position #3. Need 0.08904 more points to pass Forec​aster!
L1562[21:53:18] <Amanda> %choose irradiate or halucinate
L1563[21:53:18] <MichiBot> Ama​nda: Is it a bird?! Is it a plane?! No! It's "irradiate"!
L1564[21:53:36] <Amanda> YEs yes MichiBot, that's called the "sun"
L1565[21:55:20] <Amanda> %choose also play with cubes?
L1566[21:55:21] <MichiBot> Ama​nda: Hm, yeah okay.
L1567[21:56:07] <Z0id​burg> Amanda is here!
L1568[21:56:13] <Amanda> Where!?
L1569[21:56:22] * Amanda looks around, her heckles raised
L1570[21:56:25] <Z0id​burg> Everywhere a there there
L1571[22:02:24] ⇨ Joins: tcfun (~tcfun@pool-100-40-67-37.prvdri.fios.verizon.net)
L1572[22:02:31] <tcfun> what does the speaker do
L1573[22:04:53] <Forec​aster> gives the orders from the Listener to the other members of the Dark Brotherhood
L1574[22:04:55] <Forec​aster> I mean what
L1575[22:05:34] <Michiyo> going to have to give a bit more detail. Speaker? From what mod?
L1576[22:05:46] <Forec​aster> I'm guessing computronics
L1577[22:05:57] <tcfun> yes
L1578[22:06:00] <Michiyo> Most speakers play sounds.
L1579[22:06:13] <Michiyo> you give them a signal and they reproduce sound.
L1580[22:06:17] <Forec​aster> there is a manual
L1581[22:06:21] <tcfun> what signal do i give it
L1582[22:06:23] <Forec​aster> it tells you what the things do
L1583[22:06:43] <Forec​aster> computronics adds all of its things to the OC manual
L1584[22:06:58] <Michiyo> https://wiki.vexatos.com/wiki:computronics:speaker Damn it Vexatos.
L1585[22:07:29] <Vexatos> imagine if anyone added that
L1586[22:07:33] <Vexatos> wouldn't that be useful
L1587[22:07:43] <Michiyo> Anyway "Plays sound received through cables"
L1588[22:08:09] <Michiyo> I've never actually used 'tronics *cough*
L1589[22:08:17] <Vexatos> Totoro, you can connect a tape drive or computer with sound card to it using audio cables
L1590[22:08:23] <Vexatos> tcfun *
L1591[22:08:28] <Vexatos> thanks autocomplete
L1592[22:09:01] <Vexatos> that way the sound plays at the speaker instead of the tape drive / sound card
L1593[22:09:08] <Vexatos> and you can connect multiple speakers for more range
L1594[22:32:47] <tcfun> ahhh
L1595[22:33:29] <Inari> %splash Amanda
L1596[22:33:29] <MichiBot> You fling a solid grass potion (New!) that splashes onto Amanda. It smells like sugar as it sticks to you.
L1597[22:33:37] <Inari> Perfect
L1598[22:33:51] <tcfun> thatas hot
L1599[22:34:45] <Forec​aster> %sip
L1600[22:34:45] <MichiBot> You drink a porous dilithium potion (New!). Forec​aster turns into an aluminium sheep until Sozin's Comet returns.
L1601[22:34:53] <Forec​aster> agh
L1602[22:35:04] <tcfun> oh my
L1603[22:35:05] <Inari> Don't you mean
L1604[22:35:06] <Inari> baaah
L1605[22:37:40] <Amanda> D:
L1606[22:37:42] <Amanda> %bite Inari
L1607[22:37:42] <MichiBot> Ama​nda is biting In​ari for 1d6 => 3 damage!
L1608[22:37:46] <Inari> D: hey
L1609[22:37:49] <Amanda> %bite Inari again
L1610[22:37:49] <MichiBot> Ama​nda is biting In​ari again for 1d6 => 4 damage!
L1611[22:37:53] <Inari> D:
L1612[22:37:58] <tcfun> bruh
L1613[22:38:05] <Inari> So bitey
L1614[22:38:06] * Amanda scurries of to get this potion out of her fur
L1615[22:38:14] ⇦ Quits: Vexatos (~Vexatos@port-92-192-52-80.dynamic.as20676.net) (Remote host closed the connection)
L1616[22:38:29] ⇨ Joins: Vexatos (~Vexatos@port-92-192-52-80.dynamic.as20676.net)
L1617[22:38:29] zsh sets mode: +v on Vexatos
L1618[22:38:29] <Inari> Amanda: Maybe a potion can help with that
L1619[22:40:05] <Brisingr​Aerowing> Gives Amanda a bottle of fur-safe goop remover
L1620[22:40:23] ⇦ Quits: Inari (~Pinkishu@pD9E8FAE1.dip0.t-ipconnect.de) (Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/)
L1621[22:40:34] <Amanda> %splash mutable potion on Inari
L1622[22:40:34] <MichiBot> You fling a slimy aether potion (New!) that splashes onto mutable potion on Inari. mutable potion on Inari regains 1d​6 => 3 hit points!
L1623[22:40:56] <Amanda> %splash inari with mutable potion
L1624[22:40:57] <MichiBot> You fling a mutable tan potion (New!) that splashes onto inari. inari turns into an octiron frog girl until they have an apple.
L1625[22:41:06] <Amanda> ...octiron?
L1626[22:41:14] <Forec​aster> Discworld
L1627[22:41:19] <Amanda> What's that from, it so-- ahhh!
L1628[22:41:22] <Amanda> Right, the colour of magic@1
L1629[22:41:40] <Forec​aster> yep :P
L1630[22:41:51] <Amanda> I should read more prattchet
L1631[22:41:59] <Brisingr​Aerowing> %sip
L1632[22:42:00] <MichiBot> You drink a solid ocean potion (New!). A fish flies past that vaguely resembles someone Brisingr​Aerowing knows.
L1633[22:42:21] <Amanda> Why are fish flying.
L1634[22:42:26] <Amanda> Who bugged out the water physics again!?
L1635[22:42:42] <Forec​aster> it was a flying fish, of course
L1636[22:44:38] <pay​onel> wow, 1.15.2 immersive portals:
L1637[22:44:39] <pay​onel> https://www.reddit.com/r/feedthebeast/comments/gk8n4x/this_is_how_nether_portals_should_work/
L1638[22:46:07] <Kristo​pher38> that was a thing even before 1.15
L1639[22:47:57] <SquidDev> %tonk
L1640[22:47:58] <MichiBot> Bejabbers! Squi​dDev! You beat Li​zzy's previous record of 46 minutes and 44 seconds (By 33 minutes and 34 seconds)! I hope you're happy!
L1641[22:47:59] <MichiBot> SquidDev's new record is 1 hour, 20 minutes and 19 seconds! SquidDev also gained 0.00056 tonk points for stealing the tonk. Position #4. Need 0.16156 more points to pass Li​zzy!
L1642[23:24:23] ⇨ Joins: Webchat551 (webchat@amarseille-655-1-33-105.w86-203.abo.wanadoo.fr)
L1643[23:24:41] <Webchat551> help
L1644[23:24:50] ⇦ Quits: Webchat551 (webchat@amarseille-655-1-33-105.w86-203.abo.wanadoo.fr) (Client Quit)
L1645[23:41:51] <Amanda> [ Webchat551 was never hear from again ]
L1646[23:49:58] <Forec​aster> Until someone else gets that random number :P
L1647[23:51:25] <Amanda> /ban Webchat*
L1648[23:51:27] <Amanda> :P
<<Prev Next>> Scroll to Top