自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 收藏
  • 关注

原创 認識 Lambda/Closure

在 CodeData 網站撰寫的一系列認識 Lambda/Closure 文章。 認識 Lambda/Closure(1)從 JavaScript 的函式物件談起認識 Lambda/Closure(2)什麼是 Closure?認識 Lambda/Closure(3)Python 對 Lambda/Closure 的支援認識 Lambda/Closure(4)從 Scala 中借鏡認識

2013-07-11 15:31:42 3034

原创 命令式至函數式隨記(六)

English 從函數式得到的,並不只是將命令式外觀的程式碼重構為函數式外觀的程式碼,重點在於 對問題思考方式的重構,從而影響演算法的設計。 下面這個程式是個解 排 列組合 的例子: def rotated(list, i, j):     lt = list[i:j + 1]     return list[0:i] + lt[-1:] + lt[0:-1] + list[j

2012-11-10 08:43:57 2948

原创 命令式至函數式隨記(五)

English 來點輕鬆的好了!要把一組list中的資料全部加1怎麼寫? def addOne(list):     result = []     for ele in list:         result.append(ele + 1)     return result 改成函數式呢? def addOne(list):     return [] if list

2012-10-23 11:56:50 2786

原创 命令式至函數式隨記(四)

English 在命令式至函數式隨記(三)中最後談到foldRight,本來想說有機會再談,不過剛好有個範例,想說就先隨便記好了,有這之前,建議先看看: List 處理模式抽象資料型 態與 代數資料型態  前幾篇都用Python作示範,那這邊就繼續用它作示範好了,首先想想Python中兩個list的串接怎麼作?用+!像是[1, 2, 3] + [4, 5, 6]如果要在一個list前

2012-10-19 07:35:00 2688

原创 命令式至函數式隨記(三)

English 函數式的思考中心就是分解問題,舉例來說,計算list長度命令式如下: def length(list):     c = 0     for i in list:         c += 1     return c      將之改為函數式是許多介紹函數式的文章會有的範例: def length(list):     return 0 if list ==

2012-10-19 07:34:34 2535

原创 命令式至函數式隨記(二)

English 使用迴圈循序處理List中元素的問題,基本上都可轉為遞迴解,不必使用計數器,只要有辦法取List的head與tail就可以了。如果迴圈中又有迴 圈,基本上就是處理兩個問題了,函數式就是強迫你要分解問題。舉例來說: def toPFix(infix, isPost):     expr = infix if isPost else infix[::-1]     stac

2012-10-19 07:34:02 2305

原创 命令式至函數式隨記(一)

English 這一陣子練習函數式,隱隱約約發現從命令式過渡到函數式有一些模式可循,但還沒很能抓得住,在這邊略作筆記一下,另一方面,最近在看 MapReduce,也是隱隱約約感覺,這種模式,有助於使用 MapReduce 時對資料的分析,總之這是一個典型的例子之一,來試著收集更多的例子,看看能不能歸類出一些模式 ... XD 將命令式更改為函數式,需要乾淨點的程式碼與對流程的敏感度,典

2012-10-19 07:33:25 2526

原创 現代程式庫的多重角色

對於應用程式開發產能的影響,程式語言只是個出發點,現代程式庫不僅是可重用功能的中心,還扮演了規範架構流程、限制語言功能、擴充程式語義、模擬典範(Paradiam)等多重角色,有時體質不良的程式語言,因為有良好的程式庫約束了先天不良元素,反而使得原本不被看好的語言廣為接受而獲得重用。  可重用功能的集中處  基於開發程式時的可維護性與彈性,程式開發過程會不斷消弭重複性。傳統程式庫的角色,就是將重

2012-08-17 15:45:35 2167

原创 受限多重繼承的演進

觀察到兩個以上類別具有重複定義時,可考慮將重複部份抽出至新類別,使用新類別的方式之一是透過繼承,這是由下而上的繼承思考方式;如果觀察到類別已定義某些功能,為了避免在新類別中重複定義,方式之一就是繼承該類別,這是由上而下的繼承思考方式。  無論是直接支援多重繼承或提供受限多重繼承,思考重點都在於由下而上抽取出的重複,或是由上而下繼承的定義是否過於具體。  解決多重繼承複雜問題的規則過於複

2012-08-08 10:02:19 2103

原创 程式設計者的技術文筆與寫作

程式設計者是工程師?科學家?工匠或藝術家?Robert C. Martin在《Clean Code》書中第一章即談到:「We Are Authors」。Bruce Eckel在2009年於Artima Weblogs寫了一篇文章〈Writing Software is Like ... Writing〉。《Coders at Work》書中,多位大師也曾提及文筆表達能力對程式設計者的重要性。

2012-08-03 08:55:12 3136

原创 程式語言的特性本質(四)往數學領域抽象化的函數程式設計

許多程式語言融合了多種程式設計典範(Paradigm),除了為人熟知的結構化、物件導向等典範外,逐漸也可見函數程式設計(Functional programming)的蹤影,相對於物件導向將問題具體為物件互動的世界,函數設計則往數學領域抽象化,將問題逐項分解為函數定義。  以數學形式定義問題  函數式程式設計(以下簡稱為函數式程設)經常與指令式程式設計(Imperative progr

2012-07-25 17:13:21 2453

原创 程式語言的特性本質(三)從消弭重複性看封裝、繼承、多型

程式設計在某種程度上都是在消弭重複性,以提高程式可維護性來控制軟體複雜度。若從消弭重複性來瞭解物件導向中封裝、繼承、多型,就可具體瞭解這些基本原則的作用。  封裝消弭了物件的重複行為  假設你用類別基礎的Java設計僅具有name與balance的Account類別,而同事拿來建立多個物件,像是建立acct1、並為acct1.name與acct1.balance指定值,建立acct2並

2012-07-17 10:13:31 2652

原创 程式語言的特性本質(二)類別與原型的物件管理學

類別基礎(Class-based)與原型基礎(Prototype-based)為物件導向的不同風格。前者在設計時先強調物件的種類畫分,之後根據畫分的類別,建立具相同行為與結構的實例(Instance);後者先著重物件個體的行為描述,日後隨著程式演進再來擔心分類等問題。  更多內容:http://www.ithome.com.tw/itadm/article.php?c=73566

2012-07-10 09:53:53 2102 1

原创 程式語言的特性本質(一)靜態語言與動態語言的信任抉擇

型態系統是對底層位元組的抽象化,開發者只要瞭解型態,就可得知如何以高階操作處理資料,開發者選擇程式語言的第一步,就是如何從語法得知型態資訊,也就是決定選用靜態語言或動態語言。  具體來說,靜態語言是指變數是否帶有資料儲存型態,反之則為動態語言。  靜態語言的變數本身帶有型態資訊。例如底下的Java範例中,text宣告為String,就僅可參考String實例,若嘗試參考至其它型態,則會引發編譯

2012-07-04 09:25:17 2033

原创 Hello World 的試煉

類似Hello World的探索過程,可引導出語法層面外的許多議題  第一個Hello World範例的出現,據稱是在Brian Kernighan寫的《A Tutorial Introduction to the Language B》中,此後成為許多程式語言教學的第一個範例程式。隨著技術演進,Hello World的示範漸漸有另一種意涵,如何用最簡潔程式碼來顯示Hello Wor

2012-06-25 09:29:03 1853

原创 速食文化下的技術本質

作份早餐,多少因素要考慮?光是烤個土司、煎個荷包蛋、煮個咖啡,就得事先買好土司、蛋跟咖啡,隔天得早起料理,用餐完得清洗餐具,想到這麼麻煩,許多人寧可就近到早餐店、點份餐,中餐或晚餐大概也是類似方式解決,在速食文化下,誇張卻常見的現象,是在便利商店就能解決三餐,不少便利商店更以此作為廣告噱頭。  Hello World的本質  當面對的問題太複雜時,人們就會開始傾向簡化問題,幫助自己從複雜問

2012-06-18 10:12:16 2303

原创 Scala 起步走

        從一些簡單的語法開始,了解 Scala 的許多特性,所以就算是起步走,東西也夠多了。基本環境與指令簡單的小程式可以使用 scala 指令,編譯的事就交給 scalac,編譯想快點就用 fsc。 指令互動環境scala指令scalac與 fsc資料、變數、操作

2009-12-07 21:59:00 3812 1

原创 「常見程式題目」第三版

更新紀錄:第一版:最初的版本,主要以 C 語言實作為主,當時還是使用 CHM 格式製作,開啟有些問題吧!第二版:將文件改為 HTML 格式,修改了 Java 實作部份,加入更多的題目。第三版:修改了大部份的 C、Java 程式實作,並加入了 Python、Scala 實作。對於一些常見的題目,我整理在我的網站上,現在我也將之打包好了,這些題目是熟悉演算法與資料結構的常見題目

2009-09-21 15:26:00 3610

原创 山寨版 Java 深度歷險

之所以叫作山寨版 Java 深度歷險,其動機之一,就是彷照 Java 深度歷險,嘗試將一些市面上的書較少談及的東西寫出來。至於章節順序安排,則是我過去經驗中,發現最多人所忽略而引發問題的一些東西,有些問題其實都很基本,但也許是缺少訓練,或是在學習、運用的過程中,欠缺旁人的提點,而自顧自的用自己的想法實現而導致,這也是為何取名叫「Java 本質部份」的原因,因為那些東西是基本,但

2009-09-21 15:25:00 4261 3

原创 EJB3 入門文件(二)

        了解基本的Session Bean 與 Message-Driven Bean 撰寫方式,接下來看一些生命週期、攔截器、Timer 等服務。

2008-11-04 17:39:00 3870

原创 EJB3 入門文件

先來寫幾個簡單的範例,看看 Session Bean、Message-Driven Bean 長什麼樣子,怎麼封裝 EJB-JAR、EAR 等。 Session Bean 在 EJB3 中寫 Session,簡單的由 Annotation 就可以設定了,並可以利用容器的資源注入來簡化程式撰寫。 第一個 Session Bean(單機客戶端)使用 @

2008-10-16 21:56:00 3788

原创 GLib 入門

   基本型態、巨集、公用(Utility)函式

2008-08-30 10:13:00 4081

原创 GTK 常用圖形元件

元件講是講不完的,這邊主要在簡介幾個元件作用。

2008-08-01 12:47:00 2947 1

原创 Windows 下第一個 GTK 程式

在這邊說明一下如何在Windows作業系統之下撰寫、編譯GTK,GTK使用GLib、cairo、Pango、ATK、GTK+、gettext-runtime、libpng、libjpeg、libtiff與zlib,所以您必須也取得這些套件,在GTK官方網站的 Windows Download 中可以取得,最簡單的方法是取得all-in-one  bundle。 以下說明安

2008-07-28 11:04:00 3658 3

原创 GtkTreeView

在看這篇之前,請先看過 GtkComboBox 與 GtkListStore,由於以Model-View的方式設計,您可以在不修改Model的情況下,為Model換上另一個顯示的外觀(View),例如為 GtkComboBox 與 GtkListStore 範例中建立的GtkListStore換上GtkTreeView的外觀。 具體來說,也就是該範例中的createModel()

2008-07-14 09:08:00 5192 2

原创 GtkComboBox 與 GtkTreeStore

接續 GtkComboBox 與 GtkListStore,有了其中的觀念,接下來要使用GtkTreeStore就不是難事了,只是多了父子關係的部份。 若想要製作有階層的樹狀結構,則要搭配GtkTreeStore來使用,主要的差別在於,GtkTreeStroe具 有父子節點關係,也因此在加入子節點時,必須指明父節點為誰,加入節點可以使用gtk_tree_store_append()函式,設

2008-07-11 10:23:00 3871

原创 GtkComboBox 與 GtkListStore

GtkComboBox可以建立下拉選單,以供使用者選取項目,GtkComboBox實現了Model-View模式,可提供豐富的項目類型與表現方式,但這也提高了程式撰寫時的複雜度,為此,GtkComboBox提供了gtk_combo_box_new_text()以建立一 般常用的文字下拉清單功能之GtkComboBox,若想要設定下拉清單中的文字項目,則可以使用gtk_combo_box_appen

2008-07-10 10:36:00 6148

原创 GTK 入門文件

先來嘗試一下幾個簡單的 GTK 程式,並初步了解一些核心特性。 Hello!World! Orz..第一步,當然是先 克服 GTK 的安裝問題,然後來個簡單的 Hello!World! Orz... Ubuntu 下安裝 GTK 第一 個 GTK 程式 GTK 的物件導向架構

2008-06-19 12:06:00 2175

原创 GTK 的物件導向架構

GTK 基本上是使用 C 語言來撰寫,即使C語言本身不支援物件導向,但GTK在架構上運用了一些方式,使得使用GTK時可以支援許多物件導向的概念。 在物件導向的封裝特性上,GTK以結構(structure)的方式來模擬類別,事實上GTK也直接稱這些結構為類別,以建構GtkWindow的程式碼為例: window = gtk_window_new(GTK

2008-06-05 15:32:00 3107 1

原创 Ubuntu 下的哈囉!GTK+!

由於GTK基本上主要以C語言來撰寫,您必須有C編譯器,Ubuntu預設安裝好後就有gcc了,不過缺少必要的Header file,您可以在文字模式下,安裝build-essential套件,例如: sudo apt-get install build-essential 安裝完成後,可以寫個基本的C語言程式: hello.

2008-06-04 14:36:00 4336

原创 Qt4 學習筆記

新完成的Qt4學習筆記…http://caterpillar.onlyfun.net/Gossip/Qt4Gossip/Qt4Gossip.html

2008-05-04 22:47:00 2248

原创 需要回顧嗎?2007?

我其實是一個不怎麼念舊的人,我收藏舊東西的本事很差(我老婆就比我厲害多了),就算收藏了某些東西,久了一定佈滿灰塵,再久一些就會覺得沒什麼用了,更久的話,哪天大掃除就會被我清理掉。應該這麼說,所有的回憶其實都在我的腦海中,有人說記憶會淡忘,還是留下事物好,以後可以從這些事物中,找出已經被遺忘的記憶,但我覺得,要是記憶真的被遺忘了,就算舊事物留的再多,哪天看到了,其實也不會有任何的感動。我相信,所有

2008-01-08 21:24:00 3416 1

原创 简体良葛格学习笔记

花了一些时间,作了一些繁体转简体的工作,不依赖Google Translate,有兴趣的,可以至这边观看…http://caterpillar.onlyfun.net/GossipCN/index.html

2007-06-06 13:44:00 13416 10

原创 面對技術...是熱情還是生活?

在擔任講師的日子中,接觸過不少學員。 就有些資訊人員來說,面對技術,總有種近乎狂熱的熱情,當看到某種技術可以解決什麼樣的問題時,那種急切想了解與推廣的心情,就像個傳教士般,深怕別人不 了解該項技術的好與可以解決的問題。 然而,對於大部份的資訊從業人員來說,其實,技術本身,就只是一項技能,一個糊口飯吃的東西,對於新技術,他們也許還會覺得多一事不如少一事。 帶著熱情甚至狂熱上課,有時會有兩極化的

2007-05-21 15:07:00 3943 1

原创 網頁聊天室

  網頁聊天的基本原理很簡單,在使用者發送訊息給伺服端時,同時取回新的聊天訊息,在使用者沒有發送訊息,同時查詢伺服端是否有新的訊息,並顯示在頁面中。 不過重點就在於取得訊息或重新取得訊息的方式,在過去,是在讓瀏覽器定時重新整理網頁,每一次除了新的訊息之外,往往伴隨著大量重複的HTML標籤等內容。

2007-05-14 11:06:00 7441 4

原创 自動表單填寫

  當使用者在您的網頁上填寫資料時,如果您的網站資料庫中已經有該使用者的資料,那麼您可以貼心的在他填寫完部份欄位後,根據這些欄位,自動幫他顯示其它相關的資料,以避免他仍要填寫重複的資料。 舉個例子來說,有個員工管理的網頁:

2007-04-24 11:23:00 4510 1

原创 試用Google翻譯為簡體中文

在我的網頁中,「線上文件」旁試用Google簡體中文轉換…希望對看簡體的學習者有所幫助…http://caterpillar.onlyfun.net/Gossip/index.html 線上文 件 - 翻譯成簡體中文

2007-04-20 23:22:00 3259 1

原创 第一個Acegi 程式 - 表單網頁

  完成了 第一個Acegi 程式 - 設定文件 中的文件設定,接下來完成必要的表單網頁,首先是/acegilogin.jsp: acegilogin.jspAcegi 範例網頁 - 登入登入範例應用程式!j_acegi_security_check" method="POST"> 名稱: j_username value=> 密碼: j_

2007-04-03 22:49:00 5181 6

原创 第一個Acegi程式 - 設定文件

首先請先至Acegi官方網站,下載Acegi程式庫,在撰寫這份教學文件之時,所使用的版本是1.0.3。 表 Acegi相關類別之間的依賴關係,可以藉由IoC容器來協助建立,在這邊您可以使用 Spring 的IoC容器功能,您可以在下載的Acegi檔案中,找到acegi-security-sample-tutorial.war,將之使用解壓縮軟體解 開,可以在WEB-INF/lib下,找

2007-04-03 22:47:00 4718 2

原创 Ajax 動態清單

除了要求使用者按下按鈕之外,還有什麼更直覺的方式可以取得資料?以這個觀點出發,可以想到許多非同步請求回應的使用方式,例如,當使用者選擇書籍類別完 成後,觸發onchange事件,自動將使用者的選擇送出,取得下一個選單的資料並呈現在網頁上,這個功能在桌面應用程式上很常見,但在Web應用程式來 說,以前並不常見。 例如您設計的網頁如下: DynamicListeEx-1.htm

2007-03-30 14:21:00 4112

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除