Design, Development & Productivity Notes

Hello, I'm Patrick!
These are my public notes. Please, let me know if you have any questions. (pictured: Lucas the greyhound.)

## Hugo and Org, a perfect match.

This website is a static website hosted on Github Pages. I originally used Octopress along with org-export to publish my notes, but recently migrated to Hugo because of its native support for Org notes. What makes publishing even better is the emacs-easy-hugo package. You manage your notes pages just like you would normally in Org, but now previewing drafts is a simple key press (p), and publishing to Github is another (G). Since my original notes where exported from Org the migration was trivial, just adding some additional header info to my notes; easily accomplished in a few keystrokes in Emacs. The header info handles things like draft status, future publish dates, enable comments, tags, etc.

I suggest anyone publishing to Github pages from Org make the move to Hugo and emacs-easy-hugo; they are a joy to use.

## Org-Brain: Concept Mapping in Org

My notes directory contains hundreds of Org files that can be quickly retrieved via search using either Deft or The Silver Searcher. The challenge however is getting a sense of the bigger picture over time, and reminding myself of old projects that might be useful to review. I have found that Org-Brain is a great compliment to Deft. Org-brain is an Emacs package that integrates with org-mode to provide concept-mapping for your notes.

It would be nice to simply click on a debug message and have it open Emacs to the correct location in the corresponding file. There are a variety of ways to accomplish this, I chose to use terminal hyperlinks along with adding an Emacs URI protocol to my system.

## macOS URI Protocol Handler

Strangely over the past week I ran into the need for a URI protocol handler on three different occasions. Instead of looking for three separate existing handlers that might work, I decided to write a single generic handler. The solution is a simple URI protocol router that forwards requests to shell scripts that handle the protocol requests. Below I describe some of the details; you can also find the end result on github: uri-handler.

## Org Export Configurations

Emacs org mode offers a variety of export options that make it easy to look at your notes in different formats, or perhaps make them available for others to view. Three I use regularly are markdown, mindmap, and reveal presentation. My approach to Note Taking The best way to learn something is to sumarize the topic in your own words, in your own context, and present it to others with concrete examples. [Read More]

## Deft + Org for Notes

In the nvALT and Emacs post I described an integration between nvAlt and Emacs using Deft for markdown notes. I the past year I have moved to using Deft for org notes rather than markdown notes. The nice thing about combining Deft with Org is that your notes are indexed and easy to find using Deft, but also retain all of the power of Org to orgainize and present information. For example typing decision boundary into deft quickly cuts down hundreds of org text notes to the handful that contain the words decision and boundary in them.

## Org Mode ES2015+ Code Blocks (updated)

Babel 6x is a significant change from Babel 5x, as the cli is now a separate node module called babel-cli and transforms are now also delivered as separate packages. First make a few changes to the emacs environment so you can use JavaScript in org mode, as well as find local node.js modules you have installed. Replace ~/org/node_modules in the configuration below with the location of any local node modules you want to use. Using this approach you don't have to pollute the global node_module directory if you don't want to.

#+begin_src js :cmd "org-babel-node" :results output drawer
let arr = [1, 2];
let [x, y] = arr;

console.log(x);
console.log(y);
#+end_src

:RESULTS:
1
2
:END: