<<Prev Next>> Scroll to Bottom
Stuff goes here
L1[00:01:32]

<Renno> for
being new, that's pretty good work
L2[00:02:45]

<Renno>
multimonitor stuff is rough in OC since all of the component stuff
goes through the CPU and you can only have 1 in a device
L3[00:04:35]

<Renno> all
of the screens competing for the same component call
allowance
L5[00:07:08]

<Renno>
which one of those is a virtual component?
L6[00:09:09] <quad327>
virtual0-xxxx-xxxx-xxxx-xxxxxxxxxxxx in the Shell
L7[00:09:48]

<chanesaw>
even having one shell to one screen is pretty great
L9[00:10:36] <quad327> to move it from
virtual window to an actual screen
L11[00:12:45] ⇦
Quits: Hawk777 (~Hawk777@2001:569:7cae:7e00:5c28:e67d:e2d4:1cc3)
(Quit: Leaving.)
L12[00:13:41]

<Renno>
right, multiple shells is great, multiple screens is good too, but
it just a simple division equation when it comes to the limitations
is all
L13[00:14:12]

<Renno> you
can move the shells to different screens on different GPUs,
epic
L14[00:14:45]

<Renno> I
never dug deep enough into OpenOS to figure out the shell system,
it's cool to know that it can do this though
L15[00:16:07]

<chanesaw>
I have always dreamed of running multiple shells with only 1
CPU
L16[00:16:07]

<chanesaw>
(like terminals on Linux- tty0, etc)
L17[00:17:04] <Saphire> I uhhh
L18[00:17:14]

<Renno> I
see your notes in gmux written in what I can only guess is an
eastern asian language, nice (I have rarely seen anyone into OC
stuff from anywhere that isn't the USA, Europe, or
Russia)
L19[00:17:24] <Saphire> Got so frustrated
with ComputerCraft edit that I ported OpenOS /bin/edit.lua
L20[00:17:39] <Saphire> So much
better
L21[00:17:47] <Saphire> ...just wish the
screen size was bigger c.c
L22[00:17:53] <Corded> > <Renno>
I see your notes in gmux written in what I can only guess i…
L23[00:17:54]

<chanesaw>
Austrailia though
L24[00:18:01] <Corded> >
<Saphire> So much better
L25[00:18:01]

<chanesaw>
Better?
L26[00:18:10]

<Renno>
Australia as in you're from Australia?
L27[00:18:13] <Saphire> (I still need to
figure out how to port OC terminal to new MC)
L28[00:18:13]

<chanesaw>
I forgot what features OC has
L29[00:18:32]

<chanesaw>
* OC's editor has
L30[00:18:38] <Saphire> @chanesaw: for one,
f-ing search :V
L31[00:18:46] <quad327> I'm
Chinese.
L32[00:18:48]

<Renno> OCs
default editor is pretty decent
L33[00:19:03]

<chanesaw>
Emacs as a shell
L34[00:19:27]

<Vaur>
%tonkout
L35[00:19:28] <MichiBot> I'm sorry
Vaur, you were not able to beat Vaur's record of 1 hour, 51
minutes and 16 seconds this time. 1 hour, 58 minutes and 39 seconds
were wasted! Missed by 3 hours, 49 minutes and 56 seconds!
L36[00:20:01]

<chanesaw>
Do computers make fan noise?
L38[00:20:39] <quad327> I guess EEPROMs can
also be run this way
L39[00:20:52] <quad327> but I haven't
tried it
L40[00:21:59] <Saphire> ...oh right
lol
L41[00:22:06] <Saphire>
"australia" is where the /server/ is
L42[00:22:09]

<chanesaw>
Is there any reason `boot_invoke` in the BIOS exists?
L43[00:22:09] <Saphire> Not where they
are
L44[00:22:21] <Corded> >
<Saphire> Not where they are
L45[00:22:21]

<chanesaw>
I am in Australia
L46[00:22:26] <Saphire> Ah
L47[00:23:01]

<Renno> why
does quad now have the same pfp as saphire
L48[00:23:16] <Saphire> Because discord
broke their fucking webhook handling
L49[00:23:21] <Saphire> Or
"optimized" it
L50[00:23:23] <Saphire> Whichever
L51[00:23:31]

<Renno> a
feature
L52[00:23:59]

<Renno>
pretty interesting stuff, quad
L53[00:24:20]

<chanesaw>
blahaj
L54[00:25:24]

<RedstoneParkour> %sip
L55[00:25:27] <MichiBot> You drink a cloudy
radiation potion (New!). RedstoneParkour: Nothing seemed to
happen...
L56[00:27:37]

<Spider
EveryOS> %tonkout
L57[00:28:12]

<Spider
EveryOS> %sip
L58[00:28:13]

<Renno> are
the shell windows movable around the screen they're on?
L59[00:28:16] <MichiBot> You drink a runny
pearlpeas potion (New!). Spider EveryOS feels the need to use
"%shell".
L60[00:30:36] <Saphire> Oh nvm
L61[00:30:46] <Saphire> It is a bug I
think, Renno
L62[00:30:57] <Saphire> Tap Ctrl+R in the
client if on desktop
L63[00:30:58] <quad327> no, limited by
GPU
L64[00:31:44] <quad327> I mean it
can't cross screen
L65[00:32:08]

<Renno> how
does the layering of the windows and stuff work visually? how do
you position them when they open?
L66[00:32:43] <quad327> but they can be
moved freely on the screen where gmux started
L67[00:33:07]

<RedstoneParkour> hmm how
'cheap' are non-dirty bitblts?
L68[00:33:22]

<RedstoneParkour> (component call
budget)
L69[00:33:57]

<chanesaw>
what is bitblt? copy in VRAM pages?
L70[00:34:17]

<RedstoneParkour> bitblt copies across
vram pages yes
L71[00:34:37]

<chanesaw>
Shouldbe free
L72[00:35:32]

<chanesaw>
"extremely low costs?
L73[00:35:43]

<chanesaw>
* costs"
L74[00:35:44]

<RedstoneParkour> would it make sense to
bitblt the entire screen pixel by pixel from a 'palette'
of all characters / colors?
L75[00:36:12] <Corded> >
<RedstoneParkour> hmm how 'cheap' are non-dirty
bitblts?
L76[00:36:12]

<chanesaw>
to/from?
L77[00:36:31]

<chanesaw>
I assume to screen?
L78[00:36:35]

<RedstoneParkour> from buffer to screen
yes
L79[00:36:55] <Corded> >
<RedstoneParkour> would it make sense to bitblt the entire
screen pixel by pi…
L80[00:36:55]

<chanesaw>
ooh.
L82[00:39:41]

<Renno>
okay so they can be dragged around, good
L83[00:39:52]

<Renno> the
corner drag resize is a nice touch
L85[00:40:26]

<chanesaw>
multi-screen with only 1 GPU
L86[00:40:41]

<Renno>
right
L87[00:41:03]

<Renno> I
thought about allowing that in my GUI library
L88[00:41:12]

<Renno>
but, eh
L89[00:41:42]

<RedstoneParkour> hm it seems to be
0.001
L90[00:41:44] <quad327> I think it can
adapt to all thing running normally in graphics just by directly
GPU
L91[00:41:45] <Corded> >
<chanesaw> anyway, I had an idea
L92[00:41:45] <Corded> -
`gpu.setActiveBuffer(vram0)`
L93[00:41:45] <Corded> - do G…
L94[00:41:45]

<chanesaw>
this should also be faster than direct GPU operations since nothing
touches the screen except when updating
L95[00:42:00]

<RedstoneParkour> which is equivalent to a
limit of 1000
L96[00:42:13]

<Renno> I
wonder what would happen if I ran one of my systems inside of a
shell in the gmux system (theoretically it should just draw over it
and act as a lower "layer" and when it closes gmux should
just redraw 🤔)
L98[00:43:33]

<Renno> oh
you made a file explorer
L99[00:43:54] <quad327> no, just a existed
one
L101[00:44:18] <quad327> without any
adaptation
L102[00:44:46]

<Renno> ah,
it stays in the borders of the shell? interesting
L103[00:45:26] <quad327> thanks to virtual
component
L104[00:45:58]

<Renno> how
do you make it to where it gets the correct virtual component
without modification?
L105[00:46:45]

<Renno>
that program does the standard ``require("component")``
and then ``local gpu = component.gpu``
L106[00:46:53]

<chanesaw>
I presume by pTCHING `COMPONENT` TO MAKE THAT PROCESS GET THE RIGHT
VIRTUAL AS `COMPONENT.GETPRIMARY`
L107[00:46:59]

<chanesaw>
cPS lock
L108[00:47:07]

<Renno>
lol
L109[00:47:14]

<chanesaw>
Caps lock and Escape should have been swapped
L110[00:47:24]

<chanesaw>
Who even uses caps lock
L111[00:50:41] <Elfi> I mean, back in the
day, control was where caps lock is now
L112[00:50:48]

<Renno> I
am almost tempted to integrate your gmux system into my OpenOS
fork
L113[00:51:05]

<RedstoneParkour> the max resolution is 8
thousand pixels total
L114[00:51:16]

<RedstoneParkour> so going pixel by pixel
wont work
L115[00:51:35]

<RedstoneParkour> assuming we have to
redraw the entire screen every tick
L116[00:51:38] <Corded> >
<Renno> I am almost tempted to integrate your gmux system
into my O…
L117[00:51:38]

<chanesaw>
OpenOS fork?
L118[00:51:40]

<Renno> I
think each bitblt is a component call
L119[00:51:48]

<Renno>
OpenOS fork called QuickOS
L120[00:51:58]

<chanesaw>
oh, it better be quick then
L121[00:52:02] <Corded> >
<Renno> I think each bitblt is a component call
L122[00:52:02]

<RedstoneParkour> it has a cost of 0.001
for clean vram buffers
L123[00:52:11]

<chanesaw>
I still don't get the point of `boot_invoke` in bios.lua
L124[00:52:23]

<chanesaw>
It's just error handling, but not actually for errors
L125[00:52:32]

<Renno> the
boot speed is fast
L126[00:52:48]

<Renno> I
haven't really added much in a while
L127[00:53:33] <Corded> >
<Renno> OpenOS fork called QuickOS
L128[00:53:34]

<chanesaw>
repo?
L129[00:53:42]

<chanesaw>
Fuchas is dead
L130[00:55:35]

<RedstoneParkour> also Renno about your
yawl-e using vram buffers: it (very likely) does it wrong
L131[00:55:53]

<RedstoneParkour> as you should keep vram
buffers unchanging
L132[00:56:53]

<chanesaw>
6_4 is here
L133[00:57:05]

<chanesaw>
The world really is a small place
L135[01:09:13] <Corded> >
<RedstoneParkour> also Renno about your yawl-e using vram
buffers: it (very l…
L136[01:09:13]

<Renno> if
you can point it out to me
L137[01:09:18]

<Renno>
that'd be good
L138[01:10:42]

<RedstoneParkour> if i'm reading your
code correctly it uses a framebuffer that changes every frame
L139[01:10:51]

<RedstoneParkour> so that buffer is always
dirty
L140[01:12:42]

<RedstoneParkour> so the bitblt always
takes `bitbltCost * (src.getWidth * src.getHeight) /
(maxResolution._1 * maxResolution._2)` component budget
L141[01:13:11]

<RedstoneParkour> right side is 1, since
your frame buffer is max resolution
L142[01:13:59]

<RedstoneParkour> so the bitblt costs 4
budget (for tier 3)
L143[01:14:36]

<RedstoneParkour> which is 2.6667 ticks
(as tier 3 hardware has 1.5 budget per tick), rounded up
that's 3 ticks
L144[01:18:52]

<Renno>
dirty meaning what
L145[01:18:55]

<Renno>
having contents?
L146[01:22:52]

<RedstoneParkour> dirty meaning having
been modified since last bitblt
L148[01:27:13]

<Renno>
been a while since I touched that code, but it appears I am
allocating a new buffer and then freeing it afterwards. This would
indicate that I am *not* modfying it after the bitblt, yes?
L149[01:34:07] <Corded> >
<RedstoneParkour> right side is 1, since your frame buffer
is max resolution
L150[01:34:07]

<Renno> you
are probably partially correct in the way that I should not do the
entire gpu resolution width and height, but instead the root frames
width and height, but that would only really be useful in the case
that the root frame is smaller than the gpu maximum resolution (all
of my programs use the whole screen as they are full client
L151[01:34:07] <Corded> layers generally
speaking)
L152[01:40:32]

<RedstoneParkour> perhaps the better idea
is to have some widget types have a shared vram buffer with all
possible states of that widget
L153[01:40:44]

<RedstoneParkour> kind of like a texture
atlas
L154[01:43:19]

<Renno> not
sure what you mean
L155[01:44:16]

<RedstoneParkour> so that each widget
bitblts from a clean buffer directly to the screen
L156[01:44:30]

<RedstoneParkour> which has 0.001 budget
cost
L157[01:46:42]

<Renno>
there aren't that many buffers though?
L158[01:47:02]

<Renno>
iirc freeing a buffer and swapping buffers also costs ticks
L159[01:47:38]

<Renno>
which would mean that 3 ticks for a full draw of any amount of
widgets in the current design at full resolution vs at least 1 tick
per widget
L160[01:47:42]

<Renno>
seems like a pretty bad trade
L161[01:49:21]

<Renno>
unless I'm just not understanding what you're saying,
which is possible too
L162[01:49:26]

<Renno> I
don't see how that could be faster
L163[02:18:56] <Corded> >
<Renno> iirc freeing a buffer and swapping buffers also
costs ticks
L164[02:18:56]

<RedstoneParkour> the idea is that you
init all buffers at startup
L165[02:19:09]

<RedstoneParkour> and then never touch
them
L166[02:19:22]

<RedstoneParkour> except for bitblt-ing
from them
L167[02:20:04]

<RedstoneParkour> also
allocating/deallocating/switching buffers are direct calls
L168[02:20:16]

<RedstoneParkour> so (essentially) 0
budget
L169[02:22:33]

<Renno> I
don't understand what you're getting at
L170[02:22:41]

<RedstoneParkour> also iirc %tonk
L171[02:22:42] <MichiBot> Eureka!
RedstoneParkour! You beat Vaur's previous record of 1 hour,
51 minutes and 16 seconds (By 11 minutes and 57 seconds)! I hope
you're happy!
L172[02:22:43] <MichiBot>
RedstoneParkour's new record is 2 hours, 3 minutes and 14
seconds! RedstoneParkour also gained 0.0004 (0.0002 x 2) tonk
points for stealing the tonk. Position #4. Need 0.08089 more points
to pass Vaur!
L173[02:23:50] <Corded> >
<Renno> I don't understand what you're getting
at
L174[02:23:51]

<RedstoneParkour> you create buffers for
all widgets the program is going to use at startup, and to draw a
widget you bitblt from that buffer directly to the screen
L175[02:24:09]

<Renno>
there are only 3 buffers on a tier 3 gpu...
L176[02:24:19]

<Renno> 1
widget per buffer means 3 widgets max..
L177[02:24:23]

<RedstoneParkour> not if you make them
smaller
L178[02:24:45]

<Renno>
huh?
L179[02:25:07]

<RedstoneParkour> you do some witchcraft
to make the buffers smaller
L180[02:25:27]

<RedstoneParkour> also you can very likely
reuse buffers across widgets
L181[02:25:59]

<Renno>
smaller buffer != more buffers
L182[02:26:15]

<RedstoneParkour> huh?
L183[02:26:39]

<Renno> 1
widget per buffer, 3 widgets max since 3 buffers, you say make them
smaller as if that somehow allows for *more* buffers
L184[02:26:46]

<RedstoneParkour> it does
L185[02:27:13]

<RedstoneParkour> the vram used by a
buffer is width * height iirc
L186[02:28:22]

<Renno>
news to me
L187[02:29:17]

<Renno> but
what would the theoretical benefit of this be?
L188[02:29:33]

<Renno> is
the number of buffers actually determined by the remaining
vram?
L189[02:29:58]

<RedstoneParkour> you could have buffers
that perfectly fit what they contain
L190[02:31:37]

<Renno>
what about it?
L191[02:31:46]

<Renno> I
already solved the problem of border handling in the code
L192[02:31:53]

<Renno>
whether that be text or anything
L193[02:32:38]

<RedstoneParkour> ok the point is that
bitblting from static vram buffers to the screen is *really*
fast
L194[02:32:59]

<RedstoneParkour> faster than any other
operation that could update the screen
L195[02:33:35]

<Renno> I
mean yea
L196[02:33:42]

<Renno> I
am already utilizing bitblt
L197[02:33:52]

<Renno> I
still don't understand what the actual difference would
be
L198[02:34:09]

<RedstoneParkour> yes however in your case
the framebuffer is not static
L199[02:34:15]

<RedstoneParkour> which makes it really
slow
L200[02:34:30]

<Renno>
when you say to use a buffer per widget, my first thought is that
there would be multiple buffers overlapping the same area and
potentially requiring more vram than is allowed if there are enough
widgets
L201[02:34:44]

<RedstoneParkour> good point
L202[02:35:15]

<Renno> by
not static you mean since I free the buffer and reallocate and
redraw to the new one?
L203[02:35:30]

<Renno>
isn't that what makes it clean?
L204[02:35:41]

<RedstoneParkour> just the fact that it
gets updated
L206[02:36:26]

<Renno>
already looking at that
L207[02:36:31]

<RedstoneParkour> section "Budget and
Energy Costs"
L208[02:37:14]

<Renno> so
what should I do different then? doing a buffer per widget is not
reliably scalable
L209[02:37:31]

<RedstoneParkour> well
L210[02:37:49]

<Renno> use
the same buffer over and over without freeing it or?
L211[02:38:10]

<RedstoneParkour> well if its a
framebuffer it still gets modified
L212[02:38:19]

<RedstoneParkour> so it still gets
dirty
L213[02:38:51]

<RedstoneParkour> i'll be taking a
text input as an example
L214[02:39:15]

<RedstoneParkour> all text inputs would
share one buffer
L215[02:39:44]

<RedstoneParkour> that buffer contains
most common characters, with both the focused and unfocused
background colors
L216[02:40:41]

<RedstoneParkour> then each text input
bitblts from that buffer to the screen, character by
character
L217[02:41:12]

<RedstoneParkour> yes this sounds
expensive, but clean bitblts are *really* cheap
L218[02:41:34]

<Renno> I
don't see the gain
L219[02:42:14]

<Renno> you
say buffer needs to be clean, but by deallocating and reallocating
it cleans it, but this is a problem? but then you say it needs to
be static???
L220[02:42:28]

<Renno>
where's the gain
L221[02:42:31]

<Renno>
what's the trade?
L222[02:42:33]

<RedstoneParkour> deallocating and
reallocating doesnt clean it
L223[02:42:57]

<RedstoneParkour> or rather, after
reallocating you have to rewrite the contents to the buffer
L224[02:42:59]

<Renno> I
could not imagine another way of cleaning it
L225[02:43:08]

<RedstoneParkour> so it becomes
dirty
L226[02:43:37]

<Renno> at
this point I think it would be faster for you to make a pull
request or just show me code
L227[02:43:41]

<Renno>
😂
L228[02:44:11]

<RedstoneParkour> i dont have the
code
L229[02:44:22]

<Renno>
what would the code do differently than it does now
L230[02:44:33]

<RedstoneParkour> and it'd be a
pretty big rewrite
L231[02:45:04]

<RedstoneParkour> so i think its better
for me to just write my own gui library
L232[02:45:09]

<RedstoneParkour> that does that
L233[02:45:16]

<RedstoneParkour> and yours doesnt do
that
L234[02:45:28]

<Renno> I
dont understand what you're going for here
L235[02:45:46]

<Renno> my
best guess is more FPS but from my understanding the FPS is limited
to like 20
L236[02:45:51]

<Renno> 20
in a perfect world
L237[02:46:09] <Corded> >
<Renno> my best guess is more FPS but from my understanding
the FPS…
L238[02:46:09]

<RedstoneParkour> well
L239[02:46:19]

<RedstoneParkour> i was looking for a gui
library to use
L240[02:46:25]

<Renno> is
there some issue significant enough that you would actually need to
make a full custom gui library for something?
L241[02:46:32]

<RedstoneParkour> and i tried out your
demo program
L242[02:47:07]

<Renno> ngl
I don't remember the demo program, I haven't updated it
in a long time so it may be partially broken and/or not the best
example
L243[02:47:24]

<Renno> but
as you were saying?
L244[02:47:48]

<RedstoneParkour> and it had a bit of
input latency
L245[02:48:10]

<RedstoneParkour> and also the animation
for the dropdown menu is really slow
L246[02:48:21]

<Renno>
iirc dropdown menu speed is configurable
L247[02:48:38]

<Renno>
input latency largely depends on if you're playing on a
server
L248[02:48:49] <Corded> >
<Renno> input latency largely depends on if you're
playing on a ser…
L249[02:48:50]

<RedstoneParkour> it was a singleplayer
world
L250[02:49:09]

<Renno> I
basically always have some latency with text input and OC
L251[02:49:18]

<Renno>
it's noticeably slow even in the terminal in SP
L252[02:49:34]

<RedstoneParkour> odd
L253[02:49:39]

<RedstoneParkour> i don't have
that
L254[02:49:49]

<Renno>
only time I don't is in ocelot really
L255[02:50:20]

<Renno> so
dropdown menu speed too slow and input delay?
L256[02:50:32]

<Renno> is
enough for a whole library rewrite or the creation of a whole
library?
L257[02:51:19]

<RedstoneParkour> and also i kind of want
to make a gui library myself
L258[02:51:22]

<Renno> I
mean I hear you on the text input, that thing drove me crazy, if
there is a significant issue I'm all ears and I'll try to
fix it
L259[02:51:26]

<RedstoneParkour> 😛
L260[02:51:32]

<Renno>
that's what I was thinking
L261[02:51:52]

<Renno>
it's hell
L262[02:52:51]

<Kristobear38> @RedstoneParkour the thing
is: I think you will still get 20TPS by just having a single
buffer, writing everything there and bitblting it to the
screen
L263[02:53:28]

<RedstoneParkour> one moment
L264[02:53:42] <Corded> >
<RedstoneParkour> if i'm reading your code correctly it
uses a framebuffer th…
L265[02:53:42]

<RedstoneParkour> this
L266[02:53:58]

<RedstoneParkour> although the 4 budget is
probably 2
L267[02:54:40]

<Kristobear38> What's
bitbltcost?
L268[02:54:52]

<RedstoneParkour> see the end of the oc
config
L269[02:55:14]

<Kristobear38> What's the default,
I'm on my phone rn
L270[02:55:28]

<RedstoneParkour> default is 0.5 *
2^tier
L272[02:56:03]

<RedstoneParkour> which according to the
comments is 0.5 for tier 1, 1 for tier 2 and 4 for tier 3
L273[02:56:20]

<Kristobear38> Uhhhh
L275[02:56:26]

<Renno>
what's happening in this?
L276[02:56:34]

<Kristobear38> Isn't this some kind
of scaling factor?
L277[02:56:41]

<RedstoneParkour> yes
L278[02:57:20]

<RedstoneParkour> the 4 budget cost is
probably a mistake
L279[02:57:31]

<Renno>
mistake in your calculation or?
L280[02:57:40]

<RedstoneParkour> mistake in the
comments
L281[02:57:50]

<Renno> I
mean ideally programs would run at 10 fps and the other half of the
time would be os.sleep for event pulls
L282[02:58:29]

<RedstoneParkour> if your drawing takes
less than 1.5 budget then you can run at 20 fps if im right
L283[02:58:43] <Corded> >
<RedstoneParkour> so the bitblt always takes `bitbltCost *
(src.getWidth * sr…
L284[02:58:43]

<Kristobear38> I think I know where in the
code call cost was calculated for blitting but I'd have to get
on my laptop to find it
L285[02:58:57]

<RedstoneParkour> yeah i found it
L286[02:59:41] <Corded> >
<RedstoneParkour> if your drawing takes less than 1.5 budget
then you can run…
L287[02:59:41]

<Renno> but
when do you have the time for handling other events in that 1
second if you're spending all 20 ticks updating the
screen..?
L288[03:01:04]

<RedstoneParkour> although
L289[03:01:22]

<RedstoneParkour> why are we continually
updating even when its not needed
L290[03:02:31] <Corded> >
<Renno> but when do you have the time for handling other
events in …
L291[03:02:32]

<RedstoneParkour> drawing takes less than
a tick
L292[03:02:35]

<Renno>
making it change based is pretty hard
L293[03:03:38] <Corded> >
<Renno> making it change based is pretty hard
L294[03:03:38]

<RedstoneParkour> i've managed that
once i can probably do it again
L295[03:03:55]

<Renno> its
especially hard if you have layers
L296[03:04:17]

<Renno> and
the ability for gui objects to have child objects
L297[03:05:02] <Corded> >
<RedstoneParkour> drawing takes less than a tick
L298[03:05:02]

<Renno>
isn't that based on how much you're drawing (the buffer
size)?
L299[03:05:17]

<RedstoneParkour> not for clean
bitblts
L300[03:05:27]

<Renno> you
still haven't differentiated between clean and dirty
L301[03:05:31]

<Renno> and
how clean is good and how to make it clean
L302[03:05:41]

<RedstoneParkour> clean means unmodified
since last bitblt to screen
L303[03:05:52]

<RedstoneParkour> and clean has a cost of
0.001
L304[03:06:06]

<Renno> how
can a state of being clean have a cost
L305[03:06:16]

<RedstoneParkour> clean bitblts*
L306[03:06:29]

<RedstoneParkour> or better: bitblts from
a clean buffer
L307[03:06:38]

<Renno> so
by clean
L308[03:06:42]

<Renno> you
just mean unchanged
L309[03:06:49]

<RedstoneParkour> yes
L310[03:07:37]

<Renno> I
mean I guess if you really need or want the speed
L311[03:08:05]

<Renno>
there will be a linear limitation if you do that
L312[03:08:11]

<Renno> the
limitation being the vram
L313[03:08:22]

<Renno>
yawl-e was made to create full suite systems
L315[03:08:51]

<Renno>
I've managed to get several hundred widgets shown on screen
and moving
L316[03:09:04]

<Renno>
granted the fps was like 5 or 6 or something with that many
L317[03:09:26]

<Renno> but
its 5 AM and my mind is failing to understand the tangible benefits
of what you're saying
L318[03:09:36]

<Renno> so
maybe you'll make your library and I'll see it one
day
L319[03:10:08]

<Renno>
quad327 is that a simulated eeprom testing environment as an
application in gmux?
L320[03:10:11]

<RedstoneParkour> yeah its probably best
for you to sleep then
L321[03:10:32]

<RedstoneParkour> if you can
L322[03:12:33]

<Renno> If
I see your library and it's noticeably better maybe I'll
take the time to upgrade yawle
L323[03:13:36] <quad327> not an actual
application, just a script that can make eeprom running
L324[03:30:11]

<Renno>
What is it trying to emulate?
L325[04:24:32] <Corded> >
<RedstoneParkour> i've managed that once i can probably
do it again
L326[04:24:33]

<Renno>
Insomnia strikes again, anyhow I think I understand now what you
were saying. It would be much more suited for creating smaller and
simpler GUIs without the features of gui object children &
layering
L327[04:25:17]

<Renno>
Kind of like the libforms gui lib on the hel package manager
L329[04:28:26] <quad327> a blank computer,
like micro controller
L330[04:30:41] *** Joins: sam_
(~quassel@180.150.112.105) sam_
L333[05:23:31]

<Spider
EveryOS> %tonkout
L334[05:23:33] <MichiBot> Awesome! Spider
EveryOS! You beat RedstoneParkour's previous record of 2
hours, 3 minutes and 14 seconds (By 57 minutes and 37 seconds)! I
hope you're happy!
L335[05:23:34] <MichiBot> Spider EveryOS
has stolen the tonkout! Tonk has been reset! They gained 0.003 tonk
points! plus 0.002 bonus points for consecutive hours! (Reduced to
50% because stealing) Current score: 1.33254. Position #2 Need
0.04948 more points to pass CompanionCube!
L337[05:24:04]

<Spider
EveryOS> That's pretty silly (:
L338[05:24:30]

<RedstoneParkour> %sip
L339[05:24:36] <MichiBot> You drink a
thick titanium potion (New!). RedstoneParkour hears a train whistle
in the distance.
L340[05:31:44] ⇦
Quits: Pokey (~pokey@178.17.251.39) (Ping timeout: 190
seconds)
L341[05:34:13]
⇨ Joins: Pokey (~pokey@178.17.251.39)
L342[05:39:16] <Saphire> quad327:
whoathat's cool
L343[05:39:47] <Saphire> ...I desperately
need to port OpenCOmputers terminal to new version, with CC api for
it
L344[05:49:31]

<Vaur>
%sip
L345[05:49:34] <MichiBot> You drink an
oxidised weather potion (New!). The next remote Vaur looks for is
extra hard to find.
L346[08:15:56]

<Ocawesome101> Quad327: dang, that's
cool
L347[08:16:14]

<Ocawesome101> How responsive is window
dragging? I spent a bunch of time building a system for that and
never used it
L348[08:16:49]

<Ocawesome101> @RedstoneParkour @Renno you
can get acceptable performance redrawing an entire buffer sized
window I think I posted a demo here
L349[08:17:52] <Corded> >
<Ocawesome101> more gpu buffer playing - this time i went
for making drags…
L350[08:17:52]

<Ocawesome101> Aha here we are
L351[08:19:06] <quad327> about 0.3 second
delay, and it will be laggy if a lot of events happens, but
acceptable for me
L352[08:23:13] <Corded> >
<Ocawesome101> Aha here we are
L353[08:23:13]

<RedstoneParkour> yeah i'm thinking
it can get even faster
L354[08:44:54]

<Vaur>
%tonk
L355[08:44:56] <MichiBot> Wow! Vaur! You
beat Spider EveryOS's previous record of <0 (By 3 hours,
21 minutes and 22 seconds)! I hope you're happy!
L356[08:44:57] <MichiBot> Vaur's new
record is 3 hours, 21 minutes and 22 seconds! Vaur also gained
0.00336 tonk points for stealing the tonk. Position #3. Need
0.21587 more points to pass Spider EveryOS!
L357[08:59:25] *** Joins: Hawk777
(~Hawk777@2001:569:7cae:7e00:4926:160f:d10d:4c45) Hawk777
L358[09:00:29]
⇨ Joins: TheDogOfChaos
(~Thunderbi@2a0a:ef40:b3d:5301:4534:7058:8d21:56c)
L359[09:01:17]

<Vaur>
%sip
L360[09:01:19] <MichiBot> You drink an
nth-dimensional mithril potion (New!). Vaur turns into a spice
turtle toad until they sneeze.
L361[09:08:15] <Amanda> %splash
@Forecaster with mutable mithril potion
L362[09:08:17] <MichiBot> You fling a
mutable mithril potion (New!) that splashes onto @Forecaster.
@Forecaster turns into an emerald water girl until they say the
word "Mew".
L363[09:33:38] <Amanda> To The
Enclosure!
L364[09:46:45] *
Amanda orders MichiBot some %soup for room-service
L365[09:46:47] <MichiBot> Waiter!!
Waiter!! Theres voter id powered by javascript and AWS Lambda in my
soup!
L367[10:13:25]

<Ocawesome101> quad327: do you use the
openos process api or your own custom process loop?
L368[10:17:42] <quad327> both
L370[10:21:33]

<Ocawesome101> nice
L373[11:24:11] ⇦
Quits: quad327 (~user@2602:ffe4:8:52de:828:3a9:2769:3aa2) (Ping
timeout: 198 seconds)
L374[11:28:57]

<RedstoneParkour> %help
L376[11:34:44]

<RedstoneParkour> hmm
L377[11:34:50]

<RedstoneParkour> %syntax tell
L378[11:34:50] <MichiBot>
RedstoneParkour: %tell Nick:string Message:string
L379[11:36:13]

<RedstoneParkour> huh so michibot *does*
have a memo system
L380[11:36:15]

<RedstoneParkour> good to know
L381[12:23:11]

<Vaur>
%tonkout
L382[12:23:13] <MichiBot> Awesome! Vaur!
You beat your own previous record of 3 hours, 21 minutes and 22
seconds (By 16 minutes and 54 seconds)! I hope you're
happy!
L383[12:23:15] <MichiBot> Vaur has tonked
out! Tonk has been reset! They gained 0.003 tonk points! plus 0.004
bonus points for consecutive hours! Current score: 1.12367,
Position #3 Need 0.20887 more points to pass Spider EveryOS!
L384[12:40:19]

<Vaur>
%sip
L385[12:40:21] <MichiBot> You drink a
glittery pink potion (New!). Vaur loses exactly a handful of
luck.
L386[12:40:28]

<RedstoneParkour> %sip
L387[12:40:30] <MichiBot> You drink a
shimmering octiron potion (New!). RedstoneParkour turns into a
moonstone turtle boy until an angel gets their wings.
L388[12:57:25] ⇦
Quits: ping (~uwu@femboy.me) (Quit: 🥕🐡)
L389[12:59:34]
⇨ Joins: ping (~uwu@femboy.me)
L390[13:18:49]

<Vaur>
%sip
L391[13:18:51] <MichiBot> You drink a
simulated aqua potion (New!). Vaur feels chill.
L392[13:34:54]

<Renno>
Very impressive work quad327
L393[15:22:53]
⇨ Joins: Twinsheet (~Twinsheet@178.172.176.11)
L394[15:23:23]
⇨ Joins: teseter (~teseter@186.102.169.146)
L395[15:23:35] *
teseter Hello
L396[15:23:42] <teseter> hi
L397[15:26:30] ⇦
Quits: teseter (~teseter@186.102.169.146) (Quit:
teseter)
L398[15:26:47] ⇦
Quits: Twinsheet (~Twinsheet@178.172.176.11) (Client
Quit)
L399[15:30:02]
⇨ Joins: chanesaw
(~chanesaw@119-18-14-36.77120e.mel.nbn.aussiebb.net)
L400[15:30:12]

<chanesaw>
chanesaw
L401[15:32:54] <chanesaw> what would be
the best colouring scheme for the OC IRC client
L402[15:35:06]

<Forecaster> Blue.
L403[15:35:35] <chanesaw> if all the
messages are blu,e it is going to be hard to read
L404[15:36:06]

<Forecaster> but blue is the best color,
objectively
L405[15:36:09] <chanesaw> I was thinking
about assigning a hash-based colour to each person, then using
gpu.setForeground to change their messages when rendered
L406[15:36:18] <chanesaw> Truth nuke
L407[15:45:10] <Izzy> chanesaw: I think
there's actually a standard for colouring names, but I
don't remember whether it's IRCv3 or XMPP
L408[15:45:56] <chanesaw> aparrently using
ANSI codes in nicknames
L409[15:46:40] <chanesaw> I guess that
still leaves you in the dark as to people without coloured
nicknames
L410[15:48:01] <Izzy> no like, a method
that consistently results in the same colours for the same
nicks
L411[15:48:45] <chanesaw> then hash the
username and use that as some kind of ID
L412[15:57:40] ⇦
Quits: chanesaw
(~chanesaw@119-18-14-36.77120e.mel.nbn.aussiebb.net) (Remote host
closed the connection)
L413[15:57:48] ⇦
Quits: Vexatos
(~Vexatos@p200300eaef052c002427710bb7fb2d07.dip0.t-ipconnect.de)
(Quit: Insert quantum chemistry joke here)
L414[16:12:47]

<Forecaster> %tonk
L415[16:12:48] <MichiBot> Yippee!
Forecaster! You beat Vaur's previous record of <0 (By 3
hours, 49 minutes and 34 seconds)! I hope you're happy!
L416[16:12:49] <MichiBot>
Forecaster's new record is 3 hours, 49 minutes and 34 seconds!
Forecaster also gained 0.00383 tonk points for stealing the tonk.
Position #5. Need 0.08649 more points to pass
RedstoneParkour!
L417[16:13:05]

<chanesaw>
tonk
L418[16:36:11]
⇨ Joins: TheNormalGuy
(~TheNormal@186.102.169.146)
L419[16:36:23] <TheNormalGuy> is this a
normal server?
L420[16:36:49] <TheNormalGuy> there are a
lot of people here...
L421[16:38:13] <CompanionCube> well this
isn't a server
L422[16:38:25] <CompanionCube> it's
connected to a discord server, but isn't one itself.
L423[16:38:40] <TheNormalGuy> oh ok
L424[16:38:59] <TheNormalGuy> so
everything i talk here is transferred into the discord
server?
L425[16:39:05] <CompanionCube> yes, and
vice versa.
L426[16:39:45] <TheNormalGuy> how is the
discord server called?
L427[16:40:01] <CompanionCube>
%discord
L429[16:40:11] <TheNormalGuy> oh
L430[16:41:48] <TheNormalGuy> and how is
this os still alive today i am playing minecraft and using
opencomputers
L431[16:42:40] <Amanda> "this
os"?
L432[16:42:47] <TheNormalGuy> yeah
mineos
L433[16:42:59] <TheNormalGuy> for
opencomputers mod
L434[16:43:12] <Amanda> No idea how mineos
lives, considering you need a supercomputer to even use it. I
don't use it when I play OC
L435[16:43:19] <CompanionCube> OSes for
ingame computers don't need updates nearly as much as actual
OSes, so...
L436[16:43:46] <Amanda> This is an IRC
channel for OC itself, not specifically MineOS
L437[16:43:48] <TheNormalGuy> what?
L438[16:44:21] <TheNormalGuy> ok
L439[16:44:37] <CompanionCube> yeah,
MineOS was made by people who aren't and i don't think
have ever been here?
L440[16:44:45] <TheNormalGuy> so it doesnt
needs to be updated right?
L441[16:45:29] <TheNormalGuy> it was been
reviewed in March 2019
L442[16:45:44] <TheNormalGuy> by a random
youtuber
L443[16:45:45] <CompanionCube> only if you
even up encountering annoying/problematic bugs that may or may not
exist, i wouldn't know.
L444[16:45:56] <TheNormalGuy> they
exist
L445[16:46:06] <TheNormalGuy> VK doesnt
works
L446[16:46:25] <TheNormalGuy> idk
why
L447[16:46:46] <CompanionCube> wait,
someone attempted an in-game social media client? huh.
L448[16:47:12] <TheNormalGuy> it
downloaded when doing installaliton
L449[16:47:58] <TheNormalGuy> it doesnt
works because of a worng line of code from system.lua
L450[16:48:08] <TheNormalGuy> *wrong
L451[16:49:16] <TheNormalGuy> so VK doesnt
works
L452[16:49:33] <CompanionCube> if you know
what's wrong, you could always do it yourself :)
L453[16:50:31] <TheNormalGuy> i dont know
how to program
L454[16:50:36] <TheNormalGuy> LUA
5.3
L455[16:50:55] <TheNormalGuy> i am
noob
L456[16:50:58] <CompanionCube> %pil
L458[16:51:00] <TheNormalGuy> at
programming
L459[16:51:26] <TheNormalGuy> im very lazy
to even learn that
L460[16:51:34] <TheNormalGuy> idk
why
L461[16:52:50] <Amanda> We're not
able to help with MineOS, because pretty much the only people who
use it, are random kids who comes in from the MineOS IRC client
every so often asking for help. None of the regulars use it.
L462[16:53:37] <Amanda> %choose dinner
time?
L463[16:53:37] <MichiBot> Amanda: Yes! Do
it now!
L464[16:53:38] ⇦
Quits: TheNormalGuy (~TheNormal@186.102.169.146) (Remote host
closed the connection)
L465[16:54:00]
⇨ Joins: TheNormalGuy
(~TheNormal@186.102.169.146)
L466[16:54:23] <TheNormalGuy> my system
didnt have enough memory sorry for disconnecting
L467[16:54:39] ⇦
Quits: TheNormalGuy (~TheNormal@186.102.169.146) (Client
Quit)
L468[16:54:50] <Amanda> And that's
why none of the regulars use MineOS -- and they're gone
again
L469[16:59:35] <Izzy> I want to use that
memory for actual purposes
L470[16:59:47] <Izzy> like exporting a
giant storage system over the network
L471[17:03:54]

<Brisingr
Aerowing>
www.reddit.com/r/Wellthatsucks/comments/1lybi8x/concrete_overflowed_out_of_the_toilet/
L472[17:04:02]

<Brisingr
Aerowing> ...
L473[17:04:06]

<Brisingr
Aerowing> Dammit Discord
L475[17:04:25] <CompanionCube> oh no
L476[17:04:38]

<Brisingr
Aerowing> That contractor is done for.
L477[17:04:54] <CompanionCube> imagine if
you tried to sit on that shitter
L478[17:18:30]
⇨ Joins: teseter (~teseter@186.102.169.146)
L479[17:19:20] ⇦
Quits: teseter (~teseter@186.102.169.146) (Quit:
teseter)
L480[17:21:05]

<chanesaw>
doesn't MineOS always use the most RAM it can
L481[17:21:23]

<chanesaw>
I remember trying it on 2x and 4x sticks of RAM, it used the same
percentage
L482[17:23:28]

<Renno> idk
how mineos even runs honestly
L483[17:23:32]

<Renno> its
code is huge
L484[17:24:36]

<chanesaw>
I don't get the poit
L485[17:24:40]

<chanesaw>
* point either
L486[17:39:35] ⇦
Quits: TheDogOfChaos
(~Thunderbi@2a0a:ef40:b3d:5301:4534:7058:8d21:56c) (Quit: me when i
hit ALT+F4)
L487[18:04:17]
⇨ Joins: TheNormalGuy
(~TheNormal@186.102.169.146)
L488[18:04:28] ⇦
Quits: TheNormalGuy (~TheNormal@186.102.169.146) (Client
Quit)
L489[18:23:08]

<lunar_sam>
why would i use mineos when i could just use anything else
L490[18:23:16] <Corded> >
<chanesaw> I don't get the point either
L491[18:23:16]

<Spider
EveryOS> I think the main purpose is looking pretty
L492[18:23:20]

<chanesaw>
because you want to use your RAM
L493[18:23:25]

<lunar_sam>
i mean clearly the solution here is i need to make something even
more like linux for OC
L494[18:49:32] <Corded> > <surface
to air missile> i mean clearly the solution here is i need to
make somethin…
L495[18:49:32]

<chanesaw>
GRand Unified Bootloader
L496[18:52:15]

<chanesaw>
But that is just OpenBIOS or whatever it was called
L497[19:52:13]
⇨ Joins: quad327
(~user@2602:ffe4:8:52de:828:3a9:2769:3aa2)
L498[20:10:39] <CompanionCube> did you
know OpenBIOS is the name of an actual firmware thing QEMU can use
:p
L499[20:13:37] <CompanionCube>
%tonkout
L500[20:13:40] <MichiBot> Fudge!
CompanionCube! You beat Forecaster's previous record of 3
hours, 49 minutes and 34 seconds (By 11 minutes and 15 seconds)! I
hope you're happy!
L501[20:13:41] <MichiBot> CompanionCube
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: 1.39052. Position #1
L502[20:13:43] <CompanionCube>
%drink
L503[20:13:44] <MichiBot> You drink an
nth-dimensional gold potion (New!). When CompanionCube drinks the
last drop, a bucket of water materializes above their head and
dumps its contents over them. CompanionCube avoids the bucket and
it's content! (19 vs DC 8)
L504[20:23:55] <quad327> do anyone has
graphical programs?
L505[20:27:12]
⇨ Joins: dez
(~dez@syn-107-009-160-169.res.spectrum.com)
L506[20:27:26] ⇦
Quits: dez (~dez@syn-107-009-160-169.res.spectrum.com) (Client
Quit)
L507[20:41:58] <Amanda> I've written
a few for kittenos neo, but not really for openos
L508[20:43:29] ⇦
Quits: Hawk777 (~Hawk777@2001:569:7cae:7e00:4926:160f:d10d:4c45)
(Quit: Leaving.)
L510[21:14:20]

<Spider
EveryOS> %sip %tonk
L511[21:14:22] <MichiBot> You drink a
liquid jumbonium potion (New!). Spider EveryOS feels a strong urge
to recycle the potion bottle.
L512[21:14:23] <MichiBot> Awesome! Spider
EveryOS! You beat CompanionCube's previous record of <0
(By 1 hour and 43 seconds)! I hope you're happy!
L513[21:14:24] <MichiBot> Spider
EveryOS's new record is 1 hour and 43 seconds! Spider EveryOS
also gained 0.00101 tonk points for stealing the tonk. Position #2.
Need 0.05697 more points to pass CompanionCube!
L514[22:03:16] ⇦
Quits: quad327 (~user@2602:ffe4:8:52de:828:3a9:2769:3aa2) (Remote
host closed the connection)
L515[22:03:34]
⇨ Joins: quad327
(~user@2602:ffe4:8:52de:8ce:321e:408a:8df3)
L516[22:06:24] ⇦
Quits: sam_ (~quassel@180.150.112.105) (Ping timeout: 190
seconds)
L517[22:14:11]

<Renno>
quad327 what kind of graphical programs are you looking for?
L518[22:18:45]
⇨ Joins: sam_ (~quassel@180.150.112.105)
L519[22:38:28]

<Spider
EveryOS> %tonkout
L520[22:38:29] <MichiBot> Darn it! Spider
EveryOS! You beat your own previous record of 1 hour and 43
seconds (By 23 minutes and 22 seconds)! I hope you're
happy!
L521[22:38:30] <MichiBot> Spider EveryOS
has tonked out! Tonk has been reset! They gained 0.001 tonk points!
Current score: 1.33455, Position #2 Need 0.05597 more points to
pass CompanionCube!
L522[22:38:32]

<Spider
EveryOS> %sip
L523[22:38:33] <MichiBot> You drink a
freezing black potion (New!). A genie appears out of the empty
bottle, turns it into a pie, then vanishes.
L524[22:40:12] <quad327> Anything that
uses standard component api or libs based on it, for testing
compatibility.
L525[22:53:12] *** Joins: Hawk777
(~Hawk777@2001:569:7cae:7e00:e79b:6d99:2a4e:15e5) Hawk777
L526[23:19:15] *** Joins: Vexatos
(~Vexatos@p200300eaef0d0d00586545895488fdb7.dip0.t-ipconnect.de)
Vexatos
L527[23:19:16]
zsh sets mode: +v on Vexatos
L528[23:20:31]

<Vaur>
%sip
L529[23:20:33] <MichiBot> You drink a
2-dimensional rubium potion (New!). Tonk moved back 1 hour. (Rem.
uses: 0)
L530[23:26:29]

<Forecaster> %tonk
L531[23:26:31] <MichiBot> Boom!
Forecaster! You beat Spider EveryOS's previous record of
<0 (By 1 hour, 48 minutes and 1 second)! I hope you're
happy!
L532[23:26:32] <MichiBot>
Forecaster's new record is 1 hour, 48 minutes and 1 second!
Forecaster also gained 0.0018 tonk points for stealing the tonk.
Position #5. Need 0.08469 more points to pass
RedstoneParkour!