C++11 Lambda Expression 語法教學與範例

C++11 標準中所新增的 lambda expression 語法,可以讓函數的定義與使用更加有彈性,程式碼看起來也更簡潔。 C++11 的標準中加入了一個新的 lambda expression 語法,如果您有一陣子沒有注意最新的 C++ 標準,看到這樣的寫法可能會感覺很奇怪,以下我們將介紹 lambda expression 的使用方式與時機,並提供幾個範例作為參考。 ...

February 19, 2015 · G. T. Wang

C++ 智慧型指標(Smart Pointer):自動管理與回收記憶體

智慧型指標是 C++ 中一個常用的設計模式,它可以讓 C++ 的程式自行管理記憶體的配置與回收,避免記憶體洩漏等問題。 在 C/C++ 語言中,我們常常會使用指標(pointer)來配置或存取記憶體,一個指標變數儲存了記憶體的位址,而程式設計師就可以運用這個記憶體位址來做出各種變化,是一個非常好用的型別,甚至在某些複雜的應用上,如果沒有指標這項功能的話,可能會讓程式設計師不知道如何開發程式。 ...

February 17, 2015 · G. T. Wang

Express.js 4.0 的路由(Router)功能用法教學

Express.js 4.0 有加入一個新的 Router 功能,它就像一個迷你的應用程式,可以讓應用程式內部的路由撰寫更方便、更有彈性。 Express.js 在 4.0 版中有許多新的功能,其中一項主要的功能就是 Router,以下我們介紹如何使用 Router 功能來撰寫應用程式。 ...

October 30, 2014 · G. T. Wang

用程式控制 TP-LINK 路由器的 ADSL 連線,自動更換 IP 位址

本文以 TP-LINK 的 TL-WR741ND 路由器(router)為例,示範如何使用各種程式語言與工具遠端控制路由器的 ADSL 連線(斷線並重新連線),自動更換網路的 IP 位址。 現在市面上大部分的路由器(或是 IP 分享器)都有網頁管理的介面,使用者可以透過網頁登入之後,管理路由器中的各種功能,而如果要更換 ADSL 的 IP 位址,最簡單的方式就是在網頁管理介面中,手動重新連線,由於非固定制的 ADSL 每次連線都會配發不同的 IP 位址,這樣自然就可以獲得一個新的 IP 位址了,這就是一般更換 IP 位址的原理。 ...

September 22, 2014 · G. T. Wang

加速 JavaScript 執行效率的 DOM 操作技巧(降低瀏覽器回流)

在開發 RIA 的過程中,會常常使用到 JavaScript 來變更網頁元素,甚至增加新的網頁元素,而不同的操作方式也會對執行效能有所影響。 瀏覽器在顯示網頁時,會需要計算每一個網頁元素應該放置在哪個位置,這個計算過程就稱為瀏覽器回流(browser reflow)。當我們對 DOM 進行操作(例如更改元素的 CSS 樣式、大小等)或是改變視窗大小時,也會造成瀏覽器的回流,由於瀏覽器的流回需要耗費時間,所以如果可以盡量減少回流,就可以增加整個網頁應用程式的效率。 ...

May 8, 2014 · G. T. Wang