--- Log opened Wed Jun 16 00:00:36 2010 |
00:26 | | Attilla [Attilla@Nightstar-be160c6f.threembb.co.uk] has quit [[NS] Quit: ] |
00:44 | | Zed_ [Zed@Nightstar-e4835f03.or.comcast.net] has joined #code |
00:47 | | Zed [Zed@Nightstar-e4835f03.or.comcast.net] has quit [Ping timeout: 121 seconds] |
00:51 | | Netsplit *.net <-> *.split quits: Vornicus, Tarinaky, McMartin, PinkFreud |
00:52 | | Chi [omegaboot@Nightstar-c5f3565b.il.comcast.net] has joined #code |
00:52 | | Alek [omegaboot@Nightstar-c5f3565b.il.comcast.net] has quit [Ping timeout: 121 seconds] |
00:52 | | Netsplit over, joins: Vornicus, PinkFreud, McMartin, Tarinaky |
00:52 | | Chi is now known as NSGuest55562 |
00:54 | | Netsplit *.net <-> *.split quits: cpux, EvilDarkLord, Kazriko, Serah, SmithKurosaki, Zed_, simon, Thaqui, @jerith |
00:57 | | ToxicFrog [ToxicFrog@ServerAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds] |
00:57 | | Netsplit *.net <-> *.split quits: Vornicus, Tarinaky, PinkFreud, McMartin |
00:58 | | Syloqs-AFH [Syloq@NetworkAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds] |
00:58 | | NSGuest55562 [omegaboot@Nightstar-c5f3565b.il.comcast.net] has quit [Ping timeout: 121 seconds] |
00:59 | | Derakon[AFK] [Derakon@Nightstar-5213d778.ca.comcast.net] has quit [Ping timeout: 121 seconds] |
00:59 | | Namegduf [namegduf@Nightstar-5c10d129.beshir.org] has quit [Ping timeout: 121 seconds] |
01:00 | | Rhamphoryncus [rhamph@Nightstar-bbc709c4.abhsia.telus.net] has quit [Ping timeout: 121 seconds] |
--- Log closed Wed Jun 16 01:00:24 2010 |
--- Log opened Wed Jun 16 01:03:51 2010 |
01:03 | | TheWatcher [chris@Nightstar-b4529b0c.zen.co.uk] has joined #code |
01:03 | | Irssi: #code: Total of 17 nicks [1 ops, 0 halfops, 0 voices, 16 normal] |
01:04 | | Serah [Z@26ECB6.A4B64C.298B52.D80DA0] has quit [Client closed the connection] |
01:04 | | Irssi: Join to #code was synced in 53 secs |
01:05 | | Serah [Z@26ECB6.A4B64C.298B52.D80DA0] has joined #code |
01:08 | | Alek [omegaboot@Nightstar-c5f3565b.il.comcast.net] has joined #code |
01:08 | | Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has quit [Connection closed] |
01:09 | | Alek is now known as 459AAAA3G |
01:09 | | Alek [omegaboot@Nightstar-c5f3565b.il.comcast.net] has joined #code |
01:09 | | Alek [omegaboot@Nightstar-c5f3565b.il.comcast.net] has quit [Ping timeout: 121 seconds] |
01:10 | | Syloqs_AFH [Syloq@NetworkAdministrator.Nightstar.Net] has joined #code |
01:11 | | Syloqs_AFH is now known as Syloqs-AFH |
01:11 | | ToxicFrog [ToxicFrog@ServerAdministrator.Nightstar.Net] has joined #code |
01:11 | | celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has joined #code |
01:14 | | Derakon [Derakon@Nightstar-5213d778.ca.comcast.net] has joined #code |
03:28 | | gnolam [lenin@Nightstar-38637aa0.priv.bahnhof.se] has quit [[NS] Quit: Z?] |
04:49 | | Rhamphoryncus [rhamph@Nightstar-bbc709c4.abhsia.telus.net] has quit [Ping timeout: 121 seconds] |
04:49 | | Rhamphoryncus [rhamph@Nightstar-bbc709c4.abhsia.telus.net] has joined #code |
05:31 | | celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has quit [[NS] Quit: *hums* Can't stay now!] |
06:11 | | 459AAAA3G is now known as Alek |
06:43 | | Derakon is now known as Derakon[AFK] |
06:53 | | Serah [Z@26ECB6.A4B64C.298B52.D80DA0] has quit [Ping timeout: 121 seconds] |
07:07 | | cpux is now known as shade_of_cpux |
07:18 | | Serah [Z@3A600C.A966FF.5BF32D.8E7ABA] has joined #code |
07:22 | | AnnoDomini [annodomini@Nightstar-1130352c.adsl.tpnet.pl] has joined #code |
07:50 | | Zed_ [Zed@Nightstar-e4835f03.or.comcast.net] has quit [Ping timeout: 121 seconds] |
08:00 | | Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has joined #code |
08:16 | | Zed_ [Zed@Nightstar-e4835f03.or.comcast.net] has joined #code |
09:38 | | Rhamphoryncus [rhamph@Nightstar-bbc709c4.abhsia.telus.net] has quit [Client exited] |
09:39 | | Serah [Z@3A600C.A966FF.5BF32D.8E7ABA] has quit [Ping timeout: 122 seconds] |
10:08 | | AnnoDomini [annodomini@Nightstar-1130352c.adsl.tpnet.pl] has quit [[NS] Quit: Changing server] |
10:14 | | Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has quit [Client closed the connection] |
10:14 | | Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has joined #code |
10:37 | | Syloqs-AFH [Syloq@NetworkAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds] |
10:38 | | Zed_ [Zed@Nightstar-e4835f03.or.comcast.net] has quit [Ping timeout: 121 seconds] |
10:39 | | Zed [Zed@Nightstar-e4835f03.or.comcast.net] has joined #code |
10:44 | | Syloqs_AFH [Syloq@NetworkAdministrator.Nightstar.Net] has joined #code |
10:45 | | Syloqs_AFH is now known as Syloqs-AFH |
10:57 | | Vornicus is now known as Vornicus-Latens |
11:35 | | Zed [Zed@Nightstar-e4835f03.or.comcast.net] has quit [Ping timeout: 121 seconds] |
11:35 | | Syloqs-AFH [Syloq@NetworkAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds] |
11:41 | | Syloqs_AFH [Syloq@NetworkAdministrator.Nightstar.Net] has joined #code |
11:41 | | Zed [Zed@Nightstar-e4835f03.or.comcast.net] has joined #code |
11:42 | | Syloqs_AFH is now known as Syloqs-AFH |
12:04 | | AnnoDomini [annodomini@Nightstar-1130352c.adsl.tpnet.pl] has joined #code |
12:08 | | Tarinaky [Tarinaky@Nightstar-fcd02059.adsl.virginmedia.net] has quit [Ping timeout: 121 seconds] |
12:19 | | shade_of_cpux is now known as cpux |
12:20 | | Tarinaky [Tarinaky@Nightstar-23c905f9.adsl.virginmedia.net] has joined #code |
12:21 | | cpux [Moo@Nightstar-20a84089.dyn.optonline.net] has quit [[NS] Quit: ChatZilla 0.9.86 [Firefox 3.6.3/20100401080539]] |
13:38 | | Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has quit [Connection closed] |
13:44 | | gnolam [lenin@Nightstar-38637aa0.priv.bahnhof.se] has joined #code |
13:44 | | celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has joined #code |
14:27 | | AbuDhabi [annodomini@Nightstar-4cbdb07e.adsl.tpnet.pl] has joined #code |
14:28 | | AbuDhabi [annodomini@Nightstar-4cbdb07e.adsl.tpnet.pl] has quit [[NS] Quit: Reconnecting] |
14:28 | | AbuDhabi [annodomini@Nightstar-4cbdb07e.adsl.tpnet.pl] has joined #code |
14:29 | | AnnoDomini [annodomini@Nightstar-1130352c.adsl.tpnet.pl] has quit [Ping timeout: 121 seconds] |
16:01 | | Serah [Z@3A600C.A966FF.5BF32D.8E7ABA] has joined #code |
17:20 | | Rhamphoryncus [rhamph@Nightstar-bbc709c4.abhsia.telus.net] has joined #code |
17:24 | | Attilla [Attilla@Nightstar-f72c88d9.threembb.co.uk] has joined #code |
17:43 | | Serah [Z@3A600C.A966FF.5BF32D.8E7ABA] has quit [Ping timeout: 121 seconds] |
18:15 | | Serah [Z@26ECB6.A4B64C.298B52.D80DA0] has joined #code |
18:29 | | celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has quit [[NS] Quit: *hums* Can't stay now!] |
19:08 | | Orthia [orthianz@Nightstar-c774274f.xnet.co.nz] has joined #code |
19:27 | | * gnolam ...s at Inkscape's web page. |
19:28 | < gnolam> | Choosing a /random/ language for the visitor is a... novel... approach. |
19:28 | < Orthia> | ahahahaha. |
20:22 | < Serah> | It's random? |
20:27 | < Rhamphoryncus> | weird. reload consistently gives me french, shift-reload consistently gives me english |
20:29 | | Vornicus-Latens is now known as Vornicus |
21:03 | | Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has joined #code |
21:04 | < AbuDhabi> | gnolam: But I bet you think it's better than geolocation! :p |
21:15 | | Orthia [orthianz@Nightstar-c774274f.xnet.co.nz] has quit [Ping timeout: 121 seconds] |
21:24 | | Derakon [Derakon@Nightstar-1ffd02e6.ucsf.edu] has joined #code |
21:24 | | celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has joined #code |
21:36 | < Derakon> | So there's a function in this codebase named "Must_Restart". When called, it checks what thread it's in. If it's not in the main thread, it just returns false. If it is in the main thread, though, it looks up its caller in the stack, extracts the caller's arguments, and re-calls it in a new thread. Usage in the code (all over the place) is "if H.Must_Restart(): return". |
21:36 | | * celticminstrel has discovered what appears to have been an attempt to update CTCP and is wondering if any clients ever tried implementing it. |
21:37 | < Derakon> | I want to excise this function from the codebase and burn it. Any better ideas than just sprinkingl "threading.Thread(target = function_to_call).start()" in whenever we'd normally call a function that invokes Must_Restart? |
21:37 | < celticminstrel> | ...um, what? |
21:37 | < Derakon> | Celtic: a moment while I wrestle with d?j? vu and make an example. |
21:38 | | * celticminstrel wonders where the deja vu is from. |
21:38 | < Derakon> | Beats me. |
21:38 | < ToxicFrog> | So, hang on |
21:39 | < ToxicFrog> | That usage is basically: if not in main, pass; otherwise, spawn a new thread executing this function and return? |
21:39 | < celticminstrel> | So... this function's entire purpose is to call its caller in a new thread iff it is called in the main thread? |
21:39 | < Derakon> | TF: yes. http://pastebin.starforge.co.uk/310 |
21:40 | < Derakon> | The goal, in general, is to have functions that do stuff without causing the UI to hang. |
21:40 | < Derakon> | Oh, wait, I got my booleans reversed there. |
21:41 | < celticminstrel> | Could you create a decorator which, when applied to a function, specifies that it should always be run in a new thread? |
21:41 | < Derakon> | I haven't had cause to use decorators ever, so I'm still rather shaky on them. Maybe? |
21:42 | < Derakon> | I wouldn't be surprised if 98% of the time these functions are called from within non-main threads anyway, and the only reason we call Must_Restart in them is because they used to be invoked in other fashions too. |
21:42 | < Derakon> | I should add some logging that tracks when the function is called, who its caller was, and what action was taken. |
21:44 | | * ToxicFrog weeps black, acidic bile from his eye sockets |
21:46 | < Derakon> | This is one of the few remaining really painful bits of code in this codebase. |
21:46 | < Derakon> | Which is to say, there's plenty of bad code remaining, but this is one of three bits that I would consider Bad And Wrong. |
21:46 | < McMartin> | UI-thread enforcement is the second largest spider source in GUI programming. |
21:46 | < Derakon> | (The other two, coincidentally enough, also involve taking a look at the call stack) |
21:48 | < Derakon> | McM: I'm just wondering why I shouldn't just replace all current invocations of these functions (generally one per function) with threading.Thread(target = func, kwargs = {dict of arguments}) |
21:48 | < Derakon> | Or stick wrappers into the functions that accomplish the same thing without mucking around with the callstack. |
21:48 | < McMartin> | Spawning worker threads is the usual solution, yeah |
21:48 | < McMartin> | To the general problem of UI responsiveness, that is. |
21:49 | | * celticminstrel likes the decorator idea. |
21:49 | < ToxicFrog> | McMartin: what would you consider the largest spider source? |
21:50 | < McMartin> | Z priority clicks on nested widgets |
21:50 | < McMartin> | Er, sorting out which widgets get which events based on Z priority, rather |
21:51 | < ToxicFrog> | Aah. |
21:52 | < ToxicFrog> | I get to implement that myself! Unless I can figure out how to exploit GTK+'s event handling on stuff inside a Cairo surface. |
21:52 | < Derakon> | Incidentally, there are currently 41 calls to Must_Restart in the code, though 30 of them are in the "test" package (read: the "experimental code that nobody uses" package). |
21:53 | < McMartin> | TF: I'm not sure if that makes it better or worse. ;_; |
21:54 | < Derakon> | Seems like you ought to be able to co-opt OpenGL's picking code. |
21:55 | < ToxicFrog> | McMartin: well, it's not quite that bad; I already have most of the code from when I implemented a widget system on top of SDL for the old, terrible version of this frontend. |
21:55 | < McMartin> | Is this Spellcast? |
21:55 | < ToxicFrog> | Felt. |
21:55 | < ToxicFrog> | Spellcast doesn't need arbitrary blitting, just the occasional GtkImageLabel. |
21:56 | < ToxicFrog> | Felt, on the other hand, needs all kind of overlapping semitransparent image madness. |
21:56 | < Derakon> | Felt...is this a networked game system or something? |
21:56 | < ToxicFrog> | It would be nice if GTK+ Cairo surfaces had something like Qt's GraphicsView capabilities, where you can tell it "here are objects, here are their bounds, what just got clicked on?" |
21:57 | < ToxicFrog> | But as far as I can tell they don't, and I'd rather deal with that than with the different but no less annoying problems GV has. |
21:57 | < ToxicFrog> | Derakon: networked card & board game table. |
21:57 | < McMartin> | Pick your poison, etc |
21:57 | < ToxicFrog> | Yeah.And this is one I already mostly have an antidote for. |
21:57 | < Derakon> | Righto. |
21:58 | < ToxicFrog> | Test cases for it are currently chess, anything that you can play with a normal 52-card deck, and Descent: Journeys in the Dark + all expansion packs. |
21:58 | < Derakon> | ...how much time have you spent on content creation? O_o |
21:58 | < Derakon> | Descent has a lot of bits, IIRC. |
21:58 | < McMartin> | This sounds a great deal like Volity |
21:59 | < ToxicFrog> | Lots and lots of bits, yes. Fortunately, my sister's BF, who actually owns the game, is massively stoked for this project and did all of the scanning. It wasn't hard to exploit imagemagick to turn the scans into tiles. |
22:00 | < ToxicFrog> | McMartin: isn't Volity (1) web-based and (2) understanding of the game rules? |
22:01 | < Derakon> | Volity requires you to implement the game logic, yes. |
22:01 | < Derakon> | But it has a standalone app. |
22:01 | < Derakon> | Mind, I seem to recall being not terribly impressed by its layout system. |
22:03 | < ToxicFrog> | This doesn't have any understanding of game logic or layout; it just lets you pick things up and put them down. |
22:03 | < celticminstrel> | BF could be best friend or boyfriend... |
22:04 | < McMartin> | TF: Aha. So the touchpoint is Apprentice then. |
22:04 | < ToxicFrog> | Some things may be slightly more intelligent (the chessboard grid-snaps, decks can be shuffled, Descent monsters display their stats when moused over), but that's up to the game module implementation. |
22:04 | < ToxicFrog> | celticminstrel: boyfriend. |
22:04 | < Derakon> | Have you given any thought to players being able to keep secrets from each other? |
22:05 | < ToxicFrog> | The original impetus for making this program is that we want to play a Descent Road to Legend campaign, but the players are spread across three cities. |
22:05 | < ToxicFrog> | Derakon: of course. A game consists of one or more fields. Each field has per-player visibility: visible (player can see everything), hidden (player can see card backs, etc), or invisible (player can only see that the field exists) |
22:06 | < Derakon> | Ahh. |
22:06 | < ToxicFrog> | So, for example, a deck is hidden to everyone, the Descent board is visible to everyone, and your hand is visible to you, and hidden or invisible to everyone else (depending on whether the game lets you count the size of other players' hands) |
22:07 | < ToxicFrog> | Fields created by the game module have their default visibility set by the module; fields created by players default to visible to the creator, hidden to everyone else. |
22:07 | < ToxicFrog> | This is all adjustable. |
22:07 | < ToxicFrog> | And everything is logged. |
22:07 | < Derakon> | Nifty. |
22:08 | < ToxicFrog> | (and the logging will report correctly depending on visibility - eg, I'd see "ToxicFrog takes Three of Hearts from ToxicFrog's Hand; ToxicFrog places Three of Hearts on table", and you would see "ToxicFrog takes card from ToxicFrog's Hand; ToxicFrog places Three of Hearts on table.") |
22:38 | < Vornicus> | Silly question: why is there a transition state there? |
22:38 | < ToxicFrog> | Because in some games, the mere act of picking something up is significant. |
22:39 | < Vornicus> | aha |
22:39 | < Derakon> | C.f. MtG. |
22:39 | < ToxicFrog> | More generally, I have a policy that anything you can see while sitting at a table should be logged by felt. |
22:40 | < ToxicFrog> | You should have the same sort of visibility playing with this that you do playing in person. |
22:41 | < Tarinaky> | If you're using MtG as an example that doesn't neatly fit into having fields with different visibilities :/ |
22:41 | < Derakon> | Tarinaky: no? Card decks need to be their own separate fields. |
22:41 | < Tarinaky> | As an example I offer: "Draw a card" vs "Reveal the top card of your library, then put it into your hand." |
22:43 | < ToxicFrog> | Tarinaky: two options there: temporarily make your deck visible-all, or take the top card from it, drop it on the table, and then pick it back up. |
22:43 | < ToxicFrog> | Alternately, some sort of "reveal this object only" gesture which I had not yet considered. |
22:43 | | * Tarinaky shrugs. |
22:44 | < Tarinaky> | Just offering the thought for consideration. |
22:46 | < Derakon> | I think MtG in general is way too complicated to consider here. I just meant it as an isolated example. |
22:46 | < Tarinaky> | Fair enough then. |
22:46 | < McMartin> | Derakon: Easily doable, though; MtG Apprentice is a long-standing system. |
22:46 | < Derakon> | Oh, sure. |
22:47 | < Derakon> | I'm just saying that Felt shouldn't feel it has to be capable of supporting every gesture that MtG requires. |
22:47 | < ToxicFrog> | Derakon: why is it way too complicated? Off the top of my head, all you need beyond normal 52-card is tap, flip, and the card images themselves |
22:47 | < ToxicFrog> | Oh, and tokens, but you can always load the Go module in parallel for that~ |
22:47 | < Derakon> | Heh. |
22:47 | < Derakon> | Well, fair enough. |
22:47 | < Derakon> | I suppose it depends largely on how much you want to have automated for you. |
22:48 | < ToxicFrog> | (that said, the infrastructure is in place for anyone who would want to write a smarter MtG module; game modules are free to implement their own subclasses and whatnot.) |
22:48 | < ToxicFrog> | (the Descent module already does this for some things; for example, health/stamina counters can be mousewheel'd to adjust a displayed number, rather than using multiple counters, and monster figures will display their stat card when moused over) |
23:06 | | Orthia [orthianz@Nightstar-a7b937d7.xnet.co.nz] has joined #code |
23:17 | | Derakon [Derakon@Nightstar-1ffd02e6.ucsf.edu] has quit [[NS] Quit: Leaving] |
23:35 | | Attilla [Attilla@Nightstar-f72c88d9.threembb.co.uk] has quit [[NS] Quit: ] |
23:47 | | AbuDhabi [annodomini@Nightstar-4cbdb07e.adsl.tpnet.pl] has quit [[NS] Quit: I will send you back to the depths of Hades!] |
23:50 | | cpux [Moo@Nightstar-20a84089.dyn.optonline.net] has joined #code |
--- Log closed Thu Jun 17 00:00:12 2010 |