从去年春天就开始翻译这本《Pro AngularJS》,前前后后将近1年半总算是正式出版。从最初的兴奋,到期间的苦逼,最后拿到样书,还是很满足的。这本书由浅入深的详细介绍了AngularJS的各种功能和原理,以及大量示例贯穿全书,开头甚至还有一些JavaScript的基础。原书一共600多页,我和同事各翻译了300多页,我主要是翻译的关于Services的第三部分以及第一部分的后几章。
总的来说收获很多,对AngularJS有了更深入的理解,虽然书中使用的AngularJS版本已经比较旧了,但是对很多方法的使用以及原理的解读还是非常不错的。并且英语阅读能力也感到有明显提升,许多长句子一开始完全不知所云,花了好几个小时通过上下文和代
继续阅读 »
写在前面的话:
关于OpenStack中的消息队列,我最早在2012年就做过相应的分析,但当时的代码与如今相比,结构已经发生了巨大的变化。但是,万变不离其宗,内部最基本的实现原理却没有发生大的变动。于是,我连着吃了两年多的老本。直到最近做项目时,碰到了ack相关的一些疑问,回过头来想根据代码排错时,发现已经完全弄不明白代码之间的跳转了,特别是oslo.messaging库,做了太多的封装和抽象。所以,决定还是花点时间和精力,再次把消息队列相关的知识做个梳理。而每次的梳理,我都会有新的体会和对问题新的看法,这也是我坚持写技术博客的主要原因之一。当然,以我一贯的风格,你会看到更多对实现原理的分析和总结。
继续阅读 »
参考文章
iOS学习笔记——HTTPS原理篇
HTTPS工作原理和TCP握手机制
图解SSL/TLS协议
How to Use SSL/TLS with Node.js
在上一篇博文《Node核心模块之crypto》中,提到了加密(摘要,加密解密,签名等)的四种常见类型:
Hash(哈希)
HMAC(基于哈希的消息认证码)
加密,解密
签名,验证
HTTPS的整个过程和以上几种方法密切相关。
CA证书
CA 即 Certificate Authority (数字证书认证机构),CA证书的签发以及验证包含以下三方:
CA
Server
Client
过程包括:
Server生成一对公钥和私钥
Server将公钥以及域名等信
继续阅读 »
算法原理
选择排序(Selection Sort)是一种简单直观的排序算法。它的工作原理如下,首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个将被移到其最终位置上,因此对n个元素的序列进行排序总共进行至多n-1次交换。在所有的完全依靠交换去移动元素的排序方法中,选择排序属于非常好的一种。
more
实例分析
以数组 arr = [8, 5, 2, 6, 9, 3, 1,
继续阅读 »
安卓开发领域,很多重要的问题都有了很好的开源解决方案,例如网络请求 OkHttp + Retrofit 简直就是不二之选。“我们不重复造轮子不表示我们不需要知道轮子该怎么造及如何更好的造!{:target="_blank"}”,在用了这些好轮子将近两年之后,现在是时候拆开轮子一探究竟了。本文基于 OkHttp 截至 2016.7.11 的最新源码{:target="_blank"}对其进行了详细分析。
继续阅读 »
记得大学里有计算机网络这门课程,我找过著名的两本的国外教材,分别从自底向上,由上到下两个角度来诠释网络是如何连接的。冗长的介绍接线器,光缆,吓得我粗略的一略而过,结果自然是『万花丛中过,片叶不沾身』。
而后,我的编程生涯里,似乎也没有被网络所困扰。不懂得各种原理,似乎用框架,查查 stackoverflow,Google 挖个遍,也可以 6666. 不做底层的咸鱼,怎么会需要原理呢,我学的什么编译链接,session,segment,,内存管理也不过是镜中花,水里月。
继续阅读 »
1.简介
infobright是一个基于MySQL的数据仓库系统,内部是没有索引,采用的Knowledge Grid来组织数据。基本特征如下:
查询性能高:百万、千万、亿级记录数条件下,同等的SELECT查询语句,速度比MyISAM、InnoDB等普通的MySQL存储引擎快5~60倍
存储数据量大:TB级数据大小,几十亿条记录
高压缩比:理论上是40:1,在我们的项目中为10:1,极大地节省了存储空间
基于列存储:无需要物化视图、复杂的数据分区策略、索引
适合复杂的分析性SQL查询:SUM, COUNT, AVG, GROUP BY
没有特殊的数据仓库摸(比如星形模型、雪花模型)要求
和众多的BI套件相容,比如Penta
继续阅读 »
Retrofit{:target="_blank"},OkHttp{:target="_blank"},Okio{:target="_blank"} 是 Square 团队开源的安卓平台网络层三板斧,它们逐层分工,非常优雅地解决我们对网络请求甚至更广泛的 I/O 操作的需求。其中最底层的 Okio 堪称小而美,功能也更基础,应用更广泛。这次我们就对它进行一个详细的分析。本文的分析基于 Okio 截至 2016.8.4 的最新源码{:target="_blank"},非常建议大家下载 Okio 源码之后,跟着本文,过一遍源码。
继续阅读 »
文/Robin
本站推广
币安是全球领先的数字货币交易平台,提供比特币、以太坊、BNB 以及 USDT 交易。
币安注册: https://accounts.binancezh.pro/cn/register/?ref=11190872
邀请码: 11190872
写在前面
时间管理方法比较多,比如计划管理、时间“四象限”法、时间abc分类法、GTD、番茄学习/工作法、角色管理法(七哥@淘宝鬼脚七)等等。半小时时间管理法的原理不是自己原创,原理来源于番茄学习/工作法和GTD。自己在番茄学习/工作法和GTD的基础上做了一些改变,做成适合自己的时间管理方法。
在描述我的半小时时间管理法上,我们先来看看什么是番茄学习/工作法和
继续阅读 »
希尔排序不应该放在这个系列的,因为并不十分清楚它的原理,想要完整了解的朋友请看维基百科
下面是原理的简单解释:
继续阅读 »