K162.space

安装 OpenCV 3.2.0(WIN64 python3 环境)

更新时间:2017-05-25

目前,win64 python3 环境是无法直接安装 opencv 3.2.0 的;折腾一番,总算找到方法了,在此整理一下。

安装 opencv 3.2.0

  1. 安装 Microsoft Visual C++ 2015 Redistributable 根据自己的需求选择 32位 或者 64位

  2. 在 http://www.lfd.uci.edu/~gohlke/pythonlibs/ 下载三方已经编译好的 whl 安装包,根据自己的需求选择对应版本(如果下载到的是zip文件可直接修改后缀为whl):
    • Numpy是必须的,这里我用的是:numpy-1.13.0rc2+mkl-cp35-cp35m-win_amd64.whl
    • opencv:opencv_python-3.2.0-cp35-cp35m-win_amd64.whl
  3. 打开CMD命令行窗口,切换到下载目录(可以直接在下载目录按住shift+右键打开命令行窗口),执行pip安装
pip install numpy-1.13.0rc2+mkl-cp35-cp35m-win_amd64.whl
pip install opencv_python-3.2.0-cp35-cp35m-win_amd64.whl

以上就执行完毕了,可以打开python测试一下

import cv2
print(cv2.__version__)

以上。

附:anaconda 直接安装 opencv 3.1.0

目前使用 conda 可直接安装 3.1.0 版本:

conda install -c menpo opencv3

一行命令搞定。


参考资料:https://www.solarianprogrammer.com/2016/09/17/install-opencv-3-with-python-3-on-windows/

0 views |

读书笔记:怪物考

  • 注:本读书笔记仅摘录自己觉得有兴趣的知识点,若想系统性了解,推荐阅读原著

  • 承溜口(又称苋嘴)是滴水口,教堂的承溜口一般会雕刻各种造型 从承溜口的造型很多是诙谐不严肃的(露臀、生殖器),可见中世纪教堂是包容虔敬与诙谐的

  • 希腊-罗马传统: “人”型较多,希腊人希望以自己的形象去描述神话世界
  • 凯尔特与日耳曼传统: 凯尔特人对宗教仪式非常狂热,多见线条、藤曼缠绕末端出现人/动物脸(凯尔经) 凯尔特人是信仰泛神论,觉得自然界的万物没有明显的界限 日耳曼人原始野蛮,大致分为东日耳曼人和西日耳曼人两大族群

  • 各个文明之间的神谱是相互影响的,融合,通常会把性质接近的神替换成自己的名词
日耳曼条顿教的神 罗马名字 英文衍生单词
战神Tyr 马尔斯 Tuesday
智慧之神Odin 墨丘利 Wednesday
雷神Thor 赫拉克勒斯 Thursday
  • 凯尔经,即《凯尔特之书》(Book od Kells) 凯尔特、日耳曼这些游牧民族,侧重灵巧、敏捷,偏好流动的、线型的、抽象的图形 古日耳曼民族相信文字有神秘魔力,所以要将文字变为复杂的图案,来避免敌人破译获得魔力

  • 勒维亚坦、四巨兽,出自《圣经》

  • 人鱼:象征性吸引力、淫荡与肉体之罪
    1. 外形美丽(肉欲之罪)
    2. 歌声动听(感官之罪)
    3. 男性入睡后会将其杀害(劝告男人放弃肉欲的官能享乐)
  • 裂尾人鱼(实际应用比较能适应建筑的柱头):星巴克的LOGO

  • 哈比 Harpy:女首鸟身怪,象征掠夺,宙斯为了惩罚菲纽斯(预知未来),派Harpy掠夺他的事物

  • 狮鹫 Griffin:力大,对马有恶意,被传颂为看守宝藏的猛兽(同龙),多见纹章、族徽,象征警戒

  • 人马 Centaur:敏捷善射箭、凶暴 基龙(Chiron)有别于其他同类,人马星座的来源

  • 人兽杂交的怪物大多有贬义:拥有两个灵魂、犹豫不决

  • 曼帝可拉 Manticora:吃人怪兽,人脸、三层牙齿、有角/膜翅(恶魔象征)、狮身、有鳞片、尾带刺

  • 绿人 Green Man:树叶脸、通常三人一组出现、与树相关、罪人

  • 独角兽 Unicorn:敏捷、迅速、喜欢处女的香气

  • 龙 Dragon:古维京人喜欢在战船上雕刻龙头,威慑敌人;屠龙象征光明战胜黑暗

  • 不贞的妇人 Lustful Women:夏娃、肉欲之罪、常见裸露的女子与蛇、青蛙/蛤蟆一起出现

  • 怪人 Monstrous Races:胸前五官、吃腿狗头人、双眼长肩上、移动迅速、独眼、长下巴、拄拐人、四肢行走、后长脚 怪人指奇异的外族人,使人感到不安,指还未接受到基督的福音的地方。 十五世纪后,世上没有怪人成为普遍认知

    随想:现在我们想象各种奇异的外星人,也和十几世纪的人们一样吧,出于对未知的不安

名称 象征意义
蛇、爬虫兽 恶魔、诱惑、七原罪
蝙蝠 黑暗力量、路西法Lucifer
猫头鹰/蝙蝠 黑暗力量
恶龙 恶魔、邪恶力量
蝗虫 撒旦的帮手
青蛙/蛤蟆 邪恶与愤怒
贪婪/恶毒
撒旦(模仿人)
山羊 罪恶/低能感官(山羊角阳具崇拜)
  • 科林斯式柱头的植物是莨苕tiáo(acanthus)

  • 圣经四活物:天使、狮子、公牛、老鹰,脸+人身+牛蹄+翅膀

  • Devil:特指撒旦Satan,同义:路西弗Lucifer,Lucifer指堕落前的天使

  • demon:来源希腊文daimon,原意神,后贬为地狱里的小鬼

  • 嘉年华 Carnival 其实指的是基督教的“谢肉节”,怪物成为娱乐消遣,畸形身体等形形色色怪物出现

  • 吝啬鬼 Miser:犹太人、胸口挂个钱袋子

0 views |

反曲弓尺寸选择

  • 单位都是英寸

  • 通常弓把的长度是 25

  • 弓把范围有 23 ~ 27

  • 弓片的长度 一般是 68、70 这个长度是指安装到弓把后,弓的总长度

  • 关于弓整体的尺寸可以参考下表

弓片长度 弓把长度 总体弓长
68 25 68
68 27 70
70 25 70
70 27 72
0 views |

如何构建自己的密码

原理很重要,技巧是浮云,抛砖引玉,且看且思考。

一、为不同的账户类型制定不同的密码策略

1. 账户类型

首先我们可以很容易把账户分为两类:重要账户与一般账户。 分类是为了制定密码策略,因为这两类账户的密码需求是不一样的。 这个分类不绝对,可以自行斟酌,比如微博微信都可以放在重要类别。

  • 重要账户是指涉及个人重要隐私或者财产的: 银行、社保、支付宝、QQ、手机pin码…

  • 一般账户指各种论坛、社交媒体、产品使用授权等: 微博、微信、天涯、知乎、星巴克、路由器、WIFI、宽带…

2. 密码策略的基本原则

  • 不同账户采用不同密码 若密码相同,一个账户密码泄露了就要改所有账户的密码,显然是下下策。 目前个人密码最容易被泄露的一种情况是——撞库。简而言之,就是你注册了网站A,又注册了网站B,C… 结果 C 网站不幸有漏洞,被黑客收集了用户和密码信息,然后黑客就用这个去尝试登陆网站A,B,尝试批量登陆其他网站后,得到一系列可以登录的用户了。这类情况其实非常常见,必须谨慎对待

  • 越高的密码复杂度越安全 密码的复杂度并不是指密码看起来越长越无序越安全,而是指采用数字+字母+符号的组合形式,不要小看一个符号,这种混搭的形式将极大的提高破暴力解难度。暴力破解又叫做穷举法,是指一个个试密码,逐个推算直到找出真正的密码为止。例如一个已知是四位并且全部由数字组成的密码,其可能共有10000种组合,因此最多尝试9999次就能找到正确的密码。若加入符号,可以极大提高密码组合的可能,因此能有效防范暴力破解。通常来说,真正通过暴力破解来攻破个人密码的情况不多,但不管怎样,提高复杂度总是好的

  • 尽可能方便记忆 掐指一算自己注册的论坛就有十几个,可如果不同账户采用不同密码,怎么可能记得住这么多密码呢?别急,先仔细想想自己是不是真的需要记忆那么多密码。根据我们的账户类型,我们可以采用不同的密码储存方式,忘记密码这种事自然是不能忍的。

3. 重要账户的密码策略

这类账户的密码一般只允许使用数字,例如银行,支付宝,通常这类账户不担心被暴力破解,他们有防范机制,输错几次密码后便不能输入了。因此,密码复杂度不是第一位的。重要密码需要满足:

  • 便于记忆 心里熟记,同时写个小本放家里存着,以备不时之需

  • 没有明显规律 绝对不要用生日,111111,123456,000000 这类大众密码。 越无序越不容易被人猜到。当然还有绝对不要跟一般账户的密码相同,谨记不同账户采用不同密码的基本原则。

4. 一般账户的密码策略

这类账户其实我们经常会用到,但记忆其实不是第一位的,我们完全可以做一份密码表,需要的时候用下即可。一般这类账户的密码做到相对独立和高复杂度即可。关于密码表的安全性后面有详述。

  • 相互独立 前面已经提到,为防范撞库,这类账户密码要做到相互独立。

  • 复杂度高 网络账户容易被暴力破解,因此要复杂度越高越好

二、根据自己的策略进行密码构建与储存

绝佳的密码无外乎就是好记又不容易被人猜到,那如何做到呢?下面我就分享一些密码构建的技巧。

1. 如何提升复杂度与无序性

数字,字母,符号兼备。 对个别字母变形即可提高复杂度,很好记 比如我的名字 leeway 可以变形为 1EE^^@y 下表是可以参考的变形,当然自己可己设定自己的变形表。

原字符 变形
a @
e 3
d b
o 0
s $
t 7
x ><
v ^
z 2

通过这种字母与数字符号的互换,一串便于记忆的句子就能变成看似乱码的密码了:

password --> P@$$w0rd

这是种简便易行的方法。

2. 如何使密码相互独立

很多时候要使用某个app就要注册个账户,这个时候要临时想一个密码显然比较困难,如果单纯得采用 自己的常用密码+应用名称记号的组合形式是比较容易被人识破的,而且这些账户通常不重要,这种时候可以采用 UUID 。 UUID 叫做通用唯一识别码,只要理解成一串随机的字符就可以了,一般包含32个16进制数字,UUID 可以通过很多方法生成,比如这个网站 可以一次性生成很多UUID,需要的时候生成一个即可,随机生成的两个 UUID 重复的可能性极低,可以放心使用。那如何记忆这么多“乱码”呢?没事,请接着看。

3. 如何储存密码与记忆

很显然,密码的复杂度和可记忆程度是成反比的。毕竟不是最强大脑,要记忆住这么多相互独立的密码很困难,这时候就要使用一些工具和技巧了,这里重点讲讲密码表。

重要账户密码记小本,一般账户密码存可加密的网络笔记。

重要账户的密码一般复杂度不高,数量也不多,尽可能记心里,家里备个小本藏好。

  • 唐诗密码 唐诗密码是我在github看到的一个开源项目,其实这类方法就是指用一串好记的句子来联想出相关密码,跟前面提到的变换字符是一样的。这种密码随机性强,看不出特定规律,关键是非常好记。
2AYSTBZ QZ1GWC3
两岸猿声啼不住,轻舟已过万重山
  • 加密的在线笔记 一般账户我们就存加密笔记,你之需要记住两个密码就可以了,一个是笔记的登陆密码,一个是笔记的加密密码。目前市场上有不少网络笔记工具可以选择,这里不做推荐,大家可以自己找找。云端的笔记有个优点就是储存和输入方便,无论是手机和电脑都可以方便访问。 这时候你一定在想一个严肃的问题,要是我存密码的笔记被黑了怎么办,如果遇到黑客或者有权限的内部人员,岂不是把我给看光了?不妨学习下古人的技法。

  • 斯巴达密码 斯巴达密码也就是密码棒,是个可使的传递讯息字母顺序改变的工具,由一条加工过、且有夹带讯息的皮革绕在一个木棒所组成。在古希腊,文书记载着斯巴达人用此于军事上的讯息传递。简而言之就是只有根据规律选取特定位置的字符才是有效的,其他都是用来干扰的无效字符。

密文:KGAWIBRXLQOPLCSDKVRGIASDNGBHG
阅读规律:K GAW I BRX L QOP L CSD K VRG I ASD N GBH G
解密后的:K I L L K I N G
  • 衍生的方法 看完斯巴达密码是不是有种茅塞顿开的感觉?我在存云端的笔记时就会采用衍生的方法,由于只有自己知道有效的密文,因此就算笔记被人黑了也没关系。每个人可以自己想好自己的有效字符串,比如下面这几个账户,可能最后一串字符是有效,或者只有第三个字符是无效的,除了你自己,没人看得出规律。
知乎 5d37e74b-4f22-403a-a54f-e25b2e8bba91
果壳 fca63075-ecad-4214-8083-9e2bc2c12423
豆瓣 e6fb2d22-9bc0-4861-a72c-f6d8a866013d
简书 dea62500-fcf8-485f-937a-7f926d54a1ef

三、总结

  • 账户分类
  • 账户密码相互独立,忌讳一个密码对应多个账户——有效防止“撞库”
  • 通过替换字符来增加密码复杂度,最好大写、小写、数字、符号兼备
  • 重要账户密码记小本,靠脑袋记忆,可用“唐诗密码”
  • 一般账户存云端笔记,加密笔记再加密——采用“斯巴达密码”
  • 准备好一些随机密码备用,比如采用 UUID

最后写一下为什么我不用三方的密码管理工具,比如 KeePass、LastPass、1Password。原因无非是不方便与不信任,基于本地的密码管理工具不方便,云端跨平台的相当于把自己的密码都交给一家公司的服务器上,这让我更不放心。如果一家公司掌握了许许多多人的账户,难免会被成群的黑客惦记。

0 views |

利用 Vnstat 监控 VPS 流量

Vnstat: 简单实用的网络流量统计工具,优点是可以直接可以输出流量统计图。 我们可以利用这个工具来进行流量控制,对于采用流量计费的 vps,例如阿里云,万一哪天收到天价账单就亿脸懵逼了。 利用 Vnstat ,配合一些简单的脚本即可对 ss 流量进行预警——超出一定流量立即停止 ss 进程,这比搭建个 ss-panel 便捷多了;另外一定程度也能预防 cc 攻击带来的流量悲剧。

以下命令均为 debian 环境,其他系统请自行更改命令。

一、安装

apt-get install vnstat vnstati

初始化数据库,即对网卡进行操作

vnstat -u -i eth0

启动 daemon 进程

/etc/init.d/vnstat start

开机启动

insserv vnstat

二、操作

直接输入 vnstat ,或后面加相应的参数

vnstat -d #日流量信息
vnstat -m #月流量信息
vnstat -m -i eth1 #指定网卡为eth1
vnstat -l #实时监控状态
man vnstat #显示详细参数

#输出每月参数到文本
vnstat -m > /root/month.txt
#输出每月参数到图形
vnstati -i eth0 --months --output /root/month.png

三、流量控制

1. 目的

监控 VPS 流量,若超过 50G 则直接关闭 ss 服务

2. 思路

  1. vnstat 输出流量信息到文本
  2. 读取流量信息文件,判断若超出则停止 ss
  3. 以上写一个python程序,每隔半小时执行一次

3. 操作

直接撸代码,以下存为 txss.py

# -*- coding:utf-8 -*-
import os
import re
import time

# 流量数据写入文件
# 这里自己指定网卡,一般是 eth0,阿里云是 eth1
os.system("vnstat -m -i eth1 > /root/tx.txt")
time.sleep(1) # 保险起见延迟1秒,给予命令执行时间

# 获取当前月份
def get_now_month():
    now_month_num = time.strftime("%m")
    # 月份数字转英文
    num_to_en = {'01':'Jan','02':'Feb','03':'Mar','04':'Apr','05':'May','06':'Jun','07':'Jul','08':'Aug','09':'Sept','10':'Oct','11':'Nov','12':'Dec'}
    return num_to_en[now_month_num]

# 读取文件
f = []
for line in open("/root/tx.txt"):
    f.append(line),

# 定位到 tx 所在行
def ftext():
    for i in range(0,len(f)):
        if re.search(get_now_month(),f[i]):
            return f[i]

# 提取 tx 所在的字符位置
tx =  re.findall(r"\|(.*?)\|",ftext())[0]
if re.search(r"GiB",tx): # 若单位不是 GiB 就直接跳过
    #处理字符串得到具体的 tx 数值
    tx_data =  float(re.sub(r"\s","",tx)[:-3])
    #若大于 50G 直接关闭ss服务,并记录日志方便查看
    if tx_data > 50:
        os.system("/root/shadowsocks/stop.sh") #自行修改停止ss的命令
        os.system("date=`date +%Y-%m-%d_%H:%M:%S` && echo ${date}' 服务器出向流量已超过50G,自动关闭shadowsocks' >> /root/stopss.log")
    else:
        cmd = "date=`date +%Y-%m-%d_%H:%M:%S` && echo ${date}' 服务器当前已使用流量 "+str(tx_data)+" GiB' >> /root/stopss.log"
        os.system(cmd)
else:pass

编辑 cron 定时脚本

crontab -e

添加如下:

*/30 * * * * python /root/txss.py

搞定。

0 views |