| Message |
|
|
參考 How to sort Properties ??這篇裡面最簡單的作法是:
public class SortedProperties extends Properties {
public synchronized Enumeration keys() {
Enumeration keysEnum = super.keys();
Vector keyList = new Vector();
while(keysEnum.hasMoreElements()){
keyList.add(keysEnum.nextElement());
}
Collections.sort(keyList);
return keyList.elements();
}
}
使用方式就跟原本的Properties類別一樣:
Properties p = new SortedProperties();
p.putAll(globals.installation);
try {
FileOutputStream out = new FileOutputStream(globals.installationConfig);
p.store(out, "Installation specific configuration options");
out.close();
}
catch (IOException e) {
throw new ForumException(e);
}
|
 |
|
|
標題:在 HTML 中顯示特殊字碼 (Times字型)
日期:Apr 21 20:27 2004
有一些特殊字想在 HTML 中表示出來,可是沒有安裝特殊的輸入法,該怎麼輸入呢?
雖然有些字可以用內碼打出來,不過有些字還是得輸入特定碼才會顯示出來的。
在編輯 HTML 時,輸入這樣的語法
<font face="Times" size="+3">&#特定碼;</font>
就可以在 HTML 中顯示出特殊字囉!
注意:
1.特定碼前必須加上 &# 這兩個符號;字尾則再加入 ; 分號。
特定碼,請參照以下[特殊字碼表]。
2.有些殊特字的圖案較複雜,用大一點的字體才容易看出來。
例如 size="+5"
3.請使用 特定字體(例如 Times, Arial, Verdana 等)才會顯示。
例如 face="Times"
每種字型所能顯示的特殊字範圍均不相同,[Times]字型可以顯示的特殊字較多,而[新細明體]字型可以顯示的特殊字較少。
--
作者:Dana, cowwu@ms15.hinet.net, 2004/04/21
本文章公開於個人網站 http://www.dana.idv.tw
特殊字碼表請參考來源網站:
http://cowwu.myweb.hinet.net/note/text/930421a.htm
|
 |
|
|
$ dig mx andowson.com
; <<>> DiG 9.2.4 <<>> mx andowson.com
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24079
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 8, AUTHORITY: 2, ADDITIONAL: 0
;; QUESTION SECTION:
;andowson.com. IN MX
;; ANSWER SECTION:
andowson.com. 604800 IN MX 10 aspmx.l.google.com.
andowson.com. 604800 IN MX 20 alt1.aspmx.l.google.com.
andowson.com. 604800 IN MX 30 alt2.aspmx.l.google.com.
andowson.com. 604800 IN MX 40 aspmx2.googlemail.com.
andowson.com. 604800 IN MX 50 aspmx3.googlemail.com.
andowson.com. 3600 IN MX 60 220-135-57-87.hinet-ip.hinet.net.
andowson.com. 3600 IN MX 100 smtp.where.secureserver.net.
andowson.com. 3600 IN MX 200 mailstore1.secureserver.net.
;; AUTHORITY SECTION:
andowson.com. 3600 IN NS park29.secureserver.net.
andowson.com. 3600 IN NS park30.secureserver.net.
;; Query time: 558 msec
;; SERVER: 168.95.1.1#53(168.95.1.1)
;; WHEN: Wed Aug 29 08:01:55 2007
;; MSG SIZE rcvd: 317
申請了 Google Apps的郵件代管後, 在DNS上面設定MX順序時已把gmail放在上面了, 等於是Postfix對 andowson.com 的 MX 指到 gmail去了,因此信就往 gmail smtp跑, 而gmail smtp沒開放 open relay, 當然就寄不出去囉.
|
 |
|
|
-bash-3.1$ psql -l
資料庫列表
名稱 | 擁有者 | 編碼
-----------+----------+------
postgres | postgres | UTF8
template0 | postgres | UTF8
template1 | postgres | UTF8
(3 行)
參考資料:
http://www.twbsd.org/cht/book/index.php?ch=19
|
 |
|
|
今天同事秀了一下 Firebug給我看, 發現功能也滿強的, 不過得先安裝Firefox, 使用方式是工具 -> Firebug -> Open Firebug -> Net
用Firebug測出來的是您的電腦到您網站的下載時間, 而用Pingdom Tools Full Page Test測出來的則是Pingdom主機到您網站的下載時間, 由於真正關鍵的時間還是客戶的電腦到您的網站的時間, 故如果是到客戶的網路環境時還是用Firebug來測試比較準.
|
 |
|
|
|
|
 |
|
|
如果安裝Trac+Subversion的Apache主機本身也跟Tomcat整合起來的話, 要再修改一下mod_jk的設定, 例如/etc/httpd/conf.d/mod_jk.conf:
JkUnMount /projects/* loadbalancer
JkMount /*.jsp loadbalancer
# Deny direct access to WEB-INF
<LocationMatch ".*WEB-INF.*">
Deny from all
</LocationMatch>
# Allow direct access to WEB-INF directory under /projects and /svn
<LocationMatch "[/projects/ /svn/].*/WEB-INF.*">
Allow from all
</LocationMatch>
這樣子就可看到JSP和WEB-INF底下檔案的原始碼了.
|
 |
|
|
可以用下面這個指令來解決
tr -d \\r < source > target
mv source source.old
mv target source
如果沒問題時再把source.old刪掉
|
 |
|
|
簡睿隨筆中有篇 歡迎使用 Trac 0.10.4, 我覺得放在每個Trac新建專案的首頁還滿不錯的, 尤其是剛開始導入Trac的團隊, 由於該網站上看不到原始碼, 底下附上我寫的Wiki程式碼, 只要將它全部複製貼上即可:
= 歡迎使用 Trac 0.10.4 =
通常在某個軟體專案的開發過程中,可能不會耗時費力地為專案建立專屬的網站或網頁,一般只會把原始碼集中在CVS或Subversion上,問題或待辦事項以Issue/Bug Tracking System來追蹤,而重要的關於專案的細節與訊息溝通,大都透過當面對話、即時訊息系統(ICQ、MSN Messenger、Skype)與電子郵件來達成。在這樣的開發過程中,除了資訊四處散落之外,專案發展過程的重要管理項目與經驗等都無法被有效彙總與整理,導致專案的細節只有深入專案的參與人員才能有所體會,但隨著時間流逝,這些重要的體驗也將逐漸被遺忘。
為了強化專案資訊的有效流通與專案狀態的傳承,Trac系統是個不錯的選擇。Trac的核心是所謂的Wiki,經由Wiki我們可以迅速建立需要的網頁與眾多連結。相對於HTML、CSS等的使用,Wiki是相對簡單且易學的。
Wiki的使用就屬WikiFormatting和TracWiki的概念較為特殊,完整的介紹請看TracGuide的說明,以下是簡要的概述,會了這些就先能開始作業了:
1. Trac裡的每一個網頁都能在瀏覽器裡直接編輯,編輯完的每個版本都會被儲存起來,並且能還原到先前版本。
1. 字體變化[[BR]]
* 粗體:用三個單引號夾住的文字會變粗體字 {{{'''粗體文字'''}}} ==> '''粗體文字''' [[BR]]
* 斜體:用兩個單引號夾住的文字會變斜體字 {{{''斜體文字''}}} ==> ''斜體文字''[[BR]]
* 粗斜體:用五個單引號 {{{'''''粗斜體文字'''''}}} ==> '''''粗斜體文字'''''[[BR]]
* 底線:用兩個底線夾住 {{{__底線文字__}}} ==> __底線文字__[[BR]]
* 刪除線:用兩個~夾住 {{{~~刪除文字~~}}} ==> ~~刪除文字~~[[BR]]
* 上標字:用{{{^}}}夾住 {{{^上標文字^}}} ==> ^上標文字^[[BR]]
* 下標字:用兩個逗點夾住 {{{,,下標文字,,}}} ==> ,,下標文字,,[[BR]]
1. 常用的超連結(參考TracLinks)
* 用駱峰式英文(CamelCase) 表示的文字自動形成超連結,即數個英文字連在一起(中間不能有空白)且每個字的第一個字母大寫,其餘小寫[[BR]]
* 以中文表示超連結之格式:用中括號把兩組文字夾起來 {{{[CamelCase 顯示在網頁上的中文超連結]}}} 例:{{{[TracLinks Trac超連結]}}} ==> :[TracLinks Trac超連結][[BR]]
* 上述第一組文字也可以用網址:{{{[http://www.andowson.com 安道生網站技術練功房]}}} ==> :[http://www.andowson.com 安道生網站技術練功房][[BR]]
* 中文連結可以用 {{{[wiki:中文]}}} 的格式,形成的Wiki網頁就是中文名稱;用這種形式的網址會較長,但能在[TitleIndex Index By Title]裡出現易讀的中文連結[[BR]]
* 附件的表示方法:{{{[attachment: 附件檔名]}}},建議用中括號夾起來,attachment: 字樣才不會出現[[BR]]
* Subversion檔案的表示方法:{{{[source: Subversion路徑]}}},建議用中括號夾起來,source: 字樣才不會出現[[BR]]
1. 顯示程式碼原貌:用三個大括號夾住的區塊[[BR]]
1. 圖檔的顯示方法:
* 先將圖檔當做附件上傳[[BR]]
* 用{{{[[Image(圖檔檔名)]]}}} 就能顯示圖形[[BR]]
1. 更多的Trac巨集參考:[http://trac.edgewall.org/wiki/MacroBazaar][[BR]]
1. Trac的[http://trac.edgewall.org/wiki/TracTermsZhTw 繁體中文術語對照表], [http://trac.edgewall.org/wiki/TracTermsZhCn 簡體中文術語對照表][[BR]]
= 學習的最有效方法就是開始使用。請盡情的編輯吧! =
你也可以用[SandBox 練習沙箱區]來練習與測試。
== Starting Points ==
* TracGuide -- 內建的使用說明
* [http://trac.edgewall.org/ Trac 專案] -- Trac開源專案
* [http://trac.edgewall.org/wiki/TracFaq Trac FAQ] -- 常見問答
* TracSupport -- Trac支援
參考資料來源
簡睿隨筆 《科技篇》:歡迎使用 Trac 0.10.4
|
 |
|
|
最近遇到這個問題
Traceback (most recent call last):
File "/usr/lib/python2.3/site-packages/trac/web/main.py", line 406, in dispatch_request
dispatcher.dispatch(req)
File "/usr/lib/python2.3/site-packages/trac/web/main.py", line 206, in dispatch
req.hdf = HDFWrapper(loadpaths=chrome.get_all_templates_dirs())
File "/usr/lib/python2.3/site-packages/trac/web/chrome.py", line 263, in get_all_templates_dirs
dirs += provider.get_templates_dirs()
File "build/bdist.linux-i686/egg/acct_mgr/web_ui.py", line 252, in get_templates_dirs
File "/usr/lib/python2.3/site-packages/setuptools-0.6c3-py2.3.egg/pkg_resources.py", line 799, in resource_filename
return get_provider(package_or_requirement).get_resource_filename(
File "/usr/lib/python2.3/site-packages/setuptools-0.6c3-py2.3.egg/pkg_resources.py", line 1229, in get_resource_filename
return self._extract_resource(manager, zip_path)
File "/usr/lib/python2.3/site-packages/setuptools-0.6c3-py2.3.egg/pkg_resources.py", line 1235, in _extract_resource
last = self._extract_resource(
File "/usr/lib/python2.3/site-packages/setuptools-0.6c3-py2.3.egg/pkg_resources.py", line 1249, in _extract_resource
real_path = manager.get_cache_path(
File "/usr/lib/python2.3/site-packages/setuptools-0.6c3-py2.3.egg/pkg_resources.py", line 880, in get_cache_path
self.extraction_error()
File "/usr/lib/python2.3/site-packages/setuptools-0.6c3-py2.3.egg/pkg_resources.py", line 846, in extraction_error
raise err
ExtractionError: Can't extract file(s) to egg cache
The following error occurred while trying to extract file(s) to the Python egg
cache:
[Errno 13] Permission denied: '/.python-eggs'
The Python egg cache directory is currently set to:
/.python-eggs
Perhaps your account does not have write access to this directory? You can
change the cache directory by setting the PYTHON_EGG_CACHE environment
variable to point to an accessible directory.
參考了下面這個網址, 主要是需要修改PYTHON_EGG_CACHE的設定
http://projects.edgewall.com/trac/wiki/TracPlugins#SettingupthePluginCache
修改/etc/httpd/conf.d/python.conf:
<Location /projects>
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /var/trac/projects
PythonOption TracUriRoot /projects
SetEnv PYTHON_EGG_CACHE /tmp
</Location>
重新啟動Apache即可
|
 |
|
|
問題描述:
如果網站的某些內容要由合作廠商維護,很多人是採透過email附加檔案方式,先儲存附件,再用FTP上傳到主機。好處是這樣子廠商不會看到您其他的網站內容,不過缺點也不少。如果廠商中午前給的檔案在下午時發現需要異動,然後快下班前廠商打電話求你或催你趕快更新,這個過程將會令雙方覺得是在浪費青春。
那麼,何不讓廠商自己FTP檔案上來就好了?在一個行銷活動開始的階段,密集的更新是很需要的,尤其是網頁外包公司的美工作業,常常加班到深夜,總不可能您也在辦公室加班等他把最後完稿的圖案傳給您吧?
要讓廠商自己FTP檔案到主機,您心中的安全警示燈號開始閃了:要避免廠商看到我們的其他檔案才行!廠商之間也不要互相看到對方的檔案,然後我也要可以管理他們上傳的檔案,例如刪除或修改之類的。等等...廠商應該只能FTP登入而不能遠端登入(SSH或Telnet之類)。
解決方案:
1.每個廠商開設一個FTP帳號,各自有一個家目錄,登入時即進入該家目錄。
2.廠商和您屬於同一使用者群組。
3.廠商的家目錄開設在您網站的目錄下。
4.檔案上傳後的權限是664,目錄是775
設定步驟:
假設您的的帳號是site1,網站的根目錄在/home/site1/www下,廠商的帳號為case1, case2...
1.useradd -s /sbin/nologin -g site1 -d /home/site1/www/case1 case1
2.passwd case1
3.chmod 775 /home/site1/www/case1
4.vi /etc/vsftpd/vsftpd.conf
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=002
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd.chroot_list
5.service vsftpd restart
告知廠商他所屬的帳號及密碼,如果有防火牆的話,順便跟他要一下來源IP,並請防火牆管理員開通。
|
 |
|
|
修改post_show.htm, 找到<!-- Message -->, 在 <span class="postbody">${post.text}</span>前面加上判斷是否為第一篇文章及Google AdSense廣告程式碼即可, 修改後的程式碼範例如下:
<!-- Message -->
<td>
<#if post_index == 0>
<div style="float: right; background-image: url(http://adsense-tw.com/adborder-02.gif);height: 300px; width: 350px;padding-top: 38px;
padding-left: 18px;background-repeat: no-repeat;">
<script type="text/javascript"><!--
google_ad_client = "pub-9570897300865282";
google_ad_width = 300;
google_ad_height = 250;
google_ad_format = "300x250_as";
google_ad_type = "text_image";
//2007-08-20: andowson.com首篇文章
google_ad_channel = "8848213845";
google_ui_features = "rc:6";
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div>
</#if>
<span class="postbody">${post.text}</span>
為便於日後版本升級, 我們可以將Googel AdSense的程式碼另存成獨立網頁, 例如templates/default/google_ad_first_post.htm
<#if post_index == 0>
<div style="float: right; background-image: url(http://adsense-tw.com/adborder-02.gif);height: 300px; width: 350px;padding-top: 38px;
padding-left: 18px;background-repeat: no-repeat;">
<script type="text/javascript"><!--
google_ad_client = "pub-9570897300865282";
google_ad_width = 300;
google_ad_height = 250;
google_ad_format = "300x250_as";
google_ad_type = "text_image";
//2007-08-20: andowson.com首篇文章
google_ad_channel = "8848213845";
google_ui_features = "rc:6";
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div>
</#if>
然後再利用 FreeMarker的 #include指令, 將該網頁include到post_show.htm去
><!-- Message -->
<td>
<#include "google_ad_first_post.htm"/>
<span class="postbody">${post.text}</span>
如此類推到其他Google AdSense的廣告上
參考資料:
http://adsense-tw.com/archives/693
|
 |
|
|
JForum內建支援BBCode語法, 且可自由擴充
目前本站支援下列語法:
[b]粗體字[/b]
範例: 粗體字
[i]斜體字[/i]
範例: 斜體字
[u]加底線[/u]
範例: 加底線
[quote]引用的文字, 或有超連結在裡面的程式碼[/quote]
範例1:
請問如何引用文字?
範例2:
[ code ]任意程式碼[ /code ]
 請把code及/code前後空白刪除
[ code=sql ]SQL 語法[ /code ]
 請把code及/code前後空白刪除
範例:
select sysdate from dual;
其它語言只需要將sql換成語言代號即可: 語言代號(alias)請參考 http://code.google.com/p/syntaxhighlighter/wiki/Languages
[ code=java; first-line:84 ]程式碼加上起始行號(自84行開始)[ /code ]
 請把code及/code前後空白刪除
範例:[code=java; first-line:84]
private static void setEngine(CacheEngine engine)
{
cache = engine;
}
[/code]
[list]條列式清單[/list]
範例:
清單1
清單2
[img]貼圖所用之圖片來源網址[/img]
範例:
 您可將圖片上傳到免費空間再來貼圖, 這裡推薦一個免費圖片上傳網站: http://sites.google.com/
 將網址加上超連結
[url]超連結[/url]
範例: http://www.andowson.com
 在文字上加超連結:
[url=超連結]可被超連結的說明文字[/url]
範例: 安道生網站技術練功房
 在圖片上加超連結:
[url=超連結][img]可被超連結的說明圖片[/img][/url]
範例:
[color=red]紅色字[/color]
範例: 紅色字
[size=24]字體大小[/size]
範例: 字體大小
[flash]Flash動畫網址[/flash]
[wmv]Windows Media影片檔網址[/wmv]
[rm]Real Media影片檔網址[/rm]
[youtube]YouTube網址[/youtube]
範例:
[google]關鍵字[/google]
範例: JForum(google)
|
 |
|
|
|
|
 |
|
|
雖然我本身不從事美工作業,但使用影像處理軟體來進行教學文件說明有時還是必要的。最常見的需求就是把螢幕操作畫面抓下來,在一些按鈕或選項上加上紅色框框,將要操作的地方標示出來。
小畫家對於畫紅色框框是很簡單的,只要先選好顏色,再點矩形,然後拉出一個適當的大小就完成了。缺點就是出來的圖解析度太差,不好看。
如果改用Photoshop來畫框框,步驟大致如下:
1.先把前景顏色選取為紅色,
2.然後選擇矩形工具,按住滑鼠左鍵畫一個框框,
3.然後在框框上按滑鼠右鍵選擇筆畫路徑,在跳出來的對話框中選擇鉛筆即可,
4.接著按黑箭頭,再按滑鼠右鍵選擇路徑選取工具,
5.點選剛剛那個框框,將它移開並刪除,就可以看到紅色框框了。
好處是圖比較好看一些,但操作麻煩了點。記在這邊還是預防自己忘記啦!
|
 |
|
|