<?xml version="1.0" encoding="UTF-8"?><rss version="0.92">
<channel>
	<title>聰明的生活2</title>
	<link>http://blog.yslifes.com</link>
	<description>自己寫java程式的一些筆記</description>
	<lastBuildDate>Tue, 27 Jul 2010 02:13:45 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	<!-- generator="WordPress/3.0" -->


<!-- Start Of Script Generated By WP-PostViews Plus -->
<script type='text/javascript' src='http://blog.yslifes.com/wp-includes/js/jquery/jquery.js?ver=1.4.2'></script>
<script type="text/javascript">
/* <![CDATA[ */
jQuery.ajax({type:'GET',url:'http://blog.yslifes.com/wp-content/plugins/wp-postviews-plus/postviews_plus.php',data:'todowppvp=add&type=/feed/rss&id=1',cache:false,dataType:'script'});
/* ]]> */
</script>
<!-- End Of Script Generated By WP-PostViews Plus -->
	<item>
		<title>網頁除錯觀察的Browser工具FireBug-開發者工具-開發人員工具</title>
		<description><![CDATA[當程式人員或網頁設計師在開發網頁時都會遇到一個問題，就是debug不易，不過自從Firefox大行其道後，這個問題被FireBug解決了，使用FireBug可以很方便的知道網頁那裡出了問題，可以直接修改CSS及html dom內容，還可以知道整個網頁到底傳輸了什麼內容及資訊等等，可說是十分好用，Microsoft在其後釋出的Internet Explorer及Google的Browser也都支援了類似的功能，不過更新的頻率並不像FireBug那麼高。 首先介紹IE8的開發者工具 可以由上方工具列的工具－＞開發者工具 來啟動（或F12） 使用開發者工具HTML tab裡的滑鼠指標可以直接取得網頁裡HTML的結構內容 而在這個HTML tab也可以直接修改文件內容或CSS，不過個人並不覺得比FireBug好用 CSS tab可以取得CSS內容，指令碼則是javascript的內容 Goolgle Chrome 開發人員工具 可以從右上角的文件按鈕－＞開發人員選項－＞開發人員工具 來啟動 Elements tab裡的內容就是網頁HTML結構內容，一樣可以直接修改網頁內容資料及CSS內容，所見即所得，結果馬上就可以在網頁上顯示了。 右側Styles分頁裡Computed Style裡可以知道這個元件應該有的所有CSS，可以很方便的追查到底那裡影響了網頁內容（像是字型等） Resources是所有載入網頁的圖檔、網頁、css檔、javascript檔、flash檔等的內容、時間等資訊。 Console控制台可以知道網頁產生的錯誤，像javascrip錯誤、css錯誤等資訊。 也可直接在元素上按右鍵選＂檢查元素＂，就可以直接來到此元素的HTML結構位置了 FireFox FireBug 以上二個工具並沒有很細的介紹，其實都大同小異，大概都跟FireBug相似吧，所以沒介紹到的功能可以參考以下介紹，再去IE及Chrome來查看。 FireBug安裝 FireBug並非FireFox原生套件，所以需要自行安裝plugin，安裝方法很簡單 工具－＞附加元件－＞取得元件－＞查詢firebug－＞瀏覽所有….－＞找到FireBug選擇新增至Firefox 然後安裝好後可以在擴充套件裡找到Firebug的版本資訊，要移除或停用也可以在此頁面操作 右下角的小蟲圖就是啟動FireBug的按鈕，啟用後如果沒有得到應有的資訊時，可以重新整理一次網頁內容 FireBug簡介及啟用 啟用FireBug後可以看到如果有錯誤訊息時，右下角原本小蟲的圖示變成了Error提示 如果想要啟用某一項功能，像是網路、DOM等等時，記得按到分頁tab裡，然後選擇Enabled，如此才能啟動及使用，如果沒有想要的資訊，記得重新整理網頁一下。 如何使用HTML 檢查器？可以直接按主控台分頁tab左邊的按鈕，然後選擇元素，就會移到此元素的HTML結構位置，右側可以看到使用的CSS內容。 或者直接在元素上按右鍵選擇觀察元素 FireBug主控台 主控台可以看到Ajax執行的網址及傳送資訊、Script錯誤內容、資訊及錯誤的行數，可以很方便的debug Ajax執行的網址﹑回應狀態、秒數及回應的內容等，在處理Ajax debug時實在好用 FireBug HTML 資訊 除了簡介時介紹的二種取得元素HTML位置，還有另一種是直接在HTML結構上搜尋，網頁內容也會有一個選取方框來提示目前的元素 也可以直接在HTML結構裡修改內容或CSS，可以省去很多網頁更新的時間 FireBug Script 資訊 這個分頁可以看到所有載入的javascript內容，如果在控制台有script的錯誤資訊，可以來這裡查看其行數以便除錯 右側還有一個監看視窗，可以直接在裡面輸入要執行的javascript內容，在每次來到此頁面時都會自動執行，所以不用時記得刪除。像是需要知道某個變數值時，就可以利用來alert變數內容。 FireBug CSS 資訊 [...]]]></description>
		<link>http://blog.yslifes.com/archives/699</link>
			</item>
	<item>
		<title>在pixnet部落格裡增加facebook like 讚按鈕</title>
		<description><![CDATA[facebook有需多的外掛元件，可以從facebook developers裡面找到設定並安裝，這裡介紹如何在pixnet blog裡安裝”讚”這個按鈕。 一般不另任設定時，pixnet blog只能固定在某一個區塊顯示＂讚＂按鈕，像是在公告區塊或是左右側欄，不過這樣子並不太好用，而且也不能自動變換要推薦的文章網址（如何取得like button可參考 [分享] 如何在部落格上放入Facebook的「讚」？ ），就像下圖：（facebook plugin like button） 如果要放在其它地方要如何做呢？這裡示範在標題下方依每個標題連結自動產生一個讚的按鈕出來，結果會如下圖。 script的寫法使用pixnet原本就提供的jQuery來插入like button的iframe，然後把script碼放入公告區塊就可以用了，想更改放至其它地方也可依此做更改。 source如下： &#60;script type=&#34;text/javascript&#34;&#62; jQuery&#40;document&#41;.ready&#40;function&#40;&#41;&#123; jQuery&#40;&#34;div.article-body&#34;&#41;.each&#40;function&#40;i&#41; &#123; //iframe的語法設定可由 //http://developers.facebook.com/docs/reference/plugins/like //來取得，只需調整href後的參數 jQuery&#40;this&#41;.before&#40;'&#60;iframe src=&#34;http://www.facebook.com/plugins/like.php?href='+ encodeURIComponent&#40;jQuery&#40;this&#41;.parent&#40;&#41;.find&#40;&#34;ul&#34;&#41;.find&#40;'a'&#41;.attr&#40;'href'&#41;&#41;+ '&#38;amp;layout=standard&#38;amp;show_faces=true&#38;amp;width=600&#38;amp;action=like&#38;amp;colorscheme=light&#38;amp;height=20&#34; scrolling=&#34;no&#34; frameborder=&#34;0&#34; style=&#34;border:none; overflow:hidden; width:600px; height:20px;&#34; allowTransparency=&#34;true&#34;&#62;&#60;/iframe&#62;'&#41;; &#125; &#41;;&#125;&#41;;&#60;/script&#62;]]></description>
		<link>http://blog.yslifes.com/archives/695</link>
			</item>
	<item>
		<title>[Java]產生SVG向量圖形檔-xml圖形檔</title>
		<description><![CDATA[SVG圖檔是一種利用xml及css來製作而成的一種向量圖形，放大或縮小均不會改變其品質，不過當圖形複雜到一定程式時，其檔案也會跟著變大很多，能夠設計SVG圖形作品的軟體工具包括Adobe Illustrator以及CorelDRAW等，要能查看svg檔案裡的圖形可以利用browser像是firefox、chrome都可以直接知道此向量圖形的內容。 Wiki SVG 在Java要輸出（產生）SVG檔很簡單，在Apache 套件裡有一個batik可以很簡單的就生成所要的SVG圖檔，只需要把原本在建立圖檔時使用的java.awt.Graphics2D變成使用org.apache.batik.svggen.SVGGraphics2D來繪製圖形就可以了。 產生的結果圖： 這個程式是在畫一個紅色範圍區塊，及draw一個字串在圖上。 在開發前需要把所有的batik套件全都載入classpath裡才可以使用，載點 下載後解開檔案，在目錄lib裡，把batik-dom.jar、batik-svggen.jar、batik-awt-util.jar、batik-util.jar、batik-ext.jar、batik.xml.jar載入就可以了 範例程式原始碼下如： package yku; &#160; import java.awt.Color; import java.awt.Graphics2D; import java.io.*; import org.apache.batik.dom.GenericDOMImplementation; import org.apache.batik.svggen.SVGGraphics2D; import org.w3c.dom.DOMImplementation; import org.w3c.dom.Document; &#160; public class ImgToSVG &#123; public static void main&#40;String args&#91;&#93;&#41; &#123; DOMImplementation domImpl = GenericDOMImplementation .getDOMImplementation&#40;&#41;; &#160; // Create an instance of org.w3c.dom.Document. String svgNS = &#34;http://www.w3.org/2000/svg&#34;; [...]]]></description>
		<link>http://blog.yslifes.com/archives/688</link>
			</item>
	<item>
		<title>[Java]QRCode產生VCard</title>
		<description><![CDATA[在行動條碼QRCode的內容上，可以是電話號碼、手機號碼、電子信箱、網址、文字內容等等，如果將這些資訊整合起來時，就產生了VCard，二維條碼式的名片條碼，其實條碼內的資訊還是英文、數字或是文字組合而成，只是利用公制定的規則來組合，在解QRCode時，就會啟動相對應的程式來承接這些資訊。 行動上網聯盟OMIA（Open Mobile Internet Alliace）就負責此規則的制定，DeCode或是EnCode都需依規則來處理，規範的內容可以由行動上網聯盟下載區取得，選寫此文時規範版本為3.1。 如上圖，給於所要提供的欄位資訊，就可以產生需要的QRCode，欄位可以包含姓名、電話、手機、公司電話、公司傳真、公司名稱、EMail、網址、經緯度及地址等等，詳細的用法請參考行動上網聯盟所制定的規範書。 如果使用行動設備（手機等）解碼上圖QRCode可以得到如下圖資訊，直接可以存入通訊錄，省下手動輸入的麻煩。在某些先進的手機或PDA上，還可以直接利用給於的經緯度，透過地圖（Google Map等）直接進行定位、導航等，像商家的名片就可以提供有經緯度的名片，讓客戶更容易找到商家所在地點。 附上此程式，跟上一篇的 [Java]如何產生Qrocde二維條碼?其實是類似的，只是增加了一個JButton ActionListener動作，而做了一些調整。 VCard測試資料內容：（請記得分行） BEGIN:VCARD N:Wang;Eric TEL;CELL:0923-123456 TEL;WORK:Tel:04-2222222 TEL;WORK;FAX:Fax: 04-2223332 ORG:yslifes;工程師 EMAIL:mymail@dddd.ii.com.tw URL:http://blog.yslifes.com END:VCARD 增加的程式碼重點內容： jButton.addActionListener&#40;new java.awt.event.ActionListener&#40;&#41; &#123; &#160; public void actionPerformed&#40;java.awt.event.ActionEvent e&#41; &#123; getJPanel&#40;&#41;.paintMakeQrcode&#40;getJTextArea&#40;&#41;.getText&#40;&#41;.trim&#40;&#41;.length&#40;&#41;==0?null:getJTextArea&#40;&#41;.getText&#40;&#41;&#41;; &#125; &#125; &#41;; 原始碼下載： 使用Android手機解碼QRCode的結果]]></description>
		<link>http://blog.yslifes.com/archives/686</link>
			</item>
	<item>
		<title>[Java]如何產生Qrocde二維條碼?</title>
		<description><![CDATA[QRCode二維條碼，是Quick Response Code縮寫，來自日本的國際二維條碼標準，是在1994年由日本Denso-Wave公司所發明的，此公司並保有版權但並不行使版權，所以在使用QRCode上並沒有版權上的問題。QRCode的應用像是購物消費、資料查詢、名片交換等等，在日本使用上是十分常見的，而台灣在近幾年也開始流行了起來。 更詳細的QRCode介紹可以參考Wiki QR碼或是 行動條碼 / 二維碼 / Mobile Barcode / QRCode。 要利用Java來產生QRCode可以使用swetake所開放出來的原始碼http://www.swetake.com/qr/index-e.html，有php、ruby及Java等版本，下載點qrcode_java0.50beta10.tar.gz ，下載後解壓縮，可以直接把lib目錄下的QRcode.jar直接引用到程式classpath裡就可以了，或著把所有src目錄裡的java檔copy到專案source目錄裡也可。 Eclipse的配置如下圖 如何使用swetake來產生QRCode，主要的程式碼如下： 此程式主要在產生QRCode的方塊內容，其中字串str為要放入二維條碼內的資料，如果需要輸出成檔案格式則可使用return後面所保留的程式碼使用ImageIO.write來寫入檔案。 package yku.qrcode; &#160; import java.awt.*; import java.awt.image.*; &#160; //import javax.imageio.*; public class EnCodeTest &#123; public BufferedImage makeqrcode&#40;&#41; &#123; // 設定圖檔寬度 140*140 BufferedImage bi = new BufferedImage&#40;140, 140, BufferedImage.TYPE_INT_RGB&#41;; try &#123; &#160; // Constructor Qrcode Object com.swetake.util.Qrcode testQrcode [...]]]></description>
		<link>http://blog.yslifes.com/archives/684</link>
			</item>
	<item>
		<title>[Java]檔案整理工具-照片整理</title>
		<description><![CDATA[有時照片從相機複製下來後懶的整理，時間一久就越來越不好查看到底是在何時拍的，這時候就可以利用這個程式來做分類整理，主要是利用遞迴的方法一直向指定目錄下的每一層找尋圖片檔，再複製至以年月為目錄的分類資料夾。 程式的作法大概是先取得目錄列表，再判斷每一個檔案是目錄或是檔案，如果是檔案，檢查是否為jpg檔，如果是檔案，則取得其修改日期的年月，建立存放目錄的年月目錄資料夾，並複製檔案至此資料夾，如果是目錄，則迴丟至此function，製作遞迴效果。 原始碼如下： package yku; &#160; public class FilterIMG &#123; // 存放目錄 private static final String DirMove = &#34;d:/mypic&#34;; &#160; public static void main&#40;String args&#91;&#93;&#41; throws java.io.IOException &#123; &#160; // if (args.length == 0) // return; // 來源 String source = &#34;d:/backup/yku/picture&#34;; java.io.File SetDir = new java.io.File&#40;DirMove&#41;; if &#40;!SetDir.exists&#40;&#41;&#41; &#123; SetDir.mkdirs&#40;&#41;; &#125; &#160; java.io.File f [...]]]></description>
		<link>http://blog.yslifes.com/archives/682</link>
			</item>
	<item>
		<title>利用Eclipse製作可執行jar run</title>
		<description><![CDATA[寫好java application之後，要執行時可以直接使用java.exe來執行classes，另外還有幾種方式也可以執行，像是Web Start run或是jar run等等，只需要使用jar.exe來打包所有classes就可以了，而在Eclipse上要打包jar檔更是方便，只需要利用匯出精靈幾個步驟就可以完成了。jar其實也是一種zip壓縮檔。 利用範例[Java]SiteMap Creater-簡單的SiteMap建立程式來匯出產生jar run。 打開Eclipse後，在要執行jar檔的專案根目路上按右鍵選則Export 選擇要匯出的java檔，要能夠執行jar run需要把含有main的java檔一起選取 設定要匯出的路徑及檔案名稱 可以選擇要使用的設定檔，一起打包，像是log4j的設定檔 再來可以設定是否匯出complier時是否告知警告及complier錯誤等 再來要設定Mainifest，可以利用精靈來做設定，不過使用記事本編輯後再選取檔案，也是個不錯的方式 Manifest-Version: 1.0 Sealed: true Main-Class: yku.xml.SiteMapCreator2 Class-Path: lib/mysql-connector-java-5.0.4-bin.jar lib/log4j-1.2.15.jar lib/commons-logging.jar Main-Class告知此jar從那個class開始執行（含main的程式） Class-Path外部library的位置，中間利用空白檔分隔 最後記得給於一行空白當結束 完成後可以看到SiteMapCreator.jar已完成 要執行此jar檔，還需要原本開發時所需要的library，如commons-logging.jar、log4j-1.2.15.jar及mysql-connector-java-5.0.4-bin.jar 把這些檔案放到剛才Mainifest.mf所指定的目錄下，如lib目錄 再來把一些其它的設定檔及需求檔案（是否打包進入jar裡，要看程式的設計方式） 再來只需要打開common視窗，利用以下語法就可以了 java -jar SiteMapCreator.jar jar -jar jar檔案 參數]]></description>
		<link>http://blog.yslifes.com/archives/680</link>
			</item>
	<item>
		<title>[Java]SiteMap Creater-簡單的SiteMap建立程式</title>
		<description><![CDATA[SiteMapCreater主要的功能在自動產生SiteMap.xml，只需要在資料庫表格裡建立所要產生的SiteMap網址等資訊就可以執行它來自動產生需要的SiteMap而提交給Google或yahoo等搜尋引擎。 這個程式主要是獨立作業的，可以利用windows或是linux的排程來執行jar run就可以了，這樣子可以減少對伺服器的負擔。 程式的作法是從資料庫取得資料，再把資料加上xml需要的字串，然後最後輸出成檔案就可以了，中間有些需要注意的地方，像是筆數不可太多，此程式設定4000筆會換一個檔案名稱，還有檔案也不可超過太大，8mb以下或更小。 執行後會得到以下檔案，一個index的Sitemap.xml及實際的內容的Info0.xml，另外還需要一個xsl來當讀取樣版的準則，向搜尋引擎只需要提交Sitemap.xml這個檔案就可以了，程式還會自動把所有檔案變成一個zip檔，google可以提交zip檔案做為SiteMap，不過此部份並未成功，有興趣的朋友可以再加以改進。 主要產生xml程式碼 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 [...]]]></description>
		<link>http://blog.yslifes.com/archives/678</link>
			</item>
	<item>
		<title>[Java]利用URLConnection檢查網站狀態</title>
		<description><![CDATA[java.net.URLConnection是一個Http Connecion物件，可以用來連接網站，並處理回傳的資訊資料，當然也可以使用socket連線來做這些事情，不過會顯的麻煩多了。 利用java.net.URLConnection可以直接取得response的Status來判斷網站是不存在、連線錯誤、無法存取，而如果需要更詳細的回傳資訊可以增加給於的Header。而如果需要取得網址的ip則可使用java.net.Inet4Address.getByName(網址名稱)。 有一點要注意的是在JDK1.4以前並有沒有setReadTimeout這個函數，所以需要自己實作一個HttpURLConnectionTimeout來操作TimeOut，可以參考Adding Socket Timeout to java.net.URLConnection這一篇。 這是範例的結果： 原始碼如下： 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 public class TestURLStatus &#123; [...]]]></description>
		<link>http://blog.yslifes.com/archives/675</link>
			</item>
	<item>
		<title>[Android]Google Maps的申請、設定與使用</title>
		<description><![CDATA[行動設備使用Location定位服務越來越火紅，很多人都有很多有趣的想法，像是利用Location查詢所在位置四週的商家資訊、將照片置入所在位置的經緯度方便分享及記錄、還有隨時可以追蹤好友所在位置等等等許多服務。雖然有了定位資訊，可是少了一個展示的平台，Google Map就是一個很好用又免費的元件，可以把經緯資訊展示出地圖資訊，方便閱讀及應用。 在android開發環境上要使用google map這個元件，並無法直接拖拉元件至畫面上，需要申請一組api key，然後設定到Layout資源檔裡，以下範例簡單的說明如何申請一組google map api key及設定Layout檔main.xml。 參考資料Location and Maps &#124; Android Developers 1.如何申請指紋碼 要向Google申請服務的指紋碼，需要先在本機端產生MD5的指紋證書，再利用這個證書產生指文碼。 如何產生指紋證書呢？只需要在jdk的安裝路經bin目錄下，輸入 keytool -genkey - v -keystore 名稱.keystore 其中”名稱.keystore＂請自行設定喜好的名稱，再來畫面會要求你輸入一些基本資訊，大概內容如下圖，密碼部份這個範例為test123。名稱姓氏、單位名稱、組織名稱、城市或地區名稱、州及省份名稱、國碼 完成後可得到需要的keystore 如果不想自己產生認證證書可以直接使用安裝android sdk自行產生的debug.keystore，路徑如下： Windows Vista: C:\Users\&#60;user&#62;\.android\debug.keystore Windows XP: C:\Documents and Settings\&#60;user&#62;\.android\debug.keystore OS X and Linux: ~/.android/debug.keystore 再來是利用指紋證書來取得指紋碼，只需要輸入： keytool -list -keystore &#91;路徑/檔案名稱&#93; -storepass 密碼 其中＂[路徑/檔案名稱]＂可以是上一步產生的keystore或是直接取用android sdk產生的，密碼部份此範例使用test123，畫面如下，會產生一組認證指紋碼，把此指紋碼copy下來 向Google申請Maps API key，網址：http://code.google.com/android/maps-api-signup.html 需要同意條款及給於自行產生的指紋碼，把上一步所得結果貼到input裡，按Generate API key [...]]]></description>
		<link>http://blog.yslifes.com/archives/671</link>
			</item>
</channel>
</rss>
