2015-11-27 Li Shuai
为了响应总菊的要求, 互联网智能电视盒子必须接入牌照方的播控平台, 登陆时必须认证一下, 认证通过才让你接入我们的服务, 否则你就呵呵了。我们有两个接口会代理一下用户的请求, 大致逻辑是: 客户端首先请求接口A, 会把MAC地址带过来, 接口A的handler会做一些校验, 然后根据一些其他的参数, 重新组装一个请求去访问牌照方的接口, 根据参数的不同会请求不同的接口 牌照方会根据用户的MAC地址和其他信息返回鉴权的结果, 返回里面会有某个字段表示成功还是失败 接口A对牌照方的接口做些校验, 没问题的返给客户端, 客户端根据鉴权结果, 成功则继续进行剩下的鉴权,失败则终止请求, 用户可能就无法使用剩下的服务 看起来是个很简单的只 继续阅读 »
2016-10-18 Meng Lei
Node.js 官方网站:https://nodejs.org/ Github: https://github.com/nodejs/node NPM 官方网站: https://www.npmjs.com/ Taobao镜像: https://npm.taobao.org/ Mongodb Driver: NPM 、Github Mongoose(Mongodb ORM): 官网 、 NPM 、 Github 随机数生成: NPM 、 Github Node.js反向代理:NPM HTML W3School中文: http://www.w3school.com.cn/ Can I Use: http://caniuse.co 继续阅读 »
2015-01-01 Jamling
1.简介   对于在网络上的比较小的结点,支持消息传输系统(MTS)是不实际的。例如,一台 工作站可能不具有充足的资源允许SMTP服务器和相当的本地邮件传送系统保持序驻留, 并持续运行。同样的,将一台个人计算机长时间连接在IP类型网络上的费用也是可观的 (结点缺少的资源被称为"联络性")。   虽然如此,在这样的小结点上允许管理邮件是十分有用的,并且这些结点经常支持一 个用户代理来管理邮件。为解决这一问题,能够支持MTS的结点就为这些不能支持的结点提 供了邮件存储功能。邮局协议-版本3就是使这样的工作站可以用一种比较实用的方法来访问 存储于服务器上的储存邮件。通常,这意味着工作站可以从服务器上取得邮件,而服务器为 它暂时保存邮件 继续阅读 »
2016-11-22 Roger
Android 插件化框架 DroidPlugin 学习笔记 上一篇我们对 DL 框架的思路进行了一些总结,总的来说就是通过一个代理的 activity 作为傀儡来控制插件 activity 的生命周期,通过 AssetManager 的隐藏方法 addAssetPath 来解决加载资源的问题。但是同时,DL 框架存在的缺点就是比较依赖 that 语法,开发插件程序和主程序的代码需要单独区分。在这两点问题上,360 助手的插件化框架 DroidPlugin 似乎解决的更好一些,这个框架基本 Hook 了系统所有的 Service ,欺骗了系统大部分的 API ,编写插件程序和开发普通 app 没有任何区别,这是 DroidPlug 继续阅读 »
2016-11-29 wilsonIs
八爪有一整套的研发管理系统,实现从代码管理到服务器搭建、问题追踪到编写开发文档,从而搭建起一整套开发流程的系统。以下是一些个人现阶段的理解。 1.Jira JIRA Software是优秀的敏捷项目工具,协助您追踪问题,集成代码,规划,开发,发布高质量的软件产品。 2.Stash Bitbucket(原名Stash)帮助团队创建和管理代码仓库,通过内联注释和变更讨论来使团队协同处理代码。 3.Confluence Confluence将团队成员紧密的团结在一起,带领团队同心协力地在线编写文档,使团队成员工作更有效率。 4.Bamboo Bamboo运行在各种专用服务器或云服务器上的代理实现了构建能力的即时动态扩展。 继续阅读 »
2016-10-12 曹强
单一职责原则 就一个类而言,应该仅有一个引起它变化的原因。在JavaScript中,需要用到类的场景并不太多,单一职责原则(SRP)更多的是被运用在对象或者方法级别上。 总之,SRP原则体现为:一个对象(方法)只做一件事情。 例如: 代理模式 迭代器模式 单例模式 装饰者模式 但是,并不是所有的职责都应该一一分离的,一方面如果随着需求的变化,有两个职责是同时变化的,那就不必分离他们。比如在ajax请求的时候,创建xhr对象和发送xhr请求几乎总是在一起的,那么创建xhr对象的职责和发送xhr对象的职责就没有必要分开。 另一方面,职责的变化轴线仅当它们确定会发生变化时才有意义,即使两个职责已经被耦合在一起但他们 继续阅读 »
2019-01-06 Xie Jingyi
rustup v.s. cargo cargo 是 Rust 最底层的包管理器,类似 npm 或 pip。 rustup 是 Rust 的工具链管理器,允许开发者在多个不同版本的工具间切换。所谓工具不仅包括 rustc 和 cargo,还包括 rustfmt、racer 等一系列辅助开发的模块。类似于 Anaconda、Pipenv 之于 Python,或是 n 之于 Node.js。 Rust 的工具链默认存在于 ~/.cargo/bin 中,rustup 会用代理脚本覆盖其中的可执行文件,从而用户可以通过命令行标志方便地切换版本。 stable v.s. beta v.s. nightly Rust 官方默认提供三个通 继续阅读 »
2014-07-18 Lingxian Kong
配置 git config --list 查看系统变量的配置 export https_proxy="http://XXXXXX:XXXXXX@XXXXXX:8080/" 配置代理 密码中的特殊字符转义: ampersand & (%26) at @ (%40) space (%20) double-quote " (%22) single-quote ' (%27) colon : (%3A) 继续阅读 »
2016-10-13 曹强
php
简介 在[PHP设计模式(七):设计模式分类][2]中我们提到过结构设计模式(Structural patterns),结构设计模式专注于设计对象(Object)和实例(Instance)的构建、组合过程。 结构设计模式包括下面七种设计模式: 适配器(Adapter) 桥接(Bridge) 合成(Composite) 装饰(Decorator) 外部(Facade) 轻量(Flyweight) 代理(Proxy) 请无视拗口的中文翻译。结构设计模式着重于低耦合、高复用、高可维护性、高拓展性的设计原则。 适配器模式 适配器模式是一种利用适配器将现有的实现,适配到已有接口的设计模式,最常见的例子就是变压器,将已 继续阅读 »