Skip to content

Instantly share code, notes, and snippets.

@cuixin
cuixin / des.go
Last active Jul 26, 2022
des ecb mode in golang
View des.go
package main
import (
"bytes"
"crypto/des"
"errors"
)
func PKCS5Padding(ciphertext []byte, blockSize int) []byte {
padding := blockSize - len(ciphertext)%blockSize
@cuixin
cuixin / json_to_map.go
Created Oct 25, 2017
json to map[string]interface{} example in golang
View json_to_map.go
package main
import (
"encoding/json"
"fmt"
)
func dumpMap(space string, m map[string]interface{}) {
for k, v := range m {
if mv, ok := v.(map[string]interface{}); ok {
@cuixin
cuixin / csv.lua
Created Mar 14, 2013
Using lua to parse CSV file to a table.
View csv.lua
-- Using lua to parse CSV file to a table.
-- Notice: first line must be data description filed.
-- The separator is '|', change it if you want.
-- Usage: csv = require('csv')
-- tab = csv.load('test.csv', ',')
-- table.foreach(tab[1], print)
-- print(tab[1].you_field)
--encoding=utf-8
@cuixin
cuixin / lua_safe_random.lua
Created Jan 3, 2020
generate lua safe random numbers
View lua_safe_random.lua
for i = 1, 10000 do
local t = os.time()
local c = os.clock()
local seed = t + (c*1000000)
math.randomseed(seed)
print(t, c, seed, math.random(1, 2147483647))
end
@cuixin
cuixin / redis-migrate.sh
Created Dec 19, 2019 — forked from nicStuff/redis-migrate.sh
Comfort tool for migrating redis keys among instances. Supports KEYS syntax matching, authentication and TTL
View redis-migrate.sh
#!/bin/bash
######
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
# TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
# CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
######
@cuixin
cuixin / lua_match_pattern.lua
Created Aug 26, 2019
lua match pattern example.
View lua_match_pattern.lua
local Receiver = {} do
Receiver.__index = Receiver
function Receiver.new(t)
return setmetatable(t or {}, Receiver)
end
function Receiver:__newindex(k, v)
assert(type(v) == "function")
local curr = self
for comp in k:gmatch "(%w+)" do
@cuixin
cuixin / table_dump.lua
Last active Jul 17, 2019
lua table.dump to dump a whole table to print_r.
View table_dump.lua
local type = type
local tostring = tostring
local table = table
local table_insert = table.insert
local table_concat = table.concat
local pairs = pairs
return function(t, name, indent)
local table_list = {}
local function table_r(t, name, indent, full)
@cuixin
cuixin / MersenneTwister.cs
Created Aug 7, 2014
Mersenne Twister in c# & golang
View MersenneTwister.cs
using System;
public class MT19937
{
private const ulong N = 312;
private const ulong M = 156;
private const ulong MATRIX_A = 0xB5026F5AA96619E9L;
private const ulong UPPER_MASK = 0xFFFFFFFF80000000;
private const ulong LOWER_MASK = 0X7FFFFFFFUL;
private static ulong [] mt = new ulong[N+1];
@cuixin
cuixin / tinypng.sh
Created Jan 4, 2019
tinpng bash example
View tinypng.sh
#!/bin/bash
function tinypng() {
if [[ -z $APK_KEY ]]; then
echo "API_KEY not defined";
return 1;
fi
if [[ -z $1 ]]; then
echo "path is empty";
return 1;
fi
@cuixin
cuixin / nginx_proxy_by_query.conf
Last active Dec 28, 2018
nginx proxy_pass by query param(query url) example
View nginx_proxy_by_query.conf
events {
}
http {
server {
listen 80;
server_name localhost;
location / {
set $host_1 "http://127.0.0.1:8881";
set $host_2 "http://127.0.0.1:8882";