Skip to content

Instantly share code, notes, and snippets.

View abcdabcd987's full-sized avatar
😄
( ´ ▽ ` )ノ

Lequn Chen abcdabcd987

😄
( ´ ▽ ` )ノ
View GitHub Profile
def flatEnumerate(obj, prefix='root'):
if isinstance(obj, int):
return [{ prefix: obj }]
elif isinstance(obj, list):
res = []
for option in obj:
res.extend(flatEnumerate(option, prefix))
return res
elif isinstance(obj, dict):
if len(obj) == 0: return [{}]
@abcdabcd987
abcdabcd987 / chess_sample_ai.cc
Last active November 28, 2015 14:41
Sample AI for Programming Fall 2015
#include <ctime>
#include <cstdlib>
#include <vector>
#include <string>
#include <iostream>
#include <algorithm>
using namespace std;
const int H = 4;
const int W = 8;
@abcdabcd987
abcdabcd987 / calc_password.js
Created September 25, 2015 06:59
using pbkdf2 to hash password (node.js)
// See: http://stackoverflow.com/questions/17218089/salt-and-hash-using-pbkdf2
// See: https://crackstation.net/hashing-security.htm
'use strict';
let Promise = require('bluebird');
let crypto = require('crypto');
function calcPassword(password) {
const RANDOM_BYTES = 64;
#include <vector>
/**
Given an non-decreasing ordered array `arr`, search the biggest `i` that makes `arr[i] == value`.
If `i` doesn't exist, return -1
*/
int search_last_match(const std::vector<int>& arr, const int value)
{
int lef = 0, rig = static_cast<int>(arr.size());
while (rig-lef > 1)
/*
* GET message listing => show()
* POST meaasge posting => send()
*/
var settings = require('../settings');
var group = require('../models/group');
var mesg = require('../models/mesg');
var md = require('markdown').markdown.toHTML;