00:34 <+bridge> [ddnet] @Chairn you should have `bors r+` permissions now 00:53 <+bridge> [ddnet] https://github.com/rust-diplomat/diplomat 00:53 <+bridge> [ddnet] looks very interesting 01:47 <+bridge> [ddnet] I want to do some text "analysis", stuff like most used language, most used word, most used n-grams. I'm considering Lucene for it (technically PyLucene so I can avoid Java). Anyone else have experience with any other "database" of this sort? Probably more of a search engine than a db tbf 08:04 <+bridge> [ddnet] The tool requires literally 0 maintenance but ok 08:04 <+bridge> [ddnet] What a boomer 08:04 <+bridge> [ddnet] @Not Keks no labels :sadge: 08:05 <+bridge> [ddnet] https://github.com/quickwit-oss/tantivy 08:05 <+bridge> [ddnet] @Learath2 08:21 <+bridge> [ddnet] Does this also exist for issues? 08:27 <+bridge> [ddnet] you cant auto label issues because they dont change files 08:34 <+bridge> [ddnet] @heinrich5991 i see ur huffman rust impl is focused on looking C-like 08:35 <+bridge> [ddnet] i guess this is why most of the code there looks ugly to me 08:35 <+bridge> [ddnet] also you dont like newlines right? you put every function as close as possible to each other 08:36 <+bridge> [ddnet] btw bit_vec is an amazing crate 08:39 <+bridge> [ddnet] why didnt you use a binaryheap from the std for the priority queue? 08:39 <+bridge> [ddnet] and why the focus on fixed size arrays vs using std collections while reserving capacity? 09:02 <+bridge> [ddnet] ls 09:02 <+bridge> [ddnet] ups 09:08 <+ChillerDragon> lmao ryo nagging heinrich about rust code again :D 09:08 <+ChillerDragon> @Ryozuki stop bullying 09:08 <+bridge> [ddnet] Too bad, we need some nice gpt ai that does everything for us 09:10 <+bridge> [ddnet] I just cant help it 09:10 <+bridge> [ddnet] Xd 09:11 <+bridge> [ddnet] @Not Keks but we had a tool for prs that does it and hein closed it 09:11 <+bridge> [ddnet] :bluestripe: 09:11 <+bridge> [ddnet] . 09:12 <+bridge> [ddnet] Well i cannot judge how well it worked, but if it worked well it's a loss 09:12 <+bridge> [ddnet] Also code design bitching most annoying thing xd 09:12 <+bridge> [ddnet] U set labels according to which files changes 09:12 <+bridge> [ddnet] Well it sets the labels auto 09:13 <+bridge> [ddnet] No life maintainers that need to find a reason to trigger a review so that xddd 09:13 <+bridge> [ddnet] Idk but heinrich code style in rust os smth i dislike xd 09:13 <+bridge> [ddnet] Do 09:13 <+bridge> [ddnet] But i didnt open a pr 09:13 <+bridge> [ddnet] For that 09:13 <+bridge> [ddnet] He did the same in ddnet btw 09:14 <+bridge> [ddnet] With the new lives 09:14 <+bridge> [ddnet] Lines 09:14 <+bridge> [ddnet] Yeah 09:14 <+bridge> [ddnet] But i wont fight the authority 09:14 <+bridge> [ddnet] :monkalaugh: 09:14 <+bridge> [ddnet] And ddnet is cpp which is ugly already 09:15 <+bridge> [ddnet] Chill 09:16 <+bridge> [ddnet] But yeah Heinrich is dictator 09:16 <+bridge> [ddnet] But chill 09:18 <+bridge> [ddnet] He asks motivation for my prs but he himself doesnt give any on most he does 09:19 <+bridge> [ddnet] Chill but things end up going his way 90% of the time 09:20 <+bridge> [ddnet] Or 99 09:20 <+bridge> [ddnet] Anyway don't be mad bcs of these labels. We can still always add them if we feel like it 09:20 <+bridge> [ddnet] Yeah 99.99% 09:21 <+bridge> [ddnet] But the pr adds a ci action that does it auto 09:21 <+bridge> [ddnet] It helps the future 09:22 <+bridge> [ddnet] You gotta fight ur prs till the end, its how u get things added 09:22 <+bridge> [ddnet] I had to do this endlessly for telegun 09:22 <+bridge> [ddnet] :BASED: 09:22 <+bridge> [ddnet] But theoretically that tool should be able to do it for previous prs too.. maybe it can't rn. But in the end it analyses the files changed^^ 09:23 <+bridge> [ddnet] It uses ci actions to trigger itself on the pr so 09:23 <+bridge> [ddnet] But a tool that uses the api and checks changed files on prs should be able to do it 10:16 <+bridge> [ddnet] Fixed size arrays are sexy, heap allocations not, get rekt zoomer. Pls hmu if you need any more coding advice 10:17 <+bridge> [ddnet] 🥹 10:28 <+bridge> [ddnet] Nein 11:19 <+bridge> [ddnet] hm. I probably read it before, but I only looked at the documentation I wrote while implementing it 11:20 <+bridge> [ddnet] newlines push other code off the screen. unless I actively want to separate something, I won't add a newline 11:20 <+bridge> [ddnet] because I want to avoid allocations, I wanted to show that I can make the code as allocation-less as the C code 11:22 <+bridge> [ddnet] you're interested in these labels and would actually use them? 11:23 <+bridge> [ddnet] I preferred swift closing over letting the PR rot for a couple of months while I don't merge it 11:28 <+bridge> [ddnet] can you give an example? 11:42 <+bridge> [ddnet] They also improve readability 11:42 <+bridge> [ddnet] I guess we will never be on friendly terms when it comes to style 11:43 <+bridge> [ddnet] Yeah closing a pr is a way to make sure it truly dies and rots 11:45 <+bridge> [ddnet] did I not respond to your comment (regardless of whether it was closed)? 11:45 <+bridge> [ddnet] You did 11:45 <+bridge> [ddnet] But it makes everyone else instantly lose interest on it 11:45 <+bridge> [ddnet] And nobody looks at closed prs 11:46 <+bridge> [ddnet] I look at every comment posted on the ddnet/ddnet repo 11:46 <+bridge> [ddnet] I guess you mean 'most people except those subscribed' 11:47 <+bridge> [ddnet] A stack allocation is still an allocation right? And if u store the tree in a vector, whether stack allocated or not, it has the same cache locality which is what matters here for perf right? 11:47 <+bridge> [ddnet] I rly wanna know if it being allocated on the stack gives visible perf improvements 11:47 <+bridge> [ddnet] a stack allocation is basically free 11:48 <+bridge> [ddnet] The allocation of the tree mostly happens once given a proper capacity 11:48 <+bridge> [ddnet] It should be free as in relative time spend compressing or not 11:48 <+bridge> [ddnet] it's done when the function is entered, the only thing that changes is the operand of the stack subtraction used for creating the function frame 11:48 <+bridge> [ddnet] it might be negligible 11:49 <+bridge> [ddnet] but you're redefining free here ^^ 11:49 <+bridge> [ddnet] but yea, using a vector there wouldn't degrade performance 11:49 <+bridge> [ddnet] Is your inpl limited by a frequency table of size N 11:49 <+bridge> [ddnet] ? 11:50 <+bridge> [ddnet] Can it be a freq table with 1000000 different values? 11:50 <+bridge> [ddnet] no, only 256 11:50 <+bridge> [ddnet] Impl* 11:50 <+bridge> [ddnet] I see 11:50 <+bridge> [ddnet] it's basically limited to compressing bytes like the teeworlds impl 11:51 <+bridge> [ddnet] Well mine is more general oriented, i also wanna try make it streaming 11:51 <+bridge> [ddnet] ah 🙂 11:52 <+bridge> [ddnet] ah, one benefit of the static array thing: I can compile in the table used for TW, no need to build it at runtime: https://github.com/heinrich5991/libtw2/blob/ded871091bb984f0419cac605b85ecf438c6fbcd/huffman/src/instances/teeworlds.rs 11:52 <+bridge> [ddnet] Does ur impl handpe the funny case with a freq table with only 1 element? 11:52 <+bridge> [ddnet] I found mine didnt with proptesting 11:52 <+bridge> [ddnet] Fixed it xd 11:52 <+bridge> [ddnet] no, it can only compress bytes ^^ 11:52 <+bridge> [ddnet] it only accepts frequency tables of the size 256 11:52 <+bridge> [ddnet] Not less ? 11:52 <+bridge> [ddnet] I see 11:53 <+bridge> [ddnet] not less 11:53 <+bridge> [ddnet] have you benchmarked your compression against the default implementation? mine was slower. I didn't implement the LUT optimization 11:54 <+bridge> [ddnet] Mine has a look up table to find the leaf node indexes on the tree vector 11:54 <+bridge> [ddnet] Idk if thats the LUT 11:55 <+bridge> [ddnet] LUT is lookup table, ye 11:56 <+bridge> [ddnet] basically, the teeworlds implementation has a map (table) for 8-bit sequences to the symbol they represent 11:56 <+bridge> [ddnet] And a binary heap for the priority queue 11:57 <+bridge> [ddnet] The wiki said to use 2 priority queues, but i did it with 1 11:57 <+bridge> [ddnet] is this for building the huffman representation? 11:57 <+bridge> [ddnet] Yeah 11:57 <+bridge> [ddnet] ah 11:57 <+bridge> [ddnet] I used rc refcell to store the nodes at the queue and the tree vector at the same time 11:57 <+bridge> [ddnet] But maybe it can be avoided, but idk 11:58 <+bridge> [ddnet] https://github.com/edg-l/rustyman/blob/f8e093a19be2da26a4701ac0cc2845e5fe9f60b8/src/lib.rs#L128 11:58 <+bridge> [ddnet] my first time implementing such thing so xd 12:02 <+bridge> [ddnet] you could try benchmarking your version against the TW implementation 12:04 <+bridge> [ddnet] Yeah 12:15 <+bridge> [ddnet] Now that i think about it 12:16 <+bridge> [ddnet] Limiting it to bytes only makes sense 12:16 <+bridge> [ddnet] Im dumb 12:16 <+bridge> [ddnet] Iirc the freq table will be 256 and the tree will be 256 + 256 - 1 right? 12:18 <+bridge> [ddnet] ` A finished tree has up to n n leaf nodes and n − 1 n-1 internal nodes. A Huffman tree that omits unused symbols produces the most optimal code lengths. ` 12:18 <+bridge> [ddnet] ` A finished tree has up to n leaf nodes and n-1 internal nodes. A Huffman tree that omits unused symbols produces the most optimal code lengths. ` 12:19 <+bridge> [ddnet] I haven't yet thought about them 12:30 <+bridge> [ddnet] yup 13:20 <+bridge> [ddnet] I went to stack based tree and table 13:20 <+bridge> [ddnet] Perf improved 13:21 <+bridge> [ddnet] 18% but ther may be some noise 13:21 <+bridge> [ddnet] But i think i did another optimization 13:21 <+bridge> [ddnet] Go back to heap based. Stack is for old people like me 13:22 <+bridge> [ddnet] The thing about knowing beforehand the size of the tree helps 13:22 <+bridge> [ddnet] Maybe allocate on the cloud instead 🤔 13:22 <+bridge> [ddnet] @Learath2 why hate the heap so much 13:22 <+bridge> [ddnet] use real tree and plant them in your garden with the correct alignment 🙂 13:23 <+bridge> [ddnet] use real trees and plant them in your garden with the correct alignment 🙂 13:23 <+bridge> [ddnet] Because I'm old duh. Even with modern arena allocators heap allocations are slow 13:23 <+bridge> [ddnet] I made the lut be inside the tree too, first 256 elements inside the tree vec correspond to the bytes 13:23 <+bridge> [ddnet] if it works on the stack, why not do it there. it's at least as performant, maybe even more performant 13:23 <+bridge> [ddnet] Idk if correct but my tests passed 13:24 <+bridge> [ddnet] E.g to quickly find the leaf node for byte x i index on the tree[x] 13:24 <+bridge> [ddnet] Cuz i built it with that in mind 13:25 <+bridge> [ddnet] Learning huffman was fun 13:25 <+bridge> [ddnet] I also have some quick access for that, probably 13:26 <+bridge> [ddnet] Huffman is a pretty nice learning tool. Simple enough to understand and implement, yet still good enough to be practically useful 13:26 <+bridge> [ddnet] Yeah 13:26 <+bridge> [ddnet] Iirc it goes near the shannon limit 13:26 <+bridge> [ddnet] For smth 13:26 <+bridge> [ddnet] I forgot 13:27 <+bridge> [ddnet] it's optimal for symbols that are multiples of bits long 13:27 <+bridge> [ddnet] arithmetic coding is the optimal one if you ignore that restriction 13:27 <+bridge> [ddnet] but it has had some patent issues. the patents expired recently, I think 13:28 <+bridge> [ddnet] Patents 13:29 <+bridge> [ddnet] only an issue in the free united states of america 13:29 <+bridge> [ddnet] europe doesn't have software patents 13:29 <+bridge> [ddnet] (although the USA tries to sneak them into trade agreements every once in a while) 13:30 <+bridge> [ddnet] Sneaking in freedom 13:31 <+bridge> [ddnet] If only we could restrict people from using knowledge we could be freer in europe aswell 14:23 <+ChillerDragon> politics 14:28 <+bridge> [ddnet] Sorry 15:03 <+ChillerDragon> is it legal to say that the input packet is a keepalive packet? 15:13 <+bridge> [ddnet] hypocrisy at its finest 15:13 <+bridge> [ddnet] https://www.reddit.com/r/technology/comments/ydovb9/apple_confirms_the_iphone_is_getting_usbc_but/ 15:25 <+bridge> [ddnet] 15:25 <+bridge> [ddnet] the commit to use more stack 15:25 <+bridge> [ddnet] instead of the bad evil heap 15:46 <+bridge> [ddnet] no, there's also an actual keep-alive packet, ChillerDargon 15:52 <+bridge> [ddnet] Its ilegal and ill call the cops 16:47 <+ChillerDragon> thanks @heinrich5991 :) but does sending input replace the keep alive? in my dump it looks like the inputs are being sent by the client even if i am afk 17:40 <+bridge> [ddnet] discord sux 17:40 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1034854146119057560/unknown.png 17:41 <+bridge> [ddnet] I am the only one with that tf 17:41 <+bridge> [ddnet] @ReiTW its new 17:41 <+bridge> [ddnet] oh ok they added profile theme 17:41 <+bridge> [ddnet] U can change color 17:41 <+bridge> [ddnet] Mine is p cool 17:41 <+bridge> [ddnet] again a so useful feature 17:41 <+bridge> [ddnet] Its nitro 17:41 <+bridge> [ddnet] I like it 17:41 <+bridge> [ddnet] still useless 17:41 <+bridge> [ddnet] I can dab on the plebs 17:42 <+bridge> [ddnet] :BASED: 17:42 <+bridge> [ddnet] damn 17:42 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1034854603008790538/unknown.png 17:43 <+bridge> [ddnet] xd 17:51 <+bridge> [ddnet] ChillerDragon: the keep-alive packet is only sent when no other packet is sent in 1? second 17:51 <+bridge> [ddnet] thus the input packets do keep the connection alive 18:00 <+ChillerDragon> okay thanks 18:08 <+bridge> [ddnet] Juil 18:33 <+bridge> [ddnet] <7mzom alonso> how can but multeasy map in my server 18:33 <+bridge> [ddnet] <7mzom alonso> :) 18:37 <+bridge> [ddnet] #questions 21:58 <+bridge> [ddnet] @Ryozuki wtf 21:58 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1034918898614665277/unknown.png 21:58 <+bridge> [ddnet] oh yeah 21:58 <+bridge> [ddnet] its where they make the battleships 21:58 <+bridge> [ddnet] its just floof tho 21:58 <+bridge> [ddnet] but fun 22:00 <+bridge> [ddnet] I wonder how you can find zones where they come to fight 22:00 <+bridge> [ddnet] or when pirates takes control over one of the battleship 22:00 <+bridge> [ddnet] go to a system at war 22:00 <+bridge> [ddnet] filter 22:00 <+bridge> [ddnet] btw 22:00 <+bridge> [ddnet] https://inara.cz 22:00 <+bridge> [ddnet] this is ur web for all things elite 22:00 <+bridge> [ddnet] https://inara.cz/elite/cmdr/323299/ 22:00 <+bridge> [ddnet] this is me 22:02 <+bridge> [ddnet] can't find myself 22:02 <+bridge> [ddnet] lo 22:02 <+bridge> [ddnet] lol 22:03 <+bridge> [ddnet] cuz u need to make a account 22:03 <+bridge> [ddnet] ah 22:03 <+bridge> [ddnet] and link 22:03 <+bridge> [ddnet] lazty 22:03 <+bridge> [ddnet] lazy 22:03 <+bridge> [ddnet] its the best for trade routes 22:03 <+bridge> [ddnet] and blueprints 22:03 <+bridge> [ddnet] have you ever attempted to do the golden road 22:03 <+bridge> [ddnet] idk how it is called in english 22:03 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1034920332949200976/unknown.png 22:04 <+bridge> [ddnet] nah 22:04 <+bridge> [ddnet] the famous very long jumps to be rich lmao 22:04 <+bridge> [ddnet] yeah but u dont rly get rich 22:04 <+bridge> [ddnet] trading is fastest 22:04 <+bridge> [ddnet] ig i'll make an acc 22:04 <+bridge> [ddnet] i get 30 million on each run 22:04 <+bridge> [ddnet] from a to b and back 22:05 <+bridge> [ddnet] i made about 230 million per hour? 22:05 <+bridge> [ddnet] tf 22:05 <+bridge> [ddnet] but there are ways to get more 22:05 <+bridge> [ddnet] i think stacking missions 22:05 <+bridge> [ddnet] to kill 22:05 <+bridge> [ddnet] but u gotta do research 22:06 <+bridge> [ddnet] k k 22:06 <+bridge> [ddnet] we'll test that out lol wtf 22:06 <+bridge> [ddnet] but i get 30 million cuz i trade with my space cow 22:06 <+bridge> [ddnet] aka type-9 heavy 22:06 <+bridge> [ddnet] ah 22:07 <+bridge> [ddnet] I have an anaconda and my mate a imperial cutter 22:07 <+bridge> [ddnet] i got this 22:07 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1034921175387738142/unknown.png 22:07 <+bridge> [ddnet] yea I see what it is 22:15 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1034923236158361771/unknown.png 22:15 <+bridge> [ddnet] rtx be like 22:43 <+bridge> [ddnet] @Ryozuki im a bit confused by crates.io ui, can you tell me where i can find source code of this crate: https://crates.io/crates/ddnet-map-gen 22:44 <+bridge> [ddnet] its cuz i didnt link it on the cargo.toml cuz i forgot xd 22:44 <+bridge> [ddnet] forgor 💀 22:44 <+bridge> [ddnet] https://github.com/edg-l/ddnet-map-gen 22:44 <+bridge> [ddnet] thanks 22:47 <+bridge> [ddnet] I want to host something just like that 23:08 <+bridge> [ddnet] I think i will never understand aggregations 23:08 <+bridge> [ddnet] :PU_pepeFlowerSad: