Image for post
Image for post

以前我剛學程式的時候,很多人建議我直接用 Mac 或是 Linux,而我最後也選擇了 Mac。直到近幾年,大家紛紛說 Windows 已經跟以前有很大的不同,許多人也開始推薦起 Windows 做為開發環境。

而我在進行「饅頭計畫」的教學中,也有許多學生需要使用 Windows 作為開發環境,因此,我想要來試試看,Windows 是否還是像以前那麼雷。

我們就一起開始探險吧!

Image for post
Image for post

當我踏出了第一步,就前進了一步

第一步,需要一台 Windows 電腦,這很重要!沒有 Windows 電腦怎麼用 Windows 開發呢?那麼有幾個選擇,在 Mac 裡面灌 Windows 雙系統,或是再買一台桌機獨立使用。

好雙系統,不用嗎

Image for post
Image for post
雙系統示意圖

一台電腦雙系統優點是帶著一台電腦,就可以享受兩個系統的優點,但是一台筆電就那麼小,即使裝了 Parallel desktop,我覺得使用起來記憶體的限制和硬碟限制非常讓我不舒適。所以我在好幾年前就拋棄了這種使用方法。

所以回到原標題,好雙系統,不用嗎?謝謝再聯絡。

嘿嘿嘿,買兩台電腦,就不怕吃資源了吧?

Image for post
Image for post

一台電腦不夠,買兩台總行了吧?加購一台 Windows 電腦,切換著用。需要的時候再換一臺電腦。

Image for post
Image for post

可是瑞凡,兩台電腦需要兩倍的軟體,錄影軟體要買兩套,office 要買兩套,滑鼠鍵盤都是兩套。我的 Windows 只是想要用來開發的,有必要那麼搞剛嗎?

有沒有兩拳其美的方案?

沒錯,我沒有打錯字,一拳 Mac 一拳 Windows,兩拳其美。

最後我選擇的方案是,買一台桌機後當成遠端電腦用,雖然擺在房間裡,但是直接遠端過去,除了初次安裝 Windows 以外,只要使用一組鍵盤滑鼠。錄影軟體用原來 Mac 買的就好,也能夠沿襲原有的 Mac 操作習慣。

Mac 工作模式:一台 macbook 加上一台外接螢幕

Image for post
Image for post

Mac + Windows 工作模式

Image for post
Image for post

這樣就可以在需要的時候隨時 Remote 過去 Windows 的電腦。為什麼要這樣做呢?因為我不能忍受電腦卡頓,這樣所擁有的資源是:

Macbook Pro: 16GB ram + 512GB SSD
Windows 桌機:8GB Ram + 256 GB SSD + 1T 硬碟

因為 Windows 用來做簡單的開發,主力剪影片轉檔或是跑比較重的工作還是用 Macbook Pro,搭配起來我覺得簡直絕配。

總花費也不會太高,這樣規格的 i5 Windows 桌機,只要 15k,CP 值頗高。

剩下的問題,網路是否有延遲?

這樣的開發環境,從 Macbook 遠端過去 Windows 是否會延遲?因為我的 Windows 擺在房間裡面,並且我選用了一款「支援區域網路連線」的遠端桌面軟體,幾乎感受不到延遲,簡直跟裝在同一台電腦裡面沒兩樣。

Image for post
Image for post

Windows 桌機我買哪一款呢?

隨便挑了一款 D 開頭的品牌機,品牌機的特色就是可以請「維修人員到府幫你修電腦」,我實在懶得比來比去,什麼顯卡 CP 值比較高,之類的比較。通常這種電腦設備過幾個月就過時了。

所以我選擇懶人中的懶人買的品牌機,到府維修三年保固,有問題直接請人到府維修,連搬去光華商場都不用。

心得

這樣就讓我踏出了打造舒適的 Windows 開發環境的第一步,也完成了「兩拳其美」的狀態,我想要用哪個系統,都有足夠的硬體支援與軟體可以使用。雙系統的部分搞定了,接下來下一篇來介紹 Windows 開發環境的安裝。

如果覺得我的文章寫得不錯,請不吝按下訂閱,我會寫更多這種奇葩的文章。如果覺得的文章寫的很差,用拍手打醒我,謝謝你的閱讀!


Image for post
Image for post
目錄:
1. 資訊安全 Security
2. 計算機科學 Computer Science
3. 後端 Back-end
4. 前端 Front-end
5. DevOps
6. 養小孩 - 不是我的,超前部屬一下

這篇文章蒐集了 IT 邦幫忙第 12 屆鐵人賽 的好文。習慣性的整理一下今年新的鐵人賽資訊,方便以後查找。今年我覺得資安系列非常精采,許多令人眼睛為之一亮的系列。

今年除了官方網站的排行榜外,也再次感謝熱心的 qrtt1 大大幫大家製作了排行榜,大家可以藉由這個排行榜來得知哪些系列是目前最多人觀看與訂閱的。

也附上上一屆的懶人包,方便大家查找:

資訊安全 Security

▍推薦閱讀一:如何利用TCP四向交握取得鄰居的Wi-Fi密碼

看到這一篇乖乖不得了,原來平時我的 wifi 密碼都這麼容易取得?這一系列的主題原本叫做「那些年還給老師的TCP/IP五層結構 — 用Python進行網路封包分析」,本來在猶豫要分類到哪一組,看到這一篇我就立刻知道怎麼分了。

▍推薦閱讀二:資安這條路─以自建漏洞環境學習資訊安全

這系列滿棒的,用 docker-compose 自建環境,透過攻擊自建環境學習資訊安全,配合資安大補帖 系列效果更佳。

▍推薦閱讀三:從 0 開始的 Web Security

這個系列也是很補,從零開始教網路知識,然後再介紹各種攻擊手法是怎麼樣。也介紹了以前用來斷鄰居網路的 NetCut 原來利用的就是 ARP Spoofing。

筆者註:當資安工程師的鄰居好辛苦阿,又被偷密碼,又被斷網。

計算機科學 Computer Science

▍推薦閱讀一:擁抱「資料結構」的「演算法」

這一系列用生活化的方式來講解資料結構與演算法,我覺得非常的棒。例如:使用初診單的櫃子來說明資料儲存。在每一次看診時,會先去找出病歷,並將最新的就診紀錄繼續寫在上面,要如何透過好的分類去歸檔,搭配好的存放方式來快速的找到。

Image for post
Image for post

▍推薦閱讀二:拯救資工系學生的基本素養

有幾個主題我覺得還不錯:使用 time 指令測量程式使用 GDB 除錯基本教學建立一個簡單的 HTTP Server資工領域的英文學習。不過這系列是影片版的,我個人比較喜歡看文章。所以大家依照喜好自行取用囉。

後端 Back-end

▍推薦閱讀一:今晚我想來點 Express 佐 MVC 分層架構

這次我推薦的後端文章大部分是新生代寫的,不像去年推薦的那麼硬,有大量的理論。第一篇來推薦的「今晚我想來點 Express 佐 MVC 分層架構」,作者想要使用 express 來建構比較大型,具有結構性的專案。文章中有講到一些細節,看得出來是有實際摸過一陣子整理出來的心得。不過筆者比較少寫 Node.js 不保證內容絕對正確,推薦的原因是細節與觀點值得一看。

▍推薦閱讀二:菜雞前端邁入網頁即時通訊(WebRTC)之旅

由「早晨來杯咖啡」帶來 WebRTC 的完整介紹,系列文中分為知識篇與實作篇,知識篇學理論,實作篇驗證是否可以應用自如。對於沒有使用過 WebRTC 的還是很值得一看的參考資料。

▍推薦閱讀三:前端工程師一起來種一棵後端技能樹吧!

成為一個前端工程師,如果想往後端走,可以怎麼學呢?這個系列文,就從前端工程師的角度,帶大家走訪一些後端的技術點。IOC 控制反轉 & DI 依賴注入、Message Queue、Web Server & Nginx … 等等。內容充實值得大家一讀。

前端 Front-end

▍推薦閱讀一:Functional Programming in JS

這個系列文從 「為什麼要學 Functional Programing 」開始,一步一步解析各種 FP 的名詞,對我這種 FP 小白,幫助很大。

▍推薦閱讀二:打通 RxJS 任督二脈

本系列文章主旨是「以最簡單的方式把 ReactiveX 及 RxJS 相關知識分享」,滿棒的,我喜歡系統性的吸收資訊。

▍推薦閱讀三:金魚都能懂的Bootstrap5網頁框架開發

Amos 這次送上大禮,Bootstrap 5 免費線上教學,還沒跟上 Bootstrap 5 的趕快上車囉。(本文是影片教學)

軟體開發 Software Development

▍推薦閱讀:從零開始的異世界程式觀 — 函數式程式設計的試煉

作者泰安寫了一本小說,來解釋函數式程式設計,讓我這個 FP 的麻瓜,讀可以一邊讀小說,一邊體會 FP 的奧妙。文內還有精美的插圖(如下),很棒吧!。

Image for post
Image for post
https://ithelp.ithome.com.tw/articles/10237918

DevOps

Kubernetes 跟去年一樣,標記當書籤來用,目前還是有投資一定的時間在這一塊。以下系列文是看到不錯會想要細讀的。

養小孩 —不是我的,超前部屬一下

▍推薦閱讀一:出人命啦~只好養小孩

一個人照顧小孩最擔心的就是被孩子綁住,所以每次把女兒哄到睡著之後,我就會在嬰兒床旁架上遠端監控,再到遠得要命的廚房用平板打開監控畫面,然後才能放心的洗她的奶瓶、奶粉罐及小碗等用具,現在洗完奶瓶也有消毒鍋幫忙消毒加烘乾,不用擔心下一餐沒有乾淨的奶瓶可以使用。每天從托嬰中心回家後,我也會透過遠端來控制房間的冷氣,在孩子回家前就先降低室內溫度。(本段引用自內文)

▍推薦閱讀二:為你自己的小孩學程式設計

菜市場阿龍教自己家的五年級小朋友寫 javascript,很有趣,還真的有小朋友,現場教到會。

心得

新年因為疫情的關係,各大活動如:JSDC、Modern Web、Mopcon 都辦在下半年,有些講者在準備演講之餘,還需要寫鐵人賽,真的有心。

今年有猶豫要不要寫這篇,後來想說做個筆記還是寫一下。寫完感覺還不錯,歸納了今年從鐵人賽獲得了什麼東西。希望這篇文章合大家口味 🙂

喜歡我的文章,請訂閱我的 medium,你的支持是我寫作的最大鼓勵!


挑戰最難的教學,以成果為導向的就業服務

Image for post
Image for post
Photo by Hudson Hintze on Unsplash

為什麼而開始?

Hi!我是 Luka,一名全端轉後端的工程師。職涯的初期我使用的技術為前端 Vue.js + 後端 Rails 為中心。專長快速打造各式各樣的網站。之後我將快速打造各式網站的技術,濃縮成「網站複製之術」,免費傳授給初出社會的前端工程師,過程記錄在「不管你是前端、後端,兇狠的變強吧!」一文之中。由教導初階前端工程師 MJ 的過程中,敘述了完整的網站開發流程。

幫助了一位工程師感覺不錯,接下來我想幫助更多的初學程式者,於是規劃了並開始了饅頭計畫第一彈「從零開始茁壯吧! 一步一腳印,扎實成長」。從零開始教學新手,幫助各式各樣的人達成他們想做的事情。

經過了一年的努力,15 人跟課到最後,10 人轉職成功!。過程與心得記錄在「饅頭計畫第一彈成果分享 feat 想學什麼跟我說吧!」一文中。

教學是一個很花時間的事情,究竟要不要繼續教學呢?補習班老師一大堆,我究竟要不要入坑?在這些教學的過程中,我感覺到幫助別人達成想做的事情,比提昇自己的物質生活還要快樂。所以我想持續做下去。

課程目標

用最極限的速度幫助你找到工作

培養你成為一個工程師應該有的思維和技能。打下扎實的基礎,讓你可以在學習程式的路上有一個很好的開始。在你之後挑戰更高的職缺時,你會感受到基礎的重要性的。

  1. 扎實的基礎,如何看官方文件,如何使用最原始的工具來開發。
  2. 如何問問題,問題問的好,事情就解決一半了。回答者省力,你也可以快速得到答案。
  3. 實作能力,用「作品」來展示你的生產力讓未來的雇主看到你的誠意。
  4. 培養面對問題的思路。
  5. 了解就業所需技能與能力

我會介紹很多很棒的線上資源供你挑選適合得來學習,告訴你就業可以朝哪幾個方向前進、累積。讓你變成一個有潛力的初階工程師。

課程涵蓋範圍

第一部分:前端打底

  1. 網頁概念介紹 — 網頁到底是什麼?HTML / CSS / Javascript 是什麼?
  2. 開發工具介紹 — VS Code 加好用套件介紹,好摺凳不用嘛?
  3. HTML / CSS 基礎教學 — 製作你的第一個網頁。
  4. Git 基礎教學 — 上傳你的第一個網頁讓全世界都看的到。
  5. Command Line 基礎教學
  6. Bootstrap 基礎教學 — 自己刻太累了?使用現成元件來製作網頁看看。
  7. javascript 基礎教學 — JS 是你的第一個程式語言,跟他說個 Hi!
  8. jQuery 基礎教學 — 用 jQuery 易用的特性來探索 JS 能做到哪些事情吧!
  9. AJAX — 用 AJAX 串接…


最後成果:15 人跟課到最後,10 人轉職成功!

Image for post
Image for post
饅頭計畫一慶功趴,畫面上除了一位還是學生,其他都找到工作了!

前情提要:

Hi, 大家好,我是 Luka 。饅頭計畫(Mentor Program)是一個自發性的免費教學,透過教學的過程中,得到自己需要的東西,這些東西可能是教學經驗,可能是找到自己的興趣。

之前我做完了饅頭計畫「零」之後,我就開始啟動了饅頭計畫「一」。經過了一年多的時間,我覺得是時候來分享一下成果。更重要的是:

來徵詢一下大家的建議,讓我比較好決定饅頭計畫二究竟要做什麼事情?

下面是以前寫的文章,過了許久,不知道大家還記得嘛?

接下來我就來說一下饅頭計畫一的成果與達成的里程碑。最後跟大家討論一下,究竟饅頭計畫二,要教些什麼,比較符合大家的期待呢?

最後成果:15 人跟課到最後,10 人轉職成功!

饅頭計畫第一彈總共 100 人錄取,最後跟完課的 15 個人, 10 名轉職成功,其中一名原本就是工程師,不計算在轉職結果內。為什麼 100 人之中只有 15 人跟到最後?等等說明。先列出轉職成功的職業分布:

  • 轉職成前端工程師:5 名
  • 轉職成後端、全端工程師:5 名
  • 原本就是工程師跟課到最後:1 名
  • 未如願轉職成工程師:4 名。

我覺得結果還算滿不錯的,幾位從一開始就背水一戰辭去工作的,都順利找到工作。然後一些有潛力的同學,經過一年的磨練,潛力也慢慢兌現。思考方式也挺正確,後勢看好。

學員最後的的薪資基本都落在 40k 以上。如果獲得 40k 以下的工作,我會想辦法幫學員快速躍升到 40k 以上的工作。個人認為這樣的工作比較有發展性,也有多一點錢可以持續進修。

ps: 實際上這 100 人有找到工作的有更多人,但是如果「我沒有感覺到是我幫助你找到工作的,這樣我不會將數字記錄在轉職成功之中。」

達到了哪些里程碑?

1. 幫助朋友從 HTML 都不會到找到工作,4 個月達成。

如果對自己教學有自信的話,當然是從自己的朋友教起。饅頭計畫第一彈的第一個里程碑是幫助了自己的朋友,從完全不會寫程式蛻變成一個合格的工程師,共花了四個多月找到工作。

這是一個全職轉職成功的例子,花了我不少時間,幾乎一對一緊迫盯人,因為是自己的朋友,而且是我勸他轉職,總要多照顧一下,確保每一個點都學習扎實。

他的第一個 offer 在還未學習到 vue.js 就拿到,且順利就職,薪水是 38k。因為是自己的朋友,我覺得這個缺沒發展性,在這個時代真的是不會 vue.js / react.js …


TL;DR 的意思是:哩供蝦?講重點好嘛?

Image for post
Image for post

TLDR 能夠讓初學程式的新手 ,輕鬆了解命令列工具的各種 Linux 指令,並且自由運用。本篇文章分成幾個兩個部分:

  • 命令列工具 Command line tool 到底是什麼東西?
  • TLDR 是什麼東西?它如何幫助我們快速適應 Linux 命令列工具?

話不多說,我們開始吧。

命令列工具 Command line tool 到底是什麼?

命令列工具的英文是 Command Line Tool。下圖就是常見的命令列工具。那麼他的作用是什麼呢?

Image for post
Image for post
source: http://www.blogjava.net/xiaomage234/archive/2016/04/06/429988.html

命令列工具的作用是「透過下指令的方式來做到你想做的事情」

這是什麼意思?為什麼要透過下指令的方式讓做事?原因是:

用命令列工具的來做事情非常有效率。

試想如果你想要安裝一個知名影音播放軟體 VLC,你會做些什麼事情?首先你會 Google,開幾個網頁,看看哪個載點比較值得信賴,然後選一個覺得不錯的下載,等到下載完成之後再安裝。

哪麼換成命令列工具呢,只要下一行指令即可

brew cask install vlc

來看看會發生什麼事情?

Image for post
Image for post

VLC 已經裝好了,終端機顯示 VLC 安裝在 /Applications/VLC.app。接著我們打開 /Application 資料夾,VLC 已經安裝好了。

Image for post
Image for post

也許你覺得用手動點擊也可以幫你做到同樣的事情,但是當這種有效率的小動作逐步累積的時候,就會造成效率上的極大差異。別人用 15 分鐘做好的事情你可能需要花一個小時。隨著做的事情越複雜效率的差異會越大。

命令列工具那麼好用? 那到底要怎麼用?

tldr 就是告訴我們各種 Linux 指令怎麼用的工具。

TLDR 登場,看看它如何大發神威

這下子就輪到我們的主角登場啦,TLDR!TLDR 能夠用最簡短的方式告訴你各種指令的用法。

TL;DR 是 too long; didn’t read 的縮寫,初學 Linux 的時候一堆指令的縮寫有夠難懂,什麼 lspwdmv … 諸如此類的指令。當你不懂的時候怎麼辦?用 TLDR 就對了!

來示範一下怎麼用,假設我們不知道 ls 指令怎麼使用。想破頭也不知道 ls 指令到底用來幹嘛的? 輸入 tldr ls 立刻了解 ls 如何使用。

Image for post
Image for post

從上圖中的第一行就告訴你,ls 的功用是列出目前資料夾的內容。如果你需要更多的用法,可以參照 tldr 幫你精選出來的各種常用指令。TLDR 絕對不完整,但是很容易上手!

另一種對比的 Linux 完整文件的指令是 man,在終端機輸入 man ls ,呈現的樣子如下圖,落落長,跟 TLDR 完全相反,保證完整,但要看很久。我們常常只是要用 Linux 指令做一些簡單的事情,所以並不需要看的那麼仔細。

Image for post
Image for post

再來試試看 pwd,可以很清楚的看到 pwd的功用是印出目前工作的目錄。

Image for post
Image for post

然後你再輸入一次 pwd,就可以很清楚的知道「顯示出來的內容是目前的工作目錄」

Image for post
Image for post

TLDR 如何安裝?

既然是新手教學文,最後我們就來講一下怎麼安裝

npm install -g tldr

一行指令搞定,就是這麼輕鬆寫意。

小結

TLDR 的出現,讓我除了鳥哥的Linux 私房菜以外多了一個認識 Linux 指令的管道。更有趣的它是一個開源專案,如果用 tldr 某某指令 找不到結果,你還可以自行貢獻自己的小抄,讓世界上的其他人用得到。對於新手來講是一個滿好入門的工具。

如果覺得我的文章對你有幫助 ,來 follow 我吧!最近我會常寫文的呦。
也別忘了 follow 星巴哥技術週刊,每週推送優質原創文章!


推薦給對海外生活、軟體開發有興趣的你

Image for post
Image for post

這兩年來有一件滿棒的風氣,台灣的開發者,特別是海外的開發者,開始錄起了 Podcast。用聲音作為媒介,來傳達與分享自己的生活。所以今天特別蒐集了一系列由台灣的開發者製作的 Podcast 頻道。並且蒐集了許多有意思的主題,跟大家分享。內容包含了各國生活的分享與攻略,矽谷、荷蘭、澳洲、日本生活通通有。

除此之外,還有幾個非常適合開發者收聽的優質 Podcast 頻道,分享給大家。下面的「順序不代表排名」,依照書寫方便的順序寫下:

Just Kidding Tech 輕鬆談科技

Image for post
Image for post

在這個頻道我們會聽到美國矽谷軟體工程師 Kenji 第一手的經驗分享,跟大家聊聊如何在瞬息萬變的科技業持續學習與成長。我們會談到軟體開發、工程師的職涯發展以及美國科技公司的八卦等等,幫助大家持續學習,成為更好的工程師!

輕鬆談科技的主持人 Kenji 聲音好聽,節奏掌握的也很好,收聽起來很舒適,如果你對矽谷生活有興趣,想去美國求學,這是一個必備的 Podcast 收聽頻道。

Week self 我就弱!

Image for post
Image for post

集結弱弱的我,也可以組成強大的社群。三個在 iOS 開發圈打滾的台灣工程師,專為 Apple & iOS 開發者而製作的 Podcast。主持人一三波肥喬喬。內容涵蓋了 iOS 與 Apple 開發圈的新知討論、踩坑經驗、人物採訪、社群活動、職場生活。

weak self 真的是很有趣的頻道,大部分的 Podcast 會由一位固定的主持人,而 weak self 是由三位主持人來主持,這樣的組合下會導致 … 特別歡樂 。內容也是乾貨滿滿,推薦一聽。看下面的主題就知道,iOS 開發者平時壓力很大😆

Taiwanese Expats in Tech

Image for post
Image for post

由 Bruce 所製作的…


十萬人同時在線的網站 300 萬算不算貴?

Image for post
Image for post
Photo by Doug Maloney on Unsplash

前情提要

最近在 PTT 上的熱門議題,館長花了 300 萬製作了一個新網站,但同時上線人數到達 5000 ~ 6000 人時,就當機了。然後還有亂開發票的意思,點選勾選欄(checkbox)就噴發票,這真的滿扯的,害得館長團隊的客服要一一核對發票,補開發票。還有很多很離奇的事情大家就自行看影片了解:

館長新的官網:
https://notorious-2019.com/Default.aspx

附上影片:從 7 分鐘開始注意右邊聊天室資訊,開始出現大量伺服器當機的留言。

同樣是接案公司,戰鬥力差異極大

接案公司是非常兩極化的,一般小案子的需求一直都有,高階需求的外包案,例如:高流量網站,或是功能性極度複雜,加上整個網站的流暢度。

低技術性的外包公司 — 有的接案公司吃的是低階市場,只要你網站做出來就好了,可以跟公司交差,實際使用的顧客其實不多。剛工作的一兩年就可以接案,用一些既有的套件兜一兜就變成了一個購物網站。

高技術性、兼具顧問能力的接案公司 — 而有些接案公司是業界知名大大開的,兼具顧問能力,可以快速精準的達成問題。因為具有顧問能力,所以困難的問題例如大流量的網站,加上搶紅包這種瞬間會將流量推至數十倍的流量高峰的問題,就是這些前輩出來開接案公司的原因。

有技術難度,代表可以讓案子的金額談高,利潤高,有能力接下案子競爭者也會少的多。

大家通常會比較困惑,到底接案公司是好還是不好?真的不好判斷。不是技術出身的人,或者沒有長期接觸認識業界人脈,的確很難分辨接案者的能力。

有的公司人數眾多,整個公司包裝的很好看,但是技術執行面是否確實,或是說是否因為員工的替換而造成網站品質的下降,這都是變因。所以有一個能夠分辨技術品質的專家是很重要的。

尊重專業,錢給到位是條件之一,但不能夠保證事情完成

有些人說 300 萬就想要做 10 萬人在線的網站。但如果你有看完整個影片,預算從來沒有壓價過。影片中有館長有提到,如果你把事情做好,400 萬、500 萬、600 萬都不是問題。

比較少人提到的,每個月的維護費也是有的,館長委託的接案公司是說每個月 30 萬,這個金額是由接案方提出。所以實際上可以說,錢不是問題,重點是要把事情做好。

那麼錢不是問題的狀況下,到底出了什麼問題?

尊重專業,除了錢給的到位以外,還要找到專業人士來監督網站實際的執行細節。

說的白話一點就是「閃開,讓專業的來」。專業人士來檢視監督整個案子的進行,每個環節是否在應該完成的時間點完成。如果是專業人士在業界有一定的名聲,也不會貿然拿自己的名聲開玩笑,對發案者較有保障。

等到交期 (Deadline) 到了才發現東西交不出來,就是雙輸的局面了,接案方被告,發案方得不到想要的成果。沒有一方是贏家。

十萬人同時在線的網站 300 萬算不算貴?

如果不加上「十萬人同時在線」,目前網站的水準很有可能不值 300 萬,但如果需要可以十萬人同時在線的話。那麼需要的成本是多少呢?

可以承受高流量系統的公司,首先你需要一個懂得會使用雲,例如:AWS 、或是 GCP 的後端工程師,以免需要自架機房,避免你需要一個團隊的工程師來運惟 (OPS,Opereation)。

因為高流量的系統需要有經驗、知道系統在哪些地方些地方會崩潰,所以需要一個資深後端工程師,而負責這樣的規模,也很可能需要架構師的能力。

然後因為你要能夠承載 10 萬人同時在線,並且保持服務穩定,所以你需要一個維持服務穩定的團隊,就是 SRE 團隊。因為規模不算小,至少也要一個資深帶一個資淺一起維護伺服器的穩定性。

然後因為你的服務在過年佳節有促銷活動,例如:母親節、雙 11、黑色星期五 … 等等的電商行銷節日需要保持服務穩定。這些時候 SRE 團隊要先預想該天「可能的上線人數會多少」,設計出「保證不當機」的系統架構。以館長的追隨者規模,兩個人大概設計個一年也不一定能設計出保證不當機的系統。

以上人數加一加,加上工時延長到一年,以完成一個高流量系統的設計與驗證,那麼其實 300 萬是不貴的,甚至是不夠的。

壓力測試是否值得花費 30 萬?

簡單介紹一下壓力測試,壓力測試指的是在哪些極端情況下網站會崩潰。崩潰的原因只要系統中有一個地方崩潰,系統就掛了。

有些人覺得壓力測試 30 萬很好賺,沒錯,單就「壓力測試」這項工作,對工程師來說的執行時間並不高,花費的時間成本與資源也不高。

但如果你跟業主說:我要做一個好棒棒的壓力測試,給我 30 萬!業主說:好,那你要保證我的網站不會掛掉喔!傻傻的接案者:好,那就一言為定。

此時,壓力測試直接將案子變成「可以承受高流量的大型系統」,有時候在線人數可能只是說說而已,實際上網站會上來的客人因為行銷不易,也很難會遇到這種高流量的機會。

但是館長可是動不動直播就有上萬人次在線人數的網路直播客。加上一些行銷活動,十萬人同時在線可不是說說而已,而是非常有可能發生。加上一些情緒激動的粉絲如果賣的東西真的是很限量,重複的重新讀取畫面也會讓伺服器的負擔更重。

這 30 萬,讓案主原本不滿的情緒更加激動 ( 抖 …

如果你是接案者,同時十萬人上線的網站,給你 300萬,該不該接下這個案子?

經過前面的說明之後,大概可以了解到,要搭建一個小網站非常的簡單,需要的技術能力不高,請的人也不需要那麼多。

但是如果是一個能夠提供穩定的服務品質,首先你需要一個有經驗的後端工程師。更或者你需要一個高流量又能夠穩定的服務,那你就需要一個後端團隊與 SRE 團隊,SRE 就是網站可靠性工程師,保證網站不會因為爆量的人潮而當機,這樣的成本是非常高的。

這類型的高流量的大型網站,加上許許多多的行銷活動帶來的爆量人潮,一般來說需要養一個團隊,長期維運伺服器。能玩的起同時上線人數超過 10 萬人加上行銷活動的,如果仔細觀察一下,只有大型商城才玩的起來。

所以如果你是一個獨立接案者,或是小型工作室,想要直接挑戰擁有實際的大流量加上需要行銷的網站開發,是非常富有風險的。如果你在思考這個問題時,腦中沒有浮現出大致上需要的成本,很可能你是無法扛得著這類型的案子。

結語

最後提供一個簡單的原則讓所有接案者知道,如果遇到發案者這麼壯,會格鬥技,又有專用律師團,就要好好保護自己,不要亂開空頭支票。

而發案方如果遇到金額比較大、技術能力需求較高的案子,務必找專業顧問陪同,審視執行的計畫與執行的實際成果。以提前為各種情況做好準備。


Image for post
Image for post
Photo by NordWood Themes on Unsplash

今年比起以往做了滿多有意思的嘗試,在今年的最後一天,趕緊來回顧一下,看看究竟有哪些事情做的好?哪些事情不如預期?在過程中我又學到了些什麼事情呢?

開始用 Medium 寫作,撰寫長文、有趣的技術文

今年開始嘗試使用 Medium 寫作,從以往只寫技術文的風格轉為開始寫一些比較偏向心路歷程的文章。原本我的文章風格清一色技術筆記,而且都是你不會想要點開來看的那種 😆

Image for post
Image for post

用 Medium 寫作主要的目標是想要寫一些「讓人想看的文章」,很高興的效果還不錯,花了大量時間寫作的文章大家還是會看閱讀的。下面這張圖是最多人閱讀的五篇文章。平均閱讀數有超過 1500 人可喜可賀!有人閱讀真的會有繼續寫下去的動力。

Image for post
Image for post
此圖表由 Better Medium Stats 製作 作者: 胡程維 歡迎訂閱他的 medium

附上連結:

偶爾寫一些稀奇古怪加上分享知識的文章,我覺得是不錯的,透過文字、文章來跟讀者交流,跟面對面講幹話有不一樣的感覺。

取了一個好辨識的名字

為了比較好辨識,我取了一個網路專用的 ID 叫做 Luka,因為原本的英文名字辨識度比較低,所以如果你拿到我的名片發現我名片上寫不是寫 Luka 請不要覺得意外。這個名字來自 NBA 球星 Luka Doncic,有圖有真相。今年的表現非常亮眼,運勢沒有被我帶衰而下滑。

Image for post
Image for post

第一次擔任 Ruby Conf Taiwan 的講者

第一次擔任 Ruby Conf Taiwan 的講者,第一次體驗有「即時口譯」的研討會,因為是全英文的研討會,即使是中文演講,也需要即時口譯翻譯成英文。這樣的研討會運作方式,我覺得非常的棒,外國開發者願意來參加或是投稿的機率大大的提升。

如果你常常參加國內外的技術研討會,研討會除了吸收最前沿的技術以外,最重要的一點就是增加人際連結 ( connecting ),跟國內外大神交流,近距離觀察他們看事情的角度,或是體會他們的文化,能夠學到這些是無價的東西。如果單純想要吸收知識,很多研討會會後會把影片上傳到 Youtube 上。

有即時口譯的演講,準備上會比一般的中文演講費工,甚至比直接使用英文演講還要費工。因為如果你使用英文演講,你不必把每張投影片的內容都預先寫好,有時候你可以來個即興的「脫稿演講」。

但有即時口譯的情況下,越少脫稿演講是越好的,變化太大可能會導致負責即時口譯的老師節奏亂掉,導致翻譯的品質變差,與會的外國人就聽不懂你的演講內容囉。…


簡單整理一份目錄,讓大家可以快速瀏覽我發佈過的文章

最多人閱讀 Top 5

依時間排序

學習方法

饅頭計畫

大型系統入門

技術軟文

硬技術

心得

原來我只寫了 13 篇文章,看來以後要多多督促自己寫文


媽阿,原來電影裡演的都是真的

Image for post
Image for post
Photo by Clint Patterson on Unsplash

Hello 大家好,我是 Luka,一名喜歡追新技術並喜歡做些有趣嘗試的工程師。這次來的是分享參加 DEVCORE CONF 2019 的心得與收獲。

這篇以 Web 前端、後端工程師的角度來分享參加 DEVCORE CONF 2019 的心得。適合「 Web 工程師」或是「想要多了解一點資安觀念的人」閱讀。如果你本身已經是從事資安行業了,那麼這篇文章對你來說可能太淺,請到 DEVCORE 官網 觀看專業的技術文章。

簡單介紹一下 DEVCORE 戴夫寇爾這家資安公司,在我參加 DEVCORE CONF 之前已耳聞 DEVCORE 的大名,但我一直搞不清楚資安公司的不同之處。

參加完 DEVCORE CONF 之後,我才知道原來 DEVCORE 這麼厲害,回報了非常多的 CVE 漏洞,在國際的駭客比賽中也常獲得獎項。和他們平常到底做些什麼事情。話不多說,趕快來進入正題。

全部講者都是駭客的年會

必須說這個體驗真的超狂的,一家公司獨自舉辦一個研討會,並且所有講者都是「駭客」。議程裡大概有一半是分享「如何攻陷別人的公司」的過程與方法,而且當講到攻陷時的那一刻時,你會感受到講者眼睛裡閃耀著光芒,展現出了純粹的喜悅(抖~~。

Image for post
Image for post
( 因為主辦單位提到勿公開與會者,因此用海苔條保護與會者隱私。)

這是 DEVCORE CONFERENCE 2019 的主設計,在牆上貼著有著很大 Attack 字樣的海報,傳遞了一個訊息:

攻擊!攻擊!再攻擊!純攻擊導向的資安研討會

這實在是太有趣了,一般資安大會大部分以防禦者的角度,為了防止某種攻擊方式,所以「要用怎麼樣的方式防守」或是「要安裝怎麼樣的硬體設備來防守」。

聽完之後往往會覺得疑惑 : 「這真的是攻擊者會採用的策略?」或是「這樣防禦真的就防的著了嘛?」,這些問題就是 DEVCORE CONF 2019 整個研討會的主軸 「從攻擊者的角度制定防禦策略」要解決的問題。

了解駭客思維,你才能了解從哪邊下手會是有效的防禦策略。

進入駭客的思考領域

Image for post
Image for post

第一個思考點 — 我們如何防禦駭客入侵?

常見防守方式是「縱深防禦」,意思是用不同的資安設備、安全規範、服務,降低駭客入侵的可能性。

萬一不幸某個點被駭客入侵了,例如:檔案伺服器被攻陷了,讓損害局限於某處,控制損害範圍。

縱深防禦常見的被突破點:

  1. 防禦邊界超出想像。眼前的防禦邊界不是駭客眼中防禦邊界,通常忽略的地方因為你沒有想到這裡會被打,所以更容易視為被攻擊的點。
  2. 真的了解資安設備嘛?資安設備的效果是不是如預期?有沒有正確操作,讓資安設備發揮效用?
  3. 管理不夠落實,例如:帳號、密碼用不安全的方式傳送,讓駭客可以輕易竊取,取得服務的存取權。
  4. 重兵防守了重要資產,但跟「重要資產的相關資產」卻沒有做好防禦,導致駭客可以選擇防禦較薄弱的相關資產作為中繼點作為入侵點,進而入侵重要資產。

第二個思考點— 駭客想要的是什麼?

Image for post
Image for post

駭客在攻擊時想要取得的是「重要資產」,透過每一層的漏洞逐步的接近重要資產,進而拿下。

這邊介紹一個名詞叫做瑞士乳酪模型(Swiss Cheese Model),這個模型是在描述的是當威脅透過層層防護層的失誤(乳酪的層數),最終造成危害。

Image for post
Image for post

而應用在資安領域上,指的是駭客透過層層防禦的漏洞或是疏私,鑽過了瑞士起司模型的空隙,最終拿下重要資產。

下圖名詞解釋:FW(Firewall 防火牆),IPS( Intrusion Prevention System)入侵預防系統,WAF(Web Application Firewall),Antivirus 防毒軟體。

Image for post
Image for post

雖然每一個漏洞個別來看風險價值都不高,但以駭客的戰略思維來說,目標是要取得重要資產。也就是說這些「弱點拆開來看價值不高,但結合起來卻可以讓駭客拿下極高價值的重要資產」。

也就是說,如果我們以駭客的思維來檢視我們的企業防禦機制,我們會更主動的去思考哪些點是重要的、是我們原本沒有注意到的。

第三個思考點 — 駭客如何決定攻擊的手法

駭客的攻擊的已經越來越具有系統化的趨勢,美國非營利資安組織 MITRE 提出 ATT&CK,讓攻擊的流程變成簡單易懂模型,讓資安業者在討論網路攻擊手法時有統一的標準去依循,有共通的名詞來討論攻擊的手法。

Image for post
Image for post

上方紅色框框是可以採用的攻擊策略,直的藍色框框標示的是可以使用的攻擊技巧。

Image for post
Image for post

從這邊我們可以發現,攻擊的策略已經變得非常模組化,並且有很多種攻擊手法可以使用。如果我們想要防禦的話,我們必須知道更貼近駭客的思考方式,哪一種攻擊手法是最有可能被某種駭客組織採用。哪些攻擊手法耗費的時間成本較低,所以需要優先防禦。

第四個思考點 — 到底駭客會怎麼打?

我們知道了駭客有一個大型的資料庫,可以決定策略與攻擊技巧,但是駭客到底會用哪一種方式來攻擊?

紅隊演練就是解決這個問題的方法,資安人員模擬駭客全面性的攻擊,在不影響企業營運下,無所不用其極的模仿駭客攻擊企業,協助企業發掘弱點,讓企業面對攻擊時可以更好的應對。

Devcore 就是這一方面的好手,這也是為什麼我說「一個講者都是駭客的研討會」,每位講者都具有頂級駭客的身手,因為他們有頂級的身手,所以他們可以在真實世界的駭客找到你的漏洞之前就先發掘到你的企業的漏洞。讓你更完善的做好防禦。

後記

這次的參加體驗我覺得非常的棒,活動本身是免費的,業配的成份卻很低,議程的資安技術的分享和實戰攻防經驗的分享都是非常珍貴的,從來沒遇到一個研討會有如此系統化的規劃整個議程與帶給與會者完整的概念。

整個研討會環繞著同一主軸,從攻擊者的角度出發,來思考我們應該如何防禦,如何讓攻擊者覺得很難打,進而放棄。擺脫以往單點式防禦,防禦了一個點,駭客卻選擇其他容易攻陷的地方著手。

另外值得一提的是, DEVCORE 成員不僅實力非常高強,表現出來的感覺也都非常的有活力,讓我見識到「頂尖的人才如何兼顧技術能力與熱情」。感覺是真的覺得很好玩,所以非常快樂的研究如何攻破人家的防禦系統。

延伸閱讀

這篇文章大部分資料出自「以攻擊者的角度制定防禦策略」的學習心得。這些是官方釋出的文章,內容更加全面。

本篇文章因為想要用簡單通俗的語句讓更多人了解資安,所以省略了滿多細節,如果你是資安人員、想精進資安能力或是企業用戶想要了解更深入的話,請看 DEVCORE 的專業文章:

感謝大家看到最後,如果喜歡我的文章,歡迎追蹤我。
如果覺得我寫的不錯,請幫我拍個手。
你的鼓勵是我的寫作的動力!

Image for post
Image for post
用拍手表達你的心情~支持 = 10下
不錯 = 20下
可以 = 30下
很棒 = 40下
激推 = 50下
小秘技:按著拍手可以連拍呦!!

About

Luka Huang

相信熱情可以逆轉人生,勇於追逐自己嚮往的事物。希望有能力讓更多人變得更好。

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store