« first day (4214 days earlier)      last day (623 days later) » 

1:36 AM
 
1:53 AM
@GingerBot Hey don‘t you insult scratch like that
Geometry dash was made in scratch
 
2:38 AM
Worst idea ever: ls | du
 
@emanresuA What does that do?
I tried it and it just seems to print the size of every item in the current dir
 
Counts the size of every file in your filesystem when run from root
 
Oh huh, it does do that
Well glad I did it in v86 :p
@emanresuA Now all we're messing is Segan
And maybe Seffan, Sefan, Steggan, and Stegan
 
Stegfan?
Also, does python have an equivalent to -e?
 
Doesn't look like it, from the --help at least, which is surprising since even PHP does
 
2:47 AM
:/
Time to try sed
 
-e of what
 
Pretty much every other lang in existence
 
Presumably Node.js, where it just runs the following arg as code
 
could have sworn python had something like that
like -c or something
 
Oh yeah there it is
 
2:48 AM
Ah
 
yeah -c
 
Not what I meant to paste
> -c cmd : program passed in as string (terminates option list)
Nor that
There
 
That's quite a paste.
 
Yeah it's the config JSON of a Docker image lol
Ironically, the RTO Python one
I think that's a sign I should probably get some sleep, so o/ :p
 
2:52 AM
o/
 
3:39 AM
Should there be a ?
(as in combinatorial designs)
 
What are some challenges you'd apply it to?
 
My Steiner quads and Kirkman trips problems, the "expand Kirkman's schoolgirl problem" one
Basically any finite arrangement of objects that satisfies some conditions
 
Then no, it seems a little too unrelated
Plus is could be easily confused for graphic design imo
But it'd be interesting to see what other people think of the matter
 
3:55 AM
@lyxal Do you think it would be better if my Kirkman triples problem (in sandbox) would be better if q could be any 6t+1 prime power? (The construction still works in that case)
I restricted further to prime number because I was worried some languages would not be well-suited to general finite-field arithmetic
 
I'd have to check the challenge
 
@ParclyTaxel if you think that makes the challenge more accessible to programming languages, then sure
 
4:47 AM
1
Q: Generate a Kirkman triple system

Parcly TaxelGiven a universe of \$v\$ elements, a Kirkman triple system is a set of \$(v-1)/2\$ classes each having \$v/3\$ blocks each having three elements, so that every pair of elements appears in exactly one block all classes are partitions of the universe. Kirkman's schoolgirl problem corresponds to ...

 
 
2 hours later…
7:05 AM
@NoHaxJustRadvylf lol
 
@NoHaxJustRadvylf Yet everyone hates DBMS that don't do this even more
 
Morning!
 
o/
 
7:22 AM
How are things?
Heatwave?
@lyxal out of interest, can you understand codegolf.stackexchange.com/a/251036/108721 ?
 
Definitely not.
Too smooth braib
*brain
 
I don't even understand the one line comment it refers to
I hope to get there though
Is having a smooth brain bad?
 
7:43 AM
0
A: Sandbox for Proposed Challenges

Bjopchess smallest amount of steps If you place a horse on any square of the board what is the smallest amount of steps to reach a certain position? Rules It is an 8*8 board. You start at the top left corner. The same moves are possible of a regular chess game. example For example this is the desir...

 
@lyxal thanks! Being smooth is normally good :)
 
@SandboxPosts Is he gonna just repost if every time?
 
8:20 AM
Probably lol
 
 
3 hours later…
11:25 AM
0
Q: chess smallest amount of steps

BjopIf you place a horse on any square of the board what is the smallest amount of steps to reach a certain position? Rules It is an 8*8 board. You start at the top left corner. The same moves are possible of a regular chess game. example For example this is the desired output with a queen: (0 is ...

 
12:08 PM
@NewPosts He actually posted it
 
 
3 hours later…
3:18 PM
Is there any way to see which languages are most used on average to solve a problem across all CGSE responses?
 
There are some issues with languages being missing/incorrectly tree-ified in that list, so don't trust it 100%, but it should still be pretty accurate
 
@NoHaxJustRadvylf Thanks a lot ! :D
@NoHaxJustRadvylf Thats ok! Thanks for the info
 
3:33 PM
@NoHaxJustRadvylf What do the last two columns mean there?
 
Golfiness rating and usage-adjusted rating
 
Wow, that means I dragged Scala's rating down to worse than Regex and Scratch
 
XDDDDDDDDDD
Vyxal is before SQL, Brainfuck,K, Kotlin, Rust, Prolog and many more. Thats impressive
 
Vyxal's a dedicated golflang, of course it's better than all of them
K is extremely concise but it's still not a golflang
 
Fun fact: the ratio between any two languages' rankings is the expected difference in size between answers in those languages
So a 600 rated language will on average have twice as long of answers as a 1200 rated one
 
3:41 PM
Oh wow
 
And a 1000 rated language is average, making anything which can achieve 2000 twice as concise as the average language
 
4:01 PM
Hello new user and welcome to TNB!
 
4:15 PM
@NoHaxJustRadvylf is jelly fork caird's jelly ?
 
damn thats better than vyxal
 
Keep in mind it'll only have been used on challenges where it's advantageous over normal Jelly, so like the Vyxal flag variants it's hard to score fairly
 
ok
i hope flax will be around jelly in that list
 
translating a bunch of C code from xfce4-notifyd into python
I love open source, makes it so much easier to steal borrow other people's work and be lazy!
 
4:21 PM
Is GingerBot a real bot ?
 
No, I'm @Ginger
using this account because I currently can't use my main for reasons
 
Oh ok
 
This account, however, is also a bot which does stuff in the katlani room
so if you interact with it in there it's automated
...or maybe I am a bot, and I've gained sentience and am planning to rule/destroy/consume the world!
 
Have you still not gained access to your main account?
 
Not yet, soon.
I'm not happy about it either
 
4:29 PM
@GingerBot Who was the new user?
 
@TKirishima
I assume they're new because I haven't seen them before
 
They've been in chat before
 
darn it
 
Im not new
 
before I got here I guess
 
4:30 PM
I just dont come often
 
sorry, welcome back in that case!
 
Ive been here for ? 3 months ig
 
Really, welcoming new users to chat isn't recommended in the first place, but if you do, it's important to make sure they're actually new :p
One way you can do that is by looking at the room's unique user count to see when it increments
E.g., it's 1328 right now
 
blyat
just trying to be nice
 
And if they have posted here before, it'll show "last post here ... ago" in the room info
 
4:33 PM
got it, thanks
 
@GingerBot Yeah, I get it. But it could probably come off the wrong way if it's like, someone who's been on the site for five years :p
 
(which is a mistake I think I have made :b)
 
 
1 hour later…
5:35 PM
CMQ: Should a command line tool error if given too many arguments?
 
m90
5:58 PM
@NoHaxJustRadvylf I think so.
 
 
2 hours later…
7:29 PM
First draft of controller script for the radiation hardening koth, any initial feedback? codeberg.org/Mousetail/Radiation-Hardened-Koth
Still need a way to export the results
 
What is codeberg ?
Like it seems like a git plaform but what is the difference with Github, GitLab or BitBucket, but why codeberg ?
 
Personal preference, probably
Github's evil and gitlab's a sussy baka
idk about bitbucket
 
7:50 PM
In python lru_cache and cache work by caching results of a function with exactly the same arguments. But I have a function that compares two values of a large matrix. The matrix doesn't change but should I really add it as an argument to the function so lru_cache can do its magic
eg foo(i, j, large_matrix) where only i and j ever change
 
It surely won't make a difference
 
What does lru_cache do with large_matrix? Is it just looking at the value of the reference?
 
It stores them in a dictionary I think
 
Rather than caching the whole matrix
 
so if the matrix is not hashable I'd expect an error
 
7:54 PM
Right that's my problem. I could define it as a global variable but wondered if there was another route
 
A closure?
 
@pxeger oh go on....
I am never confident enough to use closures unless someone tells me how
 
def outer(large_matrix):
    @lru_cache
    def inner(i, j): ...
    return inner
f = outer([...])
then use f(i, j) etc
 
That's all interesting idea, thank you
Do you mean return inner?
 
Yes
 
7:57 PM
Should .... be filled in with something?
 
Yes
 
As in outer([...])
 
that's the value of the matrix
 
Ok
 
whatever your matrix is
but if the matrix never changes, you should only call outer once
 
7:58 PM
Then how does f(i, j) work?
It looks like f takes a matrix not two numbers
Oh I see
 
f is the result of outer, i.e. inner
 
I have learned something! Thank you
So the code for inner can use large_matrix ?
 
Yes
 
This is a great solution
From a python guru
Thank you
 
8:53 PM
What's a really common constant in golfing languages? I'm planning/kind-of starting to make a language at the moment and it only has a 128 char codepage so I was thinking of presetting the register to a constant that's commonly used (maybe this has been done before but idk). That way programs that don't need the register for other things can get this constant in one byte.
 
how's about zero
and if you have two maybe make the other one
 
@GingerBot Have the register at 0 at the beginning?
 
yes
 
@GingerBot There's only one
 
ah
wait, I don't recognize you
are you new here?
 
8:56 PM
Sort-of
 
???
 
I'm a friend of emanresuA's
 
yes
 
Well, nice to meet you friend of emanresuA's
 
@GingerBot I've probably been here for a couple of months
Or less
 
8:57 PM
welcome (back)+ to TNB!
 
Thank you!
 
@tybocopperkettle I'd go with an empty list
That might make certain recursive algorithms shorter
 
!emoclew er'uoY
or maybe use flags to set what it is?
 
@NoHaxJustRadvylf Perhaps
@GingerBot I don't think I'll have flags
 
8:59 PM
You say that like it's a bad thing, Ginger :p
 
I could, I just feel like they're a bit cheaty sometimes
 
@emanresuA Gitlab was great for years but now they deleting old repos and restricting CI minutes to a unreasonable degree so it's not really worth using anymore
 
well I'm all for cheaty so
 
Language design is way more fun when you can't just make any hard decisions into flags
 
well yes but that sounds hard and I can't be bothered most of the time
 
9:00 PM
@GingerBot Lol
@NoHaxJustRadvylf What's an example?
 
I am not a very good programmer so I would rather make something into a flag and be done with it then spend 5 hours trying to fit it into the language nicely
 
@tybocopperkettle I misread register as something else, so ignore the word recursive. But whenever you do need the register (assuming it's like Jelly's), it's usually because you're iterating over a list and doing multiple things at once, and typically at least one result you'll want is also list, so initializing the register to an empty list makes it easy to just push to the register each iteration.
 
I like the idea of using the register as another 1-byte constant though, if you've got a good selection of array quicks/transformers/whatevers, using it for something like 16 or 100 or an infinite list of natural numbers could be cool
 
Yeah, how about the alphabet?
 
9:05 PM
Good idea
Even better since challenges involving the alphabet probably don't need much complex iteration over arrays, so it's really unlikely you'd need the register for register-y stuff too
 
ooh good point
 
^
I just had a look at Vyxal and (if I write my program correctly) the most common constant (that would be more than one byte otherwise) is (64)
 
Interesting. At least in JS, the most common number constants are, ignoring digits 0-9: -1, 10, 20, -2, and 11
64 doesn't show up for a while, coming after numbers like 16, 12, 100, 60, 99, 26, and even 65
I guess golfing languages have more efficient ways of getting those numbers than praclangs do, though
 
65 makes sense because it's the codepoint of A
 
ah lol
 
9:13 PM
I can understand -1 for fixing OBOEs and stuff
 
-1 is pretty useful in general, and that's even assuming this corpus did manage to filter out cases of subtracting 1
 
and that, of course
 
@GingerBot JS doesn't even have repeat-by-negative-one for reversing, so it's more useful than just that
 
had a brain faliure
 
@GingerBot I've never seen off-by-one abbreviated before and now I know why
Just wait 'til I start programming in JS's evil twin and accidentally make a BASOON
4
 
9:16 PM
*oboe noises*
you sent that knowing I would star it
 
BigInt Addition: Size Overflows [object Number]
 
@NoHaxJustRadvylf hiiiiiiiii
 
@AviFS iiiiiiiiih
 
joking lol
wait no dammit
 
9:29 PM
oh also for some reason IDLE's keyboard shortcuts are case-sensitive
 
@GingerBot hihihi heeheeheehee
 
@emanresuA You're not JoKing, you're emanresu A!
3
 
@NoHaxJustRadvylf uh oh, i feel jail coming
 
if I have capslock on Ctrl-S doesn't work
 
@NoHaxJustRadvylf starred
 
9:30 PM
@AviFS Hey Avi, been a while! :P
 
@Zionmyceliaadamancy Hey caird! How have you been?!
 
@AviFS I don't think that's interesting enough to warrant a star, that joke gets made a lot :b
 
@AviFS Been alright, chilling on summer vacation. Yourself?
 
I hate it when I send a message but it sounds super aggressive so I have to go back and add a :b
 
That's why I always end with :P
 
9:31 PM
I must not harm humans or through inaction allow humans to come to harm
 
@GingerBot probably not, i'm pretty easy to please, i don't know if you've noticed :p
 
fair enough lol
 
also, i never know what jokes are like totally old by now haha
 
also: this is ginger using GB's account for reasons
 
9:32 PM
i feel like this happens a lot that i crack up at something totally overused by the time i'm around haha
@GingerBot i approve
 
9:55 PM
I've been unable to work on hgl for a couple months due to my computer not being good enough to run it.
 
holy garbled lemons?
 
Haskell golfing library.
Coming back I am a little bewildered. The documentation is thorough but it uses phrases like "Cokleisli category". I must have been significantly smarter a couple months back.
7
 
I'm pretty sure all coders feel stupid when looking at their old work
 
Usually I feel that past me was stupid.
 
...or that
 
10:00 PM
Cokleisli categories are kind of cool actually. I can't believe I forgot about all this.
 
what are they?
 
If it has "category" in the name it'll probably be something "cool" in a very esoteric way :p
 
They are sort of like functions that have a narrower output than their input.
Well really a category is all about composition, so it's a special sort of composition for things that get narrower.
 
as in they output less? confused
 
So a function of the type [a] -> a is narrower.
 
10:04 PM
what do you mean by "narrower" tho
 
So it has to do with the composition.
 
Tell me more, Smart Cat
 
Normal functions compose when the input to one is the same as the output of another.
 
okay
 
(a -> b) -> (b -> c) -> (a -> c)
 
10:05 PM
i feel like i read something about comonads at some point; i assume these are related? considering the relationship between normal monads and kleisli arrows
 
Yes they are very related.
You can't compose say ([a] -> b) and ([b] -> c) because [b] is not the same as b.
 
Is b a list?
 
b is just some type.
We don't know what.
 
why is it in brackets
 
The brackets mean "list of" so [b] is a list of bs
 
10:07 PM
oh
 
But b is just a b
Cokleisli composition is a composition like this where each of the arrows is sort of narrowing. It has the general type (m a -> b) -> (m b -> c) -> (m a -> c)
 
@WheatWizard It's category theory, it only ever makes sense in the moment :P
 
If it makes sense at all.
 
It doesn't make sense
 
@WheatWizard Can't you just call do g . pure . f there though?
 
10:09 PM
Sadly, I am but a stick of butter and cannot understand advanced theoretical mathematics.
 
you can't compose them directly
 
A coconut is just a nut
 
Oh ok (to Unrelated, not to coconuts)
 
Category theory makes sense, so long as you don't think about it
8
 
@user Sure, but that's a different operation than regular composition.
List is a bit of a confusing example since it's not a comonad.
Tuples are a better example.
 
10:10 PM
Tbf, composition is only uniquely defined for a chain of single argument functions
 
Ah okay, so like a -> b and (b, c) -> d?
 
As soon as you introduce a function that takes 2 or more arguments, you have to specify how the function transforms those arguments
 
Well, currying lets you treat those as single arg functions, right?
 
I dream of the day when something that falls within one of my very narrow sets of expertise comes up in this room so I can speak of it in more than vague, noncommittal terms
 
the cokleisli comp for tuples would be ((x, a) -> b) -> ((x, b)-> c) -> ((x, a) -> c)
 
10:12 PM
Or treating the arguments as one single argument wrapped in a tuple
 
@user Assuming you define them as curried functions, sure
 
You reuse the x value for both functions.
 
Any good books on category theory?
 
@GingerBot What;s the difference between "crimson", "ginger" and "orange"?
 
10:13 PM
i can really see how that would come up in a golfing library now
 
Their MD5 hashes are all different
 
Crimson is a color, Ginger is me, and Orange is a fruit
and baba is you
 
@UnrelatedString Pretty sure Dennis intended for this to be a quick before he left
 
Jelly has monads and monads? :P
7
 
@user The Bartosz book, is pretty nice. It's fun, not too hard or anything.
 
10:14 PM
got crimson and cinnamon mixed up where did I put my braincells
 
@user It also has monads, and the occasional monad
 
@WheatWizard Ooh, it's even written for programmers, thanks for the rec
 
but "monad" == "monad"
 
@Zionmyceliaadamancy like L xyƈ R = L x R y R? yeah i've found myself needing that quite a bit lmao
 
@Zionmyceliaadamancy You mean it also has monads and the occasional monad?
 
10:16 PM
really most of the software I know about is not software you use in code golf
 
@GingerBot Java: new String("monad") != new String("monad")
 
now if we were talking about writing Gtk applications in Python I would have a lot more to say
 
@user Same with JS
 
jelly doesn't have the monad, jelly programmers just have to channel its powers to maintain sanity
 
10:17 PM
where does dbus come up in code golf?
 
in Jelly, Jun 17, 2016 at 16:29, by Dennis
The next quick I implement with definitely be x mdQ y -> m(x) d m(y). Can't count the times I've needed that.
 
and then he was never seen again
 
Javascript's strings are okay, its Strings are not.
 
10:17 PM
also i think that would be over wouldn't it
 
Kinda, yeah
 
you could say the same about Arduino
 
Okay, I think I get kleislis, they just sorta unwrap stuff to compose it, now for cokleislis
 
Over would be x dmQ y, given the traditional order
 
@user I mentally pronounce that "cockle-islis"
 
10:18 PM
Kleisli arrows are super useful.
They are like functions that also produce extra stuff.
 
i guess the reversed order would be for easier use with chain separators
this is why i'm making my operators infix :P
 
I only noticed that message from Dennis after I finished my fork :/
 
Jam will be different
Might even try to implement an Under quick
 
@WheatWizard Do they do more than flatmap/bind?
 
10:21 PM
@user Nope, bind and kleisli comp can be defined in terms of each other. They are two sides of the same coin.
That coin being monads.
 
Oh ok
 
join me
do under without even defining standalone inverses
 
IMO kleisli composition is the more intuitive way to think about monads.
 
@UnrelatedString No
 
10:22 PM
If I implement an under quick, I will add an inverse attribute to every atom
 
The problem with making a Haskell golfing library is that I start with trying to implement something practical and useful and instead I get distracted by some cool category thing for like 3 days.
 
Even non-injective atoms, get fucked "functions"
@WheatWizard Do what I do: don't know shit about category theory. Super easy :P
 
It's Haskell you learn category theory by osmosis.
 
so you're telling me if I come over to your house and just kinda stand next to you for two days I will then understand category theory? sign me up
 
10:37 PM
CMC: Difference of two unit fractions
 
@WheatWizard It's TNB-- I'm gaining IQ points by osmosis.
Also, Awodey is good.
And Emily Riehl is supposed to be good, but it hasn't been for me.
Also, try out the Catsters, of course. And remember pirating on libgen, which hopefully won't get me shadowbanned. Probably not good to have that as a searchable message on my online persona, but oh well.
@emanresuA The first one minus the second one.
 
11:02 PM
@emanresuA In Dyalog APL, you can do -⍥÷ where monadic ÷ means the inverse. So 2 -⍥÷ 4 is .25 That's 1/2 - 1/4, assuming that's what you meant. I'm not sure the best way to actually make that into a stand alone train, though. For a defn, I think the shortest would be: {-/÷⍵}.
 
@AviFS Thanks!
 
@user Of course, I really highly recommend Seven Sketches. I lead an online reading group with that for a while. We worked up through Chapter 4, I think. I'd love to do that again, sometime. A CGCC group would be fun. But of course, for Seven Sketches, and all those other books, you really have to work through it, and the problems.
If you find a breezier reading that helps you get at least a taste for category theory a bit more leisurely, that'd be awesome. Let me know!
@user On breezy reading, There's How to Bake π, by Eugenia Cheng of Catsters, a category theorist. But that didn't satisfy my category theory craving. It's a unique math book, though. Maybe written for people not already as mathematically inclined.
 
@AviFS That one's good :P
 
Also, Graphical Linear Algebra is unique math reading in that it's quite leisurely and very new and "aha" without actually having to work through problems to get it. graphicallinearalgebra.net
There are some category theoretic, or at least category adjacent, ideas in there. I highly recommend that if you want math nighttime reading, which is hard to find. It's a lot of fun, just period.
Actually, it's very category theoretic. And it's maybe not all quite so easy, haha. But still chiller reading than most. Highly recommend.
@emanresuA Oh you know it? What'd you think?
I got it for my birthday many, many years ago, and only more recently gave it a shot.
@user Okay, one more thing. I spent some time on this once upon a time.
Since you responded to the Youtube thing, there's one other relevant Youtube thing. Bartosz Milewski, category theorist and Haskeller, has a book called Category Theory for Programmers, free online. Additionally, he taught it as a course, and there's a playlist on YouTube of him teaching it.
Category Theory for Programmers book, published online free by author But you can also download a very nicely typeset pdf from libgen, not clear if that's also approved by the author or not.
And finally, for that particular book, Code Report (Conor Hoekstra) has video playlist for each chapter of the book.
He's the guy who runs the Programming Language meetup group, based, I think, in Toronto, but also doing events in NY sometimes. And usually the events are online. And he's also been quite relevant in APL circles recently. For instance, he's doing the APL meetup in NY advertised in the APL Orchard, he's doing the Array Cast podcast, and he has lots of APL videos (Haskell and other langs, too) on his channel. Anyway, Hoekstra also has an accompanying YouTube playlist, if you like that book.
Those are some of the best resources for category theory for amateurs I found while I was into that!
@AviFS Out of all of it, I highly recommend Graphical Linear Algebra for anyone looking for fun math reading. And Seven Sketches for anyone wanting to work through category theory.
4
(And actually, the authors of Seven Sketches have lectures online for that book, too. They teach a course with it. Although, the lectures didn't feel super thorough. More of a compliment to the book.)
 

« first day (4214 days earlier)      last day (623 days later) »