<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[猛禽的编程艺术]]></title><description><![CDATA[编程是一门艺术]]></description><link>https://blog.csdn.net/Raptor</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; Raptor]]></copyright><item><title><![CDATA[CSDN搞什么]]></title><link>https://blog.csdn.net/Raptor/article/details/78674089</link><guid>https://blog.csdn.net/Raptor/article/details/78674089</guid><author>Raptor</author><pubDate>Thu, 30 Nov 2017 11:25:01 +0800</pubDate><description><![CDATA[CSDN的做法太恶心]]></description><category></category></item><item><title><![CDATA[iSCSI的配置笔记]]></title><link>https://blog.csdn.net/Raptor/article/details/78346384</link><guid>https://blog.csdn.net/Raptor/article/details/78346384</guid><author>Raptor</author><pubDate>Wed, 25 Oct 2017 20:42:02 +0800</pubDate><description><![CDATA[记录一下iSCSI客户端的配置]]></description><category></category></item><item><title><![CDATA[搭建python数据分析平台]]></title><link>https://blog.csdn.net/Raptor/article/details/78035782</link><guid>https://blog.csdn.net/Raptor/article/details/78035782</guid><author>Raptor</author><pubDate>Tue, 19 Sep 2017 23:17:57 +0800</pubDate><description><![CDATA[基本结构其实没什么高深的东西，无非是常用的那一套：pandas, numpy, matplotlib…但是为了更方便使用，加持了 jupyter notebook（即以前的ipython notebook）……又为了更方便使用，前端加了nginx或apache反代……双为了更安全，加持了Let’s Encrypt的HTTPS]]></description><category></category></item><item><title><![CDATA[用Docker+ELK集中处理日志]]></title><link>https://blog.csdn.net/Raptor/article/details/77622114</link><guid>https://blog.csdn.net/Raptor/article/details/77622114</guid><author>Raptor</author><pubDate>Sun, 27 Aug 2017 18:34:41 +0800</pubDate><description><![CDATA[需求手头有几个服务器的日志需要处理，数据量也不是很大，但是又不想在每个服务器上都装一套ELK，毕竟这货还是挺笨重的。另外，ELK这堆东西依赖也挺多，而且还是用JAVA的，我才不想为了装这个把系统搞得乱七八糟，所以必须跑在docker里。当然，也不可能在每台服务器上都装个docker，毕竟这货也不是省油的灯。于是有这样的方案。]]></description><category></category></item><item><title><![CDATA[一个Redis消息队列实现]]></title><link>https://blog.csdn.net/Raptor/article/details/75138738</link><guid>https://blog.csdn.net/Raptor/article/details/75138738</guid><author>Raptor</author><pubDate>Fri, 14 Jul 2017 23:39:10 +0800</pubDate><description><![CDATA[对前文所介绍的Redis Cache作了一点简单的扩展，增加了消息队列功能。]]></description><category></category></item><item><title><![CDATA[一个Redis Cache实现]]></title><link>https://blog.csdn.net/Raptor/article/details/73928639</link><guid>https://blog.csdn.net/Raptor/article/details/73928639</guid><author>Raptor</author><pubDate>Thu, 29 Jun 2017 22:09:45 +0800</pubDate><description><![CDATA[这次的目标是需要实现一个比较通用的cache，支持各种数据类型，有超时更新机制，超时更新需要有锁]]></description><category></category></item><item><title><![CDATA[在容器中运行Jenkins部署主机中的docker应用]]></title><link>https://blog.csdn.net/Raptor/article/details/72027036</link><guid>https://blog.csdn.net/Raptor/article/details/72027036</guid><author>Raptor</author><pubDate>Sun, 14 May 2017 17:24:36 +0800</pubDate><description><![CDATA[如何让一个跑在container里的Jenkins把应用部署到host环境上？]]></description><category></category></item><item><title><![CDATA[解决多进程中APScheduler重复运行的问题]]></title><link>https://blog.csdn.net/Raptor/article/details/69218271</link><guid>https://blog.csdn.net/Raptor/article/details/69218271</guid><author>Raptor</author><pubDate>Tue, 04 Apr 2017 22:34:30 +0800</pubDate><description><![CDATA[问题在一个python web应用中需要定时执行一些任务，所以用了APScheduler这个库。又因为是用flask这个web框架，所以用了flask-apscheduler这个插件（本质上与直接用APScheduler一样，这里不作区分）。在开发中直接测试运行是没有问题的，但是用gunicorn部署以后发生了重复运行的问题：每个任务在时间到的时刻会同时执行好几遍。注意了一下重复的数量，恰恰是gun]]></description><category></category></item><item><title><![CDATA[HTTPS配置全记录]]></title><link>https://blog.csdn.net/Raptor/article/details/63298190</link><guid>https://blog.csdn.net/Raptor/article/details/63298190</guid><author>Raptor</author><pubDate>Sat, 18 Mar 2017 22:06:49 +0800</pubDate><description><![CDATA[常见的部署环境和条件有以下几种情况组合：
Apache+自签名证书
Apache+免费或商业证书
Nginx+自签名证书
Nginx+免费或商业证书
免费证书和商业证书本质上是一样的]]></description><category></category></item><item><title><![CDATA[FreeBSD升级失败的处理]]></title><link>https://blog.csdn.net/Raptor/article/details/54883352</link><guid>https://blog.csdn.net/Raptor/article/details/54883352</guid><author>Raptor</author><pubDate>Sun, 05 Feb 2017 21:47:38 +0800</pubDate><description><![CDATA[升级几个FreeBSD系统过程中出现的问题及其处理]]></description><category></category></item><item><title><![CDATA[Mac OS X中virtualenv里python shell无法使用光标键问题的解决]]></title><link>https://blog.csdn.net/Raptor/article/details/54780870</link><guid>https://blog.csdn.net/Raptor/article/details/54780870</guid><author>Raptor</author><pubDate>Sun, 29 Jan 2017 23:33:29 +0800</pubDate><description><![CDATA[最近碰到一个奇葩问题，在系统python shell里使用光标是一切正常的，但是到了virtualenv里就不行了，变成各种转义符，不能正常移动光标。搜了半天，都说跟readline有关，建议重新编译python，可是为什么系统的python是正常的呢？而且我是用homebrew安装的，应该也不会有问题啊。试过很多方法，比如重装readline或virtualenv什么的，都不能解决。]]></description><category></category></item><item><title><![CDATA[docker在systemd下的配置问题]]></title><link>https://blog.csdn.net/Raptor/article/details/53846206</link><guid>https://blog.csdn.net/Raptor/article/details/53846206</guid><author>Raptor</author><pubDate>Fri, 23 Dec 2016 23:49:43 +0800</pubDate><description><![CDATA[问题说明最近在debian8上装了个docker，但是因为存储空间的问题，需要把docker的存放路径改一下。按照官方文档的说法，只要修改/etc/default/docker里的DOCKER_OPTS，加上-g参数即可：DOCKER_OPTS="-g /path/to/dockerdata"
但是这样改过以后重启docker，发现docker仍然在使用默认的/var/lib/docker]]></description><category></category></item><item><title><![CDATA[Let's HTTPS]]></title><link>https://blog.csdn.net/Raptor/article/details/53385052</link><guid>https://blog.csdn.net/Raptor/article/details/53385052</guid><author>Raptor</author><pubDate>Mon, 28 Nov 2016 21:24:38 +0800</pubDate><description><![CDATA[有了Let's Encrypt和Nginx的SNI配置，让我们像用HTTP一样去用HTTPS吧]]></description><category></category></item><item><title><![CDATA[快速文件hash]]></title><link>https://blog.csdn.net/Raptor/article/details/52988909</link><guid>https://blog.csdn.net/Raptor/article/details/52988909</guid><author>Raptor</author><pubDate>Mon, 31 Oct 2016 23:56:21 +0800</pubDate><description><![CDATA[最近打算把家里服务器上的文件理一下，想把重复的文件找出来，虽然我已经用了ZFS的dedup，实际占用空间并不会重复，但是还是觉得有必要理一下……写个程序扫描一遍并不复杂，但是要判断文件是不是重复就比较麻烦，可靠的方法当然是做全文件HASH，但是对于T级的硬盘来说，这样效率太低了，所以写了一段小代码来做一个快速的HASH。def get_filemd5(fullpath, filename):]]></description><category></category></item><item><title><![CDATA[支付宝接口编码不规范问题]]></title><link>https://blog.csdn.net/Raptor/article/details/52531281</link><guid>https://blog.csdn.net/Raptor/article/details/52531281</guid><author>Raptor</author><pubDate>Wed, 14 Sep 2016 00:07:26 +0800</pubDate><description><![CDATA[支付宝平台接口使用了不规范的方式，导致flask不能正常处理的问题解决。]]></description><category></category></item><item><title><![CDATA[docker实践入门之六]]></title><link>https://blog.csdn.net/Raptor/article/details/52202112</link><guid>https://blog.csdn.net/Raptor/article/details/52202112</guid><author>Raptor</author><pubDate>Sat, 13 Aug 2016 22:29:26 +0800</pubDate><description><![CDATA[最后一篇来举个栗子。样本项目一个基于bottle的python web项目依赖mako暂时只考虑部署一个版本的例子项目有以下内容：+-appname.py
+-config.json
+-requirements.txt
+-views
  +-index.htmlrequirements.txt的内容为：bottle
makovirtualenv部署方式传统的python应用部署方式一般会推荐用]]></description><category></category></item><item><title><![CDATA[docker实践入门之五]]></title><link>https://blog.csdn.net/Raptor/article/details/51824841</link><guid>https://blog.csdn.net/Raptor/article/details/51824841</guid><author>Raptor</author><pubDate>Tue, 05 Jul 2016 00:36:37 +0800</pubDate><description><![CDATA[image的派生上面这个例子 有一个问题就是，如果应用程序修改了，就需要重新build一次，问题是重build的时候需要把前面一堆的命令都跑一遍，特别是安装软件那些还是挺慢 的，而且是不必要的重复工作，实际上我们只是修改了应用程序而已，所以更机智的办法是把这个image分成两个image，一个是python3基础环 境，一个是应用程序image。先来python3环境的Dockerfile：FRO]]></description><category></category></item><item><title><![CDATA[docker实践入门之四]]></title><link>https://blog.csdn.net/Raptor/article/details/51571167</link><guid>https://blog.csdn.net/Raptor/article/details/51571167</guid><author>Raptor</author><pubDate>Thu, 02 Jun 2016 23:44:33 +0800</pubDate><description><![CDATA[在前一个实践中，我们演示了如何使用现成的image来运行container供我们使用，这一节我们来试试自己建立image。使用交互方式创建image在第一篇文章里说过，通过对一个container执行commit操作可以创建一个image，这里先用这个方法做一个例子。首先需要一个基本image，目前docker推荐的是用一个轻量级linux发行版：Alpine Linux，这个发行版的最大优点就是]]></description><category></category></item><item><title><![CDATA[docker实践入门之三]]></title><link>https://blog.csdn.net/Raptor/article/details/51298928</link><guid>https://blog.csdn.net/Raptor/article/details/51298928</guid><author>Raptor</author><pubDate>Mon, 02 May 2016 23:00:02 +0800</pubDate><description><![CDATA[文件系统说完了网络，现在来说存储。对于redis这样的应用来说，我们通常并不需要它的持久化存储，只是拿它做缓存而已，所以存储问题并不重要，但是对于mysql这样的数据库来说，存储就非常重要了。前面说到了container和image的区别，但并不完全，它们还有一个重要区别就在于存储。docker使用了一套自己的文件存储机制，基于aufs、devicemapper、btrfs、vfs等文件系统，它的]]></description><category></category></item><item><title><![CDATA[docker实践入门之二]]></title><link>https://blog.csdn.net/Raptor/article/details/51169125</link><guid>https://blog.csdn.net/Raptor/article/details/51169125</guid><author>Raptor</author><pubDate>Sat, 16 Apr 2016 17:26:53 +0800</pubDate><description><![CDATA[开始动手先准备一个空的系统，现在要在上面装一个redis，传统的做法就是用系统的包管理器装一个呗，比如debian下可以用sudo apt-get install -y redis-server
sudo service redis-server start然而在docker下是这样：docker pull redis
docker run -d --name redis redis第一步是从do]]></description><category></category></item></channel></rss>