04:28 <+bridge_> [ddnet] If You Love Slavic Girls, πŸ’‹ You'll Love This New Social Network πŸ‘‰ https://nakedphotos.club/QYHhZv?tx=x4 11:53 <+bridge_> [ddnet] Is it acceptable to have single file python "projects" or should I be creating a virtualenv? 12:01 <+bridge_> [ddnet] ? 12:05 <+bridge_> [ddnet] I don't really ever make anything with python except "scripts", I use it mostly like a very powerful bash 12:05 <+bridge_> [ddnet] so I'm not sure what the "standard" way to organise a project is in python 12:07 <+bridge_> [ddnet] i guess u put ur files in a folder like any other project? xd 12:09 <+bridge_> [ddnet] Well DUH 12:10 <+bridge_> [ddnet] I was putting them on the blockchain 12:10 <+bridge_> [ddnet] πŸ˜‚ 12:10 <+bridge_> [ddnet] Hmm, ethereum smart contract teeworlds master server? 12:11 <+bridge_> [ddnet] sounds cool 12:12 <+bridge_> [ddnet] anyways, I have a half working version of http masters \o/ 12:12 <+bridge_> [ddnet] I'll clean it up a little and will put up a draft pr tomorrow or the day after 12:15 <+bridge_> [ddnet] nice 12:31 <+bridge_> [ddnet] I remembered how much I hate languages without static typing, I should have done this in typescript or just c++ 12:31 <+bridge_> [ddnet] maybe directly in rust even 12:58 <+bridge_> [ddnet] are you trolling Learath2? 12:59 <+bridge_> [ddnet] or did you really get some tw masters stuff running on a blockchain lol? 12:59 <+bridge_> [ddnet] not at all, I wholeheartedly believe dynamic typing is evil 12:59 <+bridge_> [ddnet] -.- 12:59 <+bridge_> [ddnet] oh that, yeah i'm trolling 12:59 <+bridge_> [ddnet] i mean the master part 12:59 <+bridge_> [ddnet] sad 13:00 <+bridge_> [ddnet] I wouldn't waste time with putting masters on blockchain πŸ˜„ 13:00 <+bridge_> [ddnet] idk how smart contracts work but i assume you cant host anything on it 13:00 <+bridge_> [ddnet] you are evil 13:00 <+bridge_> [ddnet] anyone who thinks dynamic typing is acceptable, don't @ me 13:01 <+bridge_> [ddnet] well best language uses dyntypes 13:01 <+bridge_> [ddnet] that's an oxymoron 13:01 <+bridge_> [ddnet] :p 13:02 <+bridge_> [ddnet] it can't possibly be the best language if it uses weak types 13:02 <+bridge_> [ddnet] hm it somehow is 13:03 <+bridge_> [ddnet] I'm intrigued, are you talking about Scratch? πŸ˜„ 13:03 <+bridge_> [ddnet] hehe :D i knew you thought about scratch 13:03 <+bridge_> [ddnet] idk what types it has 13:03 <+bridge_> [ddnet] but i am talking about shell o.O 13:04 <+bridge_> [ddnet] I'd only like to say "Ew" 13:04 <+bridge_> [ddnet] oh cmn its best 13:04 <+bridge_> [ddnet] It should be against the genova convention to use languages with weak types 13:05 <+bridge_> [ddnet] Scratch lmao 13:05 <+bridge_> [ddnet] why 13:05 <+bridge_> [ddnet] sh > bash > scratch > masm > rest 13:06 <+bridge_> [ddnet] masm? 13:06 <+bridge_> [ddnet] Masm 13:07 <+bridge_> [ddnet] Wth is this 13:07 <+bridge_> [ddnet] that's an assembler 13:07 <+bridge_> [ddnet] microsoft assembler :p 13:07 <+bridge_> [ddnet] an x86 assembler 13:07 <+bridge_> [ddnet] it has quirks more fucked up than javascript 13:07 <+bridge_> [ddnet] so it doesn't belong on your list 13:07 <+bridge_> [ddnet] you should say x86 assembly πŸ˜› 13:08 <+bridge_> [ddnet] Microsoft ew 13:08 <+bridge_> [ddnet] well masm does kinda have it's quirks with it's macro syntax though 13:08 <+bridge_> [ddnet] x86 64 bestt 13:23 <+bridge_> [ddnet] Why do people put up with this madness? It's insane that doing field validation is so hard in this supposedly high level language 13:23 <+bridge_> [ddnet] It's easier in rust even 13:24 <+bridge_> [ddnet] what’s so hard about it 13:26 <+bridge_> [ddnet] fields themselves don't have a type, so validating them requires you to either requires you to write your own validator or use a library, which requires you to create a schema 13:27 <+bridge_> [ddnet] either way, now I have either two classes or one class one function that can easily go out of sync 13:30 <+bridge_> [ddnet] I guess I'll use marshmellow and call it a day 13:30 <+bridge_> [ddnet] marshmallow* 14:10 <+bridge_> [ddnet] @Learath2 latest python versions got some type hinting but not as good as typescript 14:10 <+bridge_> [ddnet] typescript is rly well done tbh 14:10 <+bridge_> [ddnet] to go around the js shit 14:55 <+bridge_> [ddnet] welcome to another episode of syntax fails: 14:55 <+bridge_> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/594148879184822285/unknown.png 14:55 <+bridge_> [ddnet] highlight* 15:00 <+bridge_> [ddnet] that editor must be rly bad 15:43 <+bridge_> [ddnet] I have never written anything this ugly 15:52 <+bridge_> [ddnet] ye the editor is the worst but i already had similar stuff in vscode 15:57 <+bridge_> [ddnet] https://gist.github.com/Learath2/a071797508435ac35a3ae13c75e6fab5 15:57 <+bridge_> [ddnet] still the huge avatar πŸ˜› 15:57 <+bridge_> [ddnet] this is the "reference" i'm implementing against 15:58 <+bridge_> [ddnet] it barely works 16:40 <+bridge_> [ddnet] hmm, removing the support for old masters and serverinfo packets might be a tad too radical πŸ˜› 16:43 <+bridge_> [ddnet] shouldn’t validate_dict return false and then raise exception from that 16:43 <+bridge_> [ddnet] yeah, it's all very dirty now, i was debugging sth, so I moved the exceptions up, then forgot to move them back down 16:44 <+bridge_> [ddnet] you can combine the 2 checks btw 16:44 <+bridge_> [ddnet] haven't slept in like 30-35 hours, so a little brainmelted aswell 16:44 <+bridge_> [ddnet] wtf 16:44 <+bridge_> [ddnet] go sleep 16:44 <+bridge_> [ddnet] if i sleep now I'm fucked 16:45 <+bridge_> [ddnet] I'd sleep 8 hours minimum, waking up at 2400, then tomorrow i'll sleep at 1600 again πŸ˜„ 16:45 <+bridge_> [ddnet] unwise 16:46 <+bridge_> [ddnet] @jao which two checks you mean? 16:47 <+bridge_> [ddnet] @Learath2 again 16:47 <+bridge_> [ddnet] stop stopping sleeping 16:47 <+bridge_> [ddnet] NO U 16:48 <+bridge_> [ddnet] 😒 16:48 <+bridge_> [ddnet] nvm 16:49 <+bridge_> [ddnet] I would pass the dict to init 16:51 <+bridge_> [ddnet] @Learath2 damm how is that even possible. I sleep atleast 7 hours a day. 16:51 <+bridge_> [ddnet] __init__ can't return a None though, I guess I should be raising the exception anyways 16:51 <+bridge_> [ddnet] go sleep 16:52 <+bridge_> [ddnet] its time 16:52 <+bridge_> [ddnet] @n000b it's usually not possible, making an adjustment today 16:52 <+bridge_> [ddnet] @archimede67 I have already told you it'd be insane to sleep right now, so stop giving me bad ideas 16:52 <+bridge_> [ddnet] And if i make it till 6am on Saturday i just sleep 4 hours. 16:53 <+bridge_> [ddnet] But not sleeping is the worst 16:53 <+bridge_> [ddnet] anyways, do you think it's a little too much to remove the support for oldmasters and serverinfo packets? 16:53 <+bridge_> [ddnet] but you validated already before 16:53 <+bridge_> [ddnet] I was thinking we inject the servers that don't support the new protocol into the masters ourselves 16:54 <+bridge_> [ddnet] why would it be insane 16:54 <+bridge_> [ddnet] you can go sleep at any time 16:54 <+bridge_> [ddnet] if you need it 16:54 <+bridge_> [ddnet] @archimede67 if I sleep now, when do you think I'll wake up? 16:54 <+bridge_> [ddnet] and you, need it 16:54 <+bridge_> [ddnet] tomorrow at 2pm 16:54 <+bridge_> [ddnet] Well that is bad advise actually 16:55 <+bridge_> [ddnet] the whole point of staying awake is to shift my sleep schedule to more favourable hours 16:55 <+bridge_> [ddnet] @archimede67 no way i'll sleep 19 hours lmao 16:55 <+bridge_> [ddnet] Better advise is just sleep for 3 hours now and go to bed again at noon 16:55 <+bridge_> [ddnet] lol then better stay up 16:56 <+bridge_> [ddnet] @n000b and that's too little, no way I'll be able to get out of bed after 3 hours 16:56 <+bridge_> [ddnet] @Learath2 yeah but when its 35h you didn't sleep its not shifting anymore xd 16:56 <+bridge_> [ddnet] Ez 16:56 <+bridge_> [ddnet] he will be even more wasted after 3h sleep 16:56 <+bridge_> [ddnet] I dont 16:56 <+bridge_> [ddnet] @archimede67 ofc it's shifting, I can sleep a max of 10 hours, if i go to sleep at 2400 today, i'll wake up at 1000 at the worst case 16:57 <+bridge_> [ddnet] which is much better then what i have now 16:57 <+bridge_> [ddnet] sleeping at 0600 waking up at 1500 is not good for one 16:57 <+bridge_> [ddnet] but 16:57 <+bridge_> [ddnet] why 35h no sleep 16:57 <+bridge_> [ddnet] how else do you suggest i move the sleep schedule ahead? 16:58 <+bridge_> [ddnet] in one day there's enough time? 16:58 <+bridge_> [ddnet] If I could sleep on command like the lucky few, I would do so 16:58 <+bridge_> [ddnet] if you go sleep at 12 pm each day 16:58 <+bridge_> [ddnet] I need to actually be quite sleepy to sleep, insomnia is a bitch 16:58 <+bridge_> [ddnet] that's why you wait so much? 16:58 <+bridge_> [ddnet] easy for you to say with your decent sleep, 2400 is usually when I'm at peak awareness 16:59 <+bridge_> [ddnet] ah xd 16:59 <+bridge_> [ddnet] they probably never had a fucked up sleep schedule πŸ˜‚ 16:59 <+bridge_> [ddnet] Lying in bed is also resting. I gave up to sleep fast. I just am chilling 1 or 2 hours before i sleep. 16:59 <+bridge_> [ddnet] he would fall asleep 16:59 <+bridge_> [ddnet] currently yes 17:00 <+bridge_> [ddnet] i would instantly pass out πŸ˜„ 17:00 <+bridge_> [ddnet] afterall its ur life xd 17:01 <+bridge_> [ddnet] anyways, we have some major spaghetti code with the serverbrowser :/ 17:02 <+bridge_> [ddnet] this will be so much to refactor :/ 17:06 <+bridge_> [ddnet] dont add old master support to new master pls 17:12 <+bridge_> [ddnet] its all just validation code 17:35 <+bridge_> [ddnet] well at this point it just needs to make sure i'm sending proper requests, saves them and sends them back 17:35 <+bridge_> [ddnet] I don't need it to do anything else rn 18:06 <+bridge_> [ddnet] https://www.raspberrypi.org/products/raspberry-pi-4-model-b/ 18:06 <+bridge_> [ddnet] new rpi 18:06 <+bridge_> [ddnet] looks awesome 18:06 <+bridge_> [ddnet] i think the rpi website is hosted on it 18:09 <+bridge_> [ddnet] I should find a new project to do with it 18:09 <+bridge_> [ddnet] ill buy it probs 18:11 <+bridge_> [ddnet] it got wifi and bluetooth 18:11 <+bridge_> [ddnet] thats nice 18:12 <+bridge_> [ddnet] it has also dual display 4k60 18:12 <+bridge_> [ddnet] :justatest: 18:21 <+bridge_> [ddnet] i doubt it's beefy enough to render much of anything worthwhile at 4k60 18:22 <+bridge_> [ddnet] let alone 2 πŸ˜› 18:27 <+bridge_> [ddnet] :justatest: 18:32 <+bridge_> [ddnet] can't believe it actually works, now just need to polish it for a couple dozen years 18:54 <+bridge_> [ddnet] Make a live cam online with a timelapse feature 19:02 <+bridge_> [ddnet] did you know that it's fairly untrivial to parse a url? 19:05 <+bridge_> [ddnet] @Learath2 thats why u use libraries but ur u and i guess u dont like them 19:06 <+bridge_> [ddnet] I don't think anyone wants any more libraries in ddnet πŸ˜„ 19:06 <+bridge_> [ddnet] oh u mean in ddnet 19:06 <+bridge_> [ddnet] not masterserver 19:06 <+bridge_> [ddnet] xd 19:58 <+bridge_> [ddnet] 19:58 <+bridge_> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/594225222052478987/unknown.png 19:58 <+bridge_> [ddnet] u banned 38 ppl @jao 19:58 <+bridge_> [ddnet] nice 19:58 <+bridge_> [ddnet] one 20:00 <+bridge_> [ddnet] http masters sorta work, if you don't send them bad json \o/ 20:00 <+bridge_> [ddnet] if you send them bad json they crash and burn πŸ˜› 20:00 <+bridge_> [ddnet] why 20:01 <+bridge_> [ddnet] u didn't do something that validates the json? 20:01 <+bridge_> [ddnet] validating json in C++ is even more cancer then validating in python 20:01 <+bridge_> [ddnet] ah 20:01 <+bridge_> [ddnet] ill send u bad json in a min bb 20:01 <+bridge_> [ddnet] in c++ ye 20:01 <+bridge_> [ddnet] @Learath2 u just use 20:01 <+bridge_> [ddnet] i'm sure 20:01 <+bridge_> [ddnet] a LIBRARY! 20:01 <+bridge_> [ddnet] there's online api 20:01 <+bridge_> [ddnet] I DO 20:01 <+bridge_> [ddnet] xd 20:01 <+bridge_> [ddnet] WE ALREADY HAVE A JSON PARSER 20:01 <+bridge_> [ddnet] you do 20:01 <+bridge_> [ddnet] but it still crashes? xd 20:01 <+bridge_> [ddnet] SEARCH A JSON VALIDATOR LIBRARY 20:01 <+bridge_> [ddnet] xd 20:01 <+bridge_> [ddnet] one that doesn't do validation 20:01 <+bridge_> [ddnet] xd 20:02 <+bridge_> [ddnet] no I'll just add a HUGE function that does it πŸ˜› 20:02 <+bridge_> [ddnet] ok maybe there is an online tool which u can use instead of including yet another library 20:02 <+bridge_> [ddnet] I actually wanted proper json schema validation 20:02 <+bridge_> [ddnet] or that could be something to do if not 20:02 <+bridge_> [ddnet] @Learath2 btw instead of ur ugly validation code u can use https://pypi.org/project/jsonschema/ or something liek that 20:02 <+bridge_> [ddnet] note i dont think this validates if the text is correct json 20:02 <+bridge_> [ddnet] but it works for the value parsing 20:03 <+bridge_> [ddnet] @Learath2 show an example of what you need, input -> output 20:03 <+bridge_> [ddnet] @Ryozuki I was doing that with marshmallow, then I noticed I made some mistakes while unpacking 20:03 <+bridge_> [ddnet] @Learath2 btw why u dont just catc the error if parsing errors 20:03 <+bridge_> [ddnet] then I didn't want to bother re-arranging 20:03 <+bridge_> [ddnet] @Ryozuki in the client? 20:03 <+bridge_> [ddnet] in the sv 20:03 <+bridge_> [ddnet] u are talking about 20:03 <+bridge_> [ddnet] masterserver 20:04 <+bridge_> [ddnet] right? 20:04 <+bridge_> [ddnet] yeah, that side I do catch the error normally 20:04 <+bridge_> [ddnet] I just disabled it while debugging 20:04 <+bridge_> [ddnet] ah 20:04 <+bridge_> [ddnet] so it crashes 20:04 <+bridge_> [ddnet] u want to make the client not crash if it recieves invalid json 20:04 <+bridge_> [ddnet] yeah 20:04 <+bridge_> [ddnet] i would use a lib but ur the one doing this 20:04 <+bridge_> [ddnet] xd 20:05 <+bridge_> [ddnet] it's a couple dozen lines of verification 20:05 <+bridge_> [ddnet] I'll write them, @heinrich5991 will complain that I didn't use a library 20:05 <+bridge_> [ddnet] then I'll probably use a librarys 20:05 <+bridge_> [ddnet] library* 20:05 <+bridge_> [ddnet] @Learath2 by invalid u mean malformed or incorrect value types? 20:06 <+bridge_> [ddnet] all of the above πŸ™‚ 20:06 <+bridge_> [ddnet] a troll master server sending malformed json to clients 20:06 <+bridge_> [ddnet] crashing all them 20:06 <+bridge_> [ddnet] trolls would do it 20:06 <+bridge_> [ddnet] for sure 20:06 <+bridge_> [ddnet] xd 20:06 <+bridge_> [ddnet] well trolls can't has masterservers 20:06 <+bridge_> [ddnet] i guess 20:06 <+bridge_> [ddnet] I'm actually about to fall asleep on the laptop πŸ˜› 20:06 <+bridge_> [ddnet] then go sleep 20:07 <+bridge_> [ddnet] :D 20:07 <+bridge_> [ddnet] xd 20:07 <+bridge_> [ddnet] I'll eat and I'll sleep 20:07 <+bridge_> [ddnet] do it then 20:07 <+bridge_> [ddnet] my god you are pedantic 20:07 <+bridge_> [ddnet] wtf πŸ˜‚ 21:22 <+bridge_> [ddnet] Why can’t I play teeworld anymore 21:22 <+bridge_> [ddnet] ? 21:22 <+bridge_> [ddnet] hum 21:22 <+bridge_> [ddnet] explain? 22:54 <+bridge_> [ddnet] Who is the monkey tee made by?