<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>EragonJ&#039;s World</title>
	<atom:link href="http://eragonj.hax4.in/feed" rel="self" type="application/rss+xml" />
	<link>http://eragonj.hax4.in</link>
	<description></description>
	<lastBuildDate>Sat, 04 Sep 2010 16:07:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<atom:link rel='hub' href='http://eragonj.hax4.in/?pushpress=hub'/>
		<item>
		<title>[CSS] How to determine &#8216;Specificity&#8217; ?</title>
		<link>http://eragonj.hax4.in/blog/css-how-to-determine-specificity.html</link>
		<comments>http://eragonj.hax4.in/blog/css-how-to-determine-specificity.html#comments</comments>
		<pubDate>Sat, 04 Sep 2010 12:14:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[cascading style sheet]]></category>
		<category><![CDATA[priority]]></category>
		<category><![CDATA[regex]]></category>
		<category><![CDATA[specificity]]></category>
		<category><![CDATA[write-only]]></category>

		<guid isPermaLink="false">http://eragonj.hax4.in/?p=525</guid>
		<description><![CDATA[有在寫web方面的朋友，特別是視覺設計人員應該對於這個詞並不陌生吧，每當我們有一大堆CSS（Cascading Style Sheet）設定檔的時候，那種交織在一起的感覺真的是讓人又愛又恨，對我來說，因為這部分的設定有很多部分都是為了Cross-Browsers而寫出來的雜亂Hacking，如果沒有註解，那久而久之根本就不知道當初是在設定什麼東西，也就無從改起。

所以我一直都覺得CSS在某種程度上和Regex算是平等的，都是Write-Only的一種表示法，只有在寫的當下你會知道是什麼意思，但是下次之後就絕對看不懂。你說我唬你？那你知道下面這是什麼鬼嗎：



哈哈，我也不知道，那是從RegExLib.com隨便抓的例子，好像是在做email驗証的吧，管他的，太噁心了，阿你CSS寫大了又切割成數個檔案，每個檔案都在夾縫中求生存，一邊+5px，一邊-2px，這不就是Regex的再版嗎…

因為自己時常有這種問題產生，所以從中會衍伸出一個問題就是CSS覆寫的priority，通常如果像我這樣蠢的人，一開始一定以為就和寫程式一樣，是以sequential的方式由上往下跑，那就最後的設定一定會蓋過最先的設定呀，這還要說嗎？阿如果真的是這麼容易就好了，其實是有規則的：



所以如果以後對於其樣式的優先順序有什麼不確定的地方的話，就愛用CSS specificity calculator吧，這個網站是我尋覓了一陣子才發現的，而且似乎也有一直在更新，不妨試試看吧。

Related Posts:[Mac] How to change background images in Terminal.app in Leopard[Hax4] Rainbow[JS] jquery.zoomImg.js 1.0[PHP] optimization for shortening the API calls[RoR] Passenger + Apache = 無敵金身]]></description>
		<wfw:commentRss>http://eragonj.hax4.in/blog/css-how-to-determine-specificity.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Bash] Fookies = Flash cookies (Local Shared Object)</title>
		<link>http://eragonj.hax4.in/blog/bash-fookies-flash-cookies-local-shared-object.html</link>
		<comments>http://eragonj.hax4.in/blog/bash-fookies-flash-cookies-local-shared-object.html#comments</comments>
		<pubDate>Wed, 25 Aug 2010 09:08:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Bash]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[cookies]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[Fookies]]></category>
		<category><![CDATA[local shared object]]></category>
		<category><![CDATA[LSO]]></category>
		<category><![CDATA[macromedia]]></category>
		<category><![CDATA[osl]]></category>
		<category><![CDATA[scripts]]></category>
		<category><![CDATA[wiki]]></category>

		<guid isPermaLink="false">http://eragonj.hax4.in/?p=517</guid>
		<description><![CDATA[最近公司剛好在研究Flash cookies的應用，我才開始對這個東西有了了解。其實從字面上的意思就可以得知它是一種廣為使用但卻少為人知Cookies。Local Shared Object（LSO）又被稱為Flash cookies，從WIki上面的資料可以發現在2005年的時候Slashdot就有寫相關的文章來介紹這個東西，但是我是一直到現在2010年的8月，才知道這個東西的存在…

所謂亡羊補牢，猶未晚也，一定還有一堆人不知道這個東西，所以就趁這個機會簡單的介紹一下。其實它就是Cookies，各種網站或是應用都大量地使用這個餅乾來記錄有關使用者的各種資訊，而我們的Browser也很貼心的為了保護使用者的隱私權，讓我們只要簡單的隨便按一兩個鍵就能把這些記錄清掉。但是，卻漏掉Fookies。

以下是我從wiki截錄的Fookies路徑：

我們可以發現到Fookies都是被藏在一般使用者根本不會發現的地方，而Browser也不會很好心的幫你把他們清掉，所以只能自己靠自己手動去那些路徑把這些東西幹掉。  所以就寫了一小段的Bash Scripts，只要是Mac OS X或是Linux的User應該都可以在Terminal下利用這個Scripts把Web Applications的Fookies批次刪除。


所以如果下次看到某個網站不知道為什麼在Cookies刪掉之後還是能夠把你之前的個人設定秀出來的話，快刪Fookies吧 

『評』
其實這個東西真的很髒，特別是愛逛特別網站（？）人，那些記錄早就被存在Fookies內了，所以下次除了手動刪Cookies、刪瀏覽記錄，別忘了還要刪Fookies呢，Yooooooooooooooooooooooooo。

δ 2010/08/31 新增了判斷Linux使用者的部分。
Related Posts:[Ruby] 6th object[Ruby] 7th place[Ruby] 3rd Game[News] How Twitter Can Help You Quit Smoking[Ruby] Get started]]></description>
		<wfw:commentRss>http://eragonj.hax4.in/blog/bash-fookies-flash-cookies-local-shared-object.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[News] How Twitter Can Help You Quit Smoking</title>
		<link>http://eragonj.hax4.in/blog/news-how-twitter-can-help-you-quit-smoking.html</link>
		<comments>http://eragonj.hax4.in/blog/news-how-twitter-can-help-you-quit-smoking.html#comments</comments>
		<pubDate>Tue, 24 Aug 2010 14:55:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[app market]]></category>
		<category><![CDATA[drink]]></category>
		<category><![CDATA[plurk]]></category>
		<category><![CDATA[smoke]]></category>
		<category><![CDATA[social network]]></category>
		<category><![CDATA[TechCrunch]]></category>
		<category><![CDATA[tweet]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[多數暴力]]></category>
		<category><![CDATA[戒]]></category>
		<category><![CDATA[智慧型手機]]></category>
		<category><![CDATA[癮]]></category>
		<category><![CDATA[行動上網]]></category>

		<guid isPermaLink="false">http://eragonj.hax4.in/?p=500</guid>
		<description><![CDATA[News from TechCrunch
剛剛在看TechCrunch的時候發現了這一篇還蠻新的文章，就翻譯一下順便分享給大家。（內文會參雜部分個人意見）

在星期六的紐約時報中，有一名記者Brian Stelter發表了一個他利用Twitter來當做減肥工具的小故事，並同時設立一個@briansteler25的帳號用來記錄他的減肥及飲食計畫。
我知道我沒辦法一個人減肥，所以我需要一個能夠支持、鼓勵我的小天地。 from Brian Stelter
結果？他減了75磅。這有點太扯了，不知道他是怎麼減的，經過高精度儀器計算，1磅 =  0.45359237公斤。幹，是我數學太好還是計算機壞了，「75 * 0.45359237 = 34.0194277 公斤！！」，以這個成績來看，有了Twitter，連媚登X都可以關門了，真扯。
先不論他花多久做到的，我們先繼續看。
在我的生日派對上，我覺得抽15年的菸已經夠多了，該是把菸丟了。一開始我還不太敢把這件事情推到Twitter上，主要是一開始因為尼古丁戒斷症候群讓我感到非常難過，但是到了第三天的時候，我已經集滿足夠的勇氣來讓我打倒它了。
結果在那天之後，我收到超多人的支持。我就像是Stelter，如果我就這樣拾起香菸而不是我的iPhone的話（因為作者都靠著一直Tweet來讓自己不要抽菸，就像我一直喝飲料一樣（？）），我就會讓那些支持我的人難過。

所以接下來當我進入了想要抽菸的紅色警界，例如和朋友去參加派對或是穿過機場的大門（？），我就會瘋狂Tweet或是使用尼古丁貼片來克制我抽菸的慾望，避免改變了我原本堅定的決心呀呀呀（Stuck to someone&#8217;s guns）。
我喜愛抽菸的程度就像是Stelter喜愛吃Dunkin&#8217;的甜甜圈一樣吧，但是當我看到Chris Sacca（下）和Troy Holden的推（上），就讓我在衝去買一包香菸前再次慎重的思考了一次，無論我現在是多麼的想抽呀呀呀。

我沒辦法一個人戒掉抽菸，我需要一個能夠激勵我的地方。
首先，為什麼人會暴食或是狂抽菸呢，依我個人的經驗呀（是作者不是我！！），是因為他們想要被注意或是被安撫。如果我們可以利用在Twitter上朋友給予支持的力量來取代那些不健康的行為所帶來的短暫快樂，那Twitter就是一個很棒的工具，可以讓你在有效的管控你對事物的「癮頭」。
雖然利用Twitter上的朋友來當作支持你堅持在某件事物上的這種想法，就像是Twitter這個網站本身一樣的新穎，但是我已經聽過許多無數利用Twitter來達到目標的例子，如一位叫Laura Fitton的女性朋友就用Twitter來確保她每天都有做瑜珈，還有另一位Paul Carr和它成功戒酒的故事。
【評】
其實社交網站可以說是兩面刀，一面是讓你可以很輕易的和人群黏在一起，但是相對的也會從中讓你受到許多的傷害。網路是沒有距離的，只要簡單的一個Click，每個人都可以變成好朋友，但是，比起那些在真實世界由自己打造出來的人脈，這種虛假的關係能帶給自己多少益處？
以我個人在做微網誌相關的專題時，我就有發現一個現象，其實這類型的網站隱藏著一種「多數暴力」的哲學，只要是知名或是交友廣闊的微網誌客，都能有很高的回覆率（在『噗浪玩出大生意』這本書中有講到好友、粉絲數與回覆率之間的關係，但是我忘記這個確切數字，我記得不到10%），但是相對於一些比較不善於交友的使用者來說，沒有任何人的回覆比考試零分還讓人傷痛。
但相反來說，如果我們能像這篇文章中的那些故事人物善用這股力量，真的就會有推波助瀾的效用。因為一個人出門不一定會帶菸帶酒，但是一定會帶錢包、鎖匙和「手機」，如果能夠再搭上最近很紅的App Market及行動上網的優惠方案，那這種社交網站就能帶動你戒癮的決心，哪怕是在你快撐不下去的時候，你朋友也會打手機來罵你，好讓你支持下去。
所以如果有各種奇奇怪怪癮頭的朋友們，不要去上什麼戒斷班，那些太浪費時間也浪費錢了，還不如現在就走向離你家最近的電信業者辦個行動上網及一支智慧型手機吧，XD。
（默…我應該要去行銷部門才行）
Related Posts:[Others] Advanced Engineering Mathematics ?[PHP] Shark 改版[News] Chatroulette’s Creator, Andrey Ternovskiy[Bash] Fookies = Flash cookies (Local Shared Object)[評論]線上購物機制與其應用]]></description>
		<wfw:commentRss>http://eragonj.hax4.in/blog/news-how-twitter-can-help-you-quit-smoking.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[JS] jquery.zoomImg.js 1.0</title>
		<link>http://eragonj.hax4.in/blog/js-jquery-zoomimg-js-1-0.html</link>
		<comments>http://eragonj.hax4.in/blog/js-jquery-zoomimg-js-1-0.html#comments</comments>
		<pubDate>Sun, 15 Aug 2010 14:36:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[1.0]]></category>
		<category><![CDATA[1.4.2]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[jquery.zoomImg.js]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[zoomImg]]></category>
		<category><![CDATA[自由軟體]]></category>

		<guid isPermaLink="false">http://eragonj.hax4.in/?p=489</guid>
		<description><![CDATA[原本我一直不認為Javascript是一個很特別的Script Language，但是直到最近因為工作的因素所以逼不得以要去維護相關的Javascript的程式，結果沒想到Javascript竟然是如此的博大精深，甚至目前的Desktop application或是 Mobile application都開始使用Javascript來做開發。
直到最近剛結束的Coscup，我想效法一些朋友對自由軟體的態度來激勵自己，一來可以為這個世界盡一份心力，二來也可以訓練自己的能力，就當打怪練功吧:P
這個jquery.zoomImg.js 1.0是因為想要先寫好放著，等之後要做Blog的Image特效時使用的XD，不過既然有這個想法，那就打鐵趁熱，先把基本的功能刻出來，以後再做整理並加強功能吧。
這個plugin是在jquery-1.4.2.min.js的環境下開發的，不過我並沒有用到1.4才特有的一些寫法，所以應該在1.3也還能夠使用。jquery.zoomImg.js In Github



Related Posts:[Hax4] Rainbow[Mac] How to change background images in Terminal.app in Leopard[News] 2010 telsoft hinet 1st round[News] Hitcon 2010 !![CSS] How to determine &#8216;Specificity&#8217; ?]]></description>
		<wfw:commentRss>http://eragonj.hax4.in/blog/js-jquery-zoomimg-js-1-0.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[閒聊] Just changed the appearance</title>
		<link>http://eragonj.hax4.in/blog/%e9%96%92%e8%81%8a-just-changed-the-appearance.html</link>
		<comments>http://eragonj.hax4.in/blog/%e9%96%92%e8%81%8a-just-changed-the-appearance.html#comments</comments>
		<pubDate>Thu, 12 Aug 2010 18:52:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Others]]></category>
		<category><![CDATA[appearance]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[journalist template]]></category>
		<category><![CDATA[new]]></category>
		<category><![CDATA[theme]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[WP]]></category>

		<guid isPermaLink="false">http://eragonj.hax4.in/?p=486</guid>
		<description><![CDATA[It&#8217;s being a while for me to change the appearance of my blog. Because I like minimalism themes, I keep finding anything about this kind of skin. Not only because I can train my ability to modify CSS but like it. Finally, I got a satisfying one called &#8216;The Journalist template&#8217; made by Lucian E. [...]]]></description>
		<wfw:commentRss>http://eragonj.hax4.in/blog/%e9%96%92%e8%81%8a-just-changed-the-appearance.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[JS] jQuery.css() problem when using Firefox</title>
		<link>http://eragonj.hax4.in/blog/js-jquery-css-problem-when-using-firefox.html</link>
		<comments>http://eragonj.hax4.in/blog/js-jquery-css-problem-when-using-firefox.html#comments</comments>
		<pubDate>Wed, 11 Aug 2010 11:14:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[display]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[left]]></category>
		<category><![CDATA[top]]></category>
		<category><![CDATA[visibility]]></category>

		<guid isPermaLink="false">http://eragonj.hax4.in/?p=476</guid>
		<description><![CDATA[最近在公司開發JS的程式的時候，很多時候都會利用到快速又方便的jQuery Library，而這次就很剛好的遇到了Bug，花了很多時間才解出來，以下為測試環境（FF 3.59 , 3.6 ）：
假設我現在有一個DOM的元素，是一個img，當我設定其CSS為「display:none;」時，在FF上就會沒辦法利用
「jQuery.css(&#8216;left&#8217;) or jQuery.css(&#8216;top&#8217;)」來把這個值取出。就算你已經設定好left或是top的值，都只會抓到0px。
範例程式碼：

所以為了要解決在元素被hidden時不能取值的問題，就只能用比較髒的手段來抓到這個值，就是利用「visibility」。 
什麼是visibility？它和display不同的地方在於說，display:none會直接不顯示這個元素並不佔用空間；而visibilty:hidden則是不顯示這個元素但是卻仍存在並佔用空間。
所以這個很Tricky的方法可以參考下面：

這樣就可以成功的取到left的值（top亦同）而不會影響UI的部分了，算是這次遇到最無言的Bug吧。
下次見囉。
Related Posts:[RoR] ActionMailer + Gmail +SMTP_tls = Amazing ![Lex] How to write a simple lexical analyzing program[Ruby] 5th street[Ruby] 7th place[Ruby] 8th word]]></description>
		<wfw:commentRss>http://eragonj.hax4.in/blog/js-jquery-css-problem-when-using-firefox.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[News] Hitcon 2010 !!</title>
		<link>http://eragonj.hax4.in/blog/news-hitcon-2010.html</link>
		<comments>http://eragonj.hax4.in/blog/news-hitcon-2010.html#comments</comments>
		<pubDate>Thu, 22 Jul 2010 16:17:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[B]]></category>
		<category><![CDATA[BlueT]]></category>
		<category><![CDATA[BT]]></category>
		<category><![CDATA[Crboy]]></category>
		<category><![CDATA[Hack]]></category>
		<category><![CDATA[Hacker]]></category>
		<category><![CDATA[HIT]]></category>
		<category><![CDATA[isbn]]></category>
		<category><![CDATA[Mosky]]></category>
		<category><![CDATA[wargame]]></category>
		<category><![CDATA[名人堂]]></category>
		<category><![CDATA[小畢]]></category>
		<category><![CDATA[駭客]]></category>

		<guid isPermaLink="false">http://eragonj.hax4.in/?p=460</guid>
		<description><![CDATA[小弟這次有幸能夠當Hitcon 2010的工作人員，因此就趁這次難得的機會去體驗一下駭客的文化，雖然這次不是第一次去了。

在這次的活動中，我和人帥真好的Crboy及人正真好的Python GirlーMosky一起負責場務組的B門，也就是Wargame的小門。不過一直守門也無聊，Crboy就提議我們以B的名字來報隊玩Wargame（因為BTeam這個名字被人帥真好的BlueT他們取走了，可能是和剛上映的ATeam有關吧）。

不玩還好，一玩三個人就上癮了，開始瘋狂的無所不用其及的想要破關，不過因為我們都是第一次下去玩Wargame，所以能解的題目有限，但是還是讓我們解到第11名，雖然有一題海棉寶寶的圖題是BlueT提供想法去觸發我們解題的，不過我們還是靠我們三個有限的大腦解出了幾題！！

（先偷偷的放個圖做個紀念一下，點我看Wargame名人堂）


題目中最讓我印象深刻的就是ISBN的那題，給我們Barcode及鍵盤被打擊的機率要我們找出書名，那題真的是超適合我們這組的，因為我們先查出Barcode藏了「HINT is 158XXXXXXXP」（好像是這樣），然後我就和小畢去推那個鍵盤的機率，算出最有可能出現的數字及其個數大概是多少個，然後再請Mosky用Python快速的寫出程式來跑出所有可能的情況，之後發現是36組ISBN的值是最有可能的。最後我就負責寫一段PHP code來查速查出anobii上所有ISBN代表的書名。

結果，我們就成功的找出第七組還是第八組ISBN代表的是這本
，沒錯，書名就是這個，也就是這題最後的答案！！真是超開心的呀，這題30分耶！

之所以讓我印象深刻是因為這一題完美的結合了我們三個人的能力，而且快速又漂亮地解出來，也是最代表B的一題呀！！如果下次還有機會的話一定要再組一次隊和大家再去玩一次Wargame！

Hitcon 2011，我們下次見:D

後記，剛好HIT2010的照片出來了，把B的照片連過來做個紀念：



Related Posts:[Hax4] Rainbow[JS] jquery.zoomImg.js 1.0[News] 2010 telsoft hinet 1st round[Mac] How to change background images in Terminal.app in Leopard[CSS] How to determine &#8216;Specificity&#8217; ?]]></description>
		<wfw:commentRss>http://eragonj.hax4.in/blog/news-hitcon-2010.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[RoR] Prince + Princely = Princely Prince &gt; Princess</title>
		<link>http://eragonj.hax4.in/blog/ror-prince-princely-princely-prince-princess.html</link>
		<comments>http://eragonj.hax4.in/blog/ror-prince-princely-princely-prince-princess.html#comments</comments>
		<pubDate>Fri, 28 May 2010 09:50:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[RoR]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[font]]></category>
		<category><![CDATA[glyphs]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[msttcorefonts]]></category>
		<category><![CDATA[pdf]]></category>
		<category><![CDATA[Prince]]></category>
		<category><![CDATA[Princely]]></category>
		<category><![CDATA[字型]]></category>

		<guid isPermaLink="false">http://eragonj.hax4.in/?p=445</guid>
		<description><![CDATA[

每個童話故事最後面都是說王子和公主最後過著幸福美滿的日子，然後就沒了，但是我發現在RoR版的童話故事內，王子再也不需要公主在一起了，反而是自己一個人以高貴的身份自居!!


好吧，真是難笑的爛梗，我也覺得不好笑。

最近因為一些需求，所以我改負責開發PDF輸出的部分，因為團隊的人很懶，不想要自己手動做一個需要一直變動且漂漂亮亮的Excel檔，所以這個大任就跑到我身上了。

經過了一兩天的Hacking，終於找到一個很屌的東西，叫做Prince，套一下網站上的Slogan，『Prince , a great way of getting web content onto papaer』，果真就像它上面寫的一樣，真的超好用的。

最重要的部分就是可以「直接把XML或是HTML轉成PDF」，沒錯，比以前用PDFlib手繪還屌。因為我們大部分的產品都是以Web的方式呈現，所以大量的資料和檔案都是存成HTML的格式，有這樣子的東西就很方便啦，接下來要開始進入Hacking的部份了（也許會有點多，可能也會有些錯誤，不過就請你有耐心的看下去）

一開始當然是來到Prince的官方網站挑個符合自己作業系統的Prince程式吧。

裝好後，其實你就已經可以自己利用Prince把HTML轉成PDF了，如果我只寫到這邊我大概會被打死，所以我還是講一下要如何把它和RoR做個結合。

Princely是一個把Prince包裝起來的好用套件，它可以讓你把Prince和你的程式碼結合成一起，輕鬆呈現。所以也要安裝這個Plugin，那就來去你的Application的根目錄來安裝它，輸入：


OK，目前你已經完成整個童話故事的劇情了，但是你知道，現實世界的童話故事總是不會這麼的完全，如果就這樣結束的話那我就不用寫這篇來提醒自己了 = = 。


這個是Pricely官方的範例檔，我們只要在render的時候下兩個重要的symbol就可以。一個是「:pdf」，它代表的是該pdf被下載時的檔名，而「:stylesheets」則是代表說你原本的HTML file所引入的css檔檔名。這邊要注意一下，如果你直接在Views下用HTML的方式，或是用Rails內建的「stylesheet_link_tag」來引入，都是沒有用的。一定要在這邊下「:stylesheets」來讓Prince去額外引入那個css檔。

對了，忘了在這邊提一下，我測試的時候發現到一個問題，就是如果在Views用「image_tag」來設定相對路徑的話，圖會出不來，所以要把它改寫成絕對路徑。（因為在RoR的Conventions有特別說到這點，為了可移植性，這邊要用相對的方式讓RoR自動去對應那個圖片的路徑）

接下來就是最大的麻煩，害我花了將近一整天的時間沒去上課。就是有關中文呈現的問題。在預設的情況下，所有的中文字都會變成「???」。我原本差點因為這個問題崩潰，不過之後還是解決了，就來看一下要怎麼處理，如果沒有發生這種情況或是不需要輸出中文字的人就先恭喜你啦，你已經幫王子寫下最後的結局了，所以就這樣子啦。

不過如果你真的和我一樣可憐，那你就要先打死這個Bug才行。在Prince官方有提到，如果一直出現「prince: internal error: no fallback glyph for character U+00XX」，就代表沒有相對應的字型可以去匹配中文字，所以通常，像我Server這邊，是因為沒有裝「msttcorefonts」這個package，所以要去這邊來安裝這個package。

如果還是有問題，那就改用官方建議的另外一個方法，
去找出安裝Prince時的fonts.css設定檔，修改它並重新定義css的generic font families去map到你自定的字型上去，以我為例，我這邊的檔案是放在「/usr/lib/prince/style/fonts.css」。

下面是我自己設定的部分：
。我就把css內的「font-family: &#8220;verdana&#8221;;」 map到蘋果儷黑體的實體路徑，所以Prince就會把我HTML那邊設定的「font-family: &#8220;verdana&#8221;」以蘋果儷黑的字型寫入PDF。

以上就是這次的小Hacking，大致上是沒有什麼太大的問題，如果有什麼更新的話我會再直接在這邊做註解的。大概就是這樣啦，大家掰，我們下次見。
Related Posts:[Ruby] 5th street[Ruby] 7th place[RoR] ActionMailer + Gmail +SMTP_tls = Amazing ![Git] Personal Configuration[Ruby] 8th word]]></description>
		<wfw:commentRss>http://eragonj.hax4.in/blog/ror-prince-princely-princely-prince-princess.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[閒聊] Magic RoR</title>
		<link>http://eragonj.hax4.in/blog/magic-ror.html</link>
		<comments>http://eragonj.hax4.in/blog/magic-ror.html#comments</comments>
		<pubDate>Sun, 23 May 2010 16:53:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Others]]></category>
		<category><![CDATA[generator]]></category>
		<category><![CDATA[magic]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[RoR]]></category>
		<category><![CDATA[scaffold]]></category>
		<category><![CDATA[架站]]></category>

		<guid isPermaLink="false">http://eragonj.hax4.in/?p=439</guid>
		<description><![CDATA[真的是很奇怪，雖然心裡有千百個不願意，但是每當想到要「架站」這個動作的時候，腦海第一個閃過去的東西不是PHP反而是RoR，每次一想到它的scaffold還有人性化的generator，就有種讓要用它的衝動。

原來Ijs當初的那番話…我還太淺了XD，還有很多東西要和她學呢。
 ]]></description>
		<wfw:commentRss>http://eragonj.hax4.in/blog/magic-ror.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>[News] 2010 telsoft hinet 1st round</title>
		<link>http://eragonj.hax4.in/blog/news-2010-telsoft-hinet-1st-round.html</link>
		<comments>http://eragonj.hax4.in/blog/news-2010-telsoft-hinet-1st-round.html#comments</comments>
		<pubDate>Wed, 28 Apr 2010 02:41:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[Hinet]]></category>
		<category><![CDATA[Telsoft]]></category>
		<category><![CDATA[中華電信]]></category>
		<category><![CDATA[無限蕃薯樂園]]></category>
		<category><![CDATA[電信應用大賽]]></category>

		<guid isPermaLink="false">http://eragonj.hax4.in/?p=429</guid>
		<description><![CDATA[哦耶，之前一直想要上來把這個好消息寫下來，只是都因為事情太多所以沒有空上來寫，就趁這個空檔趕快把這次「2010 中華電信 電信應用大賽」晉級的事情寫一下。






沒錯，我們「無限蕃薯樂園」進了複賽了:P，如果我說我們是臨時成軍的應該沒有人相信吧 = =&#8221;，其實我們原本只是想要去聽Plurk創辦人Alvin的演講而已呀!! 但是因為意外發現Hinet這次有開放一個全新的組別「創意行銷組」，所以我們這幾個(其實總共也才三個人一組)就決定要去為大學生活留下一些東西，而不是和一群只會讀書玩耍的學生一樣，我們就去報名參加了:D。

雖然成軍的很倉促，但是我覺得我們選題的部分和企劃書的撰寫都很恰到好處，也點出Hinet目前一些問題所在，這大概就是我們之所以會晉級的原因吧。

接下來就要去台中接受中華電信的教育訓練了，為期大概兩個禮拜共四天，其實我們是故意挑台中場的，想說能夠當個放鬆的行程順便去學東西:D~

好啦，話不多說，我們決賽見!。
Related Posts:[Mac] How to change background images in Terminal.app in Leopard[Hax4] Rainbow[JS] jquery.zoomImg.js 1.0[News] Hitcon 2010 !![PHP] Wxetch bot 三連發]]></description>
		<wfw:commentRss>http://eragonj.hax4.in/blog/news-2010-telsoft-hinet-1st-round.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
