08:36 <+bridge> [ddnet] Hey 08:36 <+bridge> [ddnet] Teeworlds written in C++? 08:39 <+bridge> [ddnet] ye sadly 09:22 <+ChillerDragon> Teeworlds vanilla is written in a more C style and ddnet is slowly drifting to more and more modern C++ 10:36 <+bridge> [ddnet] πŸ’€ 10:38 <+bridge> [ddnet] progress in ryolang parsing 10:38 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/975678706100088872/unknown.png 10:38 <+bridge> [ddnet] :PepeA: 10:39 <+bridge> [ddnet] `fn myfunc(a, b) { return a * b; }` 10:49 <+bridge> [ddnet] AST looks good. 10:49 <+bridge> [ddnet] But as proverb says: create games, not engine. 10:49 <+bridge> [ddnet] You are going with brand new language πŸ˜… 10:49 <+bridge> [ddnet] ? 10:50 <+bridge> [ddnet] i dont want to create a game or engine 10:50 <+bridge> [ddnet] > Don't Reinvent The Wheel, Unless You Plan on Learning More About Wheels 10:50 <+bridge> [ddnet] https://blog.codinghorror.com/dont-reinvent-the-wheel-unless-you-plan-on-learning-more-about-wheels/ 10:51 <+bridge> [ddnet] Yeah that's a good point 12:16 <+ChillerDragon> Aaa did i brick my system? Or did ddnet link times just increase by a factor of 100 12:21 <+ChillerDragon> Hmm yea older commits link way faster. What changed :( 12:23 <+ChillerDragon> Assume its this https://github.com/ddnet/ddnet/pull/5076 12:26 <+ChillerDragon> Ah okay I see one just has to use debug builds for faster linking. I guess thats fair 12:51 <+bridge> [ddnet] imho its not a worth change 12:51 <+bridge> [ddnet] i prefer faster linking 12:51 <+bridge> [ddnet] i dont test stuff on debug mode 13:11 <+bridge> [ddnet] @Ryozuki you could PR disabling the slower linking for `-DDEV=ON`, if you want 13:15 <+bridge> [ddnet] Even if all the developers preferred faster linking we'd be in the minority, smaller executable is better for more people πŸ˜„ 13:32 <+bridge> [ddnet] it literally isnt smaller 13:32 <+bridge> [ddnet] only the tools 13:33 <+bridge> [ddnet] and its just a few kb 13:33 <+bridge> [ddnet] its rly worthless 13:36 <+ChillerDragon> smol ryo trying to argue that size doesn matter hrhrhrhr 13:37 <+ChillerDragon> I also usually dont test stuff in debug mode but just because im to lazy to type -DCMAKE_BUILD_TYPE=Debug maybe we can make that a default and then build times are fast by default 13:38 <+bridge> [ddnet] it rly doesnt 13:38 <+bridge> [ddnet] not when talking about less then some mbs 13:39 <+bridge> [ddnet] the difference from debug to o1 is usually rly big 13:39 <+bridge> [ddnet] so i prefer testing in release 13:40 <+bridge> [ddnet] I see 1.5 MB in total savings, if I count it correctly 13:40 <+bridge> [ddnet] so nothing basicallu 13:40 <+bridge> [ddnet] you don't like the solution with `-DDEV=ON`? 13:40 <+bridge> [ddnet] imho it should be an opt in thing 13:41 <+bridge> [ddnet] always disabled otherwise 13:41 <+bridge> [ddnet] the normal cmake build is intended for people packaging the stuff 13:41 <+bridge> [ddnet] actually u shouldnt even need a custom option for it 13:41 <+bridge> [ddnet] `-DDEV=ON` is when you're developing 13:41 <+bridge> [ddnet] ye i use ddev 13:41 <+bridge> [ddnet] we could disable that linking for `-DDEV=ON` 13:41 <+bridge> [ddnet] the slow one 13:42 <+bridge> [ddnet] the correct way is to make -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON work 13:42 <+bridge> [ddnet] and not rely on custom options 13:42 <+bridge> [ddnet] its better for maintainers and custom makepkgs 13:42 <+bridge> [ddnet] is that actually the intended way? 13:43 <+bridge> [ddnet] > Windows 13:43 <+bridge> [ddnet] > 13:43 <+bridge> [ddnet] > Windows build time changed from 3:10 to 5:05 13:43 <+bridge> [ddnet] this is insane for a 1.5mb saving 13:43 <+bridge> [ddnet] xd 13:43 <+bridge> [ddnet] no, not if you build once and distribute it to thousands of people 13:44 <+bridge> [ddnet] im sure it is 13:46 <+bridge> [ddnet] can you tell me why you think it is the way? 13:46 <+bridge> [ddnet] I could also imagine it being a way to override options if the project didn't care about them, e.g. 13:46 <+bridge> [ddnet] e.g. we add a lot of compiler warning options even though you could also pass them via `CFLAGS=…` 13:47 <+bridge> [ddnet] well warnings usually are meant for developers, LTO, optimizations, IPO which can considerably increase built times i think they make more sense as env vars or explicit 13:49 <+bridge> [ddnet] so your belief comes from your other belief that stuff that increases build times should be passed in via `CMAKE_*` variables 13:49 <+bridge> [ddnet] ye i guess its personal taste 15:39 <+bridge> [ddnet] I have added -DDEV=ON disabling IPO in https://github.com/ddnet/ddnet/pull/5133 15:39 <+bridge> [ddnet] If this is not enough, we can always disable IPO by default and I only enable it for official builds, but my motivation was to not have so many magic settings that I set only for official release. 15:48 <+bridge> [ddnet] Thats fine 16:27 <+bridge> [ddnet] Other opinions to my physics changes in https://github.com/ddnet/ddnet/pull/5063 16:30 <+bridge> [ddnet] Other opinions to my physics changes in https://github.com/ddnet/ddnet/pull/5063 ? 17:21 <+bridge> [ddnet] https://yuri.is/not-julia/ 17:23 <+bridge> [ddnet] > Why I no longer recommend Julia 18:51 <+bridge> [ddnet] part 7 pretty sure this is a bug. 18:51 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/975802704649666610/unknown.png 18:51 <+bridge> [ddnet] part 7 weapon finals pretty sure this is a bug. 18:51 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/975802704649666610/unknown.png 18:54 <+bridge> [ddnet] seems intended 18:55 <+bridge> [ddnet] its on all edges 18:56 <+bridge> [ddnet] come on again 18:56 <+bridge> [ddnet] its stuck 18:56 <+bridge> [ddnet] intended code-wise, not map-wise 18:56 <+bridge> [ddnet] maybe easiest to fix the map 18:56 <+bridge> [ddnet] no I mean the map xD 18:56 <+bridge> [ddnet] just put a tele in that spot? 18:56 <+bridge> [ddnet] just change direction of the arrow 18:57 <+bridge> [ddnet] I think Chrona putted it there to make the part harder 18:57 <+bridge> [ddnet] I think Chrona put it there to make the part harder 18:57 <+bridge> [ddnet] I think Chrona placed it there to make the part harder 18:57 <+bridge> [ddnet] I think @xeno placed it there to make the part harder 18:58 <+bridge> [ddnet] @xeno can you maybe change the direction of all arrows? hes on a magical edge stuck 18:58 <+bridge> [ddnet] hes not bein pushed into the tΓΌ 18:58 <+bridge> [ddnet] hes not bein pushed into the tp 19:03 <+bridge> [ddnet] I was wrong xD It should make the part easier... Starkiller showed me the bug xD 19:04 <+bridge> [ddnet] normaly you would be moved by the arrow to the tele 19:04 <+bridge> [ddnet] but somehow there is a sweet spot so that you do not get moved 19:06 <+bridge> [ddnet] ah it is the corner bug 19:06 <+bridge> [ddnet] you get stuck in the corner... Chrona should probably invert the arrow directions 19:14 <+bridge> [ddnet] @deen continuing the templates topic. 19:14 <+bridge> [ddnet] Now we have a lot of snapping done like: 19:14 <+bridge> [ddnet] ```cpp 19:14 <+bridge> [ddnet] CNetObj_GameInfo *pGameInfoObj = (CNetObj_GameInfo *)Server()->SnapNewItem(NETOBJTYPE_GAMEINFO, 0, sizeof(CNetObj_GameInfo)); 19:14 <+bridge> [ddnet] ``` 19:14 <+bridge> [ddnet] 19:14 <+bridge> [ddnet] With one line for codegen and for lines for `engine/server.h`: 19:14 <+bridge> [ddnet] ```diff 19:14 <+bridge> [ddnet] --- datasrc/datatypes.py 19:14 <+bridge> [ddnet] +++ datasrc/datatypes.py 19:14 <+bridge> [ddnet] @@ -218,6 +218,7 @@ class NetObject: 19:14 <+bridge> [ddnet] . . . lines = ["struct %s : public %s"%(self.struct_name,self.base_struct_name), "{"] 19:14 <+bridge> [ddnet] . . else: 19:14 <+bridge> [ddnet] . . . lines = ["struct %s"%self.struct_name, "{"] 19:14 <+bridge> [ddnet] +. . lines += ["\tstatic const int ObjectType = %s;" % self.enum_name] 19:14 <+bridge> [ddnet] . . for v in self.variables: 19:14 <+bridge> [ddnet] . . . lines += ["\t"+line for line in v.emit_declaration()] 19:14 <+bridge> [ddnet] . . lines += ["};"] 19:14 <+bridge> [ddnet] 19:14 <+bridge> [ddnet] --- src/engine/server.h 19:14 <+bridge> [ddnet] +++ src/engine/server.h 19:14 <+bridge> [ddnet] @@ -279,6 +279,13 @@ public: 19:14 <+bridge> [ddnet] . virtual void SnapFreeID(int ID) = 0; 19:14 <+bridge> [ddnet] . virtual void *SnapNewItem(int Type, int ID, int Size) = 0; 19:14 <+bridge> [ddnet] 19:14 <+bridge> [ddnet] +. template 19:14 <+bridge> [ddnet] +. T *SnapNewItem(int ID) 19:14 <+bridge> [ddnet] +. { 19:14 <+bridge> [ddnet] +. . int Type = T::ObjectType; 19:14 <+bridge> [ddnet] +. . (T *)SnapNewItem(Type, ID, sizeof(T)); 19:14 <+bridge> [ddnet] +. } 19:14 <+bridge> [ddnet] @deen continuing the templates topic. 19:15 <+bridge> [ddnet] Now we have a lot of snapping done like: 19:15 <+bridge> [ddnet] ```cpp 19:15 <+bridge> [ddnet] CNetObj_GameInfo *pGameInfoObj = (CNetObj_GameInfo *)Server()->SnapNewItem(NETOBJTYPE_GAMEINFO, 0, sizeof(CNetObj_GameInfo)); 19:15 <+bridge> [ddnet] ``` 19:15 <+bridge> [ddnet] 19:15 <+bridge> [ddnet] With one line for codegen and for lines for `engine/server.h`: 19:15 <+bridge> [ddnet] ```diff 19:15 <+bridge> [ddnet] --- datasrc/datatypes.py 19:15 <+bridge> [ddnet] +++ datasrc/datatypes.py 19:15 <+bridge> [ddnet] @@ -218,6 +218,7 @@ class NetObject: 19:15 <+bridge> [ddnet] . . . lines = ["struct %s : public %s"%(self.struct_name,self.base_struct_name), "{"] 19:15 <+bridge> [ddnet] @deen continuing the templates topic. 19:15 <+bridge> [ddnet] Now we have a lot of snapping done like: 19:15 <+bridge> [ddnet] ```cpp 19:15 <+bridge> [ddnet] CNetObj_GameInfo *pGameInfoObj = (CNetObj_GameInfo *)Server()->SnapNewItem(NETOBJTYPE_GAMEINFO, 0, sizeof(CNetObj_GameInfo)); 19:15 <+bridge> [ddnet] ``` 19:15 <+bridge> [ddnet] 19:15 <+bridge> [ddnet] But it makes no sense to repeat `CNetObj_GameInfo` three times and use the only correct `NETOBJTYPE`. 19:15 <+bridge> [ddnet] 19:19 <+bridge> [ddnet] `static const int` maybe a `constexpr` just to make sure ? 19:20 <+bridge> [ddnet] Overall I like the idea, but @heinrich5991 doesn't like metaprogramming in c++, sooo you'll just have to PR and see who wins πŸ˜„ 19:20 <+bridge> [ddnet] looks okay to me, not metaprogramming involved 19:20 <+bridge> [ddnet] Yeah, better yet. 19:20 <+bridge> [ddnet] And I see that we'll need at least one more line for `protocol7` but it's not a big deal. 19:20 <+bridge> [ddnet] looks okay to me, no metaprogramming involved 19:21 <+bridge> [ddnet] maybe don't overload the function name 19:21 <+bridge> [ddnet] protocol7 objects are tagged if you need to know whether something is for sixup 19:22 <+bridge> [ddnet] I also do not like complex templates but those are small and easy to read. 19:23 <+bridge> [ddnet] Ok then! πŸ‘ . I'll do PR eventually. And I'm fine with any name for that method (maybe `SnapNewObject()` or something like that; it will be easy to rename during CR). 19:26 <+bridge> [ddnet] i like `auto *pCharacter = Server()->SnapNewItem(ID);` 19:27 <+bridge> [ddnet] looks clean 19:27 <+bridge> [ddnet] as c++ can get 19:27 <+bridge> [ddnet] xd 19:27 <+bridge> [ddnet] `CNetObj_Character *pCharacter = Server()->SnapNewItem(ID);` 19:27 <+bridge> [ddnet] is this possible btw? 19:27 <+bridge> [ddnet] can it infer the type 19:27 <+bridge> [ddnet] like rust? 19:27 <+bridge> [ddnet] xd 19:27 <+bridge> [ddnet] Not the return type methinks 19:28 <+bridge> [ddnet] I also would like to hear `@Robyt3#2709` opinion from the teeworlds refactoring perspective. Would that interfere with your changes or maybe I should send PR to `teeworlds` first? 19:29 <+bridge> [ddnet] @Robyt3 19:33 <+bridge> [ddnet] imho it would be even better if int ID was a new type 19:33 <+bridge> [ddnet] and not just int 19:33 <+bridge> [ddnet] and u can somehow know it is a NETOBJTYPE_ enum 19:34 <+bridge> [ddnet] since netobjtype is not a enum used as a flag i think its fairly trivial 19:34 <+bridge> [ddnet] just make it non anonymous 19:36 <+bridge> [ddnet] that somehow goes against the design though, engine shouldn't know anything about game 19:36 <+bridge> [ddnet] one could reexport the engine functions in game code with the correct type though 19:36 <+bridge> [ddnet] I would love to have named enum classes here but it is too big change for the project. πŸ™‚ 19:36 <+bridge> [ddnet] Also you're messing up ID and Type. 19:37 <+bridge> [ddnet] `Type` is a value from `NETOBJTYPE_` anonymous enum. 19:37 <+bridge> [ddnet] `ID` is an integer with this_type instance number. 19:37 <+bridge> [ddnet] E.g. for `CNetObj_Laser` valid IDs in the mod I'm maintaining can reach hundreds. 19:37 <+bridge> [ddnet] (assuming you refer to `int Type`) 19:37 <+bridge> [ddnet] ah i guess i mixed them ye 19:37 <+bridge> [ddnet] `int Type` is now hidden / not needed for this `SnapNewObject()`. 19:38 <+bridge> [ddnet] I like it, although auto is C++11 so it can't be used on vanilla yet. I don't have any major changes that this would interfere with. 19:38 <+bridge> [ddnet] vanilla is not c++11 yet? 19:38 <+bridge> [ddnet] :monkaS: 19:38 <+bridge> [ddnet] no :feelsbadman: 19:39 <+bridge> [ddnet] I actually built https masters on top of ddnet instead of teeworlds because of this 19:39 <+bridge> [ddnet] c++98 was too annoying to work with to port https client code from ddnet to teeworlds 19:40 <+bridge> [ddnet] c++11 is now older than c++98 was when teeworlds was started 19:40 <+bridge> [ddnet] :PES4_Old: 19:41 <+bridge> [ddnet] `protocol` is a part of the game or engine? 19:41 <+bridge> [ddnet] Engine `message.h` includes `protocol.h` which includes `mapitems_ex.h` which makes the engine depending on `mapitems_ex.cpp` which is a part of game. 19:41 <+bridge> [ddnet] This ruined my attempt to clearly split engine and game libraries. πŸ˜• 19:42 <+bridge> [ddnet] `protocol` is game 19:43 <+bridge> [ddnet] ah well. engine/protocol.h is engine, build/src/game/generated/protocol.h is game 19:43 <+bridge> [ddnet] ah well. src/engine/protocol.h is engine, build/src/game/generated/protocol.h is game 19:44 <+bridge> [ddnet] Thanks, I'll try to sort this out using this information. 19:44 <+bridge> [ddnet] Thanks, I'll try to sort it out using this information. 19:44 <+bridge> [ddnet] vanilla already mixes up game and engine in IMap, as this depends on the mapitems 19:45 <+bridge> [ddnet] due to my misguided attempt at compressing tile data? 19:45 <+bridge> [ddnet] yeah, it's that transparency layer in IMap that does the uncompression 19:46 <+bridge> [ddnet] maybe that could be dropped for 0.8 again? and use proper compression like zstd or so 19:47 <+bridge> [ddnet] or the map interface has to be moved to the game 19:48 <+bridge> [ddnet] I like the IMap because all the validation can be centralised there 19:49 <+bridge> [ddnet] but switching to json map format with compressed and base64 encoded layers would make a lot of validation easier 19:49 <+bridge> [ddnet] :o 19:49 <+bridge> [ddnet] how much more would size increase with json 19:49 <+bridge> [ddnet] or maybe bson? 19:49 <+bridge> [ddnet] or msgpack 19:50 <+bridge> [ddnet] I would switch to .zip if I were to design a new format tbh 19:50 <+bridge> [ddnet] i wonder if this exists in c++ https://github.com/bincode-org/bincode 19:50 <+bridge> [ddnet] maybe json for some metadata 19:50 <+bridge> [ddnet] yeah, zip with a manifest.json or something 19:51 <+bridge> [ddnet] zip? 19:51 <+bridge> [ddnet] real zip, not gzip yeah 19:51 <+bridge> [ddnet] :o 19:51 <+bridge> [ddnet] well i guess its the most portable one 19:52 <+bridge> [ddnet] it would be cool to have a new format that is properly documented and makes creating external tools easy 19:52 <+bridge> [ddnet] idk 19:53 <+bridge> [ddnet] most importantly to me: a format that can be adjusted more easily later on 19:53 <+bridge> [ddnet] yes, zip is really widely supported 19:54 <+bridge> [ddnet] easily extended you mean? 19:54 <+bridge> [ddnet] and you can open it with standard tools 19:54 <+bridge> [ddnet] widely supported 19:54 <+bridge> [ddnet] being mod friendly would be nice 19:54 <+bridge> [ddnet] and there's precedent: docx, odt, jar are all zips πŸ˜‰ 19:54 <+bridge> [ddnet] it could be cool to discuss a format someday 19:54 <+bridge> [ddnet] yeah, adding a new field to CTile would be easy with json but very hard with a binary format 19:55 <+bridge> [ddnet] really useful to extract all images from docx files 19:55 <+bridge> [ddnet] or from a map file πŸ˜‰ 19:56 <+bridge> [ddnet] does zip use only 1 compression algorithm? 19:56 <+bridge> [ddnet] or u can choose 19:56 <+bridge> [ddnet] neverrly looked at it 19:56 <+bridge> [ddnet] i like this one tho https://www.7-zip.org/7z.html 19:57 <+bridge> [ddnet] zip can only use our current compression algorithm, I think 19:57 <+bridge> [ddnet] unfortunately 20:08 <+bridge> [ddnet] ID is a 16bit integer to be precise 20:09 <+bridge> [ddnet] wait isn't vanilla C++03? 20:10 <+bridge> [ddnet] ah, don't know the difference between '03 and '98 20:57 <+bridge> [ddnet] ``` 20:57 <+bridge> [ddnet] Run scripts/fix_style.py --dry-run 20:57 <+bridge> [ddnet] src/game/client/gameclient.cpp:725:86: error: code should be clang-formatted [-Wclang-format-violations] 20:57 <+bridge> [ddnet] m_multiplierMultiView = MapValue(maxCameraDist, minCameraDist, maxVel, minVel, tmp); 20:57 <+bridge> [ddnet] ^ 20:57 <+bridge> [ddnet] Error: Process completed with exit code 1. 20:57 <+bridge> [ddnet] ``` 20:57 <+bridge> [ddnet] Someone knows what the f problem is here? apart of naming convention 20:57 <+bridge> [ddnet] ``` 20:57 <+bridge> [ddnet] Run scripts/fix_style.py --dry-run 20:57 <+bridge> [ddnet] src/game/client/gameclient.cpp:725:86: error: code should be clang-formatted [-Wclang-format-violations] 20:57 <+bridge> [ddnet] m_multiplierMultiView = MapValue(maxCameraDist, minCameraDist, maxVel, minVel, tmp); 20:57 <+bridge> [ddnet] ^ 20:57 <+bridge> [ddnet] Error: Process completed with exit code 1. 20:57 <+bridge> [ddnet] ``` 20:57 <+bridge> [ddnet] Someone knows what the f problem is here? apart from naming convention 20:57 <+bridge> [ddnet] ``` 20:57 <+bridge> [ddnet] Run scripts/fix_style.py --dry-run 20:57 <+bridge> [ddnet] src/game/client/gameclient.cpp:725:86: error: code should be clang-formatted [-Wclang-format-violations] 20:57 <+bridge> [ddnet] m_multiplierMultiView = MapValue(maxCameraDist, minCameraDist, maxVel, minVel, tmp); 20:57 <+bridge> [ddnet] ^ 20:58 <+bridge> [ddnet] Error: Process completed with exit code 1. 20:58 <+bridge> [ddnet] ``` 20:58 <+bridge> [ddnet] Someone knows what the f problem is here? apart from naming conventions 21:01 <+bridge> [ddnet] don't dry run and see how it modifies it 21:03 <+bridge> [ddnet] so, what was it? 21:05 <+bridge> [ddnet] idk the pipeline did the check so i have to see first how i start this python thing on my system, didnt do anything in python yet x) 21:06 <+bridge> [ddnet] just run `python3 scripts/fix_style` 21:07 <+bridge> [ddnet] yea but it says "Found no clang-format 10" so i have to tell it somehow that the clang format is in another dir 21:07 <+bridge> [ddnet] or just move it, lets try that 21:07 <+bridge> [ddnet] hum, add it to the `PATH` variable 21:07 <+bridge> [ddnet] or you can `PATH=/path/to/clang/format/10 python3 scripts/fix_style.py` 21:13 <+bridge> [ddnet] the suspense is killing me now πŸ˜„ 21:13 <+bridge> [ddnet] becuase i don't see what's wrong with your formatting 21:13 <+bridge> [ddnet] i am trying!! xd 21:13 <+bridge> [ddnet] i will drop the answer here if i got it 21:14 <+bridge> [ddnet] are you on windows? 21:14 <+bridge> [ddnet] i will drop the answer here when i got it 21:14 <+bridge> [ddnet] ye 21:14 <+bridge> [ddnet] ah that's why 21:15 <+bridge> [ddnet] i've never run it on windows 21:17 <+bridge> [ddnet] im not sure you can 21:17 <+bridge> [ddnet] you would need to install the full llvm suite i guess, but that's quite big 21:18 <+bridge> [ddnet] and i can't find clang-tools for windows there 21:19 <+bridge> [ddnet] you also need clang-format 10 specifically, it doesn't work with newer versions 21:19 <+bridge> [ddnet] maybe you can try this: , it includes clang-format, not sure which version 21:19 <+bridge> [ddnet] it dates from august 2020 21:20 <+bridge> [ddnet] i can try 21:20 <+bridge> [ddnet] from 21:20 <+bridge> [ddnet] wait 21:20 <+bridge> [ddnet] last page says visual studio supports clang-format 21:20 <+bridge> [ddnet] do you use visual studio as compiler? 21:20 <+bridge> [ddnet] yes 21:21 <+bridge> [ddnet] you should try this then: 21:32 <+bridge> [ddnet] just ping me and i can clang-format the code, no need to worry about setting it up on windows 21:34 <+bridge> [ddnet] @deen 21:34 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/975843687940636692/gameclient.cpp 21:34 <+bridge> [ddnet] Thanks i almost slam my desk because the plugin chairn send only works until vs 2019 and i have 2022 21:37 <+bridge> [ddnet] i think he meant clang-format on a PR 21:37 <+bridge> [ddnet] @Vy0x2 I think deen is saying you can just PR it like that and he'll fix it up 21:37 <+bridge> [ddnet] too slow heinrich πŸ™‚ 21:38 <+bridge> [ddnet] oooh sry missunderstood that 21:41 <+bridge> [ddnet] i got a new job 21:41 <+bridge> [ddnet] i think now ill be even less active here :feelsbadman: 21:42 <+bridge> [ddnet] is it crypto though πŸ˜› 21:42 <+bridge> [ddnet] not rust related 21:42 <+bridge> [ddnet] is it blockchain though πŸ˜› 21:42 <+bridge> [ddnet] what is it? 21:43 <+bridge> [ddnet] its about PKI stuff tho 21:43 <+bridge> [ddnet] a legal certificate issuer in spain i think 21:43 <+bridge> [ddnet] oh 21:43 <+bridge> [ddnet] what are you going to do there? πŸ™‚ 21:44 <+bridge> [ddnet] develop apis and stuff 21:44 <+bridge> [ddnet] xD 21:44 <+bridge> [ddnet] mostly python 21:44 <+bridge> [ddnet] py3? ^^ 21:44 <+bridge> [ddnet] yeah xD 21:45 <+bridge> [ddnet] python 2 :justatest: 21:45 <+bridge> [ddnet] idk, if it's some gov agency ^^ 21:45 <+bridge> [ddnet] here usually the gov doesnt hire devs directly 21:45 <+bridge> [ddnet] they just hire private companies 21:46 <+bridge> [ddnet] atleast usually 21:47 <+bridge> [ddnet] can you work for the federal government if you support catalonia independence? 21:47 <+bridge> [ddnet] I'll help 10 people on how to earn $20,000 within 72 hours but you will pay me 10% of your profit when you receive it. 21:47 <+bridge> [ddnet] Note\: only interested people should apply, drop a message let's get started by clicking link 21:47 <+bridge> [ddnet] πŸ‘‡πŸ‘‡πŸ‘‡πŸ‘‡πŸ‘‡πŸ‘‡πŸ‘‡πŸ‘‡ 21:47 <+bridge> [ddnet] https://t.me/Dylanpalmer 21:47 <+bridge> [ddnet] there is no federal goverment here 21:47 <+bridge> [ddnet] @Discord Mod ^ 21:47 <+bridge> [ddnet] but yes 21:47 <+bridge> [ddnet] you can work for the local autonomy goverment 21:47 <+bridge> [ddnet] isn't spain a federation? 21:48 <+bridge> [ddnet] no lol 21:48 <+bridge> [ddnet] i wish 21:48 <+bridge> [ddnet] but local region have great autonomy though 21:50 <+bridge> [ddnet] haha 21:50 <+bridge> [ddnet] i wish 21:50 <+bridge> [ddnet] they are slowly killing the catalan language 21:50 <+bridge> [ddnet] well i dont want to talk about politics rn 21:52 <+bridge> [ddnet] Chairn i am about to delete my messages 😐 21:52 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/975848245009973258/chrome_c0TIj6ZjK2.png 21:52 <+bridge> [ddnet] :feelsbadman: 21:52 <+bridge> [ddnet] xD 21:53 <+bridge> [ddnet] i have auto trim whitespace on save on all editors 21:53 <+bridge> [ddnet] i got it working on my linux laptop in 2min 21:53 <+bridge> [ddnet] linux master race 21:55 <+bridge> [ddnet] don't forget to change visual studio option for this πŸ˜„ 21:55 <+bridge> [ddnet] oh there is one? i like that being told NOW 21:56 <+bridge> [ddnet] that's a classic one 21:57 <+bridge> [ddnet] editor.trimAutoWhitespace 21:57 <+bridge> [ddnet] `editor.trimAutoWhitespace` 21:58 <+bridge> [ddnet] clang-format is successful 😍 I will check it out, i always was busy finding those white spaces 21:58 <+bridge> [ddnet] clicking in every line to see if there is something :monkalaugh: 21:58 <+bridge> [ddnet] ouch 21:59 <+bridge> [ddnet] you also have `files.trimTrailingWhitespace` 21:59 <+bridge> [ddnet] or with sed: `s/\s*$//g` 22:00 <+bridge> [ddnet] I'll help 10 people on how to earn $20,000 within 72 hours but you will pay me 10% of your profit when you receive it. 22:00 <+bridge> [ddnet] Note\: only interested people should apply, drop a message let's get started by clicking link 22:00 <+bridge> [ddnet] πŸ‘‡πŸ‘‡πŸ‘‡πŸ‘‡πŸ‘‡πŸ‘‡πŸ‘‡πŸ‘‡ 22:00 <+bridge> [ddnet] https://t.me/Dylanpalmer 22:00 <+bridge> [ddnet] damn, faster than light heinrich 22:01 <+bridge> [ddnet] it was me even after this embarrassment :D 22:01 <+bridge> [ddnet] I'll help 10 people on how to earn $20,000 within 72 hours but you will pay me 10% of your profit when you receive it. 22:01 <+bridge> [ddnet] Note\: only interested people should apply, drop a message let's get started by clicking link 22:01 <+bridge> [ddnet] πŸ‘‡πŸ‘‡πŸ‘‡πŸ‘‡πŸ‘‡πŸ‘‡πŸ‘‡πŸ‘‡ 22:01 <+bridge> [ddnet] https://t.me/Dylanpalmer 22:02 <+bridge> [ddnet] there's a bot invasion or? 22:02 <+bridge> [ddnet] on matrix 22:02 <+bridge> [ddnet] i don't even have time to read them 22:02 <+bridge> [ddnet] I'll help 10 people on how to earn $20,000 within 72 hours but you will pay me 10% of your profit when you receive it. 22:02 <+bridge> [ddnet] Note\: only interested people should apply, drop a message let's get started by clicking link 22:02 <+bridge> [ddnet] πŸ‘‡πŸ‘‡πŸ‘‡πŸ‘‡πŸ‘‡πŸ‘‡πŸ‘‡πŸ‘‡ 22:02 <+bridge> [ddnet] https://t.me/Dylanpalmer 22:02 <+bridge> [ddnet] nooo my ez $70000 22:03 <+bridge> [ddnet] they're gone 22:11 <+bridge> [ddnet] that variable naming looks wrong 22:12 <+bridge> [ddnet] yea sorry :pepeH: 22:12 <+bridge> [ddnet] @Ryozuki https://www.reddit.com/r/ProgrammerHumor/comments/uqvbuu/i_knew_there_was_a_difference/ 22:13 <+bridge> [ddnet] @Vy0x2 check out https://wiki.ddnet.tw/wiki/Development#code_conventions 22:13 <+bridge> [ddnet] which one are you gonna be :D? 22:13 <+bridge> [ddnet] i made it some time ago 22:13 <+bridge> [ddnet] Thanks i already said here that the naming convention is off, so i already know but i am too lazy to fix it because i dont want to contribute it either 22:13 <+bridge> [ddnet] xD 22:14 <+bridge> [ddnet] i like this one as well 22:37 <+bridge> [ddnet] i like how based is international 22:37 <+bridge> [ddnet] "basΓ©" 22:37 <+bridge> [ddnet] in catalan i have seen it too 22:37 <+bridge> [ddnet] "basat" 22:37 <+bridge> [ddnet] xdd 22:37 <+bridge> [ddnet] well, latin roots 22:37 <+bridge> [ddnet] :BASED: 22:37 <+bridge> [ddnet] i was surprised to see belgium/french comics used in memes recently