11:08 <@deen> ddos incoming 11:13 <@EastByte> whooooot 11:14 <@deen> everyone's ping went +100, lags and high traffic on GER 12:37 < Nimda> Temple of Doom by Hindu & Zerodin just released on Moderate at 2015-06-17 12:18 12:52 <@EastByte> the changes on auto recorder were bigger than I thought 12:56 < ddnet-commits> [ddnet] east opened pull request #223: Further revert of auto demo recorder (fixes continuous recording on T… (DDRace64...demofix) http://git.io/vLCwV 12:59 < ddnet-commits> [ddnet] def- pushed 2 new commits to DDRace64: http://git.io/vLCru 12:59 < ddnet-commits> ddnet/DDRace64 458e83e east: Further revert of auto demo recorder (fixes continuous recording on TILE_BEGIN) 12:59 < ddnet-commits> ddnet/DDRace64 33dc80c Dennis Felsing: Merge pull request #223 from east/demofix... 13:00 < Shiki> deen: EastByte oops, sorry for being away guys 13:01 < Shiki> I'm currently busy with my bachelors but I'm planning to get back to teeworlds code at the end of this week 13:01 < Shiki> I hope I will finally fix autorecorder issues once and for all 13:02 < Shiki> fix was intended mainly to enable OnStartGame call after restart and avoid calling OnStartGame during pause or other states in which new round tick is being sent continuously 13:03 <@EastByte> Shiki: no problem 13:03 <@EastByte> I think we should add another demo recorder for that kind of vanilla round recording 13:03 < Shiki> nah, no need, truly 13:04 < Shiki> I think it can be fixed without including additional hacks 13:04 <@EastByte> but it would be much more clear 13:04 <@EastByte> since auto demo recorder should just record everything 13:04 <@EastByte> independent from gametime 13:05 < Shiki> hm, I see 13:05 < Shiki> although statboard for vanilla needs OnStartGame to be called after restart to clean stats 13:06 < Shiki> if all my changes to gameclient.cpp were reverted then statboard won't be reset until server reload 13:06 <@EastByte> looks like OnStartGame is not needed for auto 13:07 < Shiki> oh 13:07 < Shiki> I haven't thought about it :) 13:07 <@EastByte> then we should seperate it 13:07 < Shiki> any ideas on how to separate it? 13:07 < Shiki> my current use case for demos recording includes recording demo of each complete vanilla high level game 13:08 < Shiki> and I like it when demo contains only the game itself, not countless minutes of random chatting before restart 13:09 <@EastByte> yes, that's why a vanilla recorder would be nice 13:09 <@EastByte> which replaces race recorder in case of a vanilla mod 13:10 < Shiki> I still don't like the idea of spreading demo recorder code among 3 files 13:10 < Shiki> it was quite tricky for me to learn about race_demo.cpp in first place 13:11 <@EastByte> looks like the auto recorder only needs this line: https://github.com/def-/ddnet/blob/DDRace64/src/engine/client/client.cpp#L1852 13:12 <@EastByte> so we can keep it out of OnStartGame 13:13 <@EastByte> well that kind of trickiness does not only go for demo recorders 13:13 <@EastByte> but yea, I don't like it either 13:13 < Shiki> but is there a way to reset demo recording after restart without creating demo_vanilla? 13:14 < Shiki> I'm answering to this: > 13:14 < Shiki> > so we can keep it out of OnStartGame 13:16 <@EastByte> what do you mean by creating demo_vanilla? 13:17 <@EastByte> I thought auto recorder is meant to record everything from the moment on you are connected until disconnect 13:17 <@EastByte> so no need to restart 13:18 <@EastByte> and I suggested a vanilla recorder as solution for vanilla round recording 14:14 < ddnet-commits> [ddnet] cinaera opened pull request #224: Create directory for statboard screenshots (DDRace64...pr_statboard) http://git.io/vLCjg 14:17 < ddnet-commits> [ddnet] def- pushed 2 new commits to DDRace64: http://git.io/vLWeG 14:17 < ddnet-commits> ddnet/DDRace64 839db0a BeaR: Create directory for statboard screenshots 14:17 < ddnet-commits> ddnet/DDRace64 acda1b1 Dennis Felsing: Merge pull request #224 from cinaera/pr_statboard... 14:39 < Shiki> EastByte: I mean demo_vanilla.cpp, a separate file for vanilla demo recording code 14:40 < Shiki> can we avoid creating said file if we remove demo recording start from OnStartGame? 14:47 <@EastByte> no need for demo_vanilla.cpp 14:47 <@EastByte> the code will mainly be in gameclient.cpp anyways 14:49 <@EastByte> another question would be how to seperate vanilla demos from race/auto demos 14:51 <@EastByte> meh this is getting complicated 14:56 <@deen> so, 50 MB/s incoming on the block2 server 14:56 <@deen> causes 120 MB/s outgoing 14:57 <@EastByte> from which ip? 14:57 <@EastByte> it might be 76.74.249.76 15:03 <@deen> ok, it's actually a single server, I'll just report it 15:03 <@deen> to his provider 15:03 <@deen> iptables rule running now 15:04 <@deen> at least no more outgoing traffic 15:04 <@deen> but kernel still has trouble 15:04 <@EastByte> was it the ip I posted? 15:04 <@deen> no 15:04 <@EastByte> okay 15:07 <@deen> there we go, reported to his hoster 15:07 <@deen> sometimes he gets it up to 50 MB/s 15:07 <@deen> but him just having 1 host doesn'T make it too ba 15:08 <@EastByte> whay do you actually write when reporting a server? 15:08 <@EastByte> what* 15:10 <@deen> EastByte: http://ddnet.tw/dosmail.txt 15:10 <@EastByte> ah that's quite simple 15:10 <@deen> http://www.tutorialspoint.com/index.htm that's running on his IP 15:10 <@deen> looks like he owned the server 15:11 <@deen> i doubt that's his own 15:11 <@EastByte> ehm 76.74.249.76 is from serverbeach aswell 15:11 <@deen> ah 15:11 <@EastByte> I find this quite strange 15:11 <@deen> damn iptables is only single threaded 15:12 <@deen> single-process 15:12 <@deen> ah, looks like it's over 15:12 <@deen> or not, back again 15:12 <@EastByte> http://pastebin.com/Gw9QHRYY 15:13 <@EastByte> this is the code cider apparently used 15:13 <@deen> let me check, i have tcpdump 15:13 <@deen> yesp, that's it 15:13 <@EastByte> okay 15:13 <@deen> same message 15:13 <@EastByte> so since there are no things like raw sockets in the code 15:13 <@EastByte> it shouldn't be spoofed 15:14 <@deen> oh right, didn't even think about spoofing 15:14 <@deen> but if it was spoofed, he should be able to change ip 15:14 <@deen> which he hasn't 15:14 <@EastByte> right 15:14 <@EastByte> but it might let you think that it's a single server 15:17 <@deen> this is the first time the abuse mail worked for me btw 15:18 <@EastByte> oh it worked? 15:18 <@deen> usually people attack from some russian hoster where abuse@hoster isn't even registered :P 15:18 <@EastByte> oh 15:18 <@deen> at least they sent me an automated reply that that they will be looking into it 15:18 <@EastByte> that's nice 15:19 <@deen> and no more traffic incoming. so either he gave up or they blocked him already 15:20 <@deen> i guess we need an iptables rule to limit traffic per ip in general 15:20 <@deen> to prevent this stuff in the future 15:20 <@EastByte> shouldn't nfoservers treat this as an attack? 15:20 <@deen> nah, it's just 20 MB/s from a single ip 15:20 <@deen> nothing special 15:20 <@deen> 20-50 MB/s 15:20 <@EastByte> but it's small packet flooding 15:20 <@deen> apparently they don't, it's back^^ 15:21 <@EastByte> a pps limit per ip would be nice 15:22 <@deen> yeah, sth simple like: after 10k pps for 5 seconds, ban ip for 10 min 15:25 <@deen> EastByte: don't tell him that sendmmsg would send more packets :P 15:26 <@EastByte> I can't^^ WolfAlex kinda has indirect contact to him 15:27 <@EastByte> WolfAlex: might cider also be known as float 7.0f? 15:32 <@EastByte> deen: so 50MB causes 120MB outgoing? 15:32 <@EastByte> do you think it's worth it to implement a protection against reflection attacks? 15:32 <@deen> EastByte: yes 15:32 <@deen> no 15:32 <@deen> i think that should be handled with iptables 15:32 <@deen> so, talked to the guy again, he said he can buy a 30 gbit/s server and dos us harder^^ 15:33 <@EastByte> oh that's cute 15:33 <@deen> oh wait, he said he can "get" a server 15:33 <@deen> i think buying would be a bit expensive 15:33 <@EastByte> "get" 15:34 <@EastByte> so if iptables also handles outgoing traffic then it's fine 15:35 <@deen> 30gbit/s servers are crazy expensive. i see prizes around 500 € / month 15:36 <@deen> and you still have to pay for bandwidth of course 15:36 <@EastByte> and still not enough to face against ddnet directed attacks 15:36 <@EastByte> ah right 15:37 <@deen> guaranteed 10 gbit/s costs about 8000 € / month, nice 15:39 <@EastByte> then I understand why datafabrik wanted to get rid of you :P 15:40 <@deen> haha, yeah 15:40 <@deen> their prizes made no sense, don't get anything like that elsewhere 16:10 < bigman> hi 16:10 <@deen> hi 16:11 < bigman> how i can compile ddnet with vs13 16:12 * bigman slaps deen around a bit with a large fishbot 16:13 * bigman slaps deen around a bit with a large fishbot 16:13 <@deen> no idea 16:13 <@EastByte> hmm 16:13 <@deen> bigman: like this? https://www.teeworlds.com/?page=docs&wiki=compiling_everything 16:14 < bigman> there is no compile_release.bat that can compile with vs13 16:14 < bigman> ? 16:15 <@EastByte> you have to work with bam 16:15 <@deen> if you have built bam 16:15 <@deen> you should just run "bam release" 16:17 < bigman> suck 16:17 < bigman> such 16:17 < bigman> :D 16:31 <@deen> ? 16:44 <@EastByte> https://github.com/east/nimtw/ 16:45 <@EastByte> me again reimplementing the tw protocol 16:56 <@deen> nice! 16:57 <@deen> EastByte: when you have multiple vars, you can use a var block 16:57 <@deen> and I wouldn't have a space before the : for type 16:58 <@EastByte> yea I'm yet kinda stumbling with the code format 16:59 <@deen> https://github.com/nim-lang/Nim/wiki/Style-Guide-for-Nim-Code 17:00 <@deen> 2 space indentation is a bit controversial, but i always preferred it :P 17:00 <@EastByte> I'm okay with it 17:01 <@EastByte> although I kinda have a poor eyesight and sometimes can't keep blockes apart^^ 17:01 <@EastByte> blocks* 17:04 <@EastByte> "Why shout CONSTANT? Constants do no harm, variables do!" hehe 17:04 <@deen> ^^ 17:04 <@deen> EastByte: bigger font? 17:04 <@deen> i always switch around font sizes 17:04 <@deen> on the fly 17:04 <@EastByte> hm I never did 17:04 <@EastByte> but a bigger font might be good 17:05 <@deen> using urxvt? 17:05 <@EastByte> yep 17:05 <@deen> https://gist.github.com/def-/a06ead61ec090ae4fe90 17:05 <@deen> this helps in the .Xdefaults 17:05 <@deen> to change font size with a key bind 17:06 <@EastByte> oh so many binds? 17:06 <@deen> the really big ones are for showing code to other people, on a beamer 17:06 <@EastByte> ah 17:07 <@deen> and everything is for 2 fonts, because terminus doesn't have all characters 17:07 <@EastByte> hm since I have a bluetooth keyboard now, it would be awesome to type while sitting in bed 17:07 <@deen> also, lines 19-20 are fun on a laptop in sunlight 17:07 <@deen> can just switch black-on-white to white-on-black 17:07 <@EastByte> ah, nice 17:08 <@deen> my most important line in xdefaults is this one though: urxvt.print-pipe: "cat > /dev/null" 17:08 <@deen> otherwise when you cat a random file, it sometimes contains commands to print something on the printer 17:08 <@EastByte> huh? 17:08 <@EastByte> wut 17:08 <@deen> lots of fun when the printer suddenly prints 100 pages of garbage while I'm afk 17:09 <@deen> there was some key bind to print the current console output and of course random text on the terminal can trigger it 17:10 <@EastByte> well I don't have a printer installed 17:11 <@deen> it's pretty terrible that we still use the old terminal standards like vt100 17:12 <@deen> http://www.termsys.demon.co.uk/vtansi.htm 17:12 <@deen> [i Print the current screen. 17:13 <@deen> EastByte: i don't know if ClientSeq is any cleaner than seq[Client] 17:14 <@EastByte> hm I don't remember why I made a type for that 17:15 <@deen> ptrmath is evil of course :P 17:15 <@EastByte> tell me how to do binary parsing in a safe way :(( 17:15 <@EastByte> +efficient :P 17:15 <@deen> where exactly? 17:16 <@EastByte> hm 17:16 <@EastByte> https://github.com/east/nimtw/blob/master/network.nim#L32 17:16 <@deen> and not sure if i would write "var bits: uint32 = 0" or just "var bits = 0'u32" 17:16 <@EastByte> 0'u32 looks cleaner 17:18 <@EastByte> so recv() returns the buffer in a string 17:18 < o_be_one> hello 17:18 <@EastByte> I'm not sure how to use this string like a c array 17:18 <@deen> hi o_be_one 17:18 <@EastByte> to do parsing 17:18 <@EastByte> hi o_be_one 17:18 <@deen> EastByte: i may be blind, where do you use pointer magic? 17:18 < o_be_one> deen, just to let you know, V3R was updated this night. A DDoS happend and made all players left (there was just 8 players online atm) 17:18 <@deen> pointer math* 17:19 <@EastByte> https://github.com/east/nimtw/blob/master/network.nim#L42 17:19 <@EastByte> and below 17:19 <@deen> o_be_one: yeah, i'm trying to handle the DoS 17:19 <@EastByte> p[0] ... 17:19 < o_be_one> ive took this luck to shutdown the serv to get it updated ^^ 17:19 <@deen> "luck" :P 17:20 <@EastByte> and deen already made an abuse report 17:20 <@deen> and iptables rule to block it 17:20 <@deen> but 50 MB/s still causes some slight lags 17:21 < o_be_one> es theres always a way to ddos easyly, but is it many ips or just one ? 17:21 <@EastByte> this time the flooding causes happy cpu load 17:21 <@deen> it's a DoS, not distributed 17:21 <@deen> single ip 17:21 <@EastByte> lol did I write happy? 17:21 <@EastByte> huge* 17:21 <@deen> yes, cpu is very happy^^ 17:21 <@EastByte> absolutely^^ 17:22 < o_be_one> am i allowed to know this ip ? 17:22 <@deen> EastByte: you could just cast to an array[10000, uint8]^^ 17:22 <@deen> o_be_one: http://ddnet.tw/dosmail.txt 17:22 <@EastByte> o_be_one: 76.74.249.76 also was used 17:23 <@deen> just hijacked servers i think 17:23 <@deen> maybe i should also write to tutorialspoint 17:23 <@EastByte> deen: okay, but casting to array[10000 also is unsafe 17:23 < o_be_one> ok 17:24 <@deen> EastByte: yeah, i know. hide everything between a safe binary parsing interface 17:24 <@deen> behind* 17:24 <@EastByte> what exactly do you mean? 17:24 <@deen> write a binary parsing library 17:24 <@deen> and use it 17:24 <@EastByte> well that's probably unefficient 17:25 <@deen> internally you can do your pointer math 17:25 <@deen> or even transform the code at compiletime with a template 17:25 <@EastByte> deen: also when casting to array[1000, uint8], wouldn't there be runtimechecks then? 17:25 < o_be_one> some players thinks that deen doesnt dev x) ... Someone told me that you was not able to fix the nick & skin change exploit cause the fix went from SAI ^^ 17:26 <@deen> EastByte: not with -d:release 17:26 <@EastByte> wasn't deen the culprit of the bug? 17:27 <@deen> EastByte: http://nim-lang.org/docs/manual.html#foreign-function-interface-unchecked-pragma 17:28 <@deen> EastByte: at least then you don't need ptrmath 17:28 < o_be_one> what do you think about meskalin quizzbot ? 17:28 <@EastByte> kill it with fire 17:28 <@deen> o_be_one: it's as annoying as it was 1 year ago 17:28 <@deen> http://forum.ddnet.tw/viewtopic.php?p=16653#p16653 17:28 < o_be_one> some players seems to like it, i dont know what to think about it 17:28 <@EastByte> what I don't like is that you can't permanently ignore it 17:29 <@deen> EastByte: exactly 17:29 <@EastByte> and all other players are spaming aswell 17:29 <@deen> i don't get why they need a quiz in TW 17:29 < o_be_one> XXLTomate, you there ? Seen a branch on github with docker ???? 17:29 <@deen> just go on one of the millions of quiz websites 17:29 <@EastByte> deen: some people like to chil+play though 17:30 <@deen> EastByte: i have 2 screens, so no problem :P 17:30 <@EastByte> ... 17:30 < o_be_one> well i think its like quizz on IRC 17:31 < o_be_one> its best way to chill and play at the same time 17:31 <@EastByte> it's worth than that 17:31 <@EastByte> the tw chat is too small 17:31 < o_be_one> sure 17:32 <@EastByte> deen: speaking of, we wanted to reduce game messages 17:32 <@EastByte> maybe using the playerflags for status information is a proper way 17:33 <@EastByte> I guess I will mention it in the issue 17:34 <@deen> http://forum.ddnet.tw/viewtopic.php?p=16767 17:37 <@EastByte> I'll replace the pointer magic with an unchecked array 17:52 <@deen> hi BeaR_ =) 17:52 < BeaR_> hey deen (: 17:54 <@EastByte> c: 17:54 <@deen> BeaR_: seen this? https://github.com/east/nimtw/ 17:55 < BeaR_> jup 17:55 <@EastByte> btw. I found a possible overflow while parsing chunks 17:56 <@EastByte> but it's not critical enough to cause a crash 17:57 <@EastByte> deen: "Prefer to return [] and "" instead of nil, or throw an exception if that is appropriate." 17:57 <@EastByte> wouldn't [] or "" allocate a new object on gc? 17:57 <@deen> yes, they would 17:57 <@EastByte> hmm 17:57 <@deen> but nil could cause a crash if the caller doesn't expect it as a valid return value 17:58 <@deen> ah, and [] doesn't allocate, @[] does 17:58 <@EastByte> well that's what I want in case a function is used without knowing about it's result 17:58 <@deen> [] is an array, @[] a seq 17:58 <@EastByte> so returning [] is more efficietn than "" ? 17:59 <@deen> i don't think [] exists :P 17:59 <@deen> that would be an array of size 0 17:59 <@EastByte> I always prefered returning a null value 17:59 <@deen> you have to decide if you want more safety or more performance here 17:59 <@deen> or throw exceptions 17:59 < BeaR_> "exceptions" :/ 18:00 <@EastByte> I don't think returning nil is unsafe, it could only crash which always is good 18:00 <@EastByte> and yes "exceptions" 18:00 <@deen> EastByte: no, it's implementation specific whether accessing a nullpointer crashes 18:00 <@deen> unspecified behaviour 18:00 <@deen> undefined* 18:00 <@EastByte> oh 18:01 <@deen> so Nim is getting nil-pointer checks 18:01 <@deen> afk 18:04 <@EastByte> hm the compiler could test the system against a nil segfault and add/leave out the nil pointer checks then 18:04 < BeaR_> huh? 18:05 <@EastByte> why not? 18:05 < BeaR_> what do you mean with 'test against a nil segfault' ? 18:07 <@EastByte> doing something like *((char*)0) = 0; and see what happens 18:10 < BeaR_> ah 18:48 < Nimda> Goldshire by Åmol & FunCat just released on Brutal at 2015-06-17 18:43 18:50 < bigman> hi again 18:50 < bigman> when i compile the ddnet src it gives me alot of errors 18:50 <@EastByte> hi, that's bad 18:50 <@EastByte> what did you try? 18:50 < bigman> ddnet needs python ? 18:50 < BeaR_> y 18:51 <@EastByte> so you got bam running? 18:51 < bigman> yeah i just edited my old compile_release.bat to use vs12 18:52 < bigman> and that resolved the problem 18:52 < bigman> the problam was not from bam 18:52 <@deen> yeah right, also install python2 18:52 < bigman> ok thanks 18:53 <@deen> That's where Nim would be nice, can do nice compile time stuff in Nim, and efficient runtime code in Nim as well, no need for a 2nd or 3rd language (C++, C, Python, Lua) 18:53 < BeaR_> ^^ 18:54 <@EastByte> deen: well I also need to implement tw game messages 18:54 <@EastByte> I could try that using macros 18:54 <@EastByte> replacing python datasrc 18:54 <@EastByte> or just c2nim the generated sources 18:54 * BeaR_ is fighting with eclipse .-. 18:54 <@deen> that's not what c2nim is for 18:54 <@EastByte> say no to IDEs! 18:54 <@deen> EastByte: templates/macros are the way to go 18:55 <@EastByte> hm right 18:55 < BeaR_> I also dislike most of the IDEs but well sometimes I can't avoid them ): 18:56 < bigman> ide is good for times when you know you want to do :D 18:56 <@EastByte> deen: how do I properly cast a string to an unchecked array? 18:56 < BeaR_> and it eats up 90% of me CPU, 1gb ram and crashes all the time ): 18:56 < bigman> :DDDDDDDDD 18:57 <@EastByte> var p = cast[Uint8Array](packet.data[0] <- it compiles atleast but not sure 18:57 <@deen> EastByte: looks right 18:57 <@deen> ) 18:57 <@EastByte> hm so the problem I get is somewhere else 18:57 <@deen> ehm 18:57 <@deen> no 18:57 <@deen> addr packet.data[0] 18:57 <@EastByte> that's what I thought but: Error: expression cannot be casted to Uint8Array 18:58 < Shiki> BeaR_: wow, is it latest version? 18:58 <@EastByte> looks like it cannot cast a ptr to uncheck array 18:59 < BeaR_> Shiki: I think so, could be also caused by Android plugin 18:59 < Shiki> try idea if you're coding java 19:00 <@deen> EastByte: weird, i can reproduce^^ 19:00 <@EastByte> I think that's also where I stuck before moving to ptrmath 19:01 <@deen> EastByte: fixed =) 19:01 <@deen> EastByte: want to report the bug yourself? 19:01 <@deen> https://gist.github.com/def-/ee85afc5712915e55077 19:01 < BeaR_> Shiki: setting up that android stuff was already pretty much work and I even tried using android studio but eh.. 19:01 <@EastByte> no :< 19:02 <@EastByte> I bet it's supposed not to be done like that^^ 19:02 <@deen> I noticed today that I have full permissions on the Nim repo 19:02 <@EastByte> D: 19:02 <@deen> Wooo, now i can add backdoors! 19:02 <@EastByte> gz :> 19:02 < BeaR_> array[0, uint8], is this even legit? 19:02 <@deen> they moved it to nim-lang and I'm entered as an owner of nim-lang group 19:03 <@EastByte> Araq said the dev branch currently is a playground^^ 19:03 <@deen> BeaR_: the {.unchecked.} should make it valid, yes: http://nim-lang.org/docs/manual.html#foreign-function-interface-unchecked-pragma 19:03 <@deen> wait 19:03 <@EastByte> I did 0 .. 0 19:03 <@EastByte> 0 seems to be 0 .. -1 ? 19:03 <@deen> yeah, same problem with 0..0 19:03 <@deen> doesn't matter anyway, should not have any compiletime or runtime checks 19:03 <@deen> since it's unchecked 19:04 <@deen> hmmm, the unchecked array still checks at compile time 19:04 <@deen> maybe that makes sense# 19:04 <@deen> in this case it also works with array[8, uint8] because then "foobar" fits 19:05 <@deen> so i guess it's ok, hmmm 19:07 < BeaR_> doesn't compile with the latest stable release /: 19:07 <@deen> https://github.com/nim-lang/Nim/issues/2943 19:09 <@deen> wait, the manual even says: The bounds checking done at compile time is not disabled for now, so to access s.data[C] (where C is a constant) the array's index needs needs to include C. 19:09 <@EastByte> ehh 19:09 <@EastByte> so what is unchecked for? 19:09 <@deen> to disable runtime checks 19:10 <@EastByte> k 19:12 <@EastByte> eh when I use array[0 .. 100_000, uint8] instead gcc errors 19:12 <@deen> haha 19:12 <@EastByte> error: lvalue required as unary ‘&’ operand 19:13 <@deen> eh wait 19:13 <@deen> that creates an array of size 100_001 on the stack and copies into it 19:13 <@EastByte> oh I see 19:14 <@deen> so a ptr to an array^^ 19:15 <@EastByte> using a ptr array I need to do p[][index] I guess? 19:19 <@deen> probably, ouch =/ 19:20 <@EastByte> hahaha, ptrmath I'm coming =D 19:21 <@EastByte> hm it's kinda hard for a beginner to do lowlevel stuff in nim 19:23 <@deen> i don't know, is it? 19:24 <@EastByte> e.g. you need to do a lot of type converting to work with bitmasks and single byte numbers 19:24 <@EastByte> you need to include unsigned 19:25 <@EastByte> and doing simple c array stuff is painful 19:29 <@deen> there is more and stricter typing than in C 19:30 <@EastByte> I probably just used to the C typing 19:33 <@EastByte> the dot operator and optional parentheses are probably what I like most in nim 19:54 <@EastByte> looks like fetching chunks works 19:56 < bigman> How i can change the order of typed characters in teeworlds source ? 19:57 <@deen> bigman: for persian text output? 19:57 < bigman> yes 19:57 <@deen> https://www.google.de/search?hl=de&q=teeworlds+right+to+left 19:57 <@deen> it's a problem 19:58 <@deen> https://github.com/teeworlds/teeworlds/issues/394 19:58 < bigman> hmm thanks 19:58 <@deen> https://www.teeworlds.com/forum/viewtopic.php?id=10397 19:58 < bigman> let me look at this 19:58 <@deen> ok 19:58 <@deen> maybe sdl2 would fix it 19:59 <@deen> or help 19:59 <@deen> but i don't think so 20:01 < bigman> Is it possible to detect if user is changed his input language ? 20:02 <@EastByte> no 20:03 <@deen> detect how, where? 20:18 <@EastByte> I guess he meant the client language, doesn't make sense though 20:20 <@deen> well, you can detect the client language inside the client 20:21 <@deen> i guess he wants to invert the UI when an rtl language is used 20:21 <@deen> mirror* 20:22 < bigman> hmm @deen where is the font that teeworlds uses ? 20:23 <@deen> data/fonts/DejaVuSans 20:23 < bigman> thanks 20:26 <@deen> bigman: you also can't type farsi in TW, right? 20:26 <@deen> that would be fixed by sdl2 20:27 < bigman> no we can type farsi 20:27 <@deen> oh 20:27 < bigman> but characters being inserted from left to right 20:27 <@deen> then i misremembered and some other languages don't work 20:27 < bigman> so سلام becomes م ا ل س 20:27 <@deen> yeah =/ 20:27 <@deen> learn to type in reverse? 20:28 < bigman> lol 20:28 < bigman> ? 20:28 <@deen> ?esrever ni epyt ot nreal 20:29 <@deen> anyway, good luck^^ 20:29 < bigman> :/ 20:29 < bigman> :D 20:29 < bigman> one of my friends resolved this problem but he does not share the sourde 20:30 < bigman> :D 20:30 <@deen> nice friend! 20:30 <@EastByte> haha that makes sense 20:30 < bigman> no bad friend :/ using open source but not sharing your own source :/ 20:30 <@EastByte> to be the onoly one using the language 20:31 < bigman> no he shared the client 20:31 <@EastByte> ah okay 20:57 <@deen> Woohoo, livestream on Sunday will be in English, by Hallowed1986, the famous livestreamer and Aoe, the mapper of the map 20:57 <@EastByte> cool 20:58 < bigman> @deen can u please tell me in which file typed string exactly becomes printed to output ? 20:58 <@deen> bigman: what typed string? 20:58 < bigman> into screen 20:58 <@EastByte> src/engine/client/text.cpp 20:59 < bigman> ok thanks 20:59 <@EastByte> the font part of teeworlds is really complicated 21:09 <@deen> now big attack destroying cpu 21:11 <@deen> this time actually distributed, tcp 21:11 <@deen> looks like another attacker 21:11 <@deen> syn-flood i guess 21:12 <@deen> woah, every single packet from a different ip 21:12 <@deen> nice spoofed ip 21:18 <@deen> let's see if it helps to block tcp to unused ports 21:18 <@deen> that was only 10-20 MB/s 21:18 <@deen> I'm already expecting problems for the next tournament 21:20 < Savander> hi 21:20 <@deen> hi 21:29 <@EastByte> deen: did you dump some packets? 21:29 <@EastByte> Savander: hi 21:30 <@deen> EastByte: sure, want them? 21:30 <@EastByte> yea :) 21:34 < Shiki> now I wonder who can be so keen on dosing ddnet and what his/her motivation 21:34 < Shiki> does it happen regularly? 21:34 <@EastByte> there was a quite long pause 21:34 <@EastByte> but before, ddnet sometimes was unplayable due to attack 21:35 <@EastByte> s 21:35 <@EastByte> we even had +40gbit 21:35 <@deen> i think it was up to 100 gbit/s 21:36 < Savander> for dynamic menu in header (only for it) we should use javascript to implement it to every single page? 21:36 < Savander> or just php/python 21:36 <@deen> Savander: what's a dynamic menu in header? 21:36 <@deen> I asked Soreu the same, but no answer^^ 21:36 < Savander> we mean 21:36 < Savander> if we changes something in menu 21:36 < Savander> it should change in every single page 21:36 <@deen> Shiki: from what I hear all games (and everything big on the internet) get ddosed 21:36 < Savander> without editing every single page xd 21:37 <@deen> Savander: i use jekyll, so just make a template 21:37 <@deen> no need for any programming 21:37 < Savander> okay 21:37 <@deen> and no, please don't load any parts of a page by JS! 21:38 < Savander> i said it too 21:38 < Savander> to soreu 21:38 < Savander> xD 21:38 <@EastByte> why not :D 21:38 < Savander> but 21:38 < Savander> or nvm. 21:38 < Savander> we have a prototype already 21:38 <@EastByte> what actually are you talking about? 21:38 <@deen> I guess I can give you 2 access to my ddnet-web repo of the entire website 21:39 <@deen> they're remaking the ddnet website, EastByte 21:39 <@deen> because my webdesign sucks :P 21:39 < Savander> 21:39 <@EastByte> waaaat 21:39 < Shiki> liar, ddnet.tw looks awesome! 21:39 <@EastByte> yep 21:40 <@deen> Shiki: not everyone agrees^^ 21:40 < Savander> ddnet need freshness 21:40 < Savander> xd 21:40 <@deen> Shiki: personally I prefer minimalistic design (ddnet.tw had that too very early): http://hookrace.net/ 21:40 < Shiki> ddnet got more freshness than teeworlds(.com) will ever get it seems 21:41 < Savander> XD 21:41 < Savander> ok. 21:41 < Savander> you're right. 21:41 < Savander> so 21:41 < Savander> fuck this project 21:41 < Savander> ddnet.tw should stay as is. 21:41 <@EastByte> you have to finish it now 21:42 < Shiki> yeah, I've seen hookrace.net, it looks very cool too tbh 21:45 < Shiki> oh, btw, about teeworlds and ddnet 21:46 < Shiki> wasn't teeworlds forked like 4 years ago to create ddrace? 21:46 < Shiki> and then you forked ddrace? 21:46 <@deen> ddnet* 21:46 <@deen> yes 21:47 < Shiki> hm, I thought it's like that teeworlds -> (forked) ddrace -> ddnet 21:47 <@deen> i think at some point i added all the changes from TW into ddnet 21:47 <@deen> ehm, yes it is 21:47 <@deen> ddrace was also based on some other mod 21:48 < Shiki> are you planning to merge with teeworlds 0.7? 21:48 <@deen> maybe 21:48 <@deen> ehm, no 21:48 <@deen> i'm not planning 21:48 < Shiki> it looks like this will lots of work 21:48 < Shiki> will be* 21:48 <@deen> i don't see any work going into tw 0.7 21:48 <@deen> and no reason to switch over 21:48 <@heinrich5991> let's see when and whether 0.7 will get released 21:48 <@EastByte> "this year" :D 21:48 <@deen> when 0.7 is released and actually gets played, then we can start thinking/working on it 21:49 <@heinrich5991> (don't worry, in the start, all new teeworlds version were not played ^^) 21:49 < Shiki> I just wonder what happens if teeworlds.com releases 0.7 but ddnet community stays on 0.6 21:50 <@EastByte> 0.7 probably will be on steam then 21:50 < Shiki> ah, right 21:50 < Savander> haha 21:50 < Savander> btw 21:50 <@EastByte> heinrich5991: 0.7 replacing 0.6 on steam, is that possible? 21:50 < Savander> on 0.5 teeworlds 21:50 < Savander> people still play 21:50 <@heinrich5991> EastByte: I'd like to avoid that 21:50 <@EastByte> hm 21:50 <@heinrich5991> I hope there's a different option 21:50 <@deen> 0.5 is still played, so what's so bad about ddnet staying at 0.6 (at least for some time)? 21:51 < Shiki> because it's more than half of active tw players? 21:51 <@heinrich5991> 0.5 is barely played IIRC 21:51 <@deen> well, i just joined a 0.5 ddrace server and was banned^^ 21:51 <@EastByte> we could simply keep the ddnet server as they are and implement a bridge to 0.7 21:51 < Shiki> :O 21:51 <@EastByte> as some of you already did^^ 21:51 <@deen> EastByte: yeah, i worked on that, but too much work, will only do that when 0.7 is out 21:53 <@deen> and on another 0.5 server they're explaining a noob how to bind keys and play the game 21:53 <@deen> doesn't look 100% dead^^ 21:53 <@heinrich5991> deen: how many players does it have right now? 21:53 <@deen> heinrich5991: 10 i think^^ 21:53 <@heinrich5991> in total? 21:53 <@heinrich5991> well... 21:53 < Savander> i saw few people on teeworlds 0.7 with slopes! wow, modification. 21:54 <@EastByte> Savander: wasn't that a 0.6 patch? 21:54 < Savander> nope 21:55 < Savander> Download windows: http://savander.pl/upload/teeworlds-0.7.0-slope-win.zip 21:55 < Savander> Download Linux: http://savander.pl/upload/teeworlds-0.7.0-slope-linux_x86.tar.gz 21:55 <@deen> nice, TW 0.4 still has a few servers 21:56 <@deen> ddrace servers 21:56 < Savander> o.O? 21:56 < Shiki> wow, I didn't even know ddrace existed back then 21:56 < Savander> ye, me too 21:56 <@deen> something is weird with them, can't connect 21:56 < Shiki> how long have you been playing ddrace, deen? 21:56 <@deen> Shiki: only 3 years or so 21:57 <@deen> or 4 21:57 <@deen> started in 0.6 21:57 <@deen> when HellGate 3 was released 21:57 < Shiki> :) 21:57 < Shiki> how comes you remember exactly that? 21:58 <@deen> i only played that map, for months 21:58 <@deen> until i finally finished it 21:58 <@deen> 1 day later i had rank 1 on it =) 21:59 < Shiki> that truly is pro's spirit! 21:59 < Savander> :D 21:59 < Savander> 0.4 doesn't works for me too 21:59 < Savander> (connection) 21:59 <@deen> then we speed-raced all next maps on ddmax 22:00 <@deen> well, actually i found a few cheats and we cheated most of them^^ 22:00 <@deen> but no one ever noticed 22:00 < Shiki> and since we're talking about history here, what was the motivation for ddnet? 22:00 <@deen> Shiki: well, then I was perma-banned from ddmax 22:00 <@deen> and same for all the other ddnet founding members 22:01 <@deen> so we started a new server where everyone could play without fear of being banned 22:01 <@deen> that was years ago 22:01 <@deen> two* 22:02 < Shiki> emm, who were the admins of ddmax? Tsin is the only name that comes to my memroy 22:02 <@EastByte> deen: I remember that I started playing ddnet from the moment on you used my webgl viewer 22:02 < Shiki> not sure if it's the correct name though 22:02 < Savander> Tsin 22:02 < Savander> yes 22:02 <@deen> Shiki: yes, Tsin was the main guy, and the one we all had problems with 22:02 < Savander> i had too 22:03 <@deen> the other ddmax admins are all nice guys 22:03 < Savander> i was in project with him ;) 22:03 <@deen> many of which help or helped ddnet then 22:03 < Savander> (new DDmax, you know) 22:03 <@EastByte> I never had problems with Tsin :< 22:03 <@deen> EastByte: me too, until i made a joke about him once =/ 22:03 <@EastByte> haha you aren't even funny :D 22:04 <@deen> oh, and i also started ddrace development then 22:04 < Shiki> btw what was the name of the guy who was on top ddmax together with aaa? 22:04 <@deen> I implemented distributed ban server for ddmax so tsin could keep us banned :P 22:04 < Savander> when he when he discovered, i'm helping ddnet. He told me, if i'll tell them anything about project, he will ban me etc. 22:04 <@deen> Shiki: Crytical? 22:04 <@EastByte> ^^ 22:04 < Shiki> nah, there was some other guy 22:04 <@deen> Shiki: Virus2k, Vergeboy? 22:04 < Shiki> yeaah, 2k 22:05 < Shiki> I only remember him because he came to vanilla once 22:05 < Shiki> and got pwned real hard 22:05 <@deen> I played with Lady Saavik in official Vanilla Tournament. I think I had minus points in the end^^ 22:06 < Shiki> some 2o2 tournament? 22:06 <@deen> yes 22:06 <@deen> the one where you could win money and we signed up as Team DDNet 22:06 < Shiki> hm, we usually don't consider 2on2 being a timeworthy game in vanilla 22:06 < Shiki> 5on5 is the right choice! 22:09 <@deen> anyway, ddmax was great while it existed. i hope people enjoy ddnet now the same we enjoyed ddmax back then 22:12 < Shiki> hm my ddr pro friend, Wombat, complained back then that all ddmax maps look the same 22:12 < Shiki> at least on medium skill level 22:12 < Shiki> he seems to really enjoy ddnet now though 22:13 <@deen> yes, ddmax converged into all maps having a similar style 22:13 <@deen> so ddnet tried to differentiate by asking mappers to do creative maps 22:13 <@deen> i got lots of complaints when I added some of the typical ddmax maps to ddnet 22:14 <@deen> and now we're adding all ddmax maps into their own category, as you may have heard 22:14 < Shiki> not only heard but finished few of them already! 22:15 <@deen> great! 23:25 < Learath2> oh i missed the nostalgia time 23:46 < o_be_one> theres more and more weird players on v3royal x) 23:46 < o_be_one> ive met a kamikaze, named kamikaze, who just go next to you, put an angry smile and do a self-kill ... 23:47 < o_be_one> now, there's someone who just go to you, make some heart, and go to other tee, do hearts, etc etc. 23:49 < masoudd> lol 23:58 <@deen> o_be_one: sounds like they don't understand block. neither do i