Thursday, 2008-03-20

*** tpb has joined #tp00:00
*** ChanServ sets mode: +o tpb00:00
*** JLafont has joined #tp00:03
*** llnz has quit IRC00:03
JLafont5 days until Freeeeeeedddooooommmm!00:19
*** bddebian has quit IRC00:29
mithroandrei: ping?00:32
andreimithro, pong00:36
mithroandrei: darcs!?00:36
andreimithro, darcs :)00:36
andreimithro, It's way nicer than git00:37
mithrodarcs is the devil, we switched to git from darcs00:37
andreimithro, Speed issues?00:37
mithroandrei: the fact that you couldn't checkout our repositories without 4gb of ram00:37
mithroand the continual repository corruption00:37
andreimithro, Heh; I haven't had issues with that. I do have speed issues once my codebase reaches a certain point00:38
andreiBut the new darcs fixes a lot of that00:38
andreiIn reality.. I just love the patchset thing :)00:39
mithrodarcs is a classic example of what happens when you let academics write software00:40
andreiHeh, actually; many of the problems were due to Haskell issues00:41
andreiIt has a nasty way of springing space leaks on you00:41
andreiThe last few ones are due to the algorithm itself though (some fun exponential time corner cases)00:41
andreimithro, I wanted to ask a bit more about the whole scheme thing00:43
mithroandrei: I've read the logs :)00:44
andreimithro, I really think the AI would be much simpler and easier to understand/maintain if it were in scheme00:44
andreiWould you be more inclined to go for a scheme version if I wrote up a nice guide on how to hack at it along with a crash course in scheme?00:44
mithroandrei: who cares if your algorithm is always correct if it takes till the end of the universe to complete :)00:44
andreimithro, Or.. if you have other suggestions of what I can do to make a scheme version more appealing; I'm game :)00:47
mithroandrei: implement a libtpproto-scheme before GSoC starts00:48
mithroif you don't use Python of C++ you will need to do a lot of infrastructure work00:48
andreimithro, *points to his advisor* I don't have that much free time to do it now. I can propose a different version. I can do it in the middle of may ~1-2 weeks before SoC.00:50
andreiAnd if I don't get it done in that timeframe I'll write the AI in C++00:50
andreiAlso.. I wouldn't write a client for scheme, I'd write bindings to the C++ client00:51
mithroandrei: if the choice was a person less knowledgable doing the AI in python verse a person more knowledgable in Scheme I personally would go for the Python one00:52
mithrofor a number of reasons00:52
mithro1. The protocol and client libraries are already supported and maintained00:52
mithro2. The AI would run on Windows, Mac and Linux00:52
mithro3. It's more likely to be maintainable in the future by others00:53
mithro4. I just like python better :)00:53
andreiHeh, ok. Do you feel the same way about C++?00:53
andreiI unfortunately can't do it in python00:54
andreiI know python decently well; SoC doesn't pay enough for me to write code that language00:54
andrei(nothing does; I'd rather take a Java job than a python one)00:55
andreiI'm willing to do things like write bindings. But I won't enjoy it at all if it's in python and SoC isn't about hating the project you're on :)00:56
mithrowhy do you hate python?00:58
andreiI like math and formalism. That's impossible in python. It's an incredibly messy language. This all means that you can never actually know what you're code is doing because the semantics are not well defined00:58
mithroI'm neutral to C++, I would prefer Python for point 1 and 2 again00:59
mithroandrei: well, you just don't realise that C++ has all that mess to - it's just pretends to be the other way :)00:59
andreiIt also has no redeeming qualities for me. It's slow, ugly, too many arbitrary restrictions by people that think they know better, too many corner cases, the language it much too large for all the wrong reasons.01:00
mithrovoid* in the hall!01:00
andreimithro, Heh, C++ has a different type of mess. The standard is very clear as to what is good and bad. (I've read it and keep track of the wg21 working papers so I make sure to know about corner cases and flaws). In C++ you can actually reason about your code01:01
mithroandrei: well, then you have obviously never seen real C++ code :) - trying to reason about tpserver-cpp is pretty futal experiance01:01
andreiAnd C++ is developed by people that don't assume they know better than you, so they doesn't impose arbitrary restrictions on the language. Everything is there for a very clear reason01:01
andreimithro, Heh. I write clean C++ code that's very close to functional. It's really easy to reason about; I generally prove things as I go.01:03
mithroandrei: so you end up with something like darcs then?01:03
andreimithro, Darcs is something else entirely. They're using a new theory of patches with some really complicated algorithms.01:04
mithrobut it's all suppose to be provable01:04
mithrohence it shouldn't have any bugs!01:04
andreimithro, Proving that your code won't mess up does not equate to slow or complicated code (actually it usually means really simple and clean code because it's too hard to prove things about messy code)01:05
andreimithro, They use the word proof very loosly :)01:05
mithroandrei: I'm not an academic, I perfer things which actually function then are mathmatically provable01:06
andreimithro, provable means that they function correctly01:06
mithroandrei: no it doesn't it means they function how they where programmed to01:07
andreimithro, Nopes, because you prove that your algorithm is correct01:07
andreimithro, The darcs people have a strange notion of what they prove correct. If you want to see code that is clean and has proofs attached to it look at xmonad01:08
mithroandrei: okay, prove me the "algorithm" for a user interacting with a starmap is correct01:08
andreimithro, Err, you have to define exactly what interacting means and which bit you want to prove; and exactly what you mean by correct01:08
mithroandrei: correct == functions as the user expects, interacting == doing the things a user wants01:09
andreimithro, You have to be much more specific :)01:09
mithroIE the real world :)01:09
andreimithro, This brings me to my next question: Because I can't do it in python, does that automatically mean that if someone submits a python proposal they'll win out? (I'm curious so I don't spend time writing one up)01:10
mithroandrei: not exactly - if you where tied in all details the Python one would win no question01:10
andreimithro, Ah, okies01:10
mithroandrei: as well, I'm not the only mentor - the others also have a say01:11
mithrollnz and JLP like C++01:11
mithroandrei: the criteria looks something like this01:12
mithro1. Is the project doable (IE Have you good timeline, reasonable goals, etc), we will discard projects which we don't think have a high chance of successfully completing01:13
mithro2. Is the student actively involved with the project, do we think they would be likely to stay around once the money has gone01:13
greywhindmithro: sorry to interrupt - the popup size code in panelStarMap seems to use: "p.SetSize(p.GetBestSize())", which is what I'm using... could it be the placement of Layout before or after that?01:13
mithrogreywhind: you must do that after layout I think?01:14
greywhindmithro: actually, I do seem to be doing it after layout, so that's not it01:14
andreimithro, (I feared for a bit that you would say that any python proposal would beat a C++ one :P)01:14
mithro3. How useful is the proposal to our goals, both short term and long term01:14
mithroall things being equal a python proposal would probably win - but things are never totally equal in the real world01:16
andreiOkies, that's all fairly standard01:17
mithromainly because Python code is more useful to us at the moment01:17
mithro(in terms of client related stuff)01:18
andreimithro, There's another advantage to scheme that I haven't mentioned but might make it more attractive. My research area overlaps really well with this and all my code for that is in scheme. This means that what I could easily port what I'm doing there over to here.01:19
andreimithro, Heh, I'm at a bit of a disadvantage with 2. I hadn't heard of thousand parsec 2 days ago :p (though I really like AI so I wouldn't leave unless something like alky went down here.. which probably wouldn't be possible)01:20
andrei(the lead developers decided to take my code and make a special closed source version that they could sell; despite the fact that my code was GPLed)01:20
mithroandrei: Thousand Parsec has been around since 2001 and still has both it's original members01:20
andreimithro, Heh, nice. I'm surprised I hadn't heard of it before. 4 X games are my favourite01:22
OhmI also hadn't heard of TP before GSoC this year01:22
Ohmnow I am thrilled01:22
mithrowe need to do better advertising01:22
mithroany ideas where we could have found you guys otherwise?01:23
Ohm(but still haven't even played a single game with it, :p)01:23
mithrowe are on wikipedia01:23
andreimithro, slashdot01:23
OhmOh, by the way, I aced my finals in imperative programming01:23
mithroandrei: a Python AI could also be easily packaged together with the python client and the python server to create a "single player" mode01:23
greywhindmithro: Digg and Slashdot seem like good places to start.01:24
greywhindwe should announce releases there01:24
Ohmmithro: Not sure, I can't think of any good channel to get me through01:24
OhmI'd say you have a larger amount of potential contributors on slashdot than on digg01:24
andreimithro, As could the scheme one :)01:24
mithroI wish we could get on Digg01:24
andreimithro, I'm fine with providing bindings to the AI in both C and python01:24
mithroandrei: oh? How would you support windows and Mac?01:24
Ohmnot that either of them are great01:24
andreimithro, I could use a version of scheme that works on all 3 platforms01:24
mithrogreywhind: we tried to get on both slashdot and digg with the 0.3.0 release, no success01:24
greywhindmithro: hmm... :(01:25
mithroandrei: one which can be easily packaged into a stand alone binary?01:25
andreimithro, Sure; I'll take care of writing a script to pacage it up01:25
andreierm package01:25
OhmI think you would have more success if you could announce yourself as a "killer app" game for linux01:25
Ohmthat'd require a cool ruleset01:25
andreimithro, mzscheme works well on Windows01:26
andreimithro, Also, I'm a maintainer of a scheme compiler. It too works on Windows (though I'd rather not use it for this)01:27
Ohmhow does scheme differ from CL when it comes to macros?01:27
andreiOhm, mainly by making macros hygienic01:28
andreiOhm, But keep in mind that there are a lot of different scheme macro systems01:29
Ohmah ok01:29
OhmArgh, this new keyboard is giving me pains in my right wrist01:29
andreiOhm, I unfortunately don't know CL particularly well so I can't really go into any detail :)01:30
Ohmit's alright01:30
mithrothe slashdot editors obviously hate us, because freeorion has been on slashdot01:30
Ohmmithro: I think it's because you're a framework, not a game01:31
Ohmnot nearly as exiting01:31
andreimithro, Heh, the trick is. Keep submitting01:31
mithroandrei: my limited experience is that scheme is not easily portable if you are not doing trivial stuff01:31
andreimithro, Really? I've never had any issues01:32
OhmWhat? Scheme seems to be more portable than most languages since it's so small01:32
andreimithro, (the compiler I'm hacking on works on more architectures than I've ever seen. From alphas to mips to arm)01:32
mithrotry using a hash map or objects01:32
andreimithro, SRFIs take care of those really nicely01:32
Ohmmithro: i see01:33
andreimithro, You mean portable between different implementations of scheme or between different architectures?01:33
mithrodifferent implementations of scheme01:33
andreimithro, Ah, that's something else entirely. If you keep to the SRFIs and R5RS you'll be portable essentially everywhere01:34
andreimithro, But something like mzscheme works on all major architectures so that's not an issue01:34
mithroI don't hate scheme, I just personally don't think it's suitable for anything non-trivial01:34
mithroandrei: does mzscheme work on Mac? we couldn't get it to compile last time we tried01:34
CIA-13noegnud tpclient-pywx-orderxrc * rf68e4be374c6 /windows/ (main/overlays/ xrc/winResourceSelect.xrc): Hopefully fixed some size issues with the Resource Selector popup.01:34
greywhindmithro: see if that looks better01:35
andreimithro, Aye. I know people that use mzscheme on mac01:35
mithroandrei: I guess you could just use pyscheme and then when schemepy is finished it will be all fast :)01:35
greywhindmithro: i'm going to sleep now, so tell me tomorrow.01:36
andreimithro, The maintainers are also really nice about fixing bugs rather quickly01:36
mithrogreywhind: no luck :/01:37
greywhindmithro: no?01:37
greywhindmithro: hmm... this must be something that doesn't appear on Mac.01:38
greywhindmithro: oh well. i really have to sleep, so i'll try to fix it tomorrow.01:39
andreimithro, You should tell me if you have other issues with scheme. Perhaps I can help :)01:40
andreimithro, Also, I don't meant to come off as pushy01:40
andreimithro, I'll gladly write it in C++ instead01:40
andreimithro, I just know after writing lots of AI-related code that the scheme version will end up being cleaner and overall just of higher quality. Which is I'm hoping to be able to do that :)01:41
mithrogreywhind: okay01:41
Ohmhooray, a person who has seen (and can vouch for) a list-dialect in pragmatic implementation01:42
mithroandrei: that is nice, but we need to consider the fact that scheme is a niche language and that we have trouble enough attracting developers anyway01:42
OhmI've been wanting to see that ever since I fell in love with lisp's simple syntax01:42
andreiOhm, Heh, you haven't found interesting scheme projects?01:43
OhmSadly I agree with mithro, though01:43
Ohmandrei: Interesting yes, but everybody seems to frown on it for "important" work01:43
andreimithro, Scheme is easy to pick up though. Which means anyone that wants to hack on the AI doesn't really have to learn much. And niche often means that when you do find developers they stick around for much longer and tend to be much better01:44
mithroandrei: you might think that - but tpcl scares a lot of developers01:44
mithroand that is a VERY cut back version of scheme01:44
andreimithro, Heh, I think people just fear the brackets :P01:45
mithroI personally can't read scheme without bracket highlighting01:45
andreimithro, Also. People that are very much into AI generally like scheme or related languages, which means you're more likely to find good AI people01:46
andreimithro, Heh, I dim the brackets so you almost can't see them01:46
andreimithro, You're not supposed to read brackets; you're supposed to read indentation01:46
mithroandrei: oh, why doesn't it use indentation then?01:46
andreimithro, A lot of clean scheme code uses it. The reason why it's not enforced is because not everyone likes it (why force it upon people?) and because in scheme data is code01:47
mithroandrei: because I have to read peoples code who don't use indentation properly01:47
andreimithro, Ah, they just suck :)01:48
mithroandrei: and it means that the same data is encoded in two ways01:48
mithroduplication is the realm of suck01:48
andreimithro, Not in two days. Information is encoded in the brackets. The indentation just makes the code look cleaner01:48
andreimithro, erm ways01:48
andreimithro, It means that any piece of code is also a piece of data and vice versa (which is way too hard to do with identation)01:49
andrei(well too ugly at any rate)01:49
mithroandrei: you seem to be missing my point - the indentation is the bracket information encoding in a form which is easier for humans to understand01:49
andreimithro, Nopes, they're actually two separate things01:49
andreimithro, brackets talk about function application (or well, lists) and indentation lets you lay that out however you want01:50
andreimithro, Brackets in scheme aren't the same thing as brackets in something like C. They're actually semantically meaningful.01:51
andreiAnd anyway, if you really want identation sensitive scheme you can use SRFI 4901:55
Ohmthe thing I really longed back to when moving from CL to ADA was the ease of which I could write pretty generic testing software, pass it a function, some arguments and the expected result02:00
Ohmthat's all pretty easy to do in python aswell, except for the expected result part02:00
andreiHeh, that's one of my favourite things about Haskell02:00
Ohmand it sort of falls flat on it's stomach when you start needing side-effects and such02:01
Ohmbut it's so lovely to just go, "I expect (hello 'a) to return '(hi2u)"02:01
Ohmor (expect #'car 'a 'b '(a b))02:02
andreiHeh, the advantage of strong type system is that with almost no work (usually none on my part) it can create arbitrary instances of types02:03
Ohmand then you can just wrap that up in mapcars and have yourself a magic test suite to which you can add tests so so easily02:03
andreiSo you can do things like write properties that you want your code to have and have them tested out02:03
OhmI'm not sure I follow you 100%. Could you give an example?02:04
andreiHere's a trivial one that's considered the standard02:05
andreiquickCheck ((\s -> (reverse.reverse) s == s) :: [Char] -> Bool)02:05
andrei(the type annotations are just because in this toy example there are no constraints on the type so it can't find arbitrary instances)02:05
OhmSo here you're testing that a character reversed is equal to itself?02:06
OhmAnd that you take a char and return a boolean?02:06
andreiIt generates arbitrary strings and tests to see if reversing a string twice makes it equal to the original string02:06
OhmYeah, I can see how this is useful02:07
andreiHaskell is statically typed; the type checker will make sure at compile time that there aren't any violations02:07
andreiIt's awesome. It's really easy to write something that generates graphs or trees and then test out interesting properties of your code02:08
OhmI have a hard time finding places where you have good reason (considering nice style, clarity, maintainability) to have unstatic types02:08
Ohmit's mostly ugly hacks that'll break as soon as you change representation in the wrong way02:09
mithroI swing back and forth about the strong typing02:09
andreiI hate explicit typing; I really like static typing though (type classes are amazingly useful)02:09
OhmNow I don't claim to have much experience, rather the opposite, but I just can't imagine a good enough place to want it to warrant weak typing02:10
OhmIn an educational setting, though, I think it's definitely good that programmers get to make mistakes like the ones you can make in CL02:11
Ohm(not separating representation from abstract functions, etc)02:11
Ohmmaking mistakes is an ironically painful way to learn things02:11
mithroI like duck typing02:12
OhmWhat's the difference between explicit/strong/static typing?02:12
mithrothe problem is that there is no good way to specify what type of duck you need02:12
andreiOhm, There are 3 different things involved; static/dynamic weak/strong explicit/implicit02:13
Ohmandrei: I understand that, yes. I'll just go check it on wikipedia02:14
tpbTitle: Type system - Wikipedia, the free encyclopedia (at
Ohmnice, it was all in one article02:15
andreiOhm, It's fairly simple static means that they're checked at compile time instead of runtime. weak vs strong means that things won't automatically get reinterpreted behind your back02:15
andreimithro, Heh; I find duck typing creates really poor designs02:16
mithroI like being able to monkey patch things too02:16
OhmYES, after 1600 rows I find what I want in some unknown C-style code02:16
OhmI want to make the scale-plugin for compiz react to hjkl like right,down,up,left02:17
Ohmandrei: ah, ok02:17
OhmI always found myself setting VS to do static+strong typing when writing C#/VB.net02:18
andreimithro, Yeah; you definitely lose a lot of your ability to just hack at code when switching to a language like haskell (though interestingly enough after a while you learn how to write really hack-ish code again; which is fun)02:18
andreiOhm, Type inference makes static+strong typing a lot more interesting (I had no idea C# should be weakly typed)02:19
mithrobeing able to monkey patch is sooo useful when using other peoples libraries02:19
* Ohm checked monkey patch on wikipedia02:21
Ohmthat is crazy02:21
mithroOhm: it's great, it allows you to "hotfix" other peoples mistakes02:22
mithroI use it with wxPython to fix a bunch of "Features"02:22
Ohmalso checked the linked article duck typing02:22
Ohmduck typing seems extremely powerful02:23
OhmI do not understand why it's not used everywhere.02:23
OhmCan't see it impacting efficiency much02:23
OhmWhat it would do is make people create their classes with all of their methods/function/operations public02:24
Ohmthat'd be shitty if you want blackboxing02:24
mithroOhm: duck typing has nothing to do with public/private/etc02:25
Ohmbut then again, blackboxing may not be necessary. A class library would act more like a black box within which you could "take a static shot"02:25
Ohm"I sure hope it implements '+', nope it didn't :("02:25
Ohmmithro: Sure it does, if you consider operands to be functions02:26
mithroOhm: so?02:26
mithroIf you give me something which doesn't impliment + and I need + then you are an idiot02:27
OhmSay you're an author of a class library, you want your interface to be neat so you hide as many functions as possible02:27
Ohmnow say you, who get a binary of my library, want to do something that'd add functionality to my library02:28
Ohmor rather you'd just want to use my type in a way I didn't expect it to02:28
Ohmnow, if we don't have duck typing, you could only call the public functions02:29
Ohmactually no02:30
OhmI was thinking your code could use all of my private functions to do whatever you needed, and that the duck typing would allow this to be done in a not-so-messy way02:30
mithroduck typing is a "if it looks like a duck, then it is a duck"02:30
Ohmbut considering it more closely, it'd just remove blackboxing and be stupid02:31
Ohmmithro: yes, yes, I understand and love the concept02:31
mithroit has nothing to do with public/private02:31
Ohmbut you must forgive my misventure into language design thoughts02:31
OhmIt is 7:36 am and I haven't gone to sleep yet.02:31
mithroOhm: sounds like bed time02:31
Ohmmithro: Surely it would have some impact on what developers choose to make public/private02:32
mithroOhm: not at all02:32
Ohmfor example, an internal cons-procedure in a binary tree class or something02:32
Ohmbut then again not02:32
OhmAs I said, it was an erronous thought02:32
OhmOh well, I'll be heading to bed now02:42
Ohmnice talking to ya02:42
mithroandrei: you still about?02:42
*** andrei has quit IRC02:46
mithroguess not :/02:46
mithroanyway I'm off home02:46
mithrowill be back in a couple of hours02:46
*** andrei has joined #tp02:48
andreimithro, I am02:48
andreimithro, Only for a few minutes though02:48
andreiI'm off to bed02:57
*** mithro has quit IRC03:06
*** llnz has joined #tp04:44
JLPgood morning all04:49
llnzhi JLP05:11
*** jmtan has quit IRC05:21
*** mithro has joined #tp07:04
llnzhi mithro07:04
mithroJLP: ping?07:07
JLPmithro: pong07:07
mithrodoes the patch I push fix the search problem for you?07:08
mithroopps, looks like I didn't push it07:08
CIA-13llnz tpserver-cpp * r1d59b14c7673 /modules/persistence/mysql/mysqlpersistence.cpp:07:21
CIA-13Implemented save/retrieve ObjectView in tpmysql module.07:21
CIA-13Still need to redo Object persistence and use the *View persistence.07:21
*** remaxim has joined #tp07:36
remaximhey mithro07:36
* llnz wanders off08:02
llnzlater all08:02
*** llnz has quit IRC08:02
mithroremaxim: I still have not had time to use that computer08:15
remaximmithro, please just do it! that doesn't take too much time and I don't want hang around in this channel all the time just to know if those files are finally deleted08:18
mithroremaxim: why are you so paranoid?08:18
remaximI dunno... I just am08:18
remaximis that pc your private pc?08:18
mithroit's my Gaming Box08:19
remaximOK! oh ok! than it's not that important anyway! if you see it just delete it08:20
remaximmithro, I am also here to say goodbye08:20
remaximI ll stop working on stuff ...08:20
CIA-13mithro tpclient-pywx-orderxrc * r408b24c9157d /windows/ (main/ xrc/panelSystem.xrc): Possibly solve the search box hiding issue.08:22
CIA-13mithro tpclient-pywx-orderxrc * r1e694e32b8a7 /windows/ (3 files in 2 dirs): Make the ResourceSelection pop-up work better on Linux.08:22
mithroremaxim: well I'm sad to hear that you are leaving08:23
remaximthat's no big surprise, is it? ;)08:24
mithroI personally think there is still a lot you could learn - but each to their own08:27
andreimithro, Hi; you poked last night?08:28
mithroandrei: oh I wanted to point out a couple of things08:29
mithroandrei: GSoC is considered a full time job - a masters/PhD can interfer with it08:29
andreimithro, I'm taking the summer off :)08:29
mithroandrei: oh okay08:30
mithroandrei: there is no reason you can't work on Thousand Parsec outside GSoC :)08:30
remaximmithro, I will learn a lot! I ll just concentrate on "real" music as making music for games is just too time consuming and stressful08:31
andreimithro, Heh, I plan to keep working for whatever SoC project I get :) I only get so much free time (and even less before summer), I don't have time for multiple projects08:33
mithroandrei: what else are you applying for?08:35
CIA-13mithro tpclient-pywx-stable * r5579062912ee /windows/main/ Reduce a little of the flicker.08:35
remaximOK, mithro ...08:36
remaximhave a nice day, bye ... and good luck with your project08:37
mithroJLP: ping?08:37
mithroJLafont: can you check the r408b24c9157d patch08:37
andreimithro, LLVM (improving their C compiler (I already had a job writing frontends for C compilers) or porting bigloo), minix for writing ndiswrapper or a tcp/ip stack08:37
andrei(I want to do the USB stack instead.. but I also want to live..)08:38
mithroandrei: well it sounds like you are likely to get one of them?08:38
andreiAny other low level or compiler thing that I can get (there aren't many other AI ones)08:38
remaximno wonder you can't get any artists stuck to your project ... bye08:39
*** remaxim has left #tp08:39
andreimithro, I'd rather have this one since it's AI :)08:39
mithros/ JLafont / JLP08:39
JLPmithro: let's update the code and see08:40
mithroI moved the orderxrc branch back to stable in prep for the release08:40
JLPmithro: looks like it works just fine now :)08:42
mithroI managed to reproduce it at work today08:43
andreimithro, The advantage to getting this for SoC is that after SoC I'll have more time to hack on this than on other things08:43
mithrolast year we only had a very limited number of slots hand 20 or so very good applications (about 50 in total)08:43
mithroso a bunch ended up getting GSoC slots in other projects08:45
andreiThat's why I asked if AI is a priority :)08:45
mithroandrei: it is pretty high08:48
andreiSo I was hoping to get in (it seems to be the most interesting project; and I've been meaning to do something like this for a while, just haven't found the time to get started)08:49
andreimithro, I've always been saddened that game AIs aren't using any techniques developed in the last 20 years :)08:51
mithroandrei: I don't care how it works, just that it does :)08:55
andreimithro, Heh, agreed. They don't really work too well in most games08:56
andreimithro, And you can't use them for really cool things like developing new rules and trying them out (or balancing the game) because they're too brittle08:56
mithroandrei: I also can't stress enough that by the end of GSoC you need to have something which actually plays08:57
mithroand you need to convince us you are able to do that08:57
andreimithro, Yup. I wasn't expecting on writing something that can't play :)08:58
andreimithro, Newer techniques do not mean it's more complicated08:58
andreimithro, or more difficult to write08:58
mithroandrei: well you need to convince us of that :)09:07
andreiSure; I don't plan on doing anything that hasn't been shown to work in the literature09:08
mithroandrei: I would highly recommend some type of (very simple) prototype with your application09:13
mithrosomething to show that it's not all just talk :)09:14
andreiI can talk about the design in more detail. A prototype that actually does something? I unfortunately can't invest multiple full days of work on this right now09:15
andrei(I have research, exams, and other SoC applications to write)09:16
*** bddebian has joined #tp09:52
JLPbddebian: ahoy10:13
bddebianHi JLP10:13
*** andrei has quit IRC10:18
*** andrei has joined #tp11:16
*** mithro has quit IRC11:30
* JLP leaves work and heads home11:33
ezodit appears someone beat me to it with the gentoo overlay11:52
ezodgood, i'm getting swamped with work right now anyway :)11:52
*** andrei has quit IRC11:58
*** andrei has joined #tp12:05
*** andrei has quit IRC12:26
*** Erroneous has joined #tp13:02
*** JLafont has quit IRC14:06
*** Erroneous has quit IRC14:12
*** Erroneous has joined #tp14:20
*** andrei_ has joined #tp14:40
*** JLafont has joined #tp17:11
*** bddebian has quit IRC17:41
*** llnz has joined #tp17:45
*** Erroneous has quit IRC17:56
*** Erroneous has joined #tp17:57
*** xdotx has joined #tp18:17
CIA-13xdotx tpserver-cpp * r14793b6c8184 /modules/games/rfts/ (colonise.cpp fleet.cpp):18:20
CIA-13colonise prevented when fleet is in different star sys from planet18:20
CIA-13Signed-off-by: tyler <[email protected](none)>18:20
xdotxme: 1; git: ... 2.... :/18:21
xdotxllnz: hmm. Order::getType() returns int, but it's impl is uint32, and i think other uses are uint32s (eg OrderManager)18:30
llnzOrder::getType can return -1 as invalid, iirc18:36
llnzbut i'll have a look18:36
*** andrei_ has quit IRC18:41
xdotxllnz: i'd be happy to go ahead and change it :)19:13
* xdotx it hunting down signed vs unsigned compares19:14
xdotxi grepped around and didn't find any uses. it's set and stored as a uint32_t19:15
xdotxhmm, initializes to 019:15
CIA-13llnz tpserver-cpp * ra01c587f3715 /tpserver/ (order.cpp order.h):19:22
CIA-13Order::getType() now returns uint32_t.19:22
CIA-13Thanks xdots, there was no good reason to keep it signed.19:22
CIA-13fr33.em4il tpserver-cpp * re51aa4dac154 /tpserver/ (net.cpp playerconnection.cpp): fixing pedantic signed/unsigned compares against time(NULL)19:29
CIA-13fr33.em4il tpserver-cpp * r6a9b2fa23d66 /tpserver/ (order.cpp order.h): Merge branch 'master' of git://
CIA-13fr33.em4il tpserver-cpp * rcfc416224cf9 /tpserver/ (order.cpp order.h): Order::setType switched to uint32_t ;)19:29
xdotxllnz:  :)19:29
*** Erroneous has quit IRC20:49
*** bddebian has joined #tp21:16
llnzhi bddebian21:24
bddebianHello llnz21:24
*** xdotx has quit IRC21:33
* llnz wishes he didn't have to fix tpmysql, and could just release tpserver-cpp 0.5.0 and start on the things that need fixing21:36
* JLP can't sleep because of a nasty toothache :(22:12
* llnz hacks on libtpproto-cpp until he decides what to do with tpserver-cpp22:15
CIA-13llnz libtpproto-cpp * rc592fe71c63c /tpproto/ (vector3d.cpp vector3d.h): Replaces long long with int64_t in Vector3d.22:17
*** andrei has joined #tp22:20
*** mithro has joined #tp22:21
CIA-13llnz libtpproto-cpp * rda29fa13feb1 /tpproto/ (4 files): Removed last usage of long long.22:21
llnzhi andrei, mithro22:21
andreillnz, Hello22:21
mithromorning people22:22
andreimithro, Out of curiosity; where are you located? (you seem to be somewhere on the opposite side of the globe; I vote australia)22:23
mithroandrei: Adelaide, Australia22:23
andreiAh, almost exactly opposite me :)22:24
mithro~seen xdotx22:29
tpbmithro: xdotx was last seen in #tp 3 hours and 28 seconds ago: <xdotx> llnz:  :)22:29
mithrodamn, missed him22:29
mithrogreywhind: ping?22:42
greywhindmithro: pong22:42
andreiIs this ok for the th overlay:22:43
tpbTitle: Thousand Parsec : News (at
andrei      An overlay for Thousand Prasec, A22:43
andrei      series of games and framework in the 4 X (explore, expand, exploit,22:43
andrei      exterminate) style.22:43
tpbTitle: Thousand Parsec : News (at
andreiI intentionally put games before framework22:43
greywhindErr... might want to change that to "Parsec"22:43
andreierm, yes; you're right :)22:43
greywhindmithro: afk for a minute or two22:43
JLPhehe, prasec in slovenian means something like bastard22:44
andreiAwesome, maybe I should keep that in then :p22:44
JLPandrei: and i think 4X is usually written together22:45
andreiJLP, I thought so too, but it's not done that way on the tp website :P22:45
JLPandrei: looks like we'll have to fix this22:46
andreiJLP, I'm not going to submit this to sunrise for now. That's a whole huge pain, I can do that sometime over summer. (although I did have commit access to the gentoo repos once upon a time so it should be much smoother than usual)22:46
greywhindmithro: ok, back.22:47
andreiJLP, I'll just get it added to layman where it is22:47
JLPMaybe the second sentence coulf be: A series of games and a framework for turn-based 4X (...) strategy games.22:48
andrei      An overlay for Thousand Parsec, A22:49
tpbTitle: Thousand Parsec : News (at
andrei      series of games and framework for turn-based 4X (explore,22:49
andrei      expand, exploit, exterminate) strategy.22:49
andreiAlso, might I suggest that on the above page you play up the fact that there are games and down the fact that it's a framework22:51
andreiMost people will only care about the games not anything else22:51
JLPandrei: yup i know that, when i mention TP to someone i try to point out games more then framework, exactly for this reason22:53
JLPandrei: but it would definitely help if first we had some more complex and interesting rulesets22:56
andreiJLP, Ah, ok. Just the about page is.. difficult. I would have given up before getting to play the game22:56
andreiJLP, Heh, hopefully the AI will help with making more interesting rulesets22:56
tpbTitle: NewLayout - Thousand Parsec Wiki (at
JLPandrei: you can put suggestions for redesign here ^22:57
JLPandrei: including comments for a clearer and more attractive About TP message and easier to navigate site22:58
andreiJLP, Heh, okies. It's been a while since I've designed a website22:59
mithrogreywhind: did you get a chance to look at the patch pushed?22:59
andreiJLP, I designed this one (it's mostly the same as when I did it: in grade 11 or 1222:59
tpbTitle: FlightGear Flight Simulator (at
andreiJLP, Though they uglified the gallery (and added the horrible counter..)23:00
CIA-13llnz libtpproto-cpp * ra1be2cb8bb0a /tpproto/ (framebuilder.cpp framefactory.cpp framefactory.h): Added TP04 frames to FrameFactory and FrameBuilder23:00
JLPandrei: nice, i think mostly the problem is that noone here has the time to seriously start working on the website23:02
greywhindmithro: not yet. i'll look at it tonight. got your e-mail, though.23:03
mithrogreywhind: okay cool23:03
andreiJLP, A lot of places like that just go for a nice looking wiki instead of a website23:03
mithrogreywhind: do take it as anything negative, just ways to improve23:03
andreiJLP, It's low maintainance and looks nice23:03
greywhindmithro: yeah - I appreciate it. can't learn without being told what to fix.23:03
mithroandrei: I hate wiki's23:04
mithroandrei: they are always a jumble and horrible hard to edit23:04
mithrotheir syntax is always confusing23:04
mithroand you don't get proper revision control or merging23:04
mithro(or branching)23:04
andreimithro, They don't have to be more complicated than the website that's being proposed. They're just easier to edit.23:04
mithrohence why we hope to move to ikiwiki - the only sane wiki I found23:04
andreimithro, True, but you only need proper revision control if you have time to bother with the website all the time23:05
mithroandrei: no, proper revision control is even more important when you only have 10 minutes every now and then23:05
mithroas you can get halfway through some and save your changes23:06
andreimithro, The idea of the wiki is not to work that way23:06
andreimithro, Make tiny incremental changes; you don't have to save them23:06
mithroandrei: but sometimes you want to make something more then an incremental change - and that never happens in a wiki unless you have inordinate amounts of time23:06
mithroand people have to deal with your WIP in the mean time23:07
mithros/people/users who don't care/23:07
andreimithro, I've worked for places that used wikis to organiz their entire internal documentation. Worked out really well23:07
andreierm organize23:07
mithroI've worked for places that used wikis to organize their entire internal documentation and it works terribly23:08
* JLP posted GSoC news to, wondering if any student sill uses usenet23:08
* JLafont once spent 3 hours adding around 3-4 pages to a wiki and making basic outlines in them.23:08
* JLafont stopped because he rather likes being sane23:08
llnzJLP: should be available via google groups23:08
mithroandrei: ikiwiki gives all quick access to updating things via the web, while having the full power of a git repository as a backend23:09
mithroandrei: oh and most wiki's are a bit to mirror23:10
mithrogreywhind: I have to admit i've been a little slack giving you feedback - Please poke me if you want my thoughts on various patches and stuff23:10
JLPllnz: oh nice, so they brought usenet closer to the modern man :)23:10
llnzyes, most of the non-binary usenet groups are on google groups23:11
mithrogreywhind: oh I also moved orderxrc back to stable23:11
greywhindmithro: no, it's fine. I usually ask for functionality feedback... but it was nice of you to make that list of style changes, since it wasn't something I'd really thought to ask about.23:12
andreimithro, mediawiki just lets you download the whole thing23:12
mithroandrei: and you need to setup a sql database and the mediawiki framework then figure out how to import it23:12
andreimithro, Getting a mediawiki installation up and running is really easy; more importantly it also lets you fetch the html versions of pages23:14
mithroandrei: HTML version loose all the history23:14
andreimithro, Yup, so you get to pick. You want the wiki with the history or just something to view23:15
mithroandrei: with ikiwiki we don't have to pick, you just checkout the git repository and you get everything with complete history23:17
CIA-13llnz libtpproto-cpp * r8a7be59381ad /tpproto/ (failframe.cpp failframe.h): Added references to TP04 fail frames.23:18
mithrollnz: don't you have a tpserver-cpp release to be working on? :)23:20
llnz[15:19] * llnz hacks on libtpproto-cpp until he decides what to do with tpserver-cpp23:21
llnzsee tp-devel post23:21
mithromy 2 minute thoughts are - tpserver-cpp isn't stable enough to be released without some sort of backend persistence23:22
mithroand getting 90% of the way through a game and then having to start again would be incredible frustrating23:26
mithrogreywhind: so I'm thinking of trying to do the 0.3.1 release today23:26
llnzwhen was the last time the server crashed? (other than demo2 running mtsec)23:27
greywhindmithro: well, i'd like to fix the size bug before then... do you have any idea what might be the problem?23:27
mithrogreywhind: size bug?23:30
greywhindmithro: with the resource selection popup?23:30
mithrollnz: I've had rfts crash a few times23:30
mithrogreywhind: oh, I fixed that23:31
tpb<> (at
greywhindmithro: oh, ok. thanks! do you know of any other bugs you'd like me to fix before the release?23:31
* llnz remembers another reason why he wants the rulesets out of the tpserver-cpp release23:31
mithrollnz: minisec is pretty stable (but I've found a number of places where is could crash given the correct circumstances)23:31
mithrogreywhind: if you could review the above patch and then see if Mac packaging works23:32
greywhindmithro: ok23:32
llnzmithro: this release isn't 100%, it's never going to be 100%, i really need to get some core things changed and I'd rather have the first release in a year than keep waiting even longer23:32
mithrollnz: well, my theory is that a crash doesn't matter if you don't loose any data23:33
mithrohence persistence makes a lot of tpserver-cpp crashes forgivable23:33
mithrollnz: actually, I just had an idea - give me half an hour to investigate it23:35
*** Landon has joined #tp23:58
JLPLandon: ahoy23:58
*** AMathews has joined #tp23:59
*** AMathews has left #tp23:59
*** {HelloWorld} has joined #tp23:59

Generated by 2.13.1 by Marius Gedminas - find it at!