Drupal 的錯誤

今天學弟跟我說,他修改了一下我們使用drupal架設的網站的選單後,就出現以下的錯誤:

* warning: array_keys() [function.array-keys]: The first argument should be an array in …/includes/menu.inc on line 1224.
* warning: Wrong parameter count for min() in …/includes/menu.inc on line 1224.

除此之外,沒有任何內容出現,不管到任何一頁均是出現找不到此頁面的錯誤。

經過查詢後發現可以透過底下的patch 來避開這個問題。

修改 include/menu.inc 1224行:

$temp_mid = min(array_keys($_menu[‘items’])) – 1;

改成

$temp_mid = is_array($_menu[‘items’]) ? (min(array_keys($_menu[‘items’])) – 1) : -1;

除此之外,建議清空資料庫中所有cache_ 開頭table。 看起來像是Drupal的bug。

ref:http://drupal.org/node/145265

metacoding

今天在 Gamedev.net看到 MetaCoding這個網站

我只能說Metacoding 是個瘋狂的主意阿!!!

MetaCoding可以讓你用網頁寫程式專案,還可幫你編譯,之後再讓你下載編譯好的程式,神吧

目前支援的程式專案如下:

  • ASP.Net
  • C
  • C#
  • C++
  • Fortran
  • HTML
  • Java
  • Javascript
  • PHP
  • VB.NET

這個網站大量使用ext的ui,所以看起來很美觀。不過官網沒有截圖可以看,所以我抓張workspace的圖給大家看。

c++的專案

metacoding.png

不過有幾個缺點是 一個使用者只能有一個專案,無法多人協同撰寫,不支援 ror (XD)。不知道可不可以把openoffice的原始碼丟上去編譯(據說要45分鐘的樣子) 😛 總而言之 這拿來寫寫小東西應該還蠻有趣的。

Fx Queues

FX Queues 這個JQuery 的plugin 看起來不錯,他可以讓你把很多特效Queue起來,然後先進先出這樣 。

雖然很多特效都有callback函式可以指定 但是你一定不會想要這樣:

$(‘div’).hide(‘slow’,function(){$(‘div2’).show(‘fast’,function(){…….})})

你看 連我自己都不知道我自己在寫什麼了….

所以 可以改用這個plugin 😛

Beno Udrih

看著Beno Udrih 在國王打出一片天,真的很替他高興。 想當初四年前他剛被馬刺挑到的時候,是多麼令人興奮。非人大也曾經一度稱讚過這位後衛,馬刺迷甚至一度擔心潛龍總有離水的一天。但是…..,他在第一年的季後賽被電爆(球連半場都帶不過….),之後就逐漸被pop教練有點放棄,被放棄後,我看他自己也有點放棄自己了,加上賽初弄斷手指(他運氣真的很背,剛進NBA那年的夏季聯盟也沒打幾場也就受傷了),才導致被馬刺釋出的下場。

從那年的季後賽後就看得出來pop教練不是很想要練他了,真的很可惜。加上他之後又出一堆包…..(垃圾時間上場還會亂來…=.=)。  這個時候換個環境應該是好事,撇開過去的不愉快,重新出發。

他不是沒有實力,就是不太順遂而已, 祝福他,原本應該是另一個Menu 的 帥哥後衛。

使用boolean可能是邪惡的 ?

剛剛在DZone 看到這一篇:boolean arguments can be evil

DZone是個針對程式設計的digg-like網站, 訂閱了熱門書簽一陣子了,文章的質量還蠻不錯的。不過有個缺點,就是文章來的太多太快…orz,很容易來不及看…

阿 回到正題 , 這篇提到一般在幾種情形下使用boolean參數的情形,並說明為什麼可能是邪惡的(主要是語意不明的問題)。

1) 在一般的函式中使用(多參數)

作者認為在這種情形之下使用boolean是不好的,像是:

File[] withText = finder.find(root, “java", true);

這樣閱讀的人還要回頭去查手冊才知道true是什麼意思。 所以作者建議在這種情形之下可以把函式拆成兩組。

2) 在一般的函式中使用(單一參數)

ok 沒問題,可以這樣用。因為語意的問題已經由函式名稱說明了,像是:

window.setVisible(true);

3)在建構式中使用

一樣不好, 因為語意不明。

乍看之下不錯的建議,可是如果多參數的函式有好幾個boolean 像是: xxx(boolean,boolean,boolean),那函式不就要拆成2*2*2 = 8個 o_O!!!

所以我比較喜歡第一個迴響 的建議:

what about extracting a local variable (or a constant)?
Example:

boolean recursive = true;
boolean notRecursive = false;

File[] withText = finder.find(root, “java", recursive );

這樣應該好多了。

JavaScript Utility

JavaScript Utility 這網站還蠻不錯的,收集了六種工具:

* A JavaScript Tester –用來測試片段的程式碼
* A JavaScript Validator –用來檢查語法上的錯誤
* A JavaScript Formatter –美化語法
* A JavaScript Obfuscator –混碼器
* A JavaScript Compactor  –降低javascript 文件大小
* A JavaScript based compression  –壓縮

看起來還不錯。