Skip to content

Instantly share code, notes, and snippets.

View jamesthompson's full-sized avatar

James Thompson jamesthompson

View GitHub Profile
@jamesthompson
jamesthompson / JavaFXImageConversion.java
Created August 13, 2012 21:03
JavaFX Image from a byte array
import javafx.scene.image.Image;
import javax.imageio.ImageIO;
import java.awt.image.*;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
public Image getJavaFXImage(byte[] rawPixels, int width, int height) {
ByteArrayOutputStream out = new ByteArrayOutputStream();
try {
ImageIO.write((RenderedImage) createBufferedImage(rawPixels, width, height), "png", out);
@jamesthompson
jamesthompson / install-stack-raspbian.sh
Created February 1, 2017 16:46
A script to install stack on Raspbian
#!/bin/sh
set +ex
# A script to install stack on Raspbian
# Use stack installer script to install stack
curl -sSL https://get.haskellstack.org/ | sh
# Use apt-get to install llvm
@jamesthompson
jamesthompson / Pubsub.hs
Created December 1, 2020 16:03
Example pub/sub grpc interface with fused-effects
{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE InstanceSigs #-}
{-# LANGUAGE KindSignatures #-}
@jamesthompson
jamesthompson / GetRedis.scala
Created March 18, 2014 16:17
Get all keys and values from Redis
using: "net.debasishg" %% "redisclient" % "2.11"
// GetRedis.apply will print out all the keys and values in a csv list
object GetRedis {
import com.redis.{RedisClient, RedisClientPool}
def apply = {
val rcp = new RedisClientPool(
sys.env.getOrElse("REDIS_HOST", "localhost"),
6379
)
@jamesthompson
jamesthompson / Clean.scala
Created July 17, 2012 21:53
CLEAN algorithm Implemented in Scala
package CLEAN
import scalala.tensor.dense.{DenseMatrix => Image}
import collection.mutable.ArrayBuffer
/**
* Clean class implemented in Scala
* Author: James R. Thompson, D.Phil
* Date: 7/16/12
* Time: 9:31 AM
@jamesthompson
jamesthompson / keybase.md
Created February 15, 2017 20:22
keybase proof

Keybase proof

I hereby claim:

  • I am jamesthompson on github.
  • I am james_rth (https://keybase.io/james_rth) on keybase.
  • I have a public key ASDoRfTsm8xenyyW3WnK2OabszUxiN4gGDNit_NJtwfUsgo

To claim this, I am signing this object:

@jamesthompson
jamesthompson / sbt.sublime-build
Created October 1, 2012 17:23
Sublime sbt build settings
{
"cmd": ["/Users/James/Documents/Code/sbt/bin/sbt -no-colors compile run"],
"file_regex": "^\\[error\\] ([.a-zA-Z0-9/-]+[.]scala):([0-9]+):",
"selector": "source.scala",
"working_dir": "${project_path:${folder}}",
"shell": "true"
}
@jamesthompson
jamesthompson / GenericGogolDatastore.hs
Last active August 31, 2016 11:37
Gogol Datastore Generic Record Serializer
{-# LANGUAGE DefaultSignatures #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE TupleSections #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
@jamesthompson
jamesthompson / Triangle2.hs
Created August 30, 2016 12:42
Triangle string with alternating 0 and 1 characters
import Data.List (intersperse)
import Data.Monoid (mconcat)
triangleIO :: IO ()
triangleIO = putStrLn triangle
triangle :: String
triangle = mconcat . intersperse "\n" . fmap (intersperse ' ') $ cycle ['0']
where cycle x = x : (cycle x >>= growOne)
growOne (x:z) = [opp x:x:z]
@jamesthompson
jamesthompson / Triangle.hs
Last active August 29, 2016 20:18
Triangle 0 1 printing with comonadic stream
import Control.Comonad (extract, (<<=), (=>>))
import Control.Monad (void)
import Data.Functor (fmap)
import Data.List (intersperse)
import Data.List.NonEmpty (NonEmpty, toList, (<|))
import Data.Monoid (mconcat)
import Data.Traversable (traverse)
import Prelude (IO, Int, String, drop, id, mod, otherwise,
putStrLn, take, undefined, ($), (.), (==))