Guild icon
DDraceNetwork
Development / developer
Development discussion. Logged to https://ddnet.tw/irclogs/ Connected with DDNet's IRC channel, Matrix room and GitHub repositories — IRC: #ddnet on Quakenet | Matrix: #ddnet-developer:matrix.org GitHub: https://github.com/ddnet
Between 2022-10-26 00:00:00Z and 2022-10-27 00:00:00Z
Avatar
The tool requires literally 0 maintenance but ok
06:04
What a boomer
06:04
@Jupstar ✪ no labels sadge
06:05
Tantivy is a full-text search engine library inspired by Apache Lucene and written in Rust - GitHub - quickwit-oss/tantivy: Tantivy is a full-text search engine library inspired by Apache Lucene an...
06:05
@Learath2
Avatar
Avatar
Ryozuki
@Jupstar ✪ no labels sadge
Does this also exist for issues?
Avatar
Avatar
Jupstar ✪
Does this also exist for issues?
you cant auto label issues because they dont change files
Avatar
@heinrich5991 i see ur huffman rust impl is focused on looking C-like
06:35
i guess this is why most of the code there looks ugly to me
06:35
also you dont like newlines right? you put every function as close as possible to each other
06:36
btw bit_vec is an amazing crate
06:39
why didnt you use a binaryheap from the std for the priority queue?
06:39
and why the focus on fixed size arrays vs using std collections while reserving capacity?
Avatar
[quakenet] ChillerDragon BOT 2022-10-26 07:08:15Z
lmao ryo nagging heinrich about rust code again :D
07:08
@Ryozuki stop bullying
Avatar
Avatar
Ryozuki
you cant auto label issues because they dont change files
Too bad, we need some nice gpt ai that does everything for us
Avatar
I just cant help it
07:10
Xd
07:11
@Jupstar ✪ but we had a tool for prs that does it and hein closed it
07:11
bluestripe
Avatar
Avatar
GitHub
Click to see attachment 🖼️
.
Avatar
Avatar
Ryozuki
@Jupstar ✪ but we had a tool for prs that does it and hein closed it
Well i cannot judge how well it worked, but if it worked well it's a loss
07:12
Also code design bitching most annoying thing xd
Avatar
U set labels according to which files changes
07:12
Well it sets the labels auto
Avatar
No life maintainers that need to find a reason to trigger a review so that xddd
Avatar
Avatar
Jupstar ✪
Also code design bitching most annoying thing xd
Idk but heinrich code style in rust os smth i dislike xd
Avatar
Do
Avatar
But i didnt open a pr
07:13
For that
Avatar
Avatar
Ryozuki
Idk but heinrich code style in rust os smth i dislike xd
He did the same in ddnet btw
07:14
With the new lives
07:14
Lines
07:14
But i wont fight the authority
07:14
monkalaugh
07:14
And ddnet is cpp which is ugly already
Avatar
Chill
07:15
But yeah Heinrich is dictator
07:16
But chill
Avatar
He asks motivation for my prs but he himself doesnt give any on most he does
07:19
Chill but things end up going his way 90% of the time
07:20
Or 99
Avatar
Anyway don't be mad bcs of these labels. We can still always add them if we feel like it
07:20
Yeah 99.99%
Avatar
But the pr adds a ci action that does it auto
07:21
It helps the future
07:22
You gotta fight ur prs till the end, its how u get things added
07:22
I had to do this endlessly for telegun
07:22
BASED
Avatar
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^^
Avatar
It uses ci actions to trigger itself on the pr so
07:23
But a tool that uses the api and checks changed files on prs should be able to do it
Avatar
Avatar
Ryozuki
and why the focus on fixed size arrays vs using std collections while reserving capacity?
Fixed size arrays are sexy, heap allocations not, get rekt zoomer. Pls hmu if you need any more coding advice
Avatar
Avatar
Ryozuki
@heinrich5991 i see ur huffman rust impl is focused on looking C-like
hm. I probably read it before, but I only looked at the documentation I wrote while implementing it
Avatar
Avatar
Ryozuki
also you dont like newlines right? you put every function as close as possible to each other
newlines push other code off the screen. unless I actively want to separate something, I won't add a newline
Avatar
Avatar
Ryozuki
and why the focus on fixed size arrays vs using std collections while reserving capacity?
because I want to avoid allocations, I wanted to show that I can make the code as allocation-less as the C code
Avatar
Avatar
Jupstar ✪
Anyway don't be mad bcs of these labels. We can still always add them if we feel like it
you're interested in these labels and would actually use them?
Avatar
Avatar
Ryozuki
@Jupstar ✪ but we had a tool for prs that does it and hein closed it
I preferred swift closing over letting the PR rot for a couple of months while I don't merge it
Avatar
Avatar
heinrich5991
you're interested in these labels and would actually use them?
can you give an example?
Avatar
Avatar
heinrich5991
newlines push other code off the screen. unless I actively want to separate something, I won't add a newline
They also improve readability
09:42
I guess we will never be on friendly terms when it comes to style
Avatar
Avatar
heinrich5991
I preferred swift closing over letting the PR rot for a couple of months while I don't merge it
Yeah closing a pr is a way to make sure it truly dies and rots
Avatar
Avatar
Ryozuki
Yeah closing a pr is a way to make sure it truly dies and rots
did I not respond to your comment (regardless of whether it was closed)?
Avatar
You did
09:45
But it makes everyone else instantly lose interest on it
09:45
And nobody looks at closed prs
Avatar
I look at every comment posted on the ddnet/ddnet repo
09:46
I guess you mean 'most people except those subscribed'
Avatar
Avatar
heinrich5991
because I want to avoid allocations, I wanted to show that I can make the code as allocation-less as the C code
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?
09:47
I rly wanna know if it being allocated on the stack gives visible perf improvements
Avatar
a stack allocation is basically free
Avatar
The allocation of the tree mostly happens once given a proper capacity
09:48
It should be free as in relative time spend compressing or not
Avatar
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
09:48
it might be negligible
09:49
but you're redefining free here ^^
09:49
but yea, using a vector there wouldn't degrade performance
Avatar
Is your inpl limited by a frequency table of size N
09:49
?
09:50
Can it be a freq table with 1000000 different values?
Avatar
no, only 256
09:50
I see
Avatar
it's basically limited to compressing bytes like the teeworlds impl
Avatar
Well mine is more general oriented, i also wanna try make it streaming
Avatar
ah 🙂
09:52
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
Avatar
Does ur impl handpe the funny case with a freq table with only 1 element?
09:52
I found mine didnt with proptesting
09:52
Fixed it xd
Avatar
no, it can only compress bytes ^^
09:52
it only accepts frequency tables of the size 256
Avatar
Not less ?
09:52
I see
Avatar
not less
09:53
have you benchmarked your compression against the default implementation? mine was slower. I didn't implement the LUT optimization
Avatar
Mine has a look up table to find the leaf node indexes on the tree vector
09:54
Idk if thats the LUT
Avatar
LUT is lookup table, ye
09:56
basically, the teeworlds implementation has a map (table) for 8-bit sequences to the symbol they represent
Avatar
And a binary heap for the priority queue
09:57
The wiki said to use 2 priority queues, but i did it with 1
Avatar
Avatar
Ryozuki
And a binary heap for the priority queue
is this for building the huffman representation?
Avatar
ah
Avatar
I used rc refcell to store the nodes at the queue and the tree vector at the same time
09:57
But maybe it can be avoided, but idk
09:58
Huffman compression and decompression implemented in rust - rustyman/lib.rs at f8e093a19be2da26a4701ac0cc2845e5fe9f60b8 · edg-l/rustyman
09:58
my first time implementing such thing so xd
Avatar
you could try benchmarking your version against the TW implementation
Avatar
Now that i think about it
10:15
Limiting it to bytes only makes sense
10:16
Im dumb
10:16
Iirc the freq table will be 256 and the tree will be 256 + 256 - 1 right?
10:18
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. (edited)
Avatar
Avatar
heinrich5991
you're interested in these labels and would actually use them?
I haven't yet thought about them
Avatar
Avatar
Ryozuki
Iirc the freq table will be 256 and the tree will be 256 + 256 - 1 right?
yup
Avatar
I went to stack based tree and table
11:20
Perf improved
11:21
18% but ther may be some noise
11:21
But i think i did another optimization
Avatar
Go back to heap based. Stack is for old people like me
Avatar
The thing about knowing beforehand the size of the tree helps
Avatar
Maybe allocate on the cloud instead 🤔
Avatar
@Learath2 why hate the heap so much
Avatar
use real trees and plant them in your garden with the correct alignment 🙂 (edited)
Avatar
Avatar
Ryozuki
@Learath2 why hate the heap so much
Because I'm old duh. Even with modern arena allocators heap allocations are slow
Avatar
I made the lut be inside the tree too, first 256 elements inside the tree vec correspond to the bytes
Avatar
Avatar
Ryozuki
@Learath2 why hate the heap so much
if it works on the stack, why not do it there. it's at least as performant, maybe even more performant
Avatar
Idk if correct but my tests passed
11:24
E.g to quickly find the leaf node for byte x i index on the tree[x]
11:24
Cuz i built it with that in mind
11:25
Learning huffman was fun
Avatar
I also have some quick access for that, probably
Avatar
Huffman is a pretty nice learning tool. Simple enough to understand and implement, yet still good enough to be practically useful
11:26
Iirc it goes near the shannon limit
11:26
For smth
11:26
I forgot
Avatar
it's optimal for symbols that are multiples of bits long
11:27
arithmetic coding is the optimal one if you ignore that restriction
11:27
but it has had some patent issues. the patents expired recently, I think
Avatar
Patents pepeW
Avatar
only an issue in the free united states of america
11:29
europe doesn't have software patents
11:29
(although the USA tries to sneak them into trade agreements every once in a while)
Avatar
Sneaking in freedom
Avatar
If only we could restrict people from using knowledge we could be freer in europe aswell
Avatar
[quakenet] ChillerDragon BOT 2022-10-26 12:23:33Z
politics
Avatar
Sorry
Avatar
[quakenet] ChillerDragon BOT 2022-10-26 13:03:03Z
is it legal to say that the input packet is a keepalive packet?
13:25
the commit to use more stack
13:25
instead of the bad evil heap
kek 1
Avatar
Avatar
[quakenet] ChillerDragon
is it legal to say that the input packet is a keepalive packet?
no, there's also an actual keep-alive packet, ChillerDargon
Avatar
Avatar
[quakenet] ChillerDragon
is it legal to say that the input packet is a keepalive packet?
Its ilegal and ill call the cops
Avatar
[quakenet] ChillerDragon BOT 2022-10-26 14:47:07Z
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
Avatar
discord sux
15:40
15:41
I am the only one with that tf
Avatar
@ReiTW its new
Avatar
oh ok they added profile theme
Avatar
U can change color
15:41
Mine is p cool
Avatar
again a so useful feature
Avatar
Its nitro
15:41
I like it
Avatar
still useless
Avatar
I can dab on the plebs
15:42
BASED
15:42
Avatar
ChillerDragon: the keep-alive packet is only sent when no other packet is sent in 1? second
15:51
thus the input packets do keep the connection alive
Avatar
[quakenet] ChillerDragon BOT 2022-10-26 16:00:28Z
okay thanks
Avatar
Avatar
ReiTW
Click to see attachment 🖼️
Juil
Avatar
Original message was deleted or could not be loaded.
#questions
Avatar
I set up dark grey for freeze lasers but it uses the green rifle laser color for the rotating freezing lasers. Otherwise rifle, shotgun, and door colors work. ddnet 16.5 & 16.4 !ddnetlasers
Avatar
@Ryozuki wtf
19:58
Avatar
oh yeah
19:58
its where they make the battleships
19:58
its just floof tho
19:58
but fun
Avatar
I wonder how you can find zones where they come to fight
20:00
or when pirates takes control over one of the battleship
Avatar
go to a system at war
20:00
filter
20:00
btw
20:00
The companion site for Elite:Dangerous. Market data, CMDR's logs, squadrons, logbooks, galleries, powerplay, engineers, blueprints, crafting, galaxy info, news and more...
20:00
this is ur web for all things elite
20:00
The companion site for Elite:Dangerous. Market data, CMDR's logs, squadrons, logbooks, galleries, powerplay, engineers, blueprints, crafting, galaxy info, news and more...
20:00
this is me
Avatar
can't find myself
20:02
lol (edited)
Avatar
cuz u need to make a account
Avatar
and link
Avatar
lazy (edited)
Avatar
its the best for trade routes
20:03
and blueprints
Avatar
have you ever attempted to do the golden road
20:03
idk how it is called in english
20:04
nah
Avatar
the famous very long jumps to be rich lmao
Avatar
yeah but u dont rly get rich
20:04
trading is fastest
Avatar
ig i'll make an acc
Avatar
i get 30 million on each run
20:04
from a to b and back
20:05
i made about 230 million per hour?
Avatar
but there are ways to get more
20:05
i think stacking missions
20:05
to kill
20:05
but u gotta do research
20:06
we'll test that out lol wtf
Avatar
but i get 30 million cuz i trade with my space cow
20:06
aka type-9 heavy
20:07
I have an anaconda and my mate a imperial cutter
Avatar
i got this
20:07
Avatar
yea I see what it is
20:15
rtx be like
Avatar
@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
Avatar
its cuz i didnt link it on the cargo.toml cuz i forgot xd
Avatar
forgor 💀
Avatar
A map generator made in Rust using twmap. Contribute to edg-l/ddnet-map-gen development by creating an account on GitHub.
Avatar
thanks
Avatar
Avatar
TsFreddie
i have fng coded in a private repo so i can tell if the interface is good enough (and it is, at least for fng)
I want to host something just like that
Avatar
I think i will never understand aggregations
21:08
PU_pepeFlowerSad
Avatar
Avatar
Meekrioz
I think i will never understand aggregations
Do you understand groups?
22:35
Aggregate functions operate of GROUPS of rows, instead of just rows
Avatar
Just changed my email to a chinese provider from outlook. justatest
23:42
I changed from gmail to outlook like three years ago
23:43
justatest now i realise there are exactly 0 good android email apps in china.
23:43
I would use spark but google's notification doesn't work all the time here
Exported 250 message(s)