
Literate Devops with Emacs
About this video
Howard Abrams demonstrates, in an EmacsConf 2015 talk, how he uses org-mode's Babel and Tramp to configure and operate remote servers from a single document. Code blocks, their results and the explanatory text all live together.
Why it appears in the archive
HN people point to it as the best demonstration of literate devops, showing documentation and execution woven together in Emacs.
AI-generated summary and labels from the source dataset; verify important details against the video. Source & credits.
From the Hacker News discussion
This is the blog of Howard Abrams, who also has a great YouTube channel full of Emacs demos and tutorials. His video on literate programming for DevOps via Emacs' Org-mode was very impressive and inspiring to me. It's my favorite. :) [VIDEO]
Read original comment ↗Emacs org-mode supports a lot of languages [1] and you can mix and match within a file. Howard Abrams literate devops is an interesting example of what org-mode code blocks can do. [2][3] Org-mode also allows embedding images or source blocks in languages like LaTeX that resolve to rendered images. [1]: [LINK] [2]: [LINK] [3]: [VIDEO]
Read original comment ↗I use org-mode everyday, as well. And the org-babel literate programming environment is a game changer, and something I find new uses for all the time. Check out this literate devops video [1] But I share your sentiment for the stability issues which I think reflect problems with emacs in general. One day, you update your packages and suddenly your favorite mode does not work anymore and you have to spend 1/2 day figuring out why literally digging into the source with edebug. Because of this I take the following measures. I use melpa-stable which as the name indicates are the stable versions of emacs packages. (The problem is not all packages are in melpa-stable so you have to deal with that too.) Also, I manage my own version of org-mode cloned from the canonical org-mode repo that I update when I decide and I can back out of if there are problems. Finally, I run emacs within docker which allows me to freeze dry and rehydrate environments that are completely under my control so that I don’t encounter problems with a changing environment either. Here is my literate org-babel .emacs, if interested [2] (I don’t have the Dockerfile on github, yet, unfortunately.) [1] [VIDEO] [2] [LINK]
Read original comment ↗I could go on and on about the benefits of org. And the org-Babel full fledged literate programming environment is another game changer. I used org for a scientific conference I attended recently. From one org file, I could provision a VM in the cloud and get various Docker containers running via tangling with plenty of human friendly exposition. (See tramp mode too.) I could then export that file as an extended abstract via Latex export (conforming to the conference formatting guidelines) and also produce attractive HTML (see ReadTheOrg). Also checkout this literate devops video: [VIDEO]
Read original comment ↗Literate programing is used to tangle text and code. You tangle the document and the code blocks are pulled out to create a working program. But Orgmode's Babel, iPython and Wolfram's Computational Essays are literate computing, with code being executed in the document. Howard Abrams has extended the concept to create literate devops ( [VIDEO] ) using orgmode babel where the code in the document is used to configure software running on local or remote servers. I use Babel as part of my daily workflow. Very cool stuff.
Read original comment ↗All these workarounds sound like a reason to use start using tramp more (apropos, [VIDEO] / [LINK] is a pretty neat demo of combining org-babel and tramp). ----- There is also emamux, which seems to be able to copy from tmux: [LINK]
Read original comment ↗This is the main reason I want to try and learn Emacs, OrgMode, and Babel. The stuff that Howard Abrahams discusses on the below video is something I think would be highly successful in a remote environment. Documenting your workflow as you go, including commands and output, then emailing it to your team that day or uploading it to a document store/gitbook: [VIDEO]
Read original comment ↗Org-mode in Emacs. Because it enables to do literate programming. In this video [0] by Howard Abrahams you can see how to wave the instructions and the execution of them with Emacs. Another advantage is that you can mix your diagrams (in plantuml or ASCII art) with your code, in the same org-mode file. Gitub displays .org files the same way it does Markdown. [0] [VIDEO]
Read original comment ↗