跳到主要內容

發表文章

目前顯示的是 2015的文章

Big Data 是什麼?

早在 98年博士班選修的「雲端程式設計」課程裡,對於 Big Data 已經有所涉略,我和 William 做了一個專題,拿 wiki data 來分析,我們使用 3 台 PC 是架設 Hadoop,使用 HDFS  及 Map/Reduce 來處理 more 20GB 的 wiki data,拿真正的 wiki data 在 3 台 Hadoop 上跑,結果是:跑不動,掛掉!這就是 Big Data。 某一天與高階主管開會,主要的目的是:處理學校儲存在 Database 中的一些資料,有位教授級的說:這就是 Big Data,當時的我有些許的無言?突然有三條線浮現眼前的感覺;如果這就是 Big Data?那麼 Apache Spark 最近應該不會那麼火紅?不是嗎? Apache Spark 是最近最火紅的 Big Data 資料處理的引擎,2009年有 UC Berkeley AMPLab 所發展,其中一位 Director:Ion Stoica 在 2011 年演講提到" What is Big Data? "所指的是那些隨時可以產生幾 GB 的資料,而如何有效的管理並且分析出有用的資訊,提供作為決策的參考。儲存於學校 DB 內的學生學籍、成績、選課、老師開課、教學、研究等資料,也許將主計、人事、出納等儲存於 DB 的資料加入分析,僅是後端所謂 value 的產出,採用早年的資訊技術,應該就可以處理,不需要用到 clustering and distributing System,如果學校這些資料是 Big Data,那麼 Apache Spark 就不會那樣的重要了。 Matei Zaharia 是 Databrick's CTO,他的論文獲得 2014 ACM Doctoral Dissertation Award ,是 Apache Spark 的主要架構,在 AMPLab 網站寫著: Matei’s thesis develops and analyzes the core ideas behind the Spark system (now known as Apache Spark ), which is taking over the Big Data analytics world. 如同 L

「笑」看人生,看紅塵

每一個人都總是喜歡別人的笑臉,無論是誰?誰也都逃不過「笑臉迎人」的人。 不管「笑臉」之下包藏禍心,其內心有多麼狡猾、奸詐,也絕對不要讓對方察覺出來,這是在目前官場、職場、人場的最基本的生存之道。要升官、發財也非得鍊得這種功夫不可。 除了上面所描述的這種基本功之外,尚須具有「逢迎拍馬」、「欺上瞞下」、「天花亂墜」等功夫,不需認真於工作之上,仍能得上官的賞識,得以陞官晉爵。 人生就是如此,蘇東坡:「呵呵」罷了!

Nginx Web Server 設定

Nginx 是另一種使用 C 語言寫成的 Web Server 軟體,主要還是支援 Unix-like 平台,網站也有 Windows 的 Binary 可以下載。目前 Windows 版本僅支援 Standalone 的方式,還未支援 Service 的方式來佈建 Web Server,換句話說,就是不會在 Windows 的「電腦管理>>服務與應用程式」中出現 Nginx 的服務設定。另外,Windows 版本也沒有將 SPDY 的 module 編譯到 Binary 裡面(可以在 Command Line 執行 ngnix -V查看編譯的 module),如此就無法在設定檔中設定 spdy 項目;有 SSL 的 module,但是產生 SSL 需要的 key 及 CA,對於初學者而言,不是那麼簡單、容易,底下的文章只是對 php + Admin + sqlite 的設定過程來說明: 下載 ngnix for windows 版本 ,預設是放在 Server\ngnix 目錄 到 Server\nginx 目錄下,執行 start nginx.exe (stop: nginx -s stop) 使用 Browser 開啟 localhost,應該可以看到 Welcome to ngnix 的網頁 下載 php for Windows , Adminer , Sqlite 軟體,解壓縮到 Server 目錄底下 修改 Servver\nginx\conf\nginx.conf 內容: 注意:要使用下列指令來 kill nginx.exe process taskkill /f /IM nginx.exe taskkill /f /IM php-cgi.exe install Server in Windows: httpd -k install -n "Survey Website" httpd -k uninstall -n "Survey Website" install MariaDB: copy data\my.ini to MariaDB root dir bin\mysqld --install MariaDB // DB name net star

心靈

廖智,一位四川大地震生存者,在 May 2, 2014 蘭萱有約的訪談中,她描述當時被困在地下而即將放棄自已生命的情境,由於父親的堅持、不放棄,再次燃起她求生的意志,向外界對話,如今成為一位知名的舞者,是目前生活優渥的小孩值得學習的榜樣。 環境確實是影響一個人人格發展很重要的因素之一,不經過生命的淬鍊,不知道生命的可貴;不經過 May 1, 2014 文茜的異想世界,訪問一位來賓,心靈像湖水一般,平靜的湖水,連水小石子放入水中,掀起的蓮綺依然清晰可見;波掏洶湧的湖水,再大的石頭掉入,亦無法察覺產生的變化。人的心,需要平靜才能透徹問題之所在,不是嗎?

Google Code 將關閉

iThome 網站刊出一則「 Google將於明年1月25日關閉Google Code 」的消息,它提供轉換 GitHub、Bitbucket、SourceForge 的移入工具,對於在 Google Code 有專案的人衝擊不大,只是感嘆:資訊的變化就如曇花一般,那麼短暫、消逝!就連 Google 這樣大的公司,原本提供 Open Source 社群開發程式的平台,也不敵後起之秀 GitHub,最近觀察 SourceForge 也有衰退的現象。 不斷推陳出新的資訊世界中,哪一種 Language, Framework, or System 才是真正的王道,歷久不衰!C++, Javascript, HTML, LLVM, or FreeBSD?

Apache Spark-- A tool for lagre-scale data processing

今天國網中心電子報 有一則關於 Apache Spark 的報導 ,對於 Hadoop 的 MapReduce 效能點出了最大的致命傷: MapReduce 最大的缺點在於運算時需要將中間產生的資料存在 Hadoop 獨有的分散式檔案系統中(HDFS)。尤其在執行迭代演算法(註1)時,每次的輸入與輸出皆需要頻繁讀寫HDFS,這將導致大量的時間花費在資料的讀取。 也因此 Apache Spark 誕生 ,在 Apache Spark 網站的標題寫著: Apache Spark™ is a fast and general engine for large-scale data processing. 讓我比較感興趣的是: Spark 支援 Java, Scala, Python, R 語言來開發各種應用程式,也可以在單機版本運行: Ease of Use Write applications quickly in Java, Scala, Python, R. Runs Everywhere Spark runs on Hadoop, Mesos, standalone, or in the cloud. It can access diverse data sources including HDFS, Cassandra, HBase, and S3. 簡單瀏覽 Spark's Github 的網址 內的 Readme, clone 回來安裝步驟如下: 下載及解壓縮 Maven 專案套件軟體 設定環境變數讓 Maven/bin 程式可以在 cmd 中被執行:[圖 1] cmd 中輸入 mvn -v 測試:[圖 2] clone Spark stable 版本到 github 目錄:[圖 3]  build Spark: cd spark; mvn -DskipTests clean package     Spark github Readme 的說明,測試 Spark 是否安裝成功: 測試 Spark-shell:           cd bin; spark-shell           sc.parallelize(1 to 1000).count() 測試

Brackets 編輯器(Editor) 與擴增套件的安裝

Brackets 是 Adobe 公司以開放原始程式碼(Open source code)的方式來發行的文字編輯軟體,主要是針對網頁程式開發而設計的一個編輯軟體,它幾乎是由 Javascript, HTML, CSS程式碼所撰寫而成,使用 Chromium Embedded Framework (CEF) 當作一個 shell 來處理Javascript, HTML, CSS 這些原始程式碼,整個程式碼可以在 GitHub 網站下載 。 從 Brackets 網站下載安裝檔,然後直接執行安裝檔,就可以完成 Brackets 的安裝程序。完成安裝程序後,擴充套件僅有 Extract for Brackets (Preview)套件,在 10 Awesome Brackets Extensions You Really Need 中提及安裝幾個重要的擴充套件,視個人需求而定,對於想要開發 HTML, Markdown 的人,建議安裝下列幾個套件: Brackets Beautify Markdown Preview Emmet 額外加強 Brackets 編輯器的功能有:  Documents Toolbar Themes for Brackets Brackets Icons Brackets Git  //需要先安裝 Git client 軟體 安裝這些套件相當簡單,只要開啟 Brackets 編輯器,按右上角第二個方形的小圖示,開啟擴充套件管理程式(Extension Manager)>>available 圖示,然後搜尋套件的名稱,按下 Install 即可。 安裝 Brackets Git 套件需要先安裝 Git 軟體,在 Windows 平台可以到 Git 網站下載,我通常會安裝 STL's MinGW,他已經把 Git 包在裡面,所以在 Brackets Git 設定頁面,要像下圖的把Git 路徑及執行檔設定到設定頁面中,才不會有錯誤訊息產生。 在完成 Brackets 與擴增功能的套件安裝完成以後,對於要使用中文的朋友,以及喜歡像:輸入左括號能自動產生右括號的這項功能,需要自己在 Brackets 中做設定: 設定中文語系:Debug >> Switch Lang

坐錯桌與坐錯位置

昨天有一則新聞: 高志明國宴獨坐「冷清難忘」 外長道歉 ,在這影片當中,比較覺得訝異的是:竟然可以回答:人手不夠,無法一一帶位,.. 是他坐錯位置。 身為一位外交部的部長,可以如此說法,台灣的大官們,被下屬奉承到快要無感了! 這是管理上的問題吧,不需要外交部的人員呀,難道國宴餐廳的服務人員不足嗎?事先的安排、規劃完善嗎?若餐廳人員不足,為何要選擇這一家餐廳?莫非 ...。總之,竟然可以回應這種:「他坐錯位置」的話語,這不是無感,那是什麼呢?高先生 po 主要的目的為何?這些高官真的忙到不去瞭解真正的原因;還真是聽話,訊息不正確,下屬說什麼?他就聽些什麼?真是沒有知覺?國家將亂,不是一天造成的。 文書組是掌管文公文檔案的最重要單位,而公文電子化已經實施多年,仰賴資訊科技不只是必然的趨勢,是已經成為事實的產物,然而,人們還是可以因為黨派、核心的人物,而放棄了對於這個單位未來有更好、更多作為的人選,選擇核心人物,需求明明寫著:「具有資料庫、XML等背景的人為佳」,卻是選擇對於資訊技術完全不了解的人選,如果再私人機關,有可能發生這種事嗎?在公務機關中,這也意味著人們總是要「靠」關係,沒有關係,再適合、再強的人選也是沒有人選擇你/妳,更不用提及公務體系年資的問題了。這就是公務體系鄉愿的一群人,做鄉愿的事情罷了。

gulp + browser-sync 同步的 RWD 開發環境

Responsive Web Design(RWD) 是現在網頁式設計時必須要考慮的要件,但是在開發的過程中,需要同時對於不同的 Device 檢視效果,gulp + browser-sync 是一種可以同時更新不同 Device 的 workflow,設定的步驟如下: 安裝 nodeJS: npm update: npm update 安裝 global gulp :  npm install -g gulp 切換到 project 目錄 安裝 gulp + browser-sync + gulp-sass: npm install gulp browser-sync gulp-sass --save-dev 新增 gulpfile.js:內容如下 執行 gulp: gulp 依照 Browser-sync 網站的說明 ,gulpfile.js 內容如下:   var gulp = require ( 'gulp' ); var browserSync = require ( 'browser-sync' ); var reload = browserSync . reload ; var sass = require ( 'gulp-sass' );     // start server gulp . task ( 'browser-sync' , function () { browserSync ({ server : { baseDir : "./" } }); }); // process JS files and return the stream. gulp . task ( 'js' , function () { return gulp . src ( 'js/*js' ) . pipe ( browserify ()) . pipe ( uglify ())

Gitbook 的安裝與測試

Gitbook 是一種文件產生的套件軟體,提供使用者可以利用簡單的 Markdown 語法來撰寫文件,再使用 gitbook 的工具轉成書本的形式。最大的好處在於: 使用的是 Markdown 語法,讓一般的使用者可以很容易、輕鬆的撰寫文件,相較於其他的文件產生的套件,例如:Sphinx[1], Docbook, TeX/LaTeX, etc ...入門的門檻已經簡單太多、太多了。命名為 Gitbook,意味著它結合 git 的功能,把文件送到 gitbook 網站 ,讓世界所有人都可以看到你/妳的作品。除此之外,系統上也有定價的機制,讓瀏覽者可以付費觀看。 Gitbook 是使用雲端來儲存世界上所有使用者撰寫的書籍,網路上也有其相同雲端服務的系統,如: Read The Docs ,只要到網路上免費申請帳密,就可以在線上編輯、發布自己所寫得書籍,不需要再特別安裝任何軟體。若要離線編輯 gitbook 書籍,需要安裝它提供的 gitbook Toolchain 軟體。這個工具軟體是使用 Javascript 所撰寫的程式,需要安裝 node.js 引擎,配合 npm 來安裝。在不同平台的安裝與設定上略有差異,以下是在 Windows 系統安裝與測試的過程:  首先安裝 node.js 更新 npm 套件: npm update 安裝 git 軟體: npm install git // 若安裝 STL's MinGW 則不需要再安裝 git 使用 npm 安裝 gitbook 工具程式: npm install -g gitbook-cli 完成安裝程序,就可以開始使用 gitbook 來產生書籍的文件。在使用這個工具之前,先說明這個套件的指令: 輸入 gitbook 出現 gitbook help 文件 安裝完成後,預設的 gitbook版本是 2.1.0 版,可以下指令來檢查:gitbook versions 檢查有幾種版本可以使用: gitbook versions:available 安裝 2.2.0 版: gitbook versions:install 2.2.0 移除 2.1.0 版:gitbook versions:uninstall 2.1.0 檢查輸出的版本: gitbook -V 產生 Webstie