<<Prev Next>> Scroll to Bottom
Stuff goes here
L1[00:00:02]
<payonel>
@Kristopher38 he's on a server he doesn't run
L2[00:00:07]
<payonel>
he's talking about editing remote files
L3[00:00:48]
<Kristopher38> Oh, sorry, I wasn't paying
enough attention
L4[00:02:18]
<Somebody>
@Kristopher38 Thanks though, i've noticed that config before but
for this i'll have to manually edit things and wget/copy-pasta
things 🙂
L6[00:47:45] ⇦
Quits: immibis (~immibis@x52716a8d.dyn.telefonica.de) (Ping
timeout: 189 seconds)
L7[01:32:14]
<payonel>
this took a lot of work, tweaking, testing
L8[01:32:23]
<payonel>
announcement, gpu video ram
L9[01:32:36]
<payonel>
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]
<AdorableCatgirl> 👀
L11[01:34:19]
<AdorableCatgirl> YES
L12[01:34:30]
<Kristopher38> Is this a new update I
see
L13[01:34:35]
<payonel>
yeah
L14[01:34:38]
<payonel>
it took a lot of work 🙂
L15[01:34:42]
<payonel>
i'm working on the wiki page now
L16[01:34:51]
<AdorableCatgirl> i
L17[01:34:52]
<AdorableCatgirl> really
L18[01:34:53]
<payonel> i
need opinions on api
L19[01:34:54]
<AdorableCatgirl> really like this
L20[01:35:30]
<Kristopher38> I'll try this in a
minute
L21[01:35:46]
<payonel>
@here new feature: accessible gpu ram
L22[01:35:56]
<AdorableCatgirl> I should get back to
work on OSSM so I can have a lot of fun with more OC stuff
L23[01:36:01]
<AdorableCatgirl> I want my smart cards
now
L24[01:36:04]
<Kleadron>
:hyperclap:
L25[01:36:05]
<EveryOS>
Awesome
L26[01:36:06]
<ThePiGuy24> hmmm
L27[01:36:10]
<wαєrm>
😍
L28[01:36:13]
<Xandaros>
HWHAT‽
L29[01:36:17]
<EveryOS>
(:
L30[01:36:20]
<Zef> oh
shit what
L31[01:36:20]
<Chaz>
Ooh
L32[01:36:21]
<bendevnull> Any documentation yet?
👀
L33[01:36:22]
<AdorableCatgirl> brb
L34[01:36:23]
<AdorableCatgirl> gotta reboot
L35[01:36:27]
<CaveJohnson376> woaaah
L36[01:36:27]
<TheFox>
>.>
L37[01:36:33]
<Saphire>
@payonel SPRITES?
L38[01:36:33]
<ThePiGuy24> real time high res colour
video playback is gonna be good now
L39[01:36:34]
<TheDrummer> WHO THE FRICK @ ME
L40[01:36:39]
<Saphire>
@TheFox oh hi
L41[01:36:44]
<TheFox>
Hia Saph!
L42[01:36:45]
<EveryOS>
@TheDrummer Payonel
L43[01:36:48]
<Saphire>
And hah, everyone is here now
L44[01:36:49]
<bendevnull> > real time high res
colour video playback is gonna be good now
L45[01:36:49]
<bendevnull> @ThePiGuy24
L46[01:36:49]
<bendevnull> This lol
L47[01:36:55]
<TheDrummer> Payonel
L48[01:37:05]
<Kristopher38> Woah, that caused quite a
stir :D
L49[01:37:08]
<ThePiGuy24> i already have fairly low res
video playback
L50[01:37:08]
<Chaz>
After ten thousand years I'm finally here
L51[01:37:09]
<Rph>
yes!
L52[01:37:09]
<TheDrummer> You're gonna pay on
God.
L53[01:37:11]
<TheFox>
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]
<Rph>
accessible GPU ram seems like an amazing idea
L55[01:37:18]
<Saphire>
So
L56[01:37:25]
<TheDrummer> Anyone?
L57[01:37:26]
<Saphire>
Are we at Atari level yet
L58[01:37:30]
<payonel>
i'm working on the wiki doc now
L59[01:37:32]
<TheDrummer> No one one like that
pun?
L60[01:37:33]
<PeachMaster> And they say, and they say,
and they say, shiverary is dead.
L61[01:37:33]
<payonel>
but this is a BRIEF overvie
L62[01:37:37]
<TheDrummer> Or I mean play on
words?
L63[01:37:37]
<Saphire>
No wait, Amiga, derp
L64[01:37:40]
<Ariri>
Tensorflow on OC?
L65[01:37:40]
<payonel>
you can allocate a buffer
L66[01:37:43]
<TheDrummer> No one
L67[01:37:46]
<payonel>
then you can set your gpu to that buffer
L68[01:37:48]
<TheDrummer> I'll see myself out.
L69[01:37:48]
<TheFox>
> Tensorflow on OC?
L70[01:37:49]
<TheFox>
@Ariri
L71[01:37:50]
<TheFox>
ohno
L72[01:37:52]
<Rph>
@payonel are you taking idea suggestions or did you design this
already?
L73[01:37:55]
<payonel>
and once set, reads/writes to the gpu are to the buffer, not the
screen
L74[01:37:58]
<Saphire>
@payonel hold up, full 2d buffer stuff, not just sprite/text
mode?
L75[01:38:01]
<payonel>
also, you can use a gpu without a screen
L76[01:38:09]
<payonel>
correct, it is a full text buffer, equal to a screen
L77[01:38:14]
<payonel>
and you can set your own size
L78[01:38:19]
<ThePiGuy24> colour too?
L79[01:38:22]
<payonel>
yes
L80[01:38:25]
<ThePiGuy24> nice
L81[01:38:26]
<Saphire>
... Text, not pixel?
L82[01:38:28]
<payonel>
the depth is based on the g pu tier
L83[01:38:29]
<ThePiGuy24> this gonna be good
L84[01:38:41]
<payonel>
the totalMemory is maxWidth maxHeight tier
L85[01:38:50]
<Ariri> I'm
seeing people in the chat I have never heard from before XD
L86[01:38:51]
<payonel>
so, T1 gets 1 full screen size, T2 gets 2, and T3 gets 3
L87[01:39:11]
<payonel>
@Rph the work is "done"
L88[01:39:15]
<Saphire>
Ooh, back buffer?
L89[01:39:19]
<payonel>
but definitely open to feedback, suggestions, fixes, etc
L90[01:39:21]
<bendevnull> So theoretically, we could
design multiple frame buffers with 2 and 3?
L91[01:39:28]
<Saphire>
Yup
L92[01:39:32]
<payonel>
yes. you can bitblt between buffers too
L93[01:39:33]
<CaveJohnson376> omg
L94[01:39:35]
<payonel>
or to/from the screen
L95[01:39:38]
<ThePiGuy24> is there any eta on when it
will have a full release?
L96[01:39:40]
<Saphire>
... Nice
L97[01:39:53]
<payonel>
again, you can use a gpu without a screen
L98[01:39:54]
<CaveJohnson376> so basically, gpu can be
used as more powerful cpu?
L99[01:40:01]
<payonel>
though right now, there is no gpu->gpu copies
L100[01:40:09]
<payonel> i
MIGHT add that, but we'd need a meaningful api suggestion
L101[01:40:14]
<Saghetti>
:Pingsock:
L102[01:40:18]
<bendevnull> Does each GPU have its own
memory?
L103[01:40:19]
<Saghetti>
but still
L104[01:40:22]
<Saghetti>
nice feature :D
L105[01:40:23]
<payonel>
es
L106[01:40:25]
<payonel>
yes*
L107[01:40:27]
<Rph> Well,
I had another idea for how this could be done:
L108[01:40:27]
<Rph> 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]
<payonel> a
gpu can allocate and use its buffer without a screen
L110[01:40:35]
<bendevnull> And is it possible to have
more than one GPU in a computer?
L111[01:40:43]
<Saghetti>
yeah, always has been
L112[01:40:48]
<AdorableCatgirl> yea
L113[01:40:48]
<payonel>
@bendevnull yes
L114[01:40:52]
<bendevnull> Oh damn lol
L115[01:40:57]
<bendevnull> I've never tried it
honestly
L116[01:40:57]
<CaveJohnson376> hmmm
L117[01:41:12]
<AdorableCatgirl> gonna work on smart
cards
L118[01:41:23]
<CaveJohnson376> i want to try to make an
ray-tracing thingy with these computers
L119[01:41:29]
<payonel>
here is one of my tests
L120[01:41:30]
<Saghetti>
smart cards? yes
L121[01:41:36]
<Saghetti>
smart cards? yes please [Edited]
L123[01:42:19]
<Saphire>
@payonel eheh.. so when are we getting SLI/CrossFire
L124[01:42:25]
<payonel>
there is SOME call budget cost on `gpu.set` even when it is a
buffer. but blits are fast
L125[01:42:31]
<payonel>
🙂
L126[01:42:53]
<BohemianHacks> ping happened?
L127[01:43:28]
<AdorableCatgirl> i can finally make my
terminal faster
L128[01:43:30]
<CaveJohnson376> soooooo
L129[01:43:49]
<payonel>
my test code ^ btw...is using a LOT of default params
L130[01:44:01]
<CaveJohnson376> i didn't get into
it
L131[01:44:02]
<payonel>
for example, `gpu.bitblt()` defaults everything
L132[01:44:03]
<CaveJohnson376> i didn't get into it well
[Edited]
L133[01:44:08]
<payonel>
yes, i'm working on docs...
L134[01:44:13]
<CaveJohnson376> ok then
L135[01:44:19]
<CaveJohnson376> when update?
L136[01:44:28]
<Michiyo>
BLT's at @payonel's
L137[01:44:31]
<payonel>
```
L138[01:44:31]
<payonel>
bitblt(dst, col, row, width, height, src, fromCol, fromRow)
L139[01:44:31]
<payonel>
```
L140[01:44:46]
<AdorableCatgirl> LT?
L141[01:44:48]
<AdorableCatgirl> *BLT?
L142[01:44:54]
<AdorableCatgirl> binary lua tables
L143[01:44:55]
<Michiyo>
%google blt
L144[01:44:56] <MichiBot> Michiyo:
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]
<CaveJohnson376> LOL
L146[01:45:04]
<CaveJohnson376> XD
L147[01:45:06]
<BohemianHacks> neat, so we can have even
more realistic in game cryptocurrencies 😄
L148[01:45:07]
<Michiyo>
:P
L149[01:45:15]
<AdorableCatgirl> oh fuck
L150[01:45:19]
<AdorableCatgirl> i may have uh
L151[01:45:24]
<AdorableCatgirl> i may have lost
BLT
L152[01:45:25]
<AdorableCatgirl> 👀
L153[01:45:27]
<Saghetti>
%google block level transfer
L155[01:45:36]
<Saghetti>
dang it
L156[01:45:37]
<Saghetti>
x2
L157[01:45:47]
<Saphire>
eats your BLT
L159[01:45:55]
<Rph>
@payonel another idea: would something equivalent to
computercraft's `term.blit` be possible?
L160[01:45:59]
<Rph>
setting a whole line
L161[01:46:04]
<Rph> with
predefiend characters and colors for every character
L162[01:46:11]
<CaveJohnson376> so in general, it will
allow to read/write all that faster?
L163[01:46:21]
<Saghetti>
also will it be possible to have buffers in displays?
L165[01:46:27]
<Saghetti>
or is it just GPUs
L166[01:46:54]
<payonel>
@Rph you could do that with a buffer
L167[01:47:04]
<payonel>
video ram* buffer
L168[01:47:09]
<Aivech>
who the h e c c just pinged
L169[01:47:36]
<payonel>
@Aivech i did. new feature: acccessible gpu ram
L170[01:47:55]
<payonel>
@Rph i mean: you can now do that
L171[01:47:59]
<Aivech>
does this mean we have to write graphics drivers now
L172[01:48:02]
<payonel>
although, now directly from, e.g., a string
L173[01:48:15]
<Aivech>
can i port vulkan to oc
L174[01:48:15]
<payonel>
so about this--
L175[01:48:29]
<payonel>
there is a lot of cost in updating clients (game clients) of a new
buffer data
L176[01:48:39]
<payonel>
so for very fast graphics consider 2 important thing
L177[01:48:41]
<payonel>
things*
L178[01:48:53]
<payonel>
1. smaller resolution buffers if you need buffers than change
often
L179[01:49:00]
<payonel>
2. large static buffers that you plan to not change
L180[01:49:09]
<payonel>
the backend code only sends a buffer when it is
"dirty"
L181[01:49:17]
<payonel>
and then the blits occur via remote api
L182[01:49:49]
<payonel>
typo: 1. smaller resolution buffers if you need buffers that*
change often
L183[01:50:03]
<Rph> yeah,
I wanted to play around with fast moving images, I think doing
differential compression is my best friend here
L184[01:50:10]
<Rph> And
doing stuff with lower resolutions
L185[01:50:24]
<payonel>
we leverage mc forge packet compression already
L186[01:50:32]
<payonel>
not saying you can't do better/more -- just saying, there is
SOME
L187[01:50:59]
<Kleadron>
does the GPU only display with text characters as usual?
L188[01:51:09]
<Saghetti>
~~make bitmap mode~~
L189[01:51:10]
<payonel>
also, from my testing, i found it is easy to get a computer
"stuck" in the wrong buffer 🙂
L190[01:51:18]
<payonel>
buffer index zero is always the screen
L191[01:51:23]
<Rph> I
mean, you can leverage braille characters for pixel-style
characters
L192[01:51:30]
<Rph> I do
that quite a lot in my software
L193[01:51:35]
<payonel>
so if your script hangs/dies during the wrong active buffer, you
basically have to hard reset the machine
L194[01:51:50]
<Rph>
Couldn't that problem be fixed partly by OpenOS?
L195[01:51:54]
<payonel>
yes it can
L196[01:51:59]
<Rph> maybe
having the shell force itself back to buffer 0
L197[01:52:04]
<Kristopher38> ^this
L198[01:52:12]
<Rph> after
program execution concludes
L199[01:52:13]
<payonel> i
could cause ctrl+alt+c to reset the buffer to zero
L200[01:52:20]
<payonel>
eh, maybe
L201[01:52:23]
<payonel>
anyways, it's a thing
L202[01:52:33]
<Rph> I
think this shouldn't be behaviour done in java but rather by lua
software on computers
L203[01:52:37]
<DaComputerNerd> so what does this new
update do anyways
L204[01:52:38]
<Kristopher38> no, I mean when the xpcall
that the shell is doing when you launch a program from the
shell
L205[01:52:40]
<Rph> so
like, the OS should decide how to handle buffer updates
L206[01:52:44]
<payonel>
going to SCREEN in shell is a good suggestion though, i'll think
about that
L207[01:52:50]
<Kristopher38> if it fails, reset the
buffer to zero
L208[01:53:06]
<Rph> this
new change is going to make my project to create a virtual GPU
quite a bit more complex
L209[01:53:13]
<Rph> but I
like this change a lot
L211[01:53:34]
<AdorableCatgirl> you can use block
characters
L212[01:53:45]
<Rph> or
braille.
L213[01:53:48]
<AdorableCatgirl> font is basically 8x16
iirc
L214[01:53:52]
<DaComputerNerd> did multiple gpus
actually make a difference before
L215[01:53:55]
<Rph>
braille lets you go for 320x200 on a T3 monitor
L216[01:53:56]
<DaComputerNerd> like if bound to the same
screen
L217[01:54:03]
<AdorableCatgirl> i don't think so
L218[01:54:18]
<AdorableCatgirl> ?
L219[01:54:48]
<payonel>
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]
<payonel>
not sure
L221[01:55:08]
<payonel>
it's dangerous for me to brain storm publically
L222[01:55:09] <Corded> * <payonel>
hides
L223[01:55:11]
<DaComputerNerd> lol
L224[01:55:11]
<Brother_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]
<Rph> I
wonder how many novel ways to break this the community will manage
to find
L227[01:55:20]
<Brother_Leon> What is the best way to get
into Lua and this mod? [Edited]
L228[01:55:29]
<Kristopher38> ALOT
L230[01:55:30]
<payonel>
@Rph 🙂
L231[01:56:08]
<Ortho>
asie used braille too
L232[01:56:13]
<DaComputerNerd> 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]
<AdorableCatgirl> >hop into an MW2 game
in 2020
L234[01:57:17]
<AdorableCatgirl> >all i hear is
paranoid playing and helicopters
L235[01:57:18]
<Bob> When
will be parallel threads a thing tough
L236[01:57:24]
<payonel>
never
L237[01:57:30]
<Ortho>
multiple computers :P
L238[01:57:35]
<Bob> also
colab with NuclearCraft for a quantic architecture
L239[01:58:01]
<Bob>
%tutorial
L241[01:58:07]
<Brother_Leon> Thank you, @DaComputerNerd
. Tables and Functions then just look up
L242[01:58:25]
<Bob> Also
OC has a wiki , look up components and signals asap
L243[01:58:32]
<Bob> core
part of the mod
L244[01:58:50]
<Rph>
@payonel question:
L245[01:58:50]
<Rph> Are
improvements to the internet functionality planned any time?
(Faster requests, websockets, async requests)
L246[01:58:50]
<Rph> Async
requests would basically mean you queue a signal with the response
instead of blocking the read call
L247[01:59:48]
<Bob>
internet response events 🤔
L248[02:00:11]
<Bob> that
would be an intrusting idea
L249[02:00:12]
<Rph> 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]
<Rph> and
other code can run
L251[02:00:23]
<DaComputerNerd> well, work through to
tables and functions, don't jump to them
L252[02:00:42]
<Kristopher38> @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]
<Kristopher38> in terms of fractions of
the call budget of 1.0
L254[02:01:27]
<DaComputerNerd> 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]
<payonel>
@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]
<ebopalisesy> :dogping:
L257[02:01:59]
<Bob>
:GWvictoriaBlobNomPing:
L258[02:02:34]
<payonel>
@Rph no, i'm not looking to advance the internet cards
L259[02:03:03]
<payonel>
our internet card already has async api
L260[02:03:19]
<payonel>
and it uses signals if you want to handle the response async
too
L261[02:03:22]
<Rph> I
must have missed that when looking at the documentation
L262[02:04:40]
<Kristopher38> @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]
<Kristopher38> table->array*
L264[02:05:39]
<payonel>
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]
<payonel>
but there is always some context switching going on with machine
states
L266[02:06:07]
<Sketamine>
:GWthedarthPingGasm:
L267[02:06:11]
<payonel>
but it is important to not lock-up server ticks, so i'll be
reviewing this workflow later
L268[02:06:37]
<Kristopher38> also what you're saying
would amount to roughly 8000 calls per 0.5s, 800 calls per
tick
L269[02:07:02]
<payonel>
and that was all in dev env, so, your pixels may vary
L270[02:07:26]
<Kristopher38> we assume dev to be
slower?
L271[02:07:38]
<payonel> i
would 🙂
L272[02:08:02]
<Saghetti>
oc2 hypeee
L273[02:08:12]
<DaComputerNerd> oc2?
L274[02:08:18]
<DaComputerNerd> this does seem
hypeworthy
L275[02:09:29]
<TomatoSoup> @payonel if you were to
target a minecraft release other than 1.12.2, which would it
be?
L276[02:09:40]
<TomatoSoup> hypothetically speaking
L277[02:09:42]
<payonel>
for what?
L278[02:09:48]
<payonel>
for a hypthetical oc2?
L279[02:09:52]
<TomatoSoup> yeah.
L280[02:10:10]
<payonel> i
have to run. but -- latest whatever
L281[02:10:11]
<payonel>
🙂
L282[02:10:13]
<payonel>
bbl
L283[02:10:20]
<SinZ>
1.15.2, right?
L284[02:10:20]
<TomatoSoup> Take care. Love your
work.
L285[02:10:35]
<TomatoSoup> Sounds like that, unless
getting OC2 takes so long 1.16 is stable
L286[02:10:37]
<Rph>
1.15.2 technically isn't latest anymore
L287[02:10:44]
<Rph>
Fabric runs on snapshots already
L288[02:11:02]
<SinZ>
snapshots update weekly, not sustainable
L289[02:11:14]
<Rph> But
this causes the discussion between modloaders which I'd rather not
start
L290[02:11:49]
<TomatoSoup> 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]
<TomatoSoup> 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]
<Bob> Forgr
is more hefty with what it provides, whike fabric stays light
L293[02:15:39]
<Bob> 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]
<Oreole1>
hello, came because of ping
L295[02:16:03]
<TomatoSoup> Why is that? What allows them
to react so quickly?
L296[02:16:52]
<Bob> Not
having all of that mumbo jumbo to port and adapt ?
L297[02:17:43]
<TomatoSoup> 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]
<Bob>
Kinda
L299[02:23:15]
<payonel>
ok back
L300[02:23:17]
<payonel>
got grub
L301[02:23:25]
<TomatoSoup> excellent. what kind?
L302[02:23:27]
<payonel>
@Oreole1 new oc feature, gpu vram
L303[02:23:31]
<payonel>
eggs
L304[02:23:34]
<payonel> i
do keto
L305[02:23:38]
<TomatoSoup> right on
L306[02:27:25]
<Kristopher38> Hmm, I'm doing something
wrong, only the first frame gets displayed :GWchadThonkery:
L307[02:29:23]
<Kristopher38> @payonel can I write on an
already-written buffer?
L308[02:30:21]
<payonel>
each page acts like a screen
L309[02:30:23]
<payonel>
same rules apply
L310[02:30:34]
<Kristopher38> hm
L311[02:30:41]
<payonel>
only the first frame is displayed? could be a bug 🙂 it is alpha i
suppose
L312[02:30:46]
<payonel>
can you share your code?
L313[02:30:54]
<payonel> i
do want to get the docs out first, then i can debug
L314[02:31:31]
<Kristopher38> uhh, the setup I've got is
very specific, let me write something more concise, while you
finish the docs
L315[02:37:44]
<Kristopher38> @payonel your example,
modified
L317[02:38:18]
<payonel>
that is going to update the screen faster than you'll see it
happen
L318[02:38:31]
<payonel>
but i can add some checks in the code to make sure that 100
client-side bitblts happened
L319[02:38:36]
<3301> Is
this mod going to be updated to 1.14?
L320[02:39:06]
<Kristopher38> even if I add artificial
delay, like event.pull(0.25) it still doesn't work
L321[02:39:38]
<Kristopher38> it should flash 10x10 area
in the top left corner with a -> b -> a and so on
L322[02:39:41]
<payonel>
@Kristopher38 oh, you're.. um
L323[02:39:45]
<payonel>
ok, i'll review later
L324[02:40:29]
<Kristopher38> sure, np
L325[02:42:10]
<Kristopher38> also I think I haven't
thanked you already so - thank you for this new feature
L326[02:43:16]
<Kristopher38> also I think I haven't
thanked you yet so - thank you for this new feature [Edited]
L327[02:43:58]
<Techokami>
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]
<Techokami>
inb4 payonel shoots me
L329[02:48:21]
<Kristopher38> 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]
<Kleadron>
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]
<Kleadron>
and then there's buildcraft 7.99
L332[02:49:42]
<Kleadron>
i don't want to deal with all of this fuel processing
bullcrap
L334[02:50:37]
<Kleadron>
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]
<payonel>
@Kristopher38 ok, i'll load up and poke at this issue
L336[02:51:51]
<Kleadron>
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]
<Kleadron>
only if i feel like it sometimes
L338[02:53:37]
<Kleadron>
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]
<Kristopher38> 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]
<Saghetti>
is it possible? yes
L347[03:25:54]
<payonel> i
dont see why not
L348[03:26:01]
<payonel>
i'm sure i'll find dragons as soon as i try
L349[03:26:02]
<payonel>
🙂
L350[03:26:04]
<payonel>
but sure
L351[03:27:17]
<Kristopher38> @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]
<Kristopher38> call cost
L353[03:28:08]
<payonel>
seems reasonable
L354[03:28:17]
<Kristopher38> 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]
<payonel>
right now the costs are arbitrary, to be honest
L356[03:28:29]
<payonel> i
need to find bugs, do some big server testing, get metrics,
etc
L357[03:28:49]
<payonel>
true
L358[03:28:52]
<payonel>
that's a good point
L359[03:29:25]
<payonel>
also note, those cost values you just found, are NOT used for
vram->vram writes
L360[03:29:33]
<payonel>
or screen->vram
L361[03:29:44]
<payonel>
basically, if the destination is a gpu buffer, there is no extra
charge
L362[03:30:11]
<Kristopher38> oh, I see, that's
cool
L363[03:30:36]
<payonel>
i'm surprised how much work this took, btw
L364[03:30:47]
<payonel> i
spent probably ... 30 hours the last 3 days to do this
L365[03:33:29]
<Kristopher38> Hmm I reread your answer on
the issue
L366[03:33:46]
<Kristopher38> `gpu vram writes are
free`
L367[03:34:04]
<Kristopher38> Are they?
L368[03:34:22]
<Kristopher38> Sorry if I'm asking that
again, I might be
L369[03:34:26]
<Kristopher38> It's late
L370[03:34:27]
<payonel>
well, the gpu imposes no cost (no budget, no energy)
L371[03:34:47]
<payonel>
there is some time to context switch lua calls to the
component
L372[03:34:54]
<payonel>
but there is no added cost
L373[03:35:17]
<payonel> i
want to make it faster, but for now, i'm focusing on
correctness
L374[03:37:27]
<Kristopher38> Sure, it's already a lot
faster :D
L375[03:39:38]
<Kristopher38> I should be going now
L376[03:40:04]
<Kristopher38> I'm up for some testing
tomorrow tho
L377[03:40:40]
<Kristopher38> I'm downfor some testing
tomorrow tho [Edited]
L378[03:41:11]
<Kristopher38> I'm down for some testing
tomorrow tho [Edited]
L379[03:41:14]
<Kristopher38> Gn
L380[03:41:34]
<payonel>
goodnight
L381[03:41:36]
<payonel>
thanks for your help
L382[03:49:07]
<AdorableCatgirl> oof
L383[03:49:10]
<AdorableCatgirl> turns out
L384[03:49:20]
<AdorableCatgirl> hiding like 3000 lights
hurts space engineers
L385[04:02:12]
<Z0idburg>
lol
L386[04:03:07]
<Ariri>
Lua
L387[04:04:07]
<payonel>
ok this is really fun. i'm using psh (my remote ssh program for
openos)
L388[04:04:26]
<payonel>
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]
<payonel>
and i can watch the screen on machine a -- even though machine a's
buffer is offscreen
L390[04:05:14]
<payonel>
(and so, normal programs won't be drawing to the screen, so
interactive io on it is not possible)
L391[04:05:19]
<Ariri>
o.o
L392[04:16:39]
<payonel>
@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]
<Ocawesome101> I mean, hey, at least it
only took you that long
L396[04:37:29]
<Ocawesome101> and not 2 day
L397[04:37:31]
<Ocawesome101> + s
L398[04:39:00]
<The_Stargazer> %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_Stargazer:
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]
<Saghetti>
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!
SquidDev! 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> SquidDev 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 Lizzy!
L411[06:35:11] ⇦
Quits: Cervator (~Thunderbi@70.241.38.147) (Quit:
Cervator)
L412[06:55:12]
<payonel>
@Kristopher38 pixel set the entire back buffer appears to be 4x
faster than setting the screen
L413[06:55:40]
<payonel>
i'm working on a much more logical budgeting cost for bitblt,
similar to your suggestion
L414[07:00:48]
<The_Stargazer>
`java.lang.IllegalStateException: Keyboard must be created before
you can read events` haha what
L415[07:01:15]
<The_Stargazer> i've seen Minecraft crash
in unusual ways before but this.. this is just plain "this
should never happen"
L416[07:01:48]
<The_Stargazer> LWJGL oof'd itself
L417[07:11:31]
<payonel>
🙂
L418[07:11:55]
<payonel>
ok -- i've been wondering why it takes me .5 seconds to call set
8000 times on the vram
L419[07:12:17]
<payonel>
figured it out, there is a "clamp" call budget cost of
.001 per invoke
L420[07:12:28]
<payonel>
and the maxBudget is 1.5
L421[07:12:42]
<payonel>
so, that's 1500 calls before your budget times out
L422[07:13:29]
<payonel>
thus it should, at best, take 5.333 time outs to write to 160x50
buffer slots (or 8k)
L423[07:13:44]
<payonel>
if a timeout takes a tick to recover, that'd be .25s
L424[07:14:14]
<payonel>
also, i had my test wrong, i was writing too far
L425[07:14:21]
<payonel>
so, yeah, i actually get .25s
L426[07:14:24]
<payonel>
perfect!
L427[07:14:46]
<payonel>
ok, so you can redraw, pixel by pixel, an entire off-screen buffer
in .25s
L428[07:15:06]
<payonel>
and the entire screen in 1.3s
L429[07:15:52]
<payonel>
nice -- ok everyone (who cares) 🙂
L430[07:16:23]
<payonel>
time to draw pixel by pixel to screen 160x80: 1.3 seconds
L431[07:16:23]
<payonel>
time to draw pixel by pixel to vram then bitblt to screen:
.3s
L432[07:18:04]
<Kleadron>
i hear about pixels
L433[07:18:58]
<payonel> i
always mean char slots or whatever you want to call them
L434[07:27:28]
<The_Stargazer> 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]
<payonel>
yeah
L439[07:37:55] <Vexatos> @payonel cool
stuff on the vram
L440[07:41:08]
<Kleadron>
nice tall "pixels" you got there
L441[07:46:13]
<The_Stargazer> 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_Stargazer> 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_Stargazer> oh, then yeah
L448[08:05:31]
<The_Stargazer> why do you have to delete
META-INF
L449[08:05:43]
<The_Stargazer> 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_Stargazer> ohh
L453[08:06:29]
<The_Stargazer> is that in every jar
file?
L454[08:17:20]
<payonel>
Izaya: i did a thing
L455[08:19:50] <Izaya> a thing? :D
L457[08:25:30] <Izaya> so one could draw
to buffers then blit the whole display?
L458[08:25:42]
<payonel>
yes
L459[08:26:04]
<The_Stargazer> 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]
<payonel>
yes
L461[08:26:24]
<The_Stargazer> amazing
L462[08:26:48]
<payonel>
one of my favorite parts about this is that it gives real value to
gpus
L463[08:26:48]
<The_Stargazer> do i need to use `bitblt`
or can i just use `setBuffer`
L464[08:27:02]
<The_Stargazer> also yea, now they're
more.. gpu-y
L465[08:27:02]
<payonel>
in fact, there is value now in even having a T3 gpu with a T2 or T1
screen
L466[08:27:11]
<payonel>
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_Stargazer> so T3 gpu + T1 screen is
no longer useless?
L470[08:27:26]
<The_Stargazer> \o.
L471[08:27:28]
<The_Stargazer> \o/ [Edited]
L472[08:27:31]
<payonel>
@izaya same as what?
L473[08:27:38]
<payonel>
@The_Stargazer right 🙂
L474[08:27:39] ⇦
Quits: lord| (~ba7888b72@66.109.211.150) (Ping timeout: 190
seconds)
L475[08:27:46]
<payonel>
t3 gpu can hold a ton of "tall pixels"
L476[08:27:50] <Izaya> old version
L477[08:27:52]
<payonel> 3
160 50
L478[08:28:01]
<payonel>
@izaya what is "capacity", sorry?
L479[08:28:10]
<payonel>
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]
<payonel>
@izaya: right, that's the same. that's technically the screen
L483[08:28:57]
<payonel>
but that's all the same
L484[08:29:07]
<payonel>
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]
<payonel>
T1 gpu: has 1 T1 resolution of `totalMemory` for vram buffers
L487[08:29:46]
<payonel>
T2 gpu: 2 T2 resolution ..
L488[08:29:46]
<payonel>
T3 gpu: 3 * T3 resolution
L489[08:29:55]
<payonel>
@Izaya yes
L490[08:29:59]
⇨ Joins: lord| (~ba7888b72@66.109.211.150)
L491[08:30:00]
<payonel>
and this works without a screen
L492[08:30:06]
<payonel>
well, you have buffers you can draw to
L493[08:30:22]
<payonel>
there isn't (yet...still thinking about logistics and api) a method
to blit between gpus
L494[08:30:40]
<payonel> 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_Stargazer> what's a blit?
L496[08:31:02]
<payonel>
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]
<payonel>
@The_Stargazer a bitblt? heard of this?
L498[08:31:14]
<The_Stargazer> nope
L499[08:31:18]
<The_Stargazer> never in my life :P
L500[08:31:33]
<payonel>
heard of memcpy?
L501[08:31:37]
<The_Stargazer> uhh...
L502[08:31:42]
<The_Stargazer> it sounds C-ish so..
no
L503[08:31:47]
<payonel>
ok -
L504[08:31:55]
<The_Stargazer> i know basically no
C/C++
L505[08:32:00]
<payonel>
bitblt is an api to copy a 2D region to another 2D buffer
L506[08:32:16]
<The_Stargazer> ohhh, so it copies a
region of the screen to a buffer?
L507[08:32:20]
<payonel>
yes
L508[08:32:27]
<payonel>
vram->vram, or vram->screen, or screen->vram
L509[08:32:35]
<The_Stargazer> makes sense
L510[08:32:49]
<The_Stargazer> so it allows for finer
control than `setBuffer`?
L511[08:33:14]
<payonel>
you make me think my docs are quite detailed enough 🙂 you should
provide some wiki edits 🙂
L512[08:33:19]
<payonel>
but to answer your question, and to expand
L513[08:33:26]
<payonel>
`setBuffer` "points" the gpu to a buffer
L514[08:33:27]
<The_Stargazer> i'm assuming that
`setBuffer` just draws the whole vram to the screen?
L515[08:33:30]
<The_Stargazer> ohh
L516[08:33:34]
<payonel>
it is pointing to zero by default
L517[08:33:47]
<payonel>
this is a new feature, i'm open to change the api to make more
sense
L518[08:33:55]
<payonel>
it isn't "release" yet 🙂
L519[08:33:58]
<The_Stargazer> so the currently
"selected" buffer is what is drawn to?
L520[08:33:59]
<payonel>
selectBuffer?
L521[08:34:06]
<payonel>
perhaps i should change the name....
L522[08:34:06]
<The_Stargazer> yeah selectBuffer makes
more sense
L523[08:34:12]
<payonel>
ok word
L524[08:34:16]
<payonel>
i'll change it tonight. i agree
L525[08:34:23]
<payonel>
what about `getBuffer` ?
L526[08:34:28]
<payonel>
that is the inverse of select
L527[08:34:34]
<The_Stargazer> hmm
L528[08:34:40]
<The_Stargazer> maybe
`getCurrentBuffer`?
L529[08:34:44]
<payonel>
getCurrentBufferIndex? 🙂 it doesn't work as nicely as
`selectBuffer`
L530[08:35:09]
<The_Stargazer> could just be
`currentBuffer()` but that might be confusing
L531[08:35:22]
<payonel>
well, you need to figure this out 🙂
L532[08:35:26]
<payonel>
anyways ---
L533[08:35:34]
<payonel>
the idea is to allocate and select vram buffers
L534[08:35:46]
<The_Stargazer> question
L535[08:35:51]
<payonel>
once a buffer is selected, ALL subsequent gpu api calls are talking
to that buffer (e.g. not the screen)
L536[08:35:57]
<payonel>
yep?
L537[08:36:08]
<The_Stargazer> when a new buffer is
selected, it doesn't affect the screen, correct?
L538[08:36:14]
<payonel>
correct
L539[08:36:14]
<The_Stargazer> i.e. what's on the buffer
doesn't get drawn
L540[08:36:23]
<payonel>
not until you blit it to the screen
L541[08:36:27]
<The_Stargazer> ah
L542[08:36:29]
<The_Stargazer> that makes sense now
L543[08:36:36]
<payonel>
word
L544[08:36:42]
<payonel>
also, this is stored/part of the gpu
L545[08:37:03]
<payonel>
so if, for example, you swap screens (e.g. physically remove a
screen, or bind to a new one) --
L546[08:37:10]
<payonel>
all the buffer data is still in the gpu
L547[08:37:13]
<The_Stargazer> right
L548[08:37:15]
<payonel>
so then you can blit separately
L549[08:37:20]
<The_Stargazer> is it lost on
shutdown?
L550[08:37:23]
<payonel>
yes
L551[08:37:26]
<The_Stargazer> makes sense
L552[08:37:42]
<The_Stargazer> one question -- in
`bitblt` is `width, height` the area to copy to?
L553[08:37:51]
<payonel>
yes
L554[08:37:52]
<The_Stargazer> the docs say
"resolution of the destination buffer"
L555[08:37:57]
<payonel>
that's the default
L556[08:37:59]
<The_Stargazer> which doesn't imply
"copy area"
L557[08:38:01]
<The_Stargazer> oh
L558[08:38:06]
<payonel>
you can call `gpu.bitblt()` with no args
L559[08:38:09]
<The_Stargazer> i'm stupid :P
L560[08:38:33]
<payonel>
`gpu.bitblt()` with no args will copy the whole selected buffer to
the screen
L561[08:38:36]
<payonel>
as much as it can
L562[08:38:40]
<The_Stargazer> ah
L563[08:39:08]
<The_Stargazer> how many buffers are
availble by default?
L564[08:39:12]
<payonel>
0
L565[08:39:14]
<payonel>
haha
L566[08:39:21]
<The_Stargazer> is there a max buffers or
is it just VRAM limited?
L567[08:39:27]
<payonel>
so, again, you should edit the wiki to explain this
L568[08:39:38]
<payonel>
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_Stargazer> i would but i'm horrible
at explaining things
L571[08:39:47]
<The_Stargazer> 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]
<payonel>
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_Stargazer> SquidDev: are you trying
to steal this for CC? 🤔 (nah i'm just kidding)
L579[08:40:35]
<payonel>
bitblt of a dirty page is very budget expensive
L580[08:40:42]
<The_Stargazer> what is a 'dirty'
page?
L581[08:40:44]
<payonel>
i've been doing a lot of load testing
L582[08:40:46] <Vexatos> nice
L583[08:40:57]
<payonel> a
dirty page is a modify bufffer
L584[08:41:00]
<The_Stargazer> oh
L585[08:41:01]
<payonel>
bufffffffer typo 🙂
L586[08:41:10]
<The_Stargazer> so a 'clean' page is a
blank buffffffffffffffffffer? :P
L587[08:41:19]
<payonel>
so once you have your vram cached, you can bitblt for super tiny
network costs
L588[08:41:23]
<payonel>
haha yes
L589[08:41:41]
<The_Stargazer> any more f's and it'll
turn into.. well, a large collection of f's
L590[08:41:49]
<The_Stargazer> i am not good at naming
things
L591[08:42:27]
<The_Stargazer> 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]
<payonel>
basically, any dirty blit call is a full budget timeout
L593[08:42:36]
<The_Stargazer> oh
L594[08:42:42]
<The_Stargazer> so it uses the entire call
budget?
L595[08:42:51]
<payonel>
yes definitely
L596[08:42:56]
<The_Stargazer> ah
L597[08:43:03]
<The_Stargazer> so you can't rapidly
blit?
L598[08:43:12]
<payonel>
you can. very rapidly
L599[08:43:15]
<The_Stargazer> oh
L600[08:43:22]
<payonel> a
dirty page has the cost
L601[08:43:31]
<payonel>
once a dirty page is sync'd, it is clean
L602[08:43:35]
<The_Stargazer> oh
L603[08:43:45]
<payonel>
and you can blit it at low future cost
L604[08:43:52]
<The_Stargazer> so once Buffer A = Buffer
B (selected) it's 'clean'?
L605[08:44:04]
<The_Stargazer> 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]
<payonel>
the only thing that needs sync'ing is the client screen
L608[08:45:11]
<payonel>
vram->vram or screen->vram is all server-side only
L609[08:45:19]
<payonel>
that cost is near-zero
L610[08:45:41]
<The_Stargazer> oh, ok
L611[08:45:45]
<The_Stargazer> so vram > screen is
costly?
L612[08:46:13]
<payonel>
@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_Stargazer> there'll always be someone
tho
L614[08:46:34]
<payonel>
@The_Stargazer right, once you go to the screen there is an initial
cost
L615[08:46:39]
<The_Stargazer> ah
L616[08:46:53]
<The_Stargazer> so only vram to screen is
costly, but screen > vram and vram > vram are low-cost?
L617[08:47:02]
<The_Stargazer> that makes sense
L618[08:47:16]
<The_Stargazer> i would expect drawing to
screen to be much more costly than saving an area of screen
L619[08:47:20]
<payonel>
@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]
<payonel> 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_Stargazer> >3MB
L624[08:48:02]
<The_Stargazer> jesus christ
L625[08:48:12]
<The_Stargazer> isn't that pointless
anyway?
L626[08:48:22]
<The_Stargazer> like, isn't there a max
resolution for a screen array
L628[08:48:58]
<The_Stargazer> i mean, that's CC
L629[08:48:59]
<The_Stargazer> the home of unbalanced
:^)
L630[08:49:04]
<payonel>
@SquidDev yeah....one of my ideas is a network limiter
L631[08:49:16]
<payonel>
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]
<payonel> i
should really stop doing that
L634[08:49:38]
<The_Stargazer> also, for OC, i'd say that
projectors would be much better for large images
L635[08:50:14]
<The_Stargazer> SquidDev: no servers I
play on have CC (or OC)
L636[08:50:23]
<payonel>
:/
L637[08:50:28]
<payonel> 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_Stargazer> there is a concerning lack
of good OC servers
L640[08:50:49]
<The_Stargazer> "good" meaning
"there are people active"
L641[08:51:01]
<payonel>
@The_Stargazer you have a job to do, btw
L642[08:51:04]
<payonel> i
need a better name
L643[08:51:05]
<payonel>
do it
L644[08:51:09]
<The_Stargazer> better name for what
L645[08:51:15]
<payonel>
`getBuffer`
L646[08:51:28]
<The_Stargazer> oh god
L647[08:51:28]
<The_Stargazer> uhhh
L648[08:51:28]
<The_Stargazer> no promises but i'll try
and think of one for tommorow
L649[08:51:31]
<The_Stargazer> when i'm next on
L650[08:51:45]
<payonel>
@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_Stargazer> 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]
<payonel>
@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_Stargazer> i can think of two
already
L661[08:53:29] <Vexatos> getBuffer and
setBuffer?
L662[08:53:34]
<The_Stargazer> getCurrentBuffer and
currentCurrentInde
L663[08:53:35]
<payonel>
those are the current names
L664[08:53:38] <Vexatos> selectBuffer and
currentBuffer
L665[08:53:40]
<The_Stargazer> getCurrentIndex*
L666[08:53:55]
<The_Stargazer> also maybe getIndex
L667[08:54:04]
<payonel>
but @The_Stargazer thought `setBuffer(index: number)` was
confusign, and maybe `selectBuffer(index: number)` make more
sense
L668[08:54:10]
<The_Stargazer> yeah
L669[08:54:30]
<payonel>
oh maybe setBufferIndex and getBufferIndex ?
L670[08:54:33]
<The_Stargazer> `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]
<payonel>
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]
<payonel>
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_Stargazer> SquidDev: ohno
L680[08:55:44]
<The_Stargazer> 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]
<payonel>
yeah, i like the get/set pairs. they are a family 🙂 a tradition
across apis
L685[08:56:21]
<The_Stargazer> 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]
<payonel>
yeah. i like target. vex?
L689[08:56:48]
<payonel>
{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_Stargazer> well... not really
L693[08:57:13]
<payonel>
no, you can target any buffer
L694[08:57:15]
<The_Stargazer> isn't buffer 0 the
screen?
L695[08:57:18]
<payonel>
buffer 0 is default if you don't specify
L696[08:57:29]
<payonel>
buffer 0 is always the screen, it is a reserved index.
L697[08:57:35]
<payonel>
but you can blit to any index
L698[08:57:39] <Vexatos> I'd use
(get/set)ActiveBuffer
L699[08:57:42]
<The_Stargazer> 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]
<payonel>
eh
L703[08:57:55] <Vexatos> hm
L704[08:57:58]
<The_Stargazer> eh
L705[08:58:07]
<payonel> i
dont think Active is bad
L706[08:58:25]
<The_Stargazer> so ActiveBuffer vs
TargetBuffer?
L707[08:58:31]
<The_Stargazer> personally, i'd vote for
TargetBuffer
L708[08:58:47] <Vexatos>
(get/set)CurrentBuffer
L709[08:58:49] <Vexatos> idk
L710[08:58:58]
<payonel>
haha! no worries
L711[08:59:09]
<payonel>
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]
<payonel>
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_Stargazer> %s/intrepreted/interpret
it
L718[09:03:12]
<The_Stargazer> aw :(
L719[09:03:20]
<The_Stargazer> MichiBot dead?
L720[09:03:30]
<The_Stargazer> %tonk
L721[09:03:31] <MichiBot> Jiminy Cricket!
The_Stargazer! You beat SquidDev'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 DaComputerNerd!
L723[09:03:36]
<The_Stargazer> ..no
L724[09:03:48]
<The_Stargazer> is %s disabled?
L725[09:04:00]
<The_Stargazer> or did I just not type it
right
L726[09:04:36]
<ThePiGuy24> %s/or did i/i did/
L727[09:04:45] <SquidDev> I didn't think
you needed the %?
L728[09:04:45]
<ThePiGuy24> hmm
L729[09:04:55]
<The_Stargazer> % is for michibot's
s/
L730[09:04:56]
<ThePiGuy24> 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_Stargazer> if i just do s/ it does
discord s/
L734[09:05:17] <Vexatos> IRC is clearly
better
L735[09:05:31]
<ThePiGuy24> because discord tries to
interpret itself and edits your last matching message
L736[09:05:33]
<The_Stargazer> i know, but people like
MGR are usually on Discord not IRC
L737[09:05:39]
<payonel>
also...right now bitblt is only has a "COPY" mode
L738[09:06:01]
<payonel>
there are features in my ... why am i announcing this
publically.... there can be different modes. optional last
param
L739[09:06:16]
<payonel>
so, for example, merging or inverse modes
L740[09:06:26]
<The_Stargazer> payonel: why not announce
it publically?
L741[09:06:32]
<payonel>
because then people ask about it
L742[09:06:35]
<The_Stargazer> oh, right.
L743[09:06:37] <Vexatos> OC2 btw
L744[09:06:40]
<payonel>
and what if i change my mind, or get busy 🙂
L745[09:06:45]
<payonel>
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_Stargazer> 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_Stargazer> the hell is urn
L752[09:08:03]
<The_Stargazer> the greatest would be
Lua?
L753[09:08:11] <Vexatos> no :^)
L754[09:08:26]
<The_Stargazer> 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_Stargazer> random thought: i -really-
wish there were active OC servers
L758[09:10:15]
<The_Stargazer> Vexatos: nice room
L759[09:10:26]
<The_Stargazer> 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_Stargazer> never heard of that
one
L763[09:11:09]
<The_Stargazer> Oh,
BetterThanMinecon
L764[09:11:41] <Vexatos> you mean the
not-trademark-ambiguous BugTestingMarathon
L765[09:12:11]
<payonel>
@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
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]
<payonel>
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]
<payonel>
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]
<payonel> 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_Stargazer> %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]
<payonel>
didn't know your github creds still work
L777[09:17:44]
<payonel>
🙂
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_Stargazer> SquidDev: you in the
collapsing USA?
L780[09:18:13]
<payonel> i
am
L781[09:18:16]
<The_Stargazer> oof
L782[09:18:23] <SquidDev> Hah, I'm in the
UK. We have a Brexit/Covid double wammy.
L783[09:18:28]
<The_Stargazer> i really don't think
America's gonna be stable-ish for much longer
L784[09:18:36]
<The_Stargazer> SquidDev: i thought brexit
happened ages ago
L786[09:19:02] <SquidDev> The_Stargazer:
We officially left January, but won't properly leave until
December.
L787[09:19:08]
<The_Stargazer> oh god
L788[09:19:17]
<The_Stargazer> also: does brexit sound
like a cereal or what
L789[09:19:34]
<ThePiGuy24> yes
L790[09:19:44]
<The_Stargazer> all-new Brexit
Flakes™️!
L791[09:19:44]
<The_Stargazer> Complete with economic
crisis!
L792[09:20:10]
<The_Stargazer> 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]
<ThePiGuy24> f
L797[09:20:44]
<The_Stargazer> wait, who is this
L798[09:20:46]
<The_Stargazer> i'm confused
L799[09:20:48]
<The_Stargazer> who's husband
L800[09:20:59]
<The_Stargazer> 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_Stargazer> your? you're?
L803[09:21:07]
<The_Stargazer> ¯\(ツ)/¯
L804[09:21:16]
<The_Stargazer> i cba to check
L805[09:21:23] <Vexatos> yore*
L806[09:21:23]
<The_Stargazer> i think it's the former,
tho
L807[09:21:37]
<The_Stargazer> that's actually quite
sad
L808[09:21:57]
<ThePiGuy24> y'o'u'r'e
L809[09:22:03] <Vexatos> she was expected
to die many years ago
L810[09:22:06]
<The_Stargazer> 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_Stargazer> Vexatos: wait,
really?
L812[09:22:27]
<The_Stargazer> 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_Stargazer> 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_Stargazer> that's one tough
woman
L817[09:23:26]
<The_Stargazer> so wait
L818[09:23:28] <Vexatos> she's basically
been permanent guest in the intensive care unit
L819[09:23:30]
<The_Stargazer> diabetes, stroke, and
pneumonia
L820[09:23:34]
<The_Stargazer> all at the same time
L821[09:23:36]
<The_Stargazer> and she didn't die
L822[09:23:39] <Vexatos> yep
L823[09:23:42]
<The_Stargazer> goddamn that's
amazing
L824[09:23:53] <Vexatos> at like 85
years
L825[09:23:58]
<The_Stargazer> wow.
L826[09:24:08]
<The_Stargazer> 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_Stargazer> reminds me of my mother
somewhat, who had a near-death experience at a young age
L829[09:24:54]
<The_Stargazer> her appendix burst
L830[09:25:03]
<The_Stargazer> Vexatos: oof
L831[09:25:49]
<The_Stargazer> also: i thought it was
immigrate?
L832[09:26:14] <Vexatos> immigate is
inbound, emigrate is outbound
L833[09:26:21]
<The_Stargazer> ohh
L834[09:26:31]
<The_Stargazer> the english language is a
confusing mess
L835[09:26:41] <Vexatos> it's Latin
L836[09:26:47]
<The_Stargazer> oh
L837[09:26:49]
<The_Stargazer> 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_Stargazer> %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_Stargazer> 40 pounds??
L850[09:28:41]
<The_Stargazer> wouldn't that be
like
L851[09:28:41]
<The_Stargazer> 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_Stargazer> 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_Stargazer> FLY?!
L858[09:30:12]
<The_Stargazer> 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_Stargazer> well, i mean
L862[09:30:36]
<The_Stargazer> at least you guys have a
railway..
L863[09:30:58]
<The_Stargazer> i haven't been on a train
since...
L864[09:31:02]
<The_Stargazer> a long time ago
L865[09:31:29]
<The_Stargazer> i--
L866[09:31:29]
<The_Stargazer> wait, what
L867[09:31:30]
<The_Stargazer> 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_Stargazer> 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]
<ThePiGuy24> 80 years is nothing compared
to аlot (try complaning now michibot) of british railways
L876[09:34:17]
<The_Stargazer> did you put a ZWS in
there
L877[09:34:28]
<ThePiGuy24> no i just use a cyrrilic
a
L878[09:34:33] <Vexatos> discord remvoes
removes zws
L879[09:34:34]
<The_Stargazer> ohh
L880[09:34:43]
<The_Stargazer> sneaky
L881[09:34:46]
<ThePiGuy24> 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.
L884[09:35:11]
<The_Stargazer> bad MichiBot
L885[09:36:08]
<ThePiGuy24> 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]
<ThePiGuy24> алот
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]
<ThePiGuy24> 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]
<ThePiGuy24> 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]
<ThePiGuy24> 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]
<payonel>
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
L912[10:01:49]
<payonel>
typos* 🙂
L913[10:02:36]
<The_Stargazer> 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_Stargazer> chess is good for anything
logic-related
L918[10:12:53]
<The_Stargazer> 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_Stargazer> Cruor?
L921[10:19:09] <SquidDev> Cruor.
L922[10:19:16]
<The_Stargazer> 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_Stargazer> oh damn.. wait, what
L926[10:19:34]
<The_Stargazer> 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_Stargazer> damn
L932[10:20:11]
<The_Stargazer> which came out first tho,
CC or OC
L933[10:20:13]
<The_Stargazer> 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]
<payonel>
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]
<payonel>
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]
<payonel>
i'm leanging towards respecting unity naming
L994[10:32:26] <Vexatos> although unity
sucks
L995[10:32:32]
<payonel>
🙂
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>
L1020[10:38:17] <Vexatos> to see some of
its type magic
L1021[10:38:48]
<The_Stargazer> the heck is a
swizzle
L1022[10:39:11]
<payonel> active buffer wins
L1023[10:39:24]
<payonel> i was just writing some
documentation notes and i explained it as the active buffer
L1024[10:39:28]
<payonel> 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]
<payonel> @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]
<payonel> but no, sticking with
active
L1030[10:42:12]
<payonel> it is fine, it's good
L1031[10:42:18]
<payonel> i'm off to bed now
L1032[10:42:23]
<payonel> 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]
<payonel> 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]
<payonel> 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_Stargazer> 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_Stargazer> 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_Stargazer> oh, discord being
slow
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]
<Kristopher38> Damn, I wanted to give my 2
cents on the name
L1099[11:37:43]
<Kristopher38> Active buffer to me sounds
very much like it's the buffer displayed currently on the
screen
L1100[11:38:04]
<Kristopher38> 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_Stargazer> np
L1108[11:58:37]
<The_Stargazer> 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]
<Forecaster> %sip
L1117[12:23:01] <MichiBot> You drink a
prickly grass potion (New!). The next glass of water Forecaster
has tastes like Rubium.
L1118[12:23:08]
<Forecaster> Huh
L1119[12:55:38] <Lizzy> %tonk
L1120[12:55:39] <MichiBot> Dagnabbit!
Lizzy! You beat The_Stargazer'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 Forecaster!
L1122[13:42:18]
⇨ Joins: t20kdc
(~20kdc@cpc139340-aztw33-2-0-cust225.18-1.cable.virginm.net)
L1123[14:03:07]
<frequency> 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]
<Kristopher38> @frequency you might have a
dangling handler hanging around
L1125[14:03:47]
<Kristopher38> i.e. unregistered handler
from previously running the code
L1126[14:03:52]
<Kristopher38> have you tried
rebooting?
L1127[14:03:54]
<frequency> I've restarted both
machines
L1128[14:04:02]
<frequency> I'll try again
L1129[14:04:25]
<frequency> Yeah same behavior, both
machines fresh restarts
L1130[14:04:27]
<MGR>
Check your cabling for loops also
L1131[14:04:46]
<frequency> I don't have any cabling, it's
from a robot to a computer wirelessly
L1132[14:04:46]
<Kristopher38> 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]
<Kristopher38> no relays?
L1135[14:06:56]
<frequency> Something I was wondering
about was using event.listen() vs event.pull(). How does
"driver mode" vs "primary mode" work?
L1136[14:08:04]
<MGR>
event.pull is blocking, while event.listen is not
L1137[14:08:09]
<MGR>
Event handlers run in the background
L1138[14:09:10]
<Kristopher38> 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]
<Kristopher38> primary mode is when you're
manually doing event.pull()
L1140[14:12:10]
<Kristopher38> @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]
<frequency> 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]
<Zen1th> tf
L1143[14:17:23]
<Zen1th> sionce where is there bitblit in
OC ?!
L1144[14:17:26]
<Zen1th> is it an addon mod?!
L1145[14:17:29]
<Zen1th> since where is there bitblit in
OC ?! [Edited]
L1146[14:17:38]
<ThePiGuy24> since yesterday/early this
moring
L1147[14:17:42]
<Zen1th> OMG
L1148[14:19:30]
<Zen1th> is it in base OC ?!
L1149[14:19:30]
<Zen1th> is it in base OC ?!!!!
L1150[14:20:03]
<Kristopher38> yeah, it's in the dev
builds
L1152[14:40:11]
<Kristopher38> @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]
<Zen1th> wait
L1154[14:43:15]
<Zen1th> are dev builds only for 1.7.10
for now ?
L1156[14:43:42]
<Zen1th> ok thanks you
L1157[14:44:27]
<Zen1th> time to test those upcoming
features 🙂
L1158[14:44:38]
<Zen1th> + i can't wait for the
applications of those for GUI systems
L1159[14:45:17]
<Zen1th> not even speaking about
games
L1160[14:45:50]
<Kristopher38> @Zen1th be aware that it's
in alpha stage at this time
L1161[14:45:55]
<Zen1th> yea ik
L1162[14:46:01]
<Zen1th> i just want to test it for
now
L1163[14:51:36]
<Kristopher38> @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]
<Kristopher38> @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]
<Zen1th> from what you've tested, does GPU
operations on buffer cost less than writing to screen?
L1168[14:57:35]
⇨ Joins: Cervator (~Thunderbi@70.241.38.147)
L1169[14:57:45]
<Kristopher38> @Zen1th yeah, they cost
0.001 of the call budget
L1170[14:57:53]
<Zen1th> wow
L1171[14:57:57]
<Zen1th> this is very advantageous 🙂
L1172[14:58:02]
<Kristopher38> call budget being 0.5, 1.0
or 1.5 on cpu tiers 1, 2 or 3 respectively
L1173[14:58:14]
<Zen1th> this also mean it could
technically be used for hardware double-buffer without worrying too
much about call budget
L1174[14:58:59]
<Kristopher38> @Zen1th if the bugs I
mentioned above get fixed and call budget cost for bitblt gets
changed
L1175[14:59:16]
<Kristopher38> why do I keep pinging
people
L1176[14:59:24]
<Zen1th> ¯\(ツ)/¯
L1177[14:59:26]
<Zen1th> but ok
L1178[15:00:17]
<frequency> just ran my robot assembler
for the first time and it totally works 🎊
L1179[15:01:59]
<Zen1th> 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]
<Kristopher38> you're measuring that wrong
is all I can say
L1181[15:03:15]
<Kristopher38> or I think so
L1182[15:03:24]
<Zen1th> maybe
L1183[15:03:30]
<Zen1th> i'll try to do multiple tests in
a row and do an average
L1184[15:03:30]
<Kristopher38> you're using
os.clock()
L1185[15:03:34]
<Zen1th> true
L1186[15:03:40] <Inari> clockety
clock
L1187[15:03:43]
<Zen1th> why would problem come from
it?
L1188[15:04:01]
<Kristopher38> os.clock() measures time
spent in executor thread
L1189[15:04:05]
<Zen1th> ah yea sh*t
L1190[15:04:08]
<Kristopher38> that is, how long your lua
script runs
L1191[15:04:18]
<Kristopher38> not counting the time all
the component calls take
L1192[15:04:41]
<Zen1th> which is most precise then :
os.time() or computer.uptime() ?
L1193[15:04:54]
<Kristopher38> 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]
<Zen1th> so i'll take os.time i
guess
L1195[15:05:04]
<Kristopher38> or rather 0.05s
L1196[15:05:09]
<Kristopher38> *
L1197[15:05:24]
<Kristopher38> computer.uptime() takes
into account component calls though
L1198[15:05:32]
<Kristopher38> (afaik)
L1199[15:05:47]
<Kristopher38> since it measures
"real time"
L1200[15:05:50]
<Kristopher38> not just cpu time
L1201[15:05:58]
<Zen1th> uhm
L1202[15:06:00]
<Zen1th> in all cases
L1203[15:06:07]
<Zen1th> computer.uptime() and os.time()
returns 0 s of execution
L1204[15:06:11]
<Zen1th> gotta try doing them 100 in a
row
L1205[15:06:25]
<Zen1th> (i mean the tests inside the
loop)
L1206[15:06:26]
<Kristopher38> yeah, as I said, it has
0.05s resolution
L1207[15:06:50]
<Kristopher38> so worst case 0.05s has to
pass before you can measure a change in time
L1208[15:07:01]
<Kristopher38> yeah, I'd suggest doing
repeated test in a row
L1209[15:07:06]
<Kristopher38> yeah, I'd suggest doing
repeated tests in a row [Edited]
L1211[15:07:35]
<Kristopher38> with measurements taken
before starting them, and after finishing them all
L1212[15:07:44]
<Zen1th> yea that's what i did
obviously
L1213[15:07:46]
<Zen1th> anyways
L1214[15:07:58]
<Zen1th> look like writing to buffer
currently is 3x faster than writing to screen
L1215[15:08:47]
<Kristopher38> 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]
<Kristopher38> that'd amount to almost 4x
speedup
L1217[15:09:05]
<Zen1th> yea
L1218[15:09:11]
<Zen1th> running more loops should have
affined the results
L1219[15:09:21]
<Zen1th> making the loop longer should
have affined the results [Edited]
L1220[15:09:23]
<Kristopher38> so your numbers are almost
right
L1221[15:10:21]
<Kristopher38> 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
L1223[15:10:36]
<Kristopher38> you're missing `do`
L1224[15:10:39]
⇨ Joins: Thutmose
(~Patrick@host-69-59-79-181.nctv.com)
L1225[15:10:43]
<ThePiGuy24> oh ye
L1226[15:10:48]
<Zen1th> also i already got the benchmark
thing correct
L1229[15:11:13]
<Zen1th> so it's not an actual 4x
speedup
L1230[15:11:21]
<Zen1th> but a 3.5x speedup
L1231[15:11:29]
<Kristopher38> alright, in practice it's a
bit slower
L1232[15:21:20]
<Kristopher38> @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]
<Zen1th> 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
Lizzy, you were not able to beat Lizzy'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]
<Zen1th> uhm
L1257[16:23:02]
<Zen1th> %tonkout
L1258[16:23:14]
<Zen1th> ah uhm it's an irc-only bot
😦
L1259[16:24:07]
<MGR>
No, it works on both
L1260[16:24:12]
<MGR>
There's just a rate limiter
L1261[16:24:19]
<AdorableCatgirl> 15 minutes between
L1262[16:24:53]
<AdorableCatgirl> 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)
L1267[17:09:42] <asie> wait, what!?
L1268[17:09:42] <MichiBot>
Title:
Video RAM for faster drawing
| Posted by: Inari-Whitebear
| 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]
<Kristopher38> 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
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]
<Kristopher38> You could keep rebinding
the GPU
L1290[17:45:06]
<Kristopher38> As that's basically free
call budget cost-wise
L1291[17:45:24]
<Kristopher38> Cycle through the
screens
L1292[17:46:52]
<Kristopher38> 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]
<Forecaster> %hello
L1296[17:56:50]
<Ocawesome101> ho tcfun
L1297[17:56:51] <MichiBot> Forecaster:
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]
<Ocawesome101> hi*
L1299[17:57:12] <tcfun> whats up
L1300[17:57:46]
<Forecaster> 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]
<Forecaster> play web radio
L1307[18:02:08] <tcfun> how2 get that
working
L1308[18:02:19]
<Forecaster> follow the instructions
L1309[18:02:26] <tcfun> ok
L1310[18:03:10]
<payonel> @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]
<payonel> asie: ice?
L1312[18:04:19]
<payonel> @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]
<payonel> ah
L1317[18:05:41] <tcfun> hmmm
L1318[18:06:04]
<payonel> yeah i need to clean that
up
L1319[18:06:04] <tcfun> how to get a open
fm raido
L1320[18:09:33]
<AdorableCatgirl> oh yeah
L1321[18:09:38]
<AdorableCatgirl> i need to do that thing
in OSSM
L1322[18:10:01]
<AdorableCatgirl> 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]
<Kristopher38> @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]
<Kristopher38> and it's very power
hungry
L1325[18:10:34]
<Kristopher38> 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]
<payonel> @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]
<payonel> so, it's an important part of my
balancing tests
L1329[18:11:59]
<payonel> I* adjusted the power dray
L1330[18:12:23]
<Kristopher38> was that in the latest 1328
build?
L1331[18:12:49]
<payonel> yes
L1332[18:12:55]
<payonel> 1329 has the api change,
btw
L1333[18:13:02]
<Kristopher38> oh there's new build I
see
L1334[18:13:03]
<payonel> `setActiveBuffer` and
`getActiveBuffer`
L1335[18:13:23]
<Kristopher38> 1328* has
L1336[18:13:35]
<payonel> 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]
<payonel> oh youre right
L1338[18:14:03]
<payonel> forgot about the pr i just
merged
L1339[18:14:03]
<Kristopher38> oh 1329 is only robot name
addition
L1340[18:14:08]
<payonel> so yeah, 1328 is
"latest"
L1341[18:14:13]
<Kristopher38> 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
L1351[18:22:17]
<Kristopher38> pretty coloring
L1352[18:22:33]
<Ocawesome101> yes
L1353[18:22:55]
<Ocawesome101> 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]
<Ocawesome101> 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]
<Ocawesome101> why thank you
L1358[18:24:04]
<Ocawesome101> 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?
L1364[18:27:11]
<Zen1th> 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
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]
<payonel> 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
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]
<payonel> 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]
<payonel> kuiper*
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"
L1437[18:43:49] <dequbed> Vexatos: Ah
okay now I get it.
L1438[18:43:53]
<payonel> 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 ^^
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.
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
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]
<Ocawesome101> 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]
<Zen1th> 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]
<Bob>
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]
<Zen1th> 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]
<Kristopher38> it's the 6th time today
that you say gtk sucks :D
L1480[18:59:48]
<Bob>
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]
<AdorableCatgirl> so
L1485[19:03:14]
<AdorableCatgirl> i wonder if using
fastsqrt will really make my code that much faster
L1486[19:04:08]
<Forecaster> who decided to name whatever
that is "fast sqrt"
L1487[19:04:23] <Vexatos> but it's
cursed?
L1488[19:04:23]
<Kristopher38> 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]
<AdorableCatgirl> what
L1492[19:06:37]
<AdorableCatgirl> 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]
<Forecaster> 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]
<Forecaster> 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]
<Forecaster> 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]
<payonel> to read a floppy?
L1513[19:29:19] <tcfun> yeah
L1514[19:29:22]
<Forecaster> in what? a program? in the
shell?
L1515[19:29:23]
<payonel> it's mounts as a
filesystem
L1516[19:29:33] <tcfun> yes
L1517[19:29:57]
<payonel> 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]
<payonel> 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]
<Slap4ss> 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!
SquidDev! You beat Lizzy'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> SquidDev 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 Lizzy!
L1530[20:57:19]
⇨ Joins: Backslash
(~Backslash@d137-186-220-152.abhsia.telus.net)
L1531[20:57:50]
<payonel> @Slap4ss wat?
L1532[20:57:59]
<payonel> i dont make a nanofog device in
oc
L1533[20:58:32]
<Slap4ss> oh sorry, I think it's the wrong
discord, it's in open security
L1534[20:58:48]
<payonel> ah. we have some open security
devs here though
L1535[21:01:21]
<payonel> @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]
<payonel> gregtech:newhorizons?
L1540[21:02:05] <Vexatos> yes
L1541[21:02:13]
<payonel> no worries. a friend just asked
me
L1542[21:05:48]
<Slap4ss> Well, hope they could help me
then !
L1543[21:08:39]
<payonel> @Michiyo ^
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]
<Forecaster> I saw a fox while driving
home today
L1547[21:11:23]
<Forecaster> not often that happens
L1548[21:11:28] <Inari> Ooooh
L1549[21:11:30] <Inari> Did you cuddle
it?
L1550[21:11:41]
<Forecaster> uh no
L1551[21:11:50]
<Forecaster> I was in my car, driving past
a field
L1552[21:12:01] <Inari> Poor fox
L1553[21:12:22]
<Forecaster> 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]
<Forecaster> 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!
Lizzy! You beat SquidDev'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 Forecaster!
L1562[21:53:18] <Amanda> %choose
irradiate or halucinate
L1563[21:53:18] <MichiBot> Amanda: 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> Amanda: Hm,
yeah okay.
L1567[21:56:07]
<Z0idburg> Amanda is here!
L1568[21:56:13] <Amanda> Where!?
L1569[21:56:22] *
Amanda looks around, her heckles raised
L1570[21:56:25]
<Z0idburg> 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]
<Forecaster> gives the orders from the
Listener to the other members of the Dark Brotherhood
L1574[22:04:55]
<Forecaster> 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]
<Forecaster> 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]
<Forecaster> there is a manual
L1581[22:06:21] <tcfun> what signal do i
give it
L1582[22:06:23]
<Forecaster> it tells you what the things
do
L1583[22:06:43]
<Forecaster> computronics adds all of its
things to the OC manual
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]
<Forecaster> %sip
L1600[22:34:45] <MichiBot> You drink a
porous dilithium potion (New!). Forecaster turns into an aluminium
sheep until Sozin's Comet returns.
L1601[22:34:53]
<Forecaster> 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> Amanda is
biting Inari for 1d6 => 3 damage!
L1608[22:37:46] <Inari> D: hey
L1609[22:37:49] <Amanda> %bite Inari
again
L1610[22:37:49] <MichiBot> Amanda is
biting Inari 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]
<BrisingrAerowing> Gives Amanda a bottle
of fur-safe goop remover
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 1d6 => 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]
<Forecaster> 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]
<Forecaster> yep :P
L1630[22:41:51] <Amanda> I should read
more prattchet
L1631[22:41:59]
<BrisingrAerowing> %sip
L1632[22:42:00] <MichiBot> You drink a
solid ocean potion (New!). A fish flies past that vaguely resembles
someone BrisingrAerowing 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]
<Forecaster> it was a flying fish, of
course
L1636[22:44:38]
<payonel> wow, 1.15.2 immersive
portals:
L1638[22:46:07]
<Kristopher38> that was a thing even
before 1.15
L1639[22:47:57] <SquidDev> %tonk
L1640[22:47:58] <MichiBot> Bejabbers!
SquidDev! You beat Lizzy'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 Lizzy!
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]
<Forecaster> Until someone else gets that
random number :P
L1647[23:51:25] <Amanda> /ban
Webchat*
L1648[23:51:27] <Amanda> :P