« first day (400 days earlier)      last day (3161 days later) » 
00:00 - 19:0019:00 - 00:00

12:00 AM
RELOAD!
[Cardshifter/Cardshifter] 8 commits. 1 opened issue. 1 closed issue. 3 issue comments. 225 additions. 577 deletions.
[Cardshifter/HTML-Client] 4 commits. 22 additions. 8 deletions.
[Hosch250/VSDiagnostics] 2 commits. 542 additions. 3 deletions.
[retailcoder/Rubberduck] 19 commits. 28056 additions. 24728 deletions.
[rubberduck-vba/Rubberduck] 76 commits. 1 closed issue. 1 issue comment. 37469 additions. 33526 deletions.
[Vannevelj/RoslynTester] 1 opened issue. 1 issue comment.
[Vannevelj/VSDiagnostics] 2 opened issues. 1 issue comment.
> Seems I misunderstood the issue here. I thought this was about the actual file transfer. What you're actually saying is that you want the game server to detect if a file under `extra-resources` is changed and start using that file instead.

> allowing updates to game content without having to [...] restart the server.

I think the first thing to do here is to examine the current behaviour. What files are kept open, and what files are read each time a new game starts? AFAIK, no groovy file
 
12:27 AM
Monk*.
 
Hi!
 
Hey @jacwah!
How are you?
 
Good! @Phrancis left an interesting issue for me to think about, no sleep tonight :)
 
Which issue is that?
 
12:34 AM
Ah, that's interesting. This seems a little like the concept of, on big projects, only having to re-compile a single file rather than having to re-compile the entire project.
 
Also uptime
 
> Another solution would be to "hot-swap" servers instead of individual files. If you want to update something something on the server:

1. Start a new server process (without killing the old one). Don't listen for connections yet.
2. Tell the old server to stop listening for new connections, but keep it running so that running games are not interrupted.
3. Tell the new server to start listening for connections.
4. Notify clients in the lobby of the old server that they should reconnect or
 
I thought you could already update a server's files without having to restart it.
 
Read my wall of text :)
> This should already work fairly well on OSs that aren't Windows. MS had the great idea to make any file currently open in another process uneditable. In Linux (and I think OS X too) if a file is edited by one process the other process still has it's own copy of the file, just like it looked like when it was opened by them.
 
The first one?
 
12:38 AM
I quoted the relevant part
> I tested what currently happens by starting a game, changing the deck size in Game.groovy and then starting another game. Everything seems to be fine.
 
Ah, I see now.
> "Hot-swapping" resources lead to many race conditions that have to be resolved though.
There's that too ^.
 
Which is why I came up with the second solution!
 
Yes, I see that.
 
This is interesting, but doesn't really solve our problem
TTGTB
 
12:58 AM
Have a good night!
 
You too @SirPython
 
> AFAIK, all the files in extra-resources are read each time a game starts. I don't think race conditions are a concern so much here, as once a game entity is created (along with all the additional entities that are related to it), it appears to be stand-alone, as in it won't have to read any of the Groovy game files again until the game is over and a new one is started.
 
Remonking
 
Hey @Phrancis!
How are you?
 
Good good, went for a walk on the river then ate a burger! How are you?
 
1:02 AM
I am doing well, thanks.
 
It's possible that perhaps I don't understand how a race condition could actually happen.
Or, even more likely, that I don't really understand how the server works at all :)
 
@jacwah ^
 
1:56 AM
@Phrancis Do you have a second to look at some code?
 
@SirPython Yeah sure, what's up?
I was about to ask, what is up with the -all files, first time I see that in a dist?
 
    $scope.refreshServers = function() {
        for(var i = 0, length = $scope.servers.length; i < length; i++) {
            var thisServer = $scope.servers[i];

            if(thisServer.name === "Other...") {
                continue;
            }

            var now = Date.now();

            CardshifterServerAPI.init(thisServer.address, false, function() {
                thisServer.latency = Date.now() - now;
                thisServer.isOnline = true;
            }, function() {
                thisServer.latency = 0;
The problem here is that the scope is not being updated, probably because it is being updated async because of the CardshifterServerAPI.init method.
I've tried use $scope.$apply to change the scope, but there is already a $apply running elsewhere.
This function is called when a button is pressed.
 
I honestly have no idea, though it is a good question
 
Oh, I just got an idea.
 
Remember I have not written a single line of JS in the whole client, and I've only had very limited experience with JS at all
I still don't even understand the concept of using a function as an argument :)
 
2:04 AM
That's not true, you've written some JS for the client.
Passing a function to a function is like passing a lambda in Java.
 
Sure, I don't know anything about that either though ;)
Mind you, I'm not asking for you to explain it to me (unless you feel particularly inclined to)
 
Oh, I apologize.
 
2:20 AM
Ah, looks like the -all server fixes the problem bazola and I were having
[2015-09-05 22:21:45,263]  INFO  ServerWeb [WebSocketWorker-10] (        ServerWeb.java: 46) - Connection opened: org.java_websocket.WebSocketImpl@4089a37
[2015-09-05 22:21:45,265]  INFO     Server [WebSocketWorker-10] (           Server.java:158) - New client: 7:  @ /127.0.0.1:57338
[2015-09-05 22:21:45,270]  INFO  ServerWeb [WebSocketWorker-10] (        ServerWeb.java: 66) - Connection message from: org.java_websocket.WebSocketImpl@4089a37: {"username":"Phrancis","command":"login"}
[2015-09-05 22:21:45,270]  WARN  ServerWeb [WebSocketWorker-10] (        ServerWeb.java: 84) - Connection er
ಠ_ಠ
 
What is the difference between -all and what you were using?
 
➜  cardshifter-0.6.1-SNAPSHOT-20150905-2155 git:(mods) java -jar cardshifter-server-0.6.1-SNAPSHOT.jar
no main manifest attribute, in cardshifter-server-0.6.1-SNAPSHOT.jar
That's the regular one^
➜  cardshifter-0.6.1-SNAPSHOT-20150905-2155 git:(mods) java -jar cardshifter-server-0.6.1-SNAPSHOT-all.jar
Cannot read properties: java.io.FileNotFoundException: server.properties (No such file or directory), using defaults.
No security manager has been installed, you need to install one to be protected against malicious mods, please refer to the documentation to install a correct security manager.
CONTINUE AT YOUR OWN RISK
Do you want to continue without a security manager? (y/n)
y
[2015-09-05 22:20:15,869]  INFO ModCollection [      main] (    ModCollection.java: 59) - Loading mods in /Us
That^ is the -all one - which fired up (apparently) correctly, but then raised that other error when I tried to connect from localhost
 
I fixed the bug I mentioned earlier.
 
Oh good
 
        CardshifterServerAPI.init($scope.servers[i].address, false, (function(thisServer) {
            return function() {
                thisServer.latency = Date.now() - now;
                thisServer.isOnline = true;
            }
        })($scope.servers[i]), (function(thisServer) {
            return function() {
                thisServer.latency = 0;
                thisServer.isOnline = false;
                thisServer.userCount = 0;
            }
        }));
 
2:29 AM
This is odd... I connected to @bazola's server instead of my local one, look at the users list...
 
It only took ~4 days! </sarcasm>
 
That's me.
 
ooooohhhhhhhhhhhhhhh ok.
 
That's probably from me smashing that "refresh" button.
Restart the client and try again.
Unless they just all went away.
 
2:32 AM
Yeah they're gone now
 
That's issue-worthy.
 
Man I'm a little annoyed now. Guess I'll download the Snapshot, and replace the Groovy files
What's issue-worthy?
 
The blank users from the "refresh" button.
 
Oh, yeah for sure, if you can repro
 
I'll try.
 
2:36 AM
Well I managed to join the Snapshot server, guess that's good enough :)
 
2:46 AM
Hmm. I was unable to reproduce the error.
But I did obliterate the server.
 
Got my ass kicked by AI medium :\
 
That's better than getting your ass kicked by AI loser, at least.
 
Well, that's technically not possible :)
 
Never mind, re-produced the error.
However, I only saw it once I connected with play.cardshifter.com.
Did the error occur for you when you deployed locally?
 
3:02 AM
Seeing a bunch of empty users?
 
Yes.
 
It was on my local client deploy, yes. On dwarftowers.com server
 
Okay, thanks.
 
3:13 AM
> Right now, every time the "refresh" button is clicked in the server stats section, a new "user" is created that exists as long as the user keeps the client open.

This "user" has no name, but can be seen in the lobby:

![The users list](http://i.imgur.com/uzsTCyF.png)
CardshifterServerAPI.init is now called by passing anonymous functions with the local variables passed into it.

Before, when this loop inside $scope.refreshServers was running, since API.init is async, the loop would finish instantly and the local `thisServer` would be the very last server in the list. Now, an anonymous function is passed to the init method that is given the current server when it is passed in so it does not change in that function's scope.
working on $scope.refreshing

It is quite easy to attempt and crash a server just by smashing the "refresh" button. Right now, there is an interval setup to disable this button for a certain amount of time, but it still needs some work (aka: it doesn't work)
 
> (aka: it doesn't work)
 
I'm going to turn in. Have a good rest of your day @Phrancis!
 
3:38 AM
You too!
 
 
6 hours later…
9:50 AM
Morning
@Phrancis the -all file should get renamed during the build process. What gradle command did you run? Also, that ArrayIndexOutOfBoundsException indicates that you might be running a quite old server. What git branch are you on? Did you pull latest changes?
 
> This is likely because of two reasons:

1. When pressing the "Refresh" button, the connection is not closed after getting response from the server. (which should be fixed in the HTML Client)
2. The server sends out user information messages even for users that are not logged in (which is a server issue)
 
11:03 AM
Monking
 
11:13 AM
Hi @jacwah
 
> Even if no files are read after game initialization, a race condition still exists: if one game is in the process of initialization and has read 50% of the files, and they're then replaced, it's going to have 50% old files and 50% new files loaded. This will lead to very unpredictable behaviour.
 
 
3 hours later…
1:51 PM
> I am not a fan of hot-swapping servers, for several reasons: Users becoming separated between different servers, not being able to observe games on other servers (see #110), requiring clients to reconnect...

I think the best way is to toggle a flag on the server, which temporarily prevents - or pauses - new game creation while the files are being updated

As for how to actually update the files, the issue is that there are many different servers (bazola's, mine, several localhosts being u
 
2:03 PM
Monking
 
Hey @ARedHerring
 
How is it going?
 
Fine. What's up?
 
Just a boring weekend, but at least I have this coming week off
 
> I think server admins should have control over their own server. I don't see why a person who is not trusted with ssh or ftp login should be trusted to modify resource files.

> I think the best way is to toggle a flag on the server, which temporarily prevents - or pauses - new game creation while the files are being updated

A system-wide locking mechanism will be required.
* There can be multiple servers using the same set of resources.
* The server needs to keep track of if games are
 
2:58 PM
@Duga @jacwah I don't quite understand what you're saying here. "multiple servers using the same set of resources", do you mean on the same machine or on different machines?
 
Yeah that wasn't a great choice of words, let me update it
> There can be multiple server processes on the same machine using the same set of resource files.
Really the same file system and not machine
 
while it is true that it can be that, I don't quite expect there to be.
 
Then we should introduce a flag that prevents that from happening
 
also, if there are, we could have a server admin command such as /nogames which disables or enables whether or not new games are allowed to be played
I have no intention of preventing multiple servers on the same machine.
 
Then we should support there being multiple processes.
 
3:05 PM
It is supported already
We just have to keep it in mind somehow when dealing with this issue.
 
@SimonForsberg I took this to mean that you didn't think we should support it
 
I meant that I don't expect it to be very often. That is, I don't expect it to be normal enough to think of it as a problem.
 
What do you mean by "we just have to keep it in mind"?
 
as I see it, and as you rightfully have noted, there is a potential problem that can happen with the implementation of issue 381. When fixing issue 381, we should try to fix it so that multiple processes of servers are supported.
How about writing an empty update.lock file and have the servers check if that file exists when starting a new game?
from my experience with Minesweeper Flags Extreme, having a /nogames command is very useful feature on a server.
 
I think the file should be called nogames.lock or something that conveys its functionality
 
3:20 PM
[Zomis/BrainDuck] Zomis pushed commit 77af97fd to master: added a so far quite basic analyze feature
 
It would still not solve the problem of games that have already started their initialization when the lock is created though
 
when writing /update (assuming we will go by that approach), how about having the server that you are writing it on check the statuses of games. I believe server games are marked as NOT_STARTED in the beginning of the initialization.
if a server admin is running multiple servers, then he can use /nogames on one to disable new games, write /update on the other, which makes sure that no games are currently initializing and then downloads new files, and then write /nogames on the first again to re-enable new games
 
/nogames just creates the nogames.lock file, right?
 
either that, or toggles a boolean flag on the server.
personally I prefer the boolean flag
 
If we use a lock file the admin would not have to run the /nogames command on all servers before updating
 
3:28 PM
If a server admin is running multiple servers but doesn't do /nogames on all of them before updating, it's their fault if anything goes wrong IMO.
 
Don't blame the user, blame the UI :)
 
If we're realistic, how likely is it that server admins will run multiple servers that are sharing the same mods folder on the same system anyway?
 
Not very likely. But if we think it's not sufficiently likely I think we shouldn't support it at all.
 
shouldn't support what at all?
 
Running multiple processes with the same resources
30 mins ago, by jacwah
Then we should introduce a flag that prevents that from happening
 
3:33 PM
hey
 
Hey!
 
I disagree there. In fact, running multiple processes that have the same resources is done very often, if you run a server at the same time as you're doing gradlew test for example. However, the likelihood that you want to update both servers with the latest mod data is very low, not to mention the probability of something going wrong because you're updating at the same time as someone is starting a new game.
 
Oooooh, there's a discussion
@ARedHerring What makes sure the coming week won't be boring? :D
 
The easiest, and most reasonable, way for us IMO is to use a /nogames command that switches a flag on the server so that the server doesn't allow new games to be started. And in addition have a /update command that (safely, but only taking into the consideration the current process) updates the mod files resources.
 
Ok, I understand why you're saying that. We'll just have to make sure to document this in big red letters :)
 
3:41 PM
> Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
like that? :)
 
@skiwi I'm not saying it won't be boring but it will be relaxing :-)
 
> If you're running multiple server instances using the same resources RUN THE FRIGGING /nogames COMMAND!!!
 
problem solved ^^
 
19
Q: Saying no to miscellaneous administrative tasks as a Grad student

yoyosteinIn my university, graduate students under scholarship have to perform certain tasks like tutoring and grading. I have no problem with that since it is part of the contract. There are also some miscellaneous tasks like offering to help out for a departmental party (takes 10 hours over a few days)...

Accepted answer of score -13
 
4:04 PM
Monk*.
 
4:18 PM
[Zomis/BrainDuck] Zomis pushed commit 7a9f5471 to master: using CodeArea with line numbers for editor
> Take a look at https://github.com/TomasMikula/RichTextFX/blob/master/richtextfx-demos/src/main/java/org/fxmisc/richtext/demo/JavaKeywords.java and see what can be accomplished with syntax highlighting in Brainfuck.

- [ ] Match `[` and `]`
- [ ] Different color for comments
- [ ] Highlight `[` and `]` and possibly `.` and `,`
- [ ] Use [dynamic tooltips](https://github.com/TomasMikula/RichTextFX/blob/master/richtextfx-demos/src/main/java/org/fxmisc/richtext/demo/TooltipDemo.java) for insp
 
Brainfuck, whyyy :D
 
skiwi, whyyy :D
 
y u copy me?
 
4:40 PM
:23918345 >+++++++++[<++++++++++>-]<-.
>>++++[<++++++++>-]<.
>>++++++[<+++++++++++++>-]<.
>>++++++[<+++++++++++++>-]<+.
>>+++++++[<++++++++++++>-]<.
>>++++++++[<++++++++>-]<-.
>>++[<+++++>-]<.
 
^^ that
 
MONKING
1) ./gradlew dist
2) Branch: mods
3) I thought I did, but I could try again
 
Hey @Phrancis!
 
Hey!
 
hey @Phrancis
 
4:51 PM
@Phrancis Monking! What directory did you find the -all file in?
 
that... shouldn't be there...
 
Weird huh
 
Does ./gradlew dist create the -all files?
 
gradlew shadowJar does that, dist depends on the task shadowJar (among others)
 
4:56 PM
Hm. Well, if you'd like me to, I could certainly try again before you start digging, and get you a debug or info trace if you want it
 
@Phrancis what files do you have in build/libs ?
can you check if the files in build/distributions are directories or .zip files?
 
@SimonForsberg They are .zip files. I also see directories in there but that's only after unzipping
 
can you see the filesize of the server jar file and the server-all jar file?
 
@SimonForsberg In libs or in distributions?
There they are
 
hmm...
could you create an issue on github and add your screenshots?
no wait...
why does it say on date modified that it was modified at Aug 30 ?
could you do gradlew clean dist ?
 
5:11 PM
I have no idea
Yeah sure
 
and then show me a new screenshot
 
Yep, let you know when it's done
 
> Add a status bar with info about what line, col and index is being edited, and more stuff

See http://fxexperience.com/controlsfx/
 
You're making a Brainfuck editor?
 
something like it, yes
 
meant to be a RubberDuck for Brainfuck.
 
Fix image links

These corrections are made by a script and are all checked to not be
404 by the same script.

The commons.wikimedia links have more info on them, not just the raw
image. I also made every link use https.
 
@Duga @jacwah niiiiice. Scripts FTW!
I bet that saved a bunch of work for @Phrancis!
 
It literally has taken me the whole day to write it :)
But I learned a lot!
 
what did you write it in?
 
5:16 PM
Bash
 
oh, that I would not have been able to accomplish.
 
[Cardshifter/Cardshifter] build for commit 9e1df1bd on mods: The Travis CI build passed
 
now try to start those files @Phrancis
 
[Cardshifter/Cardshifter] build for commit 9e1df1bd on mods: The Travis CI build passed
cleaned up code

The two anonymous functions that were being passed to API.init have been removed. Now, the entire API.init call is encased in an anonymous function.
 
5:19 PM
@jacwah OMG very nice!!
 
#pattern='https?://[A-Za-z0-9\-\._~:/?#\[\]@!$\'"'"'\(\)\*\+,;=]+'
#pattern="https?://[^ \n\t]+"
pattern='https?://.*'
I had a bit of trouble with regexes, what do you know?
 
➜  cardshifter-0.6.1-SNAPSHOT-20150906-1312 git:(mods) java -jar cardshifter-server-0.6.1-SNAPSHOT.jar
Cannot read properties: java.io.FileNotFoundException: server.properties (No such file or directory), using defaults.
No security manager has been installed, you need to install one to be protected against malicious mods, please refer to the documentation to install a correct security manager.
CONTINUE AT YOUR OWN RISK
Do you want to continue without a security manager? (y/n)
y
@jacwah Trouble with regexes? Imagine that ;D
 
@Phrancis and does connecting with a websocket work?
 
[2015-09-06 13:22:19,606]  INFO ClientWebSocket [WebSocketWorker-9] (  ClientWebSocket.java: 73) - Sending to client: UserStatusMessage [userId=6, status=ONLINE, name=Phrancis] - {"command":"userstatus","userId":6,"status":"ONLINE","name":"Phrancis"}
Yep, everything seems to be in order!
 
5:25 PM
How do I always find these weird things
 
> We had [a discussion](http://chat.stackexchange.com/rooms/16134/conversation/discussion-about-381) in chat and decided to use a process-scoped flag switched by a `/nogames` or `/update` command. The flag will prevent new games from being started.

> * The easiest, and most reasonable, way for us IMO is to use a /nogames command that switches a flag on the server so that the server doesn't allow new games to be started. And in addition have a /update command that (safely, but only taking int
 
@Phrancis Trust me, I find weird things too. The only difference is that I can find out what is causing them easier and know how to either fix it or work around it.
 
> Please post here any game balance issues/concerns you find so they can be addressed/fixed. Please make sure to identify the Mod, the Card(s) in question, and what you think is unbalanced.
 
@Duga @Phrancis what milestone should we aim for there? 0.6.2 ?
 
@SimonForsberg Not sure, I was just going to keep one of those for each month to keep all balance related things in one place...
Guess that'd be fine
I talked to Jay about manaUpkeep for Mythos. He would like for it to always be even numbers (not sure why). We're thinking upkeep should be about half of manaCost across the board, and make adjustments to specific cards if/when needed
So I can round down or up, depending on which one is going to be even
Hm, I should really write a script to do this, doing it by hand would take a long time
 
5:44 PM
;-)
 
@Phrancis doing what?
 
@SimonForsberg Adding manaUpkeep for each card
 
I can gist my script if you want to look at it
 
Sure. I don't know a thing about Bash though but it can be good for learning :)
 
@Phrancis well, if you want to apply manaUpkeep = manaCost / 2 for all cards, that's quite easy
 
5:48 PM
True
 
github.com/Cardshifter/Cardshifter/blob/mods/extra-resources/… just change that to manaUpkeep MANA_COST.retriever.getFor(entity) / 2
 
@SimonForsberg I was going to actually change the content of the .cardset files and add the value
 
but if there's a "default" rule for what the value should be, then you can do it in the Game.groovy, then only change the value for the cards that should have a different value than the default
 
Ahhh
and I could just add a modulus to find if the number is odd or even
 
5:53 PM
yeah
 
if (!MANA_UPKEEP.retriever.has(entity)) {
    if ( (MANA_COST.retriever.getFor(entity) / 2) % 2 == 0 ) {
        manaUpkeep MANA_COST.retriever.getFor(entity) / 2
    } else {
        manaUpkeep (MANA_COST.retriever.getFor(entity) / 2) + 1
    }
}
This look OK to you? ^
 
well, there are better ways to write it but... :)
 
Of course lol
 
using a int div2 = MANA_COST.retriever.getFor(entity) / 2 variable would be a start :)
 
You can do manacost + manacost % 2
 
5:56 PM
if (!MANA_UPKEEP.retriever.has(entity)) {
    int div2 = MANA_COST.retriever.getFor(entity) / 2
    if (div2 % 2 == 0) {
        manaUpkeep div2
    } else {
        manaUpkeep (div2 + 1)
    }
}
 
if (!MANA_UPKEEP.retriever.has(entity)) {
    int div2 = MANA_COST.retriever.getFor(entity) / 2
    manaUpkeep div2 + div2 % 2
}
 
manaUpkeep(div2 + div2 % 2)
parenthesis are necessary in that case
 
Now that one doesn't make sense to me (and maybe to Mr. Maintainer?)
 
@Phrancis did Jay maybe mean "even" as in 5, 10, 15, 20 etc?
 
Why not? even % 2 == 0 && odd % 2 == 1
 
5:59 PM
@SimonForsberg No he actually meant "even numbers". Which is weird, because I'd expect half of 10 to be 5, not 6...
 
I think he wanted to avoid "weird" odd numbers that don't fit well into base 10, like 7 or 13
 
maybe he meant that 10 can be upkeep 5, but 15 should be upkeep... well... 8 ?
hmm...
 
Let me try something :)
 
Why are some card names ALL CAPS?
 
6:03 PM
I used all caps for "GODS" and regular for non-gods
Not sure if this is a good idea or not, yet
 
I thought so at first
card('EIGHT IMMORTALS') {
    creature 'Chinese'
But this?
 
Maybe "immortals" and "mortals"?
 
if (!MANA_UPKEEP.retriever.has(entity)) {
    int halfOfManaCost = MANA_COST.retriever.getFor(entity) / 2
    boolean manaUpkeepIsDivisibleByFive = (halfOfManaCost % 5 == 0) ? true : false
    if ( manaUpkeepIsDivisibleByFive ) {
        manaUpkeep halfOfManaCost
    } else if ( !manaUpkeepIsDivisibleByFive && halfOfManaCost % 2 == 0 ) {
        manaUpkeep halfOfManaCost
    } else {
        manaUpkeep halfOfManaCost + 1
    }
}
How's that^ look?
 
(halfOfManaCost % 5 == 0) ? true : false
That ternary is not needed
You already have a boolean value
 
Ohhhhh ok gotcha
 
6:08 PM
^^ It can just be boolean manaUpKeepIsDivisibleByFive = halfOfManaCost % 5 == 0
 
Damn people on Code Review won't let me write bad code ;D
 
Leave a comment explaining it too :)
 
Of course!
 
I'm off and will be back later. Have a good one, @Phrancis @jacwah and @SimonForsberg.
 
See you @SirPython!
 
6:18 PM
[Cardshifter/Cardshifter] Phrancis pushed commit 79919c09 to mods: Add manaUpkeep logic to mythos/Game.groovy - Follow up to issue #265
[Cardshifter/Cardshifter] Phrancis pushed commit dff3db40 to mods: Add logic for manaUpkeep to mythos/Game.groovy - Follow-up to #265
[Cardshifter/Cardshifter] Phrancis pushed commit 83e83081 to mods: Merge remote-tracking branch 'origin/mods' into mods
 
Hm. Meant to commit that pull request before doing this. Oh, well.
@SimonForsberg Can you check that pull request and merge it if you think we are good to go?
 
[Cardshifter/Cardshifter] build for commit 83e83081 on mods: The Travis CI build failed
BUILD FAILURE!
[Cardshifter/Cardshifter] build for commit 83e83081 on mods: The Travis CI build failed
BUILD FAILURE!
 
@Phrancis I don't think we're good to go ^^
 
Okay :)
 
The attributions aren't change yet
 
6:25 PM
Assertion failed:

assert card.mana_upkeep == card.mana_cost
       |    |           |  |    |
       |    2           |  |    3
       Entity #119      |  Entity #119
                        false
 
Which test is it?
 
This test^ needs to be changed or removed I think
It's called mana upkeep default
 
Yeah I made it to test the default value of manaUpkeep
You should edit it to reflect the new behaviour
 
@jacwah Oh, do I need to edit my local files and change that on the commit?
 
@Phrancis What do you mean?
 
6:28 PM
2 mins ago, by jacwah
The attributions aren't change yet
 
You/someone needs to edit them yes
 
OK
 
I can write new tests if you want
 
If you just tell me where the test is I can go change it
 
Cardshifter/extra-resources/mods/Mythos/test.groovy
 
6:31 PM
Got it, thanks
 
	/**
	 *
	 * @return This could be used for randomly pairing up clients
	 */
	public AtomicReference<ClientIO> getPlayAny() {
		return playAny;
	}
This javadoc is not very informative
	/**
	 * This could be used for randomly pairing up clients
	 * @return Atomic reference that will reference a ClientIO that is looking to play if one exists
	 */
	public AtomicReference<ClientIO> getPlayAny() {
		return playAny;
	}
^ Is this correct? @SimonForsberg
 
Tests are fun!
 
6:49 PM
[Cardshifter/Cardshifter] jacwah pushed commit 821f0a61 to develop: Improve javadoc
[Cardshifter/Cardshifter] jacwah pushed commit 7e3ff4bd to develop: Replace foreach loop with forEach call
 
@Phrancis They're so very useful when dealing with the DSL in particular
 
I'm noticing that
 
Imagine the pain it would be to test it manually...
 
this has to be the weirdest API I've ever seen.
 
[Cardshifter/Cardshifter] build for commit 7e3ff4bd on develop: The Travis CI build passed
 
6:53 PM
@ARedHerring lol
 
[Cardshifter/Cardshifter] Phrancis pushed commit 9c90c216 to mods: Modified mana upkeep default test to account for changes in Game.groovy
[Zomis/BrainDuck] Zomis pushed commit dc32839d to master: added information about the caret position to window title
[Zomis/BrainDuck] Zomis pushed commit 4bf6b51d to master: refactored BrainfuckCode to extract findMatching method
[Zomis/BrainDuck] Zomis pushed commit e42d023f to master: added whileLoopCounts analysis
[Zomis/BrainDuck] Zomis pushed commit 28d7c1ff to master: added dead code check
[Zomis/BrainDuck] Zomis pushed commit 6dc110a1 to master: added whileLoopCounts output to Brainalyze.
[Zomis/BrainDuck] Zomis pushed commit 8d48f37a to master: printing a compacted list for whileLoopCounts
 
welp
those commits
 
People are hard at work in here today :)
 
Now my pull request makes no sense anymore
 
@Phrancis Nope
 
6:56 PM
> Note that before it looped over a copy of the array, which I believe is necessary in order to avoid a ConcurrentModificationException
 
Dammit. Can I delete the PR without losing the changes made to the branch?
 
@Phrancis yes
the PR is just cosmetic.
 
Oh. Nice
 
[Cardshifter/Cardshifter] build for commit 9c90c216 on mods: The Travis CI build passed
 
@ARedHerring what about them?
 
6:57 PM
@SimonForsberg just lots of them
 
@Duga s/array/collection/
 
[Cardshifter/Cardshifter] build for commit 9c90c216 on mods: The Travis CI build passed
 
@ARedHerring yeah, I tend to make a bunch of commits locally before pushing
 
@Duga lol
 
00:00 - 19:0019:00 - 00:00

« first day (400 days earlier)      last day (3161 days later) »