*** tpb has joined #tp | 00:00 | |
*** ChanServ sets mode: +o tpb | 00:00 | |
llnz | bbl | 00:03 |
---|---|---|
*** JLafont has joined #tp | 00:03 | |
*** llnz has quit IRC | 00:03 | |
JLafont | 5 days until Freeeeeeedddooooommmm! | 00:19 |
*** bddebian has quit IRC | 00:29 | |
mithro | andrei: ping? | 00:32 |
andrei | mithro, pong | 00:36 |
mithro | andrei: darcs!? | 00:36 |
andrei | mithro, darcs :) | 00:36 |
andrei | mithro, It's way nicer than git | 00:37 |
mithro | darcs is the devil, we switched to git from darcs | 00:37 |
andrei | mithro, Speed issues? | 00:37 |
mithro | andrei: the fact that you couldn't checkout our repositories without 4gb of ram | 00:37 |
mithro | and the continual repository corruption | 00:37 |
andrei | mithro, Heh; I haven't had issues with that. I do have speed issues once my codebase reaches a certain point | 00:38 |
andrei | But the new darcs fixes a lot of that | 00:38 |
andrei | In reality.. I just love the patchset thing :) | 00:39 |
mithro | darcs is a classic example of what happens when you let academics write software | 00:40 |
andrei | Heh, actually; many of the problems were due to Haskell issues | 00:41 |
andrei | It has a nasty way of springing space leaks on you | 00:41 |
andrei | The last few ones are due to the algorithm itself though (some fun exponential time corner cases) | 00:41 |
andrei | mithro, I wanted to ask a bit more about the whole scheme thing | 00:43 |
mithro | andrei: I've read the logs :) | 00:44 |
andrei | mithro, I really think the AI would be much simpler and easier to understand/maintain if it were in scheme | 00:44 |
andrei | Ah | 00:44 |
andrei | :) | 00:44 |
andrei | Would 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 |
mithro | andrei: who cares if your algorithm is always correct if it takes till the end of the universe to complete :) | 00:44 |
andrei | mithro, Or.. if you have other suggestions of what I can do to make a scheme version more appealing; I'm game :) | 00:47 |
mithro | andrei: implement a libtpproto-scheme before GSoC starts | 00:48 |
mithro | if you don't use Python of C++ you will need to do a lot of infrastructure work | 00:48 |
mithro | s/of/or | 00:48 |
andrei | mithro, *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 |
andrei | And if I don't get it done in that timeframe I'll write the AI in C++ | 00:50 |
andrei | Also.. I wouldn't write a client for scheme, I'd write bindings to the C++ client | 00:51 |
mithro | andrei: 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 one | 00:52 |
mithro | for a number of reasons | 00:52 |
mithro | 1. The protocol and client libraries are already supported and maintained | 00:52 |
mithro | 2. The AI would run on Windows, Mac and Linux | 00:52 |
mithro | 3. It's more likely to be maintainable in the future by others | 00:53 |
mithro | 4. I just like python better :) | 00:53 |
andrei | Heh, ok. Do you feel the same way about C++? | 00:53 |
andrei | I unfortunately can't do it in python | 00:54 |
andrei | I know python decently well; SoC doesn't pay enough for me to write code that language | 00:54 |
andrei | (nothing does; I'd rather take a Java job than a python one) | 00:55 |
andrei | I'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 |
mithro | why do you hate python? | 00:58 |
andrei | I 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 defined | 00:58 |
mithro | I'm neutral to C++, I would prefer Python for point 1 and 2 again | 00:59 |
mithro | andrei: well, you just don't realise that C++ has all that mess to - it's just pretends to be the other way :) | 00:59 |
andrei | It 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 |
mithro | void* in the hall! | 01:00 |
andrei | mithro, 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 code | 01:01 |
mithro | andrei: well, then you have obviously never seen real C++ code :) - trying to reason about tpserver-cpp is pretty futal experiance | 01:01 |
andrei | And 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 reason | 01:01 |
andrei | mithro, 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 |
mithro | andrei: so you end up with something like darcs then? | 01:03 |
andrei | mithro, Darcs is something else entirely. They're using a new theory of patches with some really complicated algorithms. | 01:04 |
mithro | but it's all suppose to be provable | 01:04 |
mithro | hence it shouldn't have any bugs! | 01:04 |
andrei | mithro, 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 |
andrei | mithro, They use the word proof very loosly :) | 01:05 |
mithro | andrei: I'm not an academic, I perfer things which actually function then are mathmatically provable | 01:06 |
andrei | mithro, provable means that they function correctly | 01:06 |
mithro | andrei: no it doesn't it means they function how they where programmed to | 01:07 |
andrei | mithro, Nopes, because you prove that your algorithm is correct | 01:07 |
andrei | mithro, 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 xmonad | 01:08 |
mithro | andrei: okay, prove me the "algorithm" for a user interacting with a starmap is correct | 01:08 |
andrei | mithro, Err, you have to define exactly what interacting means and which bit you want to prove; and exactly what you mean by correct | 01:08 |
mithro | andrei: correct == functions as the user expects, interacting == doing the things a user wants | 01:09 |
andrei | mithro, You have to be much more specific :) | 01:09 |
mithro | IE the real world :) | 01:09 |
andrei | mithro, 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 |
mithro | andrei: not exactly - if you where tied in all details the Python one would win no question | 01:10 |
andrei | mithro, Ah, okies | 01:10 |
mithro | andrei: as well, I'm not the only mentor - the others also have a say | 01:11 |
mithro | llnz and JLP like C++ | 01:11 |
mithro | andrei: the criteria looks something like this | 01:12 |
mithro | 1. 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 completing | 01:13 |
mithro | 2. Is the student actively involved with the project, do we think they would be likely to stay around once the money has gone | 01:13 |
greywhind | mithro: 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 |
mithro | greywhind: you must do that after layout I think? | 01:14 |
greywhind | mithro: actually, I do seem to be doing it after layout, so that's not it | 01:14 |
andrei | mithro, (I feared for a bit that you would say that any python proposal would beat a C++ one :P) | 01:14 |
mithro | 3. How useful is the proposal to our goals, both short term and long term | 01:14 |
mithro | all things being equal a python proposal would probably win - but things are never totally equal in the real world | 01:16 |
andrei | Okies, that's all fairly standard | 01:17 |
mithro | mainly because Python code is more useful to us at the moment | 01:17 |
mithro | (in terms of client related stuff) | 01:18 |
andrei | mithro, 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 |
andrei | mithro, 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 |
mithro | andrei: Thousand Parsec has been around since 2001 and still has both it's original members | 01:20 |
andrei | mithro, Heh, nice. I'm surprised I hadn't heard of it before. 4 X games are my favourite | 01:22 |
Ohm | I also hadn't heard of TP before GSoC this year | 01:22 |
Ohm | now I am thrilled | 01:22 |
mithro | we need to do better advertising | 01:22 |
mithro | any 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 |
mithro | we are on wikipedia | 01:23 |
andrei | mithro, slashdot | 01:23 |
Ohm | Oh, by the way, I aced my finals in imperative programming | 01:23 |
mithro | andrei: a Python AI could also be easily packaged together with the python client and the python server to create a "single player" mode | 01:23 |
greywhind | mithro: Digg and Slashdot seem like good places to start. | 01:24 |
greywhind | we should announce releases there | 01:24 |
Ohm | mithro: Not sure, I can't think of any good channel to get me through | 01:24 |
Ohm | I'd say you have a larger amount of potential contributors on slashdot than on digg | 01:24 |
andrei | mithro, As could the scheme one :) | 01:24 |
mithro | I wish we could get on Digg | 01:24 |
andrei | mithro, I'm fine with providing bindings to the AI in both C and python | 01:24 |
mithro | andrei: oh? How would you support windows and Mac? | 01:24 |
Ohm | not that either of them are great | 01:24 |
andrei | mithro, I could use a version of scheme that works on all 3 platforms | 01:24 |
mithro | greywhind: we tried to get on both slashdot and digg with the 0.3.0 release, no success | 01:24 |
greywhind | mithro: hmm... :( | 01:25 |
mithro | andrei: one which can be easily packaged into a stand alone binary? | 01:25 |
andrei | mithro, Sure; I'll take care of writing a script to pacage it up | 01:25 |
andrei | erm package | 01:25 |
Ohm | I think you would have more success if you could announce yourself as a "killer app" game for linux | 01:25 |
Ohm | that'd require a cool ruleset | 01:25 |
greywhind | true | 01:26 |
andrei | mithro, mzscheme works well on Windows | 01:26 |
andrei | mithro, 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 |
Ohm | how does scheme differ from CL when it comes to macros? | 01:27 |
andrei | Ohm, mainly by making macros hygienic | 01:28 |
andrei | Ohm, But keep in mind that there are a lot of different scheme macro systems | 01:29 |
Ohm | ah ok | 01:29 |
Ohm | Argh, this new keyboard is giving me pains in my right wrist | 01:29 |
andrei | Ohm, I unfortunately don't know CL particularly well so I can't really go into any detail :) | 01:30 |
Ohm | it's alright | 01:30 |
mithro | the slashdot editors obviously hate us, because freeorion has been on slashdot | 01:30 |
Ohm | mithro: I think it's because you're a framework, not a game | 01:31 |
Ohm | not nearly as exiting | 01:31 |
andrei | mithro, Heh, the trick is. Keep submitting | 01:31 |
mithro | andrei: my limited experience is that scheme is not easily portable if you are not doing trivial stuff | 01:31 |
Ohm | *xc | 01:31 |
andrei | mithro, Really? I've never had any issues | 01:32 |
Ohm | What? Scheme seems to be more portable than most languages since it's so small | 01:32 |
andrei | mithro, (the compiler I'm hacking on works on more architectures than I've ever seen. From alphas to mips to arm) | 01:32 |
mithro | try using a hash map or objects | 01:32 |
andrei | mithro, SRFIs take care of those really nicely | 01:32 |
Ohm | mithro: i see | 01:33 |
andrei | mithro, You mean portable between different implementations of scheme or between different architectures? | 01:33 |
mithro | different implementations of scheme | 01:33 |
andrei | mithro, Ah, that's something else entirely. If you keep to the SRFIs and R5RS you'll be portable essentially everywhere | 01:34 |
mithro | anyway | 01:34 |
andrei | mithro, But something like mzscheme works on all major architectures so that's not an issue | 01:34 |
mithro | I don't hate scheme, I just personally don't think it's suitable for anything non-trivial | 01:34 |
mithro | andrei: does mzscheme work on Mac? we couldn't get it to compile last time we tried | 01:34 |
CIA-13 | noegnud tpclient-pywx-orderxrc * rf68e4be374c6 /windows/ (main/overlays/Resource.py xrc/winResourceSelect.xrc): Hopefully fixed some size issues with the Resource Selector popup. | 01:34 |
greywhind | mithro: see if that looks better | 01:35 |
andrei | mithro, Aye. I know people that use mzscheme on mac | 01:35 |
mithro | andrei: I guess you could just use pyscheme and then when schemepy is finished it will be all fast :) | 01:35 |
greywhind | mithro: i'm going to sleep now, so tell me tomorrow. | 01:36 |
andrei | mithro, The maintainers are also really nice about fixing bugs rather quickly | 01:36 |
mithro | greywhind: no luck :/ | 01:37 |
greywhind | mithro: no? | 01:37 |
greywhind | mithro: hmm... this must be something that doesn't appear on Mac. | 01:38 |
greywhind | mithro: oh well. i really have to sleep, so i'll try to fix it tomorrow. | 01:39 |
andrei | mithro, You should tell me if you have other issues with scheme. Perhaps I can help :) | 01:40 |
andrei | mithro, Also, I don't meant to come off as pushy | 01:40 |
andrei | mithro, I'll gladly write it in C++ instead | 01:40 |
andrei | mithro, 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 |
mithro | greywhind: okay | 01:41 |
Ohm | hooray, a person who has seen (and can vouch for) a list-dialect in pragmatic implementation | 01:42 |
mithro | andrei: that is nice, but we need to consider the fact that scheme is a niche language and that we have trouble enough attracting developers anyway | 01:42 |
Ohm | I've been wanting to see that ever since I fell in love with lisp's simple syntax | 01:42 |
andrei | Ohm, Heh, you haven't found interesting scheme projects? | 01:43 |
Ohm | Sadly I agree with mithro, though | 01:43 |
Ohm | andrei: Interesting yes, but everybody seems to frown on it for "important" work | 01:43 |
Ohm | bbiab | 01:43 |
andrei | mithro, 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 better | 01:44 |
mithro | andrei: you might think that - but tpcl scares a lot of developers | 01:44 |
mithro | and that is a VERY cut back version of scheme | 01:44 |
andrei | mithro, Heh, I think people just fear the brackets :P | 01:45 |
mithro | I personally can't read scheme without bracket highlighting | 01:45 |
andrei | mithro, Also. People that are very much into AI generally like scheme or related languages, which means you're more likely to find good AI people | 01:46 |
andrei | mithro, Heh, I dim the brackets so you almost can't see them | 01:46 |
andrei | mithro, You're not supposed to read brackets; you're supposed to read indentation | 01:46 |
mithro | andrei: oh, why doesn't it use indentation then? | 01:46 |
andrei | mithro, 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 code | 01:47 |
mithro | andrei: because I have to read peoples code who don't use indentation properly | 01:47 |
andrei | mithro, Ah, they just suck :) | 01:48 |
mithro | andrei: and it means that the same data is encoded in two ways | 01:48 |
mithro | duplication is the realm of suck | 01:48 |
andrei | mithro, Not in two days. Information is encoded in the brackets. The indentation just makes the code look cleaner | 01:48 |
andrei | mithro, erm ways | 01:48 |
andrei | mithro, 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 |
mithro | andrei: you seem to be missing my point - the indentation is the bracket information encoding in a form which is easier for humans to understand | 01:49 |
andrei | mithro, Nopes, they're actually two separate things | 01:49 |
andrei | mithro, brackets talk about function application (or well, lists) and indentation lets you lay that out however you want | 01:50 |
andrei | mithro, Brackets in scheme aren't the same thing as brackets in something like C. They're actually semantically meaningful. | 01:51 |
andrei | And anyway, if you really want identation sensitive scheme you can use SRFI 49 | 01:55 |
Ohm | the 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 result | 02:00 |
Ohm | that's all pretty easy to do in python aswell, except for the expected result part | 02:00 |
andrei | Heh, that's one of my favourite things about Haskell | 02:00 |
Ohm | and it sort of falls flat on it's stomach when you start needing side-effects and such | 02:01 |
Ohm | but it's so lovely to just go, "I expect (hello 'a) to return '(hi2u)" | 02:01 |
Ohm | or (expect #'car 'a 'b '(a b)) | 02:02 |
andrei | Heh, the advantage of strong type system is that with almost no work (usually none on my part) it can create arbitrary instances of types | 02:03 |
Ohm | and then you can just wrap that up in mapcars and have yourself a magic test suite to which you can add tests so so easily | 02:03 |
andrei | So you can do things like write properties that you want your code to have and have them tested out | 02:03 |
Ohm | I'm not sure I follow you 100%. Could you give an example? | 02:04 |
andrei | Here's a trivial one that's considered the standard | 02:05 |
andrei | quickCheck ((\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 |
Ohm | So here you're testing that a character reversed is equal to itself? | 02:06 |
Ohm | And that you take a char and return a boolean? | 02:06 |
andrei | It generates arbitrary strings and tests to see if reversing a string twice makes it equal to the original string | 02:06 |
Ohm | cool | 02:07 |
Ohm | Yeah, I can see how this is useful | 02:07 |
andrei | Haskell is statically typed; the type checker will make sure at compile time that there aren't any violations | 02:07 |
andrei | It's awesome. It's really easy to write something that generates graphs or trees and then test out interesting properties of your code | 02:08 |
Ohm | I have a hard time finding places where you have good reason (considering nice style, clarity, maintainability) to have unstatic types | 02:08 |
Ohm | it's mostly ugly hacks that'll break as soon as you change representation in the wrong way | 02:09 |
mithro | I swing back and forth about the strong typing | 02:09 |
andrei | I hate explicit typing; I really like static typing though (type classes are amazingly useful) | 02:09 |
Ohm | Now 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 typing | 02:10 |
Ohm | In an educational setting, though, I think it's definitely good that programmers get to make mistakes like the ones you can make in CL | 02:11 |
Ohm | (not separating representation from abstract functions, etc) | 02:11 |
Ohm | making mistakes is an ironically painful way to learn things | 02:11 |
mithro | I like duck typing | 02:12 |
Ohm | What's the difference between explicit/strong/static typing? | 02:12 |
mithro | the problem is that there is no good way to specify what type of duck you need | 02:12 |
andrei | Ohm, There are 3 different things involved; static/dynamic weak/strong explicit/implicit | 02:13 |
Ohm | andrei: I understand that, yes. I'll just go check it on wikipedia | 02:14 |
Ohm | http://en.wikipedia.org/wiki/Type_system | 02:15 |
tpb | Title: Type system - Wikipedia, the free encyclopedia (at en.wikipedia.org) | 02:15 |
Ohm | nice, it was all in one article | 02:15 |
andrei | Ohm, 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 back | 02:15 |
andrei | mithro, Heh; I find duck typing creates really poor designs | 02:16 |
mithro | I like being able to monkey patch things too | 02:16 |
Ohm | YES, after 1600 rows I find what I want in some unknown C-style code | 02:16 |
Ohm | I want to make the scale-plugin for compiz react to hjkl like right,down,up,left | 02:17 |
Ohm | andrei: ah, ok | 02:17 |
Ohm | I always found myself setting VS to do static+strong typing when writing C#/VB.net | 02:18 |
andrei | mithro, 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 |
andrei | Ohm, Type inference makes static+strong typing a lot more interesting (I had no idea C# should be weakly typed) | 02:19 |
mithro | being able to monkey patch is sooo useful when using other peoples libraries | 02:19 |
* Ohm checked monkey patch on wikipedia | 02:21 | |
Ohm | that is crazy | 02:21 |
mithro | Ohm: it's great, it allows you to "hotfix" other peoples mistakes | 02:22 |
mithro | I use it with wxPython to fix a bunch of "Features" | 02:22 |
Ohm | also checked the linked article duck typing | 02:22 |
Ohm | duck typing seems extremely powerful | 02:23 |
Ohm | I do not understand why it's not used everywhere. | 02:23 |
Ohm | Can't see it impacting efficiency much | 02:23 |
Ohm | oh | 02:23 |
Ohm | What it would do is make people create their classes with all of their methods/function/operations public | 02:24 |
Ohm | that'd be shitty if you want blackboxing | 02:24 |
mithro | Ohm: duck typing has nothing to do with public/private/etc | 02:25 |
Ohm | but 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 |
Ohm | mithro: Sure it does, if you consider operands to be functions | 02:26 |
Ohm | s/operands/operators/ | 02:26 |
mithro | Ohm: so? | 02:26 |
mithro | If you give me something which doesn't impliment + and I need + then you are an idiot | 02:27 |
Ohm | Say you're an author of a class library, you want your interface to be neat so you hide as many functions as possible | 02:27 |
Ohm | now say you, who get a binary of my library, want to do something that'd add functionality to my library | 02:28 |
Ohm | or rather you'd just want to use my type in a way I didn't expect it to | 02:28 |
Ohm | now, if we don't have duck typing, you could only call the public functions | 02:29 |
Ohm | actually no | 02:30 |
Ohm | I 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 way | 02:30 |
mithro | duck typing is a "if it looks like a duck, then it is a duck" | 02:30 |
Ohm | but considering it more closely, it'd just remove blackboxing and be stupid | 02:31 |
Ohm | mithro: yes, yes, I understand and love the concept | 02:31 |
mithro | it has nothing to do with public/private | 02:31 |
Ohm | but you must forgive my misventure into language design thoughts | 02:31 |
Ohm | It is 7:36 am and I haven't gone to sleep yet. | 02:31 |
mithro | Ohm: sounds like bed time | 02:31 |
Ohm | mithro: Surely it would have some impact on what developers choose to make public/private | 02:32 |
mithro | Ohm: not at all | 02:32 |
Ohm | for example, an internal cons-procedure in a binary tree class or something | 02:32 |
Ohm | but then again not | 02:32 |
Ohm | As I said, it was an erronous thought | 02:32 |
Ohm | Oh well, I'll be heading to bed now | 02:42 |
Ohm | nice talking to ya | 02:42 |
mithro | gnight | 02:42 |
mithro | andrei: you still about? | 02:42 |
*** andrei has quit IRC | 02:46 | |
mithro | guess not :/ | 02:46 |
mithro | anyway I'm off home | 02:46 |
mithro | will be back in a couple of hours | 02:46 |
*** andrei has joined #tp | 02:48 | |
andrei | mithro, I am | 02:48 |
andrei | mithro, Only for a few minutes though | 02:48 |
andrei | I'm off to bed | 02:57 |
andrei | Night! | 02:57 |
*** mithro has quit IRC | 03:06 | |
*** llnz has joined #tp | 04:44 | |
JLP | good morning all | 04:49 |
llnz | hi JLP | 05:11 |
*** jmtan has quit IRC | 05:21 | |
*** mithro has joined #tp | 07:04 | |
llnz | hi mithro | 07:04 |
mithro | heyo | 07:04 |
mithro | JLP: ping? | 07:07 |
JLP | mithro: pong | 07:07 |
mithro | does the patch I push fix the search problem for you? | 07:08 |
mithro | opps, looks like I didn't push it | 07:08 |
CIA-13 | llnz tpserver-cpp * r1d59b14c7673 /modules/persistence/mysql/mysqlpersistence.cpp: | 07:21 |
CIA-13 | Implemented save/retrieve ObjectView in tpmysql module. | 07:21 |
CIA-13 | Still need to redo Object persistence and use the *View persistence. | 07:21 |
*** remaxim has joined #tp | 07:36 | |
remaxim | hi | 07:36 |
remaxim | hey mithro | 07:36 |
* llnz wanders off | 08:02 | |
llnz | later all | 08:02 |
*** llnz has quit IRC | 08:02 | |
mithro | remaxim: I still have not had time to use that computer | 08:15 |
remaxim | mithro, 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 deleted | 08:18 |
mithro | remaxim: why are you so paranoid? | 08:18 |
remaxim | I dunno... I just am | 08:18 |
remaxim | is that pc your private pc? | 08:18 |
mithro | yes | 08:19 |
mithro | it's my Gaming Box | 08:19 |
remaxim | OK! oh ok! than it's not that important anyway! if you see it just delete it | 08:20 |
remaxim | mithro, I am also here to say goodbye | 08:20 |
remaxim | I ll stop working on stuff ... | 08:20 |
CIA-13 | mithro tpclient-pywx-orderxrc * r408b24c9157d /windows/ (main/panelSystem.py xrc/panelSystem.xrc): Possibly solve the search box hiding issue. | 08:22 |
CIA-13 | mithro tpclient-pywx-orderxrc * r1e694e32b8a7 /windows/ (3 files in 2 dirs): Make the ResourceSelection pop-up work better on Linux. | 08:22 |
mithro | remaxim: well I'm sad to hear that you are leaving | 08:23 |
remaxim | that's no big surprise, is it? ;) | 08:24 |
mithro | I personally think there is still a lot you could learn - but each to their own | 08:27 |
andrei | mithro, Hi; you poked last night? | 08:28 |
mithro | andrei: oh I wanted to point out a couple of things | 08:29 |
mithro | andrei: GSoC is considered a full time job - a masters/PhD can interfer with it | 08:29 |
andrei | mithro, I'm taking the summer off :) | 08:29 |
mithro | andrei: oh okay | 08:30 |
mithro | andrei: there is no reason you can't work on Thousand Parsec outside GSoC :) | 08:30 |
remaxim | mithro, I will learn a lot! I ll just concentrate on "real" music as making music for games is just too time consuming and stressful | 08:31 |
andrei | mithro, 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 projects | 08:33 |
mithro | andrei: what else are you applying for? | 08:35 |
CIA-13 | mithro tpclient-pywx-stable * r5579062912ee /windows/main/panelOrder.py: Reduce a little of the flicker. | 08:35 |
remaxim | OK, mithro ... | 08:36 |
remaxim | have a nice day, bye ... and good luck with your project | 08:37 |
mithro | JLP: ping? | 08:37 |
mithro | JLafont: can you check the r408b24c9157d patch | 08:37 |
andrei | mithro, 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 stack | 08:37 |
andrei | (I want to do the USB stack instead.. but I also want to live..) | 08:38 |
mithro | andrei: well it sounds like you are likely to get one of them? | 08:38 |
andrei | Any other low level or compiler thing that I can get (there aren't many other AI ones) | 08:38 |
remaxim | no wonder you can't get any artists stuck to your project ... bye | 08:39 |
*** remaxim has left #tp | 08:39 | |
andrei | mithro, I'd rather have this one since it's AI :) | 08:39 |
mithro | s/ JLafont / JLP | 08:39 |
JLP | mithro: let's update the code and see | 08:40 |
mithro | I moved the orderxrc branch back to stable in prep for the release | 08:40 |
JLP | mithro: looks like it works just fine now :) | 08:42 |
mithro | yay! | 08:42 |
mithro | I managed to reproduce it at work today | 08:43 |
andrei | mithro, The advantage to getting this for SoC is that after SoC I'll have more time to hack on this than on other things | 08:43 |
mithro | last year we only had a very limited number of slots hand 20 or so very good applications (about 50 in total) | 08:43 |
mithro | s/hand/had/ | 08:44 |
mithro | so a bunch ended up getting GSoC slots in other projects | 08:45 |
andrei | That's why I asked if AI is a priority :) | 08:45 |
mithro | andrei: it is pretty high | 08:48 |
andrei | So 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 |
andrei | mithro, I've always been saddened that game AIs aren't using any techniques developed in the last 20 years :) | 08:51 |
mithro | andrei: I don't care how it works, just that it does :) | 08:55 |
andrei | mithro, Heh, agreed. They don't really work too well in most games | 08:56 |
andrei | mithro, 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 brittle | 08:56 |
mithro | andrei: I also can't stress enough that by the end of GSoC you need to have something which actually plays | 08:57 |
mithro | and you need to convince us you are able to do that | 08:57 |
andrei | mithro, Yup. I wasn't expecting on writing something that can't play :) | 08:58 |
andrei | mithro, Newer techniques do not mean it's more complicated | 08:58 |
andrei | mithro, or more difficult to write | 08:58 |
mithro | andrei: well you need to convince us of that :) | 09:07 |
andrei | Sure; I don't plan on doing anything that hasn't been shown to work in the literature | 09:08 |
mithro | andrei: I would highly recommend some type of (very simple) prototype with your application | 09:13 |
mithro | something to show that it's not all just talk :) | 09:14 |
andrei | I 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 now | 09:15 |
andrei | (I have research, exams, and other SoC applications to write) | 09:16 |
*** bddebian has joined #tp | 09:52 | |
bddebian | Howdy | 09:53 |
JLP | bddebian: ahoy | 10:13 |
bddebian | Hi JLP | 10:13 |
*** andrei has quit IRC | 10:18 | |
*** andrei has joined #tp | 11:16 | |
*** mithro has quit IRC | 11:30 | |
* JLP leaves work and heads home | 11:33 | |
ezod | it appears someone beat me to it with the gentoo overlay | 11:52 |
ezod | good, i'm getting swamped with work right now anyway :) | 11:52 |
*** andrei has quit IRC | 11:58 | |
*** andrei has joined #tp | 12:05 | |
*** andrei has quit IRC | 12:26 | |
*** Erroneous has joined #tp | 13:02 | |
*** JLafont has quit IRC | 14:06 | |
*** Erroneous has quit IRC | 14:12 | |
*** Erroneous has joined #tp | 14:20 | |
*** andrei_ has joined #tp | 14:40 | |
*** JLafont has joined #tp | 17:11 | |
*** bddebian has quit IRC | 17:41 | |
*** llnz has joined #tp | 17:45 | |
*** Erroneous has quit IRC | 17:56 | |
*** Erroneous has joined #tp | 17:57 | |
*** xdotx has joined #tp | 18:17 | |
CIA-13 | xdotx tpserver-cpp * r14793b6c8184 /modules/games/rfts/ (colonise.cpp fleet.cpp): | 18:20 |
CIA-13 | colonise prevented when fleet is in different star sys from planet | 18:20 |
CIA-13 | Signed-off-by: tyler <xdotx@uBeast4-12.(none)> | 18:20 |
xdotx | whee | 18:20 |
xdotx | me: 1; git: ... 2.... :/ | 18:21 |
xdotx | llnz: hmm. Order::getType() returns int, but it's impl is uint32, and i think other uses are uint32s (eg OrderManager) | 18:30 |
llnz | Order::getType can return -1 as invalid, iirc | 18:36 |
llnz | but i'll have a look | 18:36 |
*** andrei_ has quit IRC | 18:41 | |
xdotx | llnz: i'd be happy to go ahead and change it :) | 19:13 |
* xdotx it hunting down signed vs unsigned compares | 19:14 | |
llnz | ahh | 19:14 |
xdotx | i grepped around and didn't find any uses. it's set and stored as a uint32_t | 19:15 |
xdotx | hmm, initializes to 0 | 19:15 |
llnz | :-) | 19:22 |
CIA-13 | llnz tpserver-cpp * ra01c587f3715 /tpserver/ (order.cpp order.h): | 19:22 |
CIA-13 | Order::getType() now returns uint32_t. | 19:22 |
CIA-13 | Thanks xdots, there was no good reason to keep it signed. | 19:22 |
xdotx | whee | 19:23 |
CIA-13 | fr33.em4il tpserver-cpp * re51aa4dac154 /tpserver/ (net.cpp playerconnection.cpp): fixing pedantic signed/unsigned compares against time(NULL) | 19:29 |
CIA-13 | fr33.em4il tpserver-cpp * r6a9b2fa23d66 /tpserver/ (order.cpp order.h): Merge branch 'master' of git://git.thousandparsec.net/git/tpserver-cpp | 19:29 |
CIA-13 | fr33.em4il tpserver-cpp * rcfc416224cf9 /tpserver/ (order.cpp order.h): Order::setType switched to uint32_t ;) | 19:29 |
xdotx | llnz: :) | 19:29 |
*** Erroneous has quit IRC | 20:49 | |
*** bddebian has joined #tp | 21:16 | |
bddebian | Heya | 21:18 |
llnz | hi bddebian | 21:24 |
bddebian | Hello llnz | 21:24 |
*** xdotx has quit IRC | 21: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 fixing | 21: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-cpp | 22:15 | |
CIA-13 | llnz libtpproto-cpp * rc592fe71c63c /tpproto/ (vector3d.cpp vector3d.h): Replaces long long with int64_t in Vector3d. | 22:17 |
*** andrei has joined #tp | 22:20 | |
*** mithro has joined #tp | 22:21 | |
CIA-13 | llnz libtpproto-cpp * rda29fa13feb1 /tpproto/ (4 files): Removed last usage of long long. | 22:21 |
llnz | hi andrei, mithro | 22:21 |
andrei | llnz, Hello | 22:21 |
mithro | morning people | 22:22 |
andrei | mithro, Out of curiosity; where are you located? (you seem to be somewhere on the opposite side of the globe; I vote australia) | 22:23 |
mithro | andrei: Adelaide, Australia | 22:23 |
andrei | Ah, almost exactly opposite me :) | 22:24 |
mithro | ~seen xdotx | 22:29 |
tpb | mithro: xdotx was last seen in #tp 3 hours and 28 seconds ago: <xdotx> llnz: :) | 22:29 |
mithro | damn, missed him | 22:29 |
mithro | greywhind: ping? | 22:42 |
greywhind | mithro: pong | 22:42 |
andrei | Is this ok for the th overlay: | 22:43 |
andrei | http://www.thousandparsec.net/tp/ | 22:43 |
tpb | Title: Thousand Parsec : News (at www.thousandparsec.net) | 22:43 |
andrei | erm | 22:43 |
andrei | An overlay for Thousand Prasec, http://www.thousandparsec.net. A | 22:43 |
andrei | series of games and framework in the 4 X (explore, expand, exploit, | 22:43 |
andrei | exterminate) style. | 22:43 |
tpb | Title: Thousand Parsec : News (at www.thousandparsec.net.) | 22:43 |
andrei | I intentionally put games before framework | 22:43 |
greywhind | Err... might want to change that to "Parsec" | 22:43 |
andrei | erm, yes; you're right :) | 22:43 |
andrei | Thanks | 22:43 |
greywhind | mithro: afk for a minute or two | 22:43 |
JLP | hehe, prasec in slovenian means something like bastard | 22:44 |
andrei | Awesome, maybe I should keep that in then :p | 22:44 |
JLP | andrei: and i think 4X is usually written together | 22:45 |
andrei | JLP, I thought so too, but it's not done that way on the tp website :P | 22:45 |
JLP | andrei: looks like we'll have to fix this | 22:46 |
andrei | JLP, 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 |
greywhind | mithro: ok, back. | 22:47 |
andrei | JLP, I'll just get it added to layman where it is | 22:47 |
JLP | Maybe 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, http://www.thousandparsec.net. A | 22:49 |
tpb | Title: Thousand Parsec : News (at www.thousandparsec.net.) | 22:49 |
andrei | series of games and framework for turn-based 4X (explore, | 22:49 |
andrei | expand, exploit, exterminate) strategy. | 22:49 |
andrei | Also, 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 framework | 22:51 |
andrei | Most people will only care about the games not anything else | 22:51 |
JLP | andrei: yup i know that, when i mention TP to someone i try to point out games more then framework, exactly for this reason | 22:53 |
JLP | andrei: but it would definitely help if first we had some more complex and interesting rulesets | 22:56 |
andrei | JLP, Ah, ok. Just the about page is.. difficult. I would have given up before getting to play the game | 22:56 |
andrei | JLP, Heh, hopefully the AI will help with making more interesting rulesets | 22:56 |
JLP | andrei: http://www.thousandparsec.net/wiki/NewLayout | 22:57 |
tpb | Title: NewLayout - Thousand Parsec Wiki (at www.thousandparsec.net) | 22:57 |
JLP | andrei: you can put suggestions for redesign here ^ | 22:57 |
JLP | andrei: including comments for a clearer and more attractive About TP message and easier to navigate site | 22:58 |
andrei | JLP, Heh, okies. It's been a while since I've designed a website | 22:59 |
mithro | greywhind: did you get a chance to look at the patch pushed? | 22:59 |
andrei | JLP, I designed this one (it's mostly the same as when I did it: http://flightgear.org/) in grade 11 or 12 | 22:59 |
tpb | Title: FlightGear Flight Simulator (at flightgear.org) | 22:59 |
andrei | JLP, Though they uglified the gallery (and added the horrible counter..) | 23:00 |
CIA-13 | llnz libtpproto-cpp * ra1be2cb8bb0a /tpproto/ (framebuilder.cpp framefactory.cpp framefactory.h): Added TP04 frames to FrameFactory and FrameBuilder | 23:00 |
JLP | andrei: nice, i think mostly the problem is that noone here has the time to seriously start working on the website | 23:02 |
greywhind | mithro: not yet. i'll look at it tonight. got your e-mail, though. | 23:03 |
mithro | greywhind: okay cool | 23:03 |
andrei | JLP, A lot of places like that just go for a nice looking wiki instead of a website | 23:03 |
mithro | greywhind: do take it as anything negative, just ways to improve | 23:03 |
andrei | JLP, It's low maintainance and looks nice | 23:03 |
greywhind | mithro: yeah - I appreciate it. can't learn without being told what to fix. | 23:03 |
mithro | andrei: I hate wiki's | 23:04 |
mithro | andrei: they are always a jumble and horrible hard to edit | 23:04 |
mithro | their syntax is always confusing | 23:04 |
mithro | and you don't get proper revision control or merging | 23:04 |
mithro | (or branching) | 23:04 |
andrei | mithro, They don't have to be more complicated than the website that's being proposed. They're just easier to edit. | 23:04 |
mithro | hence why we hope to move to ikiwiki - the only sane wiki I found | 23:04 |
andrei | mithro, True, but you only need proper revision control if you have time to bother with the website all the time | 23:05 |
mithro | andrei: no, proper revision control is even more important when you only have 10 minutes every now and then | 23:05 |
mithro | as you can get halfway through some and save your changes | 23:06 |
andrei | mithro, The idea of the wiki is not to work that way | 23:06 |
andrei | mithro, Make tiny incremental changes; you don't have to save them | 23:06 |
mithro | andrei: 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 time | 23:06 |
mithro | and people have to deal with your WIP in the mean time | 23:07 |
mithro | s/people/users who don't care/ | 23:07 |
andrei | mithro, I've worked for places that used wikis to organiz their entire internal documentation. Worked out really well | 23:07 |
andrei | erm organize | 23:07 |
mithro | I've worked for places that used wikis to organize their entire internal documentation and it works terribly | 23:08 |
* JLP posted GSoC news to rec.games.computer.stars, wondering if any student sill uses usenet | 23:08 | |
mithro | :) | 23: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 sane | 23:08 | |
llnz | JLP: rec.games.computer.stars should be available via google groups | 23:08 |
mithro | andrei: ikiwiki gives all quick access to updating things via the web, while having the full power of a git repository as a backend | 23:09 |
mithro | andrei: oh and most wiki's are a bit to mirror | 23:10 |
mithro | s/bit/bitch/ | 23:10 |
mithro | greywhind: 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 stuff | 23:10 |
JLP | llnz: oh nice, so they brought usenet closer to the modern man :) | 23:10 |
llnz | yes, most of the non-binary usenet groups are on google groups | 23:11 |
mithro | greywhind: oh I also moved orderxrc back to stable | 23:11 |
greywhind | mithro: 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 |
andrei | mithro, mediawiki just lets you download the whole thing | 23:12 |
mithro | andrei: and you need to setup a sql database and the mediawiki framework then figure out how to import it | 23:12 |
andrei | mithro, Getting a mediawiki installation up and running is really easy; more importantly it also lets you fetch the html versions of pages | 23:14 |
mithro | andrei: HTML version loose all the history | 23:14 |
andrei | mithro, Yup, so you get to pick. You want the wiki with the history or just something to view | 23:15 |
mithro | andrei: with ikiwiki we don't have to pick, you just checkout the git repository and you get everything with complete history | 23:17 |
CIA-13 | llnz libtpproto-cpp * r8a7be59381ad /tpproto/ (failframe.cpp failframe.h): Added references to TP04 fail frames. | 23:18 |
mithro | llnz: 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-cpp | 23:21 |
llnz | see tp-devel post | 23:21 |
mithro | my 2 minute thoughts are - tpserver-cpp isn't stable enough to be released without some sort of backend persistence | 23:22 |
mithro | and getting 90% of the way through a game and then having to start again would be incredible frustrating | 23:26 |
mithro | greywhind: so I'm thinking of trying to do the 0.3.1 release today | 23:26 |
llnz | when was the last time the server crashed? (other than demo2 running mtsec) | 23:27 |
greywhind | mithro: well, i'd like to fix the size bug before then... do you have any idea what might be the problem? | 23:27 |
mithro | greywhind: size bug? | 23:30 |
greywhind | mithro: with the resource selection popup? | 23:30 |
mithro | llnz: I've had rfts crash a few times | 23:30 |
mithro | greywhind: oh, I fixed that | 23:31 |
mithro | http://git.thousandparsec.net/gitweb/gitweb.cgi?p=tpclient-pywx.git;a=commit;h=1e694e32b8a77e9b349d99d6883e4933553b2aed | 23:31 |
tpb | <http://ln-s.net/1i5o> (at git.thousandparsec.net) | 23:31 |
greywhind | mithro: 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 release | 23:31 | |
mithro | llnz: minisec is pretty stable (but I've found a number of places where is could crash given the correct circumstances) | 23:31 |
mithro | greywhind: if you could review the above patch and then see if Mac packaging works | 23:32 |
greywhind | mithro: ok | 23:32 |
llnz | mithro: 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 longer | 23:32 |
mithro | llnz: well, my theory is that a crash doesn't matter if you don't loose any data | 23:33 |
mithro | hence persistence makes a lot of tpserver-cpp crashes forgivable | 23:33 |
mithro | llnz: actually, I just had an idea - give me half an hour to investigate it | 23:35 |
*** Landon has joined #tp | 23:58 | |
JLP | Landon: ahoy | 23:58 |
Landon | ahoy! | 23:59 |
*** AMathews has joined #tp | 23:59 | |
*** AMathews has left #tp | 23:59 | |
*** {HelloWorld} has joined #tp | 23:59 |
Generated by irclog2html.py 2.17.2 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!