This gist shows how to create a GIF screencast using only free OS X tools: QuickTime, ffmpeg, and gifsicle.
To capture the video (filesize: 19MB), using the free "QuickTime Player" application:
| var msgs = cb().messages; | |
| var lim = 200 /* max of 200 entries in the backlog */; | |
| var arr = msgs.toArray().slice(0, msgs.size() - lim); | |
| _.each(arr, function(m) { | |
| $('div[data-eid='+m.get('eid')+']').remove(); | |
| msgs.remove(m); | |
| }) |
| ;; (require '[clojure.string :as str] '[clojure.java.shell :as shell] '[taoensso.timbre :as timbre]) | |
| (defn with-free-port! | |
| "Attempts to kill any current port-binding process, then repeatedly executes | |
| nullary `bind-port!-fn` (which must return logical true on successful | |
| binding). Returns the function's result when successful, else throws an | |
| exception. *nix only. | |
| This idea courtesy of Feng Shen, Ref. http://goo.gl/kEolu." | |
| [port bind-port!-fn & {:keys [max-attempts sleep-ms] |
| extern mod sync; | |
| // str op trait | |
| use std::str::StrSlice; | |
| // for tcp listen | |
| use std::io::{TcpListener, TcpStream}; | |
| use std::io::net::ip::SocketAddr; | |
| // for trait | |
| use std::io::{Listener, Writer, Acceptor, Buffer}; | |
| // for spawn |
A very brief guide to Rust syntax. It assumes you are already familiar with programming concepts.
This was written in 2014. It is not a good reference for Rust today, though the content is still correct.
cheats.rs looks like a good alternative.
... or Why Pipelining Is Not That Easy
Golang Concurrency Patterns for brave and smart.
By @kachayev
Generate a new Elixir project using mix and add cowboy and plug as dependencies in mix.exs:
defp deps do
[
{:cowboy, "~> 1.0.0"},
{:plug, "~> 0.8.1"}
]
endIt's now here, in The Programmer's Compendium. The content is the same as before, but being part of the compendium means that it's actively maintained.