There're a lot of combinations to manage your email with emacs, but this works for me. I've a backup and I can manage my daily email.
The stack:
- emacs
- offlineimap
- mu
- mu4e
| Latency Comparison Numbers (~2012) | |
| ---------------------------------- | |
| L1 cache reference 0.5 ns | |
| Branch mispredict 5 ns | |
| L2 cache reference 7 ns 14x L1 cache | |
| Mutex lock/unlock 25 ns | |
| Main memory reference 100 ns 20x L2 cache, 200x L1 cache | |
| Compress 1K bytes with Zippy 3,000 ns 3 us | |
| Send 1K bytes over 1 Gbps network 10,000 ns 10 us | |
| Read 4K randomly from SSD* 150,000 ns 150 us ~1GB/sec SSD |
| (defproject gridsystem "0.1.0-SNAPSHOT" | |
| :dependencies [[org.clojure/clojure "1.5.1"] | |
| [compojure "1.1.5"] | |
| [garden "1.0.0-SNAPSHOT"] | |
| [ring/ring-jetty-adapter "0.2.5"] | |
| [hiccup "1.0.4"]] | |
| :plugins [[lein-ring "0.8.5"]] | |
| :ring {:handler semantic-gs.handler/app} | |
| :profiles | |
| {:dev {:dependencies [[ring-mock "0.1.5"]]}}) |
This section describes the conventions used here to describe type signatures.
A [T] is an array-like value (only ever used read-only in this API), i.e., one with an integer length and whose indexed properties from 0 to length - 1 are of type T.
A type T? should be read as T | undefined -- that is, an optional value that may be undefined.
| (ns reagent-test.core | |
| (:require [reagent.core :as reagent :refer [atom]] | |
| [datascript :as d] | |
| [cljs-uuid-utils :as uuid])) | |
| (enable-console-print!) | |
| (defn bind | |
| ([conn q] | |
| (bind conn q (atom nil))) |
(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
Simply put, destructuring in Clojure is a way extract values from a datastructure and bind them to symbols, without having to explicitly traverse the datstructure. It allows for elegant and concise Clojure code.
| (comment ; Fun with transducers, v2 | |
| ;; Still haven't found a brief + approachable overview of Clojure 1.7's new | |
| ;; transducers in the particular way I would have preferred myself - so here goes: | |
| ;;;; Definitions | |
| ;; Looking at the `reduce` docstring, we can define a 'reducing-fn' as: | |
| (fn reducing-fn ([]) ([accumulation next-input])) -> new-accumulation | |
| ;; (The `[]` arity is actually optional; it's only used when calling | |
| ;; `reduce` w/o an init-accumulator). |
| (defun custom-color--choose-action (widget &optional _event) ; this function is only needed if you want to use color-picker in Easy Customization | |
| "customize `widget-color--chose-action' to not split the screen" | |
| (list-colors-display | |
| nil nil | |
| `(lambda (color) | |
| (when (buffer-live-p ,(current-buffer)) | |
| (widget-value-set ',(widget-get widget :parent) color) | |
| (pop-to-buffer ,(current-buffer)))))) | |
| (defun nscolor2hex (color) |
#!/usr/bin/env bash
# Assuming OS X Yosemite 10.10.4
# Install XCode and command line tools
# See https://itunes.apple.com/us/app/xcode/id497799835?mt=12#
# See https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/xcode-select.1.html
xcode-select --install