diff --git a/src/templates/src/fishbowls/config/config.html b/src/templates/src/fishbowls/config/config.html new file mode 100644 index 0000000..a374d23 --- /dev/null +++ b/src/templates/src/fishbowls/config/config.html @@ -0,0 +1,10761 @@ +
+ + + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 10:59 AM +
+ +
+ It is that time again! + +
+ + + + +
+
+
+
+
+
+
11:00
+
+ +
+ +
+ Topic: How to design to avoid configuration + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ + Avatar +
+ +
+ +
+ bvisness + + + Mar 13, 2021 11:00 AM +
+ + + + + + +
+ #fishbowl-audience conversation begins here: https://discord.com/channels/239737791225790464/708458209131757598/820371782115655750 + +So, this topic was prompted by a message from @demetrispanos a while ago about configuration in software design. I'll let him introduce the topic in a bit (and give everyone their fishbowl role), but I just wanted to introduce the subject quickly so everyone is on the same page. + + (edited) +
+
+
+ +
+
+
+
11:01
+
+ +
+ +
+ So Demetri's original message was: +
I am anti-configuration, and in fact consider configuration a bug not a feature. The designer should just make it good to begin with.
+ +
+ + + + +
+
+
+
+
+
+
11:02
+
+ +
+ +
+ And this got me thinking about configuration in software in general. The full pitch for this topic can be found here: https://github.com/AsafGartner/hmn_fishbowl/discussions/22 + +
+ + + + + +
+
+
+
+
+
+
11:03
+
+ +
+ +
+ So some of the questions we're interested in are: +- What is "configuration"; how do we identify it? +- Why do we have it, what are the upsides and downsides? +- How do we design software in a way that avoids it as much as possible? +- If we do have configuration, why, and how can we make it not suck? + +
+ + + + +
+
+
+
+
+
+
11:03
+
+ +
+ +
+ @demetrispanos has some initial thoughts, so at this point I'll let him open while I give everyone else the fishbowl role. + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ demetrispanos + + + Mar 13, 2021 11:04 AM +
+ +
+ ok thanks ben, I will paste a short text here summarizing where I'm coming from + +
+ + + + +
+
+
+
+
+
+
11:05
+
+ +
+ +
+ I tried a few other options and pasting an image from my editor seems the least-bad among bad options given the formatting on different devices + +
+ +
+ + + Image attachment + +
+ + + +
+
+
+
+
+
+
11:05
+
+ +
+ +
+ just to be clear, I'm not arguing that one never needs configuration + +
+ + + + +
+
+
+
+
+
+
11:06
+
+ +
+ +
+ but I've found this spectrum useful in thinking about what input I'm demanding from a user + +
+ + + + +
+
+
+
+
+
+
11:06
+
+ +
+ +
+ and I consider configuration a cost, because no one comes to your app because they want to configure stuff + +
+ + + + +
+
+
+
+
+
+
11:06
+
+ +
+ +
+ it may be a worthwhile cost if adding the configuration allows the user to access a valuable set of features that otherwise wouldn't be possible, or appropriate + +
+ + + + +
+
+
+
+
+
+
11:07
+
+ +
+ +
+ but ultimately it is a cost, and needs to justify its presence ... it has no value on its own + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 11:08 AM +
+ +
+ I like the terminology you're using here, I think it will be helpful throughout this conversation + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ Voran + + + Mar 13, 2021 11:09 AM +
+ +
+ One thing that I definitely think I agree on is the 'separate channel' point. Configuration files are generally not great, nobody wants to use them. What reasons would someone have as a developer to have that, instead of providing the option inside the program itself? + +
+ + + + +
+
+
+
+
+
+
11:10
+
+ +
+ +
+ At the very least, one could argue that you should be able to change anything you can change inside a config file from inside the actual software while it's running (similar to how options typically work) + + (edited) +
+ + + + +
+
+
+
+ + + +
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
Voran
+
+ +One thing that I definitely think I agree on is the 'separate channel' point. Configuration files are generally not great, nobody wants to use them. What reasons would someone have as a developer to have that, instead of providing the option inside the program itself? + +
+
+
+ demetrispanos + + + Mar 13, 2021 11:10 AM +
+ +
+ a common motivation for this is "headless" software like web servers + +
+ + + + +
+
+
+
+
+
+
11:10
+
+ +
+ +
+ though you could imagine a web server that accepts config input over an http request + +
+ + + + +
+
+
+
+ + + +
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
Voran
+
+ +At the very least, one could argue that you should be able to change anything you can change inside a config file from inside the actual software while it's running (similar to how options typically work) + + (edited) +
+
+
+ .bmp + + + Mar 13, 2021 11:11 AM +
+ +
+ To this point you can easily imagine (within some standardized config format) having an external configuration program + +
+ + + + +
+
+
+
+
+
+
11:12
+
+ +
+ +
+ Something that provides a better config experience, and can serve multiple programs + +
+ + + + +
+
+ 💯 + 1 +
+
+
+
+
+
+
+
+
11:12
+
+ +
+ +
+ But I think more importantly here, having something like config text files or over-configurability in general usually indicates a design failure + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ demetrispanos + + + Mar 13, 2021 11:13 AM +
+ +
+ going back to "config as cost", we can combine that with the "designer should just make it good" part and ask ... why is the designer shoving this cost on me? + +
+ + + + +
+
+
+
+ + + +
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
.bmp
+
+ +But I think more importantly here, having something like config text files or over-configurability in general usually indicates a design failure + +
+
+
+ bvisness + + + Mar 13, 2021 11:14 AM +
+ +
+ Yes, I think that regardless of your UI for configuration, there are still a lot of downsides. However, maybe better config UX can push it toward "options" in Demetri's terminology? + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 11:14 AM +
+ +
+ Many times it's a straight-up avoidance of design + +
+ + + + +
+
+
+
+
+
+
11:14
+
+ +
+ +
+ Because there is no designer + +
+ + + + +
+
+
+
+
+
+
11:14
+
+ +
+ +
+ Only programmer(s) + +
+ + + + +
+
+
+
+
+
+
11:14
+
+ +
+ +
+ Who are often both a) design-phobic and b) config-happy + +
+ + + + +
+
+
+
+ + + +
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
.bmp
+
+ +Many times it's a straight-up avoidance of design + +
+
+
+ demetrispanos + + + Mar 13, 2021 11:15 AM +
+ +
+ yes absolutely true, that systems with elaborate configuration often are trying not to take any stand on what should be good practice or preferred + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 11:15 AM +
+ +
+ As opposed to the average end-user who, excepting some circumstances for power users with heavily-used software, just want the thing to work well out of the box with default configuration and only want to edit trivial things like color scheme, if anything at all + +
+ + + + +
+
+
+
+
+
+
11:17
+
+ +
+ +
+ Now with perfect configurability this wouldn't be that bad since other users could distribute good configs, but more configurability doesn't just mean less-designed defaults, it generally means a less-designed and less coherent system overall + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ demetrispanos + + + Mar 13, 2021 11:17 AM +
+ +
+ I should mention one area where "config files" are a generally desired solution, which is when you want to do reproducible automated deployments/builds + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 11:17 AM +
+ +
+ Configurability is genericity + +
+ + + + +
+
+
+
+ + + +
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
demetrispanos
+
+ +I should mention one area where "config files" are a generally desired solution, which is when you want to do reproducible automated deployments/builds + +
+
+
+ .bmp + + + Mar 13, 2021 11:18 AM +
+ +
+ In this case I would almost not call them config files - at that point it's just an API technically + +
+ + + + +
+
+
+
+ + + +
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
demetrispanos
+
+ +I should mention one area where "config files" are a generally desired solution, which is when you want to do reproducible automated deployments/builds + +
+
+
+ bvisness + + + Mar 13, 2021 11:18 AM +
+ +
+ Even in these situations though, you can still avoid many configuration values in the first place + +
+ + + + +
+
+
+
+ + + +
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
.bmp
+
+ +In this case I would almost not call them config files - at that point it's just an API technically + +
+
+
+ demetrispanos + + + Mar 13, 2021 11:18 AM +
+ +
+ yeah I agree that at this point it is moving toward "essential input" + +
+ + + + +
+
+
+
+ + + + + + + +
+
+
+
+ Avatar +
+ +
+
+ demetrispanos + + + Mar 13, 2021 11:18 AM +
+ +
+ for example, if you want to ship an app and pin some particular library dependency, that is now essential + +
+ + + + +
+
+
+
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 11:18 AM +
+ +
+ actually yeah that's a good point + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 11:18 AM +
+ +
+ within your terminology, that is the primary channel of input + + (edited) +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ demetrispanos + + + Mar 13, 2021 11:18 AM +
+ +
+ right, so whether it's "configuration" is context-dependent + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 11:19 AM +
+ +
+ I think that's an interesting and important distinction, because I would certainly tend to class webserver parameters as "config files" + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ Voran + + + Mar 13, 2021 11:20 AM +
+ +
+ I think that there can't be the expectation that the end-user ever has to interact with a configuration at all, for the program to work well. In which case, you have to really have something of value that's gained from the different configuration. What are the power users actually getting out of the configuration? If it's "the program works better for this use case", you should probably find a better way to make it work better for that use case out of the box + +
+ + + + +
+
+
+
+ + + +
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
bvisness
+
+ +I think that's an interesting and important distinction, because I would certainly tend to class webserver parameters as "config files" + +
+
+
+ demetrispanos + + + Mar 13, 2021 11:20 AM +
+ +
+ yeah and yet we feel very differently about an nginx.conf vs a vimrc + +
+ + + + +
+
+ this + 4 +
+
+
+
+
+
+ + + +
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
Voran
+
+ +I think that there can't be the expectation that the end-user ever has to interact with a configuration at all, for the program to work well. In which case, you have to really have something of value that's gained from the different configuration. What are the power users actually getting out of the configuration? If it's "the program works better for this use case", you should probably find a better way to make it work better for that use case out of the box + +
+
+
+ .bmp + + + Mar 13, 2021 11:20 AM +
+ +
+ Yeah there is a philosophical underpinning to this + +
+ + + + +
+
+
+
+
+
+
11:20
+
+ +
+ +
+ A "fear" of design + +
+ + + + +
+
+
+
+
+
+
11:20
+
+ +
+ +
+ Because design means constraints + +
+ + + + +
+
+
+
+
+
+
11:21
+
+ +
+ +
+ And constraints mean "not equally good for everyone" + +
+ + + + +
+
+
+
+
+
+
11:22
+
+ +
+ +
+ Which means even if the design is great you'll have some fraction of 4/5 star users complaining about certain aspects of the design + +
+ + + + +
+
+
+
+
+
+
11:22
+
+ +
+ +
+ The proper response very well may be "too bad" + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 11:22 AM +
+ +
+ But many companies (or individuals, or whatever) have a very hard time not giving undue significance to the squeaky wheel + +
+ + + + +
+
+
+
+
+
+
+ Avatar +
+ +
+
+ demetrispanos + + + Mar 13, 2021 11:22 AM +
+ +
+
What are the power users actually getting out of the configuration +
I was tempted to add a category to my taxonomy, and hesitated because it was a bit of a joke, but maybe it's worth mentioning ... there's a category of configuration I'd call "nerdsniping bait"
+ +
+ + + + +
+
+
+
+
+
+
11:22
+
+ +
+ +
+ things that actually make almost no difference and yet waste an hour of many people's time getting it juuuuust right + +
+ + + + +
+
+
+
+ + + + + + + +
+
+
+
+ Avatar +
+ +
+
+ demetrispanos + + + Mar 13, 2021 11:23 AM +
+ +
+ and the collective cost across all of society is on the scale months or years of lost productivity if the application is popular + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 11:24 AM +
+ +
+ That style of configuration I hope we can all agree is a bad thing, a failure of design. Although, I'd be curious to know if you have a concrete example in mind. + +
+ + + + +
+
+
+
+ + + +
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
bvisness
+
+ +That style of configuration I hope we can all agree is a bad thing, a failure of design. Although, I'd be curious to know if you have a concrete example in mind. + +
+
+
+ demetrispanos + + + Mar 13, 2021 11:24 AM +
+ +
+ unfortunately one person's nerdsnipe is another person's important ergonomics + +
+ + + + +
+
+
+
+
+
+
11:25
+
+ +
+ +
+ speaking personally, I find editor color schemes to be a huge waste of life + +
+ + + + +
+
+
+
+
+
+
11:25
+
+ +
+ +
+ pick one and use it, then go do something useful + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 11:25 AM +
+ +
+ rob pike intensifies + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ demetrispanos + + + Mar 13, 2021 11:25 AM +
+ +
+ but I know people who have easily spent 10+ hours pondering and evaluating color schemes + + (edited) +
+ + + + +
+
+
+
+ + + +
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
bvisness
+
+ +rob pike intensifies + +
+
+
+ .bmp + + + Mar 13, 2021 11:27 AM +
+ +
+ Well no Pike is even worse to where he considers color schemes literally net negative haha + +
+ + + + +
+
+
+
+
+
+
11:27
+
+ +
+ +
+ Which is basically an unsupportable position + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 11:27 AM +
+ +
+ true, but for the sake of focus let's keep pikebashing to #fishbowl-audience 😛 + +
+ + + + +
+
+
+
+
+
+
11:27
+
+ +
+ +
+ leave my dumb joke be + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ demetrispanos + + + Mar 13, 2021 11:27 AM +
+ +
+ anyway I don't want to derail too much on the nerdsnipe aspect, I think it's worth considering but it's not really the heart of the problem + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ Voran + + + Mar 13, 2021 11:31 AM +
+ +
+ I guess to bring it back to the core of 'provide something good out of the box', I've personally felt that the appearance of your program should either be handcrafted, or inherit its appearance from other programs for the sake of consistency. People need to approach the visual aspect as a design decision, and make something that is nice for the majority of users instead of trying to make it perfect for everyone. + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 11:32 AM +
+ +
+ Yeah, and to Demetri's point I think aesthetic stuff is easily the worst cost-to-benefit ratio of anything you could let users configure + +
+ + + + +
+
+
+
+
+
+
11:32
+
+ +
+ +
+ So it provides a very obvious initial example of something the author should just design. And actually I think even your "power" users might appreciate having the decision made for them too, in the end. + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 11:32 AM +
+ +
+ Well, from a mechanical perspective sure + +
+ + + + +
+
+
+
+ + + + + + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 11:33 AM +
+ +
+ But from a quality of life perspective spending 40 hours a week engaging with awful aesthetics is not great + +
+ + + + +
+
+
+
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 11:33 AM +
+ +
+ Like how in the Go world, "go fmt is no one's favorite, but go fmt is everyone's favorite" + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 11:33 AM +
+ +
+ When you have no power to change trivial things, you readily accept them + +
+ + + + +
+
+ 💯 + 1 +
+
+
+
+
+
+
+
+
11:33
+
+ +
+ +
+ and it clears your mind + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 11:33 AM +
+ +
+ (That said of course just providing good aesthetics out of the box with minimal tweaking required/allowed is ideal) + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 11:34 AM +
+ +
+ Yeah aesthetics do matter, but configurable aesthetics are clearly a waste of time. Enough people are broadly designed aligned on aesthetics anyway that you can just make a good decision pretty easily. + + (edited) +
+ + + + +
+
+
+
+
+
+
11:34
+
+ +
+ +
+ (Perhaps with lightweight options for the edges of that space.) + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 11:35 AM +
+ +
+ Well no most programmers have bottom of the barrel aesthetic sensibilities + +
+ + + + +
+
+
+
+
+
+
11:35
+
+ +
+ +
+ It's a real problem + +
+ + + + +
+
+
+
+
+
+
11:35
+
+ +
+ +
+ And part of why the most programmery software is the worst aesthetically + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 11:35 AM +
+ +
+ I'm talking about what aesthetics people like, not what people will think to create + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ Voran + + + Mar 13, 2021 11:35 AM +
+ +
+
configurable aesthetics are clearly a waste of time +
I agree, but to use demitri's terminology, I do think thatoptional aesthetics have a lot of value to them
+ +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 11:36 AM +
+ +
+ Oh well you said "broadly designed" at first and threw me off 😛 + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 11:36 AM +
+ +
+ yes I apologize for a stupid typo + +
+ + + + +
+
+
+
+
+
+
11:36
+
+ +
+ +
+ I meant aligned + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ Voran + + + Mar 13, 2021 11:37 AM +
+ +
+ If Discord were to have a team of artists come up with 5 new themes, there's a pretty good chance they could come up with something I'd like. Maybe one with rainbow highlights, maybe one that uses pastels. But if they gave me the ability to spend that time to do it myself, I would take a lot more time than the artists to make something way worse. + +
+ + + + +
+
+ 👍 + 2 +
+
+
+
+
+
+
+
+
11:38
+
+ +
+ +
+ And the effort would be duplicated by anyone who wants the same thing as me, leading to a much higher cost + + (edited) +
+ + + + +
+
+
+
+
+
+
11:39
+
+ +
+ +
+ So the option is definitely a valuable thing to have, but you can't make it into work for your users. + + (edited) +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 11:39 AM +
+ +
+ Yep, for sure, and I think a critical part of Demetri's opening ideas is that we need to consider the cost it puts on our users. + +
+ + + + +
+
+
+
+
+
+
11:40
+
+ +
+ +
+ So what about stuff that is a little more critical than aesthetics? + +
+ + + + +
+
+
+
+
+
+
11:40
+
+ +
+ +
+ We can probably continue to consider configurable editors if we want to think of some concrete examples. + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ Wayward + + + Mar 13, 2021 11:41 AM +
+ +
+ different countries have different keyboard layouts, and not necessarily all the keys that are well placed on an US keyboard is decent on a scandinavian keyboard + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 11:42 AM +
+ +
+ Ok, so things like keymappings are maybe a more directly beneficial piece of config. But there again there is strong value in good design up front (otherwise all your mappings are two-keystroke things like shift-F6, ctrl-U) + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ Wayward + + + Mar 13, 2021 11:43 AM +
+ +
+ and there's uncommon cases of color blindness, no point in using a text editor if the user can't see the text + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 11:43 AM +
+ +
+ Ok, so those are benefits, but if we're considering costs, how much cost does it put on users? And what can affect that cost? + +
+ + + + +
+
+
+
+
+
+
11:44
+
+ +
+ +
+ As with everything in programming, the benefits are obvious in isolation. + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ Voran + + + Mar 13, 2021 11:44 AM +
+ +
+ I believe that it should be possible to detect the user's keyboard layout, right? If your keybindings are more positional, if you see a need to support more keyboard layouts, you should be able to have things 'just work' instead of having the user get things working themselves + +
+ + + + +
+
+
+
+
+
+
11:44
+
+ +
+ +
+ Color blindness is also something that you can design for; using patterns and high contrast instead of relying on color to differentiate things + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 11:45 AM +
+ +
+ Yes, so in both of these examples a lot of the user cost could be mitigated by good up-front design. + +
+ + + + +
+
+
+
+
+
+
11:45
+
+ +
+ +
+ So design is still an important factor even when the system is configurable. And if you're already being forced to design things, at some point you have to question whether the fringe benefits offset the cost of allowing config. + +
+ + + + +
+
+
+
+
+
+
11:46
+
+ +
+ +
+ Because there's another aspect of config Demetri brought up in his intro, which is fragmentation + +
+ + + + +
+
+
+
+
+
+
11:46
+
+ +
+ +
+ Things that are configurable will vary between users, and will be more work for the software author to support, but will also result in less sharing of understanding between users. + +
+ + + + +
+
+
+
+
+
+
11:47
+
+ +
+ +
+ At the extremes, the way you work may be totally different, aesthetically and functionally, from another user of the "same" software. + +
+ + + + +
+
+
+
+
+
+
11:48
+
+ +
+ +
+ Aesthetic configuration doesn't really cause meaningful fragmentation, but functional configuration certainly can. + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ Voran + + + Mar 13, 2021 11:49 AM +
+ +
+ That's a very good point. If you're learning to use a piece of software through someone who has done an amount of configuration, you'll have to do the same configuration to follow along in a lot of cases + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 11:49 AM +
+ +
+ You see this in the extreme in Vim and friends, where the people who teach Vim forget the extent to which they have modified the system, added conveniences, changed subtle parameters years ago. + +
+ + + + +
+
+
+
+
+
+
11:50
+
+ +
+ +
+ You see it in shells too, where people have vast networks of aliases. + +
+ + + + +
+
+
+
+
+
+
11:50
+
+ +
+ +
+ And the result is really that the system the power users use is fundamentally different from the original system. + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ Voran + + + Mar 13, 2021 11:53 AM +
+ +
+ One question to ask might be "Is the system the power users use better?", because they might actually be making something far easier to do than it was before. For instance, while not exactly a configuration per say, I have a startup script that I've been working on recently, which has reduced the time it takes for me to open up everything that I typically have open from an hour or two to about 30 seconds. + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 11:54 AM +
+ +
+ Actually re: just detecting things instead of user configuration, one of the most common frustrations I run into as a software user is programs that don't use global configuration or interoperability when they trivially could + +
+ + + + +
+
+
+
+
+
+
11:54
+
+ +
+ +
+ For example not detecting the system setting for light/dark theme + +
+ + + + +
+
+ ☝️ + 1 +
+
+
+
+
+
+
+
+
11:54
+
+ +
+ +
+ I can set my system settings on that to change based on the time of day + +
+ + + + +
+
+
+
+
+
+
11:55
+
+ +
+ +
+ But 80% of programs won't follow suit + +
+ + + + +
+
+
+
+
+
+
11:55
+
+ +
+ +
+ (Or more) + +
+ + + + +
+
+
+
+
+
+
11:56
+
+ +
+ +
+ I don't want to configure that on a per-program basis, and it also makes my total configuration more fragile and less automatable + +
+ + + + +
+
+
+
+ + + +
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
Voran
+
+ +One question to ask might be "Is the system the power users use better?", because they might actually be making something far easier to do than it was before. For instance, while not exactly a configuration per say, I have a startup script that I've been working on recently, which has reduced the time it takes for me to open up everything that I typically have open from an hour or two to about 30 seconds. + +
+
+
+ bvisness + + + Mar 13, 2021 11:56 AM +
+ +
+ So is the system designed by the power users better in general, or better for specific cases that wouldn't apply to a large subset of the user base? Does it depend on the situation? + +
+ + + + +
+
+
+
+
+
+
11:57
+
+ +
+ +
+ If the power user extensions result in a generally better system for everyone, then I feel like that stuff should be part of the base program and not even a part of the configuration. But if it's specific, then maybe there's not as much you can do and the configuration is actually providing real benefit to a subset of users. + +
+ + + + +
+
+
+
+ + + +
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
bvisness
+
+ +If the power user extensions result in a generally better system for everyone, then I feel like that stuff should be part of the base program and not even a part of the configuration. But if it's specific, then maybe there's not as much you can do and the configuration is actually providing real benefit to a subset of users. + +
+
+
+ demetrispanos + + + Mar 13, 2021 11:59 AM +
+ +
+ a good example of this is vi motions, which I think are seen as power-user features from the outside but once you train with them a bit they prove their value even to beginners ... I would consider motions to be something you expect almost all vi/vim installations to use, and only very very rarely should they be configured differently or disabled + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ Wayward + + + Mar 13, 2021 11:59 AM +
+ +
+ going off on another tangent, take tmux for example, the default tmux hotkey-combination to access it is by default ctrl+b, which causes you to move your whole damn arm to hit it, and it's used alot so it's really not well thought out default setting + +
+ + + + +
+
+
+
+ + + +
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
bvisness
+
+ +If the power user extensions result in a generally better system for everyone, then I feel like that stuff should be part of the base program and not even a part of the configuration. But if it's specific, then maybe there's not as much you can do and the configuration is actually providing real benefit to a subset of users. + +
+
+
+ Voran + + + Mar 13, 2021 12:00 PM +
+ +
+ I suppose "better" isn't the right word here. It's not that it's better so much as that it provides a way to do things that would be difficult or time-consuming to do otherwise. Nobody will ever want my exact startup script, so a premade solution wouldn't help... except, wait, it actually would. If the operating system gave me a way to just list a bunch of programs I want to start up, with the options I need to open the right things automatically, then it would be far better than the batch file I use right now. What I'm saying is, look and see if what they're doing provides a benefit, and see if you can either create a simple, unified way to let your users do that sort of thing while shifting it closer to an option than a configuration. + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 12:01 PM +
+ +
+ Right, and so even in a system where you benefit from configurability, the design of the base system still matters and can probably even reduce the amount of work you have to do in the configuration layer. + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ Voran + + + Mar 13, 2021 12:01 PM +
+ +
+ Exactly + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 12:02 PM +
+ +
+ So I want to revisit a point @.bmp said earlier: +
more configurability doesn't just mean less-designed defaults, it generally means a less-designed and less coherent system overall
+ +
+ + + + +
+
+
+
+
+
+
12:02
+
+ +
+ +
+ Configuration is at a minimum a bunch of knobs to turn, but I want to explore how the idea of configuration (and the idea that it is good) affects the design of systems overall. + +
+ + + + +
+
+
+
+
+
+
12:02
+
+ +
+ +
+ What knobs do we even have? + +
+ + + + +
+
+
+
+ + + +
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
bvisness
+
+ +So I want to revisit a point @.bmp said earlier: + + +
+
+
+ demetrispanos + + + Mar 13, 2021 12:02 PM +
+ +
+ yeah the cliche situation for this in app ui designs is "should the focus jump to the next element after you click on the target? or should it stay where it is? ==> dunno, make it a config option" + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 12:03 PM +
+ +
+ Yeah, that sucks + +
+ + + + +
+
+
+
+ + + + + + + +
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
bvisness
+
+ +What knobs do we even have? + +
+
+
+ Voran + + + Mar 13, 2021 12:05 PM +
+ +
+ This is a question I was wondering too, because it seems like most configurations could just be implemented as options. + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 12:05 PM +
+ +
+ So my concern is that when you design software assuming that users will be able to configure it, you will actually fail to solve the problems that your software should actually solve. + +
+ + + + +
+
+
+
+
+
+
12:06
+
+ +
+ +
+ I think that to a very large extent, the purpose of creating software is to make decisions about how things should be done, so that others can benefit from your thinking about the problem. + +
+ + + + +
+
+
+
+
+
+
12:06
+
+ +
+ +
+ And if you write software assuming "users will be able to configure this", will you ever be able to make your software do anything meaningful? + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 12:07 PM +
+ +
+ Right configuration is often deferral + +
+ + + + +
+
+
+
+
+
+
12:07
+
+ +
+ +
+ On the part of the would-be designers + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 12:07 PM +
+ +
+ I mean, really, it's always deferral + +
+ + + + +
+
+
+
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 12:07 PM +
+ +
+ The question is, when is deferral a good idea + +
+ + + + +
+
+
+
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 12:08 PM +
+ +
+ If you're making the user essentially design their own software out of configurable building blocks you've fucked up + +
+ + + + +
+
+
+
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
bvisness
+
+ +So my concern is that when you design software assuming that users will be able to configure it, you will actually fail to solve the problems that your software should actually solve. + +
+
+
+ demetrispanos + + + Mar 13, 2021 12:07 PM +
+ +
+ yes and this compounds nonlinearly, maybe exponentially + +
+ + + + +
+
+
+
+ + + + + + + +
+
+
+
+ Avatar +
+ +
+
+ demetrispanos + + + Mar 13, 2021 12:07 PM +
+ +
+ it's one thing to say "user, please choose these 3 things, each from a small set of options" + +
+ + + + +
+
+
+
+ + + + + + + +
+
+
+
+ Avatar +
+ +
+
+ demetrispanos + + + Mar 13, 2021 12:07 PM +
+ +
+ it's another to have 50 options of unclear interaction + +
+ + + + +
+
+
+
+ + + + + + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 12:08 PM +
+ +
+ But, sometimes it's useful to give some users that power, especially if they can distribute that extra software to others, right? So how do you navigate those decisions? + +
+ + + + +
+
+
+
+
+
+
12:09
+
+ +
+ +
+ I don't think it's impossible to design good "building block" software, but my concern is about assuming building blocks too early. + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 12:09 PM +
+ +
+ In the overall space of software design it's very rare that you want to defer that power + +
+ + + + +
+
+
+
+
+
+
12:09
+
+ +
+ +
+ (In the interest of creating good software at least) + +
+ + + + +
+
+
+
+
+
+
12:10
+
+ +
+ +
+ I mean another aspect we haven't discussed much is default configurations + +
+ + + + +
+
+
+
+
+
+
12:10
+
+ +
+ +
+ So in the event that you do have moderately configurable software and it's not a disaster + +
+ + + + +
+
+
+
+
+
+
12:11
+
+ +
+ +
+ You should still be shipping the best default configuration you possibly can + +
+ + + + +
+
+
+
+
+
+
12:11
+
+ +
+ +
+ Such that the greatest number of users configure the fewest number of options + +
+ + + + +
+
+ 👍 + 3 +
+
+
+
+
+
+
+
+
12:11
+
+ +
+ +
+ (The default is good enough that most users use most of the default settings forever) + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 12:11 PM +
+ +
+ Well and importantly, your default config needs to convey some idea of how the software is intended to be used. + +
+ + + + +
+
+
+
+
+
+
12:12
+
+ +
+ +
+ Which to me implies that you actually designed a system in a way that is useful, and maybe later found what could be an option. + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 12:12 PM +
+ +
+ This is kind of where the nerdsniping aspect comes in because a lot of programmers have a bad model of their audience, I wouldn't be that surprised to hear some arguments back about how configuration is actually enjoyable +And that's something only a programmer would think + + (edited) +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ Voran + + + Mar 13, 2021 12:13 PM +
+ +
+ I think that generally, you want to figure out what your users want to do, that they can't at the moment, but which you can't explicitly support for all users. E.G. I want to start up a bunch of programs when opening up, and enough other people want to start up programs too. The thing you can't decide is which programs to start up(that has to be a configuration if you want to provide this feature), but you CAN provide an interface to start things up. + +
+ + + + +
+
+
+
+ + + +
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
.bmp
+
+ +Such that the greatest number of users configure the fewest number of options + +
+
+
+ demetrispanos + + + Mar 13, 2021 12:13 PM +
+ +
+ a related, but I think slightly different, situation is what Rails calls "convention over configuration", i.e. there isn't even a "default" they just eliminate the choice entirely by saying "your html must be stored in a folder called html" + +
+ + + + +
+
+
+
+
+
+
12:13
+
+ +
+ +
+ (I don't know if that specific choice is in rails, but it's the kind of choice they're talking about) + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ demetrispanos + + + Mar 13, 2021 12:14 PM +
+ +
+ from the rails' designer perspective, nothing is gained and something is lost by allowing you to put your html in a folder called my_awesome_stuff + +
+ + + + +
+
+
+
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 12:13 PM +
+ +
+ oh man, that is a whole angle that could maybe be a fishbowl on its own + +
+ + + + +
+
+
+
+
+
+
12:14
+
+ +
+ +
+ but definitely related here + +
+ + + + +
+
+
+
+ + + + + + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 12:14 PM +
+ +
+ Well that's just removing configurability + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ demetrispanos + + + Mar 13, 2021 12:14 PM +
+ +
+ wanting to do that is pathological + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 12:14 PM +
+ +
+ I'm talking about the case where you do have configurability as a base assumption + +
+ + + + +
+
+
+
+
+
+
12:14
+
+ +
+ +
+ Obviously overall the less configurability that you have or need is better + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ demetrispanos + + + Mar 13, 2021 12:15 PM +
+ +
+ well my point is that most frameworks do have that configurability, and rails actively removed it + +
+ + + + +
+
+
+
+
+
+
12:15
+
+ +
+ +
+ it was an act to remove it, it wasn't default + +
+ + + + +
+
+
+
+
+
+
12:15
+
+ +
+ +
+ (again I emphasize I don't know if that specific thing is in rails, I'm just giving a hypothetical) + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 12:15 PM +
+ +
+ actually, as a result of this conversation, I'm now thinking my issues with Rails are for issues that aren't really related to "convention over configuration" + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 12:16 PM +
+ +
+ and more just to a design I don't like + +
+ + + + +
+
+
+
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 12:16 PM +
+ +
+ I think as a software designer any time you are tempted to add configurability you should give it a trial by fire + +
+ + + + +
+
+
+
+ + + + + + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 12:16 PM +
+ +
+ The burden of proof is on the necessity for configurability + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ demetrispanos + + + Mar 13, 2021 12:16 PM +
+ +
+ DHH has a relevant essay on this, "Rails is Omakase" https://dhh.dk/2012/rails-is-omakase.html + +
+ + + + +
+
+
+
+
+
+
12:17
+
+ +
+ +
+ my paraphrase/summary: "You've come to me to give you a framework to make web applications. I'm telling you, there is no good reason not to put these files in a folder called html. So I'm just not even giving you the option." + + (edited) +
+ + + + +
+
+
+
+ + + +
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
.bmp
+
+ +The burden of proof is on the necessity for configurability + +
+
+
+ Voran + + + Mar 13, 2021 12:17 PM +
+ +
+ This is why I think that you should be seeing what existing users are trying to do that they can't, rather than designing things up front to try and support what they might want to do + +
+ + + + +
+
+ 👍 + 1 +
+
+
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 12:17 PM +
+ +
+ Well and better yet just provide the ability to do that thing out of the box + +
+ + + + +
+
+
+
+
+
+
12:17
+
+ +
+ +
+ Not as an option + +
+ + + + +
+
+
+
+ + + +
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
.bmp
+
+ +Well and better yet just provide the ability to do that thing out of the box + +
+
+
+ Voran + + + Mar 13, 2021 12:23 PM +
+ +
+ In the context of something that might require configuration, it might not be the best idea to always provide it out of the box, actually. Something like the theoretical startup interface for choosing which programs to start requires configuration (each user wants to start different programs, probably), and it could work out of the box, but if I'm the only user who ever uses it then it was probably a waste of time for them to design it. + +
+ + + + +
+
+
+
+
+
+
12:23
+
+ +
+ +
+ Ideally you'd want to have some kind of assurance during development that testers tend to actually want to do that thing + +
+ + + + +
+
+
+
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
demetrispanos
+
+ +my paraphrase/summary: "You've come to me to give you a framework to make web applications. I'm telling you, there is no good reason not to put these files in a folder called html. So I'm just not even giving you the option." + + (edited) +
+
+
+ .bmp + + + Mar 13, 2021 12:19 PM +
+ +
+ There is a tyranny of choice aspect related to the nerdsniping + +
+ + + + +
+
+
+
+
+
+
12:19
+
+ +
+ +
+ Where the more options there are, the more some people will agonize over what the "right" options to use might be + +
+ + + + +
+
+
+
+
+
+
12:19
+
+ +
+ +
+ Or worse configuration might even be "expected" + +
+ + + + +
+
+
+
+
+
+
12:19
+
+ +
+ +
+ Where nobody uses the out-of-the-box settings + +
+ + + + +
+
+
+
+
+
+
12:20
+
+ +
+ +
+ (And of course in the unfortunately common degenerate case the software doesn't even work without configuration) + +
+ + + + +
+
+
+
+
+
+
12:20
+
+ +
+ +
+ A quick example would be Windows installers + +
+ + + + +
+
+
+
+
+
+
12:21
+
+ +
+ +
+ You must provide an installation path + +
+ + + + +
+
+
+
+
+
+
12:21
+
+ +
+ +
+ Because there are actual tradeoffs to where you store the program, owing to Windows not having a model for what installation looks like + +
+ + + + +
+
+
+
+
+
+
12:22
+
+ +
+ +
+ Whereas you could remove 100% of installer-config for almost all programs + +
+ + + + +
+
+
+
+
+
+
12:22
+
+ +
+ +
+ Toward an app-store like installation process - click install, progress bar, done + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 12:23 PM +
+ +
+ And, it's worth noting, for a lot of people I know with average/below average technical literacy installers are a huge point of confusion and frustration + +
+ + + + +
+
+ 👍 + 1 +
+
+
+
+
+
+ + + + + + + +
+
+
+
+ Avatar +
+ +
+
+ demetrispanos + + + Mar 13, 2021 12:24 PM +
+ +
+ a subject for another day, but installation is generally a terrible concept and should be avoided as much as possible + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ demetrispanos + + + Mar 13, 2021 12:24 PM +
+ +
+ it overlaps with configuration a bit + +
+ + + + +
+
+
+
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 12:24 PM +
+ +
+ Ironically it's the power user who understands that you should usually just click next a bunch of times and only pause to disable diagnostics, tracking, mailing lists, etc + +
+ + + + +
+
+
+
+ + + + + + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 12:24 PM +
+ +
+ For the average user they feel like they might be screwing up something important + +
+ + + + +
+
+
+
+
+
+
12:25
+
+ +
+ +
+ Why would they be presented with the option if it didn't matter? + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ Voran + + + Mar 13, 2021 12:26 PM +
+ +
+ Installation location does matter a whole lot more when you have more than one disk drive, and have to manage space. I personally have to choose a new install location for most new programs, because the default is on my SSD, which doesn't have a lot more storage space (and I'd like that storage space to be reserved for a few things that I want to run fast) + +
+ + + + +
+
+
+
+
+
+
12:27
+
+ +
+ +
+ However nobody presents that in a clean way like it could be. The end user could just see a list of drives/partitions/whatever and how much space they have, then choose one and be done, if the operating system was designed that way + +
+ + + + +
+
+
+
+ + + +
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
Voran
+
+ +Installation location does matter a whole lot more when you have more than one disk drive, and have to manage space. I personally have to choose a new install location for most new programs, because the default is on my SSD, which doesn't have a lot more storage space (and I'd like that storage space to be reserved for a few things that I want to run fast) + +
+
+
+ Skytrias (Michael) + + + Mar 13, 2021 12:30 PM +
+ +
+ this wouldnt matter if most program installations are tiny like remedybg, single exe + +
+ + + + +
+
+
+
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
Skytrias (Michael)
+
+ +this wouldnt matter if most program installations are tiny like remedybg, single exe + +
+
+
+ Voran + + + Mar 13, 2021 12:31 PM +
+ +
+ I don't expect most of my games to be that tiny, to be honest. Games are big, especially ones with lots of art assets. + +
+ + + + +
+
+
+
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 12:28 PM +
+ +
+ Better yet default install would go to a globally configured drive + +
+ + + + +
+
+
+
+
+
+
12:29
+
+ +
+ +
+ If you want different you'd right-click and select a different install drive + +
+ + + + +
+
+
+
+
+
+
12:29
+
+ +
+ +
+ Double click would still install without config + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ demetrispanos + + + Mar 13, 2021 12:29 PM +
+ +
+ better yet you don't install it :P + +
+ + + + +
+
+
+
+
+
+
12:29
+
+ +
+ +
+ it's just a file you have + +
+ + + + +
+
+
+
+
+
+
12:30
+
+ +
+ +
+ (this is the macos .app model) + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 12:30 PM +
+ +
+ I mean, not really, though + +
+ + + + +
+
+
+
+
+
+
12:30
+
+ +
+ +
+ App store + +
+ + + + +
+
+
+
+ + + + + + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 12:30 PM +
+ +
+ I mean, for some value of "install" but there is an expected application directory, etc + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 12:31 PM +
+ +
+ If you just mean the lack of registry configuration then yes burn it with fire + +
+ + + + +
+
+
+
+
+
+
+ Avatar +
+ +
+
+ demetrispanos + + + Mar 13, 2021 12:30 PM +
+ +
+ let me clarify that .app is not related to the app store + +
+ + + + +
+
+
+
+ + + + + + + +
+
+
+
+ Avatar +
+ +
+
+ demetrispanos + + + Mar 13, 2021 12:31 PM +
+ +
+ .app is a bundle format for all of the files that are required to run an application + +
+ + + + +
+
+
+
+ + + + + + + +
+
+
+
+ Avatar +
+ +
+
+ demetrispanos + + + Mar 13, 2021 12:31 PM +
+ +
+ to the user it appears as a single file, just like an image or a word doc etc. + +
+ + + + +
+
+
+
+ + + + + + + +
+
+
+
+ Avatar +
+ +
+
+ demetrispanos + + + Mar 13, 2021 12:31 PM +
+ +
+ you can drag it anywhere in your filesystem etc. + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 12:31 PM +
+ +
+ Right + +
+ + + + +
+
+
+
+
+
+
12:31
+
+ +
+ +
+ This is all good + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ demetrispanos + + + Mar 13, 2021 12:31 PM +
+ +
+ it overlaps with the configuration discussion because it eliminates the concept of installation choices + +
+ + + + +
+
+
+
+
+
+
12:31
+
+ +
+ +
+ you just have it + +
+ + + + +
+
+
+
+
+
+
12:31
+
+ +
+ +
+ same as any other artifact + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 12:31 PM +
+ +
+ Right and you can put it somewhere else if you want + +
+ + + + +
+
+
+
+
+
+
12:32
+
+ +
+ +
+ Or not + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ Skytrias (Michael) + + + Mar 13, 2021 12:32 PM +
+ +
+ think of visual studio installation + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 12:32 PM +
+ +
+ I'd prefer not to + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ Skytrias (Michael) + + + Mar 13, 2021 12:32 PM +
+ +
+ wasnt there a finder for cl + +
+ + + + +
+
+
+
+
+
+
12:32
+
+ +
+ +
+ cuz they messed up locations so badly + +
+ + + + +
+
+
+
+
+
+
12:32
+
+ +
+ +
+ across different versions + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 12:32 PM +
+ +
+ Jon Blow wrote like a 1000loc C++ program for finding the installation directories + + (edited) +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ Voran + + + Mar 13, 2021 12:32 PM +
+ +
+ I think I agree with demitri, if you just download a file and it's just a file you can execute and run, that is way better for the user than an installation. + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ Skytrias (Michael) + + + Mar 13, 2021 12:33 PM +
+ +
+ oh god + +
+ + + + +
+
+
+
+ + + +
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
Voran
+
+ +I think I agree with demitri, if you just download a file and it's just a file you can execute and run, that is way better for the user than an installation. + +
+
+
+ bvisness + + + Mar 13, 2021 12:33 PM +
+ +
+ further examples of eliminating configuration through smarter design, yeah + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 12:33 PM +
+ + + + +
+
+ +
+
+
+ + + +
+
jonathan blow's c++ code for finding msvc. GitHub Gist: instantly share code, notes, and snippets.
+
+ +
+ +
+ + Thumbnail + +
+
+ + +
+
+ + +
+
+
+
+
+
+
12:33
+
+ +
+ +
+ My bad it's like 500 + +
+ + + + +
+
+
+
+
+
+
12:33
+
+ +
+ +
+ Still + +
+ + + + +
+
+
+
+ + + +
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
Voran
+
+ +I think I agree with demitri, if you just download a file and it's just a file you can execute and run, that is way better for the user than an installation. + +
+
+
+ .bmp + + + Mar 13, 2021 12:35 PM +
+ +
+ Well part of the thing here is that it is still actually a directory with multiple files but it's presented to the user as the least-complex possible thing + +
+ + + + +
+
+
+
+
+
+
12:35
+
+ +
+ +
+ Because almost no user cares about anything that's inside the folder + +
+ + + + +
+
+
+
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
.bmp
+
+ +Because almost no user cares about anything that's inside the folder + +
+
+
+ Voran + + + Mar 13, 2021 12:36 PM +
+ +
+ Right, you can go into it and access, say, saved games, which is very useful. But the fact that it's bundled together with the executable means everything just works wherever you put it, and you don't need any up front configuration + +
+ + + + +
+
+
+
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
.bmp
+
+ +Because almost no user cares about anything that's inside the folder + +
+
+
+ demetrispanos + + + Mar 13, 2021 12:36 PM +
+ +
+ indeed the default desktop operations don't even let you treat it like a folder + +
+ + + + +
+
+
+
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 12:34 PM +
+ +
+ so the topic we seem to keep coming around to is that design is really critical: it helps you avoid configuration entirely, ensure that what configuration you have is useful, and ensure that your default configuration is a good user experience + + (edited) +
+ + + + +
+
+
+
+ + + + + + + +
+
+
+
+ + Avatar +
+ +
+ +
+ bvisness + + + Mar 13, 2021 12:35 PM +
+ +
+ so one concrete piece of advice I'd like to propose, then, is to design your software without configuration first, and to then introduce configuration (or options) at a later date + + (edited) +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 12:36 PM +
+ +
+ Yes + +
+ + + + +
+
+
+
+ + + + + + + + + + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 12:36 PM +
+ +
+ sound reasonable? caveats? + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 12:36 PM +
+ +
+ Any technical cost to adding configuration later pales in comparison to the costs of adding design later + +
+ + + + +
+
+
+
+ + + +
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
bvisness
+
+ +so one concrete piece of advice I'd like to propose, then, is to design your software without configuration first, and to then introduce configuration (or options) at a later date + + (edited) +
+
+
+ Skytrias (Michael) + + + Mar 13, 2021 12:36 PM +
+ +
+ thats interesting, i already have optional features for my program, should i not have them and force them, only implement them once users rage / want them? + + (edited) +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ Voran + + + Mar 13, 2021 12:36 PM +
+ +
+ Yeah. Introduce configuration as it's needed, rather than to give people more options up front + + (edited) +
+ + + + +
+
+
+
+ + + +
+
+
+
+ + Avatar +
+ +
+ +
+ Voran + + + Mar 13, 2021 12:37 PM +
+ +
+ Do keep in mind that there's a distinction between configurations and options (see demitri's post at the beginning) + +
+ + + + +
+
+
+
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
Skytrias (Michael)
+
+ +thats interesting, i already have optional features for my program, should i not have them and force them, only implement them once users rage / want them? + + (edited) +
+
+
+ bvisness + + + Mar 13, 2021 12:37 PM +
+ +
+ I think it's highly likely that those choices might be irrelevant to your users, and that by failing to make that decision yourself you have locked yourself out of interesting further designs + +
+ + + + +
+
+
+
+
+
+
12:37
+
+ +
+ +
+ a lot of useful features will need to be based on assumptions about how other parts of the system work + +
+ + + + +
+
+
+
+ + + + + + + +
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
bvisness
+
+ +so one concrete piece of advice I'd like to propose, then, is to design your software without configuration first, and to then introduce configuration (or options) at a later date + + (edited) +
+
+
+ demetrispanos + + + Mar 13, 2021 12:37 PM +
+ +
+ I think this is a good aspirational goal, I wonder if there are practical limitations. For example, if I make a web server I guess I can default to port 80, no TLS cert, etc., and then maybe the next level is I have server_config folder in which I look for a cert file etc. + +
+ + + + +
+
+
+
+ + + + + + + +
+
+
+
+ + Avatar +
+ +
+ +
+ demetrispanos + + + Mar 13, 2021 12:38 PM +
+ +
+ though web servers could plausibly accept all that stuff as command-line arguments + +
+ + + + +
+
+
+
+
+
+
12:38
+
+ +
+ +
+ as they are important operational inputs + +
+ + + + +
+
+
+
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 12:38 PM +
+ +
+ Web servers continue to be a confounding case for this terminology + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 12:39 PM +
+ +
+ Input method aside, as you said earlier, they are important inputs somehow. But, there's a spectrum of essential to optional, and a lot of webserver stuff is more and more optional. + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 12:39 PM +
+ +
+ Like you definitely need to bind to an address and a port, and you can choose whatever input method will best serve your users + +
+ + + + +
+
+
+
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 12:39 PM +
+ +
+ Ok, but choosing what address and port something will live on is a decision a user will have to make. + + (edited) +
+ + + + +
+
+
+
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 12:39 PM +
+ +
+ Well the web is built on ridiculous layers of complexity and with configuration-first as a baselines assumption + +
+ + + + +
+
+
+
+ + + + + + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 12:39 PM +
+ +
+ It's basically the worst imaginable degenerate case of everything we're talking about here + +
+ + + + +
+
+
+
+ + + + + + + + + + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 12:40 PM +
+ +
+ So it's not like you're operating from a clean slate + +
+ + + + +
+
+
+
+
+
+
12:40
+
+ +
+ +
+ You have to interface with a bunch of configurability imposed on you by the environment + +
+ + + + +
+
+
+
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
bvisness
+
+ +Like you definitely need to bind to an address and a port, and you can choose whatever input method will best serve your users + +
+
+
+ demetrispanos + + + Mar 13, 2021 12:40 PM +
+ +
+ yeah, and that stuff can be pushed toward "options" part of the spectrum with just a little bit of design + +
+ + + + +
+
+
+
+ + + +
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
demetrispanos
+
+ +yeah, and that stuff can be pushed toward "options" part of the spectrum with just a little bit of design + +
+
+
+ bvisness + + + Mar 13, 2021 12:41 PM +
+ +
+ Right, there are any number of ways you could do this (config file, GUI, web dashboard served on a random private port, command-line flags, environment variables, etc. etc.) + +
+ + + + +
+
+
+
+
+
+
12:41
+
+ +
+ +
+ Or any number of future options. But per your terminology it's hardly even "config". + +
+ + + + +
+
+
+
+
+
+
12:42
+
+ +
+ +
+ I mean, with this terminology, I feel like "optional config" is redundant. If it's not optional, it's not config. + +
+ + + + +
+
+
+
+
+
+
12:42
+
+ +
+ +
+ Maybe it's still a crappy input channel but we can exclude it from this level of design discussion. + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 12:42 PM +
+ +
+ Very much disagree + +
+ + + + +
+
+
+
+
+
+
12:43
+
+ +
+ +
+ One category of configuration that I particularly despise is first-launch configuration + +
+ + + + +
+
+ ☝️ + 1 +
+
+
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 12:43 PM +
+ +
+ Where to even start using an application you're first forced to make a bunch of decisions related to the config + +
+ + + + +
+
+
+
+
+
+
12:44
+
+ +
+ +
+ Where, for one, you don't even know what the tradeoffs are yet because you haven't used it + +
+ + + + +
+
+
+
+
+
+
+ Avatar +
+ +
+
+ Skytrias (Michael) + + + Mar 13, 2021 12:43 PM +
+ +
+ one thing i wanted to ask, should you force users to use configuration via ui, or should configuration via text always be possible? + +
+ + + + +
+
+
+
+ + + + + + + +
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
Skytrias (Michael)
+
+ +one thing i wanted to ask, should you force users to use configuration via ui, or should configuration via text always be possible? + +
+
+
+ demetrispanos + + + Mar 13, 2021 12:44 PM +
+ +
+ anywhere you want reproducibility/automation I think a text artifact is a desirable option + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ Skytrias (Michael) + + + Mar 13, 2021 12:47 PM +
+ +
+ that makes sense + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ Skytrias (Michael) + + + Mar 13, 2021 12:48 PM +
+ +
+ also for sharing options + +
+ + + + +
+
+
+
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
.bmp
+
+ +Where, for one, you don't even know what the tradeoffs are yet because you haven't used it + +
+
+
+ Voran + + + Mar 13, 2021 12:47 PM +
+ +
+ I agree, you should never be unable to run the program without configuration at all. Ideally, the few choices that you have to make (language, location on file system) should be inherited from/chosen by something like the operating system, which should have the only necessary things to configure already figured out. + +
+ + + + +
+
+
+
+ + + + + + + +
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
Voran
+
+ +I agree, you should never be unable to run the program without configuration at all. Ideally, the few choices that you have to make (language, location on file system) should be inherited from/chosen by something like the operating system, which should have the only necessary things to configure already figured out. + +
+
+
+ Voran + + + Mar 13, 2021 12:48 PM +
+ +
+ I'm not sure how feasible this is, but in most cases the configuration can be limited to a very limited set of things, that you already made the decision about on the overarching system + + (edited) +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 12:49 PM +
+ +
+ It's totally reasonable I think to be required to provide data on launch as long as there is context for it, and regardless of whether you consider it "config" I think it's less interesting for the purposes of this discussion + +
+ + + + +
+
+
+
+
+
+
12:50
+
+ +
+ +
+ If a program needs user data to run, it needs to get it at some point, and maybe the best time to ask for it is on first launch, or maybe it isn't. But I think a lot of the type of configuration we're talking about here is optional data provided beyond the minimum required. + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ demetrispanos + + + Mar 13, 2021 12:51 PM +
+ +
+ yeah, so one principle is "is it possible to set a default that works most of the time, and is not harmful in the cases where it's wrong?" + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ Voran + + + Mar 13, 2021 12:52 PM +
+ +
+ I'm curious about what kinds of user data would be needed to run, because it seems like to me, most things that you'd need (keyboard layout, language) can or should be able to be detected rather than asked for. + +
+ + + + +
+
+
+
+ + + +
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
Voran
+
+ +I'm curious about what kinds of user data would be needed to run, because it seems like to me, most things that you'd need (keyboard layout, language) can or should be able to be detected rather than asked for. + +
+
+
+ bvisness + + + Mar 13, 2021 12:53 PM +
+ +
+ Depends on the app, e.g. a rideshare app may need location permissions, user profile data for drivers, and payment info + +
+ + + + +
+
+
+
+
+
+
12:53
+
+ +
+ +
+ maybe some of that can be deferred, maybe not + +
+ + + + +
+
+ 👍 + 2 +
+
+
+
+
+
+ + + +
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
demetrispanos
+
+ +yeah, so one principle is "is it possible to set a default that works most of the time, and is not harmful in the cases where it's wrong?" + +
+
+
+ bvisness + + + Mar 13, 2021 12:53 PM +
+ +
+ I like this question, and I think it can be fairly applied to practically any "config decision" a programmer might make. + +
+ + + + +
+
+
+
+
+
+
12:54
+
+ +
+ +
+ And I would guess that by thinking through that decision, you will discover some important stuff about your software and the problem you're solving. + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ demetrispanos + + + Mar 13, 2021 12:56 PM +
+ +
+ similarly, "Hypothetically, if it were impossible to collect this information, what would I do?" (this gives a path to eliminating the input entirely) + + (edited) +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ demetrispanos + + + Mar 13, 2021 12:58 PM +
+ +
+ so for example "Hypothetically, my user refuses to tell me what folder will contain the html files. OK fine user, then I will insist that all html must come from the folder /html" + + (edited) +
+ + + + +
+
+
+
+
+
+
12:58
+
+ +
+ +
+ and then you discover that this was a better design than asking the user to begin with + +
+ + + + +
+
+
+
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 12:57 PM +
+ +
+ To revisit some previous points, aesthetic editor decisions clearly can have a good default, keymappings could have useful defaults, even program installation locations could have reasonable defaults depending on the underlying system. But perhaps for something like a webserver, some form of address is both difficult (or impossible) to choose a value for, and harmful if it's wrong. + +
+ + + + +
+
+
+
+
+
+
12:57
+
+ +
+ +
+ oh I really like that as well, keep 'em coming 😛 + +
+ + + + +
+
+
+
+ + + + + + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 12:58 PM +
+ +
+ and you can then ask the initial question of "is it harmful in any way to choose this on behalf of the user?" + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ demetrispanos + + + Mar 13, 2021 12:58 PM +
+ +
+ yeah + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 01:00 PM +
+ +
+ To extend that example, you may then at some point find that for some users it is a legitimate pain point to have everything in the /html folder, and at that point perhaps you could introduce an option. But it still isn't harmful to choose /html on the user's behalf, initially. + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ demetrispanos + + + Mar 13, 2021 01:00 PM +
+ +
+ going on your webserver example, maybe it's useful to specifically call out inputs where you expect the potential for adversarial action (e.g. web server addresses/ports) + +
+ + + + +
+
+
+
+
+
+
13:01
+
+ +
+ +
+ so if you knew no one was trying to exploit you, you could just go ahead and take port 80 (or some similar network resource) + +
+ + + + +
+
+
+
+
+
+
13:01
+
+ +
+ +
+ but maybe you have to account for the fact that adversaries might be looking for default-configured software + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 01:02 PM +
+ +
+ yeah, and actually, I think that because it's potentially harmful you have a good reason to ask the user, and a good opportunity then to help the user make an informed decision + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ demetrispanos + + + Mar 13, 2021 01:03 PM +
+ +
+ right so let me throw in an additional tool similar to defaults but not quite defaults, which is runtime/first-time interrogation + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 01:03 PM +
+ +
+ the thing @.bmp hates 😛 + + (edited) +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 01:03 PM +
+ +
+ 😩 + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ demetrispanos + + + Mar 13, 2021 01:03 PM +
+ +
+
./run_server +... can't find previous run-log, assuming first-run +... will use port 80, ok? [y/n] +y +... will use localhost, ok? [y/n] +y
+ + (edited) +
+ + + + +
+
+
+
+
+
+
13:04
+
+ +
+ +
+ no I mean something different from what brendan means + +
+ + + + +
+
+
+
+
+
+
13:04
+
+ +
+ +
+ something interpolating anyway + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 01:04 PM +
+ +
+ Right, where it's just like "we're going to do xyz, is that cool?" + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 01:04 PM +
+ +
+ ah, I see + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ demetrispanos + + + Mar 13, 2021 01:04 PM +
+ +
+ so you're 1) calling out the defaults, 2) asking for explicit permission + +
+ + + + +
+
+
+
+
+
+
13:05
+
+ +
+ +
+ and if the user says no you then give a helpful message
... will use port 80, ok? [y/n] +n +... ok, please set SERVER_PORT in server.conf +... aborting
+ + (edited) +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 01:05 PM +
+ +
+ yeah, and this still allows a design intent to be communicated + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 01:05 PM +
+ +
+ this doesn't excuse you from design in any way + +
+ + + + +
+
+
+
+
+
+
+ Avatar +
+ +
+
+ Skytrias (Michael) + + + Mar 13, 2021 01:05 PM +
+ +
+ something it would need afterwards would be you can configure this afterwards in file.xy + + (edited) +
+ + + + +
+
+
+
+ + + + + + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 01:05 PM +
+ +
+ I would still much prefer just not asking + +
+ + + + +
+
+
+
+
+
+
13:05
+
+ +
+ +
+ And if you want something else, you do something else + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 01:05 PM +
+ +
+ sure, but we're talking about the situations where you have to ask + +
+ + + + +
+
+
+
+ + + +
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
.bmp
+
+ +And if you want something else, you do something else + +
+
+
+ demetrispanos + + + Mar 13, 2021 01:05 PM +
+ +
+ this has to be traded against security risks + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 01:05 PM +
+ +
+ If it can't be changed after first-time setup, just have two first-time setup paths + +
+ + + + +
+
+
+
+
+
+
13:06
+
+ +
+ +
+ One prompt, for example that says "Just use all default settings y/n" + +
+ + + + +
+
+
+
+
+
+
13:06
+
+ +
+ +
+ And if you select no, it has further prompts + +
+ + + + +
+
+
+
+
+
+
13:07
+
+ +
+ +
+ If you select yes, you're done + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ demetrispanos + + + Mar 13, 2021 01:08 PM +
+ +
+ that's possibly fine but the user might not know that "all default settings" includes things with security impacts + + (edited) +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ Skytrias (Michael) + + + Mar 13, 2021 01:09 PM +
+ +
+ if i store an ip in a config file, i should probably try to encrypt / hide it? + + (edited) +
+ + + + +
+
+
+
+ + + +
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
demetrispanos
+
+ +that's possibly fine but the user might not know that "all default settings" includes things with security impacts + + (edited) +
+
+
+ .bmp + + + Mar 13, 2021 01:10 PM +
+ +
+ Then they shouldn't be setting up something with security implications + +
+ + + + +
+
+
+
+ + + +
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
.bmp
+
+ +Then they shouldn't be setting up something with security implications + +
+
+
+ demetrispanos + + + Mar 13, 2021 01:10 PM +
+ +
+ ok but they might not know that :P + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ Voran + + + Mar 13, 2021 01:10 PM +
+ +
+ Whether they should or shouldn't, people probably will. This is the web + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ demetrispanos + + + Mar 13, 2021 01:11 PM +
+ +
+ certainly when I started out I didn't know that people were scanning ips for default-configured servers to exploit + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 01:11 PM +
+ +
+ I mean in your example someone who doesn't know there are security implications to setting up a web server isn't going to know which port to use for security reasons + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 01:11 PM +
+ +
+ But this is an opportunity to communicate this to them, instead of just saying "well, screw it, you don't know better" + +
+ + + + +
+
+ 👍 + 1 +
+
+
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 01:12 PM +
+ +
+ Right so just say "note: first-time settings have security implications, please only use default configuration if you are certain you are comfortable with that" or whatever + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ demetrispanos + + + Mar 13, 2021 01:13 PM +
+ +
+ yeah, this raises a separate topic about configuration which is that it is often plagued by documentation/communication problems + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 01:13 PM +
+ +
+ Anyway again we're talking about poweruser stuff + +
+ + + + +
+
+
+
+
+
+
13:13
+
+ +
+ +
+ Which is not the general design case + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ demetrispanos + + + Mar 13, 2021 01:13 PM +
+ +
+ I can't count the times I discovered some config option from reading someone else's code, that wasn't documented in the official docs + +
+ + + + +
+
+
+
+
+
+
13:14
+
+ +
+ +
+ "oh there's a DONT_LAUNCH_NUKES option, very cool I wish I had known that last week" + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 01:14 PM +
+ +
+ Talk about bad defaults + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 01:14 PM +
+ +
+ Yes, and that's an issue that I think needs to be addressed no matter what you choose to make configuration or not + +
+ + + + +
+
+
+
+
+
+
13:15
+
+ +
+ +
+ it's actually a good case too for something more toward "options" + + (edited) +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 01:15 PM +
+ +
+ Yeah it's a problem even in consumer-tier software where options are just not explained + +
+ + + + +
+
+
+
+
+
+
13:16
+
+ +
+ +
+ You have a label on a radio box and the label is highly ambiguous or whatever + +
+ + + + +
+
+
+
+
+
+
13:16
+
+ +
+ +
+ And you're like "what the fuck does this mean" + +
+ + + + +
+
+
+
+
+
+
13:16
+
+ +
+ +
+ And there's no way to find out + +
+ + + + +
+
+
+
+
+
+
13:16
+
+ +
+ +
+ Again another problem with programmer-as-designer + +
+ + + + +
+
+
+
+
+
+
13:17
+
+ +
+ +
+ Or even potentially designer-as-designer + +
+ + + + +
+
+
+
+
+
+
13:17
+
+ +
+ +
+ The person who is setting up the configuration interface has knowledge bias + +
+ + + + +
+
+
+
+
+
+
13:17
+
+ +
+ +
+ They're already very familiar with the settings, the tradeoffs, etc + +
+ + + + +
+
+
+
+
+
+
13:18
+
+ +
+ +
+ If they're not a good communicator, don't have a good model of their audience, don't have a good model of how their own knowledge interacts with the interface, they won't communicate the options properly + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 01:18 PM +
+ +
+ Eventually I think it does all come back to thinking about your users and trying to reduce costs for them + +
+ + + + +
+
+
+
+
+
+
13:19
+
+ +
+ +
+ and I think we've clearly established from this conversation that the benefits of configuration are overestimated and the costs hardly estimated at all + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 01:19 PM +
+ +
+ and by asking some critical questions about your design, you can design significantly better software for your users + +
+ + + + +
+
+
+
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
.bmp
+
+ +And you're like "what the fuck does this mean" + +
+
+
+ Skytrias (Michael) + + + Mar 13, 2021 01:19 PM +
+ +
+ how would you avoid this though, i know some programs display videos what the change would do + +
+ + + + +
+
+
+
+ + + + + + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 01:19 PM +
+ +
+ Even just a one-sentence blurb would often do the trick + +
+ + + + +
+
+
+
+
+
+
13:19
+
+ +
+ +
+ Or a better-worded label + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ Skytrias (Michael) + + + Mar 13, 2021 01:19 PM +
+ +
+ yea i have that already, still sometimes feels abstract + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ demetrispanos + + + Mar 13, 2021 01:19 PM +
+ +
+ re: reducing costs — paraphrasing something jon blow has said several times, if you have 1000 users and you waste 5 minutes of time for each of them that's 5000 minutes or two full work weeks + + (edited) +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 01:20 PM +
+ +
+ Part of the problem can also be the programmer/designer not having a very solid concept of what the option does themselves + +
+ + + + +
+
+
+
+
+
+
13:20
+
+ +
+ +
+ They understand what it does intuitively but it's just outside their ability to solidify the concept into clear and concise terminology + +
+ + + + +
+
+
+
+ + + +
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
.bmp
+
+ +Part of the problem can also be the programmer/designer not having a very solid concept of what the option does themselves + +
+
+
+ bvisness + + + Mar 13, 2021 01:20 PM +
+ +
+ yes, which is a good reason to design it without config first + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 01:20 PM +
+ +
+ Often because the things that software does are abstract or difficult to find words for + +
+ + + + +
+
+
+
+
+
+
13:21
+
+ +
+ +
+ (Hence the shitstorm of overlapping/bad terminology in the software world) + +
+ + + + +
+
+
+
+
+
+
13:22
+
+ +
+ +
+ Another thing that can be useful here is demonstrating the change + +
+ + + + +
+
+
+
+
+
+
13:22
+
+ +
+ +
+ So like, having a little animation that shows before/after + +
+ + + + +
+
+
+
+
+
+
13:22
+
+ +
+ +
+ If the setting is visually communicable + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ Voran + + + Mar 13, 2021 01:23 PM +
+ +
+ Not all settings have to be visual, I don't think. + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 01:23 PM +
+ +
+ Hence the word "if" 😛 + + (edited) +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 01:24 PM +
+ +
+ I've seen this done particularly in smartphone apps and it usually works out pretty well + +
+ + + + +
+
+
+
+
+
+
+ Avatar +
+ +
+
+ Skytrias (Michael) + + + Mar 13, 2021 01:24 PM +
+ +
+ would be doable for some options sure + +
+ + + + +
+
+
+
+ + + + + + + +
+
+
+
+ Avatar +
+ +
+
+ Skytrias (Michael) + + + Mar 13, 2021 01:26 PM +
+ +
+ but yea i think options are bad for programmers too, another source for bugs to occur, especially if you dont use a specific option and it might bug out unknowingly + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ Voran + + + Mar 13, 2021 01:28 PM +
+ +
+ I'd like to make the point again that options themselves aren't bad. The issues that Demitri mentioned that make them more of configurations than options make them harder to work with though, such as if they're not changed often or the changes are hard to detect in the output + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 01:29 PM +
+ +
+ Since we're now about 2.5 hours in, and I'm thinking it's nearly time to wrap this up, I wanted to just quickly highlight some of the stuff we covered in this conversation: +- We established some vocabulary for talking about configuration +- We highlighted the benefits and costs of config, for several different aspects of config +- We found that design is critically important even for configurable systems, and found that having configuration as a goal can hamper your design +- We found some concrete advice and questions you can ask to help drive yourself toward smarter design and less config + +
+ + + + +
+
+
+
+
+
+
13:30
+
+ +
+ +
+ Are there any final topics to cover, or lingering questions any of you have? + +
+ + + + +
+
+
+
+
+
+
13:30
+
+ +
+ +
+ This conversation can always continue outside this fishbowl as well. I'm sure we'll all be dealing with these design questions all the time going forward. + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ demetrispanos + + + Mar 13, 2021 01:31 PM +
+ +
+ that all sounds good to me, I'll just wrap up my portion by reiterating viewing configuration as a cost that should pay itself back ... or to put it in a more positive light, as an attempt at an investment + +
+ + + + +
+
+
+
+
+
+
13:32
+
+ +
+ +
+ so when you do it, you should have an idea of what it is you are buying for your users and for yourself + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ Skytrias (Michael) + + + Mar 13, 2021 01:32 PM +
+ +
+ maybe also when you store options in a file, it should be a readable format + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 01:33 PM +
+ +
+ that seems like an awfully granular and specific takeaway + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ Skytrias (Michael) + + + Mar 13, 2021 01:33 PM +
+ +
+ true haha + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 01:33 PM +
+ +
+ I think another thing we established through this convo is also that configuration can take many forms + +
+ + + + +
+
+
+
+
+
+
13:33
+
+ +
+ +
+ and those forms can continue to impact the cost your users are asked to bear + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 01:34 PM +
+ +
+ I think a pervasive problem in this discussion has been returning to things like config files and text editors etc + +
+ + + + +
+
+
+
+
+
+
13:34
+
+ +
+ +
+ Things that nobody but programmers cares about + +
+ + + + +
+
+
+
+
+
+
13:34
+
+ +
+ +
+ If you have a config file (that you expect users to interact with) for consumer software you have failed + + (edited) +
+ + + + +
+
+ 💯 + 2 +
+
+
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ Skytrias (Michael) + + + Mar 13, 2021 01:34 PM +
+ +
+ over configuration can also be a pain - every website forcing you to fill out cookie permissions + +
+ + + + +
+
+
+
+
+
+
13:35
+
+ +
+ +
+ i really hate using the web nowadays + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 01:35 PM +
+ +
+ I really, really, really do not want anyone to come away from this discussion thinking this somehow only applies to programmer tools. This applies to everything. + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 01:35 PM +
+ +
+ Programmer tools are familiar to us all, and frequently terrible examples of design. But they are the tip of the iceberg here. + +
+ + + + +
+
+
+
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 01:36 PM +
+ +
+ Even if your users are programmers and like configuration, you would do them all a favor by directing their attention to what matters. + +
+ + + + +
+
+
+
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 01:35 PM +
+ +
+ It applies especially to everything + +
+ + + + +
+
+
+
+ + + + + + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 01:35 PM +
+ +
+ Programmers are the only audience in which some members are okay with or even like configuration + +
+ + + + +
+
+
+
+
+
+
13:36
+
+ +
+ +
+ Because what is programming except configuring hardware and libraries to do what you want + +
+ + + + +
+
+
+
+ + + + + + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 01:37 PM +
+ +
+ So if your model of what a user wants is based on programmer things, you're sorely falling short of the mark and vastly underestimating how much the ordinary user despises, and is frustrated/intimidated by any and all configuration beyond "turn notifications on/off" "light theme/dark theme" etc + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ Voran + + + Mar 13, 2021 01:38 PM +
+ +
+ Making actual design decisions instead of saying "I don't know, make it a config option" can be very valuable. You'll understand what the tradeoffs are once you have an actual use case for the other config option, and you can decide if the benefits are worth the cost you pay. + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ .bmp + + + Mar 13, 2021 01:38 PM +
+ +
+ On that note there was one other point I wanted to get in related to forcing first-time configuration, which is just how smooth and well-designed the experience feels when a new application drops you right in with no config or introduction and makes good default assumptions and good use of system-wide settings + +
+ + + + +
+
+
+
+
+
+
13:39
+
+ +
+ +
+ When you open a new app and it's already dark theme because your phone is dark theme for example + +
+ + + + +
+
+
+
+
+
+
13:39
+
+ +
+ +
+ The lack of a hard barrier between "I don't have this app" and "I'm a comfortable user of this app" is hard to overstate in terms of getting users to like your software + +
+ + + + +
+
+
+
+
+
+
13:39
+
+ +
+ +
+ And that barrier is where a lot of people will close the app and never open it again + +
+ + + + +
+
+
+
+
+
+
13:40
+
+ +
+ +
+ (Or just never have it set up the way they want, despite there being settings for it, and always having a low-grade frustration with the experience) + +
+ + + + +
+
+
+
+ + + +
+
+
+
+
+ Avatar +
+ +
+
+ Avatar +
Voran
+
+ +Making actual design decisions instead of saying "I don't know, make it a config option" can be very valuable. You'll understand what the tradeoffs are once you have an actual use case for the other config option, and you can decide if the benefits are worth the cost you pay. + +
+
+
+ .bmp + + + Mar 13, 2021 01:41 PM +
+ +
+ Yes along these lines it's worth noting that nobody understands the tradeoffs better than the designer (or at least, if that's not the case, you have a problem) + +
+ + + + +
+
+
+
+
+
+
13:42
+
+ +
+ +
+ There may come a time when your advanced users have a better model of some parts of the problem space than you do, but it's important to remember that they are not the common use case and therefore their experiences/opinions are not necessarily reflective of average users + +
+ + + + +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ Avatar +
+ +
+
+ Wayward + + + Mar 13, 2021 01:46 PM +
+ +
+ i'm gonna call it a day personally, been getting sleepy faster than i thought + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 01:46 PM +
+ +
+ yep, I think we have nicely reached the end here + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ Voran + + + Mar 13, 2021 01:47 PM +
+ +
+ I'd like to thank @demetrispanos for this fishbowl idea + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ Skytrias (Michael) + + + Mar 13, 2021 01:47 PM +
+ +
+ yea was interesting, definitely helped me out a lot + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 01:47 PM +
+ +
+ Yes, absolutely. I'm very glad to have done a fishbowl prompted organically by the conversations we were having around here! + + (edited) +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ demetrispanos + + + Mar 13, 2021 01:47 PM +
+ +
+ I'm glad other people share some of my sentiments on this subject! + +
+ + + + +
+
+
+
+ + + +
+
+
+
+ Avatar +
+ +
+
+ bvisness + + + Mar 13, 2021 01:48 PM +
+ +
+ Thanks all for participating! I found this super enlightening and interesting, and I hope you all did as well. + +
+ + + + +
+
+
+
+
+
+
13:49
+
+ +
+ +
+ As always, you can check the pinned messages to read the whole conversation from the beginning. See you at the next fishbowl! + +
+ + + + +
+
+ fishbowl + 6 +
+
+
+
+
+
+ + +
\ No newline at end of file diff --git a/src/templates/src/fishbowls/config/files/1963eacbf364164efce1c597dc66aeab-E6901.png b/src/templates/src/fishbowls/config/files/1963eacbf364164efce1c597dc66aeab-E6901.png new file mode 100644 index 0000000..ccf4824 Binary files /dev/null and b/src/templates/src/fishbowls/config/files/1963eacbf364164efce1c597dc66aeab-E6901.png differ diff --git a/src/templates/src/fishbowls/config/files/1f44d-B3F5F.svg b/src/templates/src/fishbowls/config/files/1f44d-B3F5F.svg new file mode 100644 index 0000000..595672d --- /dev/null +++ b/src/templates/src/fishbowls/config/files/1f44d-B3F5F.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/templates/src/fishbowls/config/files/1f4af-2188D.svg b/src/templates/src/fishbowls/config/files/1f4af-2188D.svg new file mode 100644 index 0000000..3d565cc --- /dev/null +++ b/src/templates/src/fishbowls/config/files/1f4af-2188D.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/templates/src/fishbowls/config/files/261d-3A498.svg b/src/templates/src/fishbowls/config/files/261d-3A498.svg new file mode 100644 index 0000000..95d8ddd --- /dev/null +++ b/src/templates/src/fishbowls/config/files/261d-3A498.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/templates/src/fishbowls/config/files/62e486caf24d352ab938701a8d972730-5ADCF.png b/src/templates/src/fishbowls/config/files/62e486caf24d352ab938701a8d972730-5ADCF.png new file mode 100644 index 0000000..8c3d6c9 Binary files /dev/null and b/src/templates/src/fishbowls/config/files/62e486caf24d352ab938701a8d972730-5ADCF.png differ diff --git a/src/templates/src/fishbowls/config/files/707755812277321760-F2EB5.png b/src/templates/src/fishbowls/config/files/707755812277321760-F2EB5.png new file mode 100644 index 0000000..2b27739 Binary files /dev/null and b/src/templates/src/fishbowls/config/files/707755812277321760-F2EB5.png differ diff --git a/src/templates/src/fishbowls/config/files/71ecf1f788f1530928078a8fd18a3111-341F5.png b/src/templates/src/fishbowls/config/files/71ecf1f788f1530928078a8fd18a3111-341F5.png new file mode 100644 index 0000000..2cd2aee Binary files /dev/null and b/src/templates/src/fishbowls/config/files/71ecf1f788f1530928078a8fd18a3111-341F5.png differ diff --git a/src/templates/src/fishbowls/config/files/741001440587153609-DD612.gif b/src/templates/src/fishbowls/config/files/741001440587153609-DD612.gif new file mode 100644 index 0000000..985b190 Binary files /dev/null and b/src/templates/src/fishbowls/config/files/741001440587153609-DD612.gif differ diff --git a/src/templates/src/fishbowls/config/files/89747c254631bcfd05c5c3e7141389aa-A1FB9.png b/src/templates/src/fishbowls/config/files/89747c254631bcfd05c5c3e7141389aa-A1FB9.png new file mode 100644 index 0000000..6fe1dbd Binary files /dev/null and b/src/templates/src/fishbowls/config/files/89747c254631bcfd05c5c3e7141389aa-A1FB9.png differ diff --git a/src/templates/src/fishbowls/config/files/8bbce81d74ba142434988d9baee7f26e-1DC70.png b/src/templates/src/fishbowls/config/files/8bbce81d74ba142434988d9baee7f26e-1DC70.png new file mode 100644 index 0000000..96b532b Binary files /dev/null and b/src/templates/src/fishbowls/config/files/8bbce81d74ba142434988d9baee7f26e-1DC70.png differ diff --git a/src/templates/src/fishbowls/config/files/a8391685ad8f7a9ee9d790b967364cb7-2AE0A.png b/src/templates/src/fishbowls/config/files/a8391685ad8f7a9ee9d790b967364cb7-2AE0A.png new file mode 100644 index 0000000..9de9d05 Binary files /dev/null and b/src/templates/src/fishbowls/config/files/a8391685ad8f7a9ee9d790b967364cb7-2AE0A.png differ diff --git a/src/templates/src/fishbowls/config/files/b032bf22b6696de1f403e43c3bdd4613-55F4A.png b/src/templates/src/fishbowls/config/files/b032bf22b6696de1f403e43c3bdd4613-55F4A.png new file mode 100644 index 0000000..b3f948f Binary files /dev/null and b/src/templates/src/fishbowls/config/files/b032bf22b6696de1f403e43c3bdd4613-55F4A.png differ diff --git a/src/templates/src/fishbowls/config/files/gist-og-image-17482.png b/src/templates/src/fishbowls/config/files/gist-og-image-17482.png new file mode 100644 index 0000000..615ce58 Binary files /dev/null and b/src/templates/src/fishbowls/config/files/gist-og-image-17482.png differ diff --git a/src/templates/src/fishbowls/config/files/opengraph-563E5.png b/src/templates/src/fishbowls/config/files/opengraph-563E5.png new file mode 100644 index 0000000..fcab24a Binary files /dev/null and b/src/templates/src/fishbowls/config/files/opengraph-563E5.png differ diff --git a/src/templates/src/fishbowls/config/files/twemoji_1f61b.svg b/src/templates/src/fishbowls/config/files/twemoji_1f61b.svg new file mode 100644 index 0000000..e249672 --- /dev/null +++ b/src/templates/src/fishbowls/config/files/twemoji_1f61b.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/templates/src/fishbowls/config/files/twemoji_1f629.svg b/src/templates/src/fishbowls/config/files/twemoji_1f629.svg new file mode 100644 index 0000000..d367d48 --- /dev/null +++ b/src/templates/src/fishbowls/config/files/twemoji_1f629.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/templates/src/fishbowls/config/files/unknown-336C5.png b/src/templates/src/fishbowls/config/files/unknown-336C5.png new file mode 100644 index 0000000..bd0ce30 Binary files /dev/null and b/src/templates/src/fishbowls/config/files/unknown-336C5.png differ diff --git a/src/templates/src/fishbowls/flexible-software/flexible-software.html b/src/templates/src/fishbowls/flexible-software/flexible-software.html index bd44879..a5b9f96 100644 --- a/src/templates/src/fishbowls/flexible-software/flexible-software.html +++ b/src/templates/src/fishbowls/flexible-software/flexible-software.html @@ -31,7 +31,7 @@
- We all want software to be flexible. We want it to work for lots of different users, we want it to adapt to different workflows. We had a fishbowl about how to design to avoid configuration, and you should read it. (See the pinned messages in #fishbowl!) But when you can't avoid configuration, how do you do it well? + We all want software to be flexible. We want it to work for lots of different users, we want it to adapt to different workflows. We had a fishbowl about how to design to avoid configuration, and you should read it. But when you can't avoid configuration, how do you do it well? And furthermore, if we want our software to be flexible, for users to be able to adapt it to their needs, what options do we have besides configuration? What other ways are there to make software flexible? @@ -155,7 +155,7 @@ And what about extending software? Flexibility is one thing, but some s
- To give a quick summary of what we discussed at the config fishbowl (https://discord.com/channels/239737791225790464/707742863076622358/820370649313968130), we had a couple key insights: + To give a quick summary of what we discussed at the config fishbowl, we had a couple key insights:
@@ -1298,7 +1298,7 @@ And what about extending software? Flexibility is one thing, but some s
- Sure, that makes sense - and in fact I think that falls in line with what we discussed in our config fishbowl + Sure, that makes sense - and in fact I think that falls in line with what we discussed in our config fishbowl
diff --git a/src/website/fishbowl.go b/src/website/fishbowl.go index 934f61c..4670c01 100644 --- a/src/website/fishbowl.go +++ b/src/website/fishbowl.go @@ -70,6 +70,7 @@ var fishbowls = [...]fishbowlInfo{ Title: "How to design to avoid configuration", Description: `Configuration sucks. How can we avoid it, while still making software that supports a wide range of behaviors? What is the essence of "configuration", and how can we identify it? How can we identify what is "bad config", and design our software to avoid it?`, Month: time.March, Year: 2021, + ContentsPath: "config/config.html", }, { Slug: "simplicity-performance",