Skip to content

Instantly share code, notes, and snippets.

Welcome to the Thunder Dome

Frederik Krautwald Frikki

Welcome to the Thunder Dome
View GitHub Profile
briancavalier / lazy-pair.js
Last active Oct 12, 2017
Fun with a Lazy type and pairs
View lazy-pair.js
// Pair helpers
// Map the first element of a pair
const first = <A, B, C> (f: A => B, [a, c]: [A, C]): [B, C] =>
[f(a), c]
// Map the second element of a pair
const second = <A, B, C> (f: B => C, [a, b]: [A, B]): [A, C] =>
[a, f(b)]
briancavalier / except.js
Last active Sep 7, 2017
A simple Either with added exception semantics, like Haskell ExceptT
View except.js
// @flow
import { curry2, curry3 } from '@most/prelude'
export type Except<E, A> = Exception<E, A> | Result<E, A>
export const result = <E, A> (a: A): Except<E, A> =>
new Result(a)
export const throwError = <E, A> (e: E): Except<E, A> =>
new Exception(e)
RadValentin /
Last active Sep 8, 2022
Solve `yarn.lock` or `package.json` conflicts without losing your mind

NOTE: This guide is ONLY for devs who don't want to edit their yarn.lock file by hand. If you don't care about that please carry on.

So you've pulled the latest master

git checkout master
git pull
TylorS /
Last active Feb 26, 2017
The perfect functional web application language, according to me :)

Language Specification Wishes

The desire to create a new language has come from my own experiences in programming in a framework I’ve built, Motorcycle.js and the language TypeScript. Motorcycle is very similar to the more popular project Cycle.js. In my current place of employment we are building a rather large and complex application and we have felt the language barriers of ECMAScript and TypeScript much more than we have the programming patterns we have come to use.

This is, currently, a very informal and non-exhaustive list of things I wish a single programming language would have. This language would likely to be very opinionated, and geared towards functional and reactive web applications. In many ways, but not all, I’d like to see a language designed around the programming patterns of Cycle and Motorcycle.

I hope to develop this language in the future, unless someone else beats me to it! Following this is a

View togglOnTrello.user.js
// ==UserScript==
// @name Toggl on Trello
// @namespace
// @version 0.4
// @description Shows toggl entries that match C### where ### is the card number.
// @author
// @match*/*
// @match*/*
// @require
// @grant GM_setValue
wclr /
Last active Apr 6, 2018
A way to handle state in cycle.js

A way to handle state in cycle.js

Simple state management with xstream and ramda, in more transparent fashion than onionify

import * as R from 'ramda'

// first we create factory for making special state stream 
// that will hold our stream value and will be modified with supplied streams of reducers
type StateReducer<T> = (state: T) => T
View divs.js
h('div.container', [
h('label.nameLabel', 'Name:'),
h('input.myinput', {attributes: {type: 'text'}}),
h('h1.greeting', `Hello ${name}`)
// or
div('.container', [
kaosat-dev /
Last active Sep 29, 2015
Cycle.js tips & tricks

Cycle.js tips and tricks

Inline SVGs using JSX

inline svgs seem to have issues when using JSX syntax, so this is a possible workaround:

paulirish /
Last active Oct 4, 2022
What forces layout/reflow. The comprehensive list.

What forces layout / reflow

All of the below properties or methods, when requested/called in JavaScript, will trigger the browser to synchronously calculate the style and layout*. This is also called reflow or layout thrashing, and is common performance bottleneck.

Generally, all APIs that synchronously provide layout metrics will trigger forced reflow / layout. Read on for additional cases and details.

Element APIs

Getting box metrics
  • elem.offsetLeft, elem.offsetTop, elem.offsetWidth, elem.offsetHeight, elem.offsetParent
BenMorel / viewport-units-ios.scss
Last active Mar 11, 2022
SCSS mixin to support vh and vw units on all iOS Safari versions. Based on an idea by Patrick Burtchaell's:
View viewport-units-ios.scss
* Fix for vw, vh, vmin, vmax on iOS 7.
* This fix works by replacing viewport units with px values on known screen sizes.
* iPhone 6 and 6 Plus cannot run iOS 7, so are not targeted by this fix.
* Target devices running iOS 8+ will incidentally execute the media query,
* but this will still produce the expected result; so this is not a problem.