« first day (4443 days earlier)      last day (417 days later) » 
00:00 - 15:0015:00 - 00:00

12:32 AM
mfw the piece of software I spent an hour compiling doesn't work because my Pi doesn't have a 'compatible graphics device"
time to try to get Vulkan working!
...all I had to do was install some apt packages and it works lmao
aaaaand the program I'm trying to use said software to run doesn't work
ffs
okay, time to try another method!
 
12:54 AM
@lyxal Wait wdym
You mean I forget / at the start if it's an absolute path?
@RydwolfPrograms imo Rust isn't much like JavaScript
I feel it's more like someone told C++ to go f*ck itself, so it did, and Rust was the product. Thankfully, the government took Rust away from C++ and handed it over to Haskell to raise
 
@user they probably just mean that ur username is "user" so like usr could refer to multiple things
 
Ohhh
 
@AidenChow this is the joke :p
 
There was a user called usr
I think 2x-1 or someone called themselves that temporarily
 
whos 2x-1
 
1:00 AM
Sandbox posts last active a week ago: Isolate the binary signals
 
@AidenChow @lyxal
 
@AidenChow one of the greatest golfing minds I ever knew :p
Creator of multiple esolangs and golfing languages, the first non-me Keg and Vyxal user and a good friend
 
What happened to them anyway?
 
did he change his username or what... i cant find him?
@lyxal wats keg
 
update: it didn't work, trying something else
I'm almost out of something elses to try :b
 
1:07 AM
@user good question
@AidenChow well you see that's the thing - they deleted their account several times
And github accounts too
Notice how I pluralised accounts
 
waaat... why they doing that
 
Eh you get used to it
 
wat
 
@AidenChow someone clearly doesn't know their esolang history :p
@user last I saw of 2x-1 was a follow on a weird looking a51 proposal that wasn't pldi
The proposal has since been closed and deleted for inactivity
(not pldi)
@Ginger this happened about 4 times I think
Come to think of it, how did each new account manage to be linked to the same chat profile?
 
so what happen... they delete their acct and never make a new one??
 
1:11 AM
me when parameter passing for argument of type ‘std::vector<long long unsigned int>::iterator’ changed in GCC 7.1
 
@AidenChow their last account was in August 2021: codegolf.stackexchange.com/a/233830/78850
 
we doing all sorts of cursed stuff today
> 4-month hiatus
 
Narrator: it was not
@AidenChow fun fact: if it wasn't for 2x-1, I wouldn't have come back to code golf in early 2019, I wouldn't have ever made a sbcs esolang and I wouldn't have stuck with the golfing language design grind as long as I have :p
Well, mid 2019 actually
Because may is the middle of the year
 
spongebob narrator: 2 years later
(I was going to insert an image here but I couldn't find one ;-;)
really hope this thing works
will be big sad if no
 
Did it work?
 
1:22 AM
still compiling lol
of course nobody ever expected someone to try to run this on a Raspberry Pi of all devices
 
@lyxal Are they okay?
 
^
 
@user good question
I would assume so
 
we almost at 50%
 
@user Hard to tell when there's no active accounts to communicate with :p
 
1:25 AM
gonna close firefox so it goes faster, see yall later
 
o/
@lyxal :(
Never knew this person but still sucks they're not active here anymore
Maybe they got a life and took up bowling :P
 
@lyxal u should ask them for discord or smth next time u see them
 
> next time you see them
Bingus I've never met them
Just like I've never met any of y'all
 
stalker time
 
@lyxal wait how u know that was their alt acct anyways??
 
1:29 AM
I uh, huh that's actually a good question
I forgor
Ah yeah github activity
Basically, I saw contributions and interactions with repos I knew they had previously been interested in
 
then how u figure out when they delete github accts?
 
I haven't
I don't know why that happened
 
so they link their github to the alt acct and u look in the activity of that github acct? is that wat u saying?
 
1:51 AM
I noticed the account interacting with some of my stuff and looked at the account and deduced it was the same account
 
Lang Design is the best part of CodeGolf IMO...
 
It really do be
 
idk anything about lang design :((((
 
Don't even have to make good langs
Just, write something that takes bytes in and thinks about it real hard
 
@AidenChow basically it's a matter of step through instructions using rules you create
And then figuring out how to turn instructions provided by users into instructions your code can understand
 
1:58 AM
ya idek how yall think of all these good lang ideas
 
That can range anywhere from using a visitor approach with a lexer and parser to just going character by character through a program
@AidenChow doesn't need to be good
Just needs to be fun
 
@lyxal tf is a visitor approach and lexer and parser
 
That's my point. You might not even need to know what that is to make a language
(but to answer the question: a lexer says "hey this bit of text is a number, that bit is a string, oh hey and this bit of text is an opening bracket" and so on. A parser says "hey this number, operator and number are a single unit of stuff imma group that together". A visitor approach says "I'll start at this group of stuff, move to the next stuff and so on and each group of stuff might be handled differently")
 
sound too complicated for me lol
 
Depending on the complexity of the language, you might not need it
E.g that'd be overkill for brainfuck, and completely out of the question for befunge and ><>
And you can always just have a character pointer to keep track of where you're up to in a program if commands are single characters
 
2:07 AM
the entire process of lang design sounds like super long and pain... like im literally gonna run into a million bugs before i even get simple program running
 
Not necessarily
Something like hq9+ or dead fish can have a simple interpreter whipped up without a million bugs
You might have one or two, but no more than that
Besides, once you get started doing lang design, you get used to it, and you start learning what to avoid when making languages
 
ya that sound like a steep learning curve
 
It's not. You start with "if I get command x, I do something. If I get command y, I do something else..." and then figure out how to break things down into command x and command y
There's no right way to do it. Sure there's ways which aren't as scalable or easy as others, but as long as it works
 
I started with Brainfuck, then Reverse Polish Notation
 
Brainfuck is a good first language to implement
As is something like befunge or ><>
 
2:16 AM
@lyxal i already do that before
 
Oh then you already have an idea of how to implement languages
 
ya but that one was kinda simple... i think more complex one will be super long and hard
 
@AidenChow I recommend Reverse Polish Notation
48
Q: Reverse Polish notation

user11You must evaluate a string written in Reverse Polish notation and output the result. The program must accept an input and return the output. For programming languages that do not have functions to receive input/output, you can assume functions like readLine/print. You are not allowed to use any...

From there, it's really easy to add your own commandlettes and make a turing complete language
 
@ATaco man that looks way too complicated :(
 
Don't let it daunt you, it's the same concept as Brainfuck but with a different memory structure
Split the program on Spaces
For each substring, perform an action. Numbers push a number to a stack, operands pop two values and push the resullt.
 
2:29 AM
oh shoot i didnt even realize u can do that
ok then it doesnt seem that bad
 
Once you can do that, you’ve written half of golfscript
 
3:28 AM
0
Q: All of the Boards

Huỳnh Trần KhanhWe have these two shapes: #. ## and .# ## Let's call the first shape the L and the second shape the flipped L. On a 4x4 board, there are 16 cells. Each cell can be either free or occupied. In all the illustrations, # represents an occupied cell and . represents a free cell. Your job is to print...

 
 
2 hours later…
5:03 AM
@Seggan I was going through old messages and I found that Java/Kotlin interop caused this error:
> void cannot be converted to Unit
The problem was that I was trying to convert between a Runnable and a () -> Unit
But still, what is the wording of that error
 
yeah what the hell
 
 
4 hours later…
W D
9:41 AM
hi
 
@WD :wave:
 
W D
:wave:
im working on a question lol
an answer to a question
i don't know a lot of the stuff - hehe...
 
which one?
 
W D
254857
10
Q: Is it a legal atomic chess move?

Aiden ChowBackground and Rules There is a variant of chess called atomic chess, which follows essentially the same rules as normal chess, except that pieces explodes other pieces around them when captured. In addition to checkmate, you can also win the game by blowing up the king. When a piece captures an...

 
273 people couldn't figure it out either apperently
 
W D
9:46 AM
ok
well
make that 272
in a few weeks or something lol
 
Should be quite doable with any chess library
Just check if any possible move is a capture that includes the king in the explosion radius
 
W D
no thx
im using vanilla python 3
also
castling = nightmare o-o
 
Maybe try it with chess.py first, then afterwards try vanilla
 
W D
chess.py?
 
Yea library used for every single chess question on this site
 
W D
9:49 AM
wait would it be legal
 
Otherwise 99% of the challenge is just implementing chess
 
W D
if i were to do JS + chessboard.js
 
@WD Yea you can use libraries
 
W D
:O
 
There's probably a javascript chess library too
 
W D
9:50 AM
wait nvm
chessboard.js is for HTML
chess.js would be more validation but like idk if its customisable
 
Of course if you use a library you need to list it in your header as Javascript + chess.js, 99 bytes
 
W D
yea ok
Had a look at chess.js docs
https://github.com/jhlywa/chess.js/blob/master/README.md

doesn't seem to be support for variants... :(
anyways vanilla python doesn't compete with python + chess.py right?
 
No
But there is no vanilla python to compete against anyways
 
W D
I'll be vanilla python
wait
can I submit 2? one vanilla and one + chess.py
 
@WD Yea of course but you can use it to simulate basic moves then compute the explosion effect yourself
@WD Yes you can
 
W D
9:53 AM
```
test
abc
# hello
```
???
 
You need to indent with 4 spaces in chat
and there is no support for highlighting
 
W D
test
i don't like 4 spaces :(
# ok
 
very limited markdown support in general
 
W D
ok this is from what I see in my 5 minutes using chess.py lol

Normal chess:
board = chess.Board()
board.parse_san(move)

Atomic chess:
board = chess.variant.AtomicBoard()
board.parse_san(move)
Core and variant respectively
 
Didn't expect a variant to exist
That makes the challenge quite trivial
 
W D
10:18 AM
ok guess I'm not using chess.py
 
@WD howdy
 
W D
hi
 
10:40 AM
@WD You can use it but not the build in atomic rules
 
W D
???
wdyn
wdym*
whats build in
 
You can choose to not use a specific builtin
Youcan use the whole library of course but it might be more interesting to use just the stock chess module
 
W D
ehmmmm
i think
i'll just use vanilla
 
10:58 AM
hi
regrettably, last night's compile failed at the linking stage with some obscure Raspberry-Pi-caused error about __atomic_load_8
so I suppose now I have to fix that
apparently all I have to do is "add set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -latomic") to CMakeLists.txt"
let's try it
 
 
2 hours later…
12:58 PM
okay
this is going to start a massive argument, but I'm doing it anyway
Presenting:
 
I disagree
 
hol'on lemme make the background white rq
 
Switch C++ and C#
PHP should be much further to the left
 
SQL should be moved down the y-axis
 
1:00 PM
ok
 
In what kind of world is Java better than C#
 
lemme get some things out of the way first
1. only languages that I have used are listed here
2. "ease of use" is partially "how easy is it to code in", but mostly "how easy is it to run code written in it"
 
By that metric C should be at the far bottom, it's so hard to get any C prograrm to compile
 
3. weirdness is kinda subjective, take it with a grain of salt (except the ones at the far left)
 
@Ginger how is python in the middle then?
and scratch too
scratch is hella easy to run
 
1:02 PM
4. these are all my personal opinion
 
oh wait i got my axis wrong
17 secs ago, by lyxal
oh wait i got my axis wrong
 
also, some languages are really annoying to use, so the bottom half of the graph could reasonably be interpreted as exponential
 
why is scala below the line? it's as simple as java if you use something like mill
 
@lyxal because of how much of a pain in the ass it was to get it working with replit
and even then it didn't work well
 
skill issue tbh
 
1:03 PM
1 min ago, by Ginger
4. these are all my personal opinion
 
github codespaces would probably be easier
 
going afk for a bit, don't ping me too much :p
I'm not using replit anymore but still
 
@Ginger okay
@Ginger I won't ping you too much
@Ginger ah dang I already have haven't I
@Ginger nuts I've pinged you too much
@Ginger sorry about that
 
I was being serious
 
I know
I just do a little trolling
(just in case you forgot who you were talking to)
 
1:07 PM
@mousetail Skill issue
 
The issue is that most C programs don't properly state what you need to define to actually make them work, and vaguely say "yea you need library X" but no version information or where to find X
 
That’s a package management issue, not a compiler issue
And I have to agree if that’s what you meant
 
Ginger said the difficulty of getting a program to work
 
Programming language tier list

S: Scala, SCSS, Scratch, Swift
A: APL, ActionScript
B: B, BQN
C: C, C++, Cpython, Coffeescript
D: D, Dart
E: Exlir, Erlang
F: F#
I'd have added more, but every tier list I've seen only has those letters
 
We don't have enough SCSS answers on this site
 
2:04 PM
what is SCSS?
Super Cascading Style Sheet?
 
Sass has two syntaxes, one uses indentation and is stored in .sass files, the other uses braces and is stored in .scss files
 
@zoomlogo A CSS preprocessor
 
It has mixings which are like functions so you can actually take input
unlike normal CSS which can only really do kologmonov complexity
 
Well it has functions too
functions are variable(s) -> variable, like CSS min etc, while mixins are variable(s) and/or rules -> other rules
The documentation's example of a custom function is pow
 
2:21 PM
@mousetail oh
i thought it was something separate which transplied to css
 
That's what a preprocessor is
 
Wtf why doesn't Rust have a way to work with individual TCP packets...isn't this supposed to be a low level language?
 
You mean IP packets?
 
No, I mean TCP packets.
 
Like a individual ACK?
You might as well re-implement TCP yourself if you want that
 
2:24 PM
No like the data in the packets
Who the shit thought it was a good idea to represent TCP with a byte stream
 
Because typically the OS handles it
 
I kinda doubt that
I'd expect the OS would send the packets still grouped into packets
 
No it will write it to a buffer
 
Ehhhhhhhhhh idk about that
Even Node gives it in packets
 
...not really. It gives it in chunks but they don't really correspond to individual packets always
 
2:28 PM
Tends to be close enough. If I'm proxying like, SSH, I don't want to have to wait for a zillion keystrokes before some buffer fills up
 
You don't want packets, you just want to read without blocking
 
Read what without blocking
I'm supposed to proxy bytes one at a time?
 
You want to get everything that's in the buffer right now without waiting for more
 
Wdym "right now"...I'm doing this in a loop
Well actually I'm not sometimes
But in those cases what am I supposed to do?
 
Even if you do it in a loop that's what you want
Since a bunch of data can get added at once
 
2:32 PM
Wouldn't that mean busy-looping?
 
Ok what you actually want is to wait till there is at least one thing in the buffer, then read all the buffer
 
Hmm, I'll try that. Thanks.
 
2:43 PM
This seems to work:
use std::net;
use std::io::Read;

fn proxy(mut socket: net::TcpStream) {
    loop {
        let mut b = [0u8; 256];
        let out = socket.read(&mut b).unwrap();
        println!(":? {:?}", &b[..out]);
    }
}

fn main() {
    let listener = net::TcpListener::bind("127.0.0.1:8080").unwrap();

    match listener.accept() {
        Ok((socket, addr))=>{println!("new client: {addr:?}"); proxy(socket);},
        Err(e) => eprintln!("Error: {e}")
    }
}
@RydwolfPrograms this reads about 1 packet at a time
This busy-loops after the socket is closed though
 
@Bbrk24 huh, whenever i used Runnable it worked fine
 
LDQ: What should Rabbit's imports look like? Part of the problem I'm having with my type-resolution system is that I myself am not sure how the imports should work
preferably something simple
 
python style
 
rust-style
import system is the worst part of python
 
@mousetail example?
@mousetail agreed
 
2:50 PM
rust style and java style are the same
 
use module::submodule::{ClassOne, subsubmodule::{SubClassTwo, SubClassThree}}
I don't like the from x import y syntax
 
the other major problem I'm having with this is importing other files in the same module, because those need to be handled completely differently
and I'm losing my mind trying to make it work
 
You shouldn't have different syntax for them
 
@mousetail I don't
 
:thumbsup:
 
2:52 PM
but the way the import machinery loads them needs to be completely different
and because the syntax isn't different I also need to figure out what is and isn't local
 
if you do it right your users won't notice
 
currently I'm working on doing it at all
@Seggan how does Rol handle it?
 
Also please give useful import errors that actually tell where you looked for the file
 
Putting from first in from ... import ... is so silly
 
@mousetail get this: I don't need import errors at all, because carrot guarantees that all dependent modules are available before the program even launches
 
2:54 PM
@mousetail ...yeah you should
Even Rust does that
 
@Ginger I mean compile time errors
 
a running program will never fail to load a module, unless the module itself is broken
@mousetail not compiled :p
 
I mean whenever you check that the module exists
in carrot I guess then
 
@Ginger python style using module; module::whatever() or from module using whatever; whatever()
 
@RydwolfPrograms It's baiscally the same in rust, just need crate::
Not completely messed up like python
Or node
 
2:56 PM
Oh right you still need to use the stuff
 
@Ginger treat them as the same file
 
Was thinking about mod xyz
 
@Seggan whar ?
 
@user Syntactically? No. But they use the same naming for iter methods, have a basically identical async/await system (on the surface), and in various other small ways feel JS-y
 
ok yea mod statements in rust are super weired and I'd like them to be removed
 
2:57 PM
@Seggan using whatever from module would be much more natural
 
why do I need to list every file in my project
using it should be enough
 
@Seggan that's cursed
 
0/10 worst rust feature
 
if you don't like that then I have bad news for you: module statements are going to be part of Rabbit
makes the import machinery less complex
 
@pxeger ah yes true
@Ginger why
 
2:58 PM
@mousetail because you might have modules that export things in the crate, but aren't used anywhere directly in the crate, and the Rust compiler can't distinguish between those and any random .rs files that you happen to have lying around and don't want to include in the project
 
@Seggan the syntax is awful
from using is even worse than Python
 
i switched it around by @pxeger's suggestion
 
better
 
@pxeger Couldn't the use statement just be used for that purpose too?
 
using whatever from module
 
2:59 PM
@mousetail I guess, yeah
 
@Seggan I don't like reversing the order
 
it feels more englishy
 
Yea but less programer friendly
 
00:00 - 15:0015:00 - 00:00

« first day (4443 days earlier)      last day (417 days later) »