Skip to content

Instantly share code, notes, and snippets.

Paul Kinsky pkinsky

Block or report user

Report or block pkinsky

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View install-ghc.md

How to install latest GHC 7.8.4 + cabal 1.22 on intel edison w/ ubi linux

ghc

ubilinux prerequisites

# for untar later
apt-get install bzip2
# probably all needed
apt-get install freeglut3 freeglut3-dev -y
@pkinsky
pkinsky / throttle.scala
Created Dec 3, 2014
Throttle a flow using Akka Stream's new FlowGraph DSL
View throttle.scala
val rate = 200 millis
def throttled[T]: Flow[T, T] = {
val tickSource = TickSource(rate, rate, () => () )
val zip = Zip[T, Unit]
val in = UndefinedSource[T]
val out = UndefinedSink[T]
PartialFlowGraph{ implicit builder =>
import FlowGraphImplicits._
in ~> zip.left ~> Flow[(T,Unit)].map{ case (t, _) => t } ~> out
@pkinsky
pkinsky / Scala Trie
Last active Aug 29, 2015
Scala Trie
View Scala Trie
case class Trie(v: Option[String], m: Map[Char, Trie])
def addInner(t: Trie, s: List[Char], p: String): Trie = s match {
case c::cs => Trie(t.v, t.m.updated(c, addInner(t.m.getOrElse(c, Trie(Some(p + c), Map.empty)), cs, p + c) ))
case Nil => t
}
def add(t: Trie, s: String): Trie = addInner(t, s.toList, "")
def findInner(t: Trie, s: List[Char]): Option[String] = s match {
@pkinsky
pkinsky / f2048
Last active Aug 29, 2015
functional 2048
View f2048
//todo: use vector, scala 2:10 generic extractors. Currently using 2.9, so List has better pattern matching support
type Row = List[Option[Int]]
def shiftR(r: Row): Row = r.foldRight(Nil: Row){
case (None, acc) => acc
case (Some(x), Some(a)::as) if a == x => Some(a + x)::as
case (Some(x), acc) => Some(x)::acc
}.padTo(4, None)
You can’t perform that action at this time.