diff options
Diffstat (limited to '')
-rw-r--r-- | 2019/transcripts.md | 24 | ||||
-rw-r--r-- | 2019/transcripts/05.md | 134 | ||||
-rw-r--r-- | 2019/transcripts/06.md | 129 | ||||
-rw-r--r-- | 2019/transcripts/07.md | 136 | ||||
-rw-r--r-- | 2019/transcripts/10.md | 180 | ||||
-rw-r--r-- | 2019/transcripts/19.md | 49 | ||||
-rw-r--r-- | 2019/transcripts/22.md | 79 | ||||
-rw-r--r-- | 2019/transcripts/22/discussion.md | 6 | ||||
-rw-r--r-- | 2019/transcripts/28.md | 104 | ||||
-rw-r--r-- | 2019/transcripts/29.md | 41 |
10 files changed, 1 insertions, 881 deletions
diff --git a/2019/transcripts.md b/2019/transcripts.md index e297db49..037900f4 100644 --- a/2019/transcripts.md +++ b/2019/transcripts.md @@ -1,24 +1,2 @@ [[!meta title="Transcripts"]] - -Emacs community update - Sacha Chua - script at -<https://github.com/sachac/emacs-conf-2019-community-update/blob/master/index.org> - -## User talks - -- [[Use Org mode when away from the desktop - Zen Monk Alain M. Lafon|05]] -- [[Org-mode and FoilTeX - an unlikely (but useful) combination for teaching - Tom Faulkenberry|06]] -- [[A.I. that Helps Play the Game of Your Life - Andrew J. Dougherty|07]] -- [[Notmuch New(s) - David Bremner|10]] -- [Ledger-mode - Quiliro Ordóñez](//mirror.csclub.uwaterloo.ca/emacsconf/2019/emacsconf-2019-12-ledger-mode--transcript--quiliro.org) -- [[Play and control your music with Emacs - Damien Cassou|28]] - -## Dev talks - -- [[Emacs: My awesome Java environment - Torstein Krause Johansen (skybert)|19]] -- [[Packaging Emacs packages for Debian - David Bremner|22]] -- [[Restclient and org-mode for Api Documentation and Testing - Mackenzie Bligh|29]] - -To be completed later. - -Shout-out and many thanks to [[aindilis]] for transcribing several of -the above talks besides his own. +[[!meta redir=talks]] diff --git a/2019/transcripts/05.md b/2019/transcripts/05.md deleted file mode 100644 index a0d423ef..00000000 --- a/2019/transcripts/05.md +++ /dev/null @@ -1,134 +0,0 @@ -[[!meta title="Use Org mode when away from the desktop - Zen Monk Alain M. Lafon"]] - -- Hello everyone, my name is Alain and I'm going to give you a ten - minute introduction to Organice. This is what we're going to do, - I'll give a quick introduction to me, I'll tell you all about - Organice, you'll get a real-time demonstration and I'll finish with - some closing words. So without further ado, who am I? I am the - co-founder and CEO of a company based in Zurick, Switzerland called - 200OK, we are a product incubator but we also do customer - projects. We are very polyglot in that we like to use many - programming languages and technologies and we spend as much time as - we can on free and open source software. For the last nine years - I've also been a lecturer at the Zurick University of Applied - Sciences and I am an ordained Zen-monk and I run the ?? temple in - the mountains of ??. If you want to reach me please send me an email - at any time to <alain@200ok.ch>. - -- Why would you even care who I am? So I gave that little prefix to - say that I dabble in quite a few different things and to be able to - manage it all I kind of have to be a ?tooling? nut. And I am. - -- For example I even got the job interview to be a lecturer by - accident because I gave a talk on getting things done some nine - years ago and then got invited. Which in turn means that over the - last fifteen years I went over great many different tools and - processes and since six years I have settled, I am very happy now, - and I spend most of my work reading, communication and writing all - within Emacs. And within there Org-mode is my daily driver. I use - it for everything. For project management, time tracking, doing - quotes, book-keeping, controlling, giving presentations, and so much - more. I am very happily commited to using Org-mode and Emacs. - -- Then what even is Organice? I mean if Org-mode is so great, why - would we need a new tool? Well there's two pragmatic reasons, one - is it's not really convenient to have a laptop and PC handy all the - time. And secondly, not everyone is an Emacs user unfortunately. - So I would have this proposition, if you're a fan of Org-mode you - probably want to have access to your Org files at any point in time, - even if you're away from your computer. And you still want to use - good collaboration tools with other people, so you still want to - continue using Org-mode even if they're not Emacs users. And now - there is a solution for that, it's called Organice. Organice is an - implementation of Org-mode without the dependency of Emacs. It's - built for mobile and desktop browsers and syncs with DropBox and - Google Drive. - -- This is what it looks like. But before I show you how it works, let - me tell you a little bit about how we develop it. Of course it is - free and open source software, it has the AGPL license, there's a - public code of conduct, the contributing guidelines are up there, - you can find the code repository documentation on GitHub. And we - built it using popular front-end frameworks, mainly React and Redux, - we want to use the popular frameworks here because we want to enable - the widest range possible of contributors, and not have a lock-in to - a smaller niche. So let me give you a demo. I'll give you a demo - on my machine because as I said it's optimized for mobile and - desktop use so I can use it on my computer from the browser. You - could follow along by going to <https://organice.200ok.ch>, of - course you can host it yourself, but you can also use our free - instance, and no worries, there is no back-end, it's a front-end - only application. So there's no storage of any kind of data, - personal or not, on our servers. We also don't use analytics, so - it's I would say safe to use. - -- ?Inception? time, let's check out some Org-mode features and - Organice, but before we do that, let me show you that we've actually - been within Emacs and in the rendering of an Org-mode file all the - time, so the slide is the same on the left and on the right, and - wouldn't it be great if we could open this right within Organice. - And of course we can. Right here I am logged into - <https://organice.200ok.ch> so I have access to my files, it's the - same file, and you can see this is the demo slide that we've just - been on. But let me show you some more basic and core features of - Emacs Org-mode. So you're probably familiar with todos and of - course we support them. You can toggle todos. Can delete them. - You can see that the metadata up here is changing. Of course you - can edit headers, make it a new header, edit descriptions. There is - support for tags so for example, ?Louise? has some tags in here and - I can add all the tags that the system already knows. I can remove - them. I can create new tags. ?Oh?, it's adapted. We can focus and - drill down as the narrowing feature can, and it can go further down. - -- And up again. We can of course add and remove headers, so let me - make a new header, or remove an old one. We can move headers around - so for example here is a couple of cool things, so for example if I - wanted to move Emacs out and get rid of the text editors that works, - ?but/that? I can also for example move this further out and you can - see how they are attached if I bring it down or out or I can move it - back into again. You might have seen that this thing is turning all - the time whenever I make any change because we have implicity - syncing, so everything is synced to my DropBox right now. - -- We do have undo and redo on the top of the application there is a - redo, sorry an undo and redo button. ?? there is support for tables, - we can change values within tables, ?say ch-ed?, we can add new - columns and rows, we can also remove them. There is support for - lists and checkboxes, plain lists, ordered lists. Checkboxes work - as you would think they do. There is support for timestamps. It - understands if you gave it more information like a start and end - time you can set repeaters and delays. The regular things that work - in Org-mode timestamps. There is support for property lists, you - can remove and add new properties. - -- There is support for planning, so you have an agenda, all the items - that have deadlines and schedules are visible within the agenda. - There's a daily agenda, weekly agenda, monthly agenda and you can - jump right into the todo itself. - -- And lastly there is ?ketchla? template support, so I have a ?ketcha? - template setup for this file and it will add stuff to the inbox - here, so when I create new stuff in here, it is put directly into - the inbox and synced. So let's go back into the presentation and the - closing words. But before I give you the closing words, let's - quickly check out how the Org-file changed on my machine, because of - course it did, because all the synchronization happened. For - example you can see that there is new stuff in the inbox, I created - new deadlines, I deleted some properties, and added some new ones, I - checked some check boxes. You can see all the things that I did are - there. Quite nice. - -- Okay closing words, there is related work going on next to Organice, - right now we're using a custom parser written in JavaScript for the - Org-files, and it works quite fine and it has unit-tests to prove - it, however, we want to redo and write a parser, a proper parser in - BNF, and we're doing this in Closure and Closure-Script. If you're - interested in this project you can check it out on our GitLab - instance, also free and open source software of course. We write - quite frequently about Emacs and Org-mode, if you want to catch up - please go to our website, and lastly please check Organice out, you - can go to the repository if you liked the talk, please give it a - star. And, go ahead and check it out on - <https://organice.200ok.ch>, you don't even have to log in, you can - just try it out. Okay, thank you for listening, thank you for your - time, and have fun and enjoy using Organice and Emacs of course. diff --git a/2019/transcripts/06.md b/2019/transcripts/06.md deleted file mode 100644 index f9977656..00000000 --- a/2019/transcripts/06.md +++ /dev/null @@ -1,129 +0,0 @@ -[[!meta title="Org-mode and FoilTeX - an unlikely (but useful) combination for teaching - Tom Faulkenberry"]] - -- Hi my name is Tom Faulkenberry and I am a mathematical psychologist - and professor at Tarleton State University in Stephenville, Texas. - My talk is about using something that's kind of old, a lot of people - don't think about it any more, with something new, like Emacs - Org-mode. Particularly I'm going to talk about using FoilTeX in - Emacs Org-mode. So first I want to give you a little bit of - background about what this is and why you would want to do it. As - you can see I have some things available for you on a GitHub repo. - The address you can see up here, is - <https://github.com/tomfaulkenberry/orgFoils> with the F - capitalized. So if you go there you'll see this README and it kind - of tells the story, I've been using Emacs for a long time and even - before that I was using LaTex in my graduate studies in mathematics. - -- Now with the advent of Org-mode many of us know that we are able to - combine the efficiency of using an Emacs workflow, and particularly - the markdown language that's provided by Org-mode, with the - mathematical type setting power of LaTeX, and so there are standard - ways to export Org-mode into LaTeX-type documents. Particularly - this works for presentations, and of course I'm a professor so I - make a lot of presentations, both at conferences as well as for - classes that I teach. Now I found that Org-mode did this very - nicely, as long as you were willing to use the ?Beamer? class, so if - I wanted to make things that were horizontally oriented and use the - standard color schemes in ?Beamer? then Org-mode export works fine - for that. But I have to admit I longed for simplicity of old days - of using LaTeX, where we made slides for - okay I'm going to date - myself here - but we made slides for overhead projectors that were - in a portrait orientation, and they just didn't have a lot of - decoration on them. - -- They kind of got to the point, they showed some mathematics, they - showed some things, and that was about it. - -- Well those were made back in those days using something called the - FoilTeX package, I've provided a link here on this README. You can - see if we go to the package for FoilTeX it hasn't been updated since - 2008, and even before that it went six years between updates. This - is not by any means an active development package. Rather it is - something that is old, it is archival but it is still distributed - with the full installation of LaTeX. So back to the point, why do - we care about this? Well, it's a pretty simple way of making - presentations, but Org-mode won't do it without a little bit of - hacking. So the point of this presentation is to show you that it - can be done, to show you that you can actually make very nice - presentations for both conferences as well as teaching notes, and - teaching slides, with just a little bit of work on your .emacs file. - So before I show you how that works, and it's all documented here on - the GitHub repo, I want to just demonstrate it in action, so I'm - going to flop over to Emacs real quick. Here is a document, there - is a copy of this document in the GitHub repository that I mentioned - about, so as you can see it does seem to follow the structure of a - standard Org-mode document. - -- At the top we have some header matter that I will explain in just a - second, and then we have these lists that begin with asterisks, and - if we tab them you can see that there's text underneath these. - These sections, if you will, will each turn into separate pages on - my lectures notes. So I've got several, this is for about a two - hour long course, so how does it turn into a pretty document that I - can then take to my course with me? - -- Well it works just like any standard Org-mode to LaTeX export. We - type C-c C-e which then provides us with this export menu, and as we - can see here to export to LaTeX and then a resulting PDF file I can - type l and then o and I do that and it will generate my LaTeX file - as well as open it for me and we'll see that pop up. Okay. And let - me go to the very beginning. This is what it looks like. Let me - scroll or zoomout a little bit so you can see the full page. So - these are in portrait orientation, I use my lecture like this - because usually I'm giving a lecture on an, not an overhead, but a - document camera where I'll take the paper with me and I'll have some - things written but I'll also have some space to write additional - things throughout the class. So sort of a hybrid between a chalk - talk if you will and a formal presentation. - -- And so as you can see this is nicely done with some readable fonts, - using LaTeX type type-setting, so it's really good for mathematical - content, and I found it's just a really clean way of doing things. - So that's what it looks like. So the question is how do you do - this, how do you generate this and get your Org-mode and Emacs set - up to work this way. Well I detail this in the GitHub repository. - There are two things you need to do to make this work. First is you - need to edit your .emacs file to include this codeblock. So this - codeblock is, I'll show you on my .emacs file, it doens't really - matter where it goes, I usually put it somewhere in the middle. Let - me open that just real quick for you. - -- My .emacs file's got some stuff in it and if we go down to about - right here you can see that code chunk is right here. So that code - chunk is what it takes to make that exporting that I demonstrated - work. You can see it here it basically does two things. First is - it defines a Foils class, that you can call in the Org document, and - then it maps your section header, that asterisk, to the FoilTeX - command which is Foil head. So if you type all of this in your - .emacs and then reload that you will be able to then turn the - example Org mode document into a nice set of lecture notes. The - other thing that you need to include, is you need to include a - document header. - -- Now this is kind of a barebones header, I will say that strictly - speaking, not everyone of these things is required, for example, you - do not need this `\usepackage{amsmath}`, unless you are using some - fonts or things that are in that package. - -- Another thing is this little bit of LaTeX command, this makes it to - where my paragraphs don't indent, which for presentations and - lecture slides I prefer. There are also some class options, I do - mine portrait, but if I'm giving a presentation at a conference - those are usually done via computer projector, so I would turn that - into landscape. And also this 17-point font you see, that's the - size that works nicely for me, but there are other font sizes - available in FoilTeX that you can use. All of those are detailed in - the FoilTeX manual which I've provided a link to for you here. - -- Finally, in this repository I do give you the Org-mode file itself, - it doesn't render nicely in the browser but you can clone this - repository and pull it up in your Emacs just fine, and then finally - the resulting PDF I showed you is also living in this GitHub repo. - So, it's a little bit slow right now, but it's there. I'm moving it - around too much as you can see. But anyway there is, so if you - think this is interesting and something you might like to do I - certainly welcome you to contact me by or by Twitter, there's my - email address and my Twitter handle. This I think is a really cool - thing and I hope that you do too. If you want old-school type LaTeX - ability with new-school Emacs Org-mode this is the way to do it. So - hope you enjoyed it and I look forward to talking with you further. diff --git a/2019/transcripts/07.md b/2019/transcripts/07.md deleted file mode 100644 index ff64e0ce..00000000 --- a/2019/transcripts/07.md +++ /dev/null @@ -1,136 +0,0 @@ -[[!meta title="A.I. that Helps Play the Game of Your Life - Andrew J. Dougherty"]] - -- What if you collect thousands of A.I. tools and apply them towards - planning your life? That's exactly what FRDCSA has been working on - for the last twenty years. Only soon, you can download a VM - containing the core systems. In today's increasingly complex world, - sometimes we can be blindsided by rules we didn't know existed. If - you're living on the edge, this can be a disaster. What if all the - rules that applied to us, from legal, to financial, to just basic - common sense, were collected into a system that was capable of - reasoning with them and planning with them. You could put your - objectives into the system and it would factor in all these things - and spit out a plan. Well that's just one of the many things that - FRDCSA's Free Life Planner A.I. seeks to do. - -- A.I. is problem-solving, and software that can do this has to grow - larger as problems and their complexity multiply. Over the last 20 - years the FRDCSA project has collected thousands of codebases, and - written hundreds of codebases, gluing everything together and making - it available from within Emacs, Perl and Prolog. The Free Life - Planner, FLP, takes this and applies it directly towards assisting - users in their minute-to-minute, day-to-day, year-to-year lives. - -- Think of a massive collection like V'ger had in Star Trek: The - Motion Picture, of things like strong game-playing systems like - AlphaZero, but tailored to the specific problems people most often - encounter with finances, meal-planning, transportation, health care, - etc. - -- If you're interested in a personal A.I. assistant, stay tuned as we - cover the Free Life Planner. But it is after all only one of over - 600 custom codebases developed for FRDCSA. Soon, Panoply, the - virtual machine distribution of FRDCSA, will be released for you to - explore. So, let's have a look at some of what FRDCSA can do for - you. - -- FRDCSA wants to help you solve as many problems as it can, treating - the world as a game which it tries to win, by proofs that bad things - don't happen. We know that if a set of problems constitutes t bits - of information, and a set of programs contains less than t bits of - information, then it is impossible to solve these problem from these - programs. When it comes to AI, bigger is better. In 2002 this led - me to Emacs, Perl, Debian and Cyc, and a growing list of over - 100,000 external codebases. In fact, FRDCSA excels at finding and - packaging software, and exposing APIs for reuse. - -- Someone once asked me, what does FRDCSA do? I couldn't give them an - answer. I didn't know where to begin. There aren't any silver - bullets to demonstrate. So where does Emacs fit in? It is the - develop console, mission control, where most development and usage - occurs. There are dozens of modes, thousands of key-bound - functions. Let's look at some representative Emacs systems written - because we couldn't find anything with similar capabilities. - -- This is UniLang, a multi-agent system facilitator, and a core FRDCSA - system. UniLang let's all the systems talk to each other. For the - Free Life Planner we want to spider the internet, to find, retrieve - and index rules and software, to apply them towards improving the - way we live on a daily basis. But to intelligently spider you need - to be able to understand the text. Because lots of useful - information on the internet is in text form, FRDCSA is heavily - focused on natural language understanding. - -- This is NLU, it's a system based on semantically annotating text. - -- Okay, so our spider is helping us to locate rules. But what about - software, we still need more software. New software is being - written all the time, how do we gather it? IES is an information - extraction system, it allows you to label text like software - metadata using text properties, and then train a model and use it to - label other text. This way we can extract information about - software systems we want to acquire and package. - -- Okay great, we're getting more software, now what do we do? Let's - go back to rules for a minute. We have a lot of text, but how do we - translate it into a machine-readable format? That's where NLU-MF - comes in. Okay we have rules in a machine readable format, but how - do we know when they're applicable? We have to store the - world-state somehow. Enter FreeKBS2, our free knowledge-based - system, with persistent storage of rules and facts. It is a useful - Emacs front-end for rapidly manipulating symbolic rules and facts - and editing the knowledge-base. - -- So now we have some refined executable rules. How do we reason with - these common sense rules? Enter the Cyc system, undoubtedly the - world's largest, most sophisticated, common sense A.I.. But Cyc is - proprietary. Well, thanks to Douglas Miles, the author of the free - (libre) LogicMOO system, that's not a problem anymore. LogicMOO - aims to be backward compatible with Cyc itself. Let's demonstrate - our cyc-mode-2, which aims to create a deep channel between Emacs - and LogicMOO. - -- Today's software is fantastic, but there's not a lot in the way of - integrated approaches to planning one's life to improve the way we - live on a daily basis. The version of Free Life Planner on the - Panoply VM distribution currently does calendaring, recurrences, - reminders, planning, scheduling and execution. But the good news - is, we can make it a lot better. The potential for a rule-based - crowd-sourced life planner is tremendous. - -- People finally started understanding better what FLP, and to some - extent, FRDCSA, does when I wrote the following use case story. - It's the homeless-story.html, I'll provide the link later. It's the - story of a person facing homelessness who uses FLP to escape - homelessness. I highly suggest you read it to familiarize yourself - with the FLP. Some people think it is science-fiction, but I assure - you this story is doable with the tools we've collected. - -- Okay, where are we? We have a rule-based system, but our software - cannot do everything, no piece of software can. We have lists of - software that the spider and IES got us. Retrieving it is easy, - packaging it is hard. How do we package this software? Why not - record ourselves packaging software to add data to the A.I. so it - can learn how to make packages. - -- So we have lots of data about how to package, but now the system has - to figure out how to make packages on its own. It needs to be able - to think and plan. What's more, once the software is packaged, FLP - has to figure out how to use that software. Enter the software - robot called Prolog-Agent. Prolog-Agent is an intelligent agent - under development that can control Emacs in order to achieve - objectives, and will eventually be able to make use of recorded - traces. - -- So now we have all these rules and software, but wouldn't it be nice - if we could help teach the users some of the rules, and how to use - the software. That's what CLEAR does. CLEAR is a great way to have - books, manuals, websites, etc, read to you, allowing you to pause, - quit, resume and filter out nonsense. - -- If you'd like to get a copy of Panoply when the public alpha is - hopefully released in a few months, please email me. I will add - your name to the mailinglist. But also, please join us at `#frdcsa` - and/or `#freelifeplanner` on freenode. I would like you to try out - the FRDCSA, familiarize yourself with it, and test it. Thank you so - much for listening. Have a great day. diff --git a/2019/transcripts/10.md b/2019/transcripts/10.md deleted file mode 100644 index 862d71df..00000000 --- a/2019/transcripts/10.md +++ /dev/null @@ -1,180 +0,0 @@ -[[!meta title="Notmuch New(s) - David Bremner"]] - -``` -#+TITLE: Notmuch New(s) -#+AUTHOR: David Bremner -#+PROPERTY: header-args:sh :results output :session demo :output session - -* What is notmuch? -** A tool(kit) for indexing and searching mail -#+begin_src dot :file ecosystem.pdf -digraph ecosystem { - size = "4,3" - margin=0 - graph [fontsize=20] - node [fontsize=20] - edge [fontsize=20] - - gmime - xapian - notmuch_cli [shape=record,style=filled, color=yellow,label="notmuch CLI"] - libnotmuch [style=filled,color=gold] - - subgraph cluster_clients { - style=filled; - color=cadetblue3; - label="Mail user agents"; - node [shape=record, style=filled, color=white]; - notmuch_emacs [label="notmuch-emacs",color=yellow] - alot - bower - astroid - notmuch_web [label="notmuch-web"] - noservice - neomutt - notmuch_vim [label="notmuch-vim", color=lightyellow] - notmuch_mutt [label="notmuch-mutt", color=lightyellow] - } - - - subgraph cluster_tools { - style=filled; - color=darkolivegreen2; - label="tools"; - node [shape=record, style=filled, color=white]; - afew - nmbug [color=yellow] - notmuch_report [label="notmuch-report"] [color=yellow] - } - - subgraph cluster_bindings { - label="Bindings" - style=filled; - color=lightyellow; - node [shape=record, style=filled, color=white]; - ruby_notmuch [label="ruby", color=yellow] - python_notmuch [label="python", color=yellow] - notmuch_go [label="go"] - notmuch_rust [label="rust"] - } - - neomutt -> libnotmuch - astroid -> libnotmuch - alot->python_notmuch - notmuch_emacs->notmuch_cli - notmuch_mutt->notmuch_cli - notmuch_vim->ruby_notmuch - bower -> notmuch_cli - - noservice->notmuch_cli - nmbug->notmuch_cli - notmuch_report-> python_notmuch - - python_notmuch->libnotmuch - ruby_notmuch->libnotmuch - notmuch_go ->libnotmuch - notmuch_rust ->libnotmuch - - notmuch_web->notmuch_cli - notmuch_cli->libnotmuch - - afew->python_notmuch - - libnotmuch->xapian - libnotmuch->gmime - { - edge [style="invisible",arrowhead="none"] - notmuch_emacs->astroid - notmuch_emacs->neomutt - notmuch_emacs->notmuch_vim - notmuch_emacs->alot - notmuch_emacs->bower - bower->notmuch_vim - bower->astroid - notmuch_web->noservice - } - -} -#+end_src - -** Emacs interface(s) to notmuch -(notmuch-search "from:floris subject:cffi") -(notmuch-tree "from:floris subject:cffi") - -#+RESULTS: - -* What is new? -** Search Improvements -*** separate message body indexing -(notmuch-search "body:emacsconf and not subject:emacsconf") -*** user defined headers, e.g. =List-Id= -#+begin_src sh -notmuch config set header.List List-Id -notmuch reindex date:1month.. -#+end_src - -(notmuch-search "List:notmuch date:1month..") -** Cryptography Support -- (optional) indexing cleartext of encrypted e-mails -- (optional) caching of session keys -#+begin_example - ┌───────────────┬───────┬──────┬─────────┬──────┐ - │ │ false │ auto │ nostash │ true │ - ├───────────────┼───────┼──────┼─────────┼──────┤ - │Index cleart‐ │ │ X │ X │ X │ - │ext using │ │ │ │ │ - │stashed ses‐ │ │ │ │ │ - │sion keys │ │ │ │ │ - ├───────────────┼───────┼──────┼─────────┼──────┤ - │Index cleart‐ │ │ │ X │ X │ - │ext using se‐ │ │ │ │ │ - │cret keys │ │ │ │ │ - ├───────────────┼───────┼──────┼─────────┼──────┤ - │Stash session │ │ │ │ X │ - │keys │ │ │ │ │ - ├───────────────┼───────┼──────┼─────────┼──────┤ - │Delete stashed │ X │ │ │ │ - │session keys │ │ │ │ │ - │on reindex │ │ │ │ │ - └───────────────┴───────┴──────┴─────────┴──────┘ -#+end_example -- indexing, searching, rendering /protected Subjects/ - - sent by Enigmail and K-9 mail - -** Support for gzipped mail files -(notmuch-show "id:1319286098.13821.57.camel@pc-jirka") -#+begin_src sh -bigfile=$(notmuch search --output=files id:1319286098.13821.57.camel@pc-jirka) -ls -lh ${bigfile} -gzip -9 ${bigfile} -notmuch new -#+end_src - -#+begin_src sh -gunzip ${bigfile} -notmuch new -#+end_src - -* What is next? -** notmuch-emacs improvements -- better docs? -- more asynch things -- convenience features, e.g. jump to parent messages -** Updating python bindings -- based on CFFI -- more /Pythonic/ -- less broken with Python >= 3.6 - -** Protected Headers Support -- authoring protected headers - -* Cleanup this buffer -#+begin_src elisp -(org-babel-remove-result-one-or-many 't) -#+end_src - -* Configuration -# Local Variables: -# org-confirm-babel-evaluate: nil -# End: -``` diff --git a/2019/transcripts/19.md b/2019/transcripts/19.md deleted file mode 100644 index 1419e1ea..00000000 --- a/2019/transcripts/19.md +++ /dev/null @@ -1,49 +0,0 @@ -[[!meta title="Emacs: My awesome Java environment - Torstein Krause Johansen (skybert)"]] - -## Emacs: My awesome Java environment - -by torstein @ skybert dot net - -## Hi, I'm Torstein 👋 -- Been in ❤ with Emacs since 2000 - -## I've used many Java plugins/packages - -- java-mode (2000 → 2001) -- [JDEE](//github.com/jdee-emacs/jdee) (2001 → 2009) -- [gtags](//www.gnu.org/software/global/manual/global.html) -- jtags -- [Malabar](//github.com/m0smith/malabar-mode) (2011 → 2012) -- [JDIbug](//github.com/udalrich/jdibug) (2009 → 2011) -- [eclim](//github.com/emacs-eclim/emacs-eclim) (2013 → 2017) -- [Meghanada](//github.com/mopemope/meghanada-emacs) (2017 → 2018) -- [lsp-java](//github.com/emacs-lsp/lsp-java) (2018 → present) - -## My requirements -- Zero conf: Easily setup a new Java project -- Fast: must handle large projects -- Large meaning ~7000 classes (Tomcat has 2200) -- Easy to switch between projects - -## Seeing is believing - -Will use a wee app, [cheese-shop](//gitlab.com/skybert/cheese-shop) to -show the Java features in Emacs. - -- Auto completion -- Code navigation -- Jump to source of 3rd party libraries -- Import classes -- Static import methods and fields -- Run JUnit tests from within Emacs -- Linting -- Unused variables -- Wrong syntax -- Missing generics -- Implement missing class -- Implement missing method -- Debug application from within Emacs -- Debugger with conditional break points -- Refactoring: rename variable -- Refactoring: extract to variable -- Refactoring: extract to method diff --git a/2019/transcripts/22.md b/2019/transcripts/22.md deleted file mode 100644 index 3a6daa49..00000000 --- a/2019/transcripts/22.md +++ /dev/null @@ -1,79 +0,0 @@ -[[!meta title="Packaging Emacs packages for Debian - David Bremner"]] - -``` -#+TITLE: Packaging Emacs packages for Debian -#+AUTHOR: David Bremner -#+PROPERTY: header-args:sh :results output :session demo :output session -* Why Debian Packages for Emacs addons? -** For users -- Extra layer of curation -- Integration testing -- Non-emacs dependencies are easy -- Co-operates with other =package.el= sources, e.g. /Melpa stable/. -** For admins -- Familiar tools -- Known trust model -- Building VM images -- Stable releases - -* Packaging demo -** setup -#+begin_src sh :var dir=(expand-file-name default-directory) -export SUDO_ASKPASS=/usr/bin/ssh-askpass -export DPKG_COLORS=never -export DEBIAN_FRONTEND=noninteractive -cd $dir -rm -rf build -mkdir build -cd build -#+end_src - -** grab the source -#+begin_src sh -git clone -q -o upstream https://github.com/takaxp/org-tree-slide.git -#+end_src - -** generate the packaging -#+begin_src sh -cd org-tree-slide -dh-make-elpa --pkg-emacsen -#+end_src - -** inspecting the results -#+begin_src elisp -(dired "build/org-tree-slide/debian") -(dired-hide-details-mode) -#+end_src - -** building the package - -#+begin_src sh -dpkg-buildpackage -uc -us -b -#+end_src - -** install the package -#+begin_src sh -sudo -A env NEEDRESTART_SUSPEND=y DEBIAN_FRONTEND=noninteractive \ - apt-get install --reinstall -q -y ../elpa-org-tree-slide*.deb </dev/null -#+end_src - -** activate the package -#+begin_src elisp -(package-initialize) -(locate-library "org-tree-slide") -#+end_src - -#+begin_src sh -dpkg -L elpa-org-tree-slide < /dev/null -#+end_src - -* Cleanup this buffer -#+begin_src elisp -(org-babel-remove-result-one-or-many 't) -#+end_src - -* Configuration -# Local Variables: -# org-confirm-babel-evaluate: nil -# End: -``` diff --git a/2019/transcripts/22/discussion.md b/2019/transcripts/22/discussion.md deleted file mode 100644 index 81e55f73..00000000 --- a/2019/transcripts/22/discussion.md +++ /dev/null @@ -1,6 +0,0 @@ -Nice and clear. -Good for teaching us the goog and best practice for a beginner. With that we what to to and in which sequence. -This cas be the start for a good developper to automate a bit and virtualize for abstract packaging in a DevOps and DevSecOps, so thank you a lot. This is very usefull ! -kf - --- kf_kiff_Packaging_e4d 2019-11-14 09:40 UTC diff --git a/2019/transcripts/28.md b/2019/transcripts/28.md deleted file mode 100644 index 8befe3b8..00000000 --- a/2019/transcripts/28.md +++ /dev/null @@ -1,104 +0,0 @@ -[[!meta title="Play and control your music with Emacs - Damien Cassou"]] - -- Hi everyone. In this lightening talk, I would like to present - MPDel, which is a user interface for MPD, the Music Player Daemon, - that's implemented in Emacs Lisp and runs entirely within Emacs. So - it relies on Music Player Daemon, which is quite old because it's a - sixteen years old project serving music with many different clients. - So if I look at clients of MPD you see there are all different kinds - so this ?android? projects or web projects or GTK projects and a - curses project, web projects, so yeah many different kinds of - clients. MPDel is implemented in Emacs Lisp, it's divided into - three parts. So there is a library libmpdel, which is it's own - project. That's doesn't propose any user interface, but instead it - proposes a set of primitive functions to build user interfaces on - top. Then you have the screenshot here on top of the MPDel, so it's - mostly tabulated lists based, and then you have another UI which is - based on ?IV?, and I will present ?the? two user interfaces in this - context of this project. So let's start the video by navigating the - music database. So it's a simple job to get the list of all your - artists. You can navigate with ?turned-out? shortcuts. And you - have isearch obviously ?for? imenu, and so I can go to ?pink? sites - with quick shortcuts. When you select your artists you can go to - which album by pressing return, and to go from an album to a - particular artist's songs, you also press return. - -- So that is going ?deep? from the album to the artist and from the - artist to the songs, and with carrots or shift-6 on my keyboard you - go up to the parent from the song to the albums, and from the albums - to the artists. So the next thing we can see is the playlists, so - on the left you have the database, and on the right I will put the - playlist. So for now there is nothing to listen to, and I will add - things in these lists, so we can add either artists, albums or - individual songs, so let's add one of my favorite songs, ?So equals? - from Pink Floyd. So you can add it to the playlist, or add it - immediately stop playing it, so this time I want to immediately play - it, so I press P for play. - -- And then I will press the carrot to go back to the artists and add - some more music, I will add an album by Dire Straits. So if I press - P now it will add all the album and also start with the first song, - but because I don't want to interrupt ?ecos? I will just press a to - add all the songs from this album. What we want to do now is - manipulate the playlists, so for now ?ecos? has started playing and - I can modify the playlist to decide what will be next, so by default - it's Sultans of Swing, but I can change that for prioritization for - example. - -- Like that, so I can move one song, I can also mark multiple songs - and move them around. - -- It's also possible to play the next song and the previous song so - you have M-n to play the next. And M-p to play the previous one. If - you wanted to delete a few songs from your album you can select them - and then press k for deletion, and then they are removed from the - database, not from the database, but only from the playlists. With - t you can toggle the mark, so if I want to select everything by - ?except ...? I can just press t. And t again to ??, if I want to - select everything I can always press t when nothing is marked, so I - can erase everything at once. - -- Something I can do now is display some information about the - currently played song, so I can press v wherever I am to get the - list of songs. It's very important to notice that whatever view you - are in the shortcuts are always the same, so if I go back to the - navigator with n, I can press ?? information about the current song, - so v here, which ?? about the current song. So you see that there - is the time, and the album and artist and ?? status, so if I pause - the music, it ?? pause. And backplaying. I can move forward and - move backward with M-s and M-v, I can do that slowly or fast with - different shortcuts, and from the current song you can press carrots - to go to the parents, so it's exactly the same shortcut as how we - were navigating from the songs to the albums and from the albums to - the artists, so it's carrots, and you go from the song to its album - and then from the album to the artist. - -- I tried when designing the shortcuts to make the keybindings do - always the same thing wherever you are, so if I press M-f now I will - fast-forward the current song, so the same shortcuts work the same - everywhere. And if I press ?....? Another way to control the - current playlists or stop playlists is to use the Ivy based - interface so it doesn't pop up any buffer, but you can still - navigate your database and select the songs to play. So if I start - the interface I get the list of all my artists in the minibuffer, so - I can choose for example MCC artists and the ?? ?king? and the song - I will pick this one for example, and there are many things I can do - from here, so I can add to the current playlist I can start playing - immediately, I can start and stop playlists, so let's see I just p - for playing it immediately. - -- So MPDel is mostly based on tabulated lists, which I really liked. - And after I implemented MPDel, I liked that kind of view so much I - decided to use the views for other kinds of packages, so I - implemented a database navigator, and also a network manager client - using tabulated lists, and I realized that all of those libraries - and tools they were sharing the same kind of code. So I decided to - abstract away from all of those and I created navigel which makes it - very easy to implement tabulated lists if you have a model of your - domain data that you want to navigate. - -- There is a lightening talk at EmacsConf about navigel so I encourage - you to have a look at it if you're interested in how I reimplemented - MPDel so that it's much simpler, and how I implemented all the other - packages. This is the end of my talk, I hope you liked it. And - happy EmacsConf. diff --git a/2019/transcripts/29.md b/2019/transcripts/29.md deleted file mode 100644 index 8d8e1cec..00000000 --- a/2019/transcripts/29.md +++ /dev/null @@ -1,41 +0,0 @@ -[[!meta title="Restclient and org-mode for Api Documentation and Testing - Mackenzie Bligh"]] - -#TITLE Restclient and org-mode for Api Documentation and Testing - Mackenzie Bligh - -- Hi everyone, my name is Mack, I am a back-end software engineer with - ?Tarot? in San Francisco, and I'd like to talk to you today about - how I integrate Emacs with RestClient and Org-mode into my daily - workflow for documenting and testing APIs. All of the materials for - this talk can be found in EmacsConf 2019 repo with the url here - <https://github.com/mack1070101/emacs-conf-2019>. This example uses - restclient.el, which is a domain specific language for working with - restful APIs and OBRestClient to provide the wrappers for Org-mode, - however these are just the wrappers for what I use, the principles I - demo here can work with any set of programming languages that's - supported by Org-mode and has network calls. - -- So I find this way of writing documentation great because it helps - people get into using Emacs and provides a shallow learning curve - without being overwhelming of how to use Emacs. The second thing - that's great about it is it helps support maintenance of - documentation, because the documentation itself is actually used to - interact with APIs. Therefore it's providing utility to developers - and they can use it and maintain it all at the same time. As an - added benefit you have full Org-mode support for task management - doing things like exporting to other formats, building scripts via - tangling, as well as writing very complex API interactions by - feeding the output of one API into the input of another API. - -- I tend to favor using ELisp for simple things like building - requests, log in strings, things like that as you'll see. I do try - to avoid using languages or tooling that aren't integrated with - Emacs, however if it makes my life easier I'll use ubiquitous tools - like curl and jq as needed. I've included a mock server that I - already have running here, and you can find details about how to get - that set up if you're interested in the repo and link up above. So - let's jump right in. - -- Here is provided a sample document for a stock trading - application. We've got - -To be completed later. |