電腦程式應用


今天達人講了個 css2js 的網頁,不錯用。大致上,就是原來 CSS 裡面有 ‘-’ 的,例如 ‘a-b’ 的話,要用 javascript 來 呼叫的話就是用 ‘aB’。同理,’a-b-c’ 就是 ‘aBC’。如果是 ‘abc’ 的話,那轉過去就還是 ‘abc’ ,不過也有例外:

  • float → styleFloat

另外就是有些遇到 ‘:’ 的時候,可以比照 ‘-’ 來處理:

  • text-decoration: blink → textDecorationBlink
  • text-decoration: line-through → textDecorationLineThrough
  • text-decoration: none → textDecorationNone
  • text-decoration: overline → textDecorationOverline
  • text-decoration: underline → textDecorationUnderline

在 HTML tag 裡面,雖然 javascript 可以使用 setAttribute() 來更改 tag 中裡面的設定,比方說 <a href=”lala”> 我們可以抓到這個 node 之後(比方說用 getElementsByTagName(’a')),用 node.setAttribute(’value’,'lala’)。這樣就會變成 <a value=”lala” href=”lala”> 不過如果牽涉到 style 的話,不建議這樣使用,因為可能會修改到本來存在的 style,或者在多個函式都會對這個 node 設定 style 的時候,使用 setAttribute(’style’,'its value’) 就會有 race condition 的問題發生(譬如用了 GM_xmlhttpRequest 或是類似的函式),所以比較好的方式還是使用 node.style. 來做設定。

Gmail standard view 預設是在有 javascript 下執行的,但是我總是嫌它太慢。所以都用 basic view。但是用 basic view 有個缺點,本來在 standard view 可以用的 [Select All] 把所有 spam mails 全部選起來的功能就不見了。所以在 basic view 要清 spam mails 就只得一個個點,太麻煩。所以用油猴寫了幾行,讓進入到 spam mail folder 的時候,那些 spam mail 預設都已經打好勾勾了,那我只要按一下 [Delete Forever]就會把那些全部刪掉。

// ==UserScript==
// @name           Checked all spam mail by default
// @namespace      standard
// @include        https://mail.google.com/mail/h/*/?s=m
// ==/UserScript==

var qch=document.getElementsByTagName('input');

for(var i=0;i<qch.length;i++)
  {
  if(qch[i].getAttribute(‘type’)==‘checkbox’)qch[i].setAttribute(‘checked’,);
  }

主要就是利用 form 中 checked 這個屬性(attribute)來做的,只要用 setAttribute() 補上 checked 就 OK 啦!

在 《GreaseMonkey 這玩意》中提到滑鼠事件要改寫成:

window.addEventListener(’mouseevent’,function(event),true);

mouseevent 的話,除了 mouseup,mousedown,dblclick 之外,還可以偵測滑鼠的中鍵滾輪 DOMMouseScroll
(more…)

如果連接的網站有用 .htaccess 設定帳號密碼,則可以用 user:password@URL 的方式通過檢查,如下:

GM_xmlhttpRequest(
  {
  method: 'GET',
  url: encodeURI(‘http://user:password@URL’),
  onload: function(req)
	  {
           // do something
	  }
  });

(more…)

要提 firefox 上這個 plugin: greasemonkey 俗稱「油猴」這個東西,就不能不先提及 javascript 。從開始遇到用 javascript 的網頁開始,一直就不是很喜歡。所以在 No script 這個 firefox plugin 還沒出現之前,瀏覽器的選項裡面一定都是 disable javascript,取消 javascript 的執行。可想而知, java 當然更是要關掉。

網頁設計者在你家養的小鬼: javascript

可是從 Mosaic 、Hotdog 一路以來,到數年前的 firefox 瀏覽器,使用者基本上一直處於被動、消極的狀態。許多網站就是非得要你打開 javascript 或是 java 才能看。我們更不用提說到現在還有購書的網站非得要 IE 才能用(這種網站我就不進去買了)。後來 No script 的出現,讓我們可以對網站過濾,設定哪些網站的 javascript 可以執行,哪些不行。就這個時候的 javascript 對我來說,我很清楚它是一個 client-side 也就是在我們自己電腦上執行的東西,但是它做的事情,卻是從為虎做倀到讓你自廢武功不等。換言之,它就像是網頁設計者用你的電腦資源養來監視你的小鬼,而你就活像隻被寄生的毛蟲一樣,面對寄生無力對抗。
(more…)

假設現在有一堆圖片,比方說叫做 zz001.jpg ~ zz100.jpg,想要做切割,又想要把它們變成黑白圖片(不是灰階)。利用 nconvert 的過程如下:
(more…)

(more…)

因為 ctags 現在預設對 c/c++ 不會對 local variable 做紀錄。如果需要的話:

ctags --c++-kinds=+l --c-kinds=+l

如果結合 vim 的話,可以考慮使用’omnifunc’ 這個指令。它會在 insert 模式下根據 ctags 產生出來的資料,把可能的結果都列出來給你選。因為不是介紹 vim ,所以跳過細節,可以參考 vim 說明,

:h omnifunc

如果不喜歡出來的「窗」的顏色設定,可以考慮以下的 Keyword 進行修改:


Pmenu Popup menu: normal item.
PmenuSel Popup menu: selected item.
PmenuSbar Popup menu: scrollbar.
PmenuThumb Popup menu: Thumb of the scrollbar.

如果想要把檔案裡面的資料讀出來,並且以點的方式來呈現:

plot 'datafile.dat' with dots

這時候可以指定 點 的 大小 和 顏色 ,不過詭異的是 gnuplot 對 dots 的參數指定居然和 line 所使用參數名稱相同,所以如果要指定點顏色(linetype)為黑色,且大小(linewidth)為 3 的話:

plot 'datafile.dat' with dots lw 3 lt -1;

如果對這些參數的數字不確定,可以在 gnuplot 打 test ,就會有張圖可以看,就知道數字代表的顏色和符號是什麼了。

同樣地,也可以指定所畫函數的顏色:

plot sqrt((0.192787)**2-(x-(7.560032))**2)+(8.022352) with lines 3, -sqrt((0.192787)**2-(x-(7.560032))**2)+(8.022352) with lines 3;

這樣就會畫出一個藍色的圓圈。(以windows上的參數設定來看,-1是黑色,1,2,3, 則分別對應 red, green 和 blue,其他的就請用 test 看)不過如果你真的照這個函數畫下去的時候,會發現怎麼畫出來的圖太小或是太大,或是看不出來那是一個圓。你可以先設定 x,y 的範圍。


set xrange [<number>:<number>];
set yrange [<number>:<number>];

比方說我們設定:


set xrange [5:10];
set yrange [7:9];

當 x,y 設定到適當的範圍之後,你可能又發現出來的結果,好像沒有連在一起,而且看起來也不太像個正圓。

如果線段沒有連在一起,只是因為 gnuplot 取樣點數的預設值不夠多,你可以設定多一點,例如:

set samples 10000;

不過這個時候,線段看起來連在一起了,但是卻不像是個正圓。
我們觀察一下座標軸,發現 5-6 的距離看起來居然和 7-8 的距離不一樣!!
這個時候,可以叫 gnuplot 自動調整到一樣,不過這個並不保證一定會成功:

set size ratio -1

好啦,看起來像是正圓了,但還是差強人意。

如果要設定 ratio 的值的話,ratio 的值設定為 yrange/xrange 就可以做到想要的效果。以上面的例子來說,就是:

set size ratio 0.4

(yrange=2)/(xrange=5) = 0.4

看說明文件應該是可以用 rgb 以 “#RRGGBB” 來指定顏色,但是4.0的版本並不支援用 rgb 指定顏色的語法,請用4.2以後的版本,可以用下面的語法測試是否支援:

plot sin(x) lt rgb "#FF00FF"

另外,如果想在一張圖裡面擠多張圖的結果,可以考慮使用 multiplot,可以用help multiplot 來取得說明和範例程式。

最簡單的,假設在 gnuplot 的環境下:
gnuplot> set multiplot
multiplot> plot sin(x)
multiplot> plot cos(x)
multiplot> unset multiplot
就可以看到效果了。

在 windows 上面的 apache 有時候 download 檔案會發生檔案下載完成後結果發現檔案損毀,或下載不完全。可以在 http.conf 加入下面三行:

EnableSendfile off
EnableMMAP off
Win32DisableAcceptEx

mount iso:

mount -o loop [iso_filename] [mount_directory]
example: mount -o loop 123.iso /mnt/iso

根據檔案製造 iso image:
mkisofs –iso-level [num] -o [output_filename.iso] [directory]
num: 如果有長檔名建議使用 4

example: mkisofs –iso-level 4 -o data.iso data/

語法:

while [ expression ]
do
statement
done

expression 和兩個[]括號之間一定要有空白,不然就會發生錯誤

Next Entries »
Pages: 1 2 3 ... 7