Time |
Nick |
Message |
00:40 |
muurkha |
XMPP was designed for a desktop world that no longer exists |
00:41 |
muurkha |
where you would use the same computer all the time, not two laptops, three cellphones, and a smartwatch, none of which is always online |
00:42 |
muurkha |
(you could make the same argument about IRC) |
00:43 |
muurkha |
erle: I think it's important to avoid *being* a crank, but I don't care about what I *sound* like if nobody is reading what I write anyway! you are a rare exception |
00:43 |
muurkha |
(but I'm guessing that you haven't read much of Dercuano eitehr) |
01:05 |
|
Trifton joined #minetest |
01:05 |
|
sys4 joined #minetest |
01:09 |
Warr1024 |
TheLounge, at least for those of us who can self-host, goes a very long way toward making IRC not locked in a "desktop-only" kind of world. But it also really takes a lot of emphasis off of the underlying protocol, so XMPP or Matrix could be used in the same way, but then they seem to offer less above IRC anyway. |
01:11 |
muurkha |
yeah |
01:12 |
muurkha |
IRC has some problems like netsplits, inability to correlate responses with requests, and silent message truncation |
01:14 |
|
Trifton joined #minetest |
01:14 |
muurkha |
but basically I think the problem is that IRC and XMPP (MUC) are trying to solve the application-layer packet multicast problem, while things like Slack and Matrix are trying to solve the appendable-immutable-log problem |
01:14 |
muurkha |
and the latter is a better fit to the chat application in a multidevice intermittently-connected world |
01:15 |
Warr1024 |
People have successfully fixed a lot of IRC's flaws multiple times, but each time they create a new unique mess :-D |
01:17 |
muurkha |
haha, indeed |
01:18 |
erle |
muurkha i haven't read much of your stuff, given how much it is, but i plan on doing that more. and i think you are underestimating how many people read stuff, but the vast majority of people never even give feedback. |
01:18 |
muurkha |
it's possible |
01:19 |
erle |
in particular, if you publish software that is doing its job perfectly, you almost never get positive feedback. |
01:20 |
erle |
not sure if you do that |
01:20 |
erle |
but it's a good example |
01:20 |
Pexin |
but what if html message board |
01:20 |
erle |
the thing is, “perfect” needs a really small scope. the kind of thing that can be done. |
01:24 |
erle |
muurkha i agree that the ”appending-immutable-log” problem fits a multi-device chat world better, but i doubt slack is solving any problems better. you can see that in the failure modes. for example, i have noticed that slack could deliver a message not at all or 3 times when you have a really spotty connection. that's a problem that is already solved a lot of times over (e.g. with in-lockstep-counters, message receipts etc.) |
01:24 |
|
Verticen joined #minetest |
01:25 |
erle |
every other modern chat system has exactly-once-or-not-at-all delivery |
01:26 |
muurkha |
normally called "at-most-once" |
01:27 |
muurkha |
yeah, slack is buggy as hell and I hate it a lot |
01:27 |
erle |
“Gajim is a mess with performance issues”, yes, i think they have their own very idiosyncrasic text rendering widget that craps out at inopportune moments even if it does not have to. i manually confirmed that it is definitely possible to have a gtk text widget with tens of thousands of lines which does not hang. |
01:28 |
muurkha |
for now. pango is a large amount of code with unpredictable performance |
01:28 |
erle |
slack failure modes remind me a lot of icq |
01:29 |
Izaya |
I was blaming disk access and the fact that all the chat logs are stored in a database, honestly |
01:29 |
erle |
i am not sure if that was pango-related but i vaguely remember that a previous gajim version had this “fun” bug that it would just request ever larger bitmaps if you scrolled back |
01:31 |
erle |
Izaya i was also thinking that, but it does not seem to be the case that it's super stupid about that. on a freshly started gajim, you can scroll everything just fine. but leave it running for some time and it will lag. |
01:32 |
erle |
also gajim could extremely lag if you had a connection that has high packet loss, which hints to me that some things are synchronous when they definitely did not need to be |
01:32 |
erle |
muurkha the problem with the immutable log is of course that you can't read it on a the metaphorical potato device |
01:33 |
erle |
not in theoretical, but in practical terms |
01:34 |
erle |
<Izaya> Gajim is also skipping the whole standards thing of late. Very frustrating. |
01:34 |
erle |
Izaya, please explain |
01:34 |
muurkha |
erle: why cant you? |
01:35 |
muurkha |
*can't |
01:36 |
erle |
because any matrix client that offers the same or a similar feature set as say, the gajim or dino xmpp clients seems to have about as much or higher minimum requirements as minetest. |
01:36 |
MTDiscord |
<Benrob0329> It's worth noting that IRCv3 continues to fix IRC's shortcomings, slowly but surely |
01:36 |
erle |
in what ways? also, how can i use it? |
01:37 |
MTDiscord |
<Benrob0329> You likely already are |
01:37 |
Izaya |
erle, their "spaces" implementation has ignored attempts to actually standardise a mechanism for Matrix-style workspaces in favour of a nonstandard implementation using PEP nodes |
01:37 |
erle |
“you like ghost stories? you are in one” |
01:37 |
erle |
what's a workspace? |
01:37 |
Izaya |
think discord guilds |
01:37 |
erle |
what's a guild? |
01:37 |
MTDiscord |
<Benrob0329> See, IRCv3 is where things like the modern SASL connections and capability negotiation come from |
01:38 |
Izaya |
a collection of channels, basically |
01:38 |
erle |
i tried to sign up to discord and it lagged my computer to death *in the signup process* |
01:38 |
MTDiscord |
<Benrob0329> But they're also working on lots of other stuff too |
01:38 |
muurkha |
erle: oh, you don't know about gomuks? |
01:38 |
Izaya |
erle, ah, similar boat to me; I've never used it myself |
01:39 |
erle |
muurkha i do not. |
01:39 |
muurkha |
it's a matrix client |
01:39 |
MTDiscord |
<Benrob0329> I'd make a Portal 2 reference, but erle's computer is too potato to even witness it's existence. |
01:39 |
erle |
as if |
01:39 |
erle |
i bet i have portal 2 music somewhere |
01:39 |
Izaya |
basically the idea is that someone can make a collection of channels (or theoretically other types of multi-user things, like drawing boards and voice rooms) and have them tied together so you can invite someone to the "whole" thing and then they can see all of them and they're organised together |
01:39 |
MTDiscord |
<Benrob0329> The soundtrack is definitely worth having |
01:40 |
Izaya |
instead gajim has a thing where it looks like that's what's going on but it's actually just a worse mechanism than a categorised contact list because contacts can only be in one "workspace" |
01:40 |
Izaya |
(and the workspaces are only seen by gajim) |
01:40 |
erle |
muurkha this does not seem to have inline images though? |
01:40 |
MTDiscord |
<Benrob0329> A modern IRC client remains on my ever growing project list, right after I find a stack I like to work in |
01:41 |
Izaya |
a Good XMPP client is on my list, right after writing my own OS for it to run on >.> |
01:41 |
MTDiscord |
<Benrob0329> Yeah I feel that |
01:41 |
erle |
well obviously you can get by, so it can't be that important? |
01:42 |
MTDiscord |
<Benrob0329> Engineers want to reinvent the world |
01:42 |
MTDiscord |
<Benrob0329> Smart engineers only reinvent what they get paid for |
01:42 |
muurkha |
erle: it renders inline images as ascii art |
01:42 |
MTDiscord |
<Benrob0329> Smarter engineers reinvent it anyways and figure out how to charge for it afterwards |
01:42 |
muurkha |
Izaya: what kind of OS would you like to write? |
01:42 |
erle |
muurkha impressive, but not sufficient. anyways, how much minimum RAM usage? |
01:43 |
Izaya |
current idea involves lifting a lot of ideas from lisp machines but for a language that isn't lisp |
01:43 |
muurkha |
erle: about 14MB |
01:43 |
muurkha |
Izaya: which lispm ideas do you like? |
01:43 |
Izaya |
maybe including some sort of network device transparency like plan9 manages |
01:44 |
muurkha |
do you think the 9P protocol is a better design than HTTP? |
01:44 |
erle |
Izaya, you like ii? |
01:44 |
Izaya |
I like the idea of basically everything in the system being inspectable as structured data, which can be manipulated by the user (or software acting at their discretion) |
01:45 |
erle |
muurkha i'll immediately change my opinion about matrix in terms of implementability and claim the opposite. then again, can you tell me why the other clients are lagfests on hardware that can run firefox, play fullscreen video and minetest etc.? |
01:45 |
muurkha |
erle: electron |
01:45 |
muurkha |
what is ii? |
01:45 |
erle |
ah, so you saying the reason that matrix clients are bad is that they are developed by hipsters using hipster tech! |
01:46 |
erle |
ii is an irc client that exports a filesystem hierarchie i think |
01:46 |
erle |
i used to use it |
01:46 |
erle |
https://tools.suckless.org/ii/ |
01:46 |
erle |
> ii is a minimalist FIFO and filesystem-based IRC client. It creates an irc directory tree with server, channel and nick name directories. In every directory a FIFO in file and a normal out file is created. |
01:46 |
Izaya |
For remote filesystem access 9p is pretty great, much more flexible than HTTP while remaining simple, but realistically, HTTP isn't "just" remote file access. As a system for RPC, both are suboptimal. |
01:46 |
erle |
ii is a fantastic tool to create minimum-effort irc bots in 10 lines of shell or so |
01:48 |
muurkha |
erle: ooh nice |
01:48 |
muurkha |
Izaya: I guess sometimes RPC is convenient? |
01:48 |
erle |
i did not think it wolud ever become relevant, but this is how i used ii: http://news.dieweltistgarnichtso.net/bin/iid http://news.dieweltistgarnichtso.net/bin/iif http://news.dieweltistgarnichtso.net/bin/tailcat |
01:49 |
erle |
i have not found another use for tailcat since, but i bet someone finds some |
01:50 |
muurkha |
heh, I was going to say "too bad I don't know rc", but actually it's easy to read |
01:50 |
erle |
i use rc as the default shell because it is basically ”sh, but what if the warts were fixed” |
01:50 |
erle |
it is the standard shell of plan 9 (and unix 10?) |
01:51 |
erle |
i have written stuff in rc and then translated it to sh (for portability), because it is so much nicer, just by changing a few things |
01:51 |
erle |
there exists a plan 9 paper about shell design that explains how rc ended up with these choices |
01:51 |
muurkha |
Izaya: sounds like some interesting directions to explore! I hope to hear about your progress soon :) |
01:52 |
muurkha |
yeah, I read it, erle, but that was last millennium ;) |
01:52 |
erle |
the most important changes are probably “only one way of quoting” and “instead of implicit split, you always need to explicitly split” |
01:52 |
erle |
but in day-to-day-life the most useful has been the more accessible redirection syntax |
01:53 |
erle |
https://doc.cat-v.org/plan_9/4th_edition/papers/rc |
01:53 |
muurkha |
yeah, I think those are definitely important |
01:53 |
muurkha |
I was super enthusiastic about plan9 in 01996 |
01:53 |
muurkha |
at that time some guy from cisco told me they were using it as a dev environment |
01:54 |
erle |
putting a 0 in front of a number that is not octal trips me up |
01:54 |
muurkha |
heh, me too |
01:54 |
erle |
is that intended? |
01:54 |
muurkha |
yes |
01:54 |
erle |
hehe |
01:54 |
erle |
then continue on, intent matters |
01:54 |
muurkha |
they were having a hard time sourcing new PCs with supported graphic cards |
01:55 |
erle |
well now you have stuff like the MNT reform 2 |
01:55 |
muurkha |
also you can just run it in emulation |
01:55 |
muurkha |
if they'd chosen oberon they wouldn't have had that problem ;) |
01:56 |
erle |
i figured something out relating to my attention deficit some time ago, i have a much easier time using interfaces, programming lanugages and data structures that do not require much hidden state. i assume the reason is that my working memory seems to be very low in contrast to other people. |
01:57 |
erle |
this also means that in code review i flagged things that were working, but not obviously working. |
01:58 |
erle |
a coworker in security does not have this issue, but his philosophy is “it is not good enough to make something that is secure, it needs to be obviously secure” |
01:59 |
erle |
and given the difficulties of explaining design decisions to implementors i agree |
01:59 |
erle |
anyway, i think hidden state is the enemy of a good UX |
01:59 |
erle |
everything that could affect a users decision needs to be accessible, maybe even visible |
02:02 |
erle |
muurkha, my favourite bit of rc code is this quine http://news.dieweltistgarnichtso.net/bin/quine.rc |
02:03 |
|
est31 joined #minetest |
02:03 |
|
YuGiOhJCJ joined #minetest |
02:03 |
|
fling joined #minetest |
02:05 |
erle |
muurkha, btw http://contemporary-home-computing.org/turing-complete-user/ |
02:06 |
erle |
do you have musings on that line of reasoning? |
02:06 |
erle |
it seems like the kind of thing i could find in your writings |
02:06 |
erle |
but i do not know what to seaarch for |
02:08 |
|
YuGiOhJCJ joined #minetest |
02:14 |
muurkha |
flagging things that are working but not obviously so seems like a good thing |
02:15 |
muurkha |
this essay sounds interesting |
02:18 |
muurkha |
I haven't read it yet but it seems like if I had written it I might have tagged it with https://dercuano.github.io/topics/hci.html https://dercuano.github.io/topics/independence.html https://dercuano.github.io/topics/history.html https://dercuano.github.io/topics/politics.html https://dercuano.github.io/topics/utopias.html https://dercuano.github.io/topics/decentralization.html |
02:18 |
muurkha |
https://dercuano.github.io/topics/free-software.html |
02:18 |
|
sys4 joined #minetest |
02:36 |
|
YuGiOhJCJ joined #minetest |
03:01 |
|
YuGiOhJCJ joined #minetest |
03:05 |
|
YuGiOhJCJ joined #minetest |
03:15 |
erle |
muurkha olia lialina is more a UX person though |
03:15 |
erle |
i'll look at the tags |
03:20 |
erle |
random idea i came up with when a friend asked me about how to implement colored beam light changes using glass … |
03:20 |
erle |
if you want to do RGB mixing (which people expect) and you give all channels the same bit width (which i think is making a lot of things easier), you can calculate the number of nodes needed n for the number of bits for each color channel b the following way: |
03:20 |
erle |
b = log2(n * 256) / 3 |
03:20 |
erle |
i am very sleepy, so not sure if that correct, but the integer solutions to that are: |
03:20 |
erle |
2 nodes with 256 palette colors, resulting in 3 bit color channels |
03:20 |
erle |
16 nodes with 256 palette colors, resulting in 4 bit color channels |
03:20 |
erle |
128 nodes with 256 palette colors, resulting in 5 bit color channels |
03:21 |
erle |
you can use the A1R5G5B5 support of my tga_encoder mod to generate the palettes |
03:22 |
erle |
and 5 bit per color channel looks close enough to believable if you have no gradients or so |
03:22 |
erle |
(no banding issues) |
03:27 |
muurkha |
nodes? |
03:27 |
erle |
nodes, in minetest, cubes of 1m³ |
03:27 |
muurkha |
oh, minetest nodes! |
03:27 |
muurkha |
clearly I am offtopicking far too much |
03:27 |
erle |
well, minetest has hardware coloring |
03:27 |
erle |
or rather, palette, colormap support |
03:28 |
muurkha |
so like cyan magenta and yellow nodes and you put them in front of each other? |
03:28 |
erle |
yeah i am thinking of what the minimal demo mod would be |
03:28 |
erle |
i do not believe anyone has done 5 bit color channel mixing before, but i am not sure |
03:29 |
erle |
i have a solution in search of a problem hehe |
03:29 |
erle |
a common hipster dev story |
03:29 |
erle |
magic color nodes |
03:29 |
erle |
it does, in fact solve the problem my friend posed |
03:29 |
erle |
but she is not going to implement it and i am also not |
03:30 |
erle |
which is: consider you have a node that represents a beam that goes through colored glass |
03:30 |
erle |
how do you implement color changes in the beams without registering a node for each color |
03:38 |
erle |
https://en.wikipedia.org/wiki/Color_gel |
03:57 |
|
orwell96 joined #minetest |
04:00 |
|
MTDiscord joined #minetest |
04:07 |
|
fling_ joined #minetest |
04:09 |
|
est_ joined #minetest |
04:15 |
|
sys4 joined #minetest |
04:33 |
|
orwell96 joined #minetest |
05:20 |
|
sys4 joined #minetest |
05:27 |
muurkha |
erle: maybe also https://dercuano.github.io/topics/ubicomp.html |
05:45 |
|
calcul0n joined #minetest |
05:47 |
|
est31 joined #minetest |
06:15 |
|
est31 joined #minetest |
06:26 |
|
Verticen joined #minetest |
06:48 |
|
cranezhou joined #minetest |
06:49 |
|
lemonzest joined #minetest |
07:26 |
|
YuGiOhJCJ joined #minetest |
07:30 |
|
erle joined #minetest |
07:30 |
|
TomTom joined #minetest |
07:38 |
|
est31 joined #minetest |
07:51 |
|
orwell96 joined #minetest |
08:49 |
|
frostsnow joined #minetest |
09:00 |
|
specing_ joined #minetest |
09:13 |
|
est31 joined #minetest |
09:43 |
|
Talkless joined #minetest |
10:32 |
|
appguru joined #minetest |
10:37 |
erle |
appguru have you found the thing that introduced the regression for the automove? |
10:48 |
|
definitelya joined #minetest |
11:10 |
|
frostsnow joined #minetest |
11:32 |
|
Alias joined #minetest |
11:53 |
erle |
schwarzwald[m] muurkha how are build flags usually represented? i tend to use files, because otherwise it is not obvious to users what has changed. but i know that stuff like cmake uses environment variables – which makes the question “how to rebuild the target in exactly the same way” a question of “can i remember which command i used to build it?”. |
12:18 |
|
orwell96 joined #minetest |
12:22 |
|
fling joined #minetest |
12:22 |
|
olliy joined #minetest |
12:23 |
|
est31 joined #minetest |
12:37 |
|
Taoki joined #minetest |
12:50 |
MTDiscord |
<luatic> erle: yes, and I commented on the issue |
13:15 |
|
est31 joined #minetest |
13:18 |
|
fling joined #minetest |
13:51 |
|
Kilroy joined #minetest |
14:16 |
schwarzwald[m] |
<erle> "schwarzwald muurkha how are..." <- By build flags do you mean the compiler flags or the build options? |
14:16 |
schwarzwald[m] |
I'll assume you mean the build options. They're usually passed to cmake as `-DSOME_OPTION=ON` when you invoke it. A good build design will be such that you either know you want an option to be different than the default, or you don't have to specify it. |
14:17 |
schwarzwald[m] |
Basically if you always have to specify options there's a problem. Options should be the exception, not the norm. |
14:17 |
schwarzwald[m] |
In most cases the goto-solution should be to specify no options at all, and it should build in a desirable way. |
14:18 |
schwarzwald[m] |
Only exception I've made in my build is that I don't default CMAKE_BUILD_TYPE to anything, because I don't yet think it's wise to default that. |
14:26 |
|
appguru joined #minetest |
14:27 |
erle |
schwarzwald[m] everything. compiler flags are build options. |
14:27 |
schwarzwald[m] |
Compiler flags should be passed in `-DCMAKE_CXX_FLAGS=".."` |
14:28 |
schwarzwald[m] |
Any flag required to build something should be a target property in the build; you shouldn't have to specify it. |
14:28 |
erle |
schwarzwald[m] an especially hilarious example is that IrrlichtMT (and possibly irrlicht upstream) will build your static library if you give it -DBUILD_SHARED_LIBS=OFF and “make lib/Linux/libIrrlichtMt.a” simply does not work unless you give that option |
14:28 |
erle |
and maybe not even then |
14:29 |
schwarzwald[m] |
That's because there won't be a libIrrlichtMt.a target. |
14:29 |
erle |
but that seems so absolutely bizarre. after all, this is just a target that is not built by default – its build rules should still be emitted! |
14:29 |
erle |
schwarzwald[m] elaborate please |
14:30 |
schwarzwald[m] |
CMake actually generates only 1 library target, and it will be either shared or static depending on that option. |
14:30 |
schwarzwald[m] |
No static library target exists at all if you don't tell it not to build shared. |
14:30 |
erle |
compiler flags are in my branch in src/CXXFLAGS. that way, if you change them, you can see what you changed. |
14:30 |
schwarzwald[m] |
It's quite possible to set it up to do both, of course, but we didn't. |
14:31 |
erle |
well, i maintain that it is an impractical idea to not emit build rules for a non-default target. or does it have to be that way because cmake will implicitly tell the step 2 build system to build all targets? |
14:32 |
erle |
impractical because then you need to configure the build again if you want that target |
14:32 |
schwarzwald[m] |
I read an interesting point by Bjarne Stroustrup last night, who said that he wouldn't compare other languages to C++ in his book on how he made C++, because it's almost impossible to fairly compare languages to each other, and even people who take on the incredibly momentuous task forget things about programmer culture, different versions of the languages, etc. because they don't know the tool as well. |
14:33 |
erle |
oh, i know a good example of this |
14:33 |
schwarzwald[m] |
I think this applies to a lesser extent here. You can't fairly argue about the intricacies and correctness of a build system that you aren't deeply familiar with. |
14:35 |
erle |
that is why i ask you things |
14:35 |
erle |
https://james-iry.blogspot.com/2009/05/brief-incomplete-and-mostly-wrong.html |
14:35 |
erle |
it does not load |
14:35 |
erle |
https://web.archive.org/web/20090509144523/http://james-iry.blogspot.com/2009/05/brief-incomplete-and-mostly-wrong.html |
14:35 |
schwarzwald[m] |
erle: I'm not nearly familiar enough with how CMake works to be qualified to answer most of them. |
14:35 |
erle |
) 1972 - Dennis Ritchie invents a powerful gun that shoots both forward and backward simultaneously. Not satisfied with the number of deaths and permanent maimings from that invention he invents C and Unix. |
14:36 |
schwarzwald[m] |
erle: Love the title. ^^ |
14:36 |
erle |
> 1983 - Bjarne Stroustrup bolts everything he's ever heard of onto C to create C++. The resulting language is so complex that programs must be sent to the future to be compiled by the Skynet artificial intelligence. Build times suffer. Skynet's motives for performing the service remain unclear but spokespeople from the future say "there is nothing to be concerned about, baby," in an Austrian accented monotones. There is some |
14:36 |
erle |
speculation that Skynet is nothing more than a pretentious buffer overrun. |
14:36 |
erle |
> 1987 - Larry Wall falls asleep and hits Larry Wall's forehead on the keyboard. Upon waking Larry Wall decides that the string of characters on Larry Wall's monitor isn't random but an example program in a programming language that God wants His prophet, Larry Wall, to design. Perl is born. |
14:36 |
schwarzwald[m] |
lol |
14:37 |
erle |
i think the best part about the invention of perl is the part where larry wall is the only person who has won the international obfuscated C contest twice (as far as i know) |
14:37 |
schwarzwald[m] |
I have a new favourite programming quote, from Bjarne Stroustrup. He said that C++ makes it harder to shoot yourself in the foot (than C does), but when you do it blows your whole leg off. |
14:38 |
erle |
so he obviously has an award-winning talent for letting the cat walk across the keyboard and compiling the results |
14:39 |
erle |
the quote about the prophet is also a joke i think about his devotion |
14:39 |
erle |
https://en.wikipedia.org/wiki/Larry_Wall |
14:39 |
erle |
> Wall and his wife were studying linguistics with the intention of finding an unwritten language, perhaps in Africa, and creating a writing system for it. They would then use this new writing system to translate various texts into the language, among them the Bible. |
14:39 |
erle |
> He often compares Perl to a natural language and explains his decisions in Perl's design with linguistic rationale. He also often uses linguistic terms for Perl language constructs, so instead of traditional terms such as "variable", "function", and "accessor" he sometimes says "noun", "verb", and "topicalizer". |
14:40 |
schwarzwald[m] |
That sounds amazing. Did they succeed in doing translations? :O |
14:40 |
erle |
nope got canceled |
14:41 |
erle |
”due to health reasons” |
14:41 |
schwarzwald[m] |
That's too bad. |
14:41 |
erle |
anyway, i think that joke post is deeper than one might think at first glance |
14:42 |
erle |
btw, guns that shot forwards and backwards simultaneously existed for a short while. instead of a revolver drum, there is also the possibility to put a disk the way that the bullets are oriented outside. |
14:42 |
erle |
so shooting forwards and backwards at the same time was a possible accident in them |
14:43 |
erle |
i forgot its name, but it sounds hilariously unsafe |
14:43 |
schwarzwald[m] |
Anyway, to get back on topic, let me check the cache for my CXX_FLAGS. |
14:43 |
erle |
yeah, how do you do that? |
14:43 |
erle |
in my case, it is a file that i read |
14:44 |
schwarzwald[m] |
//Flags used by the CXX compiler during all build types. |
14:44 |
schwarzwald[m] |
CMAKE_CXX_FLAGS:STRING=-march=native |
14:44 |
schwarzwald[m] |
Same here. |
14:44 |
schwarzwald[m] |
I don't usually open the file though (although this time I did), because it's quicker to use `grep`. |
14:44 |
erle |
oh yeah, could be this one https://en.wikipedia.org/wiki/File:Lewis_Gun_(derivated).jpg |
14:44 |
erle |
not sure |
14:44 |
erle |
maybe that one is safe |
14:45 |
erle |
i think the one i remember was way stupider |
14:45 |
schwarzwald[m] |
`grep "CXX_FLAGS" build/CMakeCache.txt` |
14:47 |
schwarzwald[m] |
Any flags people are going to use repeatedly in certain circumstances might be wise to apply automatically. |
14:47 |
schwarzwald[m] |
For example I'm thinking I should check whether it's a Debug build and set up the Clang sanitizers or something if it is. |
14:47 |
schwarzwald[m] |
(Also assuming Clang is the compiler. xD) |
14:47 |
schwarzwald[m] |
(Can set different sanitizers if it's GCC.) |
14:48 |
erle |
which also means a dependency on the compiler symlink for c++ ;) |
14:48 |
schwarzwald[m] |
CMake handles compiler detection internally. |
14:50 |
* schwarzwald[m] |
sent a cmake code block: https://libera.ems.host/_matrix/media/r0/download/libera.chat/fc06c03f489aa6527724a74b42858d859f47bf73 |
14:50 |
schwarzwald[m] |
This is how I set warning flags for example. |
14:50 |
schwarzwald[m] |
The compiler detection process is most likely documented, but I haven't read through that documentation. |
14:51 |
schwarzwald[m] |
no-c++90-compat? Oof, that should be no-c++98-compat. |
15:14 |
|
fling joined #minetest |
15:28 |
|
est31 joined #minetest |
15:38 |
Arya[verncc][m] |
lmfao |
15:38 |
Arya[verncc][m] |
i have 69 perpetual notifications |
15:41 |
erle |
Arya[verncc][m] perpetual? |
15:41 |
Arya[verncc][m] |
matrix was glitching |
15:41 |
Arya[verncc][m] |
(bad protocol) |
15:41 |
|
Warr10244 joined #minetest |
15:43 |
erle |
muurkha do you think the fact that the vast majority of matrix clients is written using element reflects the state of the dev community or that it is simply a child of its times? |
15:57 |
|
proller joined #minetest |
16:16 |
|
fling_ joined #minetest |
16:17 |
|
est31 joined #minetest |
16:40 |
|
skunky3 joined #minetest |
16:43 |
skunky3 |
heya, if i use texture modifiers on nodes like multiply, crack, overlay etc, will the server just send the required textures for it and the string, or does it create the image serverside and send it? |
16:44 |
rubenwardy |
it's created client-side |
16:44 |
sfan5 |
all textures are transferred to the client at load time and the rest happens there |
16:44 |
skunky3 |
great, thanks a lot for the info! |
17:08 |
sfan5 |
anyone have a link to that formspec editor thing |
17:08 |
sfan5 |
on the web |
17:09 |
sfan5 |
the formulas from the api docs don't seem to work for converting to real coordinates |
17:10 |
sfan5 |
so much easier to recreate the layout from scratch |
17:10 |
skunky3 |
btw, im guessing biome colour blending still doesnt really exist in any way? |
17:11 |
sfan5 |
you mean like this? https://i.stack.imgur.com/hcejG.jpg |
17:12 |
sfan5 |
if yes then that's up to mods to do, it's possible with the engine features |
17:12 |
skunky3 |
yeahh, it would be nice to have optionally |
17:12 |
erle |
skunky3 just as a warning, some people go way overboard with texture modifiers to create very detailed textures. in the case that you actually intend to create textures pixel-by-pixel dynamically on the server, you can use either minetest.encode_png() or tga_encoder, depending on your use case – minetest.encode_png() will only do RGBA textures, tga_encoder can do paletted images and other stuff but is not suitable for large images. |
17:13 |
erle |
skunky3 if you want biome colors, mineclone2 contains an implementation of differently colored dirt with grass. |
17:14 |
erle |
skunky3 you basically have to usea paletted node, then adjust the param2 (that gives the palette index) per biome on placement in both the mapgen and manual placement or grass spreading or so. |
17:15 |
erle |
the screenshot you got shown is probably exactly that |
17:16 |
erle |
also, before you inevitably ask: i am not aware of any way to do this for flowing water. |
17:17 |
erle |
i was told that water nodes use the param2 for other important stuff (direction?) and you can not color them, but i have not verified that. |
17:19 |
skunky3 |
yeah, i thought of those ways, but seems to not be able to do in block blending, was just curious if it was possible, can live without it tho |
17:19 |
erle |
what do you mean with in-block bending? |
17:19 |
erle |
blending |
17:20 |
skunky3 |
the colour slowly blending between colours even on a single block |
17:20 |
skunky3 |
like a gradiant |
17:21 |
erle |
this is technically achievable, but i have never seen it being done. i also do not think it is useful. |
17:21 |
erle |
however, i can help you if you want to implement it. |
17:22 |
erle |
i suggest to calculate the number of different gradients you would need for your use case first though |
17:23 |
skunky3 |
unsure yet since im more on the beginning stages of my ideas |
17:23 |
erle |
my intial assumption is that for each color-pair you would want 8 gradients. |
17:24 |
erle |
so for one black and one white node there are 8 nodes, simply imagine a black node surrounded by white nodes or vice versa |
17:25 |
erle |
for example, for six base colors you want to blend, i think it is 6! = 120 transitions. times 8 gradient directions. |
17:26 |
erle |
that is 960. so you can not achieve it with a single colormapped node. |
17:26 |
erle |
oh, it is 5! |
17:26 |
erle |
sorry |
17:27 |
erle |
i think you can blend 5 colors, like that because then you only need 192 palette entries |
17:27 |
skunky3 |
yeah i could imagine it going quite off the charts with the amount of nodes |
17:27 |
erle |
well, each node can have 255 different palette colors |
17:27 |
erle |
256? |
17:27 |
erle |
8 bit param2 yes |
17:28 |
erle |
so technically, i'd say you start with 8 different gradient nodes, then colorize them in differently |
17:28 |
skunky3 |
im guessing that its not possible to overwrite the shaders of blocks btw? |
17:29 |
erle |
i have no idea. i do not think it makes sense to solve it on that level anyway. |
17:29 |
erle |
it will look ugly no matter you try |
17:30 |
erle |
a better idea is to change the node color gradually |
17:30 |
erle |
instead of having a gradient over the node |
17:31 |
erle |
incidentally, i calculated last night that you can actually use 128 nodes with 256 palette colors each, resulting in 5 bit color channels for R, G, B |
17:31 |
erle |
this is evidently not too much |
17:32 |
erle |
epmirically, as long as you do it right, players can't distinguish 15 bit RGB from 24 bit RGB (with 8 bit per channel) anyway |
17:33 |
skunky3 |
i would personally try to mess around on that level since im more well versed with shader code then lua minetest stuff, but might have a better solution anyway like ya said there |
17:33 |
erle |
the fundamental problem with any color blending thing is that the smallest solution i found that makes sense requires 2 nodes. |
17:33 |
erle |
any smaller solution is the one we already have |
17:33 |
erle |
i.e. the mineclone2 solution |
17:34 |
erle |
skunky3 if you are well versed with shader code, can you tell me how to programmatically find the amount of instructions shader code gets compiled into? |
17:34 |
erle |
it depends on the GPU, i know that. but i could only find a tool that reports this for the mali GPU. |
17:34 |
erle |
which i do not use |
17:36 |
erle |
it is relevant to me because as far as i can tell there are a lot of underpowered openGL ES 2.0 GPUs which can do shaders, but not with minetest, because minetests shaders are too big. if it was only a few shaders or these could be reduced to fit, lower-spec devices might get shader fun. |
17:37 |
skunky3 |
not really sure, and i said im more well versed with it then lua, not that im very well versed with them in general :p |
17:37 |
erle |
for example, the mali 400 GPU is OGLES spec-compliant, but can't do it. the intel GM9xx i use can do shaders, but exceeding the instruction count by even one instruction makes rendering performance drop from realtime to less-than-1-fps. |
17:37 |
erle |
apparently the hardware simply trips over itself when you do that |
17:38 |
erle |
well, if you find a way, please tell |
17:38 |
erle |
i already found that the shader compiler for my hardware unrolls all loops lol |
17:39 |
erle |
so i do not have high hopes |
17:46 |
erle |
skunky3 it can help to cut your problem down to size. for example, you might not even want to blend between each biome color, because some biomes can not occur next to each other. |
17:47 |
skunky3 |
i already have some other ideas so ill do that before that |
17:47 |
erle |
tell |
17:49 |
erle |
i just mean, imagine you have 16 biome colors. if you need at most 30 transitions of 8 gradients each between them, you can fit that in a single node. |
17:49 |
|
sys4 joined #minetest |
17:49 |
erle |
so if they are, for example, on a height gradient, it may just work out |
17:52 |
|
FreeFull joined #minetest |
17:57 |
|
bwarden joined #minetest |
18:09 |
erle |
skunky3, did you see this? https://content.minetest.net/packages/pauldpickell/colorbrewer/ |
18:11 |
skunky3 |
no i havent, tho ill try to do my own thing later |
18:18 |
Thermoriax |
Hmm, I'd heard shadows amd better lighting got added, but I don't see it...is there a setting somewhere I missed? |
18:20 |
erle |
Thermoriax games must enable it. you must also enable it. |
18:20 |
erle |
Thermoriax look at the lower right corner in the graphics section, make sure you have shaders active. |
18:23 |
Thermoriax |
hmm, they are...though the public server I was on may not have, let me whip up a local world to see |
18:24 |
ROllerozxa |
dev versions of MTG has support for it, I don't know if any other games do yet |
18:25 |
Thermoriax |
ah, I thought it had been merged at 5.5 |
18:25 |
erle |
i bet there is a mod on cdb that activates it |
18:26 |
ROllerozxa |
heh, https://content.minetest.net/packages/ROllerozxa/enable_shadows/ |
18:26 |
erle |
the fundamental issue with games gaving to activate it is that a bunch of games contain a bunch of things where shadows are undesired |
18:26 |
erle |
for example, if you had shadows in a shooter game (like ctf) i think you might be able to see enemies around corners, is that right rubenwardy? |
18:26 |
ROllerozxa |
Thermoriax: it was merged during 5.5.0-dev but was disabled during the 5.5 stable release. they're in 5.6.0-dev again now and the upcoming 5.6.0 release but they're opt-in and controllable by the game |
18:27 |
Thermoriax |
ah, off to find dev builds then |
18:27 |
erle |
what system are you on? |
18:27 |
Thermoriax |
win10 |
18:28 |
ROllerozxa |
https://forum.minetest.net/viewtopic.php?f=42&t=1523&p=412369#p412369 |
18:28 |
Thermoriax |
at least until MS annoys me enough to switch entirely to xubuntu. :) |
18:28 |
erle |
at the point where they do that you will have more difficulties to switch ig |
18:29 |
ROllerozxa |
also for some reason 5.6.0-rc1 doesn't have binaries available yet... been a week now |
18:29 |
muurkha |
erle: some of both |
18:29 |
erle |
muurkha sorry, what was that a response to? |
18:30 |
erle |
Thermoriax you should take great care that you do not end up with a device that you can not install GNU/Linux on anymore. |
18:31 |
Thermoriax |
we should probably take this to offtopic if there is one |
18:31 |
muurkha |
erle: make also has make variables which are sort of like environment variables |
18:33 |
muurkha |
erle: state of world or dev community |
18:36 |
erle |
muurkha i should probably do something like “env |redo-ifchange” then haha |
18:36 |
erle |
well only for the relevant variables |
18:40 |
erle |
muurkha can you point me to an overview of tracing methods? the strace method is actually competitive (i can build faster than cmake if using PCH and apenwarr do), but i am interested in different approaches. |
18:40 |
erle |
or just mention them if there are not many |
18:41 |
erle |
a friend suggested a FUSE approach, i have thought about inotify, but for both i have not seen any implementations |
18:41 |
erle |
(in the context of build systems) |
18:42 |
muurkha |
there's FUSE, and Vesta implemented its own NFS server |
18:42 |
erle |
oh yes i forgot about that |
18:43 |
erle |
how does vesta map the filesystem calls to a build rule? |
18:43 |
erle |
namespaces? |
18:45 |
|
vampirefrog joined #minetest |
18:47 |
|
TomTom joined #minetest |
18:47 |
sfan5 |
to answer my own question from earlier: the formspec editor is at https://luk3yx.gitlab.io/minetest-formspec-editor/ and I could have trivially googled for it |
18:52 |
muurkha |
the build rule sets up the namespace to run the build step in |
19:11 |
|
appguru joined #minetest |
19:22 |
|
vampirefrog joined #minetest |
19:27 |
|
sparky4 joined #minetest |
19:41 |
|
dabbill joined #minetest |
19:53 |
|
est31 joined #minetest |
20:01 |
|
olliy joined #minetest |
20:22 |
|
proller joined #minetest |
20:29 |
|
cynthiune joined #minetest |
20:36 |
|
cynthiune1 joined #minetest |
20:59 |
|
YuGiOhJCJ joined #minetest |
21:00 |
|
specing_ joined #minetest |
21:10 |
MTDiscord |
<MisterE> Does anyone feel like playing blockbomber in 2 hrs? I'm hoping we can get a team of 5 ppl or more |
21:30 |
|
Verticen joined #minetest |
21:41 |
|
YuGiOhJCJ joined #minetest |
21:42 |
|
sys4 joined #minetest |
21:50 |
|
Alias joined #minetest |
22:19 |
|
YuGiOhJCJ joined #minetest |
22:34 |
|
panwolfram joined #minetest |
23:14 |
|
cynthiune joined #minetest |
23:14 |
|
cynthiune2 joined #minetest |
23:21 |
|
bodiccea_ joined #minetest |
23:36 |
MTDiscord |
<MisterE> playing blockbomber, come join! |
23:37 |
MTDiscord |
<MisterE> - Address: bb1.blockbomber.org - Port: 30001 |
23:41 |
|
cynthiune2 joined #minetest |
23:52 |
|
cynthiune1 joined #minetest |
23:53 |
|
Lesha_Vel joined #minetest |
23:58 |
fluxionary |
hm. you can use mod_storage before all the mods are loaded, right? |
23:58 |
fluxionary |
(apropos nothing) |
23:59 |
rubenwardy |
yeah, you need to get a reference during your mod's load time, and you can use it immediately |