IRC logs for #openttd on OFTC at 2014-12-30
            
00:08:37 *** Belugas has quit IRC
00:08:48 *** Belugas has joined #openttd
00:08:48 *** ChanServ sets mode: +o Belugas
00:10:17 *** Quatroking has quit IRC
00:23:22 *** Jinassi2 has joined #openttd
00:26:09 *** Jinassi has quit IRC
00:26:12 *** Jinassi2 has quit IRC
00:26:29 *** Jinassi has joined #openttd
00:29:27 *** Myhorta has quit IRC
00:45:00 *** tokai|mdlx has quit IRC
01:10:22 *** oskari892 has quit IRC
01:20:10 *** Pereba has quit IRC
01:25:45 *** Progman has quit IRC
01:43:02 *** smoke_fumus has quit IRC
01:55:44 *** liq3 has joined #openttd
02:01:45 *** tokai has joined #openttd
02:01:45 *** ChanServ sets mode: +v tokai
02:04:52 *** supermop_ has joined #openttd
02:11:49 *** supermop has quit IRC
03:04:26 *** DDR has joined #openttd
03:32:24 *** gelignite has quit IRC
03:39:04 *** MJP has quit IRC
04:41:04 *** MTsPony has quit IRC
04:42:32 *** MTsPony has joined #openttd
04:47:32 *** Extrems has joined #openttd
05:49:14 *** Flygon has quit IRC
05:52:47 *** Flygon has joined #openttd
05:56:01 *** Eddi|zuHause has quit IRC
05:56:15 *** Eddi|zuHause has joined #openttd
06:03:53 *** luaduck is now known as luaduck_zzz
06:36:00 *** HerzogDeXtEr1 has joined #openttd
06:41:19 *** HerzogDeXtEr has quit IRC
07:16:47 *** supermop_ has quit IRC
07:43:36 *** Jinassi has quit IRC
07:56:07 *** Alberth has joined #openttd
07:56:08 *** ChanServ sets mode: +o Alberth
08:03:04 *** tokai|mdlx has joined #openttd
08:07:07 *** andythenorth has joined #openttd
08:09:14 *** tokai has quit IRC
08:10:26 *** Jinassi has joined #openttd
08:19:50 <andythenorth> o/
08:29:48 *** ST2 has joined #openttd
08:39:32 <Alberth> hi hi
08:42:45 *** sla_ro|master has joined #openttd
09:01:53 *** Myhorta has joined #openttd
09:04:08 *** TheMask96 has quit IRC
09:10:03 *** TheMask96 has joined #openttd
09:14:54 *** Extrems has quit IRC
09:15:22 *** Extrems has joined #openttd
09:21:44 *** Myhorta has quit IRC
09:30:05 <Alberth> busy bee already playable?
09:33:13 <andythenorth> need to play test :)
09:33:18 * andythenorth doing chores
09:33:29 <Alberth> k
09:33:32 <andythenorth> dishwashers to unload, broken lego to fix, snot to wipe :P
09:33:48 <Alberth> yesterday the goal progress wasn't updated
09:34:19 <andythenorth> I didn’t touch it last night
09:34:33 <andythenorth> sorry :(
09:34:40 *** Progman has joined #openttd
09:39:41 *** glevans2 has quit IRC
09:40:21 *** glevans2 has joined #openttd
09:41:46 *** Jinassi has quit IRC
09:47:05 <Alberth> k
09:49:34 *** Osceola has joined #openttd
09:49:59 <Osceola> hi
09:50:05 <Osceola> anybody here?
09:50:11 *** Progman has quit IRC
09:51:05 <Osceola> who saw the Snorre?
09:56:23 <andythenorth> Alberth: I might get 45 mins to look at the goal progress this morning :)
09:56:30 <andythenorth> seems to be a busy christmas this year
09:56:53 <Alberth> looking at it right now, doesn't seem too complicated
09:59:31 <Alberth> hmm, it needs updating of text?
09:59:41 <andythenorth> yes
09:59:49 <andythenorth> the GSGoal stuff is pretty trivial
10:01:30 <andythenorth> GSGoal.SetProgress
10:01:36 <andythenorth> should be what we need
10:01:44 <Alberth> pushed
10:01:52 <Osceola> anybody can see user with nickname snorre?
10:02:02 <Alberth> @seen snorre
10:02:02 <DorpsGek> Alberth: snorre was last seen in #openttd 2 years, 13 weeks, 5 days, 23 hours, 45 minutes, and 14 seconds ago: <snorre> ok not so common, 1586 have that name http://www.ssb.no/vis/navn/sok.cgi?fornavn=snorre&etternavn=&lang=n
10:02:23 <Osceola> 2 years he)
10:02:26 <andythenorth> usually my in-laws are around at christmas, so I get coding time
10:02:31 <andythenorth> this year, not, and my wife is working
10:02:41 <andythenorth> so minimal coding time :P
10:02:45 <Alberth> just moved the goal, and added removal
10:03:16 *** Yotson has joined #openttd
10:03:26 <Alberth> busy bee andy :)
10:05:24 <Alberth> We'd need a new text I guess
10:22:25 *** Osceola has quit IRC
10:25:21 *** oskari89 has joined #openttd
10:32:06 *** Elec_a has joined #openttd
10:32:51 <Elec_a> Hello, what is ttdpatch ?
10:34:34 *** Flygon_ has joined #openttd
10:35:53 *** MTsPonyZzZ has joined #openttd
10:36:03 *** HerzogDeXtEr has joined #openttd
10:38:37 <Alberth> an extension to the original TTD program, as in, it patches the original executable
10:39:41 *** HerzogDeXtEr1 has quit IRC
10:39:41 *** Flygon has quit IRC
10:39:41 *** MTsPony has quit IRC
10:39:41 *** Xaroth|Work has quit IRC
10:39:41 *** urdh has quit IRC
10:39:41 *** ToBeFree has quit IRC
10:39:41 *** skrzyp has quit IRC
10:39:41 *** blathijs has quit IRC
10:39:41 *** Hazzard has quit IRC
10:39:41 *** Elec_a has quit IRC
10:39:41 *** ivan` has quit IRC
10:39:41 *** jinks has quit IRC
10:39:41 *** KouDy has quit IRC
10:39:41 *** joho has quit IRC
10:39:41 *** argoneus has quit IRC
10:39:41 *** theholyduck has quit IRC
10:39:42 *** ccfreak2k has quit IRC
10:39:42 *** Speedy has quit IRC
10:39:42 *** Sylf has quit IRC
10:39:42 *** tneo- has quit IRC
10:39:42 *** Xaroth_ has quit IRC
10:39:42 *** davidstrauss_ has quit IRC
10:39:42 *** jonty-comp has quit IRC
10:39:42 *** Born_Acorn has quit IRC
10:39:42 *** Sheogorath has quit IRC
10:39:42 *** Terkhen has quit IRC
10:39:42 *** Ttech has quit IRC
10:39:42 *** Xaroth|Work has joined #openttd
10:40:10 *** HerzogDeXtEr has quit IRC
10:41:52 *** Hazzard has joined #openttd
10:42:08 <Alberth> Hmm, the script also gives non-available cargoes as target, it shouldn't do that :)
10:42:39 *** ToBeFree has joined #openttd
10:42:49 <andythenorth> interesting
10:43:23 *** blathijs has joined #openttd
10:43:49 *** Quatroking has joined #openttd
10:44:12 *** ivan` has joined #openttd
10:44:12 *** jinks has joined #openttd
10:44:12 *** davidstrauss_ has joined #openttd
10:44:12 *** ccfreak2k has joined #openttd
10:44:12 *** Terkhen has joined #openttd
10:44:12 *** Speedy has joined #openttd
10:44:12 *** KouDy has joined #openttd
10:44:12 *** argoneus has joined #openttd
10:44:12 *** tneo- has joined #openttd
10:44:12 *** Sylf has joined #openttd
10:44:12 *** Sheogorath has joined #openttd
10:44:12 *** Ttech has joined #openttd
10:44:12 *** jonty-comp has joined #openttd
10:44:12 *** Xaroth_ has joined #openttd
10:44:12 *** joho has joined #openttd
10:44:12 *** theholyduck has joined #openttd
10:44:12 *** Born_Acorn has joined #openttd
10:44:12 *** charm.oftc.net sets mode: +ov Terkhen Terkhen
10:45:09 *** skrzyp has joined #openttd
10:47:02 *** urdh has joined #openttd
10:47:18 <andythenorth> Alberth: when a second company starts (AI in this case), my company gets 5 extra goals.
10:47:28 <andythenorth> and I think it stops monitoring goals for the first 5?
10:47:35 <andythenorth> just reading the logs
10:47:38 <Alberth> that seems likely
10:47:48 <Alberth> a company only has 5 goals :)
10:48:45 <argoneus> what are you guys working for by the way?
10:48:46 <argoneus> dynamic goals?
10:48:49 <argoneus> on*
10:49:34 <Alberth> andythenorth: Added progress reporting
10:50:23 <Alberth> a goal game script, try it?
10:50:44 <argoneus> I'm at werk :<
10:50:58 <Alberth> playing with original map generator, such messy rail laying, lots of fun :)
10:55:07 <andythenorth> screenshots?
10:55:12 <andythenorth> original is a classic
10:55:16 <andythenorth> it’s not worse than TGP
10:55:25 <andythenorth> but quite monotonous
10:58:40 <Alberth> http://devs.openttd.org/~alberth/screenshot.png
10:59:34 <argoneus> looks nice
10:59:52 <argoneus> but shouldn't the goals be more longterm?
10:59:58 <argoneus> like "establish a line between x and y"
11:00:11 <argoneus> no company would build a railroad between two places just to transport something once
11:02:59 <Alberth> false, I just did :)
11:04:38 <Alberth> the script focuses on building things
11:09:25 <Alberth> but how is "establish a line" different from "transport x" ?
11:11:20 <andythenorth> argoneus: what’s “should” in the context of gamescripts?
11:11:25 <andythenorth> there’s no right answer
11:13:37 <Alberth> amounts are too large?
11:14:21 <Alberth> or we need more goals for a company :p
11:20:11 <andythenorth> how fast should goals complete?
11:20:23 <andythenorth> and is there any bonus (money, other?)
11:26:11 <Alberth> none, currently
11:26:49 <Alberth> on the other hand, it does give time to build more network to achieve the goal
11:27:14 <Alberth> perhaps add a setting or so?
11:28:24 * andythenorth has lots of ideas
11:28:29 <andythenorth> but one step at a time
11:28:45 <andythenorth> I think a map-unlocking GS might be fun, complete goals to ‘unlock’ towns
11:29:16 <andythenorth> similarly a ‘build the wild west’ GS, where new industries and towns are founded when completing a goal
11:29:55 <andythenorth> ho we can rename towns
11:30:01 * andythenorth browsing the spec
11:30:41 <andythenorth> yeah, there’s GSTown::FoundTown()
11:31:13 <andythenorth> Alberth: have you found a way to update the GS on a running game?
11:31:35 <Alberth> no, I just start a new one every time
11:31:49 <andythenorth> wondering if save + open reloads the GS
11:31:52 <andythenorth> probably :P
11:32:17 <Alberth> I'd expect so, but the gs has no data then
11:32:35 <andythenorth> ah
11:32:41 <Alberth> since we didn't implement 'save' :)
11:32:42 <andythenorth> do we need to handle savegames?
11:32:48 <andythenorth> console has been nagging about that :)
11:33:23 <Alberth> adding an empty 'save' function would easy enough
11:33:41 * andythenorth reads spec
11:33:56 <Alberth> not sure if preserving the goals would be useful
11:34:30 <Alberth> I guess it would be in some cases, eg continuing a SP game
11:34:59 <andythenorth> as a player, I would expect my goals to persist across a savegame
11:37:04 * andythenorth trying to figure out how it’s done
11:38:04 <andythenorth> SV and NCG implement Save() and Load() methods on MainClass, which extends GSController
11:38:18 <andythenorth> but I can’t find them called anywhere
11:38:29 <andythenorth> nor can I find them in GS docs
11:42:00 <Alberth> sounds like a bug :)
11:51:10 <Alberth> adding some issues to the project
11:57:25 *** Murphy has joined #openttd
11:57:55 <Alberth> /me wonders whether to check what the GS libraries offer
12:11:24 *** Murphy has quit IRC
12:15:25 <andythenorth> I read some of superlib to see if there was anything essential there
12:15:29 <andythenorth> didn’t see anything yet
12:24:24 *** MJP has joined #openttd
12:25:52 <Alberth> I agree
12:26:22 *** glevans2 has quit IRC
12:27:11 *** glevans2 has joined #openttd
12:27:37 <argoneus> I'm actually wondering
12:27:43 <argoneus> since OTTD is a brand new game with fresh code
12:28:05 <__ln__> though it's not
12:28:06 <argoneus> are there any parts that are spaghetti code and need rewriting / no one understands them or doesn't dare to touch them or is it mostly nice and clear?
12:28:56 <Alberth> pushed renaming of the main class :)
12:29:14 <__ln__> argoneus: your premise is false. OTTD is not a brand new game with fresh code.
12:29:30 <argoneus> but it is
12:29:48 <argoneus> you just disassembled the original game and re-wrote it in C++, no?
12:30:00 <__ln__> no.
12:30:15 * argoneus shrugs
12:30:35 <Alberth> your other premise is false too, new code can also be scary :)
12:31:58 <argoneus> I'd think that someone who can figure out how a game works from asm knows how to write functional code
12:32:11 *** Supercheese is now known as Guest231
12:32:16 *** Supercheese has joined #openttd
12:34:18 *** Wolf01 has joined #openttd
12:34:29 <Wolf01> o/
12:34:36 <Alberth> Functional code and working code are independent concepts, functional code can also be scary. In fact, if there is any scary code, it would be functional, or it would have been deleted long ago. Also, the original author has ling ago left, new people joined the project
12:34:39 <Alberth> hi hi Wolf01
12:34:58 * argoneus shrugs
12:35:01 <Alberth> s/ling/long/
12:35:16 <argoneus> ling rush
12:35:43 <argoneus> but yeah
12:35:50 <argoneus> I asked a question and instead got told that all my premises are false
12:35:51 <argoneus> :(
12:35:55 <__ln__> argoneus: also the premise about rewriting in C++ is false.
12:35:59 <argoneus> ^
12:36:17 <argoneus> in C I meant
12:36:50 <Alberth> argoneus: I don't think there exists an objective answer to the question, obviously, an author will not think his code to be scary and unreadable
12:36:57 <argoneus> why not?
12:37:05 *** Guest231 has quit IRC
12:37:13 <argoneus> I thought most devs said "this is shit I need to rewrite this later"
12:37:24 <Alberth> how can you write code you don't understand right down to the core?
12:37:57 <argoneus> so you never write something and think "meh it works but it's shit"?
12:38:05 <Alberth> sure you can improve on corner cases etc etc, but you do understand what you write
12:38:43 <Alberth> I do, but I don't throw it in a repository. I clone a fresh copy and try again
12:39:10 <Wolf01> I don't understand what I wrote a month ago, that's why I need to write tests for it
12:39:15 *** Rubidium_ is now known as Rubidium
12:39:20 <Rubidium> argoneus: plenty... but sadly enough rewriting isn't really possible for many of those cases
12:39:35 <argoneus> oh, I see
12:39:47 <argoneus> also, I never understood the unit testing approach
12:39:51 <argoneus> as in, write tests and then build on top of it
12:39:55 <argoneus> or development driven by tests etc
12:40:02 <argoneus> it just feels hacky as fuck
12:40:13 <argoneus> if you can't decide on a structure how do you decide on the use
12:40:32 <Alberth> There are some exceptions, but to a large degree I agree with it
12:40:45 <argoneus> agree w/ development driven by tests or with what I wrote?
12:41:29 <Alberth> the former, I think
12:41:59 <Alberth> the idea with writing tests first is that you get an idea of what functionality you need to supply
12:42:06 <argoneus> so you should be able to tell how a program will be used before you actually write the program?
12:42:28 <Alberth> sure, at least for the major parts
12:42:39 <andythenorth> argoneus: there are people who absolutely swear by TDD
12:42:45 <andythenorth> and I can see how it could be made to work
12:42:45 *** Biolunar has joined #openttd
12:42:56 <Wolf01> argoneus: do you write random code because it could be used in some way?
12:43:11 <andythenorth> I have never clicked with TDD, it’s not how my brain works
12:43:19 <Alberth> from the idea of what functionality you need, you can design a structure
12:43:19 <argoneus> I just don't understand it
12:43:27 <andythenorth> what’s not to understand?
12:43:27 <argoneus> like if I want to write an irc bot
12:43:31 <argoneus> then my test is bot->start()
12:43:32 <argoneus> and that's it
12:43:41 <argoneus> what else should I do to test
12:43:57 <andythenorth> what does your bot do?
12:44:07 <argoneus> connect and listen I guess
12:44:12 <andythenorth> so far you’ve only tested that it doesn’t die on start
12:44:13 <Wolf01> you should test how bot reacts on channel modes, for which commands it responds
12:44:30 <argoneus> but most of what it does are callbacks
12:44:31 <Alberth> how fast, configurability
12:44:35 <argoneus> how do I write a test for those
12:44:40 <andythenorth> supported platforms
12:44:43 <andythenorth> known edge cases
12:44:50 <Alberth> race conditions
12:45:03 <andythenorth> probably not corner cases, unless they’re expensive when they happen
12:45:05 <argoneus> race conditions?
12:45:07 <Wolf01> you provide a test callback and test the bot give the output you expected
12:45:11 <argoneus> (I know what the term means just not the concept)
12:45:18 <argoneus> contexT*
12:45:20 <andythenorth> uncaught while loops, failed input etc
12:45:38 <andythenorth> what does your bot do when someone throws unicode at it?
12:45:56 <andythenorth> etc
12:46:03 <argoneus> so I have several tests for basic functionality, a callback test, a ping-pong test, etc?
12:46:06 <Alberth> argoneus: say you have a rule-based bot, and a rule for "a" and a rule for "b". now what if both "a" and "b" are in one line? which one is done first?
12:46:21 <argoneus> Alberth: whichever came first
12:46:25 <argoneus> they can't come at once obviously
12:46:41 <Alberth> what if it is important to do "a" before "b"
12:46:52 <andythenorth> argoneus: there are different kinds of testing, people argue over the names still, but...
12:46:56 <argoneus> then instead of a queue I can use a priority queue
12:46:57 * argoneus shrugs
12:47:01 <andythenorth> approximately...
12:47:09 <Alberth> ie all stuff of how the bot should react from a user point of view
12:47:13 <andythenorth> - unit tests: test the actual functions + classes in the code directly
12:47:23 <argoneus> I just never understood how to actually write unit tests
12:47:24 <andythenorth> - functional tests: test the running app
12:47:35 <argoneus> it feels like wasting time I could've spent making my bot work on writing abstract tests that don't even work at first
12:47:36 <andythenorth> - integration tests: test the app in the supported environments
12:47:46 <andythenorth> all of which is regression testing
12:48:10 <argoneus> like, if you imagine an IRC bot, in, say, C++, how do you write a unit test for anything?
12:48:18 <argoneus> is it part of the actual bot or a separate program or how does that work? ;;
12:48:25 <andythenorth> your irc bot is stateless? You don’t store anything?
12:48:36 <Wolf01> unit tests should test the little part of the code you can, for example you don't test how the bot reacts to a command by running the entire system, you test the command module
12:48:57 <argoneus> yeah but where do you put this unit testing code?
12:49:02 <argoneus> do you just bloat your code with random testS?
12:49:04 <andythenorth> some kind of test layers
12:49:07 <Alberth> separate file/function/class
12:49:09 <andythenorth> dunno how it’s done in C++
12:49:16 <andythenorth> does ottd have _any_ unit tests?
12:50:31 <Wolf01> I think it doesn't, as far as I remember, the basic tests are some asserts buried in the code
12:50:52 <Rubidium> what about the regression ai?
12:51:23 <argoneus> I understood how unit tests worked in smalltalk
12:51:25 <andythenorth> this is a python test that checks that the data submitted via a web form is persisted to the db https://paste.openttdcoop.org/paucylxwi
12:51:28 <andythenorth> as an example
12:51:28 <argoneus> it has a special unit testing environment
12:51:42 <andythenorth> imho, tests are mistake prone
12:52:07 <argoneus> so you just have a tests.py
12:52:09 <argoneus> which you run whenever you want?
12:52:16 <andythenorth> tests/module_name.py
12:52:17 <andythenorth> yes
12:52:18 <Wolf01> tests should be the simplest possible, and without a logic
12:52:18 <andythenorth> kinda
12:52:23 <andythenorth> number of lines of code in a unit test often outweighs the amount of code being tested
12:52:28 <Alberth> argoneus: make a new test program, with the code to test imported or linked to it
12:53:23 <andythenorth> I suspect that tests often contain errors and are of low utility
12:53:29 <Wolf01> if you need to put logic in tests, you may want to put it in a separate class and test it too
12:54:11 <argoneus> oh so like
12:54:13 <Wolf01> I was reading this yesterday: http://googletesting.blogspot.it
12:54:27 <argoneus> if I have an irc bot that reverses everything people say and writes it back
12:54:39 <Wolf01> ?siht ekil
12:54:39 <argoneus> then a unit test could be if my reverseText method works properly?
12:54:47 <argoneus> independent on the bot?
12:54:52 <Alberth> yep
12:55:20 <andythenorth> you might hard code example strings
12:55:28 <argoneus> so unit tests are just pieces of code that test functionality that would otherwise be hard to test because it doesn't happen that often or is difficult to trigger normally?
12:55:30 <andythenorth> or you might call reverse in your test and check they match
12:55:36 <andythenorth> both have pitfalls :P
12:56:06 <Wolf01> you have a test like this: "testReverse() { $bot = new Bot(); $this->assertEquals('?siht ekil', $bot->reverse('like this?')); }
12:56:19 <andythenorth> I work on one app that has reasonable unit test coverage, and the tests constantly catch unintended breakage due to changes
12:56:21 <Alberth> argoneus: I often do unit tests for core pieces of the code, which are hard to reach otherwise, since they are buried under a big stack of other code
12:56:25 <argoneus> oh
12:56:35 <argoneus> so as a beginner I should even have unit tests for things like heapsort etc?
12:56:39 <argoneus> to make sure it sorts properly
12:56:43 <argoneus> something like
12:56:48 <andythenorth> is that a language feature?
12:56:51 <argoneus> assert heapsort(3,2,1,4) = (1,2,3,4) ?
12:56:52 <andythenorth> (heapsort)
12:56:55 <argoneus> no
12:57:02 <argoneus> if I had to implement it myself
12:57:11 <andythenorth> if you had to implement it yourself, maybe
12:57:13 <Alberth> andythenorth: it's a sorting algorithm
12:57:25 <Wolf01> if you had to implement it, then yes
12:57:35 <andythenorth> once you have heapsort working, that test is unlikely to ever win you anything in future
12:57:40 <andythenorth> but it makes it easy to test ‘working'
12:57:42 <argoneus> right
12:57:48 <argoneus> but so basically
12:57:56 <andythenorth> in an app where money is a factor, you’d be testing things like:
12:58:00 <argoneus> I write unit tests to make sure it's my logic that is failing and not a stupid mistake in some function?
12:58:05 <andythenorth> - have we actually written the user data to the DB?
12:58:06 <Alberth> it's often an example case that you have while running the code for the first time
12:58:18 <andythenorth> - have we moved the decimal point in a financials transaction?
12:58:22 <andythenorth> - can the user actually log in?
12:58:30 <Wolf01> and you are sure if you might need to refactor the function or fix an edge case, you already have the output validated
12:58:44 <argoneus> but andy
12:58:50 <argoneus> for example for the first one, you don't write a separate test
12:58:52 <Alberth> and you typically test edge cases, like (), (1,1,1), (4,3,2,1)
12:59:01 <argoneus> you just writeToDb() and then doesUserExist(user)
12:59:02 <argoneus> no?
12:59:10 <andythenorth> argoneus: that’s a test
12:59:36 <argoneus> but I think I get the idea
13:00:03 <andythenorth> have we written the user data to the db, without transposing any fields, and does it handle unicode, and invalid values correctly?
13:00:07 <andythenorth> is a more realistic test
13:00:10 <argoneus> so for example if you guys have a chess AI
13:00:20 <argoneus> then you write tests to make sure the AI selects the best move in certain pre-set scenarios
13:00:21 *** gelignite has joined #openttd
13:00:28 <Alberth> in my view, there is a trade-off between writing tests, and debugging later
13:00:29 <argoneus> and as you improve the AI you keep testing to see if it fucks up anything that worked beforE?
13:00:35 <argoneus> is that a valid use case?
13:00:46 <Alberth> that's a regression test
13:01:01 <argoneus> a regression test is something else than a unit test?
13:01:02 <andythenorth> in the world I work in, the tests are partly a pragmatic commercial decision
13:01:12 <andythenorth> do we want to pay people to sit and manually test the app?
13:01:20 <andythenorth> or do we want to teach machines to do it?
13:01:34 <andythenorth> there are people who treat TDD as a very principled thing
13:01:42 <andythenorth> I sometimes don’t get on very well with those people :P
13:01:51 <andythenorth> building code cathedrals
13:02:08 <Alberth> test code often exceeds the real functional code
13:02:25 <andythenorth> but on an app with *lots* of tests, refactoring is possible
13:02:29 <Alberth> which means there are more errors in your tests than in the real code :p
13:03:10 <Wolf01> give a look at this too: http://code.tutsplus.com/series/refactoring-legacy-code--cms-633
13:03:11 <Rubidium> assert(min((1,2), (4,1)) == (3,1)); <- did you know that doesn't trigger the assertion in C
13:03:52 <Alberth> :D
13:04:43 <Wolf01> I don't even understand what that means :D
13:04:53 <Alberth> http://pythontesting.net/strategy/why-most-unit-testing-is-waste/
13:04:58 <andythenorth> bah
13:05:01 <Rubidium> which is why argoneus' assert bothered me; if I did a #define heapsort then argoneus' assert would not trigger
13:05:03 <andythenorth> I was just looking for that :P
13:05:10 <andythenorth> then I come back to my irc app and you’ve found it
13:05:27 <Alberth> Wolf01: mostly, it means it doesn't do what you think :p
13:05:32 <Alberth> sorry andythenorth
13:05:36 <andythenorth> happens
13:06:03 <andythenorth> for the record, integration testing is *in* :P
13:06:14 <Alberth> I probably saved it from one of your previous pastes :)
13:07:32 <Alberth> Looks interesting Wolf01, will save it for future study
13:08:21 <andythenorth> the python article is one of the few reasoned rebuttals I’ve seen to TDD focussed on unit tests & high % coverage goal
13:10:00 <Rubidium> in a perfect world every theoretical situation is tested, but in the real world you usually have to get away with less because of other pressures
13:10:03 <andythenorth> the TDD principle doesn’t accomodate well to “no if that edge case happens, we’ll phone up the customer and say sorry"
13:10:20 <andythenorth> which is preferable in some cases to dubious tests
13:10:30 <Wolf01> agreed
13:10:48 <andythenorth> setattr(obj, ‘foo’)
13:10:50 <Rubidium> andythenorth: exactly... though, the question is where to draw the line
13:10:57 <andythenorth> assert(obj == foo)
13:11:03 <Rubidium> (and that's the real difficulty in testing)
13:11:04 <andythenorth> bad syntax, but eh, don’t test that
13:11:21 <andythenorth> testing for hard-coded strings in an i18n app is my current bugbear :x
13:11:27 <andythenorth> that has been done
13:12:54 <andythenorth> for web apps, visual diff is proving to be a powerful tool
13:12:55 <andythenorth> http://www.rightmove.co.uk/dev/blog/visual-regression-automation/
13:13:07 <andythenorth> for given input, did the output change? Was the change the expected change?
13:15:23 <Alberth> nice
13:17:42 <Wolf01> interesting
13:25:31 <andythenorth> still early days
13:25:37 <andythenorth> but powerful tool
13:29:22 *** Myhorta has joined #openttd
13:37:06 <Alberth> should we add a timeout to the goals? after x months, just remove it (as the user isn't interested in building it)
13:42:33 <andythenorth> hmm
13:42:37 <andythenorth> interesting idea
13:42:53 <andythenorth> let’s try it
13:43:57 <Alberth> /me adds an issue
13:50:01 *** Myhorta has quit IRC
13:57:07 *** TheDude has joined #openttd
14:02:10 *** Osceola has joined #openttd
14:03:19 <Osceola> hi
14:03:26 <Osceola> can help me?
14:03:37 <Osceola> at my station occurs only partial loading of coal. Part remains at the station. Why is there a mistake? [googl translated]
14:04:02 <Osceola> its a bud in new version?
14:04:06 <Osceola> bug
14:05:55 *** DDR has quit IRC
14:06:16 *** DDR has joined #openttd
14:11:22 <Alberth> using cargo-dist?
14:15:14 <Osceola> http://uploads.ru/iFmeg.png
14:15:23 <Osceola> not, i think
14:16:04 <Alberth> upload site doesn't like me
14:16:25 <Alberth> I saw a screenshot briefly, there are +/- at the right side of the cargo
14:16:34 <Alberth> so yes, you have cargo-dist
14:16:52 <Osceola> server arctic
14:16:58 <Osceola> know this server?
14:17:09 *** sla_ro|master has quit IRC
14:17:22 <Alberth> in that case, it's not a bug, the cargo left on the station is for a different power station
14:17:34 <Osceola> i see it first time
14:17:44 <Osceola> and i play 10 years
14:17:49 <Osceola> its not a bug )
14:17:51 <Osceola> ?
14:18:08 <Alberth> Cargo-dist was added to 1.4
14:18:22 <Alberth> and you didn't play with 1.4 for the last 10 years :)
14:18:41 <Osceola> last year i not play
14:18:53 <Osceola> wtf
14:19:07 <Osceola> and what do need?
14:19:47 <Alberth> http://wiki.openttd.org/Passenger_and_cargo_distribution
14:20:02 <Osceola> stop
14:20:28 <Osceola> if i move cargo to one powerstation this problem is end?
14:20:29 <Osceola> lol)
14:22:28 *** supermop has joined #openttd
14:22:45 <Osceola> but this dont give normal game
14:22:50 <Osceola> its a wrond
14:22:53 <Osceola> wrong
14:23:14 *** Yotson has quit IRC
14:23:39 <Alberth> http://devs.openttd.org/~alberth/manual_cargo.png
14:23:50 <Rubidium> Osceola: by default cargo dist is disabled. Apparantly the owner of the server you played on had it enabled. If you don't like it, don't play on that server
14:24:39 <Osceola> this server live 10 years
14:24:45 <Osceola> and i play 10 yers there
14:24:51 <Osceola> but ...
14:24:52 <Osceola> ...
14:24:53 <Osceola> ...
14:25:11 <Osceola> o_O
14:26:39 <Rubidium> alternatively you can ask the server owner to disable cargo dist, besides that having cargo dist enabled not behaving like when cargo dist is disabled is definitely not a bug
14:27:15 *** Suicyder has joined #openttd
14:27:51 <Rubidium> also, the choice for the current behaviour (sending cargo to where you have a network) of cargo dist was deliberate over only sending cargo to a predetermined location (and if you don't provide a route to that location you won't see the cargo at all)
14:29:24 <Osceola> Rubidium
14:29:40 <Osceola> have you some minutes? )
14:30:34 <Osceola> im have two way
14:30:58 <Osceola> and one way moved 90% cargo
14:31:13 <Osceola> but on station cargo remained
14:31:21 <Osceola> to another way
14:31:31 <Osceola> raiting low
14:31:34 <Osceola> all bad
14:31:42 <Osceola> i dont know
14:32:05 <Osceola> (((
14:35:53 <Osceola> well, go to learn this problem)
14:35:59 *** Osceola has quit IRC
14:41:20 *** Myhorta has joined #openttd
14:59:01 <andythenorth> cdist claims another victim :)
15:00:55 *** Yotson has joined #openttd
15:02:55 <Alberth> 3 oil goals, 2 oil wells, and 1990 in temperate map :p
15:05:51 <supermop> Oil Valley?
15:06:15 <Alberth> no, just a random map
15:08:57 <supermop> not playing SV?
15:12:54 *** Biolunar has quit IRC
15:13:05 <Alberth> playing BusyBee
15:32:36 *** shadowalker has joined #openttd
15:51:28 *** estys has joined #openttd
15:51:32 *** Jinassi has joined #openttd
15:56:45 <andythenorth> Alberth: is it any good? o_O
15:56:56 *** MTsPonyZzZ has quit IRC
15:56:56 *** Progman has joined #openttd
15:59:05 <Alberth> it's buggy :p
15:59:31 <Alberth> 4 oil goals, asking for goods to a town that doesn't accept it
16:00:08 <andythenorth> ho :)
16:01:04 *** skrzyp has quit IRC
16:03:38 *** skrzyp has joined #openttd
16:03:59 *** Jinassi has quit IRC
16:06:35 <estys> hello
16:06:55 <estys> i am having problems with creating an account on http://account.openttd.org/en/signup/step2
16:07:06 <estys> i do not receive the activation email
16:07:25 <estys> is this the right place to ask about that?
16:08:34 <Alberth> Rubidium: ^ can you solve that?
16:09:30 <Alberth> anti-spam measures may make email a bit slow
16:10:58 <estys> i don't think its about slowness. already tried on 25th and never recieved a mail. also tried two different mail addresses.
16:11:21 <Alberth> k
16:14:41 *** Jinassi has joined #openttd
16:28:16 *** DDR has quit IRC
16:37:34 *** Progman has quit IRC
16:54:32 <Alberth> pushed fix for unavailable cargoes
17:11:54 <andythenorth> yay
17:12:07 <Alberth> and a few more things in other commits
17:16:07 <andythenorth> awesome :)
17:16:14 <andythenorth> hopefully I can start a game tonight
17:17:00 <Alberth> how long should the time-out be?
17:17:14 <Alberth> 10 years?
17:17:18 <andythenorth> configurable
17:17:26 <andythenorth> I am -1 to settings on newgrf, but +1 on GS
17:17:32 <Alberth> :)
17:17:56 <andythenorth> arbitrary # months
17:17:57 *** hdevalence has joined #openttd
17:18:06 <andythenorth> default 60?
17:18:31 <Alberth> let's try that
17:34:52 *** smoke_fumus has joined #openttd
17:44:29 *** Pereba has joined #openttd
17:45:31 <DorpsGek> Commit by translators :: r27100 trunk/src/lang/luxembourgish.txt (2014-12-30 17:45:27 UTC)
17:45:32 <DorpsGek> -Update from WebTranslator v3.0:
17:45:33 <DorpsGek> luxembourgish - 334 changes by Phreeze
17:52:24 <argoneus> lol
17:52:26 <argoneus> this thread
17:52:30 <argoneus> >OpenTTD won't let me spend money
17:59:45 <Jinassi> he was probably involved in Ponzi scheme :)
18:36:41 *** Yotson has quit IRC
18:37:53 <Rubidium> Alberth: I can't at the moment, hopefully TrueBrain can see what's wrong with his account generation
18:40:39 <Rubidium> hmm... maybe I can after finding the right database table
18:44:08 *** MTsPony has joined #openttd
18:48:56 <argoneus> el psy kongroo
18:53:49 *** Alberth has left #openttd
18:55:05 *** Pensacola has joined #openttd
19:16:34 *** Pereba has quit IRC
19:17:05 *** Pereba has joined #openttd
19:43:49 *** luaduck_zzz is now known as luaduck
19:48:15 *** hdevalence has quit IRC
19:57:14 <NGC3982> http://i.imgur.com/8DpI3MQ.png
19:57:27 <NGC3982> Note the reserved track in the middle of the picture
19:57:45 <NGC3982> How is that possible, and what on earth do i do to fix it?
19:58:06 <Wolf01> ghost train
19:58:14 <Wolf01> call exorcist
19:59:08 <Wolf01> try removing one of the pieces of track outside the station and see if the other one changes status
19:59:52 <Wolf01> then try placing safe waiting points on the tracks just outside the stations
20:01:56 <NGC3982> I see
20:02:04 <NGC3982> Removing the station and re-inserting it worked out.
20:02:13 <NGC3982> Is this something new? I have never seen anything like it.
20:02:25 <Jinassi> maybe like this? http://i.imgur.com/9VITx9P.jpg
20:03:20 <NGC3982> :D
20:04:02 <Wolf01> don't cross the streams! ehm, wrong quote... don't mix path and block signals!
20:04:27 <Jinassi> reason?
20:04:45 <Wolf01> one might be what appened to NGC3982
20:05:30 <Wolf01> also unexpected crashes or pathfinding issues
20:07:12 <NGC3982> I really find no reason using anything but path signals.
20:07:24 <Jinassi> not really...block signals only reserve path per block, so having a one-way path signal for entry directs trains to empty platform, if there are more empty platforms, both entry paths can be used, path signals let outgoing trains direct to the free path to get out and trains coming in can still see platform being busy, since that path signal can let trains go both ways if needed
20:07:29 <NGC3982> But then again, i don't really have any clue on how the rest of them work properly. :>
20:08:26 <Wolf01> https://wiki.openttd.org/images/9/90/Station_terminus_fourtracks_pathsignals.png this should be the right way to build with path signals, with a long enough track to exit and let trains wait safer and without blocking the junction
20:08:53 <peter1138> Wolf01 +1
20:08:57 *** Myhorta has quit IRC
20:09:29 <Jinassi> oh i am going to enjoy this
20:09:33 <Jinassi> making a gif
20:09:36 <NGC3982> How does a train block a junction without the station turned standard path signals in your example?
20:10:46 <NGC3982> As opposed to: http://i.imgur.com/ePLowJm.png
20:11:32 <peter1138> What's the question?
20:11:53 <Wolf01> I don't know what happen in your case when 2 trains finished loading at the same time, and I don't want to try :D
20:12:07 <NGC3982> Why i need the standard path signals used in his example.
20:12:11 <peter1138> One reserves up to the safe waiting point, the other waits.
20:12:21 <NGC3982> When two trains are complete at the same time the first train leave, and the other one wait.
20:12:26 <NGC3982> Exactly.
20:12:27 <Wolf01> I feel it's like "int x; x++;"
20:12:31 <peter1138> You don't need the signals at the station if it's a terminus.
20:12:43 <peter1138> I still think it's messy without them though ;p
20:13:32 <Wolf01> it's a race condition, it could always go wrong, also in the better of the cases
20:13:45 <NGC3982> I do not think it can't.
20:14:16 <NGC3982> Does the game support two trains by accident reserving the same track without actively ignoring signals?
20:14:26 <peter1138> No.
20:14:55 <Wolf01> no, because the terrain is scanned sequentially, trains work in another way
20:19:09 *** Pensacola has quit IRC
20:41:57 *** sla_ro|master has joined #openttd
20:56:54 *** luaduck has quit IRC
21:12:02 *** luaduck_zzz has joined #openttd
21:12:10 *** luaduck_zzz is now known as luaduck
21:15:14 <Wolf01> http://img-9gag-ftw.9cache.com/photo/aZWo5x3_460s.jpg cool, bad feature... or bad brakes
21:16:03 <Rubidium> or inattention
21:16:57 <Rubidium> Wolf01: same issue here http://www.mp-produktie.nl/Images%20Ongevallen/2010-07-25%20Ongeval%20SLijptrein%20Stavoren%20%281%29.jpg
21:17:26 <Wolf01> :o
21:17:29 <Rubidium> from another angle: https://c1.staticflickr.com/5/4083/4834557749_c9f6a0a473_z.jpg
21:18:10 <Rubidium> in this case nothing was wrong with the breaks, just a load of other things were not quite right
21:19:09 <__ln__> a new meaning for "drive-through"
21:19:37 *** Tirili has joined #openttd
21:25:40 <Wolf01> http://img-9gag-ftw.9cache.com/photo/aKgX45b_460sv.mp4 nice
21:27:48 <Rubidium> Wolf01: looks like a huge acceleration in there
21:30:34 *** Myhorta has joined #openttd
21:31:23 <Wolf01> if train slows down a bit, it could result in the same acceleration you have on the metro
21:33:03 *** Suicyder has quit IRC
21:52:50 *** liq3 has quit IRC
21:58:09 *** HerzogDeXtEr has joined #openttd
21:58:20 <Rubidium> the fastest acceleration I can find for trains is just below 1 m/s^2; the train looks about 8 carriages long (-> 200 meter). At 1 m/s/s you'd pass 200 meter after about 20 seconds at which you would do 20 m/s (72 km/h). So the speed is still relatively low for such contraptions
22:06:42 <NGC3982> 1m/s/s doesn't really sound slow
22:06:47 <NGC3982> If anyone thought so.
22:06:49 <NGC3982> \o/
22:12:43 *** hdevalence has joined #openttd
22:44:24 *** kais58_ is now known as kais58|AFK
22:50:19 *** Progman has joined #openttd
23:06:20 *** FLHerne has joined #openttd
23:17:19 *** mgpl_ has joined #openttd
23:23:47 *** mgpl has quit IRC
23:25:22 *** andythenorth has left #openttd
23:25:35 *** Tirili has quit IRC
23:41:03 <Wolf01> 'night
23:41:08 *** Wolf01 has quit IRC
23:50:30 *** kais58|AFK is now known as kais58_
23:51:25 *** estys has quit IRC