Re: rewriting history; Was: Concerns/questions around Software Heritage Archive

2024-03-22 Thread indieterminacy

On 2024-03-18 15:14, Andreas Enge wrote:

Am Mon, Mar 18, 2024 at 04:33:49PM +0200 schrieb MSavoritias:
Actually gitlab already is facing something like that and they are 
doing

what was proposed elsewhere: mapping of UUIDs to display names
https://gitlab.com/gitlab-org/gitlab/-/issues/20960


Interesting, thanks! It is something that maybe could be implemented by
Savannah, but it would probably require a bit of thought. And yet 
again,

somehow the mapping uuid<->"real" names would have to be public (people
would "git clone" commits with uuids, and would need to locally replace
them by "real" names); so people can always keep copies of the mapping
over time.

I am also not quite sure about the signing process for committers;
in principle keys are enough, but in GPG they are tied to email 
addresses,

and I do not know whether we use this in Guix.

In the end, my impression is this will not achieve much more than what 
we

already have with the .mailmap approach. In a sense, everyone would use
a pseudonym (their uuid), and then we would keep a mapping between 
these

pseudonyms and, well, "real" names or other pseudonyms chosen by the
contributors...

Hm, this could indeed be implemented exactly with .mailmap, no?
We would need to enforce that authors use a uuid of a specific format,
and potentially an empty or dummy email address, or another uuid.
Then we could keep a .mailmap file. The history of "real" identities
would still be visible in the git history, but as said above, anyway
we could not prevent people from storing the association information
over time.

Right fair. As I have said before SWH does break Guix CoC effectively 
right

now.
So what Guix does from this point on will effectively dictate if the 
CoC is

valid or not.


Well, the CoC is valid on our communication channels; so what SWH does 
with

our software is outside its scope (that is governed by the license).

Andreas


I have happened to stumble across a new initiative concerning UUIDs for 
academic researchers.


Here is their description:
```
ORCID, which stands for Open Researcher and Contributor ID, is a free, 
unique, persistent identifier (PID) for individuals to use as they 
engage in research, scholarship, and innovation activities. We provide 
ORCID to researchers free of charge so that we may realize our vision of 
connecting all who participate in research, scholarship, and innovation 
are uniquely identified and connected to their contributions across 
disciplines, borders, and time.

```

Here are its guiding principles:
```
Our Founding Principles

ORCID will work to support the creation of a permanent, clear, and 
unambiguous record of research and scholarly communication by enabling 
reliable attribution of authors and contributors.
ORCID will transcend discipline, geographic, national, and 
institutional boundaries.
Participation in ORCID is open to any organization that has an 
interest in research and scholarly communications.
Access to ORCID services will be based on transparent and 
non-discriminatory terms posted on the ORCID website.
Researchers will be able to create, edit, and maintain an ORCID 
identifier and record free of charge.
Researchers will control the defined privacy settings of their own 
ORCID record data.
All data contributed to ORCID by researchers or claimed by them will 
be available in standard formats for free download (subject to the 
researchers’ own privacy settings) that are updated once a year and 
released under a CC0 waiver.
All software developed by ORCID will be publicly released under an 
Open Source Software license approved by the Open Source Initiative. For 
the software it adopts, ORCID will prefer Open Source.
ORCID identifiers and record data (subject to privacy settings) will 
be made available via a combination of no-charge and for-a-fee APIs and 
services. Any fees will be set to ensure the sustainability of ORCID as 
a not-for-profit, charitable organization focused on the long-term 
persistence of the ORCID system.
ORCID will be governed by representatives from a broad cross-section 
of stakeholders, the majority of whom are not-for-profit, and will 
strive for maximal transparency by publicly posting summaries of all 
Board meetings and annual financial reports.

```

While I do not have the focus to make a further evaluation,
I should point out that ORCID is a component of the nascent Open Science 
Network

https://openscience.network/

FWIW, recognising an academic in OSN and being aware of the quality of 
the tooling Bonfire Networks make me wonder whether ORCID has some good 
design principles

https://bonfirenetworks.org/

In any case, it may provide a practical point for comparison given the 
thicket of governance issues this thread has discovered.



Warmest regards,


fsnjfkjljcjcjcdnmddfnfdfnlzxvcllnjnrejvns  v fjfdsjhsv



Re: You're invited to the first patch review session!

2024-02-23 Thread indieterminacy

Hello,


On 2024-02-23 19:13, Tomas Volf wrote:

On 2024-02-22 23:27:31 +, Steve George wrote:

...
Will the Jitsi link be shared somewhere (here, irc, ...) for those of 
us who are

not able to sign up on the page?  I am getting this error:

Your IP address has been flagged as a source of spam and is blocked 
from

Meetup.


Since meetup.com is a commercial, third-party service, I assume there 
is not
anything you can do about that, so I am curious if there are any 
alternatives

how to get into the review session.



Well, I did use Mobilizon for the Friday dinner for Guix Days - which 
though lacking some features is FOSS and Fediverse tech.

https://mobilizon.nl/events/ee570f76-1898-43ff-88f0-86f18608ff2d

It does permit email (as opposed to registration) to confirm - though I 
noticed that only 1 or 2 people actually provided any information for me 
to discern them.
... I guess it meant the system reduced the risk of spam signups but 
simultaneously didnt enforce accountability to an organiser.


On a legal basis Id assert that the specific instance being based in the 
Netherlands would be advantageous than wherever Meetup queries; routes; 
and caches.
It is run by some random volunteer, with all the carnets of such trust 
domains.



In any case, Im going to try to participate in these events, I reckon it 
would be a good compensation for there not being a regular Guix meetup 
in Belgium.


Kind regards,



Jonathan



Re: Git-LFS or Git Annex?

2024-01-24 Thread indieterminacy

Hello,

On 24-01-2024 16:22, Ludovic Courtès wrote:

Hello!

I’m looking for ways to incorporate videos into the repositories of our
web sites so they’re content-addressed and properly tracked, and to 
make

it easier to create backups (right now those videos are stored on our
two main servers and rsynced between them⁰; I’m talking about the 
videos

at guix.gnu.org, 10years.guix.gnu.org, and hpc.guix.info).

The question boils down to: Git-LFS or Git Annex?

From a quick look (I haven’t used them), Git-LFS seems to assume a
rather centralized model where there’s an LFS server sitting next to 
the

Git server¹.  Git Annex looks more decentralized, allowing you to have
several “remotes”, to check the status of each one, to sync them, etc.²
Because of this, Git Annex seems to be a better fit.

Data point: guix.gnu.org source is hosted on Savannah, which doesn’t
support Git-LFS; the two other web sites above are hosted on GitLab
instances, which I think do support Git-LFS.

What’s your experience?  What would you suggest?



In an ideal world I would be encouraging Guix to be operating its own 
Peertube instance,

so that the aforementioned videos can be operating within the Fediverse:
https://joinpeertube.org/
https://docs.joinpeertube.org/

Alas, looking at the list of dependencies makes me wonder how long this 
would take:

https://github.com/Chocobozzz/PeerTube/blob/develop/package.json#L86
https://docs.joinpeertube.org/support/doc/dependencies#other-distributions


Thanks,
Ludo’.

⁰ 
https://git.savannah.gnu.org/cgit/guix/maintenance.git/tree/hydra/berlin.scm#n193

¹ https://github.com/git-lfs/git-lfs/wiki/Tutorial
² https://git-annex.branchable.com/walkthrough/


It would be nice if there was an alternative Peertube instance 
technology in a language we have more comprehensive packaging (than 
Typescript).
I havent heard of anything, hopefully something will pop up during 
FOSDEM/OFFDEM, Brussels.
There should be enough Fediverse technologists at Caldarium (who will be 
hosting us for the Guix Days dinner on the Friday),

I shall try to remember to ask people.


--
Jonathan McHugh
indieterminacy@libre.brussels



Emacs Packaging Magazine

2023-10-11 Thread indieterminacy

Hello all,

I thought Id point out that there is a niche magazine which has started 
out, which is dedicated to Emacs Elpa:

https://amodernist.com/eaez/sep23.html
c/o https://irreal.org/blog/?p=11694

Id assume it could be interesting to those passionate for packaging in 
the Emacs domain.


--
Jonathan McHugh
indieterminacy@libre.brussels



Re: ActtivityPub and Haunt

2023-09-29 Thread indieterminacy

On 29-09-2023 14:10, Efraim Flashner wrote:

On Thu, Sep 28, 2023 at 10:03:13PM +0200, Reza Housseini wrote:

> But I will hands-down say that Haunt was an EXCELLENT environment for
> writing ap.rocks.  The implementation guide page especially is a great
> demonstration of Haunt's power:
>
>https://activitypub.rocks/implementation-report/

pretty cool stuff indeed! I also checked out the software mentioned on 
the

page, are there any attempts at packaging some of the software e.g.
microblog.pub?


Looks like I was starting to work on it at some point. Not sure why I
stopped.

https://git.sr.ht/~efraim/my-guix/tree/master/item/wip/microblog-pub.scm


Should you want a good place to harvest I strongly recommend this list:
https://delightful.club/delightful-fediverse-apps/
https://codeberg.org/fediverse/delightful-fediverse-apps

As can be imagined, some of these softwares have stacks which Guix is 
not so usually adept at packaging.


However, there are more minimalist and packaging friendly ones than the 
(interesting) Python one you have started with.


If anybody wants some suggestions of low hanging fruit just message me 
and I can suggest a hitlist.


--
Jonathan McHugh
indieterminacy@libre.brussels



Re: The Giraffe; the Pelican et al (was Re: The e(macs)lephant in the room and the Guix Bang)

2023-09-26 Thread indieterminacy

On 25-09-2023 22:35, Simon Tournier wrote:

Hi,

On Mon, 25 Sep 2023 at 14:13, MSavoritias  wrote:


So saying that the people who don't know guile or guix need to first
contribute docs is pretty ridiculous.


Why?  Could you explain more why it appears to you “ridiculous”?



My frustration seems to be that a lot of negative energy has been 
directed towards Emacs.
It has almost been straying towards anti elitist type discourse (that 
one is observing more increasingly in politics) -
*rather* than doOcracy style discourse that there is a problem and 
people are capable of autonomously resolving these things.


Emacs has not done something wrong here - it has merely had people who 
have had the capacity for exploration and reaching certain goals and 
insights then documenting their techniques within the Guix 
documentation.


It seems strange that people havent sooner expressed the concept of:
'well, I have this setup in /this/ editor, Ill put it up. Anybody else 
want to contribute and fill out gaps X Y and Z?'


It is worth noting that there has been a thread fork, starting this this 
subject title which is behaving more maturely and proactively:

RFC: add more setups to Guix docs

Similarly, there have been more sounds regarding Vim which are more 
proactive and constructive.


If people want a plurality of editors represented in the documentation 
they should be proactive about it, rather than lamenting and using 
divisive rhetoric.



Cheers,
simon


--
Jonathan McHugh
indieterminacy@libre.brussels



The Giraffe; the Pelican et al (was Re: The e(macs)lephant in the room and the Guix Bang)

2023-09-23 Thread indieterminacy
I would assume that people who dont use Emacs are entitled to document 
their experiences using their weapon(s) of choice within the Guix 
knowledge corpus.


Sure, consider and discuss governance and workflows... but people 
complaining that Emacs users have documented their techniques to a 
better standard than non Emacs users within an operating system's 
documentation is bordering on the ridiculous.


On 23-09-2023 10:58, paul wrote:

Dear Janneke,

On 9/23/23 09:37, Janneke Nieuwenhuizen wrote:

Nathan Dehnel writes:


I don't use emacs either (because it's so impenetrable)
Emacs might be somewhat different from what you know, but this is 
utter

bollocks.


Thank you for your opinion but it's just that: a subjective judgement 
based on your own episodic experience. Which is definitely valid but 
unrealistically shared by so many to be able to define Nathan's 
experience "utter bollocks".


I think this attitude (in my experience typical of GNU maintainers) 
where their way of doing computation is more blessed or holier or 
better sometimes really ruins the social interactions happening around 
Guix (which is the safest  community in the GNU project imho, probably 
also due to the distance they rightfully posed during the whole 
stallman drama).


It's especially problematic when people in power such as maintainers do 
not realize their role in the community. You have more power, probably 
due to your investment you have a clearer vision of where the project 
is going as well. You are supposed to be a role model for new users and 
contributors.



If he could learn, most anyone should be able to pick it
up.
People are still indenting their code manually today, etc... it's
ridiculous.
This behavior is not ok. Again, please, stop throwing your judgement on 
people. Potential users or contributors even.

Also, magit.


I use Emacs, love magit, I used to use it daily also at $day_job on 
Windows because it's just so good, but I can assure you most of Git 
users never heard of it and live their life pretty happily.


giacomo


--
Jonathan McHugh
indieterminacy@libre.brussels



ActtivityPub and Haunt

2023-09-19 Thread indieterminacy

In wider fediverse news,

The ActivityPub webpage is getting a rejig:
https://socialhub.activitypub.rocks/t/activitypub-rocks-portal-from-standards-movement-to-grassroots-fedi/3577

Im emailing, as within the technical discourse page is whether the tech 
stack should be moved away from (scheme based) Haunt (which powers 
Guix's website):

https://socialhub.activitypub.rocks/t/activitypub-rocks-portal-technical-discussion/3578

Naturally, Id be keen on continuing the furrow carved by Christine 
Lemmer-Webber and thought it would be worth seeing if there are any 
Lispers here who would be keen on volunteering, lest the platform goes 
Typescript.


At my end, I consider the benefits to i18n to be a useful synergy:
https://socialhub.activitypub.rocks/t/activitypub-rocks-portal-technical-discussion/3578/3

If you agree, Id love you contribute your input there.


--
Jonathan McHugh
indieterminacy@libre.brussels



Re: How can we decrease the cognitive overhead for contributors?

2023-09-03 Thread indieterminacy

On 03-09-2023 19:45, Ekaitz Zarraga wrote:

Hi,


I think this is the biggest hurdle. A lot of folks are using gmail and
its web based UI and it is just plain awful. I have made the switch to
using neomutt (and isync + notmuch + mstmp) and it has made emails a 
joy

to use and work with.


I use protonmail and they don't provide smtp access so I can't do git
send-mail as easy as other people do.

Protonmail has a bridge that deals with that but we don't have it 
packaged

because it's written in Go and it has TOO MANY dependencies.

This is not Guix's fault, but it's a problem Guix doesn't help fix 
either.

The only thing I can do with this is just copy-paste the result of git
format-patch and hope it's not a trouble for committers.

This doesn't mean I'm against the email based approach, in fact, I 
really

like it. The main problem I see is many people inside guix are not
sensible to people's problems and tastes.

Some people are forced to use tools for several reasons, too.

This is what I mean when I say many times emacs is kind of mandatory, 
and

this thread is kind of a demonstration of what I meant because the main
discussion evolved to: you can use this or that in emacs to ease the 
dev

experience.



One of the benefits of my being able to attend Guix Days was seeing 
peoples' workflows and stacks in person.


As such, one of my conclusions having (already) committed to Guix was 
that I needed to master Emacs prior to Guile

(Im highly flow orientated).


I don't think software we use is the main problem, but the fact that we
are not always sensible with other people's experience.

Cheers,
Ekaitz


--
Jonathan McHugh
indieterminacy@libre.brussels



Re: Maybe a way to get a few more developpers to work on Guix ?

2023-06-22 Thread indieterminacy
On 22-06-2023 15:13, Nicolas Graves via "Development of GNU Guix and the 
GNU System distribution." wrote:

https://www.bpifrance.fr/nos-appels-a-projets-concours/appel-a-projets-communs-numeriques-pour-lintelligence-artificielle-generative

Here's a call for proposal in French which could match a Guix project
with a focus on code generation through LLMs. This could itself help
Guix generate (and fix) package definitions.


Well if you are wanting to claw at that rabbit-hole:

This is a small EU AI fund for civil society not-for-profit 
organisations (<=30kEUR):

https://europeanaifund.org/newspublications/our-ecosystem-grants-programme-is-now-open/

If only Guix had a not for profit based in Europe that could provide 
such functionality
I heard about some hot new foundation however - perhaps somebody could 
reach out to them to see if they are interested?


Applications in for the end of July.


--
Jonathan McHugh
indieterminacy@libre.brussels



Re: London Guix meetup

2023-06-14 Thread indieterminacy

On 14-06-2023 00:27, Arun Isaac wrote:

Hi all,

We are organizing a casual Guix meetup in London. There is no specific
agenda. The intention is for Guix users and would-be Guix users in
London to get to know each other, and to put faces to names. No prior
experience with Guix (or Guile) is necessary. Newcomers are very
welcome!

Date: Tuesday, June 27 6–9 pm BST
Location: Barbican Centre, Silk Street, EC2Y 8DS, London
Mobilizon page:
https://mobilizon.fr/events/f18da336-07f5-489f-ae7c-394458668cea

Looking forward to meeting many of you for a pleasant summer's evening
by the fountains at the Barbican Centre! We will provide more exact
instructions on how to find us at the venue as we get closer to the 
date

of the event.

The date and time are almost confirmed, but we can nudge it a little if
you reply quickly (say, within a couple of days).

Regards,
Arun


Guix, Barbican, Mobilizon, thats exuding far too much class :)

Cant make it over but enjoy the chance to lock horns!

--
Jonathan McHugh
indieterminacy@libre.brussels



Re: Fwd: Greens/EFA internship

2023-05-12 Thread indieterminacy
usen (he/him)
IT Project Manager
alexander.sassmannshau...@europarl.europa.eu
Phone: + 32 228 32860

PHS02C027
Rue Wiertz 60
B-1047 Bruxelles


--
Jonathan McHugh
indieterminacy@libre.brussels



Re: The  Shepherd gets a service collection

2023-03-13 Thread indieterminacy

Thanks!


PS: It just occurred to me that we might as well rename the new
(shepherd service …) hierarchy to (shepherd sheep …) or even
(shepherd  …).


Its a shame that Directed Acyclic Graphs are part of Guix verbiage,
as otherwise Id be suggesting the name 'dags'.

(Dags are the yellowed clumps of wool that cluster around their 
netherregions.
There is a antipodean phrase, 'rattle yer dags!', to mean 'hurry up!', 
given

the clumps bouncing around when sheep move quickly.

--
Jonathan McHugh
indieterminacy@libre.brussels



Re: Emacs next variants

2023-03-12 Thread indieterminacy

On 12-03-2023 08:46, Liliana Marie Prikler wrote:

Am Sonntag, dem 12.03.2023 um 09:18 +0400 schrieb Andrew Tropin:

> As for tree-sitter-with/without-gtk, I have no opinion here.  We
> could try exporting package rewriters so that everyone can have
> their cup of tea, but maintaining one's own Emacs on the
> user/channel level ought not to be too difficult either.

I guess inheriting pgtk from tree-sitter looks most logical here: no
potential problems for X users, tree-sitter for wayland users. 
Updated the inheritance hierarchy.

For the future, I think we should be careful not to be too close to the
master branch.  emacs-next has thus far historically been a package to
try out things for the next release, not the one after that.  The
inclusion of a package variant with tree-sitter necessitated a change,
but for packages that don't need it we should go back to tailing pre-
releases as soon as reasonable.

Out of curiosity, where do such prescriptions concerning one tool or a 
set of tools get documented?


Or is it currently a situation whereby enough people with such 
acculumated knowledge and experience as in the vicinity when somebody 
wants to make relevant changes?


Thanks,

--
Jonathan McHugh
indieterminacy@libre.brussels



Re: Implementing Nix's command-not-found in Guix

2023-03-04 Thread indieterminacy

On 04-03-2023 22:42, Sarthak Shah wrote:

Hello Guix!

I'd like to implement something similar to NixOS's command-not-found
in Guix.
As you can see in the repository below, it contains a nix file which
is essentially a shell script which runs the second file, a perl
script, if the user enters a command which is not found on this
system. The perl script suggests names of packages containing said
command which it pulls from an SQL database.
https://github.com/NixOS/nixpkgs/tree/master/nixos/modules/programs/command-not-found
This would make Guix much more user-friendly; for example, new Guix
System users often struggle to figure out how to add the "clear"
command to their shell. command-not-found would immediately inform
them that it can be found in the ncurses package.

How would you recommend I go about implementing something similar for
Guix?
I have unfortunately been unable to find a database or anything
similar listing files outputted to /bin by each package, which would
in my opinion be the starting step.



While you wait for a better answer it may be worth trying out IDUtils 
(which if I recall Ludo recommended during a Guix blogpost).

```
 An ID database is a binary file containing a list of file names, a list 
of tokens, and a sparse matrix indicating which tokens appear in which 
files.


With this database and some tools to query it (described in this 
manual), many text-searching tasks become simpler and faster. For 
example, you can list all files that reference a particular #include 
file throughout a huge source hierarchy, search for all the memos 
containing references to a project, or automatically invoke an editor on 
all files containing references to some function or variable. Anyone 
with a large software project to maintain, or a large set of text files 
to organize, can benefit from the ID utilities.

```
https://www.gnu.org/software/idutils/manual/idutils.html

As such, even if it is not a complete solution it could allow you to 
identify or exclude things in advance of a more complete or bespoke 
solutions.


Happy hacking!

--
Jonathan McHugh
indieterminacy@libre.brussels



Building Bootloader Images for Owner-Controlled Computers

2023-02-15 Thread indieterminacy

I noticed this recommendation of a Nix tool.
Its not my specialism and Im only providing it for stimulation or as a 
conversation starter.


```
All the necessary components (coreboot, kernel, busybox-based initramfs 
with cryptsetup/lvm2) are stored entirely in the bootloader flash chip. 
This leaves no writable unencrypted media in the boot process when the 
flash chip's write protect pin is shorted.


Ownerboot extends coreboot with a new normal/fallback mechanism. The 
flash chip holds two complete copies of the bootloader; only a single 
page (the bootblock) is shared between them. Each image can be flashed 
and write-protected indepedently of the other. The fallback image can be 
selected by /dev/watchdog, nvramtool, or physical input (front-panel 
button on servers, stylus eject on laptops).


Because ownerboot is written in nix, it can ensure that these builds are 
deterministic. Ownerboot contains no binaries, and instantiates nixpkgs 
with config.allowNonSource=false; if you disable nix's binary 
substituter you are assured that all the software in your bootloader 
will be built from source on your local machine, all the way back to the 
compiler which compiles your compiler.

```
https://sr.ht/~amjoseph/ownerboot/

--
Jonathan McHugh
indieterminacy@libre.brussels



Re: Packages grow, no longer fit on a 

2023-01-18 Thread indieterminacy

On 18-01-2023 03:41, kiasoc5 wrote:

On 1/17/23 11:25, Ludovic Courtès wrote:


There are slight increases of each and every package, and there are 
also
new big dependencies being pulled in for what, from a distance, 
doesn’t

really add functionality.

Examples include libgccjit in Emacs and mozjs in polkit.

In a way, that’s the “unavoidable” (?) evolution of software, and the
problem extends largely beyond Guix.

Still, even compared to contemporary distros, we’re doing pretty bad.
Debian most likely does better, and people often cite Alpine as the
distro providing the smallest packages.  Do we have figures?  What can
we learn from them?  What tradeoffs to they make?


We can achieve smaller packages by splitting them more. Here is my 
guess of the amount of package splitting by some distros, from least to 
most:


Slackware < Arch < Fedora < Debian < Alpine

- Slackware I believe does not split anything, everything is included.
- Arch splits packages on a case by case basis (QEMU for example)
- Fedora typically splits packages into package X and package X-devel, 
where X contains development headers, but usually not more.
- Debian splits packages more aggressively. For example libreoffice is 
split into 6 packages, 1 for each suite (draw, write, etc). And 
programs may be separated from their outputs (eg zstd and libzstd are 
split)
- Alpine splits even more aggressively, they also split out man pages 
and shell completions.


We may wish to utilize multiple package outputs to a greater extent. 
Some Guix packages already have bin, doc, and lib outputs. We could 
make it a policy to split this for all packages.


I also wonder how much of the space is taken by debug output. Would 
making graft derivations substitutable help?


https://lists.gnu.org/archive/html/help-guix/2022-10/msg00225.html


I think Guix is missing a trick here.

All this effort to chain everything with inputs and yet we are using 
conventional 'package-boxes'.


Why not 'Dutch Auction' it and set a maximum amount of inheritants 
within one package file and then iteratively lower the threshhold (over 
time!) until there are noises in the guix-devel ML

that this principal is being taken far.

The outcome could allow more of a layers and multifaceted representation 
of tools and applications that give more of a distinction between lower 
level utilities and applications.



--
Jonathan McHugh
indieterminacy@libre.brussels



Re: GNU Guix 1.4.0 released

2023-01-03 Thread indieterminacy

On 03-01-2023 19:42, Joshua Branson wrote:


What areas does guix need more documentation?  To answer that question
for myself, I might say more gexp examples.  Though unmatched-paren is
working on a series of blog posts to dive really deep into that topic.



Guix should use more em dashes in the documentation — gets coat

--
Jonathan McHugh
indieterminacy@libre.brussels



Re: GNU Guix 1.4.0 released

2023-01-03 Thread indieterminacy

On 03-01-2023 19:42, Joshua Branson wrote:

indieterminacy  writes:


On 03-01-2023 10:08, Ludovic Courtès wrote:

Hi!
Maxim Cournoyer  skribis:

Congrats, and yay!  It's a hell of a release! :-) Let's try to make 
more
punctual ones from now on, and also try to lower the amount of 
manual
labor producing one incurs (by streamlining the process), as 
speaking

for me, this was one of the reasons I kept putting it back.

Definitely, let’s see how we can make the process smoother.
In my experience though, a lot of the work is coordination: keeping
track of what needs to be done, open bugs, calling for testing, etc.
I think we should start thinking about the next release, forming a
small release team, and I’ll be happy to mentor!
Thanks,
Ludo’.


Out of curiosity, have you ever approached developing a release from 
the

perspective of doing documentation first?

For example, test driven approaches like BDD or TDD have allowed the
expectations and examples to be worked out first and the the 
implementation

built to form it.

More practically, theres a recent thread concerning different 
approaches and
priorities concerning syntaxes. Also, if during 1.5 there were 
articulations
regarding how existing behaviour does not conform with desired 
behaviour then it
may become easier to divide up tasks into chunks for teams or 
individuals to

work on.

With idealised documentation in place this could provide a point of 
motivation
for developers and avoid any fatigue once the solution is in place as 
the
/drudgery/ of explaining how things work and how they can be used had 
been

worked out in advance.


What areas does guix need more documentation?  To answer that question
for myself, I might say more gexp examples.  Though unmatched-paren is
working on a series of blog posts to dive really deep into that topic.



Over the years in general (ie for whatevever in programming), I tend to 
find documentation examples to provide the easiest way of explaining 
things and this can create shortcomings as creating or maintenan
FWIW, I always need multiple examples for any programming domain but 
this was not the point I was trying to make.
(in any case I learn systems through breaking them, it tends to give me 
a better understanding of systems).


For an idea about documenting before a project, it may be good to create 
diagrams,

as some (like myself) are visually orientated.
Not only can it be a visual assistance, it can also aid recall.
In terms of a project, this may widen the talent pool and improve 
alignment.


In any case, while I cannot comment on the tactics within the OpenBSD 
community
I always considered it a noble thing that no improvements we put into 
their OS

until the features were correctly documented.



While OpenBSD does a pretty good job of documenting everything, I would
also chime in and say that Guix does a fantastic job of translating the
existing documentation into other languages. What do we have
documentation in English, German, French, and significant parts in
Russian and some asian languages. That's pretty stellar!


Yes, indeed!

Seeing this talk in Paris made it very clear how much this is being 
treated seriously.

https://10years.guix.gnu.org/program/#let-s-translate-guix-together-

Thanks for making this point.

Perhaps some people from different language communities require 
assistance in order to build

next generation Guix functionality.
It may be worth lowering the cost of them articulating their needs, 
including
which section within the documentation requires focus for a specific 
language.




Thanks everybody with your work on 1.4.0 !


--
Jonathan McHugh
indieterminacy@libre.brussels



Re: GNU Guix 1.4.0 released

2023-01-03 Thread indieterminacy

On 03-01-2023 10:08, Ludovic Courtès wrote:

Hi!

Maxim Cournoyer  skribis:

Congrats, and yay!  It's a hell of a release! :-) Let's try to make 
more

punctual ones from now on, and also try to lower the amount of manual
labor producing one incurs (by streamlining the process), as speaking
for me, this was one of the reasons I kept putting it back.


Definitely, let’s see how we can make the process smoother.

In my experience though, a lot of the work is coordination: keeping
track of what needs to be done, open bugs, calling for testing, etc.

I think we should start thinking about the next release, forming a
small release team, and I’ll be happy to mentor!

Thanks,
Ludo’.


Out of curiosity, have you ever approached developing a release from the 
perspective of doing documentation first?


For example, test driven approaches like BDD or TDD have allowed the 
expectations and examples to be worked out first and the the 
implementation built to form it.


More practically, theres a recent thread concerning different approaches 
and priorities concerning syntaxes. Also, if during 1.5 there were 
articulations regarding how existing behaviour does not conform with 
desired behaviour then it may become easier to divide up tasks into 
chunks for teams or individuals to work on.


With idealised documentation in place this could provide a point of 
motivation for developers and avoid any fatigue once the solution is in 
place as the /drudgery/ of explaining how things work and how they can 
be used had been worked out in advance.


In any case, while I cannot comment on the tactics within the OpenBSD 
community I always considered it a noble thing that no improvements we 
put into their OS until the features were correctly documented.


Thanks everybody with your work on 1.4.0 !

--
Jonathan McHugh
indieterminacy@libre.brussels



Re: Stratification of GNU Guix into Independent Channels, X-mas and Guix days!

2022-12-25 Thread indieterminacy

On 24-12-2022 09:37, Pjotr Prins wrote:

tis like packages under a X-mas tree

guix xmas add games
guix xmas add tex
guix xmas add paint
guix xmas add payamas


I just guix pulled version 1.4 out of a cracker.
That will make for a happy new year

Thanks all!

Happy holidays everybody!


Jonathan



Winding down of Fosshost

2022-12-04 Thread indieterminacy
Unfortunately Fosshost is being wound down, due to organistional 
failings at the executive level.


https://fosshost.org/

Given Fosshost's place in the ecosystem: is this something which 
requires mitigating at the Guix end?


--
Jonathan McHugh
indieterminacy@libre.brussels



Re: issue tracking in git

2022-11-23 Thread indieterminacy

On 23-11-2022 15:19, Giovanni Biscuolo wrote:

[...]
I saw your «L'Union Qiuy Fait La Force» presentation at Ten Years of
Guix [1] and I have to admit I still have to "digest" it, because I
still do not understand the overall architecture (see below).



As I (probably) mentioned it tha talk Qiuy is bourne from the desire to 
form a notation that sits between semantic and linguistic groups and is 
simultaneously positioned in the central position of the keyboard.


Here is a mail covering some pertinent themes
https://list.orgmode.org/a24dc6635138897d3fe978509be3a5cb@libre.brussels/

The problem is not to see the conception from the perspective of 
architectures but more in terms of a discipline or something akin to 
thermodynamics.


In any case, I have done other talks:

Classic Gemini presentation (evaluating it from the perspective of 
complexity - using Guix package details to demonstrate relative 
complexity)

https://www.youtube.com/watch?v=zyTC4QWGCQg

Impressionist talk detailing the tools and formats from the perspective 
of syntaxes

https://archive.fosdem.org/2022/schedule/event/minimalsyntaxes/

I gave multiple other talks this year but they need uploading.
I shall keep you informed.


indieterminacy  writes:

[...]


FWIW, Ive been working on Gemini and issue trackers in parrallel to
Genenetwork.

Arun did such a great job with a minimalist setup that I thought it 
more

proper to create a bigger ladder (given the reach of all the domains
which Tissue provides(.

I have two main strands:

Firstly, I have been combining Gemtext's terse syntax with that of the
Emacs-Hyperbole format, Koutliner, as well as the
"recursive-modelling-language" I have been developing Qiuy.

https://git.sr.ht/~indieterminacy/1q20hqh_oqo_parsing_qiuynonical/

As a consequence, it has grown into something different and more
complex. I need to trim this, especially as the results of some 
sprints

but once I refactor it it shall be a lot more solid.

Secondly, I have been returning to Gemtext from the perspective of Git
diffs, with the idea to generate RDF perspectives one each revision 
per

file and then use RDF calls to resolve more complex queries.


RDF representations of diffs (commits?) so we can combine this 
knowledge

with others (represented in RDF) AFAIU is great: (open) linked data for
knowledge management

IMHO RDF is still a little bit underestimated :-D



Indeed!

Qiuy should have a bright future in relation to RDF (a lot of grunt work 
however)


Im still sophomore in this domain but Im wrapping up enough of my other 
things to wade into this properly.


I have been liasing with somebody with regards to doing RDF activity 
during Guix Days 2023, Brussels (early February) - come join us!



https://git.sr.ht/~indieterminacy/1q20twt_oq_parsing-commits_txr

I shall be folding the logic of the first tool into the second
(carefully). I need a bit more time to do this to be fully satisfied.


what about gNife?

https://git.sr.ht/~indieterminacy/5q50jq_oq_configuring_emacs
--8<---cut here---start->8---

gNife, an Emacs environment for high throughput issue-tracking and
knowledge-management - utilising GemText, Koutliner and Qiuy

--8<---cut here---end--->8---


Well spotted!

Ive positioned the Icebreaker architecture to have a strong interface 
end (Qiuy originated from packaging my complex Vim infrastructure).


It is integral to the project development but optional for users.


is it still relevant or do you plan to substitute it with the tools
listed above?



Its a gestalt thing, just another viewpoint of the same discipline.

It remains untouched given some brutal family traumas.
Since switching to a modern and more secure laptop I havent had the 
chance to overcome some niggles.
I plan to develop this over time, though I would prefer to refactor it 
all within Guix Home (as well as my whole setup with regards to system 
crafting).


There are a lot of cool things which the Qiuy annotations are capable of 
doing when twinned with Emacs-Hyperbole - search for them in that repo 
for ideas.



There are some other tools floating around my forge (concerning hash
trees for different interpreters and rdf from the perspective of 
project

management), its mainly in TXR, Gawk and eLisp (though I will be doing
more with respect to Guile for these areas over time).


Looking at the Icebreaker project descriptions:

1. https://nlnet.nl/project/Icebreaker/

2. https://portal.mozz.us/gemini/icebreaker.space

I can undertand the design principles of the tools you are developing
and I'm really impressed with the completeness of this approach with
knowledge management, unfortunately I miss the overall architecture and
some important detalils that allows me to completely understand how to
use (or try to contribute to, one day) this tools: do you plan to add
some more documentation soon?


The lack of documentati

Re: issue tracking in git

2022-11-23 Thread indieterminacy

Hi Giovanni,

On 23-11-2022 11:29, Giovanni Biscuolo wrote:



please are there updates about this initiative?


Yeah, issue tracker lives here:

=> https://issues.genenetwork.org/

The actual issues are in gemini format and can be served with a gemini
server. The HTML parser+renderer is written in Guile by Arun

=> https://git.systemreboot.net/tissue


Homepage is https://tissue.systemreboot.net/

Wow!  Very interesting project, it deserves more visibility! (why did I
miss its existance?!? :-O )

Any other tissue user in this mailing list?



FWIW, Ive been working on Gemini and issue trackers in parrallel to 
Genenetwork.


Arun did such a great job with a minimalist setup that I thought it more 
proper to create a bigger ladder (given the reach of all the domains 
which Tissue provides(.


I have two main strands:

Firstly, I have been combining Gemtext's terse syntax with that of the 
Emacs-Hyperbole format, Koutliner, as well as the 
"recursive-modelling-language" I have been developing Qiuy.


https://git.sr.ht/~indieterminacy/1q20hqh_oqo_parsing_qiuynonical/

As a consequence, it has grown into something different and more 
complex. I need to trim this, especially as the results of some sprints 
but once I refactor it it shall be a lot more solid.


Secondly, I have been returning to Gemtext from the perspective of Git 
diffs, with the idea to generate RDF perspectives one each revision per 
file and then use RDF calls to resolve more complex queries.


https://git.sr.ht/~indieterminacy/1q20twt_oq_parsing-commits_txr

I shall be folding the logic of the first tool into the second 
(carefully). I need a bit more time to do this to be fully satisfied.


There are some other tools floating around my forge (concerning hash 
trees for different interpreters and rdf from the perspective of project 
management), its mainly in TXR, Gawk and eLisp (though I will be doing 
more with respect to Guile for these areas over time).


Kind regards,


--
Jonathan McHugh
indieterminacy@libre.brussels



Re: Guix Goals: One Hackable Developer Tool To Rule Them All

2022-10-13 Thread indieterminacy
Sorry if this comes off as facetious (because this is an interesting 
proposal) but hasnt Make cornered a lot of these usecases well enough?


On 13-10-2022 15:56, pinoaffe wrote:

Hi,

I think that (if done well) this would greatly simplify my workflow in
many software projects, so I think it's a good idea.

In the rest of my email, I more or less assume that there is a
one-to-one correspondence between software projects and guix packages,
even though this is clearly not the case.  I nonetheless make this
assumption since it is the case (or can be made the case) for many of
the software projects on which one might want to work using guix.

jgart  writes:

The various language ecosystems have their own linters, formatters,
typecheckers, repls, test runners, etc.

What if Guix could manage them all?

`guix lint` in a python project would run mypy.
`guix lint` in a haskell project would run hlint.
`guix lint` in an erlang project would run dialyzer.


These would require some sort of configurability, since most
languages/projects have not just one linter.  Even if there's a
"monopoly" there might be different settings/versions of said linter.

Do you propose that such configuration is added to packages?  Or should
this go somewhere else?

Furthermore, in many projects there are various different languages at
once (e.g., a python webapp with client-side javascript and css), so it
would probably be useful to mirror the build-phases approach in guix
packaging.  It might even be possible to set up (somewhat) sane 
defaults

based on the build-system used by the local project.


`guix fmt` in a python project would run black.
`guix fmt` in a haskell project would run ormolu.
`guix fmt` in a erlang project would run erlfmt.


My comments regarding linters apply here as well

`guix repl` in a python project would run ptpython or some other 
configured repl.

`guix repl` in a haskell project would run ghci.
`guix repl` in a erlang project would run erl.


This should be fairly easy to implement, assuming that there is just 
one
repl associated to each project one might want to use this command 
with.
It should (imo) be possible to configure/pass arguments to the repl on 
a

per-project basis and whenever you run `guix repl`


`guix test` in a python project would run pytest or unittest.
`guix test` in a haskell project would run hunit.
`guix test` in a erlang project would run eunit.


Should I read this as a proposal to add an extra command to build (and
test) the local project's guix package, or do you propose to make this
do something different?  Because I'm not sure the latter would be a 
good

idea, if there is a need to do testing in some other way than currently
possible I'd think it would be more valuable (and more clean) to extend
the current testing facilities to incorporate this.

`guix run` in a python project could start a flask app listening on a 
particular port.

`guix run` in a ruby project could start a puma server.
`guix run` in a haskell project could run a pre-configured script or 
Main.hs

`guix run` in a erlang project could start a cowboy server.


I'm not sure how widely this may be applicable, since many projects or
packages don't have just one way to run them, they may even contain
several different executables or modules.


The idea would be to have Guix provide a configurable CLI wrapper
subcommand around all language ecosystem developer tools. In other 
words

it's the same Guixy thesis applied to developer tooling. I think this
could take the Guix developer experience to the next level.


Kind regards,
pinoaffe


--
Jonathan McHugh
indieterminacy@libre.brussels



Re: Could Guix System eventually run on top of HyperbolaBSD ? slightly off topic

2022-07-11 Thread indieterminacy

On 12-07-2022 00:44, Joshua Branson wrote:

Sorry for starting this centuries flame war, but I can't help but be
more and more impressed with OpenBSD.  It seems ideal for small scale
servers (aka NOT large databases).  It tries really hard to be secure 
by

default and has great documentation.  With OpenBSD it is easy to set up
a static website (httpd) and your own email server (openSMTPD, spamd,
and pf).

I would argue that the average user will find OpenBSD to be easier to
secure than the Linux kernel.

The Hyperbola GNU/Linux team recently announced that they would ditch
Linux for OpenBSD. They are using the OpenBSD kernel and the OpenBSD
userland. And they are GPL-ing all of the code. It sounds like they 
will

have to replace 20% of said code.

https://www.hyperbola.info/

Though the website currently says "Donate to keep the project alive".
So that's not super reassuring...

Anyway, assuming that the HyperbolaBSD team accomplishes their goals,
would Guix System or Guix ever be able to run on HyperbolaBSD? I know
that Guix System ties itself to glibc. HyperbolaBSD does NOT use glibc
and probably never will. Would it be feasible/desireable for Guix & 
Guix

System to support a BSD kernel and alternative libc?  What about other
OSes?

Thanks,

Joshua

P.S.  I just recently came accross this guide for getting started with
OpenBSD on servers: http://si3t.ch/ah/en/toc/  I am really impressed
with how easy/awesome OpenBSD is.


I recall dicussing this topic area with you last year:
https://lists.gnu.org/archive/html/help-guix/2021-06/msg00080.html
https://lists.gnu.org/archive/html/help-guix/2021-06/msg00082.html
https://lists.gnu.org/archive/html/help-guix/2021-06/msg00083.html
https://lists.gnu.org/archive/html/help-guix/2021-06/msg00084.html
https://lists.gnu.org/archive/html/help-guix/2021-06/msg00085.html
https://lists.gnu.org/archive/html/help-guix/2021-06/msg00086.html

Im pleased that the Hyperbola community has been making strides.

Hopefully I can one day have an OpenBSD kernel overseeing Guix SD.


Kind regards,


Jonathan McHugh



Re: how to write services

2022-06-18 Thread indieterminacy

Hi Maxime,

On 18-06-2022 14:23, Maxime Devos wrote:

indieterminacy schreef op za 18-06-2022 om 13:53 [+0200]:
Additionally, based upon a decent demonstration on LMDB, I realised 
that
my annotation system makes it more feasible to adapt documents into 
LDIF

database-like-files (is that the correct terminology Maxime?) -
potentially turning each document into an LDAP ready database.


If your asking me, I don't know.  What's LDAP doing here?  Isn't LDAP
about authenticating users, which doesn't seem relevant to the
documentation effort?  If this is about databases: is the exact
database format relevant, or would any do -- e.g., Guix uses SQLite in
some places, will SQLite do?



The prod was a little tongue in cheek, more of a nod to the thread 
discussing file-like aspects of computing.


I have no focus on LDAP nor authentification per se (though my own 
annotations would be able to map some of the parameters.


My understanding is that LDIF can hold keys and values and as such is 
capable of representing concepts (or at least pointing to them).

As such I fancy a good 'ol hack.

In any case I shall be experimenting and breaking things and I should be 
treated at this point as speculating.


I have no desire for substituting existing Guix databases - though I 
would contend that knowledge-management has different requirements and 
needs than system-maangement or coding. As such different toiling and 
tooling is advisable.



And the text above seems about databases and RDF, but there appear to
be missing some things:

  * what's the RDF and database for?  As I understand it, it's for
something about documentation and terminology, but currently it's
super vague.

  * what stuff goes in the RDF and database, and what documents are you
speaking of?  The Guix manual?  All the package definitions, to use
them as examples?  The mails in the ML?  Manually written things?
Likewise, how is this database written or generated?

  * How will this RDF be used?  I mean, RDF can be flexible (see e.g.
Wikidata), but someone has to actually write some applications that
make use of the information, otherwise the fancy RDF is useless.

  * How is the RDF an improvement on the TeXinfo documentation?
I guess I'm missing something important here, but I prefer reading
TeXinfo documentation over RDF.

Greetings,
Maxime.


The RDF is something experimental based upon feedback from my own 
project.


Suppose we return to Brian's (apt) analogy concerning buildings and 
building materials:


I would hazard that there would exist chains across triples which would 
permeate from the concept stages of a building down to the point whereby 
nails are contextualised (including with regards to safety; purchasing; 
type; context; implementation).


Guix users should be able to build and resolve without the expertise of 
all layers and abstractions pertinent to Guile and our community.



At my end, Ive spent a considerable time creating loose annotations - 
which I inject everywhere.


Here is an example of task orientated annotations operating within my 
Emacs config:

https://git.sr.ht/~indieterminacy/5q50jq_oq_configuring_emacs/tree/master/item/init.el#L138

and for policy positions:
https://git.sr.ht/~indieterminacy/5q50jq_oq_configuring_emacs/tree/master/item/init.el#L155

These annotations recurse through my entire system, for instance 
operating as directory prefixes for specific concerns:

https://git.sr.ht/~indieterminacy/5q50jq_oq_configuring_emacs/tree/master/item/rqr_organise
https://git.sr.ht/~indieterminacy/5q50jq_oq_configuring_emacs/tree/master/item/iq_policy

My own bundle of knowledge repos can be found just from searching for 
'3q' references within my system.

Some can be found here (I will upload some Guix repos eventually)
https://git.sr.ht/~indieterminacy/?search=3q

Feel free to root around for approaches I have been taking to document 
and plan in modern ways.


Similarly, these annotations can operate literate-programming style 
within comments.


The fact that I can operate within Emacs-Hyperbole's Koutliner (block 
orientated) filetype to provide hierarchy and hyperlinking keeps me in a 
very terse and tactile state everywhere.


Currently I am able to grok my system with ease.
Ive been advised that outputting the interpretation of these files into 
RDF would be advantageous to make use of the graph orientated and 
folksonomic qualities of Icebreaker's approach.


FYI, I did a Fosdem talk. About 21 mins in some of the concepts coalesce 
into an area more pertinent with regards to RDF themes

https://fosdem.org/2022/schedule/event/minimalsyntaxes/

Im hoping that RDF can mitigate some of the chaos from users personal 
behaviours. My work operates more akin to body-language and philology as 
opposed to more classical approaches to computer-programming and 
computer-science.


I personally use my annotation system everywhere and adapt it for my own 
needs. I think of it like

Re: how to write services

2022-06-18 Thread indieterminacy

Hello Brian,

On 16-06-2022 15:09, Brian Cully via "Development of GNU Guix and the 
GNU System distribution." wrote:

caton...@gmail.com writes:


I asked for indications about the process (what magic to use in the
REPL)


My experience with Guix, in general, is that the REPL isn't
particularly useful for any task beyond very simple testing (eg, what
are the contents of ‘%base-services’). It's a shame, but I suspect
it's like this because it's hard to make it more functional, and there
are more important problems to work on. Even though I would much
prefer to do almost all work with a REPL, I have not invested the
effort into figuring it out because I don't have the time or
expertise, currently. I can't fault anyone else for making similar
choices.


This should be covered in the cookbook


I agree. The cookbook could use a lot of work. Guix's documentation
suffers in the middle ranges. There's a lot of very high level
overview, and all the low level bits are reasonably documented, but
there's very little on how to integrate them.


Personally, Im somebody who requires examples to hack off.
As many as possible, to compare and contrast concepts and feed my 
imagination.


I wish I could reach for any API to explore and extrapolate with the 
same ease as I do with a dictionary.
Probably a cognitive failing from me getting into coding so late in 
life.


As with many things, I rely on conversational models to wash over me, so 
MLs have been useful as filling gaps - though I have to be patient 
waiting for solutions and ideals to reveal themselves over time.


The Guix mailing lists are hugely important to serve as the bridge 
between higher and lower level concepts.
This method may not be optimal to or known by some hoping to users 
hoping to utilise Guix further however.


Similarly, Im sure IRC/Matrix is useful, though I find the volume of the 
official (Matrix?) room to be like a firehose with its volume and too 
much to passively observe.



If we were building a house, it'd be like having instructions that
say: our house is made out of rooms. Then being given a bill of
materials for all the different types of nails, boards, etc that can
be used to build a house. There's no (or almost no) instructions for
how to use those parts to build the shepherd service room, or how to
connect the activation plumbing, etc. Unfortunately, those are the
instructions that are most important, I think.


I like the analogy.

I feel that there is an information-governance issue in terms of 
competencies, knowledge and requirements not fully intersecting.


Its not only because of the scale of the Guix community and as you 
mention the weaker middle layer but problems of time and perspective 
making it hard for specific solutions to find troubled users with 
minimal costs.


In many respects its not only a problem of documenting and publishing - 
there needs to be something in place to help orchestrate connections in 
a way akin to pollination.


Like the moribund efficacy of forums such as GitHub Issues, I do feel 
that the 'classic' model of SEO based search does not serve our 
individual or collective requirements.


I have been nudged into considering RDF more proactively, it would be 
super if Guix related knowledge could be represented in a semantic form, 
as it could be that triples can serve to provide 'knowledge-corridors', 
which connect up aspects of the ecosystem in ways unintended by 
contributors.



I have been keeping notes on my process of learning Guix in the hopes
of starting something along these lines, but I'm not sure I'll ever
have the time to get around to it; and I'm not much of a writer,
besides.

You are a cogent and thoughtful writer so please write more and tell 
people when you make progress!


My own research project, Icebreaker, has focused on trying to utilise 
GemText and augment it with minimal syntaxes to support domains such as 
knowledge-management and kanban boards.


GemText's minimal syntax could allow you to write your thoughts down 
unimpeded and can be interpreted with ease.


See Genenetwork's own approach to such concepts to see how such habits 
can build out over time:

https://github.com/genenetwork/gn-gemtext-threads

Midway through my NLNet grant (once a move past a hospice related 
issue), Ill be integrating two interpreters covering formats (GemText 
and Koutliner) and my own annotation system (Qiuy).

https://git.sr.ht/~indieterminacy/1q20hqh_kq_parsing_gemtext
https://git.sr.ht/~indieterminacy/1q20hqh_oqo_parsing_glean

For me, this has put me in a situation whereby I can annotate anywhere 
and soon I shall have a graph of resources to inspect and extrapolate.


To aid others comprehension and interoperability I shall be trying to 
map my opaque seeming annotation syntax into RDF, hopefully something 
positive can come from that phase.


Additionally, based upon a decent demonstration on LMDB, I realised that 
my annotation system makes it more feasibl

Re: Teams

2022-06-05 Thread indieterminacy

FWIW,

I just want to commend whoever is packaging TexLive.

My last update covered March of this year - no mean feat given that it 
is a 3.4GB package aggregate.


(sorry I cant do more direct contributions for Guix atm, looking forward 
to such an honour eventually)


On 04-06-2022 14:07, Ricardo Wurmus wrote:

Hi Guix,

this is not a new idea[1]: let’s add a page to the website that lists 
teams

and a mail alias for each of the teams.

For example, the “R team” consists of people familiar with how R
packaging works in Guix, e.g. Simon and myself.  There would be an 
alias

“guix-tea...@gnu.org”.  People with questions about R in Guix could
write an email to that alias.

Mumi could also send email to guix-tea...@gnu.org to remind them about
patches relating to R / Bioconductor / CRAN, etc.

Maintainers could write to these teams before releases to ask if there
are any obstacles to a release.

As a first step I’d suggest collecting teams, setting up the email
aliases, and updating the website to show the existing teams.  Here’s
a draft of three teams:

* R team
Simon Tournier
Ricardo Wurmus

* Java team
Julien Lepiller

* Rust team
Efraim Flashner
Aleksandr Vityazev
Arun Isaac
John Soo
Maxim Cournoyer
Nicolas Goaziou
Tobias Geerinckx-Rice

What do you think?


--
Jonathan McHugh
indieterminacy@libre.brussels



Re: GNU Mes 0.24 released

2022-05-09 Thread indieterminacy


Larry Doolittle  writes:

> Ludovic and friends -
>
> On Sun, May 08, 2022 at 12:34:47AM +0200, Ludovic Courtès wrote:
>> Jan Nieuwenhuizen  skribis:
>> > Mes has now been ported to M2-Planet and can be bootstrapped using
>> > stage0-posix[0], starting from the 357-byte hex0 binary of the
>> > bootstrap-seeds[1], as was promised at FOSDEM'21[2].
>> This is amazing… congrats to you & everyone involved!  You made it!  :-)
>
> +1
>
>> The common objection is: “you’re building from source but you’re not
>> gonna audit all that source code anyway, so why bother?”  [...]
>> Supply chain security is a spectrum and I think this achievement changes
>> what we can expect and demand.
>
> I've had this conversation before, any my analogy is to the
> three legs of a stool.  Bootstrapped toolchains, reproducible builds,
> and source-code audits.  Each one is arguably useless without the others,
> but taken together, you've actually accomplished something meaningful.
> Maybe I should also include "cryptographically signed artifact distribution"
> on that list.
>
>  - Larry

With works this sturdy then even two tool domains suffice as a fine and
versatile stepladder...

Great job everybody!


- Jonathan



Re: Excessively energy-consuming software considered malware?

2022-04-04 Thread indieterminacy


Attila Lendvai  writes:

>
> and especially so for inflation, which is straight out a tax that
> siphons the purchasing power from people who hold cash equivalents
> (i.e. the poor), to the people who own assets (i.e. the
> wealthy)... who are also closer to the source of new money, and
> therefore spend it first on the market, when it has not yet elevated
> the prices. see the Cantillon effect:
> https://en.wikipedia.org/wiki/Richard_Cantillon#Monetary_theory
>

With respect, please dont justify philosophies of restrictive supply
when writing on technichal forums predicated on ideals of non rivalrous 
behaviour.

Otherwise, I enjoyed the post :)


Jonathan



Re: Formalizing teams

2021-12-24 Thread indieterminacy
Good catch!

TBH, I did wonder whether the feudal eptimology of the English word may
raise eyebrows.

Hartmut Goebel  writes:

> Am 23.12.21 um 22:51 schrieb Jonathan McHugh:
>> I reckon 'coterie' is more elegant a term:
>
> IMHO we chould not use this term.
>
> The German translation is "Seilschaft", "Klüngel" - both of which have
> negative meaning: Working together to the benefit of the members of
> the group only - ignoring common interest.




Re: Convention for new “guix style“?

2021-12-22 Thread indieterminacy
I wonder if there has been any progress made by Arun Isaac with his program, 
Semantically meaningful S-expression diff

https://archive.fosdem.org/2021/schedule/event/sexpressiondiff/

```
Traditional diff implementations, such as GNU Diff, treat files as a
flat list of lines. A tree-diff algorithm that can produce minimal and
semantically meaningful output is a surprisingly more difficult and
complex problem. In fact, for unordered trees, the problem is NP-hard.
```


Jonathan

Liliana Marie Prikler  writes:

> Hi,
>
> Am Mittwoch, dem 22.12.2021 um 14:05 +0100 schrieb zimoun:
>> [...]
>> --8<---cut here---start->8---
>>     (inputs
>>  (list libx11 libiberty ;needed for objdump support
>>    zlib))   ;also needed for objdump
>> support
>> --8<---cut here---end--->8---
>> 
>> when the comments apply to only one line as it was:
>> 
>> --8<---cut here---start->8---
>>  `(("libx11" ,libx11)
>>    ("libiberty" ,libiberty)   ;needed for objdump
>> support
>>    ("zlib" ,zlib)))   ;also needed for
>> objdump support
>> --8<---cut here---end--->8---
>> 
>> Other said, this looks better:
>> 
>> --8<---cut here---start->8---
>>     (inputs
>>  (list libx11
>>    libiberty ;needed for objdump support
>>    zlib))    ;also needed for objdump support
>> --8<---cut here---end--->8---
>> 
>> Obviously, we could come up a rule depending on comments, numbers of
>> inputs, length, etc.  It was not the case with the old style when
>> nothing prevented us to do it.  Because one item per line is, IMHO,
>> easier to maintain.
> For me personally, this illustrates two things.  First, the weakness of
> line comments over preceding line comments ad second the verbosity of
> old input style.  You could easily write 
>   (list libiberty zlib) ; for objdump
> in the new style, which you couldn't before.  Therefore, I wouldn't
> mandate a "one line per input" restriction, as the only reason it was
> ever imposed was a historical limitation.
>
>> Consider the case,
>> 
>>     (inputs
>>  (list bar foo1 foo2 foo3 foo3 foo4))
>> 
>> then another ’baz’ inputs is added, do we end with,
>> 
>>     (inputs
>>  (list bar foo1 foo2 foo3 foo3 foo4
>>    baz))
>> 
>> to minimize and ease reading the diff, or do we end with,
>> 
>>     (inputs
>>  (list bar
>>    baz
>>    foo1
>>    foo2
>>    foo3
>>    foo3
>>    foo4))
>> 
>> ?  And the converse is also true, consider the case just above and
>> what
>> happens if foo1, foo2 and foo3 are removed.
>> 
>> One item per line solves all these boring cosmetic questions.
>> 
>> Therefore, I propose to always have only one item per line.  To be
>> concrete, for one item:
>> 
>>   (inputs
>>    (list foo))
>> 
>> or not
>> 
>>   (inputs (list foo))
>> 
>> And for more than one item:
>> 
>>   (inputs
>>    (list foo
>>  bar))
>> 
>> This would avoid “cosmetic” changes when adding/removing inputs
>> and/or comments.
> In my personal opinion, everything else being equal, changes to
> inputs/native-inputs/propagated-inputs should (almost) always be seen
> as changes to the field, as would be documented in the ChangeLog.
>
> I think the usual scheme coding guidelines also apply well to inputs,
> e.g. inline short stuff, but don't do funky things when the lines grow
> unnecessarily long.
>
> Now I am putting aside the issue of tooling here, because I think that
> humans ought to be able to look at the diff and see that something's
> wrong and correct it, but as others point out an "I don't touch
> comments" approach would be very fine by me.
>
> Cheers




Re: Formalizing teams

2021-12-22 Thread indieterminacy
Its certainly worth developing more formal clusters.

It would be wise to try and make concerns and research interconnected -
lest we create silos that communicate with other groups less.


Jonathan McHugh

Jack Hill  writes:

> On Wed, 22 Dec 2021, Ludovic Courtès wrote:
>
>> Hello Guix!
>>
>> I’ve been looking at our guix-patches backlog, at the great
>> contributions we get but that stick there for too long, certainly
>> discouraging people, and also at non-code initiatives (meetups, Guix
>> Days, Outreachy, documentation, etc.) that we as a project could often
>> support and encourage better, wondering how we could improve.
>>
>> I’ve been inspired by how the Rust folks approach these issues, in
>> particular as described here:
>>
>>  https://blog.m-ou.se/rust-is-not-a-company/
>>
>>  https://www.youtube.com/watch?v=T1t4zGJYUuY
>>(RacketCon 2019 talk by Aaron Turon)
>>
>> One idea that I like is to bring structure to the group, or rather to
>> make structure visible, so that newcomers know who they can talk to to
>> get started on a topic, know who to ping for reviews, and so that each
>> one of us can see where they fit.  Rust has well-defined teams:
>>
>>  https://www.rust-lang.org/governance
>>
>> Guix is nowhere near the size of the Rust community (yet!), but I can
>> already picture teams and members:
>>
>>  co-maintainers (“core team”)
>>  community
>>  infrastructure
>>  internationalization
>>  security response
>>  release
>>  Rust packaging
>>  R packaging
>>  Java packaging
>>
>> In Rust, teams are responsible for overseeing discussions and changes in
>> their area, but also ultimately for making decisions.  I think that’s
>> pretty much the case with the informal teams that exist today in Guix,
>> but that responsibility could be made more explicit here.  They
>> distinguish teams from “working groups”, where working groups work on
>> actually implementing what the team decided.
>>
>> How about starting with a web page listing these teams, their work,
>> their members, and ways to contact them?  Teams would be the primary
>> contact point and for things that fall into their area and would be
>> responsible for channeling proposals and advancing issues in their area.
>>
>> What do people think?
>>
>> Aaron Turon nicely explains that at first sight it has a bureaucratic
>> feel to it, but that in practice it does help a lot in many ways, from
>> onboarding to channeling change without losing consistency.
>>
>> Ludo’.
>
> +1 from me. I think that it is natural that as we grow (yay!) we'll
> need a little bit more structure. It would be wise to not overdo it
> and create too many teams to start with, but I have nevertheless
> brainstormed some additional teams:
>
> * Documentation/Communication/Cookbook Recipes
> * Desktop Environments
>
> Best,
> Jack




Re: Preservation of Guix 2021-10-22

2021-10-25 Thread indieterminacy
Hi Simon,

Would it be remiss to cross reference contributors to these identified
scripts against Guix contributors (commits, ML messages)?

With that it may be possible to email them a templated message,
featuring:
* The current activity and reason for outreach
* The advantages of providing improvements
* A polite request for them (or interested parties) to assist (whenever)
possible
* A reference to documentation or cookbooks to provide further context
and approaches for resolving

WDYT?


Jonathan

zimoun  writes:

> Hi,
>
> On Sat, 23 Oct 2021 at 11:55, Timothy Sample  wrote:
>
>> Download the database (there’s a button at the bottom of the report),
>> and use SQLite to run the following queries.
>
> Cool!  Thanks.
>
>
> If someone wants to help,
>
> $ wget https://ngyro.com/pog-reports/2021-10-22/pog.db
> $ guix environment --ad-hoc sqlite -- sqlite3
> sqlite> .open pog.db
> sqlite>
>
> then copy/paste that:
>
>> For the 376:
>>
>> SELECT fod_id,
>> swhid,
>> reference
>> FROM fods
>> LEFT JOIN fod_references USING (fod_id)
>> WHERE NOT is_in_swh
>> AND reference LIKE '(git-reference%';
>
> Therefore, I start with these ones.  After this query, a quick Emacs
> macro to keep the URLs and then sort them to see if a pattern emerges.
> Nothing flashy.  For the record, I get 214 GitHub URLs and 32 GitLab
> (.com) ones.  I also note, among various stuff, that:
>
>  "https://notabug.org/cwebber/guile-squee.git;
>  "https://notabug.org/mothacehe/guile-squee.git;
>
> because one is defined at (gnu packages guile-xyz) by guile-squee and
> the other at (gnu packages ci) by guile-squee-dev.  Then, other remark:
> Julia packages are listed:
>
>  "https://github.com/JuliaArrays/OffsetArrays.jl;
>  "https://github.com/JuliaArrays/StaticArrays.jl;
>  "https://github.com/JuliaCI/BenchmarkTools.jl;
>  "https://github.com/JuliaCollections/OrderedCollections.jl;
>  "https://github.com/JuliaData/Parsers.jl;
>  "https://github.com/JuliaDiff/ChainRules.jl;
>  "https://github.com/JuliaDiff/ChainRulesCore.jl;
>  "https://github.com/JuliaDiff/ChainRulesTestUtils.jl;
>  "https://github.com/JuliaDiff/FiniteDifferences.jl;
>  "https://github.com/JuliaGPU/Adapt.jl;
>  "https://github.com/JuliaGraphics/ColorTypes.jl;
>  "https://github.com/JuliaGraphics/Colors.jl;
>  "https://github.com/JuliaLang/Compat.jl;
>  "https://github.com/JuliaObjects/ConstructionBase.jl;
>  "https://github.com/JuliaPackaging/JLLWrappers.jl;
>  "https://github.com/JuliaWeb/URIs.jl;
>
> when I am sure to have scheduled them couple of days (weeks?) ago.
> Therefore, I have not investigated yet if the archiving failed or if POG
> is behind.
>
> Another general remark, some URLs are duplicated, for instance:
>
>  "https://codeberg.org/dnkl/fcft;
>  "https://git.cbaines.net/git/guix/build-coordinator;
>  "https://git.code.sf.net/p/wsjt/wsjtx.git;
>  "https://git.code.sf.net/u/bsomervi/hamlib.git;
>  "https://git.elephly.net/software/mumi.git;
>  "https://git.mfiano.net/mfiano/golden-utils;
>  "https://git.sr.ht/~bzg/org-contrib;
>  "https://git.systemreboot.net/guile-email;
>  "https://git.systemreboot.net/guile-xapian;
>  "https://git.umaneti.net/flycheck-grammalecte/;
>  "https://github.com/Eloston/ungoogled-chromium;
>  etc.
>  …
>  
> I have not checked if several packages refer to the same URL.
>
>
> Now, the core point.  Running ’save-origin’ form (guix swh) on the URLs,
> I get for instance:
>
> https://code.divoplade.fr/mkdir-p.git   accepted  failed
> git://pumpa.branchable.comacceptedfailed
>
> for some I have checked.  Investigation why they fails is required.
>
>
> Last, I failed to use TOKEN from “guix repl”.  I just do:
>
> (use-modules (guix swh)
>  (srfi srfi-1))
>
> (setenv "TOKEN"
> "eyJhb…"
>  )
>
> (define missings
>   (list
>"git://pumpa.branchable.com/"
>
> [...]
>
>"https://salsa.debian.org/installer-team/debootstrap.git;
>))
>
> (for-each
>  (lambda (url)
>(save-origin url))
>  missings)
>
> but this fails.  What do I miss?  Does %swh-token need to be exported
> and tweaked in the script?
>
>
> Cheers,
> simon




Re: Public guix offload server

2021-10-25 Thread indieterminacy
Hi Arun,

Researching git-shell, I noticed an example of how Less could be
exploited to increase. privileges:
=> https://hackaday.com/2017/05/10/git-shell-bypass-less-is-more/

It suggests enabling the no-pty flag to mitigate this.

I think it would be great to utilise git-shell (and I am interested in
it for my own activities.

Do anybody have detailed research regarding SSH access with no shell access?

Kind regards,

Jonathan

Arun Isaac  writes:

> [[PGP Signed Part:Undecided]]
>
>>> $ export GUIX_DAEMON_SOCKET=ssh://char...@sandbox.guix.gnu.org:22
>>> $ guix build foo
>>
>> …requires an SSH access by ’charlie’ to sandbox.guix.gnu.org,  And they
>> think this access is risky.
>
> We could provide SSH access but no shell access. We could use some
> restricted shell in the spirit of git-shell. All we need is port
> forwarding through SSH, not shell access.
>
> [[End of PGP Signed Part]]