星期三, 4月 08, 2020

筆記:Firebase functions with authentication

主要可以 trigger 兩個,一個是 onCreate,一個是 onDelete
onCreate 在以下情況會被觸發
  • A user creates an email account and password.
  • A user signs in for the first time using a federated identity provider.
  • The developer creates an account using the Firebase Admin SDK.
  • A user signs in to a new anonymous auth session for the first time.
exports.sendWelcomeEmail = functions.auth.user().onCreate((user) => {
  // ...
});

onDelete 在使用者被刪除時觸發
exports.sendByeEmail = functions.auth.user().onDelete((user) => {
  // ...
});
裡面的 user 主要就是 UserRecord
email / displayName / customClaims / uid / …. 等欄位都有。
onDelete 可以用來做刪除 firestore/realtime database 上的資料,需要考慮 functions 能執行多久。

星期二, 4月 07, 2020

修改 git commit 的 author name

因為 commit 時的作者身份錯亂,所以要改掉。在 StackOverflow 查到這篇:How to change the commit author for one specific commit?
  1. 先 git rebase -i ,然後把 pick 全改成 edit
  2. 接著,git 會切到第一個 commit 結束的時間點
  3. 輸入 git commit –amend —author=”Author Name <email@address.com>” –no-edit ,這樣就會把這次 commit 的 author 修改為 Author Name 。對,別忘了,這邊要改成你自己的名字跟 e-mail 。
  4. 再輸入 git rebase –continue 切到下個 commit
  5. 就這樣依序作業直到結束。
很麻煩,如果有上千個 commit 的話….(眼神死),所以以後還是要把 author 設定好,否則又要再苦一次。

星期一, 4月 06, 2020

axios catch

一般是寫 .catch((err) => {console.log(err);}
這樣只會看到 http status 的錯誤,不能取得 response。那該怎麼取得 error response 呢?axios 文件有寫了,用 err.response: https://github.com/axios/axios#handling-errors
axios.get('/user/12345')
  .catch(function (error) {
    if (error.response) {
      // The request was made and the server responded with a status code
      // that falls out of the range of 2xx
      console.log(error.response.data);    // 取得內容,用 error.response.data
      console.log(error.response.status);  // 取得狀態碼,用 error.response.status
      console.log(error.response.headers); // 取得表頭,用 error.response.headers
    } else if (error.request) {
      // The request was made but no response was received
      // `error.request` is an instance of XMLHttpRequest in the browser and an instance of
      // http.ClientRequest in node.js
      console.log(error.request);
    } else {
      // Something happened in setting up the request that triggered an Error
      console.log('Error', error.message);
    }
    console.log(error.config);
  });

星期六, 4月 04, 2020

電影流水帳(2020/03/01~2020/03/15)

Cara Delevingne - Vogue Magazine Photoshoot - September 2016 Issue 1
  • Time Freak (IMDB, Wikipedia),台譯:時間怪客。
  • Valérian et la Cité des mille planètes (IMDB, Wikipedia),台譯:星際特工瓦雷諾:千星之城。

Time Freak

Time Freak 故事蠻有趣的,是講男主角 Stillman 為了追求女主角 Debbie 製作了時光機器,然後試了無數次才成功的跟 Debbie 結婚,可是到了後來卻發現Debbie 沒有了熱情,他認為也許是自己扼殺了 Debbie 的熱情,為了讓心愛的人能更開心的生活,就決定回到過去讓自己無法製造這機器。跟著 Stillman 一起改變歷史的好友 Evan ,也跟著 Stillman 一起回到過去,已經享受過時光機器紅利的 Evan 試著阻止 Stillman 。但沒辦法阻止,Evan 只能眼睜睜看著 Stillman 無法發明時光機器了嗎?可是想不到,這時候 Debbie 赫然出現,知道真相的她相當的生氣,也透過時光機器回到過去,她很明白的告知 Stillman ,你不能這樣地隨意的操弄我的人生,把話說開以後,Debbie 跟 Stillman 相擁而吻,結束這故事。

Valérian et la Cité des mille planètes

盧貝松拍的,整個電影很有「第五元素」的既視感。基本上我蠻喜歡這故事的,有娛樂性,故事也有意思,只是後面有點拖戲了,沒有「第五元素」來的緊湊,蠻可惜的。除了故事以外,我也很喜歡女主角 Cara Delevingne ,她有點 Eva Green 的氣質,有點壞壞的,又很有魅力。
特工 Valerian 愛上女搭檔 Laureline,跟他告白,想說出完這次任務就結婚,一同去度假。想不到這次任務卻是意外的驚險,兩人歷經千辛萬苦,好不容易才取得神獸。回到星際城市阿爾法以後,本以為可以去結婚度假了,阿爾法有了狀況。這暫且按下不表,先說說阿爾法,阿爾法是個巨大的星際城市,裡面有各種不同的地形、環境,也有各種不同的人種,是個相當特殊的城市,這個城市由不同人種組成的政府來管理。那阿爾法出現什麼狀況了呢?在城市的某個角落沒有了通訊,也無法控制,派軍隊去了幾次,但都沒有人能回來。指揮官為了這事情傷透腦筋,開會討論,回來以後的 Valerian 跟 Laureline 奉命保護指揮官。會議才開到一半,就被人襲擊,指揮官被擄走。追蹤了訊號,發現訊號是消失在之前那個沒通訊的角落,Valerian 就開著飛艇到那邊去了。只是這次 Valerian 任務並不順利,Valerian 的飛艇被擊落,留守總部的 Laureline 為了救 Valerian ,違抗總部命令,隻身前往救援。
Laureline 透過關係,通靈到 Valerian 墜落的位置,然後前往那邊救出 Valerian。救出以後,他們決定更深入去尋找指揮官,卻也因此陷入了更多事件裡。不過在追查的過程裡,他們慢慢發現事情不簡單,指揮官這個人的意圖也不簡單,在總部代理指揮官也發現了這事情。追查到最後,他們終於把事情弄清楚,指揮官在數年前在打仗時,打算發射毀滅性武器幹掉敵人,敵人在某個星球附近,指揮官想說星球上應該沒人,也疏於調查,就決定發射了飛彈。敵人被滅掉了,而那星球上的種族也被滅了一大部分,殘存的人慢慢的學習科技,並逃到了阿爾法,並在裡面的某個角落生活下來,這個時間點也正好是阿爾法總部無法掌握那個角落的時間。後來指揮官知道了這事情,就想要把他們都滅了,永絕後患。總之,Valerian 跟 Laureline 透過該族的人了解了整件事情的前因後果,阻止了指揮官,揭發了他過去的罪行,該族的人民回歸和平,Valerian 跟 Laureline 結婚去了。

星期四, 4月 02, 2020

用 snap 跑 Folding@Home

環境:Ubuntu 18.04
這是看到 分享:處理 COVID19 之軟體專案數則 ,裏面提到 Folding@Home 可以幫忙運算與武漢病毒相關資訊,所以想裝起來幫忙。官方網站有提供 Linux / Windows / MacOS 的軟體,基本上裝起來就可以了。T客邦有篇介紹文章:
我不想裝 Debian package,想用 snap 來安裝,網路上有好心人打包好了。
安裝步驟很簡單,因為 Ubuntu 18.04 已經預先裝了 snap,接著只要用 snap 來安裝就可以:
sudo snap install folding-at-home-fcole90 --edge # 安裝
snap connect folding-at-home-fcole90:hardware-observe # 允許檢查硬體 (這是為了檢查 GPU 用,可以用 GPU 輔助運算)
snap services folding-at-home-fcole90.FAHClient # 檢查服務是否運行。
安裝好以後,在選單可以找到 FAHControl,執行它。第一步是先設定,按下工具列的 Configure,在 Identity 填入名字,以及 Team number。名字可以自己取,Team number 的話,請填 31403 ,這是台灣隊的編號,說明可以參考這篇 Folding@Home Taiwan Team。設定好之後,按下 “Fold” ,就會開始下載資料並進行運算了。以我的電腦配備,一個回合大約要兩小時。我有看到可以用 GPU 加速,我就依照這篇 How to Check Which GPU Is Installed on Linux 查了一下,看我的電腦有沒有支援 GPU,看了以後,我覺得應該是有,但 FAHControl 卻說沒有 (切到 System log 可以看到),查了半天都沒查出原因,後來才在 fah-snap 的 issues 看到這條 FAHClient cannot detect OpenCL correctly 。嗯,那看來只能等作者解決了,或者,裝 Debian package 試試看囉。

您或許對這些文章有興趣

Related Posts Plugin for WordPress, Blogger...