軟體概念MVC模式與SPA單頁應用淺談

現在的網頁技術發展愈來愈抽象化,大概是還原基本步。由最初能夠做到便足夠,到現在我們還會思考效能和擴展性。
MVC模式一在早在1979年代已提出的概念,用於軟體設計及運作。它就如一種三權分立的模式,大家互不統屬,從而獲得最佳效能。MVC代表了「模型」(Model)、「視圖」(View)和「控制器」(Controller)。這個理論是這樣運作的,網民一旦開啓網頁(或軟體),這時網民其實是發出一個請求,網站伺服器(或軟體)裏的「控制器」(Controller)便會傳達資訊給「模型」(Model),模型會更新資訊給「視圖」(View)。在這零點零零幾秒之間,View便會更新畫面,讓用家瀏覽。整個運算過程,由Controller在Model之間完成,前者被用家選擇和控制,後者則作為協調和規範的角色。

由於最初的網頁設計,例如一頁index.php或JSP當中,裏面包含HTML和一些運算式,這樣不太有利數式分工。HTML是一些基本表現式,但PHP等OOP程式涉及運算邏輯,兩者分離可以減少各自負擔,對於擴展和維修有很大幫助。此外Model還能分擔重覆的部分,讓View重覆使用,能夠減少重覆語句。

SPA是指「單頁應用程式」(Single-page Application)。意思是一個程序之中,以一個頁面處理大部分工作,減少網頁重新載入的部分,換句話說能減少網頁傳輸負擔從而加快瀏覽速度。SPA能夠以javascript完成,現在大多使用API和Ajax和JQuery等技術達到SPA效果。angularjs是由Google維護的一種框架技術,內裏包含了Ajax的技術,可惜速度和第一版的設計被人垢病,現在angularjs已出版了第2版,幾乎重寫了整套框架語法,其陡削的學習曲線亦令不少程序猿卻步。

我實在想不起來,那個遊戲手制藏在哪個角落。A short scary story:NO SLEEP

一。別睡
我實在想不起來,那個遊戲手制藏在哪個角落。這是我今個月第四顆臨時買回來的電玩手制。「寶貝,我的遙控放哪兒?」我大聲在廚房喊道,手裏正拿著一盤冷冰冰啤酒和薯片。「放在茶几上」一把女聲遠遠在房裏傳來。我走出狹窄的廳間,只穿著一條短短的四角內褲,愣住了。發現找了好久的手制正放在茶几上涼著。

這天晚上我沒有打電動,也睡不著。因為我才記起現在只有自己一個人住著。

One。No sleep

I couldn’t recall where my game console went. It was the fourth one I had purchased this month. “Babe, where did I put the * consoles?” I yelled to myself in the kitchen while holding icy cold beer and a bag of chips. “On the table”, a female voice echoed from a far distance. Flabbergasted, I walk out of the living room in my boxers. The game console that I was searching for was on the table.

I couldn’t sleep that night, nor did I play video games. I just remembered I now live alone.

Economics 101 “How the Economic Machine Works.”

The animated video answers the question, “How does the economy really work?” Based on Dalio’s practical template for understanding the economy, which he developed over the course of his career, the video breaks down economic concepts like credit, deficits and interest rates, allowing viewers to learn the basic driving forces behind the economy, how economic policies work and why economic cycles occur.

數據管理101之Data Analysis基礎概念(上)——Entity Relationship Diagram(ERD)與Relational Database Management System(RDBMS)

數據管理的應用需要數據分析員處理和釐清邏輯關係。這裏要介紹一種概念技術和其作者——美籍華裔的陳品山(Peter P.S Chen)。

所謂數據只是一種的紀錄和資料,在未被處理的情況下,它只是一堆文字或檔案。在商業世界裏,數據可以說是一本天書,它能為目標導向的商業組織作出指導,當然前提是數據能被有效收集、統計和分析(這裏是三個完全不同而又缺一不可的步驟)。但在電腦應用範疇裏,我們是以如何分析呢?我們明白電腦應用其實依賴以數學式的邏輯作為語言基礎。那麼數據管理或數據分析,實際上的操作是根據什麼呢?現在的商業機構,會聘用數據分析員(Data analyst)處理數據,那個系統叫數據庫或資料庫,或者稱為「資料庫管理系統(Database management system, DBMS)」。除了電腦科學(Computer Science)外,這些分析員所學習的是「數據模型」(Data Model)理論,例如層次模型(Hierarchical model)、網狀(Network model)、關聯模型(Relational model)、鑽型(Dimensional model)和ER模型,ER模型即ERD。

Entity-Relationship Diagram(ERD)

Entity-Relationship Diagram(ERD)是一種著名的數據模式理論,現在大多軟體開發都會應用這個數據開發模式概念。運用Entity-Relationship Diagram(ERD),能夠視覺化數據個體(Entity)和它們之間的關係(Relationship)及其屬性(Attributes),用來規劃數據結構。換句話說,這個理論有助將現實世界的抽象資訊轉換為數據,讓分析員能夠量化及統計。ERD的視覺化邏輯亦有利數據分析員檢視、統計和管理。在規劃數據管理上,會將不同類型的數據分類,我們叫作邏輯設計(Logical design);在實踐和製作數據庫/資料庫上,稱為物理數據庫設計(Physical database design)。

ERD,我們可譯為「實體關係模組」。在1976年3月,台灣國立台灣大學電機工程學系畢業的陳品山,在ACM Transactions on Database Systems上發表了《The Entity-Relationship Model–Toward a Unified View of Data》一文。由於大眾廣泛使用實體聯繫模型,而這篇文章已成為計算機科學38篇被廣泛引用的論文中之一。他已被譽為全球最具軟體開發技術的16位科學家之一。早在1968年,IBM的推出一種產品IMS(Information Management System, IMS),它使用的是層次模型,一種樹型結構的數據模式。1970年,Edgar Frank Codd提出關聯式資料庫(Relational model),藉助於集合代數(Set)等數學概念來建立數據之間的關係。Edgar F.Codd在IBM工作期間提出的「科德十二定律」(Codd’s 12 rules)來建立數據模型的理論,它是ERD概念的先驅。後來更有EERD(Enhanced Enitity Relatioship Diagram)是ERD的進階加強版,加入其他進階術語。

ERD基本分為三大基本部分,實體(Entity)、屬性(Attribute)、關係(Relationship)。長方形代表實體(Entity)、橢圓形代表屬性(Attribute)、菱形代表關係(Relationship)。例如部門和僱員都是一個實體;它們的關係是部門包括員工。

但是考慮到它們關係並不平等(僱員不會包含一個部門),因此我們需要另外兩組符號標示兩者關係。 (more…)

西方哲學入門的中文博客與一份美學文章——台灣的兩個哲學與美學並重的博客

台灣文藝的確很酷,不僅如此,甚至台灣的當代哲學學者都有一股文青風,時尚貼地。這篇主要介紹兩位哲學博客,他們是哲學哲學雞蛋糕的朱家安和取捨間的Sim Po-Yi。哲學哲學雞蛋糕是一個台灣的哲學博客,不時介紹西方哲學的理論,博主的專欄画哲學大部分都是哲學話題的即興延伸,較有趣的是哲學課題的探討,例如介紹休謨Hume,休謨認為理性其實都是感性所驅使,因而無法實踐純粹理性,不過這些文章幾乎是十年前草創的用心之作。取捨間的Sim Po-Yi雖然比較注重攝影與美學,有些文章卻是令人注目,例如一篇關於美國當代哲學家丹托Danto的美學與藝術論著的文章,分析當代藝術的境地,值得細味。
哲學哲學雞蛋糕是一個台灣的哲學博客,博主朱家安用平易近人的文字,將西方悠久歷史的哲理思潮帶到華語世界。他1987年生於台灣東北部的宜蘭,是台灣中正大學哲學博士研究生,未到三十已經修讀博士的八十後。在他廿多歲時成立了自己的博客,作為推廣哲學的平台,不久出版第一本刊物《哲學哲學雞蛋糕》(2013年)。他與友人Pansci泛科學的主編陸子鈞成立了設計網站Anchr,把美學運用在商業設計裏。朱先生明顯是希望推動大眾認識,他認為台灣仍然有些人把哲學視作一門宗教及神秘的算命迷信學科。在香港,我也不敢排除這個可能,因為很多哲學學位與宗教研究有關,這是歷史使然的發展。例如浸會大學的文學院在1962年創立的宗教及哲學系,包括了宗教研究、倫理及哲學三個範疇。西方哲學史是從雅典的哲學巨人從希臘神話中逃逸出來的。哲學學者素來需要站在思想與考據的高地中觀察這個世界和宇宙的運作,這是宗教研究最理想的位置,科學也是從哲學中獨立出來的學科。哲學被所誤解的原因,正是我們需要哲學的原因。
(more…)

Build a Blog with Laravel 101

Laravel is an open-source PHP web framework created by Taylor Otwell and intended for the development of web applications following the model–view–controller (MVC) architectural pattern. The very first version was created in 2011. Back in those days, there were already several frameworks among the industry.

Some of the features of Laravel are a modular packaging system with a dedicated dependency manager, different ways for accessing relational databases, utilities that aid in application deployment and maintenance, and its orientation toward syntactic sugar. (more…)

[廣告絮語]香港廣告營銷博客的一些事兒// Marketing Blogger in Hong Kong

喜歡廣告喜歡營銷的都會聽過4A’s,讀過一些廣告博客,趣味這個圍城瑣事。法國詩人曾經將婚姻比喻成一座堡壘,城外的人想入非非,城裏的人想闖出困局。Le mariage est une forteresse assiégée, ceux qui sont dehors veulent y entrer, ceux qui sont dedans veulent en sortir. *後來錢鍾書用來寫了他惟一一部長篇小說,命名圍城,文學泰斗夏志清讚不絕口。廣告人想做廣告,就像這個圍城,想入非非, 或想逃之夭夭,不甘被商業社會榨取得一點不剩。如果那些營銷和廣告博客和九十年代的廣告逸事能夠寫部圍城,肯定不輸7季美劇Madman廣告狂人。讀書時代,也許聽過saatchi & saatchi收購了黃霑和香江才女林燕妮創辦的黃與林廣告的故事。那是黃霑雅譯可口可樂Coca cola,張國榮風華絕代的年頭。 (more…)

哲學、科學與工程學——工程設計的致命意外(上) Philosophy, Natural Science & Engineering Failures——Engineering Disasters

(筆者按:今天本來想說說工程學和案例,為了梳理背景,竟然寫了一編科學的詞源,敢勞閣下不厭其煩先略序文,首先要提到科學的起源:…

很多人都不敢相信,科學來自一個迷信的世界,彷彿它是自有永有般存在。提到科學這個詞,它原來出於一個漫天神明的上古世界,它是哲學的一個分支,叫自然哲學(Natural Philosophy),被柏拉圖視為次要等級的哲學、被洛克(J. Locke)視之為物理知識,現在的院校科學學者的最高銜頭是自然哲學博士。在很久很久以前,哲學這一詞誕生在希臘這個多神祗的國度之上,這大概是公元前六世紀以前,思想家一邊以希臘文寫詩,一邊想著這個世界的構成並以自然界的現象佐證,因而孕育出哲學思想,猜想神話以外的世界。後來哲學在神話和詩歌中漸漸獨立出來,到了古希臘的三條鐵漢,蘇格拉底、柏拉圖和亞里士多德掀起了哲學風氣,哲學家見證和紀錄了雅典的興衰。哲學(Philosophy)意思是Philo(喜好__的人)和Sophia(知識),目的是探求和發掘一切知識,跟我們instagram按Explor和Google簡直沒有分別,都是吃飽後無所事事的導致的。後來希臘的智者們東拉西扯,為了平反自然哲學,找了Scientia(知識)取代自然哲學(Nature philosohy)來開展討論,而這個Scientia就是現在的科學前身。
(more…)

印刷與字體:中日美文化風潮隨筆一則 What You Need To Know About Fonts and Prints

蕭風颯颯掃過遍地枯黃,那種灰黃,是從前香港練習簿被時間風傷掠過剝落的皺痕。早年本地的書法文具,用的是傳統中國印刷綫裝書風格,這種情況持續了七八十年。包裝書本的方法,叫裝幀,常於書畫卷軸當中。有卷軸裝,經折裝,旋風裝,蝴蝶裝。蝴蝶裝最常見於習字簿裏,因為是方便裝幀,以中縫為準,將內容對摺,版心內向,書葉開合翩翩然如蝴蝶,故曰蝶裝。關於書本裝幀,可參考曦成的蝶舞裝幀。早期的學校會委托印刷商出版印有校徽或圖文的練習簿,大多使用一層薄薄的透底宣紙,上面印有淡紅色方格。有些中文書法簿裏的書葉中間,能加一頁字牌在內印著書寫,或印淡淡泛紅的朱筆字樣,「上大人孔乙己」書牌幾乎中文教育長大的一輩都寫過。至於英語有雙行簿單行簿;數學有方格簿,都是由左至右,只有從前的中文習作和傳統書籍是從右至左的。中文書寫方便創作新的內容,英語書寫和數學公式則重檢視上文邏輯,或許這些文化差異,與思想取向有關。

古典明朝體是新近出版的電腦字檔,參照了中國碑帖和西方哥德式書法(gothic),尤其回鋒勾勒之處

除了香城字簿那些彷若隔世不覺經年的符號,寶島台灣掀起的文青風潮,也掀起了明清時代的復古字體,一時風行各地。北京字體設計師厉向晨製作電腦字型「康熙字典體」成名後,成立文悅科技/文悅字型。由於康熙字典體有別於以往華康公司的設計標楷體和明體,被中港台廣泛用於海報書封設計,可參考elephant gun gothic的康熙字典體觀察。康熙字典體直接使用清道光七年(1827年)再版的複製文本,幾乎未經校對,文字帶有破損的邊緣,後來被中國化妝品牌「阿芙精油」買斷版權後已不再銷售;古典明朝體是新近出版的電腦字檔,參照了中國碑帖和西方哥德式書法(gothic),尤其回鋒,是前者的互補作品,據稱沒有缺字質量更高。明朝體是明代(1368-1644)印刷體;康熙字典是清代(1644-1912)官方百科全書字體,兩者對中國文化藝術有極大意義。可惜康熙字典體僅為一人實驗產品,以Bitmap-traced直接影印中華書局的文字,缺乏品質保證,但其復刻開發之路價植極高;古典明朝體是中西文化共融的體現,起筆的回鋒,有如西方的哥德式書法(gothic),頗巨創意,設計者使用在封面設計時應該慎重使用。中國印刷字體的設計有其歷史考慮,中國印刷術自宋朝發明已歷千年,保存書籍的問題一直困擾至今,由於室內濕氣容易使書本發霉,藏書人需要定期晒書,防止墨水日久脫落或溶掉,甚至後來發展到晒書節。宋代印刷術,原是參考唐人楷書畫法風格,隨著活字印刷成熟,明代印刷家為了減低損耗和順應木板天然紋理,楷書的左低右高的斜橫演變成直橫、豎劃加粗,明代字體已別於宋代楷書。當時的字體設計除了考慮美感,也出於收藏多年仍能歷久常新易於辨識,尤其明代出版了永樂大典,印刷體也隨著轉變。明朝第三個皇帝明成祖朱棣,他是篡位弒君叛亂奪得其姪兒帝位的,為防文人諷議皇統,朱棣以修書名義,出版明代的永樂大典,分類經史子集,實質奉行箝制文化的文字獄,操控思想。明代盛行印刷,那種復古的宮庭字體,是在這種背景下醞釀的。

人們都是一知半解的,我們都是一知半解的。但實然不能推出應然,這裏要說一個故事。日本知名的小說作家村上春樹,他在2002年寫過的一本隨筆集《蘭格漢斯島的午後》(ランゲルハンス島の午後),裏頭有一篇散文叫《小確幸》,後來隨筆集的被台灣翻譯後,小確幸一詞一時成為中港台熱語,成為幸福溫馨洋溢的同意詞。 (more…)

the easiest hack, sql injection

最簡單的駭客方式——SQL植入

一次我在半島冰室用膳,在旁邊的客人,一個介乎脫髮的中青年對著三五位男女同事哈哈大笑道,「聽聞SQL被喻為掃地呀姐都能夠識寫既語言。」我初時想,程式員究竟有多輕視SQL?後來發現自己的想法都有點兒政治不正確(political incorrect)。只能說,他對 SQL 的讚美與他對掃地職業的尊重相稱。或許SQL對掃地姐姐來說十分容易上手,或是寫SQL的人都很腳踏實地「down to earth」,願意落手落腳(get hands dirty)。言歸正傳,所謂的SQL即是代表Structured Query Language。幾乎無程式員把SQL之為程式的語言,它就像是上網時候用來Search搜尋的格式,用來查詢數據庫的數據。就像上google 搜尋 “site:luke.hk Luke”,你只會屬到特定網址的資料一樣,是一種格式。
(more…)

Back
Copy link
Add to
Email
Facebook
Whatsapp
Gmail
More
Save
Like
Cancel