diff options
Diffstat (limited to '2020/info')
-rw-r--r-- | 2020/info/21.md | 41 | ||||
-rw-r--r-- | 2020/info/22.md | 77 | ||||
-rw-r--r-- | 2020/info/23.md | 188 | ||||
-rw-r--r-- | 2020/info/24.md | 67 | ||||
-rw-r--r-- | 2020/info/25.md | 70 | ||||
-rw-r--r-- | 2020/info/26.md | 55 | ||||
-rw-r--r-- | 2020/info/27.md | 65 | ||||
-rw-r--r-- | 2020/info/28.md | 3 | ||||
-rw-r--r-- | 2020/info/30.md | 1 | ||||
-rw-r--r-- | 2020/info/31.md | 7 | ||||
-rw-r--r-- | 2020/info/32.md | 1 | ||||
-rw-r--r-- | 2020/info/34.md | 3 | ||||
-rw-r--r-- | 2020/info/35.md | 2 |
13 files changed, 303 insertions, 277 deletions
diff --git a/2020/info/21.md b/2020/info/21.md index 42cb2985..5a316368 100644 --- a/2020/info/21.md +++ b/2020/info/21.md @@ -55,38 +55,37 @@ parts: their own templated functions very quickly - as "5-minute hacks". <!-- from the pad ---> -- Actual start and end time (EST): Start 2020-11-28T11.45.20 (~45min talk); End: 2020-11-28T12.26.00 +- Actual start and end time (EST): Start: 2020-11-28T11.45.20; End: + 2020-11-28T12.26.00 # Questions - ## Is eev like GNU hyperbole? (from karthink in #emacsconf) +[rswgnu] I know Eduardo is exploring using Hyperbole with eev and we +will work with him to help him integrate its features. -rswgnu: I know Eduardo is exploring using Hyperbole with eev and we will work with him to help him integrate its features. - - -## "Are there variants of pos-spec-list that aren't search based? E.g., find buffer + run some other command + copy results?" - +## Are there variants of pos-spec-list that aren't search based? E.g., find buffer + run some other command + copy results? I guess this is partly answered, with Xpdf example. Take a look here: <http://www.youtube.com/watch?v=hOAqBc42Gg8#t=32m05s> - ## I didn't quite follow the find-here-links demo, can you describe that once more slowly? +I just added links to the tutorials about find-here-links and refining +hyperlinks to the bottom of this page: +<http://angg.twu.net/emacsconf2020.html> - hope that helps! -I just added links to the tutorials about find-here-links and refining hyperlinks to the bottom of this page: <http://angg.twu.net/emacsconf2020.html> - hope that helps! - - -## what are the books/readings that inspired you about usability again? - -Here are some: "Software Tools" by Kernighan and Plauger, the article about "Little Languages" in Jon Bentley's "More Programming Pearls", a commercial Forth called HS-Forth, and "Exploring Expect" by Don Libes. - +## What are the books/readings that inspired you about usability again? +Here are some: "Software Tools" by Kernighan and Plauger, the article +about "Little Languages" in Jon Bentley's "More Programming Pearls", a +commercial Forth called HS-Forth, and "Exploring Expect" by Don Libes. # Notes -- eev homepage: <https://www.emacswiki.org/emacs/EevMode> | <http://angg.twu.net/#eev> -- find-video open a video with a time stamp as an input argument -- How to record executable notes with eev - and how to play them back <https://emacsconf.org/2019/talks/27/> -- Anchors (not explained in the talk) <http://angg.twu.net/eev-intros/find-eev-quick-intro.html#8> -- <http://angg.twu.net/emacsconf2020.html> - +- eev homepage: <https://www.emacswiki.org/emacs/EevMode> | + <http://angg.twu.net/#eev>. +- find-video open a video with a time stamp as an input argument. +- How to record executable notes with eev - and how to play them back + <https://emacsconf.org/2019/talks/27/>. +- Anchors (not explained in the talk) + <http://angg.twu.net/eev-intros/find-eev-quick-intro.html#8>. +- <http://angg.twu.net/emacsconf2020.html> diff --git a/2020/info/22.md b/2020/info/22.md index c96ddbd3..6e616cda 100644 --- a/2020/info/22.md +++ b/2020/info/22.md @@ -72,68 +72,69 @@ gateway for many Emacs users to start using Lisp. ## Resources <https://alhassy.github.io/org-special-block-extras/emacs-conf-2020> -<!-- from the pad ---> -- Actual start and end time (EST): Start 2020-11-29T09.19.39; Q&A: 2020-11-29T09.36.14; End: 2020-11-29T09.48.34 +<!-- from the pad ---> +- Actual start and end time (EST): Start: 2020-11-29T09.19.39; Q&A: + 2020-11-29T09.36.14; End: 2020-11-29T09.48.34 # Questions - ## Should packages implement the interface to one specific format, or attempt to be conclusive to all the potential output targets? - ## How to share "recipes"? Will this become a "large" project, or minimal that requires you to write most customizations yourself? - ## Could you make slides that show the source form on the left and the output on the right? That would make understanding each capability much simpler. - ## Does typing in a block mess up the syntax highlighting? Usually themes use a single color inside an example block, for example. +"You found my crutch!". Colors in source code blocks within blocks are +hard. Didn't have time yet to implement it. Any help is appreciated! +:) -"You found my crutch!". Colors in source code blocks within blocks are hard. Didn't have time yet to implement it. Any help is appreciated! :) - -- That's where you can get help from org-mode core developers ;) - - -## +++if you export to latex->pdf does that work well with beamer as well? To create slides with columns for example? +- That's where you can get help from org-mode core developers ;) +## If you export to LaTeX->PDF does that work well with beamer as well? To create slides with columns for example? You have to format the LaTeX appropriately for the backend "beamer". - ## How does this relate to pandoc, which is used for converting between markup formats? +## Side question about org-reveal: How do you get bespoke/multiple-column layouts without using #+HTML (and <div>) everywhere in the Org file? +It's a custom `#begin_parallel` block! See the main article linked +below. -## Side question about org-reveal: How do you get bespoke/multiple-column layouts without using #+HTML (and <div>) everywhere in the org file? - -It's a custom #begin\_parallel block! See the main article linked below. - -Parallel section: <https://alhassy.github.io/org-special-block-extras/#Parallel> - +Parallel section: +<https://alhassy.github.io/org-special-block-extras/#Parallel> ## What is used to produce colorful boxes around the cursor in your browser? +Commercial software called ScreenBrush. -Commercial software called ScreenBrush - - -## Why did you put optional arguments in a separate list rather than using cl-style argument lists? e.g. (defblock feedback (who &optional (color "red")) …) +1 +## Why did you put optional arguments in a separate list rather than using cl-style argument lists? e.g. (defblock feedback (who &optional (color "red")) …) +The first argument may take some meta-information when you define it, +which is easier to handle with two arguments. -The first argument may take some meta-information when you define it, which is easier to handle with two arguments. +## Do you intend to try to upstream this amazing work into Org? :) +No prior experience on how to upstream; suggestions and help +appreciated. +- <https://orgmode.org/contribute.html>. +- Yes, I would suggest simply posting a short proposal for an + org-defblock macro on the orgmode mailing list, and hopefully + Bastien and other maintainers like Nicolas will discuss it with you. + I think they would be excited to have this feature standardized in + Org. +1+1+1+1 I am excited+1+1 -## Do you intend to try to upstream this amazing work into Org? :)+1 - -no prior experience on how to upstream; suggestions and help appreciated -- <https://orgmode.org/contribute.html> -- Yes, I would suggest simply posting a short proposal for an org-defblock macro on the orgmode mailing list, and hopefully Bastien and other maintainers like Nicolas will discuss it with you. I think they would be excited to have this feature standardized in Org. +1+1+1+1 I am excited+1+1 - -add a little beginner-focused documentation and this becomes another great reason to use org over markdown, I imagine the maintainers would love to have it - +Add a little beginner-focused documentation and this becomes another +great reason to use Org over Markdown, I imagine the maintainers would +love to have it. # Notes -- Main article: <https://alhassy.github.io/org-special-block-extras/> (HTML or 48 page PDF) -- Slides for this talk: <https://alhassy.github.io/org-special-block-extras/emacs-conf-2020> -- [Reddit discussion](https://www.reddit.com/r/emacs/comments/k2whsy/declaring_new_special_blocks_with_arguments/) -- Elisp Reference Sheet: <https://alhassy.github.io/ElispCheatSheet/CheatSheet.pdf> -- My Emacs init: <https://github.com/alhassy/emacs.d#a-life-configuring-emacs> - +- Main article: <https://alhassy.github.io/org-special-block-extras/> + (HTML or 48 page PDF). +- Slides for this talk: + <https://alhassy.github.io/org-special-block-extras/emacs-conf-2020>. +- [Reddit + discussion](https://www.reddit.com/r/emacs/comments/k2whsy/declaring_new_special_blocks_with_arguments/). +- Elisp Reference Sheet: + <https://alhassy.github.io/ElispCheatSheet/CheatSheet.pdf>. +- My Emacs init: + <https://github.com/alhassy/emacs.d#a-life-configuring-emacs>. diff --git a/2020/info/23.md b/2020/info/23.md index 5ee61f7a..f87ed299 100644 --- a/2020/info/23.md +++ b/2020/info/23.md @@ -17,151 +17,161 @@ In this talk, I will describe the current state of emacs-tree-sitter's APIs and functionalities. I will also discuss areas that need improvements and contribution from the community. -<!-- from the pad ---> - -- Actual start and end time (EST): Start: 2020-11-29T09.49.24; Q&A: 2020-11-29T10.13.56; End: 2020-11-29T10.31.44 - Slides: <https://ubolonton.org/slides/emacs-tree-sitter-emacsconf2020.pdf> -# Questions - - -## Q20: can we integrate it with spacemacs python layer - +<!-- from the pad ---> +- Actual start and end time (EST): Start: 2020-11-29T09.49.24; Q&A: + 2020-11-29T10.13.56; End: 2020-11-29T10.31.44 -## Q19: The python mode example was pretty good. Is that something that one can use already? +# Questions -Yes, already using it at work right now +## Q20: can we integrate it with Spacemacs Python layer +## Q19: The Python mode example was pretty good. Is that something that one can use already? +Yes, already using it at work right now. ## Q18: Regarding Emacs integration, will it always need to be a foreign library or can it be included / linked directly in compilation? +Building a parser from source needs Node.js +<https://tree-sitter.github.io/tree-sitter/creating-parsers#dependencies> +so I don't know if it'll be in-tree and included at compile time. -Building a parser from source needs Node.js <https://tree-sitter.github.io/tree-sitter/creating-parsers#dependencies> so I don't know if it'll be in-tree and included at compile time - -Core library dynamic module, would be better to be included in core Emacs eventually. Language definitions might be better distributed separately. - +Core library dynamic module, would be better to be included in core +Emacs eventually. Language definitions might be better distributed +separately. ## Q17: Is there a link to the slides? - Yes, will post in IRC later. Slides: <https://ubolonton.org/slides/emacs-tree-sitter-emacsconf2020.pdf> - ## Q16: Are there any language major modes that have integrated already? +Not yet (answered during talk). -Not yet (answered during talk) - -Typescript : discussing integration, not integrated yet - +Typescript: discussing integration, not integrated yet. ## Q15: Is it possible to use tree-sitter for structural editing? - Covered by Q4 / Q8 / Q11. - ## Q14: Is there a folding mode for tree-sitter? +Not yet. There are multiple code folding frameworks inside Emacs, and +it's better to integrate with these modes rather than writing +something new entirely. -Not yet. There are multiple code folding frameworks inside Emacs, and it's better to integrate with these modes rather than writing something new entirely. - -+1 Would be nice if it worked with outshine mode or similar - ++1 Would be nice if it worked with outshine mode or similar. ## Q13: MaxCity on IRC asks: "That pop up M-x window. How do you get that?" +ivy-posframe most likely +<https://github.com/tumashu/ivy-posframe/>. Or not. Cool! -ivy-posframe most likely <https://github.com/tumashu/ivy-posframe/>. Or not. Cool! - -Custom helm code - +Custom helm code. -## Q12: I'm new to the tree-sitter world. Is it easy to install/use it also on windows ? (I have to use winbloat at work) +## Q12: I'm new to the tree-sitter world. Is it easy to install/use it also on Windows? (I have to use winbloat at work) +The usual approach is hoping someone else made a precompiled version +for you and download it. Otherwise you'll have to set up a development +environment with mingw-msys or whatever. -The usual approach is hoping someone else made a precompiled version for you and download it. Otherwise you'll have to set up a development environment with mingw-msys or whatever. +- No, both tree-sitter and tree-sitter-langs provide pre-compiled + binaries for macOS, Linux, and Windows. -- No, both tree-sitter and tree-sitter-langs provide pre-compiled binaries for macOS, Linux, and Windows. - -Yes, it should work out-of-the-box on Windows, provided that Emacs was compiled with module support turned on. +Yes, it should work out-of-the-box on Windows, provided that Emacs was +compiled with module support turned on. ## Q11: Is it possible to use this for refactoring too? +For the kind of refactoring inside a buffer, it's very doable right +now with some glue code. For more extensive refactoring where you want +to touch all files in a project, there needs to be some kind of +understanding of the language model system, how they are laid out in +the filesystem… even files that are not yet loaded into +Emacs. That sounds like something a lot more extensive. Sounds like an +IDE in Emacs. -For the kind of refactoring inside a buffer, it's very doable right now with some glue code. For more extensive refactoring where you want to touch all files in a project, there needs to be some kind of understanding of the language model system, how they are laid out in the filesystem… even files that are not yet loaded into Emacs. That sounds like something a lot more extensive. Sounds like an IDE in Emacs. - - -## Q10: Can language major-mode authors start taking advantage of this now? Or is it intended to be used as a minor-mode? +1 - -Minor mode depended on by the major modes - +## Q10: Can language major-mode authors start taking advantage of this now? Or is it intended to be used as a minor-mode? +Minor mode depended on by the major modes. ## Q9: I'm completely new to tree-sitter, how do I use it as an end user? Is there an easy example config out there by the organizer or otherwise that shows standard usage with whatever programming language? Or are we not there yet? +Answering own question: Sounds like major mode maintainers need to +integrate. -Answering own question: Sounds like major mode maintainers need to integrate. - -Syntax highlighting is pretty easy to activate <https://ubolonton.github.io/emacs-tree-sitter/getting-started/> - nice, tree-sitter-hl-mode looks easy - -Need to add more examples to the documentation +Syntax highlighting is pretty easy to activate +<https://ubolonton.github.io/emacs-tree-sitter/getting-started/> - +nice, tree-sitter-hl-mode looks easy +Need to add more examples to the documentation. ## Q8: (Following on from Q4) Could there be a standardised approach to coding automatic refactorings in the future? e.g. so that whichever language mode you are using, you could see a menu of available refactoring operations? +Not sure about this. Most refactoring operations are highly specific +to a class of languages. Not one single approach for all the +languages, but maybe one for object-oriented languages, one for +Lisp-type languages, one for Javascript and Typescript… -Not sure about this. Most refactoring operations are highly specific to a class of languages. Not one single approach for all the languages, but maybe one for object-oriented languages, one for Lisp-type languages, one for Javascript and Typescript… - -I meant the lisp and user interfaces being unified, not the implementations of the refactorings. But maybe it belongs in a separate mode on top. So you could have a defrefactor macro or similar. - +I meant the lisp and user interfaces being unified, not the +implementations of the refactorings. But maybe it belongs in a +separate mode on top. So you could have a defrefactor macro or +similar. ## Q7: How extensive will the compatibility be between highlighting grammars for Emacs and those for Vim/Neovim with Tree-sitter? +For the time being it looks like nvim-treesitter also uses the S-exp +syntax for queries so it shouldn't be too hard. See +<https://github.com/nvim-treesitter/nvim-treesitter/blob/master/queries/rust/highlights.scm>. -For the time being it looks like nvim-treesitter also uses the S-exp syntax for queries so it shouldn't be too hard. See <https://github.com/nvim-treesitter/nvim-treesitter/blob/master/queries/rust/highlights.scm> - -- No effort has been spent on compatibility yet. Each editor has its own existing conventions for highlighting. Having a common set of basic "capture names" is possible, and will require efforts from multiple editor communities. (Emacs and NeoVim for now. The editor that introduced tree-sitter, Atom, hasn't used these queries for highlighting.) +- No effort has been spent on compatibility yet. Each editor has its + own existing conventions for highlighting. Having a common set of + basic "capture names" is possible, and will require efforts from + multiple editor communities. (Emacs and NeoVim for now. The editor + that introduced Tree-sitter, Atom, hasn't used these queries for + highlighting.) -## Q6: Will it ever be possible to write tree-sitter grammars in a Lisp, or will JS be required? - -The grammar part is written in JSON, you don't need to actually understand JS to write it. Using Lisp would merely give you a s-expression version, that wouldn't buy you much. - -- Ah, so all that is needed is (json-encode '(grammar …))? Great! +## Q6: Will it ever be possible to write Tree-sitter grammars in a Lisp, or will JS be required? +The grammar part is written in JSON, you don't need to actually +understand JS to write it. Using Lisp would merely give you a +s-expression version, that wouldn't buy you much. +- Ah, so all that is needed is `(json-encode '(grammar …))`? Great! ## Q5: Could you show the source that was matched by the parser in the debug view in addition to the grammar part matched? - -## Q4: Could this be used with packages like \`smartparens\` that aim to bring structrual editing to non-s-expression based languages? AST-based refactoring? - +## Q4: Could this be used with packages like `smartparens` that aim to bring structrual editing to non-s-expression based languages? AST-based refactoring? It is one of the goals, but not yet achieved. +## Q3: Do you think Tree-sitter would be useful for Org buffers? I can imagine it being used to keep a parsed AST of an Org buffer (e.g. like org-element's output) updated in real time. -## Q3: Do you think tree-sitter would be useful for Org buffers? I can imagine it being used to keep a parsed AST of an Org buffer (e.g. like org-element's output) updated in real time.+1+1 - -An obstacle here is Org not having anything anywhere close to a formal grammar, so that would need to be corrected first. +An obstacle here is Org not having anything anywhere close to a formal +grammar, so that would need to be corrected first. -- <https://orgmode.org/worg/dev/org-element-api.html> -- <https://orgmode.org/worg/dev/org-syntax.html> - - This is an informal description of it, not an actual grammar. Nevertheless, there's a few projects trying to codify a grammar. I'll dig up some links soonish. - - The element API is the formal grammar - canonic implementation. Org-syntax document is a draft of the text descrption of the grammar. - - Note: relevant mailing list discussion <https://orgmode.org/list/68dc1ea1-52e8-7d9e-fb2d-bcf08c111eca@intrepidus.pl/> +- <https://orgmode.org/worg/dev/org-element-api.html>. +- <https://orgmode.org/worg/dev/org-syntax.html>. + - This is an informal description of it, not an actual + grammar. Nevertheless, there's a few projects trying to codify a + grammar. I'll dig up some links soonish. + - The element API is the formal grammar - canonic + implementation. Org-syntax document is a draft of the text + descrption of the grammar. + - Note: relevant mailing list discussion + <https://orgmode.org/list/68dc1ea1-52e8-7d9e-fb2d-bcf08c111eca@intrepidus.pl/>. -FIXME: Add link to a emacs-tree-sitter project/snippet for org-mode. +~~FIXME:~~ Add link to a emacs-tree-sitter project/snippet for org-mode. -- Not sure if it is what you have in mind, but there is <https://github.com/gagbo/tree-sitter-org> - - Yes, this is it. +- Not sure if it is what you have in mind, but there is <https://github.com/gagbo/tree-sitter-org> + - Yes, this is it. -## Q2: Will elisp performance be more competitive with gccemacs enough to make tree-sitter in elisp more attractive? (+1)+1 +## Q2: Will Elisp performance be more competitive with GCCEmacs enough to make Tree-sitter in Elisp more attractive? -~~The point of this project is to reuse other people's efforts, not rewriting them.~~ +~~The point of this project is to reuse other people's efforts, not +rewriting them.~~ -It's a possibility. In terms of probability, probably not. It's a huge amount of work. The GC latency is also a fundamental issue. - - -## Q1: Do you think that his package can be included into emacs/GNU ELPA? +It's a possibility. In terms of probability, probably not. It's a huge +amount of work. The GC latency is also a fundamental issue. +## Q1: Do you think that his package can be included into Emacs/GNU ELPA? Yes, it is just matter of paperwork. - # Notes - - -- Project description: emacs-tree-sitter is an Emacs Lisp binding for tree-sitter, an incremental parsing library. - - <https://github.com/ubolonton/emacs-tree-sitter> (<- bindings) - - <https://ubolonton.github.io/emacs-tree-sitter/> (<- documentation) - - <https://tree-sitter.github.io/tree-sitter/> (<- parser) -- Regular expressions are not powerful enough. -- LSP has high latency and is resource intensive, oft. -- An updated video version was uploaded after the event, with the missing introduction to Tree-sitter added. +- Project description: emacs-tree-sitter is an Emacs Lisp binding for + tree-sitter, an incremental parsing library. + - <https://github.com/ubolonton/emacs-tree-sitter> (<- bindings). + - <https://ubolonton.github.io/emacs-tree-sitter/> (<- documentation). + - <https://tree-sitter.github.io/tree-sitter/> (<- parser). +- Regular expressions are not powerful enough. +- LSP has high latency and is resource intensive, oft. +- An updated video version was uploaded after the event, with the + missing introduction to Tree-sitter added. diff --git a/2020/info/24.md b/2020/info/24.md index 256e7f42..70ec13fd 100644 --- a/2020/info/24.md +++ b/2020/info/24.md @@ -28,49 +28,58 @@ dirty code that makes this wonderful functionality work. <!-- from the pad ---> -- Actual start and end time (EST): Start 2020-11-29T10.34.52; End: 2020-11-29T10.55.39 - +- Actual start and end time (EST): Start: 2020-11-29T10.34.52; End: + 2020-11-29T10.55.39 # Questions - ## Q3: How large of a codebase could this be used to analyze? Are there known limits in size? - -Nope, so far I could create a microservice picture at work that has a few million of lines. I did not do stress test, but I am confident that (at least the hotspots analysis) does not break. - +Nope, so far I could create a microservice picture at work that has a +few million of lines. I did not do stress test, but I am confident +that (at least the hotspots analysis) does not break. ## Q2: Have you uploaded this file somewhere (or plan to do so)? This seems very useful so I would love to have these code snippets. +It's totally my plan to make this accessible to everyone: we need more +code quality for our feature (software is everywhere)! The plan was a +series of blog and learn how to publish in MELPA later. -It's totally my plan to make this accessible to everyone: we need more code quality for our feature (software is everywhere)! The plan was a series of blog and learn how to publish in MELPA later. - -That's great, make sure to announce it somewhere so we know when it comes out :D. Or maybe link the git repo that you are using for this. - +That's great, make sure to announce it somewhere so we know when it +comes out :D. Or maybe link the Git repo that you are using for this. ## Q1: What is used to measure the complexity of a LISP file, from your point of view? The nesting level per chance? +Indentation is good enough to apply in general. Even Lisp gets +formatted in a standard way. Probably you can come up with a more +specific and precise way, but indentation is a really rough metrics to +give you a general idea. So take with a pinch of salt, but exploit to +find weird things. -indentation is good enough to apply in general. Even lisp gets formatted in a standard way. Probably you can come up with a more specific and precise way, but indentation is a really rough metrics to give you a general idea. So take with a pinch of salt, but exploit to find weird things. - -OK, thanks for the response. - +- OK, thanks for the response. ## How did you summon, resize and dismiss that window so seamlessly? -- org-roam and C-x0 - - How did you resize it from 2/3 to 1/3 of the frame? - - golden-ratio-mode from golden-ratio +org-roam and C-x 0 +- How did you resize it from 2/3 to 1/3 of the frame? + - golden-ratio-mode from golden-ratio. ## Have you considered doing this analysis by function instead than by file? -- I did not have chance yet to integrate that, but the theory is described in Adam's 2nd book: Software Design -Rays - +I did not have chance yet to integrate that, but the theory is +described in Adam's 2nd book: Software Design -Rays # Notes -- Book by Adam Tornhill "Your Code as a Crime Scene": <https://www.adamtornhillem.com/articles/crimescene/codeascrimescene.htm> -- <https://github.com/adamtornhill/code-maat> -- Beautiful circles diagram. -- especially for big projects with many collaborators the codebase may become less transparent -- hotspots: files that have had many changes based on git history; likely sources of bugs -- Complexities of a file are measured in terms of the indentation, at least in the case of Java. -- "If a lot of lines are deleted, that's usually a good sign. If a lot of lines are added, it's a sign of technological debt" -- another beautiful diagram (big circle with files on periphery, linked together with curved lines) showing associations between changes in files: when this file gets changed, it usually means that this other file is also changed -- <https://ag91.github.io/blog/> - +- Book by Adam Tornhill "Your Code as a Crime Scene": + <https://www.adamtornhillem.com/articles/crimescene/codeascrimescene.htm>. +- <https://github.com/adamtornhill/code-maat>. +- Beautiful circles diagram. +- Especially for big projects with many collaborators the codebase may + become less transparent +- hotspots: files that have had many changes based on git history; + likely sources of bugs. +- Complexities of a file are measured in terms of the indentation, at + least in the case of Java. +- "If a lot of lines are deleted, that's usually a good sign. If a lot + of lines are added, it's a sign of technological debt". +- Another beautiful diagram (big circle with files on periphery, + linked together with curved lines) showing associations between + changes in files: when this file gets changed, it usually means that + this other file is also changed. +- <https://ag91.github.io/blog/>. diff --git a/2020/info/25.md b/2020/info/25.md index 325da6cb..090cb22e 100644 --- a/2020/info/25.md +++ b/2020/info/25.md @@ -29,37 +29,43 @@ counsel-jq and how to build similar completion functionality. <https://200ok.ch/posts/2020-11-30_emacsconf_traverse_complex_json_structures_with_live_feedback_with_counseljq.html> -## Questions from the pad - -### Q4: Any plans for counsel-yq and/or -xq? ;-) - -counsel-jq currently just shells out to jq. Adding tools build on top of jq (at least yq is afaik) would be very easy. We could employ a strategy pattern to find the right tool based on the current major-mode with a configurable fallback. Here's the place where the shellout happens: <https://github.com/200ok-ch/counsel-jq/blob/master/counsel-jq.el#L23> - -Would you be interested in making a PR for that?(; - -### Q3: Why repository_url did not autocomplete in addition to the result (I know that it is ivy thing but possible to configure?) - -There's no autocompletion for the search query, but that would be a great addition. That would theoretically be possibe by employing jq to look ahead in the current tree and providing options for autocomplete. I'm not certain if Ivy does have autocomplete for search queries, though. - -If somebody has more knowledge on that and would like to ping me up or provide a (draft) PR, I'd be happy to help out in that endeavour! - -### Q2: is it difficult to provide autocompletion for the json query in the minibuffer?+1 - -Good question. I'd be curious, too. It's the same question as Q2 where I went into a possibe scenario. - -### Q1: Is it possible to search in arbitrary deep objects? E.g., an AST represented in JSON. - -counsel-jq uses jq under the hood, so all queries that are valid queries in jq should be valid in jq. Hence, I'm inclined to say 'yes'(; - -## Notes from the pad - -- 200ok GmbH (<https://200ok.ch>) -- Play Emacs like an instrument: <https://www.youtube.com/watch?v=gfZDwYeBlO4> -- jq: <https://stedolan.github.io/jq/> +# Questions + +## Q4: Any plans for counsel-yq and/or -xq? ;-) +counsel-jq currently just shells out to jq. Adding tools build on top +of jq (at least yq is afaik) would be very easy. We could employ a +strategy pattern to find the right tool based on the current +major-mode with a configurable fallback. Here's the place where the +shellout happens: +<https://github.com/200ok-ch/counsel-jq/blob/master/counsel-jq.el#L23> + +Would you be interested in making a PR for that? (; + +## Q3: Why repository_url did not autocomplete in addition to the result (I know that it is ivy thing but possible to configure?) +There's no autocompletion for the search query, but that would be a +great addition. That would theoretically be possibe by employing jq to +look ahead in the current tree and providing options for +autocomplete. I'm not certain if Ivy does have autocomplete for search +queries, though. + +If somebody has more knowledge on that and would like to ping me up or +provide a (draft) PR, I'd be happy to help out in that endeavour! + +## Q2: Is it difficult to provide autocompletion for the JSON query in the minibuffer? +Good question. I'd be curious, too. It's the same question as Q2 where +I went into a possibe scenario. + +## Q1: Is it possible to search in arbitrary deep objects? E.g., an AST represented in JSON. +counsel-jq uses jq under the hood, so all queries that are valid +queries in jq should be valid in jq. Hence, I'm inclined to say +'yes' (; + +# Notes +- 200ok GmbH (<https://200ok.ch>). +- Play Emacs like an instrument: + <https://www.youtube.com/watch?v=gfZDwYeBlO4>. +- jq: <https://stedolan.github.io/jq/>. - ivy supports dynamic sources. So does helm I guess. -- counsel-jq: <https://github.com/200ok-ch/counsel-jq> -- organice: <https://github.com/200ok-ch/organice> +- counsel-jq: <https://github.com/200ok-ch/counsel-jq>. +- organice: <https://github.com/200ok-ch/organice>. - Entire presentation inside Emacs, with a count down reminder. - - - diff --git a/2020/info/26.md b/2020/info/26.md index 1bf02738..eed6681e 100644 --- a/2020/info/26.md +++ b/2020/info/26.md @@ -23,53 +23,48 @@ talk about my plans for the future. <!-- from the pad ---> -- Actual start and end time (EST): Start: 2020-11-29T13.06.20; Q&A: 2020-11-29T13.16.52; End: 2020-11-29T13.21.51 - +- Actual start and end time (EST): Start: 2020-11-29T13.06.20; Q&A: + 2020-11-29T13.16.52; End: 2020-11-29T13.21.51 # Questions +## Q6: How would you introduce other classmates to Emacs? Meaning what's the "gateway" drug to Emacs? +Would probably start with doom or Spacemacs. -## Q6: How would you introduce other classmates to emacs? Meaning what's the "gateway" drug to emacs?+1+1+1 - -Would probably start with doom or spacemacs - -try to find their reason for using emacs - - -## Q5: What made you use Vim in the first place? Were you looking for a note-taking system in plain text (such as Markdown), or were you using it for programming?+1+1 +Try to find their reason for using Emacs. +## Q5: What made you use Vim in the first place? Were you looking for a note-taking system in plain text (such as Markdown), or were you using it for programming? Used vim first time mainly for programming not for Markdown. - ## Q4: I tend to think that life in school-age is somehow simple to organize since categories are easy to distinguish (years/classes, hobbies, …) in contrast to business life (many projects in parallel with many touch-points in-between them). From your point of view: do I have wrong memories on my time in school or did school change that much? - School makes it easier to have a structured system. - -## Q3: Assuming you keep real time notes during your lessons how do you manage to keep up with the lecturer's speed. I can write latex fragments pretty fast but I am not yet at the point that I can keep up with them. What are the tricks/snippets you use? Oh and do you have a git repo with your Emacs dots that we can see? - -Types pretty fast (~110 wpm); for math/science uses cdlatex, yasnippet expansion, and latex fragments +## Q3: Assuming you keep real time notes during your lessons how do you manage to keep up with the lecturer's speed. I can write LaTeX fragments pretty fast but I am not yet at the point that I can keep up with them. What are the tricks/snippets you use? Oh and do you have a git repo with your Emacs dots that we can see? +Types pretty fast (~110 wpm); for math/science uses CDLaTeX, YASnippet +expansion, and LaTeX fragments. Emacs config! <https://piercegwang.github.io/emacsd/init> - ## Q2: What do your friends think :) ? (Do you collaborate with your friends?) +Overwhelmed them by the positive experience at first :). Now that the +configuration is somewhat stable Emacs doesn't come up as often in +discussions, though. [someone can probably come up with a better +summary of this answer] -Overwhelmed them by the positive experience at first :). Now that the configuration is somewhat stable Emacs doesn't come up as often in discussions, though. [someone can probably come up with a better summary of this answer] - -The general concensus is that it's an amazing piece of software, but they think it's too complicated for them to use. I think they also still have PTSD from the initial days when I was talking about Emacs **all** the time (whooops) - +The general concensus is that it's an amazing piece of software, but +they think it's too complicated for them to use. I think they also +still have PTSD from the initial days when I was talking about Emacs +**all** the time (whooops). ## Q1: Do you use Emacs for school assignments? +Answered in talk: yes, Org mode, export to LaTeX -> PDF. -answered in talk: yes, org-mode, export to latex -> PDF - -one org-mode template file with latex-fragments that is used for exporting - +One Org mode template file with latex-fragments that is used for +exporting. # Notes -- Discovered Emacs from: <https://www.youtube.com/watch?v=JWD1Fpdd4Pc> -- Tried various note taking tools - settled on Org mode in Emacs. -- YouTube channel: <https://www.youtube.com/user/eywang/> -- Emacs config: <https://piercegwang.github.io/emacsd/init> - +- Discovered Emacs from: + <https://www.youtube.com/watch?v=JWD1Fpdd4Pc>. +- Tried various note taking tools - settled on Org mode in Emacs. +- YouTube channel: <https://www.youtube.com/user/eywang/>. +- Emacs config: <https://piercegwang.github.io/emacsd/init>. diff --git a/2020/info/27.md b/2020/info/27.md index 619c896b..bc19e6c2 100644 --- a/2020/info/27.md +++ b/2020/info/27.md @@ -21,50 +21,53 @@ workings of a [CHIP-8](https://en.wikipedia.org/wiki/CHIP-8) emulator capable of [2]: <https://depp.brause.cc/talks/openchaos-2019-11/> <!-- from the pad ---> -- Actual start and end time (EST): Start 2020-11-29T13.23.01; End: 2020-11-29T13.33.00 -- Alternative stream for extended talk: <http://live.emacsconf.org/alt.html> or <http://live0.emacsconf.org/alt.webm> +- Actual start and end time (EST): Start: 2020-11-29T13.23.01; End: + 2020-11-29T13.33.00 +- Alternative stream for extended talk: + <http://live.emacsconf.org/alt.html> or + <http://live0.emacsconf.org/alt.webm>. # Questions - ## Q5: Do you think would be possible to write some compiler in order to write chip-8 games on elisp? +It could be possible if you restrict yourself to some very limited +Elisp subset or lispy assembler. For the latter, here's some projects +to draw inspiration from: -It could be possible if you restrict yourself to some very limited elisp subset or lispy assembler. For the latter, here's some projects to draw inspiration from: -- <https://ahefner.livejournal.com/20528.html> -- <http://www.dustmop.io/blog/2019/09/10/what-remains-technical-breakdown/> -> <http://www.pawfal.org/dave/blog/2016/05/a-6502-lisp-compiler-sprite-animation-and-the-nesfamicom/> -- <https://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp> -> <https://blog.jakspeedruns.com/opengoal-project-update-september-2020/> - - -## Q4: What's the biggest perf bottleneck for your emulator? does it spend time executing your lisp or something else in the Emacs infrastructure (eg redisplay)? - -Redisplay was super slow, it's like 3-4x as slow as executing the CPU cycles -- Okay that's the reason why Gccemacs does not help :) +- <https://ahefner.livejournal.com/20528.html>. +- <http://www.dustmop.io/blog/2019/09/10/what-remains-technical-breakdown/> + -> + <http://www.pawfal.org/dave/blog/2016/05/a-6502-lisp-compiler-sprite-animation-and-the-nesfamicom/>. +- <https://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp> -> + <https://blog.jakspeedruns.com/opengoal-project-update-september-2020/>. +## Q4: What's the biggest perf bottleneck for your emulator? does it spend time executing your Lisp or something else in the Emacs infrastructure (eg redisplay)? +Redisplay was super slow, it's like 3-4x as slow as executing the CPU +cycles. -## Q3: do you think that you make our tiny console based in the chip ATMega like Arduboy? +- Okay that's the reason why GCCEmacs does not help :) -I'm sorry, I didn't quite understand the question, could you please clarify it? I'm not exactly a hardware person, might have to defer it to someone else. - -I've looked at Arduboy and I believe the DEFCON CHIP-8 Badge is the closest to this: <https://hackaday.io/project/19121-andxor-dc25-badge/log/53223-chip8-schip-game-emulation> +## Q3: Do you think that you make our tiny console based in the chip ATMega like Arduboy? +I'm sorry, I didn't quite understand the question, could you please +clarify it? I'm not exactly a hardware person, might have to defer it +to someone else. +I've looked at Arduboy and I believe the DEFCON CHIP-8 Badge is the +closest to this: +<https://hackaday.io/project/19121-andxor-dc25-badge/log/53223-chip8-schip-game-emulation> ## Q2: Any tutorial to start? I want to make my game now, no, for chip8 - -I'm not aware of tutorials, but there's CHIP-8 resources online. You can of course study the assembly of existing games, that's how I figured out the tricks that broke my emulator :> - +I'm not aware of tutorials, but there's CHIP-8 resources online. You +can of course study the assembly of existing games, that's how I +figured out the tricks that broke my emulator :> ## Q1: How did you manage to present a game engine without showing any game? :-) Show us!! - -See the alt stream, it has several demos not shown due to time constraints - +See the alt stream, it has several demos not shown due to time +constraints. # Notes - -- Slides available at <https://depp.brause.cc/talks/emacsconf-2020/> -- Repository available at <https://depp.brause.cc/chip8.el/> - - -- Blog post available at <https://emacsninja.com/posts/smooth-video-game-emulation-in-emacs.html> - - +- Slides available at <https://depp.brause.cc/talks/emacsconf-2020/>. +- Repository available at <https://depp.brause.cc/chip8.el/>. +- Blog post available at + <https://emacsninja.com/posts/smooth-video-game-emulation-in-emacs.html>. diff --git a/2020/info/28.md b/2020/info/28.md index 92833c1c..9aa61df0 100644 --- a/2020/info/28.md +++ b/2020/info/28.md @@ -30,8 +30,7 @@ project, while leaving 10-15m for questions and discussion. [[!inline pages="internal(2020/info/dm-notes)" raw="yes"]] <!-- from the pad ---> -- Actual start and end time (EST): Start 2020-11-29T13.34.52 - +- Actual start and end time (EST): Start: 2020-11-29T13.34.52 # Questions diff --git a/2020/info/30.md b/2020/info/30.md index f6ab6178..1535f2ab 100644 --- a/2020/info/30.md +++ b/2020/info/30.md @@ -47,4 +47,3 @@ in Emacs. # Notes <https://github.com/akermu/emacs-libvterm> - diff --git a/2020/info/31.md b/2020/info/31.md index 9d5b5f52..7ea737d9 100644 --- a/2020/info/31.md +++ b/2020/info/31.md @@ -44,9 +44,10 @@ company methods for completion. Seems to be company-dabbrev, it happens automatically when typing in Org mode at least. Unfortunately the only digital Lakota dictionary I'm aware of is non-free, so I'm not sure what to do about that. - - Yeah, I'm not sure, but the dictionary files needed would really - just be word-lists, so maybe there is a way to find or produce - something of this sort. + +- Yeah, I'm not sure, but the dictionary files needed would really + just be word-lists, so maybe there is a way to find or produce + something of this sort. ## Q3: Why did you decide on e.g. a' for á? In my country's input method (which is Dutch, and in French, German, etc.) the default is to put the accent first, so 'e -> é. For me, this was my first experience with it and it made more sense in diff --git a/2020/info/32.md b/2020/info/32.md index d35f0312..b1952d04 100644 --- a/2020/info/32.md +++ b/2020/info/32.md @@ -45,4 +45,3 @@ that was a very painful process # Notes Famous last words: "Sometimes the only thing that's worse than not knowing why something doesn't work is not knowing why it does work." - diff --git a/2020/info/34.md b/2020/info/34.md index 00093883..c8aaee9e 100644 --- a/2020/info/34.md +++ b/2020/info/34.md @@ -25,6 +25,7 @@ don't think all of them is GPL (though using open source licenses). PDF-Tools is great, it would be an awesome option if you can't run EAF on your machine. However EAF PDF Viewer is just **a lot faster and smoother** as it uses PyMuPDF as its backend. + - Oh, thats great actually, I have noticed it being a little choppy at times, I am excited to try EAF in general because it looks awesome and if its faster than pdf-tools I will probably also switch to it @@ -46,6 +47,7 @@ us work on it! :-) ## Q6: What JavaScript engine is the web browser in EAF using? Also, what web browser engine is it using? QtWebEngine,. (from the Qt Wiki: ) + - Qt WebEngine uses code from the Chromium project. However, it is not containing all of Chrome/Chromium; - Auxiliary services that talk to Google platforms are stripped out @@ -83,6 +85,7 @@ Foundation: <https://www.openatom.org/#/> (in chinese). ## Q2: Is there anyway to implement EAF without the reparenting behavior from X11? That's one of the challenges right now to get EAF working on other platforms. We're always looking for people to help out. + - Are there any ideas on this at all? I can try to help out but don't know what's even been tried (and perhaps has already been ruled out). - So EAF is currently using `QWindow::setParent`, not Xreparent, so diff --git a/2020/info/35.md b/2020/info/35.md index 2ea0c630..f92dbcc1 100644 --- a/2020/info/35.md +++ b/2020/info/35.md @@ -35,6 +35,7 @@ to make this mode. It's really useful! For more information, I recorded a talk about making major modes (<https://www.youtube.com/watch?v=gk39mp8Vy4M>) a few years ago, at an EmacsNYC (<https://emacsnyc.org/>) meeting. + - That'd be awesome, thanks! Will do. ## Q8: Any MIDI mapping possibilities? @@ -63,6 +64,7 @@ I don't really know what a tracker/mod player is. UPDATE: can confirm, it was easy to play a song myself :-) Very nice! However git clone <https://hg.sr.ht/~zck/zmusic> didn't work, I wonder if I'm doing it wrong + - Had to browse to <https://hg.sr.ht/~zck/zmusic/browse/zmusic.el> and copy/paste. - It's mercurial! (I have Opinions about version control systems). Try `hg clone` instead, or copy/paste from the link directly. |