10:12 <+SirCmpwn> good luck compiling it, though, it took me a good half dozen tries 10:13 <+SirCmpwn> he seems to have a problem with documenting dependencies 10:13 < Grum> sigh 10:13 < Grum> so how is that betteR? 10:13 < dx> he also loves adding dependencies 10:13 <+SirCmpwn> it's very performant, Grum 10:13 <+SirCmpwn> I got some ridiculous framerates when I eventually did get it working 10:14 <+SirCmpwn> it doesn't have lighting, admittedly, but that's fairly cheap after it's calculated 10:14 < Grum> also sorry, its not 1.2 compat. 10:14 <+SirCmpwn> is it? 10:14 < Grum> it snot 10:14 <+SirCmpwn> huh. I thought it used to be 10:14 < Grum> it uses shaders? 10:14 < Grum> https://github.com/Dav1dde/BraLa/blob/master/brala/engine.d#L152 <-- 10:14 <+SirCmpwn> ah, that'd be a new thing 10:15 < Grum> also the comparison would be rather nonsensical 10:15 <+SirCmpwn> well, fair enough. Not sure why 1.2 support is important, though 10:15 < Grum> we could get 500% more fps if we just 'stop doing shit' 10:15 <+SirCmpwn> stop doing what shit 10:15 < Grum> just rendering 'world faces' is not the painful part atm 10:15 < jast> lighting 10:16 <+SirCmpwn> jesus, opengl 1.2 was released in 1998? 15 years ago? 10:16 <+SirCmpwn> why on earth are you supporting it? 10:16 < Grum> SirCmpwn: ~700000 people would cry otherwise? 10:16 < AlphaBlend> hah 10:16 < dx> minecraft is a really simple game that can run in very old hardware with no issues 10:16 <+SirCmpwn> let them cry, and then upgrade, and wipe away their tears with their extra frames 10:16 < Grum> dx: its actually far from simple 10:17 <+SirCmpwn> ^ 10:17 < dx> Grum: that's exactly my point 10:17 < AlphaBlend> what about the old Power PC users? They sure are crying :P 10:17 < Grum> i also totally agree, for the new engine we're not supporting 1.x 10:17 <+SirCmpwn> I got a really, really shitty computer to run minecraft for seven seconds 10:17 < Grum> AlphaBlend: that was 'only' 0.6% 10:17 < dx> in >5 year old hardware it is FUCKING PAINFUL TO PLAY 10:18 < AlphaBlend> Grum: Ah, well with 10+ million purchases, that's still about 600,000 people 10:18 < AlphaBlend> wait 10:18 < Grum> yeah .. one less 0 10:18 < AlphaBlend> divide by 10 10:18 < AlphaBlend> yeah 10:18 -!- TRocket [~TRocket@213.205.229.39] has joined #mcdevs 10:18 < Grum> 'acceptable' after lots of discussions 10:18 < AlphaBlend> yes i agree 10:18 < AlphaBlend> it had to go though 10:18 <+SirCmpwn> Grum: anyway, if you agree and are getting rid of 1.x support, then don't use that as ammunition against BraLa 10:18 < Grum> SirCmpwn: you cannot compare it though 10:19 <+SirCmpwn> why is that? 10:19 < Grum> because without opengl 2.x there is no way to do ANYTHING in parallel 10:19 <+md_5> btw 10:19 <+md_5> just saying 10:19 <+md_5> as long as section sign is supported 10:19 < Grum> glLists are serial, fact of life 10:19 <+SirCmpwn> Grum: alright, I'll compare it again when you drop 1.x 10:19 <+md_5> I dont really care for 1.6 10:19 <+SirCmpwn> md_5: section sign? 10:19 < Grum> md_5: it might be for 1.6.0 10:19 < Grum> we'll drop it asap though 10:20 <+ammar2> SirCmpwn: simolean 10:20 <+SirCmpwn> that shitty character no one likes? 10:20 < Grum> § 10:20 * md_5 will not complain as long as 1.6 has it for at least a month 10:20 <+SirCmpwn> oh, you want to continue using it for colors 10:20 < dx> that shitty character which is actually easy to integrate with stuff 10:20 <+SirCmpwn> hear, hear 10:20 < Grum> the one that is default on swedishkeyboards and therefor the only reason it exists 10:20 < dx> i have it as altgr-shift-s 10:21 <+SirCmpwn> I have it as ChatColors.ControlCharacter or something 10:21 <+SirCmpwn> because I never want to see it again 10:21 < dx> lol 10:21 < Grum> SirCmpwn: agreed 10:21 < Grum> i hate it 10:21 <+SirCmpwn> why not just use \0 or something 10:21 < Grum> i want to remove it 10:21 <+SirCmpwn> such a shitty choice 10:21 < Grum> i will remove it >:) 10:21 < Grum> its 100% random 10:21 < Grum> why not use % ..... 10:21 <+Amaranth> SirCmpwn: But \0 means end of string :P 10:21 <+SirCmpwn> \0 can't be typed on any keyboard I'm familiar with 10:21 <+SirCmpwn> Amaranth: pascal strings are superior according to anyone with half a brain 10:22 < dx> Grum: i always assumed it wasn't an ascii character because those would need to be escaped too often 10:22 < jast> why not use 💩 10:22 <+Amaranth> SirCmpwn: Guess you didn't want a string longer than 255 characters? 10:22 < AlphaBlend> Grum: So I guess we will be able to colorize text while chatting, but not with that character? 10:22 < Grum> AlphaBlend: nope 10:22 < Grum> client cannot send colors 10:22 <+SirCmpwn> Amaranth: how about 65535 10:22 <+SirCmpwn> oh, haha, sorry, java 10:22 <+SirCmpwn> can't use 65535 10:22 < dx> client was never able to send colors, he wasn't talking about that 10:23 <+SirCmpwn> I forgot how bad java was for a few minutes 10:23 <+SirCmpwn> thanks for reminding me 10:23 <+Amaranth> SirCmpwn: Now you're wasting space for every character of your UTF-8 strings just so you can stick a length at the front 10:23 <+Amaranth> SirCmpwn: java actually has unsigned short for char 10:23 <+SirCmpwn> Amaranth: you're wasting a single byte 10:23 < Grum> whut you cant use Char.MAX_VALUE ? :/ 10:23 <+SirCmpwn> oh, the humanity! 10:23 < Grum> sorry; Character.MAX_VALUE :P 10:23 <+Amaranth> SirCmpwn: Oh, you're saying use the first two bytes as the size :P 10:23 <+SirCmpwn> Grum: that's disgusting, can you really use "char" for unsigned 16 bit numbers? 10:23 -!- AnotherOne [~kvirc@178.151.74.138] has quit [Read error: Connection reset by peer] 10:23 <+SirCmpwn> Amaranth: your zero is eliminated 10:23 < Grum> SirCmpwn: yes 10:24 <+SirCmpwn> Amaranth: net balance is -1 bytes 10:24 < Grum> SirCmpwn: and its horrible 10:24 <+SirCmpwn> Grum: not as bad as those stupid unsigned arithmetic methods they just added 10:24 < Grum> but then again, you do not know the language you work in if you think it is all perfect :p 10:24 < Grum> SirCmpwn: url? :) 10:24 < Grum> curious now : 10:24 < jast> does java support U+fffe, then? 10:24 <+SirCmpwn> let me see if I can find them, Grum 10:24 < Grum> \uFFFE 10:25 < jast> (or any of the supplementary planes?) 10:25 <+Amaranth> jast: Java is UCS-2, not UTF-16 if that is what you mean 10:25 < jast> lovely 10:25 < jast> so my suggestion of 💩 is right out 10:25 <+Amaranth> BMP only 10:25 < Grum> BMP? 10:25 <+Amaranth> Grum: Basic Multilingual Plane 10:25 < jast> IOW U+0000 to U+FFFF 10:26 <+Amaranth> I guess they have surrogate pairs 10:26 < jast> it's what you do if you want to support unicode half-heartedly 10:26 < Grum> and that is further than my 'knowledge' on that subject goes =) 10:26 <+Amaranth> But iirc that's a best effort thing since they started with plain UCS-2 and people made assumptions 10:27 < Grum> mm you can ask for UTF-16 encoding though 10:27 <+Amaranth> You end up with StringBuffer#reverse saying shit like this: "Note that the reverse operation may result in producing surrogate pairs that were unpaired low-surrogates and high-surrogates before the operation. For example, reversing "\uDC00\uD800" produces "\uD800\uDC00" which is a valid surrogate pair. " 10:27 <+SirCmpwn> Grum: example found: http://download.java.net/jdk8/docs/api/java/lang/Long.html#divideUnsigned(long, long) 10:28 <+SirCmpwn> java 8 will be adding "support" for unsigned integers 10:28 <+Amaranth> Only the boxed ones :/ 10:28 < AlphaBlend> O_O oh how interesting 10:28 < AlphaBlend> Amaranth: boxed ones? 10:28 <+Amaranth> Oh, wait, that is a static method on unboxed longs 10:28 <+SirCmpwn> the quotes around "support" were intentional, Amaranth 10:28 <+Amaranth> So... that's cool 10:28 <+Amaranth> AlphaBlend: long vs Long 10:28 <+Amaranth> Long is a long boxed in an Object 10:28 <+SirCmpwn> not as cool as using actual unsigned numbers in any sensible language 10:29 < Grum> SirCmpwn: 'in since 1.0' :p 10:29 < Grum> i agree, we should have had unsigned stuff 10:29 < jast> protip: long is still signed 10:29 < Grum> i hate signed stuff ;( 10:29 < jast> aaand insanity. 10:29 <+Amaranth> Well it's all bits 10:29 <+SirCmpwn> Grum: in since 1.0? 10:29 < AlphaBlend> Amaranth: Oh... that's what you mean 10:29 < Grum> err sorry; i looked wrong 10:30 < AlphaBlend> Amaranth: Makes sense not to add a primitive since like java 10 will remove primitives 10:30 <+Amaranth> I love how java mixes versions around 10:30 < AlphaBlend> i think anyways 10:30 < Grum> public static long sum(long a, long b) 10:30 < Grum> Adds two long values together as per the + operator. 10:30 <+Amaranth> Java 8, JDK 8, Java 1.8, JDK 1.8 10:30 <+SirCmpwn> it's late, going to sleep. In conclusion, everything is stupid and you're doing it wrong 10:30 < Grum> gotto love that one too ;) 10:30 < Grum> AlphaBlend: yeah also stupid :P 10:30 < Grum> errr Amaranth 10:30 < jast> AbstractLongSummingProxyFactory 10:30 < jast> yay java 10:31 <+Amaranth> AlphaBlend: Java basically never breaks backwards compatibility 10:31 <+Amaranth> That's why their implementation of generics is so lame 10:31 < Grum> yup 10:31 < AlphaBlend> Grum: It's not standard to remove primitives at all >.> 10:31 <+Amaranth> Among other things 10:31 < Grum> i wish they'd break backwards compat already on some things 10:31 < jast> generics aren't lame. interfaces are lame. 10:31 -!- xy [xy@unaffiliated/xy] has joined #mcdevs 10:31 < AlphaBlend> lol 10:31 < Grum> i actually do not call it backwards compatibility but more forwards retardility :/ 10:31 <+Amaranth> jast: Generics in Java don't actually exist 10:31 < jast> Grum: same difference 10:32 < Grum> its just compiler-time-hinting :/ 10:32 < Grum> and type erasure is HORRID 10:32 < jast> well it's java :) 10:32 <+sadimusi> my favorite class in java's standard library: http://javadoc.bugaco.com/com/sun/java/swing/plaf/nimbus/InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonPainter.html 10:32 < xy> "Channel is publicly logged as of Feb.25/13" - where is this logged to? 10:32 -!- TRocket [~TRocket@213.205.229.39] has quit [Ping timeout: 246 seconds] 10:33 < Grum> java is also a really nice choice to code in though 10:33 -!- shoghicp [~shoghicp@77.225.6.14] has joined #mcdevs 10:33 < Grum> free cross-platform :p 10:33 <+Amaranth> sadimusi: Everyone points to that one 10:33 <+sadimusi> Amaranth: of course, it's probably the longest 10:33 -!- TRocket [~TRocket@213.205.229.39] has joined #mcdevs 10:33 <+Amaranth> Grum: This used to be the place where I'd say C# 10:34 < AlphaBlend> meh, you can mix and match too right now which is silly 10:34 <+Amaranth> But then I learned the details of their memory model and now disagree with use of it 10:34 < AlphaBlend> boolean bl = Boolean.TRUE; 10:34 -!- Calinou [~Calinou@unaffiliated/calinou] has quit [Quit: Excess Flood] 10:34 <+SirCmpwn> oh, one more thing before I take my leave 10:34 < jast> plenty of things are more cross-platform than java, really 10:34 < Grum> Amaranth: hehe 10:34 < jast> for all the fun stuff you need native code libs anyway 10:34 <+SirCmpwn> Grum: if you change that silly value in 0xFE to be the protocol version, I'll give you pictures of boobs 10:34 < dx> pictures of SirCmpwn's boobs? 10:34 < Grum> SirCmpwn: i prefer to remain breathing 10:34 <+Amaranth> I _think_ C# and .NET may have been designed for Itanium since their memory model is a pretty close match to how that CPU works 10:34 < AlphaBlend> hahahaha 10:34 <+SirCmpwn> not my boobs, other people's glorious boobs 10:35 < dx> notch's boobs? 10:35 <+SirCmpwn> my boobs are small and unworthy of Grum's eyes 10:35 < dx> also 10:35 < dx> 05:28 < Grum> i actually do not call it backwards compatibility but more forwards retardility :/ 10:35 < AlphaBlend> Notch is a God, his boobs cannot be seen 10:35 < dx> I LIKE THIS PHRASE 10:35 < Grum> Amaranth: meh just get faster hardware ;) 10:35 <+SirCmpwn> anyway, it's a simple change that makes quite a lot of people happy, and you get boobs from it 10:35 <+SirCmpwn> can't lose 10:35 <+SirCmpwn> good night 10:35 < Grum> dx: you gotto hate the language you love working in;) 10:36 < Grum> SirCmpwn: i'd die :P 10:36 <+Amaranth> Grum: What? I'm talking about the memory model which is only important wrt to multithreaded programs 10:36 <+Amaranth> Which these days means all non-trivial programs 10:36 < dx> Grum: oh, didn't even realize you were talking about the language, not the codebase 10:36 <+SirCmpwn> worth it, Grum 10:36 -!- TRocket_ [~TRocket@213.205.229.39] has joined #mcdevs 10:36 < Grum> Amaranth: add moar hardware! 10:36 < jast> the only sane way to do multi-threaded code is to use message passing 10:36 -!- TRocket [~TRocket@213.205.229.39] has quit [Read error: Connection reset by peer] 10:36 <+Amaranth> jast: So you're a fan of Go then 10:37 < jast> not really 10:37 < dx> erlang maybe 10:37 < Grum> absolutely no cost involved with the message-passing-framework :p 10:37 <+Amaranth> The Java, C, and C++ memory models are great for multithreaded development though 10:37 < dx> but message passing for multithreading is rather generic 10:37 < jast> and if the runtime optimizes that using shared memory, all the better. as long as you don't have to mess with mutexes and shit and fill it to the brim with subtle deadlocks and races 10:38 < dx> deadlocks are fun 10:38 <+Amaranth> Java 1.5, C11, and C++11 anyway 10:38 < dx> do you really want to miss the fun of debugging threading related bugs 10:38 < dx> why would you use message passing 10:38 <+Amaranth> The phrase was "sequentially consistent except for data races" or something like that 10:38 < jast> as far as I'm concerned, concurrency based on message-passing is the only way to make concurrency not stupidly hard 10:39 < dx> jast: the code in charge of message passing will have to use something like mutexes, right? (but nicely abstracted) 10:39 < jast> condition variables seem to be a sane approach, too 10:40 < jast> dx: it will have to do *some* kind of synchronization, yes... unless you want to make it rather inefficient 10:40 < dx> heh 10:40 -!- TRocket_ [~TRocket@213.205.229.39] has quit [Read error: Connection reset by peer] 10:40 <+Amaranth> jast: Having message passing doesn't remove the need for some kind of defined memory model 10:40 < Grum> synchronization is totally free ;) 10:40 <+Amaranth> Except now instead of talking about read/write reordering you're talking about channel communication reordering 10:40 < jast> message passing is conceptually shared-nothing (you can only exchange data via messages) 10:41 -!- TRocket [~TRocket@213.205.229.39] has joined #mcdevs 10:41 < jast> well, depending on the implementation, messages are guaranteed to arrive in-order 10:41 <+Amaranth> jast: What happens if the compiler or CPU reorders my code to move a write above a read on a channel? 10:41 < Grum> btw, its not very unlikely that we'll start using an integerbased coordinate system rather than doubles/floats we're doing now for things like entity-positions :P 10:41 < jast> what happens if the compiler or CPU inserts "crash kernel" statements 10:41 <+md_5> Amaranth did you ever manage to work around this jline bug? http://screencloud.net/v/1Sfd 10:41 < Grum> drool on that ;) 10:42 <+Amaranth> md_5: Probably not 10:42 <+Amaranth> Grum: So each block is now 16 units? 10:42 <+Amaranth> Or was it 8, I forget 10:42 < Grum> 256 likely 10:42 < dx> Amaranth: do compilers or CPUs really do that? i mean i have no idea how can someone get away with that kind of aggressive optimization without breaking stuff 10:42 <+Amaranth> dx: Absolutely PowerPC and ARM do that 10:42 < jast> compilers and CPUs *do* execute statements out-of-order 10:43 < jast> but only if there is no effective difference 10:43 <+Amaranth> jast: That isn't quite true 10:43 <+Amaranth> They don't know there is a difference because they cannot detect data races 10:44 <+Amaranth> You have to be able to treat message reads/writes as barriers in order to be able to sanely reason about the execution of your program 10:44 <+Amaranth> So you need your language to define them as such 10:44 -!- TRocket [~TRocket@213.205.229.39] has quit [Read error: Connection reset by peer] 10:45 < jast> reads *do* wait, of course. nothing else makes sense. 10:46 <+Amaranth> jast: It's not about them waiting, it's about whether or not the compiler or CPU moves them around 10:46 < jast> I can't quite imagine an example for which it would 10:46 < Grum> Amaranth: we're having too many .... 'errors' because of loss or precision :/ 10:46 < Grum> so using an integerbased system totally kills all of those things 10:46 <+Amaranth> jast: http://herbsutter.com/2013/02/11/atomic-weapons-the-c-memory-model-and-modern-hardware/ 10:47 <+Amaranth> Grum: In my testing this was not your problem with mobs glitching through walls 10:47 < dx> lol url slugs removing the ++ part out of C++ 10:47 < Grum> Amaranth: oh that is probably just because of bad collision code 10:47 < jast> I don't have time to watch lenghty videos right now 10:47 <+Amaranth> iirc the reason they go through walls client side is because of bad collision detection and motion prediction 10:47 < AlphaBlend> Grum: At any rate, to my previous ranting, do w/e you do in order that modders have no issues with each other 10:48 < Grum> modders will always have issues 10:48 <+Amaranth> AlphaBlend: There will always be conflicts 10:48 < Grum> because modders only hack on shit rather than doing constructive things =) 10:48 < AlphaBlend> Grum: It seems Mojang is catering to those who don't develop Minecraft, rather than themselves, but that goes to show they care about the people who buy the game 10:48 < Grum> AlphaBlend: what? that makes no sense 10:48 < AlphaBlend> well 10:48 < Grum> we're catering very heavily towards ourselves 10:49 < Grum> we need these things, we do not really care much if others do 10:49 <+Amaranth> I hope in the modern mojang plugin API world they do things like have individual plugins for ores and such and treat them as libraries 10:49 <+Amaranth> Then I remember this is the real world and get sad 10:49 < AlphaBlend> it seems that most game publishers make features that they only think up, and only develop seemingly for themselves 10:49 < AlphaBlend> Grum: Yes, but you're doing this so that modders can mod the game, in the long haul 10:49 < Grum> Amaranth: the idea is to ship ....... SO MANY PLUGINS it'll make you cry 10:49 < Grum> in 1 plugin :P 10:49 < jast> yes! make _everything_ a plugin! kill performance! 10:50 < AlphaBlend> hahaha 10:50 < Grum> why would that kill performance? 10:50 <+Amaranth> jast: Multiple plugins with a dependency graph doesn't mean lower performance than one monolithic plugin that includes all the same features 10:50 < jast> it's not the number of plugins, but the number of hooks hooked into and such 10:50 < Grum> hooks? 10:51 < Grum> hooks are the things the people who do not design a system to be extendable use 10:51 < Grum> aka: every known minecraft system sofar 10:51 <+Amaranth> Grum: err, signals/slots, events, callbacks, whatever you want to call them are the way the world works 10:52 < Grum> didn't we once upon a time talk about my idea Amaranth? 10:52 < jast> the more stuff is made pluggable within inner loops, the more KILL PERFORMANCE! 10:52 <+Amaranth> I don't think so 10:52 < Grum> quite sure we did :P 10:52 < AlphaBlend> This is what will contrast Minecraft from numerous other games, it will be compartmentalized! 10:53 < AlphaBlend> There is this chat program I use for Battle.Net 10:54 < AlphaBlend> the devs, had they continued development, which they did not because b.net kinda died and they lost interest, would have made all the features plugin-oriented, so you could disable some if you didn't need their functionality 10:54 < jast> suppose I want a plugin that extends the behaviour of, say, smooth stone blocks... now I have to somehow get my plugin behaviour get called whenever something happens to a smooth stone block 10:54 < AlphaBlend> not a new concept, but it's pretty nice 10:54 < jast> maybe I want to render polka dots on a random subset of smooth stone blocks 10:54 <+Amaranth> jast: I think Grum's idea was you'd replace the smooth stone block plugin instead 10:54 <+Amaranth> Which doesn't go well with plugins working together 10:55 < jast> yep 10:55 < Grum> erm not really 10:55 <+Amaranth> You need the ability to do that and you need events like Bukkit has now 10:55 < Grum> you'd just register the behavior you want to have called 10:55 <+Amaranth> Well, maybe not like Bukkit has not but a similar system :P 10:55 < dx> register behavior you want to have called? so... hooks? 10:55 < jast> exactly. and now everything registers a shit ton of behaviours and we have lots of call lists to go through 10:55 < Grum> Amaranth: seen how we did dispensers? 10:55 <+Amaranth> Grum: Not everything can be dispensers 10:56 <+Amaranth> d'oh, you beat me 10:56 < Grum> yes everything can be dispeners 10:56 < AlphaBlend> MEMORY SCREAMS! 10:56 <+Amaranth> jast: That is the way programs work though 10:56 < Grum> jast: not really? :/ 10:56 * AlphaBlend hears the cries from the computer 10:56 < jast> Amaranth: ikr 10:56 <+Amaranth> Either you hard code everything or you have lists of callbacks 10:56 <+Amaranth> jast: I'm being serious 10:56 < Grum> right now we do both and static 10:56 < Grum> Amaranth: what cant you do dispenserstyle? 10:57 < Grum> (besides 'external input') 10:57 < jast> all enterprisey software starts with a simple thought: hey, let's make everything dynamically extensible 10:57 < dx> the minecraft world isn't made out of blocks, it's made out of dispensers 10:57 < Grum> jast: but that is not what we're doing at all 10:57 <+Amaranth> Grum: Make mobs randomly love each other 10:57 < jast> and before you know it, slow mess of unmaintainable 10:57 <+Amaranth> jast: You're not providing alternatives 10:57 < Grum> Amaranth: that is AI Behavior, as AI should apply to entities, add that behavior to all the applicable mobs and done? 10:58 < jast> that's right 10:58 <+Amaranth> jast: So you disagree with the idea of mods and plugins and think the game should just be the game and that's the end of it? 10:58 < jast> the alternative is to not make _everything_ pluggable 10:58 < Grum> which is what we have now 10:58 < Grum> 100% static game 10:58 < jast> but to be fairly selective about it 10:58 < jast> and there will always be a trade-off 10:58 <+Amaranth> Grum: Except not, blocks are almost pluggable 10:59 < Grum> they arent 10:59 < Grum> they are 100% hardcoded 10:59 <+Amaranth> I've certainly dynamically replaced a block's implementation 10:59 < dx> jast: "fairly selective" is what bukkit does then, where you get 10% of the plugins breaking on every release because they don't have the APIs they need 11:00 < Grum> Amaranth: yes replaced ... not added 11:00 < jast> yeah well, you can't solve all problems 11:00 < jast> welcome to real life 11:00 <+Amaranth> Grum: I can't add more because of the protocol :P 11:00 < dx> the mod api wants to solve all problems 11:00 < jast> that's the way of enterprisey 11:00 < Grum> Amaranth: adding blocks via a protocol? lal :P 11:00 < dx> maybe 11:00 < Grum> erm we're not at all solving all problems with the plugin api 11:01 <+Amaranth> Grum: I mean I can add more but they'll crash the client 11:01 < Grum> we're solving the problems WE need to solve to remake the game 11:01 <+Amaranth> Because there is no protocol to tell the client what they are 11:01 <+md_5> Amaranth well I poked the jline developers about that bug, the one guy who just came active on the project seems nice 11:01 < jast> if you want to go _really_ enterprisey, you make the whole plugin architecture distributed, i.e. you connect a polkadotsmoothstone server to the game server to alter its behaviour :p 11:01 < Grum> jast: OSGI 11:01 < AlphaBlend> Grum: Are you keeping the client dumb, where it can only handle so much data for given things, before it crashes? 11:01 < Grum> over the wire! 11:02 < AlphaBlend> Grum: I.E. inventory title > 32 characters 11:02 <+Amaranth> jast: The bukkit plugin loader lets you chain plugin loaders :D 11:02 <+md_5> plz no osgi 11:02 < TobiX> Is minecraft getting a Spring configuration file? *gd&r* 11:02 < Grum> osgi is the way! 11:02 < dx> AlphaBlend: "are you going to fix the thousands of ways the server can crash a client?" 11:02 < Grum> TobiX: actually we might add that eventually 11:02 * md_5 cuts Grum 11:02 <+Amaranth> dx: A disconnect for a failed assertion is not a crash 11:03 < Grum> omg the code compiles again 11:03 < dx> Amaranth: there are many issues, not all of them are asserts 11:03 < jast> a failed assertion is something that isn't supposed to happen, 'nuff said 11:03 < dx> jast: i'm talking about the server sending the client crap, so yes it should :P 11:04 < jast> no 11:04 < AlphaBlend> dx: apparently "so much data for given things" wasn't generic enough for you not to post a suggestive quote :( 11:04 < jast> failed assertions indicate coding errors in the system that throws the assertion 11:04 < jast> *assertion failure 11:04 < dx> AlphaBlend: lolwat 11:05 < jast> a client should be resilient against protocol errors and stuff 11:05 < TobiX> jast: Or crummy assertions. Which is also a coding error ;) 11:05 < AlphaBlend> dx: You merely quoted something I could have said, but I said it essentially, in a way, although it was quite subtle 11:06 < dx> AlphaBlend: well not really a quote, but yes. so uhm, sorry? 11:06 <+Amaranth> I'm okay with the client bailing when you send it invalid data and with the server kicking a client when it gets invalid data 11:06 < AlphaBlend> dx: No need, but thanks for the suggestion! 11:06 -!- eddyb [~eddy@unaffiliated/eddyb] has joined #mcdevs 11:06 < dx> AlphaBlend: i'm confused now :D 11:06 < jast> assertions are for developers, not end users 11:06 < jast> if you want to bail, show an actual human-friendly error 11:07 < AlphaBlend> dx: I... nvm! I'll clean up my wording in the future! 11:07 <+Amaranth> This is arguing details, not ideas :P 11:07 < dx> AlphaBlend: nah, it's perfectly okay to say things in a subtle way. 11:07 < jast> my ideas are irrelevant to minecraft 11:08 < AlphaBlend> jast: Do you sanitize parameters to methods, even if your arguments will be sane 100% of the time? 11:08 < jast> no 11:08 < AlphaBlend> oh 11:08 < AlphaBlend> if you were in a group, would you then? 11:09 < jast> but I do sanitize external input, such as network messages 11:09 < jast> no. I work with sane people. 11:09 < AlphaBlend> hah 11:09 < AlphaBlend> yeah 11:09 < AlphaBlend> that makes sense 11:09 <+Amaranth> jast: This is a problem with minecraft, input sanitization is a part of processing the input 11:09 < AlphaBlend> minecraft client does not sanitize that :( 11:09 <+Amaranth> shotgun parsing 11:10 < AlphaBlend> it's just like, "Oh, NO U, *POOF*" 11:10 < AlphaBlend> Amaranth: Moar CPUs, that's why it doesn't sanitize input? 11:10 -!- Calinou [~Calinou@unaffiliated/calinou] has joined #mcdevs 11:10 <+Amaranth> AlphaBlend: No no, I mean it doesn't sanitize it in the networking layer 11:11 <+Amaranth> Aside from ensuring you've sent the correct amount of data 11:11 < AlphaBlend> ah 11:12 <+Amaranth> It does generally end up sanitized just a little bit here and a little bit there as it processes it and it relies on exceptions to deal with sanitization failures 11:13 < AlphaBlend> right, like sending a string where an int is expected 11:13 -!- BizarreCake [~BizarreCa@46.121.251.157] has joined #mcdevs 11:14 -!- conehead [~conehead@unaffiliated/conehead] has quit [Quit: Computer has gone to sleep.] 11:19 < AlphaBlend> at any rate 11:19 < AlphaBlend> kind of feel bad for Mojang since minecraft was not really anywhere near read for the mod API when work started to prepare it, and it's still not really near, although it's gotten a lot closer 11:19 < AlphaBlend> s/read/ready 11:21 <+md_5> feel bad for mojang? 11:21 -!- Paprikachu [~Paprikach@80.120.175.113] has quit [Remote host closed the connection] 11:21 <+md_5> you know they are already making a profit off scrolls? 11:21 <+md_5> something like 2 years dev costs recouped in a week 11:22 < AlphaBlend> heh, i suppose it's fun in a way 11:23 < AlphaBlend> i mean, the work they're doing for minecraft 11:23 < dx> md_5: sorry, but finding java developers in stockholm is extremely hard 11:23 <+md_5> yes 11:23 <+md_5> dx there are none, its too cold for us 11:23 <+md_5> java developers need warm climates 11:23 < dx> yeah must be that 11:23 < AlphaBlend> lol 11:23 <+ammar2> md_5: java "developers" 11:24 <+md_5> .g java developers stockholm 11:24 <+md_5> (md_5) http://www.jobsinstockholm.com/it/ -- IT & Technology | Jobs in Stockholm - Sweden: "4 June - Senior Java Developer - Payments, Stockholm. Not available for this job. - ns -. King 4 June - Backend Java Developer, Stockholm. Not..." 11:24 <+md_5> hum 11:24 <+md_5> not what I expected 11:24 * md_5 srhug 11:24 < dx> deadbabe 11:25 < AlphaBlend> im glad i got into ja va 11:25 <+md_5> I love how her first result is the bottom of the page on my google 11:25 < AlphaBlend> java* 11:25 <+md_5> AlphaBlend tbh job oppurtunties are not that great unless you are versed in java ee 11:25 < AlphaBlend> basically didn't know anything when i joined the development team for the minecraft community i'm a part of 11:25 <+md_5> opportunities 11:25 <+Amaranth> md_5: You live in your own google bubble 11:25 < AlphaBlend> but i learned gradually 11:25 < dx> google bubbles are fun 11:25 < AlphaBlend> and i'm not a master, nor too proficient, but i know more than enough to get by in our team 11:26 <+md_5> hm 11:26 <+md_5> Rovio has a swedish office 11:26 < AlphaBlend> learned a lot more OO than I did before playing with java 11:26 <+md_5> http://www.rovio.com/en/careers/Open-positions/view/197/game-programmers-stockholm 11:26 <+md_5> I'm sure they need java guys 11:26 <+Amaranth> Probably not really 11:27 <+ammar2> md_5: well yeah, they're based in sweeden, naturally they'd have an office there :P 11:27 < Fador> umm 11:27 < Fador> <- Finnish 11:27 < AlphaBlend> you guys have kept me up from going to bed 11:27 < AlphaBlend> grats 11:27 <+Amaranth> They probably have one guy who knows java/android enough to hook their game up to some basic framework and that's it 11:27 < Fador> Finland != Sweden 11:27 <+Amaranth> Not like they make "android" apps 11:28 < dx> Amaranth: so they use NDK for everything? 11:28 <+Amaranth> Yeah 11:29 <+ammar2> Fador: pretty much the same thing, sweeden is the shaft, finland is the ballsack. http://i.imgur.com/gaw0sQv.gif 11:29 <+md_5> doesnt matter 11:29 <+md_5> there is NOT a shortage of devs there 11:29 < dx> ammar2: >sweeden 11:29 <+ammar2> dx: hush 11:30 < Fador> ammar2 ...;D 11:30 <+Amaranth> DICE is there, could poach some of their guys 11:30 <+Amaranth> Learning java isn't hard 11:30 < dx> if you mean that it isn't hard for people with experience with languages like C++, then yes 11:30 <+ammar2> Amaranth: if you're gonna rewrite, may as well dump java since apparently no one cares about anything that doesn't directly affect vanilla and or map makers 11:31 -!- mode/#mcdevs [+v Fador] by ChanServ 11:31 <+Amaranth> ammar2: I'd do C++ with lua for addons 11:31 <+Amaranth> Groundbreaking, I know 11:31 < dx> lol lua 11:31 <+ammar2> Amaranth: but lua has 1 indexed arrays :( 11:31 * AlphaBlend raises an ear 11:31 <+Amaranth> ammar2: Modders are used to it :P 11:32 < SinZ> I like how everytime Gru.m talks here, a huge argument happens 11:33 < dx> well, grum raised a lot of strong points too 11:33 <+ammar2> yeah, like how they cleverly got around string.format's incredible cost with json encoding 11:33 <+md_5> thats because we all hate what mojang is doing 11:33 <+md_5> you could write an optimized formatter? 11:33 < dx> i mean, just read this stuff: http://dump.dequis.org/kfUcV.png 11:34 <+md_5> thats more dots than when evilseph cracked the shits at me 11:34 <+md_5> and he had a fair few dots 11:34 < Grum> ammar2: that is not the point 11:34 <+md_5> seems mojangstas like expressing their frustration with dots 11:34 <+ammar2> Grum: it was a joke, relax. :P 11:34 < AlphaBlend> so do i! 11:35 <+ammar2> but you didn't respond to my other thing, let me up arrow 11:35 <+ammar2> Grum: so even if you do stick with client based translation, why bother with json, you could switch to a markdown like format for colours and do an additional packet or send a boolean in the chat packet which sends the translation key and number and types of parameters to be formatted with 11:35 < Grum> because we need nested structure 11:35 < Grum> and nothing really trivially supports that 11:36 < dx> and here we are again with the argument of "we won't write a simple markup parser because it takes more than 5 minutes" 11:36 < AlphaBlend> well 11:36 < Grum> no 11:36 < Grum> writing a markup parser doent take 5 minutes 11:37 <+ammar2> because someone has already done the hard work of writing the parser for you :) 11:37 < AlphaBlend> i suppose you need something that doesn't require a lot of processing, not merely convenient for modders, right? 11:37 <+ammar2> Grum: got any examples of these complex nested structures that apparently nothing else can do? 11:37 < Grum> we need something that is flexible and nestable 11:37 <+md_5> ammar2 nope, but they will arise 11:37 <+md_5> trust me 11:37 < AlphaBlend> as right now the server has to parse the chat message looking for chat colors and then parsing them into what they should be 11:37 <+md_5> I already showed them my nested array format 11:37 <+md_5> now good enough apparently 11:37 < Grum> ammar2: /give returns a player + item, the item is localized too within a localized string 11:38 < Grum> aka nesting 11:38 < Grum> we do not add it because we 'think it is nice' -- we added it because it turned out to be a requirement 11:38 < AlphaBlend> like if you mirror java's String.format() where you parameterize input and send it to the server, the server doesn't need to do too much 11:38 < Grum> then we figured; well we miht as well use json for it, all of the other shit we'll do structured will be json anyhow 11:38 < AlphaBlend> it's stuff like that i'd understand 11:39 < Grum> what? 11:39 < Grum> nothing of this is for client->server 11:39 < Grum> its purely server->client 11:39 < AlphaBlend> oh 11:39 <+Amaranth> btw if you used server based translations you could switch to gettext too, bonus :P 11:39 <+md_5> essentials 3 uses gettext 11:39 <+md_5> :p 11:39 < Grum> gettext? 11:39 < Grum> you mean the 'standard' with .po files (orso?) 11:40 <+md_5> oh come on, didnt you do C programming gru.m 11:40 < AlphaBlend> i suppose that doesn't really matter anyways, my goal was simply saying parameterizing data 11:40 < Grum> nope i havent 11:40 <+md_5> yes that 11:40 <+ammar2> Grum: thisis what you had in your /give example https://gist.github.com/Dinnerbone/5631634#file-gistfile1-json-L18 11:40 < Grum> yeah. which is not really an option 11:40 < Grum> ammar2: that example was done before we realized we needed it 11:41 < Grum> 'stone' should be another {translate: item.stone} entry 11:41 < Grum> actually, that is not true 11:41 < Grum> the example is simply incomplete 11:41 < Grum> and false :P 11:41 < Grum> but still working nevertheless 11:42 <+md_5> > delete / edit it then 11:42 < Grum> why? 11:42 < Grum> conveys the intention well enough 11:42 < dx> gists are git repos, you can use them like that 11:42 <+ammar2> and what's stopping you from doing that without json? 'chat packet which sends the translation key and number and types of parameters' the type can be 'translation', the parameter can be 'item.stone' 11:43 < Grum> BECAUSE IT HAS TO BE NESTED 11:43 < Grum> stop being dense 11:43 < Grum> jezus 11:43 < Grum> also, we do send it completely minified 11:44 <+md_5> am I the only one who doesnt care about json at this stage? 11:44 < Grum> seems like it 11:44 <+md_5> I have the simolean stuff until at least 1.6.1 11:44 < Grum> you *may* have it 11:44 <+md_5> well if I dont, then I'll go back to caring :p 11:44 <+Amaranth> Is this where I come in and say protobuf? ;) 11:45 < Grum> Amaranth: you can but pointless without a major overhaul 11:45 <+md_5> no 11:45 <+md_5> thats stupid 11:45 < Grum> yes 11:45 < Grum> i'm not going to invest time into it when it gains us nothing 11:48 <+ammar2> because you've been investing time pretty carefully for the last year huh, the progress is astounding 11:48 < Grum> ammar2: feel free to attempt to do it better 11:49 <+ammar2> sure, hire me 11:49 < Grum> why? 11:49 < Grum> just code, you have the source 11:49 < Grum> go make it better. 11:49 <+md_5> .... 11:49 <+ammar2> "source" 11:49 <+md_5> w0t 11:49 <+ammar2> hahaha 11:49 < dx> "source" 11:49 <+md_5> Grum plz 11:49 < Grum> i dont see the problem 11:49 <+md_5> stahp 11:49 < dx> this guy 11:49 < Grum> there is barely any difference between that and what we work in >.> 11:49 < AlphaBlend> use MCP 11:49 < dx> Grum: you're good at this 11:49 < dx> Grum: congratulations 11:49 < Grum> mcp is actually better documented than our source >.> 11:49 < Grum> and i'm not kidding 11:49 < AlphaBlend> LOL 11:49 < SinZ> Grum: btw, with the new launcher, if you set the game directory on your profile to not .minecraft, Assets don't get loaded 11:49 < Calinou> Grum: true story 11:50 <+md_5> Grum if that was true and there was *any* likelyhood of you accepting patches I would have spammed stuff @ you 11:50 < Grum> Dinnerbone: ^^ SinZ 11:50 < Calinou> now, how about unobfuscating the source 11:50 < Calinou> let's see his answer 11:50 < Grum> md_5: for useless shit :) 11:50 < AlphaBlend> lol 11:50 < AlphaBlend> Calinou: Troll, go away 11:50 <+md_5> common sense stuff like dimensions being an int in one packet and byte in another 11:50 < AlphaBlend> :( 11:50 <+md_5> how is that useless. 11:50 < Calinou> no u 11:50 < Grum> md_5: i'll make the other one a byte 11:51 < Grum> also shrinks the protocol, problem solved. 11:51 <+md_5> D: 11:51 < AlphaBlend> Calinou: I've been in discussions where you presented that idea, and they didn't go nicely :\ 11:51 < Calinou> of course 11:51 < Calinou> Binnerdone is the MP3 fanboy in our screwed up family 11:51 <+md_5> removing a space from 1 in every every 100 chat packets would shrink it more 11:51 < Grum> we'll stop obfuscating large parts of the source, not now though 11:51 < dx> common sense stuff like Grum's most loved feature request, packet length headers 11:51 <+md_5> um 11:51 <+md_5> if you stop obfuscating part 11:51 -!- XAMPP [~XAMPP@botters/xampp] has joined #mcdevs 11:52 <+md_5> why wouldnt you do it all 11:52 < Grum> md_5: because you do not need to see the source of 'the other things' 11:52 < Calinou> ^ 11:52 < Calinou> eg. how deadmau5 has ears 11:52 <+md_5> there will be people that need to 11:52 < Grum> we'd also very likely hand out the source of things that is not obfuscated 11:52 < Grum> or rather; make them public 11:52 < Grum> md_5: fuck those people 11:52 < AlphaBlend> Calinou: i think it was less humorous than when pbunny threw his ideas at Grum about an all-chunks-loaded-minecraft-server 11:52 < Calinou> lol 11:53 < dx> 06:49 < Grum> md_5: because you do not need to see the source of 'the other things' 11:53 < dx> 06:46 < Grum> just code, you have the source 11:53 < dx> 06:46 < Grum> there is barely any difference between that and what we work in >.> 11:53 < Grum> dx: mcp == source 11:53 < SinZ> it is close enough to the source 11:53 < dx> Grum: what was the reason to not deobfuscate again? 11:54 < AlphaBlend> Grum: Does Searge get his mappings from you guys or does he use some code magic that is self aware type stuff? 11:54 < Grum> .java files compiles to a workable minecraft, less excuses, go majorly improve it without breaking backwards compat 1000 times without reason 11:54 < Grum> AlphaBlend: i mail the mappings to him every snapshot 11:54 < dx> 05:28 < Grum> i actually do not call it backwards compatibility but more forwards retardility :/ 11:54 < Calinou> dx: Binnerdone said "performance" 11:54 <+Amaranth> Fun fact, making up names for things based on what they do gets you better names than Mojang has a large amount of the time :P 11:54 < Calinou> (lol'd) 11:54 < Grum> Amaranth: true 11:54 <+md_5> mcp is nothing like the source 11:54 < AlphaBlend> Grum: That raises questions I don't think I want to ask :( 11:54 < Grum> md_5: its better >.> 11:54 <+md_5> there are plenty of unmapped methods 11:54 < Grum> yeah there are also lots of useless methods 11:54 <+md_5> func_12342_a is useless to me 11:54 < SinZ> like GuiMainMenu 11:54 < Grum> and we have utterly shitty names too 11:55 < dx> Grum: backwards compatibility is not an argument with the current codebase 11:55 < AlphaBlend> well 11:55 < SinZ> that class has alot of unmapped functions 11:55 <+md_5> not as shit as func_randomNumber_randomLetter 11:55 < Grum> dx: that was for java the language, nothing codebase 11:55 <+Amaranth> md_5: That's probably one of those ones called something like "heyImYourNeighbor" :P 11:55 < dx> Grum: i know, but it's relevant in this case 11:55 < Grum> dx: we try to keep the breaks as grouped as possible 11:56 < Grum> so not to break it 10 times in a row 11:56 < Grum> but rather break it one time *really* badly 11:56 <+Amaranth> http://www.cs.dartmouth.edu/~sergey/langsec/occupy/ 11:56 <+Amaranth> Somewhat related, dx was talking about protocol stuff :P 11:56 < AlphaBlend> Grum: My question about you mailing Searge those mappings is simply why obfuscate when you support mailing the mappings to him? If this starts an argument, I'll quickly back down 11:57 <+md_5> AlphaBlend I was shocked when I learnt that 11:57 <+md_5> its such a waste of time 11:57 < dx> Amaranth: wait what 11:57 <+Amaranth> dx: They argue against things like length fields 11:57 < Grum> Amaranth: is the obfuscation a real problem? 11:57 < Grum> i mean, for Bukkit, is it a HUGE problem that is absolutely making your work impossibly hard? 11:58 <+Amaranth> Grum: Well, it costs me a day every time you update :P 11:58 < AlphaBlend> Grum: Take from your experience with Bukkit and updating to new minecraft versions 11:58 < Grum> AlphaBlend: i couldn't care less 11:58 < AlphaBlend> i suppose so 11:58 < Grum> the breaks we had were because of structural changes not obfuscation 11:58 -!- r04r|away is now known as r04r 11:58 < AlphaBlend> oh 11:58 < Grum> yeah, because we refactor things or move them around; that causes breaks; not the obfuscation itself 11:59 < AlphaBlend> Amaranth: AT any rate, better thank Grum for his hand-me-down tools you guys use :D 11:59 < dx> it also means there are no bukkit releases for snapshots... except some builds from suspicious sources 11:59 <+md_5> because ofc mojang gave you the mappins 11:59 <+md_5> dx hey I wouldnt call them suspcious, I wrote an entire program to make them 11:59 <+Amaranth> AlphaBlend: Oh god the perl 11:59 < AlphaBlend> dx: Find faith in Spigot then 11:59 < Grum> dx: because bukkit hasn't evolved to use patches and is rather big 11:59 <+Amaranth> Grum: Single largest mod there is afaik 11:59 < Grum> md_5: we never actually used any mappings 11:59 < Grum> except for naming new classes 12:00 <+Amaranth> I use the mappings from Mojang for hints as to naming... what he said 12:00 < dx> md_5: i mean, the way the bukkit unofficial builds are distributed is often shady 12:00 < Grum> if bukkit were to migrate to a patch-based-system on the mcp-naming-scheme updating from obfuscation-changes would be minutes not hours 12:00 < Grum> but we're still talking ~4-5hrs for obfuscation 12:00 <+md_5> not saying I havent suggested that 12:01 < Grum> nothing on the grand scale of things 12:01 < Grum> so, apparently Amaranth isn't super bothered with obfuscation, Searge, LexManos and cpw aren't either; so why the f*ck do you guys whine so much? 12:02 <+md_5> because those are 4 people, and one of them has a job that consists of only dealing with obfuscation 12:02 < AlphaBlend> me, it's purely on a want-to-know basis, i just mainly go with the flow anyways 12:02 < AlphaBlend> i don't really care tbh 12:03 <+Amaranth> Also I'm not dealing with it anymore so I'm of course not bothered :P 12:03 < AlphaBlend> it's just something that makes me realllllllly curious 12:03 < Grum> frankly, we're keeping it because i'm saying that we're keeping it 12:03 < dx> Grum: we originally started the deobfuscation discussion the last time because you often tell us to implement stuff that you can't be bothered to write, and we have no legal way to do so 12:04 < Grum> we'll drop it when we're moving towards using the api for our game for the parts that use the api (and the api itself obviously) 12:04 <+Amaranth> dx: Being deobfuscated wouldn't make it legal 12:04 < dx> most of the time it turns into "write a reference implementation with MCP and we'll rewrite it" 12:04 < dx> Amaranth: it can be legal if a license is applied 12:04 < Grum> its not legal ever 12:04 < AlphaBlend> Grum: Mainly so people don't rip Mojang off, right? I mean, there had to be a reason in the beginning to obfuscate it 12:04 < Grum> AlphaBlend: not really, mainly because i said so 12:04 < Grum> (oh i also wont change my mind ;D) 12:05 < AlphaBlend> Well, you weren't around when Notch was working on it and would obfuscate it himself, so it's mainly an inherited trait o.o 12:05 < Grum> yes it is 12:05 < Grum> and until we're at a cleaner sourcebase, i dont see any benefit to Mojang changing it 12:05 <+ammar2> aah yes the age old no benefit to mojang argument 12:05 <+ammar2> we've gone full circle again 12:05 < Grum> when we're using the api ourselves to build the game, it will be an awesome demonstration of how to use the api to get things done, which is why i then do agree it makes sense 12:05 < AlphaBlend> uhhh, that almost sounds as if it was left unobfuscated, people would laugh at the code :P 12:06 < Grum> AlphaBlend: yes 12:06 <+md_5> we know your code is shit 12:06 <+ammar2> AlphaBlend: we already do 12:06 <+md_5> so it doesnt change anything 12:06 < AlphaBlend> our code is just.... 12:06 < AlphaBlend> GAH 12:06 < AlphaBlend> better, but still 12:06 < Grum> md_5: so why change it if it doesnt change anything 12:06 < dx> "MCP shows everything" "deobfuscating it would show things you don't want to see" 12:06 < dx> makes perfect sense. 12:06 < AlphaBlend> lol 12:07 < Calinou> dx: read: it shows ponies 12:07 < AlphaBlend> ohhh yesssssss 12:07 < AlphaBlend> "// Searge ftw, lol 12:07 < Calinou> aah yes the age old no benefit to mojang argument 12:07 < Calinou> hey, why does linux sucks afterall 12:07 < dx> AlphaBlend: it's still compiled, won't show comments 12:07 < Calinou> no benefit to port apps to it! 12:07 < Calinou> :phoronix rolleyes: 12:08 <+Amaranth> Grum: With obfuscation no one will ever see your ASCII art comments :D 12:08 < AlphaBlend> dx: Well, I was merely referring to the decompiled code and after MCP adds comments to it 12:08 <+Amaranth> Well, I guess they still wouldn't 12:08 < dx> AlphaBlend: oh that 12:09 < dx> 07:01 < Grum> its not legal ever 12:09 < dx> Grum: why not? it will be if you put a proper license 12:10 <+ammar2> Amaranth: step 1. make jvm proposal to add bytecode instruction for comments, step 2. strip comment stripping from javac, step 3. wait till changes propogate to mojang 12:11 < AlphaBlend> purely for aesthetics, because aesthetics rule 12:11 < dx> don't they compile for java 6? good luck getting new bytecode instructions 12:11 < AlphaBlend> hah 12:11 < AlphaBlend> java 8 12:11 <+ammar2> dx: wait patiently. 12:11 < dx> very patiently. 12:13 < dx> ammar2: think we'll get minecraft compiled against java 8 before grum decides to stop keeping obfuscation because he "said so"? 12:14 <+ammar2> dx: we'll sooner have half life 3 ;) 12:14 -!- Mu5tank05 [~Mu5tank05@waldo.cloud.nathanblaney.tk] has joined #mcdevs 12:14 < dx> hmm, if we could predict the existence of java 15, then we could safely confirm half life 3 12:15 < dx> let's hope oracle doesn't go bankrupt any time soon 12:15 <+md_5> oh its nearly lunch time in sweden 12:15 * md_5 wonders what mojang has coded this morning 12:15 <+md_5> HELL OF A LOT surely 12:15 < Grum> i've fixed lots of missing textures =) 12:15 < AlphaBlend> md_5: So how's that move from bukkit to MCP going? 12:15 < Grum> while listening to some weird people whine on irc ;) 12:16 -!- BizarreCake [~BizarreCa@46.121.251.157] has quit [Read error: Connection reset by peer] 12:16 <+md_5> AlphaBlend nicely did a lot of work today 12:16 <+md_5> designed our new config 12:16 <+md_5> and cleaned up some stuff 12:16 < AlphaBlend> md_5: I saw the thread on your forums a bit late, but I wanted to see it at some point 12:16 < AlphaBlend> we used to use spigot 12:16 < AlphaBlend> i mean well 12:16 < AlphaBlend> no 12:16 <+md_5> next stage will be porting to the new config 12:16 <+md_5> then we will go from there 12:16 < AlphaBlend> we pulled spigot code into our custom builds 12:16 < AlphaBlend> but there came a time we had a ton of lag in our server 12:16 < AlphaBlend> why? i don't know why 12:17 < AlphaBlend> but I wanted to do a fresh start, so we removed spigot, and kept only noteworthy changes of our own in there 12:17 < AlphaBlend> I think it was a bit better 12:17 < AlphaBlend> not to say your code really did anything bad, but i still wanted to experiment 12:17 <+md_5> AlphaBlend I'm working more onto breaking spigot stuff into its own patches even further 12:17 < AlphaBlend> meh we still had it from time to time 12:17 <+md_5> and once the new config is in place 12:18 <+md_5> you should be able to remove / add most patches without breaking sutff 12:18 <+md_5> stuff 12:18 < dx> neat 12:18 < AlphaBlend> this patching concept in terms of adding code is foreign to me when it comes to server development 12:18 < AlphaBlend> is this just simply replacing our file with yours? 12:19 < AlphaBlend> say, if we were using spigot 12:19 <+md_5> its replacing bits of a file 12:19 < Grum> the patching is what you get on a static codebase 12:20 < dx> it's not like you can refactor core components that spigot touches with an API anyway 12:20 < AlphaBlend> hm 12:21 < AlphaBlend> i've kept myself up for a conversation I really wanted to participate in 12:21 < AlphaBlend> and it worked 12:21 < AlphaBlend> so now i don't feel really tired, but I shouldn't pull an all-nighter either 12:29 <+md_5> thats all folks 12:30 < AlphaBlend> yeah 12:30 < AlphaBlend> well later today's another time to have another discussion, for me at least 12:31 < AlphaBlend> i thoroughly enjoyed the one we had earlier, a lot of information and a lot of fun it was 12:31 < AlphaBlend> but i should go to bed now 12:31 < AlphaBlend> and i will, so afk ;p 12:38 -!- yorick [~yorick@oftn/member/yorick] has joined #mcdevs 12:44 -!- Calinou [~Calinou@unaffiliated/calinou] has quit [Quit: Excess Flood] 12:44 -!- unnicked943 [~50e8f3d5@204.155.152.124] has joined #mcdevs 12:49 < SinZ> Grum: Why does the new launcher send the client the version? 12:49 < SinZ> yet there are places in the client you still hard-code version number 12:53 < Grum> SinZ: that is just the profile version 12:53 < Grum> so we can send that back in the snooperdata, crashreports 12:54 < Grum> and flatout deny tickets that do not have a version that is ours =) 12:54 < SinZ> heh 12:55 < Grum> also it wouldn't make sense to distill the version from that 12:57 <+md_5> this is why you kee the version the same when making mods 12:58 < Grum> yup so version != profile == good indication of 'modded' ;P 12:58 < Grum> also flatout deny all those tickets 12:58 -!- kcj [~casey@unaffiliated/kcj] has quit [Ping timeout: 246 seconds] 12:58 < jast> also flat out deny all tickets 12:58 <+md_5> ^^ 12:58 < Grum> nah just the ones that are invalid :) 12:59 < jast> less work if you deny everything 12:59 < jast> can be automated even 12:59 < jast> win-win! 12:59 < Grum> but then we could shutdown the ticketing system! 12:59 < Grum> and then we wouldnt get whines when it would break ;) 12:59 < Grum> win-win-win! 12:59 < jast> nah, that'd be boring 12:59 < Grum> you know, i just realized that we're storing the texturefile within the serverdata ...... 12:59 < Grum> ./cry 12:59 < Grum> now i have to refactor that :P 12:59 < jast> sell snake oil instead of products. no work but still $$$. win⁴! 13:01 < jast> snake vapour, in fact. nothing's cheaper and less work than that. 13:01 < Grum> oh god pbunny msgs me 13:01 < SinZ> yeh we all get it 13:01 < SinZ> we just ignore it now though 13:02 < jast> I have a 100% reliable methodology for selling snake vapour with zero effort and making billions. I can share it with you for the sensationally low price of $897, but only if you order within the next ten minutes 13:02 < jast> there's also an affiliate system so I don't have to do my own marketing 13:02 -!- fireglow [fireglow@unaffiliated/fireglow] has quit [Quit: puf] 13:03 < Grum> can it get two for 898? 13:03 < jast> aww, pbunny has never messaged me :( I feel left out 13:03 -!- fireglow [fireglow@unaffiliated/fireglow] has joined #mcdevs 13:04 < Grum> i suggetsed to msg you jast 13:04 < SinZ> from memory he still has a spy in here, so don't worry 13:08 < Grum> apparently you are a crying schoolboy 13:08 < Grum> i mean, i totally agree 13:08 < Grum> pbunnyforpresident 13:10 < jast> me? 13:10 < jast> yeah, totally 13:10 < Grum> nah SinZ and dav1d orso 13:10 < TobiX> Grum: You should really install the Jira-Minecraft integration plugin. Then: Closing tickets with TNT! 13:10 < Grum> tnt? pfft ;P 13:11 < SinZ> super charged creepers 13:11 < jast> new captcha system: to file a ticket, please implement $thingamajig in redstone in the box provided below 13:18 < Grum> the captcha should be: help this newbie in a friendly and kind way 13:18 < Grum> then we'd not have ANY tickets 13:21 -!- Calinou [~Calinou@unaffiliated/calinou] has joined #mcdevs 13:24 < SinZ> Grum: http://screencloud.net/v/1Oms This is the captcha you need, pbunny would aprove! 13:25 < Grum> not getting it :( 13:25 < SinZ> apparently it was a 9, and you are not human if you didn't get it 13:26 < Grum> ah i see 13:27 <+md_5> lol thats the one I couldnt figure out 13:27 -!- ranie [~rramiso@124.6.182.55] has quit [Read error: Connection reset by peer] 13:29 -!- PhonicUK [~PhonicUK@pdpc/supporter/student/phonicuk] has quit [Ping timeout: 252 seconds] 13:33 -!- PhonicUK [~PhonicUK@pdpc/supporter/student/phonicuk] has joined #mcdevs 13:57 -!- Yoshi2 [~chatzilla@xdsl-87-79-112-195.netcologne.de] has joined #mcdevs 14:09 -!- fireglow [fireglow@unaffiliated/fireglow] has quit [Ping timeout: 252 seconds] 14:11 -!- fireglow [fireglow@unaffiliated/fireglow] has joined #mcdevs 14:34 -!- cathode [~cathode@c-76-105-184-52.hsd1.or.comcast.net] has quit [Quit: Leaving] 14:40 < dav1d> Grum: yo? 14:41 < dav1d> what happened?^^ 14:42 -!- pdelvo [~pdelvo@mcdevs/trusted/pdelvo] has joined #mcdevs 14:42 -!- mode/#mcdevs [+v pdelvo] by ChanServ 14:44 -!- cathode [~cathode@c-76-105-184-52.hsd1.or.comcast.net] has joined #mcdevs 14:44 <+pdelvo> znc stinks. my bouncer cannot connect to freenode and I have no idea why 14:45 < dav1d> pdelvo: works fine here! 14:45 < dav1d> znc ftw! 14:46 < unnicked943> znc is a piece of bug 14:46 < unnicked943> never worked well for me 14:46 <+ammar2> doesn't work well for me, clearly its terrible 14:46 < unnicked943> dav1d is probably a troll 14:47 < dav1d> ammar2: sure, everything I am too stuipid to install sucks 14:47 <+pdelvo> the znc webinterface is slow as hell :/ 14:47 < dav1d> pdelvo: really? :O 14:47 < dav1d> pdelvo: which version? 14:48 <+pdelvo> ZNC 0.206r2 14:48 < dav1d> pdelvo: then you complain, lol 14:48 <+pdelvo> when I ping freenode from my server I get a ping < 1ms so this is not the problem 14:48 < dav1d> pdelvo: 1.x is the up to date 14:48 <+pdelvo> it worked for months without a problem 14:49 < dav1d> and you don't have multi-server support pfft 14:49 < dav1d> if you want I can host an account for you, I have a nifty webchat connected to the znc :P 14:50 < unnicked943> and i can host paypal for you 14:50 < unnicked943> paypal account, that is 14:50 <+pdelvo> the windows build of znc always need months to get updated. "March 2013: For everyone who's asking about 1.x coming to Windows: don't give up hope, I'll be working on it as soon as upstream releases the first post-1.0 version! " 14:50 < dav1d> pdelvo: I had to compile it for my debian, was easy and done in a few mins 14:51 < unnicked943> lol, debian 14:51 < dav1d> sadimusi pls 14:51 < Calinou> unnicked943: +1 :> 14:52 < dav1d> clop Calinou 14:52 < Calinou> clop dav1d 14:58 -!- Calinou [~Calinou@unaffiliated/calinou] has quit [Quit: Excess Flood] 15:05 < SinZ> dav1d: my znc installation was very easy on ubuntu 15:05 < dav1d> SinZ: debian *old* stable :P 15:05 < dav1d> nothing in the packets 15:06 < dav1d> *no packet in the repositorie 15:06 < dav1d> s 15:07 < unnicked943> why use outdated software? 15:10 < dav1d> oh dear 15:14 < jast> bleeding edge vs stability, yada yada 15:15 < unnicked943> mac is stable 15:15 < unnicked943> and bleeding edge 15:15 < unnicked943> linux is for people without money 15:15 < unnicked943> :> 15:16 < jast> and I use it anyway. confusing... 15:18 <+AndrewPH> <*status> ZNC 0.206 - http://znc.in 15:18 <+AndrewPH> I should update... 15:19 < dav1d> ZNC 1.0 - http://znc.in 15:19 < dav1d> yay 15:19 < jast> irssi 15:19 < dav1d> pfft 15:19 < jast> aw man, odd one out 15:19 < dav1d> irssi worst irc client eva! :D 15:20 < dav1d> irc client war pls 15:20 < Yoshi2> chatzilla > all 15:20 < zutto> II>weechat>irssi>* ! 15:20 < dav1d> ^ 15:20 < jast> jirc! (does that exist? bound to, right?) 15:21 < zutto> yeah, theres client named jirc 15:21 < dav1d> jastirc? 15:21 < jast> nah 15:26 -!- TomyLobo [~TomyLobo@91-66-112-147-dynip.superkabel.de] has joined #mcdevs 15:27 -!- pdelvo [~pdelvo@mcdevs/trusted/pdelvo] has quit [Quit: Verlassend] 15:28 -!- pdelvo [pdelvo@mcdevs/trusted/pdelvo] has joined #mcdevs 15:28 -!- mode/#mcdevs [+v pdelvo] by ChanServ 15:28 < dav1d> o/ 15:28 <+pdelvo> o/ 15:29 < Yoshi2> o/ 15:29 < dav1d> watching etho doing computercraft is horrible 15:30 < dav1d> "does capitalization matter" ... 15:30 <+pdelvo> I saw that too :D But I used sleep(1000) first too because everywhere else it is messured in ms :D 15:30 <+pdelvo> in visual basic it doesnt matter ;) 15:31 < unnicked943> in visual basic it doesn't matter what you code, you will get shit at the end anyway 15:31 < dav1d> do lua indices start at 1? 15:31 <+pdelvo> jeah 15:31 < jast> just like in matlab \o/ 15:32 < Yoshi2> in visual basic you can hide everything with a pretty gui 15:32 < Yoshi2> and damn, it annoys me to no end that indices in lua start at 1 15:32 < mbaxter_> So wait 15:32 <+pdelvo> pUbLiC cLaS tEsT is valid :D 15:32 < dav1d> I bet you can redfine an integer which increments itself automatically 15:32 < dav1d> :P 15:33 < jast> in perl, $[ = 1 15:33 < jast> endless fun! 15:33 < jast> in fact you can set $[ to 500 to have arrays start at index 500 15:33 < jast> this whole feature is deprecated though :( 15:34 < dav1d> because it is stuipid^^ 15:35 <+pdelvo> Lets test what happens if you write a dll in c# which has a class in it with two fields "test" and "Test" and reference it in visual basic 15:35 < dav1d> also rubies method_missing 15:35 < dav1d> *rubys 15:35 < dav1d> whatever stuipid english 15:35 < jast> ruby allows plenty of insanity 15:36 < dav1d> which is cool, but if you wanna use it productivly it is insane 15:36 < dav1d> (is that even a word...) 15:38 <+pdelvo> hihi 'test' is ambiguous because multiple kinds of members with this name exist in class 'Test.TestClass'. 15:38 < jast> I made this thing for ruby a LONG time ago: http://heapsort.de/circus/doc/classes/Hookable.html 15:41 < dav1d> jast: I want that in D :( 15:41 < jast> tough luck 15:41 < dav1d> would be possible via vtable manipulation but though 15:42 < dav1d> I guess 15:45 -!- eddyb [~eddy@unaffiliated/eddyb] has quit [Quit: Konversation terminated!] 15:48 < jast> here's the code in case you want to port it to D ;) http://vpaste.net/mhAcH 15:48 < jast> written 2004 15:52 -!- dexter0 [~dexter0@c-24-23-138-192.hsd1.ca.comcast.net] has quit [Quit: exit(0);] 15:56 -!- eddyb [~eddy@unaffiliated/eddyb] has joined #mcdevs 15:57 -!- eddyb [~eddy@unaffiliated/eddyb] has quit [Client Quit] 15:57 -!- eddyb [~eddy@unaffiliated/eddyb] has joined #mcdevs 15:57 < TobiX> dav1d: method_missing, see also: "WAT?" 15:57 < dav1d> that talk is meh 15:57 < dav1d> JS behaviour he showed actually makes a bit sense, there is a lot worse 16:01 < dav1d> TIL youtube, eating, irc → quality of my english ↓ 16:02 < mbaxter_> dx: RIP TagAPI. 16:05 -!- mbaxter_ is now known as mbaxter 16:05 -!- mbaxter [~mbaxter@199.180.250.158] has quit [Changing host] 16:05 -!- mbaxter [~mbaxter@mcblockit/staff/mbaxter] has joined #mcdevs 16:08 -!- r04r is now known as r04r|away 16:10 -!- Yoshi2 [~chatzilla@xdsl-87-79-112-195.netcologne.de] has quit [Read error: Connection reset by peer] 16:10 -!- Yoshi2 [~chatzilla@xdsl-87-79-112-195.netcologne.de] has joined #mcdevs 16:31 -!- nopresnik [~Nathan@CPE-120-144-212-106.lnse5.lon.bigpond.net.au] has joined #mcdevs 16:31 -!- nopresnik [~Nathan@CPE-120-144-212-106.lnse5.lon.bigpond.net.au] has quit [Client Quit] 16:32 -!- nopresnik [~Nathan@CPE-120-144-212-106.lnse5.lon.bigpond.net.au] has joined #mcdevs 16:32 -!- Rudench [shnaw@irc.minecraft.org] has joined #mcdevs 16:35 -!- nopresnik [~Nathan@CPE-120-144-212-106.lnse5.lon.bigpond.net.au] has quit [Client Quit] 16:36 -!- nopresnik [~Nathan@CPE-120-144-212-106.lnse5.lon.bigpond.net.au] has joined #mcdevs 16:36 -!- nopresnik [~Nathan@CPE-120-144-212-106.lnse5.lon.bigpond.net.au] has quit [Client Quit] 16:36 -!- nopresnik [~Nathan@CPE-120-144-212-106.lnse5.lon.bigpond.net.au] has joined #mcdevs 16:37 -!- Rudench [shnaw@irc.minecraft.org] has quit [Quit: No Ping reply in 180 seconds.] 16:40 -!- Yoshi2| [~chatzilla@xdsl-78-35-221-34.netcologne.de] has joined #mcdevs 16:41 -!- Yoshi2 [~chatzilla@xdsl-87-79-112-195.netcologne.de] has quit [Ping timeout: 240 seconds] 16:42 -!- Yoshi2| is now known as Yoshi2 16:54 -!- Calinou [~Calinou@unaffiliated/calinou] has joined #mcdevs 16:58 -!- Amaranth [~travis@ubuntu/member/Amaranth] has quit [Ping timeout: 240 seconds] 17:02 -!- unnicked943 [~50e8f3d5@204.155.152.124] has quit [Quit: CGI:IRC (Ping timeout)] 17:25 -!- Amaranth [~travis@ubuntu/member/Amaranth] has joined #mcdevs 17:25 -!- mode/#mcdevs [+v Amaranth] by ChanServ 17:27 -!- TomyLobo [~TomyLobo@91-66-112-147-dynip.superkabel.de] has quit [Quit: Standby mode...] 17:27 -!- SuinDraw [~NiaTeppel@WiseOS/Founder/NiaTeppelin] has joined #mcdevs 17:31 -!- moshee [~moshee@unaffiliated/moshee] has joined #mcdevs 17:40 -!- Paprikachu [~Paprikach@77.116.95.136.wireless.dyn.drei.com] has joined #mcdevs 18:00 -!- XAMPP_ [~XAMPP@199.254.116.102] has joined #mcdevs 18:11 -!- mosheee [~moshee@jungle.displaynone.us] has joined #mcdevs 18:11 -!- mosheee [~moshee@jungle.displaynone.us] has quit [Changing host] 18:11 -!- mosheee [~moshee@unaffiliated/moshee] has joined #mcdevs 18:11 -!- XAMPP [~XAMPP@botters/xampp] has quit [Ping timeout: 246 seconds] 18:11 -!- moshee [~moshee@unaffiliated/moshee] has quit [Ping timeout: 246 seconds] 19:14 <+sadimusi> anybody with an iOS dev account and free UDID slots around? 19:23 -!- SuinDraw [~NiaTeppel@WiseOS/Founder/NiaTeppelin] has quit [Read error: Connection reset by peer] 19:24 -!- SuinDraw [~NiaTeppel@WiseOS/Founder/NiaTeppelin] has joined #mcdevs 19:29 -!- TRocket [~TRocket@82-69-14-167.dsl.in-addr.zen.co.uk] has joined #mcdevs 19:29 -!- TomyLobo [~TomyLobo@91-66-112-147-dynip.superkabel.de] has joined #mcdevs