2021年1月14日 星期四

[Javascript] 複寫 XMLHttpRequest 來紀錄 Network Request URL @ Chrome Browser DevTools

最近 podcast 很夯,來研究 <audio> 。之前研究過 <video> 就有發現現在都用很夯 blob 的播放方式,透過 JS 片段下載資料交給 <video> 播放,以至於從 JS 調閱出 <video> 元件時,看不到真實的影片來源,而是一連串 blob (Binary Large Object) 記憶體位置。

原本想說在 Chrome DevTools 下,能不能靠 JS 取得 network request 發送清單來做應用,看著看著突然腦筋一轉,乾脆就用 XMLHttpRequest 好了,多包一層就可以收集了。

用法:

//
// https://stackoverflow.com/questions/7775767/javascript-overriding-xmlhttprequest-open
//
(function() {
var proxied = window.XMLHttpRequest.prototype.open;
window.XMLHttpRequest.prototype.open = function() {
// console.log( arguments );
//
// 只關注 m3u8 來源
//
if (arguments.length >= 2 && arguments[1].indexOf('.m3u8') > 0) {
console.log( arguments );
// return;
}
return proxied.apply(this, [].slice.call(arguments));
};
})();

2021年1月9日 星期六

[開箱] Chromecast with Google TV - 2020/09/30 發表

Chromecast with Google TV

沒想到一進入 2021年,突然又手癢了!立馬買了 Chromecast with Google TV 來把玩。之前沒那麼想入手是因為台灣還買不到,以及自己已經有 Chromecast Ultra,興趣缺缺,但人果真很善變,過了幾個月就突然想起,又快速下手買了一個 XD 這次嘗試粉色系,連內附的電池外裝也粉色!

Chromecast with Google TV

這次體驗的心情,就像 Apple TV 的感受一樣,有個遙控器,並且跟市面上的新電視或電視和一樣支援語音輸入(語音搜尋),我之前對 Apple TV / Android TV 沒這麼愛的主因是輸入難用並認為手機就是本體,凡事都走投影來釋放手機資源,但對 Google TV 可以安裝 App 仍感興趣,這次測試了一下 NETFLIX 後,感覺 NETFLIX 的 UX 體驗在各平台皆非常相近,當下也不會覺得不方便(感興趣都在首頁,滑一滑點一下就可以觀看)

之前有朋友很想要觀看 NETFLIX 4K 內容,查了一下 Chromecast with Google TV 是有支援的,若真的可以用 49.99 美金買到,真的物超所值。這在 NETFLIX 官方文件也有提到:

以下 Chromecast 型號目前支援 Netflix 超高畫質串流功能:

Chromecast Ultra

Chromecast with Google TV

ref: 如何在 Chromecast 上使用 Netflix 

回過頭來,聊聊裝置的啟用,就包括會經過 Google Home app 掃描電視上的 QRCode,而手機過程也可以看到能多訂閱很多項目、音控辨識是否個人化等等,其中有個過程是會配對遙控器紅外線跟電視聲音的控制,十分貼心,因為許多類似設備就算有遙控器也沒規劃用紅外線去控制電視的聲音。

Chromecast with Google TV

感受比較深的是多了很多內容,以前用投影的方式必須自己去尋找有哪些內容,而採用 Google TV 則是大家為主動擠到這個 Android TV Google play 上,像是美國已上線的 Disney+ 等等,有趣的,我反而在 Android TV Google play 上,無法下載 myVideo, LiTV 這類本土程式,不知道是不是 Chromecast with Google TV 內有地區資訊,若是這種綁定關係,在意的就只能再等等吧?不知是不是本土商只在 TW region 上架,還是哪邊可以更改 Chromecast with Google TV 設備的所在地:

Chromecast with Google TV

其餘細節是這款要求外部電源供應,直接插電視 USB 會提醒這是行不通的:

Chromecast with Google TV

最後,Google TV 上面的預設首頁也會隨著使用過的內容 App 節錄出該 App 的熱門內容,效果跟 NETFLIX 首頁很像,這樣一眼可以得知哪些感興趣可以點擊:

Chromecast with Google TV

相關文章:

2021年1月8日 星期五

[Linux] 使用 FlyVPN 與 EZCast EZC-5200 Hotspot 設置跳板開發服務(RTL8821CU Linux Driver) @ Ubuntu 20.04 Desktop

ezcast ezc-5200 ic

最近要模擬俄羅斯客戶使用產品上碰到的問題,由於產品是需要聯網的,手頭上的 AWS/GCP 都沒有俄羅斯節點,只好透過 FlyVPN 翻牆到莫斯科,而 FlyVPN 操作方式是非常簡單的,並且提供了各類平台的運行程式。

若服務邏輯可以在 PC 上執行,那就很搭配 FlyVPN 快驗證完,但如果是要在聯網裝置驗證,下一刻就得研究如何讓設備也處於莫斯科環境了!想了想,就是拿一台 Ubuntu Desktop 建立 Hostspot 環境,再讓 IoT 等設備透過 Hotspot 聯外就對了。

整個過程就是先從 EZCast 官網左下角的產品型錄(Product Catalog),得知 EZCast EZC-5200 是採用瑞昱的 RTL8821CU 晶片,接著研究一下 RTL8821CU Driver,就屬 brektrou/rtl8821CU 維護這份最不錯(很奇怪為何不在 RealTek 的官網找到 XD 或是類似官方 github.com/rtlwifi-linux 找到),且各處的程式碼編譯上都可能有問題,例如 linux kernel 大於 5.8 會踩到一些重複    定義的 structure 問題等等,總之,這次在 github.com/brektrou/rtl8821CU 得到很好的編譯體驗。

而挑選 Ubuntu Desktop 是比較適合打包成 VM ,方便傳遞給需要的同事當作測試環境,類似的做法在 Windows 也是能對應實現的(在 Windows 跑 FlyVPN 、建置熱點等等)。在此使用 VirutalBox 並且把 USB 設定自動掛在這 EZC-5200 網卡

virtualbox-usb-device-auto-mount

流水帳 - 環境建置:

$ sudo apt update 

$ sudo apt upgrade

$ sudo apt autoremove

$ sudo apt autoclean

$ sudo apt install net-tools git curl wget tmux vim dkms build-essential bc unzip linux-headers-$(uname -r) -y

流水帳 - 編譯 Linux Driver:

$ git clone https://github.com/brektrou/rtl8821CU.git

$ cd rtl8821CU

$ sudo ./dkms-install.sh

$ sudo usb_modeswitch -KW -v 0bda -p 1a2b

$ sudo systemctl start bluetooth.service

$ sudo vim /lib/udev/rules.d/40-usb_modeswitch.rules

在 LABEL="modeswitch_rules_end" 之前添加

# Realtek 8211CU Wifi AC USB

ATTR{idVendor}=="0bda", ATTR{idProduct}=="1a2b", RUN+="/usr/sbin/usb_modeswitch -K -v 0bda -p 1a2b"

$ sudo reboot

接著進入系統後,從右上角就可以看到無線網路了,進入無線網路的設定,想要開啟熱點時,會收到 "系統原則禁止做為熱點" ,查了一下貌似 Ubuntu 20.04 的 bug ?主因是權限不夠大,但這段應當要有用 sudo 來運行的方式才對?總之,就改用 root 登入即可,而 GUI 預設是不允許 Root 登入的。

ubuntu-20.04-wifi-hotspot-error

流水帳 - 啟用 Root 登入 GUI 方式:

先替 Root 設定密碼:

$ sudo passwd

開放 Root 登入權限:

$ sudo vim /etc/gdm3/custom.conf

添加

AllowRoot = true

$ sudo /etc/pam.d/gdm-password

添加 # 註解下段限制

# auth   required        pam_succeed_if.so user != root quiet_success

$ sudo reboot

最後在 GUI 登入介面上,挑選其他帳號(點擊"沒有列出來?"),就可以靠輸入帳號密碼的方式,用 root 登入,登入後就可以順利建制 Hotspot 出來使用

流水帳 - 查看是否有偵測到 USB WIFI:

$ lsusb

Bus 001 Device 003: ID 0bda:XXXX Realtek Semiconductor Corp. 802.11ac NIC

...

Ubuntu 20.04 Hotspot 建立方式:

右上角網路Icon -> 無線網路未連線 -> Wi-Fi 設定值 -> 新視窗的右上角 ... -> 開啟 Wi-Fi 熱點 -> 設定 SSID 跟 PSK 就可以完成啟動

ubuntu-20.04-wifi-setup

關於 FlyVPN 的啟動方式,就參考官網即可,建議先完成 FlyVPN 的連線後,再開啟 Hotspot ,例如用手機連上 Hotspot 時,可以開瀏覽器瀏覽 ipinfo.io 看看顯示的地區是否有正確更換。

流水帳 - FlyVPN :

$ ./flyvpn login

$ ./flyvpn list

$ sudo .flyvpn connect "Moscow #13"

選 tcp 即可

如此在 Ubuntu 可以另外再開個 terminal 運行 curl ipinfo.io 就得知 IP 是否有變換到莫斯科了

2020年12月25日 星期五

[書] 零規則:高人才密度x完全透明x最低管控,首度完整直擊Netflix圈粉全球的關鍵祕密 / No Rules Rules: Netflix and the Culture of Reinvention

終於趕在 2020 年尾,在平安夜 K 完這本書,很妙得在看前七章對我有點膩甚至愛睏,因為我認為整本書提到的個營運策略可以簡化成三件事就好:

  • 當同事們都是聰明人物且符合公司文化
  • 當大家最決策時,都為了公司好,而不是私慾
  • 公開透明

只要這三件核心可以持續共存,那老闆就只要監督並維持住這三件事即可。像是原本做事能力很強的員工,若不沒跟上公司的成長軌道,無法像以前產出高價值的產物時,為了維持同事們都是聰明水準,只好辭退他;當大家都是聰明人,且一起都是為了公司好而下聰明的決策,那公司勢必會隨著時間更加成長;公開透明是為了監督用途,發現不適任必須出手處理;透過這三點的結合,讓公司越來越往好的方向邁進。

若轉換成工程師的機制,可以簡化成:

  • CEO/CTO 定期面試新人,發現高手時,聘請他加入團隊
  • QA 定期評估 高手 的產出的質量,並時常回饋給 CEO/CTO 
  • 當 CEO/CTO 覺得某 高手 無法融入公司文化(如思維不一致)/產出高品質時,進行辭退

以上在我周邊的新創團隊有看到這樣的步調,雖然殘忍,但為了公司存活是必要的控制,可維持團隊的產生力。

最後,我在閱讀最後的幾章時,反而精神抖擻!越看越有滋味,主要後面幾章節就是在這樣的文化是怎樣維持的。包含要認清全球各地的文化差異,不一定能夠提供對等的回饋,甚至溝通上會有不一樣的感受,為了世界各地的高手都能持續變強,仍是持續搭建回饋機制是很重要的,而如何正規化大家的感受值是個重要的課題。

2020年12月21日 星期一

[韓劇] Start-Up / 我的新創時代 / 스타트업 觀後感

圖片來源:WIKI - Start-Up

真是一言難盡,聊下去肯定劇透的,想看戲的就略過這篇碎碎念吧!我想趁這股熱情把數十年的記憶都好好的趁這次透過文字刻印下來。

好玩的是周邊人沒有人那麼看好這齣戲,像是追到一半就放棄他。我則是前陣子想要醒腦,追完一堆熱門動漫畫(鬼滅之刃,咒術迴戰,Chainsaw Man,租借女友)後,就看了這齣戲,劇情讓我想起好久以前的記憶,就這樣漠視了愛情片段,不斷的咀嚼每一集帶給我的醒悟,倒真的不會有看不下去的念頭,只有在第七集時,擔心愛情戲是不是會變多

每集標題都訂得很好:

  • 新創
  • 家人、朋友、傻瓜
  • 天使投資人
  • 沙盒
  • 駭客松
  • 關鍵人物
  • 燃燒率
  • 備份
  • 風險
  • 演示日
  • 退場
  • 併購聘用
  • 舒適圈
  • 電梯簡報
  • 最簡可行產品
  • 規模化

我並沒有真實創業過,或者該說沒有去扛過實質的責任,最近的那一次是辦公室要撤,我一人把五人份左右的辦公室設備用一台計程車搞定撤離,那次讓我覺得感受很特別的,我自己得厚著臉皮去撤辦公室,得要面對運將不想當搬家載東西等問題。說起來,我身邊有一群人在那邊闖蕩,有高中學長二次創業中、有親戚在影視圈創業成功,也有接家業搞得很出色的,偶爾聊天都滿有趣的。關於自己,記得快進入社會前,參加了一場新創公司的成立,浩浩蕩蕩超過五十位親朋好友同事一起投資,只是這個案例並不是美好的,後來數十年,看著老闆賠掉了親朋好友人脈,也堅守著自己的經營路線但尚未開花結果。我們幾位同仁也曾想要扭轉老闆的思維,可惜的是換位思考時,看到老闆的成就(包袱)有多重,許多東西是陳年的且無法割捨的,最終,我們連下一個新公司都沒走出來,僅討論數個月各奔東西。這應該是我近年挽起袖子離創業最近的一次,每次回想起來滋味百變。

回顧著那時老闆的公司創立,在沒有任何營收以前,真的只能靠家人朋友和傻瓜去走下去的。只是這劇中更佳醒腦,當進行了數年沒成果時,投資人的語氣不會好聽的,若有洽當的執行者出現,真的適合把自己換掉,讓彼此專注在擅長的事務。這齣戲描敘了很棒的觀點:關鍵人物!此外也提到了均分的持股是沒有任何意義的,這讓我回想起周邊長輩想要二次創業時,就是提出了不該均分持股(均分權力),永遠都要有個人當頭,但那時我還年輕,總覺得不就好好說服彼此嗎?!看到戲把很多記憶硬生生地拉到面前審視。後來我在三十多歲時,我的老闆很早就把這意識默默的敲進我的腦袋,凡事都要有人挺起胸膛做主的,我現在覺得很合理的事,在當年真的沒想透。

駭客松呢?參加過三次,最嫩的那次得了小獎,其他兩次純跟朋友聚聚會享受氣氛 XD 看著戲裡感受到黑客松那熬夜燃燒生命很美好,可惜的是現實中黑客松本來就不是公平的 :P 存在那獎金獵人的,已經把早已研究/熟識的題目到處參戰的,沒啥對錯,卻能讓人更親近社會,避免被學校那假公平的環境給慣壞了,真的適合去黑客松體驗幾場。很巧的,能說嘴的那次的記憶是搞笑的,幾個同學當作畢業旅行,記得初審時我們實驗室所學的轉換成一份初審計畫書,我記得只花一個多星期就搞定的,包含連彼此都不熟系的 framework 花了大把時間在那邊練習安裝,是的,只停留在如何安裝那套系統 XD 然後截止日前一天才開始嘴砲報告,熬夜遞交後,還一起去吃早餐,我也在早餐店翻了翻小時想看的漫畫結局,好不愜意啊。就這樣傻傻的入選10隊去競賽,且沒人懂那 framework 的。別的隊伍要嘛已熟工具,要嘛研究所就是做該領域的,最後竟然能得獎,推論對於問題解決的原理是不需要純靠那 framework 的,我們產出的比較像有完整的系統介面,透過 Web UI 觸發分析程式、串接 framework 結果,可能是看起來是相較比較完整的優勢吧?

時間再拉回近況,幾年前有幸陪老闆參加過國內知名的加速器,這些經驗就真的跟戲裡的劇情有更深的對應。團隊在加速器內,大部分仍是靠自己,只有辦公室可能不用錢,但每週要跟著加速器步調文化,不一定是好事,例如心急的人會覺得交際的時間拉長了。加速器的 demo day 也真的很盛大,可惜這些都沒接觸,是比較可惜的一塊。這時,讓我想起一個八卦,身邊有朋友參加草創期的團隊,那時是在校園孵化器,被當免洗工程師,弄出雛型就被 fire 了。站在勞方會覺得資方無情,但資方要扛的責任本是不同,而這間團隊後來闖出名堂,在 2020 年已經完成數輪投資,累積募資超過30億台幣。恰好另一位朋友已經在規模化的公司下工作,那時的心情跟參加草創期是很不一樣的感受的。

回過頭來,雖然沒有真實落名的創業,卻也經歷過成立公司評估資金燃燒率、思考退場機制、面對過類似併購聘用事件、最簡可行產品、經歷過規模化,大概只差電梯簡報沒有真的經歷過吧,而備份是已雲端化基本的步調

最後,呼應一下劇情,筆記一下自己的經歷跟感受:

  • 戲劇的黑客松片段,訓練出 99.x% 辨識率,推論本身就會 overfitting 而導致誤判,可惜的劇裡沒有提及這件事 XD 反而說男一賽後熬夜一天就解決 bug 等等,小可惜
  • 窮的時候,聞著香味吃著飯,真的很坎坷又有同感
  • 住過頂樓,真的爆熱,記得要配冷氣
  • 能夠有一群一起創業的夥伴真的很讚,現實中也代表經濟壓力沒大到活不下去,才能搞這種中長期的創業題目,別看著別人就跟著跳下去,彼此的資源先天上就真的不同
  • 團隊還是優於題目的,因為團隊成員的潛力可以克服一切問題,那題目也沒那麼重要
  • 邀約創公司,有時只是想留下人才藉口
  • 股份比例殘忍的,為了比例是真的要撕破臉的,經歷過才知道,其實大多不是錢的問題
  • 成立公司還是加入別人的團隊,真的要面對的課題是不一樣,是一個滿好的人生問題
  • VC 說話真的比較難聽 XD
  • 工作數年後,訓練出一眼看透別人的潛力,要多多珍惜人性美好的那塊,實在是大家都聰明人,會躲責任的滿街都是,會吃苦耐勞肯給建言的夥伴,要份外珍惜
  • 時間,永遠是最貴的。要人把青春年華貢獻出來、要人把資源花在你身上,對彼此都是大事
註:事後跟其他朋友哈拉這戲,都說很爛甚至看一半就棄戲 XD 如:[心得] Start Up 棄劇心得(有雷),理由是因為人設關係,在愛情戲裡有太多矛盾點 XD 我自己看倒是還好,就願打願挨,但我自己也比較愛好男二,但不至於因為男一跟女一的人設而討厭這戲,大概是我專注在回憶我自己的故事吧?