Skip to content

Instantly share code, notes, and snippets.

View BlakeWilliams's full-sized avatar
💭
building things, probably

Blake Williams BlakeWilliams

💭
building things, probably
View GitHub Profile
[error] GenServer #PID<0.338.0> terminating
Last message: {:"$gen_cast", {:handle_in, "all", %{}, "60"}}
State: %Phoenix.Socket{assigns: %{}, authorized: false, channel: Constable.AnnouncementChannel, endpoint: Constable.Endpoint, joined: true, pubsub_server: Constable.PubSub, ref: "59", router: Constable.Router, topic: "announcement:all", transport: Phoenix.Transports.WebSocket, transport_pid: #PID<0.308.0>}
** (exit) an exception was raised:
** (RuntimeError) Channel replies can only be sent from a `handle_in/3` callback.
Use `push/3` to send an out-of-band message down the socket
(phoenix) lib/phoenix/channel/server.ex:99: Phoenix.Channel.Server.handle_result/2
(stdlib) gen_server.erl:593: :gen_server.try_dispatch/4
(stdlib) gen_server.erl:659: :gen_server.handle_msg/5
@BlakeWilliams
BlakeWilliams / gitconfig
Created March 13, 2015 18:37
Retro and standup git aliases
standup = log --since=yesterday --author=\"Blake Williams\"
retro = log --since='7 days ago' --author=\"Blake Williams\"

Elixir Channel UUID's

Elixir Channel's don't provide a way to associate a request with a response, which means it's not possible to reliably pair requests to responses.

The problem

I'm attempting to write an Ember-Data adapter for Phoenix websockets and Ember-Data is heavily built on promises and on a request/response lifecycle.

For example, when implementing the [find-all] function with the existing way channels are handled we run into a problem, find-all expects an array of records or a promise that will resolve into an array of records.

# Elixir Channel UUID's
Elixir Channel's don't provide a way to associate a request with a response, which means it's not possible to *reliably* pair requests to responses.
## The problem
I'm attempting to write an Ember-Data adapter for Phoenix websockets and Ember-Data is heavily built on promises and on a request/response lifecycle.
For example, when implementing the [find-all] function with the existing way channels are handled we run into a problem, `find-all` expects an array of records or a promise that will resolve into an array of records.
import Ember from 'ember';
import DS from 'ember-data';
export default DS.Adapter.extend({
defaultSerializer: "rest",
// for context, this requires a promise, or an array of records to be returned
// this is what I'd like to do:
findAll: function(store, type) {
return new Promise(function(resolve, reject) {
This file has been truncated, but you can view the full file.
Array<Int> primes = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,
! Base16 Wasteland
! Scheme: foobar
#define base00 #282828
#define base01 #32302f
#define base02 #3c3836
#define base03 #504945
#define base04 #665c54
#define base05 #d5c4a1
#define base06 #ebdbb2
# Stupid simple script for OS X that uses the terminal-notifier script to
# send notifications via Notification Center. It has literally 0 configuration.
def weechat_init
Weechat.register(
"terminal_notifier",
"Blake Williams",
"0.2",
"BSD",
"Use terminal-notifier for highlights",
@BlakeWilliams
BlakeWilliams / wasteland.yml
Created October 13, 2014 01:03
YAML for my custom colorscheme generated with base16. Based on Gruvbox
scheme: "Wasteland"
author: "foobar"
base00: "282828"
base01: "32302f"
base02: "3c3836"
base03: "504945"
base04: "665c54"
base05: "d5c4a1"
base06: "ebdbb2"
base07: "fdf4c1"
import System.Random
guessNumber :: Int -> IO ()
guessNumber answer = do
guess <- getLine
if read guess == answer
then putStrLn "You Win!"
else guessWrong answer (read guess)
guessWrong :: Int -> Int -> IO ()