This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Dispatcher: | |
def __init__(self): | |
self.tasks = [] | |
def reg_task(self, t): | |
self.tasks.append(t) | |
def run(self): | |
while len(self.tasks): | |
for t in self.tasks: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
template <typename F> | |
struct curry_wrapped {}; | |
template <typename R> | |
struct curry_wrapped<std::function<R()>> { | |
std::function<R()> _f; | |
// Calling with no parameters ==> call original function directly | |
// 无参调用 ==> 直接调用原函数 | |
inline R operator()() { | |
return _f(); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python3 | |
import sys | |
import re | |
import json | |
import hashlib | |
import itertools | |
import binascii | |
LANGUAGES = ['zh_CN', 'en_US', ] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#ifndef UTIL_VARIANT_HPP | |
#define UTIL_VARIANT_HPP | |
#include <type_traits> | |
#include <memory> | |
#include <tuple> | |
#if __cplusplus >= 201703L | |
#include <variant> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// only works on linux | |
// c++17 standard required | |
// g++-8 -g -std=c++17 -Wl,-E foo.cpp -ldl | |
#include <any> | |
#include <cxxabi.h> | |
#include <dlfcn.h> | |
#include <functional> | |
#include <iostream> | |
#include <map> | |
#include <memory> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <map> | |
template <typename CT=char, typename=std::enable_if_t<std::is_same_v<CT,char>>> | |
class Printer { | |
private: | |
template<typename T> | |
class _has_to_string { | |
template<typename U> | |
static constexpr bool _help(decltype(&U::to_string)) noexcept { return true; } | |
template<typename U> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Define where to store the generated certs and metadata. | |
DIR="$(pwd)" | |
# Create the openssl configuration file. This is used for both generating | |
# the certificate as well as for specifying the extensions. It aims in favor | |
# of automation, so the DN is encoding and not prompted. | |
if [ ! -f "${DIR}/openssl.cnf" ]; then cat > "${DIR}/openssl.cnf" << EOF | |
[req] | |
default_bits = 2048 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from typing import Tuple, Callable, Dict, Set, List | |
from functools import reduce, wraps | |
SIZE = 5 | |
# Triangle shape, central symmetry | |
# 2 arbitrary axes determin a point | |
# but we need 3 axes to make it easier to detect boundary conditions | |
Point = Tuple[int, int, int] # type |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <iostream> | |
#include <type_traits> | |
#include <vector> | |
template <typename T> | |
using get_value_type = typename T::value_type; | |
std::vector<int> V; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const maxAlive = 7; | |
let idAcc = 0; | |
const idGenerator = () => { | |
return idAcc++; | |
}; // can be hashed, accumulator idGenerator is for convenience | |
let alives = []; | |
let nonemptyResolver = { resolve: () => {} }; | |
let nonemptyWaiter; | |
const results = []; |