Skip to content

Instantly share code, notes, and snippets.

"I'm in"

Jessica Kerr jessitron

"I'm in"
View GitHub Profile
jessitron / gist:9191499
Created Feb 24, 2014
StackOverflow in scalaz-stream. My trampoline is not bouncy enough
View gist:9191499
import Process._
import scalaz.concurrent.Task
import scala.concurrent.duration._
// git bisect identifies the offending commit as
object Test {
jessitron / gist:9644001
Created Mar 19, 2014
Akka testing: it's a good idea to tell your actor system to leave a dead top-level actor dead.
View gist:9644001
// In real life, it's great that stuff gets restarted when it fails.
// In testing, we'd rather know that it failed.
class DyingActor extends Actor {
def receive = { case "die" => throw new Exception("poo") }
// Default config, everything restarts automatically
val system = ActorSystem("ordinary")
View etaExpansionAndImplicits
scala> class Banana[P] {}
defined class Banana
// We will know when this gets called, when the banana is needed
scala> implicit def myBanana[P]: Banana[P] = { println("banana time"); new Banana[P] }
myBanana: [P]=> Banana[P]
// method with implicits
scala> def addWithBanana(one: Int)(two: Int)(implicit banana: Banana[Int]) = {println(banana); one + two}
jessitron / methodAsFunction
Last active Aug 29, 2015
JavaScript illustrates that methods are the same as functions with an implicit parameter "this"
View methodAsFunction
var completeSale = function(num) {
console.log("Sale " + num + ": selling " + this.items + " to " + this.customer);
var foo = {
customer: "Fred",
items: ["carrot","eggs"],
complete: completeSale
jessitron / threadingMacro
Last active Aug 29, 2015
The threading macro lets us define functions ABOUT data instead of making methods on classes, while still using a top-down ordering of code.
View threadingMacro
(defn addCustomer [sale, cust] (assoc sale :customer cust))
(defn addItems [sale, items] (assoc sale :items items))
(defn complete [sale, num] (println "Sale" num ": selling" (:items sale) "to" (:customer sale)))
(def sale { :store "Downtown" })
(-> sale
(addCustomer "Fred")
(addItems ["carrot", "eggs"])
(complete 100)
jessitron / main.log
Created Oct 14, 2014
random input file for demonstration
View main.log
== Summum Bonum, by Robert Browning ==
All the breath and the bloom of the year
In the bag of one bee
All the wonder and wealth of the mine
In the heart of one gem
In the core of one pearl all the shade
And the shine of the sea
Breath and bloom, shade and shine, wonder, wealth,
And how far above them
Truth that's brighter than gem
jessitron / idea
Last active Aug 29, 2015
The Empty Buffer, by @fogus
View idea
You're sitting there and
all the sudden something comes to you and everything stops
You look down at no point in particular
but then the music is thrumming in your ears and
you see these colors come at the edge of your vision
red and yellow and blue, focusing in on them
If you can't stop it because you don't want to lose it
and you know that there's something there
Your vision blurs a bit and it becomes
this blackness in front of you
jessitron / Box.elm
Created Jul 11, 2015
An Elm type error that took me for a while to understand
View Box.elm
module Box (Model, init, Action, update, view) where
import Html exposing (..)
import Html.Attributes exposing (style)
import Html.Events exposing (onClick)
type alias Model = ()
jessitron / Failure.elm
Created Aug 16, 2015
An Elm Error: declaring a type equal to another doesn't make sense
View Failure.elm
module Failure where
import InnerComponent
type InnerAction = InnerComponent.Action -- oops, meant type alias
type Action = Passthru InnerAction
jessitron / EffectsTest.elm
Last active Sep 22, 2015 — forked from urfolomeus/EffectsTest.elm
The send Task can turn into the NoOp effect
View EffectsTest.elm
module EffectsTest where
import Html exposing (..)
import Html.Events exposing (onClick)
import StartApp exposing (App)
import Task exposing (Task)
import Effects exposing (Effects, Never)