--- Log opened Thu Dec 22 00:00:12 2011 |
00:15 | | You're now known as TheWatcher[T-2] |
00:21 | | You're now known as TheWatcher[zZzZ] |
00:22 | | eckse [eckse@Nightstar-6fa75dbe.dsl.sentex.ca] has joined #code |
00:58 | <@Tarinaky> | Dumb question. |
00:58 | <@Tarinaky> | Is there a downloadable/offline version for the Python and Panda3d documentation? |
01:00 | <@Tarinaky> | Ahah! Found it! |
01:00 | <@Tarinaky> | \o/ |
01:07 | < ToxicFrog> | In cases where there isn't, you can usually generate some yourself with wget. |
01:19 | | Stalker [Z@Nightstar-5aa18eaf.balk.dk] has quit [Connection reset by peer] |
01:19 | | Stalker [Z@Nightstar-5aa18eaf.balk.dk] has joined #code |
01:26 | | * ToxicFrog tracks down a stupid stupid stupid bug in his program |
01:26 | < celticminstrel> | I don't think wget really counts as generating... <_< |
01:27 | < ToxicFrog> | It will in fact rewrite all of the links to be local relative links as needed. |
01:30 | < celticminstrel> | Oh. |
01:31 | < celticminstrel> | I don't suppose curl can do that too? |
01:42 | < Ling> | Not to my knowledge |
01:43 | < Ling> | curl is better for scripting. |
01:43 | < Ling> | wget is better for getting data en masse. |
01:45 | < ToxicFrog> | Yeah, generally you want something like wget -p -np -r -l inf -k |
01:45 | | Attilla [Obsolete@Nightstar-9d19ccd5.as43234.net] has quit [Ping timeout: 121 seconds] |
01:59 | | Kindamoody[zZz] is now known as Kindamoody |
02:04 | < celticminstrel> | I don't have wget. |
02:09 | < ToxicFrog> | Problematic. |
02:09 | < Ling> | Well then: run curl on the landing page, pipe output into script that corrects the hrefs as needed and feeds a list of URLs to pull into a script that calls curl piped into the same script. |
02:09 | < Ling> | Have fun. |
02:09 | < ToxicFrog> | Or, you know, sudo apt-get install wget~ |
02:10 | < Ling> | Eww, apt-get... |
02:10 | | * Ling lets his biases show |
02:11 | < ToxicFrog> | Well, replace with zypper or lin or the like accordingly :P |
02:11 | < Ling> | ToxicFrog: Arch Linux uses pacman |
02:11 | < ToxicFrog> | Or that, yes. |
02:15 | < celticminstrel> | It's MacPorts, not apt-get. |
02:16 | < celticminstrel> | And I agree with Ling's sentiment on apt-get. |
02:16 | < celticminstrel> | It doesn't make any sense. |
02:16 | < Tamber> | "It's configure && make && make install, damnit; not apt-get" |
02:16 | | * Ling was an SA, tried making .deb files. Wondered how anyone actually stays sane doing that regularly. |
02:17 | < Tamber> | They don't. |
02:17 | < Ling> | I guess that explains the 17-step process. |
02:17 | < Ling> | (Yes, I counted) |
02:18 | | Kindamoody is now known as KiMo|Portal |
02:18 | < ToxicFrog> | celticminstrel: it's always worked well for me. |
02:18 | < celticminstrel> | Oh, it works okay. |
02:19 | < celticminstrel> | But it doesn't make sense. |
02:19 | <@Namegduf> | The statement there is wrong. |
02:19 | <@Namegduf> | apt-get does not configure or make anything. |
02:19 | <@Namegduf> | It's a binary package management system. |
02:19 | < celticminstrel> | And I couldn't find any way to search except apt-cache piped through grep. |
02:20 | < celticminstrel> | I think. |
02:20 | < Tamber> | Namegduf, if you were referring to my statement, I know. ;) |
02:22 | < ToxicFrog> | celticminstrel: apt-cache search <pattern>? |
02:23 | <@Namegduf> | "Open browser, go to Debian package website". |
02:23 | <@Namegduf> | Oh, no. |
02:23 | < ToxicFrog> | Works fine for me. |
02:23 | <@Namegduf> | aptitude, "/something" |
02:23 | <@Namegduf> | That's my usual. |
02:33 | | Reiver [orthianz@3CF3A5.E1CD01.C6689C.33956A] has quit [Ping timeout: 121 seconds] |
02:33 | | Reiver [orthianz@3CF3A5.E1CD01.C6689C.33956A] has joined #code |
03:26 | | KiMo|Portal is now known as Kindamoody |
03:38 | | Kindamoody is now known as Kindamoody|afk |
03:58 | | Syloqs-AFH [Syloq@NetworkAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds] |
04:04 | | Syloqs_AFH [Syloq@NetworkAdministrator.Nightstar.Net] has joined #code |
04:05 | | Syloqs_AFH is now known as Syloqs-AFH |
04:20 | | Syloqs-AFH [Syloq@NetworkAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds] |
04:24 | | gnolam [lenin@Nightstar-202a5047.priv.bahnhof.se] has quit [[NS] Quit: Z?] |
04:25 | | Syloqs_AFH [Syloq@NetworkAdministrator.Nightstar.Net] has joined #code |
04:26 | | Syloqs_AFH is now known as Syloqs-AFH |
04:44 | | Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has joined #code |
05:08 | | Stalker [Z@Nightstar-5aa18eaf.balk.dk] has quit [Ping timeout: 121 seconds] |
05:10 | | Kindamoody|afk is now known as Kindamoody |
05:23 | | Stalker [Z@Nightstar-3602cf5a.cust.comxnet.dk] has joined #code |
06:32 | | Rhamphoryncus [rhamph@Nightstar-14eb6405.abhsia.telus.net] has quit [Client exited] |
06:54 | | Stalker [Z@Nightstar-3602cf5a.cust.comxnet.dk] has quit [Ping timeout: 121 seconds] |
07:26 | | Vash [Vash@Nightstar-8697fea9.wlfrct.sbcglobal.net] has quit [[NS] Quit: Spaaaaaaaaaaaaaaaaace sleeeeeeeeeeeeeeeep!] |
08:01 | | celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has quit [Connection closed] |
08:05 | | Kindamoody is now known as Kindamoody|out |
09:06 | | eckse [eckse@Nightstar-6fa75dbe.dsl.sentex.ca] has quit [Client closed the connection] |
09:10 | | You're now known as TheWatcher |
10:49 | | AnnoDomini [annodomini@Nightstar-86809d18.adsl.tpnet.pl] has joined #code |
10:57 | | gnolam [lenin@Nightstar-202a5047.priv.bahnhof.se] has joined #code |
11:38 | | Reiver [orthianz@3CF3A5.E1CD01.C6689C.33956A] has quit [Client closed the connection] |
11:39 | | Reiver [orthianz@3CF3A5.E1CD01.C6689C.33956A] has joined #code |
12:11 | | AbuDhabi [annodomini@Nightstar-142b278b.adsl.tpnet.pl] has joined #code |
12:14 | | AnnoDomini [annodomini@Nightstar-86809d18.adsl.tpnet.pl] has quit [Ping timeout: 121 seconds] |
12:15 | | Attilla [Obsolete@Nightstar-9d19ccd5.as43234.net] has joined #code |
12:24 | | Reiver [orthianz@3CF3A5.E1CD01.C6689C.33956A] has quit [Ping timeout: 121 seconds] |
12:28 | | Reiver [orthianz@3CF3A5.E1CD01.C6689C.33956A] has joined #code |
12:28 | | Attilla [Obsolete@Nightstar-9d19ccd5.as43234.net] has quit [[NS] Quit: ] |
12:35 | | Attilla [Obsolete@Nightstar-9d19ccd5.as43234.net] has joined #code |
13:39 | | Reiver [orthianz@3CF3A5.E1CD01.C6689C.33956A] has quit [Ping timeout: 121 seconds] |
13:40 | | Reiver [orthianz@3CF3A5.E1CD01.C6689C.33956A] has joined #code |
14:08 | | celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has joined #code |
14:49 | < TheWatcher> | I always find it vaguely offputting when working on something and I'm "Okay, I need a function for X, another for Y, and then one for Z. I've no idea why, but I feel like I'll need them", and then lo and behold, an hour or two later I need functions to do exactly X, Y and Z. |
14:53 | <@Tarinaky> | Everyone at my uni is going mad crazy for node.js but I'm not sure I understand what it is. |
14:53 | <@Tarinaky> | Or why it's the dogs bollocks/second coming. |
14:54 | < AbuDhabi> | I don't even know what that is. |
14:54 | < TheWatcher> | Server-side javascript system |
14:54 | <@Tarinaky> | Apparently it's more than that... |
14:54 | < TheWatcher> | Basically, you write your web app in javascript |
14:55 | <@Tarinaky> | Some kind of async IO lib. |
14:55 | <@Tarinaky> | It has stuff for doing File IO in the same way. |
14:56 | < ToxicFrog> | It's basically Twisted Javascript. |
14:56 | < ToxicFrog> | So, an asynchronous event-driven IO framework for Javascript. |
14:56 | < ToxicFrog> | Webapps are the most common use of it. |
14:58 | < TheWatcher> | Tarinaky: as for why, it'll be a fad. Such things come and go *shrug* |
14:59 | < TheWatcher> | People should jus tthe system and language that suits them and the problem best, not some system just because it's all 'kewl' and shit. |
14:59 | < ToxicFrog> | I suspect a large part of it is that this is the first widespread use of Javascript that isn't in a browser and therefor horrible. |
15:00 | < ToxicFrog> | It's actually a pretty nice language, it's just that, well, it's meant to be used in a browser. |
15:02 | < celticminstrel> | Isn't ActionScript JS-based? |
15:03 | <@Tarinaky> | Is Twisted any good? |
15:03 | < Ling> | ... it's Python |
15:03 | < celticminstrel> | I've heard it is. <_< |
15:03 | < iospace> | python <3 |
15:04 | < Ling> | It's nice to be able to share code (specifically validation stuff) between the server and the client |
15:04 | < TheWatcher> | celticminstrel: more or less |
15:06 | <@Tarinaky> | Because of recent events a friend of mine is going crazy about writing a MUD in node.js. |
15:06 | <@Tarinaky> | I'd like to one-up them if possible. |
15:06 | <@Tarinaky> | Is Twisted a good choice? Should I use anything else? |
15:08 | < Ling> | BTW, unless you've done async code before, you will be severely handicapped when trying to use an async library. If you're used to procedural, stick with that. |
15:09 | < celticminstrel> | ...? |
15:11 | <@Tarinaky> | I've done some event driven stuff in C++ before, I'm not sure if it was async though. |
15:11 | < Ling> | The logic flow is completely different. |
15:13 | < celticminstrel> | Don't some things kinda need to be async? |
15:15 | < Ling> | It's the way the library is setup, heavy async code will use callbacks very heavily and logic flow becomes difficult to follow. |
15:16 | <@Tarinaky> | But how can you do multi-user netcode without async... |
15:16 | <@Tarinaky> | >.> |
15:16 | <@Tarinaky> | Or am I missing something? |
15:16 | < ToxicFrog> | Ling: for this reason I'm much more of a fan of the coroutine/thread approach to this kind of thing. |
15:17 | < celticminstrel> | If what I did in my IRC bot counts as async, it actually makes the logic flow easier to follow... |
15:17 | < ToxicFrog> | Tarinaky: you can hide it behind yields, or you can use multithreading or multiprocessing. |
15:17 | < celticminstrel> | I used yields. |
15:17 | < Ling> | There's more than one way to handle multiple clients |
15:17 | <@Tarinaky> | Anyway. I read through the documentation of Twisted's defer and it made sense :/ |
15:18 | <@Tarinaky> | IDK. What does #code think I should use/do? |
15:18 | < Ling> | Event loop or threads are the alternatives. |
15:20 | < Ling> | Eitherway, I'm not saying don't use "async" I'm saying "beware of async *libraries*", the API is usually simple, but the resulting program has a specific logic flow that is harder to understand unless you're familliar with it. It's something that will hit you midway through. |
15:21 | < Ling> | Unless it's REST, then every message is basically on its own and you don't have to worry about state as much. |
15:22 | < TheWatcher> | Tarinaky: it depends how exactly you want to "one-up" them |
15:22 | < ToxicFrog> | Ling: to clarify - what exactly do you mean by "async" here? It's a pretty broad term. |
15:22 | < Ling> | <celticminstrel> Don't some things kinda need to be async? |
15:22 | < ToxicFrog> | Just the usual style of nonblocking IO with callback? |
15:23 | < Ling> | Whatever that was meant to mean. |
15:24 | <@Tarinaky> | TheWatcher: Enough to make them utter the catch phrase of "Stop doing so much, you're supposed to be freshers." |
15:25 | <@Tarinaky> | Learn: ALL THE THINGS! |
15:29 | < celticminstrel> | Why was I quoted? |
15:30 | < ToxicFrog> | Ling: er? You're the one who originally mentioned it: <Ling> BTW, unless you've done async code before, you will be severely handicapped when trying to use an async library. |
15:30 | < Ling> | I meant "async code" as in "code using an async library" |
15:31 | < Ling> | Like how the "procedural" in "procedural code" applies to the codebase, not a part of it. |
15:32 | < ToxicFrog> | <ToxicFrog> Just the usual style of nonblocking IO with callback? |
15:33 | < Ling> | <ToxicFrog> Ling: to clarify - what exactly do you mean by "async" here? It's a pretty broad term. <ToxicFrog> Just the usual style of nonblocking IO with callback? <-- this was replied to with... |
15:33 | < Ling> | <Ling> <celticminstrel> Don't some things kinda need to be *async*? <Ling> Whatever that was meant to mean. |
15:34 | | * celticminstrel is still confused... |
15:35 | < ToxicFrog> | Ling: ok, so what did you mean by it when you first mentioned it before celticminstrel ever brought it up? |
15:35 | < Ling> | A library that is in some what asyncronious, usually that's with callbacks. |
15:37 | < celticminstrel> | What I was thinking of is that anything involving networks needs to wait for a response before it can continue. Or something like that. |
15:37 | < Ling> | bbl |
15:40 | < ToxicFrog> | celticminstrel: yeah, that's not what "asynchronous" means. |
15:41 | < celticminstrel> | Oh okay. <_< |
15:41 | < ToxicFrog> | Synchronous IO means you make a request and wait for a response. |
15:41 | < ToxicFrog> | Eg, fwrite() is synchronous - it doesn't return until the data is written. |
15:42 | < celticminstrel> | Oh... maybe the issue is how I described it. What I meant is that that particular flow of logic can't continue until there's a response, not that the program is actually sitting there waiting until the response comes... after all, other data could come in the meantime which also needs processing... |
15:43 | | Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has quit [Connection closed] |
15:43 | <@Tarinaky> | Any suggestions on how to actually handle input once I get something listening on TCP? |
15:44 | <@Tarinaky> | Since, looking at documentation, listening seems to be the easy part. |
15:44 | < ToxicFrog> | celticminstrel: yeah, so, generally, there's three ways of handling that. |
15:45 | < ToxicFrog> | Asynchronous IO - rather than going: buf = read() which waits until data arrives; you do: async_read(callback), which returns instantly and then invokes callback when the data arrives, leaving the program free to continue and work on other stuff; |
15:45 | | * iospace throws a UART at ToxicFrog |
15:46 | < ToxicFrog> | Concurrency - each logic flow (typically, each client or session) gets its own thread or process, which can block without affecting the others; |
15:46 | < ToxicFrog> | Coroutines - kind of a combination of the above; there's only one process, but it switches contexts based on which operations are ready to complete in a manner that makes it look threaded. |
15:46 | < ToxicFrog> | (am I forgetting anything?) |
15:47 | < celticminstrel> | Aha, so I wasn't doing async then since I used yield...? |
15:48 | < ToxicFrog> | The underlying library might be. |
15:48 | < ToxicFrog> | Also, how were you using it? |
15:48 | < ToxicFrog> | The library I'm used for this (copas) -looks- blocking - you do receive() or send() in your client handler - but internally those yield, and get resumed once the operation completse |
15:51 | < celticminstrel> | What I did was something like (list,of,params) = yield(resume_condition) |
15:52 | < celticminstrel> | Where resume_condition is the IRC command or response code I wanted to continue from. |
15:53 | < ToxicFrog> | Internally that may be using async IO, but for the purposes of that logic flow, it looks like yield() just blocks until resume_condition is met, right? |
15:54 | < celticminstrel> | Yes, if you're just looking at the one function, it looks like that. |
15:55 | < celticminstrel> | But it's Python, so if you know Python I think you'd realize there's more to it. :P |
15:55 | < celticminstrel> | (generic you) |
15:55 | < ToxicFrog> | Well, the mere fact that it's using yield implies that there's a context switch there, yes. |
15:56 | < ToxicFrog> | This is the third type I was talking about - coroutines. |
16:10 | < AbuDhabi> | http://imgur.com/CB5yU <- Also, there is a thread on /tg/ right now, where they're working out the protocol. |
16:11 | < celticminstrel> | What's /tg/? |
16:12 | < AbuDhabi> | http://boards.4chan.org/tg/ |
16:12 | < AbuDhabi> | "" |
16:12 | < AbuDhabi> | "Many moons ago, /tg/ invented a grand operation often called a skeleputer, or more properly, "Deep Rot." It comprised of a complex series of skeletons, programmed, if you will, by a necromancer, to interpret other skeletons, and effectively function as circuits and logic gates, forming the core of a computer." |
16:28 | | Netsplit *.net <-> *.split quits: AbuDhabi, gnolam, iospace, Reiver |
16:28 | | Netsplit over, joins: gnolam |
16:29 | < gnolam> | http://boingboing.net/2011/12/21/how-computers-work.html |
16:29 | | gnolam is now known as 459AACCUP |
16:29 | | gnolam [lenin@Nightstar-202a5047.priv.bahnhof.se] has joined #code |
16:29 | | Netsplit over, joins: Reiver, iospace, AbuDhabi |
16:30 | | gnolam is now known as NSGuest53542 |
16:30 | | 459AACCUP is now known as gnolam |
16:32 | | NSGuest53542 [lenin@Nightstar-202a5047.priv.bahnhof.se] has quit [Ping timeout: 121 seconds] |
16:36 | < gnolam> | http://boingboing.net/2011/12/21/how-computers-work.html for those on the other side of the split. |
16:49 | | Kindamoody|out is now known as Kindamoody |
16:51 | < TheWatcher> | .... |
16:53 | < iospace> | ... |
16:53 | | * iospace eyes that link |
16:53 | < TheWatcher> | That's awesome |
16:54 | < AbuDhabi> | MAGIC. |
16:55 | < iospace> | i think those computers were around before io space was ;D |
17:00 | | Stalker [Z@Nightstar-3602cf5a.cust.comxnet.dk] has joined #code |
17:01 | | * TheWatcher ponders sending that to allstaff in work |
17:07 | < AbuDhabi> | Do it. |
17:30 | | Stalker [Z@Nightstar-3602cf5a.cust.comxnet.dk] has quit [[NS] Quit: Into the hole again, we hurried along our way, into a once-glorious garden now seeped in dark decay.] |
17:51 | | cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has quit [Client closed the connection] |
17:52 | | cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has joined #code |
17:53 | | gruber [lenin@Nightstar-202a5047.priv.bahnhof.se] has joined #code |
17:54 | | gnolam [lenin@Nightstar-202a5047.priv.bahnhof.se] has quit [Ping timeout: 121 seconds] |
17:55 | | gruber is now known as gnolam |
17:56 | | eckse [eckse@Nightstar-6fa75dbe.dsl.sentex.ca] has joined #code |
17:58 | | Tarinaky is now known as Lowpass |
18:03 | | AbuDhabi is now known as Number3 |
18:07 | < Tamber> | "Who are you?" "The new Number Three." ... ;) |
18:07 | < Number3> | That's the idea, yes. |
18:08 | < Tamber> | hehe |
18:10 | <@Lowpass> | It's Shadowrun. They have better ways to get information. |
18:10 | <@Lowpass> | You rent a shipping container, a diesel generator and a sophisticated brain-fuck rig. |
18:16 | | Kindamoody is now known as Kindamoody[zZz] |
18:17 | | eckse [eckse@Nightstar-6fa75dbe.dsl.sentex.ca] has quit [Client closed the connection] |
18:19 | | Rhamphoryncus [rhamph@Nightstar-14eb6405.abhsia.telus.net] has joined #code |
18:20 | | eckse [eckse@Nightstar-6fa75dbe.dsl.sentex.ca] has joined #code |
18:34 | | Stalker [Z@Nightstar-5aa18eaf.balk.dk] has joined #code |
18:40 | | Vash [Vash@Nightstar-8697fea9.wlfrct.sbcglobal.net] has joined #code |
18:58 | <~Vornicus> I must be crazy |
18:58 | < Tamber> | You've only just come to this conclusion? |
18:58 | <~Vornicus> I'm considering a geometry shader mod for minecraft. |
19:01 | <~Vornicus> WHich would mean learning how to make geometry shaders~ |
19:01 | < Tamber> | Well, best way of learning anything is to try it, right? :p |
19:01 | <~Vornicus> Of course |
19:02 | < Vash> | TAmber |
19:02 | < Vash> | Don't encourage him, dammit |
19:02 | < Tamber> | :D |
19:02 | < Vash> | I'm not sure if I have to compete with the geometry shader... Or if I'm going to get dumped for geometry shader |
19:03 | <~Vornicus> Actually though I had two different ideas, one of which is almost sensible and the other of which would require significant physics engine work. |
19:06 | < Rhamphoryncus> | I'd rather make a minecraft clone. Just to play with the rendering performance of variable-detail voxels |
19:07 | <~Vornicus> (what i'd do for the sensible one is jitter each vertex) |
19:07 | < Rhamphoryncus> | Notch tried that once. Looked hideous |
19:08 | <~Vornicus> Really? huh. |
19:08 | < Rhamphoryncus> | Now if you jitter the texture, that's another matter |
19:09 | < Rhamphoryncus> | You could smooth the edges too |
19:10 | <~Vornicus> The other crazy idea I had was "depixelization" |
19:11 | <~Vornicus> Which I grant would be absolutely ridiculous in 3d. |
19:11 | < Rhamphoryncus> | But if you do a lot of smoothing you need to tie it in to the physics. Automatic ramps and such |
19:11 | <~Vornicus> Yeah. |
19:11 | < Rhamphoryncus> | And you could give most blocks both rough and smoothed variants, to control texture variations and subtle add-on bits |
19:12 | < Rhamphoryncus> | what's depixelization mean? |
19:12 | <~Vornicus> http://research.microsoft.com/en-us/um/people/kopf/pixelart/ |
19:13 | < Tamber> | ...huh, neat. |
19:13 | < Rhamphoryncus> | interesting |
19:13 | <~Vornicus> I don't think I'd want the full sequence; just up to the voronoi regions |
19:14 | < Rhamphoryncus> | That is what I'd want from automatic smoothing, but much much simpler for one reason: you're building your world to match the smoothing algorithm, not the other way around |
19:14 | <~Vornicus> Also since there is no ambiguity about the physics of the game, the diagonal choosing tricks are vastly reduced. |
19:15 | < Rhamphoryncus> | yup |
19:17 | < Rhamphoryncus> | Looks like their Mario 2 is glitched by the ear: http://research.microsoft.com/en-us/um/people/kopf/pixelart/supplementary/compar ison_epx.html |
19:18 | < Rhamphoryncus> | But yeah, I want to take minecraft but bump the resolution up by a factor of 2 or 4, make it involve a lot of smooth or tooled surfaces, then make it apply automatic LoD |
19:20 | <~Vornicus> Weird, I missed that one. I wonder why that glitch exists. |
19:21 | < Rhamphoryncus> | Jitter could work, but not as jitter. You'd have to do something like.. I forget that name, that density map thing he uses for world generation |
19:23 | <~Vornicus> Perlin noise. |
19:23 | < Rhamphoryncus> | thanks |
19:24 | < Rhamphoryncus> | Do that as a way to add little bumps and such |
19:27 | < Rhamphoryncus> | Hopefully you could make tooled blocks be a little smaller than rough, to be more realistic with you taking away material |
19:28 | <~Vornicus> Hrng. I cannot find a link to any vertex jitter images that notch might have made. |
19:29 | < Rhamphoryncus> | I have some interest in mixed blocks too. Gravel saturated with water (possibly including pressure), gratings that let water through, etc |
19:29 | <~Vornicus> I would like to judge the hideousness for myself~ |
19:42 | < Rhamphoryncus> | Grar. Still haven't found it |
19:48 | < Rhamphoryncus> | Heh, found an old post that mentioned preventing walk-through-wall hacks.. which makes it clear that the client-server protocol is based on teleportation :P |
19:52 | < Rhamphoryncus> | Oh, another thought I'd had: indexed compression scheme. If you break the world up into 16x16x16 chunks you'll find only a few block types appear in each, so you could stick an index at the start and chop down the number if bits you use |
19:52 | < Rhamphoryncus> | That also lets it be extensible |
19:52 | <~Vornicus> One would think RLE would be essentially your first step. |
19:53 | < Rhamphoryncus> | Maybe, maybe not |
19:54 | < Rhamphoryncus> | For air you could, but underground? Minecraft is far too consistent IMO. There should be many more types of stone |
19:54 | < celticminstrel> | Minecraft doesn't distinguish regular movement from teleportation, yeah. |
19:59 | | * Rhamphoryncus contemplates the efficiency of sqlite on many small and variable sized blobs |
20:01 | <~Vornicus> When you say "efficiency", what operations are you fiddling with? What alternative systems are you comparing it with? |
20:03 | < Rhamphoryncus> | Storing individual blocks in a DB, loading the entire map into memory at once, or whatever crap minecraft uses |
20:05 | <~Vornicus> Minecraft carries 16x16x128 chunks, zipped, then packages those into files by region, which are 64x64 chunks. |
20:06 | < Rhamphoryncus> | I want ACID compliance, which minecraft doesn't have and makes it a lot harder |
20:06 | < Rhamphoryncus> | And I want it to be extensible |
20:06 | < Rhamphoryncus> | And since I'm using smaller blocks the data set is at least 8 times larger |
20:10 | < Rhamphoryncus> | ACID means some sort of journaling scheme, which leads me to wonder how efficient I'd be |
20:13 | < Rhamphoryncus> | If I were to do it by hand I might have superblocks (compareable to a minecraft region) that each have their own journal. They'd be synchronized and interleaved so rollback would go to a common point, but once a certain point is committed I could pick one superblock at a time to rewrite and restart the journal |
20:18 | < Rhamphoryncus> | hmm, probably better to use one journal file for that, just take the oldest entry and select all the entries matching your superblock |
20:22 | | cpux|2 [cpux@Nightstar-c5874a39.dyn.optonline.net] has joined #code |
20:23 | | cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has quit [Ping timeout: 121 seconds] |
21:44 | | Reiver [orthianz@3CF3A5.E1CD01.C6689C.33956A] has quit [Ping timeout: 121 seconds] |
21:48 | | Reiver [orthianz@3CF3A5.E1CD01.C6689C.33956A] has joined #code |
22:07 | | Reiver [orthianz@3CF3A5.E1CD01.C6689C.33956A] has quit [Ping timeout: 121 seconds] |
22:12 | | Reiver [orthianz@3CF3A5.E1CD01.C6689C.33956A] has joined #code |
23:05 | | Reiver [orthianz@3CF3A5.E1CD01.C6689C.33956A] has quit [Ping timeout: 121 seconds] |
23:09 | | Reiver [orthianz@3CF3A5.E1CD01.C6689C.33956A] has joined #code |
23:18 | | Number3 is now known as AnnoDomini |
23:19 | | Lowpass is now known as Tarinaky |
--- Log closed Fri Dec 23 00:00:26 2011 |