- 博客(36)
- 收藏
- 关注
原创 机器学习方案落地8步曲
本文参考在线文章整理而成。对于机器学习的模型如何使用到实际场景,有8个步骤。一般而言,你需要定义需要解决的商业问题,确定哪些数据需要收集,判断最后输出结果如何衡量有效。然后你就可以执行这8步了。
2017-11-16 15:58:33
1509
原创 Hyperopt的使用
对于机器学习工程师,要选择使用的模型,也要调整各个模型的参数,才找到最好的匹配。即使模型还可以,如果它的参数设置不匹配,同样无法输出好的结果。 常用的调参方式有 grid search 和 random search ,grid search 是全空间扫描,所以比较慢,random search 虽然快,但可能错失空间上的一些重要的点,精度不够,于是,贝叶斯优化出现了。 hyperopt是一种通
2017-11-15 18:05:06
3530
原创 Jenkins 任务构建
Jenkins作为非常强大的日常任务管理系统,可以在产品的自动化测试,日常运维等中发挥作用,这里就简单说一下自己常用的Jenkins的几个功能和技巧。 任务构建参数任务构建自带的任务构建不能设置任务的参数,使用 Parameterized Trigger Plugin 可以解决该问题。多任务构建普通的多任务构建一般是在 post build action 里面做一些 Build other pro
2017-08-21 20:55:39
5565
原创 Python: 通过scikit-learn了解机器学习
在TensorFlow的Udacity课程学习中,牵涉到这个类库的大量使用,所以,先在youtube上做了个相关课程的补充学习。Supervised Learning(有监督学习)Machine Learning分为有监督学习与无监督学习,这个系列重在介绍有监督学习,即,通过告知算法有关Features和对应的输出Labels,然后当有新的feature数据时,做label预测。 环境搭建首选An
2017-01-12 11:22:16
3126
1
原创 Angular 2 中的 Output和Input的使用
Angular 2通过Component来作为一个subview来分隔显示的内容,比如一个类似于outlook的页面,左边一个导航栏,右边上面一个列表栏,下面一个详细信息显示,就是3个典型的 Component 的组合。 Component之间,必然会牵涉到某个Component中的操作,导致其他Component中的显示发送改变,那么,这些跨Component的操作是如何实现的呢? InputC
2016-12-27 18:25:24
7651
2
原创 Angular 2初体验杂感
参考官方文档编写了第一个angular 2的项目。使用的语言是 typescript,也属于第一次接触。 注意:刚看Angular 2一周不到,所写只是自己的体会,可能错。之前除用flask写过网页,无其他前端经验。对此文内容的正确性和准确性不保证。杂感:语法JavaScript类的语言,extension的特性非常强,这个与python不一样,有点类似swift,或者说,swift参考了Jav
2016-12-23 18:33:42
943
原创 使用locust做服务器压力测试
高并发的性能测试对于后台的压力性能测试,传统上有jmeter等工具。但这些工具并不能很好地回答一个问题,那就是,我们的服务器能同时支持多少个用户使用? 工具查看了这篇文章,首选locust,毕竟是python3支持。官方号称单个process可以模拟上千用户的同时操作,有用户提到,通过分布式的方法,模拟了200万用户。 我个人比较喜欢它的一个理念,qps不等同于同时在线用户数,因为用户可能会
2016-12-22 15:24:20
7660
原创 使用wechatpy解决多核情况下,token与ticket的刷新问题
在微信的后台开发中,采用了wechatpy这套框架,框架自身有针对token的刷新支持,但是可惜的是,它自己定义了MemoryStorage, 在多进程的环境下,由于是不同的实例,于是,会导致多个进程互相撕逼,刷新token。现在token的刷新调用次数限制在一天10万次,看似很多,如果客户端连接一多,很快就能用完。ticket的官方链接如下。 token的官方链接如下。解决方案的思路如下: 1
2016-10-31 11:36:24
2050
原创 微信开发过程中有关资金安全的一些想法
服务端的安全问题我自己定义3个级别,由低到高数据库被攻破,可以随便改数据(这边牵涉到只是普通账号还是root账号)源代码被泄漏,对方知道所有处理的逻辑以及数据库的组织形式服务器root被攻破,对方知道所有的配置文件信息以及敏感的签名文件 我现在想到了1和2的防御方式,但是想不到3,因为微信会提供一个签名文件,所有的转账通过该签名文件加密后,调用微信接口,向特定用户转账。所以,理论上,即服务
2016-10-31 11:35:21
865
原创 MySQL数据库无法通过 utf8mb4 连接的解决方式
环境:阿里云 centos 6.5 mysql 5.6 python 问题:通过uri里面设置 charset=utf8mb4 连接数据库时,发生问题 Character set ‘utf8mb4’ is not a compiled character set and is not specified in the ‘/path/mysql/charsets/Index.xml’ fi
2016-07-31 23:01:56
12065
原创 SQLALCHEMY 中查询一直返回空的问题
问题描述HabitQuestion表有个last_answer_time字段,默认是null,就是要做它的筛选过滤。 一开始使用代码如下:base_query = base_query.filter(HabitQuestion.last_answer_time.isnot(None)).order_by(HabitQuestion.last_answer_time.desc()))其中last_a
2016-07-16 19:54:03
4621
原创 virtualenv 在 mac下系统环境变量无法获取的问题
环境说明mac os, 开发的时候采用python 3.5, 因为系统自带python 2.7,所以用virtualenv / wrapper来切换。 情况代码中会获取环境变量,环境变量保存在.bash_profile中,采用os.environ.get(‘XXX’)在代码中 一直获取不到,返回None,在命令行下,用echo $XXX 却能看到环境变量的值。 同样的代码,在ubuntu的v
2016-07-12 11:14:09
2248
原创 SqlAlchmy Session的线程安全问题
代码码到一半,突然想到,Session是否是线程安全的?于是上官方文档,答案是否! 那问题来了,怎么破?因为它会牵涉到多线程情况下,调用rollback导致的不可预期影响。 官网给了两个方案: 使用 Contextual/Thread-local Sessions不用全局的,而是采用函数间传递的session变量明显,第一种方式对现在代码的改动最小,扩展性也更好。因为使用的flask-s
2016-07-09 11:08:08
4081
原创 Flask SqlAlchemy Enum 导致运行KeyError问题的解决方案
环境:ubuntu 14.04, python 3.5.1, flask 0.11.1, sqlalchemy 1.0.13, flash_sqlalchemy 2.1 在flask的启动过程中,发现问题
2016-07-07 14:15:48
4237
原创 基于微信的开发杂记
网上有些书,可以快速过一下,了解大致轮廓。因为微信SDK一直变化,看SDK更准确。SDK在这里 账号需要认证,微信提供的接口会更丰富。或者先用测试账号。如果对整体的流程没有感觉,可以先看网上有的教程: http://my.oschina.net/yangyanxing/blog/159215 http://www.cnblogs.com/weishun/p/weixin-publish-dev
2016-07-07 09:23:13
3844
原创 Android下几种网络库的对比
本文以道听途说(没有营养)的方式,列了一下Volley与Retroit的优劣。他们都可以和OkHTTP整合下载大文件。基本上,吐槽Volley的较多。Volley优点Volley拥有速度快,带缓存,网络请求可撤销的特点,从名字的意思(a number of bullets, arrows, or other projectiles discharged at one time)上看,就是一串子弹,所
2016-06-16 16:36:30
695
原创 MVP 模式初探
网上对应的逻辑介绍比较多,推荐以示例代码讨论更方便理解,以github上的示例项目 Androidmvp 为例,个人感觉就是面向接口编程,高度解耦,View与Model通过Presentor作为桥梁连接。View只负责展示,Model只负责后台处理并告知(通过回调)处理结果,Presentor在预先定义好的回调实现中,使用View的引用(该引用在Presentor的初始化时由View告知Presen
2016-05-18 17:17:34
805
原创 Module Thinking之多样性与创新
创新的几个方式团队的力量。 当碰到问题时,团队较之个人会有更多的维度来观察这个问题,不同的方式来探索这个问题,这就是多样性(Diversity)引来的创新。这种创新,能降低个人由于认知局限带来的陷入局部最优解(local optima)的陷阱。 最好的团队,需要不同的人有不同的关注点与探索方式,这样能产生更好的创新。但有两点需要需要共识: 团队的沟通是顺畅的对解决方案对效果评估有一致的标准
2016-04-12 00:25:34
408
原创 Model Thinkinng之Markov Process
当有限的状态之间可以随意迁移并有固定的概率,则可以无视系统一开始的状态,到达一个稳定的动态平衡状态。 比如说,系统有A,B两种状态,则有4种迁移的可能,A->A,A->B,B->A,B->B。则最后的稳定公式为 $$\[ \left( \begin{array}{cc}P_{AA} & P_{BA} \\P_{AB} & P_{BB} \end{array} \right)\] * \\\
2016-04-04 00:22:45
311
原创 Module Thinking之networks
networks,一般都会解释成人际关系网络。人际关系网络,就是人与人之间的关联情况的描述。对其结构,有四个描述维度
2016-03-28 07:46:36
372
原创 Module Thinking之路径依赖
路径依赖的核心就是,过去的选择影响现在。这与马尔科夫过程不一样,对于马尔科夫过程,过去对于最后的一致性状态并没有影响。 常见额路径依赖的例子,就是现在键盘键位设计,QWERT键位统治世界
2016-03-27 00:48:55
835
原创 python的unicode处理关系
本文主要参考网上文章 Python Unicode Objects 之前在编码上绕过些弯路,经常碰到illegal ASCII character一类的问题,就在这儿用图捋一下。
2016-03-21 12:14:13
431
原创 Model Thinking之 Lyaponuv
这个实际是一个单递增函数,不过,不能保证连续。定义如下: F(x), a Lyapunov function A1: has a maximum (or minimum) value A2: there is a > 0 such that .if xt+1≠xtx_{t+1} \neq x_t, maximum, F(xt+1)>F(xt)+aF(x_{t+1}
2016-03-20 23:53:52
404
原创 批量同步Gerrit Change的先后逻辑算法
做某个项目,会将开发提供的一堆gerrit change同步下来后,自动编译。 但一组gerrit change可能由于dependOn的问题,合理同步顺序不一定是开发的提交顺序。比如,存在提交 1 和提交 2,提交1依赖于提交2,那么,合理的下载顺序是,先下载提交2,再下载提交1。那如果开发需要编译的提交有十几个,怎么计算?
2016-03-18 19:09:46
795
原创 有关Monkey命令的两个隐藏选项
一般Android App的测试过程,常用的Monkey选项如同官网中所列,但如果看Monkey源代码或则通过 monkey –help,还是能找到一些有意思的东西。
2016-03-18 19:02:59
876
原创 Jenkins部署Windows UI自动化的调度权限问题
有兄弟团队用jenkins做任务调度,对Windows上的应用通过Sikuli测试,发现Sikuli的 App.Open 无法加载应用,问我是啥原因。 对于Jenkins和Sikuli,我都是新手,通过网上的各种查找,终于找到原因和解决方案。问题的原因挺简单的。这是Windows的一个安全机制导致。Jenkins把Windows作为一个node,部署了一个windows service在里面。平时
2016-03-18 18:56:10
1527
原创 python subprocess模块的shell参数问题
昨天调试其他同学的代码时,发现对于subprocess模块所传的args变量,与shell变量存在关联,传值不当会有各种问题。比较有趣,就记录一下。
2016-03-18 10:21:21
1349
原创 如何成为某一领域的高手 - 《万万没想到》
《万万没想到》 ,豆瓣评分8.5,算是好书一本了。里面文章各自独立,大多在我看来可以随便读读,除了《练习一万小时成天才》值得多读几遍。
2016-03-16 09:43:40
776
原创 MySQL timestamp 的一个坑
前段时间用数据库,发现mysql里面的timestamp数据总是自动更新,但是自己设置的时候并没有设成 on update有啥操作。 网上看到如下一段,谨记。 在CREATE TABLE语句中,第1个TIMESTAMP列可以用下面的任何一种方式声明: 1: 如果定义时DEFAULT CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP子句都有,
2016-03-08 14:59:23
1862
原创 离开微软这两年
在微软呆了6年不到,14年初的时候到了阿里,正好2年。 这2年使用工具的变化: * 从C#到Java到python,现在是python死忠,当然,有更优秀的语言出现的话,我还是可能改换门庭的 * 从word到markdown * 从Visual Studio 到 Eclipse 到 Jetbrain系列,最后非 vim 插件不写代码,会了vim,写代码速度或者refact的速度提高了不少
2016-03-08 14:56:19
408
原创 阿里云构建Jenkins服务[未完]
网上类似的文章也有,实际上,部署什么应用,最重要的就是上官网,这才是最权威的。博客,只是对官网遗漏的补充。 最重要的官网链接: https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu 环境:阿里云Unbuntu 14.04 64位
2016-03-08 14:50:25
1265
原创 Module Thinking之Tipping Point 和 经济增长模型
课程至今最喜欢的两段内容,故单独记录。 Tipping Point又称引爆点,如果是函数显示的话,这个点之后,函数发生了质变,且该点不可导!引爆点可能是积累的产物,也可能是环境变化引起。 Percolation Model (渗透模型)森林大火的模型,当森林覆盖率达到59.3%时,从森林一边烧到另一边概率开始非0 银行破产导致的连锁反应类似,这就是为什么救美林而抛弃雷曼兄弟的原因,银行
2016-03-08 14:13:10
845
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人