2010年9月29日 星期三

PicPick 螢幕視窗截圖

市面上螢幕截圖軟體太多了,這大概是人人都會寫得程式碼
知名的不管是FastStone Capture或WinSnap都收費了
付費的還有最強大的SnagIt可以選用

參考文章(下載):PicPick 免安裝中文版
##ReadMore##
note 2011/08
簡單擷圖方法 => 免軟體,快速擷取視窗桌面

2010年9月19日 星期日

Torrific 又一個秒殺的BT代抓服務

自從miroKo不給免費使用了,就沒在抓BT了
現在終於看到一個好用的BT代抓了
Torrific是btaccel的前身,以前的btaccel沒那麼好用,常常失敗
但Torrific就有點神了,一給連結就立即反應,
不像以前的miroko那麼遲鈍,整個歡喜
##ReadMore##
9GB的種子,原本只是胡亂測試,可是居然抓的到,
下載速度差不多300多k,可同時五線下載,還算不錯
大概台灣的論壇熱門檔,大概都可以秒抓
不能秒抓的檔,可以交給他代抓,不像miroKo只能抓完成檔
很快可以完成,同時可以好幾個任務
5G的檔安靜的放個兩三天就差不多了,比自己抓還快

連結網址:torrific
參考文章(下載):BT代抓服務站【Torrific】下載BT熱門檔案免等待,1秒即可下載?

note 2010/09
torrent檔名不能使用中文,不然等到完檔時,會顯示錯誤頁面而無法下載

2010年9月17日 星期五

JAVA筆記-Collections和Arrays 外包的集合工具類別

Collections和Arrays內建了許多好用方法,
例如,取得最大值、排序、thread-safe等
所有方法皆為已實作好的static方法,可直接使用,不用再新建物件實體
將欲處理的集合直接傳入即可,需先import library

import java.util.Collections;
import java.util.Arrays;

Java筆記-泛型 限定集合內存放的物件型別

集合可收集大量任何物件,使用泛型即可限定集合內存放的物件型別
##ReadMore##
無泛型寫法
Vector v = new Vector();
v.add("data");
for(Object obj:v){
  String data = (String) obj;
  System.out.println(data);
}

泛型寫法,Iterator同樣也支援泛型,但泛型不可放入基本資料型別
Vector v = new Vector(); // 泛型寫法
v.add("data");
for(Object obj:v){
  String data = obj; // 不必轉型
  System.out.println(data);
}

萬用字元,可接任何不泛化或已泛化型別
void showVector (Vector v){} // 仍然是可加或可不加
void showVector (Vector v){} // ?也可用其他無意義代號來取代
void showVector (Vector v){} // Number包含Interger和Float

2010年9月16日 星期四

Java筆記-PriorityQueue 優先權佇列

PriorityQueue會自動依照自然法則來排序,範例: import java.util.*;
public class Ex1 {
  public static void main(String[] args) {
    PriorityQueue<String> pq = new PriorityQueue<String> ();
    pq.offer("c");
    pq.offer("a");
    pq.offer("b");
    String s;
    while((s = pq.poll()) != null) {
       System.out.print(s + ", ");
    }
  }
}

 

##ReadMore##
自定義的PriorityQueue要實作Comparator介面,建構子是用 public PriorityQueue(int initialCapacity, Comparator<? super E> comparator)
其中initialCapacity是初始大小,comparator是要求傳入Comparator物件,範例: public class Ex2 {
  public static void main(String[] args) {
    Comparator<String> c = new Comparator<String>(){
      public int compare(String a, String b){
        return a.compareTo(b) * -1;
      }
    };
    PriorityQueue<String> pq = new PriorityQueue<String> (3, c);
    pq.offer("c");
    pq.offer("a");
    pq.offer("b");
    String s;
    while((s = pq.poll()) != null) {
      System.out.print(s + ", ");
    }
  }
}

Java筆記-Queue介面 佇列

不要使用原始的add()和remove(),在Queue中會丟出exception,
以offer()和poll()來代替

方法 傳回值 說明
offer(E o) boolean 加入物件
peek() E 取得物件,若空傳回null
element() E 取得物件,若空傳回例外
poll() E 取得物件,並移除該物件,若空傳回null
remove() E 取得物件,並移除該物件,若空傳回例外
##ReadMore## 範例: import java.util.*;
public class Ex {
    public static void main(String[] args) {
        Queue q = new LinkedList();
        q.offer("First");
        q.offer("Second");
        q.offer("Third");
        Object o;
        System.out.println(q.toString());
        while((o = q.poll()) != null) {
            String s = (String)o;
            System.out.println(s);
        }
        System.out.println(q.toString());
    }
}

Java筆記-應用for-each取得走訪集合物件

利用for-each走訪集合物件較簡單
import java.util.*;
public class Ex {
  public static void main(String[] args) {
    Vector v = new Vector();
    v.add("apple");
    v.add("banana");
    v.add("cookie");
    for(Object obj:v){
      String data = (String)obj;
      System.out.print(data + ", ");
    }
    System.out.println();
  }
}
##ShowAll##

Java筆記-List, Set, Map 集合物件

List => 有順序性
ArrayList => 插入、刪除速度慢,走訪速度快
LinkedList => 插入、刪除速度快,走訪速度慢,採雙向鏈結

Set => 元素不可重複,搜尋快
HashSet => 無順序性,查找速度快
LinkedHashSet => 有順序性
TreeSet => 有排序性(依字母),由紅黑樹所建

Map => 有元素鍵值,搜尋快
LinkedHashMap =>  查找速度慢,插入、刪除速度快
TreeMap => 有排序性,由紅黑樹所建
##ReadMore##
原始集合 => 不同的是皆被宣告為具有Synchronized特性
Vector => ArrayList的前身,當超出範圍時,vector是擴充元有的一倍,ArrayList則是擴充一半
Stack => 採FILO原則,繼承Vector,但應使用LinkedList來代替
Hashtable => 不予許為null,所以比HashMap稍慢
HashMap => 查找速度快,鍵、值予許為null

集合介面
排序性
順序性
不予許重複
使用鍵值
SortedSet

SortedMap


HashMap
Hashtable
TreeMap
LinkedHashMap
HashSet
TreeSet

LinkedHashSet
ArrayList
Vector
LinkedList
java.util.Collection
      <- java.util.List
            <- java.util.ArrayList 
            <- java.util.LinkedList 
            <- java.util.Vector 
                  <- java.util.Stack
      <-java.util.Set 
            <- java.util.HashSet 
            <- java.util.SortedSet
                  <- java.util.TreeSet
java.util.Map
      <- java.util.SortedMap
            <- java.util.TreeMap
      <- java.util.Hashtable
      <- java.util.HashMap
      <- java.util.LinkedHashMap
      <- java.util.WeakHashMap

Java筆記-Enumeration和Iterator 走訪集合物件

Enumeration
無順序性,不可移除集合元素,適用在Map族群的集合物件中
測試是否有下一個元素 => hashMoreElements()
指向下一個元素 => nextElement()

Iterator
有順序性,可移除集合元素,適用在非Map族群的集合物件中
測試是否有下一個元素 => hashNext()
指向下一個元素 => next()
移除目前Iterator所指向的元素 => remove()
##ReadMore##
Listlterator
繼承Iterator,給予每個元素之間index值,來達成上下走訪元素
測試是否有上一個元素 => hashPrevious()
測試是否有下一個元素 => hashNext()
指向上一個元素 => previous()
指向下一個元素 => next()
指向上一個元素,並回傳該鍵值 => previousIndex()
指向下一個元素,並回傳該鍵值 => nextIndex()
移除目前Iterator所指向的元素 => remove()
取代目前所指向的元素 => set(Object o)

Iterator範例:

import java.util.*;
public class Ex {
    public static void main(String[] args) {
        HashSet hs = new HashSet();
        hs.add("one");
        hs.add("two");
        hs.add("tree");
        hs.add("four");
        Iterator it = hs.iterator();
        while(it.hasNext()){
            String data = (String)it.next();
            System.out.print(data + ", ");
        }
        System.out.println();
    }
}

2010年9月15日 星期三

ChromePlus 內建滑鼠手勢的超好用Google瀏覽器

Chrome已經有Chromium的擴充功能了,所以兩者差不多,
所以都不是很好用,尤其是滑鼠手勢缺點特別多
所以另外嘗試玩起ChromePlus,這一款好用多了,
真正適合使用者操作,內建的滑鼠手勢大概是Chrome系列最好用的,
不會閃屏或失效,相當準確,其他滑鼠滾輪和拖曳效果也表現得非常好
其他還有更詳細的操作設定和外掛功能,雖然還是有一些缺點
但已經快接近我理想中的完美瀏覽器了

瀏覽器還缺少自訂快捷書籤鍵的功能,
可加上這一個自訂快捷鍵的外掛,Shortcut Manager

參考文章(下載):ChromePlus 楓樹瀏覽器 免安裝中文版

Java筆記-Finalize 終結物件

System.runFinalization()可用來請求執行finalize
在執行System.gc()時,也會執行finalize()
覆寫finalize()範例 ##ReadMore##

public class MyObject {
    static int count;
    MyObject() {
        ++count;
    }
    public static void main(String[] args) {
        MyObject obj1 = new MyObject();
        MyObject obj2 = new MyObject();
        MyObject obj3 = new MyObject();
        System.out.println("目前有" +count+ "個物件");
        obj2 = null;
        System.out.println("請求G.C.");
        System.gc();
        System.out.println("目前剩餘" +count+ "個物件");
    }
    protected void finalize() throws Throwable {
        --count;
        String tName = Thread.currentThread().getName();
        System.out.println("執行finalize()的是:" + tName);
    }
}

執行結果:
目前有3個物件
請求G.C.
執行finalize()的是:Finalizer
目前剩餘2個物件

Java筆記-System.gc() 記憶體釋放,回收垃圾物件

若程式碼指定物件為null,則會被garbage collector thread回收
請求調用Garbage Collection的函式
System.gc()和Runtime.getRuntime().gc()

Java筆記-Deadlock 死結

不當使用synchronized,造成執行緒資源互鎖,程式無法結束 ##ReadMore## public class Deadlock {
  public static main(String[] args) {
    final Object r1 = "r1";
    final Object r2 = "r2";
    Thread t1 = new Thread() {
      public void run() {
        synchronized(r1) {
          System.out.println("T1 : locked r1");
          try {Thread.sleep(150);}
          catch(InterruptedException e) {}
          synchronized(r2) {
            System.out.println("T1 : locked r2");
          }
        }
      }
    };
    Thread t2 = new Thread() {
      public void run() {
        synchronized(r2) {
          System.out.println("T2 : locked r2");
          try {Thread.sleep(50);}
          catch(InterruptedException e) {}
          synchronized(r1) {
            System.out.println("T2 : locked r1");
          }
        }
      }
    };
    t1.start();
    t2.start();
  }
}

結果輸出:(程式無法停止執行)
T1 : locked r1
T2 : locked r2

2010年9月12日 星期日

Google Chrome快捷鍵

由於Google Chrome滑鼠手勢不夠用,一些預設的快捷鍵會很有用
##ReadMore##
Alt + D 或 F6 將游標移到網址列
Alt + F4 關閉目前視窗
Alt + Home 回首頁
Alt + ← 或 Backspace 往上一頁
Alt + → 往下一頁
F11 全螢幕
F5 網頁重新整理
Ctrl + F5 或 Shift + F5 網頁重新整理,忽略已快取網頁
Ctrl + - 縮小
Ctrl + + 放大
Ctrl + 0 回復視窗大小
Ctrl + 1 跳至第一個分頁
Ctrl + 9 跳至最後一個分頁
Ctrl + F 或 F3 搜尋
Ctrl + H 開啟瀏覽紀錄
Ctrl + J 開啟下載清單
Ctrl + N 開啟新的視窗
Ctrl + T 開啟新的分頁
Ctrl + W 或 Ctrl + F4 關閉目前分頁
Ctrl + 超連結 開新分頁連結網頁
Tab 跳往下一個元件
Shift + Tab 跳往上一個元件
Ctrl + Tab 或 Ctrl + PageUp 切換到下一個分頁
Ctrl + Shift + Tab 或 Ctrl + PageDown 切換到上一個分頁
Ctrl + Shift + N 新增無痕式視窗
Ctrl + Shift + T 回復關閉的網頁
Ctrl + Shift + V 貼上(不帶格式)
Esc 停止載入
將連結拖至書籤列 加入書籤
將圖片拖至瀏覽器外 自動儲存圖片
用滑鼠中鍵開啟書籤 以新分頁開啟書籤
用滑鼠中鍵開啟超連結 新分頁在背景開啟超連結
用滑鼠中鍵點擊標籤頁 關閉所點擊的頁面
網址列中按Alt + Enter 在新頁面打開網址

介紹其他可能還會用到的Chrome套件

上一篇介紹Google Chrome多款好用外掛套件與使用比較心得
是我比較必須使用到的外掛,但其他套件可能以後還有需要,
這邊也紀錄一下,電腦配備夠強就多裝幾個Chrome外掛吧!
##ReadMore##
AdBlock
擋廣告套件,是最多人使用的套件
AniWeather
即時顯示天氣狀況與天氣預報
ChromeMUSE - Multi-URL Shortener/Expander
短網址產生器
Facebook Fixer
可自訂許多Facebook安全性與便利性的設定,還有照片放大、增加書籤等一些其它強大的功能
Facebook Photo Zoom
滑鼠移到Facebook相簿上面會自動放大照片
FastestChrome - Browse Faster
Chrome用的加速器,直接在選取文字上跳出浮動視窗挑選各大網站來搜尋,此外還提供自動翻頁、標示純文字連結、建議搜尋等功能
Google Toolbar-Mini v2 [ENGLISH]
Google 服務集成按鈕
Google 文件 PDF/PowerPoint 檢視器 (由 Google 提供)
在Google文件檢視器中自動預覽PDF, PowerPoint
iReader
閱讀文章時讓周遭畫面變暗
My Shortcuts
所有Google應用程式整合成一個快速點擊按鈕
Neat Bookmarks
樹狀顯示書籤,支援搜尋過濾
New TongWenTang (新同文堂)
中文繁簡轉換
One Number
整合GMail, Google Reader, Google Voice, Google Wave成一個按鈕,並可檢查有無最新訊息
Quick Scroll
可讓您直接跳到 Google 搜尋結果中的相關片段。
Send from Gmail (by Google)
以簡單的方式發送Gmail郵件
Select To Get Maps
可自動抓網頁內地址,直接點選連到Google Map
Skipscreen (Unoffical Release)
協助免空下載,支持Rapidshare, Megaupload, Depositfiles, Megashare, 4Shared, Hotfile等多個免空,但還是用JDownloader下載會比較好吧!而且更新也會比較快,可以減少一個外掛
Slideshow
美化圖片瀏覽
Speed Dial
可自訂Google起始畫面
TooManyTabs for Chrome
美化瀏覽頁籤太多的情形
VerticalTabs
以條列式顯示分頁管理及搜尋
Web2PDFConverter
將網頁轉換製作成PDF
Xmarks Bookmark and Password Sync
不同電腦不同瀏覽器可同步書簽和密碼
關燈看影片
觀賞影片時讓周遭畫面變暗
網頁快照 - Webpage Screenshot
截取網頁可見部分或者整個頁面
維基百科助理 - 迷你維基瀏覽器
搜尋維基百科

介紹Google Chrome多款好用外掛套件與使用比較心得

這一次跑到Google Chrome來玩玩,Chrome外掛套件已經相當豐富了,
雖然Google瀏覽器速度快,但外掛套件裝太多仍然會很鈍,
裝了十幾個,舊電腦已經有點不夠力了,
而且很多外掛還不是那麼好用,進步空間還很大
嘗試完之後,還是要回去使用功能多速度快的世界之窗
等之後有新電腦再回來玩吧!
下面簡介很多推薦和熱門的套件,也比較了類似相關的套件
雖然好像挺亂的,不過能看得懂就好了
##ReadMore##
下面有三套滑鼠手勢外掛,都還不太完美,可參考滑鼠手勢比較文章Google Chrome 的滑鼠手勢套件一覽 : Mouse Stroke, Chrome Gestures, Smooth Gestures
Mouse Stroke 
最高評價的滑鼠手勢套件,有很強大的自訂功能,有拖曳功能,但不可自訂快捷鍵
Chrome Gestures
最多使用者安裝的手勢套件,自訂功能比較少,有拖曳功能,但不可自訂快捷鍵
Smooth Gestures
滑鼠手勢,自訂功能非常強大,有拖曳功能,還可自訂快捷鍵、超連結鍵等,但不被人喜歡,設定選項難懂又不人性化,非常糟糕,很多重要手勢也要先自訂或重新自訂,拖曳和快捷鍵功能明明有,卻非常難找到
參考網頁:Smooth Gestures 用「滑鼠手勢」快速翻頁、關閉分頁(Chrome套件,支援Win, Mac, Linux)
Drag and Go
滑鼠拖曳文字則搜尋,拖曳連結則開啟,大多數滑鼠手勢皆已有此功能
Yet Another Drag and Go
滑鼠拖曳文字則搜尋,拖曳連結則開啟,大多數滑鼠手勢皆已有此功能,有較多的自訂功能

※下面關於Youtube外掛套件可另外參考如何將Google Chrome打造成 YouTube高畫質影音專用播放器?
YouTube Downloader
下載YouTube影片
Youtube Automatic Quality changer
自動選擇最高畫質播放
Stop Autoplay for YouTube.
取消Youtube起始立即自動播放
SmartVideo For YouTube (MyTube) 
自定起始播放畫質,最高只能設到720P,可決定是否起始立即自動播放
Auto HD for YouTube
自定起始播放畫質,並可選擇是否起始擴展播放畫面
Window Expander For YouTube 
自定起始播放畫質,並可自訂起始播放是否全螢幕

Google Mail Checker
顯示未讀信件數
Google Mail Checker Plus
顯示未讀信件數,並可預覽
參考網頁:自動檢查Gmail新郵件、預覽信件內容(Chrome套件, Google Mail Checker Plus)

Google Calendar Checker (by Google) 
顯示倒數距離下一事件發生還有多少時間
Google Calendar Checker Plus
顯示倒數距離下一事件發生還有多少時間,並可預覽事件和桌面提醒
Google Calendar Checker w/ Popup
會顯示倒數距離下一事件發生還有多少時間,功能更加強大完備,並可新增、編輯事件
參考網頁:在Google瀏覽器快速顯示日曆、行事曆(Google Calendar Checker)

RSS 訂閱擴充功能 (由 Google 提供) 
若部落格有提供RSS或ATOM,可直接訂閱,訂閱部落格並不是頻繁動作,還是省一個外掛好
Google Reader Notifier (by Google) 
顯示目前有多少未讀電子報,並可預覽
Google Reader 小秘書 (含桌面提示功能) 
顯示目前有多少未讀電子報,並可預覽,額外還有桌面提醒功能

Chrome Notepad (必備)
簡單的雲端記事本,存放在Google雲端筆記本
參考網Chrome Notepad 可以線上遠端同步的Google瀏覽器筆記本
Chromepad
與Chrome Notepad相似,感覺介面比較沒那麼好看
Clip to Evernote
功能強大的備份功能,可複製整個網頁文章,存放在Evernote資料庫,用不到那麼強大功能就用Chrome Notepad就好了
參考網頁:EverNote 新版Google Chrome套件幫你回憶網站相關筆記

Google Dictionary
Google翻譯字典
GY Dictionary
可同時顯示Google字典和Yahoo字典翻譯結果
Google Translator
文句段落翻譯,但卻顯示簡體中文,沒有繁體中文選項
Google Dictionary (by Google) 
網頁單字劃詞翻譯
Auto-Translate 
網頁劃詞翻譯
Bubble Translate
網頁劃詞翻譯,並包含文句段落翻譯功能
參考網頁:[Google Chrome外掛] 讓瀏覽器內建「多國語言翻譯字典」!(Bubble Translate)

Facebook
顯示Facebook各項即時訊息
Facebook
另一個可顯示Facebook各項即時訊息
Facebook for Google Chrome
顯示Facebook各項即時訊息,功能較強,顯示也比較完整

IE Tab (必備)
用IE核心瀏覽網頁
IE Tab Classic
用IE核心瀏覽網頁,但是按鈕是顯示在網址列

LastPass 
可安全地儲存所有密碼,並自動登入
參考網頁:LastPass 1.68.2 中文版

可自訂快捷鍵,除了一般網頁功能,也可自訂超連結快捷鍵
Sexy Undo Close Tab
紀錄本次啟動所關閉的網頁,可點選還原開啟,但可用滑鼠手勢來代替
網頁自動載入下一頁,不用再點擊下一頁
網頁自動載入下一頁,不用再點擊下一頁,類似AutoPager,但支援網站較少,顯示的也比較不夠完整

預覽GOOGLE搜尋結果的網頁

Google Dualcolumn (Google 搜尋結果顯示為兩欄, 支援 AutoPagerize for Chrome)

單一頁面可切割成兩個或四個框架網頁,並可分別設定起始網頁
單一頁面可自定義任意切割多個網頁,會自動載入前兩個頁籤的網頁,但只能輸入一次URL起始網頁就沒了

顯示國家城市,Geo, Google PageRank, Alexa Rank, WOT

可直接寫部落格發佈

將圖片以3D圖牆方式來觀看,可是跑不太動

自動打開Mobile01論壇內的圖片


下一篇介紹其他可能還會用到的Chrome套件

2010年9月11日 星期六

Google Chrome 瀏覽器

非常快速好用的瀏覽器

參考文章(下載):[下載] Google Chrome 瀏覽器 最新版
##ReadMore##
世界之窗用了一年多,使用順手,速度飛快,非常好用
雖然沒有什麼外掛可擴充,但所有必要功能都已內建好了
只可惜很大不能接受的缺點就是,遇到某些免空網站JDownloader不支援
只好使用內建的世界之窗下載器,但卻也無法下載,
反而要用IE或Google Chrome的下載器來下載
Google Chrome開發也好一陣子了,所以這次我轉往去玩玩

2010年9月8日 星期三

AeroSnap XP系統下,大尺寸螢幕視窗操作

AeroSnap可以模仿Windows 7裡面的Aero Snap視窗操作技巧
在XP系統下,這是大尺寸螢幕所必備的軟體

參考文章(下載):讓XP支援Aero Snap,自動判斷視窗是否最大化

2010年9月7日 星期二

自由天空綜合驅動包SkyDriverXP 可自動安裝電腦所需的硬體驅動程式

這一次要幫實驗室舊電腦重灌XP,但原廠驅動光碟已經不見了
自己一個一個網路查找硬體驅動,然後下載,很累人
就找了一些可自動安裝驅動程式的軟體
##ReadMore##
大陸知名的兩套免費軟體驅動天使驅動人生
是線上自動查找最新驅動程式,並直接安裝
驅動天使介面美觀,但要安裝超級兔子,還要被綁定首頁,有夠差勁的
兩套軟體實驗結果,不知道是不是只適用大陸硬體,
都跟我說目前已是最新版,一個驅動都安裝不了,
阿勒~我也不知道為什麼
所以就另外找了SkyDriverXP,介面簡單,操作簡易,白痴都會使用

作者網站(下載):自由天空綜合驅動包SkyDriverXP 增強正體中文修正版