Skip to content
View response.txt
HTTP/1.1 400 Bad Request
connection: close
server: Cowboy
date: Tue, 24 Nov 2015 20:24:58 GMT
content-length: 0

Using OTP's observer (appmon replacement) remotely

$ ssh remote-host "epmd -names"
epmd: up and running on port 4369 with data:
name some_node at port 58769

Note the running on port for epmd itself and the port of the node you're interested in debugging. Reconnect to the remote host with these ports forwarded:

$ ssh -L 4369:localhost:4369 -L 58769:localhost:58769 remote-host
View supervisor.ex
defmodule Delorean.RankingsShardRepository.RunningShard.Supervisor do
use Supervisor
def start_link(opts) do
Supervisor.start_link(__MODULE__, opts, [])
def start_shard(supervisor, shard_opts) do
Supervisor.start_child(supervisor, shard_opts)
View snapshot_repository_test.exs
defmodule MyApp.SnapshotRepositoryTest do
use ExUnit.Case, async: true
doctest MyApp.SnapshotRepository
alias MyApp.SnapshotRepository.SnapshotOptions
test "queries S3 with a prefix and returns the matched keys" do
options = %SnapshotOptions{ campaign_id: "prod.0.1", backend: "SomeBackend", cycle_type: "week" }
prefix = SnapshotOptions.to_key_prefix(options)
key_1 = "#{prefix}0/2013-03-19T15:04:50Z/mtoken.json.gz"
key_2 = "#{prefix}1/2013-03-19T15:04:50Z/mtoken.json.gz"
View parallel.ex
defmodule Delorean.Parallel do
def map(list, fun) do
|> -> Task.async(fn -> fun.(item) end) end)
View named_doubles.rb
# to get the name, you can use `instance_variable_get`:
tweet = double("Twitter::Tweet")
tweet.instance_variable_get(:@name) # => "Twitter::Tweet"
# that's clearly violating the public API, though. Another way is to pass it as a stub:
tweet = double("Twitter::Tweet", name: "Twitter::Tweet") # => "Twitter::Tweet"
# If you like that approach, you could create a new `named_double`
# helper method:
View sentence_spec.rb
class Sentence
def test(sen)
first = sen[0]
last = sen.split('').last
rest = sen[1..-1]
word_arr = sen.split
word_arr_len = word_arr.length
unless first == first.upcase then
puts "the first letter is not in uppercase"
View stack_overflow_debugger.rb
max_stack_frames = 500
TooManyStackFrames = do |tp|
if caller.size >= max_stack_frames
raise TooManyStackFrames, "Stack has exceeded #{max_stack_frames} frames"
View raise_error_spec.rb
RSpec::Matchers.define :an_exception_caused_by do |cause|
match do |exception|
cause === exception.cause
expect {
"foo".gsub # requires 2 args
rescue ArgumentError
View a_string_including.rb
expect {
expect(the_dbl).to have_received(:expected_method).with(:one).once
}.to raise_error(Expectations::ExpectationNotMetError,
a_string_including("expected: 1 time",
"received: 2 times"))
Something went wrong with that request. Please try again.