Skip to content

Instantly share code, notes, and snippets.

@nemisj
nemisj / .tigrc
Created December 11, 2020 13:07
simple tig config with tig-theme
source ~/.tig/tig-theme
bind main R !git rebase -i %(commit)^ --autosquash
bind diff R !git rebase -i %(commit)^ --autosquash
@nemisj
nemisj / tig-theme
Created December 11, 2020 13:04
Theme for tig, a bit better than default
# vim: set expandtab sw=4 tabstop=4:
# *color* 'area' 'fgcolor' 'bgcolor' '[attributes]'
# general
color default 15 235
color cursor 15 241
color title-focus 242 221
color title-blur 242 221
color delimiter 213 default
color author 156 default
'use strict';
const parse = require('json-safe-parse');
module.exports = (str) => {
let json = str;
if (typeof str === 'string') {
const toParse = str.trim();
if (toParse !== '') {
@nemisj
nemisj / keybase.md
Created September 27, 2016 12:47
keybase.md

Keybase proof

I hereby claim:

  • I am nemisj on github.
  • I am maksnemisj (https://keybase.io/maksnemisj) on keybase.
  • I have a public key whose fingerprint is BFC7 DC90 68C6 9FE4 862F 5642 3E55 5364 7EBD C494

To claim this, I am signing this object:

@nemisj
nemisj / no-strict.js
Last active August 24, 2016 12:18
Const implementations in node.js
/*
node: v4.4.7 - MMMM
node: v5.12.0 - MMMM
node: v6.3.1 - Maks
*/
const s = 'Maks';
for (var i = 0;i < s.length; i++) {
const ch = s.charAt(i);
console.log('ch:' + ch);
const createMockActionContext = require('fluxible/utils').createMockActionContext;
module.exports = function (opts, contextMethods) {
const mockContext = createMockActionContext(opts);
const dispatcher = mockContext.dispatcherContext.dispatcher;
mockContext.dispatcherContext = dispatcher.createContext(contextMethods);
return mockContext;
}
@nemisj
nemisj / git-remove-stale
Last active September 10, 2015 13:00
Remove branches which are no more on remote
#!/usr/bin/env python
import subprocess
import re
import argparse
parser = argparse.ArgumentParser(description="Remove local branches, which are no longer available in the remote")
parser.add_argument("--do-it", action='store_true', help="Remove branches")
parser.add_argument("--remote", default="origin", help="Remote name")
args = parser.parse_args()
@nemisj
nemisj / promise-some.js
Last active August 29, 2015 14:23
promise-some
function someAsPromise(arr, cb) {
var index = -1;
var run = function () {
index++;
if (index < arr.length) {
return cb(arr[index]).then(function (val) {
if (val === true) {
return true;
} else {
@nemisj
nemisj / post-css-index.js
Last active August 29, 2015 14:22
Diff between async and yield-yield versions of postcss-cli
function processCSS(processor, input, output, fn) {
function doProcess(css, fn) {
function onResult(result) {
if (typeof result.warnings === 'function') {
result.warnings().forEach(console.error);
}
fn(null, result.css);
}
@nemisj
nemisj / bitwise.js
Created May 13, 2015 10:11
How to do bitwise AND in javascript on variables that are longer than 32 bit
// taken from http://stackoverflow.com/questions/3637702/how-to-do-bitwise-and-in-javascript-on-variables-that-are-longer-than-32-bit
function BitwiseAndLarge(val1, val2) {
var shift = 0, result = 0;
var mask = ~((~0) << 30); // Gives us a bit mask like 01111..1 (30 ones)
var divisor = 1 << 30; // To work with the bit mask, we need to clear bits at a time
while( (val1 != 0) && (val2 != 0) ) {
var rs = (mask & val1) & (mask & val2);
val1 = Math.floor(val1 / divisor); // val1 >>> 30
val2 = Math.floor(val2 / divisor); // val2 >>> 30