想要新增能通過 firewall 的 port 號碼,在 Mandriva 環境常用 drakconf,在 CentOS 環境,了解詳細的設定方式之餘,也可以用 system-config-securitylevel 來直接設定。在 Ubuntu 環境可用 ufw
2011/12/10
2011/12/06
PHP is Object Capable
Of course, PHP is not Object Oriented. Luckily, most software written in PHP does not care much about objects, I guess.
2011/11/26
rsync + ssh on different port
$ cat .ssh/config Host another.site.IP Port 8022 User marr Hostname another.site.com $ rsync -av --progress --inplace --rsh=ssh another.site.com:my_folder/* my_backup # and this is for normal cases: $ rsync -av -e ssh myid@mysite.com:/my_folder/my_file .
2011/11/09
Apache Plone Maintenance
檢查已啟用的 module 清單:
$ ls /etc/apache2/mods-enabled/ alias.conf authz_host.load deflate.conf mime.load setenvif.load alias.load authz_user.load deflate.load negotiation.conf status.conf auth_basic.load autoindex.conf dir.conf negotiation.load status.load authn_file.load autoindex.load dir.load reqtimeout.conf authz_default.load cgid.conf env.load reqtimeout.load authz_groupfile.load cgid.load mime.conf setenvif.conf
確認啟用 proxy 不然會遇到錯誤: Invalid command 'ProxyPass', perhaps misspelled or defined by a module not inclu ded in the server configuration
$ sudo a2enmod proxy $ sudo a2enmod proxy_http $ sudo a2enmod rewrite $ sudo vim /etc/apache2/sites-available/www.mysite.com $ sudo a2ensite www.mysite.com $ sudo /etc/init.d/apache2 restart
設定內容範例如下:
<VirtualHost *:80> ServerName www.mysite.com ErrorLog /var/log/apache2/mysite_error.log CustomLog /var/log/apache2/mysite_access.log combined LogLevel warn <IfModule mod_rewrite.c> RewriteEngine On RewriteLog /var/log/apache2/mysite_rewrite.log RewriteLogLevel 5 RewriteRule ^($|/.*) http://127.0.0.1:6543/VirtualHostBase/http/www.mysite.com:80/mysite/VirtualHostRoot$1 [L,P] </IfModule> ProxyPass / http://localhost:6543/mysite ProxyPassReverse / http://localhost:6543/mysite <Proxy *> Order deny,allow Allow from all </Proxy> </VirtualHost>
2011/10/30
CMS Comparison
This is a historical document by marr, Open Source Software Foundry first published on 2006/12/15, last edited on 2008/06/11
我們以 Packt Open Source CMS Award 2006 年的前三名,做為比較對象,並參考 Gnome.Org CMS requirements 的技術要求,整理出合適的比較項目,包括有:核心開發隊員的規模、擴充模組的集散處、開發工具、測試工具、多國語文支援等。
Open Source CMS Comparison Matrix
Joomla | Drupal | Plone | |
---|---|---|---|
Language | PHP 4.2 for 1.0.3 PHP 4.3 for 1.5 | PHP 4 for 4.5 and earlier PHP 5 for4.6 and 4.7 | Python 2.3.5 for 2.1 Python 2.4.2 for 2.5 |
Core Team Members | ~20 | ~15 | ~42 |
Extension | Extensions Directory | Modules Directory | Products Directory |
IDE Tools | PHPelipse | Module Builder Zend Studio * |
Eclipse (PyDev) WingIDE * |
Testing Tools | TestComplete * Web Vulnerability Scanner * FIT for PHP |
Selenium module for PHP | unittest module in Python PloneSelenium |
I18N | i18n Package | multi-langual modules | LinguaPlone |
Local Group | Joomla Taiwan | Drupal Taiwan | Python Taiwan |
OpenID Support | on the way | Customer Module v1.1.1 | scheduled in 3.0 alpha |
簡言之,目前 Joomla 處於將 Unit Testing 或 Selenium 服務納入架構的過渡階段,而 Drupal 已有 Selenium 的模組。另外,以 Python 為基礎的 Plone 可以搭配 UML 工具快速產生架構圖及原始碼。
- * 符號代表該軟體為版權專有的商業產品。
- 註: Joomla 官方選用的 TestComplete 及 Web Vulnerability Scanner 分別是 AutomatedQA 及 Acunetix 公司的商業產品。
2011/10/17
Ubuntu Locale
sudo apt-get install update-locale sudo apt-get install localization-config sudo update-locale LANG=en_US.UTF-8完成設定後的內容存在 /etc/default/locale 檔案裡。
Ubuntu Mounts Windows
首先要設定 Windows 檔案分享,成功的話,可以在 Ubuntu Network - Windows network 看到分享出來的目錄,接著再執行 mount 指令,主要步驟如下:
sudo apt-get install smbfs sudo mkdir /media/sharename sudo vi /etc/nsswitch.conf sudo mount -t cifs //netbiosname/sharename /media/sharename -o username=winusername,password=winpassword,iocharset=utf8,file_mode=0777,dir_mode=0777當然,還可以把設定值寫進 /etc/fstab 裡。
2011/08/15
2011/07/19
Online FlowChart
版本 beta 2.4-r23 在匯出 PNG PDF 時,圖案會移位,只好手動抓圖。
2011/07/08
ffmpeg + libmp3lame
sudo apt-get install libavcodec-extra-52
ffmpeg -i myfile.mp4 -acodec libmp3lame -ab 192k myfile.mp3
2011/06/22
User Experience in an OpenSource Fashion
有反例嗎? Firefox 和 Gnome 似乎證實沒那麼糟。
另外,網頁或 thin client UX 的進展速度較快,甚至進而影響 fat client 的設計。
終究 UX 也可以用 Open Source 方式來搞嗎? 我還不知道答案,但看到 Art will stay Art. 這句時,我笑了。
random read: CodePlex example by Microsoft
2011/06/11
SWFTools
yum --nogpgcheck install在 Ubuntu 是把 deb http://free.nchc.org.tw/ubuntu/ hardy main universe 加進 /etc/apt/sources.list 這樣較簡單。
swftools-0.8.1-1.el5.rf.i386.rpm
libmp3lame0-3.98.4-22.el5.i386.rpm
t1lib-5.1.2-5.i386.rpm
實際上傳 PDF 時,日誌檔裡會記錄
INFO wc.pageturner Running command /usr/bin/pdf2swf /tmp/tmp_oIQQW -o /tmp/tmpODfpYG -T 9 -f -t -G
------
INFO wc.pageturner Finished Running Command /usr/bin/pdf2swf /tmp/tmp_oIQQW -o /tmp/tmpODfpYG -T 9 -f -t -G
不過,根據中文字型的測試結果,CentOS 5.4 的 freetype 2.2.1 無法處理 PDF 中文字型,改用 2.3.12 版本能改善。
2011/05/06
Selenium Basic
self.selenium = selenium(
"localhost", 4444, "*chrome", "http://google.com/")
想把上述程式碼改在雲端執行,可藉助 OnDemand 服務,並把內容修改成下列這樣:
self.selenium = selenium(
'http://ondemand.saucelabs.com',
80,
"""{
"username": "USERNAME",
"access-key": "ACCESS_KEY",
"os": "Windows 2003",
"browser": "firefox",
"browser-version": "3.",
"name": "This is an example test"
}""",
'http://google.com')
這樣一來,就不必自己跑 Selenium RC 囉。
2011/05/04
plone.dexterity zh_TW translation
# Copyright (C) 2010 Plone foundation
# This file is distributed under the same license as the plone.dexterity
# project.
# marr <marr.tw@gmail.com>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: plone.dexterity 1.0b3\n"
"Report-Msgid-Bugs-To: dexterity-development@googlegroups.com\n"
"POT-Creation-Date: 2010-07-09 15:38+0200\n"
"PO-Revision-Date: 2011-05-04 10:10+0800\n"
"Last-Translator: marr <marr.tw@gmail.com>\n"
"Language-Team: Plone i18n <plone-i18n@lists.sourceforge.net>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.5\n"
#: plone/dexterity/browser/add.py:82
#: plone/dexterity/browser/edit.py:15
msgid "Save"
msgstr "儲存"
#: plone/dexterity/browser/add.py:92
msgid "Item created"
msgstr "項目已新增"
#: plone/dexterity/browser/add.py:94
#: plone/dexterity/browser/edit.py:25
msgid "Cancel"
msgstr "取消"
#: plone/dexterity/browser/add.py:96
msgid "Add New Item operation cancelled"
msgstr "新增項目已取消"
#: plone/dexterity/browser/add.py:112
msgid "Add ${name}"
msgstr "新增 ${name}"
#: plone/dexterity/browser/base.py:14
msgid "Content"
msgstr "內容"
#: plone/dexterity/browser/edit.py:22
msgid "Changes saved"
msgstr "更改已儲存"
#: plone/dexterity/browser/edit.py:27
msgid "Edit cancelled"
msgstr "編輯已取消"
#: plone/dexterity/browser/edit.py:48
msgid "Edit ${name}"
msgstr "編輯 ${name}"
2011/05/03
2011/03/25
Quotes of Erik Naggum
"一個程式設計師讀過的程式碼, 應該是他寫過的程式的10倍以上, 才算夠資格的好的程式設計師."
the greatest benefit of free software is, in my mind, not the availability of free software _products_, but the availability of _source code_ for other programmers to read and use, like sheet music, plays, books, etc, are like source code for _their_ respective kinds of production.
在我的觀念裡, 自由軟體最大的好處, 不是供應自由軟體的產品, 而是對其它的程式師供應了原始碼, 讓他們得以閱讀與使用, 就像樂譜, 戲劇, 書等在它們相對映的領域的功能一樣.
free software, to me, means the ability of programmers to form a community within which they can speak the same language, which I hope will be the language of _programming_, not each of the many dialects we use.
自由軟體對我而言, 就是可以讓程式設計師們組個團體, 在這個團體內我們可以用相同的語言溝通, 這裡我說的語言是程式設計本身, 而不是那些我們使用的方言 (譯:指不同的程式語言)
2011/03/23
Sheng Bao: Ask me again in ten years too!
Quotes of the day:
* 求名當求萬世名,計利當計天下利。
* 軟體是一種奇特的商品,其需要大量的測試人員,這就是 "enough eyeball" 的作用,而 GNU 正做到了這一點。
* 美國人用腦子裡面想出來的東西賺錢,日本人用手裡面作出來的東西賺錢,更窮的國家只能用地裡長出來的東西賺錢。
* 知道何時該合上書本。
* Classes 是否會 dull you mind 取決於你是如何面對課堂。
* Plato is dear to me, but dearer still is truth.
* Science is what we understand well enough to explain to a computer. Art is everything else we do.
* 36歲拿了塗靈獎之後 Knuth 突發奇想,他揚言自己要用20年時間寫一本同 Newton 的 The Mathematical Principle of Natural Philosophy 一樣著名的書。
2011/03/14
Install Ubuntu with ISO
sudo vi /etc/grub.d/40_custom再執行 sudo update-grub2 讓設定值生效。
menuentry "Ubuntu Live 11.04 64bit" {
loopback loop /boot/ubuntu-11.04-desktop-i386.iso
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/boot/ubuntu-11.04-desktop-i386.iso noeject noprompt --
initrd (loop)/casper/initrd.lz
}
以 LiveCD 開機後,在點選桌面的安裝之前,必須先卸除 isodevice 才行,指令要加 -l 參數:sudo umount -l /isodevice。另外 Ubuntu Rescue Remix 是值得參考的工具。 昇級的話,許多檔案需要備份回復,例如 Host Key。
2011/01/21
Discussion Log
http://blog.twpug.org/86
比較精彩的是當時的 comment log,原網站已不存在,也沒找到 google 備份,貼在這裡當記錄:
9 Comments:
Blogger autrijus said...
"ps. 該網站發表評論的系統不會還要經過審核吧,這樣好像不太自由...;希望
Movable Type 發表評論應該是自動登的, 你可能需要強制重新載入頁面 (shift
所以大概是多慮了.
11:33 上午
Blogger autrijus said...
"我問的是為什麼OpenFoundry要自行開發專案維護系統而不是像日本一樣跟隨著
系統本地化"
sf.net 是私有軟體系統, 要收授權費, 並且不能重新散播,
所以祗能說是 "VA 的腳步", 不是 "世界的腳步".
當時似乎也有考慮過直接用 GForge, 將 OpenFoundry 想要的功能直接用 PHP
不過好像沒有人接下來做. 如果你願意, 或找得到人做這個, 我個人倒是蠻有興
"因為這樣子一來就可以有更多的人力放在自由軟體的推廣上"
即使是付授權費建置了 sourceforge.net.tw, 也要花相等的
人力做後續建置和維護... 這似乎是不太省得下來的人力, 也
不容易直接 "調配" 去做推廣呢. :-)
/Autrijus/
11:44 上午
Blogger kiang said...
Movable Type 發表評論應該是自動登的, 你可能需要強制重新載入頁面 (shift
所以大概是多慮了.
---
恩,剛發表完重新讀取頁面還是看不到,可能是這個原因吧,sorry
---
sf.net 是私有軟體系統, 要收授權費, 並且不能重新散播,所以祗能說是 "VA
---
恩,可能我對於它的授權基礎沒有看的很仔細吧~^^
---
當時似乎也有考慮過直接用 GForge, 將 OpenFoundry 想要的功能直接用 PHP
不過好像沒有人接下來做. 如果你願意, 或找得到人做這個, 我個人倒是蠻有興
---
這個網站: http://forge.novell.com 也有著類似的系統,只是不知道跟 GFor
比起來哪個完整;OpenFoundry需要什麼樣的特殊功能?必要性真的有那麼高嗎
---
即使是付授權費建置了 sourceforge.net.tw, 也要花相等的人力做後續建置和
這似乎是不太省得下來的人力, 也不容易直接 "調配" 去做推廣呢. :-)
---
但是系統可以及早進入穩定階段,許多朋友也不需要重複去熟悉新的系統;與其
使用一個經過歷鍊的系統將它本地化(這個應該沒那麼難吧?),然後將焦點放在
換個說法,維護的人好找,開發人員數量很少(特別是台灣),調配的方向應該會
---
12:09 下午
Blogger autrijus said...
"這個網站: http://forge.novell.com 也有著類似的系統,只是不知道跟 GFo
比起來哪個完整;OpenFoundry需要什麼樣的特殊功能?必要性真的有那麼高嗎
NovellForge 的程式碼直到去年年底纔公開, 而 OpenFoundry 當時已經進行一
並且也沒有第三方架起 NovellForge 的紀錄.
OpenFoundry 需要的功能, 不過就是合理的中文界面, Wiki,
以及最近的授權精靈等而已. GForge 當然也可以加上這些功能,
問題是有沒有人去做...
"不如使用一個經過歷鍊的系統將它本地化(這個應該沒那麼難吧?),然後將焦
問題是根本就沒有經過歷練的自由軟體系統可以用... :-/
/Autrijus/
7:24 上午
Blogger candyz said...
1.如果有可用且實用又沒有授權問題的系統時,另外又有人願意去維護,那為何不
2.我想 autrijus 要表達的,就是,開發 OpenFoundry
時,並沒有合適的系統可以拿來用,否則,也不必重覆造輪子了
3.而現在,既然 OpenFoundry
都已經弄好了,再來吵這些我覺得沒什麼意義,還不如把心思放在開發中文軟體上
必花太多時間在研究這個系統上,反而能把時間放在開發上,這樣比較重要,因此,
該做的,反而是應該要盡量把介面做得更簡單更容易上手,且說明文件能更詳細一
上了
8:16 上午
Blogger kiang said...
http://dev.xoops.org/
這是novell forge的第三方安裝者,透過GOOGLE搜尋關鍵字"inurl:modules/xfm
我想無論是使用GFORGE或是NOVELL
FORGE,現階段而言我覺得都比繼續開發OpenFoundry要好,因為可以借助其他國
oundry目前只有台灣人在用...
獨立維護一個系統會需要比較多的人力,OpenFoundry不是不好,如果只是單純
量,我還是強烈建議停止OpenFoundry的開發,將人力投入到其他系統的引進與
11:55 上午
Blogger autrijus said...
"http://dev.xoops.org/
這是novell
forge的第三方安裝者,透過GOOGLE搜尋關鍵字"inurl:modules/xfmod"應該可以
抱歉, 是我錯了. 網頁上沒有出現 NovellForge 字樣,
所以我無從找起...
"我想無論是使用GFORGE或是NOVELL
FORGE,現階段而言我覺得都比繼續開發OpenFoundry要好,因為可以借助其他國
oundry目前只有台灣人在用..."
這倒不是真的. OpenFoundry 的各組成元件: RT, Kwiki,
Sympa, SVK 等等, 都有不少國際上的使用者和開發者, 而
OpenFoundry 的 UI 祗是將它們整合呈現的界面而已, 所以
我們也有借助其他國家的開發者. 事實上, 我正寄住在其中一位
美國開發者的家裡, 和當地的三、四個人一起設計下一代的
OpenFoundry 界面與流程引擎.
至於實際部署 OpenFoundry 的人士, 則是限於奇怪的法令
問題, 直到這個月我們纔能釋出成果到 CPAN 上, 所以之前
想裝的人也無從裝起. 不過, 透過在台北、德國、美國的各場
會議, 已經有不少人提出興趣, 想要安裝看看. 所以現在預言
說這祗是台灣本地的專案, 似乎還早了點.
"獨立維護一個系統會需要比較多的人力,OpenFoundry不是不好,如果只是單純
考量,我還是強烈建議停止OpenFoundry的開發,將人力投入到其他系統的引進
其實我蠻同意這個看法的, 這也就是為什麼我儘量不寫程式,
而是整合既有的系統成一個 OpenFoundry 界面的原因.
不過, 如果你願意投入 NovellForge 中文化、文件撰寫和
定製開發, 或是找到其他願意投入的人力, 那也可能是更好的
做法 -- 請將你的計劃寫到 contact@openfoundry.org
或是寄 email 給我討論, 都很歡迎.
要是沒有願意做事的人, 根本不用談 "投入人力" 這回事.
把沒有意願的人派任去跟國際專案社群合作, 成功的機會
更是渺茫.
Thanks,
/Autrijus/
10:47 下午
Blogger jihuang said...
http://www.104.com.tw/cfdocs/2000/job2000/JOB.cfm?jobsource=104_
hp&jobnum=1257316&invoice=4142327000
jihuang
11:50 下午
Blogger kiang said...
謝謝jihuang提供的資訊,我下個月才要換新工作呢~^^
新工作: http://www.ossii.com.tw
我所提到的部份也很有可能是未來的工作項目之一,但我不會希望採用OpenFoun
望跟多些國家的運作模式達到一致,有利於未來資訊的交流。
我目前下比較多功夫的地方是egroupware的中文化,也有其他中文化的作品可以
http://www.osobiz.com/xoops/ );進一步的計畫就先看看新的飯碗能不能抱緊
12:26 上午
2011/01/14
Embedded Playing Windows Media
<div class="hvlog">
<a href="http://mysite.com/media/niceday.wmv"
rel="enclosure" title="My Movie!"
class="hVlogTarget" type="video/x-ms-wmv"
onclick="vPIPPlay(this, 'width=320, height=260, \
autostart=true, controller=true, \
name=MyMovie, revert=true'); return false;">
<img src="http://mysite.com/media/myMovie.jpg" />
</a>
</div>