如果你是命令行爱好者,我想ssh应该是你用的最多的工具了,那么在windows有好的ssh client吗,个人用过下面三个client,总结下来,力荐 secureCRT ,
1, putty
download:
http://www.newhua.com/soft/2186.htm
比较简单 , 小巧, 免费 , 支持语法高亮, 单tab , 值得推荐, 适合服务器 机器不多的情况下使用 , 如果你需要同时连接 多个 电脑的话 , 那么用起来就麻烦了
2,ssh secure shell client
download:
http://www.onlinedown.net/soft/20089.htm
免费, 也是单标签 , 默认没有语法高亮 , 同时 带了 ssh 文件上传功能 , 如果你需要上传文件 , 又需要 命令行管理服务器 , 那么 ssh secure shell client 还是不错的
3,SecureCRT
download:
http://www.onlinedown.net/softdown/46646_2.htm
最后推荐secureCRT ,默认不支持 语法高亮, 杀手锏的是支持多标签和rz上传,sz下载功能,可以保存会话状态(密码), 还有就是不免费, 但是晚上破解版的 到处都是 , 下载后 更改 一些配置 ,例如,语法高亮等,配色, 用起来还是很
爽的。。。
centos 中的支持VIM高亮配置 和 中文乱码解决:
(1),在SecureCRT中设置 选项→会话选项→终端→仿真→终端:Linux,选中ANSI Color,全局设置的话,选择 选项→ 全局选项 设置即可
(2), 选项 → 会话选项 → 外观 修改字符编码为 UTF-8 (很重要,必须设置)
(3),
>vim /etc/vimrc syntax on # 添加语法高亮 开启 set encoding=utf-8 # 修改编码为 utf-8
服务器端是ubuntu的话 , CRT 使用 rz,sz 命令的话,必须安装 lrzsz
sudo apt-get install lrzsz
centos :
yum install lrzsz
mac:
>wget ftp://ftp.kfki.hu/pub/Sun/freeware/SOURCES/lrzsz-0.12.20.tar.gz >tar -zvxf lrzsz-0.12.20.tar.gz >cd lrzsz >./configure --prefix=/usr/local/lrzsz >make >make install >ln -s /usr/local/lrzsz/bin/lrz /usr/bin/lrz >ln -s /usr/local/lrzsz/bin/lsz /usr/bin/lsz
rz 上传到当前目录,sz下载到 user目录下 ,例如: C:\Users\Administrator\Downloads
SEE:
http://blog.s135.com/post/207/
http://tuhaitao.javaeye.com/blog/504919
环境 : ruby 1.8.7
今天我有一个这样的需求,例如,a=[1,2,1] , b= [10,20,30] 数组b中的项是a项对应的值 , 现在要求出a数组中相同项的的和(值对应b的数组) , 例如数组a,b的最后结果是 {1=>40,2=>20}
在ruby的Arrray的方法中 没有找到对应的方法, 就自己写了个,用 ruby已有的方法堆砌起来的, 自认为比较繁琐,望高人指点
# DEMO : [1,2,3].sum => 6 # [1,2,3].sum { |s| s*2 } => 12 class Array # def sum # inject { |sum,n| sum + n } # self.reduce(&:+) # end # Rails 里Array的sum方法源码 def sum(identity = 0, &block) if block_given? map(&block).sum(identity) else inject { |sum, element| sum + element } || identity end end end class Hash # demo : # a = [1,2,1,3] # b = [10,20,30,50] # Hash.group_sum(a,b) => {1=>40,2=>20,3=>50} def self.group_sum(arr1,arr2) hsh = {} hsh2 = {} arr1.uniq.each do |ele| arr = [] arr1.each_with_index do |val,index| arr << index if val == ele end hsh[ele] = arr end values = [] hsh.each do |k,v| sum = v.inject(0) { |s,x| s+arr2[x] } values << sum end hsh2 = Hash[arr1.uniq.zip(values)] hsh2 end end
NoSQL 渐渐火了起来,最近同事也在讨论这个问题,一不做,二不休,就学习了下,mongodb是采用C++写的,开源,免费,目前已经有公司(10gen)在背后提供商业支持,文件之小,windows下载二进
制包解压后是45M左右,linux下的就更小了,读写操作性能之高,即使是在大数据量,大并发的情况下,也能保持良好的性能,可以索性,例如可以结合memcached,sphinx使用,哇。。。cool。。。
这两天利用mongodb + sinatra 做了个短地址服务网址,当然只是自娱自乐一把而已,domain太ugly了,地址是 http://url.wxianfeng.com,这编来介绍
rails中使用mongodb的入门教程,是railscasts上的那篇教程,但是有许多注意点,在此重点指出。
在开始这个demo前,如果你对mongodb还不熟的话,建议先学习下mongodb,就想先学习下mysql 一样,掌握一些基本的操作过程
我的环境:windows xp + rails 2.3.5 + mongodb 1.4.4 + mongo_mapper 0.8.2
1,安装需要的gem包
gem install mongo_mapper
如果顺利的话,可以安装成功,并且包依赖的其他gem也都同时安装上了 , 例如我在美国的linode服务器上,直接执行上面命令,就安装成功了,但是在大陆无法安装成功,至少我是经过下面的安装步
骤成功的:
gem install jnunemaker-validatable --source http://gemcutter.org gem install bson --source http://rubygems.org gem install mongo --source http://gemcutter.org gem install plucky --source http://gemcutter.org gem install mongo_mapper --source http://gemcutter.org
2,新建rails工程,修改你的enviroment.rb
config.gem "mongo_mapper",:source=>"http://gemcutter.org" config.frameworks -= [:active_record] # - 代表不加载 active_record
在这里需要注意,当你需要使用scaffold生成代码时,必须把 – 给去掉,来加载active_record,因为scaffold默认需要使用activerecord,当你开启server时,再把 – 号给加上
4,修改 database.yml
development: adapter: mysql encoding: utf8 reconnect: false database: trade_supplier_development # pool: 5 username: root password: root # socket: /var/run/mysqld/mysqld.sock host: localhost
需要保证mysql的username,和 password正确,还是为了能使用 scaffold
5,添加 配置,在 config/initializers 下新建 mongo_config.rb
MongoMapper.database = "todo-#{Rails.env}"
配置连接时的db name,start server时不会建立 db,当插入数据时会 同时建立 db 和 collection
6,修改Model
class Project include MongoMapper::Document key :name, String, :required => true key :priority, Integer many :tasks end
class Task include MongoMapper::Document key :project_id, ObjectId key :name, String key :completed, Boolean belongs_to :project end
核心部分就是Model部分,db中的字段是根据 key来动态改变的,没有shama,没有migrate,当你添加新的key时,原有的数据不会改变,上面的两个model是1对多的关系,例如mongo——mapper 可以来
实现 1对1,1对多,多对多的关系,并且和 activerecord操作非常之相像
7,启动 mongodb
进入mongodb bin 目录下
mongod.exe --dbpath E:/mongodb/data
8,启动server
thin start
这一步会提示安装 bson_ext gem包, 我在linux中安装成功了,在windows无法顺利安装,貌似只能在UNIX中安装,需要make编译,但是只要你安装bson包,程序都可以顺利跑起来,BSON是json的binary
形式,这样会节省存储空间,最重要的是减少网络消耗
9,ok
http://localhost:3000/projects 瞧瞧
DEMO源码下载:
http://www.uushare.com/user/fl1429/file/3274129
See:
http://asciicasts.com/episodes/194-mongodb-and-mongomapper
1,安装subversion
yum update yum install subversion
3,创建和配置代码仓库
cd /usr/local/system svnadmin create vcs # 配置工程 vim vcs/conf/svnserve.conf # 取消掉如下两行的注释 # auth-access = write # password-db = passwd # 配置该工作的用户与密码 vim vcs/conf/passwd [users] wxianfeng = 12345
4,启动svn server
cd /usr/local/system
svnserve -d -r vcs5,导入工程
svn import wxianfeng_com svn://173.230.155.150/wxianfeng_com -m "first import" --username wxianfeng --password 12345 # 远程 或本机导入 svn import wxianfeng_com file:///localhost/wxianfeng_com # 本机导入
前面的wxianfeng_com 是本地的文件夹,后面的wxianfeng_com 是svn仓库的project name , 或者你可以借助netbeans,eclipse带的svn客户端直接导入netbeans中或eclipse中的project到svn仓库中
6,checkout项目
svn co svn://173.230.155.150/wxianfeng_com
以上就可以做到一个仓库,多个项目的目的了,当有另外一个project时,直接import即可,如果想删除仓库中的某个工程,可以执行delete命令
svn delete svn://173.230.155.150/wxianfeng_com -m "delete project"
See:
http://www.tonyspencer.com/2007/03/02/setup-a-subversion-server-in-4-minutes/
http://blog.itmem.com/archives/1207
这几天真是和phpmyadmin有缘啊,老是和他接触,今天又在我的linode VPS上搭建了个phpmyadmin,用来管理mysql数据库,装好后才猛然发现我的数据库中中文全部是乱码,但是rails读出来后是中文,也就是大家看到我现在的这个blog是中文,但是mysql里是乱码,看了下所有的编码都是utf-8形式,诡异的问题,这个问题比较棘手,必须解决。但是今天写的是 centos 5.5 上如何搭建phpmyadmin ,和其他系统的安装的大同小异
1,安装php
yum install php – enablerepo=centosplus
注意 – 和 enablerepo 之间有个空格 , 加上 – enablerepo=centosplus 为了安装到5.x的php,如果直接 yum install php 的话 , 则安装的是php 4.x 系列
以后更新php 可以执行下面的命令:
yum update php –enablerepo=centosplus
结束后 可以用 php -v 查看安装的版本信息
2,安装phpmyadmin
到phpmyadmin官网下载 phpmyadmin , 注意下载的版本 必须注意支持的mysql 和 php 版本
我用的是 2.1 版,安装和配置过程:
>cd /usr/local/system # 进入到该目录下,这个一般是我的工作目录,你可以任意指定 >wget http://downloads.sourceforge.net/project/phpmyadmin/phpMyAdmin/2.11.10/phpMyAdmin-2.11.10-all-languages.tar.gz?use_mirror=cdnetworks-kr-1&27689465 # 下载 phpmyadmin >tar -zvxf phpMyAdmin-2.11.9.5-all-languages.tar.gz # 解压 >mv phpMyAdmin-2.11.9.5-all-languages phpmyadmin # rename >cp config.sample.inc.php config.inc.php >vi config.inc.php $cfg['blowfish_secret'] = ‘TypeAnything_for_Secure’; # 找到 $cfg['blowfish_secret'] 值为后面的值 >vi /etc/httpd/conf.d/phpmyadmin.conf Alias /phpmyadmin /usr/local/system/phpmyadmin # 添加该代码
3,配置apache的端口
>vi /etc/httpd/conf/httpd.conf Listen:8080 # 修改Listen 端口为 8080
4,重启 apache
service httpd restart
>netstat -antup # 可以查看端口启动情况5,访问phpmyadmin
http://localhost:8080/phpmyadmin
报错,php 不能加载 mysql 模块 ,因为 php 没有安装 mysql 扩展,安装之:
>yum install php-mysql - enablerepo=centosplus
再次访问 phpmyadmin .OK 成功了
tips:
登录phpmyadmin出现下面错误 #2002 Cannot log in to the MySQL server
修改config.inc.php 的localhost 为 127.0.0.1 即可
>vim config.inc.php
我的phpmyadmin地址:
http://wxianfeng.com:8080/phpmyadmin
See:
https://www.sevenl.net/blog/how-to-install-lamp-phpmyadmin-and-vsftp-on-centos-5-3-using-yum/
http://imthi.com/blog/linux/install-or-update-php-5-on-centos.php




