00:22 < bridge> <cellegenrih> https://docs.google.com/spreadsheets/d/1o-aLpWK40SrlBuZZrZV_w4heL96klRNAImlApOlvmss/edit?usp=sharing
00:23 < bridge> <cellegenrih> Welp, whoever wants to see my progress on my client, feel free to look around xd
00:23 < bridge> <devinci24> Does someone know if the cl_smooth_spectating_time will be on by default?
00:23 < bridge> <devinci24> Because for me it was, and I really think it a bad idea.
00:23 < bridge> <devinci24> It may be cool for cinematics/videos and stuff, but it just makes the game unplayable in certain situations (spectating t0 while hh/fly for example).
00:23 < bridge> <devinci24> I don't think it's a really great idea to make new players get used to it...
00:24 < bridge> <devinci24> maybe @kebscs you may know?
00:25 < bridge> <jxsl13> Teegaley ;0
00:25 < bridge> <jxsl13> Teegalay ;0
00:25 < bridge> <cellegenrih> :justatest: 👍
00:25 < bridge> <cellegenrih> fixed
00:26 < bridge> <jxsl13> add that to your first post
00:26 < bridge> <cellegenrih> I might share videos via Youtube and only allow links to be visible in the Google Spreadsheet for consistency
00:26 < bridge> <jxsl13> in the thread
00:27 < bridge> <jxsl13> ah, you did post it there
00:28 < bridge> <cellegenrih> I somewhat pasted it in the front
00:28 < bridge> <cellegenrih> anyway, more features will come to the sheet tomorrow
00:28 < bridge> <kebscs> its on by default and only smooth when youre swapping between tees in spectator
00:28 < bridge> <kebscs> so doesnt affect gameplayt
00:28 < bridge> <kebscs> so doesnt affect gameplay
00:29 < bridge> <devinci24> it doesn't affect gameplay for novice players
00:29 < bridge> <devinci24> it makes t0 unplayable for brutal maps
00:30 < bridge> <devinci24> I really don't think it's a great idea to let it on by default.
00:30 < bridge> <devinci24> Like new features that do not change the gameplay are okay, but this one does change it.
00:30 < bridge> <kebscs> i dont see how it changes it
00:33 < bridge> <devinci24> well, I'll give you what are for me the 2 most common scenarios:
00:33 < bridge> <devinci24> 1. you are speedrunning, parts are far away, and you need to spectate your teamate... Oh well.
00:33 < bridge> <devinci24> 2. you are are in t0 doing some hh/fly and want to know how the rest of the team is doing by spectating some specific player. You can't stall in hh/fly anymore. (This one may be only me tho).
00:33 < bridge> <devinci24> 
00:33 < bridge> <devinci24> And it overall just slows gameplay. It's not purely visual
00:34 < bridge> <jxsl13> makes sense for a noob like me
00:37 < bridge> <kebscs> its 0.3s at most i think, less if theyre closer
00:38 < bridge> <kebscs> can be disabled if thats a difference
08:25 < bridge> <milkeeycat> does anyone know where is `syscall` function defined in source code :justatest: ?
08:25 < bridge> <milkeeycat> ```
08:25 < bridge> <milkeeycat> // from /usr/include/unistd.h
08:25 < bridge> <milkeeycat> extern long int syscall (long int __sysno, ...) __THROW;
08:25 < bridge> <milkeeycat> ```
08:25 < bridge> <milkeeycat> does anyone know where is `syscall` function defined in source code :justatest: ?
08:25 < bridge> <milkeeycat> ```c
08:25 < bridge> <milkeeycat> // from /usr/include/unistd.h
08:25 < bridge> <milkeeycat> extern long int syscall (long int __sysno, ...) __THROW;
08:25 < bridge> <milkeeycat> ```
08:38 < bridge> <milkeeycat> Found it
10:19 < bridge> <kollpotato> hi developas
10:20 < bridge> <Jupstar ✪> hello guy that thinks he is a minion and talks like that
10:20 < bridge> <Jupstar ✪> what's on your heart today
10:21 < bridge> <milkeeycat> new day, new segfault when try to run 5 lines program :saddo:
10:27 < bridge> <kollpotato> hi developa that thinks he is from jupiter
10:27 < bridge> <kollpotato> bananas
10:30 < bridge> <kollpotato> wbu?
10:32 < bridge> <Jupstar ✪> I am thinking about random stuff
10:41 < bridge> <tsfreddie> 🎲
11:18 < bridge> <kekomonter> Use google docs as todo list 💀
11:21 < bridge> <01000111g> i will test this this evening. If it is default it should be turned off. I get that its beautiful, but 0.3s is already 10% of freeze time,  i need to move my camera instantly too
12:48 < bridge> <milkeeycat> it wasn't correct after all, in certain cases it flips an expression and instead of `10/5` does `5/10` xd
12:56 < bridge> <Deleted User> translate to russ language
12:56 < bridge> <Deleted User> https://cdn.discordapp.com/attachments/293493549758939136/954023931495465030/unknown.png?ex=6700a4c6&is=66ff5346&hm=fc0548635604a0b4da18cc69a38e4c146a7b105780616a1c8daf5809b4dec28c&
13:03 < bridge> <justniceasalways> What about adding sending the client language to the server? Is there any problems why this still doesnt exist?
13:11 < bridge> <ryozuki> https://cdn.discordapp.com/attachments/293493549758939136/1291719367331020811/ics9v7shjlsd1.png?ex=67011ee8&is=66ffcd68&hm=9dc15e88533e4de56831cb4be7f0c152233f6621c932d196f369caeb0f512800&
13:11 < bridge> <ryozuki> linux release
13:15 < bridge> <meloƞ> :poggers2: :poggers2:
13:54 < bridge> <zhn> why do you need that
13:55 < bridge> <animepdf> hacky workaround: check player's flag
13:56 < bridge> <zhn> hacky workaround: add /language <v>
14:00 < bridge> <justniceasalways> Useful for server localizations
14:01 < bridge> <learath2> There is an issue for it on github. We basically want it the other way around. The server sends just a placeholder and the client displays it in their own languag
14:01 < bridge> <learath2> There is an issue for it on github. We basically want it the other way around. The server sends just a placeholder and the client displays it in their own language
14:02 < bridge> <justniceasalways> k, thanks for reply
14:03 < bridge> <justniceasalways> But why not the client send its language? It would be useful for modifications
14:11 < bridge> <zhn> you can do it manually + since ddnet doesn't have its own implementation i guess you need to provide one to move further
14:11 < bridge> <clonnexkid> can anyobe give a good sound for ddnet
14:12 < bridge> <zhn> placeholder?
14:15 < bridge> <justniceasalways> i can use ASN, but it would be nice if there was language sent by client
14:17 < bridge> <justniceasalways> i can use ASN for automatic language detection, but it would be nice if there was language sent by client
14:17 < bridge> <zhn> why not to use good old /language xd
14:17 < bridge> <zhn> also you need to support older clients i believe, you will need to handle it anyway
14:17 < bridge> <justniceasalways> New players dont know about this command
14:18 < bridge> <justniceasalways> I dont think it's a big problem
14:18 < bridge> <zhn> broadcast it as you do with /register and /login lol
14:19 < bridge> <zhn> id less be annoyed with entry broadcast for /language
14:19 < bridge> <justniceasalways> still some problems with it
14:20 < bridge> <justniceasalways> what i said it's just an idea
14:20 < bridge> <learath2> Something like `{{server.join_team%Learath2%60}}` which the client would show as `Learath2 has joined team 60`
14:20 < bridge> <zhn> its good idea, it was discussed even, i thought you need a solution in first place
14:20 < bridge> <zhn> my bad
14:20 < bridge> <Jupstar ✪> wtf xd
14:20 < bridge> <zhn> ehm, what about mods?
14:20 < bridge> <justniceasalways> :brownbear:
14:21 < bridge> <zhn> should server provide placeholder list and all the languages supported
14:21 < bridge> <learath2> Or whatever other format you like. I'm just thinking out loud
14:22 < bridge> <Jupstar ✪> i'd not send it as string at all, but as proper events.
14:22 < bridge> <Jupstar ✪> 
14:22 < bridge> <Jupstar ✪> But anyway, i think we could send the client language id
14:22 < bridge> <Jupstar ✪> doesn't sound too bad
14:22 < bridge> <learath2> Don't think it was ever considered. Check out the issue, it's been years, since these were discussed
14:22 < bridge> <Jupstar ✪> can't satisfy all needs anyway
14:24 < bridge> <learath2> To be fair, a lot of the events already exist anyway. Those could be moved over whenever, but every single one you change from a server message to event triggered local message requires a version gate
14:25 < bridge> <zhn> breaking protocol changes when :justatest:
14:25 < bridge> <learath2> About language id, I believe it can be sent without issue. Make a github issue about it so we can see if someone comes up with a problem
14:25 < bridge> <Jupstar ✪> Yeah it's defs a mess xd
14:26 < bridge> <zhn> i wonder how 0.7 came up with such structure
14:26 < bridge> <learath2> I mean never unless we need to?
14:26 < bridge> <zhn> :feelsbadman:
14:26 < bridge> <learath2> Why would you break the protocol when we have non-breaking extensions to every part of the protocol?
14:27 < bridge> <avolicious> Just send the client language as `language@ddnet.org` with a 5 characters like `de-de` or some standard 😄
14:27 < bridge> <zhn> because its already a mess
14:27 < bridge> <zhn> 0.6 protocol is also mess, but it was small atleast
14:27 < bridge> <learath2> I must be misunderstanding what you mean by "protocol"
14:28 < bridge> <zhn> netmsg*
14:28 < bridge> <zhn> not the way client connects, responds, its all solid
14:28 < bridge> <zhn> i mean the messages themselves
14:28 < bridge> <learath2> What is your issue with them anyway? If you were allowed to break anything, what would you break?
14:28 < bridge> <ryozuki> map format
14:29 < bridge> <0xfaulty> https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes
14:29 < bridge> <avolicious> I dont want country codes 😄 I want language codes
14:29 < bridge> <avolicious> Like https://en.wikipedia.org/wiki/IETF_language_tag
14:30 < bridge> <avolicious> Countries can have multiple official languages ( Switzerland for example )
14:33 < bridge> <zhn> 1. clstartinfo clchangeinfo are self replicating
14:33 < bridge> <zhn> 2. svextraprojectile is redudant(?)
14:33 < bridge> <zhn> 3. input is a system message? why?
14:33 < bridge> <zhn> 4. ready/conready are self replicating
14:33 < bridge> <zhn> 5. mapdata contains the same crc of map, why?
14:33 < bridge> <zhn> 6. and another questions that im not able to recall
14:35 < bridge> <zhn> im not familiar with snap system at all but why it has to be system message and why do they divide in snap and snapsingle xd
14:39 < bridge> <learath2> Most of these are redundancies left from the past. Is it really worth breaking anything for these?
14:44 < bridge> <zhn> these redundancies came from 0.5 to 0.6 and from 0.6 to 0.7
14:44 < bridge> <zhn> although theres still a comment in protocol.h // TODO: fix in 0.6 xd
14:45 < bridge> <zhn> i didn't check ddnet messages so i can't yap about them right now, i believe it worths to be reviewed at least
14:47 < bridge> <learath2> They don't block any development is my point. If they were being an issue it would be worth breaking protocol, but there is pretty much nothing we can't do because these exist
14:51 < bridge> <zhn> its not only about protocol though, even this language packet thing needs to be version gated, only because ddnet should be back compat in all instances
15:11 < bridge> <learath2> That part is more up to discussion. I just wanted to say the protocol isn't really limiting development
15:38 < bridge> <Jupstar ✪> how is your 0.5 port going? :lol:
15:41 < bridge> <Jupstar ✪> @alw5 r u a coder btw?
15:41 < bridge> <Jupstar ✪> I probably seen you before, but cannot really connect your rn
15:41 < bridge> <robyt3> https://www.ietf.org/rfc/rfc3066.txt is already used in the code to detect the initial language
15:45 < bridge> <alw5> not a contributor of ddnet
15:46 < bridge> <alw5> if thats what ur askin
15:46 < bridge> <alw5> and no to the second one
15:46 < bridge> <alw5> im new to ddnet
15:48 < bridge> <Jupstar ✪> I dunno, but maybe what programming languages you like and stuff like that xd
15:48 < bridge> <alw5> i know a bit of python js and c++
15:49 < bridge> <alw5> havent really made anything cool tho
15:53 < bridge> <animepdf> graphical pros' help needed || @jupeyy_keks @robyt3  ||🥹
15:54 < bridge> <Jupstar ✪> with what exactly?
15:54 < bridge> <Jupstar ✪> how many fps u have now compared to previously
15:54 < bridge> <javasenior1337> is_bundled(SSP_BUNDLED "${SSP_LIBRARY}")
15:54 < bridge> <javasenior1337>   if(NOT SSP_BUNDLED)
15:54 < bridge> <javasenior1337>     message(FATAL_ERROR "could not find ssp paths")
15:54 < bridge> <animepdf> how do I metric fps in meny
15:54 < bridge> <Jupstar ✪> I am honestly someone that doesn't care about GUI performance too much, if it's not a disaster xd
15:54 < bridge> <javasenior1337> whaе?
15:54 < bridge> <Jupstar ✪> ctrl shift d
15:55 < bridge> <Jupstar ✪> I am honestly someone that doesn't care about GUI performance (in menu) too much, if it's not a disaster xd
15:55 < bridge> <animepdf> dropped from 400 to 70
15:55 < bridge> <Jupstar ✪> oh uff xd
15:55 < bridge> <animepdf> 💀
15:55 < bridge> <Jupstar ✪> in release mode?
15:56 < bridge> <animepdf> oh right, forgot about optimizations, 1 min
16:01 < bridge> <animepdf> ok now its around 320
16:02 < bridge> <animepdf> difference is about 30-40 fps in the end
16:03 < bridge> <Jupstar ✪> sounds ok
16:04 < bridge> <Jupstar ✪> but maybe finds something during his review or smth
16:07 < bridge> <animepdf> well, it finds all search items in str, stores them in 2 vectors, filters and merges those vectors' items and renders them. all of this in 1 'render frame', this even sounds not very good
16:07 < bridge> <animepdf> but it's the best way I found to do what I wanted
16:09 < bridge> <whyner_> Good afternoon, I would like to know how I can register on the official ddnet forum, I submitted an application several times, but it was not accepted for a long time
16:09 < bridge> <ryozuki> https://blog.cloudflare.com/patent-troll-sable-pays-up/
16:12 < bridge> <Jupstar ✪> There is probably a better solution, but as you see the CPU is so fast that it only drops 40 fps.
16:12 < bridge> <Jupstar ✪> 
16:12 < bridge> <Jupstar ✪> It's hard to really guess if your algorithm is bad without properly benchmarking what bottlenecks your new code.
16:15 < bridge> <animepdf> fair enough
16:16 < bridge> <animepdf> https://tenor.com/view/itsover-wojack-gif-4367840179675491690
16:16 < bridge> <ryozuki> patents truly suck
16:18 < bridge> <Jupstar ✪> go ahead, i am always open for some patent bashing
16:18 < bridge> <Jupstar ✪> ah this 😄
16:27 < bridge> <ryozuki> @jupeyy_keks
16:27 < bridge> <ryozuki> > In the end, Sable agreed to pay Cloudflare $225,000, grant Cloudflare a royalty-free license to its entire patent portfolio, and to dedicate its patents to the public, ensuring that Sable can never again assert them against another company.
16:30 < bridge> <Jupstar ✪> they move around money as if it's nothing xd
16:32 < bridge> <learath2> They picked the wrong company to annoy. You need to go against mid to large sized ones. Not a 27B$ megacorp
16:53 < bridge> <ryozuki> https://www.youtube.com/watch?v=dCvB-mhkT0w
16:53 < bridge> <ryozuki> cool vid to know rly basics of ecc
17:03 < bridge> <knopick.> fkt
17:03 < bridge> <knopick.> вам всем хана
17:03 < bridge> <knopick.> я вас заминировал
17:03 < bridge> <Jupstar ✪> english pls
18:05 < bridge> <animepdf> he mined us
18:05 < bridge> <animepdf> mined like mine like bomb
18:09 < bridge> <Jupstar ✪> thanks for banging me
18:39 < bridge> <byfox> # RU
18:39 < bridge> <byfox> Уходи, плохой человек.
18:39 < bridge> <byfox> 
18:39 < bridge> <byfox> # EN
18:39 < bridge> <byfox> Go away, bad man.
18:51 < bridge> <zhn> no one plays it anyway, im making it for my own entertainment
18:51 < bridge> <zhn> $deepl
18:51 < bridge> <DDNet> Hi! Most of us communicate in English. If you’re having trouble with English, use <https://www.deepl.com/en/translator> to help you out.
18:52 < bridge> <zhn> it limits development of mods, not ddnet :P
18:54 < bridge> <learath2> It's not the protocol that prevents it, it's that you don't control the client much. That's a far more fundamental issue of the teeworlds network architecture in general
18:54 < bridge> <learath2> Most of the weird workarounds in the code are from a time when we didn't have the most used client either
18:56 < bridge> <learath2> (e.g. nothing about the protocol is stopping mods from just sending their own `visual-fx@mymod.zhn.org` and nothing about the protocol is stopping us from adding `whatever-weird-feature@netmsg.ddnet.org`)
18:59 < bridge> <teero777> Maybe this message should be printed in multiple languages xd
19:00 < bridge> <0xdeen> https://cdn.discordapp.com/attachments/293493549758939136/1291807186250367016/qteup0e4tl0c1.png?ex=670170b1&is=67001f31&hm=5b1441b24b649386c9be48c64fecf68d894a9efd5d2ead7d66fd9d0917ea7282&
19:09 < bridge> <ryozuki> xDDD
19:10 < bridge> <zhn> ask murpi
19:10 < bridge> <teero777> @murpi ^
19:11 < bridge> <ryozuki> probs in russian/french
19:11 < bridge> <ryozuki> cuz those 2 are the ones who know less english
19:11 < bridge> <ryozuki> from my xp
19:11 < bridge> <ryozuki> maybe spanish too :justatest:
19:11 < bridge> <zhn> we argued about it already, proposed english/turkish/russian text
19:11 < bridge> <ryozuki> i guess we dont have many baguettes here
19:12 < bridge> <zhn> would be cool to have something like $deepl language
19:12 < bridge> <zhn> like you write $deepl russian and it shows text in russian
19:13 < bridge> <gazzwer> I was banned for 1 day, you can unban
19:13 < bridge> <ryozuki> https://spectrum.ieee.org/in-memoriam-oct-2024
19:13 < bridge> <meloƞ> every single bot command would need to be translated then i guess?
19:13 < bridge> <ryozuki> @jupeyy_keks the RAM inventor died today
19:13 < bridge> <ryozuki> sadge
19:13 < bridge> <meloƞ> #✉-create-a-ticket -> #ban-appeal
19:13 < bridge> <zhn> no why, $deepl is the only language specific command imo
19:14 < bridge> <zhn> otherwise you need to know english anyway
19:15 < bridge> <ryozuki> https://en.wikipedia.org/wiki/Dennard_scaling
19:19 < bridge> <Jupstar ✪> good bot
19:19 < bridge> <DDNet> :heartw:
19:25 < bridge> <ryozuki> https://unix.stackexchange.com/questions/226716/where-is-the-latest-source-code-of-man-command-for-linux
19:25 < bridge> <ryozuki> https://unix.stackexchange.com/questions/405783/why-does-man-print-gimme-gimme-gimme-at-0030
19:26 < bridge> <ryozuki> > "Gimme gimme gimme a man after midnight"
19:31 < bridge> <jxsl13> this is how you learn english
19:31 < bridge> <jxsl13> no need for translation :justatest:
19:38 < bridge> <stramxxxx4> пиздааааааааааааааааааааааааааааа
19:50 < bridge> <ryozuki> https://cdn.discordapp.com/attachments/293493549758939136/1291819836917284957/GY_S2jpW4AI_i-o.jpg?ex=67017c79&is=67002af9&hm=62f8029969d2c789d8423f3c1b5eb68f8ee916755f4ee054f52624a251dfc37f&
19:50 < bridge> <ryozuki> this is how much denuvo costs
19:52 < bridge> <zhn> just imagine to have this and 1 person who breaks every denuvo patched game
19:58 < bridge> <zka0770_63723> https://cdn.discordapp.com/attachments/293493549758939136/1291821713234858035/image.png?ex=67017e39&is=67002cb9&hm=e428a2c126a88b7c175f90a332babfd7d24494db7d43d538c7f635f13305a6f9&
19:58 < bridge> <zka0770_63723> https://cdn.discordapp.com/attachments/293493549758939136/1291821713515872348/image.png?ex=67017e39&is=67002cb9&hm=22581257b201846f3d47c1627b3e9a882f41f471ac39db2899e3ff2822d3e98a&
19:58 < bridge> <zka0770_63723> https://cdn.discordapp.com/attachments/293493549758939136/1291821714019450951/image.png?ex=67017e39&is=67002cb9&hm=b4c8fbabb3bfa9b4688908f76f687375382bb38da6bf22138467d8aa4e99f4b2&
19:58 < bridge> <zka0770_63723> https://cdn.discordapp.com/attachments/293493549758939136/1291821720583405578/image.png?ex=67017e3b&is=67002cbb&hm=bb16246326830ca2c09178f000b3c0c6aa3d659be0ad4f30c12fd58fb1ec6bcf&
19:58 < bridge> <zka0770_63723> https://cdn.discordapp.com/attachments/293493549758939136/1291821721023680614/image.png?ex=67017e3b&is=67002cbb&hm=3642d2c93bd5e4765ea1e5c87b7b6d5f3da6656515a44e78f6ac743608844ea1&
19:58 < bridge> <zka0770_63723> https://cdn.discordapp.com/attachments/293493549758939136/1291821721501827164/image.png?ex=67017e3b&is=67002cbb&hm=5e9fef160ceb80d20540de8b9530703625099b5e741c426ff891dcc35010eace&
19:58 < bridge> <zka0770_63723> https://cdn.discordapp.com/attachments/293493549758939136/1291821721841827872/image.png?ex=67017e3b&is=67002cbb&hm=3e859e18467db1e685a8de69defd88fdfe363fced50da7c76162caf075a1a11f&
19:58 < bridge> <zka0770_63723> https://cdn.discordapp.com/attachments/293493549758939136/1291821722261262397/image.png?ex=67017e3b&is=67002cbb&hm=c9dfb778302be6dfa0ba5e89bb835b80562d1bbc6841e971033053baaff3b5de&
19:58 < bridge> <zka0770_63723> https://cdn.discordapp.com/attachments/293493549758939136/1291821722726826006/image.png?ex=67017e3b&is=67002cbb&hm=50d21d714c80e511f788583a2033eb8ce59204f7c9a88cbf6ed829e708d0432d&
19:58 < bridge> <zka0770_63723> https://cdn.discordapp.com/attachments/293493549758939136/1291821723175620759/image.png?ex=67017e3b&is=67002cbb&hm=b6de5f8a758770e8f7aff3fe981549dc84fe98bafdba8dea09b0cf1ae53d906c&
20:10 < bridge> <timakro> @learath2 what do you think of this sparkle particle effect? https://github.com/ddnet/ddnet/pull/9047#issuecomment-2394212268
20:11 < bridge> <learath2> I like it, looks nice
20:12 < bridge> <milkeeycat> Cool effect xd
20:12 < bridge> <milkeeycat> https://cdn.discordapp.com/attachments/293493549758939136/1291825266703728730/IMG_20241004_211203.jpg?ex=67018188&is=67003008&hm=97ee25f3da2835329c0e210316704c0baa10d09b5ccf39fa782e0a86e62c9eb6&
20:13 < bridge> <oxyzo.> Great effect
20:14 < bridge> <Jupstar ✪> missingno in ddnet
20:14 < bridge> <Jupstar ✪> my missingno is cool too
20:14 < bridge> <Jupstar ✪> https://cdn.discordapp.com/attachments/293493549758939136/1291825846679507064/image.png?ex=67018212&is=67003092&hm=42ed496aad6c4c427d8bf02dd8e2ea460d1d5f60a82638a39caddcb21b000ada&
20:18 < bridge> <timakro> is the video broken for you? works fine for me
20:18 < bridge> <Jupstar ✪> if i dont pause and move the video cursor around it works for me too
20:19 < bridge> <timakro> lol
20:23 < bridge> <milkeeycat> It works for me if i watch from start but if i select time it breaks
20:24 < bridge> <timakro> lol it does break if you select time
20:24 < bridge> <milkeeycat> It's a new ui feature
20:27 < bridge> <Jupstar ✪> google can't handle their own format
20:28 < bridge> <Jupstar ✪> in ff it works
21:27 < bridge> <ryozuki> https://en.wikipedia.org/wiki/Birch_and_Swinnerton-Dyer_conjecture
21:27 < bridge> <ryozuki> why im reading things i cant understand
21:28 < bridge> <louis> @timakro what about spawning particles on the tee and have them go radially outward
21:30 < bridge> <timakro> @louis.place i tried it. looked bad in my opinion
21:34 < bridge> <learath2> An effect of alcohol
21:35 < bridge> <ryozuki> do u think most ppl who drink read complex math articles
21:35 < bridge> <learath2> No, it's reserved to nerds. You start to overestimate your capability of understanding
21:35 < bridge> <ryozuki> its funny cuz earlier i was learning about eliptic curves
21:36 < bridge> <ryozuki> and this article is about a complex problem on these
21:36 < bridge> <ryozuki> destiny
21:36 < bridge> <learath2> I only know that it's one of those conjectures with the prize money
21:39 < bridge> <ryozuki> yep
21:43 < bridge> <zhn> rust help needed
21:43 < bridge> <zhn> i have not `?Sized` trait that should expose mutable parts of itself
21:45 < bridge> <zhn> things i tried to use for interior mutability:
21:45 < bridge> <zhn> 1. `Cell`, doesn't fit since i need to use it immutably too
21:45 < bridge> <zhn> 2. `RefCell`, doesn't fit since i want to return reference to field of borrowed refcell
21:46 < bridge> <ryozuki> show examples
21:46 < bridge> <ryozuki> why u have ?sized in first place
21:47 < bridge> <ryozuki> what does not ?sized
21:47 < bridge> <ryozuki> since ?sized means either sized or unsized
21:47 < bridge> <ryozuki> what does "not ?sized" mean
21:47 < bridge> <ryozuki> :pepeW:
21:47 < bridge> <ryozuki> i if u are delving into the arts of dynamic dispatch
21:47 < bridge> <learath2> I'm guessing it's an unsized type, but then what is there to mutate? 😵‍💫
21:47 < bridge> <ryozuki> learn the concept of object safety in rust
21:48 < bridge> <ryozuki> https://doc.rust-lang.org/reference/items/traits.html
21:48 < bridge> <zhn> i don't have it
21:48 < bridge> <ryozuki> https://cdn.discordapp.com/attachments/293493549758939136/1291849456035299422/image.png?ex=6701980f&is=6700468f&hm=2e04f5af97bd2e714a52190ce42e734ab5c6782e35c2bd030a5dbc5526409d2a&
21:48 < bridge> <zhn> i construct dyn trait object that im boxing and want to use
21:48 < bridge> <ryozuki> so whats ur problem
21:49 < bridge> <zhn> since trait doesn't depend on `?Sized` i can't use `&mut Whatever` as return type
21:49 < bridge> <zhn> ah wait
21:49 < bridge> <zhn> wtf
21:49 < bridge> <ryozuki> can u show me a example method pls
21:49 < bridge> <zhn> nah wait seems i got jerked by myself
21:50 < bridge> <ryozuki> are u making a builder pattern?
21:50 < bridge> <ryozuki> i dont see why u couldnt be able to return a &mut dyn X
21:50 < bridge> <zhn> no, but for whatever reason i got "trait is not object safe" everytime
21:51 < bridge> <ryozuki> hehe
21:51 < bridge> <ryozuki> the thing i told u
21:51 < bridge> <zhn> its gone now so i can't even tell you anything
21:52 < bridge> <Jupstar ✪> did you remove `Self: Sized`? ^^
21:52 < bridge> <zhn> no
21:52 < bridge> <zhn> i didn't have it
21:52 < bridge> <Jupstar ✪> So it magically works, nice
21:52 < bridge> <ryozuki> sussy baka
21:52 < bridge> <zhn> rustc tried to force me to make it Sized, thats why i asked "not ?sized" in first place
21:53 < bridge> <Jupstar ✪> where exactly did it force you to have it Sized tho?
21:53 < bridge> <zhn> wait im getting the same
21:54 < bridge> <Jupstar ✪> show the func signature
21:54 < bridge> <zhn> since i want to exposee &mut S, where S is field of original struct that should implement trait
21:54 < bridge> <zhn> and i can't do it
21:54 < bridge> <zhn> thats why i came to using cells
21:54 < bridge> <zhn> and got stuck on playing with refs
21:55 < bridge> <Jupstar ✪> show where u use &mut S
21:55 < bridge> <Jupstar ✪> just leak
21:55 < bridge> <ryozuki> if u need to use cells u probs doing something bad
21:56 < bridge> <ryozuki> wh yu want to expose  &mut S
21:56 < bridge> <Jupstar ✪> code tells more than 1000 images
21:56 < bridge> <Jupstar ✪> 😬
21:56 < bridge> <ryozuki> 😬
21:56 < bridge> <ryozuki> brb gettign another drink
21:56 < bridge> <Ewan> late for u?
21:57 < bridge> <ryozuki> its 20
21:57 < bridge> <ryozuki> but i wont go sleep too late
21:57 < bridge> <ryozuki> 22*
21:57 < bridge> <ryozuki> gotta wake up at 7 :justatest:
21:58 < bridge> <ryozuki> to travel to the french
21:58 < bridge> <ryozuki> driving
21:58 < bridge> <zhn> ```rust
21:58 < bridge> <zhn> struct Abuse {
21:58 < bridge> <zhn>   noby: EpicClonableBigObject
21:58 < bridge> <zhn> }
21:58 < bridge> <zhn> 
21:58 < bridge> <zhn> impl Noby for Abuse {
21:58 < bridge> <zhn>   fn noby(& [need mut to expose itself] self) -> &mut EpicClonableBigObject {
21:58 < bridge> <zhn>     &mut self.noby
21:58 < bridge> <zhn>   }
21:58 < bridge> <zhn> }
21:58 < bridge> <zhn> 
21:58 < bridge> <zhn> trait Noby {
21:58 < bridge> <zhn>   fn noby(& [no mut since it should be object safe] self) -> &mut EpicClonableBigObject;
21:58 < bridge> <zhn> }```
21:58 < bridge> <ryozuki> do u know a nice trick
21:58 < bridge> <ryozuki> u can impl a trait for a mutable reference directly
21:59 < bridge> <ryozuki> ```rust
21:59 < bridge> <ryozuki> 
21:59 < bridge> <ryozuki> impl Noby for &mut Abuse {
21:59 < bridge> <ryozuki>   fn noby(self) -> &mut EpicClonableBigObject {
21:59 < bridge> <ryozuki>     &mut self.noby
21:59 < bridge> <ryozuki>   }
21:59 < bridge> <ryozuki> }
21:59 < bridge> <ryozuki> ```
21:59 < bridge> <ryozuki> well idk if its correct
21:59 < bridge> <Jupstar ✪> fn noby() -> &mut S where Self: Sized
21:59 < bridge> <ryozuki> im not in best state kek
21:59 < bridge> <ryozuki> true
21:59 < bridge> <zhn> well, are boxed values sized?
21:59 < bridge> <ryozuki> a box is sized yes
21:59 < bridge> <ryozuki> it has ptr size
22:00 < bridge> <zhn> hm, i need to smoke rust docs more
22:00 < bridge> <zhn> thank you guys
22:00 < bridge> <ryozuki> a dyn object is not sized
22:00 < bridge> <ryozuki> cuz u cant know it
22:00 < bridge> <ryozuki> Box<dyn T> has size of Box, which is usize
22:00 < bridge> <ryozuki> Box<dyn T> has size of Box, which is ptr sized
22:01 < bridge> <ryozuki> well a dyn T is in reality 2 ptrs
22:01 < bridge> <ryozuki> kek
22:01 < bridge> <ryozuki> but i recommend u avoid returning mutable references to struct fields
22:01 < bridge> <ryozuki> u should seek to structure ur program in another way
22:01 < bridge> <ryozuki> to avoid this
22:01 < bridge> <yushiyurik0.> ah
22:01 < bridge> <ryozuki> dont think like C
22:01 < bridge> <yushiyurik0.> am i supposed to be here
22:02 < bridge> <ryozuki> for example u can make functions that accept a &mut T where T is the field type
22:02 < bridge> <yushiyurik0.> also why my hooks r too heavy
22:02 < bridge> <yushiyurik0.> xd
22:02 < bridge> <ryozuki> and pass the field to it
22:02 < bridge> <ryozuki> as &mut x.y
22:02 < bridge> <Jupstar ✪> but tbh i have to admit i dont fully understand why it's not working
22:02 < bridge> <ryozuki> no cuz u dont knwo rust
22:02 < bridge> <ryozuki> go to #general
22:02 < bridge> <yushiyurik0.> watcha saying
22:02 < bridge> <yushiyurik0.> how i dont know rust
22:02 < bridge> <yushiyurik0.> what is rust
22:02 < bridge> <yushiyurik0.> xd
22:02 < bridge> <ryozuki> i guess u cant reutrn a reference to a possibly unsized thing
22:02 < bridge> <zhn> it works if you don't want this trait to object safe and not-`Sized`
22:03 < bridge> <zhn> to be*
22:03 < bridge> <zhn> yeah seems `Sized` isn't that strict, i will use it
22:03 < bridge> <Jupstar ✪> yeah but his example looked like the type is known
22:03 < bridge> <Jupstar ✪> maybe that confused me dunno
22:03 < bridge> <Jupstar ✪> ah u mean self
22:03 < bridge> <Jupstar ✪> yeah maybe
22:04 < bridge> <ryozuki> ```rust
22:04 < bridge> <ryozuki> // epnicclonableobject = Vec<usize>
22:04 < bridge> <ryozuki> 
22:04 < bridge> <ryozuki> struct Abuse {
22:04 < bridge> <ryozuki>   noby: Vec<usize>
22:04 < bridge> <ryozuki> }
22:04 < bridge> <ryozuki> 
22:04 < bridge> <ryozuki> impl Noby for Abuse {
22:04 < bridge> <ryozuki>   fn noby(&mut self) -> &mut Vec<usize> {
22:04 < bridge> <ryozuki>     &mut self.noby
22:04 < bridge> <ryozuki>   }
22:04 < bridge> <ryozuki> }
22:04 < bridge> <ryozuki> 
22:04 < bridge> <ryozuki> trait Noby {
22:04 < bridge> <ryozuki>   fn noby(&mut self) -> &mut Vec<usize>;
22:04 < bridge> <ryozuki> }```
22:04 < bridge> <ryozuki> idk
22:04 < bridge> <ryozuki> this compiles
22:04 < bridge> <ryozuki> for me
22:04 < bridge> <Jupstar ✪> tja
22:04 < bridge> <ryozuki> https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=6dcf98d2e31a22b81783abfb977615f1
22:04 < bridge> <Jupstar ✪> if it wouldnt be shortly before bed time, i'd maybe think about it
22:05 < bridge> <ryozuki> bro tomorrow is saturday
22:05 < bridge> <ryozuki> party time
22:05 < bridge> <ryozuki> rust party
22:05 < bridge> <Jupstar ✪> Nice
22:05 < bridge> <zhn> ok i feel dumb, it works now
22:05 < bridge> <ryozuki> sized just requries that when u impl it i guess u cant return another impl trait or dyn
22:06 < bridge> <ryozuki> sized just requries that when u impl it i guess u cant return dyn (but u can box it)
22:06 < bridge> <ryozuki> can u show what u did
22:06 < bridge> <zhn> this
22:06 < bridge> <ryozuki> lmayo
22:06 < bridge> <zhn> don't question me, i don't know what happened
22:06 < bridge> <zhn> xd
22:07 < bridge> <zhn> jupjap how did you manage to pass rust std  to wasm modules?
22:07 < bridge> <zhn> or you didn't
22:07 < bridge> <Jupstar ✪> there are std functions that panic, like creating a thread
22:07 < bridge> <Jupstar ✪> since that is sandboxed
22:08 < bridge> <Jupstar ✪> I dont pass any std functions to the runtime
22:08 < bridge> <ryozuki> core + alloc
22:08 < bridge> <zhn> but std structs?
22:08 < bridge> <Jupstar ✪> alloc is probably handled by the wasm runtime
22:08 < bridge> <Jupstar ✪> struct objects are serialized
22:08 < bridge> <Jupstar ✪> and then deserialized in wasm
22:09 < bridge> <zhn> so i don't need any workaround if i simply use anything from std (even net?) inside of code that will compile into wasm?
22:09 < bridge> <Jupstar ✪> network is sandboxed ofc
22:09 < bridge> <Jupstar ✪> just imagine that you can use anything that isnt kernel
22:10 < bridge> <zhn> sorry, i didn't manage to find any relatable info not from 2019-2020
22:10 < bridge> <ryozuki> add no_str
22:10 < bridge> <ryozuki> no_std
22:10 < bridge> <ryozuki> https://docs.rust-embedded.org/book/intro/no-std.html+
22:10 < bridge> <ryozuki> https://docs.rust-embedded.org/book/intro/no-std.html
22:10 < bridge> <ryozuki> https://docs.rust-embedded.org/book/intro/no-std.html
22:11 < bridge> <Jupstar ✪> you can use lot of std stuff tho, since allocations work
22:11 < bridge> <Jupstar ✪> memory allocations
22:12 < bridge> <Jupstar ✪> async works too, but only single threaded and with a different runtime than tokio.
22:12 < bridge> <Jupstar ✪> 
22:12 < bridge> <Jupstar ✪> So i abstracted that away to be easy to use in wasm modules
22:12 < bridge> <Jupstar ✪> for the rendering module u can even read files from file system, but physics can't
22:14 < bridge> <Jupstar ✪> The only really unsafe thing you can do is communicate with a database, if one is enabled in the config.
22:14 < bridge> <Jupstar ✪> 
22:14 < bridge> <Jupstar ✪> Sadly I don't see any real chance to sandbox this in a sane way.
22:14 < bridge> <Jupstar ✪> 
22:14 < bridge> <Jupstar ✪> Guess the best is to create a database user with as few permissions as possible
22:14 < bridge> <Jupstar ✪> i also dunno what kind of hacks mysql allows. i know some database engines allow you to write files etc. quite powerful xd
22:17 < bridge> <zhn> im talking about wasm in general tho
22:17 < bridge> <Jupstar ✪> @gerdoe to say it differently. by default everything is sandboxed, but you can add e.g. WASI to your runtime and it would allow all std stuff, even net & fs.
22:17 < bridge> <Jupstar ✪> 
22:17 < bridge> <Jupstar ✪> WASI then tries to make it as safe as possible
22:18 < bridge> <Jupstar ✪> yeah the idea for wasm in internet browsers is that you can compile anything to wasm and it just works
22:19 < bridge> <Jupstar ✪> e.g. browsers have no udp. that is a problem that wasm can't solve
22:19 < bridge> <zhn> yeah wasi is the only way to go with ig, but arent specifications for wasi-io, wasi-whatever are still at phases 1-3?
22:19 < bridge> <Jupstar ✪> i guess they are still preview yeah
22:20 < bridge> <Jupstar ✪> but so or so, it depends on the wasm host
22:20 < bridge> <Jupstar ✪> Do you plan to use WASM for anything or what?
22:20 < bridge> <zhn> rust-rust
22:20 < bridge> <zhn> both as host and guest
22:21 < bridge> <Jupstar ✪> and what would be your use case? xdd
22:21 < bridge> <zhn> exactly same as yours, but only for server-side and teeworlds compatible
22:21 < bridge> <Jupstar ✪> ah
22:22 < bridge> <Jupstar ✪> yeah that is cool indeed
22:22 < bridge> <zhn> actually it would be cool to know how wasm works at all, i had many projects that needed modules/addons
22:22 < bridge> <Jupstar ✪> well i can tell you that there are rust runtimes that expose WASI already
22:22 < bridge> <zhn> all of them died because i tried to stick with unstable rust abi, implementing c api, doing lua, etc
22:22 < bridge> <Jupstar ✪> it's just not API stable
22:23 < bridge> <ryozuki> wasmer
22:23 < bridge> <Jupstar ✪> have you seen my wasm video i posted in the hub
22:23 < bridge> <ryozuki> phub?
22:23 < bridge> <ryozuki> :justatest:
22:23 < bridge> <ryozuki> :poggers2:
22:23 < bridge> <Jupstar ✪> xd
22:23 < bridge> <ryozuki> xd
22:24 < bridge> <zhn> when did u post it kekw
22:25 < bridge> <zhn> i found also wasmtime, is there any difference?
22:27 < bridge> <Jupstar ✪> https://youtu.be/qIioHMY-bYQ?t=1059
22:27 < bridge> <Jupstar ✪> 
22:27 < bridge> <Jupstar ✪> here i quickly show how i did it.
22:27 < bridge> <Jupstar ✪> 
22:27 < bridge> <Jupstar ✪> basically to sum it up:
22:27 < bridge> <Jupstar ✪> - i have a interface that is to be implemented
22:27 < bridge> <Jupstar ✪> - on host side i call the trait function of the wasm manager which also implements the interface, and it automatically, with a macro, serializes all parameters and results
22:27 < bridge> <Jupstar ✪> - on guest i implement it automatically deserializes with the macro and calls the objects trait function
22:28 < bridge> <ryozuki> i dont remember and im nto sobre enough rn
22:29 < bridge> <ryozuki> i know one of these crates has a compiler
22:29 < bridge> <ryozuki> cranelift
22:29 < bridge> <ryozuki> awesome
22:29 < bridge> <zhn> seems its wasmer
22:29 < bridge> <zhn> uh, seems they finally blocked youtube
22:29 < bridge> <Jupstar ✪> i use wasmer as runtime yeah
22:29 < bridge> <Jupstar ✪> but cranelift is from byte code aliance
22:29 < bridge> <zhn> i need to boot up my vless in finland
22:30 < bridge> <Jupstar ✪> they also have a rust runtime
22:30 < bridge> <Jupstar ✪> but apparently it's slower
22:30 < bridge> <Jupstar ✪> and ig i'm too lazy to rewrite the code to check if it's really slower xd
22:30 < bridge> <Jupstar ✪> oh wow, does russia block it, or does youtube _have_ to block it xd
22:31 < bridge> <zhn> russia blocks youtube
22:31 < bridge> <Jupstar ✪> tja sucks
22:31 < bridge> <zhn> rumors say they will block discord too
22:31 < bridge> <Jupstar ✪> i welcome you in europe 😏
22:35 < bridge> <zhn> gg my pc died trying to index all 864 crates from ddpg dependencies
22:35 < bridge> <Jupstar ✪> only 864? how outdated is your stand 😬
22:36 < bridge> <Jupstar ✪> XD
22:36 < bridge> <Jupstar ✪> https://cdn.discordapp.com/attachments/293493549758939136/1291861508099276811/image.png?ex=6701a349&is=670051c9&hm=07bf5d4aeabda885977e44105e4948606006a58f69a8804e31703377bf53f9b5&
22:36 < bridge> <Jupstar ✪> ok ig not all have to be indexed
22:36 < bridge> <Jupstar ✪> true
22:36 < bridge> <zhn> rust analyzer goes wild
22:37 < bridge> <reitw> that sux
22:37 < bridge> <Jupstar ✪> you mean it's not normal that rust analyzer uses 4GB on idle?
22:37 < bridge> <Jupstar ✪> min sys requirements for ddnet: toaster
22:37 < bridge> <Jupstar ✪> min sys requirements for compiling ddnet: NASA pc
22:38 < bridge> <zhn> :justatest:
22:39 < bridge> <zhn> ah i forgot to install firefox unload tabs extension
22:39 < bridge> <zhn> this goddamn thing ate up to 11 gbs
22:39 < bridge> <Jupstar ✪> do you use no swapfile?
22:40 < bridge> <Jupstar ✪> without swap i'd crash like once per day lmao
22:40 < bridge> <Jupstar ✪> https://cdn.discordapp.com/attachments/293493549758939136/1291862440459632672/image.png?ex=6701a427&is=670052a7&hm=ff0895855dab4e0b47a6d4c9d57d31a8c977b364771c8abf05f72c03717b4894&
22:40 < bridge> <Jupstar ✪> 32GB ram are not enough nowadays anymore xD
22:42 < bridge> <zhn> i do, its 8gb
22:42 < bridge> <zhn> rust analyzer was going directly in swap
22:42 < bridge> <Jupstar ✪> 😬
22:42 < bridge> <Jupstar ✪> buy 4 TB HDD and make it your swap
22:42 < bridge> <Jupstar ✪> then you can safely open 2 firefox tabs
22:42 < bridge> <Jupstar ✪> without crashing
22:43 < bridge> <Jupstar ✪> man since learath is go enjoyer he makes no RAM jokes anymore
22:44 < bridge> <zhn> xd
22:44 < bridge> <zhn> nah firefox is pretty good with sidebery on
22:45 < bridge> <zhn> ublock+sidebery+agent switcher+being eu citizen=best browsing experience
22:45 < bridge> <zhn> they can't block youtube in us xd
22:46 < bridge> <learath2> I don't write go code to run on my own computer, I don't care how much cloud web5.0 ram my employer pays for
22:55 < bridge> <jxsl13> 10 Go (micro) services ~ 1 Java "micro" service.
22:59 < bridge> <zhn> why do you force push it 😭
22:59 < bridge> <Jupstar ✪> tja
23:00 < bridge> <Jupstar ✪> gotta wait few months
23:00 < bridge> <Jupstar ✪> then i stop doing that
23:02 < bridge> <Jupstar ✪> But anyway zhn, to motivate you. Once you solved the sharing memory problem it's gonna be an epyc experience
23:03 < bridge> <Jupstar ✪> it magically works, and performs quite good, but watch your RAM footprint xd
23:03 < bridge> <Jupstar ✪> I am sadly not at a point yet where I really tested how much RAM overhead that vm has, and how i can minimize it
23:25 < bridge> <zhn> you can just commit it and squash before epic release
23:25 < bridge> <zhn> :justatest:
23:25 < bridge> <Jupstar ✪> on i can't. bcs privately i use a real commit history
23:27 < bridge> <Jupstar ✪> my life in the last 2 years was basically
23:27 < bridge> <Jupstar ✪> 
23:27 < bridge> <Jupstar ✪> git commit with msg u
23:27 < bridge> <Jupstar ✪> https://cdn.discordapp.com/attachments/293493549758939136/1291874306720141364/image.png?ex=6701af34&is=67005db4&hm=7de074f15bbf379b109e072b277642119d222e2afa8336dda07cf1052b4b8991&
23:27 < bridge> <Jupstar ✪> xddddddd
23:32 < bridge> <Jupstar ✪> @gerdoe where is ur repo
23:33 < bridge> <zhn> which one
23:33 < bridge> <Jupstar ✪> for your new project using wasm
23:33 < bridge> <zhn> its not published
23:33 < bridge> <zhn> im still polishing the code
23:34 < bridge> <zhn> also still no 0.7 and ddnet support
23:34 < bridge> <zhn> i want to add these
23:36 < bridge> <Jupstar ✪> so 0.5 only or what? :lol:
23:36 < bridge> <zhn> no, 0.5 and pure 0.6
23:36 < bridge> <Jupstar ✪> ah nice
23:37 < bridge> <Jupstar ✪> can't believe you do the reverse chillerdragon
23:37 < bridge> <zhn> xd
23:37 < bridge> <zhn> 0.5 was my childhood, it feels too nostalgic to drop it as is
23:38 < bridge> <zhn> and libtw2 is too good to not use it xd
23:38 < bridge> <Jupstar ✪> my childhood was ddpg
23:38 < bridge> <Jupstar ✪> nice, maybe it finally gets the use it awaited for so long
23:39 < bridge> <Jupstar ✪> that repo exists since i know ddnet code xd
23:40 < bridge> <zhn> i did remove all the `Warn` though, mercy me oh lord5991
23:41 < bridge> <Jupstar ✪> what is that?
23:43 < bridge> <zhn> some kind of tracing of warnings from the lib code to user
23:43 < bridge> <zhn> so functions will not panic, but pass you warn object if something goes wrong, but not that bad to panic