Re: A dream?
On 03-04-2023 15:52, Marko Schuetz-Schmuck wrote: Dear All, I teach some software engineering courses and in each of them students work on semester-long projects in teams. So far, have let them choose their own tools for all the tasks (implementation language, documentation tools, etc.). Personally, I have been using org-mode for what feels like forever. I was thinking that it would be nice to have students use org-mode also for their project. I can see it provide so many features that would benefit the projects: easy links for e.g. traceability, tagging of requirements for categorizing, responsible developer,..., of course todo lists, priorities, progress tracking, rendering to web page, PDF,... Since these are students from a very technical background I would hope they would be open to this. Anyway, does anyone have any experience related to this, maybe not specifically related to teaching, but software engineering projects (with documentation of domain, requirements, project approach, progress, references, source code, testing, design, etc. etc. etc.)? Ive spent time working on making uses with Gemtext - the format that supports the protocol, Gemini. Here is a non orgmode example (developed with GeneNetwork), which covers knowledge and kanban-boards, featuring a simple parsing of a Gemtext repo - with people contributing within different folders https://github.com/genenetwork/gn-gemtext-threads Its available on the CLI via Tissue (Guile). Here is a talk going into it: https://fosdem.org/2023/schedule/event/tissue/ Here is is exported to html, via Skribilo: https://issues.genenetwork.org/topics/guix-system-containers-and-how-we-use-them That particular Gemtext file that generated that example can be found via the blame icon (this approach works via git-blame): https://github.com/genenetwork/gn-gemtext-threads/blame/main/topics/guix-system-containers-and-how-we-use-them.gmi I hope that helps. -- Jonathan McHugh indieterminacy@libre.brussels
Re: bug#58774: 29.0.50; [WISH]: Let us make EWW browse WWW Org files correctly
On 26-10-2022 20:37, Jean Louis wrote: I do not have special opinion of "publishing Org files" for unknown people, if such people are not member of the group. That would require training them to know what is Org mode, and finally why? Emacs is poor general browser tool. Greatest benefit of Org files being served and properly parsed by Emacs by using HTTP is personal and group based. It is not mainly for public use. But one could think of it being analogous to Gemini. https://gemini.circumlunar.space/ Public who does not use Emacs will not be interested in such. They may download Org files and open it from file system. Same insecurity exists by downloading them and opening them. Just typical that Id raise Gemini just as you bring it up yourself (so many mails to sift through) :) Sometimes Org developer and maintainers do not have enough resources to react to security-related reports. An issue not so dangerous in the current state becomes really weird if Org mode becomes a default handler for files fetched from net. Your interpretation is improper, as you mentioned "default handler for files fetched from net" -- and I was very specific, for text/x-org content type that EWW get possibility to invoke org mode on such files. Quite logical. Emacs, Org mode and EWW, those shall work together. I am surprised that it does not. At least Russian Nginx WWW server supports me as user to configure it so to serve Org files as text/x-org. Though personally I have already found buggy solution with Emacs Lisp modification to eww render function. I must improve it. It is worth emphasizing that Gemini is conventionally designed to serve and receive files in isolation and that browsers are not expected to do anything beyond recognising the simple types of lines. As such ceteris paribus Id like to thing that it should operate to minimise threats of vulnerabilities such as spreadsheets being used to interact with banking services. Besides, the size and range of Gemini browsers and clients met with the size of these tools - combined with the acutal size of the Gemini community (let alone their competence grade) would make it a low priority for troublemakers to prioritise. -- Jonathan McHugh indieterminacy@libre.brussels
Re: bug#58774: 29.0.50; [WISH]: Let us make EWW browse WWW Org files correctly
On 26-10-2022 10:24, Jean Louis wrote: * Ihor Radchenko [2022-10-26 09:52]: Strictly speaking, even eww-mode may run arbitrary code given that user puts something into eww-mode-hook. eww-mode-hook is a variable defined in ‘eww.el’. Its value is (org-eww-extend-eww-keymap) Please help me recognize content type by using eww-mode-hook, so that I can invoke org mode when there is "text/x-org" It is very useful to browse my personal notes from my personal WWW server without invoking external browser. Consider hacking with regards to the Gemini protocol within Emacs, its minimalism may provide the appropriate playground for you to do things you expect (it already provides junctures to switch to (or at least load) html content with another non Gemini browser. Im killing a couple of tasks my end so I cant do this for you. However, it may be worth you experimenting with a Gemini server which contains orgmode files. I expect you should be able to view orgmode files (I guess they would be treated as non Gemtext and therefore binary). If you could toggle the appropriate mode inside something like emacs-elpher it may work to your needs. -- Jonathan McHugh indieterminacy@libre.brussels
Re: Org and Hyperbole
Hello Robert, On 08-10-2022 22:26, Robert Weiner wrote: Hi Jonathan: I and I think others would love to understand what you are trying to achieve. I get that you want to use the Koutline format with external systems like GemText and the TXR parser generator/Lisp language but I would rather understand the purpose of what you are trying to build (problem(s) to solve) and what you can't do with the Koutliner as it now stands that you would like to do. Try to explain it without referencing any particular technologies, as I can't follow many of the things you write because of a lack of context. How does one describe crimson and clover? My medium term plans are to adapt my utilitarian setup, so that it becomes encapsulated. Im planning to provide augmentation of Icebreaker's stack into areas of: * text-to-speech * speech-to-text * braile Though initially focusing on software design, I could (eventually) see advantages of product design to complement the interfacing and interpreting aspects of my work. Not technologically speaking, the problem Im wrestling is broadly similar to George Bernard Shaw (with regards to notation; shorthand; and semiotics) when he proposed the Shavian Alphabet to supplant the Latin alphabet. Philologists should track down the later half of his preface in the book, The Miraculous Birth of Language: https://archive.org/details/in.ernet.dli.2015.462145/page/n9/mode/2up Coincidentally, both his and my approaches to our different problems settled on a notation with 40 characters. Focusing on my TXR interpreter, I have been creating my own flavour of canonical s-exp, Qiuynonical: https://git.sr.ht/~indieterminacy/1q20hqh_oqo_parsing_qiuynonical Here is an example of the parsing-expression-grammars interleaving different uris and there comments: ``` + (("2:=>" "1: ") ("w-i" (("6:gemini" "3:://" "10:icebreaker" "1:." "5:space") ("5:/?q=/" ("3:111:1:." "1:+" "6:gemini" "3:://" "10:icebreaker" "1:." "5:space"))) + "i-w" ("3:REM:5:bunch:2:of:5:words" ("3:ueu" ("1:_" "14:testing-search" + "bing-x-b-ii-a") + (("2:=>" "1: ") ("w-i" (("6:gopher" "3:://" "10:icebreaker" "1:." "5:space") ("3:/?=" ("3:1aa:1:." "1:&" "6:gemini" "3:://" "10:icebreaker" "1:." "5:space"))) + "i-w" ("3:REM:5:bunch:2:of:5:words" ("3:ueu" ("1:_" "14:testing-search" + "bing-x-b-ii-a") + (("2:=>" "1: ") ("w-i" (("6:finger" "3:://" "10:icebreaker" "1:." "5:space") ("2:/?" ("3:1a2:1:." "1:&" "6:gemini" "3:://" "10:icebreaker" "1:." "5:space"))) + "i-w" ("3:REM:5:bunch:2:of:5:words" ("3:ueu" ("1:_" "14:testing-search" + "bing-x-b-ii-a") + (("2:=>" "1: ") ("w-i" (("5:https:5:bunch:2:of:5:words" "3:://" "10:icebreaker" "1:." "5:space") ("4:/?q=" ("2:1a:1:." "1:%" "6:gemini" "3:://" "10:icebreaker" "1:." "5:space"))) + "i-w" ("3:REM" ("3:ueu" ("1:_" "14:testing-search" + "bing-x-b-ii-a") ``` Notice how "REM" is actually the first instance of non official token, starting a new parenthesis but still permitting repetitive patterns for things like "ueu" as an annotation to still be caught later on (with or without descriptors (which could be an underline, a tab or two or more whitespaces). Niceley, the way ive been approaching breakpoints between line-types and content-types is that you could(!) have iterating blocks of gemtext and koutliner within the same line - with the datalisp representing it as an array. As a consequence, one may then use logic rules for sophisticated inferences. Such as querying a subtext of a gemtext document and appending a conclusion or requirement in a referenced koutliner block. Think YahooPipes for playgrounding. In terms of accessibility, rather than all content being read out, uris could be counted and headers or notion read out with a distinctive tone. Or similarly, concerning annotations or dates. It is of course worth stating that gemtext has advantages for written prose, especially its ease of transmission with its TLS back
Re: Manual Ordering and Dynamic Priority
Hello Eduardo, On 31-08-2022 18:13, Eduardo Suarez wrote: I have lots of tasks (todos) and I would like to create a long backlog based on my perceived priority. I was thinking to deal with them in the following way: - divide them in groups (categories or similar), - manually sort priority for every group, - mergesort groups, that is, start merging groups in pairs, and manually sort for every step the union group until I have a large sorted backlog. For this to be practical, I would need an easy way to sort manually a group of tasks and get them assigned automatically a priority (or any other hack) so that priority ordering matches manual ordering. Any idea about how to get this done? While these are non orgmode solutions inside Emacs I hope they can give you some ideas of what you want: https://github.com/sp1ff/elfeed-score https://www.unwoundstack.com/blog/scoring-elfeed-entries.html https://www.gnu.org/software/emacs/manual/html_node/gnus/Scoring.html If I had to implement it (I don't know lisp), I would assign a property (say BACKLOG_PRIORITY) for every new task, with value the higher value of any other tasks in agenda plus ten (for instance). Then I would query a subset of tasks and sort them manually, swapping their values every time I swap their order. I would also allow to assign a value directly based on free slots, not to bubble the whole list for a low priority task. Does it sound over-engineered? Any idea? HTH -- Jonathan McHugh indieterminacy@libre.brussels
Re: Org and Hyperbole
On 26-06-2022 22:03, David Masterson wrote: writes: On Sat, Jun 25, 2022 at 11:37:55PM -0700, Siva Swaminathan wrote: [...] I feel that some of the questions raised here about Hyperbole sound akin to the story of five blind men feeling the elephant [...] The nice thing about that kind of situation is that it only can improve by adding in a sixth blind man ;-) Thank you from someone "too swamped right now to try to tackle another whole peradigm, but still enormously curious about this thing". Yup! I hope a new generation of users will sprout. As I mentioned to Bob, I think OO-Browser will bring programmers in to help expand Hyperbole as well as OO-Browser. Ive seen references to OO-Browser (documentation, wistfulness) but hadnt come across how to try it. Id interpreted it as being a victim of bitrot and lost in the sands of time (and is resting next to a genie lamp and hardback documentation for Xemacs). Is there a working version about for GNU Emacs? -- Jonathan McHugh indieterminacy@libre.brussels
Re: Org and Hyperbole
Hi Robert, On 24-06-2022 07:34, Robert Weiner wrote: Hi Samuel: On Jun 24, 2022, at 12:32 AM, Samuel Wales wrote: hi robert, welcome to the org list and thanks for your offer. for starters, does hyperbole have any concept of links that are: - unbreakable [like org-id] This one is not so simple to answer. Hyperbole only uses perma-hyperlink anchors in its Koutliner format. But it would be straightforward to add a UUID-type id for use elsewhere. - bidirectional [link a goes to link b; link b goes to link a], or, reversible via command to say "what links here?" [by any mechanism. if desired, please see "id markers" concept on this list for unbreakable bidirectional links and more stuff] Hyperbole does not have bi-directional links, only a history function to move back through followed node paths. We have started thinking about this need recently. — rsw Improvements to the backend of Koutliner would be useful, especially as (if I recall from the documentation) the API aspects are not so clearly defined. Bi-directionality would be a priority IMHO, especially to facilitate the updating of all links targeting a specific block should it move. At the moment, each link self updates when it identifies a reference which needs to be updated but that comes across as an expediency (which I mitigate with direty look running through links to validate they are functional). It would be great to achieve this with an 'eventual-consistency' type way, given that files could come in and out of a system or network. Similarly, allowing the perma-hyperlink anchors to be transferred would really mature the format. Here are some umble functions I use to facilitate moving blocks into other files: https://git.sr.ht/~indieterminacy/1q20bwb_oq_transferring_emacs/tree/main/item/kqk_kq_blocks_koutliner.el They at least avoid being descructive, as after moving the block becomes a pointer to where the moved block ended up in the other dcoument - but it feels like a fudge which could turn some documents into spaghetti. While Im sure that you are planning on solving these problems within eLisp, I should point out that I shall have a Koutliner parser, written in TXR (soon to be finalised, Ive had some familial and health impedencies recently). Here is a WIP https://git.sr.ht/~indieterminacy/1q20hqh_oqo_parsing_glean And a (rough) example https://git.sr.ht/~indieterminacy/1q20hqh_oqo_parsing_glean#examples I do need to add some facets (I suspect the linking for other blocks is in a seperate script). I shall also be integrating the parser with GemText (Orgmode would be nice one day too). https://git.sr.ht/~indieterminacy/1q20hqh_kq_parsing_gemtext/ I do quite like TXR's datalisp format but I havent gotten around to finding a way to slurping it up into eLisp. I feel like it should be easy to resolve but its not a query which is easy given SEO search. The way Ill be approaching this interpreter is that it could search the aggregate or a journey from one document. Being able to have an overview of multiple documents is something I consider to be helpful, given the domain of cross-referencing. and FYI, I will be working on outputting RDF from Koutliner and GemText analyses. -- Jonathan McHugh indieterminacy@libre.brussels
Re: Org and Hyperbole
On 24-06-2022 01:36, Samuel Wales wrote: [p.s. it also was not the topic i was talking about in my post. :] i was talking about specific features of links.] I use (general) links functionality that hyperbole provides inside my emacs shell. Apologies for not matching your specificity. -- Jonathan McHugh indieterminacy@libre.brussels
Re: Org and Hyperbole
On 23-06-2022 06:04, David Masterson wrote: Samuel Wales writes: i am interested in whether hyperbole can inspire org. or maybe spin off stuff that is useful for org. Hyperbole is loaded and activated in your .emacs file. Therefore, it's features are available in any file you work on (including Org files). Many of the features may be useful to you as a replacement to a feature in Org or something to work along side Org. Dig into the Hyperbole manual... any buffer! so it works inside emacs teminal emulators too! -- Jonathan McHugh indieterminacy@libre.brussels
Re: Org and Hyperbole
Hi Juan, On 20-06-2022 16:03, Juan Manuel Macías wrote: Hi, I've been intrigued with GNU Hyperbole for a while. I'm reading the documentation and trying it out a bit. It seems that its button system is very powerful. But Org links are also powerful (and exportable), and can be extended outside of Org docs. It seems that hyperbole offers some cool stuff that Org also has. And other things that are not in Org. I find some parts a bit confusing. I wonder if anyone is using hyperbole with Org and can put here some minimal workflow example where both complement each other in some way. Just in case I'm missing something useful... I recommend Hyperbole, though I must confess Ive been using Orgmode a lot less since Ive been focusing on the format GemText. I should recommend the use of the function defil, for people who like regexes and want to operate differing contexts (to launch via the ACTION operator). Its mid-grade compared to the more simpler approach and the more complex eLisp approach. While I have not fully applied this technique to my workflow, you can see some /stub/ experimentations that are used to provide different function calls based upon where the cursor is in the context of a specific annotation (namely my annotation approach, Qiuy). https://git.sr.ht/~indieterminacy/5q50jq_oq_configuring_emacs/tree/master/item/cqc_mqm_interfacing_blooms.el The logic for the example includes: As you see below, these things build through to build multiple cursor based contexts. ``` (defil qiuy-1q10hqh_1 "^" "q10hqh.*" "1" "{M-: (print \"context_1 1q\") RET}" t t) (defil qiuy-1q10hqh_2 "^1" "10hqh.*" "q" "{M-: (print \"context_2 [1-6]q\") RET}" t t) (defil qiuy-1q10hqh_3 "^1q" "0hqh.*" "1" "{M-: (print \"context_3 1q10\") RET}" t t) (defil qiuy-1q10hqh_4 "^1q1" "hqh.*" "0" "{M-: (isearch-forward-symbol \"q10\") RET}" t t) (defil qiuy-1q10hqh_5 "^1q10" "qh.*" "h" "{M-: (rg-project \"hqh\" \".*\") RET}" t t) (defil qiuy-1q10hqh_6 "^1q10h" "h.*" "q" "{M-: (print \"context_6 1q10hqh\") RET}" t t) (defil qiuy-1q10hqh_7_\s "^1q10hqh" "$" "\s(.*)" "{M-: (print \"context_7_\s 1q10hqh \\&\") RET}" t t) (defil qiuy-1q10hqh_7_\t "^1q10hqh" "$" "\t(.*)" "{M-: (print \"context_7_\t 1q10hqh \\&\") RET}" t t) (defil qiuy-1q10hqh_7_- "^1q10hqh" "$" "-(.*)" "{M-: (print \"context_7_- 1q10hqh \\&\") RET}" t t) (defil qiuy-1q10hqh_7__ "^1q10hqh" "$" "_(.*)" "{M-: (print \"context_7__ 1q10hqh \\&\") RET}" t t) ``` Documentation for the function defil can be found here: https://www.gnu.org/software/hyperbole/man/hyperbole.html#Implicit-Button-Link-Types The Hyperbole ML is quiet but friendly and informative. Having examined Hyperbole more broadly, I do wonder if there was more of a policy to treat Orgmode as more of a parrallel concern. Today, there is clearly a proactive effort to align and encourage cross usage. To hear that somebody as accomplished as yourself is dabbling with Hyperbole pleases me no end. It may be worth you visiting one of my knowledge repos here: https://git.sr.ht/~indieterminacy/3q50cqc_oq_interfaces_emacs As well as (over time) checking on on these search parameters for my username: https://git.sr.ht/~indieterminacy/?search=hyperbole https://git.sr.ht/~indieterminacy/?search=koutliner Of note, I should mention my own project, Icebreaker - which has been augmenting the GemText format with terse syntaxes and formats - including Hyperboles Koutliner format (which if I understand may be able to include orgmode tables in its blocks with the new version - I could be wrong here). Here is a WIP parser written in TXR - for parsing Koutliner blocks (with or without my Qiuy annotations) and expressing it as a datalisp: https://git.sr.ht/~indieterminacy/1q20hqh_oqo_parsing_glean I shall be tightening it up soon, including integrating it with a WIP GemText parser (its terser atm but missing a little): https://git.sr.ht/~indieterminacy/1q20hqh_kq_parsing_gemtext An NLNet funded project, I am going to later be exporting some of this information into simple Orgmode syntax as a subset of one of the deliverables. An earlier protyping is covered here in a more recent Fosdem talk: https://fosdem.org/2022/schedule/event/minimalsyntaxes/ Im happy to answer any more questions with regards to this in this thread or elsewhere. It may be worth highlighting a matrix room my Icebreaker project runs to reduce clutter from other MLs. The members there are friendly, knowledgable and use Orgmode for a range of tasks: https://matrix.to/#/#xq_icebreaker:matrix.org You are a clear and concise writer and coder. I would love to hear the outcomes from this exploration. If I recall you are an emacspeak user - which I seem to think has been praised for its integration with Hyperbole so that should be more than enough justification to really get into it. Kind regards, -- Jonathan McHugh indieterminacy@libre.brussels
Re: citations: org-cite vs org-ref 3.0
Hi Juh, juh writes: > [[PGP Signed Part:Undecided]] > Am Sun, Mar 20, 2022 at 08:31:29PM -0400 schrieb John Kitchin: >> For those who need high fidelity LaTeX export like I do, I think >> org-ref is still a superior solution. For everyone else, and >> especially if you do not need sophisticated cross-references and don't >> want the dependencies of org-ref, org-cite is likely the better >> solution. > > Thank you very much for the clarification. > > I am new to both and I need something that works together with ConTeXt > export. Currently I am happy with org-cite. I used org-ref before but > never got good results in ConTeXt export. So I think that I will stick > wit org-cite. > I used to use ConTeXt and have a healthy respect for it. That feedback is good to hear. > Org-mode is not LaTeX but I wonder if it can be a better replacement for > my Markdown-->Pandoc-->EPUB/ConTeXt single source publication process. > Better as I could make more use of org-roam in my writing process. > May I recommend the mininimal Markdown format, GemText? It has a very simple syntax which is easily convertable into Orgmode syntax. It could be useful for projects where the flow starts with simple written prose. > Though I am a long time emacs user putting all these blocks together is > a challenge, still. > > With your words I now see much much clearer. > > juh Jonathan
Re: Virtually prefix headlines according to content
Hi Rodrigo, regarding syntax, it would be cool if you aligned the style to match Emacs' Hyperboles GitHub style: => https://github.com/rswgnu/hyperbole/blob/master/DEMO ``` ** Github (Remote) References For software developers who use Github for publishing and version control, Github links are similar to social media links but reference specific Github web pages. Press the Action Key on github@rswgnu to go to RSW's gihub home page. gh@rswgnu works too. References to project home pages look like this (the / is required): github#/hyperbole (uses user default setting) github#/rswgnu/hyperbole References to specific commits use the # hash symbol and short versions of the git commit hash code: gh#rswgnu/hyperbole/5ae3550 (if include user, must include project) github#hyperbole/5ae3550(project can be given with user default) gh#5ae3550 (user and project defaults are used) An Action Key press on the first commit reference above works because user, project and commit hash code are all included. The second and third versions require the setup of default values, as explained in the commentary near the top of "hib-social.el". Similarly, the same file above explains how to link to pull requests, issues, branches and tags. ``` FYI, Hyperbole has been making improvements with regards to utility with Orgmode. It may be worth you looking into how that functionality is implemented. Kind regards, Jonathan McHugh June 29, 2021 1:27 PM, "Rodrigo Morales" wrote: > * The context > > When taking notes in Org Mode, I usually store Github links of the > repositories that are relevant to the topic I'm taking notes as > headlines. For this reason, I've multiple headlines of the form within > my notes (from my notes on Graph Theory): > > #+BEGIN_SRC org > * cytoscape/cytoscape.js: Library for visualisation and analysis > :PROPERTIES: > :GITHUB: cytoscape/cytoscape.js > :END: > > * simongray/clojure-graph-resources: List of Clojure resources > :PROPERTIES: > :GITHUB: simongray/clojure-graph-resources > :END: > > * DONE What is an undirected graph? ... > * DONE What is a directed graph? ... > #+END_SRC > > * The question > > What I would like to know is whether it is possible to format a headline > by taking into consideration the properties it has. For example, in this > specific scenario, I would like to make all headlines that have a > "GITHUB" to show "GH" before the actual headline (the content would look > like this). > > #+BEGIN_SRC org > * GH cytoscape/cytoscape.js: Library for visualisation and analysis ... > * GH simongray/clojure-graph-resources: List of Clojure resources ... > * TODO What is an undirected graph? ... > * TODO What is a directed graph? ... > #+END_SRC > > The reason why I'm asking this is because thus when collapsing > headlines, I would know that an specific headline is a Github > repository. In general terms, to ease the readibility of my Org Mode > file. > > * Additional context > > A similar behavior is provided by org-num-mode (built-in function), so I > guess that some way to accomplish this would be to look at the > implementation of that mode and try to understand how that is > accomplished. > > Any help is appreciated, > Rodrigo Morales.