Guild icon
DDraceNetwork
Development / developer
Development discussion. Logged to https://ddnet.org/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 2024-01-03 00:00:00Z and 2024-01-04 00:00:00Z
Avatar
any devs, i know furo gonna blame me, but how can i stop looping this mf?
01:11
bool IsParsed = false; const char *pname = Client()->PlayerName(); if(!IsParsed) { m_pClient->m_Stats.FetchPlayer(&s_StatsPlayer, pname); if(!s_StatsPlayer.m_pGetStatsDDStats) return; if(s_StatsPlayer.m_pGetStatsDDStats->State() == s_StatsPlayer.m_pGetStatsDDStats->STATE_PENDING) return; if(!s_StatsPlayer.StatsParsed && s_StatsPlayer.m_pGetStatsDDStats->State() == s_StatsPlayer.m_pGetStatsDDStats->STATE_DONE) return m_pClient->m_Stats.ParseJSON(&s_StatsPlayer); IsParsed = true; }
Avatar
you’re returning before you set IsParsed to true
Avatar
BlaiZephyr | meloƞ 2024-01-03 01:43:33Z
the return m_pClient->m_Stats.ParseJSON(&s_StatsPlayer); does what it should, return!, placing isParsed = true after that has no effect (edited)
Avatar
this is not python, use {} for multi line statements after if
02:13
btw, i don't see any loop in there
Avatar
pls use auto format
Avatar
how long until a ddnet server fix is live in the servers? (edited)
04:28
cause I still cant see finish messages
Avatar
chillerdragon BOT 2024-01-03 06:41:41Z
There is no fixed protocol. Its whenever deen restarts the servers. You can speed it up by pinging deen to do so. Which finish messages do you mean by the way? For 0.7 (they for sure should be rolled out) or the new ones for 0.6 ddnet protocol?
Replying to @Fudgy how long until a ddnet server fix until its live in the servers?
Avatar
ChillerDragon BOT 2024-01-03 06:53:34Z
hmm fudgy so even the ddnet version works for me on ger and usa servers already so it should have worked for you too ._.
06:53
06:53
my hax client just doesnt support the texture yet
Avatar
რილია 2024-01-03 06:56:18Z
is this efficient ? located in ddrace.cpp int m_TileIndex = GameServer()->Collision()->GetTileIndex(MapIndex); int m_TileFIndex = GameServer()->Collision()->GetFTileIndex(MapIndex); //Sensitivity int S1 = GameServer()->Collision()->GetPureMapIndex(vec2(pChr->GetPos().x + pChr->GetProximityRadius() / 3.f, pChr->GetPos().y - pChr->GetProximityRadius() / 3.f)); int S2 = GameServer()->Collision()->GetPureMapIndex(vec2(pChr->GetPos().x + pChr->GetProximityRadius() / 3.f, pChr->GetPos().y + pChr->GetProximityRadius() / 3.f)); int S3 = GameServer()->Collision()->GetPureMapIndex(vec2(pChr->GetPos().x - pChr->GetProximityRadius() / 3.f, pChr->GetPos().y - pChr->GetProximityRadius() / 3.f)); int S4 = GameServer()->Collision()->GetPureMapIndex(vec2(pChr->GetPos().x - pChr->GetProximityRadius() / 3.f, pChr->GetPos().y + pChr->GetProximityRadius() / 3.f)); int Tile1 = GameServer()->Collision()->GetTileIndex(S1); int Tile2 = GameServer()->Collision()->GetTileIndex(S2); int Tile3 = GameServer()->Collision()->GetTileIndex(S3); int Tile4 = GameServer()->Collision()->GetTileIndex(S4); int FTile1 = GameServer()->Collision()->GetFTileIndex(S1); int FTile2 = GameServer()->Collision()->GetFTileIndex(S2); int FTile3 = GameServer()->Collision()->GetFTileIndex(S3); int FTile4 = GameServer()->Collision()->GetFTileIndex(S4); (edited)
06:57
every time a player get contact with a tile it makes so many ints
Avatar
ws-client BOT 2024-01-03 06:58:03Z
<ChillerDragon> making ints is cheap
06:58
<ChillerDragon> its more the method call where the int value comes from but i think those are also only index lookups
Avatar
რილია 2024-01-03 06:58:45Z
isn't it more efficient to make all of the ints in character.h and valuate them here ?
Avatar
ChillerDragon BOT 2024-01-03 06:59:02Z
they are on the stack either way
❤️ 1
06:59
its not allocating any memory
06:59
on the heap
Avatar
რილია 2024-01-03 06:59:54Z
hum
Avatar
ChillerDragon BOT 2024-01-03 07:00:39Z
So the GetPureMapIndex is basically taking a pos and then doing some simple math like multiply by width and height and offset etc. Thats a fast operation without any iteration.
07:00
Then GetTileIndex() is just a array index return m_pTiles[Index].m_Index;
❤️ 1
Avatar
Where the ints are stored has very little to do with the cost of that operation. "Creating an int" has no inherent runtime cost unless it's getting allocated dynamically
❤️ 1
Avatar
რილია 2024-01-03 07:04:56Z
i see
Avatar
რილია 2024-01-03 07:12:56Z
what git commands you guys use in your every day of development ? (edited)
Avatar
ChillerDragon BOT 2024-01-03 07:23:31Z
@mods bro, checkout this user: piDOR on ddnet copy love box
07:23
rus blocker #1
Avatar
ChillerDragon BOT 2024-01-03 07:24:13Z
nvm he left
07:24
omg chilerbot u stoopid
07:25
@რილია git add . git commit git push git commit --amend git push -f and a few more that i frequently use but those are my daily musts xd
07:27
oh and omg git status
07:27
and git diff and git diff --cached git log i use those bithses daily for sure
Avatar
Avatar
რილია
what git commands you guys use in your every day of development ? (edited)
fetch, push, rebase, reset, status, stash
07:28
Also diff sometimes, and very rarely cherry-pick
Avatar
ChillerDragon BOT 2024-01-03 07:28:39Z
oh true git pull
07:28
also a classic
Avatar
git help
Avatar
ChillerDragon BOT 2024-01-03 07:29:03Z
xd
Avatar
ChillerDragon BOT 2024-01-03 07:29:35Z
i also reset, stash, cherry-pick, rebase, checkout quite often but its not guranteed to happen every day
07:29
git add . && git reset --hard is bae
Avatar
რილია 2024-01-03 07:31:34Z
thank you ❤️
Avatar
ChillerDragon BOT 2024-01-03 07:33:40Z
ayo lerato lately i have been using cherry-pick to replace stash
07:33
my stash stacks became so bloated idk wat is wat xd
07:34
so i commited on branches instead and then applied only the changes without the commit with git cherry-pick -n commithash
07:36
07:36
but im clearly git nob
07:36
i need to create 24 backup branches to feel safe xd
Avatar
damn, looks like i really am a nerd
Avatar
aueigorifugu good morning 🌞 clan
Avatar
Avatar
Ryozuki
Click to see attachment 🖼️
no u
Avatar
Avatar
Ryozuki
Click to see attachment 🖼️
What's html doing there justatest
Avatar
ChillerDragon BOT 2024-01-03 09:10:50Z
HtMl iS nOt a ProGAMING lanGuage
Avatar
Avatar
რილია
what git commands you guys use in your every day of development ? (edited)
git reset --hard HEAD
Avatar
ChillerDragon BOT 2024-01-03 09:11:34Z
heinrich will totally respond with "--hard is dangerous" when he reads the backlog in 6 hours axaxaxax
Avatar
I always use hard 😏
Avatar
ChillerDragon BOT 2024-01-03 09:12:05Z
i like it hard too
09:12
😏
09:12
hard and with force
Avatar
Oh, and also git push origin master --force
Avatar
ChillerDragon BOT 2024-01-03 09:12:55Z
yes
Avatar
hell yeah
Avatar
ChillerDragon BOT 2024-01-03 09:12:57Z
classic
09:13
we are vibin
09:13
also call it master instead of main because edgy
Avatar
Some of my repos have master
09:13
Some main
Avatar
ChillerDragon BOT 2024-01-03 09:13:53Z
i set my github default to master xd
09:13
and git too
09:14
masterrace
09:14
ok enough irc stalling
Avatar
Did u try something with passwords?
Avatar
ChillerDragon BOT 2024-01-03 09:14:35Z
no time for such trols
09:14
i just starred
09:14
i will watch the repo too
09:14
in case u accidentally push secrets i want an email
09:15
also have auto mirroring active
09:15
in case you need an backup ;)
Avatar
milkeeycat@gmail.com, here u go
Avatar
ChillerDragon BOT 2024-01-03 09:15:33Z
leak
09:15
enjoy spam from irc log scrapers
09:15
axaxaxax
09:15
ok fr now i close irc ffs
Avatar
Hi
09:49
I also use git hard reset. Easiest, and yet I never fckd it up xd
09:51
Chiller leak git stash list
Avatar
Avatar
რილია
what git commands you guys use in your every day of development ? (edited)
BlaiZephyr | meloƞ 2024-01-03 10:01:53Z
git commit -m "FUCK" (edited)
Avatar
ChillerDragon BOT 2024-01-03 10:23:43Z
10:23
idk wat any of those are
10:24
@BlaiZephyr | meloƞ beauty of bash is that everything is a string so you can just do git commit -m FUCK
10:28
omagawd snap deltas so complicated
Avatar
chillerdragon BOT 2024-01-03 10:32:24Z
At least i think i understood the purpose of a alt snap now. There is the raw snap the client stores for future deltas. And then there is the alt snap which the client might modify due to invalid items.
Avatar
Avatar
chillerdragon
At least i think i understood the purpose of a alt snap now. There is the raw snap the client stores for future deltas. And then there is the alt snap which the client might modify due to invalid items.
Ah, that's the alt for xd
Avatar
chillerdragon BOT 2024-01-03 10:49:55Z
I think
Avatar
Zwelf probably knows everything about them ^^
10:50
He mentioned the first part once
10:53
BTW does the first part even 100% work? I guess one constraint for it to work is that there is a single ordered data stream for snapshots and acks Right?
10:53
Else the server and client cannot really proof in finite time if they actually received a snapshot for Delta
10:55
Tw network code is a mystery to me.. I don't understand why it works xd
10:55
But I sometimes wonder if it's broken. Which is only noticeable when u have huge lags (edited)
11:01
@Zwelf light us up: Assuming there is only one "raw"-snapshot that is used for delta comparision. How can the client and server be sure they talk about the same raw snapshot?
  • if raw-snap is #1 and snap #2 comes in, and the client tells the server it uses snap #2 now, if that packet is lost, server still assumes it must be #1. even if the snap-ack is resent. during that time how does the client proceed?
it can't wait for the server to also ack the snap-ack. then we have a infinite cycle.=> it must use multiple raw snaps to be correct (?)
(edited)
11:01
there are so many questions in my head. if tw network code is so failsafe & well written gg
11:05
i also wonder how much traffic is saved by the delta comparision. based on that i'd decide if it's even worth it. Also i wonder if e.g. other delta algos would suite tw better
11:05
so many questions
11:06
chillerdragon: when implement "edit" for irc
Avatar
@Ryozuki please add proper static asserts to rust 🥹
11:26
Macros have no kind of type information and checking e.g. a const of a trait can't be done at compile time directly. Currently the only way I know is to let usize overflow in a const expression xD
Avatar
Avatar
becc
Ah, sounds good, thanks. How would I do this using std::unique_ptr? I am pretty new to Cpp 😅
std::unique_ptr<int> test = std::make_unique(10);. deleting is handled automatically
Avatar
Avatar
Jupstar ✪
@Zwelf light us up: Assuming there is only one "raw"-snapshot that is used for delta comparision. How can the client and server be sure they talk about the same raw snapshot?
  • if raw-snap is #1 and snap #2 comes in, and the client tells the server it uses snap #2 now, if that packet is lost, server still assumes it must be #1. even if the snap-ack is resent. during that time how does the client proceed?
it can't wait for the server to also ack the snap-ack. then we have a infinite cycle.=> it must use multiple raw snaps to be correct (?)
(edited)
there are multiple raw snaps stored on the client
12:04
don't mass-ping
12:04
thanks
Avatar
Avatar
Jupstar ✪
@Zwelf light us up: Assuming there is only one "raw"-snapshot that is used for delta comparision. How can the client and server be sure they talk about the same raw snapshot?
  • if raw-snap is #1 and snap #2 comes in, and the client tells the server it uses snap #2 now, if that packet is lost, server still assumes it must be #1. even if the snap-ack is resent. during that time how does the client proceed?
it can't wait for the server to also ack the snap-ack. then we have a infinite cycle.=> it must use multiple raw snaps to be correct (?)
(edited)
the range "last snapshot that was used as a delta" to "newest snapshot that I received" is stored by the client
12:05
"newest snapshot that I received" is sent to the server
Avatar
ZombieToad BOT 2024-01-03 12:05:42Z
im trying to report abusing staff who has banned me
Avatar
kinda the wrong channel
12:06
but you also mass-pinged
Avatar
ZombieToad BOT 2024-01-03 12:06:17Z
what channel do i speak to admins on
12:06
developer has all the admins
Avatar
send me an email: heinrich5991@gmail.com
Avatar
Thanks for your ticket, we will fix this awful injustice
Avatar
ZombieToad BOT 2024-01-03 12:07:30Z
i dont know how to send email
12:07
i use this chat
Avatar
you could also use discord, but you might be banned here
12:07
not sure
Avatar
ZombieToad BOT 2024-01-03 12:08:14Z
yes the discord owner "jao" does not like me
Avatar
banned for complaining? justatest
Avatar
ZombieToad BOT 2024-01-03 12:08:19Z
he ban me forever for no reaosn
Avatar
send me an email. thanks
Avatar
ZombieToad BOT 2024-01-03 12:08:50Z
but my current problem is ReD has banned me for evasion until 10th january when i was 1 hour into map and i wasnt evading
12:09
he has banned my ip 213.31.170.238
12:09
kindly unban me and remove ReDs account
Avatar
Avatar
heinrich5991
the range "last snapshot that was used as a delta" to "newest snapshot that I received" is stored by the client
OK then it makes sense
Avatar
(look for PurgeUntil in src/engine/client/client.cpp)
Avatar
And can u also rate the effective traffic saving?
Avatar
the traffic savings by using deltas instead of sending the whole snap?
Avatar
Yes
12:16
It kinda must depent on the ping and other factors
Avatar
it means we can just dump rarely changing data into the snap
12:17
e.g. all the player data and metadata about the game
12:17
and it only consumes traffic at the start of the session and then only when it changes
12:18
vs sending game/player data every tick
Avatar
Yes but how effective is it actually
12:19
Player data could be moved out, so id not count that
Avatar
player data could be moved out, but then you're implementing your own diffing algorithm for player data
12:19
which the snap already is
Avatar
OK but I'm interested how effective it is for the more often changing stuff
Avatar
I don't know. I'd need to modify the libtw2 code a little to sample it, I guess
Avatar
I was always surprised that standing still on man server still creates significant enough traffic
12:22
Lan
Avatar
Windows's cmd line tool not saving the command history between sessions is absolutely infuriating (edited)
12:48
This release is dedicated to Bram Moolenaar, Vims lead developer for more than 30 years, who passed away half a year ago. The Vim project wouldn't exist without his work!.
Avatar
An experimental stackless Lua VM implemented in pure Rust - GitHub - kyren/piccolo: An experimental stackless Lua VM implemented in pure Rust
Avatar
Do u remember her? I told you about here before xdd
13:08
She also maintainer of the hashlink create I use
13:10
Networking library for games, multiplex reliable and unreliable streams over unreliable datagrams. - GitHub - kyren/turbulence: Networking library for games, multiplex reliable and unreliable strea...
Avatar
Lead Dev of starbound or smth
Avatar
Just enough hacks to get unreliable unordered WebRTC data channels between a browser and a server - GitHub - kyren/webrtc-unreliable: Just enough hacks to get unreliable unordered WebRTC data chann...
13:12
sounds interesting for ddnet
Avatar
Go implement
Avatar
Still missing: timeout protection works on computers other than my own? works on windows? works for cross-compiling review protocol for segmenting messages, is there some sort of standard may...
13:20
because transports become abstracted with it
13:20
my next plan after quic would be steam networking, so we could try getting ddos-proof servers with steam
Avatar
Sounds interesting
13:25
You should join team zwelf & patiga
Avatar
Avatar
heinrich5991
std::unique_ptr<int> test = std::make_unique(10);. deleting is handled automatically
Yeah got it, thanks :) Also read that smart pointers inside std containers (like vectors) are not good practice - and that's what I need :/ But works fine deleting in the base class! However, just wanted to ask another question: struct Base { virtual int number() = 0; virtual ~Base() = default; }; struct Derived : public Base { int number() override { return 10; } }; int main() { vector<Base *> x; x.emplace_back(new Derived); cout << x.size() << " -> " << x[0] << "(" << x[0]->number() << ")" << endl; for (const auto &item: x) { delete item; } } There are more structs like Derived which inherit Base. What would be the best way to clone vector<Base *> x? I need the Base * values inside also to be deep copied. Played around with copy/constructors but that didn't work out since the generic is a pointer I think. Do I need to implement a virtual clone() method manually in the base class and overwrite it in the subs, then call them in a loop to fill a new vector? + Bonus question. C++ is still super relevant for teeworlds development or is the whole thing slowly moving to rust? (Since masterserver for example is already written in rust)?
Avatar
Avatar
becc
Yeah got it, thanks :) Also read that smart pointers inside std containers (like vectors) are not good practice - and that's what I need :/ But works fine deleting in the base class! However, just wanted to ask another question: struct Base { virtual int number() = 0; virtual ~Base() = default; }; struct Derived : public Base { int number() override { return 10; } }; int main() { vector<Base *> x; x.emplace_back(new Derived); cout << x.size() << " -> " << x[0] << "(" << x[0]->number() << ")" << endl; for (const auto &item: x) { delete item; } } There are more structs like Derived which inherit Base. What would be the best way to clone vector<Base *> x? I need the Base * values inside also to be deep copied. Played around with copy/constructors but that didn't work out since the generic is a pointer I think. Do I need to implement a virtual clone() method manually in the base class and overwrite it in the subs, then call them in a loop to fill a new vector? + Bonus question. C++ is still super relevant for teeworlds development or is the whole thing slowly moving to rust? (Since masterserver for example is already written in rust)?
where did you read that smart pointers inside std containers aren't good practice?
Avatar
Avatar
heinrich5991
where did you read that smart pointers inside std containers aren't good practice?
maybe its more that u should simply give ownership to the vec?
13:57
but idk
Avatar
I read they could leak when emplace_back fails for example
Avatar
in that case, your example would also leak, I think
Avatar
the comments in the accepted answer tell you to use std::unique_ptr over raw pointers, I think
13:59
because raw pointers might leak
Avatar
wait I had another source
Avatar
bonus question: no, C++ will stay relevant for ddnet. barely anything is rust yet
Avatar
Avatar
becc
Yeah got it, thanks :) Also read that smart pointers inside std containers (like vectors) are not good practice - and that's what I need :/ But works fine deleting in the base class! However, just wanted to ask another question: struct Base { virtual int number() = 0; virtual ~Base() = default; }; struct Derived : public Base { int number() override { return 10; } }; int main() { vector<Base *> x; x.emplace_back(new Derived); cout << x.size() << " -> " << x[0] << "(" << x[0]->number() << ")" << endl; for (const auto &item: x) { delete item; } } There are more structs like Derived which inherit Base. What would be the best way to clone vector<Base *> x? I need the Base * values inside also to be deep copied. Played around with copy/constructors but that didn't work out since the generic is a pointer I think. Do I need to implement a virtual clone() method manually in the base class and overwrite it in the subs, then call them in a loop to fill a new vector? + Bonus question. C++ is still super relevant for teeworlds development or is the whole thing slowly moving to rust? (Since masterserver for example is already written in rust)?
yes, virtual std::unique_ptr<Base> clone() const is the only way I can think of
14:01
I want to know why you need polymorphism though @becc
Avatar
Hm, I can’t imagine unique_ptrs leaking on throw. If emplace fails it probably just results in the old unique_ptr keeping the ownership and if that happens to be a temporary it would then get destroyed properly
Avatar
I am searching for the other posts I read ... maybe I misunderstood because coming from Java, C++ is super hard haha
Avatar
dont try to do java in c++
Avatar
i am trying
14:03
well, I had 2 years rust in between ... and I am "unlearning" the java way
Avatar
a common problem is not adapting to the language idioms and trying to force one from another lang
14:03
its a common problem in rust learners too :d
Avatar
It’s a massive problem in Rust
Avatar
Avatar
heinrich5991
yes, virtual std::unique_ptr<Base> clone() const is the only way I can think of
Because my teacher wants me to do so Having a base class building and some subclasses like "SolarPowerPlant", "GiantHouse" and so on which consists of Materials (baseclass) like Wood, Metal, ... And I need vectors (or arrays) of the base*
Avatar
but well c++ kinda has classes like java
14:04
but with pointers xD
Avatar
Because Rust is just absurd compared to other languages. No other language really has such strictly enforced ownership hierarchies and lifetime restrictions
Avatar
ah typical teacher teacing OOP
14:05
blegh
14:05
why ppl teach OOP and not useful stuff
Avatar
Avatar
becc
Because my teacher wants me to do so Having a base class building and some subclasses like "SolarPowerPlant", "GiantHouse" and so on which consists of Materials (baseclass) like Wood, Metal, ... And I need vectors (or arrays) of the base*
How would you do this without oop? Enums would be nice imo, but well, school
Avatar
@becc btw did ur teacher ever say the phrase "composition over inheritance"?
Avatar
ask him
14:06
about it
Avatar
Avatar
heinrich5991
yes, virtual std::unique_ptr<Base> clone() const is the only way I can think of
Almost forgot to thank you :)
Avatar
Avatar
becc
How would you do this without oop? Enums would be nice imo, but well, school
Well, oop is useful when you have shared behaviour. What sort of behaviour would a Wood class even have?
Avatar
I should use unique_ptr everywhere I can?
Avatar
To favor composition over inheritance is a design principle that gives the design higher flexibility. It is more natural to build business-domain classes out of various components than trying to find commonality between them and creating a family tree. For example, an accelerator pedal and a steering wheel share very few common traits, yet both are vital components in a car. What they can do and how they can be used to benefit the car are easily defined. Composition also provides a more stable business domain in the long term as it is less prone to the quirks of the family members. In other words, it is better to compose what an object can do (has-a) than extend what it is (is-a).[1] Initial design is simplified by identifying system object behaviors in separate interfaces instead of creating a hierarchical relationship to distribute behaviors among business-domain classes via inheritance. This approach more easily accommodates future requirements changes that would otherwise require a complete restructuring of business-domain classes in the inheritance model. Additionally, it avoids problems often associated with relatively minor changes to an inheritance-based model that includes several generations of classes. Composition relation is more flexible as it may be changed on runtime, while sub-typing relations are static and need recompilation in many languages.
Avatar
Avatar
Learath2
Well, oop is useful when you have shared behaviour. What sort of behaviour would a Wood class even have?
Nothing, thats so stupid. Just a single variable, the price. In part 1 of the exercise we used an enum tho. Now we need a class and are not even allowed to use a static variable for the price
14:08
School is trolling us, right?
Avatar
Avatar
becc
I should use unique_ptr everywhere I can?
Smart pointers are indeed the way in modern C++. You want to think in terms of ownerships
Avatar
Avatar
Ryozuki
dont try to do java in c++
gimme that sweet static void abstract MainBuilderProducerFactory (edited)
Avatar
in java its where u can manage to put 100 prefixes before the function name
Avatar
So I should avoid raw pointers as good as possible
Avatar
public final static const void urmom
14:10
(sry i forgot a lot of java kek)
Avatar
u know
14:10
the next java is called dart
14:10
im using it for flutter apps
Avatar
Avatar
becc
Nothing, thats so stupid. Just a single variable, the price. In part 1 of the exercise we used an enum tho. Now we need a class and are not even allowed to use a static variable for the price
But then Wood being the baseclass of WoodHouse wouldn’t really make much sense, why would you ever want WoodHouse to inherit the price of wood? So that’s kinda why this is not the greatest use of OOP
Avatar
Dart is an approachable, portable, and productive language for high-quality apps on any platform.
Avatar
Avatar
Ryozuki
the next java is called dart
i though its c# justatest
Avatar
Its not, sorry
Avatar
Avatar
MilkeeyCat
i though its c# justatest
no
14:11
dart is like go for making apps
14:11
stupidly simple and focused on being good at making apps
Avatar
Baseclasses are Material (for Wood, Metal, Plastic, ...) and Building for a few more (like SolarPowerPlant) where Building has a vector<Material *> (edited)
Avatar
Avatar
becc
I should use unique_ptr everywhere I can?
yes
Avatar
only if u need a pointer
14:11
shouldnt u favor references
Avatar
if you need ownership
14:12
yes
Avatar
i would even favor std::option<withref>>
14:12
but thats me being rusty
Avatar
Avatar
becc
Baseclasses are Material (for Wood, Metal, Plastic, ...) and Building for a few more (like SolarPowerPlant) where Building has a vector<Material *> (edited)
the OOP examples by your teacher seem sketchy. just follow the class and forget the OOP practices later
Avatar
altho idk if option is zero cost
Avatar
I used option, expected and tuple for a few reasonable things, my teacher called it overengineered :(
Avatar
Avatar
becc
Baseclasses are Material (for Wood, Metal, Plastic, ...) and Building for a few more (like SolarPowerPlant) where Building has a vector<Material *> (edited)
I see, well that sounds saner, anyway it’s just a conceptual exercise
Avatar
Avatar
Ryozuki
altho idk if option is zero cost
it's not zero-cost
Avatar
Avatar
becc
I used option, expected and tuple for a few reasonable things, my teacher called it overengineered :(
Tell him you find his solution underengineered
Avatar
Avatar
heinrich5991
it's not zero-cost
not even for a reference?
14:13
rip c++
Avatar
is unique_ptr zero-cost or are there some bytes overhead?
14:13
for shared_ptr there is a counter
14:13
but unique_ptr?
Avatar
it's zero-cost in terms of space
Avatar
Alllmost zero runtime cost too
Avatar
ye
Avatar
and a huge +++ in terms of memory management
Avatar
According to Statcounter, which should be taken with a pinch of salt of course like any sampling, the Linux share on the desktop hit nearly 4% in Decemeber 2023.
14:14
YEAR OF LINUX DESKTOP!!!
Avatar
unless you are coding for a very very very weak mcu the runtime cost won’t ever be something you think about
Avatar
tldr; a lot of things i am learning in software engineering classes are outdated and bad practice?
14:15
probably
Avatar
Avatar
becc
tldr; a lot of things i am learning in software engineering classes are outdated and bad practice?
unclear. software engineering is probably never outdated. classes where you learn to code more so (edited)
Avatar
Avatar
becc
tldr; a lot of things i am learning in software engineering classes are outdated and bad practice?
I found courses range from wildly outdated to slightly outdated and the practices range from very bad to meh
Avatar
We'll do server side web services using Java Server Pages next term ....
Avatar
Oh yeah, the actual meta software engineering part is never really out of date
Avatar
Avatar
becc
We'll do server side web services using Java Server Pages next term ....
Now that’s one course I’d just delete from my brain after passing
Avatar
done already
Avatar
Avatar
becc
tldr; a lot of things i am learning in software engineering classes are outdated and bad practice?
r u doing uni?
Avatar
Avatar
Ryozuki
r u doing uni?
sadly, yes
Avatar
Unless you aspire to work at airline IT. They love their java legacy stuff
Avatar
prof about 600 years old
Avatar
in my uni mfs teach us nothing justatest (edited)
Avatar
i did no uni justatest
Avatar
Avatar
Ryozuki
i did no uni justatest
if i wasnt in uni id probably go on the war justatest
Avatar
The most out of date course I had was computer architecture, but I do kinda understand that one. I doubt you can teach anything about any modern architecture to any bachelor student
Avatar
I liked architecture a lot. Learning about MOSFET, MUX, Latches, Boolean Algebra and all that stuff. That was fun
Avatar
is it just me or it looks like cum(new wallpapers btw) greenthing
Avatar
Avatar
Learath2
The most out of date course I had was computer architecture, but I do kinda understand that one. I doubt you can teach anything about any modern architecture to any bachelor student
btw von neumann is a genius among geniuses
14:20
the guy did everything
Avatar
And the RISC-V, but term ended too soon
Avatar
I’m a sucker for old computer architecture. Back then everything made so much sense
Avatar
John von Neumann (/vɒn ˈnɔɪmən/ von NOY-mən; Hungarian: Neumann János Lajos [ˈnɒjmɒn ˈjaːnoʃ ˈlɒjoʃ]; December 28, 1903 – February 8, 1957) was a Hungarian-American mathematician, physicist, computer scientist, engineer and polymath. He had perhaps the widest coverage of any mathematician of his time,[9] integrating pure and applied sciences and making major contributions to many fields, including mathematics, physics, economics, computing, and statistics. He was a pioneer in building the mathematical framework of quantum physics, in the development of functional analysis, and in game theory, introducing or codifying concepts including cellular automata, the universal constructor and the digital computer. His analysis of the structure of self-replication preceded the discovery of the structure of DNA.
(edited)
Avatar
Pipelines were nice and short, caches MSI
Avatar
3rd term out of 7 now and I want to give up because its either boring or too much
Avatar
@becc i recommend this book, its post uni stuff tho https://en.algorithmica.org/hpc/
14:22
but its rly rly interesting
Avatar
Avatar
Ryozuki
John von Neumann (/vɒn ˈnɔɪmən/ von NOY-mən; Hungarian: Neumann János Lajos [ˈnɒjmɒn ˈjaːnoʃ ˈlɒjoʃ]; December 28, 1903 – February 8, 1957) was a Hungarian-American mathematician, physicist, computer scientist, engineer and polymath. He had perhaps the widest coverage of any mathematician of his time,[9] integrating pure and applied sciences and making major contributions to many fields, including mathematics, physics, economics, computing, and statistics. He was a pioneer in building the mathematical framework of quantum physics, in the development of functional analysis, and in game theory, introducing or codifying concepts including cellular automata, the universal constructor and the digital computer. His analysis of the structure of self-replication preceded the discovery of the structure of DNA.
(edited)
Yeah, truly a genius
Avatar
Also got a few recommendations for books about building compilers? Need some for a presentation / paper I need to write
Avatar
Avatar
becc
3rd term out of 7 now and I want to give up because its either boring or too much
Is it 4 terms a year?
Avatar
Avatar
Ryozuki
@becc i recommend this book, its post uni stuff tho https://en.algorithmica.org/hpc/
thanks
Avatar
Avatar
Learath2
Is it 4 terms a year?
3 1/2 years
14:24
1 year = 2 terms
Avatar
Avatar
becc
Also got a few recommendations for books about building compilers? Need some for a presentation / paper I need to write
The classic recommendation for compiler theory is the dragon book
Avatar
Avatar
becc
thanks
the book if for making truly perfomant code tho
Avatar
Yep, already got the dragon book
Avatar
But I don’t think it’s very beginner friendly
Avatar
I am not that much a beginner in compilers I think. Did the craftinginterpreters thing and some stuff. And I only need to write about 15 pages, that's done fast I hope
Avatar
Avatar
Ryozuki
Click to see attachment 🖼️
Nice
Avatar
Ah, I was just about to recommend crafting interpreters
Avatar
This blog series creates a small operating system in the Rust programming language. Each post is a small tutorial and includes all needed code.
Avatar
troller? D: You don't recommend the llvm tutorial?
Avatar
oh i do
14:28
but its not simple xd
Avatar
probably too high for me then
Avatar
A friend of mine recommended me “Appel. Modern Compiler implementation in C” but I never got around to reading it so not sure if good
14:29
Might be worth looking into
Avatar
Avatar
becc
I am not that much a beginner in compilers I think. Did the craftinginterpreters thing and some stuff. And I only need to write about 15 pages, that's done fast I hope
oh i didnt read this
14:29
well i currently work making compilers :d
Avatar
Hope libgen has this books :hAA:
Avatar
but did u do a compiler or a interpreter
Avatar
It should, it’s a classic recommendation
Avatar
Avatar
Ryozuki
but did u do a compiler or a interpreter
It was an interpreter for the so called "lox" language
14:30
Lexing, Parsing and stuff is similar in building compilers/interpreters i think
Avatar
that part is similar in both yeah
14:31
learn llvm
14:31
then learn MLIR
Avatar
@becc did u do type analysis
14:32
or is it dynamic
Avatar
mlir? something like llvm-ir?
Avatar
mlir is a new thing
14:32
above llvm ir
Avatar
sounds nice
Avatar
ah nice, thanks
Avatar
Avatar
Ryozuki
or is it dynamic
dynamic as far as i remember? hmmm
Avatar
im not rly good blogger but hope its ok :d
Avatar
its fine :D
14:37
And the reason I got into computer science is teeworlds. I started playing 7 or 8 years ago and since then always wanted to create a custom gamemode xD Now I am starting learning c++, woah xD Progress :stonks:
Avatar
kinda same
14:38
but i started c++ in 2015 xd
Avatar
I never did
Avatar
Metoo
Avatar
Well, just some hello world, but stopped right there xD
14:41
Now uni forces me to do
Avatar
your name is edgar?
14:45
its nothing new here btw
14:45
xd
Avatar
Avatar
Learath2
The most out of date course I had was computer architecture, but I do kinda understand that one. I doubt you can teach anything about any modern architecture to any bachelor student
well, you probably learned newton dynamics in high school, yet it's outdated for more than 100 yers
14:58
similarly, you learn 70's electronic stuff to better understand nowadays electronics and computer architecture
14:58
you can't completely understand these if you don't study what has been made before and why it has been made this way
Avatar
also geometry
14:59
non euclidean rules the world
14:59
but u dont learn that
Avatar
Avatar
Chairn
well, you probably learned newton dynamics in high school, yet it's outdated for more than 100 yers
I find this comparison really poor. Physics haven't changed in the last millions of years, computers have evolved a lot in these last few ones. I kinda get your point but meh
Avatar
logic hasnt changed as far as i know
Avatar
you need it because implementation choice were made back then and still hold today although technical constraint has been lifted
Avatar
@Learath2
15:01
15:01
XD
15:01
its public domain now
Avatar
Avatar
Ryozuki
its public domain now
How it should be😏 😏 😏
Avatar
use rust santatrollet
Avatar
Some players don't immediately try to reconnect to make use of the timeout protection (due to the server being full, for example). The AFK state usually kicks in quite late. So my suggestion is to set all players who are considered timed out by the server into the AFK state early. This should also aid players who managed to stay connected during a DoS attack in determining whom to help and whom to avoid on HH maps.
Avatar
Avatar
MilkeeyCat
use rust santatrollet
Rust++ or what
Avatar
he clearly did not understand the meme
Avatar
Avatar
アリヂン
he clearly did not understand the meme
i did but u better use rust still
Avatar
It would be great to append a Unix timestamp to the information displayed when selecting 'Copy info' on Server info / Browser. Example: [Servername] Address: ddnet://[Server-address] My IGN: [Ingame nickname] [current Unix timestamp] copy & paste it in Discord, and you'll witness the magic. This enhancement makes it effortlessly straightforward to identify the time when this information was retrieved. No more need to ask when a particular event occurred! ^^
Avatar
someone actually clonned my repo with passwords justatest
Avatar
so why did you clone them?
Avatar
i didnt
17:24
4 unique cloners justatest
Avatar
what even is a git clone? does downloading as zip also count as clone?
Avatar
do you have money on your bank? 😏
17:25
asking for a friend
17:26
im poor as fuck
17:26
i saved a bit to host ddts who
17:26
if i ever finish it 😏
Avatar
ez
17:26
ddnet tournament with 2000€ price pool
Avatar
downloading as .zip doesnt seem to count as clone
17:27
only git clone counts
Avatar
maybe it takes a while before popping up in stats
17:28
or some bots downloaded it xd
Avatar
15 unique clones for websites. am so popular 😏
17:29
not even me, the website!
Avatar
where did u find these stats even?
17:30
GitHub is where people build software. More than 100 million people use GitHub to discover, fork, and contribute to over 420 million projects.
17:30
ah here
Avatar
insights tab in github repo
Avatar
lol
17:32
contribute to ddnet and get member
17:32
😏
Avatar
is there any task for dum dums? (edited)
Avatar
i dunno
Avatar
i can change comments justatest (edited)
Avatar
i am working on safe rc<refcell>> still
17:33
but i have trouble, bcs without static_assert & typeof in rust it's hard
17:33
to do what i need
Avatar
chillerdragon BOT 2024-01-03 17:34:17Z
i opened an easy issue on ddnet-web
Avatar
@MilkeeyCat u web dev right?
Avatar
i wont get a role if i contribute to website, will i?
Avatar
wanna continue my react ddnet version? 😏
Avatar
Avatar
Jupstar ✪
wanna continue my react ddnet version? 😏
im react hater but sure justatest
Avatar
Static part of DDNet's website: https://ddnet.tw/. Contribute to Jupeyy/ddnet-web development by creating an account on GitHub.
17:35
good luck
17:35
the "nextjs" dir is it
Avatar
i got a google play dev acc
17:37
now i can do apps to make money justatest
17:37
my company name is RustWorks
17:37
im original
17:37
its not a legal name tho xd
Avatar
Avatar
Ryozuki
its not a legal name tho xd
why is it not legal? xd
Avatar
cuz its not a real company
17:38
they just ask a business mame
17:38
name
Avatar
but you just made it
17:39
so it's real
Avatar
on google play yesxd
Avatar
Avatar
Ryozuki
cuz its not a real company
so when can i join
Avatar
did you submit any app already?
Avatar
and create awesome apps with u
Avatar
not yet
17:40
it only cost me 20€ and my personal info kek
Avatar
Avatar
ChillerDragon
hmm fudgy so even the ddnet version works for me on ger and usa servers already so it should have worked for you too ._.
I tried usa1 and ger2 and I still get the dropped weird message 'invalid' (0), failed on '(type out of range)' message on my 0.7 client when a 0.6 client finishes
Avatar
you can check /info to see which version the server runs
Avatar
commit 083c8c77bfe7de6e, which is 7 days ago
18:04
in both servers
Avatar
so it doesn't have your commit from https://github.com/ddnet/ddnet/pull/7741 yet (edited)
Fixes 0.7 players not being able to receive finishes done by players on 0.6 (and vice-versa). Checklist Tested the change ingame Provided screenshots if it is a visual change Tested in combinat...
Avatar
Avatar
Jupstar ✪
the "nextjs" dir is it
xd
Avatar
Avatar
heinrich5991
so it doesn't have your commit from https://github.com/ddnet/ddnet/pull/7741 yet (edited)
yup, Im waiting xd
Avatar
Avatar
MilkeeyCat
xd
well u cant take that serious xd
Avatar
npm packages update every 5 seconds so yeah justatest
18:17
Get the always up to date information about how many days have passed since a JavaScript framework has been published
Avatar
Avatar
MilkeeyCat
xd
tell me when u started it, if u like it 😏
18:18
ravie hated it, but i think was quite ok
Avatar
its so pretty owo
Avatar
ez
Avatar
Avatar
MilkeeyCat
xd
these vulnerabilities are often in not even used code paths
Avatar
but they can help when multiple vulnerabilities are combined which is almost always the case
Avatar
Avatar
Chairn
but they can help when multiple vulnerabilities are combined which is almost always the case
if they're not in used code paths, how are they useful?
Avatar
you can force jumps to unused code with other vulnerabilities such as return oriented programming
Avatar
can you give an example of chained vulnerabilities in JS that use (otherwise) dead code
18:34
that's not the case for JS AFAIK
Avatar
if there's a buffer overflow somewhere that is exploitable, you can make the program jump to another vulnerability
Avatar
also not applicable to JS?
Avatar
whats the url to use skins.tw skins? Xd
Avatar
are js programs memory safe?
Avatar
well, i don't know for JS, but in c/c++, it's certainly the case
Avatar
i think u cant get a segfault in js
Avatar
chillerdragon BOT 2024-01-03 18:37:02Z
Yes that should be fun
Replying to @MilkeeyCat chillerdragon: did u mean this https://github.com/ddnet/ddnet-web/issues…
Avatar
Avatar
Ryozuki
are js programs memory safe?
surely 😬
Avatar
Avatar
MilkeeyCat
xd
this is about JS
Avatar
unless u find a vuln in the runtime
Avatar
chillerdragon BOT 2024-01-03 18:37:30Z
Top Gs use scrumplex proxy
Replying to @MilkeeyCat whats the url to use skins.tw skins? Xd
Avatar
well, i already had a segfault in python, so i wouldn't bet on that 😄
Avatar
unlike cpython, JS is designed to be a safe environment
18:38
cpython extensions are routinely implemented in C/C++, and python even has ffi which can obviously crash
Avatar
Avatar
chillerdragon
Top Gs use scrumplex proxy
ok how to set that thing xd
Avatar
chillerdragon BOT 2024-01-03 18:39:20Z
I forgot ping scrumpley
Avatar
@Scrumplex hallo
Avatar
ws-client BOT 2024-01-03 18:44:52Z
<chillerplex> hi i am totally the real scrumplex
18:44
18:44
<chillerplex> this is a legit url
18:45
<chillerplex> click it
Avatar
ChillerDragon BOT 2024-01-03 18:45:24Z
its a proxy which combines all dl skin vendors into one
18:45
for maximal skin madness
18:46
Opinionated proxy for querying skins for DDraceNetwork
Avatar
@Scrumplex why rewritten from go to rust?
18:48
18:48
do u think this would work
18:48
with ddnet
Avatar
what would work? I don't understand
18:48
a directory listing?
Avatar
as the url to get skins on ddnet client
Avatar
yea, should work, I think
Avatar
ChillerDragon BOT 2024-01-03 18:48:56Z
wowo so even github?
Avatar
ah it needs to be this one right https://assets.ddstats.org/skins/
Avatar
yes
Avatar
chiller this is my skin asset server
Avatar
what the hell is codeberg
Avatar
it's like github
Avatar
why not github? xd
Avatar
it steals from skins.tw closed source database
18:50
so this works too for dl url? o.O
Avatar
it says invalid request
Avatar
ChillerDragon BOT 2024-01-03 18:50:08Z
ye bcs no skin
18:50
18:50
it just appends the skin name at the end i assume?
18:50
if yes @Scrumplex go add to proxy
18:51
@Ryozuki stealer
18:51
@MilkeeyCat github is owned by microsoft and closed source
Avatar
i steal in name of free software foundation
Avatar
what about gitlab
Avatar
Avatar
heinrich5991
@Scrumplex why rewritten from go to rust?
Because packaging Rust projects in Nix is a lot nicer ^^
Avatar
Avatar
ChillerDragon
it just appends the skin name at the end i assume?
yup
Avatar
ChillerDragon BOT 2024-01-03 18:51:58Z
@MilkeeyCat gitlab is dutch
Avatar
Avatar
Scrumplex
Because packaging Rust projects in Nix is a lot nicer ^^
interesting ^^
18:52
quite a heavy hammer for making it nicer to package though ^^
Avatar
chillerdragon: understadable
Avatar
ChillerDragon BOT 2024-01-03 18:52:23Z
xd
Avatar
Avatar
heinrich5991
quite a heavy hammer for making it nicer to package though ^^
It was also an opportunity to improve my Rust skills and get more familiar with the ecosystem
Avatar
Scrumplex can u add my url
18:52
to ur repo?
Avatar
sure
owo 1
Avatar
ChillerDragon BOT 2024-01-03 18:52:58Z
henlo scrumpleggs
Avatar
hello im scrumpled eggs
Avatar
ChillerDragon BOT 2024-01-03 18:53:06Z
scrambled eggs
Avatar
i like scrambled eggs
Avatar
ChillerDragon BOT 2024-01-03 18:53:23Z
yes very nice food
Avatar
Is this order okay? "https://scrumplex.rocks/skin/" "https://skins.ddnet.org/skin/community/" "https://skins.tee.world/" "https://assets.ddstats.org/skins/" "https://api.skins.tw/api/resolve/skins/"
Avatar
ChillerDragon BOT 2024-01-03 18:53:30Z
jospti the vegan misses out
Avatar
It will pick the first skin it finds in that order
Avatar
ChillerDragon BOT 2024-01-03 18:53:42Z
u forgot mine :c
Avatar
sure sure
Avatar
good put the skins.tw closed source last
Avatar
ChillerDragon BOT 2024-01-03 18:54:02Z
put mine last
18:54
its ass collections
Avatar
skins.tw is super slow and has many intermittent timeouts ^^
Avatar
ChillerDragon BOT 2024-01-03 18:54:18Z
mine is github
Avatar
typical closed source
Avatar
ChillerDragon BOT 2024-01-03 18:54:21Z
its 500 half of the time
Avatar
i dont like eggs anyway
Avatar
ChillerDragon BOT 2024-01-03 18:54:29Z
jopsti cope
Avatar
Avatar
Ryozuki
good put the skins.tw closed source last
they were going to be open source
Avatar
Avatar
ChillerDragon
mine is github
you should use GitHub pages tbh
Avatar
once their dev goes back
Avatar
my only grip is they dont have a dir listing like https://assets.ddstats.org/skins/
18:54
or ddnet
18:54
they put it behind a weird ass query thing
18:55
so u cant get all
Avatar
"https://scrumplex.rocks/skin/" "https://skins.ddnet.org/skin/community/" "https://skins.tee.world/" "https://assets.ddstats.org/skins/" "https://api.skins.tw/api/resolve/skins/" "https://raw.githubusercontent.com/TeeworldsDB/skins/master/06/" so this?
Avatar
ChillerDragon BOT 2024-01-03 18:55:29Z
lgtm
18:55
if it gets a 200 it stops there?
18:55
do you cache?
Avatar
yes and yes
Avatar
ChillerDragon BOT 2024-01-03 18:56:01Z
sounds pog
Avatar
I also only do HEAD requests btw
Avatar
ChillerDragon BOT 2024-01-03 18:56:08Z
cool project
18:56
tru web user
Avatar
And redirect clients to the final skin (edited)
Avatar
ChillerDragon BOT 2024-01-03 18:56:29Z
idk what that is but seend it before
18:56
seen*
18:57
there you go
18:57
should be live in a moment
18:57
this looks like what you're looking for
18:58
quite obscure
19:04
@Scrumplex do u recommend codeberg
19:04
does it have good ecosystem
Avatar
I was looking for skins in the ddstats DB that aren't in any other DB yet. https://skins.scrumplex.net/skin/火娃.png this one redirects to ddstats ^^ (edited)
19:04
ddstats is mine btw
Avatar
Avatar
Ryozuki
@Scrumplex do u recommend codeberg
I like it very much. The CI is good enough, it has everything you need (container registry, pages, LFS)
19:05
ppl only use github because discoverabilityy
Avatar
and because it was the best option at some point in time
Avatar
@Scrumplex does it have a mirroring feature like gitea?
Avatar
Avatar
Ryozuki
@Scrumplex does it have a mirroring feature like gitea?
Only push mirror
Avatar
does it beat the speed of my cgit? https://git.edgarluque.com/
19:08
troller
Avatar
Though you can ask them with a support ticket to get pull mirroring
19:08
They don't want to provide pull mirroring to everyone, as people set and forget about them and use codeberg's resources for no reason
19:09
i have a automatic gh mirror on the url i sent
19:09
using cgit
Avatar
It's a non profit registered in Berlin so it's not like they have immense amount of cash on hand
Avatar
@Scrumplex im sure ur in this space
19:19
A fun, new, open way to experience social media
19:19
saw it on top repos in codeberg
19:20
such a fancy website
Avatar
Avatar
Ryozuki
nope. No idea what this is :O
19:20
very fancy! xD
19:20
I dont really use any social media
Avatar
its a foss activitypub microbblogging
19:20
microblogging = twitter-like
Avatar
The only microblogging i do is for https://floss.social/@PrismLauncher
34 Posts, 17 Following, 1.34K Followers · A custom launcher for Minecraft that allows you to easily manage multiple installations of Minecraft at once.
Avatar
pog u famous
19:21
can u mention ddnet
19:22
and we mention prismlauncher in our non existent social media
19:22
🤝
Avatar
I should add tees to Prism Launcher
19:22
best easter egg
19:22
we already have "teawie"
19:22
so tee isn't too far off
Avatar
too small im blind
19:23
looks anime
Avatar
you shood ad skib toilet
Avatar
mention that prism is Ryozuki, llvm & rust contributor, approved
Avatar
It is sadly not recognized by Arch Linux so it's no use 😔
Avatar
@Scrumplex btw
Avatar
wait lemme find the irc logs
Avatar
is prism easily packagable
Avatar
Avatar
Ryozuki
is prism easily packagable
yup
Avatar
i can maintain the guru package
19:24
i do it for ddnet already
19:24
gentoo guru
Avatar
there is a gentoo overlay iirc
19:25
nevermind
19:25
yup
Avatar
u got a oficial one!
19:25
is it bothersome?
19:25
well guru is seamless and i can update it in a day
Avatar
It's even maintained by one of the former project maintainers! ^^
Avatar
Avatar
Ryozuki
is it bothersome?
dunno. I'd assume that it isn't too annoying
19:26
we don't release very often so it doesn't matter really if it takes a day or two to get it updated
19:27
at the end of the day there is only so much you can do with a legacy Qt codebase :(
19:27
ah i can become a proxy maintainer
19:27
hmm
19:27
but guru works fine xd
19:27
im proud of my insta releases :d
Avatar
Avatar
Scrumplex
It is sadly not recognized by Arch Linux so it's no use 😔
I forgot where I put my IRC logs from archlinux-aur
19:30
So context: I was asking if a Arch packager/dev wanted to adopt Prism Launcher into official repos, because it has been in the top 15 on the AUR for over a year at that point (note that most packages in the top 15 are AUR helpers, proprietary or -bin packages) A major ArchWiki contributor chimed in and was opposed because of the supposed toxicity around Minecraft projects. Later on that same individual dropped this epic message: [19:01:40] <polarian> Also maybe I am sinnical, but when a developer asks for their software to be adopted... it feels like you are trying to get your software out there... being adopted into the official repos gives you a lot of recognition... and I can say with experience I will install from official repositories over the AUR...
Avatar
A major ArchWiki contributor chimed in and was opposed because of the supposed toxicity around Minecraft projects.
19:31
so what
19:31
thats such a bad reason XD
19:31
im sure they host suckless software
19:31
where the authors are nazis
Avatar
Yeah I just thought it was funny that they labeled the Minecraft community as toxic and then later proceed to be elitist about Arch
Avatar
i think he is projecting his own reasons xD
Avatar
I mean at the end of the day, that person isn't an Arch dev/maintainer
Avatar
a.k.a he thinks this because its what he would do
Avatar
so it's just an opinion not the project's final decision
Avatar
hello who can help me to open a server I have a virtual server
Avatar
when rewrite prism in rust?
Avatar
Avatar
Waxuel
hello who can help me to open a server I have a virtual server
19:33
dont dm me btw, im just sending this link on a public channel
Avatar
But no one else joined in on the conversation apart from some other users. Even though some arch maintainers/devs were talking about other stuff
Avatar
And from that day on, I stopped caring about Arch Linux altogether
Avatar
idc about arch too
19:34
im too based for that
19:34
i use gentoo ez
Avatar
One day the copium will run out and we will all be running NixOS 😎
Avatar
but gentoo ppl can be special too XD i read in some place they said that static libraries are a bug
Avatar
Avatar
Ryozuki
i use gentoo ez
I'm so happy that you are a gentoo person now
owo 1
Avatar
Avatar
Ryozuki
but gentoo ppl can be special too XD i read in some place they said that static libraries are a bug
probably snorted too much of that GNU
Avatar
Avatar
Learath2
I'm so happy that you are a gentoo person now
i religiously run emerge everyday morning
Avatar
You can be our marketing department. Gentoo people have been suffering from bad PR forever. Your skills from Rust can carry on
Avatar
Avatar
Scrumplex
One day the copium will run out and we will all be running NixOS 😎
i tried nixos
19:36
but its too bothersome
19:37
maybe there is tooling to automate some stuff but idk
19:37
im in gentoo for now
19:37
oh yeah running native march on nixos was weird
Avatar
NixOS is really great if you have a lot of machines
Avatar
reproducible yes
19:37
i find it nice for servers
19:37
but i only have 1 server
19:37
xd
Avatar
I can share my configurations between my desktop, laptop, work laptop, Raspberry Pi, home server, VPS and even my phone (Termux with Nix)
19:38
Though rn my server and personal stuff is separated
19:38
they do share a tiny bit though
19:39
I think Gentoo having binaries now is great though!
19:39
It was one of the major advantages of Nix (the package manager), because you could still modify packages very easily while still getting most things from the binary cache
Avatar
binaries are not common
19:40
just for big like chrome
Avatar
Avatar
Ryozuki
binaries are not common
News and information from Gentoo Linux
Avatar
but u can make ur local binkpkg server
19:40
oh
19:40
didnt know
Avatar
just a few days ago ^^
Avatar
I don't like that nix doesn't specify expected output hashes (interesting for actually reproducible builds)
Avatar
but i use gentoo for that native march
19:42
my only complain about gentoo is portage is in python and takes a bit to resolve deps
19:42
im sure it can be heavily optimized
19:42
maybe with rust
Avatar
Avatar
Ryozuki
maybe with rust
go lead the effort 😮
19:43
would be cool ^^
Avatar
i thought about it
19:43
need to look how complex portage is xd
Avatar
Avatar
heinrich5991
I don't like that nix doesn't specify expected output hashes (interesting for actually reproducible builds)
So normal Nix derivations (or packages) use their inputs to calculate the final output hash. So the actual content doesn't really matter. The only difference are "fixed-output derivations" that are usually things that download something from the internet
Avatar
Avatar
Scrumplex
So normal Nix derivations (or packages) use their inputs to calculate the final output hash. So the actual content doesn't really matter. The only difference are "fixed-output derivations" that are usually things that download something from the internet
it does matter, because it can't take into account all environmental differences
19:43
by specifying the output hash, you notice when something breaks
19:44
e.g. IIRC it doesn't take into account the kernel that is being run
Avatar
Avatar
heinrich5991
it does matter, because it can't take into account all environmental differences
Yes. Nix has a handy --rebuild flag which will just rebuild an already existing derivation and compare both
Avatar
Avatar
heinrich5991
e.g. IIRC it doesn't take into account the kernel that is being run
Yes. But if that produces different outputs, it can be considered a bug
19:44
NixOS provides this service to test reproducibility: https://reproducible.nixos.org (edited)
Reproducible Builds allow us to have independently-verifiable binaries. This page summarizes the progress towards that goal for NixOS.
19:45
And the only important packages left are pipewire related ones (edited)
Avatar
i use pipewire
19:45
i recommend export SDL_AUDIODRIVER=pipewire
19:45
to force sdl to use pipewire
19:45
instead of pulseaudi which gets translated to pipewire
Avatar
Avatar
Scrumplex
Yes. But if that produces different outputs, it can be considered a bug
would be nice if that was encoded in the package
Avatar
Avatar
heinrich5991
would be nice if that was encoded in the package
Fair. But that would basically make everything unreproducible
19:46
because not everyone is gonna run the same kernel
19:46
you have to draw a line somewhere
Avatar
no, the output hash, I mean
Avatar
because not everyone has the same CPU either. What if one CPU has a bug that doesn't exist on another
Avatar
Avatar
heinrich5991
no, the output hash, I mean
yeah, but even if it was encoded it wouldn't actually do anything as it is right now
Avatar
it'd help notice problems more prominently
Avatar
Yeah but so does rebuilding the package and using the builtin check
19:47
99% of most reproducibility mismatches are timestamps and other trivial things like that (edited)
19:48
Because the Nix sandbox tries to ensure that the build environment itself is reproducible
Avatar
only use percentages if you know the stats
Avatar
(like disallowing network access)
Avatar
Avatar
Scrumplex
Because the Nix sandbox tries to ensure that the build environment itself is reproducible
yes, to a point. they usually fail to mention where the boundary lies
19:49
i.e. pointing out that kernel (and as you mentioned cpu) differences are unaccounted for
Avatar
fair
19:50
But honestly I don't think it's a big problem in practice
19:50
Linux prominently doesn't break userspace and unless your compiler is using really new kernel features, it shouldn't really matter
Avatar
yea, sounds like a sensible place for the boundary
Avatar
Things like your compiler or rather your entire toolchain are much more important
19:51
Sadly full perfect reproducibility would mean that we can't reuse anything between machines because every physical system would be different (edited)
Avatar
debian etc. are leading the effort for full reproducibility
19:52
Reproducible builds are a set of software development practices that create an independently-verifiable path from source to binary code.
Avatar
does debian encode output hashes in packages? :O
19:52
or rather, does it keep track of them for repro? (edited)
Avatar
debian checks that their packages are reproducible and treats non-reproducibility as a bug: https://tests.reproducible-builds.org/debian/reproducible.html
19:54
the initiative fixed a lot of projects
Avatar
I mean NixOS has that too: https://reproducible.nixos.org/ The packages that are left here are usually just not trivial to make reproducible
Reproducible Builds allow us to have independently-verifiable binaries. This page summarizes the progress towards that goal for NixOS.
Avatar
does it have stats somewhere?
Avatar
not sure
Avatar
@Scrumplex ah look, nix is actually moving into this direction? https://nixos.wiki/wiki/Ca-derivations
Avatar
Avatar
heinrich5991
@Scrumplex ah look, nix is actually moving into this direction? https://nixos.wiki/wiki/Ca-derivations
Yeah but I didn't feel like there was much push on this so far
Avatar
I have a virtual server how do I set up a server
Avatar
download ddnet with the server
20:23
and in the autoexec.cfg in the sv_register 0 change to 1
Avatar
Avatar
Mazty
and in the autoexec.cfg in the sv_register 0 change to 1
oky go
20:24
Avatar
Avatar
Mazty
and in the autoexec.cfg in the sv_register 0 change to 1
says I need to open firewall
Avatar
ChillerDragon BOT 2024-01-03 20:53:34Z
@Ryozuki wtf suckless is nazi?!
Avatar
dijit on Jan 12, 2021 | root | parent | next [–] I actually like suckless software and I'm a little (lot) annoyed by the overwhelming "sides" of politics, especially the left because a lot of US tech comes from a left wing belief and sometimes people online beat me over the head with it and make me annoyed. But, to be clear, there are three things here: 1) They're doing a Tiki Torch walk, during a time when it was heavily politicised. 2) They're adapting Nazi slogans as hostnames 3) They're denigrating "Cultural Marxism". Any one of these alone I would probably defend, but 3 is a pattern and not a good one.
20:54
tathougies
Nazism?
Avatar
ChillerDragon BOT 2024-01-03 20:57:32Z
yikes
Avatar
Sometimes, making particular security design decisions can have unexpected consequences. For security-critical software, such as password managers, this can easily lead to catastrophic failure: In this blog post, we show how Bitwarden’s Windows Hello …
Avatar
Add separate IGraphics::LoadTextureRawMove function with non-const void *pData argument in addition to existing LoadTextureRaw function with const void *pData argument. The former function takes ownership of the data and avoids copying the texture data into an additional buffer, if the texture data is already in RGBA format. Non-RGBA texture data always needs to be converted and therefore also copied. The LoadTextureRaw function is split into smaller functions to share common c...
Avatar
when make a Cow in cpp
Avatar
what cow
Avatar
copy on write
21:33
smart ptr
Avatar
for what?
21:34
idk
Avatar
i know but do you find that useful?
Avatar
but i use cow a lot in rust
Avatar
oh
Avatar
it allows mixing string literals with Strings
Avatar
Avatar
Jupstar ✪
what cow
which does moo (edited)
Avatar
Avatar
Ryozuki
dijit on Jan 12, 2021 | root | parent | next [–] I actually like suckless software and I'm a little (lot) annoyed by the overwhelming "sides" of politics, especially the left because a lot of US tech comes from a left wing belief and sometimes people online beat me over the head with it and make me annoyed. But, to be clear, there are three things here: 1) They're doing a Tiki Torch walk, during a time when it was heavily politicised. 2) They're adapting Nazi slogans as hostnames 3) They're denigrating "Cultural Marxism". Any one of these alone I would probably defend, but 3 is a pattern and not a good one.
If you say "cultural marxism" I just don't want to hear anything else you say
21:44
Modern "cultural bolshevism" andys can go fuck themselves
Avatar
idk what any of that means xd
21:44
i just copy pasted
Avatar
doesn't seem to be particularly interesting
23:11
(re "ouch")
Exported 770 message(s)