编译guetzli

#1.下载并安装配置vcpkg
git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
bootstrap-vcpkg.bat
vcpkg integrate install
vcpkg install libpng

# 如果用CMake,记录下面的输出路径
CMake projects should use:
"-DCMAKE_TOOLCHAIN_FILE=D:/Build/vcpkg/scripts/buildsystems/vcpkg.cmake"

#2.下载guetzli
git clone https://github.com/google/guetzli.git

#3.用VS2017进行编译

#4.测试效果
整体上压缩比率还是很不错的,但这个压缩速度,还是放弃吧。

Update:
如果是图像压缩的话,现在webp格式还是很不错的,可以直接下载工具:
https://developers.google.com/speed/webp/download
https://chromium.googlesource.com/webm/libwebp/

Linux常用命令13文件查找

1、查找大于500M的文件

find . -type f -size +500M  -print0 | xargs -0 ls -l
find . -type f -size +500M  -print0 | xargs -0 du -h

2、统计文件个数

#统计文件夹下文件个数,包括子文件夹中的文件
ls -lR | grep "^-"| wc -l

#统计文件夹下文件夹个数,包括子文件夹中的文件夹
ls -lR | grep "^d"| wc -l

3、删除文件夹

find . -name __MACOSX | xargs rm -rf

利用Speech Recognition进行语音识别

首先说明一下,我用的是MacOS,多数命令Linux可用,但部分相关命令要进行调整。不建议用Windows。

1、安装环境

#安装pyaudio
brew install portaudio
pip install pyaudio

#安装Sphinx
pip install PocketSphinx

#安装tensorflow
pip install tensorflow

#安装SpeechRecognition
pip install SpeechRecognition

2、测试

#提示你进行语音输入
#默认用Google Speech Recognition
#所以需要梯子,才能用这个命令哦
python -m speech_recognition

3、建议大家看一下自带例子
https://github.com/Uberi/speech_recognition/tree/master/examples
这个库,可以支持多种语音引擎,只有PocketSphinx是离线的,其余都是在线的。
而PocketSphinx的识别率,实在是有些差,需要一些辅助才能达到较好的效果。

PS:
tensorflow需要2018年(3.8.1以后,不包括3.8.1)以后的版本才支持。

利用Face Recognition进行人脸识别

首先说明一下,我用的是MacOS,多数命令Linux可用,但部分相关命令要进行调整。不建议用Windows。

1、安装环境

#安装cmake
brew install cmake
#安装boost
brew install boost-python
#设置boost环境
export CMAKE_PREFIX_PATH="/usr/local:/usr/local/Cellar/boost/1.61.0:$PATH"
#安装pip
sudo easy_install pip
#安装fc
pip install face_recognition
#安装opencv
pip install opencv-python

2、测试

#将已知单人照片,放到iknow文件夹中,而且照片名称就是人名,比如zhangsan.jpg等
#将需要识别的照片,放到unknown文件夹中,照片可以是多人的
#tolerance是精确度,感觉默认的库是以欧美人标准进行训练的,不太适用于亚洲人,建议将tolerance设置到0.5-0.6之间
#命令行会通过iknow的照片,识别unknown中的图片,并输入每幅图片中有哪些人
face_recognition --tolerance 0.56 ./iknow/ ./unknown/

3、建议大家去看一下项目自带的example
https://github.com/ageitgey/face_recognition/tree/master/examples

4、建议大家去看一下作者写的文章,真的写的很通俗易懂
https://medium.com/@ageitgey

可能遇到的问题:
1、如果安装环境时,遇到下面的问题

OSError: [Errno 1] Operation not permitted: '/PATH/XXX-info'

解决步骤如下:
1.1、重启电脑,按command+R进入恢复模式
1.2、点击菜单【实用工具】,打开【终端】,输入csrutil disable,关闭System Integrity Protection
1.3、重启电脑,正常开机
1.4、打开【终端】输入csrutil status,验证配置已生效

如何通俗的解释MD5加盐

MD5自身是不可逆的,但是目前网路上有很多数据库支持反查询。如果用户密码数据库不小心被泄露黑客就可以通过反查询方式获得用户密码或者对于数据库中出现频率较高的hash码(即很多人使用的)进行暴力破解(因为它通常都是弱口令)。

盐值就是在密码hash过程中添加的额外的随机值,比如我的id是abc,密码是123456,存在数据库中的时候就可以对字符串123456idabc进行hash,而验证密码的时候也以字符串(要验证的密码)+idabc进行验证。

这样有另外一个用户密码是123456的时候,依然能构造出不同的hash值,并且能成功的验证,但这时候我的id就作为盐值为密码进行复杂hash了。

可见,盐值最大的作用之一就是减少数据库泄露带来的损失。

一对一会谈:清单对对碰



一对一会谈:清单对对碰

有关如何组织一对一会谈(即管理者与员工定期进行的面谈),比尔·坎贝尔曾经向我们推荐过一种比较独特的方法。管理者应当把最想在会谈中涉及的5件事写出来,员工也应该列一份这样的单子。把两张不同清单拿出来后,单子上十有八九会有几个条目是重复的。对于所有的一对一会谈而言,双方共同的目标都是为了解决问题,如果管理者和员工不能独立找出最需要两人共同解决的问题,那么摆在两人面前的问题就更不可忽视了。

除此之外,比尔还为我们推荐了一个好用的一对一会谈大纲,让我们在应用中受益匪浅。
1.工作表现
a.可以是销售数据
b.可以是产品交付情况或有关产品的重大进展
c.可以是消费者的意见或产品质量
d.可以是预算数目

2.与同事之间的关系(这对企业成员的团结一致非常关键)
a.产品人员和工程人员的关系
b.市场人员和产品人员的关系
c.销售人员和工程人员的关系

3.领导与管理
a.你有没有对你的人员起到指导和帮助的作用?
b.你有没有把“害群之马”清除出团队?
c.你有没有在人才招聘上下功夫?
d.你能否激励员工做出创举?

4.创新(最佳实践)
a.你是否一直在进步,是否一直思考着如何才能变得越来越好?
b.你是否经常对新的技术、新的产品及新的方案进行思考和评估?
c.你是否将业界或世界上最顶尖的人或企业作为对比标杆?

为何产品要聚焦用户

聚焦用户,赚钱便水到渠成。如果你的用户不是你的客户,而你的客户又不认同你“聚焦用户”的观念,那么就很难做到这一点。

谷歌于2012年收购摩托罗拉,而乔纳森最先参加的摩托罗拉会议之一,就是一场长达3个小时的产品评估会。

会上,摩托罗拉的经理把公司每一款机型的特征和功能展示了一遍。他们反复提及客户需求,实际上却与手机用户的真正需求相去甚远,因此他们的话乔纳森大多并不赞同。

在会后午餐时,一位摩托罗拉的高管告诉乔纳森,在摩托罗拉,“客户”所指的并不是手机使用者,而是指公司真正的客户,也就是威瑞森通信(Verizon)以及AT&T公司等手机运营商。

这些运营商并没有时时聚焦用户。摩托罗拉的焦点也没有放在用户身上,而是对准了合作伙伴。

而摩托罗拉的结果,你懂的。

为何技术人员要懂业务



为何技术人员要懂业务
By NEOHOPE

公司是脚,业务是穿鞋的场景,技术是鞋子。

先考虑技术,再考虑业务,往往会导致削足适履,让你怎么穿都别扭;
不考虑技术,只考虑业务,会导致打赤脚或穿草鞋,让你天天肉痛。
两者一起考虑,才能找到合适你的跑鞋、登山靴或轮滑。

不懂业务的技术人员,很难设计出一双适合用户的好鞋子;
不懂技术的业务人员,至少知道用户要一双什么样的鞋子。
所以,你不懂业务,技术再牛,也要听懂业务的。

一句话,除非你是搞理论研究或专业分工的,否则,脱离了业务说技术都在是耍流氓,脱离了业务谈架构同样是在耍流氓,脱离了业务天天扯一堆前沿名词就是大流氓。

工作笔记001

Hansen的工作笔记001

最近,根据工作安排的调整,参与了部分售前支持工作,发现了工作上的一些不足之处:
1、个人对公司产品的理解不够深入,对用户的最关心的痛点理解过于肤浅,对行业态势了解滞后,对竞争对手了解太少。
2、公司产品的相关文档太少,苦了售前、实施各位大哥大姐。
3、沟通时,技术性仍然太强。回想起来,用户、售前和销售人员居然表示可以理解,也太难为他们了。后面要做到,对方不懂技术,也可以讲明白。
4、有时候,过于急躁,看到自己写的“戒骄 戒躁 戒懒”的便利贴,还是脸红了一下。

改进措施:
1、多学习。就像前面和杨荣聊的,人懒了,放弃学习了,也就掉队了。你做软件,做不到35,除了自己谁也别怪,只能怪自己。
2、多沟通,多讨论。沟通和讨论,是一个很好的可以帮自己系统梳理思路的好方式,关键是不累心。
3、知识组成要多元化。团队成长到一定阶段,即需要专精人才,也需要综合性人才。要及时找到适合自己的路子。但即使你走专精的道路,也要让自己的知识构成多元化一些,才不至于闭门造车。
4、搭建了OpenKM,替代了没人用的Wiki。希望可以发挥一些作用。感谢陈燕婷的大力支持。
5、要逼着各位产品经理、技术经理补充缺失的文档。相信对他们也有很多好处。
6、加强个人非技术的沟通技巧,文档写的要让非开发人员可以读懂。

提高员工积极性的七个关键



提高员工积极性的七个关键
By 稻盛和夫

归纳一下,调动员工积极性的关键:
首先要把员工当作经营伙伴迎入公司;
要让员工从内心爱戴你、迷恋你;
要阐述工作的意义;
要树立高目标;
要确立具备大义名分的企业使命;
要不断讲述哲学;
以及经营者要提升自己的心性。

书中的另一种表述:
把员工当作经营伙伴,要去依靠他们
让员工爱戴你、迷恋你,要有领导气质
阐述工作的意义,让大家认可自己的工作
揭示高目标,让工作有挑战性
明确企业的使命,所有岗位都要揭示大义名分,让大家理解工作的意义
不断讲述哲学,让大家有凝聚力
提升自己的心性,企业才能进步

模拟京瓷的使命,我们公司的使命是:追求全体员工物质与精神两方面的幸福,为世界卫生事业进步发展做出贡献。