From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id mPfzMPVW5WIhQAAAbAwnHQ (envelope-from ) for ; Sat, 30 Jul 2022 18:06:13 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id cIHsMPVW5WIysQAAauVa8A (envelope-from ) for ; Sat, 30 Jul 2022 18:06:13 +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 827E43A71E for ; Sat, 30 Jul 2022 18:06:13 +0200 (CEST) Received: from localhost ([::1]:50532 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oHoyi-0001O6-77 for larch@yhetil.org; Sat, 30 Jul 2022 12:06:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59162) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oHoxY-0001Nm-DI for guix-devel@gnu.org; Sat, 30 Jul 2022 12:05:00 -0400 Received: from mailout.easymail.ca ([64.68.200.34]:34030) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oHoxV-0000Z6-3x for guix-devel@gnu.org; Sat, 30 Jul 2022 12:04:59 -0400 Received: from localhost (localhost [127.0.0.1]) by mailout.easymail.ca (Postfix) with ESMTP id ED527E304E; Sat, 30 Jul 2022 16:04:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=bokr.com; s=easymail; t=1659197094; bh=lWqYBOb1GCGtPh530ZrhuRExNcX0zARDRFthNIGiDDs=; h=From:Date:To:Cc:Subject:References:In-Reply-To:From; b=JubPiN12855ijjvUgpW3k/llF0QoOjc/opUnvDv03rBmS6ZhRgcEHGbAB8KW1sZUh 7nobWUgrSN8Bm+fPb1YFz5j6x5E1gNuEggZJN4JYMPAihfLaGamujsLC/aRMWQdn1z 8ajyb7XCShACepTLz7aQL5bq5N+j6GO9pMkeaYv0jgeKKNznQSwIBWHq93go37YKhA mV4lRQIwyF5Y6VD16tTAoBL8NDG3ivJTYZAkVuhVlSjkMJWncLipUUbpztKCWsnc53 nDGG+1NMNXcPqgFr82XyoCvq9QmDj5hFcHTxWnkvasd7ES4EB40xDxlsHdKx+8mWIQ eOv3C8Dsc10vw== X-Virus-Scanned: Debian amavisd-new at emo08-pco.easydns.vpn Received: from mailout.easymail.ca ([127.0.0.1]) by localhost (emo08-pco.easydns.vpn [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id sc4w9JOHb9iX; Sat, 30 Jul 2022 16:04:52 +0000 (UTC) Received: from localhost (m90-129-217-252.cust.tele2.se [90.129.217.252]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mailout.easymail.ca (Postfix) with ESMTPSA id 6F98BE3034; Sat, 30 Jul 2022 16:04:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=bokr.com; s=easymail; t=1659197092; bh=lWqYBOb1GCGtPh530ZrhuRExNcX0zARDRFthNIGiDDs=; h=From:Date:To:Cc:Subject:References:In-Reply-To:From; b=PkDAhSuj40oI8aeO3POI4xW/ms1IguvdAWq5z+jiYUm/kNlX61KkxDRyWehAFVDTD yocwWanlxpHpIHcHiMJ1vlVPSvfTRZFqCsm2Zpn4JLHk4PysIWXytV04KpoSxBljiT 8r8uJQsYZ+1Nfn2EtCPiduJKn6pv6MBx8ZCOhS5Iy8XUF7VQl+mkYtpeUtLLOqMZns aY8Afcya7f8sXVxNXZ/42KNzE6gCaJsBTpt3cGhknQtKBvoZ+PGJSu2myYeKKNEXfM jkz9e6PUTF8iRtELDbj6sV+RKWdBP8j0ezDDBjUcNbl9kZIqgC+o77aZhP314wqeAu aRygE030+jeyg== From: bokr@bokr.com Date: Sat, 30 Jul 2022 18:04:29 +0200 To: Luis Felipe Cc: Ryan Prior , jgart , Maxime Devos , Guix Devel Subject: Re: developing javascript with guix Message-ID: <20220730160429.GA3642@LionPure> References: <20220726192504.GB7293@gac> <8a535734-0a7d-9276-8091-4c4312abe8a3@telenet.be> <20220727172517.GB4874@gac> <7K0vjV4NvEKb0D-wEmmFrZrnJIJRCzAAPhxOe0b4qRqr10cYam8bO2M2mgiQcBD5tO08B7NqFBo_xn-LCDzg-sS_VKdzVhm4_cwpceZyi60=@protonmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) Received-SPF: pass client-ip=64.68.200.34; envelope-from=bokr@bokr.com; helo=mailout.easymail.ca X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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, RCVD_IN_DNSWL_MED=-2.3, 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=1659197173; 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=54gsMtbXBDXnzyQVzyV4jNNctIjE6nR44yXEeXyILBw=; b=j/vzHUSNcUJJ+lZQzyM4zq7mgX8O+o8hDQy8ZHvVM6dOS9W1I06Bx71KPustLfkf25ye3T Mg46py+AGXcUcXh13H63Jo1JiRE9OQKEiYnbFYkkOrD3g7akPSr8sKqvp/rBhpysNYxLN0 ul45LNy4XgomL29IO19v7ZG5XaXxuN5ed6M2S0r9oknsklZY/CH/YLvskFaIXqNsrAEMn3 lpupwQFhVmS4VrraCZeZd5Ah8nch3hCMe0W5PrxFODiwF1jCsbBU3OQ+IZ/VvMBr3fDqHC XNmulVIdQnJqJxD+8BX0tUOpUy/It7pjwWbKzYEWLknaJb+hIiqmFPjBjBiWow== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1659197173; a=rsa-sha256; cv=none; b=qTaWRTHMLzTyWhGfNeHTu8Bq0xtR1VGopPHm1e5eud6vyY6ywKEWv37KSXBKME/sWX8Phn 6CbIycDfiFLDLkIBhNNpgwpV0Gwp1QOkT38a4y8et/Ww61XgZ63cKKps7tjQQvu6qpKMt8 6ieRBzTisW6eHLrou/ATPk9ia/YLF8vykITOAwGgvPoZTfzUyV+cRL6BDsJabXJtAusbAC TYKspMGqt2QzAChW7mvvOXAl3moo53Szll6zaXcqPUNN/LwJCXCwSCj3Nd7n7mGGnp0ppM r34hOBUHlB0w26pn0ICvmDiKBFQU0ZHHGBSC4OKne/eJ+aAWaMiMAz6lTNi+yA== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=bokr.com header.s=easymail header.b=JubPiN12; dkim=fail ("headers rsa verify failed") header.d=bokr.com header.s=easymail header.b=PkDAhSuj; dmarc=none; 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: 2.27 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=bokr.com header.s=easymail header.b=JubPiN12; dkim=fail ("headers rsa verify failed") header.d=bokr.com header.s=easymail header.b=PkDAhSuj; dmarc=none; 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: 827E43A71E X-Spam-Score: 2.27 X-Migadu-Scanner: scn0.migadu.com X-TUID: omqhA3Izqs+x On +2022-07-30 13:40:46 +0000, Luis Felipe wrote: > Hello, > > > On Wednesday, July 27th, 2022 at 23:15, Ryan Prior wrote: > > > On Wednesday, July 27th, 2022 at 10:25 PM, jgart jgart@dismail.de wrote: > > > > > > On Wed, 27 Jul 2022 11:33:43 +0200 Maxime Devos maximedevos@telenet.be wrote: > > > > > > > Hi Maxime, > > > > > > > Hope all is well. > > > > > > > > Let's try not doing anything special: > > > > > > > Thanks for the repl example and for trying out a Guix developer js > > > workflow for me. Do you happen to know if the same approach works > > > for erlang? > > > > > > > I think we should have language developer documentation for > > > general orientation of new Guix users. Ryan Prior, another Guix > > > contributor/developer has mentioned this idea to me before. > > > > > > > > Hey Guix! Since I'm mentioned here, I'll throw in a couple ideas. > > > > > First, an issue about unexpected behavior. I tried running this: > > > > > guix shell node-sqlite3 -- node <<<"console.log(require('sqlite3'))" > > > > > It gave me an error saying it couldn't find the module sqlite3. Turns out it's because I was using node from my base profile and not from the shell. Running the shell with `--pure` makes it give a more helpful error, "node: command not found." > > > > > Why isn't node a dependency for node-mersenne though? Is there really a use case for shipping the source code of a JavaScript library without the interpreter? At a minimum, can we make `guix shell` warn on stderr if you create a shell with one or more libraries but no interpreter? > > > > > Second, a point about documentation. It's pretty obvious to most of us how to use JavaScript libraries (or Python, etc) with Guix, modulo small issues like the above. But Guix has two weaknesses here in comparison to other language-specific package managers: > > > > > ## Explanation in context > > > > > The language-specific package managers generally don't take for granted that people know anything about the language, because they're designed to be accessible to learners of the language. For example, PyPI's explanation for pip starts with the basic "can you even run Python?" and goes through a bunch of Python-specific package workflows: https://packaging.python.org/en/latest/tutorials/installing-packages/ > > > > > We could write a guide like that with information and example commands specific to Python packaging, and another for JavaScript, etc. These provide explanation in context so beginners and people who are confused for whatever reason can see concrete examples of what you're supposed to do. > > > > > ## Specificity implies belonging > > > > > A Python-specific package manager is full of references to Python, libraries for Python, tools for Python programmers. If you're doing Python, the PyPI shouts loud and clear: "you are in the right place!" > > > > > Likewise for JavaScript and npm, Ruby and gems, etc. Landing on the pages for any of those package managers confirms that you are in a place where you will find information and tools that will help you with your language and package commons of choice. When you do a search for "MySQL" on PyPI, you only see Python MySQL packages, not random other stuff. The interface and search quickly confirm that you have found the right place with the right stuff for you. > > > > > Meanwhile, in the Guix docs, everything is abstract. We don't name any specific library commons or restrict package search to any specific namespace, we don't even have tags or categories for them. There is no link to Guix documentation I can give to a Python hacker that assures them, in the way PyPI's website does, that Guix has the stuff they need and they can find it and make it work. So Guix requires more faith and experimentation from users, which means a lot of people will just bounce off it. > > > > > I talk to somebody about once a week who says "oh I've heard of Guix and keep meaning to try it." The project has built up a lot of indistinct good faith that it has yet to make good on, so to speak. I think we can make a much better experience for users from the various language library commons if we build language-specific landing pages with instructions, documentation, and package search that affirm they are in the right place and will find the right stuff, and don't make much assumption that the person knows what they are doing. > > I agree. > > > Using the original design of Guix website, this information could be accessible from "Home page → Guix in Your Field → Software developement". Clicking on that button would take the user to a Software Development page, which would link to language specific information to integrate Guix in one's workflow. So there would be URLs like these: > > https://guix.gnu.org/en/software-development/ > https://guix.gnu.org/en/software-development/javascript/ > https://guix.gnu.org/en/software-development/python/ > https://guix.gnu.org/en/software-development/ruby/ > > The "Guix in Your Field" idea seems kind of forsaken, but I think it is quite important. > > > > I'll pitch in on this effort! I have experience with Ruby, JavaScript and Python packaging and tooling and am to help build out all those areas. Our emerging teams can help lend some structure to this effort too, I imagine. > > I'd say, pick one language and start :) pub RSA 2048/7A39C6A9 2020-07-23 luis.felipe.la@protonmail.com > sub RSA 2048/E8573DB1 2020-07-23 > I like to have stuff available off line (and therefore also serving as distributed backup if^H^H when things disappear :) So whatever you provide on the internet, I would like an easy way to clone what's being served, so I can see it in the same way but locally on my laptop or lan. I think IWBN to import web site contents via installing/updating a guix package, maybe based on a git repo of web site (so it's also available to users not yet having guix installed, i.e., so a simple snippet could also put it in http://localhost/guix/ ) (with safety-sanitizing). I notice that my laptop system (pureos derivative of debian) starts up an instance of apache2. Maybe yours des too? --8<---------------cut here---------------start------------->8--- [17:05 ~/bs]$ ps -ef|grep apache root 791 1 0 13:53 ? 00:00:00 /usr/sbin/apache2 -k start www-data 793 791 0 13:53 ? 00:00:00 /usr/sbin/apache2 -k start www-data 794 791 0 13:53 ? 00:00:00 /usr/sbin/apache2 -k start bokr 5531 2173 0 17:05 pts/0 00:00:00 grep apache --8<---------------cut here---------------end--------------->8--- On my laptop, the command --8<---------------cut here---------------start------------->8--- firefox-esr http://localhost/ --8<---------------cut here---------------end--------------->8--- brought up a default test page [1], which suggests to me that we could make a guix package to install any desired docs or files that apache2 can serve, and make them accessible to your preferred browser via something like --8<---------------cut here---------------start------------->8--- firefox-esr http://localhost/guix/index.html --8<---------------cut here---------------end--------------->8--- WDYT? [1] -- after the default page came up, I selected and copied the text and got the following, justifying for better reading here (or interfering with your presenter's line wrapper, sorry if so :) --8<---------------cut here---------------start------------->8--- [17:05 ~/bs]$ wl-paste |tr -d $'\r'|blockjust -left=0 -width=60 --8<---------------cut here---------------end--------------->8--- produced: --8<---------------cut here---------------start------------->8--- This is a modified index.html This is the default welcome page used to test the correct operation of the Apache2 server after installation on Debian systems. If you can read this page, it means that the Apache HTTP server installed at this site is working properly. You should replace this file (located at /var/www/html/index.html) before continuing to operate your HTTP server. If you are a normal user of this web site and don't know what this page is about, this probably means that the site is currently unavailable due to maintenance. If the problem persists, please contact the site's administrator. By default, Debian does not allow access through the web browser to any file apart of those located in /var/www, public_html directories (when enabled) and /usr/share (for web applications). If your site is using a web document root located elsewhere (such as in /srv) you may need to whitelist your document root directory in /etc/apache2/apache2.conf. The default Debian document root is /var/www/html. You can make your own virtual hosts under /var/www. This is different to previous releases which provides better security out of the box. Reporting Problems Please use the reportbug tool to report bugs in the Apache2 package with Debian. However, check existing bug reports before reporting a new bug. Please report bugs specific to modules (such as PHP and others) to respective packages, not to the web server itself. --8<---------------cut here---------------end--------------->8--- -- Regards, Bengt Richter