彙整

Archive for the ‘Open Source’ Category

drupal_install_template

五月 16, 2009 CrazyLion 留言

之前提過之後架站都會使用drupal 來做,不過每開一個新project 都得重新下載一次module,很煩。通常的作法是自己管理一份drupal, 不過嘛…. 這樣還是要處理model 更新的問題。 所以我就用ruby寫了一個自動下載安裝的腳本,然後又取了個爛名字  =.=  drupal_install_template 。 其實這些問題都很簡單,可是似乎都沒官方解法@@ 像是rails 也是到2.3 才有template的功能。

*nix 平台適用(mac也可,因為它混用了wget & tar & mv 指令) 使用方法很簡單,到 list.yml 裡面依次把 model name填上,然後執行它就可以了  :P

這腳本授權為WTFPL ,意思就是隨便你拿去幹啥XD

其實還有一些想法,像是自動補上中文語系檔,或是model可以指定版本….etc 。不過隨著時間慢慢來補上吧  :P

Categories: Open Source, php, programming

把書籍加入anobii中

一月 3, 2009 CrazyLion 4 迴響

一直以來如果在網路上看到人家推薦好書,想要加到anobii的預購清單中就很麻煩。步驟通常如下:

  1. 通常提供的是書名(如果是書名我都會先去books.com.tw找到isbn再下一步) or books.com.tw 的書籍頁面
  2. 複製書名 or isbn
  3. 開啟anobii的頁面,貼上搜尋字串搜尋。
  4. 搜尋結果出現了,終於可以選擇加入書櫃or 預購清單了

很是麻煩。前天,我終於忍耐到極限了。上網找找看有沒有提供啥extension …. 結果沒有 o_O,也可能是我搜尋能力有問題。

不過反正我寫好了兩個東西。現在你就可以:

  1. 反白關鍵字 or isbn
  2. 按一下,直奔anobii搜尋結果。在那個頁面你就可以輕鬆地選擇把此書加入書櫃or 預購書單了

對我來說真是太棒了 :D

方法一: 把下列連結  searching in anobii 拖到網址列。然後你只要反白文字,點它一下,就會到anobii的搜尋結果頁面了(firefox only,safari 之後加好了,ie 去角落蹲著)。

p.s wordpress.com 會過濾js… 所以請拖到網址列後,在searching in anobii 上面點選右鍵,選擇屬性,然後把下面那一行(一定要一行喔 不能多行!!! 請注意)貼上去取代即可。

javascript:(function(){var text= document.getSelection();if(text!=”") location.href=”http://www.anobii.com/search/?s=1&keyword=“+text })()

方法二:安裝套件。然後反白文字,按右鍵,選擇searching in anobii ,就會連到anobii的搜尋結果頁面了。

——

題外話,一開始只有想到法二,搞了一陣子 T_T ,睡一覺起來才發現可以用法一阿!!!!,果然程式設計師要多睡覺。不過現在寫套件跟2.x那時候簡單多了,現在有基本的架構產生器,下載下來,依照位置放好,就可以開始開發了!! 不過要注意一下,裡面的install rdf 是舊的格式,它的minVersion and max Version 是用attr 的方式,可是新的設定檔都是element ,這邊改一下應該就沒問題了。 等考完試再來把這個套件全部改好,放到 firefox的官方網站上。

p.s 其中取得使用者選取區域的程式碼複製自autocopy這個套件,非常感謝。  開放原始碼真好哇~~~~

Categories: Open Source, programming

ext 的授權

四月 28, 2008 CrazyLion 留言

最近這件事好像鬧的蠻大的 @@

簡單的說,就是ext原本的授權很奇怪。說是open source 的授權(LGPL),但是卻不允許使用者分枝出去(它是以yui的分枝起家)或是合在其他framework中(授權頁面庫存檔)。

John resig 說得很狠:

ExtJS is a giant licensing fail pile masquerading as an open source project in a thinly-veiled attempt to force more people to buy their corporate licenses. Unless you’re willing to shell out the big money, stay far – far – away.

http://www.juixe.com/techknow/index.php/2008/04/27/how-to-kill-a-community/ 這篇收集了很多相關的文章。

不過事情應該平息下來吧,現在去看授權頁面,已經改成GPL 3.0 了,也拿掉之前的限制了。

[drupal] insert view and Viewfield

四月 2, 2008 CrazyLion 留言

insert view  和 viewfield 是drupal 中兩個可以把別的view 插入到當前node 的模組。不過insert view 有點問題,他會自己cache 一份 render 後的結果,這會導致當view 裡頭的node 更新後,他會很慢很慢才更新(學弟改了node的資料後,半小時後還沒更新o_O!!!)。

這應該算是地雷 :P   所以有類似需求的話,可以改用 viewfield,他一樣可以提供類似的功能,不過這樣就只能插入一個view了。

Categories: Open Source, php 標籤:, ,

在 ubuntu 上安裝 dvtm

三月 22, 2008 CrazyLion 留言

dvtm 是一套tty下的視窗管理系統,我這幾天試用了一下,發現相當不錯(比screen 所提供的分割視窗好多了,可以跟screen 一起使用喔!!!!!!)。dvtm提供了多種layout來切開視窗(請參閱官網的layout 一區)。詳情可以看一下官網的範例。 由於本人還不會包deb or rpm 所以只能獨善其身 T_T …

底下是安裝方式:

*測試環境 ubuntu 6.06,7.04,7.10 (組織裡的是rhel…從rh9.0~rhel 5.0 都有@@… 過幾天再測測看)

*預先安裝的套件有:librote-dev,libncurses5-dev(如果你的系統語系是utf-8的話 則是 libncursesw5-dev)

  1. 取得程式碼:透過git clone git://repo.or.cz/dvtm.git 或是到 http://repo.or.cz/w/dvtm.git 上下載最新的snapshot
  2. 修改config.mk 符合系統的配置(include lib path 之類的..我是沒動啦)
  3. 修改config.h 裡的設定來配合你的使用習慣 (是的,一旦你想要更換設定就要重新編譯 XD)
  4. make (utf8 請使用 make unicode) && sudo make install

這樣就裝好了 之後可以鍵入 dvtm 2 >log 來啟動 dvtm

底下是一些常用到的功能(預設值):

  • ctrl+g c :開新視窗
  • ctrl+g x 關閉當前視窗
  • ctrl+g j 下一個視窗(可以用滑鼠點一下使其處於focus狀態)
  • ctrl+g (1…n) 直接跳到視窗
  • ctrl+g space 循序切換layout
  • crtl+g enter把目前的視窗一到最大視窗

滑鼠控制:

  • 左鍵單點 : 選擇視窗
  • 左鍵連點兩下 : 最大化/還原
  • 右鍵 =>折疊視窗

詳細的用法請參閱 man 或是打開config.h 來看

相當好用阿!!!! 在utf-8的環境下(putty )連進去 分隔線會變成 qqqqq & xxxxxx 唔 還不知道怎麼解決,我用mac的ssh client 連就沒問題@@

 update : 

rhel 3沒問題 我想到5也沒啥問題  安裝更簡單  make unicode && make install -> done  但是 似乎無法裝在64-bit 的os 上,正在想辦法解決 @@

Categories: Open Source, liunx 標籤:,

[drupal] 解決views_tabs 排序不正常的問題

二月 18, 2008 CrazyLion 留言

views_tabs 是一個drupal 的擴充套件。它可以讓view中的元素以tab的方式呈現出來。不過它有一個問題:

總是不願意依照view中的設定來好好排序。 怎麼勸都勸不聽。

這幾天追了一下,發現主要的原因應該是它所使用到的jstool tab模組中的:

function tabs_process_tabset($element)

裡面又對元素呼叫了一次 uasort($element, “_element_sort”) ; (77行附近)

而drupal中的_element_sort函式主要會根據每個$element的成員”#weight” (如果沒設定就取用#title成員)來排序。

views_tabs 在產生元素陣列的時候沒把這個成員給放進去(不過這要算誰的錯呢?)。所以解決方法很簡單,就是我們自己加進去。

底下是最簡單的方式:

在 function theme_views_tabs_display($view, $nodes, $type, $teasers = FALSE, $links = TRUE)函式中的

foreach ($nodes as $node) {

改成

$i =0;
foreach ($nodes as $node) {

111 $tabset[$title] = array(
112 '#type' => 'tabpage',
113 '#content' => $content,
114 '#title' => $title,
115 );

改成

111 $tabset[$title] = array(
112 '#type' => 'tabpage',
113 '#content' => $content,
114 '#title' => $title,
115 '#weight' =>$index,
116 );
117 $index++;

即可。

Categories: Open Source, php 標籤:, , ,

大陸的開源雜誌

二月 17, 2008 CrazyLion 留言

開源雜誌, 還蠻好看的耶。內容很紮實呢!足足有78頁這麼多!!!

Categories: Open Source

專門針對”程式”撰寫的所見即所得編輯器

一月 2, 2008 CrazyLion 留言

今天看到這套:Edit area

特色跟一般的所見即所得編輯器不 一樣(ex:htmlarea,tinymce), 他是專門針對程式內容而寫的。千言萬語抵不過圖片啦!!!

看起來實在很不賴

Categories: Open Source, web-Development 標籤:

使用Drupal 有感 I

十二月 29, 2007 CrazyLion 留言

最近在幫我老師系上架新的網站。自從前一陣子淺嘗過Drupal後,就決定不再自己造輪子了。畢竟自己從頭打造登入系統、文章發表系統、還要兼顧彈性實在太累了。這次架站的經驗讓我有很深的體會(此外,你面對的客戶是好幾個人,每個人對於網頁都有自己的看法)。

其實我覺得中小學/實驗室/會更新的老師個人頁面 都應該拿一套CMS/blog/wiki 系統來架設即可。除了好維護,好使用之外,這些等級的單位應該要注重內容多於版面才是。此外,背後還有一大群開源碼的程式設計師持續地在幫你完善這個系統,自己搞一套導致離開後難以接手抑或是花錢發包給廠商去寫(不是修改),這是何苦來哉?

這個方案其實是拿自由度和XXX去換維護性。一個網站做的再漂亮,如果遲遲都沒有新的內容,程式一直都是破破爛爛的狀態,能吸引多久人? 何不專心在內容(況且這些版面都不差阿)。但是採用這個方案,我想有幾點值得注意,並且要客戶們均有所體認。

1)選擇適當的系統

開源碼的系統其實就已經夠好了,只要花時間下去,真的無須再去額外購買。選擇的時候,可以選擇前幾大熱門系統中較為順手的來架設。如果你只想拿來當公佈欄,那麼可以選擇wordpress 或是其他任何一套”單人”使用的部落格系統。如果要拿來當個人簡介,那麼可以考慮無須資料庫的Dokuwiki,或是使用tiddlywiki 再將其上傳到網頁上(最簡單的網頁伺服器即可)。如果想架設多人部落格,可以選用中文支援度完整的lifetype(wordpressmu是進階者才適合阿XD),如果熟Java的話,roller也是個很好的選擇,只是佈景主題你就得….忍耐一下。如果架構比較大的話,就只好採用CMS系統啦,像是Drupal or joomla。

2)採取適當的策略

這次幫我老師系上架站採取的策略是-設定為上,修改程式碼為下。畢竟老師所處的系是設計學院,只要改動程式對接手的學生來說都是種負擔(更不用說要教會他們登入linux 使用vim修改程式碼,這是不可能的),升級的時候也得額外注意很多事項。隔行如隔山,你叫我用photoshop畫圖,我肯定也是畫不出什麼鳥來。因此,新功能的增修我都是以找外掛模組為主,除非極其必要不然我都是請使用者去適應這個系統(像是中文檔名會有問題,那就請他們改成英文檔名之後再上傳),而不是大量修改程式來符合他們的需求。但若是處於有人手的環境中,就無須有此顧慮啦~~~

3)容忍不自由的版型

對很多老師來說,他們心中的系/實驗室/中小學網站 都只是個公告的地方,因此版面就真的極其重要(不過也有一點都不注重的老師啦XD)。而且他們也真的會把系統當成純html看,因此建議出來的版型有時候不改成程式根本作不到阿~~~。如果老師們真的認為網站只能當公佈欄的話,那我建議老師們去看一下南加大的互動媒體系的系網站。看看他們的系網站是如何的開放、如何的不一樣(不過這系統是他們特製的o_O!!!,而且近月來有較少分享的趨勢XD)。此外為了輕易達到分享/好維護的目的,那麼就必須接受這套工具帶來的不便。這次我還限制負責版面的學弟只能修改CSS。這樣的壞處是,自由度挺低的,很多地方都必須將就。但是好處就是,日後升級的時候只要解決模組的問題即可,不用去管模板裡的api有無更動(除非你挑的模板剛好作者不維護了)。

有些實驗室的網站真的做的….很….。其實只要拿一套CMS來套,順便挑個順眼的版型,再把一些配色跟banner換掉,馬上就改頭換面啦!!!

以上是我這次的感想阿~~~,等網站上線後,再來分享一下我用了哪些Drupal 模組。

又一款php framework-Orchid

十二月 27, 2007 CrazyLion 留言

這套看起來不錯,集成式的架構的確擁有很多優勢存在,因為大部份的人都懶嘛  ….。

作者的網站上列出來目前集成的特色有:

1. Caching Engine with support of Memcache, MySQL and SQLite as Storage
2. MVC
3. RoR like Layout and segregated template components.
4. Partial Caching in Template
5. Very efficient object loading and dispatching
6. DAL for MySQL (Both MySQL and MySQLi), SQLite, PostgreSQL and MSSQL
7. Support for PDO
8. Builtin Unit Testing Library where you can write unit tests inside the controller without extra pain.
9. Internationalization using Language files
10. Session Manager (Regular and DB Based)
11. Bundled Google Map Library
12. Bundled Google Chart Library
13. Bundled JSON Library
14. Bundled Prototype, jQuery, Scriptaculous and SWFObject Scripts with on-demand gzip support
15. On demand gzipping for javascripts
16. Active Record
17. Excellent Benchmarking and Profiling support which you can use to profile your application
18. CSS based Button Manager (What is this???? — checkout)
19. AJAX Library

根據官網上最新的文章,還預計要整合:

20.blueprint CSS (css 的framework 還不錯用)
21.open ID

實在是不錯。

Categories: Open Source, php