<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[成长的足迹]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/hackerain</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; hackerain]]></copyright><item><title><![CDATA[优快云做的真是烂a]]></title><link>https://blog.youkuaiyun.com/hackerain/article/details/44141009</link><guid>https://blog.youkuaiyun.com/hackerain/article/details/44141009</guid><author>hackerain</author><pubDate>Sun, 08 Mar 2015 23:22:38 +0800</pubDate><description><![CDATA[关键时刻总是掉链子，后台更是惨不忍睹，这么多年了，就没一点长进！]]></description><category></category></item><item><title><![CDATA[Django学习小记[6]——Class-based View]]></title><link>https://blog.youkuaiyun.com/hackerain/article/details/40919789</link><guid>https://blog.youkuaiyun.com/hackerain/article/details/40919789</guid><author>hackerain</author><pubDate>Sat, 08 Nov 2014 12:42:16 +0800</pubDate><description><![CDATA[这节我们讲一下Class-based View，为什么要有这个Class-based View呢？view不都是一个方法吗？跟类有啥关系？其实答案很明显，用类其实是为了抽象，抽象出通用的，将可变的暴露出来，这样我们就可以用最少的代码实现复杂的功能了。

Django中，对那些我们平时经常用的View进行了封装，比如用于渲染一个template的TemplateView，用于处理重定向的Redi]]></description><category></category></item><item><title><![CDATA[Django学习小记[5] —— View Request/Response]]></title><link>https://blog.youkuaiyun.com/hackerain/article/details/40762149</link><guid>https://blog.youkuaiyun.com/hackerain/article/details/40762149</guid><author>hackerain</author><pubDate>Tue, 04 Nov 2014 00:41:30 +0800</pubDate><description><![CDATA[在Django中，view是指一个方法，这个方法接收一个request，然后返回一个response.

当客户端发送一个请求的时候，Django会创建一个HttpRequest对象，这个对象包含本次请求的所有相关信息，比如请求的路径，请求的参数，请求的方法等等，然后将这个对象作为view方法的第一个参数传给view，view经过处理之后，返回一个HttpResponse对象，这个HttpRe]]></description><category></category></item><item><title><![CDATA[Django学习小记[4]——URL Dispatcher]]></title><link>https://blog.youkuaiyun.com/hackerain/article/details/40701099</link><guid>https://blog.youkuaiyun.com/hackerain/article/details/40701099</guid><author>hackerain</author><pubDate>Sun, 02 Nov 2014 03:13:33 +0800</pubDate><description><![CDATA[URL dispatcher简单点理解就是根据URL，将请求分发到相应的方法中去处理，它是对URL和View的一个映射，它的实现其实也很简单，就是一个正则匹配的过程，事先定义好正则表达式和该正则表达式对应的view方法，如果请求的URL符合这个正则表达式，那么就分发这个请求到这个view方法中。

有了这个base，我们先抛出几个问题，提前思考一下：

这个映射定义在哪里？当映射很多时，如]]></description><category></category></item><item><title><![CDATA[Django学习小记[3] —— Query]]></title><link>https://blog.youkuaiyun.com/hackerain/article/details/39838559</link><guid>https://blog.youkuaiyun.com/hackerain/article/details/39838559</guid><author>hackerain</author><pubDate>Tue, 07 Oct 2014 00:21:13 +0800</pubDate><description><![CDATA[今天学习的是Django的Model Query，前一篇已经学习过Model了，讲述的主要是Django中是如何处理关系型数据的模型的，一对一，多对一，多对多等，这篇则主要是描述的查询，能够将数据存进去，还得取出来，Django给每一个Model自动提供了丰富的查询接口，而且能够进行关联查询，基本上，能够满足绝大多数的查询需求。

在Django的文档中，有一句话说的非常好：


A m]]></description><category></category></item><item><title><![CDATA[Django学习小记[2] —— Model]]></title><link>https://blog.youkuaiyun.com/hackerain/article/details/39196495</link><guid>https://blog.youkuaiyun.com/hackerain/article/details/39196495</guid><author>hackerain</author><pubDate>Thu, 11 Sep 2014 02:27:23 +0800</pubDate><description><![CDATA[开始学习django的model了，学习django的目的很简单，就是我想用django搭建一个自己的博客，现在开源的已经有django-zinnia这个博客引擎了，但是想要看懂它，并且修改它，就必须过django这一关。之前对django的了解，仅仅限于用到了什么，就知道什么，缺乏系统的学习，所以要把django的文档都过一遍，做一下简单的笔记。

今天的主题是Model，Model就是MV]]></description><category></category></item><item><title><![CDATA[Django学习小记[1] —— Start]]></title><link>https://blog.youkuaiyun.com/hackerain/article/details/38523401</link><guid>https://blog.youkuaiyun.com/hackerain/article/details/38523401</guid><author>hackerain</author><pubDate>Tue, 12 Aug 2014 23:01:17 +0800</pubDate><description><![CDATA[Part 1

Part 1 通过举例，从整体上过了一遍django的基本内容，包括project, app, database, model等内容。有几下内容需要注意：



project vs. app
app是一个web应用程序，它是实际用来做事的，比如zinnia这个用django写的博客引擎就是一个app，但是一个project是配置文件和app的集合，相当于一个容器。一]]></description><category></category></item><item><title><![CDATA[Ceilometer Distributed Alarm]]></title><link>https://blog.youkuaiyun.com/hackerain/article/details/38172941</link><guid>https://blog.youkuaiyun.com/hackerain/article/details/38172941</guid><author>hackerain</author><pubDate>Sun, 27 Jul 2014 16:09:10 +0800</pubDate><description><![CDATA[Ceilometer Alarm是H版新添加的功能，监控报警是云平台不可缺少的部分，Ceilometer已经实现了比较完善的监控体系，报警怎么能缺少呢？用过AWS CloudWatch Alarm的人应该不会对Ceilometer的Alarm感到陌生，Ceilometer实现的Alarm和CloudWatch的Alarm很像，概念基本上都一样，Alarm的逻辑也基本上一样，可以说是一个开源版的Cl]]></description><category></category></item><item><title><![CDATA[Horizon学习笔记]]></title><link>https://blog.youkuaiyun.com/hackerain/article/details/25929759</link><guid>https://blog.youkuaiyun.com/hackerain/article/details/25929759</guid><author>hackerain</author><pubDate>Fri, 16 May 2014 00:52:55 +0800</pubDate><description><![CDATA[horizon牛逼吊炸天！

程序的入口点在horizon/openstack_dashboard/urls.py中：
url(r'', include(horizon.urls))


然后由Horizon这个单例的Site对象，开始加载urls，自动发现并注册dashboard，然后对每一个dashboard，再自动发现并注册panel:
```
Horizon._lazy_u]]></description><category></category></item><item><title><![CDATA[Python单元测试——深入理解unittest]]></title><link>https://blog.youkuaiyun.com/hackerain/article/details/24095117</link><guid>https://blog.youkuaiyun.com/hackerain/article/details/24095117</guid><author>hackerain</author><pubDate>Sat, 19 Apr 2014 10:32:09 +0800</pubDate><description><![CDATA[单元测试的重要性就不多说了，可恶的是python中有太多的单元测试框架和工具，什么unittest, testtools, subunit, coverage, testrepository, nose, mox, mock, fixtures, discover，再加上setuptools, distutils等等这些，先不说如何写单元测试，光是怎么运行单元测试就有N多种方法，再因为它是测试而非]]></description><category></category></item><item><title><![CDATA[很久没有写博客了]]></title><link>https://blog.youkuaiyun.com/hackerain/article/details/17880157</link><guid>https://blog.youkuaiyun.com/hackerain/article/details/17880157</guid><author>hackerain</author><pubDate>Sun, 05 Jan 2014 10:56:50 +0800</pubDate><description><![CDATA[是的，很久没有写博客了，手都有点生疏了，最近毕业，工作，像演电影一样，草！]]></description><category></category></item><item><title><![CDATA[jetty报错： Open quote is expected for attribute "{1}" associated with an  element type  "BORDER".]]></title><link>https://blog.youkuaiyun.com/hackerain/article/details/9081843</link><guid>https://blog.youkuaiyun.com/hackerain/article/details/9081843</guid><author>hackerain</author><pubDate>Thu, 13 Jun 2013 03:32:37 +0800</pubDate><description><![CDATA[这个错误是使用jetty作为容器，但是java代码中，servlet是使用注解的形式标记一个类为servlet的，可能是版本不兼容吧，会报这个莫名其妙的错，解决方法是将这个servlet类配置到web.xml文件中，不要用注解的形式。]]></description><category></category></item><item><title><![CDATA[maven jetty plugin 配置全局 jndi datasource]]></title><link>https://blog.youkuaiyun.com/hackerain/article/details/8860315</link><guid>https://blog.youkuaiyun.com/hackerain/article/details/8860315</guid><author>hackerain</author><pubDate>Sat, 27 Apr 2013 18:42:41 +0800</pubDate><description><![CDATA[全局的datasource，要求把数据源配置在jetty.xml文件中，但是使用maven的插件，需要在pom.xml文件中指定jetty.xml文件在哪。同时，由于是全局的数据源，jetty会找不到数据库驱动，也需要在pom.xml文件中写上对数据库驱动的依赖。
此外，还需要配置一个webdefault.xml文件，这个文件是在web.xml文件加载之前加载的，可以把数据源的引用放在webde]]></description><category></category></item><item><title><![CDATA[Openstack Nova Security Group——安全组之架构篇]]></title><link>https://blog.youkuaiyun.com/hackerain/article/details/8664261</link><guid>https://blog.youkuaiyun.com/hackerain/article/details/8664261</guid><author>hackerain</author><pubDate>Tue, 12 Mar 2013 17:39:25 +0800</pubDate><description><![CDATA[哈，又回来了！


公司同事说不要只停留在逻辑层，你要对跑在你程序底下的数据流也要非常的清楚。但是这里还是先介绍一下逻辑层，在代码的角度看是如何实现这个功能的，关于底层的数据流，还需要哦酝酿一段时间，之后会再总结一篇底层数据流的文章，真难为我了！


一、什么是安全组
安全组，翻译成英文是 security group。安全组是一些规则的集合，用来对虚拟机的访问流量加以限制，这反映到]]></description><category></category></item><item><title><![CDATA[iptables简介]]></title><link>https://blog.youkuaiyun.com/hackerain/article/details/8594344</link><guid>https://blog.youkuaiyun.com/hackerain/article/details/8594344</guid><author>hackerain</author><pubDate>Wed, 20 Feb 2013 16:04:49 +0800</pubDate><description><![CDATA[DESCRIPTION
       Iptables is used to set up, maintain, and inspect the tables of IPv4 packet filter rules in the Linux kernel.  Several different tables may
       be defined.  Each table contains]]></description><category></category></item><item><title><![CDATA[网络IO控制——Quality of Service]]></title><link>https://blog.youkuaiyun.com/hackerain/article/details/8555376</link><guid>https://blog.youkuaiyun.com/hackerain/article/details/8555376</guid><author>hackerain</author><pubDate>Wed, 30 Jan 2013 13:49:30 +0800</pubDate><description><![CDATA[早上没吃饭，坐在公司里测试，等结果等的太无聊，翻译一下libvirt上的关于网络IO控制的一点内容。希望翻译完，就可以吃饭了。
原文如下：
  ...
  
    
      
      
      
        
        
      
    
  
  ...
This part of interface XML provides setting quality o]]></description><category></category></item><item><title><![CDATA[常用linux命令]]></title><link>https://blog.youkuaiyun.com/hackerain/article/details/8538855</link><guid>https://blog.youkuaiyun.com/hackerain/article/details/8538855</guid><author>hackerain</author><pubDate>Thu, 24 Jan 2013 08:51:47 +0800</pubDate><description><![CDATA[1. 磁盘备份，将本地的/dev/hdx整盘备份到/dev/hdy

dd if=/dev/hdx of=/dev/hdy


2. 磁盘恢复，将备份文件恢复到指定盘
dd if=/path/to/image of=/dev/hdx


3. 备份MBR，备份磁盘开始的512Byte大小的MBR信息到指定文件

dd if=/dev/hdx of=/path/to/image]]></description><category></category></item><item><title><![CDATA[emacs命令积累]]></title><link>https://blog.youkuaiyun.com/hackerain/article/details/8536230</link><guid>https://blog.youkuaiyun.com/hackerain/article/details/8536230</guid><author>hackerain</author><pubDate>Wed, 23 Jan 2013 23:29:51 +0800</pubDate><description><![CDATA[用了几天emacs，终于感觉到它的强大了，这是一个长期使用积累的过程，熟能生巧。


1.单个Buffer处理
Buffer的名字都是包含在**当中的
可以把buffer中的那内容C-x C-w写入到文件中

2.多个buffer处理
C-x b显示Buffer列表
选中某一个Buffer按Enter进入Buffer编辑
删除Buffer使用C-x k

2.Emacs窗口]]></description><category></category></item><item><title><![CDATA[OpenStack遇到问题收集]]></title><link>https://blog.youkuaiyun.com/hackerain/article/details/8533022</link><guid>https://blog.youkuaiyun.com/hackerain/article/details/8533022</guid><author>hackerain</author><pubDate>Wed, 23 Jan 2013 10:46:46 +0800</pubDate><description><![CDATA[1. AMQPChannelException

PROBLEM：

在用stable/folsom的devstack安装stable/folsom的openstack时，遇到下面的问题：
(nova.api.openstack): TRACE: AMQPChannelException: (406, u"PRECONDITION_FAILED - cannot redeclare ex]]></description><category></category></item><item><title><![CDATA[linux之iptables]]></title><link>https://blog.youkuaiyun.com/hackerain/article/details/8518167</link><guid>https://blog.youkuaiyun.com/hackerain/article/details/8518167</guid><author>hackerain</author><pubDate>Fri, 18 Jan 2013 17:54:47 +0800</pubDate><description><![CDATA[1. 查看网络监听的端口：
netstat -tunlp

2. 查看本机的路由规则：
route

stack@ubuntu:~$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.217]]></description><category></category></item></channel></rss>