不知道有沒有人發現,若用Chrome(版本 23.0.1271.97 m)開很多很多頁籤,大小會愈來愈小,你在其中一個頁籤點按關閉時,只要你的滑鼠不移開,關閉的「x」都在會在同一個地方,只有在你滑鼠移開後,他的頁籤大小才會調整。
好奇用了Firefox(17.0.1)去試,也有同樣貼心的設計。
最後當然要用IE(8)試看看囉!結果是「呵呵」。
你知道我的意思的。
Amazon Ads
2012年12月26日 星期三
2012年12月18日 星期二
若是前屋主或舊房客的信件一直寄來
我一直有這個困擾:就是會收到不知是前屋主或以前房客的信件,之前的處理方式都是把它碎掉。
昨天,終於想起該查查Google看其他人是如何處理?大部份的人都是寫說「查無此人,請退回」,或是「此人己不住此地,請退回」,然後投回郵筒,好像就會退回到寄信人那邊。
今天去郵局寄信時,順便問了一下郵局的員工是不是這樣處理,跟料想中的一樣回答:「是」,耶!以後就這樣做了,多少能減少一些擾人的信件。
昨天,終於想起該查查Google看其他人是如何處理?大部份的人都是寫說「查無此人,請退回」,或是「此人己不住此地,請退回」,然後投回郵筒,好像就會退回到寄信人那邊。
今天去郵局寄信時,順便問了一下郵局的員工是不是這樣處理,跟料想中的一樣回答:「是」,耶!以後就這樣做了,多少能減少一些擾人的信件。
Labels:
前屋主的信件一直寄來,
雜志
2012年12月14日 星期五
【筆記】SVN每次都要求輸入密碼解決方法
最近因為電腦的帳號權限調動後,造成每次連到SVN去拉程式、compare、update,或commit,每次都需要輸入用戶名稱和密碼,即使勾選了儲存還是每次都會要求輸入,實在令人感到些許困擾。
後來上網查了一下,在Windows作業系統(如:XP),這些資料會被儲存在下列這個資料夾
C:\Documents and Settings\{YOUR_ACCOUNT_NAME}\Application Data\Subversion\auth中
解決的方法是把auth這個資料夾刪了。之後做update、compare等工作時,再次輸入密碼後,勾選儲存即可。
若系統為ubuntu,資料夾auth在~./subversion/中
後來上網查了一下,在Windows作業系統(如:XP),這些資料會被儲存在下列這個資料夾
C:\Documents and Settings\{YOUR_ACCOUNT_NAME}\Application Data\Subversion\auth中
解決的方法是把auth這個資料夾刪了。之後做update、compare等工作時,再次輸入密碼後,勾選儲存即可。
若系統為ubuntu,資料夾auth在~./subversion/中
Labels:
Subversion
2012年11月22日 星期四
Axis2與Spring的整合
最近在工作上會使用到用Axis2來做Web Service,因為還要使用Spring的架構,所以找到了在Axis2官網的一個Document,但跟著一步步地去做,將產生好的aar檔部署到Service Server上去後,還是會遇到問題,錯誤為"Axis2 can't find the Spring application context"之類的問題。
後來發現是在 document中,在services.xml中設置SpringInit時有問題,這個問題解決方式只要去參考下載的Axis2 Binary Distribution之後,去參考他的samples中,有個pojoguidespring資料夾。去看它src下面,META-INF中的services.xml的設置。
2012年11月4日 星期日
【筆記】MySQL select interval
在MySQL中,要取得前幾天、前幾個月、或前幾年的日期,有個好用的方法,比如說要取一天前的datetime:
秒:second
分:minute
天:day
週:week
月:month
年:year
unit也可以用多種單位表示,如使用
更詳盡的用法請參考MySQL 5.5 Reference Manual。
select now() - interval 1 day結果如下:
+------------------------+ | now() - interval 1 day | +------------------------+ | 2014-12-01 22:14:24 | +------------------------+ 1 row in set (0.00 sec)你也可以搭配MySQL的DATE_ADD或DATE_SUB來使用,如:
select date_add(now(), interval 1 month);通用寫法如:
date + INTERVAL expr unit date - INTERVAL expr unit上列unit如下表示
秒:second
分:minute
天:day
週:week
月:month
年:year
unit也可以用多種單位表示,如使用
HOUR_SECOND
表示由時到秒,這時上列的表示式就要寫成'1:1:1'
,如:select now(),date_sub(now(), interval '1:1:1' HOUR_SECOND);上列執行結果如下:
+---------------------+-----------------------------------------------+ | now() | date_sub(now(), interval '1:1:1' HOUR_SECOND) | +---------------------+-----------------------------------------------+ | 2014-12-02 22:10:41 | 2014-12-02 21:09:40 | +---------------------+-----------------------------------------------+結果顯示時、分、秒都減去一單位。
更詳盡的用法請參考MySQL 5.5 Reference Manual。
Labels:
MySQL
2012年11月2日 星期五
如何在Eclipse中使用PHPUnit(苦工版)
使用Eclipse的External Tools,如下開啟設定視窗:
開啟視窗如下:
依上圖第一步驟,新增一個要跑的程式。
在Location欄位中,去取選、或輸入你要跑的程式名稱:
再來選擇執行該程式的資料夾,直接按「Browse Worksapce…」選project中的tests資料夾:
再來在「Arguments」欄位中,輸入phpunit的參數,就是在command視窗中跑phpunit時,phpunit後面的那一串。
完成後,在下列列表就可以看到剛新增的程式:
做一次設定,之後就可以跑你要的Test Case了,結果會在Eclipse的Console View中顯示。
開啟視窗如下:
依上圖第一步驟,新增一個要跑的程式。
於第二步驟幫他取個名字。
在Location欄位中,去取選、或輸入你要跑的程式名稱:
再來選擇執行該程式的資料夾,直接按「Browse Worksapce…」選project中的tests資料夾:
再來在「Arguments」欄位中,輸入phpunit的參數,就是在command視窗中跑phpunit時,phpunit後面的那一串。
完成後,在下列列表就可以看到剛新增的程式:
做一次設定,之後就可以跑你要的Test Case了,結果會在Eclipse的Console View中顯示。
2012年10月30日 星期二
Java String 的「==」和「equals」
今天同事問了一個Java String比較的問題,讓我想起剛學Java時,也有的相同疑惑!
如:
String s3 = new String("Hello"); String s4 = new String("Hello"); System.out.println("s3 == s4 ? " + (s3 == s4)); //印出false System.out.println("s3 equals s4 ? " + (s3.equals(s4))); //印出true由上例,可以知道:若要比對字串內容是不是相等,要使用equals,來看看String類別中,equals方法的實作:
/** * Compares this string to the specified object. The result is {@code * true} if and only if the argument is not {@code null} and is a {@code * String} object that represents the same sequence of characters as this * object. * * @param anObject * The object to compare this {@code String} against * * @return {@code true} if the given object represents a {@code String} * equivalent to this string, {@code false} otherwise * * @see #compareTo(String) * @see #equalsIgnoreCase(String) */ public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String) { String anotherString = (String)anObject; int n = count; if (n == anotherString.count) { char v1[] = value;
char v2[] = anotherString.value; int i = offset; int j = anotherString.offset; while (n-- != 0) { if (v1[i++] != v2[j++]) return false; } return true; } } return false; }那你是否會問,用「==」去比較兩個String變數,是什麼意思?其實,就是去看這兩個變數所指向的記憶體位置是否相同。有興趣的可以參閱http://www3.ntu.edu.sg/home/ehchua/programming/java/J3d_String.html,這裡對String有更進一步的說明。
另外,值得一提的是,若你在同一程式區塊中,不用new的方式,而是直接用""的方式設定字串變數的話,用「==」是會回傳true的,如:
public static void main(String[] argv){ String s1 = "Hello"; String s2 = "Hello"; String s0 = get(); System.out.println("s1 == s2 ? " + (s1 == s2));//印出true System.out.println("s0 == s1 ? " + (s0 == s1));//印出true
System.out.println("s0 == s2 ? " + (s0 == s2));//印出true } private static String get(){ return "Hello"; }
這是Java為String設計的一個特別叫「string common pool」的機制,在上列的網頁中有說明,主要是對常用的字串保留記憶體空間,來節省使用的空間,在上列中,對於"Hello"字串,會在記憶體中產生一個String物件,讓s1、s2、s0都指向它,所以用「==」去比較時,都會回傳true。
Labels:
Java
2012年10月25日 星期四
好用的MongoDB Eclipse GUI外掛-MonjaDB
MonjaDB是一套MongoDB客戶端的GUI工具,可以直接裝在Eclipse中。
前往eclipse marketplace。
點選綠色箭頭,複製紅框中的網址。
開啟Eclipse,點選「Help」、「Install New Software...」,將上列網址加入新增的Repository。之後勾選做安裝,再重開Eclipse。
Eclipse重新開啟後,點按選單列的「Windows」、「Open Perspective」,就可以看到MonjaDB的選項。
開啟的UI如下所示,在左上方的空白處按滑鼠右鍵,就可以新增MongoDB連線。
Labels:
Eclipse plugin,
MongoDB
2012年10月24日 星期三
2012Java認證日來囉!
免費,而且參加三、四次的感想,我覺得內容都還不錯!有興趣的請參考:
http://www.uuu.com.tw/public/content/edm/eDM0927/eDM.html
http://www.uuu.com.tw/public/content/edm/eDM0927/eDM.html
Labels:
Java
【筆記】在Ubuntu中,Java執行Shell Script,並runtime傳入參數
程式碼如下:
其中:
使用ProcessBuilder建構子(1.5後才有的,請參考:http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/ProcessBuilder.html)設定要執行的script和要傳入的參數:
範例script如下:
執行java程式後,可以看到在執行工作目錄產生了a.txt,如下:
檢視a.txt內容,可以看到java中設定的參數傳入到sciprt中,並輸出到a.txt中:
其中:
使用ProcessBuilder建構子(1.5後才有的,請參考:http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/ProcessBuilder.html)設定要執行的script和要傳入的參數:
ProcessBuilder pb = new ProcessBuilder("./myscript.sh", "sampleParam1"); //這在shell script中,可以用$1去接此參數sampleParam1可以使用ProcessBuilder中的environment方法,來設定或取得執行中的環境變數,使用ProcessBuilder中的directory方法來設定工作目錄,就是要執行script的目錄。
範例script如下:
執行java程式後,可以看到在執行工作目錄產生了a.txt,如下:
檢視a.txt內容,可以看到java中設定的參數傳入到sciprt中,並輸出到a.txt中:
Labels:
Java,
Linux,
Shell Script
2012年10月23日 星期二
【解決】Ubuntu解決Eclipse Subversion Incompatible JavaHL library loaded. 1.7.x or later required.的問題
有時裝在Eclipse上的Subversion版本比較高,會出現下列的錯誤:「Incompatible JavaHL library loaded. 1.7.x or later required」。
這是因為在你電腦上,Subclipse需要JavaHL版本太舊了,請參考:http://subclipse.tigris.org/wiki/JavaHL
解法:
這是因為在你電腦上,Subclipse需要JavaHL版本太舊了,請參考:http://subclipse.tigris.org/wiki/JavaHL
解法:
- 前往http://www.collab.net/downloads/subversion#tab-1下載Subversion 1.7.7 (Linux x86_64)到本機後,直接用解壓縮程式開啟,將其中的CollabNet_Subversion的資料夾解壓縮到/opt下。
- 開啟Eclipse的eclipse.ini,在-vmargs這一行下面加上「-Djava.library.path=/opt/CollabNet_Subversion/lib」,重新開啟Eclipse就好。
Labels:
Eclipse,
Subclipse,
Subversion,
Ubuntu
2012年6月6日 星期三
2012年4月20日 星期五
解決Eclipse用SVN比較版本差異時,背景會變黑的問題
最近在使用Eclipse開發時,若使用SVN去比較版本差異時,會遇上一個問題是畫面背景會是黑的,如:
後來google之後,再做嘗試,才發現原來是Aptana plugin造成的,解決方法為如下:
到Window->preference,如下:
再選Apatana Studio,把下圖中右邊方框中,選擇Eclipse或其他你喜歡的樣式,就可以了。
2012年3月20日 星期二
Struts2的s:if tag
import com.opensymphony.xwork2.ActionSupport;
public class DemoAction extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = 3847991430058456326L;
private String demoString;
...
public String getDemoString() {
return demoString;
}
public void setDemoString(String demoString) {
this.demoString = demoString;
}
}
若要在JSP中使用來判斷demoString的值是否為「0」的話,則是利用Struts2的tag,用法如下:&s:if <s:if test="%{demoString eq 0}">
…
</s:if>
<s:elseif test="%{demoString eq 2}">
<%-- other condition --%>
</s:elseif>
<s:else>
注意:上列中test=""中是%{...}
public class DemoAction extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = 3847991430058456326L;
private String demoString;
...
public String getDemoString() {
return demoString;
}
public void setDemoString(String demoString) {
this.demoString = demoString;
}
}
若要在JSP中使用來判斷demoString的值是否為「0」的話,則是利用Struts2的tag,用法如下:&s:if <s:if test="%{demoString eq 0}">
…
</s:if>
<s:elseif test="%{demoString eq 2}">
<%-- other condition --%>
</s:elseif>
<s:else>
<%-- else --%>
</s:else>注意:上列中test=""中是%{...}
2012年3月15日 星期四
【筆記】MySQL的USING用法
USING
是在MySQL中使用join
時可以使用,當兩個要join
的資料表中,用在on
的欄位名稱相同時,就可以用using
代替,如:在A表中有欄位C1,在B表中也有欄位C1,一般在join A和B兩個Table時,會寫成:
select a.XX, b.yy from A a inner join B b on a.C1 = b.C1但當
join
用的欄位名稱相同時,如上列的C1
,就可以寫成:select a.XX, b.yy form A a inner join B b using(C1)
2012年3月10日 星期六
Aptana對jQuery的支援
依據上一篇的安裝後,Aptana貌似已可支援jQuery,若仍有問題,依據下列網址的教學來安裝或更新Budle Development
https://wiki.appcelerator.org/display/tis/JavaScript+Library+Support#JavaScriptLibrarySupport-jQuery%28
https://wiki.appcelerator.org/display/tis/JavaScript+Library+Support#JavaScriptLibrarySupport-jQuery%28
好用的Javascript開發工具-Aptana
之前在一位朋友的介紹下,開始使用Aptana,是一項免費的開發工具,使用起來,很是喜歡!
有兩種方式可以下載,一個是「Standalone Version」,下載完後安裝起來,你會發現,就是變形的Eclispe嘛!習慣用Eclipse開始的朋友應該對他的開發環境不會太陌生。
拜歐習慣用「Eclipse Plug-in Version」的方式安裝在日常使用的Eclipse上,點選下載頁中的「Eclipse Plug-in Version」再按下方的「Download」就會進到下載頁面,看到如下圖的區塊。
將中間那塊藍色超連結複製起來(按旁邊的圖示就可複製,真貼心!),開啟你的Eclipse,依上面的指示操作,就會看到下列的安裝畫面,再來只要是「Next and Finish」,應該就可以成功地安裝囉。
安裝成功重新開啟後,在編輯Javascript時,就會出現輔助的功能囉。(如果再怎麼試,還是沒跑出來,請確認你對該檔案的類型,是以Aptana編輯器開啟的哦!)
有兩種方式可以下載,一個是「Standalone Version」,下載完後安裝起來,你會發現,就是變形的Eclispe嘛!習慣用Eclipse開始的朋友應該對他的開發環境不會太陌生。
拜歐習慣用「Eclipse Plug-in Version」的方式安裝在日常使用的Eclipse上,點選下載頁中的「Eclipse Plug-in Version」再按下方的「Download」就會進到下載頁面,看到如下圖的區塊。
將中間那塊藍色超連結複製起來(按旁邊的圖示就可複製,真貼心!),開啟你的Eclipse,依上面的指示操作,就會看到下列的安裝畫面,再來只要是「Next and Finish」,應該就可以成功地安裝囉。
安裝成功重新開啟後,在編輯Javascript時,就會出現輔助的功能囉。(如果再怎麼試,還是沒跑出來,請確認你對該檔案的類型,是以Aptana編輯器開啟的哦!)
訂閱:
文章 (Atom)