« first day (1284 days earlier)      last day (3542 days later) » 

5:00 PM
newlines are evil in flat text communication
avoid multiline messages wherever possible
up to and including disallowing them
 
@Sparr I agree for the most part.
And I'd have no problem disallowing them and/or making \n a terminal character.
 
what about posting code? pastebin?
 
@cjfaure code for what?
those frameworks?
GitHub
 
github for all things
 
^ this
 
5:04 PM
even just for pasting, put it in a gist so we can fork it
 
^ this, too
 
minor exception for live html+css+js which belongs on something like jsfiddle
 
I have a fake internet identity (not this one) and since one person can only have on gh account, I use Bitbucket on that one ;3
 
although for small things you can even hack github into displaying your raw HTML pages :D
 
5:05 PM
github.io is something I'm working on figuring out
 
@cjfaure did they make you send a copy of your passport when you signed up for github?
 
Wait, there are fake internet identities? :o
5
 
@Sparr github.io is great! :) ... and it's so simple
bits of bacon still rolling
 
@MartinBüttner no, though there's currently no way to possibly associate me with that id and if i got 2 gh accounts, the could just check the ip
github is so much better than bitbucket :c
like midori is good on osx but not on windows
 
@MartinBüttner forking a project with a github.io website as part of it is not as straightforward as it should be. I encountered this while forking 2048
 
5:09 PM
Hmm. github ToS says you can have more than one account, just not more than one free account :D
 
@Geobits what a technicality! o: I don't need any gh premium features though
i love github enough to buy it just for the 2 accounts, i just don't have any money
 
@Sparr hm okay... I did fork 2048, too (or rather I forked a fork of it)... but I don't remember any problems
 
ok, I've forgotten the details...
can you point me to the github repo for gabrielecirulli.github.io/2048 ?
I don't think it's github.com/gabrielecirulli/2048 because that's not a github.io repo
 
ahh, yes, that was the catch
having to clone that branch
which isn't mentioned on the "how to make a github.io" instructions on github.io
 
5:21 PM
but doesn't it say "just push to gh-pages"?
well I've got to catch a train
see you later
 
@MartinBüttner @cjfaure If someone makes me a subtractor function, I've got a divider function:
di:
P1 I1 .. I2 P2 .. .. .. ..
\f .. .. .. /f .. .. .. ..
.. .. .. D1 .. .. .. .. ..
.. A .. A .. .. .. .. ..
.. .. Ma .. A .. .. .. ..
.. .. .. D1 .. .. .. .. ..
.. .. .. /f .. /f .. .. ..
.. .. == .. /f .. .. .. ..
\f .. S1 .. .. .. .. .. ..
.. \f U A .. .. .. P3 ..
.. .. .. .. .. .. .. 01 ..
.. .. .. .. .. .. .. S2 ..
.. .. Su .. S2 .. .. A 00
.. .. P1 .. P2 .. P3 .. S1

Ma:
.. P1 I1 .. .. .. I2 P2 ..
.. .. A .. .. .. A .. ..
.. -- .. S2 .. S1 .. -- ..
.. .. .. \f .. /f .. .. ..
.. >0 .. .. \t .. .. >0 ..
di divides
Ma returns the max
Mi returns the Min
== returns 0 if the inputs are equal and nothing if they aren't
 
is there a spec for this language anywher?
it seems like you've got a lot of syntax flushed out that I didn't see discussed here
 
I think the spec is the last 24hrs of chat...
3
 
@Geobits that...is sad
 
I haven't seen anything else, at least.
 
5:24 PM
i'll probably try to write some docs later but i digress
 
@overactor be sure to hit the 'fixed width' button on pastes like that
 
Nah, don't write docs. Just add a documentation link that sends people to the chat room transcript to infuriate them.
 
@Sparr But, I had 4 spaces...
 
Did you have four spaces on every line?
 
it has to be every line of the whole entry in chat, not just blocks of lines
 
5:29 PM
It's easier to paste the code as a separate block and either ctrl-k or hit the fixed-width button.
 
aye
I finally realized I can use the {} button on the SE editor instead of replacing ^ with four spaces in my editor before copying code :)
 
5:47 PM
0
A: Proposed Question Sandbox - Mark XIV

professorfishSteal Personal Data code-challenge UNDER CONSTRUCTION (please do comment/vote) Your task, as an employee of a certain nefarious corporation, is to write a program which will look through files on the computer it is running on and parse them in order to find personal information about the comput...

 
Just read dining philosophers
I think its a fantastic challenge
 
where?
 
@Rainbolt
 
like, the conceptual idea, or specifically a codegolf submission?
 
0
A: Proposed Question Sandbox - Mark XIV

RainboltDining Philosophers (Incomplete) Please do not vote or comment yet. Introduction Cooperate with other Philosophers in order to eat your dinner as quickly as possible. Game You will be randomly paired with two other philosophers. Each philosopher begins with one fork. A philosopher needs tw...

the submission
 
6:00 PM
ahh
 
I think it would work really well if each philosopher was paired up with each other philosopher, and the total number of turns it takes for them to eat with all of them will be be their score
 
that seems to be the idea, which doesn't seem good to me
 
this is a well known problem. there are a few well documented approaches to it.
bots with the same approach will have virtually identical final scores
and that score will depend on how many other bots use that same approach
 
...no, you only allow 1 bot to have a single approach
...and the best bot will work with every approach
 
6:02 PM
/me wonders why this isn't #dogecoin irc
 
I think the scores will end up stratified, with a lot of entries having the same score, and no clear winner.
 
you may be right
I didn't know it was a well documented problem
I like new and fresh problems
 
In computer science, the dining philosophers problem is an example problem often used in concurrent algorithm design to illustrate synchronization issues and techniques for resolving them. It was originally formulated in 1965 by Edsger Dijkstra as a student exam exercise, presented in terms of computers competing for access to tape drive peripherals. Soon after, Tony Hoare gave the problem its present formulation. == Problem statement == Five silent philosophers sit at a round table with bowls of spaghetti. Forks are placed between each pair of adjacent philosophers. (An alternative prob...
 
@overactor that's great!
 
the popular solutions require features not present in this challenge, but there are many other solutions.
 
6:03 PM
blink
 
@TheDoctor long time no see :D
 
I'll make a doc repo for it when I've fixed the underwater challenge
 
btw I've figured out function outputs, I think (@overactor, @cjfaure, @githubphagocyte) ... basically they can work the same as inputs... you just specify O1 through ON ... either they all start with a 0 value or they all need to be filled to avoid a runtime error... and the function terminates (like the main program) when nothing is falling any more. and then the outputs just drop out of the function cell in order 1...N
 
@Sparr, none of those solutions will work for the problem
 
6:06 PM
@PeterTaylor welcome back ;)
 
if you don't allow communication between the bots
 
I have a job
 
@NathanMerrill I know. Like I said, there are other less perfect approaches.
 
@MartinBüttner i haven't really kept up with the development of the language
 
the other key thing is that all of the bots act differently
 
6:07 PM
@cjfaure yeah the community is really active and things are moving fast
 
What kind of bots?
 
@MartinBüttner well, you all have the same org privs as I do, so xD
 
when every philosopher does something different, you're going to end up with less resource management
 
:/
 
@cjfaure so?
 
6:09 PM
@MartinBüttner so you can do whatever you want with it ;P
i'll have to learn by any future documentation I guess :P
 
@cjfaure oh yeah of course, and I'll do that :P
 
:D
 
SE is too organized
bye
 
@sparr Still around?
You linked to a series of well documented approaches to the dining philosophers problem. Let me list them and explain why they won't work here.
Resource hierarchy solution - requires that all philosophers involved assign the same ordering to the forks. Which fork is the first fork? Still requires some sort of clever asymmetrical solution.
Arbitrator solution - Requires an arbitrator. There isn't one.
Chandy/Misra solution - Requires communication. There is none.
 
Ray
@NathanMerrill I tried to optimize your pacman controller code, without success.
 
6:23 PM
un-numbered forks is a problem... that hasn't been stated yet.
I would expect the philosophers to know their seat/fork number
 
You are looking at it backwards. I didn't say I WOULD number the forks.
 
By optimize, what do you mean?
 
Ray
Speed up
 
Mine's quite fast
 
Ray
Now I need about 20 seconds to test each time.
And finally I found a method to speed it up 5x: change repeats = 50 to repeats = 10
 
6:24 PM
oh, well, with all three of those cases excluded, then I guess it's a challenge, but there will be a lot of randomness in most solutions, so you're going to need to run a lot of tests.
also, what do you do with a deadlock?
 
well, of course :P
you aren't running it in debug mode?
debug mode will run it only once
 
@Sparr Cap the rounds at some yet to be determined number. Or cap the time limit. The challenge isn't finished yet, which is why I wanted feedback on what exactly I needed to provide as input to the bots before I could finish the spec
Since the input to the bot determines most of the rest of the challenge
 
Ray
@NathanMerrill So do you use Java or C# a lot in daily work? I think defining Direction as a class would make the program a lot slower. :P
 
if you tell bots their seat number, then that's equivalent to numbering the initial fork positions
 
I could just make your bot number 1. If every bot is number 1, then they don't actually know their seat number
 
6:27 PM
so, for what you might give them on a per round basis...
 
I use JS and Python in daily work
 
you could just tell them whether there are forks next to them, or where all the forks on the table are, or where all the forks period are
 
So when I ask you for your decision, I'll tell you the table setup from your perspective. Then I'll ask the guy next to you for his decision from his perspective
 
I think this is going to be very very random
 
Sure. But I have faith that a partial random bot will beat a full random one.
 
6:29 PM
I usually use stuff like North, East, South, West = range(4) for enums like that
but there were quite a few things I wanted to do with Direction, so I made it a class
 
I'll probably do something to cut down on silly non-competitive bots too. I don't care to judge silly entries for this problem
 
@Geobits unless Martin suddenly tells me my domino program is broken, or I cut myself open on my CD tray or something equally likely happens, I should be submitting a solution to Blink challenge within 6hours or so
 
@Rainbolt @NathanMerrill @Geobits @Sparr should jellyfish still hunt other animals if they only have 33% chance of surviving a fight?
 
...anyways, why do you care about the speed of the solution?
it runs quite quickly, especially with 1 bot
 
@VisualMelon your domino program made a trout jump out of my monitor
 
6:30 PM
that sounds like a solution to the food crisis
when do I get paid?
 
@MartinBüttner Jellies paralyze you and then float in to finish the job right? Seems like something a mindless jelly would do. They stung me on the beach even though they knew it meant I would grab my net and put them on the dry sand for revenge.
 
@MartinBüttner that depends if you want them around late-game
I don't think the 33% percent matters
 
You could also spawn more as the game progresses. Nets are indestructible, so it seems unfair that the jellies would eventually disappear while the nets stay around
Unless you think that nets are so predictable that it is fair for them to stay around
 
Ray
@NathanMerrill Yeah, I've given up to "optimize" it after I found the 5x speed up way. Time to work on my answer.
 
Nets also cut down on population space. That's a definite disadvantage
 
6:33 PM
@Rainbolt nets are supposed to be tough, to cancel the population advantage of whales
 
Ray, how are you running it?
 
Ray
python2 -O controller.py
 
do python2 controller.py
it'll only run once, and you get lots of useful info
 
@MartinBüttner If paralyzed, a naive bot would throw to beat a jellyfish. So a smart bot might be able to sense that and throw something to beat that, effectively hunting jellyfish targets. Once that happens, a smarter bot would have to throw randomly to defend against both. So, back to 50% for the jelly.
 
Meh... I starred your KotH post for reference and its gone already
 
Ray
6:34 PM
Oh, and I disabled the graphical output.
 
...do you have the latest code?
if you fail to import pygame
it'll do a text output of the maze
 
@Geobits that was the idea, but we're ditching RPS
@Rainbolt even my 10 star post from yesterday is gone
 
Oh, I missed that. What's the the battle style? Just random?
 
@Geobits non-uniform coin flips basically
 
Ray
@NathanMerrill I have the latest code. I added a return in first line of the draw_maze function...
 
6:36 PM
I'm currently updating the draft
 
In essence, I agree with Rusher. Jellyfish are dumb.
 
He agrees with a ghost of PPCG past.
 
sigh Name changes are awful.
 
6:41 PM
@Rainbolt he had the same avatar as you!
 
Imagine if Doorknob changed his name to Windowsill.
Then we could ping him with @Windows
Or @Wind
Or @Win
 
Shouting at the wind?
Much like getting upset with @Rain
 
tempted to downvote as not funny, but I did chuckle a bit:
0
A: Tweetable Mathematical Art

hyphenhyphensemicolonTook quite a few iterations, but the final result was worth it! Code: unsigned short RD(int i,int j){ return rand()%255; } unsigned short GR(int i,int j){ return rand()%255; } unsigned short BL(int i,int j){ return rand()%255; }

 
♪Pissing in the wind. Betting on a losin' friend.♬
 
okay, new draft is up
2
A: Proposed Question Sandbox - Mark XIV

Martin BüttnerUnderwater Survival Game king-of-the-hill Lions and bears are extinct, the wolves dominate the fauna on land. But in the depths of the sea the battle for survival rages on. This is the spiritual sequel to Rainbolt's Survival Game, with a few additions. The arena is the sea and hence three-dime...

@Rainbolt @Geobits @NathanMerrill @Sparr @whoeverwasinterestedearlier ^
 
6:46 PM
Trying to forget what I know is difficult but I want to give it a clean read. Someone wipe my memory?
 
Can jellyfish occupy the same space, or do they fight? If they fight, is it 50/50? (I assume so)
 
@Geobits good catch, they fight 50/50 but it's irrelevant
 
@Geobits Each cell will be populated by at most one animal or hazard.
 
@Rainbolt what's the memory wiping flash from Men in Black called in English?
 
@MartinBüttner neuralyzer
 
6:48 PM
Damn, ninja'd. I knew I should have waited to get that wiki link.
 
Did anyone time that? Cuz that was damn fast
 
wow, that sounds so technical
but wait, is that also what Agent J calls it?
 
I think at one point he calls it "the flashy thingy" or something along those lines. But still.
 
ah okay
 
@MartinBüttner I think it would be simpler to say "If you don't move and you can breed, you do so automatically."
 
6:51 PM
that makes more sense
 
> In the first movie, Agent J calls the neuralyzer the "flashy thing" and dislikes the idea of using it and when he has to use it, believes that they should supply the victims with the best memories possible rather than Agent K's mundane and depressing memories.
 
@Rainbolt no because breeding makes you vulnerable
 
Oh right. My bad
 
you should be allowed to wait without getting insta-killed by anything
 
It certainly does make you vulnerable. There was this one time that I...
 
6:52 PM
So Move.HOLD != BREED
 
@Geobits ah yeah... that was the term I was looking for... in fact it would have been exactly what I would have called it from a reverse translation of the German version :D
@Rainbolt yup
 
@Rainbolt The ideal amount of randomness in a bot will depend on the amount of randomness in every other bot. I don't like that aspect of a challenge. I want there to be one best/smartest approach.
 
@Rainbolt also you might want to hold off breeding if your environment isn't safe at the moment
@Sparr I think KotHs are fun because you're trying to beat the other bots, not because you're trying to solve a problem optimally
that's what code-challenges are for
 
@Sparr A second ago you complained that there was a small set of best, smartest approaches on Wikipedia. Now you are complaining that there isn't one.
 
@Sparr By that logic there should be no best monte-carlo based chess/go programs, but good ones regularly outscore average ones. Randomness does not necessarily mean "random winner".
 
6:53 PM
@MartinBüttner in theory there's some thematic reason for low-survival animals to hunt, like needing food. so yes, even 33% jellyfish should still attack people. It's hard to keep in-theme with such a low res world model.
 
@Sparr I was thinking about it more from a mechanical perspective... but if jellyfish weed themselves out that's also good for creating distinct early and late games
 
@Geobits I posted the expected value table earlier. With RPS, in a fight against a jellyfish and another player, you always throw S, against a random enemy, and even against another ideal enemy you still mostly throw S
 
Right. But RPS is off the table now.
 
@MartinBüttner will the jellyfish up/up/down/down pattern be in sync with all jellyfish, or will they be out of phase?
 
the latter
 
6:57 PM
@Rainbolt there's a difference in known best approaches and unknown best approaches.
 
@sparr Well, when the challenge is done, we'll know the best approach so far won't we?
 
I'm still getting the hang of challenges that end
lots of assumptions to discard
 
If one guy comes out on top fifty billion times out of 60 billion trials, then he is the best right?
So we scale it down to something I can actually test in a reasonable amount of time and call it good enough.
 

« first day (1284 days earlier)      last day (3542 days later) »