From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id eIleJ9S8qmJOGQEAbAwnHQ (envelope-from ) for ; Thu, 16 Jun 2022 07:17:08 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id GIhMJ9S8qmJjhAEA9RJhRA (envelope-from ) for ; Thu, 16 Jun 2022 07:17:08 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 599D82C1B6 for ; Thu, 16 Jun 2022 07:17:08 +0200 (CEST) Received: from localhost ([::1]:54586 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1o1hsR-00030i-Cm for larch@yhetil.org; Thu, 16 Jun 2022 01:17:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:55732) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o1hr1-00025h-79 for guix-devel@gnu.org; Thu, 16 Jun 2022 01:15:39 -0400 Received: from mail-ej1-x630.google.com ([2a00:1450:4864:20::630]:38506) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1o1hqy-0000Rf-EP; Thu, 16 Jun 2022 01:15:38 -0400 Received: by mail-ej1-x630.google.com with SMTP id n10so639489ejk.5; Wed, 15 Jun 2022 22:15:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=message-id:subject:from:to:cc:date:in-reply-to:references :user-agent:mime-version:content-transfer-encoding; bh=clhdjz7sWC9q5/IKNg+XfUUK0FfJdXk/H465bynzAss=; b=ilrH0riy1HG+2ksHmJfIzyNE0CzrWvGKLRkhbWHgnWhuZZ+uh8v8vaa5Yu59fC07jA 5DFLcAoXbT9h1shNbPEbCZvSdKWTn/7ZeO5kPCq0ulkSPWOff1fP8/CQFfYtNNNJ+kXG ICG1clFwwdzZVXDNgg85KuZIkLg64c5yNyL6XPGVKBKVm6YkByyP8/cQG2ERPnba97bd 0+ZrF814+tcSdrYUCQk+dcKOWFF6iMvNEF0aY+W/o9ZstzNUJjOyTETw1CV1eOEYR3xM vVvo6YSoRsyfxqmez+yc3c3/P/c0o//l98hM+LU3aXPHINxdbZMffyvt/xKsjxjqAiJz dpQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:user-agent:mime-version:content-transfer-encoding; bh=clhdjz7sWC9q5/IKNg+XfUUK0FfJdXk/H465bynzAss=; b=S2i9PpzCWxcfhKz4Qna63JxtBW3eMZbQlLNybETL/f0syc4sla1muiAYFnfrJiWpEC yyTvuad18v4BQ1EoSGyzcRjwdkQO7n14CL7xsYdlz7cuN1AfmkIG0JnMwg2WtRfNT4M8 33o0XZFGuD+AcRsrKEtEz5VtIuZKqN6THWu/W7N9GrDXZdJc5R9mfHDakM1PlSbSMl8k uBq/xbED7muMwZn7QSZJUO/kArR6yF4h/cQkN+5NzUZsu04WQ5f7WzmW5QsL7o4L4LkD V/d4BHJUm9GfCtNl+LoHyU7DzCYlFtrpJ7xfhyHCItzKoh3etXRbOQu8Nde7+ZIx0DnN LsDg== X-Gm-Message-State: AJIora/J3n3yCKt1aMfdTvsW5Tp9lpxpXScMVJQD9Z8Hjf9E8jVIxYnL JKrGrYsq2rmoMc8DXNYJMw== X-Google-Smtp-Source: AGRyM1tDCaNok6H2Tfq6e1bzJ1Pob87Er1zcg/GnZwnuzAosrHXJ/DB97Gf4M761wRov7Ryt8+YvgA== X-Received: by 2002:a17:906:e098:b0:711:d05c:89c5 with SMTP id gh24-20020a170906e09800b00711d05c89c5mr2955121ejb.470.1655356534179; Wed, 15 Jun 2022 22:15:34 -0700 (PDT) Received: from [192.168.1.51] (93-37-201-163.ip67.fastwebnet.it. [93.37.201.163]) by smtp.gmail.com with ESMTPSA id 17-20020a170906219100b007105a157706sm293732eju.82.2022.06.15.22.15.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Jun 2022 22:15:33 -0700 (PDT) Message-ID: Subject: Re: how to write services (was: Re: Teams) From: catonano@gmail.com To: Blake Shaw , Ricardo Wurmus Cc: Andrew Tropin , Josselin Poiret , Guix Devel , GNU Guix maintainers Date: Thu, 16 Jun 2022 07:14:22 +0200 In-Reply-To: References: <87a6as62r2.fsf@elephly.net> <87ilpfwmi0.fsf@jpoiret.xyz> <877d5j5vng.fsf@trop.in> <87a666663179c883aaa1797b62c3bcb0084d3ebb.camel@gmail.com> <87bkuuyqf9.fsf@elephly.net> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.42.4 (3.42.4-2.module_f35+14217+587aad52) MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Received-SPF: pass client-ip=2a00:1450:4864:20::630; envelope-from=catonano@gmail.com; helo=mail-ej1-x630.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: "Guix-devel" X-Migadu-Flow: FLOW_IN X-Migadu-To: larch@yhetil.org X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1655356628; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=clhdjz7sWC9q5/IKNg+XfUUK0FfJdXk/H465bynzAss=; b=MA1XITpu8FRro2iZGl0LVmsu1MWA/zqBo/9LFgcWzl+nN5PZn2og6P5gqixOHygqhXxBQ2 xYXqY6SkDZAegmZo3ieur/d/sOehBVOg51pbUll1CtgbYTyH90G3O2vG8/sjUisORtxL8n jne1obLeVsg3lEHIq3MHaXKKkdj6y257eYrqKCMSuQvCLRhURxYwFJWZL71c+jGz22/Zkx aPnmcelo8nvscwBzA42I8dBNUZyTGK41oAj6ZDbOoSb4YcLHqik0+3tgFt5bnRGHeULZB8 MgQ4KLKr7vvSDMXNSf9J/JAu1sbwmGQ2nVjw0ZfO5rmyXKGXGl1vSEO3oP+Dbw== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1655356628; a=rsa-sha256; cv=none; b=Bg5baaNkPc28aGtecJA/gxFenRmya6tAQqBOaWZS7Jux6AesXoXrmthuKd2SYmaavIJe3r +sWnTC896zddTsst4GRLpcuIbgsYneCbS/hwKnpqPHF/k19o/XpQ4nxPX2lxdGGFoOLibQ EkF2wX7VER8KOhVinQYYv/dVBw8Xpxi0ab9wIPhV7PSHUppkcSvVT3XmHkINHxBDtikG7F XnCIdBVB3d0XMRwV47TfY1Rsgj/obUidzEPYyf/InilcjgGR2QhqYuK3w7h72/0E91aTkO PcxE7D0ZhzBw4ketpOfAsSSMkGd4hkxjDsrECJf3bOCAxKbWij6Ix+5gP+INww== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=ilrH0riy; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: -6.29 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=ilrH0riy; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: 599D82C1B6 X-Spam-Score: -6.29 X-Migadu-Scanner: scn0.migadu.com X-TUID: /3z09tOz8I3B Il giorno mer, 15/06/2022 alle 17.01 +0000, Blake Shaw ha scritto: > > Catonano: > I think writing a home-service is much easier given that you don't > need to do produce an entire system generation before you find out > what you did wrong;  I suspected something like this This is why I hypotized that a gradual passage with a Home service could be convenient Ricardo, the general map of the concepts involved in conceiving a service is useful But in my toot I asked for something different I asked for indications about the process (what magic to use in the REPL) if you prefer, I asked for something more menial Which buttons do I have to push (metaforically) ? As for the semantics involved in thinking a service, I feel I can work them out myself (to some extent) This should be covered in the cookbook I see there's a package for Tryton (that's a relative of Odoo) and the package definition for Tryton is quite sought after In fact Tryton modules are not python modules and there's a patch modifying how Tryton retrieves its modules in Guix Yet there's no service for Tryton I asked Hartmut (I remembered they were involved in this) and they declared their surrender in writing services (Here https://nerdculture.de/@kirschwipfel/108477739857485544 ) Maybe there's some cognitive friction about how to produce services ? This reminds me of an argument about Haskell I read Some "expert" haskellers are deeply involved in "plug ins" to the compiler that actually change the language and many haskellers with a lower level of proficiency are confused by this And this hampers the Haskell field as a whole Too bad I can't provide a pointer to this My point being that I think this is a case of curse of knowledge (mentioned here https://www.hillelwayne.com/post/learning-a-language/ ) I think the friction on how to write a service is not in the semantics involved It's more menial As an blueprint for what I mean, you can think of Smalltalk, the programming language There a famous implementation of Smalltalk called Squeak I played with Squeak myself, many years ago That's how I learned object orientation ,really The experience Squeak offers is NOT Posix based (thank God) A GNU implementation of Smalltalk also exists and it's totally Posix based (because of the unfortunate "GNU System" delusion) Do you think the GNU Smalltalk would have been as effective in teaching me object orientation ? I honestly doubt it yet the language is exactly the same because the problem is not the language, that is something people CAN work out themselves (roughly) The problem is the experience As I'm writing this, I noticed someone replied to my toot (here https://tines.spork.org/objects/a2ff7376-c9a2-4bbd-9307-a5374571edb4 ) as you can see, they also noticed a difference in the experience between creating home services and system services While you somewhat downplayed that Now I want to be clear, here In the past I have misunderstood some of your contributions about macros in Guile (that I had asked about) I came to terms with the fact that you're doing your best and in total good faith, so I hope it's clear that's not what's happening today But I also hope you can see why I could get a bit frustrated with your reply Guix is being successful, these days but that's an exception in the free software world and more so in the GNU world Guile is less exceptional in that it's suffering from its marginality and it has been doing so for several years now and I believe these cultural issues are part of why and they are threatening the whole user freedom movement Sorry if I went off on a tangent, I just feel a bit about this > it just depends on if you need your service initialized at startup > (system-services, globally defined and available prior to login) > rather than at login (home-services, per-user/locally defined). > > I'm not on Mastodon but feel free to send your service my way for > some help, I'm still a beginner but a second pair of eyes is always > nice to have. That's very kind of you, thank you I don't know if I'll ever attempt to write a service for Odoo Or for Tryton I have a job now (and it has to do with Odoo), I also train in a gym, I like to spend the free time I have on the beach (as it's evident from my presence on the fediverse) so I don't know it's not like I have any slots to assign to attempt this It's just that if the _process_ to write a service (home or system) was made explicit, I could have played with it in the few moments of grace