Skip to content

Instantly share code, notes, and snippets.

ToJans / directus_extensions_endpoints_filestorage_index.js
Last active Oct 21, 2021
Quick hack: Redirect to asset by URL - Endpoint extension for
View directus_extensions_endpoints_filestorage_index.js
// Quick hack: Redirect to asset by URL - Endpoint extension for
// =========================================================================
// 2021 - ToJans - Public Domain
// *** Don't hold me liable if it breaks anything! Quick hack, might expose all your data!
// You can use this endpoint extension to access assets via the folder and file structure
// you used in the file module, so you don't need to reference assets by guid anymore.
View Chess.cs
using System;
using System.Collections.Generic;
using System.Linq;
Chess: potential moves etc by @ToJans
Spiked in a couple of hours of late-night code for a tweet by @gregyoung

The story behind Virtual Sales Lab

The initial seed of the idea

The initial spark for Virtual Sales Lab was conceived during a late-night dinner with one of my business mentors.

Margareta's The exquisit but now defunct restaurant Margaretha's in Oudenaarde/Belgium was where it all happened

View dotliquidproblem.cs
class MyConverter : Newtonsoft.Json.Converters.CustomCreationConverter<IDictionary<string, object>>
public override IDictionary<string, object> Create(Type objectType)
return new Dictionary<string, object>();
public override bool CanConvert(Type objectType)
// in addition to handling IDictionary<string, object>
View techradar virtual sales

A quick brain dump of the current techradar for Virtual Sales Lab


A gazillion things TBH....


  • Haskell
  • PureScript
ToJans / Tests.Veranda.fs
Last active Oct 20, 2016
canopy and fsharp to test the happy path for Virtual Sales Lab
View Tests.Veranda.fs
module Tests
open canopy
open Utils
open System
let veranda (rootPath) = (rootPath + ": Veranda") &&& fun () ->
let clickNext expected fn =
click ".verandawizard.selected input[type=submit]"
ToJans / interfaces.cs
Last active Oct 11, 2016
Functor, applicative and monad interfaces
View interfaces.cs
// In C# we can't enforce generic classes in interfaces, so we can't use interfaces to define the contract.
// I can only give examples of the minimal code it needs to implement.
class FunctorImpl<T> {
FunctorImpl<T> Pure(T val);
FunctorImpl<S> Apply<S>(Func<T, S> fn);
// Requirement: Pure(val).Apply(x=>x) == Pure(val)
class ApplicativeImpl<T> where {
ToJans /
Last active Dec 13, 2015
monads, applicatives, functors



A wrapper of type W that contains zero or more elements of type a.

c functionname(a,b)

A function named functionname that takes a value of type a, a value of type b and returns a value of type c.

ToJans / DB.hs
Last active Oct 21, 2015
How do I get this into a ServerT ?
View DB.hs
{-# LANGUAGE OverloadedStrings #-}
module Lib.DB(query_,query,execute_,execute,lastInsertRowId
import Control.Monad (liftM)
import Control.Monad.IO.Class (liftIO)
import Control.Monad.Reader (ReaderT (..), ask, runReader)
import Control.Monad.Trans.Class (lift)