<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[biorelive的专栏]]></title><description><![CDATA[智者务其实，愚者争虚名]]></description><link>https://blog.youkuaiyun.com/biorelive</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; biorelive]]></copyright><item><title><![CDATA[[HDFS]HDFS的运行原理]]></title><link>https://blog.youkuaiyun.com/biorelive/article/details/51434616</link><guid>https://blog.youkuaiyun.com/biorelive/article/details/51434616</guid><author>biorelive</author><pubDate>Tue, 17 May 2016 11:14:18 +0800</pubDate><description><![CDATA[简介

HDFS（Hadoop Distributed File System ）Hadoop分布式文件系统。是根据google发表的论文翻版的。论文为GFS（Google File System）Google 文件系统（中文，英文）。

HDFS有很多特点：

    ① 保存多个副本，且提供容错机制，副本丢失或宕机自动恢复。默认存3份。

    ② 运行在廉价的机器上。]]></description><category></category></item><item><title><![CDATA[PHP计算一年有多少周，每周开始日期和结束日期]]></title><link>https://blog.youkuaiyun.com/biorelive/article/details/49152299</link><guid>https://blog.youkuaiyun.com/biorelive/article/details/49152299</guid><author>biorelive</author><pubDate>Thu, 15 Oct 2015 14:37:05 +0800</pubDate><description><![CDATA[<?php
header("Content-type:text/html;charset=utf-8");
date_default_timezone_set("Asia/Shanghai");
$year = (int)$_GET['year'];
$week = (int)$_GET['week'];
$weeks = date("W", mktime(0, 0, 0, 12, 28, $ye]]></description><category></category></item><item><title><![CDATA[PHP计算两个时间段是否有交集（边界重叠不算）]]></title><link>https://blog.youkuaiyun.com/biorelive/article/details/49152261</link><guid>https://blog.youkuaiyun.com/biorelive/article/details/49152261</guid><author>biorelive</author><pubDate>Thu, 15 Oct 2015 14:34:24 +0800</pubDate><description><![CDATA[/**
 * PHP计算两个时间段是否有交集（边界重叠不算）
 *
 * @param string $beginTime1 开始时间1
 * @param string $endTime1 结束时间1
 * @param string $beginTime2 开始时间2
 * @param string $endTime2 结束时间2
 * @return bool
 * @author blo]]></description><category></category></item><item><title><![CDATA[PHP文件夹文件拷贝/复制函数 dir_copy($src = '', $dst = '')]]></title><link>https://blog.youkuaiyun.com/biorelive/article/details/49152111</link><guid>https://blog.youkuaiyun.com/biorelive/article/details/49152111</guid><author>biorelive</author><pubDate>Thu, 15 Oct 2015 14:24:23 +0800</pubDate><description><![CDATA[/**
 * 文件夹文件拷贝
 *
 * @param string $src 来源文件夹
 * @param string $dst 目的地文件夹
 * @return bool
 */
function dir_copy($src = '', $dst = '')
{
	if (empty($src) || empty($dst))
	{
		return false;
	}

	$dir =]]></description><category></category></item><item><title><![CDATA[python垃圾回收]]></title><link>https://blog.youkuaiyun.com/biorelive/article/details/47415299</link><guid>https://blog.youkuaiyun.com/biorelive/article/details/47415299</guid><author>biorelive</author><pubDate>Tue, 11 Aug 2015 09:41:54 +0800</pubDate><description><![CDATA[有 __del__() 函数的对象间的循环引用会导致内存泄漏，对没有 __del__() 函数的 Python 对象间的循环引用，是可以被自动垃圾回收掉的]]></description><category></category></item><item><title><![CDATA[array_splice()函数]]></title><link>https://blog.youkuaiyun.com/biorelive/article/details/47403957</link><guid>https://blog.youkuaiyun.com/biorelive/article/details/47403957</guid><author>biorelive</author><pubDate>Mon, 10 Aug 2015 20:07:24 +0800</pubDate><description><![CDATA[array_splice(array,offset,length,array)
如果函数没有删除任何元素 (length=0)，则替代数组将从 start 参数的位置插入。
<?php
$a1=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird");
$a2=array(0=>"Tiger",1=>"Lion");
array_splice($a1,0,2,]]></description><category></category></item><item><title><![CDATA[python中的globals()、locals()、dir()、vars()、__dict__]]></title><link>https://blog.youkuaiyun.com/biorelive/article/details/47319923</link><guid>https://blog.youkuaiyun.com/biorelive/article/details/47319923</guid><author>biorelive</author><pubDate>Thu, 06 Aug 2015 18:25:34 +0800</pubDate><description><![CDATA[vars()与__dict__等价，不加参数的话返回当前作用域的属性及方法键值对，加参数的话返回的是参数对象所在作用域的属性及方法键值对
dir()不加参数返回当前作用域内所有属性及方法的名字，加参数返回参数对象所在作用域的名字

locals()和dir()一样，只是返回的是字典]]></description><category></category></item><item><title><![CDATA[python中__new__ 的作用]]></title><link>https://blog.youkuaiyun.com/biorelive/article/details/47318239</link><guid>https://blog.youkuaiyun.com/biorelive/article/details/47318239</guid><author>biorelive</author><pubDate>Thu, 06 Aug 2015 16:00:09 +0800</pubDate><description><![CDATA[class PositiveInteger(int):
    def __init__(self, value):
        super(PositiveInteger, self).__init__(self, abs(value))  
i = PositiveInteger(-3)
print i 
结果仍然是-3
class PositiveInteger(int):
    ]]></description><category></category></item><item><title><![CDATA[python中**dict]]></title><link>https://blog.youkuaiyun.com/biorelive/article/details/47318055</link><guid>https://blog.youkuaiyun.com/biorelive/article/details/47318055</guid><author>biorelive</author><pubDate>Thu, 06 Aug 2015 15:55:10 +0800</pubDate><description><![CDATA[是解包的意思
dic = {'a':1,'b':2}
print '{a},{b}'.format(**dic)
结果是1,2]]></description><category></category></item><item><title><![CDATA[Python的私有化]]></title><link>https://blog.youkuaiyun.com/biorelive/article/details/47317659</link><guid>https://blog.youkuaiyun.com/biorelive/article/details/47317659</guid><author>biorelive</author><pubDate>Thu, 06 Aug 2015 15:44:49 +0800</pubDate><description><![CDATA[双下划线
如果不加下划线，子类的xxx变量就会覆盖父类的xxx变量，加上__就不会，因为自动混淆成了_类型__xxx，所以也访问不到]]></description><category></category></item><item><title><![CDATA[python的@property]]></title><link>https://blog.youkuaiyun.com/biorelive/article/details/47317157</link><guid>https://blog.youkuaiyun.com/biorelive/article/details/47317157</guid><author>biorelive</author><pubDate>Thu, 06 Aug 2015 15:10:15 +0800</pubDate><description><![CDATA[class Student(object):

    @property
    def score(self):
        return self._score

    @score.setter
    def score(self, value):
        if not isinstance(value, int):
            raise ValueError]]></description><category></category></item><item><title><![CDATA[python的__slots__]]></title><link>https://blog.youkuaiyun.com/biorelive/article/details/47316989</link><guid>https://blog.youkuaiyun.com/biorelive/article/details/47316989</guid><author>biorelive</author><pubDate>Thu, 06 Aug 2015 15:03:09 +0800</pubDate><description><![CDATA[动态语言可以动态添加属性和方法，__slots__可以限制这种行为
class Student(object):
    __slots__ = ('name', 'age') # 用tuple定义允许绑定的属性名称
使用__slots__要注意，__slots__定义的属性仅对当前类起作用，对继承的子类是不起作用的]]></description><category></category></item><item><title><![CDATA[python偏函数]]></title><link>https://blog.youkuaiyun.com/biorelive/article/details/47311643</link><guid>https://blog.youkuaiyun.com/biorelive/article/details/47311643</guid><author>biorelive</author><pubDate>Thu, 06 Aug 2015 09:40:05 +0800</pubDate><description><![CDATA[from functools import partial
 
def mod( n, m ):
  return n % m
 
mod_by_100 = partial( mod, 100 )
 
print mod( 100, 7 )  # 2
print mod_by_100( 7 )  # 2偏函数就是函数有好几个参数，固定其中的一个或多个，然后再起一个名，调用的时候就固定了]]></description><category></category></item><item><title><![CDATA[在PHP中定义常量时，const与define的区别]]></title><link>https://blog.youkuaiyun.com/biorelive/article/details/47305071</link><guid>https://blog.youkuaiyun.com/biorelive/article/details/47305071</guid><author>biorelive</author><pubDate>Wed, 05 Aug 2015 22:19:59 +0800</pubDate><description><![CDATA[使用const使得代码简单易读，const本身就是一个语言结构，而define是一个函数。另外const在编译时要比define快很多。
(1).const用于类成员变量的定义，一经定义，不可修改。define不可用于类成员变量的定义，可用于全局常量。
(2).const可在类中使用，define不能。
(3).const不能在条件语句中定义常量。
(4).const采用一个普通的常量名称]]></description><category></category></item><item><title><![CDATA[PHP Object 转 Array]]></title><link>https://blog.youkuaiyun.com/biorelive/article/details/47304987</link><guid>https://blog.youkuaiyun.com/biorelive/article/details/47304987</guid><author>biorelive</author><pubDate>Wed, 05 Aug 2015 22:14:38 +0800</pubDate><description><![CDATA[/**
 * object 转 array
 */
function object_to_array($obj){
	$_arr = is_object($obj)? get_object_vars($obj) : $obj;
	foreach ($_arr as $key => $val) {
		$val = (is_array($val)) || is_object($val) ? obje]]></description><category></category></item><item><title><![CDATA[PHP获取当前页面的URL]]></title><link>https://blog.youkuaiyun.com/biorelive/article/details/47304961</link><guid>https://blog.youkuaiyun.com/biorelive/article/details/47304961</guid><author>biorelive</author><pubDate>Wed, 05 Aug 2015 22:13:21 +0800</pubDate><description><![CDATA[/**
 * 获取当前页面地址
 *
 * @author snsgou.com
 */
function getPageUrl() {
	$pageURL = 'http';

	if ($_SERVER["HTTPS"] == "on") {
		$pageURL .= "s";
	}
	$pageURL .= "://";

	if ($_SERVER["SERVER_PORT"] != "]]></description><category></category></item><item><title><![CDATA[PHP二维数组排序(sort_array)]]></title><link>https://blog.youkuaiyun.com/biorelive/article/details/47304949</link><guid>https://blog.youkuaiyun.com/biorelive/article/details/47304949</guid><author>biorelive</author><pubDate>Wed, 05 Aug 2015 22:12:51 +0800</pubDate><description><![CDATA[/**
 * 对二维数组进行排序
 * @param $array
 * @param $keyid 排序的键值
 * @param $order 排序方式 'asc':升序 'desc':降序
 * @param $type  键值类型 'number':数字 'string':字符串
 */
function sort_array(&$array, $keyid, $order = 'asc']]></description><category></category></item><item><title><![CDATA[PHP二维数组排序(sort_array)]]></title><link>https://blog.youkuaiyun.com/biorelive/article/details/47304911</link><guid>https://blog.youkuaiyun.com/biorelive/article/details/47304911</guid><author>biorelive</author><pubDate>Wed, 05 Aug 2015 22:11:06 +0800</pubDate><description><![CDATA[/**
 * 对二维数组进行排序
 * @param $array
 * @param $keyid 排序的键值
 * @param $order 排序方式 'asc':升序 'desc':降序
 * @param $type  键值类型 'number':数字 'string':字符串
 */
function sort_array(&$array, $keyid, $order = 'asc']]></description><category></category></item><item><title><![CDATA[PHP get_class 返回对象的类名]]></title><link>https://blog.youkuaiyun.com/biorelive/article/details/47304387</link><guid>https://blog.youkuaiyun.com/biorelive/article/details/47304387</guid><author>biorelive</author><pubDate>Wed, 05 Aug 2015 21:44:20 +0800</pubDate><description><![CDATA[<?php
class jianbao
{
	public function __construct()
	{
		echo "My class name is " . get_class($this), "";
		echo '__CLASS__：', __CLASS__, "";
	}
}

$jianbao = new jianbao();
echo "It is " . get_class]]></description><category></category></item><item><title><![CDATA[URL处理几个关键的函数parse_url、parse_str]]></title><link>https://blog.youkuaiyun.com/biorelive/article/details/47304247</link><guid>https://blog.youkuaiyun.com/biorelive/article/details/47304247</guid><author>biorelive</author><pubDate>Wed, 05 Aug 2015 21:36:36 +0800</pubDate><description><![CDATA[parse_url()
该函数可以解析 URL，返回其组成部分。它的用法如下：
array parse_url(string $url)
此函数返回一个关联数组，包含现有 URL 的各种组成部分。如果缺少了其中的某一个，则不会为这个组成部分创建数组项。组成部分为：
scheme - 如 http 
host - 如 localhost
port - 如 80
user 
pass ]]></description><category></category></item></channel></rss>