ubuntu默認是無法解壓縮rar格式的文件,需要安裝其他軟件。
如果你安裝的是rar,就是在終端中輸入 sudo apt-get install rar 安裝後,
解壓部分rar文件會遇到「無效的編碼「這一問題,原因在於該rar文件中的編碼與ubuntu的不同。
解決辦法很簡單,卸載掉當前系統中的rar 軟件,
在終端中輸入sudo apt-get remove rar
卸載掉rar後,安裝p7zip-rar就可解決。如何安裝?
在終端中輸入 sudo apt-get install p7zip-rar 即可安裝。
再解壓文件就不會遇到無效的編碼這一問題。
ubuntu下解壓的rar文件註釋無效的編碼
2010年11月7日 星期日
2010年8月25日 星期三
富model,瘦controller
富model,瘦controller - 李驥平
無論如何這在MVC框架裡是糟糕透頂的現象,MVC經過這麼多年的實踐考驗,它的優點在於「可讀性強」「可維護性好」「模塊化」「關注 點的分離」等等,我想你用MVC框架也就是想實現這些優點哇?那麼首先需要改進的是儘可能的將邏輯內容搬到controller中,controller 的作用就是介於view和model之間,起到一個類似中介的作用。下面來看下這樣改動之後的代碼:
<% @people.each do |person| %>
<% end %>
<% @people.each do |person| %>
<% end %>
很久以前看過的一篇文章。挺簡單,不過這種思想很重要。簡單的複述,也不能完全算翻譯。
----先看這麼一段rhtml代碼:渲染模板中加入了這麼多的邏輯,看起來不倫不類,這麼做行是行,但是缺點很多,新手一般有這個毛病。那麼這樣做,首先是可讀性很差,因為在渲染代碼中最好都是貼近HTML代碼,而這堆代碼裡把C的內容也加進來了。
<% people = Person.find( :conditions => ["added_at > ? and deleted = ?", Time.now.utc, false],
:order => "last_name, first_name") %>
<% people.reject { |p| p.address.nil? }.each do |person| %>
<% end %>
:order => "last_name, first_name") %>
<% people.reject { |p| p.address.nil? }.each do |person| %>
">
<%= person.last_name %>, <%= person.first_name %>
<%= (Date.today - person.birthdate) / 365 %>
<%= person.last_name %>, <%= person.first_name %>
<%= (Date.today - person.birthdate) / 365 %>
<% end %>
再看看controller和model裡的東西:
# app/controllers/people_controller.rb
class PeopleController <>
class PeopleController <>
空蕩蕩的controller,而在model裡僅僅有一句關係聲明。這麼組合成的MVC顯得很彆扭,似乎就是一層渲染模板。幾乎把C與M都忽略了。
無論如何這在MVC框架裡是糟糕透頂的現象,MVC經過這麼多年的實踐考驗,它的優點在於「可讀性強」「可維護性好」「模塊化」「關注 點的分離」等等,我想你用MVC框架也就是想實現這些優點哇?那麼首先需要改進的是儘可能的將邏輯內容搬到controller中,controller 的作用就是介於view和model之間,起到一個類似中介的作用。下面來看下這樣改動之後的代碼:
<% @people.each do |person| %>
">
<%= person.last_name %>, <%= person.first_name %>
<%= (Date.today - person.birthdate) / 365 %>
<%= person.last_name %>, <%= person.first_name %>
<%= (Date.today - person.birthdate) / 365 %>
<% end %>
# app/controllers/people_controller.rb
class PeopleController < people =" Person.find(" conditions =""> ["added_at > ? and deleted = ?", Time.now.utc, false],
:order => "last_name, first_name")
@people = @people.reject { |p| p.address.nil? }
end
end
class PeopleController < people =" Person.find(" conditions =""> ["added_at > ? and deleted = ?", Time.now.utc, false],
:order => "last_name, first_name")
@people = @people.reject { |p| p.address.nil? }
end
end
這樣看起來就好多了,模板中的代碼更像是HTML的結構,而且你粗略的看一下controller裡的代碼就能知道在這個action渲染的模板中會顯示什麼數據。
還可以更進一步做的事情就是將現在模板代碼中關於一部分數據的處理挪到Model中來:
# app/models/person.rb
class Person <>
class Person <>
<% @people.each do |person| %>
">
<%= person.name %>
<%= person.age %>
<%= person.name %>
<%= person.age %>
<% end %>
這樣通過在model中添加幾個虛擬屬性,在view裡調用,顯得很合理,而且模板代碼更簡潔明了了。
下一步就是將controller裡的代碼理一理。因為controller只能算是個中介,不應該參與很多的邏輯處理。
# app/models/person.rb
class Person < people =" find(" conditions =""> ["added_at > ? and deleted = ?", Time.now.utc, false],
:order => "last_name, first_name")
people.reject { |p| p.address.nil? }
end
# ...
end
# app/controllers/people_controller.rb
class PeopleController < people =" Person.find_recent">
class Person < people =" find(" conditions =""> ["added_at > ? and deleted = ?", Time.now.utc, false],
:order => "last_name, first_name")
people.reject { |p| p.address.nil? }
end
# ...
end
# app/controllers/people_controller.rb
class PeopleController < people =" Person.find_recent">
現在看index這個action,掃一眼就知道它要干嗎。而且如果find_recent方法在以後需要改變時,可以直接在model裡進行修改。
--總結一下,儘量使得controller的actions中的代碼和view中的代碼更少,在action中要是能只寫一行達到效果最好。在view中要儘量使代碼貼近html結構。
還有一個不太明顯的好處就是,瘦action可以使得
respond_to
結構更突出,可以看出輸出的類型是什麼。class PeopleController < people =" Person.find_recent" xml =""> @people.to_xml(:root => "people") }
format.rss { render :action => "index.rxml" }
end
end
end
format.rss { render :action => "index.rxml" }
end
end
end
2010年6月1日 星期二
rails2.3 routes 新語法
rails2.3 routes筆記 - 逆水行舟
參考鏈接:http://guides.rubyonrails.org/routing.html
多个简单的RESTful的路由可以这样定义:
Ruby代码
收藏代码
map.resources :photos, :books, :videos
以上代码相当于:
Ruby代码
收藏代码
map.resources :photos
map.resources :books
map.resources :videos
单数形式的Resource:
map.resource将生成6个路由规则,与复数形式的resources所不同的是,复数形式多了一个index的action对应的规则,单数形式不需要index,只需要一个show即可。生成的url稍微有所不同,不过和复数形式的resources一样,这些url不用记,有规律,很容易想到该怎么写。
可以通过:controller选项修改RESTful路由默认的controller,比如:
Ruby代码
收藏代码
map.resources :photos, :controller => "images"
本来pohtos的controller是PhotosController,这里变成了ImagesController。
=begin
guides中有这么个用法:
引用
You can also specify a controller namespace with the :namespace option instead of a path:
Ruby代码
收藏代码
map.resources :adminphotos, :namespace => "admin", :controller => "photos"
This can be especially useful when combined with with_options to map multiple namespaced routes together:
Ruby代码
收藏代码
map.with_options(:namespace => "admin") do |admin|
admin.resources :photos, :videos
end
That would give you routing for admin/photos and admin/videos controllers.
可我试了,好像并不是这么回事。
我仿着写了一段:
Ruby代码
收藏代码
map.with_options(:namespace=>'admin') do |admin|
admin.resources :books, :box
end
可我访问/admin/books时Rails却报告No route matches。再试了一下访问/books,却有结果了,结果是:NameError in AdminbooksController#index ——它在原来的BooksController前边加了一个Admin并且把B小写了……
翻了Rails的api也没见着这个:namespace的用法,实在搞不明白。
=end
:singular选项
如果rails不认识某个单词的单数形式,可以通过:singular来设置:
比如有如下routes代码:
Ruby代码
收藏代码
map.resources :teeth
这时候如果在页面上或者Controller里使用tooth_url,Rails会不认识这个tooth——teeth的单数形式,这种情况下就可以加上:singular => "tooth":
Ruby代码
收藏代码
map.resources :teeth, :singular => "tooth"
:as选项
用于修改路由能够识别的url,例如有如下routes代码:
Ruby代码
收藏代码
map.resources :photos, :as => "images"
这时访问/images会被Rails识别,并且调用PhotosController的index方法。但/photos这个URL将不再被Rails识别。
:conditions选项
用于限制能够被识别的请求的HTTP动作,一般不推荐用于RESTful的路由规则中。但可以在map.connect等方法中使用。
用法:
Ruby代码
收藏代码
map.connect 'photo/:id', :controller => 'photos', :action => 'show', :conditions => { :method => :get }
:requirements选项
用于限制url参数的格式,比如:
Ruby代码
收藏代码
map.resources :photos, :requirements => {:id => /[A-Z][A-Z][0-9]+/}
这样,/photos/1将不再被识别,/photos/AB2会被识别。
:path_name选项
用于给自动生成的URL中的'new'和'edit'重命名,但并不改变这两个action的名称,用法:
Ruby代码
收藏代码
map.resources :photos, :path_names => { :new => 'make', :edit => 'change' }
以上,/photos/make仍然调用controller里的new方法。
如果你希望整个rails项目中都使用上面的url,而不是默认的new、edit,可以在enviroment.rb中这样配置:
Ruby代码
收藏代码
config.action_controller.resources_path_names = { :new => 'make', :edit => 'change' }
:only、:except选项
引用
By default, Rails creates routes for all seven of the default actions (index, show, new, create, edit, update, and destroy) for every RESTful route in your application. You can use the : only and :except options to fine-tune this behavior. The : only option specifies that only certain routes should be generated:
Ruby代码
收藏代码
map.resources :photos, :only => [:index, :show]
With this declaration, a GET request to /photos would succeed, but a POST request to /photos (which would ordinarily be routed to the create action) will fail.
The :except option specifies a route or list of routes that should not be generated:
Ruby代码
收藏代码
map.resources :photos, :except => :destroy
In this case, all of the normal routes except the route for destroy (a DELETE request to /photos/id) will be generated.
引用
If your application has many RESTful routes, usingnly and :except to generate only the routes that you actually need can cut down on memory use and speed up the routing process.
:has_one、:has_many 嵌套资源的一种简洁写法:
Ruby代码
收藏代码
map.resources :photos, :has_one => :photographer, :has_many => [:publications, :versions]
2.x的rails开始支持namespace:
Ruby代码
收藏代码
map.namespace(:admin) do |admin|
admin.resources :photos, :has_many => { :tags, :ratings}
end
/admin/photos 将调用Admin::PhotosController的index方法。
:member :collection选项
Ruby代码
收藏代码
map.resources :photos, :member => { :preview => :get }
map.resources :photos, :member => { :prepare => [:get, :post] }
map.resources :photos, :collection => { :search => :get }
GET /photos/1/preview
POST /photos/1/prepare
GET /photos/search
引用
A Note of Caution
If you find yourself adding many extra actions to a RESTful route, it’s time to stop and ask yourself whether you’re disguising the presence of another resource that would be better split off on its own. When the :member and :collection hashes become a dumping-ground, RESTful routes lose the advantage of easy readability that is one of their strongest points.
后面是比较常用的connect的用法,比较熟悉,就不记了。倒是有个with_options第一次见到:
Ruby代码
收藏代码
map.with_options :controller => 'photo' do |photo|
photo.list '', :action => 'index'
photo.delete ':id/delete', :action => 'delete'
photo.edit ':id/edit', :action => 'edit'
end
用于批量设置一组具有某相同选项的路由规则。
rake routes 可以在控制台按顺序输出所有的路由规则。
參考鏈接:http://guides.rubyonrails.org/routing.html
多个简单的RESTful的路由可以这样定义:
Ruby代码
收藏代码
map.resources :photos, :books, :videos
以上代码相当于:
Ruby代码
收藏代码
map.resources :photos
map.resources :books
map.resources :videos
单数形式的Resource:
map.resource将生成6个路由规则,与复数形式的resources所不同的是,复数形式多了一个index的action对应的规则,单数形式不需要index,只需要一个show即可。生成的url稍微有所不同,不过和复数形式的resources一样,这些url不用记,有规律,很容易想到该怎么写。
可以通过:controller选项修改RESTful路由默认的controller,比如:
Ruby代码
收藏代码
map.resources :photos, :controller => "images"
本来pohtos的controller是PhotosController,这里变成了ImagesController。
=begin
guides中有这么个用法:
引用
You can also specify a controller namespace with the :namespace option instead of a path:
Ruby代码
收藏代码
map.resources :adminphotos, :namespace => "admin", :controller => "photos"
This can be especially useful when combined with with_options to map multiple namespaced routes together:
Ruby代码
收藏代码
map.with_options(:namespace => "admin") do |admin|
admin.resources :photos, :videos
end
That would give you routing for admin/photos and admin/videos controllers.
可我试了,好像并不是这么回事。
我仿着写了一段:
Ruby代码
收藏代码
map.with_options(:namespace=>'admin') do |admin|
admin.resources :books, :box
end
可我访问/admin/books时Rails却报告No route matches。再试了一下访问/books,却有结果了,结果是:NameError in AdminbooksController#index ——它在原来的BooksController前边加了一个Admin并且把B小写了……
翻了Rails的api也没见着这个:namespace的用法,实在搞不明白。
=end
:singular选项
如果rails不认识某个单词的单数形式,可以通过:singular来设置:
比如有如下routes代码:
Ruby代码
收藏代码
map.resources :teeth
这时候如果在页面上或者Controller里使用tooth_url,Rails会不认识这个tooth——teeth的单数形式,这种情况下就可以加上:singular => "tooth":
Ruby代码
收藏代码
map.resources :teeth, :singular => "tooth"
:as选项
用于修改路由能够识别的url,例如有如下routes代码:
Ruby代码
收藏代码
map.resources :photos, :as => "images"
这时访问/images会被Rails识别,并且调用PhotosController的index方法。但/photos这个URL将不再被Rails识别。
:conditions选项
用于限制能够被识别的请求的HTTP动作,一般不推荐用于RESTful的路由规则中。但可以在map.connect等方法中使用。
用法:
Ruby代码
收藏代码
map.connect 'photo/:id', :controller => 'photos', :action => 'show', :conditions => { :method => :get }
:requirements选项
用于限制url参数的格式,比如:
Ruby代码
收藏代码
map.resources :photos, :requirements => {:id => /[A-Z][A-Z][0-9]+/}
这样,/photos/1将不再被识别,/photos/AB2会被识别。
:path_name选项
用于给自动生成的URL中的'new'和'edit'重命名,但并不改变这两个action的名称,用法:
Ruby代码
收藏代码
map.resources :photos, :path_names => { :new => 'make', :edit => 'change' }
以上,/photos/make仍然调用controller里的new方法。
如果你希望整个rails项目中都使用上面的url,而不是默认的new、edit,可以在enviroment.rb中这样配置:
Ruby代码
收藏代码
config.action_controller.resources_path_names = { :new => 'make', :edit => 'change' }
:only、:except选项
引用
By default, Rails creates routes for all seven of the default actions (index, show, new, create, edit, update, and destroy) for every RESTful route in your application. You can use the : only and :except options to fine-tune this behavior. The : only option specifies that only certain routes should be generated:
Ruby代码
收藏代码
map.resources :photos, :only => [:index, :show]
With this declaration, a GET request to /photos would succeed, but a POST request to /photos (which would ordinarily be routed to the create action) will fail.
The :except option specifies a route or list of routes that should not be generated:
Ruby代码
收藏代码
map.resources :photos, :except => :destroy
In this case, all of the normal routes except the route for destroy (a DELETE request to /photos/id) will be generated.
引用
If your application has many RESTful routes, usingnly and :except to generate only the routes that you actually need can cut down on memory use and speed up the routing process.
:has_one、:has_many 嵌套资源的一种简洁写法:
Ruby代码
收藏代码
map.resources :photos, :has_one => :photographer, :has_many => [:publications, :versions]
2.x的rails开始支持namespace:
Ruby代码
收藏代码
map.namespace(:admin) do |admin|
admin.resources :photos, :has_many => { :tags, :ratings}
end
/admin/photos 将调用Admin::PhotosController的index方法。
:member :collection选项
Ruby代码
收藏代码
map.resources :photos, :member => { :preview => :get }
map.resources :photos, :member => { :prepare => [:get, :post] }
map.resources :photos, :collection => { :search => :get }
GET /photos/1/preview
POST /photos/1/prepare
GET /photos/search
引用
A Note of Caution
If you find yourself adding many extra actions to a RESTful route, it’s time to stop and ask yourself whether you’re disguising the presence of another resource that would be better split off on its own. When the :member and :collection hashes become a dumping-ground, RESTful routes lose the advantage of easy readability that is one of their strongest points.
后面是比较常用的connect的用法,比较熟悉,就不记了。倒是有个with_options第一次见到:
Ruby代码
收藏代码
map.with_options :controller => 'photo' do |photo|
photo.list '', :action => 'index'
photo.delete ':id/delete', :action => 'delete'
photo.edit ':id/edit', :action => 'edit'
end
用于批量设置一组具有某相同选项的路由规则。
rake routes 可以在控制台按顺序输出所有的路由规则。
2010年5月16日 星期日
Web 設計與開發者必須知道的 15 個站點 - 博客園IT新聞
LIpsum
Lorem Ipsum Text 是一中自造的,字典中不存在的單詞,是在演示頁面結構的時候,需要加文字的地方使用 Lorem Ipsum Text 填充可以避免用戶因關注文字的意思而分神。Lipsum.com 可以幫你生成制定數目的 Lorem Ipsum 單詞。
What the font?
有時候你對某個 Logo 感興趣,想知道是拿什麼字體做的,可以將 Logo 圖片上傳到這個網站,結果之準確會讓你難以置信。
ConvertIcon
Favicon 越來越受歡迎,尤其隨著 Firefox 的流行,Firefox 會將你站點的 Favicon 標誌顯示在標籤上,也會顯示於書籤,Favicon 支持多種圖形格式,比如 png,但 IE 並不支持 png,該站點可以幫助你將 png 等圖片格式的 Favicon 轉換成 IE 支持的 ico 格式。
BgPatterns
現代 Web 設計的趨勢之一包括使用背景圖案,BgPatterns.com 可以幫你設計背景圖案,他們有大量可選的圖案,可以按 不同方式接合,還可以設置透明度。
HTML Encoder
如果你要在網站中顯示 Web 代碼,那將是非常煩人的事,你必須將諸如 < 一類的符號用編碼表示,這個網站可以幫你做這些事情,只需將你的代碼複製進去,他們會幫你生成可以直接使用的代碼。還有 HTML Decoder 幫你做相反的事。
Xenocode Browsers
該網站非常有用,可以直接在站點中預覽你的網站在 IE6, IE7, IE8, Firefox 2, Firefox 3, Google Chrome 以及 Opera 中的樣子。唯一的不足是,不支持 Mac 和 Linux 環境下的瀏覽器。
Test Everything
這個網站包含了超過 100 中工具幫你測試幾乎所有東西,如跨瀏覽器兼容,查 PR 值,甚至幫你驗證代碼。
Sprite Generator
CSS Sprites 在顯著降低 HTTP 請求方面功不可沒,但 CSS sprite 可不是個簡單的技術,Sprite generator 可以幫你做這些繁複的工作,將你的圖片打包成 zip 上傳上去,他們會把你的圖片組合成 sprite,還幫你生成 CSS 代碼。
Buttonator
這個網站可以幫你設計漂亮的按鈕。
Load Impact
這個壓力測試站點可以幫你測試你的站點的抗壓能力,如果你的某篇文章曾經上過 Digg 或 StumbleUpon 等網站的首頁,你就會知道抗壓測試多麼重要。
IconFinder
這個網站收藏了大量來自網絡的免費圖標。
TypeTester
該站點可以幫你測試不同字體的顯示效果。
CSS Tidy
這個站點可以幫你檢查 CSS 代碼,並修正其中的錯誤,比如,它可以發現你的 CSS 代碼中最常見到重複設置問題。
Contact Forms Generators
自定義表單可以幫助你實現同訪問者的互動,無需編程,就能快速生成訪客反饋表單,甚至幫你生成郵件發送 PHP, ASP, Perl 代碼。
本文來源:15 sites web developers and designers should know
中文翻譯來源:COMSHARP CMS 官方網站
Lorem Ipsum Text 是一中自造的,字典中不存在的單詞,是在演示頁面結構的時候,需要加文字的地方使用 Lorem Ipsum Text 填充可以避免用戶因關注文字的意思而分神。Lipsum.com 可以幫你生成制定數目的 Lorem Ipsum 單詞。
What the font?
有時候你對某個 Logo 感興趣,想知道是拿什麼字體做的,可以將 Logo 圖片上傳到這個網站,結果之準確會讓你難以置信。
ConvertIcon
Favicon 越來越受歡迎,尤其隨著 Firefox 的流行,Firefox 會將你站點的 Favicon 標誌顯示在標籤上,也會顯示於書籤,Favicon 支持多種圖形格式,比如 png,但 IE 並不支持 png,該站點可以幫助你將 png 等圖片格式的 Favicon 轉換成 IE 支持的 ico 格式。
BgPatterns
現代 Web 設計的趨勢之一包括使用背景圖案,BgPatterns.com 可以幫你設計背景圖案,他們有大量可選的圖案,可以按 不同方式接合,還可以設置透明度。
HTML Encoder
如果你要在網站中顯示 Web 代碼,那將是非常煩人的事,你必須將諸如 < 一類的符號用編碼表示,這個網站可以幫你做這些事情,只需將你的代碼複製進去,他們會幫你生成可以直接使用的代碼。還有 HTML Decoder 幫你做相反的事。
Xenocode Browsers
該網站非常有用,可以直接在站點中預覽你的網站在 IE6, IE7, IE8, Firefox 2, Firefox 3, Google Chrome 以及 Opera 中的樣子。唯一的不足是,不支持 Mac 和 Linux 環境下的瀏覽器。
Test Everything
這個網站包含了超過 100 中工具幫你測試幾乎所有東西,如跨瀏覽器兼容,查 PR 值,甚至幫你驗證代碼。
Sprite Generator
CSS Sprites 在顯著降低 HTTP 請求方面功不可沒,但 CSS sprite 可不是個簡單的技術,Sprite generator 可以幫你做這些繁複的工作,將你的圖片打包成 zip 上傳上去,他們會把你的圖片組合成 sprite,還幫你生成 CSS 代碼。
Buttonator
這個網站可以幫你設計漂亮的按鈕。
Load Impact
這個壓力測試站點可以幫你測試你的站點的抗壓能力,如果你的某篇文章曾經上過 Digg 或 StumbleUpon 等網站的首頁,你就會知道抗壓測試多麼重要。
IconFinder
這個網站收藏了大量來自網絡的免費圖標。
TypeTester
該站點可以幫你測試不同字體的顯示效果。
CSS Tidy
這個站點可以幫你檢查 CSS 代碼,並修正其中的錯誤,比如,它可以發現你的 CSS 代碼中最常見到重複設置問題。
Contact Forms Generators
自定義表單可以幫助你實現同訪問者的互動,無需編程,就能快速生成訪客反饋表單,甚至幫你生成郵件發送 PHP, ASP, Perl 代碼。
本文來源:15 sites web developers and designers should know
中文翻譯來源:COMSHARP CMS 官方網站
Ubuntu 反吸血的amule稳定版DLP
Ubuntu中文论坛 • 查看主题 - [2月21日更新]反吸血的amule稳定版DLP3904.3 - 修正Hello-Tag和Info-Tag检测
安装
加源
10.04
加key
安 装
系统级ipfilter.dat,默认开启。如果不需要,不安装amule-dlp-ipfilter软件包就可以了,它是作为推荐软件包列出的。 ipfilter.dat文件来自eMule Pawcio。
安装后:
amule-----网络-----动态反吸血信息
可 以查看反吸血信息
说明:
* 以前安装过amule的会自动删除
* 找amule-gnome-support请顺手改为amule-dlp-gnome-support,PPA里已经提供
* 用daemon时DLP同样有效,但是不能直接查看log
* ubuntu中daemon的配置文件位置改为/etc/default/amule-dlp-daemon,原版amule的位置是/etc /default/amule-daemon
* PPA 签名 Key 安装偶尔出现的问题,部分朋友反应的针对某一连接客户端限速失常,以及 DLP 会不会被破解的问题,请查看 viewtopic.php?p=1646614#p1646614
补 丁的更新说明:
amule没速度的,可以看一下:
viewtopic.php?f=73&t=228524
也 许有用
安装
加源
10.04
代码:
deb http://ppa.launchpad.net/happyaron/amule-dlp/ubuntu lucid main
deb-src http://ppa.launchpad.net/happyaron/amule-dlp/ubuntu lucid main
deb-src http://ppa.launchpad.net/happyaron/amule-dlp/ubuntu lucid main
加key
代码:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys DDA4DB69
安 装
代码:
sudo apt-get update
代码:
sudo apt-get install amule-dlp amule-dlp-gnome-support amule-dlp-ipfilter
系统级ipfilter.dat,默认开启。如果不需要,不安装amule-dlp-ipfilter软件包就可以了,它是作为推荐软件包列出的。 ipfilter.dat文件来自eMule Pawcio。
安装后:
amule-----网络-----动态反吸血信息
可 以查看反吸血信息
说明:
* 以前安装过amule的会自动删除
* 找amule-gnome-support请顺手改为amule-dlp-gnome-support,PPA里已经提供
* 用daemon时DLP同样有效,但是不能直接查看log
* ubuntu中daemon的配置文件位置改为/etc/default/amule-dlp-daemon,原版amule的位置是/etc /default/amule-daemon
* PPA 签名 Key 安装偶尔出现的问题,部分朋友反应的针对某一连接客户端限速失常,以及 DLP 会不会被破解的问题,请查看 viewtopic.php?p=1646614#p1646614
补 丁的更新说明:
midoriumi 写道:
3904更新说明
· 合并了 Bill Lee 对迅雷检测的修改
· 增加了GUI的设置界面,可以自行选择使用哪些检测手段
· 参照 DLP Strict 增加了屏蔽 VeryCD Mod 和 easyMule 的选项,提供给有需要的人使用。这两个屏蔽选项默认是不启用的。另外,对于 VeryCD Mod 和 easyMule 的检测还不完善,目前还存在漏检
· 修复检测 HelloTag 时使用了错误的数据的鬼
· 增加对 InfoTag 的检测
· 修复一些崩溃问题
· 合并了 Bill Lee 对迅雷检测的修改
· 增加了GUI的设置界面,可以自行选择使用哪些检测手段
· 参照 DLP Strict 增加了屏蔽 VeryCD Mod 和 easyMule 的选项,提供给有需要的人使用。这两个屏蔽选项默认是不启用的。另外,对于 VeryCD Mod 和 easyMule 的检测还不完善,目前还存在漏检
· 修复检测 HelloTag 时使用了错误的数据的鬼
· 增加对 InfoTag 的检测
· 修复一些崩溃问题
pityonline 写道:
没有速度
amule没速度的,可以看一下:
viewtopic.php?f=73&t=228524
也 许有用
2010年5月15日 星期六
Ubuntu 存放 icon 的位置
軟體工匠 R 的筆記: Ubuntu 存放 icon 的位置
這絕對是一件小事,但每次都記不得,所以決定寫下來:
Ubuntu 存放 icon 的主要目錄是 /usr/share/pixmaps。
當你在面板上加入自訂的程式啟動圖示時,常常會需要到這個目錄找應用程式的圖示。
這絕對是一件小事,但每次都記不得,所以決定寫下來:
Ubuntu 存放 icon 的主要目錄是 /usr/share/pixmaps。
當你在面板上加入自訂的程式啟動圖示時,常常會需要到這個目錄找應用程式的圖示。
在 64-bit Ubuntu 上安裝 32-bit 的 package
在 64-bit Ubuntu 上安裝 32-bit 的 package
使用 64-bit Ubuntu 時,經常會遇到一個問題:某些外部 package 只提供 32-bit 的版本 (i386),而沒有 64-bit 的版本 (amd64),例如:Adobe Reader 和 Skype 等。
解決方法很簡單,加上 --force-architecture 參數即可:
使用 64-bit Ubuntu 時,經常會遇到一個問題:某些外部 package 只提供 32-bit 的版本 (i386),而沒有 64-bit 的版本 (amd64),例如:Adobe Reader 和 Skype 等。
解決方法很簡單,加上 --force-architecture 參數即可:
- sudo dpkg -i --force-architecture AdobeReader_cht-8.1.3-1.i386.deb
- sudo dpkg -i --force-architecture skype-debian_2.0.0.72-1_i386.deb
2010年4月30日 星期五
[整理]鍵盤keycode
字母和數字鍵(keyCode)
按鍵 | KeyCode | 按鍵 | KeyCode | 按鍵 | KeyCode | 按鍵 | KeyCode |
A | 65 | J | 74 | S | 83 | 1 | 49 |
B | 66 | K | 75 | T | 84 | 2 | 50 |
C | 67 | L | 76 | U | 85 | 3 | 51 |
D | 68 | M | 77 | V | 86 | 4 | 52 |
E | 69 | N | 78 | W | 87 | 5 | 53 |
F | 70 | O | 79 | X | 88 | 6 | 54 |
G | 71 | P | 80 | Y | 89 | 7 | 55 |
H | 72 | Q | 81 | Z | 90 | 8 | 56 |
I | 73 | R | 82 | 0 | 48 | 9 | 57 |
右邊數字鍵盤 (keyCode) 功能鍵(keyCode)
按鍵 | KeyCode | 按鍵 | KeyCode | 按鍵 | KeyCode | 按鍵 | KeyCode |
0 | 96 | 8 | 104 | F1 | 112 | F7 | 118 |
1 | 97 | 9 | 105 | F2 | 113 | F8 | 119 |
2 | 98 | * | 106 | F3 | 114 | F9 | 120 |
3 | 99 | + | 107 | F4 | 115 | F10 | 121 |
4 | 100 | Enter | 108 | F5 | 116 | F11 | 122 |
5 | 101 | - | 109 | F6 | 117 | F12 | 123 |
6 | 102 | . | 110 | ||||
7 | 103 | / | 111 |
控制键 (keyCode)
按 鍵 | KeyCode | 按 鍵 | KeyCode | 按 鍵 | KeyCode | 按 鍵 | KeyCode |
BackSpace | 8 | Esc | 27 | Right-Arrow | 39 | -_ | 189 |
Tab | 9 | Spacebar | 32 | Dw-Arrow | 40 | .> | 190 |
Clear | 12 | Page-Up | 33 | Insert | 45 | /? | 191 |
Enter | 13 | Page-Down | 34 | Delete | 46 | `~ | 192 |
Shift | 16 | End | 35 | Num-Lock | 144 | [{ | 219 |
Control | 17 | Home | 36 | ;: | 186 | \| | 220 |
Alt | 18 | Left-Arrow | 37 | =+ | 187 | ]} | 221 |
Cape-Lock | 20 | Up-Arrow | 38 | ,< | 188 | '" | 222 |
keycode 0 =
keycode 1 =
keycode 2 =
keycode 3 =
keycode 4 =
keycode 5 =
keycode 6 =
keycode 7 =
keycode 8 = BackSpace
keycode 9 = Tab
keycode 10 =
keycode 11 =
keycode 12 = Clear
keycode 13 = Enter
keycode 14 =
keycode 15 =
keycode 16 = Shift_L
keycode 17 = Control_L
keycode 18 = Alt_L
keycode 19 = Pause
keycode 20 = Caps_Lock
keycode 21 =
keycode 22 =
keycode 23 =
keycode 24 =
keycode 25 =
keycode 26 =
keycode 27 = Esc Escape
keycode 28 =
keycode 29 =
keycode 30 =
keycode 31 =
keycode 32 = Space
keycode 33 = Page Up
keycode 34 = Page Down
keycode 35 = End
keycode 36 = Home
keycode 37 = Left Arrow
keycode 38 = Up Arrow
keycode 39 = Right Arrow
keycode 40 = Down Arrow
keycode 41 = Select
keycode 42 = Print
keycode 43 = Execute
keycode 44 =
keycode 45 = Insert
keycode 46 = Delete
keycode 47 = Help
keycode 48 = 0 )
keycode 49 = 1 !
keycode 50 = 2 @
keycode 51 = 3 #
keycode 52 = 4 $
keycode 53 = 5 %
keycode 54 = 6 ^
keycode 55 = 7 &
keycode 56 = 8 *
keycode 57 = 9 (
keycode 58 =
keycode 59 =
keycode 60 =
keycode 61 =
keycode 62 =
keycode 63 =
keycode 64 =
keycode 65 = a A
keycode 66 = b B
keycode 67 = c C
keycode 68 = d D
keycode 69 = e E
keycode 70 = f F
keycode 71 = g G
keycode 72 = h H
keycode 73 = i I
keycode 74 = j J
keycode 75 = k K
keycode 76 = l L
keycode 77 = m M
keycode 78 = n N
keycode 79 = o O
keycode 80 = p P
keycode 81 = q Q
keycode 82 = r R
keycode 83 = s S
keycode 84 = t T
keycode 85 = u U
keycode 86 = v V
keycode 87 = w W
keycode 88 = x X
keycode 89 = y Y
keycode 90 = z Z
keycode 91 =
keycode 92 =
keycode 93 =
keycode 94 =
keycode 95 =
keycode 96 = KP_0
keycode 97 = KP_1
keycode 98 = KP_2
keycode 99 = KP_3
keycode 100 = KP_4
keycode 101 = KP_5
keycode 102 = KP_6
keycode 103 = KP_7
keycode 104 = KP_8
keycode 105 = KP_9
keycode 106 = KP_* KP_Multiply
keycode 107 = KP_+ KP_Add
keycode 108 = KP_Enter KP_Separator
keycode 109 = KP_- KP_Subtract
keycode 110 = KP_. KP_Decimal
keycode 111 = KP_/ KP_Divide
keycode 112 = F1
keycode 113 = F2
keycode 114 = F3
keycode 115 = F4
keycode 116 = F5
keycode 117 = F6
keycode 118 = F7
keycode 119 = F8
keycode 120 = F9
keycode 121 = F10
keycode 122 = F11
keycode 123 = F12
keycode 124 = F13
keycode 125 = F14
keycode 126 = F15
keycode 127 = F16
keycode 128 = F17
keycode 129 = F18
keycode 130 = F19
keycode 131 = F20
keycode 132 = F21
keycode 133 = F22
keycode 134 = F23
keycode 135 = F24
keycode 136 = Num_Lock
keycode 137 = Scroll_Lock
keycode 138 =
keycode 139 =
keycode 140 =
keycode 141 =
keycode 142 =
keycode 143 =
keycode 144 =
keycode 145 =
keycode 146 =
keycode 147 =
keycode 148 =
keycode 149 =
keycode 150 =
keycode 151 =
keycode 152 =
keycode 153 =
keycode 154 =
keycode 155 =
keycode 156 =
keycode 157 =
keycode 158 =
keycode 159 =
keycode 160 =
keycode 161 =
keycode 162 =
keycode 163 =
keycode 164 =
keycode 165 =
keycode 166 =
keycode 167 =
keycode 168 =
keycode 169 =
keycode 170 =
keycode 171 =
keycode 172 =
keycode 173 =
keycode 174 =
keycode 175 =
keycode 176 =
keycode 177 =
keycode 178 =
keycode 179 =
keycode 180 =
keycode 181 =
keycode 182 =
keycode 183 =
keycode 184 =
keycode 185 =
keycode 186 =
keycode 187 = =+
keycode 188 = ,< keycode 189 = -_ keycode 190 = .>
keycode 191 = /?
keycode 192 = `~
keycode 193 =
keycode 194 =
keycode 195 =
keycode 196 =
keycode 197 =
keycode 198 =
keycode 199 =
keycode 200 =
keycode 201 =
keycode 202 =
keycode 203 =
keycode 204 =
keycode 205 =
keycode 206 =
keycode 207 =
keycode 208 =
keycode 209 =
keycode 210 = plusminus hyphen macron
keycode 211 =
keycode 212 = copyright registered
keycode 213 = guillemotleft guillemotright
keycode 214 = masculine ordfeminine
keycode 215 = ae AE
keycode 216 = cent yen
keycode 217 = questiondown exclamdown
keycode 218 = onequarter onehalf threequarters
keycode 219 = [{
keycode 220 = \|
keycode 221 = ]}
keycode 222 = '"
keycode 223 =
keycode 224 =
keycode 225 =
keycode 226 =
keycode 227 = multiply division
keycode 228 = acircumflex Acircumflex
keycode 229 = ecircumflex Ecircumflex
keycode 230 = icircumflex Icircumflex
keycode 231 = ocircumflex Ocircumflex
keycode 232 = ucircumflex Ucircumflex
keycode 233 = ntilde Ntilde
keycode 234 = yacute Yacute
keycode 235 = oslash Ooblique
keycode 236 = aring Aring
keycode 237 = ccedilla Ccedilla
keycode 238 = thorn THORN
keycode 239 = eth ETH
keycode 240 = diaeresis cedilla currency
keycode 241 = agrave Agrave atilde Atilde
keycode 242 = egrave Egrave
keycode 243 = igrave Igrave
keycode 244 = ograve Ograve otilde Otilde
keycode 245 = ugrave Ugrave
keycode 246 = adiaeresis Adiaeresis
keycode 247 = ediaeresis Ediaeresis
keycode 248 = idiaeresis Idiaeresis
keycode 249 = odiaeresis Odiaeresis
keycode 250 = udiaeresis Udiaeresis
keycode 251 = ssharp question backslash
keycode 252 = asciicircum degree
keycode 253 = 3 sterling
keycode 254 = Mode_switch
轉自:http://memorybbs.com/cgi-bin/topic.cgi?forum=238&topic=107
訂閱:
文章 (Atom)