2015年11月27日 星期五

[personal note] jshint error

1. 於迴圈中創立function:
https://jslinterrors.com/dont-make-functions-within-a-loop

  • 功能可能work,也可能會不如預期
  • 狀況: 比如迴圈中的function,參考到共用的變數
for (i = 0; i < elems.length; i++) {
elems[i].addEventListener("click", function () {alert(i);});
}
    • 若elems長度為5, 預期click第1個elems會跳出0(i start from 0),然而實際上每個按鈕跳出來都會是5
    • 由於迴圈跑完i會變成5,i這個共用的元件被每個function所參考,所以結果是5
  • Solution: 利用javascript中,function( argument )之argument皆為call by value的特性
    直接把想要的value傳進function,讓每一個function都保存當時的i在自己的argument中




a

2015年5月8日 星期五

[OpenSuSE] YaST2 Control Center is not running as root.\nYou can only see modules that do not require root privileges.

[狀況]
最近Server一直出問題,常常網路服務會斷線

ssh連進去用yast才發現大條了,跳出以下視窗,重開機也無效。

"「YaST2 控制中心」不是以 root 權限執行。\n您只會看到不需要 root 權限的模組。"


一度懷疑難道被駭了XD,

於是打了whoami

我的確是root..

然後上網爬了文爬了這篇,他的問題是記憶體不足,
http://www.linuxintro.org/wiki/YaST2_Control_Center_is_not_running_as_root

於是我也學他跑了
strace -ffs 100 yast 2>file
結果竟無法導出至file


只好用
strace -ffs 100 yast 2>&1|less
導進less來看,太多系統的call我看不懂,於是放棄

繼續GOOGLE到github上有放code
https://github.com/yast/yast-yast2/blob/master/library/desktop/src/clients/menu.rb

def OpenMenu # check if user is root (#246015)
output = Convert.to_map(
SCR.Execute(path(".target.bash_output"), "/usr/bin/id --user")
)
@root = Ops.get_string(output, "stdout", "") == "0\n"
...
# show popup when running as non-root
if !@root
Popup.Notify(
_(
"YaST2 Control Center is not running as root.\nYou can only see modules that do not require root privileges."
)
)
end
nil
end
執行/usr/bin/id --user確認身分是否為ID=0,然後判斷完丟給root變數(True/False)

發現又是個重導(redirection)

想到是否是"導出"的問題,

於是先df看了硬碟使用狀況

尼馬原來是硬碟滿了

把硬碟清出空間以後就沒事了,害我數度以為要重灌了= =

給網路上諸位苦主參考,這個警示訊息真得會嚇死人阿..,以為被駭




----

提供個指令,能查找硬碟內某資料夾最大的幾個檔案
du -sh ./*|sort -rn|head