<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>default on adolsai's echo</title><link>https://adolsai.com/category/default/</link><description>Recent content in default on adolsai's echo</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Fri, 28 Oct 2022 22:28:40 +0800</lastBuildDate><atom:link href="https://adolsai.com/category/default/index.xml" rel="self" type="application/rss+xml"/><item><title>Timer动画使用缓动函数</title><link>https://adolsai.com/archives/easings-timing-function.html</link><pubDate>Mon, 01 Jun 2020 15:12:00 +0800</pubDate><guid>https://adolsai.com/archives/easings-timing-function.html</guid><description>&lt;p&gt;&lt;strong&gt;缓动函数&lt;/strong&gt; 通过时间的变化控制参数值变化的速率。&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;现实生活中，物体并不是突然启动或者停止，当然也不可能一直保持匀速移动。就像我们打开抽屉的过程那样，刚开始拉的那一下动作很快，但是当抽屉被拉出来之后我们会不自觉的放慢动作。掉落在地板上的东西，一开始下降的速度很快，后来就会在地板上来回反弹直到停止。&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;p&gt;系统自带的缓冲函数如下:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;kCAMediaTimingFunctionLinear&#10;&#10;kCAMediaTimingFunctionEaseIn&#10;&#10;kCAMediaTimingFunctionEaseOut&#10;&#10;kCAMediaTimingFunctionEaseInEaseOut&#10;&#10;kCAMediaTimingFunctionDefault&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;使用&lt;code&gt;CAMediaTimingFunctionName&lt;/code&gt;中如下方法可以取出贝塞尔曲线控制点:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;- (void)getControlPointAtIndex:(size_t)idx values:(float[_Nonnull 2])ptr; &#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;直接绘制出来是这样的曲线:&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="https://adolsai.com/uploads/2020/06/1179825508.webp" alt="default-timing-function" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;当然系统也提供自定义控制点方法:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;/* Creates a timing function modelled on a cubic Bezier curve. The end&#10; * points of the curve are at (0,0) and (1,1), the two points &amp;#39;c1&amp;#39; and&#10; * &amp;#39;c2&amp;#39; defined by the class instance are the control points. Thus the&#10; * points defining the Bezier curve are: &amp;#39;[(0,0), c1, c2, (1,1)]&amp;#39; */&#10;&#10;+ (instancetype)functionWithControlPoints:(float)c1x :(float)c1y :(float)c2x :(float)c2y;&#10;&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Python版本的desede/CBC/PKCS5Padding加密</title><link>https://adolsai.com/archives/python-desede-cbc-PKCS5Padding.html</link><pubDate>Sun, 26 Apr 2020 10:27:00 +0800</pubDate><guid>https://adolsai.com/archives/python-desede-cbc-PKCS5Padding.html</guid><description>&lt;h2 id="环境--依赖"&gt;环境 &amp;amp;&amp;amp; 依赖&lt;/h2&gt;&#10;&lt;p&gt;Python版本是3.7.7&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;python3 --version&#10;Python 3.7.7&#10;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;因为要使用&lt;code&gt;pycryptodome&lt;/code&gt;,需要先卸载&lt;code&gt;pycrypto&lt;/code&gt;,&lt;code&gt;pydes&lt;/code&gt;:&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;pip3 uninstall pycrypto&#10;&#10;pip3 uninstall pydes&#10;&#10;pip3 install pycryptodome&#10;&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Unicode UTF-16 UTF-8 GB2312 GBK GB18030 ASCII Latin-1</title><link>https://adolsai.com/archives/UTF16-UTF8-GB2312-GBK-GB18030-Unicode-ASCII-Latin1.html</link><pubDate>Fri, 11 Mar 2016 17:27:00 +0800</pubDate><guid>https://adolsai.com/archives/UTF16-UTF8-GB2312-GBK-GB18030-Unicode-ASCII-Latin1.html</guid><description>&lt;p&gt;整理一下这些概念。&lt;/p&gt;&#10;&lt;h4&gt;计算机内只能保存101010等二进制数据，那么页面上显示的字符是如何显示出来的呢？&lt;sup id="fnref:6"&gt;&lt;a href="#fn:6" class="footnote-ref"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/h4&gt;&#10;&lt;p&gt;一：字符集（Charset）&lt;br /&gt;&#10;charset = char + set，char 是字符，set是集合，charset就是字符的集合。&lt;br /&gt;&#10;字符集就是是这个编码方式涵盖了哪些字符，每个字符都有一个数字序号。&lt;/p&gt;&#10;&lt;p&gt;二：编码方式（Encoding）&lt;br /&gt;&#10;编码方式就是一个字符要怎样编码成二进制字节序，或者反过来怎么解析。&lt;br /&gt;&#10;也即给你一个数字序号，要编码成几个字节，字节顺序如何，或者其他特殊规则。&lt;/p&gt;&#10;&lt;p&gt;三：字形字体（Font）&lt;br /&gt;&#10;根据数字序号调用字体存储的字形，就可以在页面上显示出来了。&lt;br /&gt;&#10;所以一个字符要显示出来，要显示成什么样子要看字体文件。&lt;/p&gt;</description></item><item><title>Markdown help</title><link>https://adolsai.com/archives/Markdown-help.html</link><pubDate>Sat, 25 Jul 2015 00:08:28 +0800</pubDate><guid>https://adolsai.com/archives/Markdown-help.html</guid><description>&lt;p&gt;外面可以看看&lt;/p&gt;&#10;&lt;h1 id="mou"&gt;Mou&lt;/h1&gt;&#10;&lt;p&gt;&lt;img src="http://25.io/mou/Mou_128.png" alt="Mou icon" loading="lazy" decoding="async"&gt;&#10;&lt;/p&gt;&#10;&lt;h2 id="overview"&gt;Overview&lt;/h2&gt;&#10;&lt;p&gt;&lt;strong&gt;Mou&lt;/strong&gt;, the missing Markdown editor for &lt;em&gt;web developers&lt;/em&gt;.&lt;/p&gt;</description></item><item><title>Some Dev Tools for OS X</title><link>https://adolsai.com/archives/Some-Dev-Tools-for-OS-X.html</link><pubDate>Fri, 03 Jul 2015 17:09:00 +0800</pubDate><guid>https://adolsai.com/archives/Some-Dev-Tools-for-OS-X.html</guid><description>&lt;h2&gt;Chrome插件gliffy&lt;/h2&gt;&lt;p&gt;用来绘制流程图UML图&lt;/p&gt;</description></item><item><title>冒个泡</title><link>https://adolsai.com/archives/55.html</link><pubDate>Thu, 16 Oct 2014 22:45:47 +0800</pubDate><guid>https://adolsai.com/archives/55.html</guid><description>&lt;p&gt;我居然回来了23333333333&lt;/p&gt;</description></item><item><title>Authenticating with OAuth</title><link>https://adolsai.com/archives/34.html</link><pubDate>Wed, 05 Mar 2014 19:58:00 +0800</pubDate><guid>https://adolsai.com/archives/34.html</guid><description>&lt;p&gt;&lt;a href="http://tools.ietf.org/html/draft-ietf-oauth-v2-21"&gt;http://tools.ietf.org/html/draft-ietf-oauth-v2-21&lt;/a&gt;&lt;/p&gt;&#10;&lt;h3&gt;在认证和授权的过程中涉及的三方包括:&lt;/h3&gt;&#10;&lt;p&gt;&lt;strong&gt;服务提供方&lt;/strong&gt;，用户使用服务提供方来存储受保护的资源，如照片，视频，联系人列表。&#10;&lt;strong&gt;用户&lt;/strong&gt; ，存放在服务提供方的受保护的资源的拥有者。&#10;&lt;strong&gt;客户端&lt;/strong&gt; ，要访问服务提供方资源的第三方应用。在认证过程之前，客户端要向服务提供者申请客户端标识。&lt;/p&gt;</description></item><item><title>typecho change siteUrl</title><link>https://adolsai.com/archives/15.html</link><pubDate>Thu, 27 Feb 2014 11:06:00 +0800</pubDate><guid>https://adolsai.com/archives/15.html</guid><description>&lt;p&gt;1、现在域名供应商修改域名指向&lt;/p&gt;&#10;&lt;p&gt;2、然后修改本地typecho数据库&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;mysql -u*name* -p*password* typecho&#10;&#10;mysql&amp;gt; show tables;&#10;+-----------------------+&#10;| Tables_in_typecho |&#10;+-----------------------+&#10;| typecho_comments |&#10;| typecho_contents |&#10;| typecho_fields |&#10;| typecho_metas |&#10;| typecho_options |&#10;| typecho_relationships |&#10;| typecho_users |&#10;+-----------------------+&#10;7 rows in set (0.00 sec)&#10;&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>namespace</title><link>https://adolsai.com/archives/13.html</link><pubDate>Wed, 26 Feb 2014 22:42:00 +0800</pubDate><guid>https://adolsai.com/archives/13.html</guid><description>&lt;p&gt;sb的我居然一直都没有用过这个东西...&lt;/p&gt;&#10;&lt;p&gt;度娘&#10;命名空间是用来组织和重用代码的编译单元。如同名字一样的意思，NameSpace（名字空间），之所以出来这样一个东西，是因为人类可用的单词数太少，并且不同的人写的程序不可能所有的变量都没有重名现象，对于库来说，这个问题尤其严重，如果两个人写的库文件中出现同名的变量或函数(不可避免)，使用起来就有问题了，为了解决这个问题，引入了名字空间这个概念，通过使用 namespace xxx；你所使用的库函数或变量就是在该名字空间中定义的，这样一来就不会引起不必要的冲突了。&lt;/p&gt;</description></item><item><title>dnsmasq bind dns</title><link>https://adolsai.com/archives/11.html</link><pubDate>Wed, 26 Feb 2014 17:59:00 +0800</pubDate><guid>https://adolsai.com/archives/11.html</guid><description>&lt;p&gt;&lt;strong&gt;DNSmasq&lt;/strong&gt;&#10;DNSmasq是一个小巧且方便地用于配置DNS和DHCP的工具，适用于小型网络，它提供了DNS功能和可选择的DHCP功能。它服务那些只在本地适用的域名，这些域名是不会在全球的DNS服务器中出现的。DHCP服务器和DNS服务器结合，并且允许DHCP分配的地址能在DNS中正常解析，而这些DHCP分配的地址和相关命令可以配置到每台主机中，也可以配置到一台核心设备中（比如路由器），DNSmasq支持静态和动态两种DHCP配置方式。&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;我这里主要是为了修改host表&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;dnsmasq有dns功能这个早在第一次使用的时候就知道，一直没有去研究，这次需要用了，所以简单研究了一下，修改两个参数即可了：&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;resolv-file=/etc/dnsmasq.resolv.conf&#10;addn-hosts=/etc/dnsmasq.hosts&#10;&lt;/code&gt;&lt;/pre&gt;</description></item></channel></rss>