Skip to content

Instantly share code, notes, and snippets.

@et4te
et4te / generate_keys.rs
Created March 28, 2017 17:19
JWK Rust Simple RSA
#[macro_use] extern crate serde_derive;
extern crate rustc_serialize;
extern crate openssl;
extern crate dotenv;
extern crate serde;
extern crate serde_json;
use rustc_serialize::base64::{self, ToBase64};
use std::path::Path;
@et4te
et4te / rust-nightly.nix
Created December 11, 2015 17:47
Final variant
{ stdenv, lib, fetchzip, zlib }:
# rustc and cargo nightly binaries
let
target = if stdenv.system == "i686-linux"
then "i686-unknown-linux-gnu"
else if stdenv.system == "x86_64-linux"
then "x86_64-unknown-linux-gnu"
else if stdenv.system == "i686-darwin"
@et4te
et4te / rust-nightly.nix
Created December 11, 2015 17:30
This works because it downloads rust dist rather than rustc
{ stdenv, lib, fetchzip, zlib }:
# rustc and cargo nightly binaries
let
target = if stdenv.system == "i686-linux"
then "i686-unknown-linux-gnu"
else if stdenv.system == "x86_64-linux"
then "x86_64-unknown-linux-gnu"
else if stdenv.system == "i686-darwin"
@et4te
et4te / shell.nix
Created November 24, 2015 16:12
cabal2nix generated
{ mkDerivation, acid-state, aeson, base, base64-bytestring
, bytestring, conduit-extra, containers, diagrams
, diagrams-rasterific, directory, haskell-qrencode, heist
, JuicyPixels, lens, MonadCatchIO-transformers, mtl, Rasterific
, regex-tdfa, resourcet, safecopy, shell-conduit, snap, snap-core
, snap-loader-static, snap-server, snaplet-acid-state, snaplet-sass
, stdenv, text, time, uuid, xmlhtml
}:
mkDerivation {
pname = "packagename";
@et4te
et4te / shell.nix
Created November 24, 2015 15:48
deps don't get picked up by nix-shell
{ pkgs ? (import <nixpkgs> {}),
haskellPackages ? (import <nixpkgs> { }).haskellPackages,
stdenv ? (import <nixpkgs> { }).stdenv }:
let
inherit (haskellPackages)
base bytestring heist lens MonadCatchIO-transformers mtl snap
snap-core snap-loader-static snap-server text time xmlhtml
snaplet-sass snaplet-acid-state acid-state safecopy uuid
containers aeson base64-bytestring directory Rasterific
JuicyPixels haskell-qrencode regex-tdfa shell-conduit
@et4te
et4te / Final.hs
Created October 21, 2015 21:56
What was converged upon
-- qrcMapD :: Dynamic t [ImageInfo] -> Dynamic t (Map Int ImageInfo)
addQRCodeMapD <- mapDyn numberList qrcListD
-- eventMapD :: Dynamic t (Map String (Event t String))
rec eventMapD <- listWithKey updateMapD $ \k _ -> do
clickE <- bsButtonStatic "icon minus" "Delete"
return $ fmap (const k) clickE
-- eventListD :: Dynamic t [Event t String]
eventListD <- mapDyn Map.elems eventMapD
@et4te
et4te / Ticket.hs
Last active October 8, 2015 19:19
MonadState / MonadIO errors
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE MultiParamTypeClasses #-}
module Scorch.Acid.Ticket
(
Tickets
, Ticket
, allTicketBatches
, insertKey
@et4te
et4te / EndResult.hs
Created October 7, 2015 21:51
Working
templateRenderImages cnvRef qrcInfoD imgInfo = do
qrcInfo <- sample $ current qrcInfoD
imgRef <- liftIO $ canvasDisplay cnvRef imgInfo
qrcRef <- liftIO $ canvasDisplay cnvRef qrcInfo
liftIO $ canvasAddChild cnvRef imgRef
liftIO $ imageAddChild imgRef qrcRef
templateRenderCanvas tf cnvRef = do
baseImgD <- mkImageInfo (fileInfo tf) defaultImageInfo
@et4te
et4te / Sample.hs
Created October 7, 2015 21:14
Here the updated baseImgD in templateRenderCanvas will not fire
templateRenderImages cnvRef qrcInfoD imgInfo = do
qrcInfo <- sample $ current qrcInfoD
imgRef <- liftIO $ canvasDisplay cnvRef imgInfo
qrcRef <- liftIO $ canvasDisplay cnvRef qrcInfo
liftIO $ canvasAddChild cnvRef imgRef
liftIO $ imageAddChild imgRef qrcRef
templateRenderCanvas qrcInfoD baseImgD cnvRef = do
widgetHold (text "Creating base image ...") $ do
@et4te
et4te / Template.hs
Created October 7, 2015 20:17
Use of canvas
templateCanvas :: (MonadWidget t m) => TemplateForm t -> m ()
templateCanvas tf = do
baseImgD <- mkImageInfo (fileInfo tf) defaultImageInfo
qrcImgD <- mkQRImageInfo (updated baseImgD)
display baseImgD
display qrcImgD
-- Only ever fire cnvInfo once
cnvInfoE <- onceE $ tag (constant defaultCanvasInfo) (updated baseImgD)