分類
程式技術

如何利用CSS不要出現SCROLLBAR

今天在弄一個小網頁, 有個比較特殊的需求是不要出現在 browser 右邊的 scrollbar, 而且是 disabled 狀態的 scrollbar 都不要出現.

查了一下, 其實很單純, 直接使用 overflow: hidden 屬性放在 body 上就可以很容易做到這個需求. 參考這個範例: http://sample.diary.tw/15/1.htm

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <style>
    body {
      overflow: hidden;
    }
    </style>
  </head>
  <body>
  這是內文..
  </body>
</html>

不過, 其實也有另一種需求是反過來的, 就是使用 overflow: auto 的 div 區塊, 一般我們若是在要畫面上出現一個含有 scrollbar 的區域用來顯示一些內容時, 就很方便, 我們可以參考這樣的一個範例: http://sample.diary.tw/15/2.htm

<div style="width: 190px; height: 190px; overflow: auto; background: pink;">
內容.....
</div>

範例內藍色底的部分區塊是未下 overflow: auto; 的屬性, 所以內容若是超出的話, 就會超出, 而下方紅色底的部分區塊則是使用了 overflow: auto; 的屬性, 所以超出的內容自動會出現scrollbar, 而方便排版及呈現, 這是在處理 body 不要出現右側 scrollbar 時也一併查到的資料:
http://apptools.com/examples/scroller.php

RegExp物件的group元素取出方式

真的很妙……

這篇是要說明 RegExp 在 VBScript (WShell, ASP皆同) 內使用的狀況, 今天正在解決一個解析指令的語法, 想說利用 Regulare Expression 這個好物來處理一下, 結果真是令人不開心啊. 因為查了半天 msdn, 都沒有找到將 group 元素取出的方式, 所以整個就是失落(因為明明就應該是有方法可以取出來才對). 查到的文件在這裡:

http://msdn.microsoft.com/en-us/library/ms974570.aspx

想說怎麼會沒有這個語法呢? 真的是太奇怪了. 於是再到 google 另外查了一下, 發現其實還有個 SubMatches 的 collection 啦, 原來如此, 這個才是真的拿到 group 元素的方式, 想來真的是自己沒有仔細查找清楚, 只能再做個筆記自己記錄一下.

msdn 其實是有資料的, 在這裡:

http://msdn.microsoft.com/en-us/library/y27d2s18(VS.85).aspx

好地, 回到主題, 簡單地說, 今天原來要做的需求很單純, 就是將一個控制指令中的各項參數取出, 如下:

control_[series]_batch_[bno]_target_[tno]_end

這樣的一個字串, 將其中的 [series], [bno], [tno] 取出來, for example, 像是這樣的一個指令:

control_276324_batch_23_target_14_end

要將其中的 276324 及 23 及 14 取出, 若是用 parse 的方式比較麻煩, 就是一個一個比對下去, 但用 RegExp 就方便了, 既能檢查 pattern, 又可以將參數一次取出, 一舉兩得, 接下來就著手來作業了, 程式碼如下:

strCmd = "control_276324_batch_23_target_14_end"

Set objReg = New RegExp
objReg.Pattern = "control_([0-9]+)_batch_([0-9]+)_target_([0-9]+)_end"
Set objMatches = objReg.Execute(strCmd)
If objMatches.Count > 0 Then
  series = objMatches(0).SubMatches(0)
  bno = objMatches(0).SubMatches(1)
  tno = objMatches(0).SubMatches(2)
End If

Set objReg = Nothing

若是指令(strCmd)是多組, 也可以一次都處理完成, 利用 objMatches(i) 來取得, 不過就是要將 objReg.Global 設為 True 就是了.

這樣就可以一口氣將 series, bno, tno 全數取得, 一方面檢查看指令是否符合 pattern, 一方面又可以將所需要的參數取出, 豈不快哉!?

分類
Windows 懶得分類

快速kill process的方式(Windows)

手邊剛好在處理一個大量 process 未結束於系統上的一個問題. 該 server 不知什麼原因, 在起動 cgi 程式時, 發生了這個現象, 偶發的不會自行結束, 於是在系統內就留下了許多該 process 的名稱. 利用 task manager 會看到大量的 process, 雖未佔用 cpu, 不過會吃掉一部分的記憶.

在不方便重開 server 的狀況下, 如何快速地將相同名稱的 process 一起刪除呢? 於是上網想查看看有沒有什麼方便的小工具可以做這件事. 結果很順利地找到系統內建的一個指令: taskkill

這個指令是給定要刪除的 pid 或 image name (就是執行檔名稱), 來進行 process kill 的動作. 簡單研究一下, 進行了測試, 效果相當不錯, 800多個 process 一下就刪完了, 使用的指令如下:

taskkill /IM mytest.exe /F

如此一來, 所有 mytest.exe 的 process 一口氣就被 kill 完成了.

另外有許多方便的參數可供使用, 詳情可以利用 taskkill /? 來取得說明, 列表如下:

TASKKILL [/S system [/U username [/P [password]]]]
{ [/FI filter] [/PID processid | /IM imagename] } [/T] [/F]

Description:
This tool is used to terminate tasks by process id (PID) or image name.

Parameter List:
/S system Specifies the remote system to connect to.

/U [domain\]user Specifies the user context under which the
command should execute.

/P [password] Specifies the password for the given user
context. Prompts for input if omitted.

/FI filter Applies a filter to select a set of tasks.
Allows “*” to be used. ex. imagename eq acme*

/PID processid Specifies the PID of the process to be terminated.
Use TaskList to get the PID.

/IM imagename Specifies the image name of the process
to be terminated. Wildcard ‘*’ can be used
to specify all tasks or image names.

/T Terminates the specified process and any
child processes which were started by it.

/F Specifies to forcefully terminate the process(es).

/? Displays this help message.

Filters:
Filter Name Valid Operators Valid Value(s)
———– ————— ————————-
STATUS eq, ne RUNNING |
NOT RESPONDING | UNKNOWN
IMAGENAME eq, ne Image name
PID eq, ne, gt, lt, ge, le PID value
SESSION eq, ne, gt, lt, ge, le Session number.
CPUTIME eq, ne, gt, lt, ge, le CPU time in the format
of hh:mm:ss.
hh – hours,
mm – minutes, ss – seconds
MEMUSAGE eq, ne, gt, lt, ge, le Memory usage in KB
USERNAME eq, ne User name in [domain\]user
format
MODULES eq, ne DLL name
SERVICES eq, ne Service name
WINDOWTITLE eq, ne Window title

NOTE
—-
1) Wildcard ‘*’ for /IM switch is accepted only when a filter is applied.
2) Termination of remote processes will always be done forcefully (/F).
3) “WINDOWTITLE” and “STATUS” filters are not considered when a remote
machine is specified.

Examples:
TASKKILL /IM notepad.exe
TASKKILL /PID 1230 /PID 1241 /PID 1253 /T
TASKKILL /F /IM cmd.exe /T
TASKKILL /F /FI “PID ge 1000” /FI “WINDOWTITLE ne untitle*”
TASKKILL /F /FI “USERNAME eq NT AUTHORITY\SYSTEM” /IM notepad.exe
TASKKILL /S system /U domain\username /FI “USERNAME ne NT*” /IM *
TASKKILL /S system /U username /P password /FI “IMAGENAME eq note*”

給大家參考!

參考資料: XP: kill a Windows process from the command line with taskkill

分類
好用軟體

Firefox實用的佈景主題(縮小工具列)

在現在大螢幕的顯示器上似乎不是問題. 不過在小小NOTEBOOK上, Firefox 上面落落長的工具列(Toolbar)可就是很佔用可視空間的殺手咧.

這個Add-On名稱為Classic Compact, 其實直接看了就明白了, 很單純的目的, 就是把你的上面工具列(還包含了menu選單及分頁的頁籤, 就是FIRE上面整個能縮的都縮了)縮小, 節省的空間還蠻驚人的, 我們來比較看看, 使用前共高190px, 使用後共142px, 如下:

看起來真的節省不少高度上的空間, 尤其對於NOTEBOOK來說, 桌面大小是很侷限的狀況下, 能有效利用桌面的空間, 相對是很重要的, 這個Add-on相當值得使用!

官方網址: https://addons.mozilla.org/en-US/firefox/addon/3699

給大家參考看看囉!

PS. 不過對於使用Firebug的用家們提醒一下, 在下方的Firebug console是不會有任何變化的, 也不會變小!!

分類
懶得分類

使用google adsense for mobile content

好一陣子沒去看 google adsense 的獲利狀況, 今天心血來潮去看了一下, 發現多了個 adsense for mobile content, 因為 TatterTools 本來就有 mobile 的版本, 所以上 google adsense for mobile content 是不困難的事.

來看一下在 google adsense 新增的這個服務吧:

呈現的結果是這樣的:

於是進行申請並植入程式碼. 不過有趣的地方是在於他的程式碼和一般的 adsense for content 的 client side javascript 或 html code 是不同的, 他必須將 code 放在 server side code, 也就是在 server 上執行產出 html 供 mobile client 使用, 這個原因是因為大多數的 mobile client 對於 javascript 的支援性並不好, 而且也有相容性的問題, 所以必須使用這種方式來產生較相容的 html 供 mobile client 使用.

支援的 server side 程式語言目前共有4種, 分別為 php, perl, jsp及asp, 細項版本說明如下:
* PHP v4.3.0 或以上版本
* CGI/Perl v5.8 或以上版本
* JSP v1.2 或以上版本
* ASP 3.0 或以上版本

yam天空的Email信箱也用gmail平台了

今天登入了 Yam 天空的信箱, 發現這個公告:

原來他們已經改用gmail的平台做Email的服務了, 看起來原來免費的信箱也慢慢成為檢討的成本, 往 gmail尋求解決之道了. 不過和原來的介面完全不同(當然完全不同, 因為已經是gmail了啊), 所以其實就和gmail是一樣的, 只是左上角的logo不一樣而已. 這樣的狀況看起來對Yam天空來說也是節省了大量的server及維護的資源, 基本上應該也是件好事.

但是長得像 gmail 的 yam mail也有種怪怪的感覺呢!

相關閱讀:
Yam天空Email信箱改用Gmail平台了!
天空 yam 的新郵件系統也用 Gmail !!

分類
懶得分類

微軟將於Visual Studio整合jQuery進來了!!

最近的消息, 微軟將於Visual Studio嵌入jQuery這組Open Source的函數庫了. 可以參考下面文章連結: 微軟Visual Studio將嵌入開放源碼jQuery程式庫

jQuery, 有在寫 Web application的工程師應該不陌生, 好用又洗鍊的語法, 方便容易使用的方式, 整個和 Web UI 可以做相當方便結合的一組 library 最近因為微軟的這個消息, 對於之前投資學習 jQuery 的 developer 們來說, 真是個不錯的好消息.

當然, 無論是否於 Visual Studio 內嵌入 jQuery, 大家也都可以直接於 web application 上使用這組 library 沒有什麼大問題, 不過相信對於整合度及方便性來說, 能夠和 Visual Studio 整合當然是再好不過了.

不過和原來的 AJAX 那組 framework 要怎麼整合, 如何取捨, 或是同時並存也是一個有趣的課題. (據消息來說應該是會改用 jQuery)相信這個消息對於已經同時正在使用 asp.net 開發及 jQuery library 的 developer 來說真是個好消息呢.

相關文章及連結:
google blog search: link
微軟將在 ASP.NET 相關產品中全面支援 jQuery
jQuery进入微软和Nokia的解决方案
微軟也搶著支援jQuery?
jQuery從此有名有分,我出運了!

分類
PHP 懶得分類

好用php線上教學資料

今天朋友問到一個架站的問題, 發現他的網站留言不會寫入, 他大概檢查完後, 把錯誤訊息給我看了一下, 發現可能原因是寫入檔案的問題造成的錯誤. 於是朋友就說要是會寫程式就好了, 我便幫忙找一下看有沒有教學的資料.

php我最常用的就是官網了 (www.php.net), 便把這個資料給朋友看, 他說英文閱讀吃力, 我記得官網上有多國語的功能, 於是一邊找, 也發現了好資料, 就是 php 的入門資料, 而且還是中文版本的哦, 記錄下來給大家學習參考用囉: http://docs.php.net/manual/tw/getting-started.php

由於 php + mysql 真的有很多好用的架站軟體, 免費套件, 基於這些理由, 若有心想學好程式的人, 真的可以好好學學呢, 這篇資料給大家參考!

分類
Blog服務

簡便的線上問卷-google docs

從 urmap (www.urmap.com) 上的廣告 banner 看來的, 該問卷的連結在此: link

用 google 的 docs 內的功能做成的一個免費而又簡便的線上問卷統計, 他結合了原來在 google docs 內的 spreadsheets (也就是 ms office 中的 excel ), 並配合 ajax based 的線上問卷編輯器, 快速地達成製作問卷的功能, 詳細的操作可以參考狂人的這篇文章: Google Docs提供「網路問卷調查表」服務,3分鐘搞出一個問卷!

由於是結合 spreadsheets 的結構, 所以所有的問卷結果都會寫入一個 spreadsheets, 但又因為是可以共用及開放編輯的關係, 所以感覺上該 spreadsheets 很像是 “即時” 統計的一個結果頁面, 這個感覺很臨場感, 也就是問卷是上線後, 只要開著那個統計的結果, 就會一直有源源不絕的問卷回收進來了. 不過也得看放置的網頁流量啦.

另外統計的結果除了有上述的 spreadsheets 的 raw data, 也會有一個圖表式的統計結果, 方便原問卷製作人拿到巨觀統計的報表. 整體來說是相當方便好用的一個工具, 並配合上原來 google 的 docs 功能, 方便 share 共享等機能, 實在是不錯用.

當然, 若是站在 “問卷” 機能的角度上來說, 也有一些不足的地方, 例如灌票, 重覆, 還有選擇性的跳躍問題等功能, 不過整體來說是很好用了.

他也有嵌入的語法, 是利用 iframe 的方式, 其實就是單純的在一個 frame 內嵌入, 用法也相當容易, 該大家都能方便地使用線上問卷的功能.

那就來試一下站上的 user 問卷, 有興趣填的朋友也歡迎你留下足跡囉!

問卷連結… link

相關文章:
自訂 Google 問卷表單樣式
「教學」透過 Google Docs 製作免費的線上問卷系統
Google 也有好用的「網路問卷調查表」功能
利用 Google Docs 製作網上問卷

數位&類比

最近工作事多繁忙. 找點時間來分享一下小小心得.

視覺設計是我最不在行的一個專業, k 再多書也沒用的…. 所以我只能用 user 的角度來看這件事. 話說天下大勢, 合久必分, 分久必合(呃…扯遠了), 應該說, 數位的介面, 愈看愈不值錢, 科技感這種質感, 感覺愈來愈廉價, 無論是網頁的介面或是程式的介面.

我們來看個簡單的例子, 最近看到一個PDA上的鬧鐘軟體, 其實有趣的地方在於, 以前會覺得指針式的手錶很落伍, 而電子式的手錶是很先進的, 所以電子錶大行其道, 其介面也就自然是很”數位”, 若各位走過那個年代的話…

不過呢, 我們來看看指針式的手錶, 在PDA軟體上的介面, 似乎才是好的介面設計, 也就是說, 已經進入了現在這個數位的年頭了, 在數位的東西上, 反而是愈傳統愈是讓人覺得有質感, 電子式的呈現方式, 反而讓人有種不親近而且廉價的感覺! 這也是主題中所謂的”類比”設計.

或者比較直覺的說法是一種擬真或仿真的質感.

另一個例子是在網頁上的 css, 一般文章內文的字體若要強化或是提醒, 通常是換色或是提高字級, 不過, 之前看過一些網站, 它們的設計是利用 css 來達成對應的效果, 例如像是用紅筆加上小圈圈的效果, 或是加上不規則底線的效果, 如下:

(內容截圖來自: http://blog.roodo.com/appleseed/archives/2557065.html 這篇文章)
或是參考這篇花妹妹的文章: http://hanamizuki.tw/2008/03/16/text-img-decoration/
截圖如下:

這種呈現效果, 能很有趣地讓人容易閱讀以外, 更能引人入勝, 提高閱讀樂趣.

有趣的是, 愈是電子數位的東西, 愈是想要做成類比呈現的質感, 或許是人的基本感覺, 對於這種取得資訊的方式, 仍是需要一定的”類比”性, 畢竟人不是機器, 但總的來說, 就是一種數位及類比的差異.

接下來再看看左邊這個PDA軟體計算機的介面, 學理工的朋友們應該不陌生這個工程計算機的介面長相, 這個操作質感, 相信會覺得這個操作是很能和原來的操作習慣一致的. 但若是像右邊這樣的計算機的感覺, 就覺得是很時麾, 很先進, 但少了一點什麼味道, 就是人對類比的質感感覺!

文章寫得不多, 但只是要想說明一個想法, 剛好利用了PDA手機內的軟體來說明, 也引用的一個網友的文章內容來說明, 也歡迎大家給一些意見及想法囉!

阿祥 2008/09/19 10:08

我覺得這是一種潮流吧~就像衣服一樣,一陣子就會流行復古風格的Style,即使在數位設計中也是如此。

另外,數位裡加入一些舊有類比的元素,某方面也會形成一種對比性的趣味感~

Timothy 2008/09/19 10:18

若是說潮流, 我覺得倒不如說是人的基本感官. 但用潮流這種說法也很中肯. 所以才會有 “分久必合, 合久必分” 的楔子…

James 2008/09/23 13:08

很有趣得觀察與論點,我完全同意這樣的看法,其實在希臘人提出無窮的概念與萊布尼茲和牛頓的微積分的發現後,與其說類比與數位不如說連續與不連續的矛盾與衝突就像潘朵拉的盒子被掀開一樣,人類一方面慶祝微積分帶來登陸月球的科技進步,卻另一面渴望類比的黑膠唱片與真空管給予的聲音的溫度,機械錶的秒針優雅連續滑過每一個刻度,好像沒有錯過任何幾兆分之一秒,而石英震盪的秒針像似攀登階梯一般地跳在每一格,好像遺漏了中間的那些時間,長期下來也不免露出失之毫釐差之千里的窘態,我想類比的連續之所以讓人感到舒服就在於那些無法被人工補足的「無理數」吧?! 是不是能這樣說:「自然連續的線條,抽掉了無理的東西反而沒有那麼完美了?」 就像有些刻意加上翻書感覺的電子書閱覽器,並不能帶給閱讀者享受翻紙張書時有的快感,那麼就不需要畫蛇添足,但是若能彌補類比做不到的特性這樣的數位擬真可能更有意義,總之,微積分的發明本就是在逼近類比,追求自然而連續的真實,不過其實別忽略了不連續的數位也有它「自然」美之處吧?!

Timothy 2008/09/23 14:36

很感謝你的回覆, 給予這麼多的思考方向. 這個有趣的現像, 為什麼數位後要擬真, 或是數位到底能擬真嗎? (這個問題很工程) 數位 vs 類比, 最後人們要的質感是什麼. 原始的給予人的感動, 或是呈現的表現方式, 都是很有趣的學問.