|
@@ -48,38 +48,34 @@
|
|
|
</ul></li>
|
|
|
<li><a href="#外设篇">外设篇</a><ul>
|
|
|
<li><a href="#自定义按钮的鼠标">自定义按钮的鼠标</a></li>
|
|
|
-<li><a href="#厚的鼠标垫">厚的鼠标垫</a></li>
|
|
|
+<li><a href="#厚的软鼠标垫">厚的软鼠标垫</a></li>
|
|
|
<li><a href="#机械键盘">机械键盘</a></li>
|
|
|
<li><a href="#机械键盘手托">机械键盘手托</a></li>
|
|
|
-<li><a href="#游戏鼠标线夹">游戏鼠标线夹</a></li>
|
|
|
+<li><a href="#鼠标线夹">鼠标线夹</a></li>
|
|
|
<li><a href="#笔记本支架折叠">笔记本支架折叠</a></li>
|
|
|
<li><a href="#魔方插座">魔方插座</a></li>
|
|
|
<li><a href="#kindle">Kindle</a></li>
|
|
|
</ul></li>
|
|
|
-<li><a href="#devops">DevOps</a><ul>
|
|
|
+<li><a href="#ops">Ops</a><ul>
|
|
|
<li><a href="#nginx-pagespeed">Nginx Pagespeed</a></li>
|
|
|
<li><a href="#boom">Boom</a></li>
|
|
|
<li><a href="#goaccess">GoAccess</a></li>
|
|
|
+<li><a href="#fabric">Fabric</a></li>
|
|
|
+<li><a href="#docker">Docker</a></li>
|
|
|
</ul></li>
|
|
|
<li><a href="#硬件篇">硬件篇</a><ul>
|
|
|
<li><a href="#raspberry-pi">Raspberry Pi</a></li>
|
|
|
-<li><a href="#arduino">Arduino</a><ul>
|
|
|
-<li><a href="#arduino-yun">Arduino Yun</a></li>
|
|
|
-<li><a href="#arduino-uno">Arduino Uno</a></li>
|
|
|
-<li><a href="#arduino-adk">Arduino ADK</a></li>
|
|
|
-<li><a href="#arduino-lilypad">Arduino Lilypad</a></li>
|
|
|
-</ul></li>
|
|
|
+<li><a href="#arduino">Arduino</a></li>
|
|
|
<li><a href="#nodemcu">NodeMCU</a></li>
|
|
|
</ul></li>
|
|
|
<li><a href="#api">API</a><ul>
|
|
|
-<li><a href="#postman-1">Postman</a></li>
|
|
|
<li><a href="#moco">Moco</a></li>
|
|
|
<li><a href="#swagger">Swagger</a></li>
|
|
|
</ul></li>
|
|
|
<li><a href="#cli">CLI</a><ul>
|
|
|
<li><a href="#tree">tree</a></li>
|
|
|
<li><a href="#sl">sl</a></li>
|
|
|
-<li><a href="#curl">curl</a></li>
|
|
|
+<li><a href="#curl">cURL</a></li>
|
|
|
</ul></li>
|
|
|
<li><a href="#backend">Backend</a><ul>
|
|
|
<li><a href="#spring-mvc">Spring MVC</a></li>
|
|
@@ -358,17 +354,23 @@ Main resource server response time | %</code></pre>
|
|
|
<p>这是一个截图工具,可以用于截取页面长图。</p>
|
|
|
<h1 id="外设篇">外设篇</h1>
|
|
|
<h2 id="自定义按钮的鼠标">自定义按钮的鼠标</h2>
|
|
|
+<p>对于程序员来说,复制和粘贴是很常用的操作,如果我们有一个对应的自定义按钮的鼠标的话,我们就可以光用鼠标来进行复制和粘贴了。</p>
|
|
|
<figure>
|
|
|
<img src="http://toolbox.phodal.com/images/devices/steelseries.jpg" alt="Steelseries" /><figcaption>Steelseries</figcaption>
|
|
|
</figure>
|
|
|
-<h2 id="厚的鼠标垫">厚的鼠标垫</h2>
|
|
|
+<h2 id="厚的软鼠标垫">厚的软鼠标垫</h2>
|
|
|
<h2 id="机械键盘">机械键盘</h2>
|
|
|
+<p>地球人都知道,我就不说了。</p>
|
|
|
<h2 id="机械键盘手托">机械键盘手托</h2>
|
|
|
-<h2 id="游戏鼠标线夹">游戏鼠标线夹</h2>
|
|
|
+<p>很多人光有个机械键盘,但是却没有一个与之对应的手托,我觉得还是有些可惜的。机械键盘都有着相当高的高度,这时手放上去就有些尴尬。</p>
|
|
|
+<figure>
|
|
|
+<img src="http://toolbox.phodal.com/images/devices/shoutuo.jpeg" alt="机械键盘手托" /><figcaption>机械键盘手托</figcaption>
|
|
|
+</figure>
|
|
|
+<h2 id="鼠标线夹">鼠标线夹</h2>
|
|
|
<h2 id="笔记本支架折叠">笔记本支架折叠</h2>
|
|
|
<h2 id="魔方插座">魔方插座</h2>
|
|
|
<h2 id="kindle">Kindle</h2>
|
|
|
-<h1 id="devops">DevOps</h1>
|
|
|
+<h1 id="ops">Ops</h1>
|
|
|
<h2 id="nginx-pagespeed">Nginx Pagespeed</h2>
|
|
|
<blockquote>
|
|
|
<p>ngx_pagespeed 是 Nginx 的一个扩展模块,主要的功能是针对前端页面而进行服务器端的优化,对前端设计人员来说,可以省去优化css、js以及图片的过程。ngx_pagespeed对nginx自身负载能力的提升基本是看不到的,甚至会因为进行服务器端的优化而使系统增加负载;但从减少客户请求数的角度去看,牺牲部分服务器性能还是值得的</p>
|
|
@@ -384,10 +386,67 @@ Main resource server response time | %</code></pre>
|
|
|
<li>以及其他config_filters</li>
|
|
|
</ul>
|
|
|
<h2 id="boom">Boom</h2>
|
|
|
+<p>Boom是一个用Go语言实现的压力测试工具,就是和Apache Bench类似的工具。它提供了一个很有意思的UI,这就是我为什么推荐他的原因了:</p>
|
|
|
+<pre><code>1000 / 1000 Boooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo! 100.00 %
|
|
|
+
|
|
|
+Summary:
|
|
|
+ Total: 1.9052 secs.
|
|
|
+ Slowest: 0.2054 secs.
|
|
|
+ Fastest: 0.0111 secs.
|
|
|
+ Average: 0.1817 secs.
|
|
|
+ Requests/sec: 524.8813
|
|
|
+ Total Data Received: 5459000 bytes.
|
|
|
+ Response Size per Request: 5459 bytes.
|
|
|
+
|
|
|
+Status code distribution:
|
|
|
+ [200] 1000 responses
|
|
|
+
|
|
|
+Response time histogram:
|
|
|
+ 0.011 [1] |
|
|
|
+ 0.031 [10] |
|
|
|
+ 0.050 [10] |
|
|
|
+ 0.069 [11] |
|
|
|
+ 0.089 [11] |
|
|
|
+ 0.108 [10] |
|
|
|
+ 0.128 [11] |
|
|
|
+ 0.147 [11] |
|
|
|
+ 0.167 [11] |
|
|
|
+ 0.186 [295] |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
|
|
|
+ 0.205 [619] |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
|
|
|
+
|
|
|
+Latency distribution:
|
|
|
+ 10% in 0.1764 secs.
|
|
|
+ 25% in 0.1841 secs.
|
|
|
+ 50% in 0.1892 secs.
|
|
|
+ 75% in 0.1942 secs.
|
|
|
+ 90% in 0.2011 secs.
|
|
|
+ 95% in 0.2024 secs.
|
|
|
+ 99% in 0.2038 secs.</code></pre>
|
|
|
<h2 id="goaccess">GoAccess</h2>
|
|
|
<blockquote>
|
|
|
<p>GoAccess是一款开源、实时,运行在命令行终端下的web日志分析工具。该工具提供快速、多样的HTTP状态统计,可以令管理员不再纠结于统计各类数据,和繁杂的指令以及一大堆管道/正则表达式说byebye。</p>
|
|
|
</blockquote>
|
|
|
+<p>这生成的风格是这样的:</p>
|
|
|
+<figure>
|
|
|
+<img src="http://toolbox.phodal.com/images/ops/goaccess-dashboard.png" alt="GoAccess" /><figcaption>GoAccess</figcaption>
|
|
|
+</figure>
|
|
|
+<p>它可以轻松统计出访问概况、动态页面请求、静态页面请求(如图片、样式表、脚本等)、访客排名,访客使用的操作系统,访客使用的浏览器,来路域名,404 错误,搜索爬虫,搜索关键词等等。</p>
|
|
|
+<p>而,我们所要做的只需要运行:</p>
|
|
|
+<pre class="shell"><code>goaccess -f access.log</code></pre>
|
|
|
+<h2 id="fabric">Fabric</h2>
|
|
|
+<p>因为我的博客是基于Django框架而开发的,我偏向于使用Python作为开发语言,所以我需要选择了Fabric作为运维工具。</p>
|
|
|
+<blockquote>
|
|
|
+<p>Fabric 是一个 Python (2.5-2.7) 库和命令行工具,用来流水线化执行 SSH以部署应用或系统管理任务。</p>
|
|
|
+</blockquote>
|
|
|
+<p>更具体地说,Fabric 是:</p>
|
|
|
+<ul>
|
|
|
+<li>一个让你通过 命令行 执行 任意 Python 函数 的工具;</li>
|
|
|
+<li>一个让通过 SSH 执行 Shell 命令更加 容易 和 蟒样 的子程序库(建立于一个更低层次的库)。</li>
|
|
|
+</ul>
|
|
|
+<h2 id="docker">Docker</h2>
|
|
|
+<blockquote>
|
|
|
+<p>Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。</p>
|
|
|
+</blockquote>
|
|
|
<h1 id="硬件篇">硬件篇</h1>
|
|
|
<h2 id="raspberry-pi">Raspberry Pi</h2>
|
|
|
<blockquote>
|
|
@@ -397,20 +456,34 @@ Main resource server response time | %</code></pre>
|
|
|
<blockquote>
|
|
|
<p>Arduino,是一个开放源代码的单芯片微控制器,它使用了Atmel AVR单片机,采用了开放源代码的软硬件平台,建构于简易输出/输入(simple I/O)界面板,并且具有使用类似Java、C语言的Processing/Wiring开发环境。</p>
|
|
|
</blockquote>
|
|
|
-<h3 id="arduino-yun">Arduino Yun</h3>
|
|
|
-<h3 id="arduino-uno">Arduino Uno</h3>
|
|
|
-<h3 id="arduino-adk">Arduino ADK</h3>
|
|
|
-<h3 id="arduino-lilypad">Arduino Lilypad</h3>
|
|
|
+<p>我拥有下面的一些开发板:</p>
|
|
|
+<ul>
|
|
|
+<li>Arduino Yun</li>
|
|
|
+<li>Arduino Uno</li>
|
|
|
+<li>Arduino ADK</li>
|
|
|
+<li>Arduino Lilypad</li>
|
|
|
+</ul>
|
|
|
<h2 id="nodemcu">NodeMCU</h2>
|
|
|
<blockquote>
|
|
|
<p>NodeMCU,是一个开源的物联网平台。 它使用Lua脚本语言编程。该平台基于eLua 开源项目,底层使用ESP8266 sdk 0.9.5版本。该平台使用了很多开源项目, 例如 lua-cjson, spiffs[5]. NodeMCU包含了可以运行在 esp8266 Wi-Fi SoC芯片之上的固件,以及基于ESP-12模组的硬件。</p>
|
|
|
</blockquote>
|
|
|
<h1 id="api">API</h1>
|
|
|
-<h2 id="postman-1">Postman</h2>
|
|
|
<h2 id="moco">Moco</h2>
|
|
|
+<blockquote>
|
|
|
+<p>Moco是一个简单搭建模拟服务器的程序库/工具,它是一个简单搭建 stub 的框架,主要用于测试和集成。</p>
|
|
|
+</blockquote>
|
|
|
+<p>这个工具的目的主要是针对于前后端分离的Web应用来说,特别是基于HTTP协议的集成——Web Service、REST等。</p>
|
|
|
+<p>不过如果你们不写测试的话,这个工具就没啥用。</p>
|
|
|
<h2 id="swagger">Swagger</h2>
|
|
|
+<blockquote>
|
|
|
+<p>Swagger是一种和语言无关的规范和框架,用于定义服务接口,主要用于描述RESTful的API。它专注于为API创建优秀的文档和客户端库。支持Swagger的API可以为API方法生成交互式的文档,让用户可以通过以可视化的方式试验,查看请求和响应、头文件和返回代码,从而发现API的功能。它本身就非常强大,但是Swagger框架还支持为多种流行的语言——包括JavaScript、Python、Ruby、Java、Scala等等——生成客户端代码。</p>
|
|
|
+</blockquote>
|
|
|
<h1 id="cli">CLI</h1>
|
|
|
<h2 id="tree">tree</h2>
|
|
|
+<blockquote>
|
|
|
+<p>tree命令可以以树形结构显示文件目录结构,它非常适合于我们给别人介绍我们的文件目录的组成框架,同时该命令使用适当的参数也可以将命令结果输出到文本文件中。</p>
|
|
|
+</blockquote>
|
|
|
+<p>这个命令非常适用于我们写作的时候用的,如下就是toolbox下的chapters目录:</p>
|
|
|
<pre class="shell"><code>chapters
|
|
|
├── api.md
|
|
|
├── backend.md
|
|
@@ -424,10 +497,13 @@ Main resource server response time | %</code></pre>
|
|
|
|
|
|
0 directories, 9 files</code></pre>
|
|
|
<h2 id="sl">sl</h2>
|
|
|
+<p>这是一个神奇的命令行工具,由于两个手的手速不致,我经常将ls敲成sl。而在Ubuntu上则会提示你,你是不是要安装sl,于是我就安装了。然后:</p>
|
|
|
<figure>
|
|
|
<img src="http://toolbox.phodal.com/images/cli/sl-tool.jpg" alt="SL" /><figcaption>SL</figcaption>
|
|
|
</figure>
|
|
|
-<h2 id="curl">curl</h2>
|
|
|
+<p>每次我敲错命令的时候,都会有这个神奇的火车头出现,火车头动的期间就只能等它完成。每次这个时候,就说明我们需要休息。</p>
|
|
|
+<h2 id="curl">cURL</h2>
|
|
|
+<p>cURL利用URL语法在命令行方式下工作的开源文件传输工具。它是一个很常用的命令,也可以支持文件上传和下载。</p>
|
|
|
<pre class="shell"><code>curl -I -s -A 'Googlebot' www.phodal.com
|
|
|
HTTP/1.1 200 OK
|
|
|
Server: mokcy/0.17.9
|
|
@@ -476,5 +552,8 @@ Cache-Control: max-age=0, no-cache</code></pre>
|
|
|
<p>Octave是一个旨在提供与Matlab语法兼容的开放源代码科学计算及数值分析的工具;</p>
|
|
|
</blockquote>
|
|
|
<h2 id="numpy">Numpy</h2>
|
|
|
+<blockquote>
|
|
|
+<p>NumPy是Python语言的一个扩充程序库。支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。NumPy的前身Numeric最早是由Jim Hugunin与其它协作者共同开发,2005年,Travis Oliphant在Numeric中结合了另一个同性质的程序库Numarray的特色,并加入了其它扩展而开发了NumPy。NumPy为开放源代码并且由许多协作者共同维护开发。</p>
|
|
|
+</blockquote>
|
|
|
</body>
|
|
|
</html>
|