00:00 < bridge_> Now it shows the text idk matrix is so bugged wtf 00:01 < bridge_> Yea that was a oopsi daisy 00:25 < bridge_> https://blog.unity.com/technology/debugging-memory-corruption-who-the-hell-writes-2-into-my-stack-2 00:25 < bridge_> 😵‍💫 00:41 < bridge_> i am surprised i never read this sooner 00:59 < bridge_> xDD 02:45 < bridge_> <0108ben> That was so confusing to read 03:47 < bridge_> what was? 03:55 < bridge_> hmmmm 03:55 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1145537097860653076/image.png 03:56 < bridge_> holy shit he did all that in 5 days? 03:56 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1145537346180218882/image.png 03:58 < bridge_> yea right 04:14 < bridge_> i want to wait more efficiently 04:15 < bridge_> ```cpp 04:15 < bridge_> while(pUserData->GetJobStatus() != CFileLoadJob::FILE_LOAD_JOB_STATUS_RUNNING) {} 04:15 < bridge_> ``` 04:15 < bridge_> this works smoothly but i think the cpu usage is not ideal 04:15 < bridge_> metrics are worse when i yield though 04:15 < bridge_> ```cpp 04:15 < bridge_> while(pUserData->GetJobStatus() != CFileLoadJob::FILE_LOAD_JOB_STATUS_RUNNING) { 04:15 < bridge_> std::this_thread::yield(); 04:15 < bridge_> } 04:15 < bridge_> ``` 04:15 < bridge_> metrics are worse when i yield though 04:15 < bridge_> ```cpp 04:15 < bridge_> while(pUserData->GetJobStatus() != CFileLoadJob::FILE_LOAD_JOB_STATUS_RUNNING) { 04:15 < bridge_> std::this_thread::yield(); 04:15 < bridge_> } ``` 04:16 < bridge_> this is w/o yield 04:16 < bridge_> this is with 04:16 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1145542312345223218/image.png 04:16 < bridge_> i could try and turn the status variable into a condition variable ig 04:16 < bridge_> and wait on that 04:16 < bridge_> maybe the stl knows better 04:45 < bridge_> it's using like 30% of my cpu peak when yielding lol 04:50 < bridge_> 10 on upstream 04:51 < bridge_> hmm 05:02 < bridge_> metrics are worse when i yield though 05:02 < bridge_> ```cpp 05:02 < bridge_> while(pUserData->GetJobStatus() != CFileLoadJob::FILE_LOAD_JOB_STATUS_RUNNING) { 05:02 < bridge_> std::this_thread::yield(); 05:02 < bridge_> } ``` 05:02 < bridge_> ```cpp 05:02 < bridge_> while(pUserData->GetJobStatus() != CFileLoadJob::FILE_LOAD_JOB_STATUS_RUNNING) {} 05:03 < bridge_> ``` 05:03 < bridge_> this works smoothly but i think the cpu usage is not ideal 05:34 < bridge_> and still dealing with this shit on mingw 05:34 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1145562030829490196/image.png 05:34 < bridge_> cool backtrace bro 05:39 < bridge_> surely you are joking 05:39 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1145563322477973584/image.png 07:06 < bridge_> does graphics get destructed before components do? 07:25 < bridge_> No, otherwise the components can't unload properly 07:25 < bridge_> that's what i thought 07:25 < bridge_> but i'm getting a bogus ptr from Graphics() i think during CSkins dtor 07:26 < bridge_> i could try OnShutdown 07:26 < bridge_> True, destructors are probably more unpredictable. What I said should apply to OnShutdown 07:30 < bridge_> DDNet.exe has finished with exit code 0. 07:30 < bridge_> 😌 07:37 < bridge_> looking at the call stack anyway i think it would get deleted first or during the same step (making things unpredictable) because IGraphics is an IInterface, as is IEngine which holds client which holds the components. and the kernel just goes through the interfaces and deletes 07:38 < bridge_> well actually, it does seem to have an order to it 07:38 < bridge_> ``` 07:38 < bridge_> // delete interfaces in reverse order just the way it would happen to objects on the stack 07:38 < bridge_> ``` 07:38 < bridge_> wonder why it crashes then. o_O 07:38 < bridge_> doesn't matter. onshutdown works 07:48 < bridge_> what's up with the REQUIRES macro 08:49 < bridge_> https://clang.llvm.org/docs/ThreadSafetyAnalysis.html 09:35 < bridge_> so it’s just letting clang thread safety analysis know that it needs something of the type PROVIDED 09:35 < bridge_> seems cool 10:49 < bridge_> yes, it's good to have compiler check as much as possible statically 11:51 < bridge_> (rust) 11:53 < bridge_> I need to get the coordinates of my tee from the code (I mean the client, not the north), who knows how to do this? 12:53 < bridge_> https://fortran-lang.org 13:35 < bridge_> isnt fortran that one impossible language or 13:42 < bridge_> I saw it on my ios element 14:28 < bridge_> https://www.youtube.com/watch?v=Xzv84ZdtlE0 14:28 < bridge_> good video imho 14:29 < bridge_> destroyer of worlds... kiinda kinda terraria reference. just kinda 14:30 < bridge_> terraria didnt exist back then 14:31 < bridge_> maybe its in reverse 14:31 < bridge_> hmm, serverlist is empty currently, and #bot-cmds doesn't respond 14:31 < bridge_> terraria is referencing this 14:31 < bridge_> lol ye 14:31 < bridge_> http://ddstats.org/ doesnt load for me 14:31 < bridge_> ddnet.org is down too 14:31 < bridge_> i guess cuz it cant reach master 14:32 < bridge_> @heinrich5991 @deen master server is down 14:32 < bridge_> i can still connect to server using direct ip: ger2.ddnet.org:8xxx 14:32 < bridge_> wait 14:32 < bridge_> maybe its cloudflare? 14:32 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1145697452318543882/image.png 14:32 < bridge_> idk 14:33 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1145697599240818838/image.png 14:33 < bridge_> xd my web wasnt prepared for a down master 14:33 < bridge_> But https://wiki.ddnet.org is reachable (also on cloudflare) 14:33 < bridge_> true 14:34 < bridge_> i bet its ddnet vps running out of storage 14:34 < bridge_> if they use hetzner it shouldnt be an issue cuz i also use hetzner 14:34 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1145697859916804116/image.png 14:34 < bridge_> (i mean an issue with the hoster) 14:34 < bridge_> so cloudflare is working 14:34 < bridge_> this gave me the idea to make a status page 14:34 < bridge_> status.ddstats.org soon 14:35 < bridge_> @DDNet is offline 14:36 < bridge_> #announcements 14:37 < bridge_> ah, master is back i think 14:41 < bridge_> Why does DDNet take forever to close now '-' 14:48 < bridge_> what are all ddnet masters? 14:49 < bridge_> if masters work behind cloudflare i can offer to host 1 in my server 14:49 < bridge_> there is no multi-master support, so the Chinese master clones the master master 14:50 < bridge_> We have an issue/discussion for that I think, we should cancel all open https requests when exiting client 14:50 < bridge_> Ok, the resolution seems to be: [use ElementX](https://github.com/mautrix/discord/issues/117#issuecomment-1695456182). Not very satisfying, but better than nothing I guess. 14:50 < bridge_> 14:50 < bridge_> * https://apps.apple.com/us/app/element-x-secure-messenger/id1631335820 14:50 < bridge_> * https://play.google.com/store/apps/details?id=io.element.android.x 14:59 < bridge_> U can load balance with cloudflare but doubt it is free 15:00 < bridge_> So if anyone wants to contribute 15:00 < bridge_> Maybe that's the way 15:00 < bridge_> I even got a notification, but was asleep 😮 15:00 < bridge_> Never sleep :giga_chad: 15:00 < bridge_> https://github.com/ddnet/ddnet/issues/5156 15:01 < bridge_> this is the way 15:01 < bridge_> need this ^ 15:02 < bridge_> That's what is currently on right ? 15:03 < bridge_> Ah I saw the discussion 15:03 < bridge_> what do you mean, "currently on"? 15:03 < bridge_> I didn't see the discussion with the chinese master 15:04 < bridge_> the chinese master is currently just a mirror of master1 15:04 < bridge_> Yeah 15:17 < bridge_> https://ddstats.org/status 15:17 < bridge_> rudimentary xd 15:29 < bridge_> it'd be interesting to see which URL you're requesting 15:29 < bridge_> https://github.com/ddnet/ddnet/tree/baffa8d817f5fe73c53603884a15ffa5d29c7341/src/masterping 15:30 < bridge_> this tool can be used to check whether masterserver registering works 15:30 < bridge_> it's what powers my alerts 15:34 < bridge_> added urls 17:16 < bridge_> https://www.thecodedmessage.com/posts/c++-papercuts/ 17:21 < bridge_> nice 17:22 < bridge_> https://github.com/danog/php-tokio 17:23 < bridge_> bozo 17:28 < bridge_> @deen 17:28 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1145741813727113398/image.png 17:29 < bridge_> I looked into this last night while I was dev’ing, I though it was a me issue but masters were up & my client wasn’t loading. Said it was a cert load failure. I think the server browser job doesn’t end in this case 17:29 < bridge_> someone do an iceberg for ddnet 17:29 < bridge_> Made me aware that I need to add app close behavior to my thing tho 17:30 < bridge_> 😃 17:31 < bridge_> true would be nice 17:33 < bridge_> I pushed more to my doohickey. It’s good but I wonder if I can increase performance by waiting smarter on the variable on the other thread instead of busy waiting 17:44 < bridge_> I'm at depth 5 for the last couple years 17:45 < bridge_> Need to go deeper 17:47 < bridge_> https://pbs.twimg.com/media/EL34xNGXkAE6cnJ?format=jpg 17:47 < bridge_> Stuck at level 2 on this one 😄 17:48 < bridge_> I think I did level 4 once 😅 17:48 < bridge_> do we start at 0 or 1 17:48 < bridge_> I meant 4 = taboo ctf tactics 17:49 < bridge_> I like the "nmapping /0 to find challs early" 😄 17:51 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1145747412091142154/image.png 17:51 < bridge_> I started at 1 17:52 < bridge_> you had me until c++0x concepts 17:52 < bridge_> this was written as propaganda i can tell 17:52 < bridge_> https://suricrasia.online/iceberg/ 17:53 < bridge_> @ryozuki do you also have it that u have to run cargo clean very often after doing git pull, because rust-analyser is too stupid xd 17:53 < bridge_> 17:53 < bridge_> do you know a workaround other then rebuilding? 17:53 < bridge_> 17:53 < bridge_> normal building does not help 17:53 < bridge_> it shows errors 17:53 < bridge_> I think I've explored this entire iceberg 17:53 < bridge_> hmm idk 17:55 < bridge_> too bad i cant find a rust iceberg 17:55 < bridge_> its just the game 17:56 < bridge_> Is there a reason we still have `gfx_asyncrender_old`? Seems like it causes the client to be rendered only when the graphics are idle. Looks like double-clicking behaves somewhat differently depending on this config variable: https://github.com/ddnet/ddnet/issues/7052#issuecomment-1695933782 17:57 < bridge_> what value do u want it to be? 17:57 < bridge_> Good question, does it even make any difference besides this one bug? 17:58 < bridge_> well for gameplay i'd set it to 1 17:58 < bridge_> and for demo recording it must be 0 17:58 < bridge_> demo -> video 17:58 < bridge_> I've used `0` most of the time it seems, whereas marmare used `1` 17:58 < bridge_> 1 is also the default 17:58 < bridge_> 0 + vsync = huge delays 17:59 < bridge_> The description also doesn't exactly make clear what is does: `Do rendering async from the the update` 17:59 < bridge_> well it's not directly wrong 17:59 < bridge_> just not directly right xD 18:00 < bridge_> it allows the updates to happen independent of the gfx updates independent of the refresh rate set 18:00 < bridge_> new to me: `#include ` (forward decls for `#include `, zapcc compiler (seems to be just a caching compiler?), `std::remove` (wtf!), rvalue references are lvalues (TIL), initialization matrix (what's this?), the for loop is broken (what's this?), const std::string bitand (wtf ^^), herbceptions (interesting) 18:01 < bridge_> So is there any reason to set it to `0` except internally when rendering a demo? 18:01 < bridge_> If there isn't, then we don't need the variable 18:01 < bridge_> there is a usecase, i can illustrate 18:03 < bridge_> if you set 18:03 < bridge_> gfx_refresh_rate 0 18:03 < bridge_> async_render_old 0 18:03 < bridge_> vsync 0 18:03 < bridge_> 18:03 < bridge_> but use cl_refresh_rate x > 0 18:03 < bridge_> 18:03 < bridge_> then that basically means you always want to wait for the GPU to finish the current execution before continuing resulting in cl_refresh_rate being pretty accurate for FPS target 18:03 < bridge_> 18:03 < bridge_> which lowers your CPU usage 18:03 < bridge_> 18:03 < bridge_> which noby wanted deperately xD 18:04 < bridge_> I see. I'll try to update the description though 18:04 < bridge_> yes, but for input stuff, can you tell what exactly causes it? 18:05 < bridge_> i've seen this years ago, but then it was fixed some day 18:06 < bridge_> Don't know what exactly causes this. I think I also just randomly got the bug with `gfx_asyncrender_old 1`, so maybe it's a very precise timing for the bug with `gfx_asyncrender_old 1` 18:06 < bridge_> would it maybe make sense to queue inputs for the UI 18:06 < bridge_> 18:06 < bridge_> the biggest problem is, that it's really weird that the UI relies on Input during a gfx cycle 18:07 < bridge_> Seems like the release key press from the double click consistently goes through with `gfx_asyncrender_old 0` but not most of the time with `gfx_asyncrender_old 1` 18:07 < bridge_> Most of the input handling is really messed up TBH 18:07 < bridge_> We mostly poll if a certain key was pressed in a specific update frame 18:07 < bridge_> mh ok 18:08 < bridge_> egui uses a queue for example 18:08 < bridge_> Everyshould should go though the event listener if this were to be done cleanly 18:08 < bridge_> yeah 18:08 < bridge_> Everything should go though the event listener if this were to be done cleanly 18:21 < bridge_> "Do updates independent from rendering and refresh rate" 18:21 < bridge_> i hardly get it 18:22 < bridge_> a user even less 18:22 < bridge_> xd 18:22 < bridge_> well that's what it does xd 18:22 < bridge_> what updates 18:22 < bridge_> the banana updates 18:22 < bridge_> the alternative is putting a book into the description 18:22 < bridge_> explaining what input updates are 18:22 < bridge_> oh 18:22 < bridge_> and what gfx cycles are 18:22 < bridge_> input updates! 18:23 < bridge_> just put input updates then 18:23 < bridge_> im guessing it doesnt have to wait until the refresh wait until it updates game stuff like tee position and all that stuff 18:23 < bridge_> well and physics updates 18:23 < bridge_> and network updates 18:23 < bridge_> non-graphic updates 18:23 < bridge_> xd 18:23 < bridge_> @robyt3 18:23 < bridge_> well would be fair 18:23 < bridge_> gfx is threaded regardless of this right 18:24 < bridge_> Do non-graphics related updates independent of graphics related updates xd 18:24 < bridge_> 18:24 < bridge_> almost looks like u could use a parenthesis here as if it was math 18:26 < bridge_> "Finish rendering before update" 18:26 < bridge_> again 18:26 < bridge_> xd 18:26 < bridge_> Wait for the GPU to finish the current execution before doing a new cycle xddd 18:27 < bridge_> i canceled the merge 18:27 < bridge_> the problem is, it's not even correct i think 18:27 < bridge_> `gfx_finish` does nothing with Vulkan 18:27 < bridge_> With OpenGL is makes rendering slow though, as expected 18:27 < bridge_> yes 18:27 < bridge_> it doesnt exist 18:28 < bridge_> i think it was removed in opengl 4 generally 18:28 < bridge_> maybe xd 18:28 < bridge_> Comment your suggestions on the PR so I don't forget 18:29 < bridge_> I knew this would cause bike-shedding 18:29 < bridge_> ok i add the second 18:29 < bridge_> this isnt bike shedding 18:29 < bridge_> ```c++ 18:29 < bridge_> (!AsyncRenderOld || m_pGraphics->IsIdle()) && 18:29 < bridge_> (!GfxRefreshRate || (time_freq() / (int64_t)g_Config.m_GfxRefreshRate) <= Now - LastRenderTime) 18:29 < bridge_> ``` 18:29 < bridge_> 18:29 < bridge_> if asyncrender == 0 and (no refresh rate is set OR we are in a refresh cycle) DO 18:29 < bridge_> if (asyncrender == 1 and graphics are idle) and (no refresh rate is set OR we are in a refresh cycle) DO 18:29 < bridge_> its being proper 18:29 < bridge_> so the refresh part is actually not correct anyway 18:29 < bridge_> Rewrite description in Lojban, nice 18:30 < bridge_> whats Lojban 18:30 < bridge_> https://en.wikipedia.org/wiki/Lojban 18:31 < bridge_> TIL 18:36 < bridge_> @robyt3 i shared this at my work 18:36 < bridge_> someone mentioned this https://en.wikipedia.org/wiki/Ithkuil 18:36 < bridge_> looks like Ravies new pfp 18:38 < bridge_> If you squint it looks like a very abstract representation of a tee 18:39 < bridge_> did anybody know about https://en.wikipedia.org/wiki/Petri_net 18:39 < bridge_> Yes 18:39 < bridge_> anyone noticed that discord lately always highlights the channels 18:39 < bridge_> 18:39 < bridge_> as if you hover them with your mouse 18:39 < bridge_> > Petri nets were invented in August 1939 by Carl Adam Petri—at the age of 13—for the purpose of describing chemical processes. 18:39 < bridge_> ok 18:39 < bridge_> 13y old made this 18:40 < bridge_> time to retire 18:40 < bridge_> didnt that always happen 18:40 < bridge_> do you also know the reason why? 18:40 < bridge_> i find it very distracting and creepy xd 18:40 < bridge_> to know what channel you're hovering over 18:40 < bridge_> bruv 18:40 < bridge_> well i am not hovering them xD 18:41 < bridge_> oh wait are you talking about what channel you're IN? 18:41 < bridge_> no 18:41 < bridge_> it does that over all channels, from top to bottom 18:41 < bridge_> for like 1 second total (for all) 18:41 < bridge_> like a wave xd 18:41 < bridge_> ok well it might be just you 18:41 < bridge_> i've seen that on mobile and pc now 18:42 < bridge_> Maybe bug maybe easter egg 18:42 < bridge_> I'm the chosen one 18:42 < bridge_> epic 18:42 < bridge_> That's why some developers have a "no easter egg" policy 18:42 < bridge_> boring devs 18:43 < bridge_> we need to add easter eggs to ddnet 18:43 < bridge_> we have at least one xd 18:43 < bridge_> when u have a potato pc 18:43 < bridge_> DDNet doesn't even add literal easter eggs to maps at Eastern, like Teeworlds does 18:43 < bridge_> i think we had a april fools event 18:43 < bridge_> captured clearly here 18:44 < bridge_> we should add a command "javascriptify" that limits fps to 24 18:44 < bridge_> ez easter egg 18:45 < bridge_> we should add a command called "rustify" where the game doesnt run because it panics 18:46 < bridge_> ?? 18:46 < bridge_> xd 18:46 < bridge_> javify = allocate 5gb of ram 18:46 < bridge_> or more 18:46 < bridge_> https://twitter.com/gf_256/status/1285217798642454531 why would you need to capture a global variable anyway? and why am I looking at twitter memes? 18:47 < bridge_> nittet.net 18:47 < bridge_> nitter.net 18:47 < bridge_> my twitter account is banned xD 18:50 < bridge_> epic 18:50 < bridge_> too much furries right 18:51 < bridge_> :pepeW: 18:51 < bridge_> more: https://twitter.com/gf_256/status/1624082143294136323 18:51 < bridge_> ```c++ 18:51 < bridge_> $ cat loop.cpp 18:51 < bridge_> #include 18:51 < bridge_> 18:51 < bridge_> int main() { 18:51 < bridge_> while(1) 18:51 < bridge_> ; 18:51 < bridge_> } 18:51 < bridge_> 18:51 < bridge_> void unreachable() { 18:51 < bridge_> std::cout << "Hello world!" << std::endl; 18:51 < bridge_> } 18:51 < bridge_> $ clang++ loop.cpp -O1 -Wall -o loop 18:51 < bridge_> $ ./loop 18:51 < bridge_> Hello world! 18:51 < bridge_> ``` 18:51 < bridge_> wtf 😄 18:51 < bridge_> i've literally done nothing xdd 18:51 < bridge_> probably infinite side-effect-free loops banned in C++? 18:51 < bridge_> fake 18:51 < bridge_> it loops for me 18:52 < bridge_> oh 18:52 < bridge_> i've heard of that before 18:52 < bridge_> it works 18:52 < bridge_> lol 18:52 < bridge_> O1 makes it work 18:52 < bridge_> without it it loops 18:52 < bridge_> I literally copy-pasted it from my console ^^ 18:53 < bridge_> yeye 18:53 < bridge_> i put o1 instead of O1 18:53 < bridge_> in my firs try xd 18:55 < bridge_> i read its 18:55 < bridge_> linker UB 18:55 < bridge_> the linker optimized out the main 18:55 < bridge_> but idk if true 18:56 < bridge_> https://godbolt.org/z/j7jW4EqYn 18:57 < bridge_> looks like the compiler just decided that main is UB and didn't emit any assembly for it 😄 18:57 < bridge_> xd 18:59 < bridge_> TIL about odr- 18:59 < bridge_> xd 19:00 < bridge_> https://en.wikipedia.org/wiki/One_Definition_Rule 19:00 < bridge_> well i knew but not the name i guess 19:00 < bridge_> this just came into my head 19:00 < bridge_> does ddnet even have a proper code style 19:01 < bridge_> ye 19:01 < bridge_> https://wiki.ddnet.org/wiki/Development#Code_conventions 19:01 < bridge_> i once saw a project with this thing on it 19:01 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1145765138960502855/image.png 19:02 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1145765242773708850/image.png 19:02 < bridge_> black is a python formatter 19:02 < bridge_> we use clang format 19:02 < bridge_> for c++ code 19:02 < bridge_> ah 19:13 < bridge_> main is UB, it lacks return statement 19:58 < bridge_> doesn't need one, never exits the function 20:01 < bridge_> ah true 20:38 < bridge_> @heinrich5991 aha! 20:38 < bridge_> i found 20:38 < bridge_> https://github.com/llvm/llvm-project/issues/60622 20:39 < bridge_> interesting convo 21:09 < bridge_> “Over-aggressively optimization” 22:17 < bridge_> @learath2 22:17 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1145814545399545856/41etx3lwoukb1.webp 22:18 < bridge_> RTL 22:30 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1145817656461643903/jm4557db2vkb1.jpg 22:30 < bridge_> new way 22:32 < bridge_> Forbidden indentation 22:40 < bridge_> Obviously the first option 22:41 < bridge_> That's the only correct way 22:46 < bridge_> First one for everything but functions and classes + no huddled else 22:47 < bridge_> türksün dimi 22:47 < bridge_> it already triggers me that the last brace has an indentation 22:47 < bridge_> Didn't even spot that ew 22:48 < bridge_> @learath2 yeni çeviriyi ben yaptım göz attın mı? 22:49 < bridge_> @h.kaan english only in #developer 22:49 < bridge_> Görmedim, bakiim bi, and yep english only here 😄 22:50 < bridge_> I'm sorry 22:51 < bridge_> you better be :AsukaGun: 22:52 < bridge_> #7060 ? 22:52 < bridge_> https://github.com/ddnet/ddnet/pull/7060 22:52 < bridge_> yes 23:03 < bridge_> 💀 what are you writing 23:04 < bridge_> - L1133, L1136, L1139 are missing colons. 23:04 < bridge_> - Typo on L1157 UPD -> UDP 23:04 < bridge_> - L1175 points -> puan? 23:04 < bridge_> - L1241, context needs to be checked, should probably be "oyuncu" again 23:04 < bridge_> - L1335 and co, should probably be "kesit" or some other word, "kesim" doesnt quite make sense to me 23:04 < bridge_> - L1422 veri tabanı birleşik olması lazım 23:04 < bridge_> - L1475 might be too long, need to check 23:05 < bridge_> Skimmed over it real quick, these are the issues I saw. Yoj can take a look or I can take a look later. Thank you for your contribution 23:05 < bridge_> s\/Yoj/You/ 23:05 < bridge_> Tysm, will look into it again 23:29 < ChillerDragon> faak gh 2fa?