<<Prev Next>> Scroll to Bottom
Stuff goes here
L1[00:00:34]
<Aggressive
Post-It Note> You can do without if you connect the power
source directly to the computer but wires are usually quite a nice
thing to have
L3[00:03:15]
<Aggressive
Post-It Note> I was just thinking "wow how could they
bring themselves to write all that lua" and then I see it's
actually written in Rust hahaha
L4[00:03:48]
<Kristopher38> he actually started writing
it all in lua originally
L5[00:03:57]
<Kristopher38> but had to reimplement
mutexes and all
L6[00:04:25]
<Kristopher38> so he switched to running
it off-minecraft in the end
L7[00:07:57] <Hawk777> Haha I’m not the
biggest fan of Lua either; that’s why I wrote OC-Wasm—well, partly
that, and partly because I thought writing something like Rust
would be easy to port to OC2 once it arrives (swap out the hardware
layer, keep the business logic).
L8[00:08:05]
<Aggressive
Post-It Note> Every time I try to write something large in lua
I start to lose my mind because the language really wants me to
write in a procedural or OOP style but has no types
L9[00:08:39]
<Aggressive
Post-It Note> And so it becomes really strenuous to keep tabs
on what's going where and what attributes are in what object
L10[00:09:34]
<Aggressive
Post-It Note> I've found better success in using a functional
style that's more focused on passing simple structs around but Lua
is very verbose with the word `function() end` being a lambda and
that gets quite clunky as well
L11[00:10:05]
<Aggressive
Post-It Note> >Hawk777: Haha I’m not the biggest fan of Lua
either; that’s why I wrote OC-Wasm—well, partly that, …
L12[00:10:05]
<Aggressive
Post-It Note> Is that for OC2?
L13[00:10:10] <Hawk777> OC1.
L14[00:10:19]
<Aggressive
Post-It Note> Ooo really? That means I could use it
L15[00:10:21] <Hawk777> It’s an
architecture that runs Wasm.
L16[00:10:26]
<Aggressive
Post-It Note> Exciting!
L17[00:10:28] <Hawk777> Maybe; I thought
you were stuck on 1.10? Or was that someone else?
L18[00:10:42]
<Aggressive
Post-It Note> That was me, yes
L19[00:10:55] <Hawk777> You might be able
to backport it. I don’t have any interest in doing so myself.
L20[00:11:09]
<Aggressive
Post-It Note> I am willing to make sacrifices for Rust
L22[00:12:55] <Hawk777> IMO not a lot of
point writing something like that for OC2, since OC2 runs native
code, so I’d just compile my Rust (or whatever else) to RISC-V
machine code instead.
L23[00:13:41]
<lunar_sam>
i have yet to make zorya for OC2 lmao
L24[00:14:23]
<Aggressive
Post-It Note> I'm not too read-up on OC2 so I don't know the
details. I just knew it was going to make it easier to use other
languages with OC
L25[00:15:07] <Hawk777> It’s a RISC-V
emulator. It runs Linux.
L26[00:15:21] <Hawk777> It communicates
with components via something that looks vaguely like a serial port
over which you shovel JSON.
L27[00:15:23]
<Aggressive
Post-It Note> On whose computer?
L28[00:15:25] <Hawk777> That’s about all I
know.
L29[00:15:28] <Hawk777> Your own, running
Minecraft.
L30[00:15:35]
<Aggressive
Post-It Note> How do servers work then?
L31[00:15:35] <Hawk777> The RISC-V emulator
is inside the Minecraft mod AFAIK.
L32[00:15:47] <Hawk777> Presumably the
emulator runs on the server, just like in OC1 where the Lua VM
does?
L33[00:15:52]
<Aggressive
Post-It Note> Do people "own" computers and take
responsibility for them?
L34[00:16:01]
<Aggressive
Post-It Note> Oh I see
L35[00:16:08]
<Aggressive
Post-It Note> That sounds scary from a security point of
view
L36[00:16:13] <Hawk777> Why?
L37[00:16:37]
<Aggressive
Post-It Note> I guess if it's a VM then all the sandboxing is
already handled
L38[00:16:54] <Izaya> no scarier than
OC1
L39[00:16:54] <Hawk777> TBH it’s probably
*more* secure than OC1, where Lua was run in a library written in
native code. I *think* the OC2 RISC-V emulation is written in Java,
which means no e.g. buffer overflows out of your fake memory and
stuff.
L40[00:17:25] <Amanda> %choose halucinate
or spaaaace
L41[00:17:25] <MichiBot> Amanda:
halucinate'os, for a complete breakfast!
L42[00:17:39] <Amanda> Hrm. It's rather
late for breakfast, but time is meaningless anyway, so okay
L43[00:17:53] *
Amanda flops down around Elfi with a bowl of
halucinate'os
L44[00:19:01] <Izaya> speaking of
"surely someone didn't do all that in Lua"
L46[00:19:17] <lunar_sam> god
L47[00:19:35] <lunar_sam> that reminds me,
i stil have yet to make my awesomewm interface
L48[00:19:43] <lunar_sam> i want the funny
three buttons at the bottom like android
L49[00:20:16] <Izaya> I may yet bludgeon a
back button into software
L50[00:20:35] <lunar_sam> just make it
send, what
L51[00:20:45] <lunar_sam> mouse 4?
L52[00:20:45] <lunar_sam> or was it mouse
5
L53[00:20:55] <Izaya> that won't work for
everything because software sucks
L54[00:21:11] <lunar_sam> the back button
doesn't always work in android
L55[00:21:22] <Izaya> going to have a
complicated setup for making some combination of fake keypresses,
mouse buttons, and ghost clicks
L56[00:21:27] <lunar_sam> bad software
exists
L57[00:21:35] <Izaya> as in "press
'back' to click on the top right corner"
L58[00:21:40]
<Aggressive
Post-It Note> Mouse5 I think
L59[00:22:01]
<Aggressive
Post-It Note> Mouse4 is "go forward again"
L60[00:22:16] <lunar_sam> anyways, i might
do some fuckery with virtual outputs and whatnot
L61[00:22:20]
<Aggressive
Post-It Note> ...Now I'm doubting myself
L63[00:22:55]
<Aggressive
Post-It Note> I have been vindicated
L65[00:23:43]
<Aggressive
Post-It Note> "Error: attempted to call a nil
value"
L67[00:24:13]
<Aggressive
Post-It Note> Now you get to crawl across 10,000 lines of code
to find the mistake :)))
L68[00:24:20]
<Aggressive
Post-It Note> It could be literally anywhere because
tables
L69[00:24:27] <Izaya> can't relate
tbh
L70[00:24:54] <Izaya> the errors are
usually suitably specific IME
L72[00:25:04]
<Aggressive
Post-It Note> Ah that's good
L73[00:25:20] <lunar_sam> wonder why i'm
being blasted by I/O usage
L74[00:25:24]
<Aggressive
Post-It Note> I think it's just because I get too excited with
the way I use tables
L75[00:25:40] <Izaya> OOP is best used in
small doses :)
L76[00:26:08]
<Aggressive
Post-It Note> Hahaha
L77[00:26:19] <lunar_sam> lol
L78[00:26:26]
<Aggressive
Post-It Note> Those error messages look entertaining
L79[00:26:32] <lunar_sam> Izaya: tsuki on
"""real""" hardware soon
L80[00:26:40] <lunar_sam> by real i mean
VMs
L81[00:26:58]
<Aggressive
Post-It Note> Everything is virtual
L82[00:26:59]
<Aggressive
Post-It Note> Nothing is real
L84[00:29:07] <lunar_sam> the real question
is: how will i pull off multi core madness
L85[00:29:27] <lunar_sam> ~also how will i
get Tsuki to run on my P3 machine~
L86[00:31:10]
<Aggressive
Post-It Note> With great trepidation and many long
nights?
L87[00:31:56] <lunar_sam> i don't have any
easy to work with video cars
L88[00:31:58] <lunar_sam> *cards
L89[00:32:23] <Izaya> serial port
L90[00:32:41] <lunar_sam> fair enough
L91[00:32:52] <lunar_sam> got uhhh
L92[00:32:54] <lunar_sam> three of
those
L93[00:32:55] <lunar_sam> lol
L94[00:47:51] ⇦
Quits: Vexatos (~Vexatos@port-92-192-6-121.dynamic.as20676.net)
(Quit: Insert quantum chemistry joke here)
L95[00:52:32] ⇦
Quits: Hawk777 (~chead@2607:c000:8279:ac00:75fe:8174:648e:d404)
(Quit: Leaving.)
L96[01:21:16] ⇦
Quits: Izaya (~izaya@210.1.218.92) (Read error: Connection reset by
peer)
L97[01:25:55]
<Ocawesome101> social security: A national
number for a people that doesn't want one, on an id card that fails
at id, given to everyone, except when it isn't, for a program
that's universal, except when it's not.
L98[01:26:00]
<Ocawesome101> -- CGP Grey
L99[01:26:41] ⇨
Joins: Izaya (~izaya@210.1.218.92)
L101[03:20:36]
<sapphicfettucine> after way too much
work
L102[03:20:44]
<sapphicfettucine> OS-less rendering in
OC2
L103[03:29:58]
<ThePiGuy24> nice
L104[04:13:46] *
Amanda curls up around Elfi, meows happy facts about
squirrels
L105[04:13:58] *
Amanda zzzmews
L106[04:14:01] <Amanda> Night nerds
L107[04:16:00]
<sapphicfettucine> gnight!
L108[04:52:39] ⇦
Quits: Michiyo (~Michiyo@50.38.53.215) (Ping timeout: 186
seconds)
L109[04:54:52]
<DaComputerNerd> OC2 seems cool
L110[05:00:37]
<DaComputerNerd> %tonk
L112[05:00:53]
<Daviana>
isnt OC2 like suuuuuper early in development tho
L113[05:01:38]
<DaComputerNerd> Yeah
L114[05:02:54]
<DaComputerNerd> %tonk C6ED6
L115[05:02:55] <MichiBot> Blast!
DaComputerNerd! You beat Michiyo's previous record of 6 hours, 36
minutes and 34 seconds (By 7 minutes and 19 seconds)! I hope you're
happy!
L116[05:02:56] <MichiBot> DaComputerNerd's
new record is 6 hours, 43 minutes and 54 seconds! DaComputerNerd
also gained 0.00084 (0.00012 x 7) tonk points for stealing the
tonk. Position #9. (Overtook CompanionCube) Need 0.00068 more
points to pass nil!
L117[05:03:28]
<DaComputerNerd> Could have sworn I've
done that before. I guess it probably reset at some point
L118[05:08:08]
<Daviana>
still sad that no opencomputers update anymore
L119[05:10:31]
<sapphicfettucine> >Daviana: isnt OC2
like suuuuuper early in development tho
L120[05:10:31]
<sapphicfettucine> it's pretty usable by
now honestly
L121[05:10:38]
<sapphicfettucine> still very alpha but
you can do a fair bit already
L122[05:10:44]
<Daviana>
yeah but not anywhere near as much content as OC1
L123[05:10:53]
<Daviana>
plus i shamefully do not understand linux
L124[05:17:09]
<DaComputerNerd> I did have a couple
questions on it
L125[05:17:10]
<Daviana>
so apparently some guy named fnuecke last made a commit on dec 27th
2021 on the github
L126[05:17:14]
<Daviana>
for 1.12.2
L127[05:17:36]
<Daviana>
sad, i really liked opencomputers and i wanted to bring it to my
1.16 pack, but it's looking less and less likely
L128[05:18:42]
<DaComputerNerd> I gather OC2 emulates a
RISC-V system. On looking into the architecture, I wondered about
what extensions for the instruction set are available
L129[05:19:03]
<Daviana>
yeah see that hurts my little brain
L132[05:19:22]
<DaComputerNerd> Ah nice
L133[05:19:25]
<Daviana> i
understood openos because it was lua, which is good for a simpleton
such as myself
L134[05:19:26]
<DaComputerNerd> I also wonder if and how
components can be accessed at that level
L135[05:19:44]
<sapphicfettucine> yes, with a bit of
work
L136[05:20:04]
<DaComputerNerd> Are they just mapped to a
part of the address space?
L137[05:20:44]
<sapphicfettucine> iirc, they're a VirtIO
console device
L138[05:21:11]
<sapphicfettucine> i'm working on it
slowly so if you want i can ping you when i have something to show
about interacting with the device api at the bare metal level
L139[05:21:46]
⇨ Joins: Michiyo (~Michiyo@50.38.53.215)
L140[05:21:46]
zsh sets mode: +o on Michiyo
L141[05:21:59]
<DaComputerNerd> Sure
L142[05:22:27]
<sapphicfettucine> but yeah, the layout is
that you have some base components as memory-mapped to the address
space - like the console and the projector
L143[05:22:57]
<sapphicfettucine> and others are mmap'ed
but specifically through the virtio specification which has it's
own set of behaviours
L144[05:59:52] <CompanionCube> Izaya: now
on scottish labour: a council candidate is none other than former
leader of the flippin orange order.
L145[06:00:05] <CompanionCube> Skye: Lizzy
^
L146[06:26:59] ⇦
Quits: lordpipe (~ba7888b72@66.109.211.50) (Ping timeout: 189
seconds)
L147[06:27:17]
⇨ Joins: lordpipe (~ba7888b72@66.109.211.50)
L148[06:27:22]
⇨ Joins: ben_mkiv
(~ben_mkiv@200116b81472cd00fe3497fffea975f2.dip.versatel-1u1.de)
L149[06:51:50]
<Bob> i
havent figured out yet how either the screen or the projector
work
L150[06:52:06]
<Bob> i've
seen there are additional `hvc` devices but so far never tried
anything
L151[07:06:37] ⇦
Quits: Thutmose (~Patrick@67.21.186.225) (Quit:
Leaving.)
L152[07:15:01]
<Ocawesome101> it might be interesting to
make an OS for OC2 that just runs Lua
L153[07:15:11]
<Ocawesome101> e.g. LuPi2 but for
OC2
L154[07:15:23]
<Ocawesome101> (and ideally with fewer
irritating heisenbugs)
L155[07:15:59] <CompanionCube> maybe
something lightereeight than a full kernel
L156[07:16:26]
<Ocawesome101> yeah, probably, though
memory restrictions are less of a concern
L157[07:24:19]
<Bob> tbh,
OpenOS in OC2
L158[07:24:24]
<Bob> thats
all i want to see
L159[07:24:38]
<Bob> maybe
some extentions amd C Lib abilities sure but still, base
OpenOS
L160[07:24:55]
<Bob>
altough to have fast component interaction and what not, C Libs
would still be used
L161[07:25:04]
<Bob> or
even better yet Run Lua ontop of some runtime
L162[07:27:32]
<sapphicfettucine> >Bob: i havent
figured out yet how either the screen or the projector work
L163[07:27:32]
<sapphicfettucine> it's a
framebuffer
L164[07:27:41]
<sapphicfettucine> on linux it's mapped to
/dev/fb0
L165[07:28:13] <CompanionCube> standard
fbdev, huh?
L166[07:28:28]
<sapphicfettucine> 640x480 rgb 565. just
write pixel data there and works like a charm
L167[07:28:35]
<sapphicfettucine> >CompanionCube:
standard fbdev, huh?
L168[07:28:36]
<sapphicfettucine> yeep
L169[07:29:15] <CompanionCube> inb4
revival of 2D accel for OC2 :p
L170[07:30:15]
<sapphicfettucine> my current testing is
just "can i get it to go faster by simply stripping out the
OS"
L171[07:37:48]
<Bob>
zamn
L172[07:38:07]
<Bob>
>CompanionCube: inb4 revival of 2D accel for OC2 :p
L173[07:38:07]
<Bob>
there's a PR that plans to add GPU acceleration to OC2, we might
get DOOM to run
L174[07:38:25]
<Bob> we
must get DOOM running on OC2
L175[07:38:47] <CompanionCube> virtio-gpu
or something else?
L176[07:38:56]
<sapphicfettucine> virtio gpu
L177[07:39:26]
<sapphicfettucine> it's on the sedna repo
iirc
L178[07:39:33] <CompanionCube> also can't
you just software render DOOM
L179[07:39:48] <CompanionCube> you never
said anything about performance
L180[07:39:48]
<sapphicfettucine> very likely
L181[07:40:13]
<Bob> that
too but still
L182[07:40:16]
<Bob> the
faster the better
L183[07:41:04]
<Forecaster> >DaComputerNerd: Could
have sworn I've done that before. I guess it probably reset at some
poi…
L184[07:41:05]
<Forecaster> We reset each newyears
L185[07:42:28]
<sapphicfettucine> someday i will perform
my evil plan
L186[07:42:33]
<sapphicfettucine> of running h264 on
oc2
L187[07:42:47]
<sapphicfettucine> it is technically
possible, compilation wise, but i need to up the default ram
sizes
L189[07:45:59]
<Bob>
>sapphicfettucine: of running h264 on oc2
L190[07:46:00]
<Bob>
plausible for small enough video sizes tbh
L191[07:46:44]
<sapphicfettucine> the problem is more 1.
speed 2. memory usage
L192[07:48:21]
<ThePiGuy24> i still have yet to mess
about with oc2
L193[07:48:26]
<ThePiGuy24> i probably should seems
fun
L194[07:48:40]
<ThePiGuy24> and seems to allow for more
cursed shit than oc1
L195[07:48:59]
<Bob> yeah,
use Rust :)
L196[07:50:13]
<sapphicfettucine> it 100% allows more
cursed shit it's great
L198[07:58:18]
<ThePiGuy24> >Bob: yeah, use Rust
:)
L199[07:58:18]
<ThePiGuy24> sorry i still have my dignity
xd
L200[07:58:38]
<ThePiGuy24> also why would i use rust
when i have c ;p
L201[07:59:10]
<sapphicfettucine> if you want using raw
pointers to feel like more of a thrill because of not using them
for most things?
L202[07:59:10]
<ThePiGuy24> i want to do cursed shit, i
want to mismanage my memory, i want to segfault
L203[07:59:37]
<Bob> can
we make OC2 kernel panic
L204[07:59:44]
<ThePiGuy24> probably
L205[07:59:49]
<sapphicfettucine> just don't put enough
ram in
L206[07:59:50]
<Bob>
escape the simulation
L207[08:00:06]
<sapphicfettucine> >ThePiGuy24: i want
to do cursed shit, i want to mismanage my memory, i want to
segfault
L208[08:00:06]
<sapphicfettucine> 🤝
L209[08:00:11]
<sapphicfettucine> i regularly do this in
rust
L210[08:00:24]
<Bob> i
have `unsafe` in my code
L211[08:00:38]
<sapphicfettucine> to quote a
friend,
L212[08:00:38]
<sapphicfettucine> > those who say you
should never use an `unsafe {}` block in rust are just jealous of
those who can
L213[08:00:49]
<ThePiGuy24> also rusts syntax bothers
me
L214[08:01:01]
<ThePiGuy24> and its annoyingly different
keywords
L215[08:01:16]
<sapphicfettucine> i like it because i
like functional languages but am too perpetually exhausted to
re-learn lisp
L216[08:01:31]
<sapphicfettucine> so it hits a nice
middle ground for me
L217[08:01:42]
<Bob> the
syntax isnt that bad
L218[08:01:45]
<Bob> i
dont see why all people hate it
L219[08:01:48]
<Bob> it
makes sense
L220[08:01:53]
<Bob> sure
the turbofish is a weird addition
L222[08:01:56]
<Bob> but
its perfectly inline
L223[08:02:03]
<Bob> we
can do the same lol
L224[08:02:09]
<sapphicfettucine> at least we can agree,
hopefully
L225[08:02:16]
<sapphicfettucine> that both it and
c
L226[08:02:27]
<sapphicfettucine> have in common being
better than golang syntaz
L227[08:02:31]
<sapphicfettucine> have in common being
better than golang syntax [Edited]
L228[08:02:40]
<ThePiGuy24> idk ive never touched
golang
L229[08:02:46]
<Bob>
golang lul
L230[08:02:51]
<Bob> we
have LuaJIT, no thanks
L231[08:02:57] *
CompanionCube locks sapphic in a haskell purely-functional
room
L232[08:03:13]
<ThePiGuy24> though one syntax i hate is
python, despite it being the language i use most
L233[08:03:32]
<ThePiGuy24> just, fuck indentation based
syntax, its horrible
L234[08:04:13]
<Bob> my
condolences
L235[08:04:16]
<Bob>
haskell isnt that had tbh
L236[08:04:30]
<Bob> at
least it isnt scheme
L237[08:04:32]
<Bob>
🤢
L238[08:04:46]
<ThePiGuy24> >CompanionCube: _locks
sapphic in a haskell purely-functional room_
L239[08:04:46]
<ThePiGuy24> tfw you lock up the entire
concept of lesbians
L240[08:05:27]
<sapphicfettucine> >CompanionCube:
_locks sapphic in a haskell purely-functional room_
L241[08:05:27]
<sapphicfettucine> i don my magical cape
and chant the magic words
L242[08:05:31]
<sapphicfettucine>
accursedUnutterablePerformIO
L243[08:05:31] <CompanionCube> locking up
abstract concepts is very haskell tbf
L244[08:06:20]
<sapphicfettucine> >Bob: at least it
isnt scheme
L245[08:06:20]
<sapphicfettucine> pouts in lisp
enjoyer
L246[08:07:02]
<sapphicfettucine> >CompanionCube:
locking up abstract concepts is very haskell tbf
L247[08:07:03]
<sapphicfettucine> yeah it is absolutely
haskell
L248[08:07:17] <CompanionCube> also oh no
i am defeated
L249[08:07:29]
<sapphicfettucine> > Yield not to its
blasphemous call! Flee traveller! Flee or you will be corrupted and
devoured!
L250[08:07:36] <CompanionCube> even though
i think it's deprecated
L251[08:07:53]
<sapphicfettucine> the specific header
is
L252[08:07:59]
<sapphicfettucine> "Deprecated and
unmentionable"
L253[08:08:28]
<ThePiGuy24> i cant tell whether you are
making shit up or whether haskell is just absurd enough to be like
that
L254[08:08:37] <CompanionCube> no it
L255[08:08:39]
<sapphicfettucine> i am being 100%
serious
L256[08:08:41] <CompanionCube> it's a real
function
L258[08:08:49] <CompanionCube> used in one
of the built-in libs iirc
L259[08:09:08]
<sapphicfettucine> > This
"function" has a superficial similarity to
unsafePerformIO but it is in fact a malevolent agent of chaos. It
unpicks the seams of reality (and the IO monad) so that the normal
rules no longer apply. It lulls you into thinking it is reasonable,
but when you are not looking it stabs you in the back and aliases
all of your mutable buffers. The carcass of many a seasoned Haskell
programmer lie strewn at its feet.
L260[08:09:27]
<Bob>
Haskell people played too much DnD
L261[08:09:35]
<Bob> i
think ill stay with Rust
L262[08:09:39]
<ThePiGuy24> lmao
L263[08:09:49] <CompanionCube> if i wanted
to destroy the room i would invoke unsafeCoerce.
L264[08:09:51]
<sapphicfettucine> my favourite gender is
"threatening descriptions of unsafe functions"
L266[08:10:33]
<ThePiGuy24> i would try haskell but its
syntax scares me
L267[08:10:57]
<sapphicfettucine> have you read the
technical interview series
L268[08:11:07]
<sapphicfettucine> it will make you more
scared of it
L270[08:11:25]
<ThePiGuy24> i dont think i want to at
this point
L271[08:11:42] *
CompanionCube knows someone very into type theory
L272[08:11:43]
<sapphicfettucine> (it's also just an
extremely fun read and series and i highly recommend it)
L273[08:12:02]
<sapphicfettucine> and also has the wisest
quote to ever be put to paper
L275[08:12:15] <CompanionCube> i would be
a liar if i said it wasn't confusing
L276[08:12:40]
<sapphicfettucine> but do you have a
minute to hear about the word of our lord the monad
L277[08:13:01] <CompanionCube> a monad is
just a monoid in the category of endofunctors
L278[08:13:20] <CompanionCube> those are
Words I know.
L279[08:13:27]
<sapphicfettucine> god
L280[08:13:28]
<sapphicfettucine> yea
L281[08:13:35]
<sapphicfettucine> yea
L282[08:13:42] <CompanionCube> do not ask
about the divine meaning of these worss
L283[08:13:54]
<Bob>
>sapphicfettucine:
L284[08:13:54]
<Bob> why
is it "an `&`" and not "a `&`"
L285[08:14:00] <CompanionCube> (did i do
the meme right)
L286[08:14:07]
<sapphicfettucine> >Bob: why is it
"an `&`" and not "a `&`"
L287[08:14:07]
<sapphicfettucine> great question
L288[08:14:14]
<sapphicfettucine> i'd guess
L289[08:14:19]
<sapphicfettucine> "an immutable
reference"
L290[08:14:33]
<Bob> fair,
i call it shared reference
L291[08:14:33]
<sapphicfettucine> but it does read
weird
L292[08:14:38]
<Bob>
yeah
L293[08:14:46]
<sapphicfettucine> >CompanionCube: (did
i do the meme right)
L294[08:14:46]
<sapphicfettucine> i don't remember but
monads are the peak of comedy regardless
L295[08:14:53]
<Bob> wtf
is a monad?
L296[08:15:01]
<sapphicfettucine> Option<T>
L297[08:15:14]
<Bob>
🙃
L298[08:15:24] <CompanionCube> someone
made an entire parody song about that question
L299[08:15:33] <CompanionCube> watch it on
youtube some time
L300[08:15:42]
<sapphicfettucine> it's a kind of type
that wraps another type and adds some description to it
L301[08:16:02]
<sapphicfettucine> so with option<T>
it wraps T and adds the description of whether T is null or
not
L302[08:16:13]
<sapphicfettucine> and then you can apply
functions to that wrapped type, like map()
L303[08:17:31]
<sapphicfettucine> there is
L304[08:17:34]
<sapphicfettucine> cursed maths behind
this
L305[08:17:50]
<sapphicfettucine> but in the end you can
just think of it as like the rust option type
L306[08:20:24] <CompanionCube> things can
get spookier like when you do computation in the type
checker.
L307[08:21:16] <CompanionCube>
alternatively
L308[08:21:34]
<Bob> i
like math but i have no clue whatever the pretty haskell graphs say
at any time
L309[08:21:35] *
CompanionCube blesses sapphicfettucine with symbolics genera for
oc2
L310[08:21:53]
<sapphicfettucine> BLESSED
L311[08:21:59]
<sapphicfettucine> [rpg item acquiring
sound]
L312[08:22:34]
<sapphicfettucine> >CompanionCube:
things can get spookier like when you do computation in the type
checker.
L314[08:25:12] <CompanionCube> the
official x86_64 ported emulator may be unobtanium but the source to
the older bootleg ported emulator is out there to poke at :p
L315[08:25:43]
<sapphicfettucine> oooh
L316[08:25:55]
<sapphicfettucine> i might take a look
tomorrow 👁️
L317[08:26:34]
<sapphicfettucine> you just gotta love
lisp machines
L318[08:27:06] <CompanionCube> dunno what
the RAM requirements were like but given the era it's probably in
the same ballpark range
L319[08:27:10]
<sapphicfettucine> wait lmao
L320[08:27:30]
<sapphicfettucine> the modern genera runs
on Apple M1?
L321[08:27:45]
<sapphicfettucine> wild
L322[08:27:59] <CompanionCube> that's the
unobtanium port isn't it?
L323[08:28:30]
<sapphicfettucine> "Portable Genera
2.0"
L324[08:30:10] <CompanionCube> :)
L325[08:35:27] <CompanionCube> building it
on regular x86_64 linux required a little patching, and iirc it's
CPU specific so RISC-V would involve significant effort(tm)
L326[08:36:32]
<sapphicfettucine> architecture
specificity my beloathed
L327[08:37:06]
<sapphicfettucine> the tragic necessity to
understand the sand we cursed into thinking
L328[08:39:36] <CompanionCube> the
'actually legit' stuff would probably also be easier
L329[08:43:38] <CompanionCube> (given
RISC-V, the original alpha/powerpc bits are probably closer
inspiration wise than the later x86_64 hacking.)
L330[10:33:36]
⇨ Joins: Vexatos
(~Vexatos@port-92-192-6-121.dynamic.as20676.net)
L331[10:33:36]
zsh sets mode: +v on Vexatos
L333[12:02:11] <MichiBot> Izaya: Ariri
will be notified of this message when next seen.
L334[12:11:33]
<Bob> gotta
research the linux architecture from 0 with OC2
L335[12:13:35]
<Forecaster> %tonk
L336[12:13:35] <MichiBot> Wild!
Forecaster! You beat DaComputerNerd's previous record of 6 hours,
43 minutes and 54 seconds (By 26 minutes and 46 seconds)! I hope
you're happy!
L337[12:13:36] <MichiBot> Forecaster's new
record is 7 hours, 10 minutes and 40 seconds! Forecaster also
gained 0.00315 (0.00045 x 7) tonk points for stealing the tonk.
Position #3. Need 0.06999432 more points to pass Michiyo!
L338[12:26:04] *
Amanda meows and looks around, does a big heccin yawn
L339[12:26:34] <Amanda> 6h of sleep
according to my sleep tracker
L340[12:26:41] <Amanda> Let's goo
L341[12:27:05]
<Forecaster> to sleep again
L342[12:30:59] <Amanda> I wish, the birbs
are being loud
L343[12:33:31] <Izaya> need to get a
sound-targeting laser
L344[12:33:57] <Amanda> what we need to do
is seal off th eback porch again so they can't nest
L345[13:09:00]
<Forecaster> %sip
L346[13:09:00] <MichiBot> You drink a
powdery tiberium potion (New!). Forecaster suddenly craves
pie.
L347[13:09:19]
<Forecaster> tiberium pie
L348[13:15:49]
<Forecaster> huh
L349[13:16:05]
<Forecaster> I did not know for loops in
Python could have an else caluse
L350[13:16:09]
<Forecaster> I did not know for loops in
Python could have an else clause [Edited]
L351[13:17:45]
<Forecaster> it's apparently always
executed at the end after the iterator finishes
L352[14:38:02]
<Forecaster> why are there no 24V to 8V
power regulator ships >:
L353[14:38:09]
<Forecaster> chips not ships
L354[15:08:33]
<Forecaster> ah well, getting a 24 to 12V
converter instead I guess
L355[15:08:39]
<Forecaster> 12 is roughly 8 anyway
L357[16:29:57]
<Forecaster> I wonder how that
happened
L358[16:59:26]
<Vaur> fuck
python tuples, who even uses that shit
L359[16:59:44]
<Vaur>
never found an use for those
L360[16:59:54]
<sapphicfettucine> the tuple defender has
logged on
L361[17:00:10]
<Vaur>
please enlighten me
L362[17:00:53]
<sapphicfettucine> syntatically neat and
interoperability with lists makes them not a bother if you don't
want them
L363[17:01:14]
<Vaur> no
but
L364[17:01:46]
<Vaur> the
reason I upset against them, is because its something that often
come back into coding test
L365[17:01:47]
<Bob> my
condolences
L366[17:02:09]
<Vaur> I've
never ever used them
L367[17:03:12]
<Forecaster> are you kidding me...
L368[17:03:24]
<Forecaster> remember that php4 thing I
mentioned the other day
L369[17:03:31]
<Forecaster> I'm looking at the database
now
L370[17:03:34]
<sapphicfettucine> what php thing
L371[17:03:41]
<sapphicfettucine> there's so many bad php
things
L372[17:03:42]
<Vaur>
from: Forecaster php4
L373[17:03:55]
<Forecaster> it stores the account
passwords unencrypted...
L374[17:04:09]
<sapphicfettucine> >sapphicfettucine:
there's so many bad php things
L375[17:04:10]
<sapphicfettucine> (my favourite being the
gender enum)
L376[17:04:20]
<Vaur> >
Forecaster — 01/03/2022
L377[17:04:20]
<Vaur> >
he has a PHP4 website that wont work in modern PHP servers that he
needs updated
L378[17:04:31]
<Forecaster> this is someones
myfirstwebsite
L379[17:04:31]
<sapphicfettucine> oh god
L380[17:04:35]
<sapphicfettucine> i'm so sorry
L381[17:05:13]
<Vaur>
sounds like someone hired an intern to do a full time employee
job
L382[17:06:32]
<Forecaster> also, one password?
L383[17:06:34]
<Forecaster> 3 characters
L384[17:06:38]
<Forecaster> just 3 letters
L385[17:06:41]
<sapphicfettucine> >Vaur: sounds like
someone hired an intern to do a full time employee job
L386[17:06:41]
<sapphicfettucine> you underestimate how
bad corporate dev is
L387[17:07:04]
<sapphicfettucine> there are government
websites that still use java applets out in the world
L388[17:07:55]
<Vaur> I
don't know enough about java programming or website programming to
understand what that means
L389[17:08:38]
<sapphicfettucine> imagine if flash
L390[17:08:41]
<sapphicfettucine> but in java
L391[17:08:49]
<Vaur> I
see
L393[17:11:01]
<Vaur> got
screwed on problem solving because ... I didn't know how to do an
average 🤣
L394[17:11:19]
<Forecaster> do you know now?
L395[17:11:40]
<Vaur> sum
/ count
L396[17:11:54]
<Vaur> I
looked it up, but run out of time
L397[17:12:38]
<Forecaster> I got to a job interview once
where I got a test where you were supposed to write code that did
something with the Fibonacci sequence
L398[17:12:51]
<Forecaster> at that time I had never
heard of the Fibonacci sequence
L399[17:13:18]
<Vaur>
rough
L400[17:13:36]
<Vaur> I've
heard of it but no clue what the algo is either
L401[17:13:37]
<Forecaster> now where the heck have they
hidden the db connection details in this garbage
L402[17:14:12]
<Forecaster> the fibonacci sequence is
simply start with either 0, 1 or 1, 1
L403[17:14:23]
<Forecaster> the next number is the sum of
the last two numbers in the sequence
L404[17:14:52]
<Forecaster> that's it
L405[17:15:02]
<Forecaster> and I wasn't allowed to look
anything up during that test
L406[17:15:41]
<Vaur> yeah
that's the dumbest thing you can ask for an interview
L407[17:16:13]
<Forecaster> the task was something like
"Generate and list the first n numbers in the fibonacci
sequence"
L408[17:17:09]
<Forecaster> ah, found the db
details
L409[17:21:29]
<Forecaster> `Can not connect: DB Error:
extension not found`
L410[17:21:31]
<Forecaster> great
L411[17:24:58]
<Forecaster> it uses PEAR, I guess that
might be what's missing
L412[17:29:47]
<Forecaster> oh no, it was that the
connection string told it to use "mysql" instead of
"mysqli", since the mysql connection is apparently
completely removed
L413[17:37:46]
<Forecaster> oh god
L414[17:38:02]
<Forecaster> of course the site has a
"Forgot password" thing
L415[17:38:08]
<Forecaster> I'm sure you can guess what
that does
L416[17:39:25]
<Vaur> send
the stored password in clear from the db by email to the customer
😄
L417[17:39:33]
<Forecaster> yep
L418[17:40:14]
<Forecaster> I haven't looked at the code
for it, but the "Forgot password" page says "We'll
send your password to you"
L419[17:49:33]
<Forecaster> also it's using non-utf8
encoding, but the pages aren't configured for that, so they're not
displaying correctly
L420[18:27:50]
<DaComputerNerd> lol
L421[18:28:44]
<Forecaster> doing that didn't help
anyway, because apparently something is overriding it and forcing
utf8
L422[18:28:55]
<Forecaster> so instead I had to convert
each file to utf8
L423[18:43:02]
⇨ Joins: Thutmose (~Patrick@67.21.186.225)
L424[19:11:31] ⇦
Quits: Renari (~Renari@64.67.31.239.res-cmts.bgr.ptd.net) (Read
error: Connection reset by peer)
L425[19:12:29]
<Forecaster> I just checked how the
registration works out of curiosity
L426[19:12:57]
<Forecaster> there's no password
validation at all beyond pa1 == pa2
L427[19:14:37]
<Forecaster> it says "Min 4
characters" on the registration page, but there is no such
check
L428[19:36:25]
<DaComputerNerd> ....
L429[19:36:33]
<DaComputerNerd> So someone could have a
blank password
L430[19:36:47]
<Forecaster> yep
L431[19:38:35]
<Forecaster> oh, there are 10 of
those
L432[20:37:47] <Michiyo> %tonkout
L433[20:37:47] <MichiBot> Jiminy Cricket!
Michiyo! You beat Forecaster's previous record of 7 hours, 10
minutes and 40 seconds (By 1 hour, 13 minutes and 31 seconds)! I
hope you're happy!
L434[20:37:48] <MichiBot> Michiyo has
stolen the tonkout! Tonk has been reset! They gained 0.008 tonk
points! plus 0.007 bonus points for consecutive hours! (Reduced to
50% because stealing) Current score: 0.59449. Position #2 Need
0.14664432 more points to pass Vaur!
L435[20:42:50]
<Forecaster> oh wait, I see there's a
check on the frontend if the password field is longer than 3
characters
L436[20:42:53]
<Forecaster> all is well
L437[20:44:04]
<Forecaster> Somehow there's still 10 rows
in the database where the password column is empty
L438[20:58:33] <Amanda> ... No, not all is
well, the backend should also check, never trust the input of a
user, espically client-side validation
L439[20:59:08] <Amanda> %choose rain box
or early noms
L440[20:59:08] <MichiBot> Amanda: Pretty
sure I'd want you to go with "early noms"!
L441[20:59:11]
<Forecaster> I know, that was 100%
sarcastic
L442[20:59:21]
<Forecaster> I've already implemented a
length check in the backend
L443[20:59:46]
<Forecaster> for 8 characters, no 4
L444[20:59:50]
<Forecaster> for 8 characters, not 4
[Edited]
L445[21:04:04]
<Forecaster> there's also a max length of
25 characters, which is in the database specification, so I can't
do anything about that right now
L446[21:04:28] *
Amanda decides to grace the rain box with her presese and decide on
early noms after
L447[22:06:07] *
Amanda meows at Elfi, offers her some pizza (heating
pending)
L448[22:19:13] ⇦
Quits: ben_mkiv
(~ben_mkiv@200116b81472cd00fe3497fffea975f2.dip.versatel-1u1.de)
(Quit: Leaving)
L449[22:57:57]
<DaComputerNerd> %tonk
L450[22:57:57] <MichiBot> Potzblitz!
DaComputerNerd! You beat Michiyo's previous record of <0 (By 2
hours, 20 minutes and 10 seconds)! I hope you're happy!
L451[22:57:58] <MichiBot> DaComputerNerd's
new record is 2 hours, 20 minutes and 10 seconds! DaComputerNerd
also gained 0.00234 tonk points for stealing the tonk. Position #9
=> #8. (Overtook nil) Need 0.00066 more points to pass
Ocawesome101!
L452[22:58:08]
<DaComputerNerd> might as well get that
started
L453[22:59:31]
<Forecaster> there's a pretty nice catchup
mechanic as well :>
L454[23:01:32]
<Forecaster> there are however no ketchup
mechanics
L455[23:05:39]
<DaComputerNerd> dangit i was hoping for
ketchup mechanics
L456[23:11:10]
<Forecaster> They're DLC I'm afraid
L457[23:14:43] <Amanda> tonk
microtransactions ruined my family
L458[23:16:11] *
Elfi nibbles cold pizza, prefers it this way anyway
L459[23:31:12] <Amanda> Elfi: It's mean
tto be heated, but the toaster oven's acting up
L460[23:31:52] <Elfi> I'm fine with this
nonetheless
L461[23:31:56] <Elfi> A bit too tired to
really fuss
L462[23:32:02] *
Amanda giggles
L463[23:32:04] *
Amanda cuddles
L464[23:32:16] *
Amanda offers some drinks to wash it down
L465[23:55:38] <Amanda> The first time
someone said to me: it's only one human, what difference does it
make' I almost drew my sidearm and shot them."- Former Grand
Most High Sma'akamo o, from I Have Ridden the Hasslehoff
L466[23:57:17] <Michiyo> I've not read
that in ages... waiting for more chapters to pile up before I do so
lol