Skip to content

Instantly share code, notes, and snippets.

tap "homebrew/bundle"
tap "homebrew/cask"
tap "homebrew/core"
tap "homebrew/services"
brew "zsh"
brew "git"
brew "stow"
brew "z"
brew "tmux"
var inputs: string[] = readline().split(' ');
const width: number = parseInt(inputs[0]);
const height: number = parseInt(inputs[1]);
const playercount: number = parseInt(inputs[2]);
const foodcount: number = parseInt(inputs[3]);
const myid: number = parseInt(inputs[4]);
type Position = {
x: number,
y: number,
import { useEffect, useState, useCallback } from 'react';
import { useLatest } from './useLatest';
export function useClickOutsideComponent<T extends HTMLElement>(
callback: (event?: MouseEvent | TouchEvent) => void,
) {
const latestCallback = useLatest(callback);
const [domNode, setDomNode] = useState<T>();
const ref = useCallback((node: T | null) => {
@dagstuan
dagstuan / immutableInteropUtils.ts
Created April 30, 2020 08:16
Immutable interop utils
import produce from 'immer';
export function getIn<T>(
object: Record<string, unknown>,
keyOrKeyPath: string | string[] | number | symbol,
notSetValue: T,
): T;
export function getIn<T>(object: Array<unknown>, key: string | number): T;
export function getIn<T>(
object: Record<string, unknown>,
@dagstuan
dagstuan / keybase.md
Created September 18, 2019 05:02
keybase.md

Keybase proof

I hereby claim:

  • I am dagstuan on github.
  • I am dagstuan (https://keybase.io/dagstuan) on keybase.
  • I have a public key ASDaqym1wobjDRGYjCdstxowxZC0CE-XNhx08wAPliYlVAo

To claim this, I am signing this object:

import { useState, useEffect, RefObject } from 'react';
import ResizeObserver from 'resize-observer-polyfill';
export interface IDOMRectReadOnly {
readonly width: number;
readonly height: number;
readonly top: number;
readonly left: number;
readonly right: number;
readonly bottom: number;
@dagstuan
dagstuan / store.js
Last active September 7, 2018 11:39
Store with injectReducer
import { applyMiddleware, createStore, compose } from 'redux';
import thunkMiddleware from 'redux-thunk';
const middlewares = [thunkMiddleware];
let composeEnhancers = compose;
if (process.env.NODE_ENV !== 'production') {
/* eslint-disable no-underscore-dangle */
composeEnhancers =
window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || composeEnhancers;
@dagstuan
dagstuan / ValidateApiModelStateAttribute.cs
Created August 17, 2017 10:40
Validate model state and unflatten for use with redux-form.
using System;
using System.Collections.Generic;
using System.Dynamic;
using System.Linq;
using System.Text.RegularExpressions;
using System.Web.Http.Controllers;
using System.Web.Http.Filters;
using System.Web.Http.ModelBinding;
using CDNAdmin.Web.Exceptions;
@dagstuan
dagstuan / gist:04dea3bd84f8f55ae04d6a57f2bfc029
Last active March 22, 2017 13:12
Faggruppemøte performance

Performance

Agenda

  • How to write performant JS and CSS
  • How to measure performance in chrome
  • How to bundle in 2017 (webpack commonschunkplugin, code splitting etc.)
  • Workshop how to optimize JS performance
@dagstuan
dagstuan / selectAndSubscribe.ts
Last active September 9, 2016 06:21
selectAndSubscribe-decorator for ng2-redux
import { NgRedux } from 'ng2-redux';
import { ISubscription } from 'rxjs/Subscription';
export const selectAndSubscribe = <T>(
statePathOrFunc?: string |
(string | number)[] |
Function,
comparer?: (x: any, y: any) => boolean) => (target, key) => {
let bindingKey = statePathOrFunc;