Archive for the 'Technologies' Category

Jun
06

应程序员杂志技术编辑 zhaojp 的约稿,从敏捷和性能两方面,结合这一年时间以来 P1.cn 网站建设实践,和大家做了一下ROR开发经验分享。

文章发布在《程序员》2008年06期技术专栏,标题为《敏捷与性能的博弈–Ruby on Rails Web developement》。

Jun
05

安装 git

Linux:

sudo apt-get install git-svn

Windows:

http://code.google.com/p/msysgit/



创建Git Repository



1.在本地创建

mkdir new_repository

cd new_repository

git init-db

2.从已存在的Repository获取


git clone /path/to/exist/repository

3.在远程服务器上创建bare repository

$ ssh myserver.com
Welcome to myserver.com!
$ mkdir /var/git/myapp.git && cd /var/git/myapp.git
$ git –bare init
Initialized empty Git repository in /var/git/myapp.git
$ exit
Bye!

4.在本地添加远程repository并push

$ cd ~/Sites/myapp
$ git remote add origin ssh://myserver.com/var/git/myapp.git
$ git push origin master

5.使用ssh从远程服务器上获取文件

git clone ssh://user@myserver.com/var/git/myapp.git

添加文件



git add /path/to/filename # 添加单个文件



git add filename [filename] # 添加多个文件



git add /path/to/directory # 添加文件夹



git add ./ # 添加当前文件夹



提交文件



1.提交本地更新


git commit -m “commit message is here”



OR



git commit -a -m “commit message is here”



2.提交更新至远端

git push /path/to/repository



更新文件



1.更新本地工作目录文件


git checkout -f





2.更新远端文件

git pull /path/to/repository



创建分支



创建自己的工作分支,以避免对Master Branch 的影响

      git branch raecoo   # 成功创建了名为raecoo的分支

git checkout raecoo # 将当前工作切换至raecoo分支

删除分支

git-branch -D branch-name

合并分支

git checkout master # 切换当前分支到master



git merge “merge message is here” HEAD raecoo # 将raecoo分支与master分支合并



OR



git checkout master #效果与上相同



git pull . raecoo

参考

http://www.robinlu.com/blog/archives/191

http://www.robinlu.com/blog/archives/194

http://toolmantim.com/article/2007/12/5/setting_up_a_new_remote_git_repository

Jun
02

Raecoo:

http://www.quannei.com

http://www.8ending.com

http://actsasmessages.googlecode.com

从今天起,P1.CN 开发团队又增加了1名Ruby on Rails Developer。P1 Groups 即将推出,敬请期待更精彩的P1, 更稳定的服务。

May
31

又看到Tangos写了一篇关于Virtual World的Blog,于是心血来潮试用了一下虚拟世界HipihiNovoking. 体验不是一般的差。

下载安装了HiPiHi_world_50021,进入后不能容忍粗劣的画面和慢动作。找了一圈只发现有17个人在线(周六下午),根本找不到人交流。于是退出并卸载了程序。

Novoking 0.94 beta 版的画面和行走体验都要HiPiHi好多了,登录后,穿着短库在里面跑了5分钟,终于找到了时装店,由于操作的不灵便,花了15分钟才晕晕的买到一身服装。里面也就没人可以交流。

而我之前体验过网络游戏,几乎任何一款网游都比Hipihi和Novoking做得要好,不管是人物的移动和画面的美观。

与其说 Hipihi 和 Novoking 是Web 2.0的社区,不如说是只有粗糙场景的3D游戏雏形。我本人非常看好这一类的社区产品,希望他们哪家能做好了,于是我到虚拟世界里去开个烤鸭店,或在Virtual World里卖麦当劳,然后送到现实人的手中,岂不是很好玩?

然而现在显然不行,还是要先做好产品。产品不好,再多的软文行销也是没用的。

May
22

UI web-graphics Designer
P1.CN is looking for an experienced UI web-graphics designer to work in a key position of the product design. You are required to design pages from function specifications and prototypes. The position is full-time in our main office at the 28th floor of Chaowai SOHO Tower, Beijing.

Responsibilities

* Design webpages from function specification and/or prototypes/sketches
* Develop, implement and extend style guidelines
* Keep pages on pixel perfection
* Facilitate the user experience

Requirements

* 3+ years experience working in a related field
* Understand the product and its goals
* Understand the users thoughts & needs on a design level
* Sketch drawing
* Expertise in Photoshop
* Expertise in any webeditor available (such as Dreamweaver, Namo, etc.)
* Deep understanding of the social networking space
* Good understanding of written and spoken english
* Ability to handle the pressure and fluidity of a start-up environment
* Extremely detail oriented down to pixel-perfect implementation

Bonus points

* Active in the design community
* Experience with Illustrator, InDesign
* Knowledge of web-programming is welcome (RubyOnRails, PHP, etc.)
* Knowledge in XHTML, CSS

Contact

Email a@p1.cn
Skype: alexander.frederiksen

May
16

Our company has been moved to Shaowai SOHO from Jianwai SOHO yesterday.

We have stayed in Jianwai SOHO for 16 months.

We are in Shaowai SOHO from now on.

New Office, New P1.cn !

May
14

Server stat:

Linux p1 2.6.24-1-amd64
Nginx 0.5.35
ruby 1.8.6 (2008-03-03 patchlevel 114)
rails 1.2.3
mongrel (1.1.4)

Try progress:

  1. Sign up an account for FiveRuns Manage
  2. Install fiveruns_manage client on Deban sarge

    $ wget http://manage.fiveruns.com/system/downloads/client/manage-installer-linux-ubuntu-64bit-intel.sh
    $ sudo sh manage-install-linux-distro-xbit-intel.sh

  3. click “I’ve Finished the Installation” in FiveRuns Manage dashboard, pick up which Subsystems & Applications should be monited.
  4. get report
  5. wow, the Interactive Metric Graphs is really cool!

Apr
29

使用 hdparm 测试硬盘速度:

hdparm linux 测试硬盘及改变硬盘设定的指令

#hdparm -t /dev/hda < - - - 测试硬盘/dev/hda 的速度

如果是scsi 的话/dev/sda , /dev/sdb

#hdparm -c 1 /dev/hda < - - - 开启ide 硬盘的32bit

#hdparm -d 1 /dev/hda < - - - 开启dma mode

这样再次的测试你的硬盘就可以发现你的硬盘便快了

以下是我对三台安装 Debian 操作系统的计算机所做的测试结果:


1×250Gb STAT PC

# hdparm -t /dev/sda2

/dev/sda2:
Timing buffered disk reads: 264 MB in 3.01 seconds = 87.60 MB/sec

2×140Gb SCSI RAID1

# hdparm -t /dev/md0

/dev/md0:
Timing buffered disk reads: 226 MB in 3.02 seconds = 74.83 MB/sec

# hdparm -t /dev/md2

/dev/md2:
Timing buffered disk reads: 208 MB in 3.02 seconds = 68.97 MB/sec





4×1Tb STAT ES.2 RAID5

# hdparm -t /dev/sda1

/dev/sda1:
Timing buffered disk reads: 226 MB in 3.01 seconds = 75.00 MB/sec
# hdparm -t /dev/sdb1

/dev/sdb1:
Timing buffered disk reads: 344 MB in 3.03 seconds = 113.71 MB/sec
# hdparm -t /dev/sdb2

/dev/sdb2:
Timing buffered disk reads: 318 MB in 3.02 seconds = 105.32 MB/sec


Apr
25

we found the problem of my last post, like this post, Innodb Locks cause something else spend long time in transaction.

It is expire_action from disk in our case. we used action_cache plugin in rails application, we have multiple languange versions of zh and en, so we write expire_reg_action to expire both cache when content after_save, this will spent long time when delete cache from huge files.

so we switch Rails cache files from file_store to ramfs_store temporary, it works perfect right now.

mount -t ramfs ramfs /home/yay/rails_app/current/tmp/cache


reference :

  1. rails缓存机制的几个问题
  2. Innodb Locks, ActiveRecord and acts_as_ferret Problem


Apr
25

chinaonrails.com上看到 bd7lx 发布的 简化部署插件 乘客搭上阿帕奇Phusion Passenger (a.k.a. mod_rails for Apache), 对其部署的简单和性能都欣喜不已,但官方的文章不一定真实可靠,特自行测试一番,Let’s go.

测试环境如下:



Linux p1 2.6.24-1-amd64 #1 SMP Mon Feb 11 13:47:43 UTC 2008 x86_64 GNU/Linux

按官方的安装步骤进行,这里有一视频

apt-get install apache2

apt-get install apache2-prefork-dev

apt-get install libapr1-dev

apt-get install apache2-mpm-prefork

gem install passenger

passenger-install-apache2-module

我的 httpd.conf 文件

LoadModule passenger_module /var/lib/gems/1.8/gems/passenger-1.0.1/ext/apache2/mod_passenger.so
RailsSpawnServer /var/lib/gems/1.8/gems/passenger-1.0.1/bin/passenger-spawn-server
RailsRuby /usr/bin/ruby1.8

<VirtualHost *:80>
ServerName dailybuild.p1.cn
DocumentRoot /home/yay/delta/project1/current/public

<Directory “/home/yay/delta/project1/current/public”>
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

问题:

  1. mod_rails 还不支持所有的plugin , 如: file_column.
  2. 对 public/ 目录下的静态文件,需要多一点配制,不要把思维停止在好看的视频上。
  3. 要用于 production 环境,需要做更多的测试,如: httperf。更多测试数据稍后分享。