作為一個前端語言, JavaScript 天生就註定要比其它任何一種語言要處理更多的字串。如何才能更有效地處理字串, 想必也是每個程式設計師最關心的問題。最近, 我看到有人很堅持地在程式中把個別的字串以陣列元素方式宣告, 然後把它們 join 起來, 說這樣才能達到最佳的效能, 其速度遠比使用字串的加號運算來得快! 起初我也半信半疑, 直到我寫了一個程式來仔細分析為止...
JavaScript 中的 Delegation
- 5026
- 0
- JavaScript/jQuery
- 2013-08-13
在物件導向理論中, 關於 Delegation (委託) 的概念, 有人說是由麻省理工學院 Media Lab 的首席研究員 Henry Lieberman 於 1986 年在 OOPLSA '86 Conference 中發表的一篇文章 ("Using prototypical objects to implement shared behavior in object-oriented systems") 裡面提出來之後, 才逐漸發揚光大...
從 LinkedIn 密碼外洩事件看網站的保密策略
根據 Macworld 在 2012/6/6 所發表的一篇文章, 一位俄羅斯駭客聲稱已駭進 LinkedIn 的資料庫並盜走帳號資料, 然後把六百五十萬 (實際數字為 6,458,020) 個密碼公布在一個俄羅斯的論壇中作為證據 (僅公布密碼資料, 並無關連的帳戶名稱及其它資料)。這些密碼事實上並不是明文, 而是已經過 SHA-1 (SHA 是 Secure Hash Algorithm 的縮寫; SHA-1 是在 1995 年發表) 方式加密的...
引領潮流的 Windows 8
最近在閱讀 Charles Petzold 的 "Programming Windows 6th Edition", 看到作者回顧自己在撰寫 "Programming Windows" 第一版時, 他使用了一部裝了 80286 的 IBM PC/AT, CPU 時脈為 8MHz, 記憶體是 512KB, 另外配上一部 30MB 的硬碟。對現代的年輕人而言, 這種配備應該是不可思議的, 因為現在連一般手持裝置所使用的微處理器的規格, 恐怕都遠遠超越那個時代的 PC...
使用 Timeline 自製噗浪式河道
Timeline 是一個 JavaScript 程式庫, 它並不是 jQuery 套件, 所以無需載入 jQuery 主程式。要如何解釋 Timeline 的功用, 這實在有點難; 但如果你是噗浪的愛用者, 那麼你馬上就可以心領神會。因為它使用起來幾乎跟噗浪一模一樣(只差不能留言跟按讚而已)...
[VS11] VS11 對 Find/Replace 功能的增強
- 2175
- 0
- Visual Studio
- 2013-08-14
為因應使用者的意見反映, VS11 開發團隊在最近的 Beta 版本中, 針對 Find/Replace 功能做了一點小小的功能增強。如果你已經更新到最新的版本, 那麼你已經可以開始使用這些新功能。或許你已經發現, 在 VS11 中, 要搜尋一段文字, 你不必在輸入搜尋字樣後按下 Enter; 當你一邊打字, VS11 就已經在同步進行搜尋。而且, 你可以使用滑鼠滾動程式區域, 而不是像 VS2010 一般在歷史搜尋字串之間巡迴...
認清測試的本質與目的
- 1871
- 0
- SQA/Testing
- 2013-08-14
作為一個由技術支援工程師和 QA 轉任 Developer 的資訊從業者, 我從很早就認識到一件殘酷的事實, 那就是測試是個苦差事 - 至少比多數軟體主管和部份軟體開發者所以為的還要辛苦。我不想倚老賣老, 但是我發現很多沒有真正從事過測試工作的開發者, 好像並沒有真正思考過測試工作的難度。在他們心中, 如果談到測試, 雖然會理所當然的認為一定要做測試, 但是...
[CSS3] 使用 CSS3 製作 HTML 小時鐘
- 2757
- 0
- HTML/CSS/Web Authoring
- 2013-08-14
在 CSS3 裡面增加了 transform 功能, 使得我們可以對網頁元件進行放大、縮小、平移、旋轉、扭曲等等效果。我在本文中要介紹的是其中的 rotate 效果, 而且運用它來製作一個完全使用 HTML 標籤加上 CSS3, 不使用任何圖片的小時鐘。在我開始介紹這個時鐘小工具之前, 你不妨往本網頁的右邊看一下, 在側邊欄的 jlClock 就是我的作品...
IE10 對 CSS3 的支援與注意事項
截至目前(2012/3/21)為止, Windows 8 Custom Preview 系統中的 IE10 可以分成兩種, 一種是寫成 Metro Style 的 App 型式, 另一種則是一般的 Desktop 應用程式。第一種就是稱為 Internet Explorer, 第二種則是稱為 Windows Internet Explorer...
[ASP.NET] 字型單位的轉換
當我們在設計網頁時, 對於文字所使用的寬度多半使用 Pixel 或者 Em 來表示。不過我記得在更早以前是廣泛地採用所謂的 Point; 這是跟印刷息息相關的單位, 但是近來已經不太使用了, 尤其是在網頁設計上...
使用 XML 當作單元測試中的測試資料來源
- 2800
- 0
- .Net Programming
- 2013-08-14
在 MSDN 對單元測試的介紹中, 對單元測試的做了基本的介紹。站在我這個 former QA 的角度來看, 一般人如果只是照著上面的簡單介紹去做單元測試, 然後就以為單元測試只不過是這樣而已的話, 未免把單元測試看得太單純。事實上「使用資料驅動的單元測試」才是真正實用的。怎麼說呢? 因為, 如果我們不是餵給測試單元很多預先知道結果的測試資料去進行測試的話, 所謂的「自動化測試」只是空談罷了。為什麼團隊裡面必須有 QA 存在? 就是因為我們需要 QA 站在開發者的對立面, 試圖去找出開發者沒注意或甚至沒想到的弱點; 有攻有防, 才能確保產品的品質...
(CSS3) text-shadow 詳解
text-shadow 是 CSS3 中一個蠻有趣的屬性。加上這個屬性之後, 文字馬上變得多彩多姿起來。簡單的講, 就如同它的字義, text-shadow 意思就是給文字加上陰影。以前我們必須使用繪圖軟體才能為文字套上這些特殊效果, 而且還要把它轉變成圖形。現在, 只要方便地賦予它 "text-shadow" 這個 CSS 屬性, 馬上就可以看到效果...
(WPF) 在 WPF 視窗中找到所有控制項
- 6798
- 0
- Windows From
- 2013-08-14
在 WPF 視窗裡, 控制項模型和 Windows Form 或 Web Form 之間都有或大或小的差異。就以巡覽控制項這件事來說吧, 你可能會和我一樣, 對於容器(包括視窗本身)都沒有提供 Controls 屬性可用而深感不方便。它甚至也不提供像 XML 和 LINQ to XML 之下的各種巡覽功能, 像是 Descendants 屬性...
(WPF) 在 WPF 視窗中開啟對話視窗 STEP BY STEP
- 5119
- 0
- Windows From
- 2013-08-14
在 WPF 程式中, 要開啟一個對話視窗的方法和在 Windows Form 裡面不太一樣。最顯著的差異, 在於 WPF 的 Button 控制項中並沒有 DialogResult 屬性可用。不過他們的基本原理還是差不多的。以下我將示範如何在 WPF 加入對話視窗的祥細步驟...
我看 Windows 8
- 1875
- 0
- Non-Technical Topics
- 2013-08-14
在 C|NET 的 "Will Windows 8 be irrelevant to regular PC users?" 一文中,作者 Lance Whitney 對於 Windows 8 的未來展望打了一個蠻大的問號;同時,在該文中夾帶的 Windows watch 投票活動中,差不多只有兩成左右的讀者表達了他們一定會更新到 Windows 8 的意願,有高達三成六的讀者表示他們不會進行更新,另外有三成四的讀者表示觀望...
[HTML5] 文章裡的文章-使用 article 標簽
- 2367
- 0
- HTML/CSS/Web Authoring
- 2013-08-14
如果你在網頁設計上面已經著墨很久的話,或許你會發現 HTML 實在是一種非常不嚴格的語言 (它確實是一種語言;它的名稱也是這樣來的)。我這裡要很簡單的介紹一個在 HTML5 標準中新加入的元素-article,以及非常類似的 section,並且會探討它們的差異...
在 ASP.NET 專案中安裝 ELMAH 擴充套件 STEP BY STEP
在這個全世界有數百萬起跳的人口都在從事軟體開發工作的今天,程式設計絕對不是一個適合單打獨鬥的行業。雖然我個人也是個偏好親手下去寫所有程式的開發人員,但是若想應付改來改去的需求、節省時間、準時交件的話,有時候不借助他人之力是不行的。很幸運的,確實有很多已經寫好、包好、測試好 (而且好用 - 這是重點) 的套用就在網路上,為什麼還需要凡事都自已動手?問題是,通常這些套件的安裝非常繁複、要面對的情況也很多樣。有時候光是安裝這些套件就會難倒一堆人,甚至興起不如自已寫還比較快的想法...
從 C#/VB 開發者的角度解析 C++ 中的指標
- 3206
- 0
- C++/Legacy
- 2013-08-14
最近在維護一個 C++ 專案,在迫不得已的情況下重新溫習了已經十幾年沒踫的指標 (Pointer)。而且,很不幸的,跟十幾年前一樣被搞得暈頭轉向 (在 C# 跟 VB 中根本不會有這種問題),所以只好花點時間把 C++ 指標相關重點摘錄起來供自已及有興趣的朋友們參考...
使用 Decorator 樣式實現輸入裝置的 IoC 概念
- 3556
- 0
- .Net Programming
- 2015-02-09
對傳統程式設計師而言, XNA 可以算是一個面臨多種適用狀況的開發環境。為什麼呢? 因為你所開發的程式, 只要經過小小的修改, 就可以移轉到 PC、XBOX 與 WP7 裝置上面。而它的輸入裝置也很多樣, 包括鍵盤、滑鼠、XBOX 搖桿、觸控輸入, 甚至其它。到目前為止, 我手頭上可以運用的輸入裝置除了鍵盤、滑鼠, 還有 XBOX 搖桿 (這東西花了我一千多塊錢), 但是事實上 XNA 可以接受更多的輸入裝置, 例如 WP7 的(多點)觸控輸入、加速感應裝置, 甚至未來的語音輸入裝置, 還有 Kinect 等等。如果我們希望在程式裡同時支援這些裝置, 無可避免的, 我們都必須為每一項撰寫對應的程式...
.Net Interoperation 入門
- 5415
- 0
- .Net Programming
- 2013-08-14
Interoperation是工程界普遍使用的字眼, 專指在不同系統中搭起的簡易或臨時的元件, 藉由製訂某些共通的協定, 以便這些系統可以共同作業。由於這個溝通界面可能並非非常嚴謹, 所以當其運作時, 必須特別有人從旁監督、隨時調整和修改。在.Net 中, Interoperation 專指從.Net 應用程式中存取unmanaged 程式元件的行為。我們知道, 當我們撰寫.Net 應用程式或元件時, 這些元件都是managed (受.Net 執行環境所管理的)。但是如果是使用VB6/C/C++ 所撰寫的非.Net 程式或元件, 對.Net 而言, 都算是unmanaged。如果我們企圖在.Net 程式中存取那些unmanaged 程式或資源, 就必須透過Interoperation 技巧與COM 介接。此外, 許多Windows API 並沒有.Net 的對應函式。換句話說, 如果我們要撰寫Windows 應用程式, 而且我們必須使用到Windows API 的話, 我們沒辦法從.Net Framework 執行環境中找到對應的方法, 而必須透過Interoperation 去呼叫W