code logs -> 2013 -> Sun, 26 May 2013< code.20130525.log - code.20130527.log >
--- 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
code logs -> 2013 -> Sun, 26 May 2013< code.20130525.log - code.20130527.log >

[ Latest log file ]