diff options
author | Sacha Chua <sacha@sachachua.com> | 2020-11-10 13:34:03 -0500 |
---|---|---|
committer | Sacha Chua <sacha@sachachua.com> | 2020-11-10 13:34:03 -0500 |
commit | fc01255025f3270df0f275055b3c18b1cb2d00f0 (patch) | |
tree | 5e1596af00a00e702c6619aeaf2e982afbedd39c | |
parent | ae5c1f030b9c43a3ebae981bc2295bcabae5fc10 (diff) | |
download | emacsconf-wiki-fc01255025f3270df0f275055b3c18b1cb2d00f0.tar.xz emacsconf-wiki-fc01255025f3270df0f275055b3c18b1cb2d00f0.zip |
Let's try it with individual info pages that are included
75 files changed, 865 insertions, 1034 deletions
diff --git a/2020/info/01.md b/2020/info/01.md new file mode 100644 index 00000000..edf4b527 --- /dev/null +++ b/2020/info/01.md @@ -0,0 +1,21 @@ +Quick highlights from Emacs News since the last EmacsConf + + +# Links + +This is a draft. + +- [Mickey Petersen's notes on Emacs 27.1](https://www.masteringemacs.org/article/whats-new-in-emacs-27-1) +- [Bringing GNU Emacs to Native Code](https://www.reddit.com/r/emacs/comments/g9vdd0/bringing_gnu_emacs_to_native_code_at_the_european/) +- [Making Emacs popular again [LWN.net]](https://lwn.net/Articles/819452/) +- [Org Mode and Zettelkasten](https://www.reddit.com/r/emacs/comments/hfamm7/those_who_have_tried_out_multiple_zettelkasten/) +- [EAF](https://www.reddit.com/r/emacs/comments/e48se1/eaf_extending_emacs_with_amazing_gui_support/) + - [Doom](https://www.reddit.com/r/emacs/comments/f2c99b/you_can_play_doom_inside_emacs_using_eaf/) +- Virtual meetups: + - [NYC](https://www.meetup.com/New-York-Emacs-Meetup/events/) + - [SF](https://www.meetup.com/Emacs-SF/) + - [Emacs ATX](https://www.meetup.com/EmacsATX/) + - [APAC](https://www.reddit.com/r/emacs/comments/izbdq9/announcing_call_for_speakers_for_emacs_apac/) + - [Berlin](https://www.reddit.com/r/planetemacs/comments/jokqa4/emacs_berlin_online_meetup_on_november_25th_2020/) +- [Emacs User Survey](https://emacssurvey.org/) + diff --git a/2020/info/02.md b/2020/info/02.md new file mode 100644 index 00000000..41bcdcfd --- /dev/null +++ b/2020/info/02.md @@ -0,0 +1,19 @@ +In light of the new development philosophy for Org-mode, I would like +to present my developer story from discovering Org-mode in 2014 to +becoming a maintainer for a big project in 2020. The goal is to show +the logical progression between interest, gaining skills, becoming an +expert, authoring, contributing and maintaining, in hope that it would +bolster people to do the same. + +As someone who majored in a non CS-related degree, I feel that my +story has a potential to grasp the attention of many attendees, since +I basically started from the bottom of the ladder. Most people should +be able to relate to one step on that ladder, which should hopefully +encourage them to reach for the next step. + +My init files, which show the organic growth of my configuration: +<https://github.com/zaeph/.emacs.d> + +Org-roam, the software which I am maintaining +<https://github.com/org-roam/org-roam> + diff --git a/2020/info/03.md b/2020/info/03.md new file mode 100644 index 00000000..1985fd70 --- /dev/null +++ b/2020/info/03.md @@ -0,0 +1,44 @@ +You want to write a novel, but you don't know how to create an +outline. You have a seed idea for a novel, and you intend to expand +it into a complete story. You have many ideas for a novel, and you +are wondering how to proceed. You started writing your heart out, and +you now feel the need to create a framework for a novel. + +Worry not, Emacs is here to the rescue. + +Listen to this talk to find out how to develop your story idea into a +framework for a novel, all within your favourite text editor, Emacs. + +What you will learn during the session: + +- How to write a single-line plot for a novel +- How to write the backbone of the novel, the main character arc +- How to create characters and write their arcs +- How to create a story design +- How to create the scenes design +- How to plan your novel writing project +- How to track your project + +The modified Emacs template has all the ingredients and flow to start +from a basic idea to a full fledged thrashed out novel superstructure. + +Once you are done with the superstructure, you can use the planning +and clocking infrastructure to finish scene after scene, thus +finishing your masterpiece. + +We will use: + +- The snowflake method - + +<https://www.advancedfictionwriting.com/articles/snowflake-method/> + +- The seven-point story structure - + +<https://invidious.snopyta.org/watch?v=KcmiqQ9NpPE&list=PLL7D_RCJrhcLzLiO17m7KcnG5WrjcUxGz> + +- The original emacs writing template - + +<https://tonyballantyne.com/EmacsWritingTips.html> + +- Some spices from the speaker's kitchen + diff --git a/2020/info/04.md b/2020/info/04.md new file mode 100644 index 00000000..b1ac408b --- /dev/null +++ b/2020/info/04.md @@ -0,0 +1,12 @@ +LilyPond is an extensible program for producing high-quality sheet +music engraved with traditional layout rules. Similar to LaTeX and +other typesetting programs, its input format simply describes the +visual layout of the score using commands to define musical +expressions. This makes collaboration easier, prevents users from +having to adjust layout settings manually, and faciliates digital +archiving and distribution of musical scores. In this talk, I begin +by showcasing LilyPond syntax and mode using literate programming +techniques as examples for building sheet music in Emacs, and proceed +with an overview of the setup I use for producing music books with GNU +Make, LilyPond, and LilyPond-mode. + diff --git a/2020/info/05.md b/2020/info/05.md new file mode 100644 index 00000000..5991df2e --- /dev/null +++ b/2020/info/05.md @@ -0,0 +1,16 @@ +I hoped to become a successful musician someday, and while that has +yet to happen, I've recorded a fair share of unreleased music over the +years. I decided it was time to share some of it with the world +through the power of Emacs! + +Rather than using the available non-free (or even free?) platforms out +there, I decided to build a Bandcamp-like page from scratch. While I +could have chosen many of the static-site building tools, I decided to +use the tool closest to my heart and automate the process of building +a web page from a directory of audio files with Emacs Lisp. + +I will share with you how I managed to create a personal workflow for +releasing an album without leaving the One True Editor that includes +editing audio metadata with EMMS and generating HTML while cobbling +together yasnippet and the format macro. + diff --git a/2020/info/06.md b/2020/info/06.md new file mode 100644 index 00000000..911f334c --- /dev/null +++ b/2020/info/06.md @@ -0,0 +1,3 @@ +Techniques to help new users bootstrap a more gentle introduction to +Emacs, one (short) init.el file at a time. + diff --git a/2020/info/07.md b/2020/info/07.md new file mode 100644 index 00000000..4b3683ac --- /dev/null +++ b/2020/info/07.md @@ -0,0 +1,35 @@ +A practiced dexterity with the arcane incantations known as keybindings is +the true mark of the veteran Emacs user. Yet, it takes years to get there, +and if you tried to explain what you were doing there, nobody would +understand, least of all those Vim users who would say that the whole +enterprise was foolhardy to begin with. They don't get it, those fools. Let +them flounder about in their "normal mode." Normal isn't good enough for +me! I want exceptional, IDEAL, I want… glorious mode, that's what I want. +And the only thing that'll cut it is if I do it … my way. Why, with my +precious emacs.d, I'm invincible! Well… just between you and me, there +are times when learning new keybindings every time someone makes a new toy +gets to be a bit of a drag, and some days I can't keep my C-c's and my C-c +C-c's straight if I'm being honest with you, but you'll never catch me +admitting it! I do wonder if there's a better way to get to glorious mode, +even though my .emacs.d is already perfect (of course). + +If this secretly sounds like you, then rejoice, there just might be a new +way, a better way! And you could potentially get there in days instead of +years, so that even your script kiddie coworker with their "VSCode" (groan) +may at last come around to your way of looking at things, and, maybe, just +maybe, even those Vim users (hiss!)! + +"Epistemic" Emacs is a user interface paradigm based on treating aspects of +the user interface as conceptual entities that can be reasoned about in +terms of a standard language. Essentially, instead of learning keybindings +for each specific action, you learn keybindings for general, conceptual +habits, kind of like Vim, except that instead of reasoning only about text, +you reason about any aspect of your interaction with the machine, whether +it's windows or buffers or even those interactions themselves. The promise +of this approach is that you just learn a simple language once, and you can +then apply it to vastly different aspects of your user interface, with the +same keybindings doing different things in different contexts, in sensible +and predictable ways. And in principle, whenever that new toy technology +comes around, anyone could extend the UI language to apply to it in a +matter of minutes, and you'd already know how to use it. + diff --git a/2020/info/08.md b/2020/info/08.md new file mode 100644 index 00000000..982b4270 --- /dev/null +++ b/2020/info/08.md @@ -0,0 +1,20 @@ +It's not always easy to take part of someone's configuration and make +it work, it's almost never easy to move your configuration to fresh OS +installation or hardware. Not sure that this snippet is enough to +make package work? Forgot to install ripgrep in your system for +rg.el? Got a broken version of package on package-install? + +There is a way to make an Emacs configuration reliable, composable and +self-contained. It's possible to freeze package versions, create +systemd unit for emacs daemon, maintain system dependencies and +package subconfigurations in one place with one tool. + +The talk explains how to leverage the power of nix package manager and +use-package to make pretty good emacs configuration. + +There is a stream record on the same topic: +<https://youtu.be/2_e3kPJQ93s>. It lacks few interesting points about +composability of such configuration approach, but already have enough +interesting information. The talk will be a little more structured +and more Emacs-users oriented. + diff --git a/2020/info/09.md b/2020/info/09.md new file mode 100644 index 00000000..d90f1098 --- /dev/null +++ b/2020/info/09.md @@ -0,0 +1,26 @@ +This is a talk about Orgmode, my favorite Emacs application. The goal +is to show you the power of Emacs when you want to manage and organize +your life. Orgmode is your swiss army knife for that job, and so far +the only tool that you can customize for your needs and you need to +customize yourself to fit the restrictions of a "ToDo list tool". + +Background info: I'm using Orgmode for many years now, and I'm not +exaggerating if I tell you that it saved me from a nervous breakdown +when my wife got diagonosed with severe illness and I was suddenly in +charge of everything. Orgmode was there and reminded me of the +important things so nothing was forgotten and I could focus on what +really matters. + +This talk should introduce people to Orgmode, showing them what they +can do and how it makes your life easier, freeing time for the things +that matter to you. + +I was holding a similar talk at the local Linux Day in our town in + +1. In 2016 I recorded a set of tutorial videos which are available + +on my YouTube channel which gained more than 3500 subcribers because +of those tutorials. In Summer 2020 I recorded the tutorials again for +a course at Udemy which went online in October 2020 and is +supplemented by a 100+ pages course book. + diff --git a/2020/info/10.md b/2020/info/10.md new file mode 100644 index 00000000..bda5f0a5 --- /dev/null +++ b/2020/info/10.md @@ -0,0 +1,14 @@ +The world is full of possibilities. A person life is rather short +though, and one can easily end up carry on without focus. + +In this short talk I want to share how Org mode empowers me into +organizing and monitoring my tasks to make sure I am working towards +achieving my vision. + +The emphasis of the talk is on defining a direction, monitoring the +progress towards your planned destination, and keeping a trail of your +actions to review and set up a healthy feedback loop. + +Tools for the job that I will (at least) mention: Org files, Org +agenda, Org archive, org-ql, and Org-roam. + diff --git a/2020/info/11.md b/2020/info/11.md new file mode 100644 index 00000000..93c7284e --- /dev/null +++ b/2020/info/11.md @@ -0,0 +1,6 @@ +Come see how org-gtd leverages org-mode to automate the GTD inbox +management. Stick around to see how the various org-mode tools get +connected by the package and how you can leverage them for yourself. +Bonus: there's even a few tests written for the package! We'll go +over those too. + diff --git a/2020/info/12.md b/2020/info/12.md new file mode 100644 index 00000000..71de0c05 --- /dev/null +++ b/2020/info/12.md @@ -0,0 +1,23 @@ +Many discussions have been had over the years on the debate between +using few big files versus many small files. However, more often than +not, those discussions devolve in a collection of anecdotes with +barely any science to them. + +Once and for all (or, at least until org-element.el get overhauled), I +would like to settle the debate by explaining why the way we parse +Org-mode files becomes slower as our files grow in size or numbers, +and how that affects their browsing and the building of custom-agenda +views. + +I feel qualified to talk about this topic for two reasons: + +- I went through the trouble of optimising my agenda-views by + implementing clever regex-based skips, so I know the ceiling that + can be reached with the current tech. +- My work on Org-roam has led me to consider the use of an external + parser for Org-mode files, and whilst we are only at the prototyping + stage, we know what is at stake. + +I intend the talk to be fairly light-hearted and humorous, which is the +only way we can do true justice to the topic. + diff --git a/2020/info/13.md b/2020/info/13.md new file mode 100644 index 00000000..e72fbcb9 --- /dev/null +++ b/2020/info/13.md @@ -0,0 +1,27 @@ +We present a short experience report from the perspective of two +long-time Emacs users and one relative newcomer. Our motivations +relate, broadly, to reproducibility of research in science. We +reflect on our experiences with off-the-self solutions available +through the Emacs package manager, and describe some of our custom +extensions. + +When working on a scientific research project, one typically has +multiple different computer programs running at the same time. For +example, we may use a computer algebra system such as Maxima for +calculations, an interactive language such as Julia for numerical +computations, TeX for writing up results, a reference manger such as +Zotero for the bibliography, Roam for note-taking, and Jekyll for +blogging. Switching and moving content among these programs can be +distracting, time-consuming, and prone to error. These issues are +compounded when there are several collaborators involved. + +We explore a solution that looks toward building better "computational +notebooks" using Emacs. We take Org mode as our foundation. As many +in this audience will know, Org mode integrates features such as +writing, task management, program evaluation, typesetting, +presentation, and navigation. Tightly integrated add-on packages +round out the picture either by directly replacing the functionality +of the other programs mentioned above or automatically dispatching +commands to them. We outline both the pleasure and pain involved in +this experience. + diff --git a/2020/info/14.md b/2020/info/14.md new file mode 100644 index 00000000..34cc09df --- /dev/null +++ b/2020/info/14.md @@ -0,0 +1,25 @@ +Org mode, among its numerous features, has the ability to do full +literate programming (with tangling and weaving the way Donald Knuth +originally intended). As a programmer, you can work comfortably, +completely inside an org-mode buffer. When you are ready, emacs will +generate the appropriate documentation and source code files for you. +If you are a lone emacs user on your project, simply commit these +exported files and keep your org file to yourself – no one is the +wiser. + +Watch "Literate Programming in Emacs Org-mode" to learn how you can +annotate code snippets in an org file so they can be automatically +exported to their proper locations in your source tree. Keep +important information about your project where it should be: right +next to the code itself. Not as ugly, out-of-date notes sitting +behind comment characters in your source files, but front and center +in well-formatted markdown and pdf files. + +And, for advanced use cases, see how you can even use a full-fledged +macro processor like m4 to personalize your workflow even more. +Literate programming on steroids! + +I'll walk you through the whole process, starting from an empty +project README.org to a simple example that generates source and +documentation. + diff --git a/2020/info/15.md b/2020/info/15.md new file mode 100644 index 00000000..004cf504 --- /dev/null +++ b/2020/info/15.md @@ -0,0 +1,11 @@ +I have been a long time user of static site generators, such as +Jekyll. + +I recently discovered Org Mode's publishing features and started +appreciating flexibility and capabilities, especially when literate +programming comes into play to generate "dynamic" content. + +In this talk/tutorial I will present the challenges I faced and how I +finally moved my homepage and the University of Trento's Computational +Logic website to Org Mode. + diff --git a/2020/info/16.md b/2020/info/16.md new file mode 100644 index 00000000..27ec45cc --- /dev/null +++ b/2020/info/16.md @@ -0,0 +1,24 @@ +Org-roam is a Roam replica built on top of the all-powerful Org-mode. + +Org-roam is a solution for effortless non-hierarchical note-taking with +Org-mode. With Org-roam, notes flow naturally, making note-taking fun +and easy. Org-roam should also work as a plug-and-play solution for +anyone already using Org-mode for their personal wiki. + +Org-roam aims to implement the core features of Roam, leveraging the +mature ecosystem around Org-mode where possible. Eventually, we hope to +further introduce features enabled by the Emacs ecosystem. + +The purpose of the talk is to introduce people to Org-roam, whether +they be Org-mode connoisseurs or newcomers. A lot of people have +found value in adopting Org-roam and the Zettelkasten method in their +workflows, and the goal is to demonstrate how they achieved it. The +last part will present the future milestones that are in store for +Org-roam. + +Examples of short-presentations I've recorded in the past: + +- [Org-Roam v1.2.0: Headlines & Unlinked References - YouTube](https://www.youtube.com/watch?v=3DoyEMlIxIHXs) +- [Org-roam-bibtex - Quick Presentation - YouTube](https://www.youtube.com/watch?v=3DWy9WvF5gWYg) +- [Org-roam-dailies: Demonstration - YouTube](https://www.youtube.com/watch?v=3D1q9x2aZCJJ4) + diff --git a/2020/info/17.md b/2020/info/17.md new file mode 100644 index 00000000..1b7aa8fa --- /dev/null +++ b/2020/info/17.md @@ -0,0 +1,22 @@ +Org-mode improved so much over the years, and the use-cases in org-mode are +vast and highly technical. There is something for everyone in org-mode, and +it's important to sift through all of these features and figure out what's +best for a given situation or specific users. Therefore, I will be +targeting academics and scholars that are engaging with literature in the +early stages of a project or their academic careers. + +Academics and scholars engage with complex ideas and unstructured research +workflows. I believe that org-mode can add more structure to the madness, +and I will use this talk to clarify a possible solution to reduce such +complexity. I propose a research workflow framework that utilizes +org-mode, its raw form, and its many associated packages. However, the main +package I will be mostly talking about is Org-Roam, and the way its +underlying principles will revolutionize the research workflow. + +This presentation will help researchers organize and build their knowledge +database in a streamlined and effective way. The research workflow is +presented in three phases: planning, note-taking, and reference management. +I will talk briefly about the packages and special-use cases for each stage +and learned lessons along the way. Finally, the presentation concludes with +future considerations and possible org-mode features. + diff --git a/2020/info/18.md b/2020/info/18.md new file mode 100644 index 00000000..f58f80bd --- /dev/null +++ b/2020/info/18.md @@ -0,0 +1,33 @@ +Org-roam is a Roam replica built on top of the all-powerful Org-mode. + +Org-roam is a solution for effortless non-hierarchical note-taking +with Org-mode. With Org-roam, notes flow naturally, making +note-taking fun and easy. Org-roam should also work as a +plug-and-play solution for anyone already using Org-mode for their +personal wiki. + +Org-roam aims to implement the core features of Roam, leveraging the +mature ecosystem around Org-mode where possible. Eventually, we hope +to further introduce features enabled by the Emacs ecosystem. + +The purpose of the talk is to present some technical aspects of +Org-roam. From the very beginning, we wanted Org-roam to scale with +your notes, and this meant that we had to keep a close eye on our +performances. As we iterated, optimisation remained a top-priority, +leading us to constantly peek under Org-mode's hood. Not only has +this made us better developers, but it has also uncovered paths of +optimisation for Org-mode itself. + +The talk is targeted at software engineers willing to peek under +Org-mode's hood. A rudimentary understanding of Elisp will be +required. + +Points to be covered + +- SQL database via emacsql +- Elisp libraries +- Parsing of Org-mode files +- org-elements.e +- Parsing with a background-process +- Ensuring consistency via hooks + diff --git a/2020/info/19.md b/2020/info/19.md new file mode 100644 index 00000000..e2db7530 --- /dev/null +++ b/2020/info/19.md @@ -0,0 +1,14 @@ +In this talk I will detail the ways in which static website generation +results may be enhanced using org-webring. This talk will cover not +only how to use org-webring (including how accessible and low-friction +it is), but also how you may customize it, utilize it in different +contexts unrelated to blogging (tracking project commits), and even as +a way to respond to other blogs in a cogent and manner. + +Additionally, I will go into slight detail as to the history of this +project, why it was made, what we are working on, and what we +remaining we need to do before we can submit it to GNU Emacs / +Org-mode. + +I think, in all, this can quite easily cover a 10 minute window. + diff --git a/2020/info/20.md b/2020/info/20.md new file mode 100644 index 00000000..af74098c --- /dev/null +++ b/2020/info/20.md @@ -0,0 +1,14 @@ +Macros are a powerful tool. In the context of Emacs Lisp programming +they can also provide us with a "foot-gun" of immense proportions. +Join the dungeon-mode project as we trip over our own macros, so to +speak, in the context of building a GPLv3+ turn-based role-playing +game engine and game design features for Emacs. + +In this 20m talk I'll briefly introduce some rationales leading to +storing all game source and play state information within org-mode +documents (spoiler: it's about freedom), then go into some detail +around the "ETL" process design that currently accomplishes this. +Finally, we'll look closely at one especially problematic macro deep +within this solution, and invite people to throw fruit^11^dhelp draw +conclusions, ask questions, and discuss. + diff --git a/2020/info/21.md b/2020/info/21.md new file mode 100644 index 00000000..355ee8b8 --- /dev/null +++ b/2020/info/21.md @@ -0,0 +1,50 @@ +In the last months there were several hundreds of messages in +emacs-devel in threads with names like "A proposal for a friendlier +Emacs", "How to make Emacs popular again", and "Interactive guide for +new users". On the one hand I am absolutely sure that eev is very +good answer to all these themes; on the other hand I know that eev is +based on some design decisions that offend most people used to modern, +"user-friendly" interfaces - and I feel that at this moment mentions +to eev in those discussions in emacs-devel would not be welcome. + +In this talk I will start by presenting very quickly the main "killer +features" of eev - namely: + +1. Elisp hyperlinks, + +2. interactive tutorials that can be navigated with just three keys, + +3. non-invasiveness - people can easily turn eev on for only five + minutes each week, play with it a bit, and then turn it off, + +4. high discoverability factor, + +5. a way to create "hyperlinks to here", + +6. hyperlinks to specific points in PDF documents and video files - + i.e., to specific pages, strings, and timemarks, + +7. a way to control shell-like programs ("eepitch"), and + +8. an Elisp tutorial, + +and after that I will present the design decisions behind eev, in two +parts: + +1. eev is a very thin layer above Emacs-the-Lisp-environment; it is + as simple as possible, but in the sense of "simple" that was used + in Forth, and that is not very familiar today. + +2. Very often when I am using Emacs - which is my main interface + with the system - I realize that I can automate some task that I + just did by hand twice of thrice; and that I should do that, + because automating that would be both easy and fun. Over the + years I experimented with several ways of automating tasks, + refined some of these ways a lot, and found a certain "best" + style that, again, usually offends people who are accustomed with + the modern ideas of user-friendliness. In this style, used in + most template-based functions in eev, both textual documentation + and error-handling are kept to a minimum. I will show how, and + why, eev makes this style works so well, and how users can create + their own templated functions very quickly - as "5-minute hacks". + diff --git a/2020/info/22.md b/2020/info/22.md new file mode 100644 index 00000000..b9c89e75 --- /dev/null +++ b/2020/info/22.md @@ -0,0 +1,65 @@ +Users will generally only make use of a few predefined \`special +blocks', such as \`example, centre, quote', and will not bother with +the effort required to make new ones. When new encapsulating notions +are required, users will either fallback on HTML or LaTeX specific +solutions, usually littered with \`#+ATTR' clauses to pass around +configurations or parameters. + +Efforts have been exerted to mitigate the trouble of producing new +special blocks. However, the issue of passing parameters is still +handled in a clumsy fashion; e.g., by having parameters be expressed +in a special block's content using specific keywords. + +We present a novel approach to making special blocks in a familiar +fashion and their use also in a familiar fashion. We achieve the +former by presenting \`\`defblock'', an anaphoric macro exceedingly +similar to \`\`defun'', and for the latter we mimic the usual +\`\`src''-block syntax for argument passing to support special blocks. + +For instance, here is a sample declaration. + + (defblock stutter () (reps 2) + "Output the CONTENTS of the block REPS many times" + (org-parse (s-repeat reps contents))) + +Here is an invocation that passes an *optional* argument; which +defaults to 2 when not given. + +<div class="stutter"> +<p> +Emacs for the win ⌣̈ +</p> + +</div> + +Upon export, to HTML or LaTeX for instance, the contents of this block +are repeated (\`stuttered') 5 times. The use of \`\`src''-like +invocation may lead to a decrease in \`#+ATTR' clauses. + +In the presentation, we aim to show a few \`practical' special blocks +that users may want: A block that … + +- translates *some selected* text —useful for multilingual blogs +- hides *some selected* text —useful for learning, quizzes +- folds/boxes text —useful in blogs for folding away details + +In particular, all of these examples will be around ~5 lines long! + +We also have a larger collection of more useful block types, already +implemented. + +The notable features of the system are as follows. + +- Familiar \`\`defun'' syntax for making block —\`\`defblock'' +- Familiar \`\`src'' syntax for passing arguments —e.g., \`\`:key + value'' +- Fine-grained control over export translation phases —c.f., + \`\`org-parse'' above +- **Modular**: New blocks can be made out of existing blocks really + quickly using \`\`blockcall'' —similar to Lisp's \`\`funcall''. We + will show how to fuse two blocks to make a new one, also within ~5 + lines. + +It is hoped that the ease of creating custom special blocks will be a +gateway for many Emacs users to start using Lisp. + diff --git a/2020/info/23.md b/2020/info/23.md new file mode 100644 index 00000000..f5ca8833 --- /dev/null +++ b/2020/info/23.md @@ -0,0 +1,10 @@ +Tree-sitter is a parser generator and an incremental parsing library. +emacs-tree-sitter is its most popular Emacs binding, which aims to be +the foundation of Emacs packages that understand source code's +structure. Examples include better code highlighting, folding, +indexing, structural navigation. + +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. + diff --git a/2020/info/24.md b/2020/info/24.md new file mode 100644 index 00000000..f39eccba --- /dev/null +++ b/2020/info/24.md @@ -0,0 +1,22 @@ +Emacs, show me how much technical debt and where it is in this +software repository! + +Also how complex is this module? + +And who is the main developer of this component? + +Mmm, if I change this file, do I need to change something else, Emacs? + +Ah, I need help of somebody to change this code! Emacs can you tell me +who knows something about this file? + +The above are some questions my Emacs can answer (an M-x away). + +It all started with "Your Code as a Crime Scene", an insightful book +by Adam Tornhill, and it continued with a big useful hack. + +In this talk I want to show the analyses I can produce on software +repositories with my Emacs, explain how they help me in my daily work, +give a bit of context of how Adam came up with them, and show the +dirty code that makes this wonderful functionality work. + diff --git a/2020/info/25.md b/2020/info/25.md new file mode 100644 index 00000000..dc02874a --- /dev/null +++ b/2020/info/25.md @@ -0,0 +1,21 @@ +If you are working with complex nested JSON structures, you are +probably familiar with jq which is like sed for JSON data and great at +what it does. However, being a command-line tool like sed, the +feedback for writing queries and seeing their results is a discrete +process and not live. + +When working with Emacs, we are used to good auto-completion and live +feedback. Formerly, this was mostly done with static input, but with +modern completion frameworks like Ivy and Counsel, this can be done +with dynamic inputs, as well. + +counsel-jq is a package with which you can quickly test queries and +traverse a complex JSON structure whilst having live feedback. Just +call `M-x counsel-jq` in a buffer containing JSON, then start writing +your `jq` query string and see the output appear live in the message +area. Whenever you're happy, hit `RET` and the results will be +displayed to you in the buffer `*jq-json*`. + +In this lightning talk, I'll give a quick overview on how to use +counsel-jq and how to build similar completion functionality. + diff --git a/2020/info/26.md b/2020/info/26.md new file mode 100644 index 00000000..35044db7 --- /dev/null +++ b/2020/info/26.md @@ -0,0 +1,16 @@ +Could Emacs be humanity's solution to the turbulent years of +adolescence? So much more than a text editor, Emacs changed the way I +approach everything at the age of 15. In the two years since +discovering Emacs in my sophomore year of high school, I have been +constantly amazed at what Emacs is capable of. In this talk, I would +like to share this journey of discovery and what I've learned along +the way, beginning with what led me to Emacs. I will describe the +many ways that Emacs has shaped my life as a student, a programmer, a +violinist, and a productive and happy adolescent. In each case, I +have thoroughly enjoyed figuring out the best way to make Emacs work +for me, and I'd like to share this with others. In addition, I'd like +to take this opportunity to address some roadblocks that I have +noticed having observed some of my peers' attempts at learning Emacs +and possible solutions for those barriers, taking inspiration from +various sources both from inside and outside the Emacs community. + diff --git a/2020/info/27.md b/2020/info/27.md new file mode 100644 index 00000000..ce42e753 --- /dev/null +++ b/2020/info/27.md @@ -0,0 +1,8 @@ +Many jokes have been made about the true nature of Emacs, such as it +being a fully-fledged operating system. This talk will demonstrate +its suitability for playing retro games, then explore the inner +workings of a [CHIP-8](https://en.wikipedia.org/wiki/CHIP-8) emulator capable of smooth video game emulation. + +[1]: <https://depp.brause.cc/talks/chicken-saar/> +[2]: <https://depp.brause.cc/talks/openchaos-2019-11/> + diff --git a/2020/info/28.md b/2020/info/28.md new file mode 100644 index 00000000..b3646ba4 --- /dev/null +++ b/2020/info/28.md @@ -0,0 +1,23 @@ +Dungeon is an oral and physical media fantasy and abstract role-play +gaming tradition that seems to have grown from miniature and +war-gaming communities in and around the University of Minnesota, Twin +Cities in the 1950s and 60s. + +Dungeon is inherently free (or nearly free, you do need paper and +dice), both to play and to create your own games. Moreover, as a +generality among practices, as Dungeon authors, we dislike impositions +on our creative freedoms beyond those of our own imagination and +tastes, especially those such as of a "brand" or "system", or e.g. +copyright holder. + +In December of 2019 some friends who grew up creating and playing in +each others' Dungeons decided to try making an engine for these types +of games using Emacs and Emacs Lisp, org-mode, and maybe some +duct-tape if needed. In this 50 minute talk Corwin and Erik introduce +dungeon-mode, and explain why we decided to do that. We'll sketch out +the project in both lay and technical terms, provide a tactical update +with respect to completing our initial concept, describe how things +are going in human terms, and share some things we've learned so far +from and about Emacs and the free software community working on this +project, while leaving 10-15m for questions and discussion. + diff --git a/2020/info/29.md b/2020/info/29.md new file mode 100644 index 00000000..7639d238 --- /dev/null +++ b/2020/info/29.md @@ -0,0 +1,65 @@ +We hope the dungeon-mode project will eventually support three primary +use-cases related to editing/designing, playing and running/hosting +RPG games. In a "vanilla" game, characters descend from the "General +Store" (the one safe haven available) into the dungeon, a (nominally) +underground labyrinth of unknown dimensions with generally asocial +occupants and occasional bits of treasure. + +Players can track (as long as the "lights" stay on) the location of +their party of characters via a process we usually call "mapping". +This has usually involved the dungeon master "calling out" the shape +of the map level as the party, in turn, calls out their route or +"pathing" decisions. + + DUNGEON-MASTER + "Corridor East-West" + PARTY-LEADER + "West" + DUNGEON-MASTER + "Ten feet, corridor ends goes South" + PARTY-LEADER + "South" + DUNGEON-MASTER + "Step into an area. It's a + twenty-by-twenty area extending + West, with exits in the Western + part of the southern wall and the + Southern part of the eastern wall." + **rolls dice** + "Nothing waiting in the area" + +Mapping quickly emerged as a focal point for development. Especially, +we were to excited to try creating an 'on-the-fly' graphical +representation of the map that could respond to changing in-game +circumstances. (Oops, all your Elves are dead. Where'd the secret +doors go?) + +During this 20m talk I'll provide a couple of reference points on +Emacs's image and especially SVG rendering capabilities, then +introduce a series of proofs-of-concept focusing on our experience +using core libraries such as \`svg.el' to make them. + +As of submitting abstracts, these include + +- "DM map view" - select and render a complete game map, +- "play mode map" - progressively render maps based on game action, +- "battle-board" - track damage taken by player characters, and +- "character-sheet" - a graphical character sheet +- "previews" - view map tiles when hovering their draw code in org +- "sketch" - a "click-to-draw" experiment + +For an advanced peek please see our git repository (but note we're +moving to Savannah soon). We'll be talking first about [map.el](https://github.com/dungeon-mode/game/blob/master/src/dm-map.el), +especially \`dm-map-draw' and helpers. A few sample game maps this can +render are available as org-mode documents in the [Docs/Maps](https://github.com/dungeon-mode/game/blob/master/Docs/Maps) folder. + +Those interested could compare functions between dm-map.el and +[dm-draw.el](https://github.com/dungeon-mode/game/blob/master/src/dm-draw.el), which is an incomplete rewrite of the "SVG rendering" +functions used only by [dm-sketch.el](https://github.com/dungeon-mode/game/blob/master/src/dm-sketch.el) (so far). Hopefully, it will be +writing our "sketches" back out to org docs in time for the +conference. + +Note on github: +The project is transitioning to Savannah. Please watch for +redirects/moved notices when using these links. + diff --git a/2020/info/30.md b/2020/info/30.md new file mode 100644 index 00000000..68382c2a --- /dev/null +++ b/2020/info/30.md @@ -0,0 +1,10 @@ +Vterm is a fast and fully capable terminal emulator in GNU Emacs built +as a dynamic module on top of libvterm. In this talk, I will give an +overview of the package. I will discuss the installation and common +customizations. I will go into details on some of the most important +features, such as directory tracking or message passing. Finally, I +will touch upon known incompatibilities and the future directions of +the project. + +URL: <https://github.com/akermu/emacs-libvterm> + diff --git a/2020/info/31.md b/2020/info/31.md new file mode 100644 index 00000000..1283ea23 --- /dev/null +++ b/2020/info/31.md @@ -0,0 +1,24 @@ +When I began learning Lakota, the language of my ancestors, there was +no way for me to type it on a computer without using non-free +software. Additionally, the only software I could find supported just +one of the proposed orthographies for the language. + +As an Emacs user, I knew that free software offered the ability for +many types of languages to co-exist in the same program and went +looking for how to enable an input mode for Lakota in Emacs. This +talk will discuss how Emacs enabled me to define input modes for +multiple Lakota orthographies using the Quail multilingual input +package. + +I will also discuss some of the ethical and cultural considerations I +went through when publishing the package. Lakota and many other +indigenous languages were actively suppressed for many years, and are +in danger of extinction. The language is being recovered now, but +much of the available educational material comes from non-indian +people. Before publishing an input mode for Emacs, I wanted to ensure +that I included an orthography developed by Lakota people, not only +the suggested orthography present in most of my educational material. +Additionally, the choice of where to publish the source as an Emacs +package was important, since some corporations have been known to +support ongoing oppression against indigenous descended peoples. + diff --git a/2020/info/32.md b/2020/info/32.md new file mode 100644 index 00000000..8097de9c --- /dev/null +++ b/2020/info/32.md @@ -0,0 +1,16 @@ +The venerable Gnus newsreader has evolved over the years to interface +with many different types of news- or mail-like backend programs, +presenting all of them using a unified interface. This sort of +software often calls for an object-oriented architecture, at least as +regards polymorphism, yet Gnus was written well before Emacs lisp +acquired the object-oriented tools and libraries – largely borrowed +from Common Lisp – that it boasts today. + +Yet Gnus needed something "object-oriented-like", and so nnoo.el was +born: a rather amazing (and frankly terrifying) implementation of +object-oriented behavior using functional code. + +This talk will be a brief introduction to how this existing system +works, and to the ongoing, incremental effort to port it over to newer +Elisp tools like generic functions, structs, and objects. + diff --git a/2020/info/33.md b/2020/info/33.md new file mode 100644 index 00000000..97d5ebaa --- /dev/null +++ b/2020/info/33.md @@ -0,0 +1,8 @@ +Maxima is a great tool for symbolic mathematics, it has some support +for Emacs in the main repository, but is quite outdated and doesn't +receive the love I think it should, so a couple of months ago I decide +to improve and "modernize" the maxima-mode.el code base. So, I want +to talk about the integration with Emacs, the maxima REPL, how some of +the main tool for Emacs integrate in maxima-mode and in general show +how to start using maxima within Emacs. + diff --git a/2020/info/34.md b/2020/info/34.md new file mode 100644 index 00000000..a0abbde4 --- /dev/null +++ b/2020/info/34.md @@ -0,0 +1,6 @@ +Emacs Application Framework (EAF) is a customizable and extensible GUI +application framework that extends Emacs graphical capabilities using +PyQt5. This talk will cover the architecture design of the EAF +project, and demonstrate some of its most useful applications: modern +browser, PDF viewer, video player, etc. + diff --git a/2020/info/35.md b/2020/info/35.md new file mode 100644 index 00000000..b1307b61 --- /dev/null +++ b/2020/info/35.md @@ -0,0 +1,10 @@ +During quarantine, I found myself spending time with an Android app. +One of the features this app has is composing music that loops +endlessly. As with many things, I wondered how much better this tool +would be, if only it was inside Emacs. + +This talk will explain how I made this tool inside Emacs, with detours +through Emacs text properties, font rendering, the .WAVE file format, +and music theory. And hopefully at the end, we'll have something +worth listening to. + diff --git a/2020/info/38.md b/2020/info/38.md new file mode 100644 index 00000000..6afcfd61 --- /dev/null +++ b/2020/info/38.md @@ -0,0 +1,2 @@ +TBD - possibly a quick overview of Emacs 27.1 and development priorities for Emacs 28 + diff --git a/2020/info/39.md b/2020/info/39.md new file mode 100644 index 00000000..07737ade --- /dev/null +++ b/2020/info/39.md @@ -0,0 +1,2 @@ +TBD - plans for a NonGNU ELPA that will be easy to enable and contribute to without signing copyright assignment papers + diff --git a/2020/schedule/01.md b/2020/schedule/01.md index 30709263..37776d18 100644 --- a/2020/schedule/01.md +++ b/2020/schedule/01.md @@ -4,35 +4,9 @@ Back to the [[schedule]] Next: <a href="/2020/schedule/02">An Emacs Developer Story: From User to Maintainer</a> +Saturday, Nov 28 2020, 9:33 AM - 9:43 AM EST / 6:33 AM - 6:43 AM PST / 2:33 PM - 2:43 PM UTC / 3:33 PM - 3:43 PM CET / 10:33 PM - 10:43 PM +08 -# Emacs News Highlights -Saturday, Nov 28 2020, 9:33 AM - 9:43 AM EST / 6:33 AM - 6:43 AM PST / 2:33 PM - 2:43 PM UTC / 3:33 PM - 3:43 PM CET / 10:33 PM - 10:43 PM +08 -Sacha Chua - -Quick highlights from Emacs News since the last EmacsConf - - -# Links - -This is a draft. - -- [Mickey Petersen's notes on Emacs 27.1](https://www.masteringemacs.org/article/whats-new-in-emacs-27-1) -- [Bringing GNU Emacs to Native Code](https://www.reddit.com/r/emacs/comments/g9vdd0/bringing_gnu_emacs_to_native_code_at_the_european/) -- [Making Emacs popular again [LWN.net]](https://lwn.net/Articles/819452/) -- [Org Mode and Zettelkasten](https://www.reddit.com/r/emacs/comments/hfamm7/those_who_have_tried_out_multiple_zettelkasten/) -- [EAF](https://www.reddit.com/r/emacs/comments/e48se1/eaf_extending_emacs_with_amazing_gui_support/) - - [Doom](https://www.reddit.com/r/emacs/comments/f2c99b/you_can_play_doom_inside_emacs_using_eaf/) -- Virtual meetups: - - [NYC](https://www.meetup.com/New-York-Emacs-Meetup/events/) - - [SF](https://www.meetup.com/Emacs-SF/) - - [Emacs ATX](https://www.meetup.com/EmacsATX/) - - [APAC](https://www.reddit.com/r/emacs/comments/izbdq9/announcing_call_for_speakers_for_emacs_apac/) - - [Berlin](https://www.reddit.com/r/planetemacs/comments/jokqa4/emacs_berlin_online_meetup_on_november_25th_2020/) -- [Emacs User Survey](https://emacssurvey.org/) - - - - +[[!inline pages="../info/01" raw="yes"]] Back to the [[schedule]] Next: <a href="/2020/schedule/02">An Emacs Developer Story: From User to Maintainer</a> diff --git a/2020/schedule/02.md b/2020/schedule/02.md index 3d8ebd8b..dacfb864 100644 --- a/2020/schedule/02.md +++ b/2020/schedule/02.md @@ -5,33 +5,9 @@ Back to the [[schedule]] Previous: <a href="/2020/schedule/01">Emacs News Highlights</a> Next: <a href="/2020/schedule/03">Idea to Novel Superstructure: Emacs for Writing</a> +Saturday, Nov 28 2020, 9:46 AM - 10:06 AM EST / 6:46 AM - 7:06 AM PST / 2:46 PM - 3:06 PM UTC / 3:46 PM - 4:06 PM CET / 10:46 PM - 11:06 PM +08 -# An Emacs Developer Story: From User to Maintainer -Saturday, Nov 28 2020, 9:46 AM - 10:06 AM EST / 6:46 AM - 7:06 AM PST / 2:46 PM - 3:06 PM UTC / 3:46 PM - 4:06 PM CET / 10:46 PM - 11:06 PM +08 -Leo Vivier - -In light of the new development philosophy for Org-mode, I would like -to present my developer story from discovering Org-mode in 2014 to -becoming a maintainer for a big project in 2020. The goal is to show -the logical progression between interest, gaining skills, becoming an -expert, authoring, contributing and maintaining, in hope that it would -bolster people to do the same. - -As someone who majored in a non CS-related degree, I feel that my -story has a potential to grasp the attention of many attendees, since -I basically started from the bottom of the ladder. Most people should -be able to relate to one step on that ladder, which should hopefully -encourage them to reach for the next step. - -My init files, which show the organic growth of my configuration: -<https://github.com/zaeph/.emacs.d> - -Org-roam, the software which I am maintaining -<https://github.com/org-roam/org-roam> - - - - +[[!inline pages="../info/02" raw="yes"]] Back to the [[schedule]] Previous: <a href="/2020/schedule/01">Emacs News Highlights</a> diff --git a/2020/schedule/03.md b/2020/schedule/03.md index 5250dd09..6a8d03ad 100644 --- a/2020/schedule/03.md +++ b/2020/schedule/03.md @@ -5,58 +5,9 @@ Back to the [[schedule]] Previous: <a href="/2020/schedule/02">An Emacs Developer Story: From User to Maintainer</a> Next: <a href="/2020/schedule/04">Music in Plain Text</a> +Saturday, Nov 28 2020, 10:09 AM - 10:19 AM EST / 7:09 AM - 7:19 AM PST / 3:09 PM - 3:19 PM UTC / 4:09 PM - 4:19 PM CET / 11:09 PM - 11:19 PM +08 -# Idea to Novel Superstructure: Emacs for Writing -Saturday, Nov 28 2020, 10:09 AM - 10:19 AM EST / 7:09 AM - 7:19 AM PST / 3:09 PM - 3:19 PM UTC / 4:09 PM - 4:19 PM CET / 11:09 PM - 11:19 PM +08 -Bala Ramadurai - -You want to write a novel, but you don't know how to create an -outline. You have a seed idea for a novel, and you intend to expand -it into a complete story. You have many ideas for a novel, and you -are wondering how to proceed. You started writing your heart out, and -you now feel the need to create a framework for a novel. - -Worry not, Emacs is here to the rescue. - -Listen to this talk to find out how to develop your story idea into a -framework for a novel, all within your favourite text editor, Emacs. - -What you will learn during the session: - -- How to write a single-line plot for a novel -- How to write the backbone of the novel, the main character arc -- How to create characters and write their arcs -- How to create a story design -- How to create the scenes design -- How to plan your novel writing project -- How to track your project - -The modified Emacs template has all the ingredients and flow to start -from a basic idea to a full fledged thrashed out novel superstructure. - -Once you are done with the superstructure, you can use the planning -and clocking infrastructure to finish scene after scene, thus -finishing your masterpiece. - -We will use: - -- The snowflake method - - -<https://www.advancedfictionwriting.com/articles/snowflake-method/> - -- The seven-point story structure - - -<https://invidious.snopyta.org/watch?v=KcmiqQ9NpPE&list=PLL7D_RCJrhcLzLiO17m7KcnG5WrjcUxGz> - -- The original emacs writing template - - -<https://tonyballantyne.com/EmacsWritingTips.html> - -- Some spices from the speaker's kitchen - - - - +[[!inline pages="../info/03" raw="yes"]] Back to the [[schedule]] Previous: <a href="/2020/schedule/02">An Emacs Developer Story: From User to Maintainer</a> diff --git a/2020/schedule/04.md b/2020/schedule/04.md index 5fa0e4cf..910bf209 100644 --- a/2020/schedule/04.md +++ b/2020/schedule/04.md @@ -5,26 +5,9 @@ Back to the [[schedule]] Previous: <a href="/2020/schedule/03">Idea to Novel Superstructure: Emacs for Writing</a> Next: <a href="/2020/schedule/05">Bard Bivou(m)acs - Building a bandcamp-like page for an album of music</a> +Saturday, Nov 28 2020, 10:22 AM - 10:32 AM EST / 7:22 AM - 7:32 AM PST / 3:22 PM - 3:32 PM UTC / 4:22 PM - 4:32 PM CET / 11:22 PM - 11:32 PM +08 -# Music in Plain Text -Saturday, Nov 28 2020, 10:22 AM - 10:32 AM EST / 7:22 AM - 7:32 AM PST / 3:22 PM - 3:32 PM UTC / 4:22 PM - 4:32 PM CET / 11:22 PM - 11:32 PM +08 -Jonathan Gregory - -LilyPond is an extensible program for producing high-quality sheet -music engraved with traditional layout rules. Similar to LaTeX and -other typesetting programs, its input format simply describes the -visual layout of the score using commands to define musical -expressions. This makes collaboration easier, prevents users from -having to adjust layout settings manually, and faciliates digital -archiving and distribution of musical scores. In this talk, I begin -by showcasing LilyPond syntax and mode using literate programming -techniques as examples for building sheet music in Emacs, and proceed -with an overview of the setup I use for producing music books with GNU -Make, LilyPond, and LilyPond-mode. - - - - +[[!inline pages="../info/04" raw="yes"]] Back to the [[schedule]] Previous: <a href="/2020/schedule/03">Idea to Novel Superstructure: Emacs for Writing</a> diff --git a/2020/schedule/05.md b/2020/schedule/05.md index 8f7b1191..74d56217 100644 --- a/2020/schedule/05.md +++ b/2020/schedule/05.md @@ -5,30 +5,9 @@ Back to the [[schedule]] Previous: <a href="/2020/schedule/04">Music in Plain Text</a> Next: <a href="/2020/schedule/06">Trivial Emacs Kits</a> +Saturday, Nov 28 2020, 10:35 AM - 10:45 AM EST / 7:35 AM - 7:45 AM PST / 3:35 PM - 3:45 PM UTC / 4:35 PM - 4:45 PM CET / 11:35 PM - 11:45 PM +08 -# Bard Bivou(m)acs - Building a bandcamp-like page for an album of music -Saturday, Nov 28 2020, 10:35 AM - 10:45 AM EST / 7:35 AM - 7:45 AM PST / 3:35 PM - 3:45 PM UTC / 4:35 PM - 4:45 PM CET / 11:35 PM - 11:45 PM +08 -Grant Shangreaux - -I hoped to become a successful musician someday, and while that has -yet to happen, I've recorded a fair share of unreleased music over the -years. I decided it was time to share some of it with the world -through the power of Emacs! - -Rather than using the available non-free (or even free?) platforms out -there, I decided to build a Bandcamp-like page from scratch. While I -could have chosen many of the static-site building tools, I decided to -use the tool closest to my heart and automate the process of building -a web page from a directory of audio files with Emacs Lisp. - -I will share with you how I managed to create a personal workflow for -releasing an album without leaving the One True Editor that includes -editing audio metadata with EMMS and generating HTML while cobbling -together yasnippet and the format macro. - - - - +[[!inline pages="../info/05" raw="yes"]] Back to the [[schedule]] Previous: <a href="/2020/schedule/04">Music in Plain Text</a> diff --git a/2020/schedule/06.md b/2020/schedule/06.md index d8d4d2c3..99561a21 100644 --- a/2020/schedule/06.md +++ b/2020/schedule/06.md @@ -5,17 +5,9 @@ Back to the [[schedule]] Previous: <a href="/2020/schedule/05">Bard Bivou(m)acs - Building a bandcamp-like page for an album of music</a> Next: <a href="/2020/schedule/07">Beyond Vim and Emacs: A Scalable UI Paradigm</a> +Saturday, Nov 28 2020, 10:48 AM - 10:58 AM EST / 7:48 AM - 7:58 AM PST / 3:48 PM - 3:58 PM UTC / 4:48 PM - 4:58 PM CET / 11:48 PM - 11:58 PM +08 -# Trivial Emacs Kits -Saturday, Nov 28 2020, 10:48 AM - 10:58 AM EST / 7:48 AM - 7:58 AM PST / 3:48 PM - 3:58 PM UTC / 4:48 PM - 4:58 PM CET / 11:48 PM - 11:58 PM +08 -Corwin Brust - -Techniques to help new users bootstrap a more gentle introduction to -Emacs, one (short) init.el file at a time. - - - - +[[!inline pages="../info/06" raw="yes"]] Back to the [[schedule]] Previous: <a href="/2020/schedule/05">Bard Bivou(m)acs - Building a bandcamp-like page for an album of music</a> diff --git a/2020/schedule/07.md b/2020/schedule/07.md index a333d6cf..a9e895d9 100644 --- a/2020/schedule/07.md +++ b/2020/schedule/07.md @@ -5,49 +5,9 @@ Back to the [[schedule]] Previous: <a href="/2020/schedule/06">Trivial Emacs Kits</a> Next: <a href="/2020/schedule/08">Building reproducible Emacs</a> +Saturday, Nov 28 2020, 11:01 AM - 11:21 AM EST / 8:01 AM - 8:21 AM PST / 4:01 PM - 4:21 PM UTC / 5:01 PM - 5:21 PM CET / 12:01 AM - 12:21 AM +08 -# Beyond Vim and Emacs: A Scalable UI Paradigm -Saturday, Nov 28 2020, 11:01 AM - 11:21 AM EST / 8:01 AM - 8:21 AM PST / 4:01 PM - 4:21 PM UTC / 5:01 PM - 5:21 PM CET / 12:01 AM - 12:21 AM +08 -Sid Kasivajhula - -A practiced dexterity with the arcane incantations known as keybindings is -the true mark of the veteran Emacs user. Yet, it takes years to get there, -and if you tried to explain what you were doing there, nobody would -understand, least of all those Vim users who would say that the whole -enterprise was foolhardy to begin with. They don't get it, those fools. Let -them flounder about in their "normal mode." Normal isn't good enough for -me! I want exceptional, IDEAL, I want… glorious mode, that's what I want. -And the only thing that'll cut it is if I do it … my way. Why, with my -precious emacs.d, I'm invincible! Well… just between you and me, there -are times when learning new keybindings every time someone makes a new toy -gets to be a bit of a drag, and some days I can't keep my C-c's and my C-c -C-c's straight if I'm being honest with you, but you'll never catch me -admitting it! I do wonder if there's a better way to get to glorious mode, -even though my .emacs.d is already perfect (of course). - -If this secretly sounds like you, then rejoice, there just might be a new -way, a better way! And you could potentially get there in days instead of -years, so that even your script kiddie coworker with their "VSCode" (groan) -may at last come around to your way of looking at things, and, maybe, just -maybe, even those Vim users (hiss!)! - -"Epistemic" Emacs is a user interface paradigm based on treating aspects of -the user interface as conceptual entities that can be reasoned about in -terms of a standard language. Essentially, instead of learning keybindings -for each specific action, you learn keybindings for general, conceptual -habits, kind of like Vim, except that instead of reasoning only about text, -you reason about any aspect of your interaction with the machine, whether -it's windows or buffers or even those interactions themselves. The promise -of this approach is that you just learn a simple language once, and you can -then apply it to vastly different aspects of your user interface, with the -same keybindings doing different things in different contexts, in sensible -and predictable ways. And in principle, whenever that new toy technology -comes around, anyone could extend the UI language to apply to it in a -matter of minutes, and you'd already know how to use it. - - - - +[[!inline pages="../info/07" raw="yes"]] Back to the [[schedule]] Previous: <a href="/2020/schedule/06">Trivial Emacs Kits</a> diff --git a/2020/schedule/08.md b/2020/schedule/08.md index e53c231e..90cb5968 100644 --- a/2020/schedule/08.md +++ b/2020/schedule/08.md @@ -5,34 +5,9 @@ Back to the [[schedule]] Previous: <a href="/2020/schedule/07">Beyond Vim and Emacs: A Scalable UI Paradigm</a> Next: <a href="/2020/schedule/21">On why most of the best features in eev look like 5-minute hacks</a> +Saturday, Nov 28 2020, 11:24 AM - 11:44 AM EST / 8:24 AM - 8:44 AM PST / 4:24 PM - 4:44 PM UTC / 5:24 PM - 5:44 PM CET / 12:24 AM - 12:44 AM +08 -# Building reproducible Emacs -Saturday, Nov 28 2020, 11:24 AM - 11:44 AM EST / 8:24 AM - 8:44 AM PST / 4:24 PM - 4:44 PM UTC / 5:24 PM - 5:44 PM CET / 12:24 AM - 12:44 AM +08 -Andrew Tropin - -It's not always easy to take part of someone's configuration and make -it work, it's almost never easy to move your configuration to fresh OS -installation or hardware. Not sure that this snippet is enough to -make package work? Forgot to install ripgrep in your system for -rg.el? Got a broken version of package on package-install? - -There is a way to make an Emacs configuration reliable, composable and -self-contained. It's possible to freeze package versions, create -systemd unit for emacs daemon, maintain system dependencies and -package subconfigurations in one place with one tool. - -The talk explains how to leverage the power of nix package manager and -use-package to make pretty good emacs configuration. - -There is a stream record on the same topic: -<https://youtu.be/2_e3kPJQ93s>. It lacks few interesting points about -composability of such configuration approach, but already have enough -interesting information. The talk will be a little more structured -and more Emacs-users oriented. - - - - +[[!inline pages="../info/08" raw="yes"]] Back to the [[schedule]] Previous: <a href="/2020/schedule/07">Beyond Vim and Emacs: A Scalable UI Paradigm</a> diff --git a/2020/schedule/09.md b/2020/schedule/09.md index 9de8314c..e4b7e67c 100644 --- a/2020/schedule/09.md +++ b/2020/schedule/09.md @@ -5,40 +5,9 @@ Back to the [[schedule]] Previous: <a href="/2020/schedule/21">On why most of the best features in eev look like 5-minute hacks</a> Next: <a href="/2020/schedule/10">Lead your future with Org</a> +Saturday, Nov 28 2020, 1:03 PM - 1:13 PM EST / 10:03 AM - 10:13 AM PST / 6:03 PM - 6:13 PM UTC / 7:03 PM - 7:13 PM CET / 2:03 AM - 2:13 AM +08 -# Orgmode - your life in plain text -Saturday, Nov 28 2020, 1:03 PM - 1:13 PM EST / 10:03 AM - 10:13 AM PST / 6:03 PM - 6:13 PM UTC / 7:03 PM - 7:13 PM CET / 2:03 AM - 2:13 AM +08 -Rainer König - -This is a talk about Orgmode, my favorite Emacs application. The goal -is to show you the power of Emacs when you want to manage and organize -your life. Orgmode is your swiss army knife for that job, and so far -the only tool that you can customize for your needs and you need to -customize yourself to fit the restrictions of a "ToDo list tool". - -Background info: I'm using Orgmode for many years now, and I'm not -exaggerating if I tell you that it saved me from a nervous breakdown -when my wife got diagonosed with severe illness and I was suddenly in -charge of everything. Orgmode was there and reminded me of the -important things so nothing was forgotten and I could focus on what -really matters. - -This talk should introduce people to Orgmode, showing them what they -can do and how it makes your life easier, freeing time for the things -that matter to you. - -I was holding a similar talk at the local Linux Day in our town in - -1. In 2016 I recorded a set of tutorial videos which are available - -on my YouTube channel which gained more than 3500 subcribers because -of those tutorials. In Summer 2020 I recorded the tutorials again for -a course at Udemy which went online in October 2020 and is -supplemented by a 100+ pages course book. - - - - +[[!inline pages="../info/09" raw="yes"]] Back to the [[schedule]] Previous: <a href="/2020/schedule/21">On why most of the best features in eev look like 5-minute hacks</a> diff --git a/2020/schedule/10.md b/2020/schedule/10.md index 38172da9..14cf136a 100644 --- a/2020/schedule/10.md +++ b/2020/schedule/10.md @@ -5,28 +5,9 @@ Back to the [[schedule]] Previous: <a href="/2020/schedule/09">Orgmode - your life in plain text</a> Next: <a href="/2020/schedule/11">the org-gtd package: opinions about Getting Things Done</a> +Saturday, Nov 28 2020, 1:16 PM - 1:26 PM EST / 10:16 AM - 10:26 AM PST / 6:16 PM - 6:26 PM UTC / 7:16 PM - 7:26 PM CET / 2:16 AM - 2:26 AM +08 -# Lead your future with Org -Saturday, Nov 28 2020, 1:16 PM - 1:26 PM EST / 10:16 AM - 10:26 AM PST / 6:16 PM - 6:26 PM UTC / 7:16 PM - 7:26 PM CET / 2:16 AM - 2:26 AM +08 -Andrea - -The world is full of possibilities. A person life is rather short -though, and one can easily end up carry on without focus. - -In this short talk I want to share how Org mode empowers me into -organizing and monitoring my tasks to make sure I am working towards -achieving my vision. - -The emphasis of the talk is on defining a direction, monitoring the -progress towards your planned destination, and keeping a trail of your -actions to review and set up a healthy feedback loop. - -Tools for the job that I will (at least) mention: Org files, Org -agenda, Org archive, org-ql, and Org-roam. - - - - +[[!inline pages="../info/10" raw="yes"]] Back to the [[schedule]] Previous: <a href="/2020/schedule/09">Orgmode - your life in plain text</a> diff --git a/2020/schedule/11.md b/2020/schedule/11.md index e4cdb822..f7e2ccdc 100644 --- a/2020/schedule/11.md +++ b/2020/schedule/11.md @@ -5,20 +5,9 @@ Back to the [[schedule]] Previous: <a href="/2020/schedule/10">Lead your future with Org</a> Next: <a href="/2020/schedule/12">One Big-ass Org File or multiple tiny ones? Finally, the End of the debate!</a> +Saturday, Nov 28 2020, 1:29 PM - 1:49 PM EST / 10:29 AM - 10:49 AM PST / 6:29 PM - 6:49 PM UTC / 7:29 PM - 7:49 PM CET / 2:29 AM - 2:49 AM +08 -# the org-gtd package: opinions about Getting Things Done -Saturday, Nov 28 2020, 1:29 PM - 1:49 PM EST / 10:29 AM - 10:49 AM PST / 6:29 PM - 6:49 PM UTC / 7:29 PM - 7:49 PM CET / 2:29 AM - 2:49 AM +08 -Aldric - -Come see how org-gtd leverages org-mode to automate the GTD inbox -management. Stick around to see how the various org-mode tools get -connected by the package and how you can leverage them for yourself. -Bonus: there's even a few tests written for the package! We'll go -over those too. - - - - +[[!inline pages="../info/11" raw="yes"]] Back to the [[schedule]] Previous: <a href="/2020/schedule/10">Lead your future with Org</a> diff --git a/2020/schedule/12.md b/2020/schedule/12.md index 22a83180..f5cd9551 100644 --- a/2020/schedule/12.md +++ b/2020/schedule/12.md @@ -5,37 +5,9 @@ Back to the [[schedule]] Previous: <a href="/2020/schedule/11">the org-gtd package: opinions about Getting Things Done</a> Next: <a href="/2020/schedule/13">Experience Report: Steps to "Emacs Hyper Notebooks"</a> +Saturday, Nov 28 2020, 1:52 PM - 2:02 PM EST / 10:52 AM - 11:02 AM PST / 6:52 PM - 7:02 PM UTC / 7:52 PM - 8:02 PM CET / 2:52 AM - 3:02 AM +08 -# One Big-ass Org File or multiple tiny ones? Finally, the End of the debate! -Saturday, Nov 28 2020, 1:52 PM - 2:02 PM EST / 10:52 AM - 11:02 AM PST / 6:52 PM - 7:02 PM UTC / 7:52 PM - 8:02 PM CET / 2:52 AM - 3:02 AM +08 -Leo Vivier - -Many discussions have been had over the years on the debate between -using few big files versus many small files. However, more often than -not, those discussions devolve in a collection of anecdotes with -barely any science to them. - -Once and for all (or, at least until org-element.el get overhauled), I -would like to settle the debate by explaining why the way we parse -Org-mode files becomes slower as our files grow in size or numbers, -and how that affects their browsing and the building of custom-agenda -views. - -I feel qualified to talk about this topic for two reasons: - -- I went through the trouble of optimising my agenda-views by - implementing clever regex-based skips, so I know the ceiling that - can be reached with the current tech. -- My work on Org-roam has led me to consider the use of an external - parser for Org-mode files, and whilst we are only at the prototyping - stage, we know what is at stake. - -I intend the talk to be fairly light-hearted and humorous, which is the -only way we can do true justice to the topic. - - - - +[[!inline pages="../info/12" raw="yes"]] Back to the [[schedule]] Previous: <a href="/2020/schedule/11">the org-gtd package: opinions about Getting Things Done</a> diff --git a/2020/schedule/13.md b/2020/schedule/13.md index 6e8e12cd..076a40f0 100644 --- a/2020/schedule/13.md +++ b/2020/schedule/13.md @@ -5,41 +5,9 @@ Back to the [[schedule]] Previous: <a href="/2020/schedule/12">One Big-ass Org File or multiple tiny ones? Finally, the End of the debate!</a> Next: <a href="/2020/schedule/14">Literate Programming in Emacs Org-Mode</a> +Saturday, Nov 28 2020, 2:05 PM - 2:15 PM EST / 11:05 AM - 11:15 AM PST / 7:05 PM - 7:15 PM UTC / 8:05 PM - 8:15 PM CET / 3:05 AM - 3:15 AM +08 -# Experience Report: Steps to "Emacs Hyper Notebooks" -Saturday, Nov 28 2020, 2:05 PM - 2:15 PM EST / 11:05 AM - 11:15 AM PST / 7:05 PM - 7:15 PM UTC / 8:05 PM - 8:15 PM CET / 3:05 AM - 3:15 AM +08 -Joseph Corneli, Raymond Puzio, and Cameron Ray Smith - -We present a short experience report from the perspective of two -long-time Emacs users and one relative newcomer. Our motivations -relate, broadly, to reproducibility of research in science. We -reflect on our experiences with off-the-self solutions available -through the Emacs package manager, and describe some of our custom -extensions. - -When working on a scientific research project, one typically has -multiple different computer programs running at the same time. For -example, we may use a computer algebra system such as Maxima for -calculations, an interactive language such as Julia for numerical -computations, TeX for writing up results, a reference manger such as -Zotero for the bibliography, Roam for note-taking, and Jekyll for -blogging. Switching and moving content among these programs can be -distracting, time-consuming, and prone to error. These issues are -compounded when there are several collaborators involved. - -We explore a solution that looks toward building better "computational -notebooks" using Emacs. We take Org mode as our foundation. As many -in this audience will know, Org mode integrates features such as -writing, task management, program evaluation, typesetting, -presentation, and navigation. Tightly integrated add-on packages -round out the picture either by directly replacing the functionality -of the other programs mentioned above or automatically dispatching -commands to them. We outline both the pleasure and pain involved in -this experience. - - - - +[[!inline pages="../info/13" raw="yes"]] Back to the [[schedule]] Previous: <a href="/2020/schedule/12">One Big-ass Org File or multiple tiny ones? Finally, the End of the debate!</a> diff --git a/2020/schedule/14.md b/2020/schedule/14.md index ed9f6f68..b1bd3d71 100644 --- a/2020/schedule/14.md +++ b/2020/schedule/14.md @@ -5,39 +5,9 @@ Back to the [[schedule]] Previous: <a href="/2020/schedule/13">Experience Report: Steps to "Emacs Hyper Notebooks"</a> Next: <a href="/2020/schedule/15">Moving from Jekyll to OrgMode, an experience report</a> +Saturday, Nov 28 2020, 2:18 PM - 2:38 PM EST / 11:18 AM - 11:38 AM PST / 7:18 PM - 7:38 PM UTC / 8:18 PM - 8:38 PM CET / 3:18 AM - 3:38 AM +08 -# Literate Programming in Emacs Org-Mode -Saturday, Nov 28 2020, 2:18 PM - 2:38 PM EST / 11:18 AM - 11:38 AM PST / 7:18 PM - 7:38 PM UTC / 8:18 PM - 8:38 PM CET / 3:18 AM - 3:38 AM +08 -Adam Ard - -Org mode, among its numerous features, has the ability to do full -literate programming (with tangling and weaving the way Donald Knuth -originally intended). As a programmer, you can work comfortably, -completely inside an org-mode buffer. When you are ready, emacs will -generate the appropriate documentation and source code files for you. -If you are a lone emacs user on your project, simply commit these -exported files and keep your org file to yourself – no one is the -wiser. - -Watch "Literate Programming in Emacs Org-mode" to learn how you can -annotate code snippets in an org file so they can be automatically -exported to their proper locations in your source tree. Keep -important information about your project where it should be: right -next to the code itself. Not as ugly, out-of-date notes sitting -behind comment characters in your source files, but front and center -in well-formatted markdown and pdf files. - -And, for advanced use cases, see how you can even use a full-fledged -macro processor like m4 to personalize your workflow even more. -Literate programming on steroids! - -I'll walk you through the whole process, starting from an empty -project README.org to a simple example that generates source and -documentation. - - - - +[[!inline pages="../info/14" raw="yes"]] Back to the [[schedule]] Previous: <a href="/2020/schedule/13">Experience Report: Steps to "Emacs Hyper Notebooks"</a> diff --git a/2020/schedule/15.md b/2020/schedule/15.md index 8f603cd6..377c3751 100644 --- a/2020/schedule/15.md +++ b/2020/schedule/15.md @@ -5,25 +5,9 @@ Back to the [[schedule]] Previous: <a href="/2020/schedule/14">Literate Programming in Emacs Org-Mode</a> Next: <a href="/2020/schedule/16">Org-roam: Presentation, Demonstration, and What's on the Horizon</a> +Saturday, Nov 28 2020, 2:41 PM - 2:51 PM EST / 11:41 AM - 11:51 AM PST / 7:41 PM - 7:51 PM UTC / 8:41 PM - 8:51 PM CET / 3:41 AM - 3:51 AM +08 -# Moving from Jekyll to OrgMode, an experience report -Saturday, Nov 28 2020, 2:41 PM - 2:51 PM EST / 11:41 AM - 11:51 AM PST / 7:41 PM - 7:51 PM UTC / 8:41 PM - 8:51 PM CET / 3:41 AM - 3:51 AM +08 -Adolfo Villafiorita - -I have been a long time user of static site generators, such as -Jekyll. - -I recently discovered Org Mode's publishing features and started -appreciating flexibility and capabilities, especially when literate -programming comes into play to generate "dynamic" content. - -In this talk/tutorial I will present the challenges I faced and how I -finally moved my homepage and the University of Trento's Computational -Logic website to Org Mode. - - - - +[[!inline pages="../info/15" raw="yes"]] Back to the [[schedule]] Previous: <a href="/2020/schedule/14">Literate Programming in Emacs Org-Mode</a> diff --git a/2020/schedule/16.md b/2020/schedule/16.md index 3ec85113..70cc8ebc 100644 --- a/2020/schedule/16.md +++ b/2020/schedule/16.md @@ -5,38 +5,9 @@ Back to the [[schedule]] Previous: <a href="/2020/schedule/15">Moving from Jekyll to OrgMode, an experience report</a> Next: <a href="/2020/schedule/17">Org-mode and Org-Roam for Scholars and Researchers</a> +Saturday, Nov 28 2020, 2:54 PM - 3:14 PM EST / 11:54 AM - 12:14 PM PST / 7:54 PM - 8:14 PM UTC / 8:54 PM - 9:14 PM CET / 3:54 AM - 4:14 AM +08 -# Org-roam: Presentation, Demonstration, and What's on the Horizon -Saturday, Nov 28 2020, 2:54 PM - 3:14 PM EST / 11:54 AM - 12:14 PM PST / 7:54 PM - 8:14 PM UTC / 8:54 PM - 9:14 PM CET / 3:54 AM - 4:14 AM +08 -Leo Vivier - -Org-roam is a Roam replica built on top of the all-powerful Org-mode. - -Org-roam is a solution for effortless non-hierarchical note-taking with -Org-mode. With Org-roam, notes flow naturally, making note-taking fun -and easy. Org-roam should also work as a plug-and-play solution for -anyone already using Org-mode for their personal wiki. - -Org-roam aims to implement the core features of Roam, leveraging the -mature ecosystem around Org-mode where possible. Eventually, we hope to -further introduce features enabled by the Emacs ecosystem. - -The purpose of the talk is to introduce people to Org-roam, whether -they be Org-mode connoisseurs or newcomers. A lot of people have -found value in adopting Org-roam and the Zettelkasten method in their -workflows, and the goal is to demonstrate how they achieved it. The -last part will present the future milestones that are in store for -Org-roam. - -Examples of short-presentations I've recorded in the past: - -- [Org-Roam v1.2.0: Headlines & Unlinked References - YouTube](https://www.youtube.com/watch?v=3DoyEMlIxIHXs) -- [Org-roam-bibtex - Quick Presentation - YouTube](https://www.youtube.com/watch?v=3DWy9WvF5gWYg) -- [Org-roam-dailies: Demonstration - YouTube](https://www.youtube.com/watch?v=3D1q9x2aZCJJ4) - - - - +[[!inline pages="../info/16" raw="yes"]] Back to the [[schedule]] Previous: <a href="/2020/schedule/15">Moving from Jekyll to OrgMode, an experience report</a> diff --git a/2020/schedule/17.md b/2020/schedule/17.md index f54ea546..ef64081d 100644 --- a/2020/schedule/17.md +++ b/2020/schedule/17.md @@ -5,36 +5,9 @@ Back to the [[schedule]] Previous: <a href="/2020/schedule/16">Org-roam: Presentation, Demonstration, and What's on the Horizon</a> Next: <a href="/2020/schedule/18">Org-roam: Technical Presentation</a> +Saturday, Nov 28 2020, 3:17 PM - 3:37 PM EST / 12:17 PM - 12:37 PM PST / 8:17 PM - 8:37 PM UTC / 9:17 PM - 9:37 PM CET / 4:17 AM - 4:37 AM +08 -# Org-mode and Org-Roam for Scholars and Researchers -Saturday, Nov 28 2020, 3:17 PM - 3:37 PM EST / 12:17 PM - 12:37 PM PST / 8:17 PM - 8:37 PM UTC / 9:17 PM - 9:37 PM CET / 4:17 AM - 4:37 AM +08 -Noorah Alhasan - -Org-mode improved so much over the years, and the use-cases in org-mode are -vast and highly technical. There is something for everyone in org-mode, and -it's important to sift through all of these features and figure out what's -best for a given situation or specific users. Therefore, I will be -targeting academics and scholars that are engaging with literature in the -early stages of a project or their academic careers. - -Academics and scholars engage with complex ideas and unstructured research -workflows. I believe that org-mode can add more structure to the madness, -and I will use this talk to clarify a possible solution to reduce such -complexity. I propose a research workflow framework that utilizes -org-mode, its raw form, and its many associated packages. However, the main -package I will be mostly talking about is Org-Roam, and the way its -underlying principles will revolutionize the research workflow. - -This presentation will help researchers organize and build their knowledge -database in a streamlined and effective way. The research workflow is -presented in three phases: planning, note-taking, and reference management. -I will talk briefly about the packages and special-use cases for each stage -and learned lessons along the way. Finally, the presentation concludes with -future considerations and possible org-mode features. - - - - +[[!inline pages="../info/17" raw="yes"]] Back to the [[schedule]] Previous: <a href="/2020/schedule/16">Org-roam: Presentation, Demonstration, and What's on the Horizon</a> diff --git a/2020/schedule/18.md b/2020/schedule/18.md index 32b8ec2c..7831138e 100644 --- a/2020/schedule/18.md +++ b/2020/schedule/18.md @@ -5,47 +5,9 @@ Back to the [[schedule]] Previous: <a href="/2020/schedule/17">Org-mode and Org-Roam for Scholars and Researchers</a> Next: <a href="/2020/schedule/19">Sharing blogs (and more) with org-webring</a> +Saturday, Nov 28 2020, 3:40 PM - 4:00 PM EST / 12:40 PM - 1:00 PM PST / 8:40 PM - 9:00 PM UTC / 9:40 PM - 10:00 PM CET / 4:40 AM - 5:00 AM +08 -# Org-roam: Technical Presentation -Saturday, Nov 28 2020, 3:40 PM - 4:00 PM EST / 12:40 PM - 1:00 PM PST / 8:40 PM - 9:00 PM UTC / 9:40 PM - 10:00 PM CET / 4:40 AM - 5:00 AM +08 -Leo Vivier - -Org-roam is a Roam replica built on top of the all-powerful Org-mode. - -Org-roam is a solution for effortless non-hierarchical note-taking -with Org-mode. With Org-roam, notes flow naturally, making -note-taking fun and easy. Org-roam should also work as a -plug-and-play solution for anyone already using Org-mode for their -personal wiki. - -Org-roam aims to implement the core features of Roam, leveraging the -mature ecosystem around Org-mode where possible. Eventually, we hope -to further introduce features enabled by the Emacs ecosystem. - -The purpose of the talk is to present some technical aspects of -Org-roam. From the very beginning, we wanted Org-roam to scale with -your notes, and this meant that we had to keep a close eye on our -performances. As we iterated, optimisation remained a top-priority, -leading us to constantly peek under Org-mode's hood. Not only has -this made us better developers, but it has also uncovered paths of -optimisation for Org-mode itself. - -The talk is targeted at software engineers willing to peek under -Org-mode's hood. A rudimentary understanding of Elisp will be -required. - -Points to be covered - -- SQL database via emacsql -- Elisp libraries -- Parsing of Org-mode files -- org-elements.e -- Parsing with a background-process -- Ensuring consistency via hooks - - - - +[[!inline pages="../info/18" raw="yes"]] Back to the [[schedule]] Previous: <a href="/2020/schedule/17">Org-mode and Org-Roam for Scholars and Researchers</a> diff --git a/2020/schedule/19.md b/2020/schedule/19.md index d444d4d7..03803218 100644 --- a/2020/schedule/19.md +++ b/2020/schedule/19.md @@ -5,28 +5,9 @@ Back to the [[schedule]] Previous: <a href="/2020/schedule/18">Org-roam: Technical Presentation</a> Next: <a href="/2020/schedule/20">OMG Macros</a> +Saturday, Nov 28 2020, 4:03 PM - 4:13 PM EST / 1:03 PM - 1:13 PM PST / 9:03 PM - 9:13 PM UTC / 10:03 PM - 10:13 PM CET / 5:03 AM - 5:13 AM +08 -# Sharing blogs (and more) with org-webring -Saturday, Nov 28 2020, 4:03 PM - 4:13 PM EST / 1:03 PM - 1:13 PM PST / 9:03 PM - 9:13 PM UTC / 10:03 PM - 10:13 PM CET / 5:03 AM - 5:13 AM +08 -Brett Gilio - -In this talk I will detail the ways in which static website generation -results may be enhanced using org-webring. This talk will cover not -only how to use org-webring (including how accessible and low-friction -it is), but also how you may customize it, utilize it in different -contexts unrelated to blogging (tracking project commits), and even as -a way to respond to other blogs in a cogent and manner. - -Additionally, I will go into slight detail as to the history of this -project, why it was made, what we are working on, and what we -remaining we need to do before we can submit it to GNU Emacs / -Org-mode. - -I think, in all, this can quite easily cover a 10 minute window. - - - - +[[!inline pages="../info/19" raw="yes"]] Back to the [[schedule]] Previous: <a href="/2020/schedule/18">Org-roam: Technical Presentation</a> diff --git a/2020/schedule/20.md b/2020/schedule/20.md index 038de641..d9952e2a 100644 --- a/2020/schedule/20.md +++ b/2020/schedule/20.md @@ -5,28 +5,9 @@ Back to the [[schedule]] Previous: <a href="/2020/schedule/19">Sharing blogs (and more) with org-webring</a> Next: <a href="/2020/schedule/38">Emacs development update</a> +Saturday, Nov 28 2020, 4:16 PM - 4:36 PM EST / 1:16 PM - 1:36 PM PST / 9:16 PM - 9:36 PM UTC / 10:16 PM - 10:36 PM CET / 5:16 AM - 5:36 AM +08 -# OMG Macros -Saturday, Nov 28 2020, 4:16 PM - 4:36 PM EST / 1:16 PM - 1:36 PM PST / 9:16 PM - 9:36 PM UTC / 10:16 PM - 10:36 PM CET / 5:16 AM - 5:36 AM +08 -Corwin Brust - -Macros are a powerful tool. In the context of Emacs Lisp programming -they can also provide us with a "foot-gun" of immense proportions. -Join the dungeon-mode project as we trip over our own macros, so to -speak, in the context of building a GPLv3+ turn-based role-playing -game engine and game design features for Emacs. - -In this 20m talk I'll briefly introduce some rationales leading to -storing all game source and play state information within org-mode -documents (spoiler: it's about freedom), then go into some detail -around the "ETL" process design that currently accomplishes this. -Finally, we'll look closely at one especially problematic macro deep -within this solution, and invite people to throw fruit^11^dhelp draw -conclusions, ask questions, and discuss. - - - - +[[!inline pages="../info/20" raw="yes"]] Back to the [[schedule]] Previous: <a href="/2020/schedule/19">Sharing blogs (and more) with org-webring</a> diff --git a/2020/schedule/21.md b/2020/schedule/21.md index 2bcf641e..14379c25 100644 --- a/2020/schedule/21.md +++ b/2020/schedule/21.md @@ -5,64 +5,9 @@ Back to the [[schedule]] Previous: <a href="/2020/schedule/08">Building reproducible Emacs</a> Next: <a href="/2020/schedule/09">Orgmode - your life in plain text</a> +Saturday, Nov 28 2020, 11:47 AM - 12:27 PM EST / 8:47 AM - 9:27 AM PST / 4:47 PM - 5:27 PM UTC / 5:47 PM - 6:27 PM CET / 12:47 AM - 1:27 AM +08 -# On why most of the best features in eev look like 5-minute hacks -Saturday, Nov 28 2020, 11:47 AM - 12:27 PM EST / 8:47 AM - 9:27 AM PST / 4:47 PM - 5:27 PM UTC / 5:47 PM - 6:27 PM CET / 12:47 AM - 1:27 AM +08 -Eduardo Ochs - -In the last months there were several hundreds of messages in -emacs-devel in threads with names like "A proposal for a friendlier -Emacs", "How to make Emacs popular again", and "Interactive guide for -new users". On the one hand I am absolutely sure that eev is very -good answer to all these themes; on the other hand I know that eev is -based on some design decisions that offend most people used to modern, -"user-friendly" interfaces - and I feel that at this moment mentions -to eev in those discussions in emacs-devel would not be welcome. - -In this talk I will start by presenting very quickly the main "killer -features" of eev - namely: - -1. Elisp hyperlinks, - -2. interactive tutorials that can be navigated with just three keys, - -3. non-invasiveness - people can easily turn eev on for only five - minutes each week, play with it a bit, and then turn it off, - -4. high discoverability factor, - -5. a way to create "hyperlinks to here", - -6. hyperlinks to specific points in PDF documents and video files - - i.e., to specific pages, strings, and timemarks, - -7. a way to control shell-like programs ("eepitch"), and - -8. an Elisp tutorial, - -and after that I will present the design decisions behind eev, in two -parts: - -1. eev is a very thin layer above Emacs-the-Lisp-environment; it is - as simple as possible, but in the sense of "simple" that was used - in Forth, and that is not very familiar today. - -2. Very often when I am using Emacs - which is my main interface - with the system - I realize that I can automate some task that I - just did by hand twice of thrice; and that I should do that, - because automating that would be both easy and fun. Over the - years I experimented with several ways of automating tasks, - refined some of these ways a lot, and found a certain "best" - style that, again, usually offends people who are accustomed with - the modern ideas of user-friendliness. In this style, used in - most template-based functions in eev, both textual documentation - and error-handling are kept to a minimum. I will show how, and - why, eev makes this style works so well, and how users can create - their own templated functions very quickly - as "5-minute hacks". - - - - +[[!inline pages="../info/21" raw="yes"]] Back to the [[schedule]] Previous: <a href="/2020/schedule/08">Building reproducible Emacs</a> diff --git a/2020/schedule/22.md b/2020/schedule/22.md index 9d9907b9..60a2ae35 100644 --- a/2020/schedule/22.md +++ b/2020/schedule/22.md @@ -5,79 +5,9 @@ Back to the [[schedule]] Previous: <a href="/2020/schedule/38">Emacs development update</a> Next: <a href="/2020/schedule/23">Incremental Parsing with emacs-tree-sitter</a> +Sunday, Nov 29 2020, 9:33 AM - 9:53 AM EST / 6:33 AM - 6:53 AM PST / 2:33 PM - 2:53 PM UTC / 3:33 PM - 3:53 PM CET / 10:33 PM - 10:53 PM +08 -# Powering-up Special Blocks -Sunday, Nov 29 2020, 9:33 AM - 9:53 AM EST / 6:33 AM - 6:53 AM PST / 2:33 PM - 2:53 PM UTC / 3:33 PM - 3:53 PM CET / 10:33 PM - 10:53 PM +08 -Musa Al-hassy - -Users will generally only make use of a few predefined \`special -blocks', such as \`example, centre, quote', and will not bother with -the effort required to make new ones. When new encapsulating notions -are required, users will either fallback on HTML or LaTeX specific -solutions, usually littered with \`#+ATTR' clauses to pass around -configurations or parameters. - -Efforts have been exerted to mitigate the trouble of producing new -special blocks. However, the issue of passing parameters is still -handled in a clumsy fashion; e.g., by having parameters be expressed -in a special block's content using specific keywords. - -We present a novel approach to making special blocks in a familiar -fashion and their use also in a familiar fashion. We achieve the -former by presenting \`\`defblock'', an anaphoric macro exceedingly -similar to \`\`defun'', and for the latter we mimic the usual -\`\`src''-block syntax for argument passing to support special blocks. - -For instance, here is a sample declaration. - - (defblock stutter () (reps 2) - "Output the CONTENTS of the block REPS many times" - (org-parse (s-repeat reps contents))) - -Here is an invocation that passes an *optional* argument; which -defaults to 2 when not given. - -<div class="stutter"> -<p> -Emacs for the win ⌣̈ -</p> - -</div> - -Upon export, to HTML or LaTeX for instance, the contents of this block -are repeated (\`stuttered') 5 times. The use of \`\`src''-like -invocation may lead to a decrease in \`#+ATTR' clauses. - -In the presentation, we aim to show a few \`practical' special blocks -that users may want: A block that … - -- translates *some selected* text —useful for multilingual blogs -- hides *some selected* text —useful for learning, quizzes -- folds/boxes text —useful in blogs for folding away details - -In particular, all of these examples will be around ~5 lines long! - -We also have a larger collection of more useful block types, already -implemented. - -The notable features of the system are as follows. - -- Familiar \`\`defun'' syntax for making block —\`\`defblock'' -- Familiar \`\`src'' syntax for passing arguments —e.g., \`\`:key - value'' -- Fine-grained control over export translation phases —c.f., - \`\`org-parse'' above -- **Modular**: New blocks can be made out of existing blocks really - quickly using \`\`blockcall'' —similar to Lisp's \`\`funcall''. We - will show how to fuse two blocks to make a new one, also within ~5 - lines. - -It is hoped that the ease of creating custom special blocks will be a -gateway for many Emacs users to start using Lisp. - - - - +[[!inline pages="../info/22" raw="yes"]] Back to the [[schedule]] Previous: <a href="/2020/schedule/38">Emacs development update</a> diff --git a/2020/schedule/23.md b/2020/schedule/23.md index 6ebfd0ac..d35b6810 100644 --- a/2020/schedule/23.md +++ b/2020/schedule/23.md @@ -5,24 +5,9 @@ Back to the [[schedule]] Previous: <a href="/2020/schedule/22">Powering-up Special Blocks</a> Next: <a href="/2020/schedule/24">Analyze code quality through Emacs: a smart forensics approach and the story of a hack</a> +Sunday, Nov 29 2020, 9:56 AM - 10:46 AM EST / 6:56 AM - 7:46 AM PST / 2:56 PM - 3:46 PM UTC / 3:56 PM - 4:46 PM CET / 10:56 PM - 11:46 PM +08 -# Incremental Parsing with emacs-tree-sitter -Sunday, Nov 29 2020, 9:56 AM - 10:46 AM EST / 6:56 AM - 7:46 AM PST / 2:56 PM - 3:46 PM UTC / 3:56 PM - 4:46 PM CET / 10:56 PM - 11:46 PM +08 -Tuấn-Anh Nguyễn - -Tree-sitter is a parser generator and an incremental parsing library. -emacs-tree-sitter is its most popular Emacs binding, which aims to be -the foundation of Emacs packages that understand source code's -structure. Examples include better code highlighting, folding, -indexing, structural navigation. - -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. - - - - +[[!inline pages="../info/23" raw="yes"]] Back to the [[schedule]] Previous: <a href="/2020/schedule/22">Powering-up Special Blocks</a> diff --git a/2020/schedule/24.md b/2020/schedule/24.md index 175400cb..96475c48 100644 --- a/2020/schedule/24.md +++ b/2020/schedule/24.md @@ -5,36 +5,9 @@ Back to the [[schedule]] Previous: <a href="/2020/schedule/23">Incremental Parsing with emacs-tree-sitter</a> Next: <a href="/2020/schedule/25">Traverse complex JSON structures with live feedback</a> +Sunday, Nov 29 2020, 10:49 AM - 11:09 AM EST / 7:49 AM - 8:09 AM PST / 3:49 PM - 4:09 PM UTC / 4:49 PM - 5:09 PM CET / 11:49 PM - 12:09 AM +08 -# Analyze code quality through Emacs: a smart forensics approach and the story of a hack -Sunday, Nov 29 2020, 10:49 AM - 11:09 AM EST / 7:49 AM - 8:09 AM PST / 3:49 PM - 4:09 PM UTC / 4:49 PM - 5:09 PM CET / 11:49 PM - 12:09 AM +08 -Andrea - -Emacs, show me how much technical debt and where it is in this -software repository! - -Also how complex is this module? - -And who is the main developer of this component? - -Mmm, if I change this file, do I need to change something else, Emacs? - -Ah, I need help of somebody to change this code! Emacs can you tell me -who knows something about this file? - -The above are some questions my Emacs can answer (an M-x away). - -It all started with "Your Code as a Crime Scene", an insightful book -by Adam Tornhill, and it continued with a big useful hack. - -In this talk I want to show the analyses I can produce on software -repositories with my Emacs, explain how they help me in my daily work, -give a bit of context of how Adam came up with them, and show the -dirty code that makes this wonderful functionality work. - - - - +[[!inline pages="../info/24" raw="yes"]] Back to the [[schedule]] Previous: <a href="/2020/schedule/23">Incremental Parsing with emacs-tree-sitter</a> diff --git a/2020/schedule/25.md b/2020/schedule/25.md index 72dc39a9..eb2a7821 100644 --- a/2020/schedule/25.md +++ b/2020/schedule/25.md @@ -5,35 +5,9 @@ Back to the [[schedule]] Previous: <a href="/2020/schedule/24">Analyze code quality through Emacs: a smart forensics approach and the story of a hack</a> Next: <a href="/2020/schedule/39">NonGNU ELPA</a> +Sunday, Nov 29 2020, 11:12 AM - 11:22 AM EST / 8:12 AM - 8:22 AM PST / 4:12 PM - 4:22 PM UTC / 5:12 PM - 5:22 PM CET / 12:12 AM - 12:22 AM +08 -# Traverse complex JSON structures with live feedback -Sunday, Nov 29 2020, 11:12 AM - 11:22 AM EST / 8:12 AM - 8:22 AM PST / 4:12 PM - 4:22 PM UTC / 5:12 PM - 5:22 PM CET / 12:12 AM - 12:22 AM +08 -Zen Monk Alain M. Lafon - -If you are working with complex nested JSON structures, you are -probably familiar with jq which is like sed for JSON data and great at -what it does. However, being a command-line tool like sed, the -feedback for writing queries and seeing their results is a discrete -process and not live. - -When working with Emacs, we are used to good auto-completion and live -feedback. Formerly, this was mostly done with static input, but with -modern completion frameworks like Ivy and Counsel, this can be done -with dynamic inputs, as well. - -counsel-jq is a package with which you can quickly test queries and -traverse a complex JSON structure whilst having live feedback. Just -call `M-x counsel-jq` in a buffer containing JSON, then start writing -your `jq` query string and see the output appear live in the message -area. Whenever you're happy, hit `RET` and the results will be -displayed to you in the buffer `*jq-json*`. - -In this lightning talk, I'll give a quick overview on how to use -counsel-jq and how to build similar completion functionality. - - - - +[[!inline pages="../info/25" raw="yes"]] Back to the [[schedule]] Previous: <a href="/2020/schedule/24">Analyze code quality through Emacs: a smart forensics approach and the story of a hack</a> diff --git a/2020/schedule/26.md b/2020/schedule/26.md index 7b521527..ef8e12c6 100644 --- a/2020/schedule/26.md +++ b/2020/schedule/26.md @@ -5,30 +5,9 @@ Back to the [[schedule]] Previous: <a href="/2020/schedule/39">NonGNU ELPA</a> Next: <a href="/2020/schedule/27">State of Retro Gaming in Emacs</a> +Sunday, Nov 29 2020, 1:03 PM - 1:13 PM EST / 10:03 AM - 10:13 AM PST / 6:03 PM - 6:13 PM UTC / 7:03 PM - 7:13 PM CET / 2:03 AM - 2:13 AM +08 -# Emacs as a Highschooler: How It Changed My Life -Sunday, Nov 29 2020, 1:03 PM - 1:13 PM EST / 10:03 AM - 10:13 AM PST / 6:03 PM - 6:13 PM UTC / 7:03 PM - 7:13 PM CET / 2:03 AM - 2:13 AM +08 -Pierce Wang - -Could Emacs be humanity's solution to the turbulent years of -adolescence? So much more than a text editor, Emacs changed the way I -approach everything at the age of 15. In the two years since -discovering Emacs in my sophomore year of high school, I have been -constantly amazed at what Emacs is capable of. In this talk, I would -like to share this journey of discovery and what I've learned along -the way, beginning with what led me to Emacs. I will describe the -many ways that Emacs has shaped my life as a student, a programmer, a -violinist, and a productive and happy adolescent. In each case, I -have thoroughly enjoyed figuring out the best way to make Emacs work -for me, and I'd like to share this with others. In addition, I'd like -to take this opportunity to address some roadblocks that I have -noticed having observed some of my peers' attempts at learning Emacs -and possible solutions for those barriers, taking inspiration from -various sources both from inside and outside the Emacs community. - - - - +[[!inline pages="../info/26" raw="yes"]] Back to the [[schedule]] Previous: <a href="/2020/schedule/39">NonGNU ELPA</a> diff --git a/2020/schedule/27.md b/2020/schedule/27.md index 7e6e75c9..d2d7e65b 100644 --- a/2020/schedule/27.md +++ b/2020/schedule/27.md @@ -5,22 +5,9 @@ Back to the [[schedule]] Previous: <a href="/2020/schedule/26">Emacs as a Highschooler: How It Changed My Life</a> Next: <a href="/2020/schedule/28">Welcome To The Dungeon</a> +Sunday, Nov 29 2020, 1:16 PM - 1:26 PM EST / 10:16 AM - 10:26 AM PST / 6:16 PM - 6:26 PM UTC / 7:16 PM - 7:26 PM CET / 2:16 AM - 2:26 AM +08 -# State of Retro Gaming in Emacs -Sunday, Nov 29 2020, 1:16 PM - 1:26 PM EST / 10:16 AM - 10:26 AM PST / 6:16 PM - 6:26 PM UTC / 7:16 PM - 7:26 PM CET / 2:16 AM - 2:26 AM +08 -Vasilij "wasamasa" Schneidermann - -Many jokes have been made about the true nature of Emacs, such as it -being a fully-fledged operating system. This talk will demonstrate -its suitability for playing retro games, then explore the inner -workings of a [CHIP-8](https://en.wikipedia.org/wiki/CHIP-8) emulator capable of smooth video game emulation. - -[1]: <https://depp.brause.cc/talks/chicken-saar/> -[2]: <https://depp.brause.cc/talks/openchaos-2019-11/> - - - - +[[!inline pages="../info/27" raw="yes"]] Back to the [[schedule]] Previous: <a href="/2020/schedule/26">Emacs as a Highschooler: How It Changed My Life</a> diff --git a/2020/schedule/28.md b/2020/schedule/28.md index 15755292..f736a7df 100644 --- a/2020/schedule/28.md +++ b/2020/schedule/28.md @@ -5,37 +5,9 @@ Back to the [[schedule]] Previous: <a href="/2020/schedule/27">State of Retro Gaming in Emacs</a> Next: <a href="/2020/schedule/29">Pathing of Least Resistance</a> +Sunday, Nov 29 2020, 1:29 PM - 2:19 PM EST / 10:29 AM - 11:19 AM PST / 6:29 PM - 7:19 PM UTC / 7:29 PM - 8:19 PM CET / 2:29 AM - 3:19 AM +08 -# Welcome To The Dungeon -Sunday, Nov 29 2020, 1:29 PM - 2:19 PM EST / 10:29 AM - 11:19 AM PST / 6:29 PM - 7:19 PM UTC / 7:29 PM - 8:19 PM CET / 2:29 AM - 3:19 AM +08 -Erik Elmshauser and Corwin Brust - -Dungeon is an oral and physical media fantasy and abstract role-play -gaming tradition that seems to have grown from miniature and -war-gaming communities in and around the University of Minnesota, Twin -Cities in the 1950s and 60s. - -Dungeon is inherently free (or nearly free, you do need paper and -dice), both to play and to create your own games. Moreover, as a -generality among practices, as Dungeon authors, we dislike impositions -on our creative freedoms beyond those of our own imagination and -tastes, especially those such as of a "brand" or "system", or e.g. -copyright holder. - -In December of 2019 some friends who grew up creating and playing in -each others' Dungeons decided to try making an engine for these types -of games using Emacs and Emacs Lisp, org-mode, and maybe some -duct-tape if needed. In this 50 minute talk Corwin and Erik introduce -dungeon-mode, and explain why we decided to do that. We'll sketch out -the project in both lay and technical terms, provide a tactical update -with respect to completing our initial concept, describe how things -are going in human terms, and share some things we've learned so far -from and about Emacs and the free software community working on this -project, while leaving 10-15m for questions and discussion. - - - - +[[!inline pages="../info/28" raw="yes"]] Back to the [[schedule]] Previous: <a href="/2020/schedule/27">State of Retro Gaming in Emacs</a> diff --git a/2020/schedule/29.md b/2020/schedule/29.md index 9ae2931d..cc7fd154 100644 --- a/2020/schedule/29.md +++ b/2020/schedule/29.md @@ -5,79 +5,9 @@ Back to the [[schedule]] Previous: <a href="/2020/schedule/28">Welcome To The Dungeon</a> Next: <a href="/2020/schedule/30">A tour of vterm</a> +Sunday, Nov 29 2020, 2:22 PM - 2:42 PM EST / 11:22 AM - 11:42 AM PST / 7:22 PM - 7:42 PM UTC / 8:22 PM - 8:42 PM CET / 3:22 AM - 3:42 AM +08 -# Pathing of Least Resistance -Sunday, Nov 29 2020, 2:22 PM - 2:42 PM EST / 11:22 AM - 11:42 AM PST / 7:22 PM - 7:42 PM UTC / 8:22 PM - 8:42 PM CET / 3:22 AM - 3:42 AM +08 -Corwin Brust - -We hope the dungeon-mode project will eventually support three primary -use-cases related to editing/designing, playing and running/hosting -RPG games. In a "vanilla" game, characters descend from the "General -Store" (the one safe haven available) into the dungeon, a (nominally) -underground labyrinth of unknown dimensions with generally asocial -occupants and occasional bits of treasure. - -Players can track (as long as the "lights" stay on) the location of -their party of characters via a process we usually call "mapping". -This has usually involved the dungeon master "calling out" the shape -of the map level as the party, in turn, calls out their route or -"pathing" decisions. - - DUNGEON-MASTER - "Corridor East-West" - PARTY-LEADER - "West" - DUNGEON-MASTER - "Ten feet, corridor ends goes South" - PARTY-LEADER - "South" - DUNGEON-MASTER - "Step into an area. It's a - twenty-by-twenty area extending - West, with exits in the Western - part of the southern wall and the - Southern part of the eastern wall." - **rolls dice** - "Nothing waiting in the area" - -Mapping quickly emerged as a focal point for development. Especially, -we were to excited to try creating an 'on-the-fly' graphical -representation of the map that could respond to changing in-game -circumstances. (Oops, all your Elves are dead. Where'd the secret -doors go?) - -During this 20m talk I'll provide a couple of reference points on -Emacs's image and especially SVG rendering capabilities, then -introduce a series of proofs-of-concept focusing on our experience -using core libraries such as \`svg.el' to make them. - -As of submitting abstracts, these include - -- "DM map view" - select and render a complete game map, -- "play mode map" - progressively render maps based on game action, -- "battle-board" - track damage taken by player characters, and -- "character-sheet" - a graphical character sheet -- "previews" - view map tiles when hovering their draw code in org -- "sketch" - a "click-to-draw" experiment - -For an advanced peek please see our git repository (but note we're -moving to Savannah soon). We'll be talking first about [map.el](https://github.com/dungeon-mode/game/blob/master/src/dm-map.el), -especially \`dm-map-draw' and helpers. A few sample game maps this can -render are available as org-mode documents in the [Docs/Maps](https://github.com/dungeon-mode/game/blob/master/Docs/Maps) folder. - -Those interested could compare functions between dm-map.el and -[dm-draw.el](https://github.com/dungeon-mode/game/blob/master/src/dm-draw.el), which is an incomplete rewrite of the "SVG rendering" -functions used only by [dm-sketch.el](https://github.com/dungeon-mode/game/blob/master/src/dm-sketch.el) (so far). Hopefully, it will be -writing our "sketches" back out to org docs in time for the -conference. - -Note on github: -The project is transitioning to Savannah. Please watch for -redirects/moved notices when using these links. - - - - +[[!inline pages="../info/29" raw="yes"]] Back to the [[schedule]] Previous: <a href="/2020/schedule/28">Welcome To The Dungeon</a> diff --git a/2020/schedule/30.md b/2020/schedule/30.md index c7caa79c..9da2b1f4 100644 --- a/2020/schedule/30.md +++ b/2020/schedule/30.md @@ -5,24 +5,9 @@ Back to the [[schedule]] Previous: <a href="/2020/schedule/29">Pathing of Least Resistance</a> Next: <a href="/2020/schedule/31">Lakota Language and Emacs</a> +Sunday, Nov 29 2020, 2:45 PM - 2:55 PM EST / 11:45 AM - 11:55 AM PST / 7:45 PM - 7:55 PM UTC / 8:45 PM - 8:55 PM CET / 3:45 AM - 3:55 AM +08 -# A tour of vterm -Sunday, Nov 29 2020, 2:45 PM - 2:55 PM EST / 11:45 AM - 11:55 AM PST / 7:45 PM - 7:55 PM UTC / 8:45 PM - 8:55 PM CET / 3:45 AM - 3:55 AM +08 -Gabriele Bozzola (@sbozzolo) - -Vterm is a fast and fully capable terminal emulator in GNU Emacs built -as a dynamic module on top of libvterm. In this talk, I will give an -overview of the package. I will discuss the installation and common -customizations. I will go into details on some of the most important -features, such as directory tracking or message passing. Finally, I -will touch upon known incompatibilities and the future directions of -the project. - -URL: <https://github.com/akermu/emacs-libvterm> - - - - +[[!inline pages="../info/30" raw="yes"]] Back to the [[schedule]] Previous: <a href="/2020/schedule/29">Pathing of Least Resistance</a> diff --git a/2020/schedule/31.md b/2020/schedule/31.md index 899bc2eb..d48c6fa4 100644 --- a/2020/schedule/31.md +++ b/2020/schedule/31.md @@ -5,38 +5,9 @@ Back to the [[schedule]] Previous: <a href="/2020/schedule/30">A tour of vterm</a> Next: <a href="/2020/schedule/32">Object Oriented Code in the Gnus Newsreader</a> +Sunday, Nov 29 2020, 2:58 PM - 3:08 PM EST / 11:58 AM - 12:08 PM PST / 7:58 PM - 8:08 PM UTC / 8:58 PM - 9:08 PM CET / 3:58 AM - 4:08 AM +08 -# Lakota Language and Emacs -Sunday, Nov 29 2020, 2:58 PM - 3:08 PM EST / 11:58 AM - 12:08 PM PST / 7:58 PM - 8:08 PM UTC / 8:58 PM - 9:08 PM CET / 3:58 AM - 4:08 AM +08 -Grant Shangreaux - -When I began learning Lakota, the language of my ancestors, there was -no way for me to type it on a computer without using non-free -software. Additionally, the only software I could find supported just -one of the proposed orthographies for the language. - -As an Emacs user, I knew that free software offered the ability for -many types of languages to co-exist in the same program and went -looking for how to enable an input mode for Lakota in Emacs. This -talk will discuss how Emacs enabled me to define input modes for -multiple Lakota orthographies using the Quail multilingual input -package. - -I will also discuss some of the ethical and cultural considerations I -went through when publishing the package. Lakota and many other -indigenous languages were actively suppressed for many years, and are -in danger of extinction. The language is being recovered now, but -much of the available educational material comes from non-indian -people. Before publishing an input mode for Emacs, I wanted to ensure -that I included an orthography developed by Lakota people, not only -the suggested orthography present in most of my educational material. -Additionally, the choice of where to publish the source as an Emacs -package was important, since some corporations have been known to -support ongoing oppression against indigenous descended peoples. - - - - +[[!inline pages="../info/31" raw="yes"]] Back to the [[schedule]] Previous: <a href="/2020/schedule/30">A tour of vterm</a> diff --git a/2020/schedule/32.md b/2020/schedule/32.md index 8264c08b..fed3a2ab 100644 --- a/2020/schedule/32.md +++ b/2020/schedule/32.md @@ -5,30 +5,9 @@ Back to the [[schedule]] Previous: <a href="/2020/schedule/31">Lakota Language and Emacs</a> Next: <a href="/2020/schedule/33">Maxima a computer algebra system in Emacs</a> +Sunday, Nov 29 2020, 3:11 PM - 3:31 PM EST / 12:11 PM - 12:31 PM PST / 8:11 PM - 8:31 PM UTC / 9:11 PM - 9:31 PM CET / 4:11 AM - 4:31 AM +08 -# Object Oriented Code in the Gnus Newsreader -Sunday, Nov 29 2020, 3:11 PM - 3:31 PM EST / 12:11 PM - 12:31 PM PST / 8:11 PM - 8:31 PM UTC / 9:11 PM - 9:31 PM CET / 4:11 AM - 4:31 AM +08 -Eric Abrahamsen - -The venerable Gnus newsreader has evolved over the years to interface -with many different types of news- or mail-like backend programs, -presenting all of them using a unified interface. This sort of -software often calls for an object-oriented architecture, at least as -regards polymorphism, yet Gnus was written well before Emacs lisp -acquired the object-oriented tools and libraries – largely borrowed -from Common Lisp – that it boasts today. - -Yet Gnus needed something "object-oriented-like", and so nnoo.el was -born: a rather amazing (and frankly terrifying) implementation of -object-oriented behavior using functional code. - -This talk will be a brief introduction to how this existing system -works, and to the ongoing, incremental effort to port it over to newer -Elisp tools like generic functions, structs, and objects. - - - - +[[!inline pages="../info/32" raw="yes"]] Back to the [[schedule]] Previous: <a href="/2020/schedule/31">Lakota Language and Emacs</a> diff --git a/2020/schedule/33.md b/2020/schedule/33.md index cf13f3e0..ad800224 100644 --- a/2020/schedule/33.md +++ b/2020/schedule/33.md @@ -5,22 +5,9 @@ Back to the [[schedule]] Previous: <a href="/2020/schedule/32">Object Oriented Code in the Gnus Newsreader</a> Next: <a href="/2020/schedule/34">Extend Emacs to Modern GUI Applications with EAF</a> +Sunday, Nov 29 2020, 3:34 PM - 3:54 PM EST / 12:34 PM - 12:54 PM PST / 8:34 PM - 8:54 PM UTC / 9:34 PM - 9:54 PM CET / 4:34 AM - 4:54 AM +08 -# Maxima a computer algebra system in Emacs -Sunday, Nov 29 2020, 3:34 PM - 3:54 PM EST / 12:34 PM - 12:54 PM PST / 8:34 PM - 8:54 PM UTC / 9:34 PM - 9:54 PM CET / 4:34 AM - 4:54 AM +08 -Fermin MF - -Maxima is a great tool for symbolic mathematics, it has some support -for Emacs in the main repository, but is quite outdated and doesn't -receive the love I think it should, so a couple of months ago I decide -to improve and "modernize" the maxima-mode.el code base. So, I want -to talk about the integration with Emacs, the maxima REPL, how some of -the main tool for Emacs integrate in maxima-mode and in general show -how to start using maxima within Emacs. - - - - +[[!inline pages="../info/33" raw="yes"]] Back to the [[schedule]] Previous: <a href="/2020/schedule/32">Object Oriented Code in the Gnus Newsreader</a> diff --git a/2020/schedule/34.md b/2020/schedule/34.md index 311df4b9..f961517d 100644 --- a/2020/schedule/34.md +++ b/2020/schedule/34.md @@ -5,20 +5,9 @@ Back to the [[schedule]] Previous: <a href="/2020/schedule/33">Maxima a computer algebra system in Emacs</a> Next: <a href="/2020/schedule/35">WAVEing at Repetitive Repetitive Repetitive Music</a> +Sunday, Nov 29 2020, 3:57 PM - 4:17 PM EST / 12:57 PM - 1:17 PM PST / 8:57 PM - 9:17 PM UTC / 9:57 PM - 10:17 PM CET / 4:57 AM - 5:17 AM +08 -# Extend Emacs to Modern GUI Applications with EAF -Sunday, Nov 29 2020, 3:57 PM - 4:17 PM EST / 12:57 PM - 1:17 PM PST / 8:57 PM - 9:17 PM UTC / 9:57 PM - 10:17 PM CET / 4:57 AM - 5:17 AM +08 -Matthew Zeng - -Emacs Application Framework (EAF) is a customizable and extensible GUI -application framework that extends Emacs graphical capabilities using -PyQt5. This talk will cover the architecture design of the EAF -project, and demonstrate some of its most useful applications: modern -browser, PDF viewer, video player, etc. - - - - +[[!inline pages="../info/34" raw="yes"]] Back to the [[schedule]] Previous: <a href="/2020/schedule/33">Maxima a computer algebra system in Emacs</a> diff --git a/2020/schedule/35.md b/2020/schedule/35.md index eaa7109c..c5120549 100644 --- a/2020/schedule/35.md +++ b/2020/schedule/35.md @@ -4,24 +4,9 @@ Back to the [[schedule]] Previous: <a href="/2020/schedule/34">Extend Emacs to Modern GUI Applications with EAF</a> +Sunday, Nov 29 2020, 4:20 PM - 4:30 PM EST / 1:20 PM - 1:30 PM PST / 9:20 PM - 9:30 PM UTC / 10:20 PM - 10:30 PM CET / 5:20 AM - 5:30 AM +08 -# WAVEing at Repetitive Repetitive Repetitive Music -Sunday, Nov 29 2020, 4:20 PM - 4:30 PM EST / 1:20 PM - 1:30 PM PST / 9:20 PM - 9:30 PM UTC / 10:20 PM - 10:30 PM CET / 5:20 AM - 5:30 AM +08 -Zachary Kanfer - -During quarantine, I found myself spending time with an Android app. -One of the features this app has is composing music that loops -endlessly. As with many things, I wondered how much better this tool -would be, if only it was inside Emacs. - -This talk will explain how I made this tool inside Emacs, with detours -through Emacs text properties, font rendering, the .WAVE file format, -and music theory. And hopefully at the end, we'll have something -worth listening to. - - - - +[[!inline pages="../info/35" raw="yes"]] Back to the [[schedule]] Previous: <a href="/2020/schedule/34">Extend Emacs to Modern GUI Applications with EAF</a> diff --git a/2020/schedule/38.md b/2020/schedule/38.md index 5f446b8f..bdaa530a 100644 --- a/2020/schedule/38.md +++ b/2020/schedule/38.md @@ -5,16 +5,9 @@ Back to the [[schedule]] Previous: <a href="/2020/schedule/20">OMG Macros</a> Next: <a href="/2020/schedule/22">Powering-up Special Blocks</a> +Sunday, Nov 29 2020, 9:13 AM - 9:30 AM EST / 6:13 AM - 6:30 AM PST / 2:13 PM - 2:30 PM UTC / 3:13 PM - 3:30 PM CET / 10:13 PM - 10:30 PM +08 -# Emacs development update -Sunday, Nov 29 2020, 9:13 AM - 9:30 AM EST / 6:13 AM - 6:30 AM PST / 2:13 PM - 2:30 PM UTC / 3:13 PM - 3:30 PM CET / 10:13 PM - 10:30 PM +08 -John Wiegley - -TBD - possibly a quick overview of Emacs 27.1 and development priorities for Emacs 28 - - - - +[[!inline pages="../info/38" raw="yes"]] Back to the [[schedule]] Previous: <a href="/2020/schedule/20">OMG Macros</a> diff --git a/2020/schedule/39.md b/2020/schedule/39.md index f72f2b78..b2f2ea8c 100644 --- a/2020/schedule/39.md +++ b/2020/schedule/39.md @@ -5,16 +5,9 @@ Back to the [[schedule]] Previous: <a href="/2020/schedule/25">Traverse complex JSON structures with live feedback</a> Next: <a href="/2020/schedule/26">Emacs as a Highschooler: How It Changed My Life</a> +Sunday, Nov 29 2020, 11:25 AM - 11:45 AM EST / 8:25 AM - 8:45 AM PST / 4:25 PM - 4:45 PM UTC / 5:25 PM - 5:45 PM CET / 12:25 AM - 12:45 AM +08 -# NonGNU ELPA -Sunday, Nov 29 2020, 11:25 AM - 11:45 AM EST / 8:25 AM - 8:45 AM PST / 4:25 PM - 4:45 PM UTC / 5:25 PM - 5:45 PM CET / 12:25 AM - 12:45 AM +08 -Richard Stallman - -TBD - plans for a NonGNU ELPA that will be easy to enable and contribute to without signing copyright assignment papers - - - - +[[!inline pages="../info/39" raw="yes"]] Back to the [[schedule]] Previous: <a href="/2020/schedule/25">Traverse complex JSON structures with live feedback</a> diff --git a/2020/submissions.org b/2020/submissions.org index 94b7c775..ebb17946 100644 --- a/2020/submissions.org +++ b/2020/submissions.org @@ -20,8 +20,7 @@ You can check out the Org Mode source for this page by following the [[https://e - [[elisp:conf/generate-schedule-files][Generate schedule files]] To update the information included in the individual talk page, -execute the buffer, update the talk's "Talk information" heading, and -then generate schedule files. +execute the buffer, update the talk's info/TALKID.md file. * Tables @@ -3115,6 +3114,8 @@ The total is written to the MIN_TIME_SUM property of this heading" ** Generate schedule file #+begin_src emacs-lisp :results none :eval yes :exports code :tangle "conf.el" +(defvar conf/timezones '("EST" "America/Los_Angeles" "UTC" "CET" "Asia/Singapore") "List of timezones") + (defun conf/get-talk-info () (let (talk results) (org-map-entries (lambda () @@ -3177,8 +3178,24 @@ The total is written to the MIN_TIME_SUM property of this heading" (format "<tr><td width=100>%s</td><td width=100>%s</td><td>%s</td><td>%s</td></tr>" start end (conf/format-talk-link o) speakers)))) (cdr info) "\n"))) +(defun conf/filter-talks (info) + (seq-filter (lambda (o) (eq (plist-get o :type) 'talk)) info)) + +(defun conf/split-out-talk-information () + (interactive) + (let ((talks (conf/filter-talks (conf/get-talk-info-from-file)))) + (mapc (lambda (o) + (with-temp-buffer + (insert + (format "# %s\n%s\n\n%s") + (plist-get o :title) + (plist-get o :speakers) + (plist-get o :info)) + (write-file (expand-file-name (format "%s.md" (plist-get o :talk-id)) "info")))) + talks))) + (defun conf/format-talk-pages (info) - (let* ((talks (seq-filter (lambda (o) (eq (plist-get o :type) 'talk)) info)) + (let* ((talks (conf/filter-talks info)) (next-talks (cdr talks)) (prev-talks (cons nil talks))) (mapc (lambda (o) @@ -3193,8 +3210,9 @@ The total is written to the MIN_TIME_SUM property of this heading" [[%s copyright=\"Copyright © 2020 %s\"]] %s +%s -# %s\n%s \n%s\n\n%s\n\n +[[!inline pages=\"../info/%s\" raw=\"yes\"]] %s @@ -3208,7 +3226,6 @@ conference for instructions on how to watch and participate. See you then! "!meta" (plist-get o :speakers) nav-links - (plist-get o :title) (concat (format-time-string "%A, %b %e %Y, " (org-timestamp-to-time (org-timestamp-split-range timestamp))) (mapconcat (lambda (tz) @@ -3217,10 +3234,9 @@ conference for instructions on how to watch and participate. See you then! (org-timestamp-to-time (org-timestamp-split-range timestamp)) tz) (format-time-string "%l:%M %p %Z" (org-timestamp-to-time (org-timestamp-split-range timestamp t)) tz))) - '("EST" "America/Los_Angeles" "UTC" "CET" "Asia/Singapore") + conf/timezones " / ")) - (plist-get o :speakers) - (plist-get o :info) + (plist-get o :talk-id) nav-links))) (write-file (format "schedule/%s.md" (plist-get o :talk-id))))) talks))) |