Skip to content

Instantly share code, notes, and snippets.

View sillykelvin's full-sized avatar

Kelvin Hu sillykelvin

View GitHub Profile
@sillykelvin
sillykelvin / XIRR.js
Created October 10, 2019 11:07 — forked from ghalimi/XIRR.js
XIRR Function
// Copyright (c) 2012 Sutoiku, Inc. (MIT License)
// Some algorithms have been ported from Apache OpenOffice:
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
@sillykelvin
sillykelvin / tmux-dev.sh
Created October 9, 2017 08:35
A tmux script to restore work environment quickly after reboot
#!/bin/sh
tmux new-session -d -s dev -n fkgfw 'sslocal -v -c own.conf'
tmux new-window -n src -c '/data/project/src'
tmux new-window -n dist -c '/data/project/dist'
tmux new-window -n build -c '/data/project/src/build'
tmux new-window -n tmp -c '/home/kelvin/tmp'
tmux new-window -n vm1 'ssh ubuntu@192.168.2.101'
tmux new-window -n vm2 'ssh ubuntu@192.168.2.102'
@sillykelvin
sillykelvin / generic_dispatcher.cpp
Last active May 11, 2017 07:02
A callback dispatcher with generic types
#include <memory>
#include <iostream>
#include <unordered_map>
// this is useful when dealing with google protobuf messages, what
// you get in your message callback is a google::protobuf::Message
// type, however, what you need is a concrete type, something like
// LoginRequest/LoginResponse, so you have to do the following:
//
// const LoginRequest *req = static_cast<const LoginRequest*>(msg);
@sillykelvin
sillykelvin / heap_sort.cpp
Created December 23, 2014 12:36
C++ heap sort
#include <algorithm>
#include <iostream>
using namespace std;
#define ARR_LEN(arr) (sizeof(arr) / sizeof(arr[0]))
struct element {
int id;
int score;

tmux cheatsheet

As configured in my dotfiles.

start new:

tmux

start new with session name:

#!/usr/bin/python
# Quick and dirty demonstration of CVE-2014-0160 by Jared Stafford (jspenguin@jspenguin.org)
# The author disclaims copyright to this source code.
import sys
import struct
import socket
import time
import select
#ifndef DELEGATE_HPP_INCLUDED
#define DELEGATE_HPP_INCLUDED
#include <functional>
#include <vector>
// general case
template<typename R, typename... Args>
class delegate
{
@sillykelvin
sillykelvin / sohu_crawler.js
Last active August 9, 2016 08:37
A node.js script for sohu video downloading
#!/usr/bin/env node
var fs = require('fs');
var http = require('http');
var request = require('request');
var urlListFile = 'url.list';
if (!fs.existsSync(urlListFile)) {
@sillykelvin
sillykelvin / main.cpp
Last active December 29, 2015 14:49
Solve Monty Hall problem (AKA Three Door problem)
#include <iostream>
#include <random>
typedef std::mt19937 EngineType;
typedef std::uniform_int_distribution<std::mt19937::result_type> GeneratorType;
bool GetIt(EngineType& engine, const GeneratorType& generator3, bool change) {
int correct_door = generator3(engine);
int first_choice = generator3(engine);
@sillykelvin
sillykelvin / operator_overloading.cpp
Created November 19, 2013 16:22
The example of member access operator -> overloading.
#include <iostream>
struct Origin {
int a;
};
struct Wrapper {
Origin *orig;
Origin *operator->() const {
return orig;