Skip to content

Instantly share code, notes, and snippets.

View y
(λ (f)
((λ (x) (f (x x)))
(λ (x) (f (x x)))))
adriancole /
Last active Jun 10, 2020
My ramble on OpenTracing (with a side of Zipkin)

I've had many people ask me questions about OpenTracing, often in relation to OpenZipkin. I've seen assertions about how it is vendor neutral and is the lock-in cure. This post is not a sanctioned, polished or otherwise muted view, rather what I personally think about what it is and is not, and what it helps and does not help with. Scroll to the very end if this is too long. Feel free to add a comment if I made any factual mistakes or you just want to add a comment.

So, what is OpenTracing?

OpenTracing is documentation and library interfaces for distributed tracing instrumentation. To be "OpenTracing" requires bundling its interfaces in your work, so that others can use it to time distributed operations with the same library.

So, who is it for?

OpenTracing interfaces are targeted to authors of instrumentation libraries, and those who want to collaborate with traces created by them. Ex something started a trace somewhere and I add a notable event to that trace. Structure logging was recently added to O

arrdem / rendering.clj
Last active Jan 1, 2017
Textual programs as views of ASTs.
View rendering.clj
;; I write
(ns foo)
(defn adds-one [x]
(+ x 1))
(def another-adds-one
(partial + 1))
;; SYMBOL TABLE (name -> UUID)
View spec-cfg.clj
;; warm up: balancing
=> (s/def ::balanced
(s/* (s/cat :open #{'<} :children ::balanced :close #{'>})))
=> (s/conform ::balanced '[< < > < > > < >])
[{:open <, :children [{:open <, :close >} {:open <, :close >}], :close >} {:open <, :close >}]
=> (s/conform ::balanced '[< < > < < > > > < >])
[{:open <, :children [{:open <, :close >} {:open <, :children [{:open <, :close >}], :close >}], :close >} {:open <, :close >}]
;; infix to prefix
View adts.rkt
#lang typed/racket/base
(require (for-syntax racket/base
#!/usr/bin/env python
TCP_IP = ''
TCP_PORT = 50001
import socket
import sys, time
def send(MESSAGE):
View free security

Simple Security Guidelines

Using an iDevice? (Best option)

  • Use an iPod or an iPad without a SIM card
  • Use an iPhone
  • Do not jailbreak
  • Always upgrade to new iOS versions
  • Use Brave browser

Need Secure chat?

henrik / reimplementing_plug_router.exs
Created Jun 10, 2015
Wanted to understand what Plug.Router does to get a "conn" available, so reimplemented it (without peeking).
View reimplementing_plug_router.exs
defmodule Toy.GetContext do
def send_resp(conn, code, text) do
IO.puts "Response! conn: #{conn}, code: #{code}, text: #{text}"
def conn do
"the conn"
gigamonkey / gist:03efdb275e487da37c59
Last active Aug 29, 2015
How to collaborate on technical problems
View gist:03efdb275e487da37c59

“[A] good problem description had to satisfy everyone. If two people saw a problem from a different point of view, both people’s points of view were merged into the problem description, making the problem more complicated, and making solutions sometimes harder to achieve. But this was essential to addressing porting problems, for example. One couldn’t just solve how a file system operation would work on one operating system unless the solution was going to work on other operating systems, too. On the other hand, the “proposal” field was very different. If two people disagreed on a proposal, they each wrote their own proposal so that proposals could be internally consistent and coherent. This meant that a single problem often had several proposed solutions with different costs and benefits, and the committee had to decide which was the stronger proposal.”


Fredrik Dyrkell
You can’t perform that action at this time.