rails bundle特别慢

rails new一个app时会自动运行bundle install,这时候它指向的gem仓库是https://rubygems.org,国内访问速度很慢。new的时候加上–skip-bundle,然后手工修改Gemfile里的地址为taobao的gem源,http://ruby.taobao.org,然后手工运行bundle install,速度给力很多。

php des 实现类跟java c#兼容

<?php
/** des 实现类*/
class DES
{
var $key;
var $iv; //偏移量

function DES( $key, $iv=0 ) {
//key长度8例如:1234abcd
$this->key = $key;
if( $iv == 0 ) {
$this->iv = $key; //默认以$key 作为 iv
} else {
$this->iv = $iv; //mcrypt_create_iv ( mcrypt_get_block_size (MCRYPT_DES, MCRYPT_MODE_CBC), MCRYPT_DEV_RANDOM );
}
}

function encrypt($str) {
//加密,返回大写十六进制字符串
$size = mcrypt_get_block_size ( MCRYPT_DES, MCRYPT_MODE_CBC );
$str = $this->pkcs5Pad ( $str, $size );
return strtoupper( bin2hex( mcrypt_cbc(MCRYPT_DES, $this->key, $str, MCRYPT_ENCRYPT, $this->iv ) ) );
}

function encryptBase64($str) {
//加密base64
$size = mcrypt_get_block_size ( MCRYPT_DES, MCRYPT_MODE_CBC );
$str = $this->pkcs5Pad ( $str, $size );
return base64_encode(mcrypt_cbc(MCRYPT_DES, $this->key, $str, MCRYPT_ENCRYPT, $this->iv ));
}

function decrypt($str) {
//解密
$strBin = $this->hex2bin( strtolower( $str ) );
$str = mcrypt_cbc( MCRYPT_DES, $this->key, $strBin, MCRYPT_DECRYPT, $this->iv );
$str = $this->pkcs5Unpad( $str );
return $str;
}

function decryptBase64($str) {
//解密base64
$strBin = base64_decode( $str );
$str = mcrypt_cbc( MCRYPT_DES, $this->key, $strBin, MCRYPT_DECRYPT, $this->iv );
$str = $this->pkcs5Unpad( $str );
return $str;
}

function hex2bin($hexData) {
$binData = “”;
for($i = 0; $i < strlen ( $hexData ); $i += 2) {
$binData .= chr ( hexdec ( substr ( $hexData, $i, 2 ) ) );
}
return $binData;
}

function pkcs5Pad($text, $blocksize) {
$pad = $blocksize – (strlen ( $text ) % $blocksize);
return $text . str_repeat ( chr ( $pad ), $pad );
}

function pkcs5Unpad($text) {
$pad = ord ( $text {strlen ( $text ) – 1} );
if ($pad > strlen ( $text ))
return false;
if (strspn ( $text, chr ( $pad ), strlen ( $text ) – $pad ) != $pad)
return false;
return substr ( $text, 0, – 1 * $pad );
}

}
?>

centos6安装oracle11g xe

先去下载oracle 11g xe

然后看看swap空间是否足够,free即可

若不够,增加swap空间、

dd if=/dev/zero of=/swapfile bs=1024 count=1048576

此处count=1024*1024,即增加1g

mkswap /swapfile

swapon /swapfile

然后用free即可看到swap增加了。

此处为了使swap启动时自动加载,需要修改/etc/fstab,增加一行

/newswap    swap    swap   defaults 0 0

准备工作完成。

切换到oracle11g rpm所在处,rpm -ivh xxx.rpm,一路安装下去,按照提示

运行/etc/init.d/oracle-xe configure.

为了使用sqlplus我们还必须设置ORACLE_HOME,在/etc/profile里增加

export ORACLE_HOME=/u01/app/oracle…/xe

export PATH=$PATH:$ORACLE_HOME/bin

export TNS_ADMIN=$ORACLE_HOME/network/admin

sqlplus默认的情况下是不能使用上下左右退格的,为了能使用这些键位,需要安装rlwrap,可在此处下载http://utopia.knoware.nl/~hlub/rlwrap/

一路configure,make,make install

然后使用rlwrap sqlplus,那些键位就能用啦。

为了方便,我们增加一个alias

在~./bashrc下增加alias  sqlplus = ‘rlwrap sqlplus’,然后source一下

自此大功告成

启动时可以使用sqlplus /nolog

然后connect sys/password as sysdba;

就能首次进入oracle啦

================================

然后我们建立用户

create user johnicesea identified by password default tablespace user;

授予create session权限,否则无法登陆

grant create session to johnicesea;

授予建表权限

grant create table to johnicesea;

授予不限制的表空间

grant unlimited tablespace to johnicesea;

现在我们能建表能查询啦

父级容器的overflow:hidden可以清楚子元素的浮动效果

from http://www.mrmu.com.tw/2011/02/19/css-overflow-clear-float/

在使用css設計版面時我們常常會遇到的情況之一,就是用來包覆float子區塊的父區塊無法跟隨float子區塊的高度一併延伸:

float的子區塊1
float的子區塊2

而通常我們要解決這種情況,我們會增加一個具有 clear 屬性的元素 (例:具有clear:both設定的div元素) 在float子區塊後面來清除Float效果,讓父區塊可以成功的包覆子區塊:

float的子區塊1
float的子區塊2

但是你知道嗎?其實我們也可以用overflow這個屬性來達到清除float的效果。什麼是overflow呢,overflow屬性原本是用來控制當內容超出顯示範圍時,是否出現捲軸效果的屬性,它的預設值是visible,也就是讓內容完全顯示出來,不嵌入顯示捲軸的顯示區域。我們在此要使用的是設定是overflow:auto,也就是為內容嵌入顯示捲軸的顯示區域,但視情況顯示捲軸。(請google以獲得更多overflow的詳細使用方式)

當我們為父區塊設定overflow:auto的屬性後,我們就不需額外去clear掉float的效果了:

float的子區塊1
float的子區塊2

Overflow:auto還有另一項用法,常用在作回覆區域時的排版設計。先來看看我們常在圖片元素設定float效果,造成的所謂「文繞圖」效果:

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.

通常我們在圖片上設定float效果,但文字部份不設定任何效果,來達成文繞圖的效果。若是我們在文字區塊上設定 overflow:auto,文字就不會再繞圖了:

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry’s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.

這種設定造成文字會視圖片的寬度來切齊顯示區域,而這樣的設計很常在回覆區域的設計上見到,即是把大頭照放一邊,留言文字切齊放另一邊。

不過,單純使用Overflow來消除float效果也有它的副作用,如果使用overflow:auto,但不小心內容太多爆出界了,捲軸就會出現。也許你會想用overflow:hidden,強制捲軸別出現,但超出的內容依舊會不見。例如在裡面放了一大段沒有空白(space)字元的內容 (文字不會斷行顯示);或者在裡頭放了太大張的圖片。

要解決這樣的問題,可以在文字內容區塊設定 word-wrap: break-word,如此可以讓文字內容自動斷行顯示;而針對太大張的圖片,可以設定圖片區塊的 max-width:100% 以及height:auto,讓它依照父區塊的最大尺寸來延伸,而不會超出界。