05:28 -!- TobiX [tobias@zoidberg.org] has joined #mcdevs 05:30 -!- Wulfspider [~Wulf@talk.spout.org] has quit [Ping timeout: 276 seconds] 05:42 -!- eddyb [~eddy@unaffiliated/eddyb] has joined #mcdevs 05:42 -!- Wulfspider [~Wulf@talk.spout.org] has joined #mcdevs 05:50 -!- evil_dan2wik is now known as lua 05:50 -!- Zachoz|Away is now known as Zachoz 05:51 -!- lua is now known as evil_dan2wik 06:08 -!- bobness [~silver@c-24-21-121-12.hsd1.or.comcast.net] has quit [Ping timeout: 256 seconds] 06:35 -!- RainbowDashTable [~cathode@c-76-105-184-52.hsd1.or.comcast.net] has joined #mcdevs 06:40 -!- GameMakerGm [~gamemaker@wikia/Gamemakergm] has joined #mcdevs 07:18 -!- Scootabyte [~Scootabyt@crown-7-41.resnet.ucsc.edu] has quit [Ping timeout: 256 seconds] 07:29 -!- Paprikachu [~Paprikach@178.115.250.80.wireless.dyn.drei.com] has quit [Remote host closed the connection] 07:45 -!- SpaceManiac [~SpaceMani@r74-192-152-131.gtwncmta01.grtntx.tl.dh.suddenlink.net] has quit [Ping timeout: 252 seconds] 07:46 -!- SpaceManiac [~SpaceMani@r74-192-152-131.gtwncmta01.grtntx.tl.dh.suddenlink.net] has joined #mcdevs 07:46 -!- mode/#mcdevs [+v SpaceManiac] by ChanServ 08:07 -!- kahrl [~kahrl@p5790CB0B.dip.t-dialin.net] has joined #mcdevs 08:09 -!- kahrl [~kahrl@p5790CB0B.dip.t-dialin.net] has quit [Client Quit] 08:14 -!- SpaceManiac [~SpaceMani@r74-192-152-131.gtwncmta01.grtntx.tl.dh.suddenlink.net] has quit [Ping timeout: 255 seconds] 08:19 -!- GameMakerGm [~gamemaker@wikia/Gamemakergm] has quit [] 08:27 <+md_5> [01:31:59] i don't have mc client 08:27 <+md_5> codes mc server: doesnt own a client 08:27 <+md_5> how do you even know you can log in? 08:28 -!- Paprikachu [~Paprikach@80.120.175.113] has joined #mcdevs 08:28 < dx> maybe he tests with a rcon/query/server list client 08:28 <+md_5> still doesnt let him log in 08:29 <+md_5> also this is the guy who codes in header files and uses epoll/select with 2 threads per connection, and a thread for each antity 08:29 < dx> maybe his mc sever doesn't support the network protocol at all 08:29 <+md_5> and keeps entire map loaded in ram 08:29 < dx> ah lol that guy 08:29 -!- SpaceManiac [~SpaceMani@r74-192-152-131.gtwncmta01.grtntx.tl.dh.suddenlink.net] has joined #mcdevs 08:29 -!- mode/#mcdevs [+v SpaceManiac] by ChanServ 08:29 < dx> yeah, my reaction when i saw his header files... well... 08:29 < dx> let's leave it there. 08:30 < dexter0> Recursion must give him nightmares. 08:30 < dx> don't want to include details about misplaced digestive fluids in this channel 08:31 <+md_5> cant find a good meme for codes mc server: doesnt own a client 08:31 < dx> you probably need to mix a few memes to get a good one 08:34 < dx> md_5: maybe just the [10] guy 08:35 < dx> (the one who's really high) 08:37 <+md_5> dx http://www.quickmeme.com/meme/3t9v73/ 08:37 < dx> perfect 08:39 -!- Paprikachu [~Paprikach@80.120.175.113] has quit [Remote host closed the connection] 08:39 -!- Paprikachu [~Paprikach@178.115.248.69.wireless.dyn.drei.com] has joined #mcdevs 08:40 < dx> >trolls.lv:1337 08:40 < dx> not sure if the hostname of his mc server is relevant 08:43 -!- kcj [~casey@unaffiliated/kcj] has quit [Ping timeout: 252 seconds] 08:43 -!- Justasic [~Justasic@unaffiliated/justasic] has quit [Ping timeout: 252 seconds] 08:45 -!- Justasic [~Justasic@unaffiliated/justasic] has joined #mcdevs 09:08 -!- Justasic [~Justasic@unaffiliated/justasic] has quit [Ping timeout: 252 seconds] 09:10 -!- Justasic [~Justasic@unaffiliated/justasic] has joined #mcdevs 09:16 -!- mappum [~mappum@c-67-170-21-29.hsd1.wa.comcast.net] has quit [Ping timeout: 255 seconds] 09:16 -!- conehead [~conehead@unaffiliated/conehead] has quit [Quit: Computer has gone to sleep.] 09:48 -!- MooseElkingtons [~Moose@buttshare.net] has quit [Read error: Operation timed out] 09:49 -!- Moose- [~Moose@buttshare.net] has joined #mcdevs 09:55 -!- Paprikachu [~Paprikach@178.115.248.69.wireless.dyn.drei.com] has quit [Remote host closed the connection] 09:57 -!- Paprikachu [~Paprikach@178.115.249.200.wireless.dyn.drei.com] has joined #mcdevs 10:03 -!- Broken_Syntax [~Nimbus@CPE001310777336-CM602ad07871c0.cpe.net.cable.rogers.com] has quit [Read error: Connection reset by peer] 10:04 -!- Broken_Syntax [~Nimbus@CPE001310777336-CM602ad07871c0.cpe.net.cable.rogers.com] has joined #mcdevs 10:19 -!- Moose- [~Moose@buttshare.net] has quit [Read error: Operation timed out] 10:23 -!- Moose- [~Moose@buttshare.net] has joined #mcdevs 10:23 -!- Moose- is now known as MooseElkingtons 10:27 -!- dx [~dicks@unaffiliated/dxdx] has quit [Ping timeout: 255 seconds] 10:27 -!- bobness [~silver@c-71-236-226-215.hsd1.wa.comcast.net] has joined #mcdevs 10:28 -!- dx [~dicks@unaffiliated/dxdx] has joined #mcdevs 10:52 -!- Xaardas [~tach@p5483C108.dip.t-dialin.net] has joined #mcdevs 11:15 -!- edlothiol [~edlothiol@2a02:810b:80c0:27:76e5:bff:fe22:870a] has joined #mcdevs 11:16 -!- SpaceManiac [~SpaceMani@r74-192-152-131.gtwncmta01.grtntx.tl.dh.suddenlink.net] has quit [Ping timeout: 276 seconds] 11:37 -!- Paprikachu [~Paprikach@178.115.249.200.wireless.dyn.drei.com] has quit [Remote host closed the connection] 11:39 -!- Paprikachu [~Paprikach@77.116.247.97.wireless.dyn.drei.com] has joined #mcdevs 11:52 -!- Scootabyte [~Scootabyt@crown-7-41.resnet.ucsc.edu] has joined #mcdevs 11:52 -!- mode/#mcdevs [+v Scootabyte] by ChanServ 11:55 -!- Justasic2 [~Justasic@174-25-82-237.ptld.qwest.net] has joined #mcdevs 11:56 -!- Justasic [~Justasic@unaffiliated/justasic] has quit [Ping timeout: 256 seconds] 11:57 -!- Justasic2 is now known as Justasic 11:58 -!- Justasic [~Justasic@174-25-82-237.ptld.qwest.net] has quit [Changing host] 11:58 -!- Justasic [~Justasic@unaffiliated/justasic] has joined #mcdevs 12:07 -!- Stormx2 [~Stormx2@cpc18-sotn9-2-0-cust33.15-1.cable.virginmedia.com] has joined #mcdevs 12:13 -!- SpaceManiac [~SpaceMani@r74-192-152-131.gtwncmta01.grtntx.tl.dh.suddenlink.net] has joined #mcdevs 12:13 -!- mode/#mcdevs [+v SpaceManiac] by ChanServ 12:14 -!- Grum [~grum@irc.grum.nl] has quit [Ping timeout: 272 seconds] 12:16 -!- Grum [~grum@irc.grum.nl] has joined #mcdevs 12:16 -!- Scootabyte [~Scootabyt@crown-7-41.resnet.ucsc.edu] has quit [Ping timeout: 245 seconds] 12:16 -!- Scootabyte [Scootabyte@crown-5-224.resnet.ucsc.edu] has joined #mcdevs 12:16 -!- mode/#mcdevs [+v Scootabyte] by ChanServ 12:20 < pbunny> hi, client crashes when i send 'spawn mob' packet 12:20 < pbunny> any suggestions? 12:26 -!- Paprikachu [~Paprikach@77.116.247.97.wireless.dyn.drei.com] has quit [Remote host closed the connection] 12:29 -!- TomyLobo [~foo@91-66-94-221-dynip.superkabel.de] has joined #mcdevs 12:30 -!- Paprikachu [~Paprikach@178.115.250.240.wireless.dyn.drei.com] has joined #mcdevs 12:34 -!- Scootabyte [Scootabyte@crown-5-224.resnet.ucsc.edu] has quit [Quit: Leaving] 12:38 <+md_5> pbunny how would you know? You dont have the client 12:39 <+md_5> unless you pirated 12:39 <+md_5> in which case gtfo 12:40 < pbunny> md_5: a guy tries and gets crash 12:40 <+md_5> you are gonna have fun writing a server without owning the client 12:40 <+md_5> seriously, how the f** did you get this far 12:40 < edk> md_5, by lying 12:40 < pbunny> md_5: http://dpaste.org/IbgPM/raw/ 12:40 < pbunny> edk: no. 12:41 < pbunny> md_5: as you see, client actually lists 'Pig' entity in crash dump 12:41 < pbunny> so it parsed it 12:41 < pbunny> why did it crashed? 12:51 < Grum> because it got a NPE 12:53 -!- act4 [1f073cdc@gateway/web/freenode/ip.31.7.60.220] has joined #mcdevs 12:55 < pbunny> Grum: NPE? 12:55 < Grum> NullPointerException 12:55 < edk> (like it says in the error report) 12:55 < pbunny> yeah, and NullPointerException can mean anything 12:55 < pbunny> java sucks totally 12:56 < Grum> not really, you just used a nullpointer :p 12:56 < pbunny> if i don't send 0x18 packet, client does not crash 12:56 < pbunny> Grum: its a native client 12:56 < pbunny> i just sent 0x18 to it 12:56 < Grum> i guess you have to send more 12:56 < Grum> or with proper information 12:58 < pbunny> well it is correct according to http://wiki.vg/Protocol 12:58 < Grum> but the question remains, is THAT correct 12:59 < pbunny> i didn't sent Entity (0x1E) though 12:59 < pbunny> i haven't need it for item entities 12:59 < edk> java does kinda suck 13:00 < Grum> every language sucks 13:00 < edk> yep 13:00 < edk> in their own way, most things are shit 13:00 < pbunny> and is it safe to send 127 in metadata for any mob? 13:00 < edk> the reason java annoys me particularly is it tries to be all not crashy and predictable and compile time and type safe 13:00 < Grum> try and figure out pbunny :D 13:00 < pbunny> still waiting for him to try 13:01 < Grum> edk: erm 'not crashy' and 'predictable' and 'typesafe' are bad? O.o 13:01 < edk> oh, they would be if it worked 13:01 < edk> wouldn't be* 13:01 < edk> I mean, yes, it's type safe 13:01 < edk> but it doesn't make it crash any less, or need less testing 13:01 < edk> so I don't see the point 13:01 < Grum> euuh 13:02 < Grum> *ALL* code needs testing 13:02 < edk> right 13:02 < Grum> no matter what language 13:02 < edk> I agree 13:02 < edk> but that makes me ask the question "why bother having a pessimistic language if you have to test it anyway?" 13:02 < pbunny> 'typesafe' is ridiculous 13:02 < edk> you're ridiculous 13:02 < Grum> euuh wtf? 13:02 < pbunny> in C i can set any pointer to anything 13:03 < edk> I quite like type safety 13:03 < pbunny> no matter the type 13:03 < Grum> awesome nonsense arguments >.> 13:03 < edk> I just don't like the attitude in java 13:03 < Grum> which attitude in java? 13:03 < pbunny> 'predictable' is also BS as it depends on programmer's skill 13:03 < edk> It's hard to pin down. I feel like java has this idea that by making you type a type name enough times, it somehow becomes harder for things to crash 13:03 < pbunny> java is not more 'predictable', java is more 'predictable for noobs' 13:03 < Grum> erm what? 13:04 < Grum> you use an IDE right? 13:04 < Grum> i dont see any problems 13:04 < pbunny> no. 13:04 < pbunny> i use nano 13:04 < edk> yeah, but you're insane 13:04 < Grum> i mean, you wouldnt code java without an ide, if not ... well ..... stop being so daft 13:04 < pbunny> i never code java 13:04 < edk> this is what I don't get 13:04 < Zachoz> Then how can you say it's shit? 13:04 < edk> my complaints about Java may be unreasonable and unfair, but at least I used it before making assertions about it :P 13:05 < Grum> edk: next you are going to argue that a variable named of a single letter is 'much better' than one that describes the meaning properly 13:05 < edk> not so 13:05 < pbunny> edk: i tried to use it 13:05 < edk> but the java way where there's millions of casts everywhere... ugh 13:05 < Grum> erm there is not a single cast anywhere 13:05 < pbunny> when it attempted to javize my brain i threw it away 13:05 < edk> maybe that's a problem with the way specific people write java 13:05 < pbunny> there is actually 'brain java' disease 13:05 < Grum> i've just written ~300 lines of code without having to cast anything 13:05 < pbunny> people start to think like in java, with object and stuff 13:05 < Grum> i think you just suck at writing clean code :) 13:06 < edk> I write plenty of java without many casts in it 13:06 < Grum> or do not understand some of the basic concepts 13:06 < edk> but I see a lot of java that does have them in 13:06 < edk> while we're on the subject of things I don't like about java, fucking generics 13:06 < edk> grrrrr 13:06 < Grum> there are some points where you need casting; not so many 13:06 < pbunny> java is about using 50Mb of RAM for player structure 13:06 < edk> it's not about that 13:06 < Grum> pbunny: its not? 13:06 < pbunny> Grum: official server uses about that 13:07 < pbunny> that's why no 1000+ online server yet 13:07 < edk> one wonders how you worked this out 13:07 < pbunny> not even 100+ online iirc 13:07 < Grum> just for the player structure?.... not really 13:07 < edk> and why you insist on using b for bytes 13:07 < Grum> pbunny: no that is not at all the reason 13:07 < pbunny> edk: because theres also MiB abbrevuature 13:07 < Zachoz> "pbunny: not even 100+ online iirc".. Are you kidding...? 13:07 < pbunny> and nobody needs to concern about bits for at least 20 years 13:07 < edk> however Mb is clearly megabits 13:07 < edk> ... 13:07 < edk> you're retarded 13:07 < pbunny> Zachoz: is there 100+ online server anywhere? 13:08 < pbunny> i mean - a server, not collection of servers 13:08 < edk> fuck yes there are 13:08 < Grum> stop whining about how you captitalize the units god 13:08 < Zachoz> Yes... There's quite a few, actually. 13:08 < Grum> he said 1000+ 13:08 < edk> Grum, it's a different fucking unit 13:08 < pbunny> hmh 13:08 < edk> no he didn't 13:08 < Grum> LEARN TO READ Zachoz 13:08 < edk> not even 100+ online iirc 13:08 < Zachoz> ^ 13:08 < edk> b and B are not the same thing 13:08 < edk> if it were almost any other letter I wouldn't give a shit 13:08 < Grum> edk: its not, if you mean megabit just fucking type mbit not mb Mb MB mB ... 13:09 < Grum> are you really saying that you ONLY read 'mb' as millibit or millibar? 13:09 < edk> you know what? take that up with SI, not me 13:09 < edk> no, but Mb and MB are equally valid as units of data 13:10 < edk> just one's 8 times the size of the other 13:10 < edk> and I use both units fairly frequently at work 13:10 < Grum> not really; Mega bar is not really a useful measuring tool 13:10 < edk> megabit and megabyte 13:10 < Grum> right lets just stop whining about the capitalization of a letter kk? 13:10 <+Fador> ...you really measure memory usage in bits? 13:11 < edk> who said I measure memory usage in them? 13:11 < Grum> edk: god .... 13:11 < Grum> its just fador who thinks he can be super funny >.> 13:11 < edk> i'm quite happy to stop arguing about it 13:12 < edk> i just get caught up in arguments and then don't want to "lose" 13:12 < Grum> anyhow, pbunny, i'd like to see your 'proof' for the player-structure taking 50mbit/mb 13:12 < edk> i know that's silly 13:12 < edk> yeah, I'm unconvinced by that 13:12 < Grum> i know it is not true 13:12 < Grum> so feel free to prove it otherwise 13:12 < edk> still, a rewritten server would go faster 13:12 < Grum> faster what? 13:12 < edk> but it would go faster if it were rewritten in java, too 13:12 < edk> faster than the current one 13:13 < Grum> define faster 13:13 < edk> *sigh* 13:13 < pbunny> edk: not quite 13:13 < Grum> yes, be fucking specific for once 13:13 < edk> well, let's settle for "take fewer CPU cycles per tick" 13:13 < pbunny> you can't just code something fast in java 13:13 < Grum> faster what? logging in? higher tps? faster ping times? 13:13 < Grum> pbunny: false statement 13:13 < pbunny> because i.e. when you do a=2+5 java actually executes about 500 CPU instructions 13:13 < edk> logging in bottleneck isn't the server, as far as I know, it's doing the authentication dance 13:14 < Grum> pbunny: really? 13:14 < edk> pbunny, consider reading about some of the optimizations the JVM has enjoyed since being invented 13:14 < pbunny> edk: still it uses more than 10 instructions for addition 13:14 < pbunny> i.e. bounds checking 13:14 < Grum> that would mean it is at least 125 slower than ANYTHING out there 13:14 < pbunny> and don't forget about garbage collector! 13:14 < edk> garbage collection is a real weakness of java 13:14 < pbunny> it just stops everything and does its dirty work 13:14 < Grum> which would mean a client not running java but c would have 2500 fps on my machine? 13:14 < edk> however, it's better than a few alternatives 13:14 < Grum> and AT MINIMUM 125fps on ANY machine? 13:15 < edk> Grum, well, unless the bottleneck is the gpu 13:15 < edk> anyway, GC is a pain in the ass, and it is a problem 13:15 < Grum> pbunny: it stops everything? seriously? >.> 13:15 < pbunny> Grum: yeah. it can't check memory during its changing 13:15 < edk> but if the alternative is your horrible C that leaks allocated storage everywhere... 13:15 < pbunny> edk: my C leaks nothing 13:15 < edk> I'll believe that when I see it 13:16 < Grum> then again, you do not have a server written 13:16 < pbunny> and it uses abotu 80Mb for everything 13:16 < Alan> oh boy 13:16 < pbunny> Grum: partially written 13:16 < Grum> without anyone online? 13:16 < Grum> epic 13:16 < Grum> that is even worse than the official server >.> 13:16 < Alan> what a fun channel this is 13:16 < pbunny> Grum: it uses about 300 bytes per player online 13:16 < Grum> pbunny: then its not a minecraft server 13:16 < pbunny> ... 13:16 < Alan> half a proof-of-concept that isn't feature complete isn't really comparable... 13:17 < Grum> because it is 100% impossible to have that little memory usage for an online player *AND* actually have a proper minecraft server 13:17 < edk> well 13:17 < Grum> s/proper/featureful/ 13:17 < Grum> s/featureful/feature complete/ 13:17 < Grum> lets be more exact :) 13:17 < pbunny> Fador: can you please show me code that sends 0x18 (Spawn Mob) packet? 13:18 < edk> I'm trying to think about what you actually need to store for a player 13:18 < pbunny> Grum: why? 13:18 < pbunny> Grum: i store player's location, inventory, network stuff 13:18 < Grum> pbunny: because each player has to have at least 19*16x19*16x256 blocks loaded around itself 13:18 < pbunny> LOL 13:18 < edk> I think he's discounting that 13:18 < Grum> i know he is 13:18 < pbunny> now that's a java thinking 13:18 < edk> you can have single inventory items that take more than 300B though 13:18 < Grum> pbunny: no its not 13:18 < edk> pbunny, that's stupid 13:18 < pbunny> Grum: why the hell should i store the map in player's structure???? 13:19 < edk> that's just someone interpreting the question different from you 13:19 < Grum> pbunny: quote me where i say that you store that IN the player structure? 13:19 < pbunny> Grum: if 1000 players will be standing on the same place - i must store the map around them 1000 times? 13:19 < pbunny> oh god why 13:19 <+Fador> pbunny: https://github.com/fador/mineserver/blob/master/include/protocol.h#L111 13:19 < Grum> quote me. 13:19 < Grum> because you are just making shit up 13:20 < edk> I wouldn't bother waiting for that quote :P 13:20 < pbunny> 13:37:23 Grum | pbunny: because each player has to have at least 19*16x19*16x256 blocks loaded around itself 13:20 < Grum> i'm saying it should be loaded, not saying WHERE it should be stored/loaded 13:20 < edk> pbunny, although a couple of the problems you have listed in java are actually real problems 13:20 < Grum> yes, loaded around itself, i'm not saying anything about WHERE to store that 13:20 < edk> you seem to completely misunderstand their significance and when they apply 13:20 < edk> so I'm inclined to say you don't actually know anything about java at all 13:20 < pbunny> Grum: why would server keep a copy of map that he loaded? 13:20 < pbunny> why would it take memory on server? 13:20 < Grum> because that is what a feature complete minecraft server does 13:20 < Grum> but you'll figure that out when you grow up 13:20 < pbunny> storing a map for every player? 13:20 <+Fador> pbunny: metadata should be just (int8_t)127 if no metadata is present 13:20 < Grum> no .... 13:21 < Grum> loading the world-data around players in memory 13:21 < pbunny> Fador: well i send 127 13:21 < edk> I have to go 13:21 < edk> have fun 13:21 < edk> pbunny, try not to hurt your brain 13:22 < Grum> pbunny: you do far too many assumptions 13:22 < pbunny> Fador: << (int8_t)0 << (int8_t)0 << metadata; 13:22 < Grum> but you'll find out soon enough why its not trivial to be a feature complete minecraft server 13:22 < pbunny> what are these 2 zeros there? o.O 13:22 < Grum> *AND* be fast 13:22 < pbunny> Grum: map is already loaded on server... 13:22 < pbunny> it is always kept there loaded...... 13:22 < Grum> the whole map? 13:22 < pbunny> yeah 13:22 < Grum> lol ... 13:22 <+Fador> pbunny: not sure..it might still be using some older protocol version because I haven't updated everything =/ 13:23 < Grum> you do realize that people have a 1.5gb map very often? 13:23 < pbunny> Fador: i will try these zeros 13:23 < Grum> or even far far bigger 13:23 < pbunny> Grum: do you realize my server has 8Gb of RAM? 13:23 < pbunny> and it will have 256Gb 13:23 < Grum> >.> 13:23 < pbunny> 256Gb is quite enough for everything 13:23 < jast> Grum: we've done all this before 13:23 < Grum> will be nice startup times then for you lol :p 13:23 < pbunny> Grum: nice performance on other hand 13:23 < jast> if you're not in it for the entertainment, you can't back out too early 13:23 < Grum> loading the whole world into ram, epic startup wait >.> 13:24 < pbunny> Grum: so? 13:24 < pbunny> good performance after it for everything 13:24 < Grum> pbunny: yeah because waiting 20 minutes before your whole world is loaded is worth it >.> 13:24 < pbunny> and world will be a true world, not 'combined singleplayer' 13:24 < Grum> what? 13:24 < pbunny> mobs will be independent etc 13:24 < Grum> that makes no sense at all 13:24 < pbunny> think about it some more then 13:24 < Grum> 'true world', 'combined singleplayer' 13:24 < Grum> those terms mean nothing 13:25 < jast> he's explained it before 13:25 < pbunny> yeah, currently mc servers offer 'combined singleplayer' 13:25 < pbunny> no players -> nothing happens 13:25 < Grum> what? O.o 13:25 < Grum> euuh 13:25 < pbunny> world is saved and stopped 13:25 < Grum> no stuff happens in the areas of the world that is loaded 13:25 < pbunny> until player comes 13:25 < jast> the idea is, apparently, that supposedly it's 5000% better if the world still updates everywhere even when nobody is near (or even logged in) 13:25 < Grum> lol 13:25 < Grum> LOL 13:25 < jast> yes 13:25 < jast> exactly 13:25 < Grum> good luck running out of cpu on the best of machines 13:25 < pbunny> jast: yes, it allows for better realism 13:25 < Grum> there is a good reason we unload parts of the world 13:26 < jast> Grum: oh, but what you don't know is that pbunny is a self-certified genius and master of C 13:26 < pbunny> Grum: CPU usage is about 1% for processing world and physics for 1000 entities 13:26 < Grum> only 1000 yes 13:26 < Grum> but entities would keep spawning 13:26 < pbunny> and its when running via valgrind compiled with debug 13:26 < jast> so for 100000 entities it's 100% :) 13:26 < Grum> because the world is loaded 13:26 < pbunny> jast: if running via valgrind 13:26 < jast> yeah yeah 13:26 < jast> we haven't considered a bigger world yet 13:26 < Grum> so yeah, having a couple of million entities and dont forget all the other stuff the server has to do 13:26 < pbunny> Grum: sure, no problem 13:26 < Grum> really? 13:26 < Grum> and how fast do you think to finish this server? 13:26 < jast> if the surface of the world increases by a factor of 2, the RAM required increases by a factor of up to 512 13:27 < Grum> that 'has no problem' having thousands of people online while keeping any map that fits in memory loaded forever? 13:27 < jast> in short, web scale! 13:27 < Grum> because i'd like to see it :) 13:27 < Grum> oh, and obviously do *everything* the current minecraft does logicwise 13:27 < jast> you will, Real Soon Now(tm) 13:28 < jast> did we mention that pbunny does not have a minecraft client? 13:28 < Grum> oh also, how will it get to this size world? 13:28 < pbunny> jast: what do you mean by "surface of the world increases"? 13:28 < Grum> pbunny: people explore 13:28 < pbunny> what exactly increases by factor of 2? 13:28 < pbunny> Z size? X size? 13:28 < Grum> or do you plan to pre-gen a 60million*60million world? 13:28 < jast> surface area 13:28 < pbunny> Grum: no. 13:28 < Grum> so how do you plan to do worldgeneration? 13:28 < jast> surfaces are two-dimensional 13:28 < pbunny> Grum: i already done that 13:28 < Grum> did you also do the lighting of them? 13:28 -!- act4 [1f073cdc@gateway/web/freenode/ip.31.7.60.220] has quit [Ping timeout: 245 seconds] 13:29 < pbunny> just call the relevant function of needed world prior to using this chunk 13:29 < jast> oh please, lighting is for free! didn't you know? 13:29 < Grum> also i really wouldnt want to see this code in c 13:29 < Grum> i mean it must have locks all over the place :) 13:30 -!- Zachoz is now known as Zachoz|Away 13:30 < Grum> beceause the only way you'll get remotely close to what you claim to achieve performance wise is to use every single core on a system 13:30 < Grum> and good fucking luck with the locking :) 13:30 < pbunny> Grum: http://dpaste.org/P7mog/ - here you go 13:31 < pbunny> common world loop, some physics stuff, handling of dumping entities to players 13:31 < Grum> and no threading 13:31 < Grum> i'd love to see your lighting code 13:31 < Grum> assuming it is feature complete and correct 13:31 < pbunny> no threading? 13:31 < jast> because it's so cheap, let's implement radiosity, too 13:31 < Grum> wait; there is threading 13:31 < Grum> nevermind :) 13:32 < Grum> the fact that 95% of the code is on the righthand side of my page kinda raises a huuuuuge red flag btw 13:34 < jast> hey, m*n loop on entities? awesome 13:34 < pbunny> Grum: http://dpaste.org/MQNyD/raw/ 13:34 < pbunny> boo! 13:34 < jast> and it's even symmetrical 13:34 < Grum> but i'm really curious how you did your block and skylighting calculations 13:35 < jast> oh, actually it's an m*n*p loop in some situations 13:35 < pbunny> Grum: search for "chunk_set_block" there 13:35 < pbunny> or chunk_set_field / chunk_set_hfield 13:35 < jast> i.e. one billion iterations for 1000 entities 13:35 < Grum> that doesn't set any light pbunny 13:35 < Grum> you just set the heightmap 13:35 < pbunny> jast: i will optimize that 13:36 < pbunny> split entities by quadrants 13:36 < pbunny> so only nearby ones will be concerned 13:36 < pbunny> Grum: i haven't implemented lighting yet, but you can set it with chunk_set_hfield 13:36 < Grum> pbunny: i'm missing the skylight and blocklight calculations 13:36 < jast> oh see, he just hasn't implemented it yet 13:36 < Grum> you cant just 'set' a light value without doing propagation 13:37 < jast> but of course we all know how easy it is to do that 13:37 < pbunny> jast: easier than making client not crash on pig entity packet receive 13:37 < pbunny> :| 13:37 < jast> if you say so 13:37 < Grum> also, all of your macros are broken, unless c++ automatically puts ()'s around your arguments :) 13:38 < pbunny> no. 13:38 < pbunny> ( ) are not required 13:38 < pbunny> go learn some C 13:38 < jast> well, they aren't if he happens to be using variable names whenever he passes stuff 13:38 < pbunny> right 13:38 < jast> if he doesn't... boom 13:38 < Grum> erm they are pbunny? if you define a macro as: foo(i) { return i*2; } you better make that return (i)*2 13:39 < pbunny> Grum: not quite 13:39 < jast> oh, but you never pass something more complex than 'foo' to macros. everyone knows that! 13:39 < Grum> because when you'd ever be passing in: 1+1 as argument for i 13:39 < jast> err, bad example word :) 13:39 < Grum> it expands to: return 1+1*2 ... which is NOT 2 :P 13:39 < pbunny> Grum: if i would need to pass 1+1, i will use ( ) 13:39 < jast> foo(1+1) == 3! yay! 13:39 < pbunny> don't worry about that 13:39 < Grum> pbunny: oooh wait; so when you use the macro with a composed argument you will remember to fix up your macro? 13:39 < jast> so you always have to remember which things you're calling are macros and which aren't. you must really hate yourself... 13:40 < pbunny> Grum: of course 13:40 < Grum> i mean, that is not at all a way that will give you unexpected bugs at any time 13:40 < pbunny> jast: everything are macros there 13:40 < pbunny> except for main() and thread functions 13:40 < jast> yeah, because you hate yourself, right 13:40 < pbunny> and some init functions that are called only once 13:40 < pbunny> jast: what is wrong with defines? 13:40 < jast> and because the inline keyword doesn't exist 13:40 < pbunny> i don't get it 13:40 < pbunny> jast: its not the same 13:41 < Grum> oh nothing; as long as you write them properly ;) 13:41 < jast> the code gets even less readable 13:41 < Grum> these arent really robust 13:41 < pbunny> jast: its 100% readable by me 13:41 < Grum> if this isnt robust .. that says quite some about the rest of the code 13:41 < pbunny> what do you mean by "not robust"? 13:41 < Grum> 'it breaks when you put shit in it depending on what you put in it' 13:41 < Grum> aka: fragile :P 13:41 < pbunny> Grum: this applies to any code 13:41 < pbunny> you shouldn't put shit there 13:42 < pbunny> well except for java which is shit itself 13:42 < Grum> erm 13:42 < pbunny> so it isn't suffering 13:42 < Grum> foo(1+1) is not 'shit' :) 13:42 < Grum> so tempting to find a bug in your code right now where you failed to put ()'s in your macro ;) 13:42 < Grum> but i dont think you have implemented enough to easily find one 13:43 < pbunny> Grum: i don't spawn bugs. 13:43 < Grum> actually, you do 13:43 < pbunny> and you are right, shitty developers spend 80% of their time to 'implement enough' to find bugs easier 13:44 -!- SpaceManiac [~SpaceMani@r74-192-152-131.gtwncmta01.grtntx.tl.dh.suddenlink.net] has quit [Ping timeout: 245 seconds] 13:44 < Grum> anyhow, pbunny, is this project of yours opensource? 13:44 < jast> nope 13:44 < jast> he's IP-paranoid and stuff 13:45 < pbunny> ip-paranoid? 13:45 < Grum> just let him answer jast gawd 13:45 < jast> whatever. have fun. 13:45 < pbunny> Grum: no, maybe in the future 13:45 < pbunny> do you want to participate? 13:46 < Grum> i'd like to see you solve some problems 13:46 < pbunny> what problems? 13:46 < Grum> lighting for example 13:47 < pbunny> don't see problem there 13:47 -!- SpaceManiac [~SpaceMani@r74-192-152-131.gtwncmta01.grtntx.tl.dh.suddenlink.net] has joined #mcdevs 13:47 -!- mode/#mcdevs [+v SpaceManiac] by ChanServ 13:47 < pbunny> what seems hard for you? 13:47 < Grum> what do you consider lighting? 13:47 < pbunny> light and skylight portion of chunk 13:48 < Grum> right, so that code is easily to do efficiently? :) 13:48 < pbunny> depends on algorithm 13:48 < pbunny> and requirements 13:48 < Grum> the algorithm is: you are one lighter than your brightest neighbor; max 15; min 0; 13:49 < Grum> blocks can be lightsources of different strengths and allow light to pass through 13:49 < Stormx2> Grum, you can't win an argument with pbunny. He brings you down to his level then beats you with experience 13:49 < Grum> some blocks let light through but they diminish it with more than 1, like water 13:50 < pbunny> Grum: most probably i will create a special type of metaentity - lightsource 13:50 < Grum> so the furthest light will go from a single source is 15 blocks 13:50 < pbunny> and will iterate through them in entities loop 13:50 < pbunny> in world.c 13:50 < pbunny> they will update light around them if needed 13:50 < pbunny> or simply on every iteration 13:50 < Grum> but you will check every gametick if it is needed? 13:50 < Grum> for all lights? 13:50 < Grum> for a single floating torch you'll end up checking ~4k blocks around it 13:50 < pbunny> Grum: don't see any problems of updating ~30 bytes per entity per tick 13:51 < pbunny> why 4k blocks? 13:51 < Grum> because that is how far the light shines? 13:51 -!- Justasic2 [~Justasic@174-25-126-72.ptld.qwest.net] has joined #mcdevs 13:52 < pbunny> well implement some tracking of light changes 13:52 < pbunny> so light will be updated only when needed 13:52 < pbunny> i.e. when torch is placed 13:52 < Stormx2> How do you track which block actions affect which lights? 13:52 < Stormx2> e.g. a piston moving a block 13:52 < Grum> pbunny: block placement, block breaking indeed 13:53 < Grum> or rather, on delta-block :) 13:53 < pbunny> Stormx2: any block movement inside light-change-trackable area will trigger light update 13:53 < Grum> but that is not really the issue 13:53 < pbunny> block change * 13:53 < pbunny> i don't see a problem 13:53 < Grum> the issue is the sheer volume of blocks you have to calculate the lighting for 13:54 -!- Justasic [~Justasic@unaffiliated/justasic] has quit [Ping timeout: 250 seconds] 13:54 -!- Justasic2 is now known as Justasic 13:54 < Grum> and because light *can* decay with more than 1 you are limited in the amounts of shortcuts you can take 13:54 -!- Justasic [~Justasic@174-25-126-72.ptld.qwest.net] has quit [Changing host] 13:54 -!- Justasic [~Justasic@unaffiliated/justasic] has joined #mcdevs 13:54 < Grum> but please do, i'm really interested if you find a good & fast way 13:56 < pbunny> i don't see the problem... 13:56 < pbunny> it's like 200 bytes write (at most) for light update 13:56 < pbunny> maybe 400 bytes read 13:56 < Stormx2> pbunny, the issue isn't the number of bytes you're writing... 13:56 < pbunny> RAM can handle that 13:57 -!- zz_dav1d [dav1d@static.82.162.46.78.clients.your-server.de] has quit [Quit: nothing to see] 13:58 -!- dav1d [dav1d@unaffiliated/dav1d] has joined #mcdevs 14:03 < pbunny> Stormx2: what is the issue? 14:05 < pbunny> can somebody join trolls.lv:1337 and test the freaking pig? 14:07 < pbunny> can client crash if pig entity is (theoretically possible) inside block? 14:37 < Stormx2> no 14:38 < pbunny> what can be the problem then 14:38 < Stormx2> pbunny, the issue is cpu cycles as lighting is O(a^n) 14:39 < pbunny> so what 14:39 < pbunny> lightning won't change every tick 14:39 < pbunny> lighting * 14:39 < Stormx2> so an implementation written by people who understand what big-O is is slow 14:40 < jast> have fun at dusk and dawn, then 14:40 < pbunny> dusk and dawn doesn't happen every tick 14:40 < Stormx2> jast, that's client-side 14:40 < Stormx2> the lighting changes anyway 14:40 < pbunny> oh? 14:40 < Stormx2> server still sends the same skylight 14:41 < Stormx2> yeah, it does it based on time irrc 14:41 < jast> right. magic. 14:41 < jast> but still you'd have to recalculate light 14:41 < jast> after all you need to figure out the correct light level for places that used to be lit by sun and now aren't 14:42 < jast> I suppose you could cheat and do it just once 14:42 < dav1d> meh I am bored 14:42 < jast> (per dusk and per dawn) 14:42 < dav1d> sitiing at university "learnling" java -.- 14:42 < jast> dav1d: feel free to join in yet another iteration of this pointless discussion 14:42 < Stormx2> not true. the client treats blocklight and skylight separately. The *actual* skylight it computes is a product of the skylight sent in chunks, and the time-of-day 14:42 < Stormx2> i.e. you don't need to do any new light calculations for night-time 14:42 < dav1d> atm Hello World, line for line explanation 14:43 < dav1d> jast: light calculations? 14:43 < jast> so the server doesn't have to decide where it can and can't spawn mobs? 14:43 < jast> dav1d: that's just a sub-topic 14:43 < Stormx2> Oh, shit. 14:43 < dav1d> if you come up with a good and fast way, let me know, gotta implement it for BraLa some day 14:43 < Stormx2> Hm. 14:43 < dav1d> ah ok 14:43 < jast> the overarching story is a certain person's super server that does everything 14:43 < Stormx2> I'm sure I recall someone telling me it moved client-side but perhaps I'm wrong 14:43 < dav1d> and they use a mac at university -.- 14:43 < dav1d> they should know better 14:44 < jast> well, I suppose there's no point in sending the dusk/dawn-related light updates to the clients, but you still have to calculate it on the server 14:45 < pbunny> jast: my server won't "spawn" mobs 14:45 < pbunny> mobs will reproduce 14:46 < jast> I know, I know 14:46 < jast> but you still need to know about lighting if you want to, say, determine correct growth for plants 14:46 < pbunny> i.e. pigs will infest players with larvae which after some time will kill player and several new pigs will be born 14:46 < jast> oh, just like in real life 14:46 < pbunny> yeah 14:47 < pbunny> plants will eat players and other mobs and grow after that 14:47 < pbunny> they will need nutrients 14:48 < jast> I can see it now... a patch of high grass chasing and eating players 14:49 < pbunny> no, they won't move 14:49 < pbunny> but they can digest anything that will step on them, slowly 14:51 < pbunny> i will need light calculations for UFO appearing 14:51 < dx> god dammit guys 14:51 < dx> you talk too much 14:52 < pbunny> btw, is it possible to surrond some mob with darkness (set all light to 0)? how will he look like? 14:52 < dx> and the worst part is that i was going to grab popcorn to continue reading, but then you went on to say 'java is shit'. nobody cares if java is shit. 14:52 < pbunny> dx: but there are many that need to be told the truth 14:52 < pbunny> i.e. dav1d 14:53 < dx> i don't know what you're talking about but i've already saved my popcorn in the fridge for another day 14:53 < dav1d> pbunny: mh? 14:53 < dav1d> didn't follow the conversation 14:54 < dav1d> pbunny: what? 14:54 < dav1d> is it my fault that I have tests in java to finish university? 14:56 < dx> ha 14:57 < dx> yeah, dav1d joined in the middle of this, only mentioned the university thing, and then pbunny attacks him randomly for having mentioned java. lol. 14:57 < dx> okay, okay, i'll grab the popcorn again and continue reading this conversation from the beginning 14:57 < dx> but it better be good! 14:58 < pbunny> dav1d: this is your fault that you attend useless timewaste 14:58 < dav1d> haha 14:58 < dav1d> what a funny guy 14:58 < pbunny> its just a business of making money from parents that are 100% sure educations is needed now as it was 50 years ago 14:58 < dx> dav1d: i agree! 14:59 < dav1d> dx: thanks 15:00 < pbunny> education now serves 2 things 15:01 < pbunny> first, its a business. a bunch of 'professors' earn money by wasting time of students that aren't aware that they can just google all they need like 100 times faster 15:02 < pbunny> second, its a government structures for brainwashing the youth of society 15:02 < pbunny> i.e. they enforce m$ products and position linux to students like some exotic stuff 15:02 < dav1d> wrong 15:03 < dav1d> university pcs run linux, profs use all OS mixed 15:03 < pbunny> so students will use m$ products and can be controlled by the system via microsoft 15:03 < dx> meh 15:03 < pbunny> dav1d: there are exceptions 15:03 < pbunny> 90% of univercities position m$ as primary OS simply because m$ 'sponsors' them 15:03 < pbunny> also they teach C#, ASP.NET and other ridiculous bs 15:04 < dx> we already know you never had formal studies, pbunny, it was obvious from the beginning 15:04 < pbunny> i had until i left 15:04 <+sadimusi> by choice? :D 15:04 < pbunny> yeah 15:04 < pbunny> sadimusi: i noticed they try to brainwash me 15:04 < pbunny> it was too dangerous to stay 15:05 < dx> maybe brainwashing isn't always a bad thing after all 15:05 < pbunny> they only reason i went there at all was because of parents persuaded me 15:05 < dav1d> nope, no c# 15:05 < pbunny> as always happens 15:05 < dav1d> racket and java 15:05 < pbunny> dx: it is bad for mental freedom, obviously 15:05 < pbunny> and for individuality 15:05 <+sadimusi> how so? 15:06 < dav1d> bbl going home 15:06 < dx> some people make you consider that mental freedom leads to awful results 15:06 < pbunny> what people? 15:06 < dx> stupid people 15:06 < pbunny> only a very few people are totally free 15:06 -!- dav1d is now known as zz_dav1d 15:06 < pbunny> and they are at the top of all of this 15:07 <+Fador> they teach C++ at my university =) 15:07 < dx> haskell / C at mine 15:07 <+sadimusi> we can code in whatever language we choose, the examples are mostly in java 15:08 < pbunny> still i don't see how google is less efficient than sitting there for years 15:08 <+sadimusi> look at your code and you'll know 15:08 < pbunny> nothing wrong there :) 15:08 < dx> would you decide to google spontaneously "how to measure algorithmic complexity"? 15:08 < pbunny> it's just not what you are used to 15:08 < dx> because you don't seem to know what that is 15:09 < pbunny> dx: yes, if i will need to measure it 15:09 < dx> lol 15:09 < dx> that answer... 15:09 < dx> i'll take it as a "no" 15:09 < dx> since you'll never realize when you need it if you don't know it exists 15:10 < pbunny> because i'm fine without it 15:10 < pbunny> and it exists only to garbage the minds of students some more 15:10 < dx> lol 15:10 <+sadimusi> :D 15:10 < dx> computer science theory is garbage, got it 15:10 < pbunny> there are tons of principles, standards, etc that do nothing useful 15:10 < pbunny> abstractions... 15:10 < pbunny> dx: yeah, theory is garbage if it isn't specific 15:10 < dx> yep, that seems to match the way you code perfectly 15:10 < dx> i do believe you're being honest 15:10 < pbunny> well my code works and is efficient 15:11 < pbunny> i don't need to know freaking hundreds of 'theories' to code well 15:11 < Stormx2> Can someone please ban this turd 15:11 < Stormx2> I'm sick of this shit 15:11 < pbunny> lol 15:11 < Stormx2> Stop taking pride in being uneducated 15:11 < dx> Stormx2: sorry for continuing it :( 15:11 < dx> i just find him very entertaining 15:12 < pbunny> Stormx2: education is not important in programming 15:12 < pbunny> ability to learn and invent is important 15:12 < Stormx2> Yes it fucking is you tard. This is why your code sucks. 15:12 < Stormx2> Every time we've got a snippet of your code it has been total garbage 15:12 < Stormx2> And you can't even admit to it. 15:13 < pbunny> because it isn't what you are used to in univercity? 15:13 < dx> fun fact: education is important for many things, including realizing how your code is shit! 15:13 < pbunny> dx: education can be different 15:13 < Stormx2> Everyone else 15:13 < Stormx2> Opinions please 15:13 < pbunny> univercities perform the "useless shit brainwashing"-style education 15:13 < pbunny> to make education periods longer and grab more money 15:14 < Stormx2> pbunny, they also teach you important concepts like big-O, which I still haven't heard your rationale for not accepting 15:14 -!- SpaceManiac [~SpaceMani@r74-192-152-131.gtwncmta01.grtntx.tl.dh.suddenlink.net] has quit [Read error: Connection reset by peer] 15:14 < pbunny> Stormx2: can you give any example of when i will need this big-O ? 15:14 <+sadimusi> Stormx2: I think it's obvious that nobody agrees with him on anything 15:14 < pbunny> and anyway i can just google it in 5 minutes 15:14 < dx> what sadimusi said 15:14 < Stormx2> sadimusi, you can stop this 15:14 < Stormx2> Make #mcdevs-1989 15:14 < Stormx2> send pbunny there 15:14 < pbunny> lol. 15:14 < pbunny> don't be so mad 15:15 < Stormx2> anyone who wants to follow him and write servers with pthreads and mutexes 15:15 < Stormx2> and not abstract datatypes 15:15 < Stormx2> or any of that shit anyone sensible does 15:15 < pbunny> i have abstract datatypes 15:15 < pbunny> i.e. item 15:15 < dx> what i'm really worried about is, am i the only one who isn't 'affected negatively' by his presence? 15:15 < pbunny> dx: obviously univercities inject a program to hate enemies of education system 15:15 < dx> loling 15:15 < jast> what do you mean by 'affected negatively' 15:16 < Stormx2> This is a channel I enjoy talking about technical parts of MC in. And I really value the opinions of almost everyone here. 15:16 < dx> jast: he's amusing, that's what i mean 15:16 < jast> oh, definitely 15:16 < dx> cool. 15:16 < Stormx2> But I hate some 15yo chipping in with "lol java is slow" 15:16 < Stormx2> or some shit 15:16 < Stormx2> It ruins the channel. 15:16 < pbunny> lol. 15:16 < jast> let's face it, java *is* slow (lol) 15:16 < pbunny> ++ 15:16 < dx> yeah, java is really slow, REALLY slow 15:16 < Stormx2> Java being slow is not why minecraft is slow though. 15:16 < dx> but the issue might be that i have 32mb of ram 15:17 < Stormx2> Not entirely, not even majority. 15:17 < dx> and a 2gb swap partition mounted over sshfs 15:17 < pbunny> Stormx2: yeah, that's only one of reasons 15:17 -!- SpaceManiac [~SpaceMani@r74-192-152-131.gtwncmta01.grtntx.tl.dh.suddenlink.net] has joined #mcdevs 15:17 -!- mode/#mcdevs [+v SpaceManiac] by ChanServ 15:17 < pbunny> the other reason is - java is a memory hog 15:17 < pbunny> that's why they had to offload world regions 15:17 < pbunny> that's why additional overhead was introduced just to make server work at all 15:17 < Stormx2> world regions are stored as byte or nibble arrays iirc. 15:18 < pbunny> yeah, to disk 15:18 < Stormx2> I run my server off a ramdisk 15:18 < Stormx2> So, no disk. 15:18 < jast> the worst thing about java is that many of the biggest projects that use it are written badly and solve non-problems, and everyone jumps on those and integrates them into anything they, in turn, write in java 15:18 < pbunny> in C i can easily keep 2500x2500x256 world in 4Gb of RAM 15:18 < pbunny> with java i doubt 64Gb would be enough 15:18 < Stormx2> what makes you say that? 15:18 < pbunny> i did calculations. 15:18 < Stormx2> java stores byte arrays just like C does 15:18 < pbunny> ah 15:18 < pbunny> how about array sizes? 15:19 < dx> Stormx2: this guy stores the whole world in memory all the time 15:19 < pbunny> hmm 15:19 < Stormx2> They're byte[], it's not a python list or anything 15:19 < pbunny> dx: yeah, and i can keep 2500x2500 world that way 15:19 < Stormx2> dx, so do I but I don't need a new server to do it :P 15:19 < dx> Stormx2: don't bother arguing his shit, he knows about this 15:19 < pbunny> Stormx2: well maybe problem lies in another reason 15:19 < pbunny> the brain java of mojang devs? 15:19 < pbunny> the wish to OOP anything as much as they can 15:19 <+sadimusi> it's starting to get annoying, is anybody still having fun and wants to keep him around? 15:20 < dx> i do, but don't mind if someone kicks him 15:20 < jast> what's annoying is that everyone thinks they can educate him 15:20 < Stormx2> I could go either way. 15:20 < pbunny> omg, you can just ask me to stop this topic 15:20 < Stormx2> Maybe see if he keeps it up? 15:20 < jast> only slightly, though. it's kind of funny, too, at the same time 15:21 <+sadimusi> I'll just disable notifications for this channel for a while then :) 15:22 < dx> actually i think the conversation is over 15:22 < jast> your face is over 15:22 < jast> !! 15:22 < dx> :( 15:22 < jast> oh wait, no, there it is. my mistake. 15:22 < dx> oh cool 15:23 < dx> i'm going to write a minecraft server in pypy, they say it's faster than C so it's even better than java right? 15:23 < Stormx2> I'm going to write a minecraft server on a lisp machine because I hear they're all the rage 15:24 < dx> i'll just use python generators instead of arrays, python generators are just code and don't use any memory at all 15:24 < dx> i'd use the term "heap memory" but i've never heard it before 15:24 < dx> i can still use it - i just have to google it 15:24 < pbunny> are you serious? 15:25 < pbunny> you shouldn't use python at the first place 15:25 < dx> are YOU serious? 15:25 < pbunny> of course 15:25 < dx> oh god dammit sorry i'm continuing it 15:26 < jast> from now on I'll write all my code in Ada 83 15:28 < pbunny> Stormx2: what is your version about why mojang decided to not keep world in ram? 15:29 < pbunny> why did they go to all these complications and limitations (no offline mobs etc)? 15:29 < dx> dude 15:29 < dx> the answer to that question is trivial 15:29 < Alan> ugh 15:29 < Alan> this channel 15:29 < Alan> is full of people who haven't got a fucking clue, and people raging/sighing at people who don't have a clue 15:29 < Alan> who suggested I should come here? 15:29 < Alan> was it eddyb ? 15:29 < dx> Alan: uh, sorry 15:30 < dx> Alan: my pypy comment was sarcastic btw 15:30 < Alan> dx: I could tell you were being sarcastic 15:30 < dx> oh ok 15:30 < Alan> just, in general 15:30 < dx> Alan: then i don't know what other people you're talking about 15:30 < dx> Alan: it's just pbunny being derp... 15:30 < eddyb> Alan: yeah, well, I'm sorry if it turned out worse :( 15:30 < Alan> mainly pdelvo 15:30 < Alan> erm 15:30 < Alan> pbunny: 15:30 < dx> Alan: it's not usually like this 15:31 < Alan> yeah, it seems to usually be dead instead 15:31 < Alan> :P 15:31 < dx> ..well, yeah, lately yes 15:31 < pbunny> dx: trivial? can you sound it? 15:31 < dx> it's mostly about mc protocol and nobody interested happened with the protocol in a long time 15:31 < dx> pbunny: infinite world 15:32 < pbunny> dx: are you serious about somebody can ever need infinite world? 15:32 -!- Stormx2 [~Stormx2@cpc18-sotn9-2-0-cust33.15-1.cable.virginmedia.com] has quit [Ping timeout: 248 seconds] 15:32 < pbunny> isn't 2500x2500 already big enough? 15:32 < pbunny> or 15000x15000 (256Gb RAM) ? 15:32 < Alan> infinite world = very easy for players to accidentally make it use all the RAM 15:32 < dx> lol 15:32 < pbunny> Alan ++ 15:32 < pbunny> dx: world is still not infinite 15:32 <+Fador> some run servers on raspberry pi with limited RAM ;D 15:32 < Alan> without regard for what the hardware specs are 15:32 < Alan> loading only what's in use lets memory usage scale with player count, not world size 15:33 < Alan> and lets you still have your effectively unlimited worlds 15:33 < Alan> how is that so hard to grasp? 15:33 < pbunny> why not limit world to 15000x15000 and loop it as planet? 15:33 < pbunny> it's a HUGE world 15:33 < dx> pbunny: my feed the beast server is hosted on a 512mb openvz - it runs flawlessly and the generated chunks extend up to 9000 15:33 < Alan> because that's not Minecraft 15:33 < dx> pbunny: i pay $30 per year for this server 15:33 < pbunny> dx: yes, but it doesn't iterate over everything 15:33 < dx> pbunny: to have a server with 32gb ram, you have to pay $100 per month usually 15:33 < dx> pbunny: there are no servers with 256gb ram in this planet 15:33 < pbunny> it's not a real independent world 15:34 < pbunny> dx: LOL. 15:34 < pbunny> there is 15:34 < dx> .. 15:34 < pbunny> dx: http://www.newegg.com/Product/Product.aspx?Item=N82E16813131643 15:34 < Alan> dx: try telling my workplace that :P 15:34 < pbunny> you can insert 256Gb of RAM there 15:34 < dx> fug 15:34 < dx> oh dammit 15:34 < Alan> we're about to get 2 new servers: a 32-core 256GB RAM, and a 64-core 512GB RAM 15:34 < pbunny> i will get one in autumn maybe 15:34 < dx> actually there was a 48tb supercomputer 15:35 < Alan> but big servers are expensive 15:35 < dx> god dammit, i'm the stupid one now ;_; 15:35 < dx> okay 15:35 < dx> how about 15:35 < Alan> and your "average" group of minecrafters does not have the money needed to throw at servers that big 15:36 < Alan> and yet again, putting a really high lowerbound on amount of memory needed by making the usage scale with world size is horrible 15:36 < dx> pbunny: if you can tell me about a dedicated non-collocated service that provides 256gb ram, i'd love to know its price 15:36 < pbunny> dx: why not just buy one? 15:36 < pbunny> it's cheaper and better privacy 15:36 < dx> .. 15:37 < dx> okay i'm bored of this 15:37 < dx> bye 15:37 < pbunny> dx: imagine a hosting provider will read the emails and passwords of users of mc, then hacks their emails (as 99% of people use the same password everywhere) 15:37 < pbunny> and they all will blame you for that 15:37 < pbunny> how can you just trust your data to somebody you never saw 15:37 < dx> please don't ping me anymore, thank you. 15:38 < pbunny> also he can steal your code and run his own server, etc 15:38 < pbunny> ok 15:38 < jast> that's very simple: you make an agreement with the hoster to not do that. if they do it anyway, you sue them. 15:38 < Alan> "steal your code" 15:38 < pbunny> jast: they can hide all traces 15:38 < pbunny> easily 15:38 < jast> it's also illegal in the first place 15:38 < Alan> yeah, now you're going into the realms of "breach of contract", "illegal" etc 15:38 < pbunny> jast: you can't monitor your hosting provider 15:38 < Alan> running your server in a datacentre already puts you at risk 15:38 < jast> well 15:38 < pbunny> he can do whatever he wants, you can only guess 15:38 < Alan> even colocated 15:39 < pbunny> Alan: sure 15:39 < Alan> physical access = you lose 15:39 < pbunny> that's why i keep my server at home 15:39 < Alan> enjoy dat latency 15:39 < jast> it's fairly difficult to read stuff on a server without powering it off if you don't have the password 15:39 < pbunny> i have 1Gbps connection there 15:39 < jast> you can't do that with a screwdriver and a hammer 15:39 < Alan> you have a very broken/skewed view of what an average minecraft server looks like or should look like 15:39 < pbunny> jast: um, you can even read from RAM on running server with special devices 15:39 < Alan> jast: who says you can't power it off? 15:39 < jast> yes, with special devices 15:40 < Alan> "oops, power interruption" 15:40 < pbunny> jast: hosting provider can have these 15:40 < jast> any hoster who has these special devices will be viewed with, shall we say, a small amount of suspicion 15:40 < jast> Alan: o hi encrypted hard disk 15:40 < Alan> jast: and how do you suggest ever being able to reboot it? 15:40 < jast> (yeah yeah, not perfectly secure, I know) 15:41 < jast> though I suppose you could put the bootloader in a hardware dongle 15:41 < Alan> any method that you can use to unlock the encryption can be intercepted 15:41 < pbunny> you can encrypt all important partitions, but hosting provider can still sniff your password when you attempt to decrypt it (i.e. via ssh) 15:41 < jast> that should make it pretty safe 15:41 < Alan> ... the hardware dongle that's in the datacentre? 15:41 < jast> yes 15:41 < Alan> right, so how does any of this protect you against the datacentre staff? 15:41 < jast> e.g. hardware dongle has a private key baked into it 15:41 < pbunny> my root fs is unencrypted, so in case of reboot i can ssh into it and mount all encrypted partitions 15:42 < Alan> jast: in which case they've got the private key 15:42 < pbunny> but hosting provider would just intercept ssh and get your password 15:42 < Alan> it's almost like people don't grasp information theory. 15:42 < jast> you underestimate the difficulty involved in reverse-engineering hardware 15:42 < jast> especially if you don't want to damage said hardware 15:42 < Alan> why would you need to reverse-engineer it? 15:43 < jast> because the hardware dongle isn't going to tell you the secret key if you just ask nicely 15:43 < pbunny> jast: hosting provider can just use hotpluggable RAID in your server 15:43 < pbunny> then it can unplug 1 hdd and read it 15:43 < pbunny> then plug it back 15:43 < pbunny> etc 15:43 < pbunny> limited opportunities 15:43 < jast> it's still encrypted o/~ 15:43 < Alan> jast: ... the bit of code that reads the private key from the dongle can't be encrypted with the key that's in the dongle 15:43 < pbunny> jast: encryption password is intercepted 15:43 < Alan> otherwise it couldn't run 15:43 < jast> the private key is _never_ read from the dongle 15:43 < jast> the dongle uses it ONLY to authenticate you 15:43 < Alan> or whoever has the machine 15:44 < pbunny> jast: can you explain in more detail how will you mount encrypted partitions/disks ? 15:44 < jast> it also contains another secret key used for disk decryption, sent out to the OS after a system integrity check (and after you have authenticated yourself) 15:44 < Alan> jast: the authentication can still be intercepted 15:44 < jast> yes, but since the secret key is unknown, that doesn't matter 15:44 < jast> asymmetric cryptography, you know 15:44 -!- zz_dav1d is now known as dav1d 15:44 < jast> challenge-response 15:45 < jast> ever heard of any of those? 15:45 < pbunny> jast: hosting provider can do mitm as he still has all the keys 15:45 < jast> where from? 15:45 < pbunny> unless you drove to him physically and configured server by yourself 15:45 < jast> yes, that's called colocation 15:46 < jast> obviously you can't do any of this if you use hardware provided by the provider 15:46 -!- levifig [~levifig@spwn.co] has quit [Excess Flood] 15:47 -!- levifig [~levifig@spwn.co] has joined #mcdevs 15:47 < jast> and now, if you've set up a secure server box (with tampering sensors), things should be pretty good 15:48 < jast> I still wouldn't give critical data to anyone else, but we're talking about minecraft servers here, for which pretty much anything is overkill 15:48 < Alan> so, now that we've thoroughly explored fantasy-land... 15:48 < Alan> you don't co-located critically sensitive information 15:48 < Alan> minecraft servers are not critically sensitive information 15:48 < Alan> oh 15:48 < Alan> haha 15:48 < Alan> 2 people saying the same thing, must be true 15:48 < jast> yeah, that's how it works 15:49 < Alan> I hope not 15:49 < Alan> otherwise we're all screwed 15:49 < jast> yes we are 15:49 < jast> boom 15:49 < Alan> anyway, pretty sure my life isn't going to be enriched by staying here 15:49 < Alan> good luck with whatever things you attempt to do 15:49 < jast> took you long enough to figure that out :} 15:50 < Alan> no, i just stuck around for the rage 15:50 -!- Alan [alan@unaffiliated/alan] has left #mcdevs [] 15:53 < jast> dx: EC2 offers an instance type with 244 GB RAM for "just" $3.50/h :} 15:54 < dx> jast: nice 15:54 < dav1d> 244GB ram, not bad 15:54 < jast> also 88 bogocores 15:54 < dx> jast: i actually needed to do a heavy video encoding job once, grabbed one server with 48gb ram for 40 cents an hour or so 15:55 < jast> yeah, I did something similar once 15:55 < dx> never knew what the provider was and i paid the guy in bitcoins lol 15:55 < dx> kinda shady but it was little money for what i had to do 15:55 < dx> and it worked! 15:56 <+Fador> dx: and now they have a copy of your videos? =D 15:56 < dx> ...well 15:56 < dx> it was just anime. lol. 15:57 <+Fador> ^_^ 15:57 <+Fador> -!- Fador [fador@hentai.fi] 15:57 < dx> lewd 15:57 < dx> a friend had to send his only PC to repair something, and it took a really long while, like two months 15:57 < dx> he had a PS3 but it doesn't support the usual codecs 15:58 <+Fador> like..HEVC ;) 15:58 < dx> so i offered to encode all the episodes he missed from the season, thought it would be fun 15:58 < dx> lol hevc 15:58 < dx> well, actually, no softsubbed mkv and no 10bit. really common situation. 15:59 < dx> nobody supports 10bit ever 15:59 -!- BizarreCake [~BizarreCa@46.121.251.157] has joined #mcdevs 15:59 <+Fador> http://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=6324420 <- I was writing a paper about HEVC 15:59 < dx> whoa. 16:00 < dx> ...but no thanks, i'll pass 16:00 < dx> i barely know how to get decent results with the x264 command line tool :P 16:00 <+Fador> http://www.cs.tut.fi/~moncef/publications/complexity-analysis-ISCAS-2012.pdf my other paper about it that you can actually read without paying ;D 16:00 <+Fador> hehe, sure, HEVC was standardized just few months ago 16:01 < dx> and fansubbers are already considering using it as soon as possible 16:02 <+Fador> well it does reduce the size 50% with the same quality..=D 16:03 < dx> at the cost of a lot more people not being able to watch it! 16:03 <+Fador> sure! 16:03 <+Fador> they can watch it in the *future* ;D 16:03 < dx> actually they did that already with hi10p, and the hardware decoders haven't caught up 16:04 < dx> (they probably don't care about it) 16:05 <+Fador> the switch to 10bit was quite fast after x264 started supporting it 16:07 -!- clonejo|offline is now known as clonejo 16:08 < dx> in hindsight, the only decent ways to handle it would be either adopting it ASAP like they did, or not adopting it at all 16:09 -!- Stormx2 [~Stormx2@2001:630:d0:f110:4cfb:5a63:110a:4de1] has joined #mcdevs 16:09 < dx> as in, there was no reason to delay it if stuff that isn't ffmpeg isn't planning to implement it too 16:09 < dx> (ffmpeg as a generalization because i'm too lazy to check alternate software only implementations) 16:10 < dx> (we all know ffmpeg has a monopoly on the codec market anyway) 16:12 < Stormx2> dx, libav? :P 16:12 < jast> libav is pretty much the same thing 16:12 < dx> Stormx2: same shit 16:12 < jast> except it appears to be a pointless fork