从 HTTP1.x 到 HTTP 2.0 变迁
前言互联网世界中,HTTP协议算是使用最广泛的协议。最近Http2.0诞生再次使得互联网技术成为关注的焦点。接下来我们一起看看关于HTTP的那些事。
HTTP说到 HTTP 难免会提及 TCP 协议,HTTP 是建立在 TCP 协议之上的,TCP 协议作为传输层协议其实离应用层并不远。
TCP 协议的性能直接影响了 HTTP:
TCP建立连接时需要三次握手1.5个RTT。
慢启动(slow start)
目前,影响网路请求的两个主要因素: 带宽和延迟。随着网络基础设施建设带宽得到极大提升,大部分是延迟在影响响应速度。
HTTP 1.0 最大问题:
连接无法复用
head-of-line blocking (队头阻塞)
连接无法复用会导致每次都需要进行三次握手和慢启动。head-of-line blocking 则会导致带宽无法充分利用,以及后续健康请求阻塞。
解决连接无法复用问题在HTTP 1.0协议里设置Connection: Keep-Alive。可以在一定时间内复用连接。对于PC端浏览器来说效果明显,对移动APP来说成效不大 ...
前言整理Git常用命令,最后附有张哥的Github系列文章。
安装Git如何安装Git, 这里我们就不说了,自行Google。安装完后,检查是否安装成功,在终端输入:git, 如果有git相关的帮助提示,则证明安装成功。
Git命令
mkdir Test 创建文件夹Test
cd Test 切换到Test文件夹
touch a.md (新建a.md文件)
目前为止,Test还不是一个Git仓库。我们需要初始化它。终端输入命令:
git init 终端显示:
现在Test是一个Git库了。可以输入一下命令查看:
git status 查看状态
git add 当修改后a.md通过git add a.md 添加接下来输入git status
这是时候我们可以提交a.md了,也可以使用git rm-cached移除缓存。
git commit 接下来提交缓存git commit -m 'first commit'。 -m代表提交信息。
git log 查看commit log 信息。
git branch 查看分支,也可以创 ...
前言本课以上节课的代码为基础
课程概要
Interface Builder Demo在storyboard中,绘制和编写你的UIViews。
The FaceViewController MVC`s Model
Gestures获取手势输入。
Demo: Modifying the facial expression滑动,轻拍,旋转等。
Multiple MVCstabBar, Navigation and Split View Controllers
Interface Builder Demo补充本课在上节课的demo基础上进行编写,如有疑问请看上篇文章。上节课完成笑脸的绘制,现在我们给笑脸加眉毛,实现原理跟画眼睛一样,主要是计算坐标位置。
123456789101112131415161718192021222324252627/** * @brief 画眉毛 * * @param eye枚举类型,表示左右眼 * * @return 返回贝塞尔曲线 */ private func pathForBrow(e ...
没有一点点防备,也没有一丝顾虑,你就这样出现,在我的世界里,带给我惊喜,情不自己
问题克隆,提交代码是出现问题:
分析:输出信息prot 22: Operation timed out,初步分析端口问题我们修改端口试试,这里将端口改为443。
解决方法在存放私钥公钥(id_rsa和id_rsa.pub)文件里,新建config文本。命令vim ~/.ssh/config,输入一下内容:
123456Host github.comUser YourEmail@163.comHostname ssh.github.comPreferredAuthentications publickeyIdentityFile ~/.ssh/id_rsaPort 443
:wq保存退出。目前,还不能使用,需要最后设置config
12git config --global user.name "XXX"git config --global user.email XXX@xx.com
这个操作就是为了刷新config,使修改生效。
说来惭愧,距上次更新笔记有一段时间了,本来计划是用两个月的时间完成本课程。结果,年前公司任务比较多,双休变单休,没能静下下心来继续学习。(PS: 都是借口,没完成就是没完成 →_→)。也罢,接下来挤时间完成余下的课程。加油,少年!
理论知识本节课程前半部分讲解一些基本理论知识,这里只是给出罗列,不会一一讲解,如有不理解的请参考官网文档。
Views: 说白了就是一个区域。
Hierarchical: 一个View只有一个superView,多个subViews。
UIWindow
View初始化
坐标系统数据结构: CGFloat, CGPoint,CGSize, CGRect
Bounds VS frame
Creating Views
CustomViews
UIBezierPath使用
NSAttributedString/NSMutableAttributedString
Fonts
Images
FaceDemo(画笑脸)课程44分钟开始讲解FaceIt例子。本文使用的是Swift3.0编写, 代码实现跟视频有所不同,不影响学习。
笑脸分为三个部分: ...
环境配置
Node.js环境
npm包管理工具
使用npm安装weex-toolkit
1$npm install -g weex-toolkit
如果想使用beta版本
1$npm install -g weex-toolkit@beta
编译程序命令
1$ weex hello.we
预览页面
12$ weex hello.we --qr
调试页面weex-toolkit继承了Debugger。
1$ weex debug hello.we
两种调试模式:Debugger和Inspector
Debugger: 将会打开js debugger页面,调试js。
Inspector: 打开inspector页面,通过Weex页面的element属性结构,包含高亮元素,展示样式表,以及显示native的log.
创建Weex项目安装Weexpack
1npm install weexpack -g
创建项目
12$ weexpack create appName
进入项目,并安装依赖
1$ cd appName && npm install
安装iOS ...
编程语言
未读Flexbox布局Flex布局是什么?Flex 布局是FlexBox布局的简写,意为“弹性布局”。ReactNative中的Flexbox布局工作原理和Web上的CSS中基本一致,只有少许差异。例如:flexDirection默认的是column而不是row。
容器的属性FlexDirectionflex-direction属性决定主轴方向。取值:row, row-reverse, column, column-reverse。在ReactNative默认:column。CSS中默认为:row。
column(ReactNative默认值):主轴为垂直方向,起点在上端。
column-reverse: 与column相反。
row: 主轴水平方向,起点在左端。
row-reverse: 与row相反。
justify-content属性justify-content定义子项目在主轴上的对齐方式。取值:flex-start, flex-end, center, space-between,space-around。
flex-start(默认值):左对齐
flex-end:右 ...
之前整理过一篇关于Swift基础知识的文章《Swift Tutorial》。本文是在这个文章的基础上补充Swift其他知识点。内容比较基础。
More Swift
Array
123var a = Array<String>()//... is the same as ...var a = [String]()
注意:数组越界,数组遍历,不可变数组等问题。
Array<T> methods
filter(includeElement:(T) -> Bool) ->[T] 返回一个新的数组,满足给定谓词的要求。 12let bigNumbers = [2, 47, 118, 5, 9].filter({$0 > 20}) //bigNumber = [47, 118]
map(transform:(T) ->U) -> [U] 通过映射关系创建一个新的数组。12let stringified: [String] = [1, 2, 3].map{String($0)}//str ...
MVC关于MVC我们先来看一张图相信很多人对这张图不陌生。那么我们一起来回顾一下MVC吧!
什么是MVC?* Model:数据类,视图所需要的数据。
* View:视图类,构建UI界面。
* Controller: 控制类,用来控制View和Model之间的交流。
Model、View和Controller之间的关系Controller与View
Controller可以控制View中显示的内容。View中不包含任何数据,当需要数据的时候需要通过Controller获取。
1. 目标动作机制(target-action)
可以通过`outlet`与`View`相连,例如:`storyBoard`中的`UILabel`。
2. 委托机制(delegate)
3. 数据源机制(dataSource)
Controller与Model
Controller可以控制Model, 他能够调用Model中的方法
1. 广播机制(Notification)
2. KVO机制 (Key-Value Observing)
View和Model
View和Model之间没 ...
编程语言
未读前言本文总结阅读《Swift Tutorial》的收获。内容比较基础。
Swift Tutorial Part1: Expressions, Variables & Constants(表达式,变量&常量)Code Comments(注释)在Swift中注释与Objective-C注释相同:
单行注释://
多行注释:/* XXX */
Arithmetic Operations(算数操作)
简单操作: + , - , * , /
注意小数:22 / 7 与 22.0 / 7.0 结果不同,前者结果为3,后者为3.142857。因为在Swift中,22 / 7 中使用的都是intergers, 因此Swift认为结果也是interger类型的。
取模操作:% (取余数操作)
移位操作:shift left 和 shift right对应操作 << 和 >>。左移一位对应乘以2,右移一位对应除以2。
操作优先级:同OC等其他语言。
数学公式: sin, cos, s ...