« first day (4422 days earlier)      last day (719 days later) » 

00:30
holy hell
I think it just worked
IT WOOOOOOOOOOOOOOOORKED
@Seggan DANCE PARTY TIME
ginger@gingerdrop:~/Rabbit$ gradle run --args=test.rbt

> Task :run
"Hello, world!"

BUILD SUCCESSFUL in 6s
I have a giant grin on my face right now
time to do a little bit of cleanup and release it to the masses!
@Ginger congrats
i file a copyright claim on 74.382% of your code
time to JAR it up and ship it off
...without static typing?
time to file a DMCA request then
yes, this is an MVP
how did you do it so fast when rol took months
00:44
1. This is an incredibly bare-bones MVP and 2. I stood on the shoulders of giants
or more specifically one particular giant ;)
...wow ;) looks suggestive
wdym suggestive
questionable
im confused
if ;) were a person it'd wear a fedora :p
@Seggan dw about it
what I'm trying to say is thank you so much for all of your help
@Ginger oh you mean the emoticon itself
00:46
@RydwolfPrograms yes lol
I thought you were like, winking in general and commenting that we were all particularly looking particularly questionable today
I can see how that'd be misinterpreted lmao
@RydwolfPrograms ahhhhh
@Ginger yw
i get it
Ginger about to stand on the shoulders of a giant
"My code is stuck in your corneas"
00:51
docs?
@Seggan you called?
no, sorry, the other kind
Ah
Okay then
@Seggan how would you write it, return other.equals(name)?
@Seggan none, good luck!
01:21
I can't vote on my own answers, but this has my +1 — lyxal 2 days ago
Not calling out this comment specifically, I just happened to see it, and it's something I've been meaning to talk about for a while:
If you post an answer to a meta discussion, please only post answers you actually agree with (making these kinda comments irrelevant). If there is actually a significant opposing opinion, then a) someone who agrees with that opinion will post it, and b) they won't be discouraged from posting that because someone posted a single sentence "I agree/disagree with the post" answer posted by the person who started the discussion
01:58
0
A: Sandbox for Proposed Challenges

alephalphaRagged list pattern matching (2) code-golf decision-problem ragged-list pattern-matching This is a sequel to Ragged list pattern matching. In this challenge, the wildcard may match a sequence of items of any length instead of just a single item. Given a pattern and a ragged list of integers, you...

if (other !is Identifier) return false
return this.name == other.name
@Neil ^
if the return was a bit more complex, adding if (this === other) return true could be a useful optimization
02:49
@cairdcoinheringaahing And they'll create a better argument towards that opinion
03:04
// FIXME: This class is held together by an uncomfortable amount of spaghetti. It seems to work, for now, but it's prone
// to error if you look at it funny.
this is a comforting comment
03:43
Is it possible to write a unit test to ensure that, when called with certain inputs, the function under test doesn't halt? Like I want it to enter an infinite loop in some cases
04:12
No
Unless you could peek inside of the function and keep track of all its state to check if it ever enters an identical state twice
But otherwise you're just in halting problem territory right
Yeah that's kinda what I figured
04:28
A possible alternative might be that it runs for at least xxxxxxx steps (or x seconds)
@lyxal :\ was it really two hours...
geez time flies by fast
still not sure if i fully understand the concept but im not about to start that convo again lol
@DLosc :( it was pretty confusing... what can i say...
TIL from __future__ import braces
04:54
the classic
oh yeah and depending on why you want it to loop infinitely you could also refactor it to make the condition itself testable
which may or may not have other desirable effects on the code structure :P
(why do you want it to do that)
@Bbrk24 You could do it the lazy way and simply check if it runs for 5 minutes without halting :P
Unless you're running all the tests on your computer
If your repo is on GitHub, you could have it run all the tests in a workflow there, and only run tests tagged fast on your own computer (I assume your testing framework has a way to tag tests as being fast, slow, whatever)
05:17
@UnrelatedString To test that my interpreter can handle infinite loops in the code it's interpreting :P
@user I actually haven't written any tests or even settled on a framework yet. I was just wondering mainly
0
Q: "Sort" by element duplication

Bbrk24Inspired by one of many bugs I ran into while implementing selection sort in trilangle. Given a non-empty list of non-negative integers, "sort" the list using the following procedure: Find and output the smallest value in the list. If the list only has one element, stop. Recurse on a sublist: I...

facepalm of the day: let gridCopy = [grid.map(row => row.map(cell => cell))];
gridCopy is supposed to be of the same dimensions as grid, and I spent two hours to realize the enclosing [] is the problem
Did you copy it from a list comprehension and not remove them or...?
05:32
no, the elements are plain numbers, so it's doing deepcopy correctly
but then it's enclosing itself in a 1-elem array
also it's JS
Piet editor update: now supports backward label and undo/redo
05:52
nice
@Bubbler JS doesn't have a way to shallow copy arrays without doing row.map(cell => cell)?
There's [...row] which does the same thing but shorter
@user @Bubbler structuredClone, although it's fairly recent
(polyfills exist tho)
@Bbrk24 Nice, clearer too. any disadvantages?
It probably behaves differently for sparse arrays (i.e. [1, , 3])
06:05
Forgot those existed
Cursed
Yeah for sparse arrays it replaces empty slots with undefined
Sparse arrays are weir
@emanresuA Cool
but it's classified as a DOM API and not a JS built-in function...?
very weird
It is in Node 17 though
but not in workers
06:36
@Bbrk24 is that JS?
@zoomlogo Better yet, 1 in [1, undefined, 3] is true but 1 in [1, , 3] is false
...what??
oh because it's an index
not item membership
i.e., 1 in [, 2]
thanks javascript
It's meant for use with objects - "e" in {e: 4, a: 2}
06:45
I would recommend avoiding it. I definitely didn’t have a discord bot that would crash every time you tried to run /__proto__ or anything like that
Use hasOwnProperty instead if you can
I once crashed radvylf's tanks game by naming myself constructor
Moral of the story, use Object.create(null)
And that’s why you use Map instead of Object
or that
Has anyone here actually used the "empty slots" in array feature in JavaScript for some legitimate purpose?
It occasionally can be abused for golf
Using ES6-style classes, you can achieve this with class C extends null rather than calling Object.create
06:51
I'd like to post this sandbox challenge, but currently the tasks "Print the error message <some error produced in X>" and "Evaluate the language X" will have shorter solutions in X than almost any other languages, making many usually correct claims wrong. Any suggestions on how to fix that? Or should these be allowed?
The “evaluate this language” one is only a problem for languages with eval. But yeah, I’m not sure about the error message one either.
It just feels like there are almost no valid solutions
it feels too abstract in a way
@Bbrk24 WHAT
07:03
20 mins ago, by Unrelated String
i.e., 1 in [, 2]
why is it not item membership?
i feel like the original developers of JS were too lazy to fix JS's bugs and advertised the bugs as features
and because of backwards compatibility JS now still has those "features"
It's not a bug at all
As I said before it's meant for use with objects, and arrays are objects
Most cursed things in JS are the result of internal consistency.
Anything with a length is considered a array
-_-
@emanresuA internal consistency results in external cursedness?
and internal cursedness
just cursedness in general
07:19
cursed
08:08
is the rust usize equivalent to size_t?
@zoomlogo conceptually similar, but may be different in actual size
rust usize is always 64-bit in 64-bit systems, but size_t is allowed to be smaller
@Bubbler thanks
09:12
0
Q: Sophie Safe primes

Aitzaz ImtiazDescription Write a program or function that takes in a positive integer \$n\$ as input and outputs all Sophie Germain primes that are safe primes less than or equal to \$n\$. A prime number \$p\$ is a Sophie Germain prime if \$2p+1\$ is also a prime. A prime number \$p\$ is a safe prime as a res...

 
1 hour later…
10:26
KOTH dating game controller
11:06
lol
11:48
well i've been a pretty active user on this site for the past few months, i should properly introduce myself here
i am jacob. i am a student at an art high school. i am mostly an artist but i like coding as a hobby. ok i think that's enough
hi yes hello
oh also my time zone is est
established when?
hello 👋
Do you enjoy fractals?
11:51
?
i suppose
They are like the overlap between coding and art
lol
i don't know many but they are a nice concept ig
shit you got me
now you know about me :p
lol
At least make the link different

Meme Economics by Ginger and Lyxal

Mar 2, 2022 at 12:19, 15 minutes total – 34 messages, 4 users, 6 stars

Bookmarked Mar 2, 2022 at 12:38 by Ginger

you might find that conversation of use
Mar 2, 2022 at 12:22, by lyxal
Here's the number one takeaway: don't be a sussy baka by devaluing the rickroll further than doge coin. "Rick low and roll high" as they say at Dankford University™
@mousetail sorry here's the real link
that's the takeaway message
understood
11:57
good
it's an important lesson for all to learn
you don't go baiting someone who just baited you, because obviously they'll be expecting a rickroll back :p
exactly, couldn't've'd said it better myself
i forget, is this room tolerant of exessive emoji usage?
oh wait, I did
@Jacob depends on the relevance
12:20
@lyxal have you tried Rabbit yet?
I'm looking for MVP feedback
:thonk:
ignore that
it's probably because it contains a JAR
actually it's because it's served from http while chat uses https
@lyxal me when I forgor certificate
so how do I run it
12:22
regardless, you have my [Special Guaranttee]! that it's safe
16 secs ago, by lyxal
so how do I run it
well then
8 mins ago, by lyxal
16 secs ago, by lyxal
so how do I run it
12:41
¿ is an interesting character for assigning an up-trigraph or a down-trigraph to. On one hand, it's got what you might consider an updot like other updot letters. On the other hand, it's upside down in nature, so you might consider it downdot
13:19
@lyxal sorry, was afk
so, uh, let's see here
bingus
too late now
12:20am
I think you can just run the JAR in the lib/ folder of the downloaded zip
is almost going time
aw
also I should probably do a little trolling testing myself
o/
13:20
\o
so, who else wants to try out my [Shiny Laminated Prototype!]
I require feedback so I know what to add to my next MVP iteration
14:01
okay, we can do math now
this is good
(if very janky)
14:44
@lyxal It's a bridge between the updot and downdot realms.
You can only traverse it if you are pure of heart and meet a witch deep in the dark forest on March 9th of any prime-numbered year.
It takes you to an identical world, different only in that Jelly, Vyxal, Husk, and Ash all use updots where they used downdots and downdots where they used updots
I think I'm about to rewrite sock² in Rust
Its reliability is...less than bulletproof right now
I have to turn it off then back on again every morning to get TNB to load the first time
15:23
0
Q: I don't like sand. It's coarse and rough and irritating and it gets everywhere

undefnedThe goal of this challenge is to identify if "sand"(not case sensitive) is in a string, and if so, output Anakin's famous quote from Star Wars. If not, do nothing. "I don't like sand. It's coarse and rough and irritating and it gets everywhere." -Anakin Skywalker (The quote you will be using) Tes...

@NewPosts VTC as "boring"
15:49
0
Q: Consider supporting Programming Language Design and Implementation on Area 51!

Rydwolf ProgramsInterested in designing or implementing programming languages, including golfing languages? Or have strong opinions about either? Consider supporting Programming Language Design and Implementation, a proposed Stack Exchange site, over on Area 51 (Stack Exchange's new site proposal system)! Follow...

16:02
@Seggan how do annotations work in Kotlin? I want to use them to replace my current (extremely janky) system for Rabbit/Kotlin interop
17:00
nvm figured it out
Node Version Manager works with Kotlin?
Officially, nvm doesn't stand for that
wait no
I'm thinking npm
ignore me
I don't know if there's something wrong with my installation or what because nvm is absurdly slow on this machine
Here's an excerpt from my .bash_profile, with comments that illustrate what I mean:
load-nvm () {
    \. "${NVM_DIR}/nvm.sh" # This takes about nine seconds :/
    # \. "${NVM_DIR}/bash_completion" # This takes two more, for little benefit
    nvm set-colors gmmrB >/dev/null
}
time nvm ls takes 28 seconds
17:20
0
A: Sandbox for Proposed Challenges

97.100.97.109Mapping Passing Through Point open-ended-function (Inspired by this challenge.) Given six real values in three pairs: \$(x_1, x_2), (y_1, y_2),\$ and \$(x_0, y_0)\$, create a function which maps between \$(x_1, x_2)\$ and \$(x_1, x_2)\$ which also passes through \$(x_0,y_0)\$. In other words, mak...

18:10
@Bubbler these days JSON.parse(JSON.stringify(numericArray)) works almost as well
@Ginger Me
Gimme teh codez in a runnabel formattt
18:40
0
Q: Guessing on straws

lesobrodDedicated to Martin Gardner, taken from his book Background In the old days, the Slavs had such divination. One girl was clutching six straws in her fist, and her friend was pairing first the top and then the bottom ends. If all straws were ring-tagged, the girl would be married. Goal of challen...

@RydwolfPrograms one second, lemme JAR it up
advance warning: it can only do addition, subtraction, and printing
@Ginger As long as you don't
it's an MVP, what do you think I did
Okay so how do I run this
uhhhhhhhhhhhhhh
one second plz
@RydwolfPrograms you should just be able to extract the zip and run the script in bin/
(as long as you have a JRE on your machine)
18:53
Oh just ./Rabbit?
No REPL smh
nope! that's a later thing
line 1:0 missing 'module' at 'ur'
line 1:3 extraneous input 'mom' expecting NEWLINE
line 2:0 mismatched input '<EOF>' expecting {'import', 'from', 'main', ACCESS_MODIFIER, 'function', 'operator', 'static', 'override', 'abstract', 'struct', 'trait', '<'}
Exception in thread "main" kotlin.NotImplementedError: An operation is not implemented.
        at community.rto.ginger.rabbit.tree.untyped.UntypedPass.accept(Node.kt:21)
        at community.rto.ginger.rabbit.tree.common.NodeVisitor.visit(Visitor.kt:8)
Success
Okay so what does a HW program look like in Rabbit?
me when extraneous input 'mom' expecting NEWLINE
module hello

main function helloWorld():
    print("Hello, World!")
@RydwolfPrograms ^
did it work? I will be very sad if it did not work
radvylf@penguin:~/Rabbit-shadow-0.0.1mvp2/bin$ ./Rabbit ../rabbid
"Hello, World!"
Yep
18:57
Why are there quotes tho lol
Also this is really making me want to start on an rSNBATWPL-like
Getting a praclang working is so much fun
@RydwolfPrograms because of how I implemented the toString() function for PrimitiveType :p
also, how fast was it? because it's slow as frick for me
real    0m0.431s
user    0m0.776s
sys     0m0.066s
huh, guess it's just me then
maybe it's Gradle being weird
You're still lagging pretty far behind Python tho
real    0m0.030s
user    0m0.019s
sys     0m0.004s
@RydwolfPrograms Python's optimized, I'm not
18:59
(for time python3 -c 'print("Hello, World!")')
it can also add and subtract integers, but that's about the limits of its capabilities
I'm currently doing a little trolling so that it can write (part of) its own code
@RydwolfPrograms I wonder how much of this is parsing and how much is execution...
I should name my next rSNlike "krvina vintso"
Which roughly translates to "blood"
Fun fact: Three dyads and one nilad can be rearranged into 120 different programs which take two implicit inputs
@RydwolfPrograms My python is way slower than that, it takes 0.173 seconds to run the same command
I'm on 3.9.2, with an i5-1135G7
I'm on 3.9.6, with an i7-10750H
But also python3 is an alias for /c/Windows/py.exe, so I'm invoking a Windows executable indirectly in bash. That might be part of it
19:14
Yeah I'd bet that's it
yeah, if I open Powershell and run Measure-Command { py -c "print('Hello, World!')" } that's 0.049 seconds
19:28
huh, I wonder how fast WSL is.
I'm not using WSL, I'm using git bash
19:44
I didn't think you were, I was just wondering how much slower it would be than good old cpython
20:12
LDQ: Backslash escapes or CSV-style?
CSV-style means that newlines in a string are encoded as newlines in source, which is really annoying in some cases. For that reason alone I prefer backslashes
20:29
^
21:08
@RydwolfPrograms Backtick escapes
TBH I wonder if having two different, interchangeable escape characters would be a good idea. Escaping backslashes with more backslashes gets unreadable pretty fast, particularly if you have to escape them twice because your string literal is actually a regex.
What if backslashes were \s instead of \\
The advantage of that being parsing string literals with regex and stuff
You don't need to count backslashes
@RydwolfPrograms My brain immediately parses that as the regex for matching space characters--maybe not the best abbreviation
But possibly something like that could work
Backslash-space maybe?
Hmm
21:12
"C:\ Windows\ System32\ "
"C:`\Windows`\System32`\"
For one thing I wrote, where the input was largely going to be JS string literals, I decided to use the percent sign as the escape character. If I used backslash for escape then I’d have to type too many of them
@RydwolfPrograms What would CSV-style as a string syntax look like, actually?
As in just "" is the way you write a quote within a string
And I guess newlines would be represented with a literal newline since there's no way to include escapes
21:19
To be clear, I don’t have an issue with allowing new lines like that. Sometimes it’s nice. But requiring it can be frustrating
Well it's not required in the sense that you can add newlines through concatenation
I don’t write ruby very often. When I do, I usually forget the commas between function arguments, and I’m consistently surprised that ruby does c-style string literals concatenation
22:02
@RydwolfPrograms Oh, okay. I'd've called that SQL-style.
How would you do nonprintable characters, then?
@Bbrk24 Python does that too
Ctrl-Opt-[letter] on Mac. No seriously, CSV just keeps bytes like U+0002 as the unprintable character in the text
 
2 hours later…
23:53
@RydwolfPrograms hey that's what I asked! :p
@DLosc this is the problem with LDQs and language design discussions in general. People keep suggesting things that I think are a good idea and then I get sidetracked by implementing those features :p

« first day (4422 days earlier)      last day (719 days later) »