3:00 PM
@TimmyD I participate for 1) votes, because they justiy odd username 2) an excuse for making cheese

@Geobits Likewise.
@Downgoat Does this work for "AdBlock" too?

@Geobits when I posted my first challenge it got 30 votes so like the next 5 challenges I posed I was sad they didn't get as many until I realized 15-20 votes isn't so bad

I'm still a bit miffed about the +6 and +9 questions I've asked. All the rest at least got a badge :D

@Downgoat my secret has been discovered!

@Geobits The badge is my threshold for not being disappointed in my challenges.

3:05 PM
Ok, well at least it's not just me then

I seem to have a knack for creating difficult challenges -- most of them have just a small handful of answers.
That's what I used to base my receptiveness on, before realizing that was pretty much fed from HNQ.

I have three challenges at +9. :P

Yeah, most of mine only have a few answers (<5).

2

Let's define the "unwrapped size" function u of a nested list l by the following rules: If l is empty, then u(l) is 0. If l is non-empty, u(l) is equal to the sum of the unwrapped sizes of every element in l, plus one. Your task is to write a program (or function) that takes a list as input a...

3:16 PM
:OOOOOOOO I crossed 500 consecutive days!!!!

I don't know if congratulations or condolences are in order :P
3

Thx :D

Wait, 500 days? You can't have been a member at all much more than that yet. Dude, take a break every once in a while ;)

@Geobits yea I've only been a member 15 days more :P
pls halp I have a problem
5

3:20 PM
I'm up to 12 consecutive now, so I'm catching up.

Oh god that's almost 2 straight years O_O
brb finding life
@Geobits you are catching up in same way I am catching up to Martins'srep :P

Yeah, but all it takes for me to pass you is just waiting for you to miss a single day. Catching up to Martin would be daily work for a long time.

@Geobits well, considering he's at 500 days...that doesn't seem too infeasible

3:35 PM
True. I guess we'll have to find out where he lives and cut the cord.

I've probably said this like 20 times here before, but I love refactoring and watching a bunch of code simplify

I count five :P

4:08 PM
Challenge idea -- a KOTH style game where you need to design a maze-solving bot for, say, a 50x50 maze. The catch is the bot only gets a 5x5 section of the maze each round and has to decide which direction to move, in which case the appropriate next 5x5 section is input the next round. Winner is the bot that can do it in the fewest moves.

@Poke Do you still get message center e-mails?

That would be a code challenge rather than a KoTH. Unless the bots are all in the maze together and can block each other or something.

yeah I agree. You'd also want it to do it on a couple thousand mazes, as the mazes introduce a lot of randomness.

But I like the idea, if it hasn't been done yet.

Yeah. It needs tweaking. But I'm trying to branch out from code-golf, since that's the only challenge type I've written so far.

4:13 PM
the problem of "solve a maze with limited information" has certainly been done (if not on this site, then somewhere else), but usually that limited information is line of sight
I'm not sure how much of a difference line-of-sight makes in comparison to 5x5 squares

Line of sight is certainly harder to specify in a spec.

its not too bad. My pacman challenge had one. The simplest way to do it is say "You get the 3x3 square around you, as well as any lines in the 4 cardinal directions"
and, if you want, you could make each of those 4 lines show adjacent squares as well

With 5x5 squares you could find the goal and some adjacent paths before being able to reach it, which could be interesting.

that's very true
perhaps you make it "Solve a maze in as few "view" requests as possible
aka, they can request to view a square

surely then the winner would do it blind?

4:19 PM
And "solve" means "uncover a path to goal". I like that too!

@Zgarb yeah
@muddyfish touching a wall is death

@NathanMerrill I would even drop the requirement of moving at all. You win when the revealed squares include a path to the goal.

@NathanMerrill Phrase it in the manner of GLaDOS or Wheatley!

@Zgarb Oh, that's a neat twist.
I like that.
That puts a strict upper-bound on the algorithms, too -- simply request every square necessary to reveal the whole maze.

@El'endiaStarman It is in your best interest to avoid touching these walls. That is of course unless you have realized that you will never solve this puzzle and death is the most sane choice.

4:26 PM
I have no problem with you touching these walls. Certainly, it would make both our lives easier. Yours for much shorter, though.

That one's better
> "OK, uhm, to solve this puzzle you need to, uh-- Go touch that wall. No no no, wait that wall. Oh no, that was wrong sorry!"

> The previous test subject to come through here touched these walls. There was an unfortunate occurrence as a result. For future participants safety and the proper continuation of the study, I am instructed to remind you that failure to heed this warning may result in ... death. -GLaDOS

Ahhh that's good.

I like how you can kinda read it in her voice. At least, I can.

Honestly my favorite part of the whole series is when she's really bitter at you so she starts making all these backhanded fat-jokes

4:37 PM
my favorite part of the series is the puzzles :P

I think one of my favorite puzzles is in Portal 2 where you go flying through the hole in the center of the Aperture Science logo.
And now I have Still Alive going through my head...

I sort of ruined the experience of the game because I got too involved in speedrunning it :P

Did you at least experience it properly the first time?

Yeah

The only game I've tried to "optimize" my playthrough on was Mirror's edge
I got nearly 1/2 through without killing/attacking a single person

4:42 PM
I haven't had the chance to play Mirror's Edge, but it looks fun.

I haven't played the second, but the first is rather fun

TAG: The Power of Paint is a similar game, and their work was incorporated into Portal 2.

seriously, though, on youtube, I've only seen one other person try to do it, and he actually skips a portion through a hack
its pretty tough

@El'endiaStarman it is. Highly recommend it

I very briefly had a world record in the original Portal for chamber 15 ;)
And yeah, Mirror's Edge is definitely a lot of fun

4:46 PM
I could not pass Portal 1's level 6

It has a very easy skip :P
You can just shoot a portal on the ground facing the "elevator" you came through, and jump through it with some momentum
You land on the ending platform without any hassle ;P

@NathanMerrill have you seen the speed of zelda ocarina of time speedruns?
or arbitrary code execution in gameboy pokemon games?

yeah

Is Google being slow for anyone else?

now that's speedrunning
@El'endiaStarman yes

4:50 PM
I'm definitely a purist

@Shebang Thanks, I just passed the level! Now let me waste more time in my life

@NathanMerrill Have you seen Darbian's SMB run? He's something like 6 frames behind the TAS speedrun, it's insane

no, but not really interested
speedruns really aren't that fun to watch

@KritixiLithos I finally got to see what level 6 was, and if you passed the level with Shebang's hack, you're gonna have a lot of trouble later in the game.
Portal's first levels in the white/black test chambers effectively form a tutorial.

Yeah, the skip for the second half takes a decent amount of practice.. You should probably play it normally once ;)

5:03 PM
I closed Portal, I have to do homework now

0

Limited-Information Maze-Solving Bot (definitely needs a better title) code-challenge maze Based on a challenge idea I posted in chat and the ensuing conversation. Thanks to @NathanMerrill and @zgarb for assistance in fleshing this out. The challenge There exists a 50x50 maze (size TBD), com...

You haven't seen a speedrun until you've seen a HL1 or HL2 speedrun. Now that's speed
I remember watching a video a while back lamenting over the lack of skill-based movement in modern shooters (and games in general) and I definitely have to agree. There's something delightful about bhopping or pancaking or wavedashing and the like

I don't know what bhopping or pancaking are (though I know how to wavedash).

@quartata isn't that what TF2 is for?

@NathanMerrill TF2 is also 9 years old.

5:10 PM
true, but while I haven't played it, it still seems fairly popular

And although it still has rocket jumping it doesn't have nearly as much movement tricks compared to Team Fortress Classic

Probably a little less popular with Overwatch out now, although TF2 is F2P

@El'endiaStarman Bhop as in bunnyhopping
Pancaking was a thing in Natural Selection 1 where you fly in a zig-zag

I heard that Overwatch was immensely popular, but now, most people have moved on

Overwatch just doesn't work.

5:12 PM
*Ogrewatch

Lemme see if I can find my rant on it
Jul 19 at 15:47, by quartata
The point of TF2 is that it has a minimalist set of classes that all interact with each other

People still play Overwatch

Not a very long rant

I've heard the competitive scene isn't that great though, there's too much going on.

@Yodle Oh sure, but it'll never recapture what it had at launch. TF2 still has about the same population it had at 2012 when it went F2P
@mojimonster Stop changing your name >:U

5:16 PM
I think I read somewhere that they also inflate their ranking system compared to other games. Something like 40-50% of the playerbase is in their middle tier or above, where other games usually have the bulk at the bottom tiers and it gets more exclusive as you rise.

@quartata Never >:D

@Yodle That's pretty odd.

@mojimonster VoteToClose was the best name you had

@KritixiLithos Indeed.

I honestly question the whole "you're in a strict partitioned division and you can only fight people in this division" that a lot of games do

5:17 PM
I'll likely go back soon enough.

Something more fuzzy seems better.
And if you get some extremes in a match, that isn't necessarily a bad thing.

@quartata Well I think Overwatch just has a range on the MMR you can play with (within 1000 for most tiers, 500 for highest). But yeah, I play LoL a lot and they basically limit you within your division + anyone either 1 above or below you, but as you go higher that also decreases.

@quartata sorry to keep bothering you about JavaFX, but I'm struggling to figure out how the "redraw" process. I either need a way to say "This scene needs redrawing" or hook into their application loop to redraw every frame
have you had to work with that before?

@NathanMerrill Are you asking for something like Swing's revalidate()?

either something like protected paintComponent(Graphics g) or repaint()
I'm not sure what revalidate() does

5:21 PM
@quartata Probably meant to reduce curb-stomp matches, which aren't really that fun for either player/team.

ah, I see. revalidate() is for adding/removeing nodes.

@El'endiaStarman Those only occur when there's more than one extreme

I'm not changing the layout, but changing the values inside each of the panes

@NathanMerrill You shouldn't have to explicitly repaint in that situation.

ok, let me put it another way: I have a bunch of Panes that accept an object, and draw out according to that object. When a button "step" is clicked, I know that the majority of these panes will need to re-read their object and redraw

5:26 PM
If you update any part of the pane it should redraw the scene.

so, I want to call some function that says "redraw()" on these panes
right, but step button doesn't know (due to abstraction) which panes to update
and the panes don't know when the step action occurred
I could require the panes to implement an interface with a repaint() method, and call that, but that seems backwards
furthermore, I have a run() function, which continuously runs steps, and I don't want to call repaint over and over. I'm looking to simply hook into the "draw" process, and update the screen every frame instead of every step

This just sounds wrong
I don't know a way to do this but it sounds like the issue lies in the architecture

ok
basically, I want to run a game asynchronously, and have the panes automatically update
running the game asynchronously is easy, but telling the panes when to update is hard

Because you don't know when a pane is active?

no, I literally don't know what function to call on a pane

5:34 PM
Well what are you trying to update in the pane?

for example, a Game map

I'm assuming you have some text fields and stuff right

its a canvas
it has a bunch of characters at x/y positions

Well how are you doing the draws to the canvas normally?
OK, wait
I think I'm confused now

I iterate through each of the points on the game map, scale them to the canvas size, then draw a character for each point

5:35 PM
I was thinking about the tabbed pane thing from earlier

ignore tabbing. I have that figured out, thanks :P

If you're just trying to draw to the pane from another thread, start the thread using Platform.runLater from within the scope of the pane and do stuff normally
If the problem is then communicating with another module that's different
But drawing things should stay in the view code
Sorry, not Platform.runLater. Use a Task

public class GraphMap2DView extends VBox {
private final Canvas canvas;
private final GraphMap<Point2D, U> map;

public GraphMap2DView(GraphMap<Point2D, U> map){
canvas = new Canvas();
this.map = map;

}

public void draw(){
GraphicsContext gc = canvas.getGraphicsContext2D();
//Drawing code
}

}
ok, there's my pane
I've taken out most of the unimportant stuff
my trouble is figuring out when to call draw()

Pick a way to send a message from whatever thread is running the game to another thread that does the draw

and if I'm running lots of steps, when do I call draw?

5:43 PM
JavaFX will handle making the draws efficient
For now just update whatever you want
If you do a lot of little draws it'll get done in one pulse

oh, that's cool
ok, that makes things easy
I knew I was making it too complicated

Basically when you update something in the scene it schedules a pulse sometime in the future.

ooh, I hadn't found that in my searches
thanks
everything I find is either a simple "here's how you draw something on a page" or a weird edge case I don't care about

5:57 PM
I'm one review away from my second reviewer badge, and one answer away from my string silver badge.

To any esolang creators here, how do you make a custom command for running the language, i.e. entering mylang mycode.txt in the console runs the program stored in that file?
Node users preferred, but all advice welcome.

I create a shell file so that I can run sh jgolf.sh jgolf_program.java for example

I was looking at the Jelly repo to figure out how it's done, but I don't understand how you can just call jelly and it will run the Python file jelly.

I think you have to change your name to "Dennis" to be able to do that

6:03 PM
0

Find the "Recursive Size" of a List Inspired by Find the “unwrapped size” of a list. Define the Recursive Size, RS, of a list containing no lists as it's length and the Recursive Size of a list containing any lists as the sum of it's length and the Recursive Size of any lists it contains. For ...

¯\_(ツ)_/¯

@ETHproductions Isn't there a file just called "Jelly" there?

@Yodle Yes there is, but I don't understand why it gets run if you type jelly into the console. I mean, to run a JS file called jelly, you'd have to type node jelly
I guess that's what the #!/usr/bin/env python3 at the top is for?

I just wrote an interpreter online and do all my testing there

Maybe, not sure

6:07 PM

Hey @Downgoat, do you think you could help? I'm trying to make it so that crayon myprogram.crayon runs index.js, rather than having to use node index.js myprogram.crayon every time

@ETHproductions Yes, that's known as a shebang. POSIX-compliant shells identify the required interpreter and its invocation via the shebang, and what *nix uses instead or on top of file extensions.
(For executables, that is.)

Would that be any different on a Windows computer?

For a second i thought you were talking about the user Shebang and got confused.

@ETHproductions yeah windows uses the reg for file extensions

6:11 PM
great :/ I'm really starting to think I should switch to linux

Not the worst idea. I'm pretty happy with it.

Or macOS

You cant switch to OS X. You have to buy a new computer.

You can switch to linux and use macOS in KVM :)

@Yodle yes

6:14 PM
Is there a reason people would answer a challenge but not upvote it? The newest question has 17 answers but only 4 upvotes.

@Dennis Exactly

@Yodle it's a pretty boring challenge

@Poke Did you see Destler's message today?

@Yodle I don't upvote all challenges I answer. Heck I've even downvoted a few I've answered.

^
Many challenges aren't worth upvoting.

6:16 PM
It was fun to answer in brain-flak though

Ah I guess I thought that questions that are worthy of an answer would also be of an upvote, but I can see why not. Also, I guess if you answer more than once you can't upvote again (I see Martin has two)

omg I'm so happy

I also have two

someone just asked me how they can encrypt their messages

Ah yes I see both of yours :P

6:20 PM
Yeah, my answer's embarrassingly long for a language designed to be good at strings, lol

@Yodle I think I turned most of them off. I only receive the security alerts at this point, I think

@Yodle Upvotes aren't mere pats on the back but supposed to sort challenges by quality. For example, some challenges are actually fun or at least could be, but are poorly written, lack test cases, require cumbersome I/O, or have some pointless rule that disadvantages or downright excludes certain languages. In that case, I might downvote and answer the challenge.

@arda use WhatsApp with encryption, of course! /s

@ETHproductions do npm install

mathsy question - is sqrt(x^2) = |x|?

6:22 PM
@muddyfish is it not +-x

@muddyfish yup
that's how its defined
it works with vectors too

@Downgoat Does that do what I need it on Windows?

I'm in the context of lengths

@muddyfish ^2n√(x^(2n)) == |x| and ^(2n-1)√(x^(2n-1)) == x

6:27 PM
@betseg Use MathJax

@ETHproductions I think so but tbh idk Windows is weird

@KritixiLithos This room doesn't have MathJax + most people in this room doesn't have MathJax extension

@Downgoat I'm still getting 'crayon' is not recognized as...

@muddyfish yeah, if you use the dot product for the square, then sqrt(x dot x) comes out to sqrt(x_x^2 + x_y^2 + x_z^2) which is the length of the vector

Can you post content of package.json here?

6:28 PM
@betseg Online mathjax

@ETHproductions yea it should work

I was trying to simplify |1+i*tan(x)| --> sqrt(1+tan^2(x)) --> sqrt(sec^2(x)) --> |sec(x)|

try npm install -g

6:30 PM
@Downgoat That does something, it's now throwing "cannot find module './lib/crayon.js'"
But I guess that's a JS error rather than a shell error, which is good

Add a preinstall script with build command

@betseg beyaz masayla Basi derde girmis kimlerle ugrasiyorum :p

Wait no use prepublish

@Downgoat That didn't help :/
@DrMcMoylex Beat ya ;) i.stack.imgur.com/hTJwh.png

@DrMcMoylex Solution: Don't use strings.

6:34 PM
@Yodle the question is trivial (count left brackets) so it's easier to answer than to upvote

The copter has arrived

@Adnan Oasis don't have a command to push n?

There is a chatroom for Oasis/05AB1E

### 05AB1E - Oasis

For discussing and golfing in 05AB1E and Oasis

6:40 PM
@betseg I ended up recomending signal.

Oh nvm I found it it's n

@TuxCopter Kinda seems obvious in retrospect :P

@Oliver How do you create a program in Dip that can multiply a string? For example, I want to multiply "1" 5 times, how do I do this?

Yay, I finally made an answer in a golfing language not created by me

Which lang?

6:49 PM
Oasis

Everybody's got a golfing language
We need a comprehensive list of exclusively golfing languages

I don't have a golfing language ;( I was gonna make Gava (Golfed-Java), but haven't really gotten anywhere.

> Does not use any built-in libraries that can calculate the factorial (this includes any form of eval)

DiRT 3 is currently free: humblebundle.com/store/…

6:52 PM
@Yodle Correction: everybody's got a golfing language or plans for one

@Yodle I am developing JGolf, golfed Java

Fixed

@Dennis That's literally not even an option

@mınxomaτ I had the game, but I still got a copy. Thanks for informing :)

I think the reason esoteric golfing languages are so prolific is, literally, because they are esoteric.

6:55 PM
I agree. Everyone should just use Java and be happy

Woah, woah, everyone has a golfing language? I didn't know I had one, huh

@KritixiLithos So why bother with JGolf? ;)

"how the heck do you use jelly? i don't even understand it... hey, i'll make my own golfing language!"

I definitely don't have one.
I'd like to keep it that way, too.

@KritixiLithos "1"5*

6:57 PM
@Geobits I wouldn't have had to make JGolf if it weren't for the hard-to-understand esolangs out there ;)

pls
0

Using Ruby on Rails and Materialize CSS, the Roboto font is not rendering. My layout: application.html.erb <!DOCTYPE html> <html> <head> <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %> <%= javascript_include_tag 'application', 'data-turbolinks-t...

@KritixiLithos So you're going to make Java hard to understand? Seems legit.

@daHugLenny What?

@Geobits even I have an esolang, and it's even, because I don't answer on PPCG.

You're doing it backwards :P

6:59 PM
@Geobits JGolf is meant to be simplified Java. It is very easy to understand

Yes

@KritixiLithos > How do you create a program in Dip that can multiply a string? For example, I want to multiply "1" 5 times, how do I do this?

@KritixiLithos I highly doubt it will be easier to understand than Java, but kudos to you if it is.

>>> "1"5*
5