Skip to content

Instantly share code, notes, and snippets.

View smikhalevski's full-sized avatar

Savva Mikhalevski smikhalevski

View GitHub Profile
@smikhalevski
smikhalevski / Fc.ts
Created January 21, 2022 21:24
React inline functional component
import {createElement, Fragment, isValidElement, ReactElement, ReactNode, useCallback} from 'react';
export interface FcProps<P> {
render(props: P): ReactNode | null | void;
}
function Fc<P extends FcProps<P>>(props: P): ReactElement | null {
const v = useCallback(props.render, [])(props);
return v === undefined ? null : isValidElement(v) ? v : createElement(Fragment, null, v);
}
@smikhalevski
smikhalevski / bitwise-hacks.js
Created August 26, 2021 17:13 — forked from leodutra/bitwise-hacks.js
Fast Int Math + Bitwise Hacks For JavaScript
// http://michalbe.blogspot.com.br/2013/03/javascript-less-known-parts-bitwise.html
// http://jsperf.com/bitwise-vs-math-object
// http://united-coders.com/christian-harms/results-for-game-for-forfeits-and-the-winner-is/
// https://mudcu.be/journal/2011/11/bitwise-gems-and-other-optimizations/
// https://dreaminginjavascript.wordpress.com/2009/02/09/bitwise-byte-foolish/
// http://jsperf.com/math-min-max-vs-ternary-vs-if/24
"use strict";
var PI = Math.PI;
@smikhalevski
smikhalevski / utils.sh
Last active August 29, 2015 14:01
Handy bash utilities.
# Prints msec in format "[d days ]hh:mm:ss.SSS"
function format_duration #(msec=0)
{
local t=${1:-0}
local days=$((t/60/60/24))
[ $days -gt 0 ] && echo -ne "$days days "
printf "%d:%02d:%02d" $((t/60/60%24)) $((t/60%60)) $((t%60))
}
# Prints file permissions in decimal mode, ex. 755.