diff options
author | Sacha Chua <sacha@sachachua.com> | 2021-12-02 12:46:03 -0500 |
---|---|---|
committer | Sacha Chua <sacha@sachachua.com> | 2021-12-02 12:46:03 -0500 |
commit | 2b47dac39b443210eb0d34ac31257f19c4ab1a64 (patch) | |
tree | a6d5ff7dfd45f90c08615ff4386cc562dac17e59 /2021/talks | |
parent | 6ec428824567a2f8325da742171bff1166b2b5c3 (diff) | |
download | emacsconf-wiki-2b47dac39b443210eb0d34ac31257f19c4ab1a64.tar.xz emacsconf-wiki-2b47dac39b443210eb0d34ac31257f19c4ab1a64.zip |
Add pad stuff
Diffstat (limited to '2021/talks')
-rw-r--r-- | 2021/talks/babel.md | 31 | ||||
-rw-r--r-- | 2021/talks/bidi.md | 30 | ||||
-rw-r--r-- | 2021/talks/bindat.md | 28 | ||||
-rw-r--r-- | 2021/talks/cs.md | 23 | ||||
-rw-r--r-- | 2021/talks/dashboard.md | 28 | ||||
-rw-r--r-- | 2021/talks/day1-close.md | 18 | ||||
-rw-r--r-- | 2021/talks/design.md | 44 | ||||
-rw-r--r-- | 2021/talks/eaf.md | 66 | ||||
-rw-r--r-- | 2021/talks/faster.md | 75 | ||||
-rw-r--r-- | 2021/talks/form.md | 38 | ||||
-rw-r--r-- | 2021/talks/freedom.md | 21 | ||||
-rw-r--r-- | 2021/talks/janitor.md | 50 | ||||
-rw-r--r-- | 2021/talks/model.md | 22 | ||||
-rw-r--r-- | 2021/talks/mold.md | 56 | ||||
-rw-r--r-- | 2021/talks/molecular.md | 33 | ||||
-rw-r--r-- | 2021/talks/montessori.md | 7 | ||||
-rw-r--r-- | 2021/talks/nangulator.md | 19 | ||||
-rw-r--r-- | 2021/talks/native.md | 81 | ||||
-rw-r--r-- | 2021/talks/org-outside.md | 25 | ||||
-rw-r--r-- | 2021/talks/pattern.md | 186 | ||||
-rw-r--r-- | 2021/talks/structural.md | 38 | ||||
-rw-r--r-- | 2021/talks/tech.md | 14 | ||||
-rw-r--r-- | 2021/talks/telega.md | 12 | ||||
-rw-r--r-- | 2021/talks/ui.md | 59 |
24 files changed, 967 insertions, 37 deletions
diff --git a/2021/talks/babel.md b/2021/talks/babel.md index 19fa63f5..91ce2813 100644 --- a/2021/talks/babel.md +++ b/2021/talks/babel.md @@ -54,6 +54,28 @@ would also like to be inspired by other people's babel workflows! IRC nick: asilata +Pad: + +- Q1: The talk was amazing thanks! I show the img inline in the Org + file with org-toggle-inline-images, maybe useful to others too. + - A: Thanks! I do that if I want to look at previews, too, but + sometimes it slows down my document. Any tips for that? +- Q2: I always tried to use Tikz for showing diagrams in Org Mode + documents, but dot code blocks definitively make drawing graphics + easier! Thanks for sharing! + - Remark by Karl: In my personal workflows, I love the abstraction + layer of <https://plantuml.com/> + +From BBB: + +- Don't have a question, just to say inspiring to see how you use org-mode + babel. Thx! +- Ha, a question, is your setup online somewhere? +- Asilata Bapat: <https://github.com/asilata/emacsconf2021> +- thanks so much for the presentation and sharing the details of your workflow +- I particularly appreciated your "causal use" of skel :D + +IRC: + - the export-setup block is a great use case for orgstrap :) - asilata: I was just thinking that after the orgstrap presentation :) - Man I was just wondering how to write LateX in Emacs this is incredible. @@ -69,13 +91,10 @@ IRC nick: asilata - some very nice examples of wicked-cool org stuff there :) - I also use python to generate latex from babel so that I don't mess things up -From BBB: +Links: -- Don't have a question, just to say inspiring to see how you use org-mode + babel. Thx! -- Ha, a question, is your setup online somewhere? -- Asilata Bapat: <https://github.com/asilata/emacsconf2021> -- thanks so much for the presentation and sharing the details of your workflow -- I particularly appreciated your "causal use" of skel :D +- <https://asilata.github.io/ggm/2021/> +- <https://github.com/asilata/emacsconf2021/> # Speaker information - Name pronunciation: /ˈəsɪʟət̪ɑ ˈbɑpəʈ/ UH-si-luh-tah BAH-putt diff --git a/2021/talks/bidi.md b/2021/talks/bidi.md index 6038cf48..8044af56 100644 --- a/2021/talks/bidi.md +++ b/2021/talks/bidi.md @@ -127,6 +127,36 @@ of bidi on existing emacs applications, including: # Discussion +Pad: + +- Q1: is there any additions that you have to add to emacs for using + non-English/latin characters or does it work mostly out of the box? + - A: \[Prot\] : I only set the default-input-method to \"greek\". + Then switch to it with C-\\ (toggle-input-method) +- Q2: One stuggle I have with this input method option is, why not use + an IME that\'s installed on the host OS? + - A:I live inside Emacs, and that the host OS typically provides + an unintelligent keyboard, and Farsi and transliterate BANAN + provides multi-character input, which is a lot more powerful. +- Q3:Do you write any lisp or other code/markup with these scripts? + (Sorry if I missed you mentioning this.) + - A:No, everything is in pure Elisp. +- Q4: What alternatives have you looked into for solving the problem + related to your markup language idea? What isn\'t achieved by them? + - A:The way that Emacs has evovled about properties about string + and text. And I suggest we adopt the \"web\" model for Emacs + application development. If you step back and look at where we + are, there\'s no such thing as no \'emacs native markup language + mode\' similar to HTML for web. Emacs\'s display engine is + capable of doing everything, but we\'re not exposing \.... + (sorry, missed this part) + - Makes sense to me, thanks! +- Q5: bandali: genenrally curious about the state of writing/reading + Persian in the TTY +- Q6:Does your input method also solves problems with exporting + doctuments ? usually when you exporting a Persian-Enlight doc it + redirects the Persian scripts to LTR + Questions/comments: - Thanks for giving such a nice presentation of the Emacs input method framework! I'm just curious about if you've made any plans for setting up your markup language? I know you said you hadn't written any code for it yet. diff --git a/2021/talks/bindat.md b/2021/talks/bindat.md index 87da714b..e39603a5 100644 --- a/2021/talks/bindat.md +++ b/2021/talks/bindat.md @@ -25,6 +25,34 @@ show how we saved those. Not recommended for birds. # Discussion +- Q1: bindat seems very similar to GNU Poke (except that GNU Poke is a + superset, and then some, with a different syntax). I\'m wondering if + it might be good to add a bindat variant that translates to/from + Poke if need be (using libpoke), for sheer insane blazing + native-code JITted speed. (And, later, maybe letting bindat gain + some of the insanely expressive capabilities GNU Poke has got). Its + use of eval blocked this in times past. but now\... + - A:GNU Poke is indeed the natural evolution, and is much more + powerful. Given the fairly little use of BinDat so far, I\'m + not sure there will be enough motivation to give access to GNU + Poke from Emacs, tho. One of the main benefits of using GNU + Poke would probably be that lots of formats are already + available for GNU Poke, so you could directly re-use them. +- Q2: Is your dog\'s name something Lisp or PL related\...? :) + - A:Winnie? I don\'t think so, no (we didn\'t choose the name, in + any case) +- Q3: This looks amazing! Is it merged into mainline Emacs, a patch, + an external library? + - A: It\'s in Emacs-28 +- Q4: Are there benchmarks of this vs. the older bindat? + - A:There is a benchmark for it in the \`elisp-benchmarks\` +- Q5: Do you know of any CL or Scheme libs similar to bindat.el? + - A: No, but I\'d be interested to hear about it if someone else + does. +- Q7: You are a hero of kittens everywhere. Do you have any feline + pets as well? :) + - A: Not yet. If you\'re near Montreal and you have a kitten for + me, I\'m interested - I *hope* cl-loop is more efficient than building a bunch of intermediate lists when you chain map/filter/reduce operations. diff --git a/2021/talks/cs.md b/2021/talks/cs.md index 931b323e..3ff1653f 100644 --- a/2021/talks/cs.md +++ b/2021/talks/cs.md @@ -8,8 +8,6 @@ # One effective CS grad student workflow Greg Coladonato - - [[!inline pages="internal(2021/info/cs-schedule)" raw="yes"]] When I was an undergrad, I learned many things, most of @@ -24,6 +22,27 @@ inspire others to build workflows that make them more productive. IRC nick: gcoladon +Pad: + +- Q1: Can org-roam also be used with EPUB files? It would be nice to + make notes for books as well. + - A: Interesting question \-- I\'ve never considered doing it that + way. When there is a textbook I want to take notes on, I find + the PDF for the textbook and split it into one PDF file per + section or chapter, and then use those PDFs just like any other + PDFs. What do you like about EPUB files? +- Q2: How does pdf-tools not being maintained as it used to affect + you. Since emacs have replaced image magic library and pdf-tools is + dependent on it how are you going to transition your work flow? + - A: Hmm I have not considered this at all. Is there some time in + the near future at which pdf-tools will stop working on the + current version of Emacs? I was not aware of that if that\'s the + case. Thanks for bringing that to my attention! +- Q3: Your workflow is very impressive. Would it be possible that you + share your emacs configuration files? (via email) + - A: Yes, I will work on collecting up the bits of elisp that make + up that configuration and share it , probably via Github gist. + BBB: - I'm trying to develop one, but haven't spent enough time on it. (My interests are mostly related to programming language standards and history, and the PDFs are generally enormous and inscrutable.) diff --git a/2021/talks/dashboard.md b/2021/talks/dashboard.md index d20c3804..8cf95514 100644 --- a/2021/talks/dashboard.md +++ b/2021/talks/dashboard.md @@ -54,6 +54,24 @@ easily managed from Emacs within a single Org-Mode file. # Discussion +- Q1: I know almost nothing about this stuff so please forgive my + ignorance (Actually, I did I dip a toe into some basic jail + breakage a few years ago and was delighted/intimidated to find a + capable community on mobilereads, as you mentioned; I was living + cheaply at the time, and having KUAL and KO and kterm around + improved my QOL considerably.) As for your talk, I enjoyed it very + much. I was wondering if you\'d given any thought to possible + real-world applications for your dashboards. Just spitballing a + bit, a few possibilities came to mind, like perhaps disseminating + information on a work floor or lab setting where cable runs or + temperature increases from LCD monitors might be unwelcome; or + perhaps doing so in more a public setting like a refugee or + detention camp where power might be limited and where mounting TVs + behind protective glass or restraining them with cables might be + bad for morale. Also, have you thought about putting together + and/or selling \"kits\" so folks with limited time could acquire a + basic setup as a turnkey solution (perhaps with some assembly + required)? Thanks. - Hi. Lovely idea to use an ebook reader as dashboard. Are all kindle devices supported or only older ones? - Mehmet Tekman: I recorded this in two parts: with caffeine, and without - As soon as i can get my hands on a kindle i will give this a try. Lovely Idea. @@ -76,6 +94,16 @@ easily managed from Emacs within a single Org-Mode file. - Mehmet Tekman: Welcome! For a more stripped down version I can really heavily recommend the kindle-dashboard from Pascal Widdershoven - Mehmet Tekman: And yep -- I can definitely relate! +Links: + +- Main Repo : <https://gitlab.com/mtekman/kindle-sync> +- Mobile Read Forum (Kindle) : + <https://www.mobileread.com/forums/showthread.php?t=180113> +- Mentioned Repos : + - <https://gitlab.com/mtekman/org-calories.el> + - <https://github.com/takaxp/org-tree-slide> + - <https://github.com/pascalw/kindle-dash> + # Outline - 5-10 minutes: diff --git a/2021/talks/day1-close.md b/2021/talks/day1-close.md index 7c825a63..0425d237 100644 --- a/2021/talks/day1-close.md +++ b/2021/talks/day1-close.md @@ -21,12 +21,20 @@ # Discussion +- Q1: To anyone who can answer this, what is a good method to request + speakers for next EmacsConf? + - A: Encourage the speaker directly when you see the next call for proposals. +- Q3: Is there a way to donate to the volunteers of EmacsConf? + - A: sachac: That's very thoughtful of you! We cover EmacsConf costs out of pocket. I think the speakers have some support links on their pages. So if you particularly liked a talk, please feel free to e-mail a speaker or see if they have a tip jar! + - sachac: also, if you want to contribute time by volunteering to help with EmacsConf this year or next year, that would be even better =) For example, it was super-helpful to have a couple of volunteers help me caption all the day 1 talks and most of the day 2 talks this year, _and_ they got early access to all the talks and could caption the talks they wanted. We did the captioning using subed.el in Emacs, using the speakers' Org files or autogenerated captions from Youtube as starting points. + - sachac: for example, if some people could help with streaming alternate tracks, we could have longer talks and longer Q&As, because I think we're just going to have more and more awesome Emacs talks, and I think we're reaching the limit of how much we can physically squeeze into two days ;) so our current strategy is lots of short talks/demos, and then people can learn more about the stuff that they find interesting. but it would be so nice to have more deep dives too. + - I think having alternate tracks is a great idea sachac, I think I noticed that speakers were very rushed because time was tight, and it'd be cool to that have that alleviated. And it would likely reduce stress for you guys so that technical issues aren't as dire. + - maybe if we can figure out some topics that would be good to dive deeper into (attendee feedback) that could be looked in to +- Q4: How can we sign up to volunteer for next year if there is need? + - A: <https://emacsconf.org/2021/contribute/> has some ideas and + an e-mail address you can reach us at. + - Is there any documentation anywhere how to give financial support to EmacsConf? - - sachac: That's very thoughtful of you! We cover EmacsConf costs out of pocket. I think the speakers have some support links on their pages. So if you particularly liked a talk, please feel free to e-mail a speaker or see if they have a tip jar! - - sachac: also, if you want to contribute time by volunteering to help with EmacsConf this year or next year, that would be even better =) For example, it was super-helpful to have a couple of volunteers help me caption all the day 1 talks and most of the day 2 talks this year, _and_ they got early access to all the talks and could caption the talks they wanted. We did the captioning using subed.el in Emacs, using the speakers' Org files or autogenerated captions from Youtube as starting points. - - sachac: for example, if some people could help with streaming alternate tracks, we could have longer talks and longer Q&As, because I think we're just going to have more and more awesome Emacs talks, and I think we're reaching the limit of how much we can physically squeeze into two days ;) so our current strategy is lots of short talks/demos, and then people can learn more about the stuff that they find interesting. but it would be so nice to have more deep dives too. - - I think having alternate tracks is a great idea sachac, I think I noticed that speakers were very rushed because time was tight, and it'd be cool to that have that alleviated. And it would likely reduce stress for you guys so that technical issues aren't as dire. - - maybe if we can figure out some topics that would be good to dive deeper into (attendee feedback) that could be looked in to - maybe each presentation should allocated five or ten minutes for a Q&A session afterwards before the next presentation starts. - the subtitles are really good! you can tell it was human-written :) even nasty names are right - Love the citations in subtitles. diff --git a/2021/talks/design.md b/2021/talks/design.md index 943114b4..3ff29daf 100644 --- a/2021/talks/design.md +++ b/2021/talks/design.md @@ -38,6 +38,50 @@ alternatives using GNU Emacs. # Discussion +- Q1: Do you have any plans for somewhat scientific testing of colors, + layout, etc? + - A: There are already some studies on the usefulness of + colorization but they\'re not consistent. I would love to make a + study with some students but it\'s a bit beyond my expertise. +- Q2: I have really enjoyed looking at the development of NANO emacs. + The only thing I slightly disagree with are the colours: on my + system some of them are extremely low-contrast and faded. Otherwise + the design is fantastic! Do you have any comments on the colour + scheme? + - A: I think you\'re right and I might need to revise the color + scheme, taking inspiration (or copying) some of the colors from + modus themes since Prot designed proper colors backed by + scientific theory. +- Q3: Are your examples hand-selected from design-perspective or does + \"everything\" look good automatically with your setup? + - A: Screenshots I\'ve shown are available on GitHub and you + should obtain the same if you install them. Some parts come from + my personal configuration (org-agenda and mu4e mostly) but I can + post the code if you\'re interested. +- Q4: Should we use monocromatic colour schemes over full-coloured + ones? + - A: I\'m not sure I can answer this question, I would need to + search if there are any recommendation on that matter. +- Q5: Are there ways that emacs could be improved to make these kinds + of usability experiments easier and more accessible to users? For + example making it easier to switch between such experiments? + - A: <https://github.com/plexus/chemacs> is a perfect answer. It + allows you to switch from one configuration to another without + messing up your own. +- Q6: Would it be possible to integrate nano emacs design to default + emacs design? What would the pushback be for integrating \"better\" + UI changes? + - A: I think Emacs would benefit from better defaults and I would + vote for modus themes to be the new default theme. Next would be + to package Emacs with a decent font (e.g. Julia Mono, Iosevka, + Inconsolata, Victor Mono) that would really help changing the + first impression of new users. Last would be to tweak a the + mode-line a bit. +- Q7:Spellchecking now highlights the whole word, to me this is a bit + too emphasized. Are there plans to make these less intrusive; i.e. + underline or similar? (And no, no bright red crinkles ;) + - A: Good point, can you open an issuer on GitHub? + - What's this theme? - i'll be sharing this with my friends that praise on vscode - Wow, incredible analysis of that editor. diff --git a/2021/talks/eaf.md b/2021/talks/eaf.md index 78a52c78..6fc946a6 100644 --- a/2021/talks/eaf.md +++ b/2021/talks/eaf.md @@ -19,6 +19,50 @@ last year, this talk will briefly go over them. IRC nick: matthewzmd +- Q1: Any plans for supporting other languages? It\'d be great to use + EAF to offload processing to Common Lisp, for example. + - A: You\'re able to use Python & JavaScrpt/Vue to extend on top + of Elisp, it is so far enough (Python for Qt apps and JS for web + apps). Currently I don\'t see a clear advantage of using Common + Lisp as well, but there could definitely be a support in theory. +- Q2: is there an eaf-app that\'s not a bootstrapping nightmare? + (having Vue as a dependency, eg) + - A: I don\'t fully understand what you mean by \"bootstrapping + nightmare\", all these dependencies are system dependencies that + you install like any other system dependency, it doesn\'t slow + the Emacs startup nor the system startup. But if you\'re asking + for an app suggestion with lightweight dependencies without JS + or Vue dependencies, the popular EAF Browser and EAF PDF Viewer + are cool app options. +- Q3: Are there security implications to having a browser in emacs? + - A \[opalvaults\]: With how Emacs deals with things like + GPG/pass/etc. I feel like it\'s probably as secure as you make + it? + - A: \[matthewzmd\] the browser application is independent from + emacs itself, you\'re using a browser in emacs, but the browser + is not actually \*in\* emacs. The browser is QtWebEngine, a + modified Chromium without Google stuff, it is as safe as a + Chromium can be. +- Q4: maybe i misunderstood, but is every eaf app essentially embedded + QT? + - A: yes, it\'s built upon qt-webengine + - A: Yes, it uses PyQt5 and it\'s essentially painting the Qt + frame on top of emacs, simulating a buffer. EPC is used for + Elisp \<-\> Python \<-\> JS communication so that you can extend + Emacs in various langauges + - Q: I guess/hope this is using qtwebengine, not qtwebkit? + - A: right, qtwebengine. If you wanna dig more into the + internals of EAF, I suggest you to read this part of the + Wiki + (<https://github.com/emacs-eaf/emacs-application-framework/wiki/Hacking)> + or my talk from last year + (<https://emacsconf.org/2020/talks/34/)> +- Q5: Can the EAF dependencies be made into dynamically loadable + modules for Emacs, so there will be no need to rebuilt Emacs? + - A: There is no need to rebuilt Emacs, they\'re simply + dependencies that you can install using the system package + managers (pacman, apt, etc), npm install and pip install + - One thing I never tried watching all this is viewing PDF files within emacs. - is there an eaf-app that's not a bootstrapping nightmare? I suppose having Vue as dependency makes that not so for a large number - This is pretty cool, from a security standpoint, I'm not sure I'd want a web browser in emacs all that much. @@ -31,6 +75,28 @@ IRC nick: matthewzmd - I guess/hope this is using qtwebengine, not qtwebkit? ('cos qtwebkit is unmaintained and by now massively insecure) - matthewzmd: if you wanna dig more into the internals of EAF, I suggest you to read this part of the Wiki (<https://github.com/emacs-eaf/emacs-application-framework/wiki/Hacking>) or my talk from last year (<https://emacsconf.org/2020/talks/34/>) +Links and other notes: + +- you might find the this bench-multi-lexical macro useful: + <https://alphapapa.github.io/emacs-package-dev-handbook/#outline-container-Optimization> + or + <https://github.com/alphapapa/emacs-package-dev-handbook#bench-multi-lexical> +- <https://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/emacs-lisp/elp.el> +- <https://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/emacs-lisp/benchmark.el> +- \"Use hash tables kids!\" +- PSA: buffer-local-value is generally much faster than + with-current-buffer if all you need to do is get the value of a + variable in a buffer +- EIEIO\'s object construction is slow because it goes through + \`make-instance\` which is a generic function and it itself calls + various other generic functions, so there\'s a lot of cl-generic + dispatch overhead; and then there\'s the fact that the (keyword) + arguments are laboriously parsed at run-time so it itself is slow as + well. +- There is a pending patch to represent the set of a buffer\'s + overlays as an AAtree or somesuch. +- <https://media.emacsconf.org/2021/emacsconf-2021-faster--optimizing-emacs-lisp-code--dmitry-gutov.el> + [[!inline pages="internal(2021/captions/eaf)" raw="yes"]] [[!inline pages="internal(2021/info/eaf-nav)" raw="yes"]] diff --git a/2021/talks/faster.md b/2021/talks/faster.md index e8a13489..220a715d 100644 --- a/2021/talks/faster.md +++ b/2021/talks/faster.md @@ -30,6 +30,59 @@ Preferred contact info | <dgutov@yandex.ru> IRC nick: dgutov +Pad: + +- Q1: Why are overlays slow compared to text-properties? I (believe + to) understand that it is (in part only?) due to \"get element n in + vector vs list\". If so, then why don\'t we change that? There could + be a text-property called \"overlays\", so that lookup would also be + like in a vector. What benefits does the datastructure currently + used for overlays have that make that undesirable? Would a mixed + approach make sense; i.e. allow non-modifiyng lookups to use the + \"cached\" overlays that are stored in the \"overlay\" text-property + and make text-inserting and overlay-moving actions store in the + currently used datastructure as well as in the indirect + text-property=\>overlay cache? + - A: \"There is a pending patch to represent the set of a + buffer\'s overlays as an AAtree or somesuch..\" + - Sounds promising :) + - For more details, check out these threads: + - <https://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00616.html> + - <https://lists.gnu.org/archive/html/emacs-devel/2016-11/msg00475.html> + - <https://lists.gnu.org/archive/html/emacs-devel/2018-03/msg00565.html> + - <https://lists.gnu.org/archive/html/emacs-devel/2019-12/msg00115.html> +- Q2: As a non-programmer, would these sorts of optimizations be + helpful to do on a personal init.el file? + - A: Probably not + - Though too much mode-line customisation may slow things down. +- Q3: What\'s a good approach for benchmarking destructive + operations? If you delete elements from a list in-place, all + subsequent runs will be artificially fast. + - A: There is an example of a comparison between operations from + different libraries in the example file provided by the talk. + Particularly check the benchmarks for delete and remove + operations (destructive and non-destructive, respectively). +- Q4:Cl-lib constructors, getters, and setters usually expand into + multiple levels of let-bindings. AFAIU, every let-binding is an + extra memory allocation. Do you recommend avoiding cl-defstruct in + favour of \"pure\" lists/vectors? + - A: basically no. if defstruct allows you to organise better, go + ahead. +- Q5: Is it possible to optimize some emacs packages by making use of + code compiled from other languages (like C or Common Lisp) ((i.e. in + the same way python is able to import C code))? + - A: yes emacs modules allow you to run C or Rust, transitioning + between emacs proper and module (passing the data) might slow + things down? Because of copying that\'s necessary to avoid + issues with gc. +- Q6:You mentioned that overlays are much slower compared to text + properties. What about text properties vs. buffer-local variables to + store position cache? + - A: I haven\'t measured it but offhand I\'m going to guess that + buffer-local variables will be faster. + - Also depends on the structure you\'re going to use for the + cache - is it a single cons, or a list, or a tree, etc. + BBB: - AVL tree @@ -53,6 +106,28 @@ IRC: - For more info about the performance of overlays vs text properties data structure, there's an Emacs TODO about it. C-h C-t and search for "Move overlays to intervals.c". - cl-defstruct getters/setters have compiler macros that expand into simple aref calls on vectors, they are very efficient +Links: + +- you might find the this bench-multi-lexical macro useful: + <https://alphapapa.github.io/emacs-package-dev-handbook/#outline-container-Optimization> + or + <https://github.com/alphapapa/emacs-package-dev-handbook#bench-multi-lexical> +- <https://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/emacs-lisp/elp.el> +- <https://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/emacs-lisp/benchmark.el> +- \"Use hash tables kids!\" +- PSA: buffer-local-value is generally much faster than + with-current-buffer if all you need to do is get the value of a + variable in a buffer +- EIEIO\'s object construction is slow because it goes through + \`make-instance\` which is a generic function and it itself calls + various other generic functions, so there\'s a lot of cl-generic + dispatch overhead; and then there\'s the fact that the (keyword) + arguments are laboriously parsed at run-time so it itself is slow as + well. +- There is a pending patch to represent the set of a buffer\'s + overlays as an AAtree or somesuch. +- <https://media.emacsconf.org/2021/emacsconf-2021-faster--optimizing-emacs-lisp-code--dmitry-gutov.el> + [[!inline pages="internal(2021/captions/faster)" raw="yes"]] [[!inline pages="internal(2021/info/faster-nav)" raw="yes"]] diff --git a/2021/talks/form.md b/2021/talks/form.md index 093887ed..291cf3cc 100644 --- a/2021/talks/form.md +++ b/2021/talks/form.md @@ -28,6 +28,40 @@ modular, flexible Emacs Lisp. IRC nick: ieure +- Q2: AFAIK, EIEIO is generally slower than, e.g. cl-defstructs. When + do you think EIEIO is not suitable for performance reasons? + - A: I agree with Dmitry: first make it work, then make it fast. + I don\'t think there\'s a blanket reason not to use EIEIO, but + definitely profile if you\'re using it in a performance-critical + context. EXWM is one project that uses EIEIO extensively and + seems to perform well, so I don\'t think it\'s off-limits for + performance-critical code. +- Q3: Do you have any tips about introspection? e.g. IIRC there\'s an + EIEIO introspection facility, though it may be somewhat primitive. + - A: It is somewhat primitive, but seems to work okay + (<https://www.gnu.org/software/emacs/manual/html_node/eieio/Introspection.html)>. + I haven\'t found a need for anything fancier (yet). +- Q4: Have you used any of the EIEIO-related serialization tools? + IIRC there are some limitations with regard to printable/readable + values. + - A: I haven\'t had call for this, but + <https://www.gnu.org/software/emacs/manual/html_mono/eieio.html#eieio_002dpersistent> + is the mechanism (for anyone wondering) +- Q5: I did not get how generic functions can work with non class + objects + - A: Dynamic dispatch is very powerful! +- Q6:So with that Emacs is on pair with Smalltalk development + environments now (?) + - A: Not very familiar +- Q7: Most of what you presented can be done without \`defclass\`. + AFAICT, the only exception is \*multiple\* inheritance (since + \`cl-defstruct\` also supports single inheritance via \`:include\`). + - A: Yes, you can mix and match structs/objects or any other + type. You need classes if you want the EIEIO customization + editing facility or MI. I think also \`initialize-instance\` is + class-only, so you need classes if you have to do some kinds of + complex (cross-slot) initializtaion. + - I didn't know that custom.el works with EIEIO that way, very nice - Dang Ian. What a talk, great demos. - Wow, that's a great talk. @@ -45,7 +79,11 @@ IRC nick: ieure - ieure: This is the thing that implements (thing (eql :whatever)) specialization, should be a good starting point if you want (thing (string-match-p "^foo")): <https://git.savannah.gnu.org/cgit/emacs.git/tree/lisp/emacs-lisp/cl-generic.el#n1164> - thanks for the pointer, but I think I have some more pressing cl-defgeneric reimplementations to make before I touch that - ieure: Extremely fair. One thing I didn't get to touch on is that you can extend generic functions from anywhere. So you don't have to patch up cl-generic.el, you can define a new method for a generic function defined anywhere, in any file. Which rules. +- This is not a question: Brilliant title for the presentation. :) + +Links: +- <https://www.gnu.org/software/emacs/manual/html_mono/eieio.html> # Outline - What is EIEIO? diff --git a/2021/talks/freedom.md b/2021/talks/freedom.md index 9328e7ae..b1cc2abe 100644 --- a/2021/talks/freedom.md +++ b/2021/talks/freedom.md @@ -40,9 +40,30 @@ by it and thus reserve the right to modify it ahead of the main event. Questions: +- Q1: (Unrelated, feel free not to answer): Is there an Emacs or + GNU/FSF group in Cyprus? I know it\'s a politically motivated + country, with a strong student-base, so I\'m interested whether the + Emacs circles and political circles have any overlap. +- Q2: What do you think is the most effecitve way to demonstrate the + value of software freedom to non-techincal people? For a person who + can\'t program (or doesn\'t want to learn) the freedom seems less + immediate. +- Q3: your quote \"emacs makes emergent workflow\'s possible\" reminds + me very much of the previous talk (Emacs as Design Pattern + Learning). Can you share/reflect how you go about making/designing + your personal workflows? - are "Prometheas" & "Prometheus" both forms acceptable? Is one "truer" than the other? - protesilaos: Both are correct. The former is modern Greek. +Other notes: + +- Emacs documentation is first class. +- Emacs is inclusive to both new users and experienced users alike, + which empowers all users. +- Knowledge is to be shared not hoarded.. +- Emacs is an ecosystem you have to spend a lot of time with to fully + appreciate. + Feedback: - "I'll definitly use this talk to try to convert more colleagues :D (not joking)" diff --git a/2021/talks/janitor.md b/2021/talks/janitor.md index 5fb6b78c..aa63e903 100644 --- a/2021/talks/janitor.md +++ b/2021/talks/janitor.md @@ -21,6 +21,56 @@ Because of a reckless former Emacs maintainer that shall # Discussion +Pad: + +- Q1: How did you narrow to two specific areas in a single buffer when + compering the two functions. I can be handy + - A:In this case I just split the window into 2. In other cases I + use \`M-x smerge-make-conflict\`. Oh wait, did you really mean + \"narrow\"? I don\'t use narrowing, I only use + outline-minor-mode (with reveal-mode to un-hide as I move) + - I will look into both work flows they look very handy. Thanks. +- Q2: Could you further elaborate on quoting functions with \#\'fun + (aka (function fun)) instead of \'fun (aka (quote fun))? + - A:Not sure what further elaboration you want (e.g. \"why?\" or + \"when?\") + - I would like why? Is it just style since Emacs understand both, + or not? + - The why is to be more explicit (i.e. a form of documentation, so + as a reader I can see that this refers to the function rather + than being just a use of a symbol for other purposes)). The + compiler knows about it and will hence give you a warning if you + refer this way to a function it\'s not aware of. There are also + corner cases where the two behave differently, mostly when + referring to a function defined via \`cl-flet\` or \`cl-labels\` + (or \`named-let\`, \...) + - Thanks! +- Q3: Stefan, you mentioned a lot of conventions, I really like to + read more about them: Where can I find a list of these conventions + (like \#\'function for functions )? Is there a page or info about + ELisp conventions used nowadays? + - A:Good question. We have several of them documented in the + ELisp reference manual (searching for \"convention\" should get + you there), but that only covers those conventions with which + Emacs maintainers agree. Others are much less clearly + formalized. I seem to remember someone collecting such + information and making a webpage out of it, but I can\'t + remember where nor who it was. + - Probably, + <https://github.com/alphapapa/emacs-package-dev-handbook> + - Thanks! I\'ll take a look at the reference manual and search for + this information. 👍 +- Q4: Stefan, that was really amazing to watch. After the changes you + made, how confident are you that the package still works as + intended? It seems as though there might be some room for errors + that the byte compiler wouldn\'t necessarily catch. + - A: I think for those three packages I\'m quite confident that + they should work as well as before. Not because the compiler + did not complain but because the changes were sufficiently + simple. Sadly in ELisp, I can\'t rely on the compiler to catch + errors. I can only use it ask it to point me to suspicious + code, and I know that it will miss some. + BBB: - I couldn't help but note that in the C world we are more and more making large-scale changes like this to the whole tree at once using tools like coccinelle. it feels like the regular structure of Lisp would lend itself to this very well... It feels like a better use of your time, is all :) diff --git a/2021/talks/model.md b/2021/talks/model.md index 17ee1022..a73d69b8 100644 --- a/2021/talks/model.md +++ b/2021/talks/model.md @@ -53,7 +53,27 @@ who don't possess the neccessarry technical skills to adjust it themselves, but are keen to learn it, and potentially how to attract more users to greater productivity, computer literacy and the ideas of free software. - +# Discussion + +- Q1: What is the URL of your web page? I guess the URL on your slide + is currently not available (see links below). + - A: The URL written is correct, but unfortunately the website is + down due to some misconfiguration and will be back soon. You can + contact me at laszlo.lk\@protonmail.com until it is resolved +- Q2: It is important to note that for EAF to extend to the web apps + you mentioned (Asana, Jira) in a deeper way than just displaying the + web app using EAF Browser, the APIs of these web apps need to be + exposed too. + - A:Exactly, otherwise only a one way update would be possible. As + long as they have integration with other external tools, there + must be a closed API documentation for making it work. + +Links: + +- different form + <https://github.com/emacs-eaf/emacs-application-framework> in that + the goal here is not to do everything in emacs buffers. +- <https://github.com/ag91/emacs-with-nyxt> # Outline diff --git a/2021/talks/mold.md b/2021/talks/mold.md index 95e55e03..d01e3a3f 100644 --- a/2021/talks/mold.md +++ b/2021/talks/mold.md @@ -39,12 +39,68 @@ You can learn more about this at: <https://github.com/ag91/moldable-emacs> IRC nick: `andrea +Pad: + +- Q1: How to find a balance between «generic» molds that do not + provide specific enough info vs writing a new mold for every new + query/question? + - A: You can write molds that are private for your special + problem. I created molds for my work that I don\'t share: like + find the stories I am working on and how long time I spent on + tasks lately. Also, moldable-emacs is to make these tools easy + to write, so you should free to throw away tools when you need + them once only. If I believe a tool is a good start for many + other tools, I put them among the core molds, else if I use them + often I store them as contrib. If it is a one off, I throw it + away. +- Q2: How would you evaluate this workflow for package managemnt in + large independent codebases. Can one integrate it with code sematic + analyzers to make for a better work flow? + - A: moldable-emacs is about creating custom tools you can apply + to your situation. I started experimenting with molding NPM json + packages + security data from OWASP to view/display security + issues in my packages to my colleagues in the past. + moldable-emacs gives me the infrastructure to answer my question + about security, and I now started asking myself about + architecture coherence, so I have scaled up tree-sitter over + projects to check that modules don\'t use packages from other + modules. By that I mean that as long as your code semantic + analyzers output data, you can mold that (context) data to tell + your story (answer the question you have). Does this answer your + question? + - You answered it very well. I am also a security auditor for + multiple development teams. And I am incharge of code analysis + in an understaffed security team. So your usecase example got my + usecase spot on. + - Cool! For now you can define insecure patterns using tree-sitter + expressions (for example, I find a variable called \"password\" + in the code set to a string. For the package.json I linked to + OWASP API and looped through the packages using tree-sitter + tokens. I didn\'t get there, but I wanted to see an Org Mode + buffer with the list of the most vulnerable deps highlighted by + color + how to solve them: so I could pass them to developers to + resolve them (I am a dev, but sometimes others don\'t know about + security risks). + - Often molds are to tell stories to others. + - This is probably the most important thing for my personal + usecase. Thank you very much. Now it\'s my turn to learn it and + use it well. + - Please open issues or email me, and I will try to help if you + like how it works :) + - I\'ll do so. + +IRC: + - cool...so essentially you are developing a text based version of Glamorous Toolkit. - `andrea: yup, but only because I don't have good imaging in Emacs yet (but with tui.el...) - your talk helped a lot with that though. I'd been seeing posts from you for a little while, but now I "get it" - `andrea: yeah sorry, I am still building my vision: it may look I have been all over the place (image recognition, editing css, parse English lately), but the common thread is the easing of creation of micro tools that help me tell the stories I need - I love your approach of mining other 'nuggets' from other contexts and bringing them to Emacs. I really look forward to looking in to your work and see if I can implement some of it. Thank you so much for your talk. +Links: + +- Telling a story about code using buffer views <https://moldabledevelopment.com/> + # Outline - 5-10 minutes: quick demo of moldable-emacs diff --git a/2021/talks/molecular.md b/2021/talks/molecular.md index 8dee0a28..9e5490c9 100644 --- a/2021/talks/molecular.md +++ b/2021/talks/molecular.md @@ -8,8 +8,6 @@ # Reproducible molecular graphics with Org-mode Blaine Mooers - - [[!inline pages="internal(2021/info/molecular-schedule)" raw="yes"]] Research papers in structural biology should include the code used to make @@ -48,6 +46,37 @@ from Org-mode documents. # Discussion +Pad: + +- Q1: Do you also do any hydrogen-bond analysis in your workflows? + Also, could your snippet library be extended for other non-python + simulation programs like GROMAC? + - A: Yes, i have a snippet that generate publication qualtiy + hydrogen bonds. Yes, I have thought of making snippet library + molecular simulation like Gromacs and AMNER and drug design + software packages like autodock Vvna and rdkit. They can help + lower the barrier to entry. I made library for crystallographic + computing with CCTBX for use in Jupyter. I should make it + available for org-mode. +- Q2: We\'ve seen a few talks regarding managing academic papers and + citations in emacs/org, what does your workflow look like? + - A: I switched to Emacs as my primary editor 3 months ago. I have + yet to write a paper in Org. I am very comfortable with LaTeX + and I have been writing my papers on Overleaf in LaTeX for + several years. I used bibtex and JabRef to manage by refernces. + I have started playing by org-ref. It looks super promising. +- Q3: Hi Blain, you mentioned that you have been able to come back to + a file years later, how do you manage the environment that the org + file executes in? + - A: Good question. The PyMOL code is good for years so the images + should be reproducible regardless of the version of org. + PyMOL\'s domain specific language is very stable. The Python + code largely just wraps around the DSL code. +- Q4: Have you used Org Mode and pyMOL for publications? Could you + share a link to any of them? + - A: I have yet to use org in a publication. The first step will + be to use it for supplemental material. + BBB discussion: - We've seen a few talks regarding managing academic papers and citations in emacs/org, what does your workflow look like? diff --git a/2021/talks/montessori.md b/2021/talks/montessori.md index 4086ab68..e20888fe 100644 --- a/2021/talks/montessori.md +++ b/2021/talks/montessori.md @@ -176,6 +176,13 @@ Feedback: - and Smalltalk as a platform shares a lot with Emacs, both are a world where a user lives and develops - garjola: yeah...the whole thing about discovery, figuring things out for yourself, having an epiphany. +Links and other notes: + +- <https://github.com/takaxp/org-tree-slide> +- <grant@churls.world> +- \@kheya\@mastodon.social +- <http://blog.shoshin.digital/> (there\'s not really anything there + xD) # Outline diff --git a/2021/talks/nangulator.md b/2021/talks/nangulator.md index 93734666..2d328b11 100644 --- a/2021/talks/nangulator.md +++ b/2021/talks/nangulator.md @@ -23,6 +23,25 @@ N-Angulator is the genesis, to wit, the "Model-T," of such a program. IRC nick: N-Angulator +- Q1: Can this be considered as a UI to manage hardlinks with + additional functionality such as listing the hardlinks of a single + file? + - A: that is part of what it could be considered. I see it more + as re-imagining the Unix/Linux file system as a data cloud +- Q2: Remark: I did a PhD on that very same topic: + <https://karl-voit.at/tagstore/en/papers.shtml> - Your approach does + seeom to have similarities to the Semantic File System (Gifford et + al) or SemFS (Mohan at al) or TagFS (Bloehdorn et al). + - A: yes, I just started checking it out. I was not aware of any + of those when I wrote it. I just had a need for a much more + comprehensive filing/retrieval system to support my various + activities (law, programming, time management, etc\...). It + worked amazingly well at the time but \"life happened\" and I + was never really able to keep it up with the times like porting + it from the orphaned XEmacs into FSF and promote it at all. +- <https://github.com/vigilancetech-com/N-Angulator> + + - N-Angulator: I wrote it 10 years ago and am no porting it to GNU emacs - is this a graph-as-filesystem - I'd much rather work with keybindings rather than clicking things. Is there support for that? diff --git a/2021/talks/native.md b/2021/talks/native.md index 642d979a..3395e56e 100644 --- a/2021/talks/native.md +++ b/2021/talks/native.md @@ -33,6 +33,87 @@ Format: 40 minutes # Discussion +Pad: + +- Q1: Why do you say that Elisp is \*nearly\* a general purpose + programming lang? What\'s missing? (and btw, huge thanks for your + work!) + - A: +- Q2: Is this the \"rudiments\" that the garbage collector talk was + discussing yesterday? Feel free to ignore this n00b question. + - A: +- Q3:Is the idea to enventually develop Emacs itself in ELisp (c.f. + Smalltalk VM developed in Smalltalk)? + - A: +- Q4: How did you work on this? Did you use Org Mode to keep track of + your progress? Did you use pictures to keep track of your compiler + transformations or you made only for the presentation? Asking + because it seems a complex project and I am not sure how you kept + that all in your mind! For example, make sure to pick stuff that FSF + was okay with while also deciding how to implement the optimization. + Great job anyway! + - A: +- Q5:Is this pipeline a possible source of new security + vulnerabilities, or a new category of vulnerabilities? Is it + something you are worried about or have had to deal with? + - A: +- Q6: What code, if any, would still benefit significantly from being + written in C? Could/should some of the existing C code be converted + without significant performance loss? + - A: +- Q7: What\'s the risk of (setq native-comp-speed 3)? + - A: Not sigificant risks. Some side effects might include: + needing to recompile a whole file or compilation unit when + redefining a function, otherwise the old function definition + could be used. +- Q8: Are there any limits introduced by native comp with respect to + runtime introspectability, changeability/redefinability, etc? + - A: +- Q9: Is there a benefit in setting native-comp-compiler-options to + \"-mtune=native -march=\<cpu\>\"? + - A: Not at the moment. Maybe in the future if, e.g. libgccjit is + enhanced further. +- Q10: You mentioned native-comp coming in emacs 28, will this be the + default at build time, or will distros have to set this themselves? + - A: It will not be enabled by default. Distros would need to + enable it themselves.(Thanks!) +- Q11: Could we avoid libgccjit.so? Or consider using another jit lib + (e.g. dynasm used by luajit) et al to gain better optimization + - A: libgccjit is more for AoT compilation, more in-depth + optimization, which JITters don\'t typically do, so they aren\'t + really equivalent. +- Q12: How much of emacs C code base could be translated to + emacs-lisp? What is the minimum C code base necessary? (seems + duplicate of Q6) + - A: Very hard questions to answer. :) Not generally + feasible/worth to convert most of it. +- Q13: could we statically type elisp code (via macros?) to provide + more optimization hints to compiler? + - A: Hope to extend existing Elisp variable-type annotations to + arguments and use that for optimization. +- Q14: Elisp and Python all are dynamically typed langauge, but + benchmark shows that Elisp runs slower than Python. Could we learn + some best practices from the Python community? As you mentioned. + make parameter type annotated is a promising point. + - A: Not sure if Elisp is really generally slower than Python. + The Elisp bytecode VM is similar in design to the Python VM. + Some native-compiled Elisp may already be faster than Python, + e.g. for certain math code. +- Q15: Did you try to optimize with Rust too? What are your thoughts + on Rust for this particular optimization and security? + - A: Optimize what? There is no Rust here. :) Rust is + interesting, though. There may be some possibilities, e.g. with + regard to some similarities between Rust and some CL + implementations. +- Q16: Why not implement Emacs Lisp in Guile and use Guile\'s + compiler? + - A: (not Andrea answering) This has already been tried and done, + lookup Guilemacs, e.g. on EmacsWiki. + - A: I think they meant to implement Elisp in Guile, and not + to replace Elisp with Scheme + - Yes, that\'s already been done. Guile can already run + some subset of Elisp. Look it up. :) + BBB: - Where did funding for your work came from? Will you be able to maintain this in the foreseeable future? diff --git a/2021/talks/org-outside.md b/2021/talks/org-outside.md index 30ee1d9a..c10cd761 100644 --- a/2021/talks/org-outside.md +++ b/2021/talks/org-outside.md @@ -37,6 +37,19 @@ information. # Discussion +Pad: + +- Q1: Great talk. I have been following your work on PIM for a while + (incl. a sneak read of your dissertation:-). Just curious, what + would you personally use Orgdown for? + - A: Oh, this would be a very loooong answer. I think you want to + visit: + - <https://karl-voit.at/tags/emacs/> and go to other pages + like <https://karl-voit.at/2019/09/25/using-orgmode/> + - Basically, Orgdown is already part of my workflows since + years: <https://github.com/novoid/lazyblorg/> or + <https://github.com/novoid/appendorgheading/> and much more. + BBB: - Hi Karl. I was wondering, does the specification make any restrictions with regard to indentation levels or hard vs. soft line breaks? Do you have any type of test suites that an implementation can use to be "certified" as orgdown(1)? @@ -98,7 +111,17 @@ IRC: (nick: publicvoit) - I don't really see a big issue with org-mode vs. org vs. orgWHATEVER though - there are major search and discovery issues with bare "org" - I tend to use "org syntax" at the moment, but it isn't catchy enough - + + +Links and other notes: + +- The article from 2017 that started the whole discussion: \"Org Mode + Is One of the Most Reasonable Markup Languages to Use for Text\" + <https://karl-voit.at/2017/09/23/orgmode-as-markup-only/> +- Orgdown homepage: <https://gitlab.com/publicvoit/orgdown> +- Orgdown motivation article: + <https://karl-voit.at/2021/11/27/orgdown/> + # Outline - The term Org mode stands for different things diff --git a/2021/talks/pattern.md b/2021/talks/pattern.md index 2000c242..ec037af2 100644 --- a/2021/talks/pattern.md +++ b/2021/talks/pattern.md @@ -48,7 +48,191 @@ four years of Learning@Scale and charting the future. L@S 2018, June 26–28, 20 # Discussion -- this paper is relevant to exploring the space of design patterns: https://www.aaai.org/Papers/Workshops/1998/WS-98-08/WS98-08-024.pdf it's old and a little crytpic, but a good paper. it's "Recommender Systems for Problem Solving Environments" +Pad: + +- Q1: Any reference to a Christopher Alexander book that you liked + most? + - (peer answer A: + - Alexander, C. (1977). A pattern language: towns, buildings, + construction. New York: Oxford University Press. + - Alexander, C. (1979). The timeless way of building. New + York: Oxford University Press. (thanks!!) + - also check out: Gabriel, R. (1996). Patterns of software: + tales from the software community. New York: Oxford + University Press. + (<https://dreamsongs.com/Files/PatternsOfSoftware.pdf)> + - Alexander, C. (1993). *A foreshadowing of 21st century art: + The color and geometry of very early Turkish carpets*. New + York: Oxford University Press. + - A: +- Q2: You are making a great case for the ease-of-use, humanizing, and + empowering aspects of Emacs, but how does this align with the + initial difficulty for many users in learning Emacs? What is the + weakness of Emacs here, in relation to these design patterns? + - A: If we take a Vygotskyean approach to learning, we begin step + by step, gradually building on to what we know. What I found + fascinating as a non-programmer coming to Emacs was how this + approach works even in Emacs. Particularly if we are taking a + human-based approach to Emacs, it has no weakness here, because + humans can only move forwards from where they are, not where + they want to be. So Emacs becomes a good teacher in + process-based learning. We need to hierarchize what we know, + what we are ready/motivated to learn next, and also remember the + time required for growth. +- Q3: How do you suggest emacs users should go about desinging their + work(flow) patterns? + - A: Strangely, I seem to have answered this above! +- Q4: Emacs provides a lot of extensibility as mentioned in your talk. + This is a good thing, but such extensibility and possiblility can + sometimes inhibit creativity (for me at least). How could we + incorporate constraints in to how we use Emacs, in order to deal + with the possibilities that might make it\'s use more complex? A + great answer, thank you! + - A: I love this question. What about thinking about Emacs as + one\'s own path of desire? What do we want to do most with it? + But also, because Emacs is the ultimate blank canvas, in this + context I would recommend reading Cameron\'s \"Blasting through + blocks\" chapter in The Artist\'s Way to get through any related + anxiety and find one\'s \'creative purpose\' with Emacs. And + building on an answer from above, taking things one + project/activity/outcome at a time. Trusting that over time + skills and proficiency grow. + - I like the idea about \"Emacs as one\'s own path of + desire\". It\'s all in my init.el. + - Emacs is seriously the best in this respect! :) And it is + so great to be part of this conference to be among like + minds!:) +- Q5:In your opinion, what approaches might be tried to introduce + individuals to these aspects of emacs\'s user experience? In my + experience, many of my co-workers are often impressed with what I am + able to do with emacs, but they remain reticent to attempt it + because I find it difficult to produce a suitably encapsulating + \"elevator pitch\" for it. + - A: Not everyone wants to think about the tools that they use. + Haha, that is why I am trying to get one convert at a time, and + let them convert others in their midst :) +- Q6: Are there ways to reach out to you after the conference to dig + deeper here? + - A: gretzuni.com +- Q7:On the mention of emacs being \'frontierless\': Doesn\'t this + result in a kind of \'characterless\' or \'non-definied\' space? For + example, if I learn a musical instrument, I am bound by various + frontiers/horizons (12 tone system, the tamber of the particular + instrument, etc). Surely there are similar limits on the + extensibility of emacs and the possibilities it offers for \'human + expansion\'. If so, which limits/boundaries of emacs do you see as + most meaningful/impactful on growth and transformation? + - A: That is a really interesting question. Aren\'t the limits + here our knowledge? I am really stuck on the idea of Lisp and + its dialects as being particularly philosophical. Any time I + look at what people do with Lisp it seems to be profoundly + related to design on a deeper level. I will leave it here for + now - but thank you for the question, I will be sure to mull it + over and possibly blog about it at some point\... + - Hi! Thank you for the answer, that was exactly what I was + thinking about (elisp being something particular/defining to the + emacs experienc/environment). I don\'t know lisp/programming + myself, so I was just interested in your perpsective! Really + loved the talk a lot! But the way, the question came from a + hermeneutic perspective, where boundaries/horizons are essential + for defining/demarcating the self (of course, within a boundary + there can be endless play, but the limits set the \'rules\' for + play, and therefore create meaning).Thanks again! + - Wow - a fellow hermeneuticist?! + - Haha, yes. In my past life I studied it ;) also studied a lot of + Stiegler too, so was interested to find him in the talk! + - That is quite uncanny! The combination of the three (plus Emacs) + have given me a whole new perspective on life - and I wonder why + Stiegler didn\'t pursue Free Software more, though he does nod + to it here and there. Do you have any work to share, would you + like to keep in touch? + - sure! would be great! :) My main area was Ricoeur, so I have + written some things on Ricoeur and technology (there was a + recent volume on his work, and I wrote something on + postphenomenology and ricoeur) I\'ve since left academia though, + because it was quite difficult to find full-time work + (especially since hermeneutics is so + underappreciated/underreppresented! so, I always get excited to + hear others talking about it ;) + - Yes, I know what you are talking about and actually the whole + future - and present - of academe is an interesting question - + haha that I think is related to Emacs, I mean, we do live in the + knowledge age so we need tools to help with this. Ricoeur has a + great essay on ideology and science critique, which is so limber + (as opposed to so much calcified academic thinking) and I am so + interested in exploring approaches to academe that \'continue + the ongoing work of the hermeneuticist\' (I am paraphrasing him + here) that make use of technology, possibly through something + like Ted Nelson had in mind, where we literally trace the traces + among ideas\... wow, that\'s a mouthful of a comment. Ha! I am + overjoyed at the opportunity for this conversation, thank you so + much! :) + - really interesting that you are referencing Ted Nelson in + this context. I think org-roam, in many ways, resembles what + he had in mind with Xandadu; well, with the limitation that + org-roam only serves Personal Information Management, not + our civilisations\' as he intended with Xanadu. + - Yes! the feeling is mutual :) I really love Ricoeur\'s general + style and approach to questions. Unfortunately he didn\'t write + much about technology itself, which made my job quite difficult! + But I did meet a friend of his once that told me that, in the + 70s, Ricouer had asked him \"are we still writing when we use + computers?\". So, he was thinking about the question at least. I + only discovered emacs after I finished all that word, but since + then I can finally say that \'yes!\' we can \'write\' using + computers (with writing being a core activity of the self for + Ricoeur). Also, I just wish I had emacs instead of just writing + so many academic papers in microsoft word! + - Ha! Yes, the moment of being freed from that software box and + having all the LaTeX options in Emacs (here, I list my fave) is + like stepping into technicolor out of black and white - to this + day, I still feel that way! So much you wrote is interesting. + Stiegler\'s concern of whether technology - like the writing pad + in Plato earlier - would strip us of our intellectual capacity + (I can see that possibly happening with automaticizing tools + like - maybe Excel is a good example, because one does not + really have to think about what one is doing). But Emacs use + prompts us to ask questions and design \*exactly\* what we are + looking for. + - wow, yes, that is so interesting. I never considered the + question of desire and emacs until your talk, and it was + definitely one of the most interesting parts! + - In my work I was also mostly interested in Freud (the role of + \'technique\' in psychoanalysis) and also Foucault\'s later + lectures on hermeneutics of the self/technologies of the self. + The angle of \'desire\' in relation to personal + configuration/design was so interesting to me and like an + \'aha\' moment. I\'ll definitely be thinking about it more! + Thank you so much again for the talk and all the responses! + - Thank you too, and hope we\'ll be in touch! + - Yes :) enjoy the rest of the conference! + - Likewise :) +- Q8: What was that Crichton quote? That was neat! (From the + references - Crichton, M. (1983). *Electronic life*. New York: + Knopf.) + - A: Thank you - I hope that general computing will have its day! +- Q9: Greta, you seem to be an academic researcher. Any of your + publications or other good references on this topic that you can + share/link here? +- I hate linking to DOIs, but here are two: +- <https://doi.org/10.1080/00131857.2021.1962706> A song of teaching + with free software in the Anthropocene +- DOI 10.1007/s42438-020-00188-3 The Odyssey of Pedagogies of + Technoscientific Literacies + +**Links and other notes:**\ + +- Design Pattern: macro solution; human-centered +- Emacs is a design pattern for learning. +- Why we care about design patterns? +- Emacs as a mental map. +- Everyone\'s Emacs is their own. +- The development of the Emacs communitiy is similar to the \[free\] + core of Emacs devlopment. + +IRC: + +- this paper is relevant to exploring the space of design patterns: https://www.aaai.org/Papers/Workshops/1998/WS-98-08/WS98-08-024.pdf it's old and a little cryptic, but a good paper. it's "Recommender Systems for Problem Solving Environments" - greta: Thanks for that link! - if I may ask, what's the little toy figure in the background, looks nice :D - A wooden (fake) Transformer :) diff --git a/2021/talks/structural.md b/2021/talks/structural.md index c301fc3b..8cedef37 100644 --- a/2021/talks/structural.md +++ b/2021/talks/structural.md @@ -48,6 +48,33 @@ Check out the GitHub repo [here](https://github.com/ethan-leba/tree-edit)! IRC nick: ethan +- Q1: so tree-edit is orthogonal to the LSP features? + - A: only uses tree-sitter yeah +- Q2:any chance you tried this with Clojure as well? + - A: haven\'t tried it yet, i don\'t think tree-sitter-langs has a + clojure grammar AFAIK +- Q3: Would we be able to do things like extract statement to a + variable? For example, extract a a math operation happening in a + fucntion call argument into a separate variable an then replace the + funtion call arg with the variable name. +- Q4: How do tree-edit and combobulate compare? + - A: a lot of similarities, tree-edit replaces traditional text + editing style combobulate still implements +- Q5: Are similar packages for structural editing common to other + editors or they are just popular in Emacs cause of the paredit + tradition? + - A: emacs seems to be a trend-setter +- Q6: Great talk! How difficult do you imagine adding more languages + to Tree-edit will be? + - A: Trying to add python, not super simple, C-like should be drop + in replacements +- Q7: \@ethan Could tree-edit be made to work with Org (orgdown!) + itself, or maybe rather what would be needed to get such a unified + tree-editing framework to work also for complex Org trees? +- Q8: Any plans for an Evil mode integration? evil-textobj-tree-sitter + seems like it has a long way to go if it\'s to catch up to + tree-edit. + - any chance you tried this with Clojure as well? - ethan: haven't tried it yet, i don't think tree-sitter-langs has a clojure grammar AFAIK - yeah I use sogaiu's (https://github.com/sogaiu/tree-sitter-clojure) but it does not have if else and the rest, only the main data types @@ -62,6 +89,17 @@ IRC nick: ethan - Andrew Blinn's talk on Fructure and Ethan Leba's talk on Tree-edit are really insightful. - Agreed about the lack of formal grammar (only a proliferation of parsers) being a limiting factor. Maybe we could bridge directly to the available commands without going through a grammar though. A unified tree-editing framework across languages but definitely including Org would be awesome (ala lispy/etc). +Links and other notes: + +- Github repo : <https://github.com/ethan-leba/tree-edit> +- editing operations that map directly to the structure of the + language +- inspired by paredit and lispy +- Another similar project is <https://github.com/mickeynp/combobulate> + by Mickey Petersen, the writer of Mastering Emacs. +- It\'s an open source project so contributers are welcome +- Future implication for this kind of work could be voice controlled + code writing/editing # Outline diff --git a/2021/talks/tech.md b/2021/talks/tech.md index 3ec253b7..8347c50d 100644 --- a/2021/talks/tech.md +++ b/2021/talks/tech.md @@ -26,6 +26,20 @@ org-treeslide to write and present technical documentation with style. # Discussion +Pad: + +- Q1: Sorry if you already answered this somewhere (but if not, can + someone with a reddit account copy this over? thx). Hi, I would love + to move my team over to using something org-based, but that\'ll + never happen because, well\... (wait for it) Emacs! By the way, I\'m + currently using heavily customized Sphinx setup, mostly internal, + sometimes shared with data partners; lots of schema-gen from message + protocols defined in code, etc. Anyhow: questions. Do you work with + non-Emacs users? If so, how did you get them to accept this + workflow? And if it\'s just you DJ\'ing, how do they weigh in when + they want an update, open a formal ticket? +- <https://github.com/jypma/emacsconf2021/blob/master/presentation.org> + BBB: - Have you encountered any push-back from people requesting the documentation who are of the opinion that only a Word document will do? diff --git a/2021/talks/telega.md b/2021/talks/telega.md index e664bf4e..72bedd69 100644 --- a/2021/talks/telega.md +++ b/2021/talks/telega.md @@ -22,6 +22,18 @@ highlight some of the most important features. # Discussion +- Q1: Do any of these main emacs telegram groups bridge to matrix? + - A: \[Speaker\] We discussed adding a bridge to matrix for the + main channel \@emacs\_en. We never got around to doing it, but I + can bring this up again. +- Q2: Could telega.el auto install TDLib like lsp-mode auto installs + servers? +- A: \[Speaker\] Possibly. The difference is that TDLib requires a + number of dependencies that might not be available. Evgeny chose + another route to simplify setting up telega.el: the package can now + be installed with a Dockerfile that also ships with also the + optional dependencies. This ensures that everything works as + intended. - Does telega still require company for completion? - Telegram has become a real (and desired) option to WhatsApp, thanks to telega.el diff --git a/2021/talks/ui.md b/2021/talks/ui.md index 6123c437..ee269f58 100644 --- a/2021/talks/ui.md +++ b/2021/talks/ui.md @@ -32,47 +32,68 @@ by implementing some basic UI's. # Discussion -IRC: - -- I'm trying the run your demos of tui... it seems that (add-to-list 'load-path "~/usrc/tui.el/") is not enough, I have to either add the subdirectories by hand or to run a standard function - whose name I don't know - to add the subdirs... -- hey, I'm trying to run your demos of tui... I had to add the subdirectories to the load-path manually to make (require 'tui-tic-tac-toe) work. my notes are here: https://0x0.st/-7dV.txt -- tui.el is very exciting, should open up a new era of more advanced UI in Emacs -- seems like we can get some really cool emacs ui going in combination with svg.el -- combine with the magit approach to menus (transient etc) and something very nice is coming! -- I think anything you can show in a buffer should work with this, so images, text, whatever. -- tui.el is just too cool: I am going to try it for sure :D +Pad: + +- Q1: A common issue I have with Magit status buffers is that focus + get lost easily when staging hunks since scroll gets lost during + re-render (Magit attempts at recovering). Are we getting magit-tui? + - A: It is certainly possible and compatible. + - I am interested in tui.el but haven\'t looked at it too closely + yet. Have been entertaining the idea of something like this for + a long time now. \-- jonas (magit maintainer) +- Q2:We can update images as well?! Like SVG, or the comics you shown. + This is awesome! + - A: Yes, that\'s possible. +- Q3:Have you tried to display any diagram? Like UML sequence diagrams +- Q4: So does tui implement some sort of DOM model? + - A: Yes. +- Q5: How does performance compare with some other libraries, like + EWOC, magit-section, tabulated-list? e.g. to render a view with + thousands of elements (and thank you for your work on this, it\'s + very exciting for Emacs\'s future) + - A: In general EWOC and tabulated-list should perform better, and + tui still needs some optimization. TUI has the potential to be + better, but it needs some work. +- Q6: Are you planning to contribute tui.el to emacs core? + - A: Eventually, once its polished and more robust. +- Q7: What is the memory overhead like, e.g. I guess values are hashed + to detect whether items need to be re-rendered? + - A: Haven\'t done any memory profiling, but memory overhead could + probably be an issue. +- Q8: Awesome. Would lack of concurrency/multi-threading in Emacs be + an issue? BBB: - like in dogears.el readme - So I'm really interested in potentially using tui for Ement.el -- there are 2 or 3 ways I could imagine using it... - 1. For the room buffers, showing events in the chat rooms. That sometimes has thousands of events, so that's why I asked about performance for that case. - It seems like it could be very helpful for re-rendering some events when their content changes, e.g. when messages are edited, when coalescing adjacent join/leave events... -- That sounds interesting. I don't know anything about React - EWOC does work for that to some extent, but I've been unable to get nested EWOCs to work correctly so far, so TUI is an interesting alternative -- yes IIRC - yeah, EWOC uses markers too AFAIK, and it seems to perform well enough even with 2000-3000 events in a buffer - oh yeah, your grid idea -- that would be SO useful - yes, sorting and filtering, temporarily hiding elements! -- that would be SO useful - like "show all messages from this user or mentioning that user in this room" - and then press a key and all the others are shown again -- ahh, I need that! :) - expanding larger images from thumbnails, captions for files, etc - like Element.io but in Emacs with TUI, that would be great - that's the official Matrix Web client -- I think it uses React -- but I'm not sure - Sounds great! well thanks for the presentation, I really look forward to TUI's progress! maybe someday I can help with it, in the distant future... I have too many Emacs projects already :) - hmm, a TUI library for taxy.el... more ideas! - TUI would be like a natural frontend for taxy.el as a backend -- that would be fun :) - are you on Matrix by any chance? -- maybe someday, need to get more people "jacked in" :) - I'm bad with email, but when I have time to check out TUI in more detail, I look forward to it! +IRC: + +- I'm trying the run your demos of tui... it seems that (add-to-list 'load-path "~/usrc/tui.el/") is not enough, I have to either add the subdirectories by hand or to run a standard function - whose name I don't know - to add the subdirs... +- hey, I'm trying to run your demos of tui... I had to add the subdirectories to the load-path manually to make (require 'tui-tic-tac-toe) work. my notes are here: https://0x0.st/-7dV.txt +- tui.el is very exciting, should open up a new era of more advanced UI in Emacs +- seems like we can get some really cool emacs ui going in combination with svg.el +- combine with the magit approach to menus (transient etc) and something very nice is coming! +- I think anything you can show in a buffer should work with this, so images, text, whatever. +- tui.el is just too cool: I am going to try it for sure :D + IRC feedback: - I like the bird mascot on the repo readme :) - FYI if you would want it to show at the side of the readme, you can see the Org markup I use to accomplish that in some of my readmes |