Skip to content

Instantly share code, notes, and snippets.

View alanpeabody's full-sized avatar

Alan Peabody alanpeabody

View GitHub Profile
@alanpeabody
alanpeabody / timer.rb
Last active December 22, 2015 20:08
Time how long something take in ruby.
def time
start = Time.now
yield
stop = Time.now
stop - start
end
# Usage:
time { method_to_test }
@alanpeabody
alanpeabody / elixir.md
Last active December 20, 2015 20:29
Code Camp 2013 Proposal

An Elixir for the Web's Future

The web has evolved; has your tech stack?

The evolution of the web has been fueled by hacks, workarounds, and abuses. This evolution has spawned many tools and techniques along the way. This talk will reflect on the web's history and what it means for the web's future. Armed with this knowledge we will examine the functional programming language Elixir and how its philosophy so perfectly fits the future of the web. The technical part of the talk will examine the architecture and code of an example JavaScript (Backbone?) application using websockets for real time communication and collaboration with an Elixir backend.

Notes:

  • Discuss history and future of web:
@alanpeabody
alanpeabody / dynamo diff
Last active December 14, 2015 04:19
Dynamo validate path
diff --git a/lib/mix/tasks/dynamo.ex b/lib/mix/tasks/dynamo.ex [22/1920]
index b5a268d..8f41e37 100644
--- a/lib/mix/tasks/dynamo.ex
+++ b/lib/mix/tasks/dynamo.ex
@@ -40,9 +40,9 @@ defmodule Mix.Tasks.Dynamo do
[] ->
raise Mix.Error, message: "expected PATH to be given, please use `mix dynamo PATH`"
[path|_] ->
+ path = validate_path(path)
name = opts[:app] || Path.basename(Path.expand(path))
@alanpeabody
alanpeabody / stack.ex
Created February 17, 2013 04:26
Elixir stack trace - cowboy
=INFO REPORT==== 16-Feb-2013::23:23:18 ===
application: pascal
exited: {bad_return,
{{'Elixir-Pascal',start,[normal,[]]},
{'EXIT',
{undef,
[{cowboy_router,compile,
[[{'_',[{<<"/">>,'Elixir-Pascal-Handler',[]}]}]],
[]},
{'Elixir-Pascal',start,2,

(Breakfast) Tacos

This is really a two meal recipe, with my favorite the second meal - breakfast!

You can prepare the meat either on the gril or in a crock pot. If you prepare on the grill buy better steak.

Ingredients

  • Sweet Onion - Diced fine
  • Steak.
@alanpeabody
alanpeabody / railst
Created October 16, 2012 23:50
HackVT Rails Template
#!/bin/sh
# Use: Generate rails app from template in rvm gemset named after app.
# wget https://raw.github.com/gist/3902844/railst
# chmod +x railst
# ./railst appname
rvm use 1.9.3
rvm gemset create $1
rvm gemset use $1
@alanpeabody
alanpeabody / chef.clj
Created October 9, 2012 22:34
chef attributes explained via clojure
(let [env-attributes {:rabbit {:host "blah"}}
role-attributes {:rabbit {:host "blah2"}}
node-attributes {:rabbit {:host "blah3"}}]
(merge env-attributes role-attributes node-attributes))
@alanpeabody
alanpeabody / foosball.clj
Created January 12, 2012 18:32
foosball.clj
(defn modfive [number]
(= 0 (mod number 5)))
(defn modthree [number]
(= 0 (mod number 3)))
(defn foosball [number]
(if (modthree number)
(if (modfive number) "foosball" "foos")
(if (modfive number) "ball" number)))
@alanpeabody
alanpeabody / a_discussion.md
Last active August 29, 2015 14:26
JaSerializer Serialization Milestones

JaSerializer Roadmap

The initial release of JaSerializer successfully accomplishes it's mission; it serializes data to jsonapi.org format.

Roadmap:

  • Solidify/determine future of the DSL.
  • Better Ecto integration.
  • A Phoenix view integration.
@alanpeabody
alanpeabody / 0_README.md
Last active August 29, 2015 14:23
Relax DSL RFC

Relax DSL expansion.

Serialization has been moved to the JaSerializer library with the intent of improving the routing/resource DSL to provide more out of the box functionality.

Goals

  • Super easy to create simple jsonapi.org compliant RESTful APIs.
  • Standard Ecto models need little to no "wiring" to get working.
  • Improved DSL for working with non Ecto models (eg: Mnesia, ETS, Riak, etc)
  • Complete ability to override anything as needed.