A Linux HTTP client tool — curl的介紹及用法
做為一個HTTP client,想要對server發出請求,有許多做法,可能是寫一個python script 或使用其他任何語言,也可以是使用postman這樣的工具,或者是直接在command line上或shell script中使用curl指令.當你想要快速地測試一下某個API,或是explore別人的HTTP service時,直接使用curl是還蠻方便的!甚至直接用shell script來寫爬蟲了!
Outline
* HTTP Request
HTTP 簡介,以及使用telnet、nc、curl等指令來探索
在網路的世界裡,HTTP扮演著一個重要角色,當你打開Instagram看著無以計數的照片、打開Youtube看看影片、在google上搜尋著你想要知道的答案、瀏覽著別人的網站文章,這些都是HTTP負責把上述的這些照片、影片、文字、等檔案資源從別處的伺服器搬到你的裝置裡,可能是你的手機、平板或是電腦.
HTTP在OSI模型中,是屬於應用層(Application layer)裡的一個通訊協定,透過傳輸層(Transport layer)
[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加入,例如車子、家電、各種感測器 ,等等.如此巨大的工程,大規模的全世界的共同合作,到底是如何做到的?工程架構的決定、協議的制定都值得去借鏡學習.
什麼是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
InstMap TW — 從地圖上找尋附近的台灣Instagram熱門景點
到了一個地方,想知道附近有什麼好玩的景點嗎?想看看IG,Instagram上大家都去哪裡嗎?可以使用我最近做的一個玩具服務InstMap TW,找尋台灣最多人標記的地標,或是附近最近的相對熱門的地標.
點選地圖旁的小人圖案,可以使用您現在的位置做搜尋,不想開定位的話,也可以手動拉動地圖改變中心點.
每個地點點進去可以看到該地點的貼文,可切換成瀏覽圖片或是日期、文字、按讚數、留言數等相關資訊.
使用到的技術、工具、服務大概是