工欲善其事,必先利其器

昨天剛好有機會跑去廠商的機房那邊做一個 POC (Prove Of Concept),雖然也是如莫非定律般的從下午搞到晚上快 11 點才出得來,而且還是個失敗的 POC。但正所謂三人行必有我師,今天還是留下個小驚喜。

驚喜就是,登登登… 這個吸在機櫃上的 LED燈

由於 POC 進行的不是很順利,有些空檔時間我就抓著對方問這個幹什麼的?吸在上面好像很酷,但實際上有什麼用途呢?

這廠商其實也挺妙,看起來他也挺自豪能想到這一招,馬上就 demo 給我看,第一,機櫃不是都有一些縱深嗎?儘管機房有公共照明,但機櫃基本上只有前後開孔,一般的公共照明是不足以照到機櫃裡面的,所以萬一有東西放比較深,或整線時剛好線藏在比較裡頭時,就可以拿來照:

這樣子是不是比較輕鬆也清楚多了?據這位老兄所述,以前他在照這類東西時,常會伸頭進去機櫃內看,那不但不符合人體工學,也容易有碰到線路的風險。當然這張圖我原本是想要照對方實際的整線狀況,但考慮到自己手殘會不小心動到線路的風險,還是用這個示意圖就好。

另外就是要看乖乖的保存期限也是很方便喔。隨著年紀越來越長,彎個腰都可能卡到的情況也都可能發生在自己身上了,LED磁吸燈這種隨處可見的東西並不怎麼高科技,但這位老兄會觀照自己的日常動作進而利用身邊的小東西來改善,的確是小弟值得學習的一點。

廣告

How to join windows node in K8S on GCP

最近在嘗試建立windows的node in K8S

以下是我的筆記,有興趣的同學可以參考一下

大部分步驟都跟微軟的文件差不多
Kubernetes on Windows

只有一小部分有些差異,主要是因為我的測試環境是在GCP上,所以在GCP firewall的設定上記得要allow pods跟service的網段,還有在建instance時在網路部分要將IP forwarding的功能開起來,以及routing要加,這樣不同node之間的pod才有辦法正常溝通

firewall allow for K8S pods and service
enable IP forwarding when create instance
routing for K8S pods
  1. build up a master node (Linux)
    由於目前windows server只能作為K8S的work node,所以我們還是需要建立一台Linux的server作為master node,在GCP我是使用CentOS 7的 image來作為master node,至於要怎麼建立master node我相信在網路上都有很多文件,以下是我的作法
    1. update system and install docker
      yum update -y
      
      yum install docker -y
      
      service docker start
      
      chkconfig docker on
    2. 由於只是測試環境,為了方便我會關閉firewall跟SELINUX
      service firewalld stop
      
      chkconfig firewalld off
      
      setenforce 0
      
      sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
    3. create repo for K8S
      cat <<EOF > /etc/yum.repos.d/kubernetes.repo
      
      [kubernetes]
      
      name=Kubernetes
      
      baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
      
      enabled=1
      
      gpgcheck=1
      
      repo_gpgcheck=1
      
      gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
      
      exclude=kube*
      
      EOF
    4. install kubeadm
      yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
      
      systemctl enable kubelet && systemctl start kubelet
      
      cat <<EOF > /etc/sysctl.d/k8s.conf
      
      net.bridge.bridge-nf-call-ip6tables = 1
      
      net.bridge.bridge-nf-call-iptables = 1
      
      EOF
      
      sysctl --system
      
      sysctl -w net.ipv4.ip_forward=1
    5. initial master node
      kubeadm init --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12
      
      mkdir -p $HOME/.kube
      
      sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
      
      sudo chown $(id -u):$(id -g) $HOME/.kube/config
      
      sudo sysctl net.bridge.bridge-nf-call-iptables=1
    6. 安裝網路模組for K8S
      根據微軟的文件如果要可以跟windows server相容建議是安裝flannel並使用host-gw模式
      1. 下載flannel yml檔
        yum install wget -y
        
        wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
      2. 將yml中的vxlan改成host-gw
      3. apply flannel
        kubectl apply -f kube-flannel.yml
    7. 將特定DS(daemonset)設定成只能跑在Linux node
      因為目前這些DS只能跑在Linux的container上,所以會把他們設成只跑在Linux server上
      kubectl patch ds/kube-proxy --patch "$(cat node-selector-patch.yml)" -n=kube-system
      
      kubectl patch ds/kube-flannel-ds-amd64 --patch "$(cat node-selector-patch.yml)" -n=kube-system

      patch的yml檔可以從這下載node-selector-patch.yml

    8. 到這windows node的K8S master node就完成了,接下來就是確認kube-system pods是否都有正常運作,還有DS的設定有沒有生效跟DS是否設成rolling update
      確認pods是否running
      確認DS的是否有限制只跑在linux node
      確認DS是否設成RollingUpdate
  2. join a windows work node
    1. 這邊我是使用GCP的Windows Server version 1803 Datacenter Core image作為work node,K8S的文件上是說windows 1709以上的版本都有支援,但要注意container的image只能使用跟OS同版本號的,不然會跑不起來,以下command都是使用Powerhsell操作

    2. install docker(這邊會需要重開機)
      Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
      
      Install-Package -Name Docker -ProviderName DockerMsftProvider
      
      Restart-Computer -Force
    3. pull docker image
      請下載與你OS相同的版本,這邊根據微軟的文件是要下載microsoft/nanoserver,但我後來發現k8s的docker file image不是用microsoft/nanoserver而是用mcr.microsoft.com/windows/nanoserver,所以我這邊就直接下載mcr.microsoft.com/windows/nanoserver
      docker pull mcr.microsoft.com/windows/nanoserver:1803
    4. tag docker image
      docker tag mcr.microsoft.com/windows/nanoserver:1803 mcr.microsoft.com/windows/nanoserver:latest
    5. 準備工作目錄for K8S
      mkdir c:\k
    6. copy master node的驗證檔($HOME/.kube/config)到c:\k目錄,有了這個才可以連到master node(可以用SCP copy,現在powershell也有SCP可以用喔)
    7. 下載安裝7-zip
    8. 下載Kubernetes binaries for windwos,並用7-zip將它解壓縮到c:\k目錄,其中會包含kubectl, kubelet, and kube-proxy這些binaries,我是下載1.13.1版,可以從這下載kubernetes
    9. 設定環境變數for K8S
      $env:Path += ";C:\k"
      
      [Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\k", [EnvironmentVariableTarget]::Machine)
      
      $env:KUBECONFIG="C:\k\config"
      
      [Environment]::SetEnvironmentVariable("KUBECONFIG", "C:\k\config", [EnvironmentVariableTarget]::User)

      以上都設定好就可以使用kubectl連到master node

    10. 下載Flannel for window

      [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
      
      wget https://github.com/Microsoft/SDN/archive/master.zip -o master.zip
      
      Expand-Archive master.zip -DestinationPath master
      
      mv master/SDN-master/Kubernetes/flannel/l2bridge/* C:/k/
      
      rm -recurse -force master,master.zip
    11. join node
      cd c:\k
      .\start.ps1 -ManagementIP <Windows Node IP> -ClusterCIDR <pod-network-cidr> -ServiceCIDR <service-cidr> -KubeDnsServiceIP <Kube-dns Service IP>

      到這就成功join windows node到K8S了,請確定3支Powershell(kubelet, flanneld, kube-proxy)都有順利跑起來,有時Flannel 會跑不起來,需要手動再跑一次

      [Environment]::SetEnvironmentVariable("NODE_NAME", "<Windows_Worker_Hostname>")
      .\flanneld.exe --kubeconfig-file=c:\k\config --iface=<Windows_Worker_Node_IP> --ip-masq=1 --kube-subnet-mgr=1

  3. deploy a win-webserver on windows node
    wget https://raw.githubusercontent.com/Microsoft/SDN/master/Kubernetes/flannel/l2bridge/manifests/simpleweb.yml -O win-webserver.yaml
    
    kubectl apply -f win-webserver.yaml
    記得要把yml檔裡container的版本改成與你的windows node OS相同
    確認pods是否running
    確認service port
    access from internet

k8s in 5 minutes for Windows 10

前一陣子看了 William 大的 k8s in 5 minutes 之後,才發現原來要在本機跑 Kubernetes 不用再裝 minikube 了,尤其是在 Windows 環境下,要玩 k8s 還得要有特別的安裝方法,這讓我們這些用 Windows 當成日常環境的人總有些不得其門而入的感覺,現在 docker for desktop (下載時可能會叫做 Docker for Windows) 原生支援 k8s (本機版)之後,對於想要很快的看看 k8s 是啥的 Windows 使用者算是個很好的入門磚。

其實 5 分鐘所有的步驟都和 William 大寫的差距很小,只有小部分 Windows 環境下該注意的事項,但小弟資質駑頓,記性太差,還是寫清楚些以便日後參考:

  1. 要先啟用你 Windows 下的 Hyper-V (對 Windows 家用版就別試了)
  2. Docker for Windows 版 (現在也沒有所謂的 Edge 版本了)
  3. 如果你之前有裝過 minikube 的話,記得把 Kubernetes 的環境從 minikube 改成 Docker for Windows
    01
    02
  4. 在我的機器上 kubectl.exe 看來沒有加到搜尋路徑下,請自行加入 (我的安裝路徑在 C:\Program Files\Docker\Docker\resources\bin),不然就切換到該目錄下:
    C:\> cd C:\Program Files\Docker\Docker\resources\bin
  5. 裝個 k8s dashboard (非必須)
    C:\> kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
  6. 把 proxy 跑起來,跑起來之後不能關掉這個視窗,得另外開一個命令列視窗出來繼續,
    C:\> kubectl proxy
    Starting to serve on 127.0.0.1:8001
    ...

    跑起來之後你可以用瀏覽器開下列網址存取 dashboard 來:

    http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
  7. 開另外一個命令視窗把範例裡的 echo-server 裝起來:
    C:\> kubectl apply -f https://raw.githubusercontent.com/coder-society/kubernetes-with-telepresence/master/echo-server/echo-server.yaml
  8. 最後一個步驟和 William 大的不一樣,由於 telepresence 這個工具在 Windows 下執行會有問題,所以用瀏覽器透過 proxy 的方式來測試這個 echo-server (其實這裡我卡了很久… 因為第一次用 k8s,才發現 William 大用了這個 telepresence,而 Windows 下這東西目前又跑不起來)
    http://localhost:8001/api/v1/namespaces/default/services/http:echo-server:/proxy/

    由於我們沒有指定 echo-server 的 namespace,所以這個服務會被放在 default namespace 下,與剛剛的 kube-dashboard 的 namespace 不同,一開始我搞錯也是卡很久

  9. 這個 echo-server 的功能看起來很簡單,就是 show 出目前是從哪台 server (k8s 的術語叫 pod) 跑出來的,你每次 refresh 一次,就會換一台 pod 來跑
    03
  10. 也可以看一下 k8s-dashboard,網址在剛剛啟用 proxy 之後有 show:http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
    04

同事 J 問我說這個 Docker for Windows 是不是開一個 Windows node 出來,仔細看了一下應該不是,它會在你的 Hyper-V 下起一個 Linux VM,所以要試 Windows node 的還是得等等其他人的文章了

05

06

其實昨天剛好有和一位 Google 的業務員聊到天,她自己認為 k8s 改版的速度實在是太快了,有些舊東西淘汰了、新東西加進來之類的都沒人知道。例如這一本台灣有的翻譯書:Kubernetes 使用指南,用到的是 k8s 1.0,裡頭講到的 Replication Controller 在新版本裡都改用 Deployment 和 Replica Set 了,現在去 Google 開一個 k8s cluster 也預設是 1.9.7 了,照著書來做大概只會覺得常常都對不上台詞吧。就算去翻對岸的簡體紀念版:Kubernetes 权威指南(纪念版),出版時也只是 cover 到 1.6 版,更遑論 k8s 官方的網站上已經放了 1.12 版讓人下載了,所以要學這個除了得花時間之外,手腳還得快一點,現在(2018/11/07)拿著最新的簡體中文書可能還對得上環境,可能再過幾個月又得另外找書或文章來學了。

玩一下 Google Compute Engine 要花很多錢嗎?

雖然身為一個 IT 人,也知道這一行要與時俱進不然就被淘汰的道理,但是我個人對於「在雲端上花錢」這件事情的態度算是偏向保守的那一派,像是 LINE Pay 已經出來半年了,我是為了貪那繳稅的回饋金才去辦卡且綁定了我的 LINE 帳號,Google Play 上就算有需要綁定過信用卡,也是用完之後就移掉,不然我自己會想像被他亂收錢。

這次之所以會想要在 GCE 上花錢,是因為看了某個對岸網友的文章,發現 Google 竟然直接在他的 GCE 上提供 Anycast IP + Global Load Balancer + CDN 的服務,因為這實在是太狂了,所以我忍不住就打破了自己的的風險規則,跑去把我的信用卡放上去。

我測試的東西也就是 Anycast IP –> With CDN –> Load Balancer –> 一台台灣 VM + 一台新加坡 VM 這樣子的架構,測試之前先在我自己電腦上的 VM 跑了一次,並且把安裝與設定步驟記錄了下來,所以去 Google 上開機器時,除了幾個 Google 自己的設定需要實驗多花了點時間之外,大致上可以說是沒幾個小時就做完相關的設定工作,然後就開始測試了。之後就放那邊放了兩天,端午節之前把 Anycast IP, CDN, Load Balancer 及新加坡機器關掉,只留下台灣這台 VM 給同事測試用 (對,我實際上的需求並沒有一定得要用 Anycast IP,只是拿來試試看功能而已),這樣子我一共花了多少錢呢? 才 US$1.96

1

而且 Google 也提供了一個預算管制的功能,當所花的錢超過你設定的預算時,就會發警示信出來。因為我拿來玩 GCE 的帳號就是我平常在用的 Google 帳號,也綁了我的 Android 手機,所以這功能讓我很安心的繼續用下去。

2

前一陣子不知道是哪位臉書上的心得,說是微軟 Azure 要和 Amazon AWS 或 Google GCE 對打還是走得很辛苦的。對照一下這幾年來看到 Google 在做的事情:Google 自建海纜、GCE、Anycast IP on GCE、Google CDN (如果 Google 要把他們在世界各個 ISP 放的 Google Global Cache 也拿來做 CDN 加速的話,那就更恐怖了),可以看到 Google 要做而且已經快做到的是「世界」的 IT Infrastructure – 全世界的中華電信、全世界的 Hinet,這意思是什麼呢?如果你今天只想做台灣的網站也就算了,如果你是想搞跨國的網路應用(電子商務、遊戲、社群、直播…),以後你也不用多想了,就直接放 Google 上就好了,如同幾年前的台灣一樣,大家想搞網路、搞遊戲,機房鐵定要選中華電信、專線一定得拉 Hinet,因為全台灣的使用者幾乎都是用 Hinet,想不接 Hinet 線路就是要讓使用者 lag 爆。這種事情以後就會反過來,大家要在全球佈局的話首選就會是 Google,因為最簡單速度又最快。

所以,學學這些 Public Cloud 的使用經驗看來就是未來 IT 人的必備技能,而且搞不好還比去學什麼 Server 安裝或 Cisco 設備操作要來得基本且必要,要練習這些東西很花錢嗎?你要練 Server 安裝、系統管理之類的可能要去買台機器或借個環境才能操作,想練網路我看很多人會花個幾千塊去網路上買二手設備來練習,但是想練 Google Public Cloud? 以我這次的例子來說,只要 1.96 鎂就好,可能比很多人一天的通勤費用還便宜些,好東西,不買嗎?

無意中參加到的即興表演課程

這次因為公司走敏捷開發的緣故,跑去上海參加了一場很特別的「技術大會 – AHA 2017」,在出發之前,問了去年去過的同事之後,還是搞不太懂那是個什麼樣的會議,一直到了最後一天,早上,還是搞不懂那場大會的主題,不過在大會第三天的下午,我跑去其中一個「即興劇:團隊共創力工作坊」的議程,讓我終於在議程將要結尾時找到了我的 AHA Moment。

說起來所謂的即興表演課程似乎也不是只有大陸那邊才有,即興劇的英文叫做 Improvisational Theatre,隨便 Google 了一下台灣這邊也有好幾個,例如這間勇氣即興劇場從 2004 年開始就引進了即興劇,我們新加坡的同事在那參加的培訓課程在台灣這邊也開課過。只是台灣的即興劇團和企業之間的連結多半聚焦在創意領域,和敏捷圈的關係挺小,當然也可能是台灣敏捷圈的愛好者相對太少,還在集中力量在敏捷或 SCRUM 上,以致於很多周邊領域的知識圈並不像國外那樣子連結的很好。

2017-04-15 13.12.58

這個課程算是一個體驗式的活動吧,大概 3 個小時左右,這邊也順便幫講師們打個廣告,如果你有興趣而且人在上海的話,可以去找他們上課,也不講什麼高大尚的東西,光即興表演這樣子的內容也是夠有趣的,就算當成抒壓的活動也是值得推薦。

根據這個即興表演工作坊 -「飛來即興」的說法,即興表演有三個重要的因素,分別是:

1. Yes, AND
2. Don’t think
3. All about your group

而我們最終的作業是要演一段這樣子的即興表演出來:

即興表演-拍手叫停

說實在的,一開始看到這麼有趣的影片時,在場的所有人包括我,直覺的就是那麼一句話:不~ 可~ 能~ ,由於 AHA 的參加人員主要都是 IT的開發者或相關人員,簡單說就是大家的宅屬性都非常的高,要讓我們這些宅男宅女們演戲,真的就是要叫大家去符合 AHA 的口號 – 不要臉。

不過負責領課的兩位老師:正一 和 奮鬥 算是準備充分了,這三個小時的時間並不是叫大家一開始就上台演出這種高難度的戲,而是讓大家漸漸地放下心防循序漸進的帶領,慢慢的讓大家進入狀況。

從講話開始練習

一開始我們就從「講話」開始演,演什麼呢?既然是即興表演,用台灣的方法說就是話虎爛,我們從 No~~~, because 這個 pattern 開始演,再來是演 Yes~~~, but 這個樣版,最後才走到核心的 Yes~~~, and。舉個例子來說,

場景:Hi,Paul,晚上去看個電影好嗎?
No, because 的回答:沒辦法耶,因為我晚上得去補英文
Yes, but 的回答:哇,那部片我想看很久了,但是,我晚上得去補英文耶
Yes, and 的回答:太好了,我也想看那個電影,看完後我們還可以一起去旁邊夜市吃個宵夜

這樣子的設計也真的妙,講師這時候會讓大家想想看,在平常的團隊合作裡,大家的溝通是不是就是這幾種 pattern? 你喜歡的是哪一種的感覺? 大家是不是都比較不喜歡被拒絕的感覺?

心得:即興表演的第一要素和好的團隊合作一樣:Yes, And

肢體訓練

2017-04-15 15.06.40

講話講完了,接著就是練習肢體語言了,一開始講師給的指令是:讓你的隊友擺出一個你喜歡的姿勢,沒想到的是,當大家的姿勢擺完了之後,接著就是要讓你來解釋這個姿勢代表的意義,我看這時我們大家都有點措手不及,雖然還是有講得好的同學,但我自己就對我臨時掰出來的台詞很不滿意,我猜想這種練習是延續之前的講話訓練,進一步的加上你對隊友的觀察而得的結果。

疑~~這動作不是我自己擺的?解釋起來很難嗎?……沒錯,所以接下來的訓練就是:人力分鏡接龍(這是我擅自取的名字),這個階段你就得觀察前一個隊友擺出的姿勢,然後以 ‘Yes, and…’ 的概念承接下去,來去完善這個分鏡的要素,因為在一個即興的舞台上,合作的一群隊友,不是一個個人,在這樣子一個緊湊的環境下,你不但得注意自己的肢體語言,還得時時觀察你的隊友來做出即興反應。

心得:即興表演的第二要素:Don’t think,在表演舞台上想太多就冷場了,例如裡頭有個扮抹布的隊友,他就沒有考慮自己的形象就上了,所以換成在團隊裡頭,反應太慢,考慮太多的人也許就檔到了整個案子的流暢度

實際上場

前面好像講了一些,但其實講師們帶的訓練活動還要更多,為了自己懶不劇透,所以中間就容我草草跳過…………………………………………………………………………………………………………………………………….

最後就是驗收的時刻了,下面的影片中,除了黃色 T-Shirt 的是領課的老師,其他的人都是非專業的演員,也是我先前口中的 IT 相關從業人員,不知道你是不是也覺得這樣子的演出非常有趣呢?

心得:即興表演的第三要素:All about your group,不知道大家有沒有注意到,要完成這樣還算流暢的演出,不但要 1) Yes, … and  的接龍下去,而且還得要 2) Don’t think 用你最直覺的反應來接著演出,最後,所有的一切都是 3) All about your group 讓你團隊的戲變得好看、成功。

經過這三個小時的折騰之後,流了許多汗,但是就像是打了一場很順很漂亮的籃球一樣,隊友們目標一致,互相合作,雖然累,雖然弄花了儀容,但最後身上留下的是爽汗。想想自己在組織裡不也是這樣,當大家目標一致,大家期待的應該也就是在過程中是經歷到努力奮鬥、相互合作的感覺,儘管有時會累、會流汗,老實說也許還會有爭執、有摩擦,但最後達到目標時,就會覺得當初的過程很值得回憶(老頭子模式上身了),希望大家和我自己以後都能常享受到流了爽汗的喜悅,最後幫 J 姐分享一下,這樣子的課程對於不善於人群溝通,害羞、不敢從群眾跳出來的個性也非常有幫助喔。

區網電腦透過pfsense取得ISP的IPv6

首先,要先去申請IPv6,這是"完全免費的"以中華來說,可以臨櫃申請,也可以線上申請,在這邊網頁上Ctrl+F搜尋ipv6申請

IPv6_ready_logo_phase2

在這邊使用的是pfsense2.2.6版本,但設定應該大同小異 繼續閱讀「區網電腦透過pfsense取得ISP的IPv6」

超「有用」的「超級數字力」課程

以前學生時代學了會計或財務相關的課程不下三四次,出社會後為了投資股票也看了幾本如何讀懂財務報表的書,但每次就如同以前對會計的戲稱:很「會」忘「計」,只要過了一陣子沒去碰,或工作太忙一陣子沒去複習,馬上就會忘光了。

幸好我們公司的老闆很有趣,除了自己喜歡看書上課之外,還很大方的會把不錯的課程強迫推薦給公司同仁,所以我就很幸運的來參加了林明樟老師的「超級數字力」課程,來上課之前,根據我以往學會計或財務的刻板印象,就覺得這次大概是跳入火坑了,四年前那次福哥的簡報訓練課程大家徹夜未眠的景象還歷歷在目,想來這次的課程也不會太輕鬆才對。

由於我們是從台北驅車到宏碁渴望園區外訓,早上有些塞車,路上聽說老師昨天已經先到園區準備了,心裡想說不就是投影片講一講而已,老師還那麼慎重的去準備。結果一到現場,就發現現場已經分好小組,而且這分組推測是根據課前「小考」出的結果平均分配的,桌子上放好了「超級數字力」的專屬桌布,講義和教材也都備好放在桌上了,一旁的牆上也已經貼好了看來上課時會用到的壁報,看這些準備沒有 30分鐘 – 1小時的時間是處理不來的,也難怪老師要提前一天到現場準備。

01

講義和一般上課時拿到的裝訂後的影本不大一樣,小小一本,還有特製的封面,看來是以出書的標準來印刷的,一開始就給我不錯的印象。

02

上課上到一半時,老師請助教(對,有助教)發了另一本複習手冊,這質感又比講義好上了一大截,竹製的封面,全彩印刷,由此可知老師對課程的用心程度。

03.jpg

老師給的這本「獨孤九劍」複習卡就是一本速查手冊,速查什麼呢?在我看來就是去看老師教的那些速記公式,例如老師教的第一個口訣:這是不是一門好生意,代表的是毛利率高或是低,該去哪一份財務報表上找之類的 (其它口訣恕不劇透了)。這對一個不常看財報的我來說,簡直就是把瑞士刀一樣,因為我可不像經常要看財報的大老闆們或財會人員一樣,天天在看報表,他們腦袋裡早就把這些東西記在腦袋裡,而我這種偶而才需要看一下的死工程師,既不想搞得太專業,又不想要用的時候回去把書拿出來從頭到尾翻一遍時,這時候這本速查手冊就派上用場了。

整場課程就是以實用導向為主軸,學會了公式之後,大家就開始應用在財報的分析上,這裡不得不再說一次,老師的教材真不是蓋的,連用來分析的數十張財務報表都特別印成大張西卡紙,方便小組一起討論,而且整個內容設計得很流暢,投影片講到哪該有音樂,講到哪該配合什麼教材拿出來用,老師都記得一清二楚沒有失誤,連用來作為小組計分用的籌碼質感也講究到了,更別說財報範例裡頭還有當前當紅或出狀況的美、台、中企業,讓你分析時會覺得有跟上時代潮流的感覺。另外老師在課程當中也穿插了不少相關的笑話,加上課中也以小組比賽的方式來加深學習印象,也讓這個本質上枯燥的財報課程生動活潑了起來,我可是兩天都沒有打瞌睡哩。

04

雖然最後我們這組沒有得到總冠軍(對,有很不錯的禮物),但可以上到這麼有趣不枯燥的財報課程還是我第一次碰到,加上老師不管是在教具的準備、簡報的能力和課程的設計上都可以說是100分水準,還針對我們公司本身提前做了功課以便在課程中帶到,這都是除了財報的知識之外給了我另一種啟發:原來除了福哥的簡報能力之外,上好一門課還有這麼多方方面面的地方可以用心。

05

最後,最神奇的是,課後你可以加入一個他們不公開的社團,裡面會有一個專屬的 Chrome 外掛,套上去之後,老師教的「撇步」就可以直接套用到公開資訊觀測站上的報表上,所以才說這是一個超「有用」的課程,如果你也是和我一樣很「會」忘記這些財報知識,又非得偶而用它一下的朋友,真心推薦各位去參加這個課程。

06.jpg