From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: adriano Newsgroups: gmane.lisp.guile.user Subject: Re: timestamp Date: Sat, 12 Feb 2022 14:30:16 +0100 Message-ID: <880d7dec038821cbba9c3963ff8bb667f68e7e4f.camel@riseup.net> References: <5cae853e6252bb3e38b1a20ff9ea960c1756c68c.camel@riseup.net> <9d45b2d6c007a8e9ca1e0656deed190f1181e035.camel@planete-kraus.eu> <098bbd5f1c81414521015479b7e2b17d8809f1bd.camel@riseup.net> <874k54tia0.fsf@elephly.net> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="22669"; mail-complaints-to="usenet@ciao.gmane.io" Cc: guile-user@gnu.org To: Ricardo Wurmus Original-X-From: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Sat Feb 12 14:37:51 2022 Return-path: Envelope-to: guile-user@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nIsb0-0005fQ-Qk for guile-user@m.gmane-mx.org; Sat, 12 Feb 2022 14:37:51 +0100 Original-Received: from localhost ([::1]:44420 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nIsaz-0004Fz-TF for guile-user@m.gmane-mx.org; Sat, 12 Feb 2022 08:37:49 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:53530) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nIsTq-0000ID-5e for guile-user@gnu.org; Sat, 12 Feb 2022 08:30:26 -0500 Original-Received: from mx1.riseup.net ([198.252.153.129]:36510) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nIsTn-00069V-NF for guile-user@gnu.org; Sat, 12 Feb 2022 08:30:25 -0500 Original-Received: from fews1.riseup.net (fews1-pn.riseup.net [10.0.1.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "mail.riseup.net", Issuer "R3" (not verified)) by mx1.riseup.net (Postfix) with ESMTPS id 4Jwrvd13FjzDqSr; Sat, 12 Feb 2022 05:30:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak; t=1644672621; bh=u9WB+31feLV0oWzCXRS8DQUDidAluvVwGot9oBu2CcI=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=Qg39mxm0CtClSkPxEoKPR9VkZ9fd/+zrZHnTBhQbHlEON0y2dFRhiDw7vfS1WCCA5 MWHUZQc9cFC77XIEjg9KEXySGTXZEdJwVC5YXGvWIIVXWoPnk7maFXI/j13YtFMB/X 5752u9Vh8IgYEZ5rbp5I+bmUnnViaQrI1qoHzfnc= X-Riseup-User-ID: 194950C449FF4D3F645DA3AD35D2C6D1354FE2FFEE7A0DF5299F16B5C17CCAC2 Original-Received: from [127.0.0.1] (localhost [127.0.0.1]) by fews1.riseup.net (Postfix) with ESMTPSA id 4Jwrvb3bPKz5vNJ; Sat, 12 Feb 2022 05:30:19 -0800 (PST) In-Reply-To: <874k54tia0.fsf@elephly.net> Received-SPF: pass client-ip=198.252.153.129; envelope-from=randomlooser@riseup.net; helo=mx1.riseup.net X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-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: guile-user@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Original-Sender: "guile-user" Xref: news.gmane.io gmane.lisp.guile.user:18087 Archived-At: Hi Ricardo, thank you for chiming in :-) Il giorno sab, 12/02/2022 alle 12.49 +0100, Ricardo Wurmus ha scritto: > > Hi adriano, > > I’ve got no good answers as to “why” things are the way they are, but > the manual explains the range of these values: You're right, the manual does explain the range of these values, so the experience can be less punishng than I perceive it to be I had just overlooked those bits, I was't readng hard enough, actually I think there's a reason for that but I need to digress a bit My main gripe with the Manual is its "reference" nature I'd love it to consider the experience of wanting to cover a use case as the starting point of exposition Instead it considers features as starting points and it leaves to work to stitch together a solution for their use case to the reader It's a matter of cognitive styles, there's no universal solution A manual centered on use cases would baffle _some_ people The argument of lack of examples in the Guile/Guix documentation has been made several times now, or at least, I've seen it being made several times Although there's no solution in sight, this reaasures me to some extent Because it means that the community is not completely blind in respect to this issue As for me, I like to mention that I had individuated this talk at the Fosdem 2017 https://archive.fosdem.org/2017/schedule/event/legacy_docs/ and I proposed an excerpt from that talk in my videos about how to read a file in Guile (a basic use case and its solution) But today I'd like to also mention something else It's a project called "bropages" It's meant to be used like the "man pages" tool but it's made only by example Quick dry examples Do you see a pattern here ? :-) http://bropages.org/ Admittedly the name of this project is a bit unfortunate, but that's a different argument ;-) ok, I digressed enough The reason why I overlooked those bits is that I get frustrated when I land in manual pages that repost long lists of procedure I'm not sure what to do with, unless I think of that a bit So I skim, I jump around in the page, trying to minimize frustration This morning I'm playing with a use case of mine These days I'm training in a gym and I have an agreement with a personal trainer I shoot myself while training, I send them the footages on whatsapp (sigh) and they send me back some more footages in which they comment/correct my execution So I have a folder with a bunch of files named like this VID-20220129-WA0021 VID-20220202-WA0019 VID-20220207-WA0025 ... I'm mumbling of a script that can group these files by day meaning putting in a subfolder all the files having the same date in their name maybe such subfolder could have an expressive name so I would have a collection of days/subfolders The bunch of files I have now is quite hard to parse I hope I was clear So today i read about the stat* procedures, I moved from "stat:perms" to "access?" So, ok, now I know how to check a file I also read about datetimes and converting from/to epochs So now, if I can find the way to access the _name_ of a file, I could isolate the substring expressing the date and parse it to get an epoch Then I could start to think about how to group files by date (in Clojure there's a library procedure that groups dictionaries by key but that's an argument for a different thread) So, in laying the logical stones in my script/wall, I have to go through the manual over and over again to fish for useful bits and stitch together my subpatterns made of small stones Ten I'll have to assemble my subpatterns... This kind of process is frustrating to me Rather than stitching together features to build solutions to use cases, I'd prefer so much to sew together new use cases starting form preexisting one (as the bropages dudes seem to like) Again, this is a subjective preference, there's no obvious solution I'd refrain from arguing that the Guile manual authors were not smart enough because their documentation is pointlessly selective, I understand that this was done in good faith I'd rather contend that people with this specific cognitive style are smart and people with a different style are less smart but again this is another argument I'd love if people would refrain from arguing that having a hard time with Guile documentation means you're not tryng hard enough or that you're not smart enough Again, I understand that this argument isn't necessarily made maliciously But between Guile curse of knowledge and this kind of arguments, I believe this explain quite a bit the difference in success between Guile and Python or Javascript