unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Dan Partelly <dan_partelly@rdsor.ro>
To: swedebugia <swedebugia@riseup.net>
Cc: Guix-devel <guix-devel@gnu.org>
Subject: Re: Improving the README and new user experience
Date: Wed, 20 Jun 2018 09:13:18 +0300	[thread overview]
Message-ID: <7320F0B8-73A2-4E35-ADDE-D5E0E1E7E69A@rdsor.ro> (raw)
In-Reply-To: <2BB0BF83-FB79-4D6D-AE22-9E8D6B095C75@riseup.net>

HI,

When somebody installs an OS , the last thing he wants is to have the OS craps on him in the next 10 minutes. And I can safely generalize this. People want to install the OS and then get on with their lives, do their work or whatever else. This is paramount for an OS. Be reliable and get out of the way. GuixSD unfortunately falls short here , but some aspects are easy to mitigate. This assumes that you want people to use your OS, and it’s not written by developers for developers only. Adoption of software is modulated by social factors much more then technical excellence. If somebody wants his tools

> I would like to help new users understand more about GuixSD before they run it (and inevitably into errors) 

First thing, you must ensure that users do not run in the errors. If the users go inevitably into errors, then you have an issue with the design of the system and you have to rethink it. The simplest best way to mitigate this aspect is two fold:
	- make a FAQ page as the first thing of the manual. Make sure it contains a glossary of specific terms such as  store, system profile, user profile, derivation, substitutes, explain structure, and some usual commands. Make sure it has a disclaimer the system is in beta, and may break, outlining the simplest way to recover. 
       - make sure you follow sane development practices and relase engineering. Take this very seriously. By no means have giux pull work by pulling from the bleeding edge of a  repository. In my opinion this is irresponsible. You just exposed your users to every bug imaginable in a development cycle. Guix is inevitably rolling, and to get last packages  you have to update it, but do this from intermediary branches such as 0.14.1 … 0.14.n, branches which where regression  tested before beeing inflicted upon the user. 

> Users come from other Distros where tough package manager errors mostly mean: you are screwed, reinstall. Because if you loose the central command to manipulate the system - how can you possibly recover? Imagine apt being corrupt or gone missing. 

This is not true. In classical distros, the central command to recover is not the package manager per se. It’s an editor in the first place, and only secondary the package manager. You are not screwed if the package manager craps on you, you have a lot of options to recover. You do not have to reinstall. Guix is much more central to GuixSD then pacman to arch for example, because well, it also wants to manage t system configuration for you, not just install some packages. 

> wen we need to educate them that this is something completely different where it is actually hard to break (besides when running guix pull and not understanding how to set paths manually) 

What you want is not easy recovery. This is important , but secondary to the fact that they **system should not break** in the first place.  guix pull is a very problematic command. Users do not want to do a command which supposedly gives them access to new packages and then have to recover. Again, user want to get the software, and get on with their lives. This means that you must have guix pull work flawlessly (industrial strength ) by the time you reach 1.0 I cannot stress enough how important this is for the adoption of your OS.

> I would like to tell new users NOT to change the config.scm at first install if they are not confident schemers. (besides the username and timezone perhaps). 

I dont think it’s OK. People want to configure the system. With how much fragmentation exist in Linux world it is unlikely you will be able to offer a good inital configuration which satisfy ppl coming from othe Linuxes. For example the default bare bones loaded a DNS caching demon for me. Why would I want that ? The config system should as user friendly as possible, and ***DOCUMENTED**.  FAQ are in order:

 - how to I modify the base packages set
 - how do I add my own package set
 - how do I alter a package build options
 -what can be inherited and what not, and what inheriting gains me
 - how do I set timezone , locale
 - how do I create a network interface. use DHCP, fixed address. How do I create abridge network interface 
 - boot and initrd handling. Add new drenel driver to kmod Options for init demon 
 - filesystem handling. software raid handling. encryption of filesystems. 
-  time management. UCT times. NTP options
- conr options. cron administration.

You could offer a sample config which does all those examples. 


>  Also the editors included in the image are crap because they lack two important features: 1) keeping track of the damn paranteses and 2) comment and uncomment region. 

Yes. nano is crap. vi has paren matching, but doest keep tack of them . Editing lispy code with tracking of parens is not a pleasure. 

Also document every bug and quirk of this system.

 

> On Jun 20, 2018, at 07:46, swedebugia <swedebugia@riseup.net> wrote:
> 
> Hi
> 
> I would like to propose a rewrite of the README.
> 
> I'm wondering if it would be best to split it up in 2 files. 
> 
> One for guix and one for guixsd. 
> 
> 
> 
> Users come from other Distros where tough package manager errors mostly mean: you are screwed, reinstall. Because if you loose the central command to manipulate the system - how can you possibly recover? Imagine apt being corrupt or gone missing. 
> 
> So when we have strong reactions to users used to being screwed and reinstall then we need to educate them that this is something completely different where it is actually hard to break (besides when running guix pull and not understanding how to set paths manually) 
> 
> Another example:
> The current parsing of config.scm is eh... crude and might work for seasoned programmers who know the exact differences between parameters, instantiated config, where inherit works (record types) and where they don't (service-types), what a service object is, how you remove an item from a list of service objects, etc. 
> 
> I would like to tell new users NOT to change the config.scm at first install if they are not confident schemers. (besides the username and timezone perhaps). 
> 
> Also the editors included in the image are crap because they lack two important features: 1) keeping track of the damn paranteses and 2) comment and uncomment region. 
> 
> Edits to the configuration is in my view best done with small incremental steps in emacs and validating the config for each step (side note how do you validate your config from within emacs?). Access to irc to ask for questions/help when guix sometime spews incomprehensible errors at you is also advisable.
> 
> We also need a lot more complete examples of working snippets and whole config.scms to add to a config in the lack of good error reporting. 
> 
> Maybe a list of links to working configs from community members would be good to add Somewhere. I learned a lot from reading the
> Config of others. Perhaps in a new file called GUIXSD-CONFIGURATION-EXAMPLES? 
> 
> I saw that some of you, Alex, sidesteps the removal of service objects-problem by defining all the services yourself in a list instead. 
> 
> -- 
> Cheers Swedebugia

  reply	other threads:[~2018-06-20  6:13 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-20  4:46 Improving the README and new user experience swedebugia
2018-06-20  6:13 ` Dan Partelly [this message]
2018-06-20  7:20   ` Pierre Neidhardt
2018-06-20  9:39     ` Dan Partelly
2018-06-24 14:02     ` Dan Partelly
2018-06-20  8:24   ` Danny Milosavljevic
2018-06-20  9:57     ` swedebugia

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7320F0B8-73A2-4E35-ADDE-D5E0E1E7E69A@rdsor.ro \
    --to=dan_partelly@rdsor.ro \
    --cc=guix-devel@gnu.org \
    --cc=swedebugia@riseup.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).