Times are UTC Toggle Colours
00:08:37 *** Belugas [~belugas@00011985.user.oftc.net] has quit [Ping timeout: 480 seconds] 00:08:48 *** Belugas [~belugas@216.191.111.230] has joined #openttd 00:08:51 *** mode/#openttd [+o Belugas] by ChanServ 00:10:17 *** Quatroking [~Quatrokin@ip226-139-211-87.adsl2.static.versatel.nl] has quit [Read error: Connection reset by peer] 00:23:22 *** Jinassi2 [~jinassi@176.76.57.79] has joined #openttd 00:26:09 *** Jinassi [~jinassi@0001ec72.user.oftc.net] has quit [Ping timeout: 480 seconds] 00:26:12 *** Jinassi2 [~jinassi@176.76.57.79] has quit [] 00:26:29 *** Jinassi [~jinassi@176.76.57.79] has joined #openttd 00:29:28 *** Myhorta [~Myhorta@00018fad.user.oftc.net] has quit [Remote host closed the connection] 00:45:00 *** tokai|mdlx [~tokai@port-92-195-157-99.dynamic.qsc.de] has quit [Quit: c('~' )o] 01:10:22 *** oskari892 [oskari89@83-102-63-32.bb.dnainternet.fi] has quit [] 01:20:10 *** Pereba [~UserNick@177.40.217.73] has quit [Quit: better late than never - adiirc.com] 01:25:45 *** Progman [~progman@p57A18DA2.dip0.t-ipconnect.de] has quit [Remote host closed the connection] 01:43:02 *** smoke_fumus [~smoke_fum@188.35.176.90] has quit [Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/] 01:55:44 *** liq3 [~liq3@CPE-120-147-178-81.gdfw1.lon.bigpond.net.au] has joined #openttd 02:01:45 *** tokai [~tokai@00012860.user.oftc.net] has joined #openttd 02:01:48 *** mode/#openttd [+v tokai] by ChanServ 02:04:52 *** supermop_ [~supermop@cpe-184-57-31-100.columbus.res.rr.com] has joined #openttd 02:11:49 *** supermop [~supermop@2605:a000:1121:24:4cf5:a73c:f137:e12a] has quit [Ping timeout: 480 seconds] 03:04:26 *** DDR [~kvirc@S010600254bbe4e1c.vc.shawcable.net] has joined #openttd 03:32:24 *** gelignite [~gelignite@i5387a9b2.versanet.de] has quit [Quit: http://bit.ly/nkczDT] 03:39:04 *** MJP [~mjp@hq.z77.fr] has quit [Ping timeout: 480 seconds] 04:41:04 *** MTsPony [~MTsPony@008-086-128-083.dynamic.caiway.nl] has quit [] 04:42:32 *** MTsPony [~MTsPony@008-086-128-083.dynamic.caiway.nl] has joined #openttd 04:47:32 *** Extrems [borgs@modemcable204.141-177-173.mc.videotron.ca] has joined #openttd 05:49:14 *** Flygon [~Flygon@147.18.214.218.sta.commander.net.au] has quit [Read error: Connection reset by peer] 05:52:47 *** Flygon [~Flygon@147.18.214.218.sta.commander.net.au] has joined #openttd 05:56:01 *** Eddi|zuHause [~johekr@p57BD5CB2.dip0.t-ipconnect.de] has quit [] 05:56:15 *** Eddi|zuHause [~johekr@p5DC6610A.dip0.t-ipconnect.de] has joined #openttd 06:03:52 *** luaduck is now known as luaduck_zzz 06:36:00 *** HerzogDeXtEr1 [~flex@i59F6CD68.versanet.de] has joined #openttd 06:41:19 *** HerzogDeXtEr [~flex@i59F6B6E1.versanet.de] has quit [Ping timeout: 480 seconds] 07:16:47 *** supermop_ [~supermop@cpe-184-57-31-100.columbus.res.rr.com] has quit [Ping timeout: 480 seconds] 07:43:37 *** Jinassi [~jinassi@0001ec72.user.oftc.net] has quit [Quit: Nettalk6 - www.ntalk.de] 07:56:08 *** Alberth [~hat@2001:981:c6c5:1:be5f:f4ff:feac:e11] has joined #openttd 07:56:11 *** mode/#openttd [+o Alberth] by ChanServ 08:03:04 *** tokai|mdlx [~tokai@port-92-195-134-201.dynamic.qsc.de] has joined #openttd 08:07:08 *** andythenorth [~Andy@cpc10-aztw26-2-0-cust867.18-1.cable.virginm.net] has joined #openttd 08:09:14 *** tokai [~tokai@00012860.user.oftc.net] has quit [Ping timeout: 480 seconds] 08:10:26 *** Jinassi [~jinassi@0001ec72.user.oftc.net] has joined #openttd 08:19:50 <andythenorth> o/ 08:29:49 *** ST2 [~ST2@118.107.136.95.rev.vodafone.pt] has joined #openttd 08:39:32 <Alberth> hi hi 08:42:46 *** sla_ro|master [slamaster@95.76.27.245] has joined #openttd 09:01:53 *** Myhorta [~Myhorta@00018fad.user.oftc.net] has joined #openttd 09:04:08 *** TheMask96 [martijn@envy.vhost.ne2000.nl] has quit [Ping timeout: 480 seconds] 09:10:03 *** TheMask96 [martijn@envy.vhost.ne2000.nl] has joined #openttd 09:14:54 *** Extrems [borgs@modemcable204.141-177-173.mc.videotron.ca] has quit [Read error: Connection reset by peer] 09:15:22 *** Extrems [borgs@modemcable204.141-177-173.mc.videotron.ca] has joined #openttd 09:21:44 *** Myhorta [~Myhorta@00018fad.user.oftc.net] has quit [Ping timeout: 480 seconds] 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 [~progman@p57A18489.dip0.t-ipconnect.de] has joined #openttd 09:39:41 *** glevans2 [~glevans2@71-8-126-76.dhcp.ftwo.tx.charter.com] has quit [Ping timeout: 480 seconds] 09:40:21 *** glevans2 [~glevans2@71-8-126-76.dhcp.ftwo.tx.charter.com] has joined #openttd 09:41:46 *** Jinassi [~jinassi@0001ec72.user.oftc.net] has quit [Ping timeout: 480 seconds] 09:47:05 <Alberth> k 09:53:28 *** Osceola [kvirc@31.132.147.3] has joined #openttd 09:53:28 <Osceola> hi 09:53:28 <Osceola> anybody here? 09:53:28 *** Progman [~progman@p57A18489.dip0.t-ipconnect.de] has quit [Remote host closed the connection] 09:53:28 <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 [~Yotson@2001:980:6ac8:1:cd8c:6117:bab5:c82a] has joined #openttd 10:03:26 <Alberth> busy bee andy :) 10:05:25 <Alberth> We'd need a new text I guess 10:22:25 *** Osceola [kvirc@31.132.147.3] has quit [Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/] 10:25:21 *** oskari89 [oskari89@83-102-63-32.bb.dnainternet.fi] has joined #openttd 10:32:06 *** Elec_a [~oftc-webi@87.107.217.2] has joined #openttd 10:32:51 <Elec_a> Hello, what is ttdpatch ? 10:34:34 *** Flygon_ [~Flygon@147.18.214.218.sta.commander.net.au] has joined #openttd 10:35:53 *** MTsPonyZzZ [~MTsPony@008-086-128-083.dynamic.caiway.nl] has joined #openttd 10:36:03 *** HerzogDeXtEr [~flex@i59F6CD68.versanet.de] has joined #openttd 10:38:37 <Alberth> an extension to the original TTD program, as in, it patches the original executable 10:39:40 *** Netsplit resistance.oftc.net <-> graviton.oftc.net quits: davidstrauss_, Xaroth_, jonty-comp, HerzogDeXtEr1, Sylf, Sheogorath, @Terkhen, Flygon, Xaroth|Work, Born_Acorn, (+17 more, use /NETSPLIT to show all of them) 10:39:40 *** Xaroth|Work [~XarothAtW@194.1.204.204] has joined #openttd 10:40:10 *** HerzogDeXtEr [~flex@i59F6CD68.versanet.de] has quit [] 10:41:58 *** Netsplit over, joins: Hazzard 10:42:08 <Alberth> Hmm, the script also gives non-available cargoes as target, it shouldn't do that :) 10:42:45 *** Netsplit over, joins: ToBeFree 10:42:49 <andythenorth> interesting 10:43:29 *** Netsplit over, joins: blathijs 10:43:49 *** Quatroking [~Quatrokin@ip226-139-211-87.adsl2.static.versatel.nl] has joined #openttd 10:44:17 *** Netsplit over, joins: Born_Acorn, jonty-comp, ivan`, jinks, davidstrauss_, ccfreak2k, @Terkhen, Speedy, KouDy, argoneus (+7 more) 10:45:14 *** Netsplit over, joins: skrzyp 10:47:02 *** urdh [urdh@00013d7a.user.oftc.net] has joined #openttd 10:47:19 <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:49 <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:21 <andythenorth> argoneus: whatâs âshouldâ in the context of gamescripts? 11:11:25 <andythenorth> thereâs no right answer 11:13:38 <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:50 <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:43 <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:31 <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 [~oftc-webi@port-87-234-198-221.static.qsc.de] has joined #openttd 11:57:55 <Alberth> /me wonders whether to check what the GS libraries offer 12:11:25 *** Murphy [~oftc-webi@port-87-234-198-221.static.qsc.de] has quit [Quit: Page closed] 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 [~mjp@hq.z77.fr] has joined #openttd 12:25:52 <Alberth> I agree 12:26:22 *** glevans2 [~glevans2@71-8-126-76.dhcp.ftwo.tx.charter.com] has quit [Ping timeout: 480 seconds] 12:27:11 *** glevans2 [~glevans2@71-8-126-76.dhcp.ftwo.tx.charter.com] 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 [~Superchee@cpe-76-178-136-186.natnow.res.rr.com] has joined #openttd 12:34:18 *** Wolf01 [~wolf01@host44-14-dynamic.31-79-r.retail.telecomitalia.it] 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 [~Superchee@cpe-76-178-136-186.natnow.res.rr.com] has quit [Ping timeout: 480 seconds] 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:29 <Alberth> sure, at least for the major parts 12:42:39 <andythenorth> argoneus: there are people who absolutely swear by TDD 12:42:46 <andythenorth> and I can see how it could be made to work 12:42:46 *** Biolunar [Biolunar@blfd-d9bf0ec3.pool.mediaWays.net] 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 <argoneus> like if I want to write an irc bot 12:43:27 <andythenorth> whatâs not to understand? 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:02 <andythenorth> approximately... 12:47:10 <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:26 <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:29 <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:14 <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:57 <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:23 <andythenorth> - can the user actually log in? 12:58:31 <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 [~gelignite@i528C368D.versanet.de] 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:47 <Alberth> that's a regression test 13:01:01 <argoneus> a regression test is something else than a unit test? 13:01:03 <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:26 <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:54 <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:28 <Alberth> Wolf01: mostly, it means it doesn't do what you think :p 13:05:33 <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:01 <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:05 <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:23 *** Myhorta [~Myhorta@00018fad.user.oftc.net] 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 [~Myhorta@00018fad.user.oftc.net] has quit [Ping timeout: 480 seconds] 13:57:07 *** TheDude [~Miranda@2.237.broadband7.iol.cz] has joined #openttd 14:02:10 *** Osceola [kvirc@31.132.147.3] has joined #openttd 14:03:19 <Osceola> hi 14:03:26 <Osceola> can help me? 14:03:38 <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 [~kvirc@S010600254bbe4e1c.vc.shawcable.net] has quit [Read error: Connection reset by peer] 14:06:16 *** DDR [~kvirc@S010600254bbe4e1c.vc.shawcable.net] 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 [slamaster@95.76.27.245] has quit [] 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:45 <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:30 <Osceola> lol) 14:22:28 *** supermop [~supermop@2605:a000:1121:24:959a:dc24:b6bc:fadb] has joined #openttd 14:22:45 <Osceola> but this dont give normal game 14:22:51 <Osceola> its a wrond 14:22:53 <Osceola> wrong 14:23:14 *** Yotson [~Yotson@2001:980:6ac8:1:cd8c:6117:bab5:c82a] has quit [Ping timeout: 480 seconds] 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:53 <Osceola> ... 14:24:54 <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 [~Suicyder@86.92.59.88] has joined #openttd 14:27:52 <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:35 <Osceola> all bad 14:31:42 <Osceola> i dont know 14:32:06 <Osceola> ((( 14:35:54 <Osceola> well, go to learn this problem) 14:35:59 *** Osceola [kvirc@31.132.147.3] has quit [Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/] 14:41:20 *** Myhorta [~Myhorta@00018fad.user.oftc.net] has joined #openttd 14:59:01 <andythenorth> cdist claims another victim :) 15:00:55 *** Yotson [~Yotson@2001:980:6ac8:1:cd8c:6117:bab5:c82a] 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 [Biolunar@blfd-d9bf0ec3.pool.mediaWays.net] has quit [Quit: yo.] 15:13:06 <Alberth> playing BusyBee 15:32:36 *** shadowalker [~dark@le.shadownet.io] has joined #openttd 15:51:28 *** estys [~stefan@178-191-38-110.adsl.highway.telekom.at] has joined #openttd 15:51:32 *** Jinassi [~jinassi@176.76.121.52] has joined #openttd 15:56:45 <andythenorth> Alberth: is it any good? o_O 15:56:56 *** MTsPonyZzZ [~MTsPony@008-086-128-083.dynamic.caiway.nl] has quit [] 15:56:56 *** Progman [~progman@p57A18489.dip0.t-ipconnect.de] 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 [skrzyp@admin.karachan.org] has quit [Ping timeout: 480 seconds] 16:03:38 *** skrzyp [~skrzyp@admin.karachan.org] has joined #openttd 16:03:59 *** Jinassi [~jinassi@0001ec72.user.oftc.net] has quit [Quit: Nettalk6 - www.ntalk.de] 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:22 <Alberth> k 16:14:41 *** Jinassi [~jinassi@176-76-121-52.ipv4.mobile.tusmobil.si] has joined #openttd 16:28:16 *** DDR [~kvirc@S010600254bbe4e1c.vc.shawcable.net] has quit [Read error: Connection reset by peer] 16:37:34 *** Progman [~progman@p57A18489.dip0.t-ipconnect.de] has quit [Remote host closed the connection] 16:54:33 <Alberth> pushed fix for unavailable cargoes 17:11:55 <andythenorth> yay 17:12:08 <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:15 <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 [~quassel@TOROON0319W-LP130-01-1177971395.dsl.bell.ca] has joined #openttd 17:18:07 <andythenorth> default 60? 17:18:31 <Alberth> let's try that 17:34:52 *** smoke_fumus [~smoke_fum@188.35.176.90] has joined #openttd 17:44:30 *** Pereba [~UserNick@179.178.240.138] 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 [~Yotson@2001:980:6ac8:1:cd8c:6117:bab5:c82a] has quit [Quit: .] 18:37:54 <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 [~MTsPony@008-086-128-083.dynamic.caiway.nl] has joined #openttd 18:48:56 <argoneus> el psy kongroo 18:53:49 *** Alberth [~hat@2001:981:c6c5:1:be5f:f4ff:feac:e11] has left #openttd [] 18:55:05 *** Pensacola [~quassel@c80094.upc-c.chello.nl] has joined #openttd 19:16:34 *** Pereba [~UserNick@179.178.240.138] has quit [Quit: AdiIRC is updating to v1.9.6 Beta Build (2014/12/30) 64 Bit] 19:17:05 *** Pereba [~UserNick@179.178.240.138] has joined #openttd 19:43:49 *** luaduck_zzz is now known as luaduck 19:48:16 *** hdevalence [~quassel@TOROON0319W-LP130-01-1177971395.dsl.bell.ca] has quit [Quit: No Ping reply in 180 seconds.] 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:31 <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:54 <peter1138> Wolf01 +1 20:08:57 *** Myhorta [~Myhorta@00018fad.user.oftc.net] has quit [Ping timeout: 480 seconds] 20:09:29 <Jinassi> oh i am going to enjoy this 20:09:33 <Jinassi> making a gif 20:09:37 <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:08 <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:17 <NGC3982> Does the game support two trains by accident reserving the same track without actively ignoring signals? 20:14:26 <peter1138> No. 20:14:56 <Wolf01> no, because the terrain is scanned sequentially, trains work in another way 20:19:09 *** Pensacola [~quassel@c80094.upc-c.chello.nl] has quit [Remote host closed the connection] 20:41:57 *** sla_ro|master [slamaster@95.76.27.245] has joined #openttd 20:56:54 *** luaduck [~luaduck@0001c465.user.oftc.net] has quit [Quit: ZNC gives me a nerd boner.] 21:12:02 *** luaduck_zzz [~luaduck@host109-149-143-142.range109-149.btcentralplus.com] 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:38 *** Tirili [~chatzilla@dslc-082-083-143-074.pools.arcor-ip.net] 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 [~Myhorta@00018fad.user.oftc.net] 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 [~Suicyder@86.92.59.88] has quit [Quit: HydraIRC -> http://www.hydrairc.com <- Wibbly Wobbly IRC] 21:52:51 *** liq3 [~liq3@CPE-120-147-178-81.gdfw1.lon.bigpond.net.au] has quit [] 21:58:09 *** HerzogDeXtEr [~flex@i59F6CD68.versanet.de] has joined #openttd 21:58:21 <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 [~quassel@70.48.162.12] has joined #openttd 22:44:24 *** kais58_ is now known as kais58|AFK 22:50:19 *** Progman [~progman@p57A18489.dip0.t-ipconnect.de] has joined #openttd 23:06:20 *** FLHerne [~flh@dsl-217-155-24-22.zen.co.uk] has joined #openttd 23:17:19 *** mgpl_ [~mgpl@176-58-16-246.net.e-cho.pl] has joined #openttd 23:23:47 *** mgpl [~mgpl@176-58-16-246.net.e-cho.pl] has quit [Ping timeout: 480 seconds] 23:25:22 *** andythenorth [~Andy@cpc10-aztw26-2-0-cust867.18-1.cable.virginm.net] has left #openttd [] 23:25:35 *** Tirili [~chatzilla@dslc-082-083-143-074.pools.arcor-ip.net] has quit [Quit: ChatZilla 0.9.91.1 [SeaMonkey 2.31/20141206170135]] 23:41:03 <Wolf01> 'night 23:41:08 *** Wolf01 [~wolf01@0001288e.user.oftc.net] has quit [Quit: Once again the world is quick to bury me.] 23:50:30 *** kais58|AFK is now known as kais58_ 23:51:25 *** estys [~stefan@178-191-38-110.adsl.highway.telekom.at] has quit [Quit: Leaving.]