Skip to content

Instantly share code, notes, and snippets.

@pnck
pnck / ch_encoding_one_shot.py
Last active January 9, 2018 02:40
Chinese encodeing problem one shot
#!/usr/bin/env python3
#encoding:utf8
# NOTE: only sovle problems with text file that has been aready encoded into utf8
# NOTE: may lead to wrong result if the file contains nothing corrupted
import sys
way1 = lambda s: s.encode('latin1').decode('gbk')
way2 = lambda s: s.encode('gbk').decode('utf8').encode('latin1').decode('gbk')
@pnck
pnck / peano.cpp
Last active March 21, 2018 05:21
peano plus
#include <stdio.h>
#include <functional>
struct zero;
template <typename V>
struct signtype
{
using value = typename signtype<V>::value;
};
@pnck
pnck / fb_scrshot.py
Created April 8, 2018 06:23
capture screen from /dev/fb0
#!/usr/bin/python2
FBIOGET_VSCREENINFO = 0x4600
FBIOPUT_VSCREENINFO = 0x4601
FBIOGET_FSCREENINFO = 0x4602
FBIOGETCMAP = 0x4604
FBIOPUTCMAP = 0x4605
FBIOPAN_DISPLAY = 0x4606
BI_BITFIELDS = 3
BI_RAW = 0
@pnck
pnck / convert_uyvy.py
Created April 8, 2018 06:26
convert raw uyvy data captured by v4l2 devices to rgb bitmap file
#!/usr/bin/python2
import numpy as np
import cv2
import sys
import os
if len(sys.argv) < 2:
print 'nope ...\nusage:'+sys.argv[0]+' file_name\n\n'
@pnck
pnck / unescap.cpp
Created September 12, 2018 12:59
unescape cstring
inline uint8_t lookup_escape_char(char c) {
switch (c) {
case '\'':
return '\'';
case '"':
return '"';
case '?':
return '?';
case '\\':
return '\\';
@pnck
pnck / member_pointer.cpp
Last active September 18, 2018 07:36
使用成员指针和闭包任意连接调用链
template <typename C, typename... P>
void connect(std::function<void()> &trigger, C *instance,
void (C::*member_ptr)(P...), P... params) {
trigger = [=]() {
trigger();
(instance->*member_ptr)(params...);
};
}
struct A {
@pnck
pnck / ipv6-httpd.py
Last active November 9, 2018 03:58 — forked from akorobov/ipv6-httpd.py
quick ipv6 http server using python's SimpleHttpServer
import http.server
from http.server import SimpleHTTPRequestHandler
import socketserver
import socket
import sys
class MyHandler(SimpleHTTPRequestHandler):
def do_GET(self):
if self.path == '/__ip__':
self.send_response(200)
@pnck
pnck / feature_trait.cpp
Last active November 20, 2018 12:15
test feature trait
//
// Created by pnck on 2018/11/19.
//
#include <type_traits>
#include <iostream>
#include <functional>
#include <random>
#include <list>
#include <deque>
#include <iostream>
#include <utility>
#include <type_traits>
template<typename T>
struct comparable {
virtual const T value() const = 0;
};
template<typename T>
@pnck
pnck / static_set.hpp
Created December 15, 2018 10:38
a compile-time set type with elements unique check
#include <tuple>
using ElementType = size_t;
template<ElementType ... es>
class SetValidator {
protected:
static inline constexpr auto cs_ = std::make_tuple(es...);
template<size_t _i, size_t _j>
static constexpr bool cmp_() {