00:34 <+bridge> is this https://github.com/ddnet/ddnet/issues/2892 being worked on? I am interesting on trying to implement it :) 01:36 <+bridge> is ddnet against use of std strings in new code? 01:37 <+bridge> also, should i use `_vVarname` for a std::initializer_list 01:37 <+bridge> it's not a vector but it's similar 06:33 <+bridge> is this https://github.com/ddnet/ddnet/issues/2892 being worked on? I am interested on trying to implement it :) 08:35 <+bridge> i just went through a shitton of work writing code for ddnet that uses the STL without using exceptions because my stupid IDE said some one thing about it 08:35 <+bridge> and i automatically assumed exceptions were off 08:35 <+bridge> and then 08:35 <+bridge> ``` 08:35 <+bridge> terminate called after throwing an instance of 'std::bad_function_call' 08:35 <+bridge> what(): bad_function_call 08:35 <+bridge> ``` 08:35 <+bridge> πŸ˜ƒ 08:37 <+bridge> i wrote stuff like this 08:37 <+bridge> ```cpp 08:37 <+bridge> #define TRY_CALLBACK(a, b, c) { dbg_assert(bool(b), a " callback has no candidate."); b c; } 08:37 <+bridge> ... 08:37 <+bridge> TRY_CALLBACK("Operation failed", fnOperationFailedCallback, (LOAD_ERROR_DIRECTORY_UNREADABLE, &it)) 08:37 <+bridge> // instead of fnOperationFailedCallback(LOADLOAD_ERROR_DIRECTORY_UNREADABLE, &it); 08:37 <+bridge> ``` 08:37 <+bridge> so i could handle this error without catching an exception 08:37 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1114805152935845908/image.png 08:37 <+bridge> oh well 09:18 <+bridge> cool that `cpp 09:18 <+bridge> const char *GetPath(int Type, const char *pDir, char *pBuffer, unsigned BufferSize) 09:18 <+bridge> ` 09:18 <+bridge> in CStorage is not a part of the interface 09:18 <+bridge> cool that ```cpp 09:18 <+bridge> const char *GetPath(int Type, const char *pDir, char *pBuffer, unsigned BufferSize) 09:18 <+bridge> ``` 09:18 <+bridge> in CStorage is not a part of the interface 09:18 <+bridge> so i can't get to it when i need to 09:20 <+bridge> oh nvm i see GetCompletePath 10:24 < ws-client> @heinrich5991 do you remember why you marked sys.info client_version as optional? 10:24 < ws-client> https://github.com/heinrich5991/libtw2/blob/master/gamenet/generate/spec/teeworlds-0.7.5.json 10:24 < ws-client> https://github.com/teeworlds/teeworlds/blob/26d24ec061d44e6084b2d77a9b8a0a48e354eba6/src/engine/client/client.cpp#L351 10:24 < ws-client> seems to be sent everytime on latest master 10:24 < ws-client> was there a prior version? 10:24 < ws-client> https://zillyhuhn.com/cs/.1685867077.png 10:25 < ws-client> Its there since 5 years isnt that all 0.7 versions already? 10:25 < ws-client> its already on the 0.7.0 git tag 10:26 < ws-client> ops i messed up the spec link 10:26 < ws-client> i mean this https://github.com/heinrich5991/libtw2/blob/09144b0ced40782b7a939a7d2a88c74c0e02db45/gamenet/generate/spec/teeworlds-0.7.5.json#L909 10:27 < ws-client> @Jupstar βœͺ should links open in a new tab without having to ctrl+click? 10:27 <+bridge> they should always open in new tab 10:27 < ws-client> alr 10:31 <+bridge> Not that I know. You can try it, but I wouldn't say that it's a beginner friendly issue 10:33 <+bridge> In the game loop yes, outside `std::string` is okay if the alternative would be to `malloc`/`free` some buffer anyway 10:34 <+bridge> We only use `v` prefix for `std::vector` and not for other collections like `std::set` 10:34 <+bridge> i'll use a 10:34 <+bridge> i'll use `a` 10:35 <+bridge> a is array 10:35 <+bridge> initializer list is an array 10:35 <+bridge> you iterate over it 10:35 <+bridge> unless you mean a raw array 10:35 <+bridge> seems weird to not classify other containers 10:36 <+bridge> what are u even working on xd 10:36 <+bridge> i didnt read 10:36 <+bridge> not important 10:36 <+bridge> also i didn't say 10:37 <+bridge> basically batch file loader that i can use to asynchronously load skins and assets 10:37 <+bridge> you know whats great 10:37 <+bridge> it's june 10:37 <+bridge> and that means c++20 10:37 <+bridge> so u can use variadic template arguments and use constraints with it 10:37 <+bridge> basically batch file loader that i can use to easily asynchronously load skins and assets 10:37 <+bridge> https://en.cppreference.com/w/cpp/language/constraints 10:38 <+bridge> yea it's dope 10:38 <+bridge> but unnecessary 10:38 <+bridge> for this 10:40 <+bridge> not really, we just use `a` for normal arrays and `std::array` and `v` for `std::vector`, we don't use prefixes for other iterable collections like `std::set` and `std::list` 10:41 <+bridge> silly 10:41 <+bridge> πŸ˜‚ 10:41 <+bridge> buy better IDE i'd say 10:41 <+bridge> why 10:41 <+bridge> then it tells u what type the variable is 10:41 <+bridge> it does already 10:41 <+bridge> what's that got to do with it 10:41 <+bridge> !rust good thing this discussion doesnt exist here 10:41 < chillerbot1> @Ryozuki 10:42 <+bridge> everything is simply snake case and good is 10:42 <+bridge> u say its silly 10:43 <+bridge> using `a` ONLY for `T[]` arrays and `v` ONLY for `std::vector` specifically is weird 10:43 <+bridge> so specific and not general 10:43 <+bridge> a is also for std::array 10:44 <+bridge> why does initializer list even exist at all 10:44 <+bridge> what problem does it solve over std::array 10:44 <+bridge> easy replacement for variadic arguments 10:44 <+bridge> yeah but how is that better than an std::array 10:45 <+bridge> ```cpp 10:45 <+bridge> template 10:45 <+bridge> void doStuff(const std::initializer_list &args) { 10:45 <+bridge> for(const auto &it : args) { 10:45 <+bridge> // stuff 10:45 <+bridge> } 10:45 <+bridge> } 10:45 <+bridge> 10:45 <+bridge> doStuff({1, 5, 2, 7, 12}); 10:45 <+bridge> ``` 10:45 <+bridge> idk 10:45 <+bridge> that's just what it's for 10:46 <+bridge> yeah, but to me it looks like this is nothing a std::array couldn't do 10:46 <+bridge> 10:46 <+bridge> or a constexpr std::vector 10:46 <+bridge> i don't know why it exists or why it's better 10:46 <+bridge> i just know that this is its use case 10:46 <+bridge> and if it exists alongside std::array and is for this specific purpose, i have reason to believe it is better suited to this purpose 10:46 <+bridge> otherwise it would not exist 10:46 <+bridge> i guess they wanted to save the size template argument 10:47 <+bridge> Using `std::vector` would be better here because you can just create a vector from an initializer list IIRC 10:48 <+bridge> no need for dynamic size 10:48 <+bridge> maybe they didnt like the fact that an vector can be dynamic 10:48 <+bridge> and forced compile tile here 10:48 <+bridge> and forced compile time here 10:49 <+bridge> It just looks like some testing code so in that case it's okay 10:49 <+bridge> but since u need a template anyway, u can probs also simply use auto 10:49 <+bridge> But for other code I'd avoid using different types so we don't need to convert as much between layers 11:05 <+bridge> btw sounds really useful, esp. the assets are so dead ass slow πŸ˜‚ 12:38 <+bridge> It's mostly a language construct. It's the glue that allows you to initialize vectors/std::arrays with the pretty brace syntax 12:39 <+bridge> hack 12:40 <+bridge> it feels hacky indeed 12:40 <+bridge> a new syntax but then a template struct 12:40 <+bridge> It also has some small guarantees that makes it lighter and trivial to optimize 12:41 <+bridge> i mean i often use the brace syntax, but i never used the resulting template definition 12:41 <+bridge> is there a client can join ddnet for cmd only? 12:41 <+bridge> i just want to use cmds to join a ddnet server 12:41 < ws-client> what is cmd only? 12:42 < ws-client> yes 12:42 < ws-client> ``DDNet "connect ger.ddnet.tw"`` 12:42 <+bridge> i want to add bot to my server 12:43 < ws-client> :robot: 12:43 <+bridge> :botmorning: 12:43 < ws-client> ok what should the bot do? 12:43 < ws-client> should it be server or client side? 12:43 <+bridge> move and fire 12:43 < ws-client> based on what 12:43 < ws-client> move where fire on what 12:43 <+bridge> players 12:44 < ws-client> client or server side? 12:44 < ws-client> client side this sounds kinda sus 12:44 < ws-client> anyways it sounds like a technical thing to do 12:44 <+bridge> i mean is there a project like https://www.npmjs.com/package/teeworlds?activeTab=readme 12:44 < ws-client> do you know C++? 12:44 <+bridge> yes 12:45 < ws-client> what is the problem with the project you referenced? 12:45 < ws-client> or do you want it server side? 12:45 <+bridge> If you want your function to take a brace initializer list, if you take a initializer_list even with O0, it'll be zero copy. If you take a vector instead you are up to the mercy of the compiler 12:45 <+bridge> That's the only use 12:45 <+bridge> i just want to test connect a bot to a server with out modifie the server itself 12:45 <+bridge> but what if i simply use auto 12:45 <+bridge> which is allowed since c++20 12:45 <+bridge> i just want to test connect a bot to a server with out modifiy the server itself 12:46 < ws-client> ok 12:46 < ws-client> maybe dbg dummies is what you want 12:46 < ws-client> im not really fllowing what execatly you need 12:46 <+bridge> My inbrain compiler doesn't support templates yet, buuut I think it'll end up being an initializer list 12:47 <+bridge> yeah, but at least i dont use this weird initializer list struct that seems like bloat in newer cpp versions πŸ˜‚ 12:47 < ws-client> @Vinson do you want to start a client and connect it to a server? or do you want a server that connects clients to it self? 12:48 <+bridge> well it has it sense 12:50 <+bridge> btw why nobody did a Docker image for ddnet? (I mean an official one 12:50 <+bridge> Mh, it only is sort of replaced by a constexpr array in newer cpp. So not sure how bloat it is 12:50 <+bridge> i want a client can connect to a server 12:51 <+bridge> but without graphics 12:51 < ws-client> @Vinson okay then the npm package your referenced works fine 12:51 < ws-client> have you tried it? 12:51 <+bridge> ok 12:51 <+bridge> nope 12:51 <+bridge> i am install npm 12:51 < ws-client> ye its good 12:56 <+bridge> wow it works fine 12:56 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1114870368478429284/image.png 12:57 < ws-client> told ya 12:57 < ws-client> enjoy botting axaxaxax 12:58 < ws-client> note that if you automate walking towards players and shooting at them you need the permission of the server owner to run that 13:01 <+bridge> ^ 13:01 <+bridge> btw why nobody did a Docker image for ddnet? (I mean an official one) 13:02 <+ChillerDragon> there was one irrc 13:02 <+ChillerDragon> IIRC 13:02 < ws-client> https://github.com/ddnet/ddnet/blob/master/Dockerfile 13:02 < ws-client> or you mean pushed? 13:02 < ws-client> because official ddnet servers run bare metal 13:02 <+bridge> this one doesn't run anything 13:02 < ws-client> and kog is full on private 13:03 <+bridge> I meant a dockerfile that can be used by anyone 13:03 < ws-client> i guess from the active ddnet devs there is not enough interest 13:03 < ws-client> if you want one go pr one 13:04 <+bridge> will prob later make one 13:04 < ws-client> do you run tw servers in docker? 13:12 <+bridge> If wg21 ever decides to accept P2447 `std::span` will replace all brace params so in C++26 explicit initializer_list constructors might become obsolete πŸ˜› 13:16 <+bridge> yes I do 13:16 < ws-client> which 13:16 <+bridge> currently only blockworlds 13:17 < ws-client> u also rn kubernetes? 13:18 < ws-client> do you use docker docker? or podman? 13:18 <+bridge> nah cuz not useful rn lol 13:18 < ws-client> and why xd 13:18 < ws-client> not useful ever* 13:18 < ws-client> axaxax 13:18 <+bridge> well docker is still shit to run teeworlds, but well when you know how to fix stupid things that docker does, it works fine 13:19 < ws-client> what stupid things? 13:20 < ws-client> why is it shit? 13:22 <+bridge> For example I use a failover IP at OVH, but docker kinda doesn't support that 13:22 < ws-client> i see 13:22 < ws-client> and why do you want to use docker anyways? 13:22 < ws-client> why not bare metal? 13:22 <+bridge> I mean I'd still be able to contact the container with that IP, but the response will be NATed with the main IP lol 13:23 <+bridge> So had to add custom iptables rules 13:23 <+bridge> Cuz it's easier to deploy things 13:23 <+bridge> Once you know how to use 13:23 < ws-client> how is docker easier to deploy? 13:23 < ws-client> could you name a example what was harder specifically and now got easier? 13:24 <+bridge> Pre-built images, you don't need to do everything by yourself 13:24 < ws-client> like what? 13:24 <+bridge> Eg mariadb imahe 13:24 <+bridge> Eg mariadb image 13:24 < ws-client> ah so you do not have to run the oneliner to setup a fresh mariadb server? 13:24 < ws-client> like creating a user etc 13:24 <+bridge> Yes 13:25 < ws-client> https://zillyhuhn.com/cs/.1685877905.png 13:25 <+bridge> U just specify env vars, also I can easily isolate stuff 13:25 < ws-client> what stuff tho? 13:25 <+bridge> For eg my mysql container will only be on the same docker network as my game server, but won't be visible by the rest 13:25 < ws-client> seems like additional complexity to me 13:25 < ws-client> which rest? 13:25 < ws-client> what else is there 13:26 <+bridge> If I have other stuff to run 13:26 <+bridge> Wait 13:26 < ws-client> like conflicting dbs? 13:26 < ws-client> hm 13:31 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1114879139934130236/image.png 13:31 <+bridge> this is an example of what u can do for eg 13:32 < ws-client> are you doing this? 13:32 < ws-client> and why? 13:32 <+bridge> you can have a network for all your websites, all your www containers will be in 2 networks, a private one to access their database, and the 2nd network is for traefik 13:32 <+bridge> yes I do that, I just restrict at maximum the visibility of each databases 13:33 < ws-client> and thats for what? 13:33 < ws-client> security? 13:33 < ws-client> cant you just make your db not expose public ports and done? 13:33 <+bridge> also traefik uses the docker socket, I use https://hub.docker.com/r/tecnativa/docker-socket-proxy to restrict the usage of it 13:33 < ws-client> seems so complicated 13:34 <+bridge> it is not exposed publicly, I meant to isolate it from other containers 13:34 <+bridge> it's not that hard lol 13:34 < ws-client> so other tw servers can not reach the db? 13:34 < ws-client> do you have a public infrastructure repo? 13:35 < ws-client> also TIL javascript can crash firefox xd 13:35 <+bridge> for example yes 13:35 < ws-client> no for your infra 13:35 <+bridge> I don't think I have 13:35 < ws-client> sad 13:35 <+bridge> u mean u want to see how I setup all of that 13:36 < ws-client> i want to see every config file and the setup command 13:36 < ws-client> too evaluate how easy it really is 13:36 < ws-client> do you have the infrastructure tracked as code? 13:36 <+bridge> chillerevaluater 13:36 < ws-client> all the traefik and dockerfiles? 13:37 <+bridge> traefik is the most annoying to configure lmao 13:37 < ws-client> i knew it xd 13:37 <+bridge> but the rest is easy 13:37 < ws-client> if you get a new server what do you do to replicate the setup? 13:37 < ws-client> how long does it take you? 13:37 <+bridge> takes me less than 30min 13:37 < ws-client> thats pog 13:37 <+bridge> I just backup all my docker-compose stuff 13:37 < ws-client> but how 13:38 < ws-client> so you have not tracked it yet? 13:38 <+bridge> wdym by tracked 13:38 < ws-client> check it in git 13:38 <+bridge> ah it's not in a git repo 13:38 < ws-client> if you decide to do so and publish it let me know im curious 13:39 < ws-client> im yet to be sold on docker 13:39 <+bridge> xdd 13:39 <+bridge> docker-compose makes your life easier tho 13:39 < ws-client> but if you show me a simple repo where the config files make sense and there is a readme with 3 commands to set it up and then i have a nice tw network with dbs etc id buy it 13:40 <+bridge> I can make an example & show you 13:40 <+bridge> but later 13:40 < ws-client> but until then i use my 13k lines of bash and bare metal to deploy tw servers 13:40 <+bridge> lmao 13:41 < ws-client> minimal dependencies blazingly fast highly customizable 13:41 <+bridge> I made a docker image for ddnet but never put it anywhere 13:41 <+bridge> Maybe I can polish it up and put it on the repo? 13:41 < ws-client> lerato wants to join kog dev team 13:42 <+bridge> well I removed alot 13:43 <+bridge> ```yml 13:43 <+bridge> version: '3' 13:43 <+bridge> services: 13:43 <+bridge> db: 13:43 < ws-client> oh no 13:43 <+bridge> container_name: db 13:43 <+bridge> image: mariadb 13:43 <+bridge> restart: always 13:43 <+bridge> volumes: 13:43 <+bridge> - /opt/volumes/bombay/mariadb:/var/lib/mysql 13:43 <+bridge> environment: 13:43 <+bridge> MYSQL_ROOT_PASSWORD: pw 13:43 <+bridge> MYSQL_USER: tw 13:43 <+bridge> MYSQL_PASSWORD: pw 13:43 <+bridge> MYSQL_DATABASE: bw 13:43 <+bridge> networks: 13:43 <+bridge> - bombay 13:43 <+bridge> 13:43 <+bridge> v3royal: 13:43 <+bridge> container_name: v3royal 13:43 <+bridge> depends_on: 13:43 <+bridge> - db 13:43 <+bridge> image: bombay:latest 13:43 <+bridge> restart: always 13:43 <+bridge> 13:43 <+bridge> volumes: 13:43 <+bridge> - /opt/volumes/bombay/v3royal/data:/blockworlds/data 13:43 <+bridge> networks: 13:43 <+bridge> - bombay 13:43 <+bridge> ports: 13:43 <+bridge> - 149.202.19.227:8404:8404/udp 13:44 <+bridge> 13:44 <+bridge> it sets up bombay, a phpmyadmin that is on the bombay network & traefik 13:44 <+bridge> and from the bombay network only the v3royal server is exposed 13:44 <+ChillerDragon> pls dont kill irc thank 13:44 <+bridge> xD 13:44 <+bridge> I can send a pastebin if it's better 13:44 <+bridge> Ew phpmyadmin user 13:44 <+bridge> @Learath2 yes, well it's only cuz I have some mates that are noobs 13:45 <+bridge> overwise wouldn't have used it lol 13:45 <+bridge> Make them learn sql 13:45 <+bridge> xD they don't have time for it ig 13:45 < ws-client> thanks for the docker compose leak 13:45 < ws-client> pretty boring tho xd 13:45 <+bridge> well ig easier than a bash script 13:45 <+bridge> if I want another srv I could easily duplicate the v3royal stuff & edit some lines 13:46 < ws-client> i see 13:46 < ws-client> yea not too bad i guess 13:46 < ws-client> i just cp -r my 13k lines of bash 13:46 < ws-client> and edit my config file 13:46 <+bridge> yesterday I've added the support for env vars 13:46 <+bridge> We scp some stuff over, edit some configs then hammer until it works 13:46 < ws-client> HAMMER 13:46 <+bridge> Very manual workflow here at ddnet inc. 13:47 <+bridge> for eg: 13:47 <+bridge> ```yml 13:47 <+bridge> tw_srv: 13:47 <+bridge> container_name: tw_srv 13:47 <+bridge> image: bombay:latest 13:47 <+bridge> restart: always 13:47 <+bridge> environment: 13:47 <+bridge> TW_sv_name: "This is a test server" 13:47 <+bridge> ... 13:47 <+bridge> ``` 13:47 < ws-client> isnt deen running his magic shell script on a new vps and its up and running after a cup of tea? 13:47 < ws-client> i think id have to setup some tw servers with docker one day just for the memes 13:48 <+bridge> Ideally I would write ansible playbooks for deploying these 13:48 < ws-client> ew ansible 13:48 <+bridge> yes that's the best option for you 13:48 < ws-client> i somehow really dislike ansible idk why 13:48 <+bridge> as you are a docker hater if I remember correctly 13:48 <+bridge> xD 13:48 <+bridge> or was it heinrich, forgot 13:48 < ws-client> docker is propriatariy 13:49 <+bridge> yes 13:49 < ws-client> proprietary* 13:49 <+bridge> I'm disgusted by docker 13:49 < ws-client> so it bad 13:49 <+bridge> But we have rootless podman to rescue 13:49 <+bridge> :cammostripes: 13:49 < ws-client> @Ryozuki leak some emotes 13:49 <+bridge> well luckily podman uses the same set of commands 13:49 <+bridge> at docker 13:49 < ws-client> like cammostripes 13:49 <+bridge> Works + not proprietary + rootless 13:49 <+bridge> idk if they have a docker-compose alternative 13:49 < ws-client> pogman 13:49 <+bridge> They do, it's podman-compose 13:49 < ws-client> but little ecosys compared to docker 13:50 <+bridge> ah, damn 13:50 <+bridge> They share the same ecosys, wym? 13:50 < ws-client> its not as drop in as they claim 13:50 <+bridge> It is very very drop in after you get through the setup struggles 13:50 < ws-client> .. 13:51 <+bridge> If you are ok with running it as root it's even better 13:51 < ws-client> lerato how to debug js? 13:51 <+bridge> spam console.log everywhere 13:51 <+bridge> don't use nodejs 13:51 <+bridge> use deno 13:51 < ws-client> i cant open console 13:51 < ws-client> my browser crashes if i open page 13:52 <+bridge> soon new laptop, idk if I stay on bloatdows 11 or I switch to a linux distro 13:53 < ws-client> buy gnome pro 13:53 <+bridge> What sort of unholy bug did you encounter that it directly crashes your browser? Damn 13:53 < ws-client> ikr 13:54 < ws-client> idk 13:54 <+bridge> At that point your only hope is to attach gdb to the browser 13:54 < ws-client> lmao 13:54 <+bridge> he tried to mine btc or wut 13:54 < ws-client> that sounds horrible 13:54 <+bridge> use gentoo 13:54 <+bridge> be in control 13:54 <+bridge> I was thinking about manjaro 13:54 < ws-client> majaro is better than windows 13:55 <+bridge> https://hannahmontana.sourceforge.net/Site/Home.html 13:55 <+bridge> this is better than windows 13:55 < ws-client> its like ubuntu of arch users 13:55 <+bridge> wtf lmaoo 13:55 < ws-client> lmao hannamonatana 13:55 <+bridge> maybe I could use templeOS 13:55 <+bridge> for my laptop 13:55 < ws-client> i dunno bout that 13:56 <+bridge> u dunno templeOS? 13:56 <+bridge> I don't know if it can even boot on real hardware 13:56 <+bridge> https://templeos.org/ 13:56 <+bridge> idk lmao, worth a try 13:57 <+bridge> No network drivers or networking layer. You'll just have to do pcie commands by hand to send packets 13:57 <+bridge> :justatest: 13:57 < ws-client> xd 13:57 < ws-client> i mean i dunno if it is a good idea 13:57 < ws-client> stick with linux 13:57 < ws-client> or maybe some bsd 13:59 <+bridge> Can you read words of god in linux? 13:59 < ws-client> no but.. 13:59 < ws-client> i mean 13:59 < ws-client> hm 14:03 < ws-client> aaa leratoo! 14:03 < ws-client> i found bugo 14:03 < ws-client> i confused ``=`` and ``+=`` 14:04 < ws-client> and i guess maffs fucked my ass due to it growing too big 14:04 <+bridge> Oh btw there is one other way to debug that kind of thing. You can use the debugger statement 14:05 < ws-client> yea i wasnt sure where to put it 14:05 < ws-client> so i used binary search with commenting out until it stops hang 14:05 < ws-client> and then i knew which lines to look closer at 14:08 <+bridge> Smort 14:38 <+bridge> bsd damn good 14:39 <+bridge> I've used freebsd in the past, it's amazing 15:16 <+bridge> discord is dead 15:16 <+bridge> rip 15:17 <+bridge> why? 15:17 <+bridge> bcs its offline 15:17 <+bridge> completely 15:17 <+bridge> i bet he wrote the messages half hour ago or smth xD 15:18 <+bridge> hmm? the #developer ? 15:18 <+bridge> ah yes ic now my msgs don't come trough either 15:19 <+bridge> i used it too, and it lagged like shit πŸ˜‚ 15:19 <+bridge> 15:19 <+bridge> every 10 seconds a complete freeze for at least 1 second 15:19 <+bridge> never had issues 15:19 <+bridge> + bsd was way better than linux in terms of network performance 15:19 <+bridge> prob why it's alot used by companies like Juniper etc.. 15:19 <+bridge> how did u measure that? lmao 15:19 <+bridge> I didn't, I've read some blogs about it 15:20 <+bridge> netflix invested into the network code afaik 15:21 <+bridge> hmm? the #developer ? 15:21 <+bridge> yeah i read it too before 15:21 <+bridge> but i guess on normal human network it makes no real difference πŸ˜„ 15:21 <+bridge> discord hello 15:22 <+bridge> stop lag pls 15:22 <+bridge> i wrote my msgs at 15:20 15:22 <+bridge> this was also good some years ago 15:22 <+bridge> but I think since linux 5.x they optimized a lot 15:23 <+bridge> lel 15:23 <+bridge> lel 15:23 <+bridge> yeah i read it too before 15:24 < ws-client> irc more stable 15:24 < ws-client> why does it send my messages twice now :joy: 15:24 <+bridge> yeah i read it too before 15:24 < ws-client> great 15:24 < ws-client> don't need to talk anymore 15:24 < ws-client> discord does it for me 15:24 < ws-client> jupsti want me to deploy web update? 15:24 < ws-client> yeah sounds great 15:24 < ws-client> new features, im in 15:25 <+bridge> yeah i read it too before 15:25 < ws-client> yeah i also read it too before 15:25 < ws-client> hellow 15:25 < ws-client> oh no NaN 15:25 < ws-client> xd 15:25 < ws-client> NaN bad xd 15:25 <+bridge> bb discord spam = big ban discord spam 15:26 <+bridge> ``` 15:26 <+bridge> yaml 15:26 <+bridge> yaml: 15:26 <+bridge> - sucks 15:26 <+bridge> - so bad 15:26 <+bridge> ``` 15:26 < ws-client> @Jupstar finally multi line code blocks 15:27 < ws-client> ah missed the chance 15:27 <+bridge> ```rs 15:27 <+bridge> fn no() -> i8 {} 15:27 <+bridge> ``` 15:27 < ws-client> oh tru 15:27 < ws-client> lang is same line as ``` not next? right xd 15:27 < ws-client> aaaaaaaaaaaaaaaaa 15:28 <+bridge> lel 15:28 < ws-client> this happens when you code with specs from da head 15:28 < ws-client> lmao, discord still auto sends some msgs 15:28 <+bridge> couldn't you just write \`\`\` directly in your chat? 15:28 <+bridge> spammer :giga_chad: 15:28 <+bridge> oh god, dc ded 😒 15:29 < ws-client> @Chairn the problem was multiple lines and code highlight because irc only has single line so i had to virtually merge them to apply synatx to multi line code blocks 15:29 <+bridge> cool add replies and I'm gonna switch too ;) 15:29 <+bridge> this is also not from me πŸ˜‚ 15:29 <+bridge> what happens if discord resends a message that was a reply to another one xDD 15:29 <+bridge> let's communicate with morse code 15:30 <+bridge> today is the day to find it out 15:30 < ws-client> lets compress out messages to save bandwidth for discord 15:30 < ws-client> @Mr.Gh0s7 not sure how to make replies with a single line message protocol under the hood xd 15:30 < ws-client> our* 15:30 <+bridge> from the typing 15:31 <+bridge> spammer :giga_chad: 15:32 <+bridge> everything is so out of context on discord side xDDD 15:32 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1114909439229698079/image.png 15:32 <+bridge> spammer :giga_chad: 15:32 < ws-client> lol discord as bugged as matrix xd 15:32 <+bridge> πŸ˜‚ πŸ˜‚ πŸ˜‚ πŸ˜‚ πŸ˜‚ πŸ˜‚ πŸ˜‚ πŸ˜‚ πŸ˜‚ πŸ˜‚ 15:32 <+bridge> and you call me spammer 15:33 <+bridge> cool add replies and I'm gonna switch too ;) 15:33 <+bridge> couldn't you just write \`\`\` directly in your chat? 15:33 <+bridge> this is also not from me πŸ˜‚ 15:33 < ws-client> im sure they use kubernetes at discord and it bugged axaxax 15:34 <+bridge> cool add replies and I'm gonna switch too ;) 15:34 <+bridge> from the typing 15:34 <+bridge> today is the day to find it out 15:35 <+bridge> Discord implemented ghosts! Ghost typers are out don't miss them 15:35 <+bridge> everything is so out of context on discord side xDDD 15:36 <+bridge> today is the day to find it out 15:36 <+bridge> everything is so out of context on discord side xDDD 15:36 <+bridge> @Reteah discord trolls u πŸ˜‚ 15:37 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1114910713798991932/image.png 15:37 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1114910718815383652/image.png 15:37 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1114910872997994547/image.png 15:37 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1114910873262231612/image.png 15:38 < ws-client> chillerdragon: irc has problems if i upload 2 images at once 15:38 <+bridge> U cannOt StoP the Gh0stΟ‚ 15:39 <+bridge> U cannOt StoP the Gh0stΟ‚ 15:39 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1114911174140641290/image.png 15:39 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1114911176523005952/image.png 15:39 <+bridge> U cannOt StoP the Gh0stΟ‚ 15:39 <+bridge> nice it even dublicates images 15:39 <+bridge> U cannOt StoP the Gh0stΟ‚ 15:39 <+bridge> test 15:40 <+bridge> :feelsbadman: 4 times now 15:40 <+bridge> 18000ms :justatest: 15:42 <+bridge> From the lags from disc I feel like vscode lags too and now I double check that what I did actually happened :kek: 15:43 <+bridge> πŸ™ƒ 15:43 <+bridge> oh its fast again 15:44 <+bridge> cool 15:45 <+bridge> Is it only #developer or discord in general? 15:45 < ws-client> i assume in general 15:45 < ws-client> at least some servers 15:45 <+bridge> looks like cloudflare is in pain too 15:45 <+bridge> looks like cloudflare is in pain too 15:46 <+bridge> cool 15:48 <+bridge> cool 15:48 <+bridge> looks like cloudflare is in pain too 15:50 < ws-client> what problems @Jupstar2 15:50 < ws-client> i uploaded 2 images 15:50 < ws-client> but only shows one 15:51 < ws-client> but maybe its the irc bridge 15:51 <+bridge> it shows 2 to me 15:51 < ws-client> then u probs lot of content already :D 15:51 < ws-client> ah no i think i know what yo mean 15:51 <+bridge> yeah on discord its 2 15:52 < ws-client> https://zillyhuhn.com/cs/.1685886724.png 15:52 < ws-client> ah yea because of the message merge hmm 15:52 < ws-client> i guess never merge images then 15:55 <+bridge> guys let's join ALIVE fng 64 players so we can communicate ;) 15:55 < ws-client> just ask jupsti for webchat pw 15:56 <+bridge> !jupsti plz 15:57 <+bridge> !jupsti plz 15:58 < ws-client> noice 15:59 < ws-client> ok nice images fixed 15:59 < ws-client> the backlog is so nice to test stuff because you can reload the page without having to resend messages 16:00 < ws-client> pog 16:17 < ws-client> @Ryozuki can you send a smol edlang snippet pls? annotated with \`\`\`edlang 16:18 < ws-client> https://zillyhuhn.com/cs/.1685888301.png 16:18 < ws-client> o yikes > html moment 17:11 <+bridge> hey, it's the first weekend i'm getting a full night sleep 17:11 <+bridge> love it 17:11 <+bridge> good night everyone 17:12 < ws-client> good night! 17:12 < ws-client> gn 21:15 <+bridge> Why is this like this ``` 21:15 <+bridge> for(auto &pLayer : m_vpLayers) 21:15 <+bridge> { 21:15 <+bridge> if(pLayer->m_Visible) 21:15 <+bridge> { 21:15 <+bridge> if(pLayer->m_Type == LAYERTYPE_TILES) 21:15 <+bridge> { 21:15 <+bridge> CLayerTiles *pTiles = static_cast(pLayer); 21:15 <+bridge> if(pTiles->m_Game || pTiles->m_Front || pTiles->m_Tele || pTiles->m_Speedup || pTiles->m_Tune || pTiles->m_Switch) 21:15 <+bridge> continue; 21:15 <+bridge> } 21:15 <+bridge> if(m_pMap->m_pEditor->m_ShowDetail || !(pLayer->m_Flags & LAYERFLAG_DETAIL)) 21:15 <+bridge> pLayer->Render(); 21:15 <+bridge> } 21:15 <+bridge> } 21:15 <+bridge> 21:15 <+bridge> for(auto &pLayer : m_vpLayers) 21:15 <+bridge> { 21:15 <+bridge> if(pLayer->m_Visible && pLayer->m_Type == LAYERTYPE_TILES && pLayer != m_pMap->m_pGameLayer && pLayer != m_pMap->m_pFrontLayer && pLayer != m_pMap->m_pTeleLayer && pLayer != m_pMap->m_pSpeedupLayer && pLayer != m_pMap->m_pSwitchLayer && pLayer != m_pMap->m_pTuneLayer) 21:15 <+bridge> { 21:15 <+bridge> CLayerTiles *pTiles = static_cast(pLayer); 21:15 <+bridge> if(pTiles->m_Game || pTiles->m_Front || pTiles->m_Tele || pTiles->m_Speedup || pTiles->m_Tune || pTiles->m_Switch) 21:15 <+bridge> { 21:15 <+bridge> pLayer->Render(); 21:15 <+bridge> } 21:15 <+bridge> } 21:16 <+bridge> } 21:16 <+bridge> ``` at CLayerGroup::Render() on game/editor/editor.cpp 21:16 <+bridge> what is your question? XD 21:16 <+bridge> more specifically why is there two if under for which check for the same thing 21:17 <+bridge> first loop render tile layers that are not gameplay related 21:17 <+bridge> second loop render tile layers that are gameplay related 21:17 <+bridge> first loop render tile layers that are not gameplay related, mostly backgrounds and graphics one 21:18 <+bridge> but it checks if they are not game layers 21:18 <+bridge> in the first if 21:20 <+bridge> well besides the if check which i dont understand 21:20 <+bridge> 21:20 <+bridge> chairn is right tho i guess 21:22 <+bridge> I mean why are the if seperate. Wouldn't it better it checked ```(pLayer->m_Visible && pLayer->m_Type == LAYERTYPE_TILES)``` and then ```(pLayer != m_pMap->m_pGameLayer && pLayer != m_pMap->m_pFrontLayer && pLayer != m_pMap->m_pTeleLayer && pLayer != m_pMap->m_pSpeedupLayer && pLayer != m_pMap->m_pSwitchLayer && pLayer != m_pMap->m_pTuneLayer)``` under the same if? 21:23 <+bridge> wow thats your question? xd 21:23 <+bridge> answer: who the fuck cares xD 21:23 <+bridge> xD it's confusing though 21:24 <+bridge> better tell me why 21:24 <+bridge> ``` 21:24 <+bridge> (pLayer != m_pMap->m_pGameLayer && pLayer != m_pMap->m_pFrontLayer && pLayer != m_pMap->m_pTeleLayer && pLayer != m_pMap->m_pSpeedupLayer && pLayer != m_pMap->m_pSwitchLayer && pLayer != m_pMap->m_pTuneLayer) 21:24 <+bridge> ``` 21:24 <+bridge> evaluates to true 21:24 <+bridge> I am working on something that will probably use `CLayerGroup::Render()` should I merge those to for loops into one? 21:25 <+bridge> the for loops cant be merged 21:25 <+bridge> as chairn said, it purposely renders the physics layers after design layers 21:25 <+bridge> so they are always visisble in editor 21:26 <+bridge> ah so it's because of how `pLayer->Render()` works? 21:26 <+bridge> mh? 21:26 <+bridge> it's so they are rendered last 21:26 <+bridge> which makes them visible 21:26 <+bridge> yeah that's what I meant :pepeH: 21:26 <+bridge> even tho i still don't get this check πŸ˜‚ 21:27 <+bridge> if the player is no physic layer, and the layer is a physic layer, render 21:27 <+bridge> wtf 21:27 <+bridge> if the pLayer is no physic layer, and the layer is a physic layer, render 21:33 <+bridge> I think it checks for everything that's not in a "predefined" layer 21:38 <+bridge> sry my iq is too low for this code 21:39 <+bridge> so it basically makes a copy of all layers 21:39 <+bridge> and checks against the loadedd version? 21:39 <+bridge> then the question would be, why would this ever be false πŸ˜‚ 21:41 <+bridge> when the layer in question is GameLayer, FrontLayer etc 21:41 <+bridge> yeah, nvm editor code is weird xD 22:06 <+bridge> That condition almost makes me want to refactor it into a function 22:09 <+bridge> I'm pretty sure such a function already exists 22:22 <+bridge> i miss ryozuki 22:22 <+bridge> where is the daily: with rust you could use this and that 22:52 <+bridge> no, because we have no choice but to use 2 loops to keep rendering order 22:53 <+bridge> another way could be to sort layers once and then iterate over sorted layers 23:17 <+bridge> !c https://www.phoronix.com/news/Google-Chrome-Maglev-Compiler 23:17 < chillerbot1> ChillerDragon 23:17 <+bridge> Firefox deadπŸ₯ΉπŸ₯Ή