Skip to content

Instantly share code, notes, and snippets.

Avatar
🚀
"I'm in"

Jessica Kerr jessitron

🚀
"I'm in"
View GitHub Profile
@jessitron
jessitron / gist:8376139
Created Jan 11, 2014
scala: print all URLs on classpath
View gist:8376139
def urlses(cl: ClassLoader): Array[java.net.URL] = cl match {
case null => Array()
case u: java.net.URLClassLoader => u.getURLs() ++ urlses(cl.getParent)
case _ => urlses(cl.getParent)
}
val urls = urlses(getClass.getClassLoader)
println(urls.filterNot(_.toString.contains("ivy")).mkString("\n")
@jessitron
jessitron / fix-stderr.ps1
Last active Mar 17, 2021
Unwrapping STDERR in Powershell
View fix-stderr.ps1
<#
.Synopsis
STDERR strings get wrapped in an ErrorRecord. Unwrap those back into strings.
#>
function Convert-StderrString {
# Why can this not be an advanced function with [CmdletBinding()] ?
# Somehow it doesn't work if I put that in.
@jessitron
jessitron / haskellyte.md
Created Aug 1, 2014
Gershom's Letter to a Young Haskell Enthusiast, condensed. I removed a lot of words, kept the themes, moved a few around a bit.
View haskellyte.md

Letter to a Young Haskell Enthusiast, by Gershom Bazerman.

Condensed from: http://comonad.com/reader/2014/letter-to-a-young-haskell-enthusiast/

The following letter is about tendencies that come with the flush of excitement of learning any new thing. It is written specifically, because if we don't talk specifics, the generalities make no sense. It is a letter full of things I want to remember.

You’ve entered the world of strongly typed functional programming, and it is great. You want to share the great things you’ve learned, and you want to slay all the false statements in the world.

@jessitron
jessitron / gist:8777503
Created Feb 3, 2014
The magic of blocking { ... } in Scala's global ExecutionContext: it leads to the creation of more threads, so the CPUs don't get bored
View gist:8777503
val des = scala.concurrent.ExecutionContext.global
import scala.concurrent._
import duration._
def ct = Thread.currentThread.getName
val n = Runtime.getRuntime.availableProcessors
def hogThread(sec:Int) = future {
@jessitron
jessitron / stayingDead.scala
Created Mar 19, 2014
Akka testing: it's a good idea to tell your actor system to leave a dead top-level actor dead. See: http://blog.jessitron.com/2014/03/testing-in-akka-sneaky-automatic.html
View stayingDead.scala
// In real life, it's great that stuff gets restarted when it fails.
// In testing, we'd rather know that it failed.
import akka.actor._
class DyingActor extends Actor {
def receive = { case "die" => throw new Exception("poo") }
}
// Default config, everything restarts automatically
val system = ActorSystem("ordinary")
@jessitron
jessitron / gist:e1a3fc188b63b5baf0817114731ea8cf
Created Mar 7, 2018
Atomist command to find out who is reviewing
View gist:e1a3fc188b63b5baf0817114731ea8cf
import { commandHandlerFrom } from "@atomist/automation-client/onCommand";
import { HandleCommand } from "@atomist/automation-client";
import { Parameters } from "@atomist/automation-client/decorators";
import * as _ from "lodash"
@Parameters()
export class WhoIsBusyParameters {
}
View readConfigUsingPromises.ts
function readConfig(): Promise<DeletionCriteria> {
return promisify(fs.readFile)("config/deletionCriteria.json", { encoding: "utf8" })
.then(configFileContent =>
JSON.parse(configFileContent));
}
@jessitron
jessitron / Condensed Letter to a Haskellyte
Last active Jan 31, 2017
Gershom's Letter to a Young Haskell Enthusiast, summarized. I removed a lot of words, kept the themes, moved a few around a bit.
View Condensed Letter to a Haskellyte
# Letter to a Young Haskell Enthusiast, by Gershom Bazerman.
Condensed from: http://comonad.com/reader/2014/letter-to-a-young-haskell-enthusiast/
The following letter is about tendencies that come with the flush of excitement of learning any new thing.
It is written specifically, because if we don't talk specifics, the generalities make no sense.
It is a letter full of things I want to remember.
You’ve entered the world of strongly typed functional programming, and it is great.
You want to share the great things you’ve learned, and you want to slay all the false statements in the world.
@jessitron
jessitron / Properties.elm
Created Apr 17, 2016
An Elm program using elm-check that is compatible with elm-test (the Node module)
View Properties.elm
module Main (..) where
import ElmTest
import Check exposing (Evidence, Claim, that, is, for)
import Check.Test
import Check.Producer as Producer
import List
import Signal exposing (Signal)
import Console exposing (IO)
import Task
View jquery-plugins.md

Writing jQuery Plugins for Fun and (non)Profit

We all love jQuery - it's easy, efficient, and there's tons of information online. But with that mass of information comes confusion: When you want to abstract some of your code into a plugin, how do you structure it? How do you take in options, and how can you be sure you haven't broken the way jQuery works? And when you're done, where do you put it and how do distribute it to the masses?

This talk will run through some of the basics and guide you in the right direction. In particular, we'll cover:

  • structuring your plugin code
  • making your code testable - and testing it!
  • tracking your code on github
  • getting your plugin on the jQuery site