00:17 < bridge_> Wot cactus 00:20 < bridge_> where did you see "cactus client"? 00:21 < bridge_> was a joke 00:28 < bridge_> should i split up the file loader for the assets into each type of asset (allowing you to pick & choose which type of assets to load if that ever became a necessity) or do it all at once 00:41 < bridge_> menus_settings_assets not being its own component really is kind of a bummer because i could totally use that stuff 00:42 < bridge_> and it would be nice to not have to add to the already gargantuan class that is cmenus 00:42 < bridge_> what is the limitation making menus_settings_assets a part of cmenus as a whole? 03:04 < bridge_> i still think choosing your own seperate packs for type of element should stay 03:05 < bridge_> i can make any updates nessecary to my slicer 03:51 < bridge_> huh 03:54 < bridge_> i don’t think we are talking about the same thing 03:54 < bridge_> oh 09:26 < bridge_> I don't know if you mean files in general or only the "assets" like game, hud etc., but I suppose the loader should support loading any file (e.g. themes) by using generic callback/overridden functions for the relevant steps. I don't think it's necessary to split it into multiple files though, unless the files gets too large. 09:29 < bridge_> First extract the parts that you want to use and make them more generic, then use them there? The file loader should not have to be aware of different assets like game, hud etc. 09:29 < bridge_> First extract the parts that you want to use and make them more generic, then use them there? The file loader should not have to be aware internally of different assets like game, hud etc. 10:24 < bridge_> i mean how should i accommodate in the assets code using the file loader. all /assets or split per type 10:25 < bridge_> Yeah it’s just obtuse to code with. Not having a dedicated header 10:25 < bridge_> Only load each type lazily when it's needed, same as before, I'd say 10:25 < bridge_> Okay 10:41 < bridge_> chiller you a landlord now 10:41 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1146726397444886558/IMG_2790.png 10:41 < bridge_> err 10:41 < bridge_> tenant 10:43 < bridge_> GP and RE are a part of France, and their official flag is the same as the well-known French tricolor flag. 🇫🇷 :justatest: 10:44 < bridge_> Funnily enough, the replacements are "unofficial, unused flags" according to wikipedia 10:50 < ChillerDragon> @Ewan stop leak my dms 10:51 < bridge_> Sry 10:51 < ChillerDragon> np 11:19 < bridge_> https://github.blog/2023-08-30-why-rust-is-the-most-admired-language-among-developers/ 11:19 < bridge_> github blog 11:20 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1146736230701223976/image1-2.png 11:20 < bridge_> why c++ doesnt have a cute mascot 11:26 < bridge_> https://glicol.org/demo#ambienthouse 11:26 < bridge_> https://github.com/chaosprint/glicol 11:27 < bridge_> this is legit cool 11:44 < bridge_> while on the subject of music (music production?) do you know any good DAW which is opensource? 11:46 < bridge_> while on the subject of music (music production?) do you know any good DAW which is opensource? (and free?) 11:50 < bridge_> I'm looking at `Ardour` and `Zrythm` which are opensource but not free (they need to be paid to get access to the full binary). I wouldn't have any problems compiling them for myself but I am searching a good one for my sister. I'm also looking at `REAPER` and `LMMS` which are opensource and have free binaries 11:57 < bridge_> I'm looking at `Ardour` and `Zrythm` which are opensource but not free (they need to be paid to get access to the full binary). I wouldn't have any problems compiling them for myself but I am searching a good one for my sister (she is a windows user). I'm also looking at `REAPER` and `LMMS` which are opensource and have free binaries 12:10 < bridge_> I'm looking at `Ardour` and `Zrythm` which are opensource but not free (they need to be paid to get access to the full binary). I wouldn't have any problems compiling them for myself but I am searching a good one for my sister (she is a windows user). I'm also looking at `REAPER` and `LMMS` which are opensource and have free binaries 12:10 < bridge_> edit: `REAPER` isn't free :/ or open source dunno how I missed it 😅 12:25 < ChillerDragon> epic i crashed gdb 12:25 < ChillerDragon> time to run gdb with gdb 12:25 < bridge_> kek 12:26 < ChillerDragon> https://zillyhuhn.com/cs/.1693477550.png 12:26 < ChillerDragon> i blame rust 12:29 < bridge_> Xdd 12:29 < bridge_> Thanks for beta testing btw 12:30 < ChillerDragon> wot beta 12:30 < ChillerDragon> i use debian BTW 12:30 < bridge_> Hmm it seems my best choice is Zrythm. I should cross-compile it then 12:31 < bridge_> Oh you use Debian.. shit I'm affected too 12:31 < ChillerDragon> idk u can try 12:31 < ChillerDragon> goto ddnet src code 12:31 < ChillerDragon> release doesnt work 12:31 < ChillerDragon> run ddnet client with gdb 12:31 < bridge_> I'm no computer rn 12:31 < ChillerDragon> type in ``break g`` then press tab 12:31 < ChillerDragon> profit 12:31 < bridge_> Also i use debian sid 12:31 < ChillerDragon> kid 12:32 < bridge_> U use debian experimental? 12:32 < ChillerDragon> idk the whole breakpoint thing seems broken 12:32 < ChillerDragon> i use bookworm 12:32 < ChillerDragon> like a tru debianer 12:32 < ChillerDragon> debianest 12:33 < bridge_> Btw 12:33 < ChillerDragon> i used to go game and put a breakpoint in gameclient.cpp :c 12:33 < ChillerDragon> now it only shows rust virus and crashes gdb 12:33 < bridge_> Well then report the bug, after fixing it 12:33 < bridge_> Try to abuse it xd 12:34 < ChillerDragon> fix is removing rust 12:34 < bridge_> Ok 12:34 < ChillerDragon> works fine in vanilla 12:34 < bridge_> With rust u wouldn't even need the debugger from ryo in 3 2 1 12:34 < ChillerDragon> axaxax 12:35 < ChillerDragon> https://zillyhuhn.com/cs/.1693478115.png 12:35 < ChillerDragon> fakin cow.rs 12:36 < ChillerDragon> https://zillyhuhn.com/cs/.1693478172.png 12:36 < ChillerDragon> cow.rs be like 12:54 < bridge_> gdb is quite unstable 12:59 < ChillerDragon> wot thats news to me 12:59 < ChillerDragon> heinrich biased rust fanboi axaxax 12:59 < bridge_> have you not had it crash over random programs? 13:00 < bridge_> and generally, when a debugger crashes, whose fault is it? the one of the debugged program? or of the debugger? ^^ 13:02 < ChillerDragon> i never had gdb crash before 13:02 < ChillerDragon> and its ofc rust bridge fault 13:02 < ChillerDragon> hrhrhrhr 13:03 < bridge_> I can't say I have either. I've had plugins crash it though 13:04 < ChillerDragon> leet hax0r ctf gdb plugger 13:04 < ChillerDragon> lerato seems like we are not gdbing enough! 13:04 < bridge_> TIL 13:04 < bridge_> ```rs 13:04 < bridge_> fn main() { 13:04 < bridge_> break rust; 13:04 < bridge_> } 13:04 < bridge_> ``` 13:05 < ChillerDragon> error: break statement not within loop or switch 13:05 < bridge_> Yeah apparently 😄 13:05 < ChillerDragon> one day i wanna be gdbing like heinrich and patch running tw servers to update the map 13:05 < ChillerDragon> still waiting for that writeup heinrich 13:06 < bridge_> I've gdb'd stuff like that before, I used it to enable cheats on a production server 😄 13:06 < ChillerDragon> ah heinrich now i get it it shows funny messages :D 13:06 < ChillerDragon> those were not shown in my rust repl 13:07 < ChillerDragon> very pog lerato! 13:07 < bridge_> that's illegal! 13:07 < bridge_> Map was unfinishable anyway, we just live tested to figure out the bug 13:07 < bridge_> what are envelopes in mapping :thonk: 13:08 < bridge_> not sure why they have the name 'envelopes'. they can be used to animate position, color or something else of quads 13:09 < bridge_> ok, thanks :D 13:11 < bridge_> tbh thats a pretty typical name for what it is 13:12 < bridge_> never heard it outside of teeworlds ^^ 13:12 < bridge_> got a link? 13:14 < bridge_> https://en.m.wikipedia.org/wiki/Envelope_(music) 13:15 < bridge_> interesting ^^ 13:16 < bridge_> Nice, i get a German train for breaking rust xd 13:16 < bridge_> Would you like to get some ICE 13:33 < ChillerDragon> Hmm i somehow expected when watching a demo to see the demo timestamps in the log 13:33 < ChillerDragon> but i guess it doesnt make sense xd 13:36 < bridge_> can i copy maps from downloadedmaps and have them in my repo or... no? o.0 13:37 < bridge_> can i copy maps from downloadedmaps and have them in my repo on gh or... no? o.0 13:54 < bridge_> my coworker crashes gdb and lldb all the time xd 13:54 < bridge_> but well we did weirder stuff 13:55 < bridge_> (debugging a program from ur own compiler) 13:55 < bridge_> for example 13:55 < bridge_> At some point vanilla teeworlds crashed my compiler 13:55 < bridge_> btw isnt rust-lldb better for debugging rust 13:55 < bridge_> rust provided lldb 13:56 < bridge_> it does stuff 13:56 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1146775395207741440/image.png 13:59 < bridge_> ChillerDragon i think u just need to find the address of the variable u want to change and change it 13:59 < bridge_> i think for the map cheats its the g_Config test one 14:02 < bridge_> Hard to say. Theoretically you don't own the right on the property, but i guess for maps from ddnet nobody would complain. 14:02 < bridge_> 14:02 < bridge_> Just ask yourself if you really need to host them in first place. Heinrich already hosts a huge map archive 14:04 < bridge_> can anybody else say they made a programming lang here? 14:04 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1146777507060789268/image.png 14:04 < bridge_> :gigachad: 14:05 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1146777852415586344/a.out 14:06 < bridge_> The original flags for GP and RE were also unofficial, it only updates the unofficial flags to their latest accepted versions 14:06 < bridge_> im just making aaaa eeeh like parser for demos and maps and asking can i leave those maps in repo or just add them in git ignore :D 14:07 < bridge_> Use the entire maps repository as a git submodule :justatest: 14:07 < bridge_> pog 14:07 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1146778279848714330/image.png 14:07 < bridge_> optimized 14:07 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1146778397272449126/image.png 14:07 < bridge_> xd 14:10 < bridge_> a map parser? 14:10 < bridge_> did u try twmaps 14:10 < bridge_> it has python bindings 14:11 < bridge_> i need js :pepeW: 14:12 < bridge_> and thats the place where im yoinking code from 14:29 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1146783850647797801/image.png 14:29 < bridge_> 136€ for a book considered a classic for compilers 14:29 < bridge_> i love capitalism 14:30 < bridge_> I made a very shitty AST interpreter before I knew compiler theory. but it was pretty shitty ^^ 14:30 < bridge_> nice 14:30 < bridge_> next time use llvm 14:30 < bridge_> personally what i struggle with is not codegen 14:30 < bridge_> but type checking xd 14:30 < bridge_> i need to refactor my code again i feel 14:32 < bridge_> adding maps to a github repository is a bad idea, generally 14:33 < bridge_> git does not cope well with binary files in repositories 14:36 < bridge_> chiller and his bots 14:36 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1146785586762489966/image.png 14:36 < bridge_> git-lfs 14:37 < bridge_> that's an addon @milkeeycat was likely not talking about. I suggest to suggest it to @milkeeycat, nto me 14:37 < bridge_> I do not have experience using it btw 14:37 < bridge_> its an addon but it comes with git iirc 14:37 < bridge_> and githubv supports it 14:38 < bridge_> https://git-lfs.com/ 14:49 < bridge_> It stores large files, revolutionary 14:50 < ChillerDragon> no proof 15:33 < bridge_> ok apparently this is a book used in $$$ universities like stanford 15:33 < bridge_> so as part of the university ponzi scheme it is priced like this 15:33 < bridge_> @learath2 kek 15:33 < bridge_> https://suif.stanford.edu/dragonbook/#courses 15:35 < bridge_> https://en.wikipedia.org/wiki/Library_Genesis has it 15:36 < bridge_> i see i need to see how to get there 15:36 < bridge_> but part of me wanted to have it physically 15:36 < bridge_> i like collecting programming books 15:36 < bridge_> when i have a apartment myself i want to have them all there 15:36 < bridge_> and ill surround the c++ books with rust ones 15:37 < bridge_> so the unsafe doesnt leak 15:37 < bridge_> :gigachad: 15:37 < bridge_> the wikipdia infobox tells you how to 15:37 < bridge_> do u have a onion url 15:37 < bridge_> of libgen 15:38 < bridge_> HTTP 451 Unavailable For Legal Reasons 15:38 < bridge_> ok a mirror worked 15:42 < bridge_> i used to have ipfs locally 15:42 < bridge_> and a mirror of my web 15:42 < bridge_> time to get it back 15:45 < bridge_> IPFS: InterPlanetary File System 15:45 < bridge_> such a cool name 15:45 < bridge_> @heinrich5991 ever used ipfs? what client u use? 15:45 < bridge_> i seen kubo 15:46 < bridge_> https://wiki.gentoo.org/wiki/Kubo 15:46 < bridge_> cool name, but probably doesn't scale that way 15:46 < bridge_> because it can't cope with large ping times, but speed of light is only so fast 15:46 < bridge_> I think I experimented with ipfs once, probably official client 15:47 < bridge_> otherwise I just used the cloudflare ipfs gateway IIRC 15:47 < bridge_> i mean whats the oficial client 15:47 < bridge_> there is nothing meant to be oficial in a distributed thing like this 15:47 < bridge_> but kubo used to be called go-ipfs 15:47 < bridge_> probs the oficial one 15:47 < bridge_> I thought about allowing to download teeworlds maps from ipfs 15:47 < bridge_> but scrapped it due to IP address leaking concerns 15:48 < bridge_> the one advertised on the official ipfs page: https://docs.ipfs.tech/how-to/command-line-quick-start/. apparently, it's kubo 15:48 < bridge_> ok nice 15:48 < bridge_> im gonna put ddnet in ipfs 15:48 < bridge_> probs already is there 15:52 < bridge_> what part of ddnet? 15:53 < bridge_> it seems to be a worse bittorrent in some ways 15:53 < bridge_> you can't partially download files AFAIK 15:54 < bridge_> i think ipfs allows serving websites 15:55 < bridge_> and other stuff 15:55 < bridge_> > IPFS builds on top of IPLD by describing a format for data to represent files and combines it with it's p2p network to publish and load files. Unlike BitTorrent, if two datasets in IPFS contain the same data, it's easy to share peers between them to find data and to deduplicate storing this data on disk. 15:55 < bridge_> ah 15:55 < bridge_> deduplicaton might be a differentiator 15:55 < bridge_> other than that, all that stuff is possible with torrents as well 15:55 < bridge_> and with torrents, you can download partial files 15:56 < bridge_> it's → its btw 15:56 < bridge_> > IPFS has a couple of approaches to links. Primarily they use Content Identifiers, AKA CIDs, with two ways of turning them into links. In a lot of places they make use of /ipfs/{CID}/ style URLs which are made to be easy to convert to paths within IPFS gateways and mirrors the underlying Libp2p multiaddress format which uses paths with a "type" prefix. However, more recently IPFS has been using ipfs://{CID} URLs which have had some growing pains 15:56 < bridge_> https://blog.mauve.moe/posts/protocol-comparisons 15:57 < bridge_> > IPFS is similar to bittorent in that it operates on Merkle Trees, but instead of grouping data together under a single infohash, it focuses on addressing each chunk of data individually. 15:57 < bridge_> > 15:57 < bridge_> > IPFS uses a data format called IPLD (Interplanetary Linked Data) which takes Merkle Dags to the next level by creating a powerful data model with different "types" and ways of traversing data. 15:57 < bridge_> > 15:57 < bridge_> > IPFS builds on top of IPLD by describing a format for data to represent files and combines it with it's p2p network to publish and load files. 15:57 < bridge_> > 15:57 < bridge_> > Unlike BitTorrent, if two datasets in IPFS contain the same data, it's easy to share peers between them to find data and to deduplicate storing this data on disk. 15:57 < bridge_> > 15:57 < bridge_> > Like BitTorrent, IPFS datasets can be referenced using the hash of the root of their merkle dag which they call the CID (Content IDentifier), and in order to change any data, you will need to generate and share a new CID. Unlike bittorrent the formats of the hashes used for CIDs are flexible and the same bit of data can use different hashes. The different hash functions and encodings are defined in the multiformats specification. 15:57 < bridge_> > 15:57 < bridge_> > Another advantage of IPFS over BitTorrent is that large datasets can be handled by sparsely loading just the chunks that you need as you traverse the merkle dag. E.g. if you have millions of files, but only need one, you can traverse the graph just accross the nodes that point to that file and ignore the rest of the dataset. However, this sparseness can be slower since you will need to wait for individual nodes along the path to be fetched from 15:57 < bridge_> > 15:57 < bridge_> > IPFS stores data with "repositories" or "block stores" which can be configured to store data in various formats. These formats are typically very different from the file data they represent so it's a lot harder to mirror an IPFS dataset directly to the filesystem, and doing so will require storing data both inside IPFS's blockstore and on your filesystem, potentially duplicating the amount of storage necessary for using with other apps. Generall 15:57 < bridge_> the interesting bit probs 15:58 < bridge_> > Another advantage of IPFS over BitTorrent is that large datasets can be handled by sparsely loading just the chunks that you need as you traverse the merkle dag. E.g. if you have millions of files, but only need one, you can traverse the graph just accross the nodes that point to that file and ignore the rest of the dataset. However, this sparseness can be slower since you will need to wait for individual nodes along the path to be fetched 15:58 < bridge_> I think that's a advantage of bittorrent over ipfs, you can load files partially with bittorrent, but not with ipfs 15:59 < bridge_> hmm doesnt it say u can ignore the rest but 1 file 16:00 < bridge_> it just says u need to wait for individual nodes to be fetched, whathever that means 16:00 < bridge_> you can download individual files 16:00 < bridge_> just like in bittorrent 16:00 < bridge_> but you can't download parts of files 16:00 < bridge_> AFAIK 16:01 < bridge_> another thing of ipfs 16:01 < bridge_> > What's interesting is that in addition to TCP and UDP for connecting peers, it can seamlessly integrate other transports like QUIC which can have better perfromance and security guarantees than TCP and WebRTC which can easily bridge web browsers to the rest of the network. In fact, there's even support for connecting peers over a device's Bluetooth connection. 16:01 < bridge_> ah i see 16:01 < bridge_> did u encounter that use case? 16:02 < bridge_> well, it's very nice that you can figure out that the peer is malicious before you downloaded a 2 GiB files 16:02 < bridge_> well, it's very nice that you can figure out that the peer is malicious before you downloaded a 2 GiB file 16:04 < bridge_> why does ipfs exist then 16:04 < bridge_> hmm 16:05 < bridge_> hm. sometimes new projects come to life just because the creator wanted to create something new 16:06 < bridge_> I guess the differences are, so far: deduplication by whole-file-hash in ipfs and partial file downloads in bittorrent 18:16 < bridge_> https://en.wikipedia.org/wiki/Third_place 18:19 < ChillerDragon> watefek 3rd place ryo 18:19 < ChillerDragon> i rate this uncontextualized wikipedia article 2/10 18:45 < bridge_> why 18:45 < bridge_> ddnet is a third place 19:16 < bridge_> @robyt3 opengl crash in #general, few recent crashes in vulkan in #bugs 19:16 < bridge_> 19:16 < bridge_> do you think we had a commit lately that could be related? 19:21 < bridge_> ``` 19:21 < bridge_> 0x0000000140007174: CCommandProcessorFragment_OpenGL::RunCommand(CCommandBuffer::SCommand const*) at src/engine/client/backend/opengl/backend_opengl.cpp:1131 19:21 < bridge_> 0x0000000140018466: CCommandProcessor_SDL_GL::RunBuffer(CCommandBuffer*) at src/engine/client/backend_sdl.cpp:336 19:21 < bridge_> 0x000000014001481b: CGraphicsBackend_Threaded::ThreadFunc(void*) at src/engine/client/backend_sdl.cpp:65 19:21 < bridge_> 0x00000001401ddfba: CWindowsComLifecycle::~CWindowsComLifecycle() at src/base/system.cpp:4597 19:21 < bridge_> (inlined by) thread_run at src/base/system.cpp:865 19:21 < bridge_> ``` 19:21 < bridge_> yeah, seems weird 19:21 < bridge_> line 1131 is `return ERunCommandReturnTypes::RUN_COMMAND_COMMAND_HANDLED;` at this git revision 19:22 < bridge_> but the destructor 19:22 < bridge_> is what confuses me 19:22 < bridge_> wtf is CWindowsComLifecycle 19:22 < bridge_> that's often in there 19:23 < bridge_> it's just because of inlining or something I guess 19:23 < bridge_> `CWindowsComLifecycle` is a RAII wrapper for Windows COM functions 20:46 < bridge_> <.socold> Hey devs, could you add feature to the next update where it is possible to lock the camera to a specific point (as well as the zoom) of the player after he entered a zone. If he leaves to zone it'll morph (time adjustable) back to follow player and the zoom they had. This could improve gameplay/ make it more interesting. 20:46 < bridge_> <.socold> Hey devs, could you add feature to the next update where it is possible to lock the camera of the player to a specific point (as well as the zoom) after he entered a zone. If he leaves to zone it'll morph (time adjustable) back to follow player and the zoom they had. This could improve gameplay/ make it more interesting. 21:47 < bridge_> @heinrich5991: I wrote you some irc dm idk if you responded didn’t check since the morning 21:48 < bridge_> Dunno bout that 21:48 < bridge_> Café, gym, ddnet 21:48 < bridge_> Xd 21:49 < bridge_> thats my life rn 21:49 < bridge_> well its ddnet/dota/ff 21:52 < bridge_> :D 22:00 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1146897323033628732/F41zCP3WoAAC6cV.jpg 22:14 < bridge_> ddnet/ddnet/ddnet 22:14 < bridge_> @chillerdragon did you fell motivated by my motivational speech? 22:24 < bridge_> if the summer changed to winter yours is no disgrace 22:52 < bridge_> https://www.reddit.com/r/ProgrammerHumor/comments/166aylr/wereallmadhere/