分类 default 下的文章

Timer动画使用缓动函数

缓动函数 通过时间的变化控制参数值变化的速率。

现实生活中,物体并不是突然启动或者停止,当然也不可能一直保持匀速移动。就像我们打开抽屉的过程那样,刚开始拉的那一下动作很快,但是当抽屉被拉出来之后我们会不自觉的放慢动作。掉落在地板上的东西,一开始下降的速度很快,后来就会在地板上来回反弹直到停止。

系统自带的缓冲函数如下:

kCAMediaTimingFunctionLinear

kCAMediaTimingFunctionEaseIn

kCAMediaTimingFunctionEaseOut

kCAMediaTimingFunctionEaseInEaseOut

kCAMediaTimingFunctionDefault

使用CAMediaTimingFunctionName中如下方法可以取出贝塞尔曲线控制点:

- (void)getControlPointAtIndex:(size_t)idx values:(float[_Nonnull 2])ptr; 

直接绘制出来是这样的曲线:

default-timing-function

当然系统也提供自定义控制点方法:

/* Creates a timing function modelled on a cubic Bezier curve. The end
 * points of the curve are at (0,0) and (1,1), the two points 'c1' and
 * 'c2' defined by the class instance are the control points. Thus the
 * points defining the Bezier curve are: '[(0,0), c1, c2, (1,1)]' */

+ (instancetype)functionWithControlPoints:(float)c1x :(float)c1y :(float)c2x :(float)c2y;

- 阅读剩余部分 -

Unicode UTF-16 UTF-8 GB2312 GBK GB18030 ASCII Latin-1

整理一下这些概念。

计算机内只能保存101010等二进制数据,那么页面上显示的字符是如何显示出来的呢?1

一:字符集(Charset)
charset = char + set,char 是字符,set是集合,charset就是字符的集合。
字符集就是是这个编码方式涵盖了哪些字符,每个字符都有一个数字序号。

二:编码方式(Encoding)
编码方式就是一个字符要怎样编码成二进制字节序,或者反过来怎么解析。
也即给你一个数字序号,要编码成几个字节,字节顺序如何,或者其他特殊规则。

三:字形字体(Font)
根据数字序号调用字体存储的字形,就可以在页面上显示出来了。
所以一个字符要显示出来,要显示成什么样子要看字体文件。

- 阅读剩余部分 -

Authenticating with OAuth

http://tools.ietf.org/html/draft-ietf-oauth-v2-21

在认证和授权的过程中涉及的三方包括:

服务提供方,用户使用服务提供方来存储受保护的资源,如照片,视频,联系人列表。
用户 ,存放在服务提供方的受保护的资源的拥有者。
客户端 ,要访问服务提供方资源的第三方应用。在认证过程之前,客户端要向服务提供者申请客户端标识。

- 阅读剩余部分 -

typecho change siteUrl

1、现在域名供应商修改域名指向

2、然后修改本地typecho数据库

mysql -u*name* -p*password* typecho

mysql> show tables;
+-----------------------+
| Tables_in_typecho     |
+-----------------------+
| typecho_comments      |
| typecho_contents      |
| typecho_fields        |
| typecho_metas         |
| typecho_options       |
| typecho_relationships |
| typecho_users         |
+-----------------------+
7 rows in set (0.00 sec)

- 阅读剩余部分 -

namespace

sb的我居然一直都没有用过这个东西...

度娘
命名空间是用来组织和重用代码的编译单元。如同名字一样的意思,NameSpace(名字空间),之所以出来这样一个东西,是因为人类可用的单词数太少,并且不同的人写的程序不可能所有的变量都没有重名现象,对于库来说,这个问题尤其严重,如果两个人写的库文件中出现同名的变量或函数(不可避免),使用起来就有问题了,为了解决这个问题,引入了名字空间这个概念,通过使用 namespace xxx;你所使用的库函数或变量就是在该名字空间中定义的,这样一来就不会引起不必要的冲突了。

关于php的::
http://www.php.net/manual/zh/language.namespaces.nsconstants.php

dnsmasq bind dns

DNSmasq
DNSmasq是一个小巧且方便地用于配置DNS和DHCP的工具,适用于小型网络,它提供了DNS功能和可选择的DHCP功能。它服务那些只在本地适用的域名,这些域名是不会在全球的DNS服务器中出现的。DHCP服务器和DNS服务器结合,并且允许DHCP分配的地址能在DNS中正常解析,而这些DHCP分配的地址和相关命令可以配置到每台主机中,也可以配置到一台核心设备中(比如路由器),DNSmasq支持静态和动态两种DHCP配置方式。

我这里主要是为了修改host表

dnsmasq有dns功能这个早在第一次使用的时候就知道,一直没有去研究,这次需要用了,所以简单研究了一下,修改两个参数即可了:

resolv-file=/etc/dnsmasq.resolv.conf
addn-hosts=/etc/dnsmasq.hosts

- 阅读剩余部分 -