Skip to content

Instantly share code, notes, and snippets.

View jliuhtonen's full-sized avatar
🦡

Janne Liuhtonen jliuhtonen

🦡
  • Helsinki, Finland
  • 20:18 (UTC +03:00)
View GitHub Profile
@jliuhtonen
jliuhtonen / haskell-love.hs
Created September 15, 2014 18:38
Rakkauden fast track in Haskell
module Main where
import Data.Char (toLower)
import Data.Tuple (swap)
import Data.List (foldl')
import qualified Data.Set as Set
import Control.Monad (guard)
import System.IO
type Pair = (String, String)
@jliuhtonen
jliuhtonen / gist:58f0288a6f8712a4905b
Created January 9, 2015 13:34
Add classes to Jersey 2 HK2 injector with reflection
// Example of registering javax.injection annotated classes to Jersey 2's HK2 instance ServiceLocator
// Uses https://code.google.com/p/reflections/
public class RestApplication extends ResourceConfig {
@Inject
public RestApplication(ServiceLocator serviceLocator) {
packages("rest.resource");
ServiceLocatorUtilities.addClasses(serviceLocator, findServiceSingletons());
}
@jliuhtonen
jliuhtonen / OptionalResponseFilter.java
Created January 23, 2015 10:13
Convert empty Optional<T> to HTTP 204 No Content in Jersey 2
package my.rest.api
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.container.ContainerResponseContext;
import javax.ws.rs.container.ContainerResponseFilter;
import java.io.IOException;
import java.util.Optional;
public class OptionalResponseFilter implements ContainerResponseFilter {
print100' i
| i >= 100 = []
| otherwise = (100 - i) : print100' (i + 1)
print100 = mapM_ (putStrLn . show) $ print100' 0
@jliuhtonen
jliuhtonen / muhkeimmat.hs
Created June 11, 2015 07:17
Muhkeimmat sanaparit
module Main where
import Prelude hiding (mapM_)
import Data.List
import Data.Char
import Data.Foldable (mapM_)
import qualified Data.Set as S
import qualified Data.Tuple as T (swap)
characters = "abcdefghijklmnopqrstuvwxyzåäö"
@jliuhtonen
jliuhtonen / Reader.elm
Created April 13, 2016 17:53
Reader monad in Elm for fun and profit
module Reader where
type Reader ctx a = Reader (ctx -> a)
unit: a -> Reader any a
unit x =
Reader (\_ -> x)

Keybase proof

I hereby claim:

  • I am jliuhtonen on github.
  • I am jliuhtonen (https://keybase.io/jliuhtonen) on keybase.
  • I have a public key ASBc_WldAjBPWh0UVaLsxpk2MFvE59CCB5AohDrgiiBtcAo

To claim this, I am signing this object: