From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id EvAnKHzRuV8rNAAA0tVLHw (envelope-from ) for ; Sun, 22 Nov 2020 02:48:28 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id SMdtI3zRuV+YdwAAB5/wlQ (envelope-from ) for ; Sun, 22 Nov 2020 02:48:28 +0000 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 AA55C940484 for ; Sun, 22 Nov 2020 02:48:27 +0000 (UTC) Received: from localhost ([::1]:47282 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kgfQP-0007jK-V9 for larch@yhetil.org; Sat, 21 Nov 2020 21:48:25 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:43792) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kgfPd-0007j7-Tw for emacs-orgmode@gnu.org; Sat, 21 Nov 2020 21:47:37 -0500 Received: from mail-wr1-x432.google.com ([2a00:1450:4864:20::432]:38510) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kgfPa-0000pQ-4F for emacs-orgmode@gnu.org; Sat, 21 Nov 2020 21:47:37 -0500 Received: by mail-wr1-x432.google.com with SMTP id p8so14946001wrx.5 for ; Sat, 21 Nov 2020 18:47:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=oyhPRRwtMBSVVetYUEBLW09UsKv7/V0sDzKHaOTgwUg=; b=pnLKADKKtMG+tzyMmz8BGA4wA2HPaE9+s3Kfm6jbJX+UXCZb6GJGkiXUsfc6ybAybq 1k6twYBtzYZZyIGxv14Z6DlXob3CLEPDPdQ5pvngRwyS4ut6ityNC/8noHzLPe9xQg7w siIEJsMu6zg7tL5OBrZwekutPuB/9IIrvp2M4QmgwdkP9JO9J3uTQ0leJZybLJdUvsI7 L3A1aYI8zh6c0HMhBFpc1EsvwOvIumpdAGK0DXu04cvZn1fgFvlMH4SUqFQZ2m1wt7bE ehlbgKBbuDEbNJGdZucRbSyuzL1hwTzScgi0Unonmu29yjWqZLxIux+P/AbCQGcMEEf2 CPAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=oyhPRRwtMBSVVetYUEBLW09UsKv7/V0sDzKHaOTgwUg=; b=JVe/Sh5TmXZY4qv0Ng6waE76MGPj/detMWxZTXpxUc0+f5GaUpo3zZV3AfXm9ZVCOP ZAeDe93F8UkUKlurmemZcYm1bHd8A6dKIpnt0qwS4OgdliIItcIv596FqX1LUEaaVQ5W Hbzt3VavQH5zX14O5pASrUmM4jtDw8Qv1wKcxMfubo1O1IVW2T3YJEotICdK15RVBuFE s/8mtjlyd9Vknh7B69H7As4sP/5NXCYVgCSljQtFSqAtqS02n2eQvSh3lKoyGJxvJJUW E7Ku1cI+kLPhPu2pRXwJmH9XdzG7vdNmF1H734XtW8aECuFxzDknHfm/61RotZIQn7ar Jf1w== X-Gm-Message-State: AOAM531m3wtm5jQ1rmYiMyTLGe5IroP9eFJOe2SB+m9vFcw4CVe/DzFK /w6YhOmgpq4PqOFlO3+mnmR/WsqOLGCrGzhxrx4= X-Google-Smtp-Source: ABdhPJz3QK+dYJ1LddCll9fyEjBG+2to3mPnJfD/nvAGVAl166gnnIlIjHMSEiYmPGGjUUaauZI7ipUxVKgUhfHlJ4c= X-Received: by 2002:a5d:4802:: with SMTP id l2mr23043008wrq.424.1606013251765; Sat, 21 Nov 2020 18:47:31 -0800 (PST) MIME-Version: 1.0 References: <87y2ive1i4.fsf@localhost> <878sauhhv1.fsf@web.de> <873612gwco.fsf@web.de> In-Reply-To: From: briangpowell Date: Sat, 21 Nov 2020 21:47:20 -0500 Message-ID: Subject: Re: One vs many directories To: Jean Louis Content-Type: multipart/alternative; boundary="00000000000060497105b4a9193a" Received-SPF: pass client-ip=2a00:1450:4864:20::432; envelope-from=briangpowellms@gmail.com; helo=mail-wr1-x432.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Dr. Arne Babenhauserheide" , Texas Cyberthal , emacs-orgmode , Ihor Radchenko Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: "Emacs-orgmode" X-Scanner: ns3122888.ip-94-23-21.eu Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20161025 header.b=pnLKADKK; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of emacs-orgmode-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=emacs-orgmode-bounces@gnu.org X-Spam-Score: -0.21 X-TUID: 3g9wFj+i6fbD --00000000000060497105b4a9193a Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable * Strongly suggest looking into Emacs' vlf-mode and the newer vlfi-mode ** That is Very-Large-File-Mode & Very-Large-File-Improved-Mode for issues you're experiencing & if not, simply because they're very useful & interesting & fun Emacs Modes to explore & put into your toolbox https://www.emacswiki.org/emacs/VLF https://github.com/m00natic/vlfi * You mentioned other types of GREP, I second that, and the indexing suggestion--I remember long ago using SGREP which is Simple-GREP, used indexing & was much faster than the usual grep implementations for some things; but, this is at the expense of the fancier & more elaborate GREP functions ** You mention RipGrep--thanks for that, very interesting * Which brings me to my main suggestion to you & why: Emacs, believe it or not, has the FASTEST ENGINE available, without augmentation in any way, for INTERACTIVE SEARCH--since the whole engine is designed to be optimized to search-while-editing But for many other searches, more elaborate searches, fancier GREP searches, it's a VERY BAD choice of ways or programs to use for searching What I mean is, say you're editing a file, and you search for your "ProviderBuilderFactory" Suggest you try opening a huge file--even MULTI-GIGABYTE FILES--huge files in Emacs VLF-Mode--Very Large File-mode {which I believe can be done as a sub-mode to/with Org-Mode} And you can do this fearlessly since vlf-mode works by dividing the files up for you in the background, etc.--while you're editing--but uses the same built-in Emacs engine, optimized for such searches And then you type: Control-s And start to type the first letters of "ProviderBuilderFactory" This will interactive-search HUGE files, very quickly, and in near "Real Time"--since this is what Emacs (implemented in C) is optimized to do--its optimized for initial-character-searching "as you type them"--most other engines are NOT IF FOR NO OTHER REASON THAN IT SOUNDS LIKE FUN! And you might use vlf-mode for other tasks you may face in the future. Please try it out & tell how you like it--you'll never avoid opening huge files again is one benefit Beyond that, suggest you look into using LEX, it's as fast as you can get for some things too. Everything has its niche in the *nix world--which is where GREP came from, Bell Labs, etc.--that's the Unix philosophy, Emacs & LEX tools came from that world & the work of thousands of contributors--suggest you try these tools too for these issues Lastly, say you want to search for things without opening a file, you can still use Emacs in batch-mode, at the command line, without opening a full emacs session On Sat, Nov 21, 2020 at 8:34 PM Jean Louis wrote: > * Dr. Arne Babenhauserheide [2020-11-22 01:48]: > > > So in general I never need to use some general search through Org > > > files or any other files as my way of thinking begins with People or > > > Groups and that narrows what has to be searched. > > > > How do you deal with stuff that applies to several people? > > From database viewpoint there are > > - accounts (which means companies, groups, entities, like "People who > wish to get employed in Europe") > > - there are contacts, that may belong to account, additionally belong > to company (also account), additionally be member of account, so > there are 3 groupings for each contact how that contact may be > related to account. If it is main account such as "Welders" or if > maybe under "Company" is written "welders" (not quite correct) in > reality it does not matter. > > - then there are lists to which other lists belong. Account A and > account B, C, D can belong to list 01. Various accounts can be put > together in uniting lists. Those lists are encompassing other lists, > not individual people but people in the list (account) usually > unless there is only one in the account. Those lists I am using for > mailing them or informing them by letter, SMS, etc. Geologists and > mining engineers and metallurgists are 3 different accounts but if > all of them speak Swahili both in Kenya and Tanzania and are in the > related branch of economy so they can be sent same type of > information. > > Then there are groups, which is just another name for a new list. Then > there are tags. I can freely tag account, contact or anything else. By > tags I can finely select specific people belonging to specific group. > > There are account types and group types. > > Tags by itself have its own description or purpose to name it type. > > Some people introduce other people, few of them introduced > thousands. So contacts have a column "introduced by". That becomes > very handy when talking to somebody and it also helps in awarding > introduces. It helps when people place their hyperlinks and become > automated introducers (lead generation). > > When I know that person belongs to some group of people and I have to > write email and I know it is better to inform everybody, then there is > action to assign identity from which I am sending email. It could be > public or internal identity with different email address. Emails to > that person would always go from designated email address without me > thinking about it. Then there are Cc and Bcc fields and in those > fields I could designate: to inform same contact to each of email > addresses with same message, and to inform group of people each > time. Thus if writing to one contact all others get informed through > same message. But I am not thinking about who belongs to the group, > and what are their email addresses, that gets inserted > automatically. Email composition is usually inside of Emacs. > > Sending files? If contact is in the group and others need to see the > file, then Cc and Bcc fields work in the same way, file sent to one > person is sent to other members of the group. > > Sometimes contact tells me to please exclude some people from Cc, so I > just go into definition of identities for contact and exclude such. > > SMS I am sending by using kdeconnect.el package so any SMS I send this > way it is getting recorded to the contact. If I need to send SMS to > the group, then same SMS could be sent to whole group. > > If the note on one contact is related to other people then is trivial > to automate to inform other people on that particular note. > > If any group of people is there, filing files under group does not > make much sense to me. I would not file it as Group/ABC/file-01.pdf > > I would file it under By-ID/Contact-ID-123/Group/file-01.pdf as files > are normally sent by one email address of one person or under one > name. I deal with people not with empty groups that do not > communicate. But group is important, so there can be /Group/ directory > on the file system where all contacts of one group can be symlinked > automatically if it happens that I need to search by Group on file > system, but I don't. I search for groups in the database and see list > of contacts there and then jump to contact. > > Same thing with invoices, they are written either to company or to > individual or some individual in some company. I will not file or act > based on invoice. I have to act based on authorirative or maybe > hierarchically higher object first. > > In general is always good to make a list of things and then lists are > foundation for dealing easier with whatever groups of anything. > > > > it comfortable. My way of thinking is always People or Groups, and > > > from there various searches are performed and that narrows drasticall= y > > > the subject that has to be searched. > > > > That does sound like it should speed up searching by directory. > > You remember that I do not search by directory. > > Computer stuff I search by directory, like > Work/Computer/Devices/Dictaphone or Work/Computer/Graphics/shadow > > Stuff related to any entity, organization, group of people, mailing > list or list that encompasses other lists, I am locating in the > database but the file system location is automatically expanded from > the unique IDs. So I need not know where is exactly directory for the > group ABC, but I know if I press F8 that I am right there. Then files > are sorted for the group or account normally by date, but could be by > License number or something else. It is mixture of database relational > jump to base directory for specific account/company/group and > sub-directories. Base directory I do not need to know, those > sub-directories are few and search becomes very fast. No special > database is needed for this as one can keep hundreds of groups and > people in simple Lisp structures saved in files. > > > My mind works differently here: I remember some concept and need to > > find stuff connected to that, including people, but also additional > > ideas, instructions, and just bullet points with info I might need > > again later (which multiple times saved many hours of searching > > already). > > What I learn is that concept of management of information in computer > better works by the concept of associations or relations as that is > similar how mind works. I do not see much difference here in thinking > how things information should be stored. > > I have some hobby and there are paper books, images, videos, DVDs, > digital books related to that hobby. All that is sorted by Authors as > that is one attribute that those things have. Additionally there are > subjects. Authors's individuals works are symlinked to various > multiple subjects as multiple subjects (tags) related to same Author's > work. If author produces only for one subject then his name is > symlinked to that subject. Sometimes there are 2 or more authors > working together, so their directory is also symlinked to individual > authors. > > Similar concept applies to music or videos, it is sorted by authors > and bands, and then individual works are sorted by its type of music > or genres of videos. > > Images are sorted by people who are on the image. But I do not think > of that, I just say "Adrian" and image is sorted there in appropriate > date folder for that person. Computer thinks WHERE is the location, > not me. All other files are also being sorted like that and it is work > in progress. > > > The one thing that keeps me from that is that I often file under > > specific projects, and the active projects are shifting > > constantly. For that I enjoy it a lot that I only need to customize > > the capture templates to add a project. > > In the dynamical knowledge repository backed by PostgreSQL I have > subtrees and each subtree has its name. I am more familiar with > structured data in the database. So if I wish to have equivalent of > capture it becomes trivial, press key, choose set and insert whatever > note or task or article, anything. It just has little different > structures. > > I do not need to setup extra capture configuration as there are > already sets or subtree names. I am quickly locating appropriate > substree name and filing under. > > Something I wish to file need not be Org mode, but it can be. A note > can be written in any text mode and filed in the set or > subtree. Markdown, Koutliner, it can be Perl snippet, one liner, > excerpt from email or message mode note, why not. SQL snippet, Emacs > Lisp or Scheme. Normal text. I feel more free this way. > > Hyperdocuments have its types like WWW, Gopher, Gemini, FTP, SFTP, > Note, Task, Video to be played at exact time, local file, YouTube > video, Dired directory, Program Launch, PDF, PDF by query, PDF by page > number, Emacs Lisp, Org Heading, Org file, Message ID, Set, and so > on. > > These days I am thinking to make self-defining types and I mean to > place the code inside of the hyperdocument type entry that defines how > that entry should be handled. User accessing database at University > Makerere could access hyperdocument that designates that not only > video file has to be opened in the browser, but that window has to be > split so that annotations related to video file has to be shown in > same time. But user accessing such hyperdocument need not necessarily > know that its viewing or launching is customized by the type of the > hyperdocument defined somewhere else, not in software directly. It > sounds similar to Javascript launched in web browsers with full > liberty in computing. Emacs Lisp snippets would be pulled from > database directly and executed on users' computer. File transfers are > non existent and file system is not there. Nothing gets really > downloaded or saved, just loaded into memory and executed. > > Just thinking of a hyperdocument type or object type "comment" or > "feedback". When activating such user loads few functions, write the > comment, functions can also say what will be done with the > comment. School teacher or head teacher acts upon it or comments are > simply published. > > Sets for now do not have types, but why not. If set has type of topics > and topics allow comments there is automatic forum and discussion. > > > I for one am still working on my workflow, and I guess that 10 years > > from now it won=E2=80=99t be the same as today. I hope that learning ab= out other > > ways to work with org will help me a lot in future. > > Same on my side. > > Summary for me: > > - navigation by hierarchy is one way, we all use it to search and file > documents > > - searching through indexed database is different way, it is not good > for filing anything > > - direct relational access where computer locates the file is third > way for knowledge management > > - it is better designing filing, sorting and retrievals by concepts of > mind or how mind works > > - any objects or pieces of information shall have its actions that act > upon it and that can hyperpush the user to other pieces of > information > > - general increase of hyperlinking by relations helps in creation of > better systems. > > Here is how I have implemented simple versioning system that is > decided by program and not the database. It was just before hour. > > (defun hyperscope-vc (table column id &optional description) > "Simple version system." > (let* ((value (rcd-db-get-entry table column id *hs*)) ;; takes DB valu= e > (value (sql-escape-string value)) ;; prepares value for SQL > (description (if description (sql-escape-string description) > "NULL")) > (sql (format "INSERT INTO vc (vc_table, > vc_column, > vc_tableid, > vc_value, > vc_description) VALUES ('%s', '%s', > %s, %s, %s) > RETURNING vc_id" > table column id value description)) > (id (rcd-sql sql *hs*))) > (if id id nil))) > > Above function takes the value from any table, any column, by ID and > inserts the value into the `vc` table. > > Then comes this function below that edits hyperdocument as Org file > with Org mode. Before updating it is using `hyperscope-vc` version > function to basically save the old value in the separate table. If I > want to see diffs I think it is also trivial to do. > > (defun hlink-edit-org (id) > (let* ((blob (hlink-description-value id)) > (blob (if blob blob "")) > (buffer-name (format "HyperScope Editing ID: %d" id)) > (new-blob (read-from-buffer blob buffer-name 'org-mode))) > (hyperscope-vc "hlinks" "hlinks_description" id) > (rcd-db-update-entry "hlinks" "hlinks_description" "text" id new-blob > *hs*))) > > > --00000000000060497105b4a9193a Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
* Strongly suggest looking into Emacs' vlf-mode a= nd the newer vlfi-mode

** That is Very-Large-File-= Mode &=C2=A0Very-Large-File-Improved-Mode for issues you're experie= ncing & if not, simply because they're very useful & interestin= g & fun Emacs Modes to explore & put into your toolbox

https://github.com/m00natic/vlfi

=
* You mentioned other types of GREP, I second that, and the indexing s= uggestion--I remember long ago using SGREP which is Simple-GREP, used index= ing & was much faster than the usual grep implementations for some thin= gs; but, this is at the expense of the fancier & more elaborate GREP fu= nctions

** You mention RipGrep--thanks for that, v= ery interesting

* Which brings me to my main sugge= stion to you & why:

Emacs, believe it or not, = has the FASTEST ENGINE available, without augmentation in any way, for INTE= RACTIVE SEARCH--since the whole engine is designed to be optimized to searc= h-while-editing

But for many other searches, more = elaborate searches, fancier GREP searches, it's a VERY BAD choice of wa= ys or programs to use for searching

What I mean is= , say you're editing a file, and you search for your "ProviderBuil= derFactory"

Suggest you try opening a huge fi= le--even MULTI-GIGABYTE FILES--huge files in Emacs VLF-Mode--Very Large Fil= e-mode {which I believe can be done as a sub-mode to/with Org-Mode}

And you can do this fearlessly since vlf-mode works by di= viding the files up for you in the background, etc.--while you're editi= ng--but uses the same built-in Emacs engine, optimized for such searches

And then you type:

Control-= s=C2=A0

And start to type the first letters of=C2= =A0"ProviderBuilderFactory"

This will in= teractive-search HUGE files, very quickly, and in near "Real Time"= ;--since this is what Emacs (implemented in C) is optimized to do--its opti= mized for initial-character-searching "as you type them"--most ot= her engines are NOT

IF FOR NO OTHER REASON THAN IT= SOUNDS LIKE FUN! And you might use vlf-mode for other tasks you may face i= n the future.

Please try it out & tell how you= like it--you'll never avoid opening huge files again is one benefit

Beyond that, suggest you look into using LEX, it'= ;s as fast as you can get for some things too.

Eve= rything has its niche in the *nix world--which is where GREP came from, Bel= l Labs, etc.--that's the Unix philosophy, Emacs & LEX tools came fr= om that world & the work of thousands of contributors--suggest you try = these tools too for these issues=C2=A0

Lastly, say= you want to search for things without opening a file, you can still use Em= acs in batch-mode, at the command line, without opening a full emacs sessio= n
















On Sat, Nov 21, 2020 at= 8:34 PM Jean Louis <bugs@gnu.support> wrote:
* Dr. Arne Babenhauserheide <arne_bab@web.de> [2020= -11-22 01:48]:
> > So in general I never need to use some general search through Org=
> > files or any other files as my way of thinking begins with People= or
> > Groups and that narrows what has to be searched.
>
> How do you deal with stuff that applies to several people?

>From database viewpoint there are

- accounts (which means companies, groups, entities, like "People who<= br> =C2=A0 wish to get employed in Europe")

- there are contacts, that may belong to account, additionally belong
=C2=A0 to company (also account), additionally be member of account, so
=C2=A0 there are 3 groupings for each contact how that contact may be
=C2=A0 related to account. If it is main account such as "Welders"= ; or if
=C2=A0 maybe under "Company" is written "welders" (not = quite correct) in
=C2=A0 reality it does not matter.

- then there are lists to which other lists belong. Account A and
=C2=A0 account B, C, D can belong to list 01. Various accounts can be put =C2=A0 together in uniting lists. Those lists are encompassing other lists,=
=C2=A0 not individual people but people in the list (account) usually
=C2=A0 unless there is only one in the account. Those lists I am using for<= br> =C2=A0 mailing them or informing them by letter, SMS, etc. Geologists and =C2=A0 mining engineers and metallurgists are 3 different accounts but if =C2=A0 all of them speak Swahili both in Kenya and Tanzania and are in the<= br> =C2=A0 related branch of economy so they can be sent same type of
=C2=A0 information.

Then there are groups, which is just another name for a new list. Then
there are tags. I can freely tag account, contact or anything else. By
tags I can finely select specific people belonging to specific group.

There are account types and group types.

Tags by itself have its own description or purpose to name it type.

Some people introduce other people, few of them introduced
thousands. So contacts have a column "introduced by". That become= s
very handy when talking to somebody and it also helps in awarding
introduces. It helps when people place their hyperlinks and become
automated introducers (lead generation).

When I know that person belongs to some group of people and I have to
write email and I know it is better to inform everybody, then there is
action to assign identity from which I am sending email. It could be
public or internal identity with different email address. Emails to
that person would always go from designated email address without me
thinking about it. Then there are Cc and Bcc fields and in those
fields I could designate: to inform same contact to each of email
addresses with same message, and to inform group of people each
time. Thus if writing to one contact all others get informed through
same message. But I am not thinking about who belongs to the group,
and what are their email addresses, that gets inserted
automatically. Email composition is usually inside of Emacs.

Sending files? If contact is in the group and others need to see the
file, then Cc and Bcc fields work in the same way, file sent to one
person is sent to other members of the group.

Sometimes contact tells me to please exclude some people from Cc, so I
just go into definition of identities for contact and exclude such.

SMS I am sending by using kdeconnect.el package so any SMS I send this
way it is getting recorded to the contact. If I need to send SMS to
the group, then same SMS could be sent to whole group.

If the note on one contact is related to other people then is trivial
to automate to inform other people on that particular note.

If any group of people is there, filing files under group does not
make much sense to me. I would not file it as Group/ABC/file-01.pdf

I would file it under By-ID/Contact-ID-123/Group/file-01.pdf as files
are normally sent by one email address of one person or under one
name. I deal with people not with empty groups that do not
communicate. But group is important, so there can be /Group/ directory
on the file system where all contacts of one group can be symlinked
automatically if it happens that I need to search by Group on file
system, but I don't. I search for groups in the database and see list of contacts there and then jump to contact.

Same thing with invoices, they are written either to company or to
individual or some individual in some company. I will not file or act
based on invoice. I have to act based on authorirative or maybe
hierarchically higher object first.

In general is always good to make a list of things and then lists are
foundation for dealing easier with whatever groups of anything.

> > it comfortable. My way of thinking is always People or Groups, an= d
> > from there various searches are performed and that narrows drasti= cally
> > the subject that has to be searched.
>
> That does sound like it should speed up searching by directory.

You remember that I do not search by directory.

Computer stuff I search by directory, like
Work/Computer/Devices/Dictaphone or Work/Computer/Graphics/shadow

Stuff related to any entity, organization, group of people, mailing
list or list that encompasses other lists, I am locating in the
database but the file system location is automatically expanded from
the unique IDs. So I need not know where is exactly directory for the
group ABC, but I know if I press F8 that I am right there. Then files
are sorted for the group or account normally by date, but could be by
License number or something else. It is mixture of database relational
jump to base directory for specific account/company/group and
sub-directories. Base directory I do not need to know, those
sub-directories are few and search becomes very fast. No special
database is needed for this as one can keep hundreds of groups and
people in simple Lisp structures saved in files.

> My mind works differently here: I remember some concept and need to > find stuff connected to that, including people, but also additional > ideas, instructions, and just bullet points with info I might need
> again later (which multiple times saved many hours of searching
> already).

What I learn is that concept of management of information in computer
better works by the concept of associations or relations as that is
similar how mind works. I do not see much difference here in thinking
how things information should be stored.

I have some hobby and there are paper books, images, videos, DVDs,
digital books related to that hobby. All that is sorted by Authors as
that is one attribute that those things have. Additionally there are
subjects. Authors's individuals works are symlinked to various
multiple subjects as multiple subjects (tags) related to same Author's<= br> work. If author produces only for one subject then his name is
symlinked to that subject. Sometimes there are 2 or more authors
working together, so their directory is also symlinked to individual
authors.

Similar concept applies to music or videos, it is sorted by authors
and bands, and then individual works are sorted by its type of music
or genres of videos.

Images are sorted by people who are on the image. But I do not think
of that, I just say "Adrian" and image is sorted there in appropr= iate
date folder for that person. Computer thinks WHERE is the location,
not me. All other files are also being sorted like that and it is work
in progress.

> The one thing that keeps me from that is that I often file under
> specific projects, and the active projects are shifting
> constantly. For that I enjoy it a lot that I only need to customize > the capture templates to add a project.

In the dynamical knowledge repository backed by PostgreSQL I have
subtrees and each subtree has its name. I am more familiar with
structured data in the database. So if I wish to have equivalent of
capture it becomes trivial, press key, choose set and insert whatever
note or task or article, anything. It just has little different
structures.

I do not need to setup extra capture configuration as there are
already sets or subtree names. I am quickly locating appropriate
substree name and filing under.

Something I wish to file need not be Org mode, but it can be. A note
can be written in any text mode and filed in the set or
subtree. Markdown, Koutliner, it can be Perl snippet, one liner,
excerpt from email or message mode note, why not. SQL snippet, Emacs
Lisp or Scheme. Normal text. I feel more free this way.

Hyperdocuments have its types like WWW, Gopher, Gemini, FTP, SFTP,
Note, Task, Video to be played at exact time, local file, YouTube
video, Dired directory, Program Launch, PDF, PDF by query, PDF by page
number, Emacs Lisp, Org Heading, Org file, Message ID, Set, and so
on.

These days I am thinking to make self-defining types and I mean to
place the code inside of the hyperdocument type entry that defines how
that entry should be handled. User accessing database at University
Makerere could access hyperdocument that designates that not only
video file has to be opened in the browser, but that window has to be
split so that annotations related to video file has to be shown in
same time. But user accessing such hyperdocument need not necessarily
know that its viewing or launching is customized by the type of the
hyperdocument defined somewhere else, not in software directly. It
sounds similar to Javascript launched in web browsers with full
liberty in computing. Emacs Lisp snippets would be pulled from
database directly and executed on users' computer. File transfers are non existent and file system is not there. Nothing gets really
downloaded or saved, just loaded into memory and executed.

Just thinking of a hyperdocument type or object type "comment" or=
"feedback". When activating such user loads few functions, write = the
comment, functions can also say what will be done with the
comment. School teacher or head teacher acts upon it or comments are
simply published.

Sets for now do not have types, but why not. If set has type of topics
and topics allow comments there is automatic forum and discussion.

> I for one am still working on my workflow, and I guess that 10 years > from now it won=E2=80=99t be the same as today. I hope that learning a= bout other
> ways to work with org will help me a lot in future.

Same on my side.

Summary for me:

- navigation by hierarchy is one way, we all use it to search and file
=C2=A0 documents

- searching through indexed database is different way, it is not good
=C2=A0 for filing anything

- direct relational access where computer locates the file is third
=C2=A0 way for knowledge management

- it is better designing filing, sorting and retrievals by concepts of
=C2=A0 mind or how mind works

- any objects or pieces of information shall have its actions that act
=C2=A0 upon it and that can hyperpush the user to other pieces of
=C2=A0 information

- general increase of hyperlinking by relations helps in creation of
=C2=A0 better systems.

Here is how I have implemented simple versioning system that is
decided by program and not the database. It was just before hour.

(defun hyperscope-vc (table column id &optional description)
=C2=A0 "Simple version system."
=C2=A0 (let* ((value (rcd-db-get-entry table column id *hs*)) ;; takes DB v= alue
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(value (sql-escape-string value)) ;; prep= ares value for SQL
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(description (if description (sql-escape-= string description) "NULL"))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(sql (format "INSERT INTO vc (vc_tab= le,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 vc_column,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 vc_tableid, =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 vc_value,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 vc_description)= VALUES ('%s', '%s', %s, %s, %s)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0RETURNING vc_id"
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 table column id value description))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(id (rcd-sql sql *hs*)))
=C2=A0 =C2=A0 (if id id nil)))

Above function takes the value from any table, any column, by ID and
inserts the value into the `vc` table.

Then comes this function below that edits hyperdocument as Org file
with Org mode. Before updating it is using `hyperscope-vc` version
function to basically save the old value in the separate table. If I
want to see diffs I think it is also trivial to do.

(defun hlink-edit-org (id)
=C2=A0 (let* ((blob (hlink-description-value id))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(blob (if blob blob=C2=A0 ""))<= br> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(buffer-name (format "HyperScope Edi= ting ID: %d" id))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(new-blob (read-from-buffer blob buffer-n= ame 'org-mode)))
=C2=A0 =C2=A0 (hyperscope-vc "hlinks" "hlinks_description&qu= ot; id)
=C2=A0 =C2=A0 (rcd-db-update-entry "hlinks" "hlinks_descript= ion" "text" id new-blob *hs*)))


--00000000000060497105b4a9193a--