--- Log opened Sun May 26 00:00:49 2013 |
00:18 | | You're now known as TheWatcher[t-2] |
00:23 | | Derakon_ [chriswei@31356A.8FA1FE.CF2CE9.D6CF77] has joined #code |
00:25 | | Derakon__ [chriswei@Nightstar-a3b183ae.ca.comcast.net] has quit [Operation timed out] |
00:26 | | Derakon [Derakon@31356A.8FA1FE.CF2CE9.D6CF77] has quit [Ping timeout: 121 seconds] |
00:26 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code |
00:26 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
00:27 | | Derakon [Derakon@31356A.8FA1FE.CF2CE9.D6CF77] has joined #code |
00:27 | | mode/#code [+ao Derakon Derakon] by ChanServ |
00:32 | <~Vornicus> | okay. switching to skip lists has actually significantly slowed my python script, but this is probably because it's in pure python. |
00:34 | <~Vornicus> | as opposed to using python built-in lists, which are a lot faster because htey're actually implemented in c, despite the comparison between n^2 log n vs n log^2 n |
00:34 | | You're now known as TheWatcher[zZzZ] |
00:39 | | * RichyB blinkblink. |
00:40 | < RichyB> | Python's built-in lists are approximately the same thing as a std::vector<PyObject*>. |
00:41 | < RichyB> | A Python list is a packed array of PyObject* pointers with a couple of size_ts to track resizing and a PyObject_HEAD glommed on its head so that it's a real Python object. |
00:42 | < RichyB> | The constants on that are pretty, so yes you are going to have a little difficulty beating it with any data-structure written in Python, even if you're asymptotically faster. |
00:46 | | Derakon__ [chriswei@31356A.8FA1FE.CF2CE9.D6CF77] has joined #code |
00:49 | | Derakon_ [chriswei@31356A.8FA1FE.CF2CE9.D6CF77] has quit [Ping timeout: 121 seconds] |
00:49 | | Derakon [Derakon@31356A.8FA1FE.CF2CE9.D6CF77] has quit [Ping timeout: 121 seconds] |
00:50 | | Derakon [Derakon@31356A.8FA1FE.CF2CE9.D6CF77] has joined #code |
00:50 | | mode/#code [+ao Derakon Derakon] by ChanServ |
00:50 | <~Vornicus> | THing is though that the tasks I have before me are pretty pessimal on a standard array; they involve deleting slices. |
00:50 | <~Vornicus> | The slices are also usually quite short. |
00:55 | <~Vornicus> | So if i have a type -- skiplists for instance -- that doesn't require rejiggering or long searches, I can get it down to log(n) + k time, where n is the number of items in the list and k is the number of items I'll need to delete. |
00:55 | < RichyB> | :/ |
00:56 | < RichyB> | How often do you delete slices like this? |
00:57 | < RichyB> | I'm thinking right now that you have a long list that you remove a bunch of slices from one after another? And that you perform a whole bunch of slice deletions in between any other operations? |
00:58 | < RichyB> | If that's the case then try holding two lists; one containing the data, the other containing a "tombstone" flag. Instead of deleting a slice from the first list, set a row of True values in the second list. |
00:58 | <~Vornicus> | The way this list gets constructed is I add single items, sometimes preceded by a slice removal. |
00:58 | < RichyB> | Then do the reallocation and compaction all at once by filtering by index and looking at the tombstones. |
00:59 | < RichyB> | Hrmn. How do you know which slice to remove? |
00:59 | <~Vornicus> | There's also a required sort invaiant |
01:01 | <~Vornicus> | The list is sorted strictly ascending by one variable x and strictly descending by another, y; I know the slice to remove is all items (x, y) such that my new item (x_0, y_0) are either x < x_0 or y < y_0 |
01:03 | < RichyB> | x and y always run in opposite directions? |
01:04 | <~Vornicus> | ALways run in opposite directions, yes. If the thing I am about to add can't make this happen (because there exists an (x, y) in the list such that x >= x_0 and y >= y_0), then it does not get added. |
01:06 | < RichyB> | Can a red-black tree not do this just as well as a skip-list? |
01:07 | < RichyB> | I ask because there's an egg on PyPI called "bintrees" which packages a few types of binary search trees. |
01:08 | <~Vornicus> | red-black is problematic because I couldn't figure out a slice removal algorithm without having to globally rejigger invariants |
01:08 | <~Vornicus> | skip list slice removal is very easy. |
01:08 | < RichyB> | There's another library called PyJudy which wraps the Judy arrays library, which implements sparse ordered search trees too (and is pretty fast) but I don't think the bindings are as nice to compile. |
01:09 | < RichyB> | I am not suggesting that you write a red-black tree; I am suggesting that one exists on the Cheese Shop already, and it has Cython implementations. |
01:09 | <~Vornicus> | Yes, but does it have slice removal. |
01:10 | < RichyB> | Yyyep. |
01:11 | <~Vornicus> | Look like I'd still have to futz with it. hng. |
01:11 | < RichyB> | Have a look. These things implement the dict protocol. https://pypi.python.org/pypi/bintrees/ |
01:11 | <~Vornicus> | (part of the difficulty is also that I have two distinct sorts that happen to always work together) |
01:12 | | * McMartin successfully resists naming his exception class monocle::discombobulated |
01:18 | | Turaiel is now known as Turaiel[Offline] |
01:19 | <~Vornicus> | So so far everythign I've done revolves around the fact that in order to search by my second key I have to basically roll my own because everything else assumes that only one sort key will work. |
01:20 | <~Vornicus> | Which isn't true for mine; there's two sort keys that work perfectly well (x, and -y), and I have to use both to find my slice boundaries. |
01:23 | <&McMartin> | Is for Galactic Vorntiers? |
01:24 | <&McMartin> | *this |
01:25 | <~Vornicus> | No, this is for a problem that had chewed my brain long ago and I'm now getting around to futzing with it. Vorntiers has stalled mostly because I can't art and because I spend much of my time on a system where I can't get pygame to build~ |
01:25 | < RichyB> | Key the tree on x, maintain the y invariant manually. |
01:25 | < RichyB> | When you want to search for a y value, manually binary scan by looking up x values. |
01:26 | <~Vornicus> | I'm not sure what you just told me to do there. |
01:26 | < RichyB> | orrr, keep two copies of your tree, one keyed on x and the other keyed on y. |
01:27 | < RichyB> | Find the minimum and maximum elements that you want to slice. Get both (xmin,xmax) and (ymin,ymax) from the values. Delete from both trees. |
01:28 | <~Vornicus> | ...that's glorious. Okay that I think will work, let's see if I can get that thingy working... |
01:29 | | 629AAAKFF [chriswei@31356A.8FA1FE.CF2CE9.D6CF77] has joined #code |
01:29 | <&McMartin> | That sounds kind of RDBMS-y |
01:29 | | Derakon_ [Derakon@Nightstar-a3b183ae.ca.comcast.net] has joined #code |
01:30 | | Derakon [Derakon@31356A.8FA1FE.CF2CE9.D6CF77] has quit [NickServ (GHOST command used by Derakon_)] |
01:30 | | Derakon_ is now known as Derakon |
01:30 | | mode/#code [+ao Derakon Derakon] by ChanServ |
01:32 | < RichyB> | I think it might be *very* close to how you'd do it in a modern (meaning "post-the-invention-of-ISAM") RDBMS, yeah. |
01:32 | | Derakon__ [chriswei@31356A.8FA1FE.CF2CE9.D6CF77] has quit [Ping timeout: 121 seconds] |
01:34 | | Derakon_ [chriswei@Nightstar-a3b183ae.ca.comcast.net] has joined #code |
01:36 | | 629AAAKFF [chriswei@31356A.8FA1FE.CF2CE9.D6CF77] has quit [Ping timeout: 121 seconds] |
01:36 | | Derakon [Derakon@Nightstar-a3b183ae.ca.comcast.net] has quit [Ping timeout: 121 seconds] |
01:37 | | Derakon [Derakon@Nightstar-a3b183ae.ca.comcast.net] has joined #code |
01:37 | | mode/#code [+ao Derakon Derakon] by ChanServ |
01:41 | <~Vornicus> | hm. Okay, looking at that, the question is, how do I find the boundary between x <= x_0 and x > x_0 |
01:42 | <~Vornicus> | ah, prev/succ stuff. okay. |
01:49 | <~Vornicus> | Okay, this I can handle. |
01:50 | < RichyB> | Yay. ^^ |
01:56 | | * Vornicus pokes at getting the build going and so forth |
02:16 | | Derakon__ [chriswei@31356A.8FA1FE.CF2CE9.D6CF77] has joined #code |
02:17 | | Derakon___ [Derakon@Nightstar-a3b183ae.ca.comcast.net] has joined #code |
02:17 | | Derakon__ [chriswei@31356A.8FA1FE.CF2CE9.D6CF77] has quit [[NS] Quit: leaving] |
02:17 | | Derakon [Derakon@Nightstar-a3b183ae.ca.comcast.net] has quit [NickServ (GHOST command used by Derakon___)] |
02:17 | | Derakon___ is now known as Derakon |
02:17 | | mode/#code [+ao Derakon Derakon] by ChanServ |
02:18 | | Derakon_ [chriswei@Nightstar-a3b183ae.ca.comcast.net] has quit [Ping timeout: 121 seconds] |
02:22 | | Derakon_ [Derakon@31356A.8FA1FE.CF2CE9.D6CF77] has joined #code |
02:22 | | Derakon [Derakon@Nightstar-a3b183ae.ca.comcast.net] has quit [NickServ (GHOST command used by Derakon_)] |
02:22 | | Derakon_ is now known as Derakon |
02:23 | | mode/#code [+ao Derakon Derakon] by ChanServ |
02:25 | <&McMartin> | Woot, got my zipfs stuff working and integrated with the resource providers |
02:26 | <&McMartin> | I guess the next step is OYWNS, which means contending with SDL_mixer and also means getting ahold of stuff to use as test soundtracks in as many formats as I can swing |
02:42 | | Derakon_ [Derakon@Nightstar-a3b183ae.ca.comcast.net] has joined #code |
02:44 | | Derakon [Derakon@31356A.8FA1FE.CF2CE9.D6CF77] has quit [Ping timeout: 121 seconds] |
03:18 | | Turaiel[Offline] is now known as Turaiel |
03:25 | | Kindamoody[zZz] is now known as Kindamoody |
03:28 | <~Vornicus> | But yeah, I've been working on this thing for a week, bashing my head against the wall of "I need better performance" and getting nowhere because I haven't got the C/C++ chops I once did. |
04:21 | | himi [fow035@0C0840.B22E58.E3471A.E028A1] has quit [Ping timeout: 121 seconds] |
04:34 | | himi [fow035@0C0840.B22E58.E3471A.E028A1] has joined #code |
04:34 | | mode/#code [+o himi] by ChanServ |
05:07 | | Typherix [Typherix@Nightstar-7dc8031d.mi.comcast.net] has joined #code |
05:49 | | celticminstrel [celticminst@Nightstar-e83b3651.cable.rogers.com] has quit [[NS] Quit: KABOOM! It seems that I have exploded. Please wait while I reinstall the universe.] |
05:49 | | celticminstrel [celticminst@Nightstar-e83b3651.cable.rogers.com] has joined #code |
05:49 | | mode/#code [+o celticminstrel] by ChanServ |
06:18 | | * Derakon_ takes a moment to appreciate the ease with which he put together a system which prompts the user for a string, searches the monster list for name matches, and presents near-matches if it can't find an exact match. Hooray for frameworks that provide reasonably complete UI code~ |
06:19 | < Derakon_> | http://derakon.dyndns.org/~chriswei/games/pyrel/memory2.png |
06:30 | | Derakon_ is now known as Derakon[AFK] |
06:44 | | AverageJoe [evil1@Nightstar-4b668a07.ph.cox.net] has joined #code |
06:47 | | Kindamoody is now known as Kindamoody|out |
08:10 | | Turaiel is now known as Turaiel[Offline] |
08:32 | <~Vornicus> | Why do all the craziest ideas for video games I come up with mesh together in my head? |
08:32 | < AverageJoe> | you are a consumer |
08:33 | < AverageJoe> | consumers have the best ideas |
08:33 | < AverageJoe> | unfortunately, game companies dont |
08:33 | < Syka> | well they do |
08:34 | < Syka> | focus groups are just mouth-breathing casual-ass idiots |
08:35 | < Syka> | notice how all the good games have actual game players as their beta testers, and not random idiots? |
08:35 | < AverageJoe> | lol |
08:35 | < Syka> | because everyone wants the cod crowd |
08:35 | < AverageJoe> | Say what you will about the FPS crowd, but planetside 2 is fucking awesome. |
08:36 | < Syka> | planetside 2 is pretty good |
08:36 | < Syka> | but I think they broke it |
08:36 | < AverageJoe> | PC master race graphix, and hundreds of players going at it |
08:36 | < Syka> | apparently some shit happened with points |
08:36 | < Syka> | and now everyone has leet weapons |
08:36 | < Syka> | or something? |
08:36 | < AverageJoe> | well it is a free to play model. you can buy yer gunz |
08:37 | < AverageJoe> | so thats how they make their cash |
08:37 | < Syka> | its a bit too laggy for me, 120ms ping aint fun to do a mmofps or whatever with |
08:38 | < Syka> | i also don't have a windows box that works anymore :( |
08:39 | <~Vornicus> | Like I've got a strategy game where various objects act vaguely as emitters of reactive gases, and another one, a zelda-ish where your task is is to beat back the forces of darkness so people can grow the village, and then a vaguely diablolike where weapons have specific upgrade paths and you upgrade weapons by beating bosses, and |
08:39 | <~Vornicus> | and they're all kind of crashing into each other in my head |
08:39 | < Syka> | the zelda one sounds cool |
08:39 | < Syka> | there needs to be more strategy games that don't suck |
08:40 | < AverageJoe> | lolol, i had a buddy install windows 7 on a vm on his mac box to play ps2. i was loling the entire time watching him try and play without a right click |
08:40 | < AverageJoe> | or a means to aim |
08:40 | < Syka> | i had this idea for a hex-based turn based strategy |
08:40 | < AverageJoe> | plus the lag |
08:40 | < Syka> | where 'land' was captured by 'influence' |
08:40 | < AverageJoe> | risk yo |
08:40 | < Syka> | and you had a few kinds of influence - eg. government, populace, military |
08:41 | < Syka> | and doing things like military occupation will make the populace decrease, which will end up with something like ww2 france |
08:41 | < Syka> | and buying out the government will get you a US-puppet-state sort of thing |
08:42 | < Syka> | and the populace method would be like che guevara sort of thing |
08:42 | < Syka> | I started working on it |
08:42 | < Syka> | then work happened :U |
08:43 | <~Vornicus> | And it's not like I have the skills in any direction to make this game |
08:43 | < Syka> | also, the other day, I updated to 13.04 on a production server and it worked fine |
08:43 | < Syka> | I dont get it |
08:56 | | * McMartin gets a BGM working. |
09:13 | | You're now known as TheWatcher |
09:24 | | celticminstrel [celticminst@Nightstar-e83b3651.cable.rogers.com] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] |
09:36 | | VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [Client closed the connection] |
09:36 | | VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code |
10:18 | | VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [Client closed the connection] |
10:18 | | You're now known as TheWatcher[swim] |
10:19 | | VirusJTG [VirusJTG@2B12AA.572255.206A2A.901581] has joined #code |
10:27 | | McMartin_ [mcmartin@Nightstar-3bdd4589.pltn13.sbcglobal.net] has joined #code |
10:30 | | McMartin [mcmartin@Nightstar-1eb5ae6e.pltn13.sbcglobal.net] has quit [Ping timeout: 121 seconds] |
11:30 | | AverageJoe [evil1@Nightstar-4b668a07.ph.cox.net] has quit [[NS] Quit: Leaving] |
12:37 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: Leaving] |
14:49 | | Kindamoody|out is now known as Kindamoody |
15:09 | | You're now known as TheWatcher |
15:28 | | Reiv [NSwebIRC@Nightstar-95746c1f.kinect.net.nz] has quit [Ping timeout: 121 seconds] |
15:30 | | Chutzpah [Moltare@583787.FF2A18.190FE2.4D81A1] has quit [Ping timeout: 121 seconds] |
15:34 | | Chutzpah [Moltare@583787.FF2A18.190FE2.4D81A1] has joined #code |
15:56 | | celticminstrel [celticminst@Nightstar-e83b3651.cable.rogers.com] has joined #code |
15:56 | | mode/#code [+o celticminstrel] by ChanServ |
16:48 | | McMartin [mcmartin@Nightstar-5606bebd.pltn13.sbcglobal.net] has joined #code |
16:48 | | mode/#code [+ao McMartin McMartin] by ChanServ |
16:51 | | McMartin_ [mcmartin@Nightstar-3bdd4589.pltn13.sbcglobal.net] has quit [Ping timeout: 121 seconds] |
17:19 | | Kindamoody is now known as Kindamoody|out |
17:33 | | Turaiel[Offline] is now known as Turaiel |
18:00 | | [R] is now known as DocDREAM |
18:34 | | Derakon[AFK] is now known as Derakon |
18:34 | | mode/#code [+ao Derakon Derakon] by ChanServ |
18:40 | | Kindamoody|out is now known as Kindamoody |
19:21 | | blindpamther [NSwebIRC@Nightstar-c9fe550e.jcvlfl.sbcglobal.net] has joined #code |
19:21 | < blindpamther> | hello, what's up? |
19:22 | <&ToxicFrog> | Not much, this time of day |
19:22 | < DocDREAM> | Playing game, then going to do chore then going to work on an RPC module. |
19:23 | < blindpamther> | i'm getting ready to go to a backyard BBQ. |
19:24 | < blindpamther> | And watching the races in the states. |
19:33 | | blindpamther [NSwebIRC@Nightstar-c9fe550e.jcvlfl.sbcglobal.net] has quit [[NS] Quit: Page closed] |
19:39 | | McMartin [mcmartin@Nightstar-5606bebd.pltn13.sbcglobal.net] has quit [Ping timeout: 121 seconds] |
19:46 | | McMartin [mcmartin@Nightstar-3a6025eb.pltn13.sbcglobal.net] has joined #code |
19:46 | | mode/#code [+ao McMartin McMartin] by ChanServ |
19:53 | | Kindamoody is now known as Kindamoody[zZz] |
20:04 | | * Derakon adds an input queue to Pyrel, massively improves responsiveness now that every single keystroke doesn't result in a new thread blocking on the input lock. |
20:47 | | himi [fow035@0C0840.B22E58.E3471A.E028A1] has quit [Ping timeout: 121 seconds] |
21:00 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
21:00 | | mode/#code [+o himi] by ChanServ |
21:47 | | DocDREAM is now known as [R] |
21:48 | < [R]> | TIL a node.js HTTP object can't listen to multiple ports. |
21:49 | <@froztbyte> | lols |
21:49 | <@froztbyte> | why am I not surprised |
21:49 | <@froztbyte> | oh, because node's a piece of shit |
21:49 | < [R]> | Why all the hate? |
21:50 | <@froztbyte> | because the world has enough shitty things already |
21:50 | < [R]> | Okay, so justificationless bashing, got it. |
21:50 | <@froztbyte> | what's good about node? |
21:51 | <@froztbyte> | it's not the first thing to do async or eventloops, so that ain't it |
21:51 | <@Tamber> | ...who replaced froztbyte with Syka? |
21:51 | <@froztbyte> | it's not a good language to choose for things, so that ain't it either |
21:51 | <@Tamber> | =.= |
21:51 | <@froztbyte> | it's got a downright awful package management setup, so that ain't it either |
21:51 | <@froztbyte> | Tamber: I've hated node long before Syka did ;p |
21:52 | < [R]> | Have fun with that bait, you can keep it. |
21:52 | <@froztbyte> | you're welcome to keep writing in node, too :) |
21:52 | <@froztbyte> | one can only learn from mistakes |
21:53 | <@Tamber> | The only way not to use a programming language that sucks, is to encase your computer in concrete, sink it in the ocean, and start farming. |
21:53 | < [R]> | But not from ignorance. |
21:53 | <@Tamber> | With hand-tools. |
21:54 | <@froztbyte> | Tamber: hee |
21:54 | <@froztbyte> | Tamber: well, that old adage of "you don't know a system well until you can tell people what things they shouldn't use it for" |
21:54 | <@Tamber> | It also has the benefit of reducing the amount of arguing with idiots you do. So it's a win-win-lose! |
21:54 | <@Tamber> | *chuckle* |
21:54 | <@froztbyte> | no, it doesn't do that |
21:55 | <@froztbyte> | computers enable you to many things |
21:55 | <@froztbyte> | but equally so to avoid things |
21:55 | <@froztbyte> | if you didn't have a computer, you'd have to interact with real humans in afk-space |
21:55 | <@froztbyte> | and that gets dangerous. |
21:56 | <@Tamber> | Yup. But, most of the time, people tend not to say stupid shit as easily as they do when there's a screen and a bunch of copper/glass-fibre between them and their target. ...and when their target is carrying shovels and rakes and implements of destruction! |
21:56 | <&jerith> | node.js is currently where Ruby was about 6 years ago. |
21:57 | <&jerith> | Massivley hyped, but not yet mature enough to be a solid platform to build on. |
21:57 | <@Tamber> | (That said, some people still *do*, but that tends to be a self-solving problem given enough time and insults.) |
21:57 | <@froztbyte> | Tamber: it's 11pm on a sunday |
21:57 | <@froztbyte> | Tamber: stop mentioning things that sound fun to do |
21:58 | <@Tamber> | :> |
21:58 | <@froztbyte> | I don't even know where I could go to piss people off right now |
21:58 | <@Tamber> | Try reddit; there's plenty of idiots to taunt there. |
21:58 | <&jerith> | It seems to be getting better, but it's also the new hotness that everyone is writing huge piles of low quality code on. |
21:58 | <@froztbyte> | meh |
21:58 | <@froztbyte> | shotgun and barrel |
21:58 | < RichyB> | Tamber: man, I grew up in South Wales. |
21:58 | <@Tamber> | (s/reddit/the internet in general/) |
21:58 | < RichyB> | I harbour no illusions that people are any nicer offline. |
21:59 | <@Tamber> | Oh, I know they're no nicer offline; but at least then they usually wait until they're out of reach before opening their mouth. |
21:59 | < RichyB> | Nnnnnnope. |
21:59 | <@Tamber> | ...wait... ;) |
21:59 | <@froztbyte> | hahaha |
21:59 | <@Tamber> | Ah, well, maybe I'm just used to civilisation. :p |
22:00 | < RichyB> | Yeah. |
22:32 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code |
22:32 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
22:56 | | Turaiel is now known as Turaiel[Offline] |
23:25 | <@TheWatcher> | Tamber: ... you live near Bolton >.> |
23:25 | | * TheWatcher flrrd |
23:25 | <@Tamber> | :p |
23:54 | < RichyB> | Memory barriers are less counter-intuitive than I had expected. |
--- Log closed Mon May 27 00:00:04 2013 |