博客很久没有更新了

的确很久没有更新了,回顾2013年,从来没有感觉时间过的如此之快。

我只记得来广联达面试的时候我穿的是羽绒服,再次穿上羽绒服的时候猛然发现一个夏天已经过去了。再后来,不知不觉又到了过年回家抢火车票的时候。

一整年几乎都是在加班与忙碌中度过,难得在家的时候也不得清闲,要帮忙照顾小宝。这一年虽然累,但也算累的充实,工作不忙的时候我也经常会去公司学习,积攒了不少东西,平时为了图方便都记录在为知笔记中,刚好假期中有时间,打算整理到博客中,一是为了回顾学习,二是为了以后方便查询,三是希望能帮助到别人。

Install Gem Without Ri and Rdoc

gem install XXX 安装 Gem 包的同时会安装 ri 和 rdoc,但这两个东西一般用不到,另外还严重影响安装速度,介于这两个原因我们一般都会这么做:

gem install rails --no-ri --no-rdoc

但是每个 Gem 包安装都这么做就太麻烦了,我们可以直接修改配置让 Gem 默认不安装 ri 和 rdoc:

打开 ~/.gemrc (如果没有这个文件可以自己手动创建)

在文件最后加入 gem: --no-ri --no-rdoc

---
:backtrace: false
:benchmark: false
:bulk_threshold: 1000
:sources:
- http://ruby.taobao.org
:update_sources: true
:verbose: true
gem: --no-ri --no-rdoc

大功告成~

Gem

MongoDB Quick Tips

1. 介绍

  一个mongod服务可以有建立多个数据库,每个数据库可以有多张表,这里的表名叫collection,每个collection可以存放多个文档(document),每个文档都以BSON(binary json)的形式存放于硬盘中,因此可以存储比较复杂的数据类型。它是以单文档为单位存储的,你可以任意给一个或一批文档新增或删除字段,而不会对其它文档造成影响,这就是所谓的schema-free,这也是文档型数据库最主要的优点。跟一般的key-value数据库不一样的是,它的value中存储了结构信息,所以你又可以像关系型数据库那样对某些域进行读写、统计等操作。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。Mongo还可以解决海量数据的查询效率,根据官方文档,当数据量达到50GB以上数据时,Mongo数据库访问速度是MySQL10 倍以上。

BSON

  BSON是Binary JSON 的简称,是一个JSON文档对象的二进制编码格式。BSON同JSON一样支持往其它文档对象和数组中再插入文档对象和数组,同时扩展了JSON的数据类型。如:BSON有Date类型和BinDate类型。

  BSON被比作二进制的交换格式,如同Protocol Buffers,但BSON比它更“schema-less”,非常好的灵活性但空间占用稍微大一点。

BSON有以下三个特点:

1. 轻量级

2. 跨平台

3. 效率高

命名空间

  MongoDB存储BSON对象到collections,这一系列的数据库名和collection名被称为一个命名空间。如同:java.util.List;用来管理数据库中的数据。

索引

  mongodb可以对某个字段建立索引,可以建立组合索引、唯一索引,也可以删除索引,建立索引就意味着增加空间开销。默认情况下每个表都会有一个唯一索引:id,如果插入数据时没有指定id,服务会自动生成一个id,为了充分利用已有索引,减少空间开销,最好是自己指定一个unique的key为id,通常用对象的ID比较合适,比如商品的ID。

Continue reading →

Ubuntu12.04下 SVN 安装和配置

1. 安装

1
sudo apt-get install subversion

2. 将最新版本文件签出到本地

1
svn checkout repository_path local_path --username 用户名  --password 密码

例如:

1
$ svn checkout svn://192.168.1.1/pro  --username 用户名 --password 密码
1
$ svn checkout http://192.168.1.1/pro --username 用户名 --password 密码

简写:$ svn co svn://192.168.1.1/pro或者 $ svn co http://192.168.1.1/pro

注:–password 参数传输密码的话,会提示输入密码。local_path 参数如果为空的话,会签出到当前目录。

3. 导出(导出一个干净的不带.svn文件夹的目录树)

1
2
3
svn export [-r 版本号] http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名
svn export [-r 版本号] svn://路径(目录或文件的全路径)  [本地目录全路径] --username 用户名
svn export 本地检出的(即带有.svn文件夹的)目录全路径  要导出的本地目录全路径 

例子:

1
2
3
svn export svn://192.168.0.3/测试工具 /home/testtools --username ivan
svn export http://192.168.0.3/test/testapp --username ivan
svn export /home/testapp /home/testtools

注:

第一种从版本库导出干净工作目录树的形式是指定URL,如果指定了修订版本号,会导出相应的版本,如果没有指定修订版本,则会导出最新的,导出到指定位置。

如果省略 本地目录全路径,URL的最后一部分会作为本地目录的名字。

第二种形式是指定 本地检出的目录全路径 到 要导出的本地目录全路径,所有的本地修改将会保留,但是不在版本控制下(即没提交的新文件,因为.svn文件夹里没有与之相关的信息记录)的文件不会拷贝。

Continue reading →

Ubuntu12.04 安装 MySQL

第一步:卸载mysql

1
2
3
4
sudo apt-get autoremove --purge mysql-server-5.0
sudo apt-get remove mysql-server
sudo apt-get autoremove mysql-server
sudo apt-get remove mysql-common (非常重要)

第二步:清理残留数据

1
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P

第三步:安装 mysql

1
2
3
sudo apt-get install mysql-server
sudo apt-get install mysql-client
sudo apt-get install php5-mysql(安装php5-mysql 是将php和mysql连接起来 )

一旦安装完成,MySQL 服务器应该自动启动。您可以在终端提示符后运行以下命令来检查 MySQL 服务器是否正在运行:

1
sudo netstat -tap | grep mysql

当您运行该命令时,您可以看到类似下面的行:

1
tcp 0 0 localhost.localdomain:mysql *:* LISTEN -

如果服务器不能正常运行,您可以通过下列命令启动它:

1
sudo /etc/init.d/mysql restart

第四步:配置管理员密码

进入mysql

1
$mysql -uroot -p 管理员密码

配置 MySQL 的管理员密码:

1
sudo mysqladmin -u root password newpassword

Ubuntu12.04 安装 Sublime Text 2

Sublime Text 2 是一款非常优秀的编辑器,可以媲美苹果系统下的TextMate,用Sublime Text 2 进行RoR开发是一件很惬意的事,在Ubuntu12.04系统下安装步骤如下:

  1. 官网下载软件包: “Sublime Text 2.0.1.tar.bz2”。

  2. 复制到安装目录。

  3. 解压缩。

  4. 进入目录,创建desktop文件(sublime-text.desktop),并赋予可执行权限,启动sublime text 2 就直接运行该文件,这样就可以锁定在启动器,内容如下:

     #!/usr/bin/env xdg-open
    
     [Desktop Entry]
     Name=Sublime Text 2
     Comment=Sublime Text 2
     Exec=/home/ivan/apps/"Sublime Text 2"/sublime_text
     Icon=/home/ivan/apps/Sublime Text 2/Icon/256x256/sublime_text.png
     Terminal=false
     Type=Application
     Categories=Application;Development;
     StartupNotify=true
     Name[zh_CN]=sublime-text
    

    如果将文件复制到/usr/share/applications/目录下,就可以在Dash中被搜索到。

Continue reading →

Ubuntu12.04 安装 JDK

很多软件运行需要JRE环境,下面的方法用于在Ubuntu中安装JDK:

  1. 首先下载JDK,点击这里下载(以“jdk-6u26-linux-i586.bin”为例)下载好以后放到安装位置(以~/apps目录为例)。

  2. 设置安装文件权限: chmod u+x ./jdk-6u26-linux-i586.bin

  3. 安装:sudo -s ./jdk-6u26-linux-i586.bin

  4. 配置环境变量:

    sudo gedit /etc/profile

    在文件末尾写入以下内容:

     #set java environment    
    
     JAVA_HOME=/home/ivan/apps/jdk1.6.0_26   
    
     export JRE_HOME=/home/ivan/apps/jdk1.6.0_26/jre   
    
     export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH   
    
     export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH 
    
     #set java environment
    
  5. 测试:

    重启terminal,执行: java -version ,输出版本信息,说明安装成功。

GEM 更新

更新方法:

  1. 从低版本升级到高版本

    gem update –system

  2. 从高版本降到低版本

RubyForge 下载需要的版本,以tgz格式为例:

先解压 tar zxf gem_name_xxxxx

cd 进去 ruby setup.rb

查看帮助: ruby setup.rb --help

参考:https://rubygems.org/pages/download

Gem

Ubuntu12.04 安装 PostgreSQL 和 PgAdmin3

1.安装

安装:sudo apt-get install postgresql postgresql-client postgresql-server-dev-all

或者指定版本号:

sudo apt-get install -y postgresql-9.1 postgresql-client-9.1 postgresql-contrib-9.1 \
postgresql-server-dev-9.1

启动:sudo /etc/init.d/postgresql start

停止:sudo /etc/init.d/postgresql stop

重启:sudo /etc/init.d/postgresql restart

察看状态:sudo /etc/init.d/postgresql status

另外,也可以使用命令:sudo service postgresql [start/stop/restart/status]

以上命令将把PostgreSQL安装到以下目录:

/usr/lib/postgresql/9.1/        存放postgresql相关的二进制文件
/usr/lib/postgresql/9.1/bin/    可执行文件 
/usr/lib/postgresql/9.1/lib/    共享库文件 
/etc/postgres/9.1/main/         存放postgresql配置文文件 
/var/lib/postgresql/            postgres用户的主文件夹
Continue reading →

Git 常用命令

Git 指令结构图

Git 指令结构图

图片中展示了Git Repository结构和执行相关Command后数据的变迁流程,Git维护的代码分成三个部分

  • current working directory 当前工作目录 (1)

  • index file 暂存区 (2)

  • git repository 历史仓库 (3)

Continue reading →
Git