Skip to content

Instantly share code, notes, and snippets.

Dierk König Dierk

View GitHub Profile
@Dierk
Dierk / MultipleButtonsDemo.groovy
Created Jan 1, 2017
GroovyFX: factory methods for a composite view
View MultipleButtonsDemo.groovy
import static groovyx.javafx.GroovyFX.start
/**
Demo of using methods to create multiple nodes (here Buttons) as a composite view and use those
factory methods multiple times.
@author Dierk Koenig
*/
start {
sgb = delegate
@Dierk
Dierk / Ants.fr
Created Dec 8, 2016
AntHill simulation using Frege STM
View Ants.fr
module Ants where
import STM
import Control.Concurrent (forkIO, forkOS)
import Data.List (!!, nub, sortBy)
import System.Random
@Dierk
Dierk / Counter.tsx
Last active Dec 3, 2016
A graphical multiplication table in Typescript/React. See live at https://dierk.github.io/tryPux/beautifulMathInTS/index.html
View Counter.tsx
import * as React from "react";
export interface HelloProps { compiler: string; framework: string; }
export interface HelloState { slices: number; table: number }
export class Hello extends React.Component<HelloProps, HelloState> {
constructor(props: HelloProps) {
super(props);
this.state = { slices:10, table:2 }
@Dierk
Dierk / Counter.elm
Last active Dec 1, 2016
A graphical multiplication table written in elm (see Counter.purs for the same in purescript). Live: https://dierk.github.io/tryPux/beautifulMathInElm/index.html
View Counter.elm
import Html exposing (Html, button, div, text)
import Html.App as App
import Html.Events exposing (onClick)
import Svg exposing (svg, circle, line)
import Svg.Attributes exposing (..)
import List exposing (map, (::))
main =
App.beginnerProgram { model = state, view = view, update = update }
@Dierk
Dierk / Counter.purs
Last active Nov 26, 2016
A graphical multiplication table written in PureScript/Pux, try at https://dierk.github.io/tryPux/beautifulMath/index.html
View Counter.purs
module App.Counter where
import Prelude (($), (+), (-), (*), (/), (>), const, show)
import Data.Array ((..), (:), mapWithIndex)
import Data.Int (toNumber, floor)
import Math (sin, cos, pi )
import Pux.Html (Html, div, span, button, text, canvas, svg, circle, line )
import Pux.Html.Attributes (width, height, viewBox, cx, cy, r, fill, x1, y1, x2, y2, stroke, strokeWidth)
import Pux.Html.Events (onClick)
@Dierk
Dierk / Main.purs
Created Nov 14, 2016
Monoidal Fizzbuzz in Purescript
View Main.purs
module Main where
import Control.Monad.Eff.Console (log)
import Data.List.Lazy (take, zipWith, fromFoldable, cycle, iterate, foldr)
import Data.Monoid (mempty, (<>))
import Data.Maybe (Maybe(..), fromMaybe)
import Prelude ( show, map, ($), (+))
main = do
View Iterate.groovy
// Haskell-style iterate function in Groovy
Closure iterate(def value, Closure nextValue) {
return { value = nextValue value }
}
// use for iteration
def iter = iterate(0) { it + 1}
@Dierk
Dierk / RNG.java
Last active Mar 22, 2016
adding numbers one to ten can easily lead to random results when done in parallel
View RNG.java
import java.util.Optional;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Supplier;
import java.util.stream.Stream;
public class RNG {
static Supplier<Integer> countGen(AtomicInteger i) {
return (()-> i.getAndIncrement());
}
@Dierk
Dierk / SillyClock.fr
Created Feb 4, 2016
A silly clock using Frege STM
View SillyClock.fr
module SillyClock where
import STM
import Control.Concurrent
type Counter = TVar Int
newCounter :: STM Counter
newCounter = TVar.new 0
@Dierk
Dierk / ParallelStreamTest.java
Created Aug 17, 2015
an impure parallel stream that should only map but actually serves as random number generator
View ParallelStreamTest.java
import java.util.*;
import java.util.function.*;
import java.util.stream.*;
public class ParallelStreamTest {
static class IntGenerator implements Supplier<Integer> {
private int current = 0;
You can’t perform that action at this time.