« first day (4420 days earlier)      last day (720 days later) » 
00:00 - 19:0019:00 - 00:00

00:10
@RydwolfPrograms i opened the room and immediately clicked the x on instinct
@Seggan Hardly, it's getting quite popular. Not as trendy as Rust, but still not that underrated
00:57
@RydwolfPrograms wdym? hashes are already taken care of by the library index and INTEGRITY files
What do you want to do?
01:07
task failed successfully
One time I was playing around in the JavaScript IDE I had to use for high school, and I messed it up so badly it eval’d the error message
I just said false = true;
Caused some error starting with the word “Invalid”, but then for some reason it eval’d that and complained that Invalid is not defined
lul
js is cursed
01:25
And on top of that, whoever was making the IDE must've written some really cursed code
If you just throw an error it didn't do that, you had to cause a different kind of error, like the one above
01:40
0
Q: Classify a surface from its fundamental polygon

Parcly TaxelThis question is an extension of Who's that Polygon? to arbitrary numbers of sides. A fundamental polygon for a surface is an polygon with a prescribed pairing for all its \$2n\$ sides, each marked with an arrow, such that identifying the sides according to this pairing and the arrow directions p...

 
1 hour later…
03:03
@Seggan does kotlin have operator overloading?
@RydwolfPrograms does anyone keep it on "all rooms"? :P
03:27
@Ginger Where are those stored?
Also you've never told me anything about an "INTEGRITY file"
 
1 hour later…
04:38
@ParclyTaxel Piet 27b factorial
Also the code golf submission includes a generated image by default
Cloudflare page functions is so OP
05:00
hue!!!!
(or rather, huay – exclamation of cheering)
05:54
I have been procrastinating the final part of my sorting program but I should be able to finish it tomorrow. It’s by far the largest Trilangle program I’ve written (n=21)
The threading operator I added recently has been surprisingly helpful
It’s based on selection sort. But you can’t remove the minimum element from the middle of the list. So instead it spins off two threads; if the list length is n and the minimum is at index i, one thread discards the bottom i elements and the other thread discards the top n - i - 1 elements, and then they join back together to create the full list sans the minimum
Only problem is that I forgot to store what i is, and control flow in that loop is likely too tight to refactor it. So those threads have to search for the minimum value again
06:29
@Bubbler wtf is that....
damn how u even think of these stuff
actually just too good at piet
wait why is the inN in the middle of the loop????
soo confused
06:58
and there goes 33b num2bin
optimizing two loops for size is so fun
@Bubbler fucking hell is that monstrosity...
i was trying to get under 40 bytes for the longest time.... now i see that my structure just sucks
at least my number of codels is lower :P, not that it matters anyways...
i really need to study this DP+ in the middle thing
u gotta make a tip or smth on this
07:13
DP+ is not randomly in the middle, it's specifically at A2
so you can break out of the loop through the 2nd column, which minimizes the dead space on row 3
@Bubbler huh interesting, taking advantage of the ascii piet encoding
in my answer i just put two loops right next to each other lol
07:34
so basically if im understanding the structure correctly, the first instruction A1 -> A2 is DP+, and then u have the loop #1, then u place a white on B2 so that both the way going down to the loop #2 and the path through the loop #1 can be pass through without trouble, then the path going down from A2 merge with the loop #2
ok well ig in ur number to binary answer u dont have a white on B2 cuz somehow that works out but usually u would put a white on B2 to ensure that the paths work right
wait did u specifically choose light red on B8 and B9 just so that it would work out like that???
if so that is actually big brain
like damn
yo also i was wondering if u were still working on your piet interpreter or if u r just done with it
was really hoping for an undo button lol
that wouldve been extremely helpful in case i accidentally delete a row/column and i forget what colors were there or smth like that... it certainly happen to me before :p
07:51
@AidenChow No, that choice is irrelevant. A2B2 is fixed by B2B1 + B1A1 + A1A2
It's just that A2B2 turned out to be useful by luck
@Bubbler oh i saw the white codel on A8 and thought u added that there just to reset the color to smth more favorable lmao
I certainly didn't do that :P just some coincidence
while moving the codels cyclically, I realized putting a white at A8 saves one byte
0
Q: Count the Genotypes

Aitzaz ImtiazDescription Assume you have learned the Genotypes, the concept of hereditary itself. The one concept, that is important here is: This is a Test Cross, every parent here has two genotypes related to each other in any organism. Here a parent "TT" and parent "tt" can produce four offspring in the c...

@Bubbler u were moving the codels cyclically by hand??
wait how would that help anyways
now i want to see ur previous programs to see how that could save a byte lol
ur number to binary post could seriously be a nomination tho
lemme see which category i could put it in...
all i can see are wrong tool for the job and wild card
none of the others fit
man they need to bring the best non-text answer category back
wheres that one
08:25
@AidenChow With a white in the middle, so it's like moving commands one by one but with recoloring
I guess I need to add a backward mode in palette
@Bubbler if u r suggesting what im thinking then yea that would be super useful
cuz i sometimes find myself starting with an end color that i want to end at, and then trying to build the answer backwards lol
(is that what u r suggesting??)
Also golfed factorial to 24
@Bubbler ok bruh thats just insane
@AidenChow yes
nice, can u add an undo button while u r at it :P (really tho, it would be useful)
even if i can only undo like 10 times at most i would be happy with that :)
08:29
Yeah I guess I can do that
yay!!
also working on the nomination for ur num to binary answer rn lmao
09:02
guys i think i mightve wrote a way too long nomination explanation for bubblers piet answer....
but like its such an impressive answer lol, it really deserves it!
not sure if its in the right category but i put it in wrong tool for the job for now
@Bubbler i finish writing the nomination for ur post lol, u can read it here if u really want to: codegolf.meta.stackexchange.com/a/25609/96039
i kinda feel like its just me rambling on... anyone else think that too?
09:15
Lol yea was just going to say, we're going to reach the post length limit really fast if everyone types that long
Good way to avoid any competing nominations if they won't fit, you'll win by default
@mousetail man i wasnt even thinking about that lol
i just wanted to fully flesh out the explanation cuz idk how impressive it is to ppl who dont code in piet (which, tbh, is pretty much everyone lol)
like the stuff bubbler comes up with in his piet answers are just like, whaaaaat?
lol thanks
@Bubbler can u skim it over to see if my basic explanation is correct.... idk if im fully correct on some things
also now that i wrote all of this im too lazy to reduce it down lmfao
maybe someone else whos dedicated enough could try but like its hella long lol
in fact lemme put it in a word count real quick
I think explaining why your answer is worse is not really relavent
@mousetail it kinda highlights what bubbler does different tho...
like if i just say bubbler has a different and smarter structure, that doesnt really mean anything
09:24
True... it's kinda hard to follow though, and the comparison is 3 long paragraphs
im just comparing it to my own answer to give some perspective, u know
im not too sure how to shorten it...
maybe i can take out mention of parcly taxel's answer but i feel like that wont be fair to him lol
Mind if I try to shorten it a little? You can roll back if you disagree
sure thing!
i couldnt care less as long as it makes sense lol
@mousetail maybe i should add a diagram to make it easier to understand??
i kinda feel like i just put some long ramble instead of an actual coherent explanation at this point
@mousetail can u ping me or smth when u done editing, i have to go for a while...
@AidenChow That would probably help
10:07
aaand it is now 29b
 
2 hours later…
12:22
@user like what?
@RydwolfPrograms the INTEGRITY file is generated by whatever tool packages the module; it contains a list of MD5 hashes of every file in the module except for itself
the library index then contains a hash of it
Nothing in particular, just any optional feature offered by the package you’re depending on
the index file checks that the INTEGRITY file is correct, and the INTEGRITY file checks that everything else is correct
Like some parsing library could optionally include a json parser but only if you want
ohhh
hmm
Or you could select a logging backend
Actually the parsing library one is a bad example because the hson parser should be a aeparate package but it looks like you know what i mean
13:22
@zoomlogo read the docs™
but yes
nice
@Seggan I do not consent to this
4
why not
because I don't want people reading me
13:25
lol when did you rename urself
just now lol
im not Your Up To Date Kotlin Answering Machine™
well neither am I
I'm lyxal
:p
wait how did u rename urself so fast
link to another site
13:26
magic
or what zoomlogo said
the docs, Australia
101 3
rename yourself on only one site and then link your chat account to that
@zoomlogo ah
The neat part is that the starboard retains the username at the time of posting
noice
as does the transcript
13:27
i knew that
which makes reading through that one time rydvylf, user and I swapped usernames and profile pictures even more confusing lol
i suggest we unpin best of cgcc
no point
it'll unpin itself in 3 days
wait really
noice
wait how do u know
pins only last 14 days
a little calendar looking shows it hasn't been 14 days since the 24th of Feburary yet
13:35
mm
yes i can see that
yes: a) it is the 8th of march and I shouldn't be here right now and b) I do use a purple accent on windows
i didnt know they expire in 14 days
@lyxal why not
that's why
for it to be the 8th of March, it'd need to be some time in the early morning :p
so I'll be off for the night
o/
13:42
@lyxal ah yes
gn
13:59
@Seggan any way to make this code prettier? if (it.version != null) it.name == name && it.version == version else it.name == name
@Ginger it.name == name && (it.version??version) == version
thamks
What language is this?
Kotlin right?
yes
14:03
Hopefully kotlin has a ?? operator
so it'd probably be it.name == name && (it.version ?: version) == version
elvis go brrr
Yea that would work. Unless version can be not-null but still falsy
If it's version 0 maybe
nah, it's a SemVer object
Then that should be fine
Swift doesn't let you write return foo ?? throw bar, unlike some other languages, but you can do this:
func yeet(_ e: Error) throws -> Never { throw e }
return foo ?? try yeet(bar)
More idiomatic would be if let foo { return foo } else { throw bar }
14:24
@Ginger MD5? In 2023?!
Even for stuff where security's totally irrelevant...why
@Ginger Well then it serves a different purpose
I've seen some stackoverflow answers bash MD5 and then provide an even less secure algorithm
That's just to ensure things don't get unintentionally modified
If you don't trust the source you're getting the modules from...you're not gonna trust the hashes it sends you
The purpose of the checksum along with the module name would be as a security thing, in theory
Cocoapods uses a checksum of the podspec rather than a checksum of the whole library iirc
Does the podspec contain checksums of the rest of the code?
If not that's pretty useless isn't it
No, and it's typically handwritten
14:29
Sounds like that's intended for something other than security
Looks like that's for integrity purposes not to protect against intentional modification of the code to do malicious stuff
Yeah, in fact I have intentionally modified the local copy of a library before to test a bugfix
Well that would be after the checksum check
true
14:31
The point is just to check it when it's installed, what happens after that is a you probelm™
14:45
mfw I accidentally delete an hour’s worth of work because the file wasn’t checked into git
@Ginger Similar to mousetail's it.name == name && (it.version?.let { it == version } ?: true). tbh what you have right now isn't terrible, although you really should name your parameters. it is meant more for tiny little lambdas, I think
@Ginger yeah this is best
@Bbrk24 Huh, I'm mildly surprised podspecs are in Ruby
@Seggan I'm not a huge fan of the unnecessary version == version check in case it.version is null
15:01
it doesnt affect performance (at most a few nanoseconds)
and the code is clear
I know, but it still makes me uneasy
@RydwolfPrograms its fast
(my alternative with ?.let also makes me uneasy because it's needlessly complicated, I honestly would go with Ginger's original version personally)
yeah the let version isnt very clear
@Ginger you really should just override equals
15:08
@user thats a bad usecase
unless the optional feature is the default backend
@Ginger bad
@Seggan Why's that?
the default logger should activate by itself
like slf4j
Yes, but you should also be able to choose a different one if you don't want the default
yes, in that case the default shouldnt activate
if you specify smth other than the default
like slf4j
What makes it a bad use case then?
15:21
because you shouldnt have to specify whether you want the default or not
it should activate/deactivate itself based on whether you added your own backend
I didn't say you should explicitly tell it to use the default or not
thats what i read from your message
why would a logging lib have multiple backends in it?
I thought logging libraries generally supported multiple backends
they do
but the backends are generally provided as separate libs
It would be convenient to specify which backend to use while listing the logging library as a dependency
15:26
yeah
but why cant you just add a backend as a dependency urself?
Guess you could
@user Cocoapods itself is in Ruby and the Podfile format is based on the Gemfile format
@RydwolfPrograms no, it's to check accidental modifications
I'm trying to outsource as much of the "make sure the build environment is sane" stuff as possible to carrot, so the interpreter doesn't have to check that anything is broken
@Seggan cry about it
@RydwolfPrograms because I like it
i once used md5 hashes for location markers in a minecraft plugin just because i liked the hex
i eventually switched to using hashcodes when other devs berated me for the performance problems thatd cause
Other people: Don't use MD5!
Me: https://github.com/bbrk24/Trilangle/blob/master/program_walker.hh#L402
In all seriousness I tested a few different ways to combine the three into a single hash and this formula caused the fewest collisions in real-world use cases
15:35
@Bbrk24 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa c++
The entire reason I chose C++ is so that I could do this: github.com/bbrk24/Trilangle/blob/master/int24.hh#L9
you can do that in kotlin or rust
seriously, c++ is one of the worst languages
0
A: Sandbox for Proposed Challenges

xigoiCalculate the p-adic square root of -1 Given a prime number \$p\$, a \$p\$-adic number is a number whose representation in base \$p\$ may have infinitely digits to the left of the radix point, but only finitely many digits to the right of it. A \$p\$-adic integer has no digits after the radix poi...

It's also one I'm rather familiar with
In no particular order, I'd say I'm most familiar with Swift, C++, C#, and TS/JS
Kotlin, Rust, Java
CMP: three favorite languages in order?
15:39
Chat mini... yeah I got nothing. What's the P stand for?
poll
ah okay
mine are Kotlin, Rust, and Java/Python tied
and yes i know yall know i hate python but the other langs i know are just that much worse
python is quite nice for quick single file scripts, but nothing more
I sometimes like to do cursed things in JS
Here's one of the package.json files of all time:
{
    "dependencies": {
        "express": "^4.18"
    },
    "scripts": {
        "start": "node -e \"(e => e().use(e.static('.')).listen(3000))(require('express'))\""
    }
}
oh god
15:47
i cant wait when webassembly takes over the web and we wont have to use js anymore
I found this in a Microsoft C++ header:
#if _HAS_NODISCARD
    #define _NODISCARD [[nodiscard]]
#else // ^^^ CAN HAZ [[nodiscard]] / NO CAN HAZ [[nodiscard]] vvv
    #define _NODISCARD
#endif // _HAS_NODISCARD
that reminds me: kotlin is getting a webassembly target in 1.9
Hasn't Kotlin had a JS target?
ye
15:49
so kotlin will target native, jvm, js, ios, android, and wasm
@Bbrk24 yep
but now also wasm
And a Native target, which could've been turned into WASM ig
iirc it was
but sadly theyre removing the arm32 target
Very excited for Kotlin to become the next Java
so no more kotlin native on my pi zero :(
^^
@Seggan ;-;
15:50
(by next Java, I mean I want it to be used everywhere)
it fixed so many of javas mistakes, and added so much more
@user yes
And will continue to fix, since it's still pretty young
Still kinda sad Scala didn't become the next Java :(
also java is getting rust style pattern matching in 20
@user its too complex
Scala is impossible nontrivial to set up, in my experience
Rust-style?
@Seggan Yeah, I guess
15:51
@user ye
I always want to pronounce "Scala" with a long A
@Ginger Your setup is cursed
@Seggan No I mean what makes it specifically Rust-like?
@Bbrk24 i do
It's officially pronounced with a short A
@user Point(int x, int y)
@Bbrk24 wat
15:53
What makes it Rust-like?
the syntax
well, actually, ig all pattern matching is rust like then
I mean, Rust is a pretty young language, so it's definitely not where that syntax started
Scrolling through my old Discord conversations, I found two highly cursed hypothetical languages: "Objective-C#" and "visual basic but with all the features of C++"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
I thought by Rust-like, you meant they were going to let you not use the case keyword
15:55
^^ what he said
Or that you could do FooStruct { ... }
@Seggan ngn/k
python
c/c++
then rust :P
why k
because k
@Seggan Java 1.1, Java 1.4, Java 1.5
15:59
i think python should be third for me
i have stopped liking python
(or even ... fourth)
CMP: three favorite esolangs in order?
Brainfuck, the water clock one, and Trianguish
Brainfuck, HQ9+, ///
HQ9+?
It's like, the least interesting esolang that exists lol
@user why
just why
Intended as nothing other than a cheaty lang
16:03
That's why it's my favorite
Whenever I think I'm uncreative, I just look at the esolangs wiki page for HQ9+ and remind miyself someone was a bigger doofus than me
I haven't written anything in it but the Taxi language is pretty interesting
I like Help, Wardoq! because in many conlangs q is pronounced as ng
5
@Seggan I like the simplicity of the old days
@RydwolfPrograms I always read those languages wrong, like I consistently read "Toaq" as /to.æk/
@user no generics.. ugh
16:06
@zoomlogo flax (obviously), Vyxal, Jelly
@Seggan No enums either
@Bbrk24 yep
Before Trilangle, I've never intentionally built large NOP slides
I like how Trilangle and Trianguish have easily confusable names, Trianguish is basically a synonym of Hexagony, and Trilangle and Hexagony look similar. It's a triangle :p
16:26
I have the fun task of merging two threads such that they always reach the "join" instruction in the same order... but I don't have any way of knowing how long either one has run for
As in like, so that one thread always finishes first?
You could maybe do like, a oneshot that one thread sends that the other thread waits for before joining
So if the first thread finishes first it sends the oneshot then finishes, and nothing changes, but if the second one finishes first, it has to wait for the first to send the oneshot
Like what I described here? github.com/bbrk24/Trilangle/blob/master/… I didn't mean it was conceptually difficult, just that it's going to be annoying to implement
@Bubbler wtf how....
actually insanity
@mousetail damn thats like a whole edit right there
im gonna need to add the 29 byte answer into the nomination post now lol
well not much change other than the second loop but damn its under 30 bytes now
Ohh wait this is in Trilangle lol. I thought you were like, implementing it, and trying to get some sorta multithreading to work lol
thats some crazy stuff
16:42
@RydwolfPrograms No. I guarantee that ticks are synchronized across all "threads", which practically means that the interpreter has to be single-threaded
16:59
wait bubbler i just realized... when did u add the svg thing to ur interpreter??? how r u able to generate a new image for any answer???
also not a huge issue, but stack exchange dont take svg image for some reason... can u have some sort of export to png option in the explain section?
i see the import/export/share section have a png option, but not the explain section
17:12
0
A: Sandbox for Proposed Challenges

Parcly TaxelTriangularly embed a graph on a surface fastest-codegraph-theorytopologydecision-problem This challenge arises from a claim made in a MathOverflow answer and a paper linked in that answer which seems to back up the claim: Searching for triangular embeddings is much quicker than enumerating over ...

I am trying to debug my WIP sorting program, but I'm running out of colors
Okay I found the bug I was looking for, now back to the regularly scheduled "attempting to merge the red-violet and yellow-green paths"
17:34
> To do this, I solved the full Friedmann equation numerically (well, Python's astropy did it for me)
programming go brr
17:49
0
A: Sandbox for Proposed Challenges

Parcly TaxelTriangularly embed a graph on a surface fastest-codegraph-theorytopologydecision-problem This challenge arises from a claim made in a MathOverflow answer and a paper linked in that answer which seems to back up the claim: Searching for triangular embeddings is much quicker than enumerating over ...

somebody review this proposed challenge?
@ParclyTaxel I don't even understand what that is trying to ask. You lost me before the example triangular embedding
18:14
$ trilangle sortingAlgorithm.txt -w <<<'105 110 100 115'
100
110
I seem to have implemented ThanosSort
3
lol
$ trilangle sortingAlgorithm.txt -w <<<'100 105 110 115'
100
105
110
Warning: Attempt to print from empty stack.
Okay, I think I fixed it, let's see:
$ trilangle sortingAlgorithm.txt <<<'105 110 100 115'
100
105
110
4976
okay I actually fixed it this time
18:30
@Bbrk24 Post edited. Is this better?
Yes, that explanation of a combinatorial embedding is much clearer
I don't know how to approach the problem, but it's very clear what it's asking now
00:00 - 19:0019:00 - 00:00

« first day (4420 days earlier)      last day (720 days later) »