Skip to content

Instantly share code, notes, and snippets.

View rradczewski's full-sized avatar

Raimo Radczewski rradczewski

View GitHub Profile
@rradczewski
rradczewski / bibtexlet.coffee
Last active December 17, 2015 15:08
Bib(La)Tex Bookmarklet - Creates a Bib(La)Tex Entry from Site Metadata
if (parts = document.title.split(///\s[-|–]\s///)).length == 2
title = parts[0]
author = parts[1]
else
title = document.title
author = (document.getElementsByName("author")[0])?.content || document.location.host.replace(/^((.+)\.)?([^\.]+\.[^\.]+)$/, '$3')
language = (document.getElementsByTagName("html")[0])?.lang || "en"
pad = ((num) -> if num < 10 then "0"+num else num)
date_part = (date) ->
salias () {
N=$1
F=$ZSH_CUSTOM/aliases.zsh
shift
egrep -v "^alias $N" $F > $F.new
mv $F.new $F
echo "alias $N=\"$*\"" >> $F
source $F
}
@rradczewski
rradczewski / decTime.js
Created October 28, 2015 21:34
Decadic Time Function
function decTime() {
var date = new Date();
var oldSeconds = date.getSeconds()+date.getMinutes()*60+date.getHours()*60*60+date.getMilliseconds()/1000;
oldSeconds = oldSeconds/(1-0.136);
var hours = Math.floor(oldSeconds / (100*100));
oldSeconds = oldSeconds % (100*100);
var minutes = Math.floor(oldSeconds / 100);
var seconds = oldSeconds % 100;
return hours+':'+minutes+':'+seconds;
@rradczewski
rradczewski / TextTestTest.java
Created January 21, 2016 14:39
Downloads (cached) and runs the GuildedRose TextTestFixtureTest(TestTestTest)
package com.gildedrose;
import org.junit.BeforeClass;
import org.junit.Test;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.nio.file.Files;
// snip for production
const store = createStore(thunk.withExtraArgument({fetch}));
// snip effect
import { createAction } from 'redux-actions';
const createEffect = (name, fun) => (...args) => dispatch => {
const action = createAction(name);
dispatch({ type: `${name}_STARTED` });
import chroma from 'chroma-js';
const cluster = (colors, centers) => {
const centerCounts = {};
for(let color of colors) {
let bestCenter = null;
let bestCenterDist = Number.MAX_VALUE;
for(let center in centers) {
const dist = chroma.distance(color, centers[center]);
if(dist < bestCenterDist) {
@rradczewski
rradczewski / events.ts
Created October 21, 2019 20:04
An almost-fully-typed redux-like projection lib
export type Event<T extends string, P> = {
type: T;
meta: {
time: string;
};
payload: P;
};
type EventCreator<T extends string, P> = (
payload: P,