<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>.-- .. - .... .-.. --- ...- .</title><link>https://gnailuy.com/</link><description>Recent content on .-- .. - .... .-.. --- ...- .</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Sun, 17 Mar 2024 23:35:48 +0800</lastBuildDate><atom:link href="https://gnailuy.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Accept imperfectness</title><link>https://gnailuy.com/me/2024/03/17/imperfectness/</link><pubDate>Sun, 17 Mar 2024 23:35:48 +0800</pubDate><guid>https://gnailuy.com/me/2024/03/17/imperfectness/</guid><description>&lt;p&gt;The most important thing I learnt since the middle of 2023 after I returned from a long road trip to the north west China&#10;is to accept imperfectness.&lt;/p&gt;</description></item><item><title>Email address at my own domain</title><link>https://gnailuy.com/me/2023/12/08/email-at-my-own-domain/</link><pubDate>Fri, 08 Dec 2023 12:00:00 +0800</pubDate><guid>https://gnailuy.com/me/2023/12/08/email-at-my-own-domain/</guid><description>&lt;p&gt;Enabled my own email address &lt;code&gt;@gnailuy.com&lt;/code&gt; using Cloudflare and Gmail for free.&#10;Here is a brief note.&lt;/p&gt;</description></item><item><title>A few commonly used distributed locks</title><link>https://gnailuy.com/dataplatform/2023/10/28/distributed-locking/</link><pubDate>Sat, 28 Oct 2023 08:58:03 +0800</pubDate><guid>https://gnailuy.com/dataplatform/2023/10/28/distributed-locking/</guid><description>&lt;p&gt;Note on some commonly used distributed locks.&lt;/p&gt;</description></item><item><title>Zero copy in Linux</title><link>https://gnailuy.com/linux/2023/09/21/zero-copy-in-linux/</link><pubDate>Thu, 21 Sep 2023 21:17:10 +0800</pubDate><guid>https://gnailuy.com/linux/2023/09/21/zero-copy-in-linux/</guid><description>&lt;p&gt;In many applications such as web servers,&#10;it is a common task to read disk file and write to the network interface directly without any modification.&#10;Zero copy frees the CPU from copying data from one memory area to another.&#10;This note is a brief on zero copy in Linux.&lt;/p&gt;</description></item><item><title>Linux I/O buffering and DMA</title><link>https://gnailuy.com/linux/2023/07/18/buffered-io-and-dma/</link><pubDate>Tue, 18 Jul 2023 22:38:37 +0800</pubDate><guid>https://gnailuy.com/linux/2023/07/18/buffered-io-and-dma/</guid><description>&lt;p&gt;A brief note on how I/O in Linux is buffered and how DMA frees the CPU from one phase of data copying.&lt;/p&gt;</description></item><item><title>Filter paths and merge into another Git repository</title><link>https://gnailuy.com/linux/2023/06/06/filter-paths-and-merge-into-another-repository/</link><pubDate>Tue, 06 Jun 2023 21:31:24 +0800</pubDate><guid>https://gnailuy.com/linux/2023/06/06/filter-paths-and-merge-into-another-repository/</guid><description>&lt;p&gt;An example to filter out a subset of blobs/trees in a Git project, retain the history, and merge it into another Git project.&lt;/p&gt;</description></item><item><title>A tour to GCC and GDB</title><link>https://gnailuy.com/linux/2022/05/15/compiler-and-debugger-tour/</link><pubDate>Sun, 15 May 2022 16:09:18 +0800</pubDate><guid>https://gnailuy.com/linux/2022/05/15/compiler-and-debugger-tour/</guid><description>&lt;p&gt;An introductory tour to the &lt;a href="https://gcc.gnu.org/"&gt;&lt;code&gt;GNU Compiler Collection&lt;/code&gt;&lt;/a&gt; and the &lt;a href="https://www.sourceware.org/gdb/"&gt;&lt;code&gt;GUN Project Debugger&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>A tour to common build tools</title><link>https://gnailuy.com/linux/2022/04/30/build-tools-tour/</link><pubDate>Sat, 30 Apr 2022 23:18:45 +0800</pubDate><guid>https://gnailuy.com/linux/2022/04/30/build-tools-tour/</guid><description>&lt;p&gt;An introductory tour to the &lt;a href="https://www.gnu.org/software/make/"&gt;&lt;code&gt;GNU Make&lt;/code&gt;&lt;/a&gt;, &lt;a href="https://www.gnu.org/software/automake/manual/html_node/Autotools-Introduction.html"&gt;&lt;code&gt;GNU Autotools&lt;/code&gt;&lt;/a&gt;, &lt;a href="https://cmake.org/"&gt;&lt;code&gt;CMake&lt;/code&gt;&lt;/a&gt; build tools.&lt;/p&gt;</description></item><item><title>A clash script on Ubuntu Gnome</title><link>https://gnailuy.com/linux/2022/03/18/clash-script-on-ubuntu/</link><pubDate>Sat, 19 Mar 2022 02:12:01 +0800</pubDate><guid>https://gnailuy.com/linux/2022/03/18/clash-script-on-ubuntu/</guid><description>&lt;p&gt;又是一些在翻墙上面花的时间，一些被浪费掉的生命。写一下记下来，下次就少浪费一些。&lt;/p&gt;</description></item><item><title>Process management: Scheduling</title><link>https://gnailuy.com/linux/2022/03/12/process-scheduler/</link><pubDate>Sat, 12 Mar 2022 10:23:36 +0800</pubDate><guid>https://gnailuy.com/linux/2022/03/12/process-scheduler/</guid><description>&lt;p&gt;Process scheduling in &lt;a href="https://www.kernel.org/"&gt;the Linux kernel&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Process management: Overview</title><link>https://gnailuy.com/linux/2022/01/21/process-management/</link><pubDate>Fri, 21 Jan 2022 20:42:06 +0800</pubDate><guid>https://gnailuy.com/linux/2022/01/21/process-management/</guid><description>&lt;p&gt;An overview of process management in &lt;a href="https://www.kernel.org/"&gt;the Linux kernel&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Linux kernel overview</title><link>https://gnailuy.com/linux/2021/12/09/kernel-overview/</link><pubDate>Thu, 09 Dec 2021 10:37:36 +0800</pubDate><guid>https://gnailuy.com/linux/2021/12/09/kernel-overview/</guid><description>&lt;p&gt;An overview and a study road map of operating systems and &lt;a href="https://www.kernel.org/"&gt;the Linux kernel&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Create a new Git repository from subdirectories of an existing one</title><link>https://gnailuy.com/linux/2021/06/03/git-filter-repo/</link><pubDate>Thu, 03 Jun 2021 16:57:31 +0800</pubDate><guid>https://gnailuy.com/linux/2021/06/03/git-filter-repo/</guid><description>&lt;p&gt;We&amp;rsquo;ve been developing a project in a subfolder of the repository of it&amp;rsquo;s only consumer project for a while.&#10;And recently this project has been proven to have wider usage in other projects, so we decided to move it into a standalone repository of it&amp;rsquo;s own.&#10;And I got this task.&lt;/p&gt;</description></item><item><title>Update docker restart policy</title><link>https://gnailuy.com/linux/2019/05/04/update-docker-restart-policy/</link><pubDate>Sun, 05 May 2019 00:14:54 +0800</pubDate><guid>https://gnailuy.com/linux/2019/05/04/update-docker-restart-policy/</guid><description>&lt;p&gt;网站好像挂了几天都没有发现，今天才看到，刚刚给恢复了。我的网站运行在几个 &lt;a href="https://github.com/gnailuy/githook/blob/master/README.md"&gt;Docker 容器&lt;/a&gt;里，&#10;刚才查了一下&lt;a href="https://docs.docker.com/config/containers/start-containers-automatically/"&gt;文档&lt;/a&gt;，发现 Docker 是支持四种重启策略的：&lt;code&gt;no&lt;/code&gt;, &lt;code&gt;on-failure&lt;/code&gt;, &lt;code&gt;always&lt;/code&gt; 和 &lt;code&gt;unless-stopped&lt;/code&gt;。&lt;/p&gt;</description></item><item><title>Vim 配置和 VsVim 配置冲突</title><link>https://gnailuy.com/linux/2019/05/04/visual-studio-vim-plugin-conflicts-with-vim/</link><pubDate>Sun, 05 May 2019 00:14:54 +0800</pubDate><guid>https://gnailuy.com/linux/2019/05/04/visual-studio-vim-plugin-conflicts-with-vim/</guid><description>&lt;p&gt;假期前我在 Windows 本地配置了 Vim，使用了 &lt;a href="https://github.com/gnailuy/spf13-vim-local"&gt;spf13&lt;/a&gt; 的配置，然后 Visual Studio 里的 VsVim 就挂了。&lt;/p&gt;</description></item><item><title>Git 推送到多个仓库</title><link>https://gnailuy.com/linux/2019/02/25/git-push-to-multiple-repositories/</link><pubDate>Mon, 25 Feb 2019 20:06:10 +0800</pubDate><guid>https://gnailuy.com/linux/2019/02/25/git-push-to-multiple-repositories/</guid><description>&lt;p&gt;Github 现在支持无限私有仓库了，所以我把之前保存在 Bitbucket 上的一些仓库转移到了这里来。&#10;不过原来 Bitbucket 上的仓库也没有删掉，我是想可以做一个备份仓库来用。&lt;/p&gt;&#10;&lt;p&gt;刚开始我是想这样做：&#10;把仓库转移到 Github 上，origin 的 fetch 的 push 都设置为 Github 仓库；&#10;然后 Bitbucket 作为另一个 remote，每次更新了 origin 之后再 push 到这里来。&lt;/p&gt;&#10;&lt;p&gt;不过后来我看到 Git 的 remote 是可以设置多个 URL 的，于是就改成了下面这个做法。&lt;/p&gt;</description></item><item><title>程序员 Git 技能进阶</title><link>https://gnailuy.com/linux/2018/06/29/git-skills-you-need/</link><pubDate>Fri, 29 Jun 2018 17:16:10 +0800</pubDate><guid>https://gnailuy.com/linux/2018/06/29/git-skills-you-need/</guid><description>&lt;p&gt;最近为一个 Git 课程写了一套将近七万字的教案，正在由我们的设计师同学制作视频课程。&#10;尽管是做一套初等水平的课程，但是本着&amp;quot;取乎其上，得乎其中&amp;quot;的精神，我通读了一些 Git 的书系统学习。&#10;因此，写完这套教案稿子，我自己也对 Git 的方方面面有了更深入的理解。&lt;/p&gt;&#10;&lt;p&gt;作为一个程序员，我使用 Git 已经有很多年了，自认为水平也不差，能够解决日常开发中各种各样的问题。&#10;然而写完这个课程我才意识到，如果不是这次写课的契机，可能我还会长期保持掌握点 Git 皮毛的状态了。&lt;/p&gt;&#10;&lt;p&gt;如果你和我一样长期使用 Git，但还没有去深入了解过它，这里我列出几个技能进阶的方向，可以找资料学习一下。&lt;/p&gt;</description></item><item><title>Python 使用 pdfkit 生成 PDF 文档</title><link>https://gnailuy.com/linux/2018/04/17/pdfkit/</link><pubDate>Tue, 17 Apr 2018 11:21:31 +0800</pubDate><guid>https://gnailuy.com/linux/2018/04/17/pdfkit/</guid><description>&lt;p&gt;最近有个动态生成 PDF 文档的需求，需要做一个 API，接收 POST 数据，生成 PDF 文档并返回文件对象地址。&#10;我调研了一下，测试了两个方案，最后选择了使用 &lt;a href="https://pypi.org/project/pdfkit/"&gt;pdfkit&lt;/a&gt; 这个库来实现。&lt;/p&gt;</description></item><item><title>推荐一个 YouTube 频道: Explanimator</title><link>https://gnailuy.com/internet/2018/03/19/explanimator-by-scientist/</link><pubDate>Mon, 19 Mar 2018 16:30:06 +0800</pubDate><guid>https://gnailuy.com/internet/2018/03/19/explanimator-by-scientist/</guid><description>&lt;p&gt;最近在做编程教育相关的工作，写了一些在线视频的稿子，也顺便看了不少别人的视频。&#10;今天发现一个很有意思的 YouTube 频道叫 &lt;a href="https://www.youtube.com/channel/UCVQmx3DKwnAvsEvzmZNkZwQ"&gt;Explanimator&lt;/a&gt;，&#10;是 New Scientist 出品的，看了几集，感觉很不错。&lt;/p&gt;&#10;&lt;p&gt;这上面的视频都比较短小，但是主题涉及宇宙、信息、人工智能、拓扑、社会、历史、考古等方方面面，&#10;语言通俗，内容有趣。看了以后感到非常高兴。&#10;另外，&lt;a href="https://www.youtube.com/user/newscientistvideo"&gt;New Scientist&lt;/a&gt; 的主频道也很棒，我就是在这里看到 Explanimator 的。&lt;/p&gt;&#10;&lt;p&gt;越过长城，你就能得到一切。&lt;/p&gt;</description></item><item><title>一分钟 ICO 教程</title><link>https://gnailuy.com/internet/2018/01/12/ico-with-parity/</link><pubDate>Sat, 13 Jan 2018 00:27:06 +0800</pubDate><guid>https://gnailuy.com/internet/2018/01/12/ico-with-parity/</guid><description>&lt;p&gt;最近有个标题是《10 分钟搞定 ICO》的文章很火，&#10;介绍了如何用 &lt;a href="https://www.ethereum.org/"&gt;Ethereum&lt;/a&gt; 官方 Wallet 程序以及官方 &lt;a href="https://www.ethereum.org/token"&gt;Demo&lt;/a&gt; 代码，&#10;来发行一个新数字代币的方法。&#10;当然文章并不是真让大家都去发行自己的数字货币。&#10;通过揭示创建新代币可以几乎无成本这件事，作者给大家揭露了一些当前区块链领域的乱象。&lt;/p&gt;&#10;&lt;p&gt;不过 10 分钟文没有涉及太多原理知识，本文我来写一写技术，希望能用简单通俗的描述，&#10;帮助大家多了解新技术，提高辨识力。&lt;/p&gt;&#10;&lt;p&gt;BTW，如果你确实想创造一个数字代币，后面我介绍一个一分钟搞定的办法。&lt;/p&gt;</description></item><item><title>用 Parity 作为 Ethereum 客户端</title><link>https://gnailuy.com/internet/2018/01/11/using-parity-as-the-ethereum-client/</link><pubDate>Thu, 11 Jan 2018 18:36:10 +0800</pubDate><guid>https://gnailuy.com/internet/2018/01/11/using-parity-as-the-ethereum-client/</guid><description>&lt;p&gt;最近几天看了很多关于 &lt;a href="https://www.ethereum.org/"&gt;Ethereum&lt;/a&gt; 的资料，学习了一下 DAPP 开发相关的知识。&#10;感觉区块链还是很有意思的，我打算再深入学习学习，看看有什么有趣的应该可以参与开发开发。&#10;要搞事情，第一步还是得把客户端搭建起来，我试了试官方 Ethereum Wallet 和 Parity，&#10;感觉这个 &lt;a href="https://www.parity.io/"&gt;Parity&lt;/a&gt; 非常好用，值得推荐，所以今天先记叙一下客户端的事情。&lt;/p&gt;</description></item><item><title>切换到了美区 Apple ID, iCloud 和 App Store</title><link>https://gnailuy.com/internet/2018/01/10/network-nomad-switched-to-the-us-region-on-app-store/</link><pubDate>Thu, 11 Jan 2018 00:38:42 +0800</pubDate><guid>https://gnailuy.com/internet/2018/01/10/network-nomad-switched-to-the-us-region-on-app-store/</guid><description>&lt;p&gt;最近贵州一个公司火了。&#10;本人多年网络难民，不翻墙不算上网，之前眼看着 VPN APP 越封越少，虽然早就有放弃国区的想法，&#10;但因为自己用的翻墙工具还健在，就一直在拖延。&#10;这次贵州事件消息出来之后，出于不想把私人数据交给党的初心，我才终于下定决心搞了。&#10;&amp;ldquo;干&amp;rdquo;。&#10;于是今晚我发挥了一下折腾精神，把自己的 Apple ID 成功切换到了美区。&#10;我并不是新注册了一个美区帐号，而是把国内帐号切换到了美区。&lt;/p&gt;&#10;&lt;p&gt;我切换成功主要依赖手中这张招行全币种信用卡(VISA 卡)和 Paypal，其他也有一些便利条件，&#10;比如我有个开通多年的 Google Voice 美国电话号码，但不知道是不是必须的。&#10;总之折腾起来挺麻烦的，感谢贵州，感谢党，感谢库克。&lt;/p&gt;</description></item><item><title>Excluding directories in a grep search</title><link>https://gnailuy.com/linux/2017/03/30/find-a-pattern-from-a-large-repository/</link><pubDate>Thu, 30 Mar 2017 11:57:29 +0800</pubDate><guid>https://gnailuy.com/linux/2017/03/30/find-a-pattern-from-a-large-repository/</guid><description>&lt;p&gt;When we want to look for some string patterns from files in a source code repository,&#10;say a Git repository.&#10;We often want to ignore those hidden directories such as &lt;code&gt;.git&lt;/code&gt;, &lt;code&gt;.github&lt;/code&gt;, etc.&lt;/p&gt;</description></item><item><title>实践 GTD 的一些心得</title><link>https://gnailuy.com/me/2016/12/31/gtd-and-2016/</link><pubDate>Sat, 31 Dec 2016 21:00:27 +0800</pubDate><guid>https://gnailuy.com/me/2016/12/31/gtd-and-2016/</guid><description>&lt;p&gt;从 2014 年 10 月正式购买 &lt;a href="http://doit.im/"&gt;doit.im&lt;/a&gt; 服务开始，到现在已经续了两次年费了。&#10;正好今天是 2016 年最后一天，坐在家里没什么事情，趁机回顾一下这两年实践&#10;GTD 的心得，总结经验吸取教训，希望 2017 年能够&lt;strong&gt;完成&lt;/strong&gt;更多事情，实现更多目标。&lt;/p&gt;&#10;&lt;p&gt;向着自由。&lt;/p&gt;</description></item><item><title>错过一次摇号 /(ㄒoㄒ)/~~</title><link>https://gnailuy.com/me/2016/12/22/the-yaohao-system-is-designed-by-sha-x/</link><pubDate>Thu, 22 Dec 2016 14:21:33 +0800</pubDate><guid>https://gnailuy.com/me/2016/12/22/the-yaohao-system-is-designed-by-sha-x/</guid><description>&lt;p&gt;呃，事情是这样的：&lt;/p&gt;</description></item><item><title>Docker 开发环境</title><link>https://gnailuy.com/linux/2016/11/22/docker-dev-env/</link><pubDate>Tue, 22 Nov 2016 16:25:29 +0800</pubDate><guid>https://gnailuy.com/linux/2016/11/22/docker-dev-env/</guid><description>&lt;p&gt;Docker 开发环境就建在 Docker 容器里，比较容易搭建。&#10;本地搞一个 Docker 开发环境比较方便代码阅读、修改和调试，&#10;尽管&lt;a href="https://docs.docker.com/opensource/project/set-up-dev-env/"&gt;官方文档&lt;/a&gt; 中的指引已经很详细，我还是记一个符合国情的流水账。&lt;/p&gt;&#10;&lt;p&gt;要理解下面文章写的内容，需要熟悉 Docker，并熟悉 Docker 开发环境构建的&lt;a href="https://docs.docker.com/opensource/project/set-up-dev-env/"&gt;官方文档&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>使用 OCR 技术从 PDF 扫描文档中识别文字</title><link>https://gnailuy.com/mac/2016/10/19/pdf-ocr/</link><pubDate>Wed, 19 Oct 2016 16:47:27 +0800</pubDate><guid>https://gnailuy.com/mac/2016/10/19/pdf-ocr/</guid><description>&lt;p&gt;今天拿到一个扫描的 PDF 文档，希望从里面搜索一些文字内容出来，于是调查了一下 OCR&#10;工具和库，通过简单的命令将 PDF 文档先转换成图片，然后识别出文字来。&lt;/p&gt;&#10;&lt;p&gt;这里记个流水账先。&lt;/p&gt;</description></item><item><title>吴哥，吴哥</title><link>https://gnailuy.com/me/2016/09/27/angkor/</link><pubDate>Tue, 27 Sep 2016 14:56:17 +0800</pubDate><guid>https://gnailuy.com/me/2016/09/27/angkor/</guid><description>&lt;p&gt;这个草稿放在 &lt;code&gt;_drafts&lt;/code&gt; 目录下已经很久了，当年从吴哥窟回来打算写一篇文章，但是没有写出来。&lt;/p&gt;&#10;&lt;p&gt;现在估计也写不出来了。&lt;/p&gt;&#10;&lt;p&gt;COVID-19 这么久了，很久没有出去玩儿，很想念自由的时光。&lt;/p&gt;</description></item><item><title>Dremel 论文中的列式存储</title><link>https://gnailuy.com/dataplatform/2016/04/17/nested-columnar-storage/</link><pubDate>Sun, 17 Apr 2016 16:11:18 +0800</pubDate><guid>https://gnailuy.com/dataplatform/2016/04/17/nested-columnar-storage/</guid><description>&lt;p&gt;在 &lt;a href="http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/36632.pdf"&gt;Dremel 论文&lt;/a&gt;中，Google 介绍了将嵌套 Schema&#10;的数据使用列式方式存储的方法，提供了一个高效的列式存储格式模板。&#10;我觉得论文中的介绍方式并不太直接，因此本文尝试重新阐述一下这个方法，&#10;希望有一个更清晰的解释。&lt;/p&gt;</description></item><item><title>Happy New Year</title><link>https://gnailuy.com/me/2016/01/06/new-year/</link><pubDate>Wed, 06 Jan 2016 12:05:55 +0800</pubDate><guid>https://gnailuy.com/me/2016/01/06/new-year/</guid><description>&lt;p&gt;I have just written another email to the future me of 2017 on the &lt;a href="https://www.futureme.org/"&gt;futureme.org&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Hadoop MapReduce 任务设计的几个常用技术</title><link>https://gnailuy.com/dataplatform/2015/11/22/common-techniques-for-mapreduce/</link><pubDate>Sun, 22 Nov 2015 15:18:50 +0800</pubDate><guid>https://gnailuy.com/dataplatform/2015/11/22/common-techniques-for-mapreduce/</guid><description>&lt;p&gt;MapReduce 计算模型简单而有效，很多常见的计算问题都可以使用&#10;Input -&amp;gt; Map -&amp;gt; Shuffle &amp;amp; Sort -&amp;gt; Reduce -&amp;gt; Output&#10;这样简单的流程来实现，并在 Hadoop 这样的系统上进行大规模、分布式的数据处理。&#10;尽管目前 Spark 这样较新的大数据处理模型/框架日益流行，&#10;然而新计算模型的出现并不意味着 MapReduce 会被立刻取代，&#10;而是意味着我们解决问题的时候有了更多的思路和方法，&#10;也意味着一个数据工程师有了更多的工具需要学习、掌握和选择。&lt;/p&gt;</description></item><item><title>友盟数据平台 -- 从 MapReduce 说到 Spark</title><link>https://gnailuy.com/dataplatform/2015/11/09/from-mapreduce-to-spark/</link><pubDate>Tue, 10 Nov 2015 03:45:35 +0800</pubDate><guid>https://gnailuy.com/dataplatform/2015/11/09/from-mapreduce-to-spark/</guid><description>&lt;p&gt;&lt;a href="http://www.umeng.com/"&gt;友盟&lt;/a&gt;数据平台承担了大量 APP 的统计分析任务，为开发者计算 APP&#10;的新增/活跃用户、用户留存/沉默、用户访问路径、自定义事件等丰富、多维、&#10;精准的统计分析指标，并在友盟的海量数据上进行深度挖掘。&#10;由于友盟服务的开发者众多，很多优秀的 APP 也用户量巨大，为了能够全面、准确&#10;并且及时的为开发者提供数据，数据平台面临了很大的挑战。&lt;/p&gt;</description></item><item><title>Po 一张合影</title><link>https://gnailuy.com/me/2015/08/16/photo-of-us/</link><pubDate>Mon, 17 Aug 2015 00:50:45 +0800</pubDate><guid>https://gnailuy.com/me/2015/08/16/photo-of-us/</guid><description>&lt;p&gt;如题。&lt;/p&gt;&#10;&lt;p&gt;As titled.&lt;/p&gt;</description></item><item><title>Mac OS 中使用 launchd 自动启动 Shadowsocks</title><link>https://gnailuy.com/mac/2015/05/18/launchd-configuration-for-shadowsocks/</link><pubDate>Mon, 18 May 2015 22:34:26 +0800</pubDate><guid>https://gnailuy.com/mac/2015/05/18/launchd-configuration-for-shadowsocks/</guid><description>&lt;p&gt;&lt;a href="http://shadowsocks.org/en/index.html"&gt;Shadowsocks&lt;/a&gt; 是一个人见人爱花见花开的加密 Sock5 代理，本朝翻越运动员都很喜欢它。&#10;Shadowsocks 在 Mac 上有好几个好用的&lt;a href="http://shadowsocks.org/en/download/clients.html"&gt;客户端&lt;/a&gt;，其中 &lt;a href="https://github.com/shadowsocks/shadowsocks-go"&gt;shadowsocks-go&lt;/a&gt;&#10;是一个命令行版客户端，最适合自动化。&#10;这篇文章介绍如何使用 Mac 上的 &lt;a href="http://launchd.info/"&gt;launchd&lt;/a&gt; 自动启动 Shadowsocks 代理。&lt;/p&gt;</description></item><item><title>悬空寺、恒山、云冈石窟和大同</title><link>https://gnailuy.com/me/2015/03/20/datong/</link><pubDate>Sat, 21 Mar 2015 01:31:18 +0800</pubDate><guid>https://gnailuy.com/me/2015/03/20/datong/</guid><description>&lt;p&gt;说了好久要出去玩，就一直这么说着。终于，上周末两天的时间，和小橙子去了趟大同。&#10;回来小橙子负责写&lt;a href="http://www.douban.com/note/489307782/"&gt;文艺的部分&lt;/a&gt;，我就负责把攻略写下来吧。&lt;/p&gt;</description></item><item><title>Portable Installation of TexLive</title><link>https://gnailuy.com/linux/2015/02/07/texlive-portable/</link><pubDate>Sun, 08 Feb 2015 01:35:07 +0800</pubDate><guid>https://gnailuy.com/linux/2015/02/07/texlive-portable/</guid><description>&lt;p&gt;这几天准备用 LaTeX 写点东西，于是把 &lt;a href="https://www.tug.org/texlive/"&gt;TexLive&lt;/a&gt; 安装到了&#10;Virtual Box 上的一台 Archlinux 虚拟机上去。&lt;/p&gt;</description></item><item><title>校验和修复 MySQL 主从数据库一致性</title><link>https://gnailuy.com/linux/2015/01/22/using-percona-toolkit-to-sync-mysql/</link><pubDate>Fri, 23 Jan 2015 02:14:59 +0800</pubDate><guid>https://gnailuy.com/linux/2015/01/22/using-percona-toolkit-to-sync-mysql/</guid><description>&lt;p&gt;这两天学习了一下 &lt;a href="http://www.percona.com/"&gt;Percona.com&lt;/a&gt; 提供的两个工具，&#10;校验了 MySQL 里一个数据库里所有表的主从一致性，并修复发现的不一致。&lt;/p&gt;</description></item><item><title>在 Vim 中使用 Git 的插件: Fugitive</title><link>https://gnailuy.com/linux/2014/12/12/using-git-in-vim-with-fugitive/</link><pubDate>Sat, 13 Dec 2014 01:37:30 +0800</pubDate><guid>https://gnailuy.com/linux/2014/12/12/using-git-in-vim-with-fugitive/</guid><description>&lt;p&gt;刚才在 Vim 中编辑一些 Git 管理的 python 代码，改了一段时间代码后，&#10;想看一下修改内容和原始内容的对比。&lt;/p&gt;</description></item><item><title>十二月了</title><link>https://gnailuy.com/me/2014/12/01/december/</link><pubDate>Tue, 02 Dec 2014 00:34:38 +0800</pubDate><guid>https://gnailuy.com/me/2014/12/01/december/</guid><description>&lt;p&gt;这就到了 2014 年的最后一个月了。&lt;/p&gt;</description></item><item><title>我为什么爱存不存</title><link>https://gnailuy.com/me/2014/09/23/icbc/</link><pubDate>Tue, 23 Sep 2014 11:38:28 +0800</pubDate><guid>https://gnailuy.com/me/2014/09/23/icbc/</guid><description>&lt;p&gt;刚才我司最漂亮的薪酬福利专员同学告诉我这个月要补发年终奖了，&#10;于是我兴冲冲的打开工商银行的手机银行想查一下余额，输入密码之后，我惊愕了。&lt;/p&gt;</description></item><item><title>马上又要中秋节了</title><link>https://gnailuy.com/me/2014/09/05/mid-autumn-festival/</link><pubDate>Fri, 05 Sep 2014 16:58:15 +0800</pubDate><guid>https://gnailuy.com/me/2014/09/05/mid-autumn-festival/</guid><description>&lt;p&gt;马上就中秋假期了，我表示很开心，因为费尽千辛万苦终于刷到了火车票，可以回家过节和玩耍了。&lt;/p&gt;</description></item><item><title>用 Github Webhook 自动更新 Jekyll</title><link>https://gnailuy.com/jekyll/2014/08/29/github-webhook/</link><pubDate>Fri, 29 Aug 2014 13:49:29 +0800</pubDate><guid>https://gnailuy.com/jekyll/2014/08/29/github-webhook/</guid><description>&lt;p&gt;昨天买了个 DigitalOcean (这是我的 &lt;a href="https://www.digitalocean.com/?refcode=e10b8abc5987"&gt;Refcode&lt;/a&gt;)，用优惠码 &lt;code&gt;ALLSSD10&lt;/code&gt; 换了 $10，然后迅速创建了一个 $5/mo 的节点，连夜把博客迁移过来了。&#10;前阵子换了 Jekyll 以后，我就一直把博客的源代码放在 &lt;a href="https://github.com/gnailuy/gnailuy.com"&gt;Github&lt;/a&gt; 上，而站点本身还是放在了之前 WordPress 的 Web Root，用原来的 Apache 来做服务。&#10;由于之前我只在笔记本上搭建了 Jekyll 环境，所以有新文章和新修改时候，我需要在本地 &lt;code&gt;jekyll build&lt;/code&gt;，打包上传 &lt;code&gt;_site&lt;/code&gt; 目录，然后替换到线上更新站点，&#10;使 Github 沦落成了一个保存代码的地方。&lt;/p&gt;</description></item><item><title>开心事儿</title><link>https://gnailuy.com/me/2014/08/20/girl/</link><pubDate>Wed, 20 Aug 2014 15:49:25 +0800</pubDate><guid>https://gnailuy.com/me/2014/08/20/girl/</guid><description>&lt;p&gt;这个月有件很开心的事儿。&lt;/p&gt;</description></item><item><title>失去写作的能力了</title><link>https://gnailuy.com/me/2014/06/06/losing/</link><pubDate>Fri, 06 Jun 2014 11:04:00 +0800</pubDate><guid>https://gnailuy.com/me/2014/06/06/losing/</guid><description>&lt;p&gt;刚才突然有些想法，感觉想写下来，但是好像已经失去了写作的能力了似的，不知道如何下笔。&#10;感慨来感慨去，只能拿年龄来搪塞，说成熟了就收敛了，不再外露和抱怨，于是也写不出东西了。&lt;/p&gt;</description></item><item><title>最近在看 BBC 的纪录片</title><link>https://gnailuy.com/me/2014/05/25/bbc-documentaries/</link><pubDate>Sun, 25 May 2014 22:53:00 +0800</pubDate><guid>https://gnailuy.com/me/2014/05/25/bbc-documentaries/</guid><description>&lt;p&gt;最近网上罗到一份 BBC 纪录片的&lt;a href="https://www.evernote.com/shard/s258/sh/69ab022c-5c93-4055-a94a-a4b516d021b8/873ceaf0af47f9b5deb847e856de0e38"&gt;目录&lt;/a&gt;，想到自己目前的文化水平这么令人捉急，&#10;决定工作之余拿万恶的资本主义好片充实一下自己，为以后约会相亲聊妹子时假装有文化打下坚实的基础。&#10;最初我是打算每篇都整理一些槽点出来，以便约会前随时温习的。&#10;可是这么看片速度确实太慢，加上昨晚(20140929)找了两部《恐龙星球》和《宇宙的奇迹》，&#10;饕餮之余想到还是光看不写痛快，于是决定就写这么多了，后面的就不一定继续写了。&lt;/p&gt;</description></item><item><title>从 Wordpress 迁移到 Jekyll</title><link>https://gnailuy.com/jekyll/2014/05/11/about-this-site/</link><pubDate>Mon, 12 May 2014 02:03:20 +0800</pubDate><guid>https://gnailuy.com/jekyll/2014/05/11/about-this-site/</guid><description>&lt;p&gt;虽然只有二十多篇文章，但是这次迁移仍然耗时巨长，从最初 &lt;code&gt;jekyll new gnailuy.com&lt;/code&gt; 到现在终于替换掉 WP 已经俨然一个多月过去。&#10;一方面是 Jekyll 这个新东西我要花时间学习，除去工作、学习其他东西以及四处浪的时间，留给 Jekyll 的业余时间确实不多；&#10;另一方面直接从 WP 导出(导出工具&lt;a href="http://import.jekyllrb.com/docs/wordpress/"&gt;在此&lt;/a&gt;)的 Markdown 实在不忍直视，强迫症指使下我还要一篇一篇手打成&amp;rsquo;纯&amp;rsquo; Markdown。&lt;/p&gt;</description></item><item><title>Hello World!</title><link>https://gnailuy.com/me/2014/04/04/hello-world/</link><pubDate>Fri, 04 Apr 2014 15:25:42 +0800</pubDate><guid>https://gnailuy.com/me/2014/04/04/hello-world/</guid><description>&lt;p&gt;Well, this is my new blog powered by Jekyll.&lt;/p&gt;&#10;&lt;p&gt;And again: Hello world!&lt;/p&gt;</description></item><item><title>Play only the audio in a movie file with Mplayer</title><link>https://gnailuy.com/linux/2012/09/16/play-only-audio-of-movies-with-mplayer/</link><pubDate>Sun, 16 Sep 2012 19:54:36 +0800</pubDate><guid>https://gnailuy.com/linux/2012/09/16/play-only-audio-of-movies-with-mplayer/</guid><description>&lt;p&gt;I have a piece of beautiful music in an MP4 video file, so good that I wanted to loop it for this whole afternoon.&#10;With &lt;a href="http://www.mplayerhq.hu/"&gt;Mplayer&lt;/a&gt;, I could single cycle this file with an option &lt;code&gt;-loop 0&lt;/code&gt;.&#10;Moreover, I wanted to play only the sound without the video, so I searched the &amp;lsquo;man page&amp;rsquo; of mplayer and found this:&lt;/p&gt;</description></item><item><title>How to scp a file with colon in its name</title><link>https://gnailuy.com/linux/2012/02/05/how-to-scp-a-file-with-colon-in-its-name/</link><pubDate>Sun, 05 Feb 2012 16:20:29 +0800</pubDate><guid>https://gnailuy.com/linux/2012/02/05/how-to-scp-a-file-with-colon-in-its-name/</guid><description>&lt;p&gt;As we know that &lt;code&gt;scp&lt;/code&gt; is a command for secure copy, it copies files between hosts.&#10;Generally, we follow the below two examples to copy a file from/to localhost to/from a remote machine:&lt;/p&gt;</description></item><item><title>Net-installing CentOS without CD-ROM and USB</title><link>https://gnailuy.com/linux/2011/12/25/install-centos-via-network-without-cd-rom-and-without-usb/</link><pubDate>Sun, 25 Dec 2011 23:03:40 +0800</pubDate><guid>https://gnailuy.com/linux/2011/12/25/install-centos-via-network-without-cd-rom-and-without-usb/</guid><description>&lt;p&gt;There was an old PC in our lab, and one day I wanted to use it as a node in our Hadoop cluster.&#10;There was a Fedora 8 on it. But I&amp;rsquo;d like to change it to a new CentOS 5.7. The problem I met, was that this PC was too old,&#10;that neither the CD-ROM nor the USB ports worked well.&lt;/p&gt;</description></item><item><title>无光驱、无 USB，网络安装 CentOS</title><link>https://gnailuy.com/linux/2011/12/25/install-centos-via-network-without-cd-rom-and-without-usb-chs/</link><pubDate>Sun, 25 Dec 2011 23:02:33 +0800</pubDate><guid>https://gnailuy.com/linux/2011/12/25/install-centos-via-network-without-cd-rom-and-without-usb-chs/</guid><description>&lt;p&gt;实验室有台非常老的机器，今天被我翻出来打算当作我们 Hadoop 集群中的一个节点。这台机器上原有一个 Fedora 8 可以用，不过我还是想给它安装一个全新的 CentOS 5.7。&#10;只有一个问题，就是这台机器太老了，光驱和 USB 接口竟然全都坏掉了。&lt;/p&gt;</description></item><item><title>Spoofing MAC address in Archlinux</title><link>https://gnailuy.com/linux/2011/10/18/spoofing-mac-address-in-archlinux/</link><pubDate>Wed, 19 Oct 2011 07:51:40 +0800</pubDate><guid>https://gnailuy.com/linux/2011/10/18/spoofing-mac-address-in-archlinux/</guid><description>&lt;p&gt;The first issue I met after I logged in to my newly installed Arch Linux, was that I had to change the MAC address to gain access to our campus network.&#10;I have a short post &lt;a href="https://gnailuy.com/linux/2011/07/16/how-to-change-mac-address-in-linux/"&gt;here&lt;/a&gt; about how to spoof the MAC address in Linux.&#10;In that article, I introduced how to change the MAC address temporarily using &lt;a href="http://en.wikipedia.org/wiki/Ifconfig"&gt;ifconfig&lt;/a&gt;,&#10;and how to edit the network configure file in Red Hat/CentOS/Fedora or Debian/Ubuntu.&#10;But I found no &lt;code&gt;ifconfig&lt;/code&gt; available in my new Arch Linux (I must had missed some essential package that provides &lt;code&gt;ifconfig&lt;/code&gt; during the installation.).&#10;So I had to find another method, and fortunately, there is an &lt;code&gt;Arch Way&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Archlinux 中伪装 MAC 地址</title><link>https://gnailuy.com/linux/2011/10/18/spoofing-mac-address-in-archlinux-chs/</link><pubDate>Wed, 19 Oct 2011 07:51:22 +0800</pubDate><guid>https://gnailuy.com/linux/2011/10/18/spoofing-mac-address-in-archlinux-chs/</guid><description>&lt;p&gt;装好 Archlinux 以后，我遇到的第一个麻烦就是如何修改 MAC 地址来接入校园网。&#10;之前我写过一篇短文，里面介绍 Linux 下如何修改 MAC 地址(在&lt;a href="https://gnailuy.com/linux/2011/07/16/how-to-change-mac-address-in-linux/"&gt;这里&lt;/a&gt;)。&#10;那篇文章介绍了如何使用 &lt;a href="http://en.wikipedia.org/wiki/Ifconfig"&gt;ifconfig&lt;/a&gt; 程序临时修改 MAC 地址，以及在 Red Hat/CentOS/Fedora 或 Debian/ubuntu 中如何修改网络配置文件来修改 MAC 地址。&#10;但是我发现我新装的 Archlinux 没有 ifconfig 程序(我安装系统时选择的包很少)。所以我得找个其他的方法，幸好，Arch 有自己的 Arch Way。&lt;/p&gt;</description></item><item><title>Installing GRUB and Puppy Linux to Portable Hard Drive from Linux</title><link>https://gnailuy.com/linux/2011/08/15/installing-grub-and-puppy-linux-to-portable-hard-drive-from-linux/</link><pubDate>Mon, 15 Aug 2011 17:41:52 +0800</pubDate><guid>https://gnailuy.com/linux/2011/08/15/installing-grub-and-puppy-linux-to-portable-hard-drive-from-linux/</guid><description>&lt;p&gt;In this post, we talk about how to install the &lt;a href="http://puppylinux.org/"&gt;Puppy Linux&lt;/a&gt; to a portable hard drive from a Linux box, with &lt;a href="http://www.gnu.org/software/grub/"&gt;GNU GRUB&lt;/a&gt; as the &lt;a href="http://en.wikipedia.org/wiki/Booting#Boot_loader"&gt;Boot Loader&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Linux 下为移动硬盘安装 Puppy Linux 和 GRUB 引导</title><link>https://gnailuy.com/linux/2011/08/15/installing-grub-and-puppy-linux-to-portable-hard-drive-from-linux-chs/</link><pubDate>Mon, 15 Aug 2011 17:41:38 +0800</pubDate><guid>https://gnailuy.com/linux/2011/08/15/installing-grub-and-puppy-linux-to-portable-hard-drive-from-linux-chs/</guid><description>&lt;p&gt;本文我们讨论如何在 Linux 下为移动硬盘安装 &lt;a href="http://puppylinux.org/"&gt;Puppy Linux&lt;/a&gt;，并使用 &lt;a href="http://www.gnu.org/software/grub/"&gt;GNU GRUB&lt;/a&gt; 作为 Puppy Linux 的 &lt;a href="http://en.wikipedia.org/wiki/Booting#Boot_loader"&gt;Boot Loader&lt;/a&gt;。&lt;/p&gt;</description></item><item><title>设置路由表使国内 IP 不走 VPN 线路</title><link>https://gnailuy.com/linux/2011/08/07/route-by-ip-addresses-when-using-vpn-to-bypass-internet-censorship-chs/</link><pubDate>Sun, 07 Aug 2011 16:55:44 +0800</pubDate><guid>https://gnailuy.com/linux/2011/08/07/route-by-ip-addresses-when-using-vpn-to-bypass-internet-censorship-chs/</guid><description>&lt;p&gt;国内&amp;quot;科学上网&amp;quot;的方式多种多样，其中我认为 &lt;a href="http://en.wikipedia.org/wiki/Tunneling_protocol#Secure_Shell_tunneling"&gt;SSH 隧道&lt;/a&gt;和 &lt;a href="http://en.wikipedia.org/wiki/Virtual_private_network"&gt;VPN (Virtual Private Network)&lt;/a&gt; 是两种最安全和最流行的方法了。&#10;我自己就在一个美国 VPS 上配置了自己的 VPN 服务，我的&lt;a href="https://gnailuy.com/linux/2011/07/04/pptp-vpn/"&gt;这篇文章&lt;/a&gt;里有配置方法。&lt;/p&gt;</description></item><item><title>Routing Settings when Bypassing Internet Censorship via VPN</title><link>https://gnailuy.com/linux/2011/08/07/route-by-ip-addresses-when-using-vpn-to-bypass-internet-censorship/</link><pubDate>Sun, 07 Aug 2011 16:30:44 +0800</pubDate><guid>https://gnailuy.com/linux/2011/08/07/route-by-ip-addresses-when-using-vpn-to-bypass-internet-censorship/</guid><description>&lt;p&gt;Various techniques are in use by netizens in China to bypass the severe &lt;a href="http://en.wikipedia.org/wiki/Internet_censorship_in_the_People%27s_Republic_of_China"&gt;Internet Censorship&lt;/a&gt; by the government.&#10;Among them, &lt;a href="https://www.torproject.org/"&gt;Tor&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Tunneling_protocol#Secure_Shell_tunneling"&gt;SSH Tunneling&lt;/a&gt;, and &lt;a href="http://en.wikipedia.org/wiki/Virtual_private_network"&gt;VPN&lt;/a&gt; are three of the safest and most popular solutions. I run a PPTP VPN service on a VPS in the US.&lt;/p&gt;</description></item><item><title>Setting up SSH Public Key Authentication</title><link>https://gnailuy.com/linux/2011/08/04/setting-up-ssh-public-key-authentication/</link><pubDate>Thu, 04 Aug 2011 17:40:49 +0800</pubDate><guid>https://gnailuy.com/linux/2011/08/04/setting-up-ssh-public-key-authentication/</guid><description>&lt;p&gt;Compared to the password authentication, it&amp;rsquo;s more convenient and more secure to log into a remote Linux box over SSH by the public key authentication.&#10;With this technique, we can perform an automatic login without entering any password. It is very useful when we call ssh from a shell script.&#10;In this post, we show how to setup SSH public key authentication between two Linux hosts.&lt;/p&gt;</description></item><item><title>Linux 下建立 SSH 隧道做 Socket 代理</title><link>https://gnailuy.com/linux/2011/08/02/ssh-socket-tunnel/</link><pubDate>Tue, 02 Aug 2011 13:37:42 +0800</pubDate><guid>https://gnailuy.com/linux/2011/08/02/ssh-socket-tunnel/</guid><description>&lt;p&gt;本文介绍如何使用 SSH 创建 Socket 代理，为本地局域网提供应用程序级别的代理服务，并提供一个自动化的脚本，一条命令完成工作。&lt;/p&gt;</description></item><item><title>为 WordPress 的 RSS 添加 Adsense 广告</title><link>https://gnailuy.com/internet/2011/07/29/adsense-for-feeds-in-wordpress-chs/</link><pubDate>Fri, 29 Jul 2011 12:46:34 +0800</pubDate><guid>https://gnailuy.com/internet/2011/07/29/adsense-for-feeds-in-wordpress-chs/</guid><description>&lt;p&gt;Google 收购 &lt;a href="http://feedburner.com/"&gt;Feedburner&lt;/a&gt; 以后，向 RSS 中添加 Adsense 更加容易了。本文介绍如何向 Wordpress 的 RSS 输出中添加 Adsense 广告。&lt;/p&gt;</description></item><item><title>Adsense for Feeds in Wordpress</title><link>https://gnailuy.com/internet/2011/07/29/adsense-for-feeds-in-wordpress/</link><pubDate>Fri, 29 Jul 2011 12:46:15 +0800</pubDate><guid>https://gnailuy.com/internet/2011/07/29/adsense-for-feeds-in-wordpress/</guid><description>&lt;p&gt;Google&amp;rsquo;s acquisition of &lt;a href="http://feedburner.com/"&gt;Feedburner&lt;/a&gt; makes it easier to add advertisements to your RSS feeds.&#10;In this post, we talk about how to put Adsense in the feeds of Wordpress.&lt;/p&gt;</description></item><item><title>Wordpress 添加 Google Adsense 代码</title><link>https://gnailuy.com/internet/2011/07/27/add-google-adsense-code-to-wordpress-chs/</link><pubDate>Wed, 27 Jul 2011 18:22:23 +0800</pubDate><guid>https://gnailuy.com/internet/2011/07/27/add-google-adsense-code-to-wordpress-chs/</guid><description>&lt;p&gt;今天 Google 批准了我的 Adsense 计划申请，所以下午我花了点时间看了些相关的文章，想找个比较好的方法把 Adsense 代码添加到这个小站上。&#10;我找到不少插件都可以向 Wordpress 添加广告代码，其中口碑比较好的应该是 &lt;a href="http://www.acmetech.com/blog/2005/07/26/adsense-deluxe-wordpress-plugin/"&gt;Adsense Deluxe&lt;/a&gt; 和 &lt;a href="http://www.satollo.net/plugins/post-layout"&gt;Post Layout&lt;/a&gt; 这两个。&#10;不过我只需要添加一点点的广告代码，这些插件显得有些大材小用了。而且我已经安装了不少插件，为了避免降低网站访问速度，也为了避免插件冲突，&#10;我就采用直接修改 Wordpress 代码的方法，本文为就这件事做个小结。&lt;/p&gt;</description></item><item><title>Add Google Adsense code to Wordpress</title><link>https://gnailuy.com/internet/2011/07/27/add-google-adsense-code-to-wordpress/</link><pubDate>Wed, 27 Jul 2011 18:21:09 +0800</pubDate><guid>https://gnailuy.com/internet/2011/07/27/add-google-adsense-code-to-wordpress/</guid><description>&lt;p&gt;Google approved my Adsense application today. I read a lot of articles to find an easier way to add Adsense code to my blog this afternoon.&#10;There are quite a few plugins doing this. It seems like the &lt;a href="http://www.acmetech.com/blog/2005/07/26/adsense-deluxe-wordpress-plugin/"&gt;Adsense Deluxe&lt;/a&gt; and the &lt;a href="http://www.satollo.net/plugins/post-layout"&gt;Post Layout&lt;/a&gt; have the best reputation.&#10;But I prefer to have no more plugins. There are already a lot of plugins installed on my site, so I&amp;rsquo;m afraid that too many plugins may slow down my site or cause conflicts.&#10;I choose to edit the source code of Wordpress directly and it turns out to be not that hard. Here is a small summary.&lt;/p&gt;</description></item><item><title>Troubleshooting: wordpress can't login</title><link>https://gnailuy.com/internet/2011/07/26/troubleshooting-wordpress-cant-login/</link><pubDate>Tue, 26 Jul 2011 15:45:23 +0800</pubDate><guid>https://gnailuy.com/internet/2011/07/26/troubleshooting-wordpress-cant-login/</guid><description>&lt;p&gt;I keep cookies in my browsers all the time, so it had been long since the last time I perform a Login action to my Wordpress site.&#10;But today, when I tried to log into my dashboard on another computer, a problem arose.&lt;/p&gt;</description></item><item><title>GNU Screen 使用入门</title><link>https://gnailuy.com/linux/2011/07/23/beginning-gnu-screen/</link><pubDate>Sat, 23 Jul 2011 19:12:25 +0800</pubDate><guid>https://gnailuy.com/linux/2011/07/23/beginning-gnu-screen/</guid><description>&lt;p&gt;前些天开始学习使用 GNU Screen 程序，发现这个工具在管理服务器时候确实挺方便的，于是写一篇文章总结一下，顺便介绍 Screen 的基本使用方法。&lt;/p&gt;</description></item><item><title>又一个 VIM 配置文件</title><link>https://gnailuy.com/linux/2011/07/18/another-vimrc/</link><pubDate>Mon, 18 Jul 2011 13:55:36 +0800</pubDate><guid>https://gnailuy.com/linux/2011/07/18/another-vimrc/</guid><description>&lt;p&gt;这篇文章记录我的 VIM 配置，包括带注释的配置文件 &lt;code&gt;.vimrc&lt;/code&gt;，和几个很好玩的插件。&#10;VIM 可以依照个人习惯进行很多有趣的配置，因此每个人的配置多多少少都不太一样，这也是这个编辑器的强大与灵活所在。&#10;我在配置自己的 VIM 时，也是参考了许多其他人的配置文件，再依照自己的使用习惯增删修改。&#10;因此虽然网上已经有很多配置 VIM 的文章，我也不介意增加一篇，希望本文的内容能够成为众多有价值的参考之一。&lt;/p&gt;</description></item><item><title>How to change MAC address in Linux</title><link>https://gnailuy.com/linux/2011/07/15/how-to-change-mac-address-in-linux/</link><pubDate>Fri, 15 Jul 2011 17:19:37 +0800</pubDate><guid>https://gnailuy.com/linux/2011/07/15/how-to-change-mac-address-in-linux/</guid><description>&lt;p&gt;It&amp;rsquo;s easy to change the MAC address in Linux.&#10;We can use the command &lt;code&gt;ifconfig&lt;/code&gt; to switch to a new MAC address temporarily&#10;or change it permanently by editing the network configuration file.&lt;/p&gt;</description></item><item><title>GSL 科学计算库、随机变量的 Erlang 分布与 Weibull 分布</title><link>https://gnailuy.com/mathematics/2011/07/10/gsl-erlang-and-weibull-distribution/</link><pubDate>Sun, 10 Jul 2011 12:03:19 +0800</pubDate><guid>https://gnailuy.com/mathematics/2011/07/10/gsl-erlang-and-weibull-distribution/</guid><description>&lt;p&gt;本文首先简要介绍了 GNU 科学计算库 GSL 和随机变量的 Erlang 分布与 Weibull 分布，然后说明了 GSL 库如何生成服从 Erlang 分布或 Weibull 分布的随机数，以及在编程中如何使用 GSL 库。&#10;对计算机生成的一系列随机数，可以有许多方法测试它们的分布，一个常见的测试是 Kolmogorov-Smirnov 测试，也称作 K-S Test。&#10;云师姐的&lt;a href="http://dapentiderizi.is-programmer.com/posts/26852.html"&gt;这篇文章&lt;/a&gt;中有使用 Matlab 进行 K-S Test 的示例以及代码。&lt;/p&gt;</description></item><item><title>Apache 的 Name-based Virtual Hosts 添加 HTTPS 支持</title><link>https://gnailuy.com/linux/2011/07/07/apache-name-based-virtual-hosts-with-https/</link><pubDate>Thu, 07 Jul 2011 08:47:28 +0800</pubDate><guid>https://gnailuy.com/linux/2011/07/07/apache-name-based-virtual-hosts-with-https/</guid><description>&lt;p&gt;本文介绍 Apache 使用 Name-based Virtual Hosts 建立多个站点时，如何为各个站点添加 HTTPS 支持，&#10;以及如何制作或申请免费的 SSL 证书，还有在 Wordpress 中如何启用 HTTPS 来保护需要加密的页面。&lt;/p&gt;</description></item><item><title>CentOS VPS 上搭建 PPTP VPN</title><link>https://gnailuy.com/linux/2011/07/03/pptp-vpn/</link><pubDate>Mon, 04 Jul 2011 05:53:02 +0800</pubDate><guid>https://gnailuy.com/linux/2011/07/03/pptp-vpn/</guid><description>&lt;p&gt;本文介绍在安装 CentOS 操作系统的 Xen VPS 上，如何搭建 PPTP VPN 服务。&#10;包括 PPTP 的安装、配置，以及相应的 &lt;code&gt;iptables&lt;/code&gt; 规则。&#10;本文暂时不涉及 PPTP 流量控制的部分，等抽空学明白了 &lt;a href="http://wiki.freeradius.org/PopTop"&gt;FreeRADIUS&lt;/a&gt; 再来写续篇。&#10;&lt;strong&gt;2011 年 7 月 20 日更新&lt;/strong&gt;：在&lt;strong&gt;安全建议&lt;/strong&gt;这一部分，增加了使用不同的 IP 地址，分别提供 VPN 服务和 Web 等其他常规服务，以及使用不同 IP 地址时如何书写 &lt;code&gt;iptables&lt;/code&gt; 规则的内容。&lt;/p&gt;</description></item><item><title>配置 iptables 后 FTP 停在 Entering Passive Mode 的问题</title><link>https://gnailuy.com/linux/2011/07/03/ftp-entering-passive-mode/</link><pubDate>Sun, 03 Jul 2011 16:54:20 +0800</pubDate><guid>https://gnailuy.com/linux/2011/07/03/ftp-entering-passive-mode/</guid><description>&lt;p&gt;今天配置完 &lt;code&gt;iptables&lt;/code&gt; 规则后，发现 FTP 无法使用了。&#10;通过 &lt;code&gt;ftp&lt;/code&gt; 命令行的测试，发现可以发起连接并登录，然后客户端就会停滞在下面的提示上，直到超时：&lt;/p&gt;</description></item><item><title>404 Not Found</title><link>https://gnailuy.com/404.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gnailuy.com/404.html</guid><description>&lt;p&gt;Sorry this page does not exist, redirecting to &lt;a href="https://gnailuy.com/archive/"&gt;archive page&lt;/a&gt;&amp;hellip;&lt;/p&gt;&#10;&lt;p&gt;站点迁移 Jekyll，原链接失效，文章没有删除，正为您重定向到&lt;a href="https://gnailuy.com/archive/"&gt;存档页&lt;/a&gt;&amp;hellip;&lt;/p&gt;</description></item><item><title>About Me</title><link>https://gnailuy.com/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gnailuy.com/about/</guid><description>&lt;p&gt;Hi there! I&amp;rsquo;m gnailuy (pronounced reversely as [ɥy2 ljaŋ4]), a software developer at &lt;a href="https://azure.microsoft.com/en-us/"&gt;Microsoft Azure&lt;/a&gt; Big Data team.&#10;From April 2013 to August 2017, I was a senior software engineer of the data platform at &lt;a href="http://www.umeng.com"&gt;umeng.com&lt;/a&gt;.&#10;After that, I worked in a startup team as a backend and data programmer before joining Microsoft.&#10;I graduated from the College of Computer Science &amp;amp; Technology at the &lt;a href="http://english.hrbeu.edu.cn"&gt;Harbin Engineering University&lt;/a&gt; in March 2013,&#10;and have a master&amp;rsquo;s degree in CS.&lt;/p&gt;</description></item><item><title>Archive</title><link>https://gnailuy.com/archive/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gnailuy.com/archive/</guid><description/></item><item><title>Server depressed</title><link>https://gnailuy.com/50x.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gnailuy.com/50x.html</guid><description>&lt;p&gt;I think you ought to know I&amp;rsquo;m feeling very depressed.&lt;/p&gt;</description></item></channel></rss>