一种被动的评估HTTP连接速度的方法

本文编译自Can you GET Me Now? Estimating the Time-to-First-Byte of HTTP Transactions with Passive Measurements, Internet Measurement Conference, 2012. HTTP连接的延时是用户体验质量的重要组成部分,因此对于移动网络的运营商来说,也是非常感兴趣的工作。现有的监控方法都需要主动的使用探针或是被动的预测RTT(Round Trip Latency),然而,在实际中,使用主动探针来监控整个移动网络是不太具有实践可能的(性能损耗太大),并且RTT是HTTP延时中唯一的因素,因此也不太可能使用传统的预测方法来进行预测。本文提出了一种被动评估HTTP连接速度的方法,这种方法克服了前述方法的缺点。

Product

用助理君来监控TensorFlow的训练过程

曾经有过不少使用itchat等个人微信号机器人来实现监控TensorFlow训练过程的文章。前段时间传出微信要关闭网页接口的消息,故而想到把它接入在助理君服务号里,通过服务号来监控TensorFlow的训练进度。 关注并登录助理君。在助理君微信公众号内回复: secret 即可获取你的私人密钥。将密钥输入在这里即可。 在右侧的选项中,选择SDK这一选项。输入频道名称。点击下一步,再下一步,到获取二维码页面即可。 之后即可拿到二维码,扫码即可订阅这一频道: 之后,在我们的TensorFlow运行环境上安装wxpusher,使用pip install wxpusher即可安装。 在训练的文件中,从wxpush中引入pusher的对象。 from wxpush import pusher p = pusher.Pusher('channelId','channelTitle')

SPDY到底有多快?

SPDY是什么? SPDY是谷歌在2009年为了提高页面加载速度而提出和部署的一个针对HTTP消息的新传输方式,即是对HTTP协议的增强。SPDY增加一个SPDY会话层,用于数据流的多路复用、Web对象的请求优先级和主动推送、HTTP报头压缩等一系列新的功能。 SPDY很快就成为了Web一个重要的协议,一些著名的网站诸如谷歌,Facebook、Twitter都已经部署了SPDY,还有Google Chrome、Chromium已经支持SPDY,Mozilla Firefox自11.0开始内嵌支持SPDY,从Firefox 13开始默认开启对SPDY的支持。值得一提的是IETF对谷歌提出的SPDY协议进行了标准化,于2015年5推出了基于SPDY协议的 HTTP 2.0 协议标准(简称HTTP/2),因此上述的浏览器或Web服务器可能已经放弃对SPDY协议的支持,转而支持HTTP/2。 SPDY的特征 1)单一TCP连接:

龙妈专属决策树 | 原来她最大的王牌不是龙

看着高庭养殖场上漫山遍野吃草的羊和漫山遍野抓羊吃的龙,丹妮莉丝想起多年前在多斯拉克草海上被马王驾驭的那个下午。 当时的她心中虽有收复故土的想法,却没有丝毫的战争和执政经验。自己能够在这些起起落落的事件中苟活,她最感谢的就是乔治·R·R·马丁的不杀之恩。 可是马丁老爷子还没写到第六卷,电视剧已经拍到了第八季,接下来的路要怎么走,全都看自己的决策了。 史塔克家有心树,坦格利安家有决策树。 开始分析的分割线 乍一看,龙妈好像开了主角光环,任何危机在她面前都可以被化解。 有时候,“不焚者”这个称号可使人臣服。 有时候,仅仅美貌就是敌军倒戈的理由。 更何况她还有开挂的三条龙。 但是龙妈也做过很多很糟糕的决定。 轻信他人,失去了自己腹中胎儿。 战略部署失败,占领了无用的凯岩城,失去了富庶的高庭。 对夜王不甚了解贸然骑龙救人,使得韦赛里昂被射中死亡。

Web Program

跟我一起来实现一个ORM

最近在做Tech Builds的新闻页的时候,用到了很多爬虫方面的技术。虽说在爬虫方面已经有较为完善的Scrapy等框架可供调用,但是还是希望自己从头来完成一个这样的爬虫框架,在使用上希望尽可能简单。 恰好之前有个同学刚刚也在写一个爬虫,问到我怎么写模型比较好,那个时候我都是用SQLAlchemy来实现ORM的。这次也找机会自己实现一个,算是填上了当初数据库作业的坑。 我们要实现的大概是这样的一个功能,当我们编写如下的代码: class Article(Model): link=Column('link') title=Column('title') source=Column('source') keyword=Column('keyword') def __init__(self): pass def

React-Native之单向数据流设计

何为Redux React是一种建立用户界面的框架,在React中,每一个UI元素被认为是一个“组件”,组件之间嵌套组合,就形成了一个组件树。数据在这个组件树中单向流动,即上层组件可以向下层组件传递数据,而下层组件不能向上层组件传递数据,兄弟组件之间也不能。但我们希望,数据能够自由地流通,这要怎么办呢?有几种方式都可以来实现: 上层组件向下层组件传递一个回调函数,下层组件调用回调函数来修改上层组件的值。 下层组件发布一个订阅来通知上层组件更新数据。 Facebook提出了flux的模式,如果说React是MVC中V的部分,那么Flux就可以被认为是M和C的部分。稍后我们也会简单地介绍一下flux。 一些其他的方式,如Redux(其实是Flux的简化版)。 何为Flux 前两种形式在小应用中是比较多见的。而随着项目越来越大,回调函数或是事件会越来越多,会给管理带来很大的麻烦。Flux通过一个更加抽象的单向数据流来解决组件树中数据流动的问题。 当有Web请求或是用户的操作时,通过ActionCreator创建一个Action,

Machine Learning

Naive的贝叶斯说红楼梦后40回不是曹雪芹写的

最近刚刚开始看《机器学习实战》,有讲到用朴素贝叶斯方法分辨普通邮件和垃圾邮件。 朴素贝叶斯算法的理论基础来自于贝叶斯公式: 知道B条件下A发生的概率、B发生的概率、A发生的概率,就可以求出A条件下是B的概率。 以分辨垃圾邮件为例,知道垃圾邮件中出现垃圾词的概率p(A|B),收到垃圾邮件的概率p(B),收到的邮件中有垃圾词的概率p(A),就可以求出收到的有垃圾词的邮件属于垃圾邮件的概率p(B|A)。 不得不说原来我大二学的概率论还有点用。 准备数据:从文本中构建词向量。我手头正好有刘慈欣、韩松、马伯庸、迟卉的中短篇小说集,利用jieba模块分词处理后创建词向量。 测试算法:按理说结果应该分成 True positive/ False Postive/

赤壁 | 混淆矩阵 | Rock on Chibi

混淆矩阵 在诸葛亮答应周瑜三天之内能借来十万之箭的晚上,看着黄月英,他的思绪混淆。 有些事情,是非常复杂的。诸葛亮心里想。超新星的爆炸,黑洞的坍缩是一回事,黄月英与小乔又是另一回事,而借箭一事勉强可以算作前者。 前两天夜观天象,他的心里已有了八分把握,见到了鲁肃,要到了船,事情便成了。他记得周瑜的怀疑、迷惑、好奇、得意。这些情绪是他都能看清但都毫无兴趣的。 他对一些比较永恒的事物感兴趣,比如非线性的多自由度阻尼系统,再比如说,小乔。 吴军营中,小乔似乎对孔明笑了一下,那眼睛似乎在看着他,告诉他周瑜的小算盘,他自己的小计谋,曹操的小想法,都是多么无聊无趣。 床上的黄月英问他,

Machine Learning

人脸检测的Viola-Jones方法

对于人脸识别这种类型的应用来说,通常都会分为几个步骤: 人脸检测(Face Detection)。检测到人脸所在的区域。并进行一系列的矫正。 人脸校准(Face Alignment)。人脸校准指的是在图片中寻找到鼻子、眼睛、嘴巴之类的位置。 如图中,红色的框是在进行检测,白色的点是在进行校准。 信息识别(Info Recognition)。进行性别、年龄等信息的分析和识别。 这三个问题可以说每一个都是一个非常广泛的研究领域,有很多值得做的工作。本文只做一些简单的介绍。 人脸检测 Viola-Jones方法 传统的人脸检测算法是Viola-Jones算法。在OpenCV中的人脸检测功能也是使用的这种算法。它有三个核心步骤:Haar-like特征、Adaboost分类器和Cascade级联分类器。 Haar-like特征 所谓Haar-like特征其实很好理解。

Product

助理君 — 随时得到代码更新提醒

我们一直以来都尝试用Slack或者类似的国内替代品来接收Gitlab上面的提醒,不过由于各种原因,Slack经常出现登录失败,而且蛮多人也不愿意手机里再单独装一个app来接收这样的提醒。趁着公司在搞新的服务号,就趁机把Gitlab/Github的提醒放到了服务号上面来。 简单来说,这就是一个能随时随地提醒你代码有更新了的微信服务号。点此访问 使用指北: 0:访问助理君 | 连接开发者,关注助理君的微信公众号。 1:发送secret给助理君,得到你的个人密钥。输入在页面里的secret,并设置频道名称。 2:点击Github或Gitlab,得到webhook的地址。并将其设置在项目的webhook处。 3:之后就可以得到二维码啦,扫码即可订阅这个频道,接收代码的更新。也可以将这个二维码分发出去,让团队的小伙伴一起用。 技术细节: 1:我尝试了使用PHP的EasyWechat框架,

Product

ZTodo:极简的任务管理工具

“ 能把最核心的诉求解决的产品就是好的产品” 01 — 初心 2017年的1月份,最热闹的新闻大概就是微信小程序的发布了。不能免俗的,也是出于好奇,我们花了两天的时间赶工做了ZTodo的初版。没想到的是,用户增长和评价远远超出了我们的想象。 在过去的几个月里,ZTodo的用户数累计近万 (9.5k) ,用户创建了超过8000个任务。也有十几个用户向我们反馈了他们的意见。也有一些第三方的榜单将我们记录其中: 实话说,单纯从数据上来说,我们可能不是特别满意。但考虑到我们并没有做任何推广,而且还是纯英文的名字,这个结果对我们来说已经算是不错了。 02 — 升级 在记录了很多用户的意见之后,我们也终于有了足够多的经验和精力来完善这个产品。加入了呼声很高的日历、提醒、删除任务的功能。考虑到有些朋友可能是新来的,所以还是介绍一下ZTodo的使用逻辑。如果是已经使用过的用户,