2010年5月19日星期三

Install ndiswrapper on Ubuntu

很多的无线网卡没有Linux下的驱动,如果想在Linux下面使用无线网卡的,可以使用ndiswrapper来安装Windows下的
驱动到Linux下。

这边我用的是 Buffalo出的 WLI-U2-KG54L USB型无线上网卡

Ubuntu: 9.10

1. 禁用Linux自带的zd1211rw驱动程序
在/etc/modprobe.d/blacklist.conf 的最后加上下的话
blacklist zd1211rw

2. 安装ndiswrapper程序
2.1 从网络下载
sudo apt-get install ndiswrapper

2.2 从别的机器下载,usb盘copy过来
如果无法上网,可以在这里下载。下载最新的,适用程序即可
http://jp.archive.ubuntu.com/ubuntu/pool/main/n/ndiswrapper/

ndiswrapper-common_1.54-2ubuntu1_all.deb
ndiswrapper-utils-1.9_1.54-2ubuntu1_i386.deb

sudo dpkg -i ndiswrapper-common_1.54-2ubuntu1_all.deb
sudo dpkg -i ndiswrapper-utils-1.9_1.54-2ubuntu1_i386.deb

3. 下载buffalo的驱动程序,安装
sudo ndiswrapper -i netu2kgl.inf

4. 重启电脑
sudo reboot

5. 加载ndiswrapper
sudo modprobe ndiswrapper

6. 无线网卡应该就可以识别出来了,可以在图形界面的网络配置里对无线网卡进行配置。我在命令行界面怎么试都没出来,知道的请告诉我

sudo iwlist wlan0 scan # 扫描可用无线网络
sudo iwconfig wlan0 essid essidname # 设置essid名称
sudo iwconfig wlan0 key s:keyphrase # 设置密码
sudo iwconfig wlan0 mode managed # 手动模式
sudo dhclient wlan0 # 启动dhcp链接网络


7. 重启后自动加载ndiswrapper。 (还未曾试过)
sudo ndiswrapper -m

2010年5月13日星期四

有关Rails程序的SEO

整理一下有关SEO的链接,有必要慢慢学习

Google的SEO指导
http://googlewebmastercentral.blogspot.com/2008/11/googles-seo-starter-guide.html

Google的SEO中文指导
http://www.google.cn/ggblog/googlewebmaster-cn/2008/12/google-seo.html
http://docs.google.com/fileview?id=0B5Utlw5ap2R8MGMyM2I3MjktMGE5Yy00OTMxLTkwZDktZmNkNWFhMjJlZGNj&hl=en&pli=1

中文网站管理员博客
http://googlewebmaster-cn.blogspot.com/


SEO on Rails专门网站
http://www.seoonrails.com/

Rails SEO开始手册
http://web.elctech.com/2008/11/19/rails-seo-starter-guide/

2010年5月12日星期三

关于Rails程序安全性

问题

默热情况下ActiveRecord允许访问者更新所有字段,以及子表字段。
这就让系统中的敏感字段暴露在外。

ActiveRecord里面提供了一下两个函数来声明可以改变的字段。
attr_accessible attr_protected

但是在实际使用中,极为不便,因为
ActiveRecord.new
ActiveRecord.update_attributes
的方法将无法正常使用

当然你可以为每个属性赋值,但这个不是聪明的做法。

问题所在不是出现在ActiveRecord上面。
而是应该在ActiveController上屏蔽一些敏感Parameter

寻找良久,以下这个Plugin应该是一个最为完善的解决方案吧。
据说这个是从Merb里面研究出来的,我想Rails3可能会有直接支持吧。

http://github.com/cjbottaro/param_protected


参看以下链接
http://railspikes.com/2008/9/22/is-your-rails-application-safe-from-mass-assignment

安全检查工具
http://thinkrelevance.com/blog/2008/02/26/tarantula-vs-your-rails-app.html

如何用curl来发送一个非GET请求

# The request
$ curl -X PUT -d "order[price_in_cents]=0" example.com/orders/225

2010年5月10日星期一

vim using easy mode ( modeless )

对于新手来说vi里面有一大堆的命令,很难使用。
但同时他的语法加亮功能却很出色。
为了两者兼得,可以使用vi的简单模式。


vim -y file


vim就会使用简单模式为你文件。
简单模式就是如同一般的文本编辑器,例如Windows里面的notepad小程序。
vi默认使用插入模式,所以你不用再为了切换模式频繁使用Esc按键了。


需要说明的是,如果你在终端下使用简单模式的话,vim没有菜单供你选择退出vim程序。
正确的做法是:

Ctrl + L



来切换到命令模式,输入 :q 来退出去。
对于新手来讲,只要记住这个退出方法就OK了。
是不是很简单。

2010年4月14日星期三

Windowsで使用するVIMの常用設定

フォルダのアドレスに %userprofile% を入れて、個人フォルダを表示されます。
そこに _vimrc というVIM設定ファイルを新規する。
以下の設定をコピーペーストして使ってください。


"新しい行のインデントを現在行と同じにする
set autoindent
"バックアップファイルを作るディレクトリ
set backupdir=$HOME/vimbackup
"ファイル保存ダイアログの初期ディレクトリをバッファファイル位置に設定
set browsedir=buffer
"クリップボードをWindowsと連携
set clipboard=unnamed
"Vi互換をオフ
set nocompatible
"スワップファイル用のディレクトリ
set directory=$HOME/vimbackup
"タブの代わりに空白文字を挿入する
set expandtab
"変更中のファイルでも、保存しないで他のファイルを表示
set hidden
"インクリメンタルサーチを行う
set incsearch
"タブ文字、行末など不可視文字を表示する
set list
"listで表示される文字のフォーマットを指定する
set listchars=eol:$,tab:>\ ,extends:<
"行番号を表示する
set number
"シフト移動幅
set shiftwidth=4
"閉じ括弧が入力されたとき、対応する括弧を表示する
set showmatch
"検索時に大文字を含んでいたら大/小を区別
set smartcase
"新しい行を作ったときに高度な自動インデントを行う
set smartindent
"行頭の余白内で Tab を打ち込むと、'shiftwidth' の数だけインデントする。
set smarttab
"ファイル内の  が対応する空白の数
set tabstop=4
"カーソルを行頭、行末で止まらないようにする
set whichwrap=b,s,h,l,<,>,[,]
"検索をファイルの先頭へループしない
set nowrapscan

" 新しいファイルの文字コードをUTF-8を使用
set fenc=utf-8
" 文字コードを識別する設定  cp936は中国文字コード簡体,cp950は中国文字コード繁体
set fileencodings=utf-8,sjis,cp932,euc-jp,ucs-bom,iso-2022-jp-3,iso-2022-jp,eucjp-ms,cp936,euc-cn,cp950,euc-tw
" カラースキーマを設定(darkblue, desert)
colo darkblue
" ハイライト
syntax on

"----------------------------------------------------------
"アートコマンド設定
"----------------------------------------------------------
"ウィンドウを最大化して起動
au GUIEnter * simalt ~x

"入力モード時、ステータスラインのカラーを変更
augroup InsertHook
autocmd!
autocmd InsertEnter * highlight StatusLine guifg=#ccdc90 guibg=#2E4340
autocmd InsertLeave * highlight StatusLine guifg=#2E4340 guibg=#ccdc90
augroup END

"日本語入力をリセット
au BufNewFile,BufRead * set iminsert=0
"タブ幅をリセット
au BufNewFile,BufRead * set tabstop=4 shiftwidth=4

".txtファイルで自動的に日本語入力ON
au BufNewFile,BufRead *.txt set iminsert=2
".rhtmlと.rbでタブ幅を変更
au BufNewFile,BufRead *.rhtml   set nowrap tabstop=2 shiftwidth=2
au BufNewFile,BufRead *.rb  set nowrap tabstop=2 shiftwidth=2

"全角スペースを視覚化
highlight ZenkakuSpace cterm=underline ctermfg=lightblue guibg=#666666
au BufNewFile,BufRead * match ZenkakuSpace / /

"ステータスバーにファイル情報の表示
"常に表示
set laststatus=2
"ファイルパス 修正フラグ 読み取り専用フラグ ヘルプフラグ プリビュー窓フラグ 
set statusline=%F%m%r%h%w\ [TYPE=%Y]\ [FORMAT=%{&ff}]\ [ENC=%{&enc}]\ [FENC=%{&fenc}]\ [LOW=%l/%L]


参照サイト
http://sourceforge.jp/magazine/07/11/06/0151231

2010年4月5日星期一

release tool - capistrano

Capistrano 是一个基于Rails开发部署工具。原本是主要为Rails应用使用。现在已经比较通用,不光在Rails应用中可以用。

cd app_dir
capify .

vi config/deploy.rb
set :application, "demo"
set :deploy_to, "/path/to/your/app/dir"
set :scm, :subversion
set :user, "user_for_deploy"

# cap deploy  #  This calls both `update' and `restart'
# cap deploy:update  # This calls both `update_code' or `symlink'
# cap deploy:update_code # get source from repository, and call finalize_update
# cap finalize_update # This create 3 symbol links [ public, tmp, log ]
# cap deploy:restart # This works by calling the script/process/reaper

# 如果不是Rails应用,需要覆盖下面2个方法

namespace :deploy do
  task :finalize_udpate do

  end

  task :restart do
  end
end