« first day (164 days earlier)      last day (3696 days later) » 

00:01
RELOAD!
[Vogel612/JavaBot] 2 commits. 0 issues opened and 0 closed
[skiwi2/HearthMonitor-LogReader] 7 commits. 1 issues opened and 0 closed
[retailcoder/Rubberduck] 0 commits. 1 issues opened and 0 closed
[Cardshifter/cardshifter.github.io] 0 commits. 1 issues opened and 0 closed
[Cardshifter/Cardshifter] 5 commits. 0 issues opened and 0 closed
[Vogel612/testclient_javabot] 15 commits. 1 issues opened and 1 closed
OK
Sent
@Phrancis String value = "something"; <--- "something" is a literal value
int value = 42; <--- 42 is a literal value
Now "something" would probably be picked up by .str though right?
At least that's how it appears to behave
probably yes
@bazola good? Do you see the design of that libGDX thingy? That red background stinks!
TTGTB
00:16
> A dependency on cardshifter-api has been added.
> There is now a ByteSerialization class available. Although it is not very fast (because of doing the same work plenty of times for different objects), the messages are indeed shorter.
@SimonAndréForsberg Good night!
I'm really happy to see some work on Cardshifter again!
00:54
> Getting develop up to date with local directory
 
4 hours later…
04:25
> doesn't work quite right, but getting there; nothing broken
> Running into a few problems, namely getting the Prettify things to run locally. Posted to SO: stackoverflow.com/questions/27914206/…
 
3 hours later…
07:52
@Duga Yay!
 
3 hours later…
10:29
Spot the bug...
            public static class Builder {
                private String hi;
                private String lo;

                public Builder hi(final String hi) {
                    this.hi = Objects.requireNonNull(hi, "hi");
                    return this;
                }

                public Builder lo(final String hi) {
                    this.lo = Objects.requireNonNull(lo, "lo");
                    return this;
                }

                public GameAccountId build() {
                    return new GameAccountId(this);
> Added the LogObject marker interface.
[skiwi2/HearthMonitor-LogAPI] build #8 for commit f8d6c11a on branch develop passed
> Added the CreateGameLogEntry log entry.
[skiwi2/HearthMonitor-LogAPI] build #9 for commit 23b23ae5 on branch develop passed
 
1 hour later…
12:00
public Builder lo(final String hi) {
this.lo = Objects.requireNonNull(lo, "lo");
hi should be lo there ^^
Yep!
It was my only bug in all code though
1
Q: HearthStone CreateGame log entry

skiwiI am working on an application that is able to parse the HearthStone logs, and for this case I am trying to parse the following log entry: [Power] GameState.DebugPrintPower() - CREATE_GAME [Power] GameState.DebugPrintPower() - GameEntity EntityID=1 [Power] GameState.DebugPrintPower() - ...

And that was when running the test cases for the first time
@SimonAndréForsberg Are you familiar with mutation testing?
@skiwi never heard of it, but that doesn't say anything about if I have encountered it or not. I might have encountered it unknowingly.
@SimonAndréForsberg It's a form of testing where mutants will be created of your source code by changing conditions (like == to !=) and it verifies that all your tests then fail instead of pass
ah, never used it.
It's I believe stronger than code coverage
All I needed to add to my build.gradle was:
buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'info.solidsoft.gradle.pitest:gradle-pitest-plugin:1.1.2'
    }
}
and on top
apply plugin: 'info.solidsoft.pitest'
I'm trying to find a way to run this on every build and update a github wiki with the results... would that be feasible u think?
12:18
> added byte serialization support for enums
> added displaying of chatMessages to screen
> added displaying of online users to screen
@skiwi update a githubwiki automatically?
@SimonAndréForsberg That sounds possible...
Actually
Gradle magic could work
Except not
Gradle magic + only execute that magic during Travis build
I know there are many plugins that generate a report when tests are run
This one also does that
I don't think it is a good idea to update a github-wiki automatically like that. Isn't the simple Travis image "passing" / "failed" enough?
12:20
So when I run it on Travis, there's only one report in a known subdirectory... means I can grab that
But I'd like to see a table that lists the build id (with link), and the line/mutation coverage
Only trick is that I need to upload the actual report also somewhere then
So you can see if the code "improves" over time
[Cardshifter/Cardshifter] build #674 for commit e0a80d41 on branch gdx passed
It's a cool-to-have
Is it a necessary-to-have?
12:23
No
Is it a worth-the-time-to-add-it-to-have?
Is it fun to make?
I actually do have a great idea
Is it a this-actually-helps-bring-the-project-forward?
First finish the projects I'm working on!
^^ sounds like the best idea you have ever had.
2
or one of them
12:24
It's something to do if I don't feel like doing anything else, and can be done within a day
You mean, I have more great ideas?
I think so, yes.
Good :)
Do you have a list of all the projects that you are working on?
Someitmes I wonder, am I doing something wrong in my CR questions?
The last two (okay, last one is really new) have barely gotten any attention
Why do you think that?
12:25
@SimonAndréForsberg Eh... nope
@skiwi My suggestion: Have one. Much easier to prioritize that way.
@skiwi Your two recent questions comes with a lot of code but not so much background information about what you want to make, and why, and how things are put together.
I'm thinking that they are plainly not interesting enough
@SimonAndréForsberg I wasn't the one starring that message... (yet)
Means: We have a lurker!
@skiwi that might be a part of the reason. But you're not putting much effort in making them interesting either.
3
Q: Extensible Abstract Log Reader

skiwiMy goal with the following code is to provide an extensible class that can be extended in order to read log files and transforms them into meaningful output. I'd like to have comments about the code itself, the test code, the javadoc and the overall structure. /** * Exception to indicate that ...

> My goal with the following code is to provide an extensible class that can be extended in order to read log files and transforms them into meaningful output.
@SimonAndréForsberg that...
^^ that's all the description there is.
12:29
The problem I observe is that when I have finished the first part of my code, it'll be like 2000 lines of code already...
dramatic entrance
2
@skiwi then you write to much...
Yeah.. the that question maybe isn't that good, but I cannot make my last question much more interesting
also... that comment in your newest question
@Vogel612 It's called abstracting ^^
your code fills screens
before a single method showed up
12:29
I get that point
nobody wants to read comments that long in a CR question.
@skiwi In your recent question you have this:
> I am working on an application that is able to parse the HearthStone logs, and for this case I am trying to parse the following log entry:
Also, by no menas I'm expecting those questions to go hot
^^ that's all the description there is
Well... isn't that all description there is?
12:31
let's compare that to my latest question
I'd expect to see more interesting in my question if I posted everything as a whole, but less interest in answering
> I am currently writing a well.. manual testing site for a chat-based bot. The full code can be found on github.

For that purpose I had to keep track of the messages currently in the "system". The stored message format is that of a simple and immutable class with non-complex fields. The code for this format is coming from the bot's implementation.

I wanted to get into thread safety anyways, since it's a personally percieved shortcoming of mine, and thought this to be a good possibility, since the collection will be accessed from multiple threads.
@skiwi "I am working on the "simon-says" game, and I decided to make that in LibGDX.
^^ compare that to:
15
Q: I'm Simon, and this is what I say

Simon André ForsbergPlay my game! Having the name that I do (Simon), of course I have to participate in this challenge! (Even though I am a bit "late", but Simon says "have forgiveness!") This is an implementation of the Simon Says challenge using libGDX. I started using this framework a couple of months ago, and ...

But your code is interesting an does interesting things you know ;)
These two questions only show basic building blocks of the bigger party building blocks
public class ObjectsTest {
    @Rule
    public ExpectedException expectedException = ExpectedException.none();

    @Test
    public void testRequireNonNullObjectNotNull() {
        assertEquals("test", Objects.requireNonNull("test", "testmessage"));
    }

    @Test
    public void testRequireNonNullObjectNull() {
        expectedException.expect(NullPointerException.class);
        expectedException.expectMessage("testmessage");
        Objects.requireNonNull(null, "testmessage");
    }
}
^^ I consider this part "fluff". It's not really very interesting to what you are actually doing.
How is that part related to reading log-entries?
12:37
So you're saying that I shouldn't put things up that are trivial for me?
@SimonAndréForsberg That exact piece of code you mean?
@skiwi that exact piece of code, yes.
It's probably not relevant indeed
It could have a review on the correctness of the implementation of my unit tests
@skiwi Don't put up stuff that is not directly related to what you want to show in your question.
But I could also assume they're correct
What about the actual unit tests for the API class, those are useful, right?
@skiwi that ObjectsTest is trivial. I personally don't even write trivial tests like that (but that's a difference between us two as programmers). It's not worth including in a question IMO, especially not a question about reading log-entries.
@skiwi you mean this?
@Test
public void testGameAccountId() {
    GameAccountId gameAccountId = new GameAccountId.Builder()
        .hi("2")
        .lo("1")
        .build();
    assertEquals("2", gameAccountId.getHi());
    assertEquals("1", gameAccountId.getLo());
}
IMO, it's also very trivial.
12:41
@SimonAndréForsberg I was more or less wondering about the unit tests if I should do them like this or bunch them all together in one test
As now there's some code duplication
It's like writing this:
@Test
public void sometest() {
    SomeObject obj = new SomeObject();
    obj.setName("test");
    assertEquals("test", obj.getName());
}
Should you perhaps do a meta writeup on how to create interesting questions and including unit tests in them? ;)
I believe there are meta questions about how to make a good question already
including unit tests or not might be opinion based, and I don't find it worth discussing it on meta.
I hadn't much thought about all of this
However if I don't include unit tests, then I should include some usage of it I suppose
Also, do you have any ideas for the log entry itself, it needs to be posted somewhere, but it is quite obvious here
@skiwi or you can just say "unit tests are available on github".
but I'd much rather like to see a "example on how to use" than a bunch of unit tests testing trivial things.
Ask yourself what is more interesting for you: Having clean interfaces and implementations or having clean unit-tests.
for me personally, the actual interfaces and implementations are a lot more interesting.
12:48
> Fixed formatting issue.
Concerning unit-tests...
in my question I explicitly mentioned exiting unit-tests.
but did not include them
unit-tests mostly are uninteresting "smallest possible verifiable unit" to the power of eleven
I personally find reading unit-tests boring
I think most importantly @skiwi: Work on your "descriptions for what the code does". The better the pure-English part of your question is, the more attention your question is likely to get.
simply because they are repetitive
@Vogel612 agreed.
they are helpful though.
I found a problem in rolfl's suggested rewrite because I had unit-tests
but they only become interesting to be read when they break
2
12:51
Big wall of edit!
2
Q: HearthStone CreateGame log entry

skiwiI am working on a parser that can parse log entries from a game called HearthStone, the overall idea is that it will read the log file live when the game is running, parses the log file and show interesting and useful data in real time. For this question I focus on the module that provides an AP...

Papers Comments, Please.
it might be interesting to have the example log entry in a hidden-by-default codesnippet
apart from that, much much better ;)
> Fixed typo in the javadoc of Objects.
@skiwi I think you would benefit greatly from having a "class summary" in your question
@Vogel612 How would I do that?
I agree that I don't want it to be that prominent
12:56
@Vogel612 doesn't need to be a code-snippet, can also use the spoiler-feature.
@SimonAndréForsberg Also for the classes inside the CreateGameLogEntryTest?
@SimonAndréForsberg spoiler still takes the space up
65
A: Add markdown support for hidden-until-you-click text (aka spoilers)

Kevin MontroseThis has been implemented. The syntax is >! Spoiler text Example: This is not yet reflected in the preview pane. Essentially, a blockquote where each line begins with a ! will be a spoiler. Spoilers have the same text color as background color, but can be revealed by hovering over them (...

@Vogel612 oh, right, crap...
Right... I want to finish this up, then plan on when I can go home, and have 10 answers when I come back? :)
@skiwi I can't see any CreateGameLogEntryTest
12:58
That'd be to cool to be true I guess
@SimonAndréForsberg -Test
@skiwi Absolutely yes. Those classes are quite relevant to your code, right?
Perhaps no need to be very specific about the builders, you can just say "also contains a static builder inner-class" for the classes that has that.
@SimonAndréForsberg Yes, they only exist though because I need them
@skiwi Isn't that the same for all code we write?
@SimonAndréForsberg Yeah... scratch what I just said!
13:00
@skiwi s/scratch/star/
Dammit it doesn't work the way I want...
More happy now, @SimonAndréForsberg?
2
Q: HearthStone CreateGame log entry

skiwiI am working on a parser that can parse log entries from a game called HearthStone, the overall idea is that it will read the log file live when the game is running, parses the log file and show interesting and useful data in real time. For this question I focus on the module that provides an AP...

@skiwi absolutely
One nitpick though:

LogEntry
Marker interface to denote that a class can be used as an log object.
LogEntry
Marker interface to denote that a class can be used as an log entry.
Improvements posts 101 by @SimonAndréForsberg and @Vogel612
also, can you give any example of what it means to be a LogObject but not a LogEntry?
What exactly is a "Log Object"?
13:09
You don't see the typo I made there? ^^
I'm writing up a question on MSE about the hiding...
A log object is an object that appears in a log file
A log entry is an entry that appears in a log file
@skiwi yes, I see you wrote LogEntry twice.
An entry spans a number of full lines, an object not
The parser can only return entries for example
GameAccount is an object because it appears somewhere in the middle of a line
LogEntry
Marker interface to denote that a class can be used as an log object.
LogObject
Marker interface to denote that a class can be used as an log entry.

Oh, come on @skiwi!
13:10
Oh...
I'd recommend explaining a bit more about LogEntry vs. LogObject in your question.
> fixed typo in the class summary that got created when fixing a typo in the class summary
@SimonAndréForsberg Means I actually need to update my javadoc then
Or you can explain it in the pure-english part
Well, both maybe
> Updated javadoc of LogObject and LogEntry.
13:15
Fixed that as well
Perhaps another important update...
3
Q: Parsing log files of HearthStone: The API

skiwiI am working on a parser that can parse log entries from a game called HearthStone, the overall idea is that it will read the log file live when the game is running, parses the log file and show interesting and useful data in real time. For this question I focus on the module that provides an AP...

13:42
0
Q: Allow hiding walls of text somehow

Vogel612's ShadowSometimes there are questions which could benefit from additional information in an unobstrusive way. Example: A question about a bug in an MCVE with sample data to use. It might be nice to allow hiding the example data for better overview, especially with long sample data. Spoilers are a b...

14:17
> changed date format
> added UserTable and UsersList classes, can now invite users to a game
[Cardshifter/Cardshifter] build #675 for commit 178e1908 on branch gdx passed
15:05
heh @Vogel612, you are called @Vogel612'sShadow on meta?
ya
because I only cast a shadow on meta
cool, just noticed
I'm not really active there
also I am lurking in this room:

 Wizards Den

Place for all wizards (or wizzards) to share spells, words, an...
and only shadows are lurking there ;)
In how many rooms are you even? :p
5 in this chat-domain, 2 (currently just one) on MSE domain and one on SO domain
but I am not following all conversations...
15:16
That would be very difficult to follow
it's hard enough with 3... here, java and tavern
and sometimes checking 2nd as well as actually doing some work!
Can I have your onions on this?
GameEntityLogEntry.Builder builder = new GameEntityLogEntry.Builder();

Matcher entityIdMatcher = EXTRACT_ENTITY_ID_PATTERN.matcher(input);
if (!entityIdMatcher.find()) {
    throw new NotParsableException();
}
String entityId = entityIdMatcher.group(1);
builder.entityId(entityId);
Note that I explicitly name the entityId variable
I like to hang in the VBA chatroom (for some reason - I don't write VBA)
> Rather than having to press a button to initiate the Mulligan at the start of the game, it should activate automatically once it is available
well Ducky and Mat are friendly people ;)
True
Do you think I should do the code as above or directly builder.entityId(entityIdMatcher.group(1))?
@skiwi moar extraction ;) NotParsableException could maybe be constructed with input and have a message that tells what exactly is wrong.
also I'd say: builder.entityId(extractEntityId(input));
maybe even builder.entityId(GameEntityUtils.extractEntityId(input));
Wouldn't that be overkill?
depends on what else you need for creating an entity
sure for this one thing it's probably overkill
15:22
Sometimes I extract two variables at once for example
@SimonAndréForsberg do you have the cardshifter libGDX version on github somewhere?
This is the other aprt:
Optional<String> nextLine = lineReader.peekLine();
while (nextLine.isPresent()) {
    Matcher tagValueMatcher = EXTRACT_TAG_VALUE_PATTERN.matcher(nextLine.get());
    if (!tagValueMatcher.find()) {
        throw new NotParsableException();
    }
    String tag = tagValueMatcher.group(1);
    String value = tagValueMatcher.group(2);
    builder.addTagValuePair(tag, value);
    nextLine = lineReader.peekLine();
}
@bazola What part exactly is it that you are looking for?
but when you get deeper and have more stuff to extract, you'd want to hide the extraction from the builder
@skiwi @SimonAndréForsberg posted a screenshot yesterday of the chat running on libGDX
It's an insane amount of coding to do though for one log message
I don't see many ways to simplify the reading part though
And I first want to see if it works ;)
15:38
@skiwi sorry, I'm out of onions.
@bazola yup, on the main repo, the 'gdx' branch. In the 'gdx' directory.
@SimonAndréForsberg i swear I did a sync and then looked for that branch and didn't see it.. but now it's magically appeared :)
Oh right, @bazola asked something, sorry forgot to respond there
> Should this perhaps be flexibilized so that whenever there is only one action to perform, that action button is automatically 'clicked'? For example: If you can do nothing, automatically press end turn.
Right, I think I understand what the feature creep we were talkinga bout yesterday means
15:49
@Vogel612 You have to include a header in each file if you go with MIT license?
> I'm not sure from a UX perspective this would be ideal @Zomis - Think of HS or even a regular card game, I think a player should be able to realize on their own that they can't play anything... At least something like HS where you see the green highlight on "End Turn" that tells a user they can't play anything further.
btw @SimonAndréForsberg, my question suddenly has 8 upvotes and 2 stars...
@Duga @Phrancis Does the end turn really turn green?
@skiwi pimping and improving tends to help :)
@skiwi in HS, yes.
Also got up to 54 views
@SimonAndréForsberg Omg I have never noticed that!
Mind you I'm doing an arena run pretty much daily
15:58
@skiwi Yeah. And you ever noticed that "Job's done" orc voice too?
^ untested implementation of reading log entry
@Phrancis No?
@skiwi How long you been playing that game now? lol
@Phrancis Long!
> Good point, @Phrancis. I'm not sure how @bazola plans on implementing this, but from the description it sounded like it would be a if (actionName.equals('Mulligan')) which I'm not sure how I feel about.
@Phrancis I love that voice :) Sounds just like Warcraft 2 :)
16:00
> Cleaned up javadoc.
@SimonAndréForsberg "Me not that kind of orc!"
@Phrancis "Me stupid?"
So... in the ideal case I take part of my log file, submit it to my method, and it returns a nice object :)
Good to keep that in mind
@SimonAndréForsberg I was pretty much planning on catching the Mulligan action and returning the appropriate action to start the mulligan. The reason I posted the issue was that I fired up Cardshifter and thought that something was wrong because I just saw the mulligan action but was expecting the cards to already be highlighted blue
@bazola yeah I can't come up with a better solution right now, so go ahead :)
16:12
@SimonAndréForsberg as far as I know yes
Because a file falls under the substantial piece clause
@Vogel612 In that case: oh, crap!
Have I included that header in all source files? Nope.
Hey, in HS I also see Mulligan :)
[Power] GameState.DebugPrintPower() -     GameEntity EntityID=1
[Power] GameState.DebugPrintPower() -         tag=10 value=85
[Power] GameState.DebugPrintPower() -         tag=TURN value=1
[Power] GameState.DebugPrintPower() -         tag=ZONE value=PLAY
[Power] GameState.DebugPrintPower() -         tag=ENTITY_ID value=1
[Power] GameState.DebugPrintPower() -         tag=NEXT_STEP value=BEGIN_MULLIGAN
[Power] GameState.DebugPrintPower() -         tag=CARDTYPE value=GAME
[Power] GameState.DebugPrintPower() -         tag=STATE value=RUNNING
@SimonAndréForsberg Did you see this? I feel like I'm missing something stupid, no idea why this is not working...
@Phrancis You're missing ?autoload=true&amp;skin=sunburst&amp;lang=css in your second version.
not sure if that works, but worth a try.
gotta go, be back in a couple of hours.
@Vogel612 Seems like programmers has some questions about mit-license, including this:
0
Q: How to mark code lines licensed on MIT?

MarqinWhen I am using some code licensed on MIT license, but it's not in seperate files, is it OK mark it like this? /* Here starts code licensed under the MIT License (../MIT.txt) */ // code /* Here is the end of code licensed under the MIT License (../MIT.txt) */ Where in ../MIT.txt would be MIT L...

I think that might be what is meant by "substantial portions" ^^
16:30
Time for the ultimate test now...
Wtf! Only 2 out of 3 tests failed!
I'm stupid, I had a silly mistake in my test class
@SimonAndréForsberg I don't think that is it, as it is not required for the remotely hosted version, it's parameters to control behavior and skin selection mostly
i.e., this works just fine, based on first example. Maybe I should clarify my SO question...
<html>
<head>
  <title>Prettify Default Test</title>
  <script src="https://google-code-prettify.googlecode.com/svn/loader/run_prettify.js"></script>
</head>
Heh, I managed to get a StackOverflowError
Uh oh
Ugh, I don't even know where to start debugging
The message pretty much consists out of 2 individual parts, and those both work
The full part, however, doesn't work
> Thrown when a stack overflow occurs because an application recurses too deeply.
Interesting, never read about that. Then again, I don't even know what recursion is lol.
16:43
@Phrancis Start learning! :)
I forgot how to debug... now I got a trace again
> Added the option to retrieve all exceptions that occurred during reading a log entry.
@skiwi I created one once by implementing toString() in an unintelligent way.
@Vogel612 Oh, I've created ones with streams and toString() and more crazyness :)
17:07
@SimonAndréForsberg it seems that I was wrong...
^^ LOL
17:48
haha @Phrancis
yep, that one
18:01
is there a way to get gradle to build with dependencies like you do with maven?
@bazola Can you give an example?
in netbeans I right click on the project and say Build With Dependencies, but when I right click on a Gradle based project in Eclipse, there are no Maven options
@bazola Ah... I don't know about Eclipse
@bazola Whoa. That is all.
18:15
@bazola I didn't see it for a long time... Then I noticed that your screen resolution is weird, then I noticed it's a phone, then I noticed it's iOS!
2
> Fixed typo in the javadoc.
I'm not very awake anymore
19:23
> Added AbstractListLogReader, used to read logs from a list of strings.
Refactored AbstractLineLogReaderTest to use the new class.
20:01
@Phrancis I will try to finish the app tonight :D ! Holidays are officially over!
and Hey everybody!
@Marc-Andre Hey!
hey @Marc-Andre
@Marc-Andre That's badass! I started tinkering with Prettify yesterday, it's pretty neat. Ran into issues though, posted on SO.
Now that my project of buying a house is over (or dead was way too expansive atm) I have more free time to do some work!
Nice for prettify! Can't wait to take a look at it
3
Q: Prettify not linking correctly locally

PhrancisI'm having issues getting the Google Code Prettify to work properly. This example is working, using the provided remote files: <html> <head> <title>Google Code Prettify testing</title> <script data-brackets-id='140' src="https://google-code-prettify.googlecode.com/svn/loader/run_prettify...

You can see some examples on there
20:07
@Duga?
I'll see if I can find the problem :P Should not be too complicated!
> Added CreateGameEntryReader, used to read a CreateGameLogEntry from a log file.
Finally! ^ I worked at least a day on that commit
@Marc-Andre I've got all the files here too: github.com/Cardshifter/cardshifter.github.io/tree/develop/…
The one marked "default" works, but not the other
20:13
Thanks
Hoping to make it work tonight after I get off work
lol
> Although Wrath does not really have synergy with the deck, we don't really want to end up with too many Wraths and we don't really want to end up with too many pings, I still suggest you pick Wrath as it has the most value out of these options.
20:32
@Phrancis I always thought he sound "Drop dead"
Don't ask me why
20:47
@skiwi Why ? ( I'm tired and find myself funny please ignore me :P )
21:16
@Vogel612 about the MIT thing?
@bazola nice, although it's not looking exactly as I expected... I haven't tried it much on mobile devices. I think we probably want the device to be in landscape mode only, or what do you think?
@SimonAndréForsberg i agree that it should be landscape only. I know how to enforce that in objective-c but not quite sure how we would make that work with libGDX just yet. Trying to support portrait mode would be very problematic
@bazola agreed. I know how to enforce it in Android. Please try to find a way to do it on iOS with LibGDX.
I'm thinking that the secret to running pure iOS code will be to do it in the iOS launcher for libGDX, but I will have to experiment
21:33
@SimonAndréForsberg yes. That :)
@Vogel612 so it's not required to add that notice to each file?
I have seen many source files from other projects in which every file is marked with a license, so it wouldn't surprise me.
Exactly why I was thinking that.

« first day (164 days earlier)      last day (3696 days later) »