--- Log opened Mon Oct 18 00:00:25 2010 |
00:05 | | TarinakyKai [Tarinaky@Nightstar-f349ca6d.plus.com] has quit [Connection closed] |
00:30 | | Attilla [Some.Dude@Nightstar-e1b36c8c.threembb.co.uk] has quit [[NS] Quit: ] |
00:49 | | AnnoDomini [annodomini@Nightstar-d1ac981f.adsl.tpnet.pl] has quit [[NS] Quit: Sleep. Now.] |
00:52 | <@Derakon> | Celticminstrel: at the time that the release occurred, the code was not yet ready to be used; however, taking it out just for a release only to put it back in afterwords is pointless makework. |
00:52 | <@Derakon> | Therefore, knowing full well that nobody could call the code in the first place, they left it in with the expectation that it would be made available later. |
00:53 | | McMartin_ [mcmartin@Nightstar-6f5e4651.pltn13.sbcglobal.net] has joined #code |
00:55 | | McMartin [mcmartin@Nightstar-ff5ca89c.pltn13.sbcglobal.net] has quit [Ping timeout: 121 seconds] |
00:56 | | kwsn [kwsn@Nightstar-1def9d24.dyn.centurytel.net] has joined #code |
00:57 | < celticminstrel> | Well, okay... |
00:59 | <@Derakon> | This is done all the time in situations where you have multiple projects running on the same code, only one of which determines the release date. |
01:01 | | McMartin_ [mcmartin@Nightstar-6f5e4651.pltn13.sbcglobal.net] has quit [Ping timeout: 121 seconds] |
01:02 | | McMartin [mcmartin@Nightstar-dc547daf.pltn13.sbcglobal.net] has joined #code |
01:02 | | mode/#code [+o McMartin] by Reiver |
01:11 | | McMartin [mcmartin@Nightstar-dc547daf.pltn13.sbcglobal.net] has quit [Connection reset by peer] |
01:13 | | McMartin [mcmartin@Nightstar-b2a203af.pltn13.sbcglobal.net] has joined #code |
01:13 | | mode/#code [+o McMartin] by Reiver |
01:18 | | McMartin [mcmartin@Nightstar-b2a203af.pltn13.sbcglobal.net] has quit [Ping timeout: 121 seconds] |
01:19 | | McMartin [mcmartin@Nightstar-b2a203af.pltn13.sbcglobal.net] has joined #code |
01:19 | | mode/#code [+o McMartin] by Reiver |
01:24 | | McMartin [mcmartin@Nightstar-b2a203af.pltn13.sbcglobal.net] has quit [Connection closed] |
01:24 | | McMartin [mcmartin@Nightstar-b2a203af.pltn13.sbcglobal.net] has joined #code |
01:24 | | mode/#code [+o McMartin] by Reiver |
01:29 | | McMartin [mcmartin@Nightstar-b2a203af.pltn13.sbcglobal.net] has quit [Ping timeout: 121 seconds] |
01:29 | | McMartin [mcmartin@Nightstar-b2a203af.pltn13.sbcglobal.net] has joined #code |
01:29 | | mode/#code [+o McMartin] by Reiver |
01:35 | | McMartin_ [mcmartin@Nightstar-d16d0887.pltn13.sbcglobal.net] has joined #code |
01:38 | | McMartin [mcmartin@Nightstar-b2a203af.pltn13.sbcglobal.net] has quit [Ping timeout: 121 seconds] |
01:47 | | Finerty is now known as Vornicus |
01:50 | | McMartin [mcmartin@Nightstar-ac263077.pltn13.sbcglobal.net] has joined #code |
01:50 | | McMartin_ [mcmartin@Nightstar-d16d0887.pltn13.sbcglobal.net] has quit [Client closed the connection] |
01:50 | | mode/#code [+o McMartin] by Reiver |
01:53 | | gnolam [lenin@Nightstar-38637aa0.priv.bahnhof.se] has quit [[NS] Quit: Z?] |
01:58 | <@Vornicus> | Anyway. Kaura! |
02:01 | | McMartin [mcmartin@Nightstar-ac263077.pltn13.sbcglobal.net] has quit [[NS] Quit: Network is acting up] |
02:28 | | kzoo [c0mand@Nightstar-bec1add2.dyn.optonline.net] has joined #code |
02:31 | | kzoo [c0mand@Nightstar-bec1add2.dyn.optonline.net] has quit [[NS] Quit: ] |
02:57 | | * celticminstrel idly wonders why SDL_image has no support for writing image files. |
03:50 | | Zed_ [Zed@Nightstar-556ea8b5.or.comcast.net] has joined #code |
03:51 | | Zed [Zed@Nightstar-556ea8b5.or.comcast.net] has quit [Client closed the connection] |
04:18 | | Zed_ [Zed@Nightstar-556ea8b5.or.comcast.net] has quit [Ping timeout: 121 seconds] |
04:21 | | * ToxicFrog \m/ ROCKS OUT \m/ |
04:22 | <@ToxicFrog> | There's still a lot of work to be done, but the core works. |
04:22 | <@ToxicFrog> | I can now create a game, connect to it remotely, move stuff around on one client and see the moves reflected on the other. |
04:22 | <@ToxicFrog> | Also, even without all of the GTK features, moving to Cairo for rendering was worth it just for either of the CTM or push_group/pop_group_to_source |
04:25 | <@Derakon> | \o/ |
04:26 | < celticminstrel> | Yay! |
04:32 | <@ToxicFrog> | So. Next up is the UI redesign so that testing isn't as painful. |
04:33 | <@ToxicFrog> | Then a lot of improvement of error handling; in particular the client should handle disconnects gracefully (at present it screams at you and then exits) |
04:33 | <@ToxicFrog> | Then save/load support. |
04:33 | <@ToxicFrog> | Then some actual games. |
04:39 | <@Derakon> | Vorn should still have a bunch of assets for Settlers. |
04:44 | <@ToxicFrog> | First up is chess, because it's really simple and easy to test. |
04:44 | <@ToxicFrog> | Then a deck of 54, since that gives me a testbed for the visibility rules, hands, and decks. |
04:44 | <@Derakon> | ...54? |
04:44 | <@Derakon> | Two jokers? |
04:44 | <@ToxicFrog> | Yes. |
04:45 | <@ToxicFrog> | And then, I have the assets for Descent and all expansions but the most recent sitting on my hard drive. |
04:46 | < celticminstrel> | Chess is simple? |
04:46 | <@ToxicFrog> | And the base game is code-complete, it just needs to be updated for the Cairo renderer. |
04:46 | <@ToxicFrog> | Yeah? You need a board and 32 inert pieces. |
04:46 | < celticminstrel> | Well, I suppose if you don't care about AI... |
04:46 | <@ToxicFrog> | I don't. |
04:46 | <@ToxicFrog> | This is strictly multiplayer. |
04:46 | <@Derakon> | This is a system for connecting humans to each other. |
04:46 | <@ToxicFrog> | There is no AI, and no rule enforcement by the computer. |
04:46 | <@Derakon> | That simplifies matters significantly. |
04:46 | < celticminstrel> | So, you do care about enforcing the rules then. |
04:46 | < celticminstrel> | Oh wait, no. |
04:47 | < celticminstrel> | So, that does simplify things considerably. |
04:47 | <@ToxicFrog> | Consequently, chess is really simple, because all you need are 17 objects, one of them just needs to let you put things on it and the rest just kind of sit there. |
04:47 | <@Derakon> | Felt is basically a networked table. |
04:47 | < celticminstrel> | ...do you mean 33 objects? :| |
04:47 | <@ToxicFrog> | Yes. |
04:47 | <@Derakon> | The only complex rules it has to enforce are ones about visibility. |
04:48 | <@ToxicFrog> | In my defence I've been fighting object propagation bugs all day. |
04:48 | | McMartin [mcmartin@Nightstar-6f681ff5.pltn13.sbcglobal.net] has joined #code |
04:48 | | mode/#code [+o McMartin] by Reiver |
04:49 | <@ToxicFrog> | Derakon: and those aren't even very complex; it's basically a (players x fields) matrix of booleans, all player-configurable. |
04:52 | | Derakon is now known as Derakon[AFK] |
04:54 | | * ToxicFrog gets his Glade on |
05:01 | | Zed [Zed@Nightstar-556ea8b5.or.comcast.net] has joined #code |
05:32 | | celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] |
05:39 | | Stalker [Z@3A600C.A966FF.5BF32D.8E7ABA] has joined #code |
05:43 | | Kazriko [kaz@Nightstar-e09690fa.client.bresnan.net] has quit [Connection closed] |
05:48 | | Kazriko [kaz@Nightstar-e09690fa.client.bresnan.net] has joined #code |
05:48 | | mode/#code [+o Kazriko] by Reiver |
06:00 | <@Kazriko> | http://www.zachtronicsindustries.com/?p=855 |
07:30 | | Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has joined #code |
08:12 | | Stalker [Z@3A600C.A966FF.5BF32D.8E7ABA] has quit [Ping timeout: 121 seconds] |
08:50 | | Vornicus is now known as Vornicus-Latens |
08:53 | | You're now known as TheWatcher |
09:28 | | gnolam [lenin@Nightstar-38637aa0.priv.bahnhof.se] has joined #code |
11:10 | | Anno[Laptop] [annodomini@F67919.F326B3.98D923.BDA7B6] has joined #code |
12:14 | | cpux is now known as shade_of_cpux |
12:39 | < Anno[Laptop]> | Does Java have some sort of built-in way to sort arrays? |
12:42 | < Anno[Laptop]> | I mean, I have an array of custom classes which have a property. I'd like to sort the array according to the property of the instances. |
12:42 | < Anno[Laptop]> | *array of instances of a custom class |
12:56 | | Anno[Laptop] [annodomini@F67919.F326B3.98D923.BDA7B6] has quit [[NS] Quit: Going home.] |
12:57 | | Tarinaky [Tarinaky@Nightstar-f349ca6d.plus.com] has joined #code |
13:05 | | celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has joined #code |
13:17 | | Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has quit [Client closed the connection] |
13:32 | | Anno[Laptop] [annodomini@Nightstar-3e902c6a.adsl.tpnet.pl] has joined #code |
14:04 | | kwsn [kwsn@Nightstar-1def9d24.dyn.centurytel.net] has quit [[NS] Quit: BEEP BEEP IMMA JEEP] |
14:39 | <@ToxicFrog> | Anno[Laptop]: it has several. |
14:39 | <@ToxicFrog> | http://download.oracle.com/javase/6/docs/api/java/util/Arrays.html |
14:42 | | Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has joined #code |
14:49 | | You're now known as TheWatcher[afk] |
14:52 | | celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] |
15:10 | | Rhamphoryncus [rhamph@Nightstar-473f8685.abhsia.telus.net] has joined #code |
15:24 | <@jerith> | Monday Pun Day: My application has one particular user, from Prague, who is very expensive to load. How can I fix this performance problem? -- http://twitter.com/frogandcode/status/27737487503 |
15:24 | <@jerith> | Answer: You need to cache your Czech. |
15:40 | < gnolam> | Boo. |
15:45 | < Tarinaky> | I cringe in horror at that joke. |
16:10 | < PinkFreud> | ... I'm horrified. |
16:10 | | Stalker [Z@26ECB6.A4B64C.298B52.D80DA0] has joined #code |
16:12 | < Tarinaky> | jerith: See the horror you inflicted? And it's early for Halloween as well. |
16:24 | | kwsn [NSwebIRC@0E1868.C3C901.AE3970.13CA39] has joined #code |
16:24 | < kwsn> | anyone here familiar with ada? |
16:31 | < gnolam> | Sadly, yes. |
16:31 | < gnolam> | Been a couple of years since I touched it though. |
16:32 | < kwsn> | I'm using "use text_io;" |
16:32 | < kwsn> | yet i keep on getting "prog3.adb: Error: line 54 col 10 LRM:4.1(3), Direct name, get, is not visible, Ignoring future references " |
16:52 | < gnolam> | And you have a with Ada.Text_IO before that use, right? |
16:53 | < kwsn> | nope, that worked, thanks |
16:54 | < kwsn> | take that back |
16:54 | < kwsn> | still gave me the error |
16:54 | < gnolam> | What are you trying to Get()? |
16:55 | < gnolam> | You might need e.g. Ada.Integer_Text_IO or so. |
16:55 | < kwsn> | got it |
16:55 | < kwsn> | i has to be "with ada.text_io; |
16:55 | < kwsn> | *" followed by "use ada.text_io;" |
17:28 | < kwsn> | 0 differences ^_______________^ |
17:29 | | Attilla [Some.Dude@Nightstar-2cb92b04.threembb.co.uk] has joined #code |
17:29 | | mode/#code [+o Attilla] by Reiver |
17:32 | | kwsn [NSwebIRC@0E1868.C3C901.AE3970.13CA39] has quit [[NS] Quit: poof, thanks gnolam ] |
17:34 | | You're now known as TheWatcher |
18:29 | <@ToxicFrog> | "With" links, "use" hacks scope? |
18:30 | < gnolam> | Yep. |
18:56 | | jeroid [jerith@687AAB.5E3E50.7D2204.EA115F] has joined #code |
19:09 | | celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has joined #code |
19:34 | < gnolam> | Actually... Ada isn't /that/ bad. For its intended purpose. |
19:35 | < gnolam> | But it's got possibly the worst text I/O system of any serious language ever designed. |
19:52 | | SmithKurosaki [Smith@Nightstar-8ff23d84.dsl.teksavvy.com] has quit [Connection closed] |
19:57 | | SmithKurosaki [Smith@Nightstar-8ff23d84.dsl.teksavvy.com] has joined #code |
20:09 | | * ToxicFrog finishes redoing the UI for Felt for the fourth time. |
20:10 | | * Tarinaky pokes ToxicFrog for advise, words of wisdom and anything else he can scrounge/sponge off him. |
20:13 | < jeroid> | Never fight a land war in Asia. |
20:18 | <@ToxicFrog> | Tarinaky: I'm actually about to leave to TA a lab, but I should be online for part of that. Anything in particular you wanted to ask? |
20:18 | < Tarinaky> | ToxicFrog: Advice for building a UI in pygame. |
20:19 | < Tarinaky> | ToxicFrog: I'm currently playing around with the pygame.sprite stuff to get a good handle on how that works. |
20:19 | | superG [thedarthvader@A08927.7BB347.41548F.B563CB] has joined #code |
20:19 | | superG [thedarthvader@A08927.7BB347.41548F.B563CB] has left #code [] |
20:19 | < jeroid> | I'm in a band rehearsal at the moment, but I can mention the occasional thing. |
20:19 | < jeroid> | What kind of UI? |
20:20 | < Tarinaky> | The basics really. There doesn't seem to be anything off the shelf I can use to provide widgets. |
20:21 | < Tarinaky> | The context is for a game though. |
20:21 | < Tarinaky> | So mostly buttons, mouse/keyboard events. |
20:22 | < Tarinaky> | The other thing as well - the documenation for pygame.sprite.Sprite seems to imply that there is no pygame.sprite.Sprite.draw method. |
20:22 | < Tarinaky> | And that to do the actual drawing you -have- to use a Group (unless you reach in and access the surface Sprite.image but I consider that a violation of encapsulation) |
20:23 | < jeroid> | I don't recall the sprite stuff. |
20:23 | < Tarinaky> | I'm actually looking at DirtySprite more than Sprite because it has some extra variables. The Sprite class wraps an SDL_Surface and an SDL_Rect. |
20:24 | < jeroid> | Use something like Albow for widgets, but you might need to hack around it to get sprites on the screen at the same time. |
20:25 | < Tarinaky> | jeroid: Would that not result in more work? Considering I only need a small number of widgets. |
20:25 | < Tarinaky> | *types of widgets |
20:28 | < jeroid> | Dunno. |
20:29 | < jeroid> | Most of the widget libraries are designed to be used in a particular context. |
20:32 | < Tarinaky> | Yeah. From what I understand I think I could conceivably get as much as I need working on my own. I'm mostly just angling for advice. |
20:32 | < Tarinaky> | As I know TF recently went through a related nightmare. |
20:32 | < Tarinaky> | For his Felt thing. |
20:34 | < jeroid> | It's probably worth looking at a library to see how it's done. |
20:35 | < jeroid> | Albow's actually probably usable for your purposes if you create a "canvas" widget to draw everything else in. |
20:36 | < Tarinaky> | Well. I did build a program in VC++ once and experienced some of the basics and I've used GTKmm several times. |
20:41 | < jeroid> | I can help you more when I get home in an hour or so. |
20:42 | <@ToxicFrog> | Tarinaky: there's actually not a lot I can tell you. I used love2d as the original basis, which is (AIUI) more like pyglet than pygame - it has event processing and whatnot built in, you just need to write event handlers for it to call. |
20:42 | | jeroid [jerith@687AAB.5E3E50.7D2204.EA115F] has quit [[NS] Quit: Bye] |
20:43 | <@ToxicFrog> | On top of that, I built a heirarchical widget system - the widgets form a tree, rendering is depth first preorder with children Z-sorted, events are given to the parent to examine, then all the children. |
20:44 | < Tarinaky> | I was thinking of doing something similar to that with has-a relationships. |
20:44 | <@ToxicFrog> | Then I realized I needed text fields and buttons and menus and file selectors and resizeable windows and whatnot and decided an actual UI library would be better suited, and switched to GTK+. |
20:45 | <@ToxicFrog> | That said, the SDL version of Spellcast I wrote years ago was in C, talked SDL directly, and implemented buttons and text fields |
20:45 | <@ToxicFrog> | But, there was no heirarchy or layout management. |
20:46 | | Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has quit [Connection closed] |
20:59 | <@ToxicFrog> | Anyways. The source for Spellcast, or for the love2d version of Felt, might be useful |
20:59 | <@ToxicFrog> | But my main insight from this experience was "fuck this noise, I'm going to use an actual GUI library" |
21:02 | | Derakon [Derakon@Nightstar-1ffd02e6.ucsf.edu] has joined #code |
21:02 | | mode/#code [+o Derakon] by Reiver |
21:02 | <@Derakon> | So, style question for y'all. |
21:03 | <@Derakon> | One of my users requested the program remember each user's window layout, and restore same when the program is launched. |
21:03 | <@Derakon> | Each window is a program singleton, and most of them are "stored" in the module with the class definition for the window. |
21:04 | <@Derakon> | So whatever module handles the save/reload logic is going to have to import all of those modules so it can access their singletons. |
21:04 | <@Derakon> | However, it only needs them for that one function. |
21:04 | <@Derakon> | So in this case, is it better to put the import statements at the top of the file, or inside the function itself? |
21:04 | <@Derakon> | (We're talking about 10 imports here) |
21:04 | <@ToxicFrog> | Personally I'd put them in the function. |
21:08 | <@Derakon> | That's what I ended up going for, but I wasn't able to strongly articulate why. |
21:08 | <@Derakon> | It implies there's some cutoff point at which imports should be local rather than module-global in scope. |
21:10 | < celticminstrel> | Is there some way to tell my computer that a particular file extension should be mapped to an existing UTI? |
21:12 | <@ToxicFrog> | UTI? |
21:12 | < celticminstrel> | Uniform Type Identifier. |
21:24 | < celticminstrel> | I guess that means you have no idea. |
21:50 | < celticminstrel> | Is there a way to look at an unknown stream type to see whether it supports reading or writing, short of RTTI? |
21:52 | < celticminstrel> | (Assuming it's one of the standard streams derived from ios_base) |
21:55 | <@jerith> | Derakon: Add a "save people's layout" module that just imports and uses them all? |
21:56 | <@Derakon> | Jerith: yeah, I could do that, except this functionality clearly belongs in the gui.layout module. |
21:57 | <@jerith> | Ah. |
21:57 | <@jerith> | Spend a week driving the Refactor Tractor all over the codebase and then do it without the ten imports. *flees* |
21:58 | <@Derakon> | The alternative would seem to be storing the singletons in some more globally-scoped location so I could only import that and have access to each window. |
21:58 | <@Derakon> | But that is what I'm trying to get away from... |
22:07 | | ErikMesoy [Erik_Mesoy@Nightstar-c8453cc1.80-203-16.nextgentel.com] has joined #code |
22:24 | < ErikMesoy> | Idle anecdote from Opera Software: There is a sign in one of the server rooms saying "THINK BEFORE YOU DRILL. Or I will come and drill your noggin. This is a server room, not a bathroom undergoing renovation." |
22:51 | | ErikMesoy is now known as ErikMesoy|sleep |
22:56 | <@ToxicFrog> | celticminstrel: I don't know of any; is there a particular reason you can't ask if it's instanceof istream or instanceof ostream? |
22:57 | | Derakon [Derakon@Nightstar-1ffd02e6.ucsf.edu] has quit [[NS] Quit: Leaving] |
23:04 | < celticminstrel> | I could in principle do a "typeid(stream) == typeid(istream)", but I'm not sure how that interacts with the fact that stream is stored as a void pointer. |
23:18 | | kwsn [kwsn@Nightstar-1def9d24.dyn.centurytel.net] has joined #code |
23:35 | <@ToxicFrog> | celticminstrel: actually, better question |
23:35 | <@ToxicFrog> | Why do you need to ask this question in the first place, as opposed to typing your program such that incorrect usage here will fail to compile? |
23:36 | | * ToxicFrog sighs. I've finished the recursive-backtracking brute force sudoku solver. It's 30 lines long, half of that is comments and whitespace, and it works so well and runs so fast there's no reason to write something elegant. :( |
23:37 | < Namegduf> | Nice. |
23:38 | < celticminstrel> | I didn't choose to store it as a void pointer; that's just what the library gives me to work with. I'm attempting a solution involving templates at the moment. |
23:39 | < Tarinaky> | ToxicFrog: Turn it into something you can conceal about your person in order to cultivate the illusion that you are really good at Sudoku? |
23:42 | < Tarinaky> | That or you could adapt it for 4x4 sudoku? |
23:43 | <@McMartin> | This is one reason why SquareLogic/Killer Sudoku is more fun, really |
23:44 | <@McMartin> | Variable size/shape cages, and instead of every one being "9-Stright" they're things like "must sum to X", "must all be even", etc. |
23:44 | <@McMartin> | As a result they have many fewer starting clues and make for a better logic chain. |
23:55 | < kwsn> | ToxicFrog: what lang? |
23:55 | | You're now known as TheWatcher[T-2] |
23:57 | | You're now known as TheWatcher[zZzZ] |
23:58 | | RichardBarrell [mycatverbs@Nightstar-3b2c2db2.bethere.co.uk] has joined #code |
--- Log closed Tue Oct 19 00:00:26 2010 |