Back to Home / #openttd / 2012 / 02 / Prev Day | Next Day
#openttd IRC Logs for 2012-02-04

---Logopened Sat Feb 04 00:00:22 2012
00:22-!-Xrufuian [] has joined #openttd
00:31-!-kkb110 [] has joined #openttd
00:56-!-Eddi|zuHause [] has quit []
00:56-!-Eddi|zuHause [] has joined #openttd
02:16-!-andythenorth [] has joined #openttd
02:18-!-cmircea [~cmircea@] has joined #openttd
02:19<@Rubidium>morning andy
02:25<Eddi|zuHause>more ning
02:26-!-andythenorth [] has quit [Ping timeout: 480 seconds]
02:32-!-andythenorth [] has joined #openttd
02:38-!-sla_ro|master [~slaco@] has joined #openttd
02:55<@Terkhen>good morning
02:59-!-|Jeroen| [] has joined #openttd
03:04-!-_11Runner_ [] has left #openttd []
03:13*andythenorth adventures again in the makefil
03:14<andythenorth>with limited success :(
03:16<@Terkhen>hi peter1138
03:25-!-tokai|noir [] has joined #openttd
03:25-!-mode/#openttd [+v tokai|noir] by ChanServ
03:27-!-Elukka [] has joined #openttd
03:31-!-tokai|mdlx [] has quit [Ping timeout: 480 seconds]
03:31-!-Phoenix_the_II [] has joined #openttd
03:34-!-DDR [~chatzilla@] has quit [Read error: Operation timed out]
03:36<@planetmaker>andythenorth: makefile principle is easy:
03:36<@planetmaker>target_file: files_it_needs_present_to_be_build
03:36<@planetmaker> rules_to_create_file
03:37-!-snack2 [] has joined #openttd
03:37<andythenorth>does the dep check rely on hg?
03:38<andythenorth>i.e. a file hg has forgotten won't be seen by dep check
03:38<andythenorth>or the path rather than file
03:39<Ammler>no, it works also without, but a file not in the repo will be missing on remote :-)
03:39<andythenorth>I have been moving files in the BANDIT repo so it makes more sense
03:39<andythenorth>but make is now failing
03:40<andythenorth>I have the rule bandit.nml: sprites/nml/bandit.pnml
03:40<andythenorth>and sprites/nml/bandit.pnml is present
03:40<andythenorth>but bandit.nml is not built
03:41<andythenorth>although....maybe now is the time to eliminate the .pnml step anyway
03:41*andythenorth will hack a bit
03:42<andythenorth>that might work
03:43<Eddi|zuHause>the easiest way to test whether such a rule is actually evaulated is "touch sprites/nml/bandit.pnml"
03:45<andythenorth>seems I've fixed it
03:45<andythenorth>the structure is a bit more logical I hope
03:45<andythenorth>[for repo filesystem]
03:46<Eddi|zuHause>i'm sure there are plenty of inconsistencies left :)
03:46<andythenorth>there are
03:47*andythenorth has....questions :P
03:48-!-DDR [~chatzilla@] has joined #openttd
03:48<Ammler>also moving around is not supported by Redmine, so do it as less as possible :-)
03:48<andythenorth>too late :o
03:48<andythenorth>but I will try not to
03:48<andythenorth>it's often tmwftlb
03:48<Ammler>well, it's ok
03:49<Ammler>you just will lose history view there
03:49<andythenorth>I have a few inconsistencies to figure out
03:49<andythenorth>filename extensions is one
03:50-!-Neon [] has joined #openttd
03:51<andythenorth>what's a good extension for a file that contains nml with templating markup?
03:51<Eddi|zuHause>sounds about right
03:52<Ammler>also you might consider replacing the targets with wildcards: %.nml: %.pnml
03:52<andythenorth>the convention for the template module I use is .pt (page template), but it's not enforced
03:53<andythenorth>Ammler: so they are decoupled from the extension?
03:53<Ammler>from the grf name
03:55<Ammler>the future goal is move the content of to the makefile framework, right?
03:55<andythenorth>I'm not sure :)
03:55<andythenorth>I hadn't thought that far ahead
03:56<andythenorth>it's kind of not my decision either ;)
03:56<Ammler>well, if you prepare a nice patch, planetmaker would sure welcome it, I guess
03:57<Ammler>at least the parts you share with cets
03:57<@planetmaker>I could add a variant w/o gcc indeed
03:58<andythenorth>so is this:
03:58<andythenorth>what would need to be generic?
03:58<andythenorth>- build script name
03:59<andythenorth>- config data file name
03:59<Eddi|zuHause>maybe take the prepocessing part out of Makefile.nml, and make it a Makefile.cpp
03:59<@planetmaker>but renaming the main file to tnml IMHO is stupid
03:59<Eddi|zuHause>then you could add a Makefile.python
03:59<Eddi|zuHause>and it would be arbitrarily combinable by the config
03:59<@planetmaker>it's not a template
04:00<andythenorth>planetmaker: I'm open to suggestions
04:00<@planetmaker>it's still a file which needs pre-processing. Thus pnml
04:00<@planetmaker>template is something which is being re-used
04:00<@planetmaker>that is not
04:00<andythenorth>different semantics I guess
04:00<andythenorth>for the templating module, it's a template
04:00<@planetmaker>basically I think your whole last commit there was... wrong by my definition of what's a template
04:01<andythenorth>it's called by PageTemplateLoader class
04:01<andythenorth>I'm happy to agree a convention
04:01<andythenorth>I don't really have strong opinions on this stuff, just whatever makes sense to other people
04:01<@planetmaker>pnml :-P
04:01<andythenorth>processed nml?
04:01<@planetmaker>nml to-be- pre-processed
04:01<andythenorth>using [pre-processor of choice]
04:02<@planetmaker>thus everything is a pnml.
04:02<andythenorth>I'll just flip them
04:02<andythenorth>anybody else rabidly disagree with planetmaker ?
04:02<@planetmaker>Except those parts which are reused several times in the coding of individual vehicles
04:02<Eddi|zuHause>i do think it's sensible to keep extensions for cpp-processed and python-processed nml separate
04:02<andythenorth>before I play commit tennis?
04:03<andythenorth>I considered cnml
04:03<andythenorth>for chameleon-processed nml
04:03<andythenorth>but that's specific to my templater
04:03<andythenorth>"other python templaters are available"
04:03<Ammler>shouldn't it be possible to use both in one project?
04:03<andythenorth>it is
04:04<Eddi|zuHause>this is one of those questions where you shouldn't just make your mind up in 2 minutes and commit it
04:04<andythenorth>I won't
04:04<andythenorth>second time around :P
04:05<Ammler>how do you create target line, if you the source depends on different preprocessor?
04:05<andythenorth>Ammler: not sure
04:06-!-Phoenix_the_II [] has quit [Ping timeout: 480 seconds]
04:06<andythenorth>the pipeline I had was python build script -> cpp -> nml
04:06<andythenorth>it worked
04:06<andythenorth>I've cut the cpp step afaict
04:06<Ammler>so you just run a file through both
04:06<andythenorth>same as CETS is doing
04:07<@planetmaker>well. At least tnml is for source code templates which are re-used
04:07<andythenorth>I've eliminated all the cpp now though
04:07<@planetmaker>a CTT or the main file never are re-used in a project, they're one-time code snippets
04:08-!-kkb110 [] has quit [Ping timeout: 480 seconds]
04:08<Ammler>so it isn't possible to setup makefile rules depending on source available, e.g. I need %.nml and have either %.cnml or %pnml which need either python or cpp?
04:09<andythenorth>planetmaker: seems you'd like the semantics to refer to how file is used, rather than what module uses the file?
04:09<andythenorth>which is fine, just want to be sure
04:09<@planetmaker>that's not possible. You'd need to add a configure step. Or individual rules, Ammler
04:09<@planetmaker>andythenorth: of course
04:10<@planetmaker>.cpp is also not about what's in it. Not about the module using it
04:10<@planetmaker>it's about the language it contains
04:10<andythenorth>what about the case where I have a template, but only re-use it once? :o
04:10<@planetmaker>then it's silly to use a template tbh
04:10<@planetmaker>it's over-engineered then
04:10<andythenorth>could be
04:11<@peter1138>if you re-use it once, then you've used it twice
04:11<andythenorth>I wonder if it's confusing though
04:11<@planetmaker>well, yes :-) For two usages it makes sense :-)
04:12-!-MJP [] has joined #openttd
04:12<andythenorth>authors using python will be calling Template() class or PageTemplateLoader() or whatever
04:12<andythenorth>even to setup things which are singletons
04:12<andythenorth>I'll leave it as tnml with the agreement to change it when we have agreement
04:14-!-sla_ro|master [~slaco@] has quit [Quit: - free first person shooter based of c&c 3]
04:14<@planetmaker>ach, whatever
04:16<@Rubidium>andythenorth: make it ntl
04:16<@Rubidium>nml template language, or rather newgrf meta language template language ;)
04:17<Ammler>andythenorth: pnml is not because it needs cpp, it is because it needs preprocessing, same as your tnml needs
04:18<andythenorth>meta (blah)
04:18<andythenorth>I'm only not changing it right now because of what Eddi reminded me - don't decided in 2 mins then commit in haste
04:18<Ammler>I don't think, it is a good idea to invent new names just for good readability
04:18<andythenorth>I'd be fine with .pnml as well
04:18<@planetmaker>tnml is really unfortunate. Functunally it's the same as the pnml in the other projects. And additionally it has already a meaning in the other projects different from this tnml
04:19<@planetmaker>and... you already went for the hasty renaming
04:19<@planetmaker>so the damage is done and now festers
04:19<Ammler>we wait for hg 2.1, where you can push such things as draft :-p
04:20-!-Xrufuian [] has quit [Quit: Good morning.]
04:20*andythenorth ponders :P
04:20<andythenorth>as the templater by convention uses .pt :P
04:21*andythenorth is not serious
04:21<Ammler>but I fear redmine will not be able to handle hg phases
04:21<@planetmaker>you use python for pre-processing. then eddi's suggestion to use pynml is a quite good one
04:22<andythenorth>I kind of like it too
04:22<andythenorth>but the point was made that .pnml is not specific to cpp?
04:23<Eddi|zuHause>that's kind of an unfounded argument
04:23<Eddi|zuHause>it was only used for cpp in the past
04:23<Eddi|zuHause>so it was never defined
04:24<Eddi|zuHause>so now it's exactly the right time to define it
04:24<Ammler>Eddi|zuHause: the method you use to preprocess should not define the source
04:24<Eddi|zuHause>yes, that's the entire point of extensions
04:24<Eddi|zuHause>specify the program it should be used with
04:25<Ammler>but makefile can't handle it anyway
04:25<andythenorth>I don't have text files called .letter .angry_note_to_wife .tax_evasion_plan
04:26<andythenorth>maybe I should
04:26<Eddi|zuHause>but you have xml files called .odf
04:26<Eddi|zuHause>and RIFF files called .avi
04:27<@Rubidium>isn't .odf a zip?
04:27<andythenorth>and mac folders called .app
04:27<Eddi|zuHause>yes, a zipped xml
04:27<andythenorth>is this bikeshedding? :D
04:27<@Rubidium>vcxproj is a xml as well ;)
04:27<andythenorth>what should the precedence order be for .tnml and .pnml?
04:28<@Rubidium>on the other hand, it's a text file too
04:28<andythenorth>all .tnml files are processed. but not all .pnml files are templates used more than once
04:28<Eddi|zuHause>extensions are used to let meta-tools like filemanagers or makefiles make assumptions about the content without looking at the content
04:29<@planetmaker>andythenorth: pnml does NOT indicate template
04:29<Eddi|zuHause>i don't use tnml in CETS
04:29<@planetmaker>it indicates need for pre-processing
04:29<Eddi|zuHause>it's all just pnml to me
04:29<@planetmaker>and only that
04:31<@planetmaker>and my idea behind tnml was that those are files which are included multiple times
04:32<@planetmaker>and yes, again as eddi says: extensions are meant to give one-glance idea of what's inside
04:32-!-TGYoshi [~TGYoshi@] has joined #openttd
04:32<@planetmaker>in terms of file type / language contained
04:34<andythenorth>so repeat_inclusion > processing?
04:34<andythenorth>i.e. a pnml file is a tnml file if used > once?
04:35<andythenorth>it made total sense with cpp
04:35<andythenorth>there were no problems with the convention
04:35<@Rubidium>hahaha... in some town somewhere in Belgium the preschools apparantly sent a letter to everyone "of the right birth year" to start preschool, so everyone whom's birth year ended in 09 got the letter
04:35<andythenorth>it was obvious
04:36<@planetmaker>haha @ Rubidium :-)
04:36<@planetmaker>I can imagine the result :-P
04:36<@Rubidium>including a 102 year old guy ;)
04:36<@Rubidium>I fear he's not going to finish his second round of education
04:37<@planetmaker>also in the sports classes he might not be up to some challanges
04:37<@planetmaker>he might also get marks deducted for "bad" handwriting ;-)
04:38<andythenorth>planetmaker: it seems that to avoid bikeshedding this, I should just follow the convention established
04:38<andythenorth>.pnml and .tnml
04:39<@planetmaker>I don't really mind which you follow. But if you use another, it's bad to use the same extensions with different meaning
04:39<Eddi|zuHause>Rubidium: these y2k bugs never die out
04:39<andythenorth>planetmaker: agreed on extension collisions
04:40<andythenorth>so either .tnml and .pnml, or .pynml
04:40<Eddi|zuHause>a few years ago i think it was in finland, where a 106 year old got the notification for school-enrollment
04:40<andythenorth>I'll decide later :P
04:40<andythenorth>classic decision by committee :P
04:42*andythenorth just thought of an evil practical joke
04:42<andythenorth>swap someone's smiley set to invert :( and :)
04:42<andythenorth>assuming they use graphic smileys
04:42<@planetmaker>so you changed the files in a split second to clash with "standard" and decide later whether to use something sane? :-P
04:43<andythenorth>standard andythenorth haste :P
04:43<andythenorth>no point repeating the mistake twice
04:43<@planetmaker>yeah. Let it rest, forget and build on... a bad decision :-P
04:43-!-Alberth [] has joined #openttd
04:43-!-mode/#openttd [+o Alberth] by ChanServ
04:44<andythenorth>planetmaker last time I asked the question about extension you weren't here
04:44<andythenorth>I was told 'stop asking dumb questions, just decide something and write code' effectively
04:44<@Alberth>hi hi
04:44<@planetmaker>hi Alberth
04:45<andythenorth>advice varies by person giving it :D
04:45<@planetmaker>the question in the first place is: why does it need a change at all?
04:45<@planetmaker>And that wasn't IMHO asked at all
04:46<@planetmaker>but your game, your call
04:46<andythenorth>why does the extension need a change?
04:46<andythenorth>only that I had files in my repo that started life as cpp and migrated to python
04:47<andythenorth>and the extension use had no consistency
04:47<andythenorth>it's just cleanup
04:48<@planetmaker>"cleanup"? Interesting definition
04:49<andythenorth>we seem to be at cross purposes
04:49<andythenorth>I need to use correct extensions according to a convention
04:50<andythenorth>they were wrong
04:50<andythenorth>I needed to change them
04:50<andythenorth>my first attempt was...hasty
04:50<@Alberth>first one always is ;)
04:51<andythenorth>the makefile project convention of 'template' suffers an unfortunate naming collision with python templates
04:51<@Alberth>it's more 'an exploration of possibilities', I think, in general :)
04:51<andythenorth>which confused me a bit
04:51<andythenorth>we now have two entities in play, with the same name
04:51<andythenorth>python template modeules/classes, which load template files
04:52<andythenorth>and templates, which are template files used more than once
04:52<andythenorth>I'm sorry if the decision was wrong or annoying
04:52<andythenorth>I'm just confused by what is the right thing to do
04:52<@planetmaker>just use unique extensions, if you must use something different
04:52<@planetmaker>that's all
04:53<@planetmaker>anyway, RL is calling. See you later
04:53<@Alberth>bye planetmaker
04:55-!-andythenorth [] has quit [Quit: andythenorth]
04:57-!-KouDy [~KouDy@] has joined #openttd
04:58-!-chester [] has joined #openttd
05:00-!-Chris_Booth [] has joined #openttd
05:01-!-Progman [] has joined #openttd
05:06-!-Zuu_ [] has joined #openttd
05:15-!-DDR [~chatzilla@] has quit [Quit: ChatZilla 0.9.88 [Firefox 9.0.1/20111221202647]]
05:17-!-Brianetta [] has joined #openttd
05:21-!-OpenTTD_Johannes [] has joined #openttd
05:22<OpenTTD_Johannes>Hey all
05:22<OpenTTD_Johannes>I have a map save for the title-image contest. Do I need to register in the forum to submit?
05:23<@Alberth>yes, otherwise you cannot post
05:23<Zuu_>That would make it easier for pm to organize it.
05:24<OpenTTD_Johannes>Don't send me spam after registration :P
05:24-!-pjpe [] has quit [Quit: ajax IRC Client]
05:24<Zuu_>If you email he would need to monitor his email too for saves.
05:24-!-mahmoud [] has joined #openttd
05:24-!-tensai_cirno [~cirno@] has joined #openttd
05:24<@Alberth>OpenTTD_Johannes: did not happen with me so far
05:25<@Alberth>be sure to disable the email address display in your preferences
05:25<OpenTTD_Johannes>Only kidding. Thanks for the advice, I'll upload it soon! :)
05:27-!-KouDy [~KouDy@] has quit [Ping timeout: 480 seconds]
05:27<Zuu_>You will only soon get addicted to the forums. ;)
05:27-!-frosch123 [] has joined #openttd
05:29-!-Zuu_ [] has quit [Quit: Bye]
05:30-!-KouDy [~KouDy@] has joined #openttd
05:30<frosch123>yay, it's not even noon, and i am already here :p
05:32<Ammler>Alberth: do you have any clue, how fedora handles "recommends" with package manager (rpm)?
05:33-!-JVassie [~James@] has joined #openttd
05:34<Eddi|zuHause># it's so cold it's so cold it's so cold it's so cold
05:36<@Alberth>Ammler: it has 'recommends'? never noticed it
05:36<__ln__>only -16,3°C now
05:36<Elukka>it was -24 earlier
05:36-!-pugi [] has joined #openttd
05:36-!-KouDy [~KouDy@] has quit [Quit: Leaving.]
05:37<OpenTTD_Johannes>The perfect weather for playing openttd all day :)
05:37-!-KouDy [~KouDy@] has joined #openttd
05:39<V453000>Elukka: AMAZING website :D :D :D
05:40<frosch123>Elukka: you are living in a weird climate, if it snows at -18°C
05:40<Elukka>the site is wrong
05:40<V453000>it says snowing even here, and no snowing :) but still F cold
05:45<Ammler>Alberth: it seems not having it, that is why I ask, how do you Fedora guys handle that?
05:45<OpenTTD_Johannes>Ummm is openttd interested in C/C++-Coders?
05:46<@Alberth>OpenTTD_Johannes: the top-left corner of the save game stays where it is, so perhaps if you move that (in your screenshot at least), it may be better for small screens
05:46<@Alberth>OpenTTD_Johannes: as well as squirrelers :)
05:46<OpenTTD_Johannes>okay Alberth, I'll fix it, thanks!
05:47<@Alberth>Ammler: what is it?
05:47<@Alberth>OpenTTD_Johannes: in the game options you can switch to smaller window sizes so you can see how it looks
05:47<OpenTTD_Johannes>Oh? Squirrel is an animal, right? Sorry, I am bad in English... :(
05:48<Eddi|zuHause>yes, but it's also a scripting language
05:48<@Alberth>OpenTTD_Johannes: it's an animal but also the programming language for AIs and goal scripts:
05:50<OpenTTD_Johannes>Ahhh, okay, I usually only code in C++. But I have time left, and if there was anything that needed to be done, I could try it.
05:50-!-tokai|mdlx [] has joined #openttd
05:52-!-FLHerne [] has joined #openttd
05:52<@planetmaker>just back from shopping I updated the titlegame page
05:54-!-DayDreamer [~DayDreame@] has joined #openttd
05:55-!-tokai|noir [] has quit [Read error: Operation timed out]
05:55<@planetmaker>^ OpenTTD_Johannes, thus you can just browse the screens
05:57<@Alberth>too much temperate climate :(
05:59<@planetmaker>Alberth: we had arctic and desert already :-)
05:59<@planetmaker>kinda time for a temperate ;-)
05:59<@planetmaker>But then, I know what you mean
05:59<@planetmaker>and somewhat feel with you
06:00-!-Brianetta [] has quit [Quit: Tschüß]
06:00-!-OpenTTD_Johannes [] has quit [Quit: ajax IRC Client]
06:02<@Alberth>I'd like that, but it is too controversial I fear to ever get enough votes for
06:03-!-hbccbh [~hbc@] has joined #openttd
06:05<frosch123>it's funny how the screenshots randomly switch between english and german :p
06:05<@planetmaker>:-) Different times they were generated
06:05<@planetmaker>And ... I switched languages, I guess
06:05*Alberth watches a screenshot intently to see it change
06:12-!-lmergen [] has joined #openttd
06:12-!-KouDy [~KouDy@] has quit [Ping timeout: 480 seconds]
06:14-!-|Jeroen| [] has quit [Remote host closed the connection]
06:21-!-andythenorth [] has joined #openttd
06:24<andythenorth>Eddi|zuHause: .gnml - generated nml?
06:26<@Alberth>generic nml
06:26-!-KouDy [~KouDy@] has joined #openttd
06:26<andythenorth>it's used in CETS ;)
06:27<@Alberth>xnml could be fun too ;)
06:27<andythenorth>sounds like it would be xml :P
06:27<andythenorth>mine contains some xml :P
06:27<andythenorth>but it's not a valid xml doc
06:27<@Alberth>it's extended nml :)
06:27<andythenorth>fun with extensions :o
06:28<andythenorth>I want to use .pynml for templates
06:28<@Alberth>seems fine to me
06:28<andythenorth>but I'm kind of reluctant to make the change without some agreement
06:29<@Alberth>it contains python code?
06:29<andythenorth>and I can't find the extension in use by other projects
06:29<@Alberth>the number of 'nml' projects is not so large :)
06:30<@Alberth>I'd just use .py, but that is much less exciting
06:32<@planetmaker>andythenorth: what is a template in your context?
06:33<andythenorth>it's a file used by chameleon templating module
06:33<andythenorth>although I was considering just now writing a python module that aliased all references to 'template' to something else :)
06:33<andythenorth>but then the docs will be harder to use ;)
06:36<andythenorth>I also need to think about the dir I have called 'templates'
06:37<andythenorth>as that's a convention for the python module, but collides with our convention for newgrfs
06:37<andythenorth>'templates' in HEQS currently means something quite different to templates in 'BANDIT'
06:37<andythenorth>those quote marks were wrong :P
06:39-!-KouDy [~KouDy@] has quit [Read error: Connection reset by peer]
06:42-!-DayDreamer [~DayDreame@] has quit [Quit: Leaving.]
06:43-!-KindOne [] has joined #openttd
06:43-!-KindOne [] has left #openttd []
06:43<andythenorth>maybe I don't need them in a dir
06:44<andythenorth>a bigger project might
06:44<andythenorth>Alberth: would you have time to review some more code?
06:45<andythenorth>it might help figure out the structure too
06:49<@Alberth>sure, just need to get a coffee
06:50-!-KouDy [~KouDy@] has joined #openttd
06:51<Eddi|zuHause>andythenorth: yes, .gnml is the generated files. that is to easily do "rm -rf *.gnml" on clean
06:51<Eddi|zuHause>and "**.gnml" in hg
06:51<@Alberth>-f ? you protect them?
06:52<Eddi|zuHause>Alberth: no.
06:52<Eddi|zuHause>Alberth: that was just an example
06:53<Eddi|zuHause>actually... the makefile doesn't currently seem to do that
06:56<@Alberth>I normally explicitly calculate which files to delete: for i in $(OBJFILES) $(CXXFILES:.cpp=.d) table/strings.h $(TARGET); do if test -f $$i; then rm $$i; fi; done
06:58<CIA-1>OpenTTD: rubidium * r23878 /trunk/ (6 files in 4 dirs): -Prepare: 1.2.0-beta4
07:00-!-yorick_ [] has joined #openttd
07:02<CIA-1>OpenTTD: rubidium * r23879 /tags/1.2.0-beta4/: -Release: 1.2.0-beta4
07:02-!-yorick [] has quit [Ping timeout: 480 seconds]
07:04<Eddi|zuHause>Alberth: right, but not all .gnml files have a makefile rule
07:05<Eddi|zuHause>and that fails to remove files whose original got removed
07:05<Ammler>does distcc or ccache have advantage for the final binary?
07:06<@Alberth>Eddi|zuHause: nah, CXXFILES=config_reader.cpp fileio.cpp language.cpp main.cpp map.cpp math_func.cpp ... :)
07:07<@Alberth>Ammler: other than building it possibly faster, not that I am aware of
07:07<Eddi|zuHause>Alberth: but if one of those files is removed from the repository (moved, split, obsoleted, etc.), then it won't be in CXXFILES anymore
07:08<Eddi|zuHause>Alberth: the repository makes sure the .cpp file is removed, but the compiler files remain
07:08*Alberth nods
07:13-!-JVassie [~James@] has quit [Ping timeout: 480 seconds]
07:14-!-sla_ro|master [~slaco@] has joined #openttd
07:16*Alberth prods andythenorth
07:17-!-|Jeroen| [] has joined #openttd
07:17-!-Brianetta [~brian@] has joined #openttd
07:18<andythenorth>Alberth: might be worth getting a checkout
07:18<@Alberth>ah, you are not frozen :)
07:20<@Alberth>oops, wrong url :)
07:20<andythenorth>I am building lego forest police with a toddler
07:20<andythenorth>but I can multi-task ;)
07:21<andythenorth>most of my code is now written with some > 0 amount of child-based brain contention
07:23<@Alberth>what should I read?
07:24<andythenorth>a few oddities
07:24<andythenorth>worth reading the templates
07:24<andythenorth>the syntax is easy enough
07:24<andythenorth>I learnt it 7 years ago without docs :)
07:25<andythenorth>I'm not convinced I need the '' dict
07:25<andythenorth>I could just create instance variables on vehicle
07:25<andythenorth>but I don't know an easy way to do that without manually writing out every var
07:26<andythenorth>and afaik, programmatic creation of vars is frowned upon anyway, due to possible collisions
07:27<andythenorth>could just do a self[i] = j for [i,j in properties.items()]
07:27<andythenorth>or such
07:32<andythenorth>Alberth: if you look at the templates, I should mention that where you see <tal:foo ...> the foo part is arbitrary
07:33<@Alberth>you could make properties queryable from the instance
07:34<@Alberth>I sort of skipped lines with "<tal: ......>" :)
07:34<@Alberth>what's tal?
07:35<@Alberth>(I am considering to have a go at a WT3 REST server)
07:36<@Alberth> is generated?
07:37<@Alberth>it could be moved to a ConfigParser file :)
07:37-!-lmergen [] has quit [Ping timeout: 480 seconds]
07:39<andythenorth> is generated from my web server
07:40<andythenorth>although I want to try building a browser app to generate it locally
07:40<andythenorth>using pyramid framework, or just simple python wsgi
07:40<andythenorth>tal is template attribute language
07:40<andythenorth>chameleon is a tal implementation
07:41<andythenorth>it's one of about 4 or 5 widely used python templaters for web stuff
07:41<Ammler>wsgi is just a way deploy...
07:41<andythenorth>well it's a little more
07:41<andythenorth>but yes
07:42-!-valhallasw [~valhallas@] has joined #openttd
07:43<andythenorth>Alberth: if I've understood your goal with WT3 correctly, you might also use either pyramid (or a similar lightweight framework), or just write a from-scratch python app, using wsgi for the http server interface etc
07:44<Ammler>just meant, using wsgi should not be up to the dev :-)
07:44<andythenorth>well yes
07:45<andythenorth>you might use paste as server to dev locally, but not maybe in production :)
07:45<@Alberth>yeah, smaller frameworks are better, but you need authentication and utf-8 support
07:46<Ammler>we don't use wsgi to deploy hg or paste
07:46<Ammler>hmm, do we?
07:48<andythenorth>not sure
07:48<andythenorth>what's in front of hg? anything?
07:50<Mazur>I don't know the table by heart, but I believe it's Au.
07:51<andythenorth>Alberth: ConfigParser?
07:51<andythenorth>so that's a module...
07:52<frosch123>Au is correct
07:52<frosch123>Tl is behind
07:54<Eddi|zuHause>@calc 8
07:54<@DorpsGek>Eddi|zuHause: 8
07:54<Eddi|zuHause>@calc 8*255
07:54<@DorpsGek>Eddi|zuHause: 2040
07:54<Eddi|zuHause>@calc 9*255
07:54<@DorpsGek>Eddi|zuHause: 2295
07:54<@Alberth>andythenorth: the INI file parser module of Python
07:55<Eddi|zuHause>@calc 6*9*255
07:55<@DorpsGek>Eddi|zuHause: 13770
07:55<Eddi|zuHause>@calc 8*9*255
07:55<@DorpsGek>Eddi|zuHause: 18360
07:55<andythenorth>is it overkill? :D
07:55<andythenorth>my config file is a dict...
07:56<@Alberth>it is less cluttered with quotes, commas, and curly brackets, and more human readable, but that's all
07:58<andythenorth>those are all the things I want to get rid of, (except for human readable)
07:58<andythenorth>currently I use the web cms to abstract from those things
07:58<andythenorth>let's see about ConfigParser then
07:58<Eddi|zuHause>ini format sounds like a sensible solution
07:59<andythenorth>"You can use this to write Python programs which can be customized by end users easily."
07:59-!-Chris_Booth [] has quit [Ping timeout: 480 seconds]
07:59<@Alberth>I used it as file format for state machines :p
08:00<andythenorth>can it handle equivalent of list structures?
08:00<andythenorth>foo = (value1,value2,value3) etc
08:01<@Alberth>it's just strings, so after reading, you can do some string processing, like [val.strip() for val in split(line, ',')]
08:01<@Alberth>hmm, line.split(',') of course
08:01<andythenorth>so this is basically sane name value parits
08:01<andythenorth>it has utilities for modifying the config file as well
08:02<andythenorth>that's the main reason I'm using a web cms: I can batch add / remove / change attributes
08:02<@Alberth>you can create and write a config file too :)
08:02<andythenorth>is writing a dict then importing it just a bit dumb then?
08:02<andythenorth>it's not very human readable for starters
08:02<andythenorth>I tried pretty print, but it was tmwftlb
08:03<@Alberth>import is inherently dangerous, as you execute the imported file
08:03<andythenorth>easy attack vector
08:03<@Alberth>but as machine-readable format, it would be fine imho
08:03<andythenorth>especially as my instructions are 'paste here [stuff from the interwebs]'
08:04<@Alberth>json would be another option, which has support for different data structs as well
08:05<andythenorth>I considered JSON too
08:05<andythenorth>the INI style file is very simple
08:05<andythenorth>I like it
08:06<@Alberth>the only disadvantage imho is that it does not give you a true dict, you have to fiddle with method calls a bit to get all data you want
08:06<andythenorth>the dict arrives at Truck class anyway and is parsed
08:06<andythenorth>it's only an intermediate format
08:06<andythenorth>I'm not convinced it's necessary
08:07<andythenorth>especially as I am not happy with in the templates
08:08<andythenorth>I'll rewrite the CMS to output INI style format
08:08<andythenorth>later though
08:08<andythenorth>in case you point out anything else that should be done first
08:12<andythenorth>Alberth: you might raise your eyebrows at how I am getting some global constants into the templates
08:16<@Alberth> an idea to hide the dict
08:16-!-Rhamphoryncus [] has joined #openttd
08:16<andythenorth>oh ok
08:17-!-FLHerne [] has left #openttd []
08:17<andythenorth>__setattr__ and __getattr__ are new to me
08:17<andythenorth>although they match a slightly more abstracted version used in my cms
08:21<@Rubidium>@topic set 1 1.1.5, 1.2.0-beta4
08:21-!-DorpsGek changed the topic of #openttd to: 1.1.5, 1.2.0-beta4 | Website: * (translator: translator, server list: servers, wiki: wiki, patches & bug-reports: bugs, revision log: vcs, release info: finger) | Don't ask to ask, just ask | 'Latest' is not a valid version, ever | English only
08:21<andythenorth>so this is a mapping into the properties dict?
08:21<andythenorth>rather than creating instances of variables directly on the object?
08:22<@Alberth>the indenting of is not PEP8 compliant :)
08:22<@Alberth>but otherwise mostly fine. Not sure what to change further tbh
08:22<@Alberth>yes, it redirects attribute access to the properties dict
08:22<@Alberth>at the cost of not being able to make your own variables, as you can see in the init
08:24<andythenorth>worth knowin
08:25<@Alberth>I would have moved all the assignments to below the classes, and put all the stuff in a run() function, but that's not a big issue
08:25<andythenorth>might be worth considering
08:25<andythenorth>I have no problem binning code
08:26<andythenorth>all code dies
08:27<@Alberth>together with if __name__ == '__main__': run() it allows you to import the file without running the code
08:28<CIA-1>OpenTTD: michi_cc * r23880 /trunk/src/core/alloc_type.hpp: -Add: A simple smart pointer.
08:28<CIA-1>OpenTTD: michi_cc * r23881 /trunk/src/spriteloader/grf.cpp: -Codechange: Move GRF sprite decoding into a separate function.
08:28<CIA-1>OpenTTD: michi_cc * r23882 /trunk/src/ (newgrf.cpp newgrf_sound.cpp newgrf_sound.h sound.cpp): -Codechange: Delay parsing of NewGRF sound effects until first usage.
08:28<CIA-1>OpenTTD: michi_cc * r23883 /trunk/src/newgrf.cpp: -Fix: [NewGRF] It wasn't possible to import sounds from a NewGRF later in the load order.
08:28<CIA-1>OpenTTD: michi_cc * r23884 /trunk/src/spritecache.cpp: -Codechange: Store recolour sprites in memory directly during GRF loading.
08:28<CIA-1>OpenTTD: michi_cc * r23885 /trunk/src/ (landscape.cpp spritecache.cpp): -Codechange: Use the GRF sprite loader for then mapgen sprites as well.
08:29<CIA-1>OpenTTD: michi_cc * r23886 /trunk/src/ (base_media_base.h base_media_func.h gfxinit.cpp): -Codechange: Allow limiting the MD5 file hash to the first x bytes of the file.
08:29<CIA-1>OpenTTD: michi_cc * r23887 /trunk/src/ (12 files in 2 dirs): -Feature: [NewGRF] Support for container version 2.
08:29<CIA-1>OpenTTD: michi_cc * r23888 /trunk/src/table/ (misc_settings.ini settings.ini): -Change: Move the min/max zoom settings to the "misc" section so they are valid before sprites are loaded.
08:29<CIA-1>OpenTTD: michi_cc * r23889 /trunk/src/ (9 files in 3 dirs): -Codechange: Centralise sprite resizing in one place. (peter1138)
08:29<CIA-1>OpenTTD: michi_cc * r23890 /trunk/src/spriteloader/grf.cpp: -Add: [NewGRF] Support for RealSprites with multiple zoom levels.
08:29<andythenorth>commit spree :o
08:30-!-FLHerne [] has joined #openttd
08:32<@Alberth>feature :)
08:34<andythenorth>Alberth: I have two other things I'm not convinced by:
08:34<andythenorth>- structure of /src, specifically use of /templates dir
08:39<andythenorth>I'm not sure nesting into /templates is needed
08:40<@Alberth> somewhat screams INI file, but on the other hand, this may be easier to manage, and they change very little probably
08:40<@Alberth>better a directory too much than too few
08:41<@Alberth>it reduces clutter in the src directory, and I found it useful for understanding the repo structure
08:41<andythenorth> is basically a cheat to make CONSTANTS appear in the template namespace
08:41<andythenorth>it's one extra place to find when looking where things are defined
08:42<andythenorth>and it's one extra piece of code to write when adding a global var
08:42<@Alberth>you seem to have more trickery around the template stuff
08:42<andythenorth>maybe I could make globals() an object
08:42<andythenorth>and then use __setattr__ and __getattr__ for names
08:43*andythenorth ponders
08:43<andythenorth>the template namespace only contains what is passed to it, or what it imports
08:43<@Alberth>in my view the template stuff is broken if it needs global vars
08:43<andythenorth>it doesn't need them particularly
08:43<andythenorth>I am trying to preserve the ability to use things like SOLO_TRUCK_TYPE_NUM
08:43<andythenorth>without accessing another obj or structure
08:44<andythenorth>but that might not be a valid goal
08:44<andythenorth>magic constants :o
08:44<Eddi|zuHause>what's a "container version 2"?
08:44<andythenorth>where is it?
08:44<Eddi|zuHause>in the commitgasm
08:45<andythenorth>probably replaces version 1 :P
08:45<andythenorth>is it vehicles in vehicles? :D
08:45<andythenorth>probably not
08:50<+michi_cc>Eddi|zuHause: The magic stuff that enables multiple zoom levels and colour depths per sprite and allows stripping of unneeded zoom levels/colourdepths without affecting network compatibility.
08:50<@Alberth>in Python I only have global constants, but that may be due to the sort of things I normally program
08:51<andythenorth>I considered putting them on the vehicle objects
08:51<andythenorth>I don't really like code where you have to read 10 loc to find the actual point a var is defined though
08:51<andythenorth>e.g. foo = = global foo = from globals import stuff{foo:10}
08:51<andythenorth>or so
08:52<andythenorth>annoys other people :)
08:52<Eddi|zuHause>don't read my code then
08:53<andythenorth>I should have probably explained that differently :)
08:53<andythenorth>one line assignments are fine
08:53<andythenorth>but playing 'hunt the actual value' in 3 or 4 different files is dull
08:53<frosch123>michi_cc: nice summary ^^
08:56-!-Phoenix_the_II [] has joined #openttd
09:07-!-Brianetta [~brian@] has quit [Quit: Tschüß]
09:07-!-kkb110 [] has joined #openttd
09:09-!-Aygar[Work|afk] [~quassel@] has joined #openttd
09:09-!-Aygar [~quassel@] has quit [Ping timeout: 480 seconds]
09:18<andythenorth>Alberth: can config parser sort out types?
09:19<andythenorth>or will I be calling int() and such a lot?
09:19<andythenorth>here's some test input
09:21<@Alberth>no, it only does strings
09:22<@Alberth>json does I think
09:22<@Alberth>but otherwise, that's why loading text is so much safer than importing :p
09:24-!-lmergen [] has joined #openttd
09:24<andythenorth>I ruled out JSON, it has all the same scaffolding issues - braces, etc
09:26*andythenorth ponders, split lists on | or ,
09:27<andythenorth>, might appear validly in strings
09:27<@Alberth>or use ; or :
09:27<@Alberth>or \n :p
09:28<@Alberth>the latter messes up ini file formatting though
09:28-!-theholyduck [] has joined #openttd
09:29<Eddi|zuHause><andythenorth> , might appear validly in strings <-- that's why i used tsv and not csv
09:30<SpComb>psv fixes all the delimiter issues!
09:30<andythenorth>I used to use || for passing lists in url query strings
09:30<valhallasw>csv supports escaping
09:31<valhallasw>at least, escaping is generally accepted by parsers
09:31<SpComb>valhallasw: and " in values? :P
09:32<valhallasw>at least, that's what excel does
09:32<SpComb>CSV is great, because it supports escaping in a variety of different fashions, all depending on what generated it and what's parsing it!
09:32*Alberth ponders using a scanner for this kind of things
09:33<valhallasw>>>> x.writerow(["a", ",", "'", '"'])
09:33<valhallasw>SpComb: everybody uses the excel dialect
09:33<SpComb>python's csv is cofigureable for different dialects
09:34<SpComb>and excel uses something bizarre like UTF-8 CSV
09:34<SpComb>err, UTF-16
09:34<SpComb>which severely messes things up
09:34<SpComb>(and python's csv module does neither unicode nor NULs)
09:35-!-Cybertinus [] has joined #openttd
09:35<SpComb>pain and suffering, etc
09:35<valhallasw>point taken
09:35<@Alberth>andythenorth: <-- that's the scanner of nml, it takes your text, and it spits out a sequence of tokens which have a token-type (eg NUMBER) and optionally a value attached
09:36<@Alberth>but you may want something more light-weight :)
09:36<valhallasw>however, creating /another/ new format is even worse ;-)
09:36<valhallasw>andythenorth: you could also consider YAML
09:37<valhallasw>or just go enterprise with XML directly
09:39<@Alberth>xml doesn't do text-int conversion automagically either
09:40<@Alberth>bleh, the scanner debug code got removed from nml :(
09:44-!-TWerkhoven[l] [] has joined #openttd
09:51<Eddi|zuHause>so, is this how passing "static" parameters to strings is supposed to work? i didn't find any documentation about it: name: string(STR_NAME_ENG_pruss_E_Abt4,string(STR_NAME_ENG_PASSENGER),string(STR_NAME_ENG_ACCELERATED),string(STR_NAME_ENG_FOUR_AXLE));
09:52<Eddi|zuHause>the language file contains this:
09:52<Eddi|zuHause>STR_NAME_ENG_pruss_E_Abt4 :{STRING} - {STRING} (Abteilwagen, {STRING})
09:56<Eddi|zuHause>and what happens if there's too few (or too many) parameters?
09:56<Hirundo>demons may fly out of your nose
09:57<Hirundo>I wouldn't know really, string handling is 99% Yexo's work
09:58-!-Biolunar [] has joined #openttd
09:58<Hirundo>Alberth: what 'scanner debug code' ?
10:00<Hirundo>frosch123: Is there any relationship between real sprite 'info version 7 / 32' and grfv7/grfv8?
10:01<@Alberth>Hirundo: a function that runs the scanner only, and dumps the found tokens. Would have been nice to show andy
10:01-!-lmergen [] has quit [Ping timeout: 480 seconds]
10:01<frosch123>Hirundo: there is no relation between grf version, nfo version and grf container version
10:01<frosch123>all combinations are possible
10:01<frosch123>however, only grf container 2 plus nfo32 allow usage of multiple zoom levels or 32bpp
10:02<frosch123>conversion to grf container 1 or nfo < 32 will strip 32bpp and zoom levels, but still work
10:02<Hirundo>OK, thanks for info
10:02<Hirundo>Obviously, I should have checked the forum before asking questions :-)
10:02-!-KritiK [~Maxim@] has joined #openttd
10:02<+michi_cc>NFO version is only really relevant for grfcodec though.
10:02<frosch123>you asked your question 2 minutes before the forum post :p
10:03<Hirundo>NML can output both grf (needs container v2) and nfo (needs nfo v32)
10:06<Eddi|zuHause>nmlc: "src/../src/pruss/E_Abt4.gnml", line 126: First parameter of string() must be an identifier. <-- that's probably the wrong error message :p
10:07<Eddi|zuHause>(or maybe i'm doing something else wrong)
10:08<Eddi|zuHause>ah, think i found it
10:13<Eddi|zuHause>openttd: /home/johannes/spiele/OpenTTD/trunk/src/strings_func.h:82: int64 StringParameters::GetInt64(WChar): Assertion `this->offset < this->num_param' failed.
10:13<Eddi|zuHause>that's probably not right...
10:15<Eddi|zuHause> Removed NewGRF: GRF ID 4A430201, filename: newgrf/test/ng_frails.grf (matches GRFID only). Gamelog inconsistency: GrfID was never added! <-- err...??
10:15<Eddi|zuHause>(that is probably not related, though :p)
10:15<Hirundo>loaded as static grf?
10:16-!-theholyduck [] has quit [Read error: Connection reset by peer]
10:16-!-theholyduck [] has joined #openttd
10:18<Hirundo>frosch123: Currently the GRFTempEngineData::refitmask_grf is set only when setting the xor mask, which I plan to deprecate / remove in NML
10:19<Hirundo>Might it make sense, to also set refitmask_grf when setting the allowed / disallowed cargo lists?
10:20<frosch123>yeah, i guess so
10:21-!-frosch123 is now known as frosch
10:22<Eddi|zuHause>anyway... conclusion: NML happily applies too many or too few parameters, but openttd crashes when displaying the string in the vehicle menu
10:22<Eddi|zuHause>it probably shouldn't do that
10:24<andythenorth>openttd is very fussy about strings changing :P
10:24<andythenorth>most times I crash it is because I changed a string :)
10:24<andythenorth>valhallasw: XML has the same 'way too much scaffolding problem' as others
10:24<Eddi|zuHause>for varying values of "same" :)
10:25<andythenorth>I wonder if I'm slightly solving the wrong problem, BANDIT is configured like this anyway:
10:26<andythenorth>could be prettier
10:26<andythenorth>but I like to try INI format
10:26<andythenorth>as intermediary at least
10:27<andythenorth>easier for others to work with
10:27<Hirundo>frosch: Why is the refit mask not translated when parsing the property?
10:27<andythenorth>and I'm not doing write = anonymous on my cms :P
10:27-!-Chris_Booth [] has joined #openttd
10:30<andythenorth>Alberth: anything wrong with this to set attrs on an object?
10:30<andythenorth> for i,j in properties.items():
10:30<andythenorth> self.__setattr__(i, j)
10:30<andythenorth>seems to work
10:30<andythenorth>I could probably play the one line game on it :P
10:30<Eddi|zuHause>what's wrong with self[i]=j?
10:30<andythenorth>TypeError: 'Truck' object does not support item assignment
10:30<andythenorth>tried that first
10:31<Eddi|zuHause>self should be derived from dict, then
10:31<andythenorth>could do that
10:31<andythenorth>is it wise?
10:31<Eddi|zuHause>probably not :)
10:32<andythenorth>"python is so bracing"
10:32<Rhamphoryncus>Deriving from dict is usually pretty silly
10:33<Rhamphoryncus>andythenorth: use setattr()
10:33<andythenorth>rather than __setattr__()
10:34<Rhamphoryncus>__setattr__ is the backend API to be used by setattr() and normal assignment
10:34<andythenorth>setattr() is not available to my class
10:34<Rhamphoryncus>it's a global function
10:34<andythenorth>AttributeError: 'Truck' object has no attribute 'setattr'
10:34<Rhamphoryncus>A builtin more specifically
10:34<Rhamphoryncus>Think of it as a keyword that happens to be build as a function
10:37<andythenorth>not available to me for some reason ;)
10:38<valhallasw>andythenorth: setattr(self, 'attr', 'value')
10:38<Rhamphoryncus>are all the builtins missing? len, zip, int, float, str, list, dict..
10:38<valhallasw>andythenorth: you attributeerror suggests you're doing self.setattr
10:38<andythenorth>that is the error
10:38<valhallasw>don't do that
10:38<valhallasw>setattr(self, 'attr', 'value') < do that instead
10:38<Rhamphoryncus>It's a builtin. It's not a method.
10:43-!-flaa [] has joined #openttd
10:44<@Alberth>(16:35:04) andythenorth: Alberth: anything wrong with this to set attrs on an object? <-- except for breaking the data hiding concept and the 'objects take their of their own data' concept, absolutely nothing
10:45<@Alberth>imho if you have dynamic entries, use a dict rather than an object.
10:46<Eddi|zuHause>there's probably also "named dicts" or similar
10:47-!-FLHerne [] has quit [Read error: Connection reset by peer]
10:47<Eddi|zuHause>that you can access by both blah["i"] and blah.i
10:47<andythenorth>Alberth: so the solution you posted for mapping into a dict is better?
10:47<andythenorth>more correct?
10:47<@Alberth>in my view it is
10:48<andythenorth>what about just explicitly writing out all the attributes I want on the object?
10:48<andythenorth>I don't trust dynamic attributes either
10:48<@Alberth>but then I am generally very worried about changing state in ways I cannot find again
10:49<andythenorth>I don't mind explicitly writing them out
10:49<Rhamphoryncus>Eddi|zuHause: no named dicts. Easy to do, but it's frowned upon. Pick one approach and stick to it.
10:50<andythenorth>writing out explicitly makes it easy to understand the interface
10:50<andythenorth>but it's quite a lot of loc
10:50<@Alberth>andythenorth: that's the alternative, but you loose the option to iterate over them like in a dict
10:50<andythenorth>I have no requirement for that at the moment
10:51-!-SamCat [] has joined #openttd
10:51<andythenorth>this way there are fewer entities
10:51<@Alberth>you need to list the attributes in 'properties' too, which costs also loc
10:51*andythenorth thinks manually write them out
10:52<SamCat>how is everyone?
10:52<@Alberth>in need of some warm food
10:52<SamCat>I live in California... explain to me... what is this 'cold' you speak of?
10:53<@planetmaker>-5 ... -20°C
10:53<@Alberth>no 'weather in europe' news items there?
10:53<@planetmaker>you do the conversion to °F, I can't be bothered ;-)
10:54-!-Cybertinus [] has quit [Remote host closed the connection]
10:54<@Rubidium>planetmaker: it's simply... just < 0°F and < 0°C
10:55<frosch>planetmaker: 0°F is the coldest thing which that fahrenheit guy knew
10:55<@Rubidium>or at least it was around 08:00 for me
10:55<frosch>(and thought is possible)
10:55<frosch>currently it is colder :p
10:55<@planetmaker>iirc it*s T(°F) = (T(°C) - 32) * 4/9 or so
10:55<SamCat>I guess I'm kinda just tired
10:55<SamCat>I've been playing with trains instead of sleeping like I ought to have
10:55<@Rubidium>planetmaker: so, it can be both less than 0 °F and less than 0 °C, right?
10:56<valhallasw>planetmaker: other way around
10:56<frosch>in other words, the lower fixpoint of the fahrenheit unit is one of the most stupid things in human science
10:56<valhallasw>0°C = 32°F
10:56<@planetmaker>yes, I know. I just failed to derive the formula from that knowledge :-P
10:56<valhallasw>frosch: it was 'the lowest temperature'. Which was wrong, but hey.
10:57<valhallasw>it's as arbitrary as 0 and 100°C are
10:57<@planetmaker>not quite
10:57<frosch>celsius is very useful for cooking and weather
10:57<SamCat>that would be on the freezing and boiling point of water!
10:57<@planetmaker>that is clearly defined as freezing and boiling temperature of destilled water at normal pressure, valhallasw
10:57<frosch>100°F is useful when caring for cows
10:57<@planetmaker>°F is like "cold mixture" and "body temperature"
10:57<@planetmaker>oh yeah
10:58<@planetmaker>And for added benefit 1K = 1°C
10:58<@planetmaker>as differences go. Not absolute
10:58<SamCat>yeah, but having celsius based on water is awesome because everything else in the metric system is based on water
10:58<frosch>so, while 100°F might be more useful than 100°C, 0°F is completely stupid
10:58<Elukka><@planetmaker> iirc it*s T(°F) = (T(°C) - 32) * 4/9 or so
10:58<valhallasw>planetmaker: and 1°R = 1°F
10:58<SamCat>okay, a lot of stuff is based on water
10:58<frosch>planetmaker: thats what R is for :p
10:58<Elukka>no, these days it's "20 c in f" written in google :p
10:58<SamCat>a cubic centimeter of water weighs a gram, for example
10:58<@Rubidium>frosch: at standard atmospheric pressure ;)
10:58<frosch>but neither R not C have a ° :p
10:59<Elukka>google is terribly useful for unit conversions
10:59<@planetmaker>valhallasw: your point being?
10:59<valhallasw>frosch: nor K you mean ;-)
10:59<frosch>yeah :)
10:59<Elukka>it can do esoteric stuff too, i once asked google what "200 times the speed of light in AU/s" was :P
11:00<@planetmaker>°C - and K of course foremost - goes quite well with the thermodynamic definition of temperature
11:00<@planetmaker>the others don't
11:00<valhallasw>planetmaker: my point is: 1°C=1K is not a specific advantage - we could use Rankines as well
11:00<frosch>hmm, i wondered what's so special about 33
11:00<valhallasw>how does °C go well with thermodynamics?
11:00<valhallasw>K goes well and R goes well
11:00<SamCat>yes, but the intervals of K were derived from C so there
11:00<@Rubidium>and K&R make C ;)
11:00<frosch>why does °N define 33°N = boiling of water? :o
11:01<valhallasw>why do we use kelvins or rankines at all? why not just joules!
11:01<@planetmaker>South of it it's hot, frosch
11:01<SamCat>because joules are a measure of energy whereas kelvins are a measure of average energy
11:01<@planetmaker>valhallasw: then you didn't understand the concept of external and internal thermodynamic properties
11:01<SamCat>(average thermal energy)
11:02<valhallasw>SamCat: how is 'average thermal energy' not an energy?
11:02<Eddi|zuHause>frosch: what's so special about 100?
11:02<@Alberth>Rubidium: it's B! >>> chr(ord('K') & ord('R')) --> 'B'
11:02<Elukka>last time there was talk of thermodynamics on this channel someone was arguing the mass of a certain amount of liquid changes with temperature, and volume doesn't...
11:02<@planetmaker>with the same argument, valhallasw, you could argue away the concept of (mass) density when we have mass itself
11:02<Eddi|zuHause>well, technically, Celsius wanted 0 to be the boiling point, and 100 the freezing point
11:02<Eddi|zuHause>but it got switched around quite fast
11:02<SamCat>valhallasw: because something with lots of mass has more energy in it than something with less mass?
11:03*andythenorth should maybe learn how to use pdb :P
11:03<valhallasw>SamCat: so? in terms of units it's still energy
11:03<frosch>Eddi|zuHause: i did not ask why 60°Rø = boiling water
11:03<@Alberth>andythenorth: 'print' works too :)
11:03<@Rubidium>Alberth: I didn't say is, I said make (although I should have said made)
11:03<frosch>i know about traditional usages of 100 and 60
11:03<frosch>but not 33 :p
11:03<@planetmaker>valhallasw: temperature is NOT energy
11:03<valhallasw>it's a different physical quantity
11:03<@planetmaker>that's fundamentally wrong
11:03<SamCat>valhallasw: if I apply a blow torch to a pin it's going to get really hot really fast but if I apply it to a ton of steel it's barely going to do anything
11:04<SamCat>valhallasw: you're applying the same amount of energy (joules) but because you're applying it to more mass you get less rise in temperature (kelvin)
11:04<valhallasw>planetmaker: yes, and newtonmeters and newtonmeters can be completely different things. So what?
11:04*andythenorth looks for something like getattrs
11:04<valhallasw>(namely: energy and torque)
11:05<valhallasw>SamCat: yes, I understand. The fact that they are different physical quantities does not mean we cannot use the same units.
11:05<SamCat>SamCat: saying kelvins are the same as joules is like saying a volt is the same as an amp
11:05<SamCat>valhallasw: yes, it does, beacuse you can't describe something's temperature by saying how many joules are in it
11:05-!-FLHerne [] has joined #openttd
11:06<SamCat>valhallasw: not only would you need to know the amount of mass but you would need the substance's thermal coefficient
11:06<valhallasw>SamCat: wrong. I can't describe somethings temperature by saying how many *energy* is in it.
11:06<valhallasw>the *units* are seperate from the *physical quantity*
11:07<SamCat>valhallasw: but joules are a measure of energy...
11:07<Eddi|zuHause>valhallasw: next you're trying to tell us that mass is energy as well :p
11:07<valhallasw>joules are *generally used* as a measure of energy
11:07<@Rubidium>Eddi|zuHause: that'd be useful
11:07<valhallasw>Eddi|zuHause: that's what theoreticians do generally, yes.
11:07<@planetmaker>valhallasw: you cannot describe the temperature by the energy content. You need many other parameters to succeed
11:07<valhallasw>planetmaker: I'm not doing that. I'm describing temperature in Joules.
11:07<SamCat>vahlallasw: saynig something has 100 joules is like saying you have 100 liters of water... saying something is 100K is like saying the water is at 100 mm of hg
11:07<valhallasw>That's something completely different.
11:08<@Rubidium>today it's the weather will 42kg in the afternoon and a mere 30kg at night
11:08<SamCat>you know... when I made the joke about someone explaining cold to me I didn't exactly expect a debate about thermodynamics ;)
11:08<@Rubidium>and my grammar is totally sucking at the moment
11:08-!-lmergen [] has joined #openttd
11:08<@Alberth>SamCat: we are always highly off-topic here :p
11:09<Eddi|zuHause>well, there _are_ those crazy physicists who define c=1, and thus E=m
11:09<valhallasw>SamCat: saynig something has [Energy] is like saying you have [Volume] of water... saying something is [Temperature] is like saying the water is at [Pressure].
11:09<@Alberth>Eddi|zuHause: they live in a different universe :)
11:09<SamCat>valhallasw: you can't describe temperature with units of energy for the same reason you can't describe speed with just units of distance or just units of time or why you can't describe pressure with just units of mass
11:10<Eddi|zuHause>Alberth: ah well, we have plenty of those :p
11:10<SamCat>vahlallasw: yeah... that's what I said... now I'm completely confused ;_;
11:10<SamCat>valhallasw: nevermind, I misread what you said
11:10<valhallasw>SamCat: it's the difference between *units* [J] and *physical quantity* [Energy] that's important
11:10<valhallasw>you can use the same *unit* (J) for a *different* physical quantity (Temperature)
11:10-!-theholyduck [] has quit [Read error: Connection reset by peer]
11:11<SamCat>valhallasw: right... joules are a measure of thermal energy, why?
11:11-!-theholyduck [] has joined #openttd
11:11<valhallasw>just like you use Nm's for both energy and torque
11:11<Eddi|zuHause>valhallasw: so you're also saying power = loudness?
11:11-!-Cybertinus [] has joined #openttd
11:11<valhallasw>Eddi|zuHause: no, I'm not. Those are different physical quantities
11:11<Eddi|zuHause>for sure, if i get speakers with more watts, they're louder
11:11<valhallasw>but if you want to use the same units, go ahead
11:12<SamCat>Eddi: no, you've got less efficient speakers. there's a difference!
11:12<Eddi|zuHause>but it's the same thing, if i put more energy in, it gets warmers
11:12<valhallasw>SamCat: I can also use Joules to measure Torque
11:12<SamCat>valhallasw: you can use joules to measure torque... but torque is not temperature
11:12<valhallasw>people will look at me as if I'm crazy, but that's a different story
11:13<SamCat>valhallasw: actually you can't... because torque is usually a description of power, not energy and joules are energy not power. You need Watts or Newtons for that
11:14<Eddi|zuHause>SamCat: actually, if i apply the right torque to your arm, it gets warm :p
11:14<valhallasw>SamCat: again, the difference between units and physical quantities
11:14<valhallasw>Joule = kg m^2/s^2
11:15<Eddi|zuHause>we call that "Brennessel"
11:15<SamCat>*head explodes*
11:15<valhallasw>Newton metre = kg m^2/s^2
11:17<valhallasw>but although you use the same units for energy and torque, they are clearly different physical quantities
11:17<andythenorth>Alberth: I concluded on this
11:17<andythenorth>it's long but explicit. No 'wtf is that value coming from?'
11:17<andythenorth>tempted to align all the = though :P
11:17<SamCat>Valhallasw: the joule is an SI unit that is DEFINED AS a measure of energy. You can therefore not use it to describe the concentration of said energy in a system (temperature for example) or to describe power without considerations of other variables
11:18-!-Pixa [~pixa@] has joined #openttd
11:18<SamCat>oh hey look! something OpenTTD related!
11:20<SamCat>by the way... the reason I came here was to ask: how can you tell when an industry has reached that point in its production where it's incapable of increasing production? I've been playing a larger map than my usual 64*64 where there are multiples of industries but they're not going away and they don't increase production either even when it says they have
11:20<valhallasw>SamCat: as far as I know, it's only defined as J=kg m^2/s^2 - the rest is convention
11:21<valhallasw>and inventing a new temperature scale is breaking with convention anyway ;-)
11:21<SamCat>because I see a lot of industries that are producing 40 units of something per month which is kinda where I assumed the point of no return was
11:21<@planetmaker>Point is though that the Kelvin is one of the 7 base units
11:22<@planetmaker>SamCat: there's no general way to tell
11:22<SamCat>planetmaker: damn... so how come the damn things won't sod off already?!
11:23<@planetmaker>depends on the industry. Any newgrf there?
11:23<SamCat>yes, but no industries
11:23<@planetmaker>the last instance of an industry actually might never close
11:23-!-kkb110 [] has quit [Read error: Operation timed out]
11:23<SamCat>I know that last bit but this is in a map with at least two of everything
11:24<@planetmaker>and "no industries" is... not clear. There's quite a few newgrfs which are not industry newgrfs on first sight :-) But which actually are
11:24<CIA-1>OpenTTD: rubidium * r23891 /trunk/src/video/sdl_v.cpp: -Fix-ish: compile failures with SDL 1.3
11:24<@planetmaker>And even then, the industry might need several years before it decides to close down
11:25<SamCat>the newgrfs I was using: ukrs2, ukrs2+,finescale tracks, uk town set, bob's random british vehicles, BATS, use-able default aircraft, city stations, rural stations, suburban stations, industrial stations renewal, generic cars, and FISH
11:27<@planetmaker>I'm not sure about uk towns
11:27-!-KouDy [~KouDy@] has quit [Quit: Leaving.]
11:28<SamCat>I'll look it up then
11:28<@planetmaker>I simply don't know it enought
11:28<SamCat>my understanding is it just adds a bunch of new house graphics but I should double check
11:29<andythenorth>would it be useful if a newgrf reported what features it implements?
11:29<@planetmaker>let's assume it doesn't do anything. Then it's just the default industries where there's basically a random chance to increase or decrease production - or not change
11:29<andythenorth>(action 0 features)
11:29<@planetmaker>Thus... it's quite random how long it takes, SamCat
11:29<@planetmaker>andythenorth: no. It does that already
11:30<andythenorth>did I miss that :o
11:30<@planetmaker>andythenorth: feature byte
11:30<@planetmaker>you did not miss that ;-)
11:30<SamCat>planetmaker: thanks... it's just frustrating when you see it reporting increases and decreases by percentage of an industry which is stuck at minimum and unsalvigable
11:31<SamCat>by the way... would it make sense in the code to have it check to see if the production value is at 1 and, if so, to add one instead of trying to multiply it?
11:31<SamCat>or subtract one instead of trying to multiply it
11:32<@planetmaker>SamCat: it's up to the newgrf
11:32<andythenorth>I was thinking of a window in newgrf config
11:32<@planetmaker>and up to the economy you enabled
11:32<@planetmaker>rough vs. smooth
11:32<andythenorth>This grf modifies: (list)
11:32<SamCat>yeah, that would be nice Andythenorth
11:33<@planetmaker>andythenorth: iirc that's part of grf-topia
11:34-!-Wolf01 [] has joined #openttd
11:36-!-lmergen [] has quit [Ping timeout: 480 seconds]
11:37*andythenorth is unconvinced by
11:37<andythenorth>from global_constants import * #import all stuff from constants for easy reference in python scripts
11:38<andythenorth>means it's guesswork where the actual values / objects in global_constants are coming from
11:38<Eddi|zuHause>import * is an antipattern
11:38<Eddi|zuHause>or at least code smell
11:38<andythenorth>better to be explicit
11:39<Eddi|zuHause>just import global_constants
11:39<Eddi|zuHause>and use global_constants.blah everywhere
11:39<Rhamphoryncus>SamCat: Do I understand this right? An industry can drop to an internal output value of 1, which gets multiplied up when displayed to the user (which is why I've never seen 1), but all the modifiers aren't sufficient to change it any further?
11:39<andythenorth>I have a non-useful obsession with trying to keep lines short
11:40<andythenorth>e.g. self.non_refittable_classes = standard_class_refits['default']['disallow']
11:40<andythenorth>instead of
11:40<andythenorth> self.non_refittable_classes = global_constants.standard_class_refits['default']['disallow']
11:40<SamCat>Rhamphoryncus: that's my understanding of how it works, yes, but I'm not one of the devs so I can't be sure
11:40<andythenorth>but it makes for bad reading
11:41-!-kermie [] has joined #openttd
11:41<SamCat>hy Kermie
11:41<Eddi|zuHause>Rhamphoryncus: an industry produces every 255 ticks, which is 8 or 9 times per month, the GUI will only ever display the sum of all these. so the lowest an industry can produce per month is 8
11:42<kermie>I need help installing openttd 1.0.5
11:42<kermie>on ubuntu
11:42<Eddi|zuHause>kermie: don't install 1.0.5
11:42<kermie>+ I am beginner with ubuntu
11:42<Rhamphoryncus>Eddi|zuHause: *nods*
11:42<kermie>Why not?
11:42<SamCat>kermie: because it's old
11:42<Eddi|zuHause>kermie: because that is outdated by over a year
11:42<Eddi|zuHause>kermie: we have 1.1.5 now
11:42<Rhamphoryncus>SamCat: I'd definitely call it a bug for an intended increase/decrease to have no effect
11:42<kermie>1.1.5 *
11:42<Eddi|zuHause>kermie: and 1.2.0-beta4
11:42<SamCat>I think the 1.0.5 is the one in the ubuntu repos
11:43<SamCat>oh! okay!
11:43<kermie>I currently have 1.0.0 installed
11:43<kermie>How do i update it?
11:43<Eddi|zuHause>kermie: so, what did you try, and what fails?
11:43<kermie>Let me delete it and try to download 1.1.5 and install it again and i'll tell you what happens
11:43<SamCat>download the .deb and install it ;)
11:43<SamCat>that's what I did on my computer
11:44<@planetmaker>you don't even need to install it actually
11:44<kermie>An older version is available in a software channel Generally you are recommended to install the version from the software channel, since it is usually better supported.
11:44<@planetmaker>much easier to update without insall
11:44<kermie>This is what i get
11:44<kermie>That's why i used ubuntu repos
11:45<SamCat>ubuntu's repos are outdated last I chicked
11:45<kermie>Yes they are
11:45<SamCat>if you install the .deb ubuntu will recognize that it's a newer version of the same program, too
11:45<SamCat>or it should
11:45<SamCat>it did on mine
11:45<kermie>I clicked install
11:46<kermie>It gave me error
11:46<kermie>version is installed
11:46<kermie>conflicting packages
11:46-!-Progman [] has quit [Remote host closed the connection]
11:46<SamCat>uninstal the old one first?
11:46<kermie>I'll try to uninstall it first
11:46-!-JVassie [~James@] has joined #openttd
11:46<SamCat>just don't purge
11:46<kermie>What is purge
11:47<kermie>Complete removal?
11:48*andythenorth concludes that trying to make GLOBAL_CONSTANTS_LIKE_THIS is tmwftlb
11:48<andythenorth>in python templates
11:49<SamCat>kermie: yes, it removes config files as well as the app itself
11:51<Eddi|zuHause>andythenorth: if you have a module as prefix, there's no use syntactically separating the constants by capitalizing them
11:51<kermie>i did not select complete removal
11:51<kermie>i have removed (normal) all 3 entries of openttd installed
11:51<kermie>I have installed it succesfully
11:51<kermie>Now it won't start
11:51<andythenorth>Eddi|zuHause: I was trying to preserve the CPP method, I quite like it. This is specific to use in the template files, not the python script ;)
11:52<andythenorth>but it's just wrong
11:52<SamCat>kermie: are you sure you're using the right .deb?
11:52<SamCat>kermie: what version of ubuntu are you using?
11:52<andythenorth>${FOO} is not much better than ${}
11:53<kermie>SamCat: You are using Ubuntu 10.04 LTS - the Lucid Lynx - released in April 2010 and supported until April 2013.
11:54<kermie>SamCat: openttd-1.1.5-linux-ubuntu-lucid-i386.deb
11:54<SamCat>Kermie: okay... I'm using 11.10 here...
11:54<SamCat>that's really odd
11:54<kermie>SamCat: I've also updated ubuntu
11:55<kermie>Maybe it's because i have no GFX
11:55<SamCat>have you tried running it from a terminal and seeing if it pukes any error messages at you?
11:55<kermie>1.0.0 worked fine
11:55<kermie>SamCat: i don't know how to do that
11:55<SamCat>ooooh yeah... you need the gfx
11:55<kermie>I have the original GFX can i use those?
11:55-!-kkb110_ [] has joined #openttd
11:55<kermie>The new ones are just... ugly
11:55<SamCat>open a terminal and type openttd
11:55<SamCat>yeah, you can use the original
11:56<SamCat>I like the new ones...
11:56<kermie>needs graphic set
11:56<SamCat>cool, install graphics set
11:56<kermie>What should i get from my windows ?
11:57-!-theholyduck [] has quit [Read error: Connection reset by peer]
11:57<Eddi|zuHause>all .grf files and
11:57-!-theholyduck [] has joined #openttd
11:57<Eddi|zuHause>and the .gm files if you want music
11:57<kermie>all grf and .gm
11:57<kermie>where do i put them?
11:58<Eddi|zuHause>the grfs and in ~/.openttd/data
11:58<@planetmaker>in ~/.openttd/baseset
11:58<Eddi|zuHause>the gms in ~/.openttd/gm
11:58<Eddi|zuHause>planetmaker: also in 1.1.5?
11:58<@planetmaker>there not
11:58<kermie>how do i reach ~/.openttd
11:58<Eddi|zuHause>kermie: select "show hidden files" in your filemanager
11:59<kermie>I am in file system
11:59<Eddi|zuHause>~ is your home directory
11:59<kermie>i see
11:59<kermie>bin boot cdrom dev etc home
12:00<@Alberth>that's root :)
12:00<kermie>There they are
12:01<kermie>They can not escape the craving of ottd
12:01<kermie>content_download/data you mean
12:01<Eddi|zuHause>just data
12:02<kermie>There is no just data
12:02<Eddi|zuHause>then make it
12:02<kermie>I made it
12:02<Eddi|zuHause>now put the .grfs in
12:02<kermie>It worked
12:03<kermie>I don't have the gms
12:03<Eddi|zuHause>well, they are on your original cd :)
12:03<Eddi|zuHause>(if you have the windows version)
12:03<kermie>i take that back
12:03<Eddi|zuHause>(they're not on the dos version)
12:03<kermie>i have them
12:03<kermie>Why can't i alt tab from the game
12:04<Eddi|zuHause>no idea
12:04<Eddi|zuHause>that has always worked...
12:04-!-Phoenix_the_II [] has quit [Ping timeout: 480 seconds]
12:07<kermie>Thanks for the help but i'm dissapointed about 2 things
12:07<kermie>I can't alt tab
12:08<kermie>And scrolling fast with right click throughout the land skips and isn't smooth
12:08<kermie>Thanks again for the help. I'm going back to windows :D
12:09-!-kermie [] has quit [Quit: ajax IRC Client]
12:11-!-FLHerne [] has left #openttd []
12:22*andythenorth just decided that debugging python-driven newgrfs was way too hard
12:23<andythenorth>...found I have wrong version of grf in game
12:24<SamCat>*sighs* I wish industries would close once they become unrecoverable
12:26<@Alberth>nothing the magic bulldozer cannot fix :)
12:26<SamCat>yeah, but then I have to use cheats
12:27-!-KritiK [~Maxim@] has quit [Ping timeout: 480 seconds]
12:28<@Rubidium>are you using an industry NewGRF?
12:30<andythenorth>so .pynml ok then?
12:30<andythenorth>for nml files templated with python
12:30-!-eQualizer [] has quit [Quit: kikkeli]
12:38-!-[1]Mark [] has joined #openttd
12:38-!-Mark is now known as Guest1544
12:38-!-Guest1387 is now known as Mark
12:41-!-vodka [] has joined #openttd
12:42-!-Chris_Booth [] has quit [Quit: ChatZilla 0.9.88 [Firefox 11.0/20120201153158]]
12:42-!-KritiK [~Maxim@] has joined #openttd
12:43-!-Guest1544 [] has quit [Ping timeout: 480 seconds]
12:44-!-|Jeroen| [] has quit [Quit: oO]
12:47<andythenorth>|| sucks as a separator for lists in config files
12:49<andythenorth>maybe just |
12:49-!-theholyduck [] has quit [Read error: Connection reset by peer]
12:50-!-theholyduck [] has joined #openttd
12:56-!-Pixa [~pixa@] has quit [Quit: TTFN!]
13:01-!-lmergen [] has joined #openttd
13:07-!-glx [glx@2a01:e35:2f59:c7c0:7cdc:1099:124a:4d7e] has joined #openttd
13:07-!-mode/#openttd [+v glx] by ChanServ
13:13<@planetmaker>andythenorth: ";"
13:13<@planetmaker>or ,
13:13<andythenorth>, might turn up in strings sadly
13:13<andythenorth>| less so I gope
13:14<@planetmaker>short for "guess and hope" ;-)
13:16*andythenorth wonders if python has equivalent of setdefault() for casting something to an int
13:16<andythenorth>try: except: seems overkill
13:17<andythenorth>calling int('') is not valid for obvious reasons
13:19<andythenorth>thought so
13:19<andythenorth>try except
13:19<@Alberth>andythenorth: explicit is better than implicit :)
13:20<andythenorth>I'm not sure this is wise
13:20<andythenorth>but it would catch a user who set num trailers = 2, but forgot to define their capacities :P
13:20<andythenorth>the issue is that I end up calling int('') on vehicles where trailer_capacities = ''
13:21<andythenorth>which can be valid, or a user mistake
13:21<andythenorth>I think I'll use your method
13:23<@Alberth> without try/except :p
13:23<@Alberth>I'd throw an error back to the user rather than guess what he meant
13:24<andythenorth>new things
13:24<andythenorth>pat.match etc
13:24<andythenorth>I think it's best to write a function that cleanly parses config file strings into lists
13:26-!-yoshi [] has joined #openttd
13:26<@Alberth>you might as well use a proper parser such as ply :p
13:26-!-yoshi [] has left #openttd []
13:29<andythenorth>let the errors pass?
13:29<andythenorth>it's not a nice pattern, but a common one :P
13:29-!-Mark is now known as Guest1547
13:29-!-[1]Mark is now known as mark
13:30<Eddi|zuHause>hm... so the string(STR, PARAM1, ...) thing doesn't seem to work in translations
13:30<@Alberth>"except:" is wrong by definition, you catch ALL errors, including your typos in that try line
13:31<andythenorth>so I could check for txt=''
13:31<andythenorth>but that would only catch one kind of error
13:31<Eddi|zuHause>i find it sometimes hard to find an exception specific enough to catch only what i want to catch
13:31<@Alberth>I hate the "absorb all errors" pattern
13:31<andythenorth>I could check the string is in the literals
13:31-!-FLHerne [] has joined #openttd
13:32-!-LordAro [] has joined #openttd
13:32<@Alberth>what about it?
13:33<andythenorth>if i in digits:
13:33<Eddi|zuHause>clarification for the above: string(STR, PARAM1, ...) doesn't work if STR doesn't exist in the translation file
13:33<Eddi|zuHause>which is probably a correctable error...
13:34<@Alberth>andythenorth: that's what '\\d+' does
13:34<andythenorth>is that magic?
13:35<Eddi|zuHause>Alberth: tried r'\d+' yet? (raw string literals disable the whole escaping mess)
13:35<andythenorth>regular expressions scare me
13:35<@Alberth>Eddi|zuHause: until you try r'\' :p but yeah, I know
13:35<andythenorth>incidentally, why can't I import digits?
13:36<@Alberth>from string import digits
13:36<andythenorth>I'm doing it wrong
13:37<Eddi|zuHause>anyone looked at yet?
13:37<Eddi|zuHause>to me it looks like a simple "is already at the end of the string" check is missing
13:38*andythenorth didn't think that parsing a list would be this hard :o
13:44-!-mark is now known as Mark
13:45<CIA-1>OpenTTD: translators * r23892 /trunk/src/lang/ (french.txt latvian.txt spanish.txt unfinished/tamil.txt):
13:45<CIA-1>OpenTTD: -Update from WebTranslator v3.0:
13:45<CIA-1>OpenTTD: french - 65 changes by OliTTD
13:45<CIA-1>OpenTTD: latvian - 23 changes by Parastais
13:45<CIA-1>OpenTTD: spanish - 1 changes by Terkhen
13:45<CIA-1>OpenTTD: tamil - 15 changes by aswn
13:45<andythenorth>maybe config parser should be a separate module
13:45-!-flaa [] has quit [Quit: leaving]
13:46-!-Pixa [~pixa@] has joined #openttd
13:46-!-_11Runner_ [] has joined #openttd
13:59-!-LordAro [] has quit [Quit: KVIrc 4.0.4 Insomnia]
14:01-!-pjpe [] has joined #openttd
14:03<Eddi|zuHause>what happened to the idea to make nmlc ignore the value of the magic pink palette entries?
14:03-!-FLHerne [] has left #openttd []
14:04-!-FLHerne [] has joined #openttd
14:07<+michi_cc>Today's nightly will be delayed by a few minutes till we sort out a code problem :)
14:09-!-HerzogDeXtEr [~Flex@] has joined #openttd
14:15-!-HerzogDeXtEr1 [] has quit [Ping timeout: 480 seconds]
14:19<andythenorth>so does this look like a sane way to edit a newgrf?
14:19<andythenorth>I could add comments
14:20-!-Pixa [~pixa@] has quit [Read error: Connection reset by peer]
14:20-!-Pixa [~pixa@] has joined #openttd
14:21-!-tensai_cirno [~cirno@] has quit [Remote host closed the connection]
14:21<CIA-1>OpenTTD: michi_cc * r23893 /trunk/src/spriteloader/grf.cpp: -Change: [NewGRF] Extended chunked sprite encoding to work for bigger sprites.
14:21<+michi_cc>Thank you for your patience, we now resume or regular nightly service :)
14:25<@Alberth>thank you for your nice announcements :)
14:26<@Alberth>andythenorth: looks like it needs a default entry, which you use as base
14:27<@planetmaker>Eddi|zuHause: iirc it was considered a nice idea. But no-one wrote code so far
14:27<@Alberth>or just default properties
14:30<andythenorth>you refer to things that are duplicated so could be defaults?
14:30<andythenorth>or something else
14:31<@Alberth>yes, either seperately for each property, or per vehicle (eg 'default = <section-name>')
14:32<__ln__>anyone been to Falkland Islands?
14:32<@Alberth>so you just need to list the differences
14:33<@Alberth>and aligning the '=' would make it much more readable
14:33<andythenorth>mostly the options should be different, as each vehicle should be unique
14:33<andythenorth>but there are some that are choices from a limited list
14:33-!-pjpe [] has quit [Quit: ajax IRC Client]
14:34<Eddi|zuHause>falkland islands has a mine field. and the penguins are light enough to not trigger the mines, so they actually now have a protected area :)
14:35*andythenorth ponders a way to do 30 * ' '
14:35<andythenorth>to get 30 spaces
14:35<@Alberth>andythenorth: ok, not much use thus
14:35<@Alberth>andythenorth: ' ' * 30
14:36<Eddi|zuHause>Alberth: doesn't python do that natively?
14:36<Eddi|zuHause>andythenorth: i meant
14:36<andythenorth>I was going to do ' '.join([0:30]) or such
14:36<andythenorth>guess that's silly
14:36<@Alberth>oh, even 30 * ' ' works :o
14:37<@Alberth>Eddi|zuHause: I thought you had to put the string first
14:37<andythenorth>Alberth: closer?
14:37-!-mahmoud [] has quit [Read error: Connection reset by peer]
14:37-!-Biolunar [] has quit [Quit: All your IRC are belong to us]
14:38-!-Biolunar [] has joined #openttd
14:41<@Alberth> somewhat nicer layout :)
14:42<andythenorth>there is but one small problem
14:42<andythenorth>I am lazy :P
14:42<andythenorth>this is the script on the cms that outputs the config file
14:43<andythenorth>making it output in your format is not hard
14:43<andythenorth>it just means changing the last few lines
14:44<@Alberth>ok :) I just grouped similar setting next to each other in blocks
14:44<andythenorth>could write a python script in the repo to do the reformat
14:44<andythenorth>but that's a bit magical
14:44-!-SamCat [] has quit [Quit: Leaving.]
14:44<andythenorth>now I'll have to change the cms script :)
14:44<andythenorth>"look what you made me do"
14:45<@Alberth>make a ini-file template :p
14:45<andythenorth>could do
14:45<andythenorth>why not
14:45<andythenorth>maybe you could?
14:45<andythenorth>you can learn tal that way :P
14:45*andythenorth will do it though
14:48-!-Pixa [~pixa@] has quit [Read error: Connection reset by peer]
14:48-!-Pixa [~pixa@] has joined #openttd
14:53-!-pjpe [] has joined #openttd
14:53-!-pjpe [] has quit []
14:53-!-pjpe [] has joined #openttd
14:53-!-bryjen [~bryjen@] has joined #openttd
14:56-!-DDR [~chatzilla@] has joined #openttd
15:02-!-mahmoud [] has joined #openttd
15:10-!-Keyboard_Warrior [] has joined #openttd
15:12<CIA-1>OpenTTD: michi_cc * r23894 /trunk/src/spriteloader/grf.cpp: -Fix (r23893): Use the right variable, not the one that's always going to be 0.
15:12<+michi_cc>All the effort, and still a slightly broken nightly :(
15:15-!-eQualizer [] has joined #openttd
15:17-!-theholyduck [] has quit [Ping timeout: 480 seconds]
15:28-!-Phoenix_the_II [] has joined #openttd
15:30-!-DDR [~chatzilla@] has quit [Quit: ChatZilla 0.9.88 [Firefox 9.0.1/20111221202647]]
15:30-!-tparker [~tparker@2600:3c03::1d:4242] has quit [Quit: brb]
15:31-!-DDR [~chatzilla@] has joined #openttd
15:33<Hirundo>hmm... how does the 32bpp 'mask' thingie work?
15:33-!-tparker [~tparker@2600:3c03::1d:4242] has joined #openttd
15:34-!-Keyboard_Warrior is now known as theholyduck
15:34-!-_11Runner_ [] has quit [Quit: Leaving.]
15:35<Hirundo>you specify a palette colour, and the pixel is recoloured as if it were that colour but with intensity / alpha adjustments?
15:35<Hirundo>or not?
15:37<+michi_cc>If the pixel has a mask with color index 0, the blitter simply takes the rgb colour. If it is non-zero, the rgb part is converted to a brightness value which is then used to modulate the palette colour from the mask pixel.
15:39<+michi_cc>Very simplified pseudo-code: colour = (mask == 0) ? rgb : pal2rgb[mask] * max(r,g,b) / 64
15:40-!-vodka [] has quit [Quit: Leaving]
15:51<andythenorth>took longer than it should have due to errors by me :P
15:51-!-Markavian` [] has joined #openttd
15:55-!-Markavian` [] has quit []
15:56-!-Markavian [] has quit [Ping timeout: 480 seconds]
16:00<@Alberth>looks nice, perhaps add a space behind the '=' ?
16:03-!-Progman [] has joined #openttd
16:04-!-theholyduck [] has quit [Read error: Connection reset by peer]
16:04-!-theholyduck [] has joined #openttd
16:13-!-peteris [~peteris@] has joined #openttd
16:15-!-cmircea [~cmircea@] has quit [Read error: Connection reset by peer]
16:15-!-Belugas [~belugas@] has quit [Ping timeout: 480 seconds]
16:19-!-Belugas [~belugas@] has joined #openttd
16:19-!-mode/#openttd [+o Belugas] by ChanServ
16:21-!-cmircea [~cmircea@] has joined #openttd
16:22-!-kkb110_ [] has quit [Ping timeout: 480 seconds]
16:23-!-Brianetta [] has joined #openttd
16:26<andythenorth>Alberth: done:
16:31<@Alberth>finished :)
16:36-!-tparker [~tparker@2600:3c03::1d:4242] has quit [Quit: leaving]
16:37<andythenorth>Alberth: thanks for the config file tip, it's a good format
16:38<andythenorth>also - Eddi|zuHause - thanks, what you did with CETS encouraged me that python is a good route
16:38<andythenorth>+ I couldn't have hooked up the makefile alone without the copy-paste from CETS
16:39-!-tparker [~tparker@2600:3c03::1d:4242] has joined #openttd
16:40<andythenorth>if a file doesn't get processed by python, but is included by python, should the extension be .nml? or .pynml?
16:40<andythenorth>before I rush into a commit ;P
16:40<@Alberth>.py :p
16:41<@planetmaker>if it's pure nml... either .nml or .pnml, I'd say
16:41<andythenorth>it's pure nml
16:41<andythenorth>cargo table
16:41<andythenorth>disable default vehicles
16:42<andythenorth>I'm not even sure they should be separate files
16:42<andythenorth>one of them is 2 loc, 50% of that is comment :P
16:42<andythenorth>seems dubious
16:42<@Alberth>.nml then
16:42-!-xahodo [] has joined #openttd
16:44<xahodo>I've got an assertion failed when I choose advanced settings in the main menu.
16:45<@Rubidium>sounds like you patched OpenTTD
16:45<xahodo>Nope, nightly.
16:45<MJP>same problème here
16:45<MJP>zoom_min not found
16:46*Rubidium blames r23888
16:46<@Rubidium>michi_cc: ^ (good luck)
16:47<xahodo>In r23874 advanced settings works as normal.
16:49<xahodo>same for r23877
16:50-!-theholyduck [] has quit [Read error: Connection reset by peer]
16:50*andythenorth wonders if .pylng is good for .lng files templated with python?
16:51-!-theholyduck [] has joined #openttd
16:53-!-xahodo [] has quit [Quit: ajax IRC Client]
16:54-!-Phoenix_the_II [] has quit [Ping timeout: 480 seconds]
16:58<andythenorth>do I need to put a GPL notification in every file?
16:58<@Alberth>perhaps use a .pytemplate or so, instead of the zillion different extensions?
16:58<andythenorth>you mention that after i commit :P :o :D
16:59<@Alberth>haven't you yet learned that 8 minutes is nothing in IRC time? ;)
17:00<andythenorth>I think I'll leave them be for now
17:00<@Alberth>good idea
17:00<andythenorth>I think the lesson for me here is that I should have used .pt
17:00<andythenorth>which is what all the docs refer to
17:00<andythenorth>and the same as I type for these files every day of the week at work :P
17:01<@Alberth>it looks like a translation :)
17:02<@Alberth>yeah, not sure why I associate it with translations, perhaps the gnutext thngie uses it
17:02-!-Progman [] has quit [Remote host closed the connection]
17:03<andythenorth>it's quite widely used, 7 or 8 different meanings it seems
17:04-!-lmergen [] has quit [Ping timeout: 480 seconds]
17:09<@Alberth>good night
17:09-!-Alberth [] has left #openttd []
17:10<andythenorth>moi aussi
17:10-!-andythenorth [] has quit [Quit: andythenorth]
17:14<CIA-1>OpenTTD: michi_cc * r23895 /trunk/src/table/ (misc_settings.ini settings.ini): -Revert (r23888): Broken and not even needed anymore in the container format 2 implementation that was committed.
17:14<CIA-1>OpenTTD: michi_cc * r23896 /trunk/src/spritecache.cpp: -Fix (r23884): Don't free unallocated memory.
17:18<CIA-1>OpenTTD: michi_cc * r23897 /trunk/src/ (6 files in 2 dirs): -Feature: [NewGRF] 32bpp sprites in GRFs.
17:19<CIA-1>OpenTTD: michi_cc * r23898 /trunk/ (8 files in 4 dirs): -Remove: PNG sprite loader.
17:34<Hirundo>r23898 does not appear in the hg repo
17:36-!-kkb110_ [~kkb110@NYUFGA-WLESSAUTHCLIENTS-01.NATPOOL.NYU.EDU] has joined #openttd
17:39<+michi_cc>No idea, it does appear on the git repo though.
17:39<+michi_cc>So it can't be the complete convert process that is stuck.
17:41-!-TWerkhoven[l] [] has quit [Quit: He who can look into the future, has a brighter future to look into]
17:44-!-macee [] has joined #openttd
17:45-!-sla_ro|master [~slaco@] has quit [Quit: - free first person shooter based of c&c 3]
17:53<Elukka>random flights?
17:57-!-TGYoshi [~TGYoshi@] has quit [Quit: Popidopidopido]
17:57-!-macee [] has left #openttd []
17:58<__ln__>not very random
17:59<Elukka>well, what's notable with them?
17:59-!-Markavian [] has joined #openttd
18:00<Elukka>the ryanair one looks like it's been stuck for a while but i'm not sure that's particularly weird...
18:00<Elukka>i imagine there might be issues with snow
18:01<Elukka>on airports
18:01<__ln__>and the ezy one doesn't look like it's been stuck for a while?
18:03<Elukka>i guess
18:09-!-HerzogDeXtEr [~Flex@] has quit [Quit: Leaving.]
18:09-!-HerzogDeXtEr [~Flex@] has joined #openttd
18:09-!-HerzogDeXtEr [~Flex@] has quit []
18:13-!-Pixa [~pixa@] has quit [Read error: Connection reset by peer]
18:14-!-Pixa [~pixa@] has joined #openttd
18:16-!-chester [] has quit [Quit: Leaving.]
18:18-!-cmircea [~cmircea@] has quit [Ping timeout: 480 seconds]
18:22-!-Markavian` [] has joined #openttd
18:23-!-kkb110_ [~kkb110@NYUFGA-WLESSAUTHCLIENTS-01.NATPOOL.NYU.EDU] has quit [Ping timeout: 480 seconds]
18:25-!-mkv` [] has joined #openttd
18:25-!-snack2 [] has quit []
18:28-!-Elukka [] has quit []
18:28-!-Keyboard_Warrior [] has joined #openttd
18:29-!-Markavian [] has quit [Ping timeout: 480 seconds]
18:29-!-Cybertinus [] has quit [Remote host closed the connection]
18:32-!-Markavian` [] has quit [Ping timeout: 480 seconds]
18:35-!-theholyduck [] has quit [Ping timeout: 480 seconds]
18:36-!-MJP [] has quit [Ping timeout: 480 seconds]
18:38-!-FLHerne [] has left #openttd []
18:39-!-flaa [] has joined #openttd
18:41-!-Neon [] has quit [Quit: Python is way too complicated... I prefer doing it quickly in C.]
18:46<__ln__>must be a mess
18:49-!-flaa [] has quit [Quit: leaving]
18:53<Wolf01>'night all
18:53-!-Wolf01 [] has quit [Quit: Once again the world is quick to bury me.]
18:54-!-Biolunar [] has quit [Quit: All your IRC are belong to us]
18:55-!-tensai_cirno [~cirno@] has joined #openttd
19:12-!-valhallasw [~valhallas@] has quit [Ping timeout: 480 seconds]
19:18-!-peteris [~peteris@] has quit [Quit: Ex-Chat]
19:25-!-kkb110_ [~kkb110@NYUFGA-WLESSAUTHCLIENTS-02.NATPOOL.NYU.EDU] has joined #openttd
19:27-!-bryjen [~bryjen@] has quit [Quit: Leaving]
19:37-!-cornjuliox [cornjuliox@] has quit [Ping timeout: 480 seconds]
19:48-!-mahmoud [] has quit [Quit: Quitte]
19:48-!-mahmoud [] has joined #openttd
20:05-!-KouDy [~KouDy@] has joined #openttd
20:08-!-frosch [] has quit [Remote host closed the connection]
20:10-!-bryjen [~bryjen@] has joined #openttd
20:19-!-pugi [] has quit [Ping timeout: 480 seconds]
20:19-!-pugi [] has joined #openttd
20:22-!-JVassie [~James@] has quit [Ping timeout: 480 seconds]
20:29-!-holyduck [] has joined #openttd
20:37-!-Keyboard_Warrior [] has quit [Ping timeout: 480 seconds]
20:38-!-DOUK [] has joined #openttd
20:43-!-mahmoud [] has quit [Ping timeout: 480 seconds]
20:43-!-Pixa [~pixa@] has quit [Read error: Connection reset by peer]
20:43-!-Pixa [~pixa@] has joined #openttd
20:54-!-LordPixaII [~pixa@] has joined #openttd
20:54-!-Pixa [~pixa@] has quit [Read error: Connection reset by peer]
20:55-!-LordPixaII [~pixa@] has quit [Read error: Connection reset by peer]
20:55-!-Pixa [~pixa@] has joined #openttd
20:59-!-KouDy [~KouDy@] has quit [Read error: Connection reset by peer]
21:03-!-_11Runner_ [] has joined #openttd
21:11-!-Pixa [~pixa@] has quit [Read error: Connection reset by peer]
21:12-!-Pixa [~pixa@] has joined #openttd
21:14-!-holyduck [] has quit [Quit: Forlater kanalen]
21:14-!-theholyduck [] has joined #openttd
21:15-!-KouDy [~KouDy@] has joined #openttd
21:17-!-KouDy1 [] has joined #openttd
21:23-!-KouDy [~KouDy@] has quit [Ping timeout: 480 seconds]
21:24-!-KritiK [~Maxim@] has quit [Quit: Leaving]
21:29-!-Brianetta [] has quit [Quit: Tschüß]
21:33-!-Rhamphoryncus [] has quit [Quit: Rhamphoryncus]
21:51-!-Chris_Booth [] has joined #openttd
21:57-!-kkb110_ [~kkb110@NYUFGA-WLESSAUTHCLIENTS-02.NATPOOL.NYU.EDU] has quit [Ping timeout: 480 seconds]
22:07-!-pugi [] has quit []
22:10-!-Chris_Booth [] has quit [Quit: ChatZilla 0.9.88 [Firefox 11.0/20120201153158]]
22:20-!-hbccbh [~hbc@] has quit [Remote host closed the connection]
22:44-!-theholyduck [] has quit [Read error: Connection reset by peer]
22:44-!-Pixa [~pixa@] has quit [Read error: Connection reset by peer]
22:44-!-theholyduck [] has joined #openttd
22:44-!-Pixa [~pixa@] has joined #openttd
22:54-!-kkb110_ [] has joined #openttd
22:59-!-LordPixaII [~pixa@] has joined #openttd
22:59-!-Pixa [~pixa@] has quit [Read error: Connection reset by peer]
23:03-!-glx [glx@2a01:e35:2f59:c7c0:7cdc:1099:124a:4d7e] has quit [Quit: bye]
23:07-!-LordPixaII [~pixa@] has quit [Read error: Connection reset by peer]
23:07-!-Pixa [~pixa@] has joined #openttd
23:14-!-LordPixaII [~pixa@] has joined #openttd
23:14-!-Pixa [~pixa@] has quit [Read error: Connection reset by peer]
23:18-!-_11Runner_1 [] has joined #openttd
23:21-!-_11Runner_1 [] has left #openttd []
23:24-!-_11Runner_ [] has quit [Ping timeout: 480 seconds]
23:24-!-LordPixaII [~pixa@] has quit [Read error: Connection reset by peer]
23:24-!-Pixa [~pixa@] has joined #openttd
23:30-!-LordPixaII [~pixa@] has joined #openttd
23:30-!-Pixa [~pixa@] has quit [Read error: Connection reset by peer]
23:32-!-DDR [~chatzilla@] has quit [Ping timeout: 480 seconds]
23:36-!-blathijs_ [] has joined #openttd
23:36-!-LordPixaII [~pixa@] has quit [Read error: Connection reset by peer]
23:38-!-Pixa [~pixa@] has joined #openttd
23:39-!-blathijs [] has quit [Ping timeout: 480 seconds]
23:49-!-LordPixaII [~pixa@] has joined #openttd
23:49-!-Pixa [~pixa@] has quit [Read error: Connection reset by peer]
23:49-!-DDR [~chatzilla@] has joined #openttd
23:58-!-KouDy [~KouDy@] has joined #openttd
23:58-!-LordPixaII [~pixa@] has quit [Read error: Connection reset by peer]
23:58-!-Pixa [~pixa@] has joined #openttd
---Logclosed Sun Feb 05 00:00:41 2012