« first day (4079 days earlier)      last day (771 days later) » 

12:03 AM
@Bubbler Oh, that's an interesting structure!
 
12:16 AM
ello
 
hello
 
any easy qns tdy?
hmm
nope
 
this might be stupid question, but how to swap the top two elements on the stack in piet?
 
12:32 AM
I solved Semantle #61 in 14 guesses. My first guess had a similarity of 4.33. My first word in the top 1000 was at guess #11. My penultimate guess had a similarity of 86.44 (999/1000). semantle.novalis.org
I was so lucky
My last four guesses were 739, 811, 999, 1000
 
pretty useful tool to quickly debug piet code: gabriellesc.github.io/piet
4
bruh i got 739 on guess #1
holy, 919 on guess #4
how do yall make ur piet code so compact, mines is so wide
 
@AidenChow lmao nice
 
Despite the fact that it really isn't an hour later
it's just staying there
 
1:00 AM
Sandbox posts last active a week ago: (untitled)
 
It's still there
just sitting there
everything goes above it
nothing is an hour later
does that mean we all die within the next 60 minutes?
 
Yes
Farewell fellow golfers
 
@AidenChow It's not a stupid question at all--in fact, there doesn't seem to be a Swap builtin. I think you have to use the Roll builtin, which I've never used before and looks intimidating. You can probably simulate Swap by pushing two specific numbers and executing Roll, but I'm not sure from reading the description exactly which two numbers those should be.
 
@AidenChow Push 1, Push 2, then Roll I think?
 
is there a visual interpreter for Piet somewhere? it's hard to figure out some of the behaviours from text description alone
 
1:13 AM
Actually it's Push 2, Push 1, then Roll
You can pass -t to npiet
Most of the online runners seemingly went nonfunctional, which is unfortunate
 
@JoKing i found one here: gabriellesc.github.io/piet
 
just an ide not an interpreter afaict
 
Looks like you can run the code by clicking on DEBUGGER on the right side
 
also anyone know why this ascii piet code prints out two random question marks out of nowhere using dloscs tio link, but the exact same code on npiet doesnt print out those two question marks
tt qqi eeuL
ttliamtqimqqijsqsfe U
t ii qq fabS
 
@AidenChow Nice find! I had run across that before, but it's not linked on the Esolangs page. I'll have to fix that.
 
1:18 AM
yeah, the only issue with it is that u have to clear the entire program in order to resize the board :\
and the export to png button is not working for me either
but otherwise its good for visualization
@AidenChow anyone know why this happens??
 
@AidenChow Can you post just the code and use fixed font so it lines up correctly?
 
oh yep it looks like it truncated the spaces
also idrk how to do loops in piet so thats why the code is pretty long :\
tt        qqi     eeuL
ttliamtqimqqijsqsfe  U
t ii      qq      fabS
supposed to print Lololol.... infinitely
 
Don't use uppercase when you're writing code as a grid
 
@Bubbler I think it doesn't matter if you uppercase the last character on a line, actually
 
^ picture of the code
when run on npiet it seems to work fine (other than the warnings of course)
like there are no question marks
 
1:24 AM
q->s on the second bridge is InChar
 
@Bubbler crap, thats the problem
translated the image to ascii piet wrong smh
 
and s->f is InNum
both of which seem to produce ?<space>
 
@Bubbler the s is supposed to be r
that was the problem
just me putting down the wrong color :P
 
Seems to work, nice
 
also i feel like its so long, any obvious golfs
 
1:27 AM
For one thing, I'd suggest 2-row layout instead of 3
 
@allxy A golfier encoding is definitely possible; I chose the encoding I did because I wanted one character per codel (which I achieved, but also inadvertently added a way to leave black codels at the ends of lines out of the encoding, so... ¯\_(ツ)_/¯)
 
@AidenChow I easily got to 48 codels while yours is 66
tttliamtqimqqijsqrfeeeul
tt ii    qqqqi     fabsu
The flow is exactly the same
 
@Bubbler ayo what, how does that work
 
I just reshaped some areas in your code
 
hmm ok thanks
 
1:54 AM
I'M BACK!
 
@Bubbler could u briefly explain what roll does, i cant really understand it after reading its description
 
@MarkGiraffe Hi Back!
 
Nice.
Dad jokes.
I love that.
 
@MarkGiraffe back from where???
 
1 year.
 
1:55 AM
Welcome back
 
Dang.
 
@DLosc No way, that's awesome! Lets's get it up on tabl!
 
I don't think I'll be as active on this place now that I'm mostly a Discord chatter.
And, uhh...
I started doing other stuf on the internet.
 
@MarkGiraffe And YouTube by the looks of things
 
@lyxal Lmao, just realized that can be read two ways...
@MarkGiraffe Oh?
 
1:56 AM
@lyxal Looks like you figured it out. OMEGALUL
 
@AviFS I'm just gonna pretend it was intentional and not at all accidental
 
The name's kinda ironic though, Lyx.
It's mostly Twitch streaming at this point. KEKW
 
@MarkGiraffe pretty easy given it's in your discord username
 
@lyxal I won't tell :p
 
@lyxal Fair enough.
What changed? I haven't been here for a long while.
I still remember Avi, Redwolf, Neutrino, the bots, Caird, and Lyx.
There might be more I'm missing. lol
 
1:59 AM
Not much major happened after you left
 
I saw that the "Account" page got a redesign.
Ethereum still has no site design. Sadge
 
@MarkGiraffe a lot of things got redesigns people weren't happy with
The most recent one happening yesterday
 
Wait, what?
Hold on, I'll check the main Meta.
 
That's the nest part... They didn't announce it
It just happened
No warning or anything
It just changed
 
(._. )
 
2:02 AM
And there's still no word on why they did
 
What was it?
'Cause I'm clueless as heck.
 
The top bar where the rep, badge count etc goes
 
@AidenChow Pop n, pop m, grab the next m values on the stack, and rotate it n times. So if you pushed 1..5 and then push 3, push 1, then roll, what you get is: [1, 2, 3, 4, 5] -> [1, 2, [3, 4, 5]] -> [1, 2, [5, 3, 4]] -> [1, 2, 5, 3, 4]
 
Pepepains
 
2:18 AM
my shift tac toe challenge a while back: codegolf.stackexchange.com/questions/208944/… was a flop, but do u guys think that a koth challenge for the tic tac toe variant would be interesting (or would it just be a solved game with answers doing nearly identical stuff)?
 
0
Q: Numbers in 2050

ShibIt's 2050, and people have decided to write numbers in a new way. They want less to memorize, and number to be able to be written quicker. For every place value(ones, tens, hundreds, etc.) the number is written with the number in that place, a hyphen, and the place value name. "zero" and it's pla...

 
 
1 hour later…
3:35 AM
0
Q: Tips for golfing in Piet

Aiden ChowPiet is a stack-based esoteric programming language in which the programs are meant to resemble abstract drawings. What are some general tips for golfing in Piet? As usual, please keep the tips somewhat specific to Piet, and one tip per answer.

 
hey guys i made a piet program
(its scaled)
 
@PyGamer0 . . .
lol
 
:(
 
3:56 AM
i fixed the scaling :P
 
Oh god this is hideous
 
the amount of times I've tried to write console.log in Java when it's actually System.out.println is annoying
 
lol
@des54321 but does it work?
 
@PyGamer0 good question, lets find out
 
it runs, but it results in a never ending program
 
4:04 AM
it works though
 
it seems to be an infinite no-op loop, which seems like the easiest program to create in piet
 
> amogus.png
 
ok now the challenge is to make this into an actual program that stops, while still looking like amongus
preferably smth that prints out "sus" or smth like that lmao
 
printing sus would probably be difficult, although that is only 2 charcodes you have to create
i should actually get into properly trying to learn this piet thing, what was the best interpreter/editor that someone linked here?
 
4 hours ago, by Aiden Chow
pretty useful tool to quickly debug piet code: https://gabriellesc.github.io/piet/
this?
its a pretty good tool, tho the export button doesnt work for some reason
u can also use ascii piet, dlosc has a tio link on that on the starboard
 
4:13 AM
There is no event you need to be concerned about next Thursday.
4
 
@AidenChow oh that looks very good! ty
 
@des54321 np, its good for debugging, but its a bit inconvenient when u actually want the image becuz the export button doesnt work (at least for me)
@RadvylfPrograms next thursday as in april 7th?
guys could someone let me in as to what next thursday is
 
not me
because I don't know either
 
then why are ppl starring the msg???
 
¯\_(ツ)_/¯
 
4:28 AM
I certainly am not good at piet, but im currently having fun trying to write my own hello world program
I'm most of the way through "hello", but I have realized that I'm pushing things in the wrong order for a stack, so I'll have to reverse the stack somehow or re-organize this all
 
Try printing as you create numbers
 
@des54321 uh ig u can use roll to reverse the list, but im not too familiar with how it works. bubbler explains it this way:
2 hours ago, by Bubbler
@AidenChow Pop n, pop m, grab the next m values on the stack, and rotate it n times. So if you pushed 1..5 and then push 3, push 1, then roll, what you get is: [1, 2, 3, 4, 5] -> [1, 2, [3, 4, 5]] -> [1, 2, [5, 3, 4]] -> [1, 2, 5, 3, 4]
maybe u can rotate the entire stack in such a way to reverse it??
 
Reversing with roll will take lots of rolls though
 
ok ig not then lol
just an idea
 
To reverse 5 items, you need to roll with length 5, roll with length 4, roll with length 3, ...
 
4:33 AM
yeah, rn I'm actually trying to print each char at a time instead of pushing the whole thing and then printing it, although now I dont think i understand where the pointer starts
 
@des54321 pointer starts at top left
 
Top left, facing right
 
with the direction pointer pointing right
^^
 
@AidenChow really? thats what i thought, but it seemed like it was starting somewhere weird
im sure more trial and error will make me understand this better
 
@des54321 could u share the program u have so far? it should always start at top left
 
4:36 AM
I need some debugging advice.
The inputted value was 56.
 
@AidenChow i'm rewriting things, i think i understand things a bit better now
 
@MarkGiraffe I'd add some prints at each of the []s, and compare them with what you expect
If in doubt, spam print :p
 
Alright.
Found the problem.
:thinking_face:
Code works now!
Time to post.
@RadvylfPrograms Thanks for the help!
 
4:43 AM
also console:
 
ಠ_ಠ
 
man controlling where the pointer goes in piet is HARD
 
I solved Semantle #61 in 39 guesses. My first guess had a similarity of 9.34. My first word in the top 1000 was at guess #2. My penultimate guess had a similarity of 21.01. https://semantle.novalis.org/
bruh second guess was 976
 
Have you guys caught up with the Wordle stuf?
 
5:00 AM
I gotta say this piet debugger doesnt actually work that well for debugging, the breakpoints and pausing execution simply doesnt work
 
please SE undo this cursed abomination
 
ikr it's so ugly
 
it's worse than trying to do anything with raw HTML elements and javascript which is worse than trying to make a web app with Java
CMC: Determine if all items in a list are unique
 
=Q in jelly i think
 
in my messing around with piet so far i have figured out one thing: the halting problem is simple: your code never halts, until you dont want it to
 
5:07 AM
@lyxal Big vouch.
 
@lyxal looks like we traveled 10 years back in time (to get that cursed top bar)
 
Desmos, 29 bytes. Returns 0 if all items are unique, some positive integer otherwise: f(l)=l.length-l.unique.length
35 bytes to return 0 and 1 instead: f(l)=sign(l.length-l.unique.length)
 
@des54321 well there are a bunch of other tools in dangermouse.net/esoteric/piet/tools.html and on the piet esolangs page, maybe u can find a more suitable tool for u
 
5:22 AM
my hello world piet program is about half working, but im running out of space, its also after 1 am in my time zone, so i think im getting to bed and ill look at this more tomorrow
 
@des54321 :\ it printed out some gibberish to me
 
oh yeah it just creates gibberish, but it pushes just about all the correct values onto the stack
and then i get up into that tiny area with all the different colors and i have to somehow push the last value (72), and print out all the characters, and then terminate the program
also now that im properly looking at some of that i dont understand what its doing anymore
why is that long red line long
 
@lyxal U=in flax i think
 
5:44 AM
i wonder if mods had to deal with chat flag spamming..
 
i mostly ignore it
 
6:00 AM
it doesnt irritate you?
 
6:23 AM
u think its possible to write a quine using ascii piet?
seems insanely hard to do
 
@allxy ⁼Q or ; vectorizing equals isn't quite what you want :P
 
6:40 AM
@AidenChow A trivial way would be to introduce a ridiculously large constant block, whose size encodes the rest of the program
 
you might also encode it as a binary series + a decoder
 
That could work but the color change is a bit annoying
as in, the same command sequence gives a different sequence of colors based on the previous color
nonlinear mapping of hue offset to characters too, though DLosc might change it
 
reset with white? like (white, 1/2 colours, push)+
 
Hmm yeah, that works
 
23
Q: What happened to Doorknob?

Wheat WizardBefore anyone asks this question I'd like to get it out of the way: If I go to the moderators tab I don't see Doorknob any more: He used to be a moderator here, but now he's not. What happened?

Would this mean a new election?
 
6:46 AM
Not necessarily
 
Is there some sort of minimum number of moderators?
 
I think the election is run only when the site isn't adequately moderated by the current ones
 
That makes sense...
 
7:06 AM
AYYYYYYYYYYY
I solved Semantle #61 in 19 guesses. My first guess had a similarity of 41.95 (739/1000).My penultimate guess had a similarity of 86.44 (999/1000). https://semantle.novalis.org/
feeling so lucky rn
 
Thanks for the reminder
 
@UnrelatedString yeah
 
7:29 AM
my first guess today was an 11.74 and i still haven't beat it at guess 16 :(
 
8:05 AM
CMM: Can python solutions return generators?
 
Yes.
 
ok
 
> t f = foldr ((:) . f) []
tfw you accidentally reinvent map
 
Technically it's a little more general than just map.
Since it can operate on any Foldable.
 
8:21 AM
Oh, so it takes any Foldable and gives a list
 
Wordle 285 5/6

⬛⬛🟦⬛⬛
⬛⬛⬛⬛🟧
⬛⬛⬛⬛⬛
🟧⬛⬛⬛⬛
🟧🟧🟧🟧🟧
@pxeger why do u need another map
we're not treasure hunters
 
I didn't really mean to, it just happened
 
Please apologize.
 
I'm very sorry
(to whom am I apologizing?)
 
Yourself.
 
8:27 AM
Well in that case I do not accept my apology
 
what lol
@pxeger what is :?
 
cons
x : [y, z, ...] is [x, y, z, ...]
 
@pxeger Me, for this confusion.
 
It's an infix, so when you enclose it in parentheses (:) you get a function that takes two arguments and combines them. (:) x xs = x : xs
The statement is definitely a bit beyond the beginner level of Haskell.
 
@pxeger is that append?
 
8:40 AM
prepend
 
why even make a second map
 
x : list is "prepend x to list"
 
haskell has a map primitive
@pxeger so list : x is append
 
> accidentally reinvent map
 
@PyGamer0 what were you doing to reinvent map
 
8:41 AM
- pxeger
 
@SegFaultPlus4 No, connecting two lists is list1 ++ list2
 
@WheatWizard I mean, if you consider foldr as deconstructing a Foldable and reconstructing it as something else, then it makes sense that foldr (:) [] deconstructs a Foldable and reconstructs it as a list. Then by inserting a function before (:) you can map the items of the Foldable in between deconstruction and reconstruction
 
and there's no append
you need to do list ++ [x]
 
Haskell is confusing
 
It makes a lot more sense that way.
 
8:42 AM
@Bubbler @SegFaultPlus4 This makes more sense once you realise that Haskell's lists are lazy and often infinite
 
appending in Haskell is often a sign you've constructed your algorithm wrong
 
@pxeger so you should never need to append unless you're doing something wrong
 
Well, not never, but in many cases
 
@Bubbler what is that ++ ?
 
++ is concatenate
 
8:44 AM
[1, 2] ++ [3, 4] == [1, 2, 3, 4]
 
how many operators are there in haskell?
 
Programming in haskell is (IMO) more similar to programming in golfing languages or APL/J/K than programming in conventional c-like languages, because you're combining builtins to fulful a purpose instead of using loops and mutable arrays or whatever
 
@PyGamer0 Lots. You can also define your own operators
 
@PyGamer0 A lot by default, theoretically infinitely many
 
@pxeger so i can have an operator like +---+ ?
 
8:45 AM
Yes, you can define it
 
omg
how?
@Bubbler uh is there a list of operators documented somewhere?
 
Something like a+---+b = code right?
 
@emanresuA def lazy list
 
does haskell automatically infer the type of functions?
 
8:48 AM
@Bubbler should he a - b - a - b + a
 
@PyGamer0 Yes
 
ok
im pretty sure i had installed haskell on my computer...
 
I've tried
and failed
 
i cant check right now, my brother is playing \o/
 
@PyGamer0 Idk, you'll need to manually gather the operators on this page
 
8:49 AM
@emanresuA why?
 
@SegFaultPlus4 Lists in Haskell are not evaluated immediately. For example, you can have the list [1..] which is all positive integers; clearly, not all the integers are evaluated, but you can still operate on the list like take 10 [1..]
 
@PyGamer0 It's notoriously difficult to install and I gave up
 
What OS?
 
@pxeger but what if you wanted the 43rd element
 
@emanresuA it was easy for me...
 
8:51 AM
@SegFaultPlus4 [1..] !! 43
And then it will only evaluate upto the first 43 items
 
Jan 27 at 4:32, by Bubbler
Seems like ghcup is the way
 
ok
what if you wanted the last element
 
If you're on Linux, I think Docker is a great way to try out software without difficulty installing it
 
I wonder what Vyxal would be like implemented in Haskell
 
Or Nix, but that's pretty advanced
@SegFaultPlus4 last [1..]
(although that will never give you an answer, obviously)
@emanresuA Probably a bit like Husk
 
8:53 AM
@pxeger haskell has lazy evaluation...and is that an infinite lazy list?
 
Well-typed, flawlessly lazy, and difficult to use.
@PyGamer0 Yes
 
@emanresuA Hyxal
@lyxal ^
 
Whyxal
 
@SegFaultPlus4 The reason this can't be both append and prepend is that if it were the statement [[]]:[] would be ambiguous. It could be "prepend [[]] to []" which would give [[[]]] or "append [] to [[]]" which would give [[],[]].
 
that seems ambigiuous
 
8:56 AM
@PyGamer0 To be more exact, infinite lazy list is a consequence of lazy evaluation
 
is the $ a separator, which means head $ <evaluate this first>?
 
$ is just like using parentheses
head $ xyz is the same as head (xyz)
 
so 1+$1+$1+1 would be 1+(1+(1+1))
 
No, $ is an operator on its own, and you can't mix operators and operators like that
 
8:57 AM
then?
 
That tries to use the +$ operator, which does not exist.
 
oh ok
 
(1+) $ (1+) $ 1+1 is one possible equivalent code to 1+(1+(1+1))
 
But even if you added a space Bubler is correct that you can't mix operators in that way.
 
fun fact: $ is just an infix form of the identity function id
 
8:59 AM
That's stretching the truth a bit.
 
modulo eta expansion/reduction
 
@WheatWizard How so?
 

« first day (4079 days earlier)      last day (771 days later) »