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 2017-09-04 00:00:00Z and 2017-09-05 00:00:00Z
Avatar
<deen> eeeee: interesting. very small pointer for me in firefox and feels laggy, I see tearing as well
07:55
<deen> @nub thanks, should be fixed. forgot to update the servers as well
Avatar
<Learath2> eeeee: can't seem to connect to servers
Avatar
<deen> the new info.ddnet.tw seems to work fine: avg time per request: 8 ms, 95th percentile: 70 ms
08:58
<deen> (and 0 errors so far)
Avatar
hey guys I need a small project done in c++(not in teeworlds) and would pay for it. someone interested ?
Avatar
ChillerDragon 2017-09-04 10:10:11Z
If it Is an easy Project hehe
10:10
I can Build you an helloworld
Avatar
I think, here are some gods of cpp
Avatar
ChillerDragon 2017-09-04 10:16:38Z
No joke i would help you. But i Need some Details If i can handle The task.
Avatar
<deen> And 47 people are STILL downloading https://hookrace.net/time.gif . I guess some bots don't have a timeout setting
Avatar
<heinrich5991> deen: maybe their hdd will be full eventually ^^
11:49
<heinrich5991> wait
11:49
<heinrich5991> it doesn't stop downloading after 24 hours? :)
11:50
<heinrich5991> I thought it would ^^
Avatar
<deen> nope, never stops
12:04
<deen> it would be wrong to stop after 24 hours since there are leap seconds sometimes
12:04
<deen> well, at 300 B/s it takes a while to fill the disk
12:05
<heinrich5991> :)
12:05
<deen> Only 9 GB per year
12:05
<heinrich5991> hm, that's slower than hdds will be added to a machine
12:06
<heinrich5991> so it can run forever \o/
12:06
<heinrich5991> I was away the last couple of days
12:06
<deen> welcome back
12:06
<heinrich5991> it seems you fixed the mac semaphore hting?
12:06
<deen> with Learath2
12:06
<heinrich5991> so we could close the PR?
12:07
<deen> but I'm not happy with the way semaphores are implemented in glibc
12:07
<deen> what pr?
12:07
<heinrich5991> oh, firefox loaded an old page from cache
12:07
<heinrich5991> nvm
12:07
<deen> so i wanted to use condition variables, but their semantics are weird
12:07
<heinrich5991> ah
12:08
<heinrich5991> what do you mean, semaphores in glibc?
12:08
<deen> the implementation of sem_wait in glibc source code
12:08
<heinrich5991> oh
12:08
<deen> too much busy waiting, syscalls all the time
12:08
<heinrich5991> spin lock for a bit and then wait using the os?
12:09
<deen> keeps syscalling futex() even when nothing happens
12:09
<heinrich5991> due to a timeout?
12:09
<deen> no timeouts either
12:09
<deen> try running strace DDNet and see it yourself
12:09
<heinrich5991> how can it call futex if there's no timeout?
12:10
<heinrich5991> futex should wait until it gets signalled, no?
12:10
<heinrich5991> k, I'll try
12:13
<deen> (the network can also be improved in the client I think, similar to server)
12:13
<deen> not to recv all the time
12:14
<deen> especially if you select over all the sockets we have open
12:14
<heinrich5991> hm
12:14
<deen> instead of blocking like in server
12:14
<heinrich5991> not much point there
12:14
<deen> probably
12:14
<heinrich5991> you have to push out a frame every 16ms anyway
12:14
<deen> font rendering is a lower hanging fruit
12:14
<heinrich5991> yes
12:14
<deen> and much slower
12:15
<deen> for the server it was a great improvement not to busy wait for network packets though
12:15
<deen> especially when you have 30 servers on 1 core, mostly idling
12:15
<heinrich5991> yep
12:15
<heinrich5991> most of them even empty
12:15
<heinrich5991> literally having nothing to do ^^
12:15
<deen> so strace ./DDNet-Server is much more reasonable
12:15
<deen> 3 syscalls per second
12:20
<deen> no one complained about performance problems on Windows, so I assume the semaphores work there as well
12:21
<deen> I switched some more code over to semaphores
12:21
<deen> btw, can we make CFetcher use CJobs instead of reimplementing the same thing?
12:21
<deen> Or is there a vital difference?
12:25
<deen> the threaded logger is basically the same as well
12:25
<heinrich5991> not that I'm aware of
12:26
<heinrich5991> Learath2 said that you will murder him if he implements CFetcher atop of CJobs though
12:26
<deen> Only if he breaks the updater during that process :)
12:26
<heinrich5991> ah
12:26
<deen> I also removed the versionsrv entirely
12:26
<heinrich5991> well, doesn't matter
12:26
<heinrich5991> don't we run one, though?
12:27
<heinrich5991> ah
12:27
<heinrich5991> +1
12:27
<deen> yeah, we still run it for old versions
12:27
<deen> most notably, servers is sorted by how often you finished at a location
12:28
<deen> oh, and I had to use /info because otherwise we will run into problems with letsencrypt
12:29
<heinrich5991> why?
12:29
<deen> if I forward everything, then certbot can't put the file into the directory
12:29
<heinrich5991> yes
12:29
<heinrich5991> it needs .well_known
12:29
<deen> so we have no proof that the domain is still under our control
12:29
<heinrich5991> location /.well-known/acme-challenge/ {
12:29
<heinrich5991> alias /var/www/challenges/;
12:29
<heinrich5991> try_files $uri =404;
12:29
<heinrich5991> }
12:30
<deen> oh well, too late :D
Avatar
what does "acme" means ?
12:33
i saw it a few times in different situations
12:33
it has special meanings?
12:33
or it just popular author? 😄
Avatar
<heinrich5991> acme is the protocol that letsencrypt speaks
12:35
<heinrich5991> to give you ssl certificates
12:35
12:36
<heinrich5991> it's not actually in there
12:36
Acme is a text editor and graphical shell from the Plan 9 from Bell Labs operating system, designed and implemented by Rob Pike. It can use the Sam command language. The design of the interface was influenced by Oberon. It is different from other...
12:36
<heinrich5991> :o
12:36
Let's Encrypt is a certificate authority that launched on April 12, 2016 that provides free X.509 certificates for Transport Layer Security (TLS) encryption via an automated process designed to eliminate the current complex process of manual crea...
12:36
<heinrich5991> here's a reference to ACME
12:37
<heinrich5991> ah
12:37
<heinrich5991> it actually exists on the page, but I couldn't find it, despite me knowing it
12:37
<heinrich5991> that's a bad sign :D
12:37
The Automatic Certificate Management Environment (ACME) protocol is a communications protocol for automating interactions between certificate authorities and their users' web servers, allowing the automated deployment of public key infrastructure...
12:41
<heinrich5991> deen: I think you should use POST instead of GET parameters
12:41
<heinrich5991> GET parameters show up in server logs
12:42
<deen> is that a problem?
Avatar
so acme is over used naming !@
Avatar
<heinrich5991> well, you now have a log of each ddnet player's IP address and nick name in your webserver log
12:43
<deen> I have the same already
12:44
<deen> from DDNet-Server
12:44
<heinrich5991> when they join the server
12:44
<deen> Yeah
12:44
<deen> So we should only log the name if there is a problem?
12:45
<heinrich5991> would you expect that your nick name lands on some server when you click a tab in a server browser
12:45
<deen> I find it useful to see if some name is especially slow for example
12:45
<heinrich5991> that would be better, I guess
12:45
<Learath2> could implement CFetcher on CJob but i'm scared it'll break that one remote ass possiblity that i didn't think about
12:45
<Learath2> no idea why i didn't make it a cjob at the beginning tho
12:45
<deen> heinrich5991: when that tab shows you your finished maps, yes
12:46
<heinrich5991> I don't know, I dislike it
12:47
<deen> The request or logging it?
12:47
<heinrich5991> first it was just logging it, but after thinking again, the request
12:48
<Learath2> class CFetchJob { CJob m_Job; allthestufffromCFetchTask; }; pass CFetchjob as userdata to the job. use CFetchjob as we used CFetchtask in the past
12:48
<deen> So we can add a setting "Use username to request finished maps and sort servers"
12:48
<Learath2> sounds sane ^^?
12:48
<deen> and if it's turned off, then the info is requested without name
12:49
<Learath2> how can you request that data without a name?
12:49
<heinrich5991> there's other stuff in there
12:49
<heinrich5991> more than just your records
12:49
<deen> yeah, still request it
12:49
<heinrich5991> it apparently replaces the versionsrv
12:50
<deen> but you just get empty records back
12:50
<Learath2> also replaces the servers json we had?
12:50
<deen> yes
12:51
<deen> and the news from versionsrv as well
12:51
<Learath2> well we could have a setting for "Show finished maps"
12:51
<Learath2> if it's not checked we don't need to request by name afterall
12:52
<deen> exactly what I just proposed
12:52
<Learath2> heinrich5991: ^^ reasonable?
12:52
<heinrich5991> if I added a box with information about this to the ddnet tab, would you consider making this opt-in?
12:52
<heinrich5991> so people will see the feature and won't request it unknowingly?
12:52
<deen> Well, people won't find that info
12:53
<heinrich5991> to the ddnet tab, near the place where the records would be showed otherwise
12:53
<Learath2> don't really have enough space in the serverbrowser to write an essay either, you'd only fit "Show finished maps"
12:53
<deen> even if you make it opt-out, they would click it by accident
12:53
<heinrich5991> see: vlc asks on first launch whether it can access metadata from a remote server for stuff you're currently playing
12:53
<heinrich5991> firefox also asks on first launch whether it can transmit data
12:54
<deen> there you go, no more name necessary
12:54
<deen> Ideally make it opt-in, but ask people at the first start
12:55
<Learath2> make it opt-in noone uses it, make it opt-out it's a privacy concern (a minor one imho)
12:55
<heinrich5991> Learath2: not if we don't hide it in the options somewhere
12:56
<Learath2> well i don't see anywhere to put it in the serverbrowser window so it needs to be a on startup thing like the nickname setting etc
12:56
<heinrich5991> yes, that would be bad
12:56
<heinrich5991> first launch questions are annoying
12:56
<heinrich5991> those that you can't skip
12:56
<Learath2> so POPUP_FIRST_LAUNCH or idk where to put :/
12:58
<deen> at least you can add it in the dialog at the start where you enter your name
12:58
<deen> it fits well there
12:59
<heinrich5991> true, it can be put into the same dialog
13:00
<Learath2> deen: do you want me to make CFetchTask->CFetchJob
13:00
<deen> but make an even bigger warning that their ip is broadcasted to every server when they open internet server browser
13:00
<deen> Learath2: only if it will have 0 bugs
13:00
<deen> becuase people still get ddosed from that
13:00
<heinrich5991> and if they deny that, don't show the server browser ^^
13:00
<heinrich5991> but actually, we could do that
13:01
<heinrich5991> fetch the servers ourselves and put them into your info.json
heartw 1
13:01
<Learath2> deen: you can't promise that, i can't promise that, i'm pretty sure even god would think twice before promising that
13:02
<Learath2> deen: eeeee has the teewebs serverlist available as json, could switch to using that instead of masters, calculating ping is not an exact science in that case but we'd get to upgrade to http masters :P
13:03
<heinrich5991> nah, we still need all servers
13:03
<Learath2> heinrich5991: i think eeeee has all the servers
13:03
<heinrich5991> what use would that be?
13:03
<heinrich5991> they don't support websockets
13:03
<heinrich5991> or webrtc
13:03
<heinrich5991> or whatever the current flavor of the day is
13:03
<Learath2> ask him wtf
13:04
<heinrich5991> or he proxies it
13:04
<Learath2> only supports connecting to ddnet servers but iirc he does keep a json list of all servers
13:06
<Learath2> deen: serverinfo amplification is still possible?
13:08
<heinrich5991> yes, modulo rate limiting
Avatar
why
14:05
on monster
14:05
there are
14:05
2 teamrnaks of NANAMAR
14:05
and Saro
14:05
Showing
Avatar
<deen> someone might have played with moving ranks
14:09
<deen> or deleting ranks
14:09
<deen> or a bug
14:09
<deen> or the database link was broken for some time
14:10
<deen> apparently I didn't manage to fix the libfreetype on mac: https://forum.ddnet.tw/viewtopic.php?t=5654
14:10
<deen> it links to heinrich5991 directory, haha
14:11
<deen> heinrich5991: want to look into the mac library problem?
Avatar
so you will fix it?
Avatar
<deen> ok
Avatar
<heinrich5991> I can try
Avatar
<deen> thanks
Avatar
8234d5a Update settings&commands - def-
15:24
7283278 Fix settingscommands style on mobile (Thanks Cr... - def-
15:25
Avatar
<deen> heinrich5991: should remove the user agent as well as it is leaking information about the users?
15:36
<heinrich5991> mh no
15:37
<deen> Actually I didn't introduce an option for the ranks json thing because I noticed that we have way too many settings
15:37
<deen> and people set stuff by accident
15:37
<deen> or even another client changes ddnet settings and then we run into problems
15:37
<deen> like baumalein client allegedly changing the update server to their own
15:37
<deen> in settings_ddnet.cfg
15:42
<heinrich5991> deen: too many options is a valid concern
15:42
<heinrich5991> not for this thing, but: do people also set options accidently that are not exposed through the UI?
15:43
<deen> rarely
15:43
<deen> that's also why I removed some stuff from settings
15:44
<deen> I also thought the next step might be making info.json a log in ;)
15:44
<heinrich5991> oh so you want an account system? ^^
15:44
<deen> not sure
15:44
<deen> has advantages and disadvantages
Avatar
<eeeee> deen: Learath2: wrt teewebs can you provide more details like browser and os version, gpu model
17:30
<eeeee> also what is "laggy", frame drops or network drops?
17:31
<deen> current firefox, arch linux x86-64, intel skylake gpu
17:32
<deen> 3840x2160 resolution, but 1920x1080 window
Avatar
eeeee: spectator mode works weird on beta.teewebs.net
17:32
its always moving, if you move cursor in whatever direction
17:32
😄
Avatar
<deen> frame drops
Avatar
anyway, does /kill is disabled
17:33
on spawn?
Avatar
<deen> chromium works much better
17:34
<deen> oh, I have multiple processes enabled in firefox
17:34
<deen> text loads quite slowly
Avatar
anyway, cursor shouldn't be disabled ?
Avatar
eeeee: vivaldi, gentoo, intel integrated gfx
17:50
on second thought i should have used a more common browser to test 😛
Avatar
<deen> like qutebrowser
17:51
<heinrich5991> why not elinks?
17:52
<deen> you can only run DDNet-Server in javascript in elinks
17:52
<deen> client is a bit problematic
17:53
<deen> I'm not sure if it was elinks, but I tried editing one of links/lynx/elinks once, and the source code was full of polish comments only
17:53
<deen> or czech
Avatar
<eeeee> ok yeah i did notice that high resolution is laggy on my broadwell macbook, maybe i'll dig into that
18:57
<eeeee> will fix the text loading once i settle on a way to get rid of freetype
19:01
<eeeee> Savander: specactor mode stops moving when you center your cursor. it's hard to make it work the same way as in desktop client because browsers don't let you easily switch between absolute and relative mouse positioning
19:02
<eeeee> Learath2: can you update your browser to the latest version and then copypaste the contents of developer tools console after it fails to connect to a server?
19:04
<eeeee> and what's qutebrowser, is that like konqueror?
Avatar
What about disabling mouse ?
19:06
in previous teewebs you did it
Avatar
<eeeee> yeah but if you compare the mouse pointer between the old and new teewebs you can notice new one has less latency
Avatar
but its pretty hard to control i think
19:07
cause, i can click random icon
19:07
no web or close the window 😛
Exported 254 message(s)