[System Design] Data model: Relational V.S. Document
開發應用程式時,時常使用到資料庫,儲存資料並在之後需要時將其取出,如今有許多的資料庫產品可供選擇,提供各種不同的data model及function,在各種使用情境下有不同的表現,開發者根據你的應用程式的需求、資料之間的關係、access pattern、scalability、ACID transaction、fault-tolerance、會有各種不同的適合的選擇.
接下來只單純討論資料庫提供給我們application programmer們的data model,看看是否在哪些情況比較適合用哪一種,
如何用create-react-app開發,整合一個或多個API backend server
在開發single page application時,會需要透過api來取得及操作資料,本篇文章將示範如何在使用create-react-app開發時,整合一個甚至是多個backend api server!
Create-react-app
使用create-react-app時,簡單一個指令npm start 就可以開始開發,此時CRA會起一個webpack dev server來serve static files,通常我們會想要做類似這樣的動作: fetch(
[Networking]Application Layer Overview,什麼是Socket?
Process communication
上次講過了網路的分層架構之後,接下來要來關注application layer,這一層就是我們應用程式所在的地方,應用程式可能是網頁瀏覽器、電子信箱、Skype等等,每種不同的應用程式會有他們自己的通訊協定,規定應用程式之間該如何交換資料,以及資料的格式,常見的協定例如是HTTP、FTP、DNS等等.
那application layer的process們之間要怎麼互相通訊呢?就是要利用transport layer所提供的服務.
What
[Networking] 網路的架構,Layered Architecture
網路是個如此巨大的工程,要如何架構,才能讓全世界的人通力合作,一起打造這豐富的世界呢?答案就是Layered Artichecture .
Layered Architecture
網路的最終目的,就是讓兩個執行在不同機器的程式可以互相溝通、交換資料,例如你的瀏覽器chrome跟網頁伺服器溝通,你手機的Skype跟另一個人的Skype溝通,而這中間,資料經過了重重難關、無數的機器及路由器,這麼多的機器到底是如何一起合作的呢?
答案就是分層的架構,Layered Architecture,
[Networking]什麼是網路?網路的組成及網路服務供應商 ISP
網路,可能是人類最大的工程成就之一,如今有數十億的人透過網路連接,在幾秒鐘之內就能夠互相通訊、完成某種任務,各種裝置互相連結,包括伺服器,個人桌上型電腦、平板、手機、未來還會有更多樣的things加入,例如車子、家電、各種感測器 ,等等.如此巨大的工程,大規模的全世界的共同合作,到底是如何做到的?工程架構的決定、協議的制定都值得去借鏡學習.
[Google Sheet]Sparkline,在儲存格裡插入迷你圖表
Sparkline用起來長怎樣
我在[Google Sheet]我如何製作進度表這篇裡
以及[Google sheet]我如何製作股票損益表,自動抓取最新股價
大家可以看到一些儲存格裡都有迷你圖表,像是柱狀圖、線圖,這就是sparkline這個函式的功用,讓我們不需要額外插入一些圖表,就能直接在格子中畫圖.
Sparkline用法
sparkline(range, [options]
什麼是message queue? 優點及使用場景
在大型網頁應用程式系統中,當我們的服務越來越多,服務之間就需要溝通,透過http restful api,想必大家都一定遇過,或許或多或少也聽過使用message queue,那到底它是什麼?為什麼要用它?以及跟restful api有何不同的使用場景呢?
什麼是message queue?
顧名思義,就是有個queue,訊息先入先出( FIFO ),基本上就是提供一個讓不同process間通訊的方式(
快速擁有一個Asynchronous Task Queue,使用Redis and Kue.js
這是篇教你如何在node.js環境下,快速擁有一個Task queue的tutorial,如果想了解什麼是message queue,以及為什麼跟什麼時候要使用它,可以參考我的另外一篇文章什麼是message queue? 優點及使用場景!
Outline
1. 部署Redis,使用Docker,在本地起一台Redis
2. 介紹Kue.js
部署Redis
先準備一個shell
[Google Sheet]我如何製作進度表
追蹤每項任務到目前為止的進度,或每段時間(每天、每個禮拜、或每個月)的努力情況
首先先把任務跟時間輸入進去,如下圖:
1.
時間只要輸入兩格就可以了,點住右下角的小藍點往右拉,就會補上一樣間距的時間,也就是說那兩格如果是差一天,之後每一格都會差一天,一個禮拜、一個月亦然.
2.
代表每項任務需要完成的單位,簡單用數字量化表示,比如一堂課有10週的課程,
InstMap TW — 從地圖上找尋附近的台灣Instagram熱門景點
到了一個地方,想知道附近有什麼好玩的景點嗎?想看看IG,Instagram上大家都去哪裡嗎?可以使用我最近做的一個玩具服務InstMap TW,找尋台灣最多人標記的地標,或是附近最近的相對熱門的地標.
點選地圖旁的小人圖案,可以使用您現在的位置做搜尋,不想開定位的話,也可以手動拉動地圖改變中心點.
每個地點點進去可以看到該地點的貼文,可切換成瀏覽圖片或是日期、文字、按讚數、留言數等相關資訊.
使用到的技術、工具、服務大概是