随机字符串
```
func GeRnd() string {
// 生成一个自检验token
b := make([]byte, 8)
rand.Read(b)
code := 0
for _, item := range b {
code += int(item)
}
b = append(b, byte(code%256))
return fmt.Sprintf("%x", b)
}
func CheckRnd(rnd string) bool {
var b []byte
for i := 0; i < len(rnd); i += 2 {
tpstr := rnd[i : i+2]
n, _ := strconv.ParseUint(tpstr, 16, 32)
b = append(b, byte(n))
}
code := 0
for _, item := range b[:len(b)-1] {
code += int(item)
}
if code == 0 {
return false
}
if cod [查看更多...]

来自 大脸猫 发送于 2018-12-11 15:05 - 0 条评论

玩一玩,用来做函数式编程也挺好的。
main.go
```
package main
import (
"fmt"
"time"
"observable"
)
func main() {
arr := []string{
"hello",
"my",
"world",
"be",
}
ob := observable.
From(arr).
Filter(
func(i interface{}) bool {
return len(i.(string)) > 3
},
).
Map(
func(i interface{}) interface{} {
return i.(string) + "haha"
},
)
obs1 := observable.NewObserver(
func(i interface{}) {
fmt.Println("obs1 ", i)
},
)
o [查看更多...]

来自 大脸猫 发送于 2018-12-04 19:20 - 0 条评论

备份一下,免得不开心
{
"http.proxy": "http://127.0.0.1:1087",
"http.proxyStrictSSL": false,
"editor.fontSize": 19,
"workbench.colorTheme": "Forgive Green",
"window.zoomLevel": 0,
"editor.fontWeight": "600",
"editor.fontFamily": "Monaco,'Roboto Mono for Powerline'",
"files.exclude": {
"**/.git": true,
"**/.svn": true,
"**/.hg": true,
"**/CVS": true,
"**/.DS_Store": true,
"**/*.pyc": true,
"**/*.vscode": true,
}
}
[查看更多...]

来自 大脸猫 发送于 2018-12-04 11:45 - 0 条评论

有时,我们要修改本地时区。
比如部署leanote的时候,它不能手工设置时区。真是坑坑。
```
备份/etc/localtime
cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
```
现在,时区就被设置成中国时区了。
是不是很简单?
[查看更多...]

来自 大脸猪 发送于 2017-04-18 08:58 - 0 条评论

uuid 生成随机识别号
```python
import uuid
for i in range(0,10):
print "uuid is :"+ str(uuid.uuid4())
另一种实现python
import os
import base64
def GetRndStr():
rndByte = os.urandom(6)
b64Str = base64.urlsafe_b64encode(rndByte)
return b64Str
生成不重复随机序列python
import random
def get_rnd(max_size, counts):
basearr = [x for x in range(max_size)]
result = []
max_position = max_size - 1
while counts and max_position:
rnd_position = random.randint(0, max_position)
result.append(basearr[rnd_position])
basearr[rnd_position] = basearr[max_position]
max_position -= 1#br/ [查看更多...]

来自 大脸猫 发送于 2016-05-17 15:13 - 0 条评论

这是内容,这下不会忘记了吧。
超强音形ibus码表
yong-lin-2.3.0-3
erbi
超强二笔输入法x64
用主流输入法打二笔.rar
二笔词典
像我这种2B青年,当然有时记不住码,那就得查词典了。
附:码表
```
import codecs
import sys
argv = sys.argv
input_word = argv[1]
with codecs.open("/Users/yzh/workspace/py_test/erbi.txt") as f:
f_str = f.read()
获得所有词
f_str = f_str.split("\n")
ret = []
for line in f_str:
key = line.split(" ")[0].strip()
words = line.split(" ")[1].strip()
words = words.split(" ")
for word in words:
if word == input_word:
ret.append(key)
print(ret)
```
[查看更多...]

来自 大脸猫 发送于 2015-07-01 20:36 - 0 条评论

async
在python中,可以利用asyncio包异步处理IO等操作,极大的增加吞吐。
asyncio的底层依赖的是一个IOLoop。最简单的用法如下:
```
import asyncio
loop = asyncio.get_event_loop()
async def test():
print("test is run")
await asyncio.sleep(5)
print("test is run over")
for i in range(5):
loop.create_task(test())
loop.run_forever()
带async的函数是一个协程,可以随时调用create_task来将协程包装为任务。
await关键词顾名思义,就是async wait。它将异步化为同步。在同个协程中,await的上下文有序。也就是说,它会“阻塞”住当前协程(但不需要担心,其它协程还是会在loop下好好的运行),直到await后的协程返回结果。
单实例下一种常见的“错误”写法如下:
import asyncio
loop = asyncio.get_event_loop()
async def test():
print("test is run")
await asyncio.sleep(5) [查看更多...]

来自 大脸猫 发送于 2017-10-31 17:34 - 0 条评论