#cofacts

2020-03-01
yanglin 17:05:12
@lucien @stbb1025 想請問一下
所以按照 figma 設計,未來訊息會分成三個頁面
然後回應就直接帶在訊息下面可以收合,不再有獨立頁面
是這樣子嗎?
https://www.figma.com/file/5qegqv1g0fxCYkzNz3jVA6/%5BWireframe%5D-Need-to-Review-Page?node-id=0%3A1
Figma
Created with Figma
缺 RSS 訂閱按鈕~
rss 訂閱鈕應該好處理
時間的 filter 是不是要額外加?
嗯 API 目前還沒有,要加
嗨嗨,不是的
每個列表的可疑訊息點進去仍然會有詳情頁
目前只有最新查核頁才有帶回覆
熱門訊息那邊,我還要確定一下定義
熱門訊息是啥呀
用 LINE bot analytics 的嗎(現在沒有)
mrorz 17:49:52
缺 RSS 訂閱按鈕~
Eric Chen 18:16:17
@iforests has joined the channel
yanglin 18:27:05
rss 訂閱鈕應該好處理
時間的 filter 是不是要額外加?
mrorz 18:32:45
嗯 API 目前還沒有,要加
mrorz 18:33:12
https://github.com/cofacts/rumors-api/issues/148 這裡有過去的會議紀錄
GitHub
From 20200212 meeting note, it would be great if we can provide date range search on createdAt for articles and replies, lastRequestedAt or having article reply createdAt for articles. To achieve t...
lucien 19:50:31
嗨嗨,不是的
lucien 19:52:11
每個列表的可疑訊息點進去仍然會有詳情頁
lucien 19:55:34
目前只有最新查核頁才有帶回覆
  • 👌1
lucien 19:55:55
熱門訊息那邊,我還要確定一下定義
maxjkfc 21:22:41
@maxjkfc has joined the channel
zoe.lee 23:55:25
@zoe.lee has joined the channel
2020-03-02
Wei 00:29:41
@a65162 has joined the channel
mrorz 11:02:13
熱門訊息是啥呀
用 LINE bot analytics 的嗎(現在沒有)
mrorz 11:02:49
Google Data Studio
Google Data Studio turns your data into informative dashboards and reports that are easy to read, easy to share, and fully customizable.
tw4our 12:35:33
@tw4our has joined the channel
kay830123 20:46:01
@kay830123 has joined the channel
2020-03-03
mrorz 02:03:21
Rollbar 又要滿了
最近最熱門兩個 error 是
https://github.com/cofacts/rumors-site/issues/209
https://github.com/cofacts/rumors-site/issues/227 (這在今晚突然大爆發,一定是有爬蟲在爬網站囧)
GitHub
View details in Rollbar: <https://rollbar.com/mrorz/rumors-site/items/62/> t: userId is not set via query string. File &amp;quot;https://cofacts.g0v.tw/_next/static/chunks/commons.3d6e3726d3a6a9caf962.js...
GitHub
View details in Rollbar: <https://rollbar.com/mrorz/rumors-site/items/105/> Error: GraphQL error: fromUserOfArticleId does not match any existing articles File &amp;quot;/srv/www/node_modules/apollo-clie...
這是怎樣囧
他直接衝 982 occurences
我現在 quota 剩 200
下次 reset 是 3/19
WTF
我先把 production 中文與英文的 rollbar 都拔掉了(rollbar token 從 docker-compose 裡 comment 掉之後重啟)

等我把上面兩個 bug 修完之後再開⋯⋯
mrorz 02:04:09
這是怎樣囧
image.png
mrorz 02:04:39
最近只剩下網站的 error 了
非常感謝 @acerxp511 消滅 LINE bot 的 error,剩下的網站的 bug 都是我以前造的孽嗚嗚嗚嗚
  • 1
mrorz 03:22:59
他直接衝 982 occurences
我現在 quota 剩 200
下次 reset 是 3/19
WTF
image.png
mrorz 03:23:57
我先把 production 中文與英文的 rollbar 都拔掉了(rollbar token 從 docker-compose 裡 comment 掉之後重啟)

等我把上面兩個 bug 修完之後再開⋯⋯
yanglin 09:39:07
@lucien @stbb1025 前端頁面感覺可能需要針對行動裝置做優化?
@mrorz 所以我先做 time range API 嗎?
還有這週什麼時間可以 cowork 呢?
@yanglin5689446 周四週五我會在 workis 唷

其實目前還是蠻需要一個能呈現最新回應的 Article list ( https://github.com/cofacts/rumors-site/issues/212 ) 。如果設計還沒好的話,time range API ( https://github.com/cofacts/rumors-api/issues/148 ) 是很不錯的方向。
那我先做一個簡單的把最新回應接在訊息下面的 UI
之後等設計出來再優化?
行動裝置的部分週三可以給大家看新進度唷
我最近在用 RSS,覺得有信件寄到自己信箱蠻有用的,所以昨天在處理這個 https://github.com/cofacts/rumors-site/issues/225
今明兩天發 PR;
不過我今天中午應該會先處理凌晨的時候提的兩個常發生的 Bug。
是說你們禮拜三的開會都在哪哇
我可以參與嗎?
歡迎歡迎
8:30pm 一樣在 Workis 唷

過去的會議記錄請見 https://g0v.hackmd.io/-OLr4hRoQBOjtMjo947X4Q
它是個 linked list~
明明就是8點QQ
話說
> 可能需要針對行動裝置做優化
我覺得實作的時候可能直接從 mobile-first 的思維來做會比較好,也就是所有的 style 與 component 都是預設 for mobile,desktop 版本放在 condition / media query 裏頭

一方面是這樣 mobile 效能會比較好,符合我們的使用數據(大多數 mobile)
另一方面是邏輯也會比較單純,不會有些判斷式在判斷是 mobile、有些在判斷是 desktop。
Sure~但其實可以在實作的時候同時考量😆
👍
mrorz 10:20:55
@yanglin5689446 周四週五我會在 workis 唷

其實目前還是蠻需要一個能呈現最新回應的 Article list ( https://github.com/cofacts/rumors-site/issues/212 ) 。如果設計還沒好的話,time range API ( https://github.com/cofacts/rumors-api/issues/148 ) 是很不錯的方向。
GitHub
From 20200212 meeting note, it would be great if we can provide date range search on createdAt for articles and replies, lastRequestedAt or having article reply createdAt for articles. To achieve t...
yanglin 10:22:44
那我先做一個簡單的把最新回應接在訊息下面的 UI
之後等設計出來再優化?
  • 1
stbb1025 10:24:13
行動裝置的部分週三可以給大家看新進度唷
  • 👍3
  • 3
mrorz 10:25:32
我最近在用 RSS,覺得有信件寄到自己信箱蠻有用的,所以昨天在處理這個 https://github.com/cofacts/rumors-site/issues/225
今明兩天發 PR;
不過我今天中午應該會先處理凌晨的時候提的兩個常發生的 Bug。
GitHub
As an RSS subscription user, I have subscribed to the feed of &amp;quot;replied articles&amp;quot;. However, the content only includes the content of article. As a subscriber of &amp;quot;replied articles&amp;quot...
  • 1
yanglin 10:41:43
是說你們禮拜三的開會都在哪哇
我可以參與嗎?
mrorz 11:30:56
歡迎歡迎
8:30pm 一樣在 Workis 唷

過去的會議記錄請見 https://g0v.hackmd.io/-OLr4hRoQBOjtMjo947X4Q
它是個 linked list~
bil 18:26:30
明明就是8點QQ
mrorz 21:02:03
話說
> 可能需要針對行動裝置做優化
我覺得實作的時候可能直接從 mobile-first 的思維來做會比較好,也就是所有的 style 與 component 都是預設 for mobile,desktop 版本放在 condition / media query 裏頭

一方面是這樣 mobile 效能會比較好,符合我們的使用數據(大多數 mobile)
另一方面是邏輯也會比較單純,不會有些判斷式在判斷是 mobile、有些在判斷是 desktop。
stbb1025 21:03:46
Sure~但其實可以在實作的時候同時考量😆
mrorz 21:11:19
說到 time range API
https://github.com/cofacts/rumors-api/issues/148 裡面只提到要提供的 operator,但沒有提到 value 的部分。

其實 elasticsearch range query 還支援 `now/d` (會自動 round 到今天的開始或結束) 與 `now-7d` (七天內) 等 relative time range
這個在做 RSS 訂閱的時候非常有用,因為我會想訂閱「最近 7 天」送出且有某關鍵字的訊息列表
所以 API 方面,希望 value 可以是這種形態(直接用字串?)
GitHub
From 20200212 meeting note, it would be great if we can provide date range search on createdAt for articles and replies, lastRequestedAt or having article reply createdAt for articles. To achieve t...
  • 👍1
mrorz 22:59:09
然後有空也可以看看 PR 唷
https://github.com/cofacts/rumors-site/pull/228
GitHub
Fixes #209 Capture auth error emitted by rumors-api and display alert() Auth error still produces a rejected promise (so that success callbacks are not invoked), but it will no longer trigger Roll...
lucien 23:04:29
👍
mrorz 23:54:29
@bil 3/14 線上大松
我們在 workis 可以自己訂肯德基嗎 XDD
workis最近是胖老爹
但 KFC 比較棒
訂那個都是腿的
那揪松要訂起家雞(雲端大松演變成炸雞 battle)
我要穿小仙女送公文然後吃雞腿喝牛奶、欸有烤雞腿嗎迷迭香
好呀可以
mrorz 23:54:59
肯德基KFC網路訂餐
肯德基經典A餐-10塊雞桶網路訂餐外送享優惠好禮,KFC預訂快取外帶炸雞不用等,不出門就選肯德基外送美食,好吃炸雞外送訂餐享優惠好禮!
2020-03-04
bil 00:04:18
workis最近是胖老爹
mrorz 00:07:47
但 KFC 比較棒
Yiling 06:28:14
@yiling.cheng010 has joined the channel
Chin 09:59:58
@greeting.to.chin has joined the channel
yanglin 13:12:08
先做了一個陽春的可以看到最新回覆的介面
只有 filter 選 most recently replied 的時候才會顯示
不過我用右圖的 fragment query 去拿資料的時候
神奇的事全部都是拿到同一筆 articleReply?
數量好像是對的但內容都是同一筆
有點神奇
截圖 2020-03-04 下午1.09.24.png
截圖 2020-03-04 下午1.10.01.png
拿 `articleReplies` 的時候
底下加拿 `articleId` 與 `replyId` 呢?

我猜是 normalized cache 抓錯 instance
有了
感謝感謝
我們在 custom ID mapper 有指定 `ArticleReply` 的 id 是 `articleId` + `replyId`
https://github.com/cofacts/rumors-site/blob/dev/lib/apollo.js#L21-L22
這種真的是沒踩過不會知道囧
這邊有 apollo-client 預設的 cache 的行為
https://www.apollographql.com/docs/react/caching/cache-configuration/#data-normalization

都沒圖就是惹
是說我覺得 filter 選 all (所有訊息) 也可以顯示 latest reply~? 就是有回應的就顯示,沒回應的就不顯示
現在是 order by most recent relied 的時候會顯示
bil 13:27:27
訂那個都是腿的
  • 🍗1
mrorz 13:40:01
拿 `articleReplies` 的時候
底下加拿 `articleId` 與 `replyId` 呢?

我猜是 normalized cache 抓錯 instance
  • ❤️1
yanglin 13:41:34
有了
感謝感謝
mrorz 13:41:42
我們在 custom ID mapper 有指定 `ArticleReply` 的 id 是 `articleId` + `replyId`
https://github.com/cofacts/rumors-site/blob/dev/lib/apollo.js#L21-L22
GitHub
Rumors list / creation UI, with server-side rendering - cofacts/rumors-site
  • 😮1
mrorz 13:41:49
這種真的是沒踩過不會知道囧
mrorz 13:42:26
chrome.google.com
GraphQL debugging tools for Apollo Client in the Chrome developer console.
  • 👌1
mrorz 13:45:31
這邊有 apollo-client 預設的 cache 的行為
https://www.apollographql.com/docs/react/caching/cache-configuration/#data-normalization

都沒圖就是惹
Apollo GraphQL Docs
A guide to using the Apollo GraphQL Client with React
mrorz 13:47:22
是說我覺得 filter 選 all (所有訊息) 也可以顯示 latest reply~? 就是有回應的就顯示,沒回應的就不顯示
yanglin 13:49:20
現在是 order by most recent relied 的時候會顯示
  • 👍1
fly 17:05:11
Google台灣 - 官方部落格
面對快速散播的不實資訊,如何從中去蕪存菁、辨別正確內容,儼然成為新聞記者和事實查核人員的巨大挑戰。可怕的是,不實資訊無所不在,文字還只是其中一部分, 那些像病毒般流傳的圖片 及 網路爆紅梗圖 ,也大量充斥在我們的動態消息和即時通訊,而這些內容往往都有斷章取義或造假的可能性。在...
  • 1
bess 18:41:30
那揪松要訂起家雞(雲端大松演變成炸雞 battle)
  • 🦒1
  • 🐳1
  • ❤️1
bil 19:05:45
我要穿小仙女送公文然後吃雞腿喝牛奶、欸有烤雞腿嗎迷迭香
Swim 20:02:47
@poesiapeng has joined the channel
delightfullychaotic 20:05:04
@mrorz 這邊有熱情的台南鄉親 發現機器人的 Bug
簡單來說就是有超過一篇回應的情況下,按了一篇看完,無法按其他篇
Swim 20:05:11
Image from iOS
Hi @poesiapeng, 剛才 deploy 了最新版的 chatbot。現在看完一篇回應之後應該可以接另一篇囉!

不過,如果傳了新的訊息進來,前一則訊息的所有按鈕仍然會失效。

因為整個 chatbot 剛完成大改寫,所以最近可能會發現沒測到的 bug,還請大家多多幫忙回報 m(_ _)m

cc/ @delightfullychaotic 原討論串
@mrorz 剛剛測試了,確認可以點擊其他回應!辛苦了👍
不過剛剛我要點擊「是」回應是否有幫助的問題,卻跳出這個畫面,可是我是使用手機😅⋯⋯
Hmm 我是 Android 使用者,沒有遇到這件事情呢。

@poesiapeng 請問您是不是有開啟「在 Safari 開啟連結」功能呢

https://today.line.me/tw/article/%E6%96%B0%E5%A2%9E%EF%BC%8F+iOS%E7%89%88LINE+%E6%8F%90%E4%BE%9B%E7%94%A8Safari%E9%96%8B%E5%95%9F%E9%80%A3%E7%B5%90%E7%9A%84%E5%AF%A6%E9%A9%97%E5%8A%9F%E8%83%BD-nm9m0D
如果有的話,請把它關閉再試試看唷
確認可以打開囉!辛苦了
感謝您的測試,我們晚上 9:45 時剛上新版,應該是修好了~~
delightfullychaotic 20:05:28
就是我們可愛的正妹 @poesiapeng 非常感謝反應 ❤️
mrorz 20:09:42
感謝感謝,記錄在這裡囉 https://github.com/cofacts/rumors-line-bot/issues/49
GitHub
From the meeting note: The postback buttons for choosing articles and choosing replies should still be clickable after the user has chosen an article or chosen a reply. After the user forwarded us ...
2020-03-05
mrorz 01:10:33
Review 了 @acerxp511 的 PR 囉 https://github.com/cofacts/rumors-line-bot/pull/160

也請大家看看 RSS 的 PR:https://github.com/cofacts/rumors-site/pull/229
GitHub
Fix image message bug, should only handle text.length &gt;= 3 Note : text.length &lt; 3 won&amp;#39;t be consider as new article sent in. Limit the number of image messages linebot can process simult...
GitHub
Currently on production site, the RSS feed link cannot be added to IFTTT and blogtrottr. blogtrottr has told me that the current Cofacts feed has invalid content-type header. This PR: adds a vali...
mrorz 01:12:12
好呀可以
NCHC_AUG 07:32:10
@augchao.nchc has joined the channel
mrorz 15:12:39
@yanglin5689446 昨天的 PR 有一些 exception 麻煩幫 review
感謝感謝 https://github.com/cofacts/rumors-site/pull/231
GitHub
Currently visiting article list will see 500 internal server error: The root cause is ArticleItem trying to read createAt on empty reply: cofacts-staging-zh_1_26a0c24950d3 | 2020-03-05 06:04 +00:0...
  • 👌1
ichieh 16:58:04
嗨我是揪松團的以婕,g0v 三月大松改為線上參與,因為知道專案們可能會揪實體小松,開了一個共筆彙整資料,歡迎大家持續補上自己專案的資訊和地點 😆:https://g0v.hackmd.io/@jothon/SktGdVAVU
mrorz 17:22:53
感謝以婕~
mrorz 17:23:31
新的 RSS 上 staging site 了,我做了一個 IFTTT Applet 可以把 Cofacts RSS 透過 LINE Notify 送進 LINE
https://ifttt.com/applets/djEHvum7
ifttt.com
傳送 Cofacts 更新到 LINE
  • 1
  • 2
太讚啦!!
有幾個限制
1. 每個 IFTTT 使用者,同一個 applet 只能 connect 一次;如果他要 subscribe 另一個 RSS feed,必須要自己從 https://ifttt.com/create 做一個
2. 使用者要自己把 LINE Notify 加入好友,然後要在 IFTTT 上用 LINE 登入 ( https://www.oxxostudio.tw/articles/201803/ifttt-line.html )
fly 17:24:43
太讚啦!!
mrorz 17:26:47
有幾個限制
1. 每個 IFTTT 使用者,同一個 applet 只能 connect 一次;如果他要 subscribe 另一個 RSS feed,必須要自己從 https://ifttt.com/create 做一個
2. 使用者要自己把 LINE Notify 加入好友,然後要在 IFTTT 上用 LINE 登入 ( https://www.oxxostudio.tw/articles/201803/ifttt-line.html )
ifttt.com
Sign up for a free account
oxxostudio.tw
去年我寫過兩篇文章介紹如何自己打造 LINE 機器人,不過如果只是要發送訊息通知,實在也沒必要花這麼大功夫去打造聊天機器人,所以這篇將會透過 IFTTT 與 LINE Notify,在不用寫什麼程式的情況下,實現「觸發某件事,就自動發送 LINE 訊息」的功能。
  • 1
mrorz 17:42:08
其實另外一種做法是,我們這裡自己直接接 LINE notify,不走 IFTTT RSS -> LINE Notify。跟 LINE notify 整合,看起來就是啟動 Oauth flow 之後拿到使用者的 access token,然後我們就能用這個(不會過期的)access token 發 notification。notification 發給誰、發到哪個 channel,是使用者在被導向到 LINE 的時候自己寫的。

也就是說,每個 access token 都會是一個 subscription 紀錄。我們要把 access token 們記下來,然後自己決定什麼時候 notify 使用者。
mrorz 19:46:04
是說如果要實作 web notification
其實也可以用 web worker 實作一個定時讀 RSS(還有紀錄上次讀到哪)的機制
有新東西的時候進行 push notification
這樣也不用做 third-party integration
mrorz 20:15:00
之前按回應列表有時候會壞掉的 bug
在這裡會修好唷,請 review: https://github.com/cofacts/rumors-site/pull/232
GitHub
Fixes #227 by Display error and handle null values properly in article list page ignore that specific error in Rollbar This PR also fixes #193 by properly handle null values in reply list page....
yc Lin 22:15:24
@lcdwpt has joined the channel
2020-03-06
mrorz 10:52:37
禮拜三的時候有聊過我把 polyfill 塞進 webpack bundle 這件事
( https://g0v.hackmd.io/-x5qyf_ER-mTiECYx0GX6g#Polyfill )

我剛才用 next-bundle-analyzer 測了一下,結果在這裡:
polyfill.png
不過左邊 commons.js (卡其色)裡也有 corejs-library QQ
很多
大概是 0.6 個 material-ui (?
mrorz 10:54:17
Parsed size (=minify 過、gzip 前) 多 93KB
這算很多嗎 XD
mrorz 10:56:13
不過左邊 commons.js (卡其色)裡也有 corejs-library QQ
lucien 11:02:18
很多
yanglin 11:05:17
整體來說不算很多
但是變大八倍這一點有點多 XD
mrorz 11:11:48
那我開張票放著好了
mrorz 11:12:27
大概是 0.6 個 material-ui (?
  • 🤔1
mrorz 11:13:30
這張票 merge 之後我就可以把 Rollbar 再打開囉
https://github.com/cofacts/rumors-site/pull/232
GitHub
Fixes #227 by Display error and handle null values properly in article list page ignore that specific error in Rollbar This PR also fixes #193 by properly handle null values in reply list page....
mrorz 11:26:58
GitHub
In #221 we added core-js to main bundle to resolve #208. However, it has increased the client bundle size for 90KB: In 20200304 meeting we have discussed possibilities to skip loading the polyfill ...
isabelhou 21:04:17
Cofacts在314大松日會有實體坑嗎?有的話請填一下喔https://g0v.hackmd.io/dOt6002FTe2loy3Ncq6_7Q
2020-03-07
bil 00:13:31
有喔甜甜
dajing 17:21:49
@wer321011 has joined the channel
2020-03-09
mrorz 12:47:25
Cofacts production 硬碟滿了囧
我們有個 cronjob 每天會清掉 API 送進來問過之後就沒人用的 hyperlink scrap result
3/8 的時候有成功執行並且清除上萬個 hyperlink result

但 3/9 的時候不知道為什麼都沒成功
我先 `du` 看一下到底爆在哪
```root@debian:/home/docker/rumors-deploy# du -d 2 -h volumes/
4.0K volumes/certbot/renew-cron
8.0K volumes/certbot
4.0K volumes/db-sample
456K volumes/db-production/nodes-bkup
24K volumes/db-production/bkup
8.3G volumes/db-production/nodes
9.8G volumes/db-production
20K volumes/nginx/sites-enabled
28K volumes/nginx
4.0K volumes/db-staging
9.8G volumes/```
資料庫才 8.3 G
我整個系統是 160G 噎
```root@debian:/var/log# du -d 2 -h .
4.0K ./unattended-upgrades
2.1M ./letsencrypt
1.5G ./linode
44K ./exim4
12K ./fsck
92K ./apt
5.3G ./nginx
13M ./installer/cdebconf
13M ./installer
28K ./git-daemon
4.0K ./sysstat
4.0K ./ntpstats
6.9G .```
Log 是 6.9G
nginx log 看起來大,但是我有 logrotate 所以應該還 ok
`/var/lib/docker` 134G 呀 ._.
```root@debian:/var/lib# docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 27 7 7.903GB 5.63GB (71%)
Containers 7 6 5.344GB 151B (0%)
Local Volumes 122 0 45.4MB 45.4MB (100%)
Build Cache 0 0 0B 0B```
然後 docker system df 跟我說只有 5.63 GB
`/var/lib/docker ` 底下最大的是 containers
images 是 41G 等等再處理
```root@debian:/var/lib/docker# du -d 1 -h .
47M ./volumes
20K ./plugins
4.0K ./runtimes
20K ./builder
4.0K ./tmp
72K ./buildkit
63M ./image
41G ./devicemapper
104K ./network
4.0K ./swarm
4.0K ./trust
94G ./containers
268K ./containerd
134G .```
94G 的 container 裡
最大的是 94G 的、正在跑 elasticsearch 的 container @@
Google 找 elasticsearch container 佔空間的問題
https://stackoverflow.com/questions/59507037/elasticsearch-docker-container-taking-all-my-disk-space-cannot-find-where
有人說是資料亂存(但發問者跟我一樣是把整個 data 資料夾 bind mount)
有人說是 swap 問題
總之我先照著做
把 elasticsearch container restart 好了
只是這樣我 backup 要重設哎
mrorz 12:47:28
我看看發生什麼事情
mrorz 12:53:53
我們有個 cronjob 每天會清掉 API 送進來問過之後就沒人用的 hyperlink scrap result
3/8 的時候有成功執行並且清除上萬個 hyperlink result

但 3/9 的時候不知道為什麼都沒成功
mrorz 12:54:06
我先 `du` 看一下到底爆在哪
mrorz 12:55:43
```root@debian:/home/docker/rumors-deploy# du -d 2 -h volumes/
4.0K volumes/certbot/renew-cron
8.0K volumes/certbot
4.0K volumes/db-sample
456K volumes/db-production/nodes-bkup
24K volumes/db-production/bkup
8.3G volumes/db-production/nodes
9.8G volumes/db-production
20K volumes/nginx/sites-enabled
28K volumes/nginx
4.0K volumes/db-staging
9.8G volumes/```
資料庫才 8.3 G
我整個系統是 160G 噎
mrorz 12:56:42
```root@debian:/var/log# du -d 2 -h .
4.0K ./unattended-upgrades
2.1M ./letsencrypt
1.5G ./linode
44K ./exim4
12K ./fsck
92K ./apt
5.3G ./nginx
13M ./installer/cdebconf
13M ./installer
28K ./git-daemon
4.0K ./sysstat
4.0K ./ntpstats
6.9G .```
Log 是 6.9G
nginx log 看起來大,但是我有 logrotate 所以應該還 ok
mrorz 13:00:21
`/var/lib/docker` 134G 呀 ._.
mrorz 13:03:08
```root@debian:/var/lib# docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 27 7 7.903GB 5.63GB (71%)
Containers 7 6 5.344GB 151B (0%)
Local Volumes 122 0 45.4MB 45.4MB (100%)
Build Cache 0 0 0B 0B```
mrorz 13:03:25
然後 docker system df 跟我說只有 5.63 GB
@gd has joined the channel
mrorz 13:08:45
`/var/lib/docker ` 底下最大的是 containers
images 是 41G 等等再處理
```root@debian:/var/lib/docker# du -d 1 -h .
47M ./volumes
20K ./plugins
4.0K ./runtimes
20K ./builder
4.0K ./tmp
72K ./buildkit
63M ./image
41G ./devicemapper
104K ./network
4.0K ./swarm
4.0K ./trust
94G ./containers
268K ./containerd
134G .```
mrorz 13:09:25
94G 的 container 裡
最大的是 94G 的、正在跑 elasticsearch 的 container @@
mrorz 13:11:33
Replied to a thread: 2020-03-09 12:47:25
Google 找 elasticsearch container 佔空間的問題
https://stackoverflow.com/questions/59507037/elasticsearch-docker-container-taking-all-my-disk-space-cannot-find-where
有人說是資料亂存(但發問者跟我一樣是把整個 data 資料夾 bind mount)
有人說是 swap 問題
Stack Overflow
Here's my docker compose file: version: '3.5' services: elasticsearch: restart: always build: context: elasticsearch/ args: ELK_VERSION: $ELK_VERSION volumes: ...
mrorz 13:11:42
總之我先照著做
mrorz 13:11:52
把 elasticsearch container restart 好了
mrorz 13:12:30
只是這樣我 backup 要重設哎
mrorz 13:20:28
API server 太干擾 debug 所以我先關掉了
現在全系統會無法使用
mrorz 13:35:21
現在應該恢復了
mrorz 13:36:42
但 elasticsearch DB 一直噴這個,每一秒會噴一兩次
```db_1 | [2020-03-09T05:34:52,969][WARN ][r.suppressed ] path: /_msearch, params: {}
db_1 | java.lang.IllegalStateException: No matching token for number_type [BIG_INTEGER]
db_1 | at org.elasticsearch.common.xcontent.json.JsonXContentParser.convertNumberType(JsonXContentParser.java:210) ~[elasticsearch-x-content-6.3.2.jar:6.3.2]
db_1 | at org.elasticsearch.common.xcontent.json.JsonXContentParser.numberType(JsonXContentParser.java:68) ~[elasticsearch-x-content-6.3.2.jar:6.3.2]
(下略很深的 stacok trace)```
奇怪了最近應該沒 deploy 什麼怪東西呀 @@
mrorz 13:36:53
我猜是因為他一直噴這個導致硬碟用光,因為 logrotate 來不及清
bil 13:40:04
還沒唷~~
QQ 我修
現在應該好了?
好了!!!!!你很棒!!!!!
bil 13:42:24
老闆同意囉3/14大松如果9點到到
mrorz 13:43:32
Replied to a thread: 2020-03-09 13:40:04
QQ 我修
mrorz 13:46:00
Replied to a thread: 2020-03-09 13:40:04
現在應該好了?
mrorz 13:46:45
現在是
```docker@debian:~/rumors-deploy$ df -H
Filesystem Size Used Avail Use% Mounted on
/dev/root 170G 58G 103G 36% /```
之後可以觀察一下他增長速度有多快
現在是
```/dev/root 170G 59G 102G 37% /```
但這要看晚上 hyperlinks 清掉之後會變多少
現在是這樣,看起來算 stable 噎
到底為什麼 storage 會爆噴⋯⋯
```root@debian:~# df -H
Filesystem Size Used Avail Use% Mounted on
/dev/root 170G 58G 103G 36% /```
```root@debian:/var/log/nginx# df -H
Filesystem Size Used Avail Use% Mounted on
/dev/root 170G 59G 102G 37% /```
似乎還算穩定
```root@debian:/var/log/nginx# df -H
Filesystem Size Used Avail Use% Mounted on
/dev/root 339G 60G 262G 19% /```
bil 13:52:44
好了!!!!!你很棒!!!!!
  • 👏1
ronnywang 14:03:36
問一下,cofacts 這邊有人有收到 NCC 通知這週四有一個會議關於新冠肺炎相關不實資訊議題的討論的嗎?
ronnywang 14:04:11
剛剛接到 NCC 的人打到我手機號碼 XD 我請他把相關資訊寄到 g0v-talks 了
ggm 15:42:16
我沒收到 XD
沒收到+1
喔出現了
mrorz 18:43:17
已登入使用者的 analytics (2020/3/5 之後有資料):
https://datastudio.google.com/u/0/reporting/18J8jZYumsoaCPBk9bdRd97GKvi_W5v-r/page/zJpHB

看起來已登入的編輯們,8 成的 session 用的是桌機,2 成是用手機,沒人用平板。螢幕解析度方面 1280, 1150 佔大宗
Google Data Studio
Google Data Studio turns your data into informative dashboards and reports that are easy to read, easy to share, and fully customizable.
mrorz 19:00:57
沒收到+1
mrorz 19:01:42
喔出現了
mrorz 23:40:03
現在是
```/dev/root 170G 59G 102G 37% /```
但這要看晚上 hyperlinks 清掉之後會變多少
2020-03-10
kiang 18:13:30
1754
  • 6
kiang 18:13:34
第一次看到臉書這個功能
2020-03-11
lucien 02:54:00
@mrorz @yanglin5689446 @stbb1025
主要 filter 與 sort 的細節都完成規劃,麻煩確認
https://www.figma.com/file/5qegqv1g0fxCYkzNz3jVA6/Wireframe-Need-to-Review-Page?node-id=0%3A1
Figma
Created with Figma
  • 👌1
  • 1
讚讚
我加了 comment 問問題囉
ok ok
今天晚上開會確認完接下來我會處理~
mrorz 09:36:04
讚讚
我加了 comment 問問題囉
stbb1025 10:10:13
ok ok
stbb1025 10:10:31
今天晚上開會確認完接下來我會處理~
  • 1
mrorz 10:51:40
4000 回報剛才網站進不去

Linode 報表顯示 9:40 ~ 10:05 的時候 server load 超載,原本 load 大概是 2~5 (>1 就是很忙了)
那段時間衝到 100
mrorz 10:52:14
89264417_188813405756354_2262530982747832320_n.png
louxu 11:16:27
@louxusian111 has joined the channel
mrorz 11:32:59
現在是這樣,看起來算 stable 噎
到底為什麼 storage 會爆噴⋯⋯
```root@debian:~# df -H
Filesystem Size Used Avail Use% Mounted on
/dev/root 170G 58G 103G 36% /```
mrorz 11:36:21
是說我如果想把 nginx log 弄到 data studio 有沒有什麼省錢的做法呀
現在 API + web 的 nginx raw access log 每兩天大概有 1.6G 這麼大

nginx access log ---> fluentd ---> Google bigquery ($$$) ---> Google Data Studio?
  • 💰3
有教學噎 https://cloud.google.com/solutions/real-time/fluentd-bigquery

但好像是在 gcp 上的。跟自己設定不太一樣,也不太懂為什麼要用到 treasure data
mrorz 11:48:15
有教學噎 https://cloud.google.com/solutions/real-time/fluentd-bigquery

但好像是在 gcp 上的。跟自己設定不太一樣,也不太懂為什麼要用到 treasure data
mrorz 12:47:20
Rumors-site 最近 release 比較頻繁,所以我開始寫 release note + 打 tag 囉,這樣以後要追 regression 比較方便。
https://github.com/cofacts/rumors-site/releases
GitHub
Rumors list / creation UI, with server-side rendering - cofacts/rumors-site
  • 👍2
frankwu.cheng.en 13:44:51
@frankwu.cheng.en has joined the channel
mrorz 15:02:12
@lucien 關於 https://g0v.hackmd.io/@NFi0czulSemxCM8RNSlz8Q/HJ8xT3QVU/%2FiJm9_nZaTA2GyInn7ycxoA 裡的「我的關注」

`articles` 裡面沒有記「誰送出過 reply request」只有記「誰送出過 article reply」
所以「我的關注」究竟是什麼呢
HackMD
Cofacts Next Spec ===== 全站導航 --- - [列表](/iJm9_nZaTA2GyInn7ycxoA) 各頁細節 --- - [可疑訊息](/ahtI6xsFR
這個要改 db
或是針對 replyrequests table 去 query userId
了解,就是做一個 `ListReplyRequest` API
但 query 就只能針對 `ReplyRequest` 的欄位,無法 search / filter by `articles` 的欄位
嗯嗯
lucien 15:05:13
這個要改 db
或是針對 replyrequests table 去 query userId
mrorz 15:09:48
了解,就是做一個 `ListReplyRequest` API
但 query 就只能針對 `ReplyRequest` 的欄位,無法 search / filter by `articles` 的欄位
lucien 15:10:13
嗯嗯
Sibce 16:31:29
@sibce002 has joined the channel
2020-03-12
mrorz 10:56:35
今天又 downtime
image.png
  • 😢1
對啊狂收到信 QQ 哭
我還沒調 linode size
凌晨調一下
Migrating Linode from 8GB plan to 16GB plan
mrorz 10:57:23
image.png
mrorz 10:57:32
image.png
mrorz 13:19:24
```root@debian:/var/log/nginx# df -H
Filesystem Size Used Avail Use% Mounted on
/dev/root 170G 59G 102G 37% /```
Ryu 13:56:51
@show7713 has joined the channel
ggm 14:06:43
對啊狂收到信 QQ 哭
icetzsr 14:23:49
@icetzsr has joined the channel
lexifdev 20:39:51
@sl has joined the channel
mrorz 22:36:13
我還沒調 linode size
凌晨調一下
mrorz 22:37:48
image.png
2020-03-13
mrorz 01:54:26
Replied to a thread: 2020-03-12 10:56:35
Migrating Linode from 8GB plan to 16GB plan
ggm 02:36:59
我想討論一下 `ArticleCategory` ,我們原本是想在裡面記 AI model 和 confidence 麻,但我覺得現在的設計,會有點怪,一個 `Article` 裡面的 `articleCategories` 會有重複 `categoryId` 的嗎?
ggm 02:38:22
我記得我們之前討論是,只會有一種 `categoryId` ,這樣就沒辦法相容不同的 AI model 不同的 confidence
mrorz 02:40:38
GitHub
完成 Cofacts crowd-source label mechanism API(含 unit test、DB migration)。 與 AI module 對接 AI 自動分類與 confidence level,在新文章送入時(CreateArticle API),取得 AI 自動分類,加進文章中。 修改現有 ListArticle 參數,支援 filter by categor...
ggm 02:40:57
恩恩我知道
mrorz 02:41:14
好像沒記到 lol
ggm 02:41:22
欸我想想該怎麼說
ggm 02:41:36
可能應該在另外一份會議紀錄 XDD
mrorz 02:41:47
不過確實 article - category 應該是 unique 的,一個 category 不應該要被加進 article 兩次
ggm 02:42:01
就是我們預計會有多個 AI model 但是在這個架構下,沒辦法同時上線很多個 AI Model
ggm 02:42:15
啊也不是這樣說
ggm 02:42:45
就是同時上線多個 AI model 也不會存下不同 AI model 對同篇文章的不同的 confidence
mrorz 02:43:47
你是說如果同時有兩個 model 超過 threshold 覺得要把這個 category 加進 article 嗎
mrorz 02:43:51
那看要不要 `articleCategories` 底下 `aiModel` , `aiConfidence` 改成 `ai = [{model: 'xxx', confidence: 'xxx'}]` 之類的
ggm 02:43:54
mrorz 02:43:56
我是覺得不太重要就是惹
ggm 02:44:16
所以我是覺得這裡記 confidence 好像意義不大
如果 confidence 在 borderline,UI 可以保留空間呈現說「AI 也不太確定是不是這個 category」,或許可以有些其它應用(例如說專門列出 confidence 在 borderline 的文章,人工進行 upvote / downvote之類)
有道理
或是 AI model 們其實會根據 classify 結果進行 upvote / downvote (欸)
AI model 們自己投票
結果很多 AI 就很多票
人要投票覆蓋還要烙人 (?)
mrorz 02:44:20
但是可以留個紀錄
ggm 02:44:27
然後我在想
ggm 02:44:34
我如果要保留那些紀錄 要留在哪裡
mrorz 02:44:34
可以留一些 ai debugging data
mrorz 02:45:05
或是直接另一個 index?
mrorz 02:45:16
紀錄的部分
我應該不會用來 query?
ggm 02:45:27
感覺是不會用來 query
ggm 02:45:29
是嗎
ggm 02:45:42
我會不會想知道 A-Model 所標的政治類的文章有哪些?
mrorz 02:45:43
使用者應該不會想要「選擇某個 AI model 判斷的 category」
ggm 02:46:08
使用者大概是不會想知道啦 不過開發者可能會 XDDD
mrorz 02:46:11
他應該甚至不會想管是人標的還是 AI 標的
只會想要知道「某 category 下的訊息有哪些」
mrorz 02:46:20
開發者撈 DB ㄅ
ggm 02:46:52
如果是這樣的話 那也不用放在 elasticsearch
mrorz 02:47:11
我是覺得可以另闢一個 index 放 AI 的 classify 結果,單純的 text log file 也可以
mrorz 02:47:41
article - category mapping 對於同一組 (article/category) 就只有一個
ggm 02:48:32
恩恩
mrorz 02:48:36
看是要一個 `ai[]`
還是要現有 `aiModel` + `aiConfidence` 然後選一個 confidence 最大的記
我覺得都可以
ggm 02:49:27
記大的好了 然後 AI model 可以自己蓋自己
mrorz 02:49:50
mrorz 02:50:04
Replied to a thread: 2020-03-13 02:44:16
如果 confidence 在 borderline,UI 可以保留空間呈現說「AI 也不太確定是不是這個 category」,或許可以有些其它應用(例如說專門列出 confidence 在 borderline 的文章,人工進行 upvote / downvote之類)
ggm 02:50:27
有道理
mrorz 02:51:05
Replied to a thread: 2020-03-13 02:44:16
或是 AI model 們其實會根據 classify 結果進行 upvote / downvote (欸)
ggm 02:51:24
AI model 們自己投票
mrorz 02:51:48
結果很多 AI 就很多票
人要投票覆蓋還要烙人 (?)
ggm 02:53:00
那存 AI Model 產出的 log 我再和@darkbtf 和政鴻討論要怎麼存好了
  • 1
mrorz 02:54:48
是說 @ggm 你們之前會把 server log (nginx, application 們) 用類似 fluentd / logstash 的東西蒐集到一個集中的地方(例如 elasticsearch),之後分析嗎
ggm 02:55:46
會啊 之前用 sentry 的樣子
mrorz 02:55:49
因為最近那些 downtime 讓我想要分析 nginx log
但有夠大,直接讀會眼花,希望有個像 new-relic / kibana 那種有時間 / log 數的 navigator
mrorz 02:56:12
sentry 是 error logging 呢
access log 放 sentry 應該超貴 XDDD
ggm 02:56:34
我們自己架的
mrorz 02:56:42
原來可以自架
ggm 02:56:53
嘿呀
mrorz 02:57:04
我在思考要不要 nginx, docker, etc ---> fluentd --> bigquery
這樣就能用 datastudio visualize
還能公開圖表在 `/analytics`
ggm 02:57:32
應該是可以吧
ggm 02:57:44
bigquery 應該不算貴(?
mrorz 03:00:07
覺得有幾個可以 visualize 的
• API body size, response time, traffic
• RSS 的 user agent (有些 RSS crawler 會在 user-agent string 帶有 subscriber count 唷很佛)
mrorz 10:50:46
Linode 在 2am 的時候 rescale 到 16GB plan 後,我讓 Elasticsearch 的 RAM 設定到 8GB (原本是 4GB)

看起來的效果是
1. Swap 降到 0,應該要有很不錯的 performance boost
2. CPU 4core -> 6core 但 % 下降一倍 (process 配置不變)
3. server load 微幅下降 (4 --> 2.5)
image.png
mrorz 10:59:39
其實我在想,與其月花 $80 在 16GB plan,應該改成開兩台
• 一台 4GB plan (2 CPU) $20 擺網站(cofacts.g0v.tw
• 一台 8GB plan (4 CPU) $40 擺 API、DB、URL resolver (cofacts-api.g0v.tw)
這樣是 $60/mo;website 那台可能還可以開更小 (2GB 1CPU 或 1GB 1CPU)
mrorz 11:00:44
因為不知道為什麼,Next.JS server-side render 很 CPU extensive,所以分開放是好事
risingmoon 16:01:37
@justindavidlee88 has joined the channel
Joy Chu 18:27:48
@joychu612 has joined the channel
Bency 22:12:45
@bency80097 has joined the channel
2020-03-14
오현 Ohyeon 07:53:58
@rest515072 has joined the channel
Kobe 10:12:37
@briandodo has joined the channel
ggm 10:18:36
欸對我在 tico 裡面 螢幕黑黑的那個
但我網路好像有點慢,我先關等等再加
喔喔原來是你 XDDD
對啊他不能顯示 id XD
我++了 先掛著
ggm 10:19:00
但我網路好像有點慢,我先關等等再加
mrorz 10:19:43
喔喔原來是你 XDDD
mrorz 10:19:56
tico.chat
The considerate messenger. Chat with whom you care about always at the best moments and times
ggm 10:31:45
對啊他不能顯示 id XD
cai 10:32:22
@iacmai has joined the channel
ggm 10:47:54
我++了 先掛著
TsungLinYeh 10:51:54
@nightcrow33 has joined the channel
ggm 10:55:21
我先看文件 XD 你們照顧新參者(?
整理好囉
欸等等有點模糊
聽不太清楚 XD
XDDD
等等老闆來
跟他反應 XDDDD
剛剛只聽到: ooxqwexqwe 資料表 qwieoqwex
好像這樣哈哈哈
討論 agenda 大概是

1. 資料表的欄位是否已經滿足需求
2. 資料庫要用什麼
打在這裡討論好了
對對
所以我的資料表等於是只有紀錄
articleId、userId

使用者在 LIFF 裡面顯示所謂的「問過的訊息列表」時,才去 API 即時拿 articleId 撈 article

順便更新 `lastRepliedAt`
恩恩
不過其實有個問題
就是 `lastRepliedAt` 應該是針對某個 `articleId`
但現在的設計下, `lastRepliedAt` 是用 denormalized 的方式存在各個 `UserArticleLink`

等於某個人瀏覽自己的 LIFF 之後,我要更新所有人的、該 `articleId` 的 `lastRepliedAt`

不過其實各種資料庫也做得到就是了
等噢我想一下
為什麼你要更新 `lastRepliedAt` ?
因為要追蹤是否有未讀

`lastViewedAt` > `lastRepliedAt` 代表這個 user 已經讀過了這個 article 的所有 reply,反之就是這個 user 沒讀過某些這個 article 的新回應
噢噢噢懂
`lastRepliedAt` 的更新時機是
使用者 view LIFF 或 cronjob 跑起來的時候檢視所有新 article reply 時
欸我釐清一下
「我希望 chatbot 可以列出我過去傳過的訊息以及回應的狀況」
「我希望 chatbot 在我傳過的訊息有新回應的時候可以通知我」
這兩個 `回應` 的狀況哪裡不同呀?
Afra 10:59:40
@always5smile has joined the channel
mrorz 10:59:46
整理好囉
ggm 10:59:59
ok
Afra 11:00:08
我線上會議室進去只有兩個框框,是因為沒有授與麥克風跟鏡頭權限嗎?
bil 11:00:29
你看到哪兩個框框呢,框框上寫什麼
Afra 11:01:55
什麼也沒寫,哈等等截個圖
ggm 11:01:58
欸等等有點模糊
ggm 11:02:03
聽不太清楚 XD
ggm 11:02:06
mrorz 11:02:14
XDDD
mrorz 11:02:26
等等老闆來
跟他反應 XDDDD
ggm 11:02:29
剛剛只聽到: ooxqwexqwe 資料表 qwieoqwex
ggm 11:02:32
好像這樣哈哈哈
mrorz 11:02:45
討論 agenda 大概是

1. 資料表的欄位是否已經滿足需求
2. 資料庫要用什麼
ggm 11:03:03
Afra 11:03:04
我按不允許,然後就再也沒有其他顯示了
螢幕快照 2020-03-14 上午11.02.07.png
ggm 11:03:56
噢噢 @always5smile 你要按下允許才會出現那兩個框
ggm 11:04:13
你可以按下允許之後,再按攝影機把自己關掉
Afra 11:04:21
好喔~~
mrorz 11:04:57
請問 @always5smile 想要參與闢謠還是寫程式的討論呢
我們這裡有做個分流
https://intro.g0v.ronny.tw/meet/channel/g0v-hackath38n/15 這裡現在有人了 XD

程式的部分(tico)發現聲音很模糊所以變成打字松 (?
Afra Zhao
我按不允許,然後就再也沒有其他顯示了
ggm 11:05:14
其實這是我們朋友做的產品 我們順便幫忙測試 XDD 我會幫你回報這個問題哈哈
Afra 11:05:19
穴穴~~我進去會議聽惹
mrorz 11:05:37
對,現在 tico 裡沒人在說話
因為剛才有點崩潰 (?
mrorz 11:05:45
但有畫面 XDD
ggm 11:05:48
大家都是黑視窗哈哈
gary96302000.eecs96 11:07:33
@gary96302000.eecs96 has joined the channel
  • 👍1
ggm 11:08:47
打在這裡討論好了
mrorz 11:08:55
對對
mrorz 11:10:52
所以我的資料表等於是只有紀錄
articleId、userId

使用者在 LIFF 裡面顯示所謂的「問過的訊息列表」時,才去 API 即時拿 articleId 撈 article

順便更新 `lastRepliedAt`
ggm 11:12:46
恩恩
mrorz 11:12:48
不過其實有個問題
就是 `lastRepliedAt` 應該是針對某個 `articleId`
但現在的設計下, `lastRepliedAt` 是用 denormalized 的方式存在各個 `UserArticleLink`

等於某個人瀏覽自己的 LIFF 之後,我要更新所有人的、該 `articleId` 的 `lastRepliedAt`

不過其實各種資料庫也做得到就是了
ggm 11:13:41
等噢我想一下
ggm 11:13:54
為什麼你要更新 `lastRepliedAt` ?
Danny Lin 11:15:52
@danny0838 has joined the channel
mrorz 11:16:26
@always5smile @gary96302000.eecs96@danny0838 歡迎歡迎

這裡有寫闢謠與程式的需求唷
有任何問題都可以在 slack 發問~~
https://intro.g0v.ronny.tw/meet/channel/g0v-hackath38n/15
  • 👍1
mrorz 11:18:22
因為要追蹤是否有未讀

`lastViewedAt` > `lastRepliedAt` 代表這個 user 已經讀過了這個 article 的所有 reply,反之就是這個 user 沒讀過某些這個 article 的新回應
Afra 11:20:49
嗯~~我之前有爬過共筆,依我的能力應該只能當個廢物小編XDDD
Afra 11:21:04
可是還不是很會用~~想說今天會聽到使用教學之類的嗎?
ggm 11:21:07
噢噢噢懂
bil 11:21:29
有喔有喔
bil 11:21:31
嗨嗨嗨
bil 11:21:38
最廢就是我
gary96302000.eecs96 11:22:07
Hihi 大家好 我是剛剛 @ggm 跟我說才知道有這邊的討論頻道的振鴻~
哈哈拍謝我雷了 今天大松我才想起來你可能沒加進來
mrorz 11:22:48
`lastRepliedAt` 的更新時機是
使用者 view LIFF 或 cronjob 跑起來的時候檢視所有新 article reply 時
bil 11:23:03
那那那@always5smile 如果願意聽聲音的話請來來我們來聊聊天XDD
ggm 11:23:34
哈哈拍謝我雷了 今天大松我才想起來你可能沒加進來
  • 🙇1
Afra 11:23:39
!!我剛剛進去一陣子了
Afra 11:23:55
不過都沒有什麼聲音,然後我又退出來了
Afra 11:24:00
😭
mrorz 11:24:18
虛擬會議室好難掌握人 QQ
ggm 11:24:35
我覺得換個 hangout ?至少關鏡頭的時候可以顯示誰是誰?
mrorz 11:24:51
只有 tico 不顯示
哭哭
對啊我就是說 tico 哈哈
mglee 11:24:52
hihi 似乎因為我在美國所以上不了線上會議室,不知道上面在聊什麼~ 如果沒有特殊任務,我今天的目標是闢五個謠,然後就去陪女兒睡了 😆
  • ❤️2
  • 👶3
不妨試試這個:
https://cofacts.g0v.tw/article/t8law5e98ru5
美國人終於承認了,讓人倒吸一口涼氣
https://cofacts.g0v.tw/article/32zrlo5hx029w
美國的一般醫療口罩尚不缺貨,上網隨時都可以買到,不必散佈錯誤訊息!
https://cofacts.g0v.tw/article/2xdwrm8n0ph4t
美華裔女醫生自行檢測新冠 竟被聯邦壓制6周
查了一下
來源都是中國農場呢
https://cofacts.g0v.tw/article/mqaqi73spr16
美國常春藤大學至3/15全校淨空,停課到八月,線上教學。避免年紀大的諾貝爾文學獎教授被感染!波士頓機場關閉!
全市所有超市生活用品被搶購一空!這些消息在報紙不會刊登
https://cofacts.g0v.tw/article/13g95ug4kstcz
美國吃素的嗎?
美籍华人医生:美国是不是要完蛋了?
(為什麼中國這麼喜歡產出美國的文章)XDDD
抱歉我被女兒抓走,弄一半
“「源頭在哪裡,是中國疫情爆發後才傳播到美國,還是美國本身就有,並開始傳播?」的部分含有無法查證的陰謀論。首先 2019-20 流感季尚未結束,目前 CDC 統計仍只有預估值。聽證會上CDC主任表示,死於流感的人若有嚴重肺炎,部分會再做肺炎檢測,的確發現有武漢肺炎的案例,但由此推論死於流感的人許多都有武漢肺炎是過度延伸猜測。作者試圖要從這些討論,來證明病毒不是發源自中國武漢,這點與目前的主流的討論相違背。時至今日,病毒的起源仍未知。
先存在這
查了四篇,太累了~先來睡~ 大家晚安/午安。
btw 關於「美華裔女醫生自行檢測新冠 竟被聯邦壓制6周」我好像曾經在 new york times 的 podcast 上聽過這個故事,明天再來找找
感~謝~~~mgleeeeeeeee❤️
晚安晚安
mrorz 11:25:30
只有 tico 不顯示
哭哭
bil 11:25:40
不妨試試這個:
https://cofacts.g0v.tw/article/t8law5e98ru5
美國人終於承認了,讓人倒吸一口涼氣
  • 🤣1
  • 🇺🇸2
ggm 11:26:18
欸我釐清一下
ggm 11:26:28
「我希望 chatbot 可以列出我過去傳過的訊息以及回應的狀況」
「我希望 chatbot 在我傳過的訊息有新回應的時候可以通知我」
ggm 11:26:35
這兩個 `回應` 的狀況哪裡不同呀?
ggm 11:26:57
對啊我就是說 tico 哈哈
bil 11:29:52
https://cofacts.g0v.tw/article/32zrlo5hx029w
美國的一般醫療口罩尚不缺貨,上網隨時都可以買到,不必散佈錯誤訊息!
bil 11:34:10
https://cofacts.g0v.tw/article/2xdwrm8n0ph4t
美華裔女醫生自行檢測新冠 竟被聯邦壓制6周
mrorz 11:43:10
查了一下
來源都是中國農場呢
bil 11:46:23
https://cofacts.g0v.tw/article/mqaqi73spr16
美國常春藤大學至3/15全校淨空,停課到八月,線上教學。避免年紀大的諾貝爾文學獎教授被感染!波士頓機場關閉!
全市所有超市生活用品被搶購一空!這些消息在報紙不會刊登
Stimim 11:49:33
@death1048576 has joined the channel
  • 👍1
  • 🦒1
bil 11:50:53
https://cofacts.g0v.tw/article/13g95ug4kstcz
美國吃素的嗎?
美籍华人医生:美国是不是要完蛋了?
(為什麼中國這麼喜歡產出美國的文章)XDDD
mrorz 12:02:26
@darkbtf 你會來吃午餐ㄇ
mrorz 12:02:30
workis
littlefish0331 12:04:19
@littlefish0331 has joined the channel
ggm 12:04:46
我去吃午餐ㄅ
mrorz 12:05:26
okok
mglee 12:10:27
抱歉我被女兒抓走,弄一半
“「源頭在哪裡,是中國疫情爆發後才傳播到美國,還是美國本身就有,並開始傳播?」的部分含有無法查證的陰謀論。首先 2019-20 流感季尚未結束,目前 CDC 統計仍只有預估值。聽證會上CDC主任表示,死於流感的人若有嚴重肺炎,部分會再做肺炎檢測,的確發現有武漢肺炎的案例,但由此推論死於流感的人許多都有武漢肺炎是過度延伸猜測。作者試圖要從這些討論,來證明病毒不是發源自中國武漢,這點與目前的主流的討論相違背。時至今日,病毒的起源仍未知。
  • 1
mglee 12:10:33
先存在這
  • 2
  • ❤️1
  • 🦒1
bil 12:15:56
要訂午餐了喔
bil 12:16:01
有沒有人會來一起吃~~
darkbtf 12:19:05
我要
darkbtf 12:19:10
來得及嗎
bil 12:23:40
蝴蝶想吃什麼~~~
bil 12:23:42
來得及
bil 12:23:45
來來
mrorz 12:24:04
我正要去全家
Stimim 12:26:13
dev server 跑不起來 Orz 一直轉圈圈
`[ wait ] starting the development server ...`
`[ info ] waiting on http://localhost:3000 ...`
`> Using external babel configuration`
`> Location: "/Users/stimim/cofact/rumors-site/.babelrc.js"`
`[ event ] build page: /next/dist/pages/_error`
`[ event ] build page: /next/dist/pages/_error`
`.env.sample` --> `.env`
thanks, let me try again
\o/ 成功了
又卡關了,改東西重新整理好像沒反應 XDD
只是改文字而已:
*`diff --git a/components/ArticleInfo.js b/components/ArticleInfo.js`*
*`index 319a953..baaaa25 100644`*
*`--- a/components/ArticleInfo.js`*
*`+++ b/components/ArticleInfo.js`*
`*@@ -17,7 +17,7 @@* export default function ArticleInfo({ article }) {`
    `)}`
    `{article.replyCount > 0 ? (`
     `<span>`
*`-     ・`*
*`+     ・XXX ・XXX`*
      `{ngettext(`
       `msgid`${replyCount} response`,`
我看看
`npm run dev` 嗎
yes
那你的瀏覽器開在哪一頁呢
應該是對的 component 吧 😓
他是右上角的 component
Reported Message 右邊
對呀
2 occurences・6 months ago
沒有跟著改
有需要跑其他指令觸發編譯嗎?
不用
跑 npm run dev 的 CLI 有說 compile error 嗎
咦,更新了 Orz 真怪
喔喔
可能他
在吃飯 (?
XDD
Stimim 12:26:37
`[ wait ] starting the development server ...`
`[ info ] waiting on http://localhost:3000 ...`
`> Using external babel configuration`
`> Location: "/Users/stimim/cofact/rumors-site/.babelrc.js"`
`[ event ] build page: /next/dist/pages/_error`
`[ event ] build page: /next/dist/pages/_error`
mrorz 12:28:18
`.env.sample` --> `.env`
Stimim 12:29:12
thanks, let me try again
Stimim 12:30:00
\o/ 成功了
  • 1
darkbtf 12:30:29
都可以喔
沒看到 QQ
我要先回去等外送
還是 @bil 幫我接外送呢
她說可
好那我繼續買
darkbtf 12:30:39
一樣的買一買就好xD
bil 12:31:12
你跟orz說,他去外面採買了,我在看工作室XDDD
黃牛山人 12:32:47
@edmond has joined the channel
mrorz 12:42:58
Replied to a thread: 2020-03-14 12:30:29
沒看到 QQ
我要先回去等外送
darkbtf 12:43:29
沒差 XD 我等等自己處理也可以
mrorz 12:43:33
還是 @bil 幫我接外送呢
darkbtf 12:44:05
她說可
mrorz 12:44:52
好那我繼續買
Stimim 13:04:48
又卡關了,改東西重新整理好像沒反應 XDD
Stimim 13:05:37
只是改文字而已:
Stimim 13:05:59
*`diff --git a/components/ArticleInfo.js b/components/ArticleInfo.js`*
*`index 319a953..baaaa25 100644`*
*`--- a/components/ArticleInfo.js`*
*`+++ b/components/ArticleInfo.js`*
`*@@ -17,7 +17,7 @@* export default function ArticleInfo({ article }) {`
    `)}`
    `{article.replyCount > 0 ? (`
     `<span>`
*`-     ・`*
*`+     ・XXX ・XXX`*
      `{ngettext(`
       `msgid`${replyCount} response`,`
mrorz 13:06:28
我看看
mrorz 13:06:45
`npm run dev` 嗎
Stimim 13:06:50
yes
mrorz 13:07:28
那你的瀏覽器開在哪一頁呢
Stimim 13:08:06
應該是對的 component 吧 😓
mrorz 13:08:48
他是右上角的 component
mrorz 13:08:57
Reported Message 右邊
Stimim 13:09:05
對呀
Stimim 13:09:06
2 occurences・6 months ago
Stimim 13:09:15
沒有跟著改
Stimim 13:09:40
有需要跑其他指令觸發編譯嗎?
mrorz 13:10:03
不用
跑 npm run dev 的 CLI 有說 compile error 嗎
mrorz 13:10:31
請投影一下螢幕到 https://intro.g0v.ronny.tw/meet/channel/g0v-hackath38n/15 我看看如何
Stimim 13:10:41
咦,更新了 Orz 真怪
mrorz 13:10:46
喔喔
mrorz 13:10:53
可能他
在吃飯 (?
  • 😆1
Stimim 13:10:58
XDD
mglee 13:50:34
查了四篇,太累了~先來睡~ 大家晚安/午安。
btw 關於「美華裔女醫生自行檢測新冠 竟被聯邦壓制6周」我好像曾經在 new york times 的 podcast 上聽過這個故事,明天再來找找
bil 13:52:36
感~謝~~~mgleeeeeeeee❤️
bil 13:52:42
晚安晚安
bil 13:53:08
感謝@mglee 來自美國的溫暖解決關於美國的困擾~~~~晚安晚安
bil 13:55:05
@
Image from iOS
  • 🍺7
  • 😂3
Stimim 14:43:46
請問 CreateReplyRequest 定義在哪邊呢?我在 rumors-site 資料夾下面沒有找到
但如果要看文件
可以在這裡,右邊 schema 打開來
https://cofacts-api.hacktabl.org/graphql
```mutation {
CreateOrUpdateReplyRequest(
articleId: "n2zng98vqlcz"
reason: "Hello World!"
) {
id
}
}```
他會抱怨 userId 沒給,可是沒有這個 argument 呀
可是他會抱怨 invalid hook call
好像成功了?按鈕按下去會叫我登入
@death1048576 抱歉忘記說
你要先在 localhost 按登入
會被 redirect 到 staging site ( cofacts.hackfoldr.org )
可是這樣我回 localhost 還能測嗎?
你再回到 localhost,右上角應該是登入狀態
因為 localhost 打 staging API 的時候會吃到 login cookie~
沒有耶,右上角會變回 Login 按鈕
我只要跑 npm run dev 就好對不對?登入選哪一個有差嗎?
> 只要跑 npm run dev 就好對不對?


> 登入選哪一個有差嗎?
理論上沒差

不過我想確認一下
你看 cofacts.hackfoldr.org 右上角是登入狀況嗎
理論上 cofacts.hackfoldr.org 的登入狀況應該要跟 localhost 共用
誒,我是被導向到 https://cofacts.hacktabl.org/ ,我檢查一下設定
登入後的確會被導向到 https://cofacts.hacktabl.org/

因為 oauth redirect 是指向 staging site 無誤
但 oauth login 應該會把 login session 正確設在 staging API https://cofacts-api.hacktabl.org/

所以 localhost 打 cofacts-api.hacktabl.org 應該也要是登入狀況才對~
我在 https://cofacts-api.hacktabl.org/ 開 dev console 看是有 cookie 的
可以確認有沒有登入嗎?
1. 點開 Settings,找到 `request.credentials` 把 `omit` 改成 `include`
2. 回到 query 用的 tab,使用下面 query 測試登入狀況

```{
GetUser {
id
email
}
}```
應該會出現你在 Cofacts staging site 的 id 與 email~
hmm, id 和 email 都有東西
Hmmmm
所以問題應該是 localhost:3000 沒拿到那個 cookie?
會是瀏覽器的問題嗎?

Google chrome 應該有
像這樣,右上角要有登入
對了,一開始載入的時候是無登入狀態,要等幾秒才會登入
這是正常現象唷

因為登入要靠 API server 網域下的 browser cookie,SSR 時拿不到這個 cookie
看起來是 Chrome 擋掉了,我看看能不能關
```A cookie associated with a cross-site resource at http://cofacts-api.hacktabl.org/ was set without the `SameSite` attribute. It has been blocked, as Chrome now only delivers cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.```
原來是新的 SameSite cookie
好像不能關 =.=|||
但我的也是 Chrome 80
sarfari 就可以
我的是 80
怎麼這樣... 我的也是 80.0.3987.132 (Official Build) (64-bit)
好吧, safari 算是成功了
不過 UX 很爛,不會自動更新
自動更新嗎
就是按下去之後其實 query 發出去也做完了,不過 UI 沒反應
我看一下其他頁面怎麼做的
你可以先在 `useMutation` 加上 `refetchQueries: ['LoadArticlePage']`
無腦重 load
搭配 `awaitRefetchQueries: true`
可以讓 `useMutation` 回傳的 `loading` 在整個 refetch 也結束之後才變回 false
先暴力 reload XD
我在思考我要怎麼重現被 samesite 擋住這件事情
這我們可能要開張票處理 @@
我現在命名是 AddReportReason ,好像應該改成 CreateReplyRequestForm ?
你說 ticket 嗎?
要不要試試看把 cookie 清掉,不過可能清掉之後就 GG 了
CreateReplyRequestForm 可以唷

雖然我覺得整個 Dialog 一個 component 應該就行,所以如果把 Dialog 也一起包進去,可以用 Dialog 結尾
或是你如果在 staging server 換登入帳號,看 localhost 會不會換帳號
@death1048576 是說 cofacts.hacktabl.org (staging 網站)與 cofacts-api.hacktabl.org (staging API + auth)也是 cross-site

如果 localhost 與 api 會有問題,理論上 staging web 與 staging api 也會有問題才對 @@
hmm, 不懂,可能要仔細看一下 SameSite 的定義
Hey 我想我知道原因了
@death1048576
```A cookie associated with a cross-site resource at http://cofacts-api.hacktabl.org/ was set without the `SameSite` attribute.```
應該要是 `https://cofacts-api.hacktabl.org` 才對
無 SSL 可能會炸
你的 `.env` 裡的 `PUBLIC_API_URL` 是 http 還是 https 呢
https 喔
神秘,因為你上面貼的 error message 是寫
> A cookie associated with a cross-site resource at http://cofacts-api.hacktabl.org/ was set without the `SameSite` attribute. It has been blocked, as Chrome now only delivers cookies with cross-site requests if they are set with `SameSite=None` and `Secure`.
所以他在某個地方打算送 http:// 下的 cookie
mrorz 14:44:28
但如果要看文件
mrorz 14:44:56
可以在這裡,右邊 schema 打開來
https://cofacts-api.hacktabl.org/graphql
  • 👍1
mrorz 15:35:08
關於「推播新回應」的討論 w/ @ggm @acerxp511
https://g0v.hackmd.io/eIeU2g86Tfu5VnLazNfUvQ
有鑒於有時會有很瞎的回應,這種很瞎的東西推出去不太好,所以需要討論什麼樣的回應可以被拿來推播。

目前「可以被拿來推播」的回應的定義有:
• 過審閱期:articleReply 建立時間超過 12hr — 目前 @mrorz 有用 RSS 訂閱新回應列表,看到很瞎的會自己回,但有時候會漏接囧。回應真的好多。理論上推播前審閱期設得越長,越有補正回應的機會,但時效性也越差。
• 人工審閱:有使用者已經給予 positive feedback。
可以討論的是
被拿來推播的回應應該要 `過審閱期 且 人工審閱` 還是 `過審閱期 或 人工審閱` 或乾脆是 `過審閱期就推` 或乾脆是 `人工審越過就推`
我是建議 `過審閱期 且 人工審閱` 才推送
我因為有 RSS 訂閱回應列表而且有努力按「覺得有用」,我覺得這些回應出去,我是放心的。
但沒看到的我就會有點怕怕,希望別人有按過「覺得有用」再出去
只是這樣的話,資料表要怎麼儲存「人工審閱過」比較好呢
一種做法是 `lastRepliedAt` 只紀錄「有 positive feedback」的
i.e. 紀錄 `lastPositiveFeedbackRepliedAt`
另一種是
⋯⋯我想不到 囧
還是我們就改成紀錄 `lastPositiveFeedbackRepliedAt` ?
欸如果
+1 之後再 -1 會怎樣 XD
或許就濾掉 (?
所以有些回應就不會推出去
直到在 cronjob 執行時,有 feedback 總和為正的那些
mrorz 15:40:02
Replied to a thread: 2020-03-14 15:35:08
有鑒於有時會有很瞎的回應,這種很瞎的東西推出去不太好,所以需要討論什麼樣的回應可以被拿來推播。

目前「可以被拿來推播」的回應的定義有:
• 過審閱期:articleReply 建立時間超過 12hr — 目前 @mrorz 有用 RSS 訂閱新回應列表,看到很瞎的會自己回,但有時候會漏接囧。回應真的好多。理論上推播前審閱期設得越長,越有補正回應的機會,但時效性也越差。
• 人工審閱:有使用者已經給予 positive feedback。
tw0517tw 15:41:01
紐約時報中文網
在疫情相對容易控制的暴發初期,由於現行的監管和繁瑣程序,聯邦政府沒有快速進行全國範圍的病毒測試。持續的延誤更使官員們無法了解真實的疫情規模,危機急劇惡化。
The New York Times
A series of missed chances by the federal government to ensure more widespread testing came during the early days of the outbreak, when containment would have been easier.
mrorz 15:43:18
可以討論的是
被拿來推播的回應應該要 `過審閱期 且 人工審閱` 還是 `過審閱期 或 人工審閱` 或乾脆是 `過審閱期就推` 或乾脆是 `人工審越過就推`
mrorz 15:44:30
Replied to a thread: 2020-03-14 15:35:08
我是建議 `過審閱期 且 人工審閱` 才推送
我因為有 RSS 訂閱回應列表而且有努力按「覺得有用」,我覺得這些回應出去,我是放心的。
但沒看到的我就會有點怕怕,希望別人有按過「覺得有用」再出去
  • 3
  • 💯2
mrorz 15:47:48
只是這樣的話,資料表要怎麼儲存「人工審閱過」比較好呢
mrorz 15:48:09
一種做法是 `lastRepliedAt` 只紀錄「有 positive feedback」的
mrorz 15:48:44
i.e. 紀錄 `lastPositiveFeedbackRepliedAt`
mrorz 15:48:54
另一種是
⋯⋯我想不到 囧
mrorz 15:52:21
還是我們就改成紀錄 `lastPositiveFeedbackRepliedAt` ?
  • 👌1
Stimim 15:52:50
```mutation {
CreateOrUpdateReplyRequest(
articleId: "n2zng98vqlcz"
reason: "Hello World!"
) {
id
}
}```
Stimim 15:53:02
他會抱怨 userId 沒給,可是沒有這個 argument 呀
ggm 15:56:27
欸如果
ggm 15:56:36
+1 之後再 -1 會怎樣 XD
Stimim 15:59:34
GitHub
Rumors list / creation UI, with server-side rendering - Stimim/rumors-site
Stimim 15:59:48
可是他會抱怨 invalid hook call
ichieh 16:11:45
成果報告要準備收單~~~ 如果要報名可以先填上發表者 slack id
HackMD
g0v 首次線上百人黑客松,運用 youtube+meetjitsi+slack+hackMD+github,讓 g0v 協作工具,效用發揮到極致,讓您在家也能參加黑客松。
Stimim 16:18:49
好像成功了?按鈕按下去會叫我登入
bil 16:19:04
報了~~感謝感謝
  • ❤️2
tsuifei 16:21:04
@tsuifei has joined the channel
darkbtf 16:36:50
facebook.com
【巴拉刈】 「巴拉刈」英語號做 Paraquat,台語講 pa-la-kuah,最近新聞定定聽著「ㄅㄚ ㄌㄚ ㄧˋ」,聽著實在誠礙虐... 另外,其實「巴拉刈」和「巴拉松」(Parathion)是無仝款个物件~ 濁水溪公社个〈農村出代誌〉歌詞:「啉著巴拉松,你就哭攏哭袂出。」內底唱的就是「巴拉松」,以前攏會將這兩種舞袂清楚。...
mrorz 16:42:15
@death1048576 抱歉忘記說
你要先在 localhost 按登入
會被 redirect 到 staging site ( cofacts.hackfoldr.org )
Stimim 16:42:43
可是這樣我回 localhost 還能測嗎?
mrorz 16:43:00
你再回到 localhost,右上角應該是登入狀態
mrorz 16:43:16
因為 localhost 打 staging API 的時候會吃到 login cookie~
Stimim 16:44:20
沒有耶,右上角會變回 Login 按鈕
Stimim 16:45:25
我只要跑 npm run dev 就好對不對?登入選哪一個有差嗎?
mrorz 16:46:26
或許就濾掉 (?
ggm 16:47:05
我來把 157 , 159 併起來好了,原本是想 Category , ArticleCategory, Article 這樣拆,但發現這樣拆好像也不好分
好哇這樣應該也比較好 review
感謝感謝
也就是變成 Category 和 Article (query 和 mutation )這樣
mrorz 16:47:15
所以有些回應就不會推出去
直到在 cronjob 執行時,有 feedback 總和為正的那些
mrorz 16:47:34
好哇這樣應該也比較好 review
感謝感謝
ggm 16:48:05
也就是變成 Category 和 Article (query 和 mutation )這樣
mrorz 16:51:05
> 只要跑 npm run dev 就好對不對?


> 登入選哪一個有差嗎?
理論上沒差

不過我想確認一下
你看 cofacts.hackfoldr.org 右上角是登入狀況嗎
mrorz 16:51:27
理論上 cofacts.hackfoldr.org 的登入狀況應該要跟 localhost 共用
Stimim 16:53:00
誒,我是被導向到 https://cofacts.hacktabl.org/ ,我檢查一下設定
cofacts.hacktabl.org
Cofacts is a collaborative system connecting instant messages and fact-check reports or different opinions together. It’s a grass-root effort fighting mis/disinformation in Taiwan.
mrorz 16:53:59
登入後的確會被導向到 https://cofacts.hacktabl.org/

因為 oauth redirect 是指向 staging site 無誤
mrorz 16:54:44
但 oauth login 應該會把 login session 正確設在 staging API https://cofacts-api.hacktabl.org/

所以 localhost 打 cofacts-api.hacktabl.org 應該也要是登入狀況才對~
mrorz 16:54:55
Stimim 16:56:07
我在 https://cofacts-api.hacktabl.org/ 開 dev console 看是有 cookie 的
Stimim 16:56:12
可以確認有沒有登入嗎?
mrorz 16:58:06
1. 點開 Settings,找到 `request.credentials` 把 `omit` 改成 `include`
mrorz 16:58:32
2. 回到 query 用的 tab,使用下面 query 測試登入狀況

```{
GetUser {
id
email
}
}```
mrorz 16:58:41
應該會出現你在 Cofacts staging site 的 id 與 email~
Stimim 16:59:26
hmm, id 和 email 都有東西
mrorz 17:00:08
Hmmmm
Stimim 17:00:24
所以問題應該是 localhost:3000 沒拿到那個 cookie?
Stimim 17:00:34
會是瀏覽器的問題嗎?
mrorz 17:00:46

Google chrome 應該有
mrorz 17:05:28
像這樣,右上角要有登入
image.png
mrorz 17:11:45
對了,一開始載入的時候是無登入狀態,要等幾秒才會登入
這是正常現象唷

因為登入要靠 API server 網域下的 browser cookie,SSR 時拿不到這個 cookie
Stimim 17:12:52
看起來是 Chrome 擋掉了,我看看能不能關
Stimim 17:13:19
```A cookie associated with a cross-site resource at http://cofacts-api.hacktabl.org/ was set without the `SameSite` attribute. It has been blocked, as Chrome now only delivers cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.```
mrorz 17:17:56
原來是新的 SameSite cookie
Stimim 17:18:12
好像不能關 =.=|||
mrorz 17:19:13
但我的也是 Chrome 80
Stimim 17:19:54
sarfari 就可以
mrorz 17:23:09
我的是 80
image.png
Stimim 17:24:34
怎麼這樣... 我的也是 80.0.3987.132 (Official Build) (64-bit)
Stimim 17:28:26
好吧, safari 算是成功了
Stimim 17:28:40
不過 UX 很爛,不會自動更新
mrorz 17:32:05
自動更新嗎
Stimim 17:32:47
就是按下去之後其實 query 發出去也做完了,不過 UI 沒反應
Stimim 17:32:55
我看一下其他頁面怎麼做的
mrorz 17:33:52
你可以先在 `useMutation` 加上 `refetchQueries: ['LoadArticlePage']`
mrorz 17:34:28
無腦重 load
mrorz 17:34:57
Apollo GraphQL Docs
Learn how to update data with the useMutation hook
mrorz 17:36:30
搭配 `awaitRefetchQueries: true`
可以讓 `useMutation` 回傳的 `loading` 在整個 refetch 也結束之後才變回 false
Stimim 17:38:08
先暴力 reload XD
mrorz 17:40:47
我在思考我要怎麼重現被 samesite 擋住這件事情
mrorz 17:40:56
這我們可能要開張票處理 @@
Stimim 17:41:10
我現在命名是 AddReportReason ,好像應該改成 CreateReplyRequestForm ?
Stimim 17:41:15
你說 ticket 嗎?
Stimim 17:41:47
要不要試試看把 cookie 清掉,不過可能清掉之後就 GG 了
mrorz 17:42:01
Replied to a thread: 2020-03-14 14:43:46
CreateReplyRequestForm 可以唷

雖然我覺得整個 Dialog 一個 component 應該就行,所以如果把 Dialog 也一起包進去,可以用 Dialog 結尾
Stimim 17:42:40
或是你如果在 staging server 換登入帳號,看 localhost 會不會換帳號
mrorz 17:44:18
Replied to a thread: 2020-03-14 14:43:46
@death1048576 是說 cofacts.hacktabl.org (staging 網站)與 cofacts-api.hacktabl.org (staging API + auth)也是 cross-site

如果 localhost 與 api 會有問題,理論上 staging web 與 staging api 也會有問題才對 @@
Stimim 17:45:58
hmm, 不懂,可能要仔細看一下 SameSite 的定義
mrorz 17:48:19
Hey 我想我知道原因了
mrorz 17:49:00
@death1048576
```A cookie associated with a cross-site resource at http://cofacts-api.hacktabl.org/ was set without the `SameSite` attribute.```
應該要是 `https://cofacts-api.hacktabl.org` 才對
mrorz 17:49:13
無 SSL 可能會炸
mrorz 17:51:30
你的 `.env` 裡的 `PUBLIC_API_URL` 是 http 還是 https 呢
Stimim 17:52:43
https 喔
mrorz 18:04:11
神秘,因為你上面貼的 error message 是寫
> A cookie associated with a cross-site resource at http://cofacts-api.hacktabl.org/ was set without the `SameSite` attribute. It has been blocked, as Chrome now only delivers cookies with cross-site requests if they are set with `SameSite=None` and `Secure`.
所以他在某個地方打算送 http:// 下的 cookie
lucien 18:53:17
g0v.hackmd.io
Figma
Created with Figma
有個 badge 很顯眼很酷噎
使用者會期待

在「等你來答」裡面回應訊息之後,那一則訊息就從「等你來答」消失,且數字因此降低這件事情嗎?
但是也會跟著增加吧
如果有新謠言進來的話
只是有 badge 之後,就是使用者會「想要去消 badge」
會嗎
會吧
mrorz 18:56:38
有個 badge 很顯眼很酷噎
mrorz 19:03:18
使用者會期待

在「等你來答」裡面回應訊息之後,那一則訊息就從「等你來答」消失,且數字因此降低這件事情嗎?
lucien 19:05:28
@stbb1025 幾個icon 形狀給你參考
截圖 2020-03-14 下午7.04.43.png
  • 2
  • ❤️1
lucien 19:05:46
但是也會跟著增加吧
lucien 19:06:05
如果有新謠言進來的話
mrorz 19:06:10
mrorz 19:06:32
只是有 badge 之後,就是使用者會「想要去消 badge」
mrorz 19:06:38
會嗎
lucien 19:06:42
會吧
mrorz 20:21:42
ifttt.com
傳送 Cofacts 更新到 LINE
2020-03-15
lucien 02:22:52
@mrorz
篩選排序定義抽出整理在這裡,查核爭議的過濾 ES 定義需要你 review
https://g0v.hackmd.io/wJSQCszLSGCy0f5B96td0w?both
  • 1
mglee 09:42:14
不知道可以請教這個嗎~
正在看 Cofacts 的 analytics,赫然發現若以過去一個月 (2/13-3/13) 來看,在 Line 上使用 Cofacts 查證的有 29,801 (forwarded msg),但上 Cofacts 網站查訊息的有 647,124 (users) 人次,後者是前者的二十倍!?是我誤讀了這個資訊,還是一直以來 Cofacts 真正發揮功效的是在網路上?
網站造訪人次確實比 LINE 使用者很多沒錯~

從 website analytics 下面的分析可以看出,大部分的造訪 session 都是發生在 mobile、且是透過 organic search 進站;也就是說,很多都是在搜尋引擎找謠言,然後進到網站的單一訊息頁面。

不過這很可能只是因為可以被搜尋引擎搜尋到的網頁,可見度本來就比 LINE 大很多;況且,我們的 LINE bot analytics 也無法計算到美玉姨、趨勢科技防詐達人的數據,所以也沒辦法斷定哪個平台發揮的功效較大。
尤其是,如果「功效」的定義是「是否影響訊息接收者進行轉傳的決策」,那還真的沒辦法定奪哪個平台功效較大呢
的確,兩者的客群年齡層跟使用邏輯也不太一樣。不過光是一個月內,使用 Cofacts 網站查證訊息就有六十幾萬人次,真的好驚人阿!
只是 landing page 第一名卻是這個:https://cofacts.g0v.tw/article/c3r7o22qby2k

其實大家只是不擅長猜燈謎嗎 XDDD
JiaPing 22:12:06
@jumpping4 has joined the channel
  • 1
mrorz 23:58:26
Replied to a thread: 2020-03-15 09:42:14
網站造訪人次確實比 LINE 使用者很多沒錯~

從 website analytics 下面的分析可以看出,大部分的造訪 session 都是發生在 mobile、且是透過 organic search 進站;也就是說,很多都是在搜尋引擎找謠言,然後進到網站的單一訊息頁面。

不過這很可能只是因為可以被搜尋引擎搜尋到的網頁,可見度本來就比 LINE 大很多;況且,我們的 LINE bot analytics 也無法計算到美玉姨、趨勢科技防詐達人的數據,所以也沒辦法斷定哪個平台發揮的功效較大。
image.png
  • 👍1
  • 2
  • 💯1
mrorz 23:59:47
尤其是,如果「功效」的定義是「是否影響訊息接收者進行轉傳的決策」,那還真的沒辦法定奪哪個平台功效較大呢
2020-03-16
mglee 08:16:50
的確,兩者的客群年齡層跟使用邏輯也不太一樣。不過光是一個月內,使用 Cofacts 網站查證訊息就有六十幾萬人次,真的好驚人阿!
caseyguo 09:00:49
@caseyguo has joined the channel
mrorz 10:56:57
只是 landing page 第一名卻是這個:https://cofacts.g0v.tw/article/c3r7o22qby2k

其實大家只是不擅長猜燈謎嗎 XDDD
  • 😂2
yanglin 17:11:15
@mrorz 想問一下 rumors-site 的 deploy 流程?
目前開了一隻 branch 在 rumors-site
可以用 `npm run build-story -- -c .storybook -o public/storybook` 在 public folder 產生 storybook
然後就可以在 `{SERVER_URL}/storybook/index.html` 看 storybook 了
不過不知道要怎麼在 staging deploy
mrorz 17:13:45
先確認一下 build 成 docker image 後,`docker run`會不會 work:
https://github.com/cofacts/rumors-site#try-built-image-on-local

會 work 的話 staging 應該也能 work。
目前 staging 放在一台有點亂的 server,可以先發 PR,merge 之後我之後可以 deploy 看看~
GitHub
Rumors list / creation UI, with server-side rendering - cofacts/rumors-site
  • 👌1
kin465 19:19:10
@kin465 has joined the channel
2020-03-17
didigh 00:33:02
@didigh has joined the channel
yuan 10:25:32
@townyuan has joined the channel
mrorz 11:14:40
哎又 downtime
image.png
實在看不出來是怎麼回事哎
mrorz 11:16:50
實在看不出來是怎麼回事哎
image.png
mrorz 11:19:45
最近回訊息的時候,發現自己其實很常搜尋自己過去寫過的來重複使用
覺得可以做下面的功能
1. 回應訊息區可以有個 tab 列出「自己過去的回應」
2. 「把此回應加到這則文章」按鈕可以多個次功能 (收在下拉 dropdown 裡) 是「使用此回應撰寫新回應」,按下去的話會把回應 + 出處(但不含 type 判斷)append 到「回應」與「出處」的輸入框
  • 👌3
mrorz 11:28:21
Replied to a thread: 2020-03-09 13:46:45
似乎還算穩定
```root@debian:/var/log/nginx# df -H
Filesystem Size Used Avail Use% Mounted on
/dev/root 339G 60G 262G 19% /```
mrorz 20:47:32
今天花的時間大多在把 LIFF 之後要怎麼實作寫下來,有興趣的大家可以看一看:
https://g0v.hackmd.io/860RnxUGTi6z2Kca6ojAbg

評估後還是採取比較熟悉的 CRA - graphql stack 惹,分析可以見下面的 Design alternative section
  • 1
  • 1
早上看了 svelte
覺得值得一試 XDD
看起來 svelte 跟 ttag 預設的樣子水火不容 orz
ttag 的 implementation 想讀 `process` 但 svelte 的環境不會偷塞 `process`。

我本來預期是抽字串會遇到問題,沒想到連最基礎的 import 都會踩到問題。

我覺得可以把 rollup 改成 webpack 再重新試試看 @@
2020-03-18
chadliu23 00:06:36
@chadliu23 has joined the channel
ggm 00:32:44
@mrorz 討論個 `Category` 裡面的 `articleCategories` ,這裡面是要 `List<ArticleCategory>` 還是 `ArticleCategoryConnection` 呀?
ggm 00:33:23
我之前看你的 mock 是寫 `ArticleCategoryConnection` ,如果比照 `Reply` 的做法的話,應該是 `List<ArticleCategory>` 我原本是想把你的 mock 改掉變成比照 `Reply` 的做法,不過我後來又想到,是因為一個分類(譬如:政治)相關的文章會超多的
ggm 00:36:28
所以你的 mock 那邊才會是 `ArticleCategoryConnection` (是這個原因嗎?)
exactly,不然我也不想用 pagination 呀很麻煩。

就是因為數量會超多所以改 connection~
但這會影響到 dataloader,因為等於要傳 before / after (cursor)與 sort settings 進去
(其實 elasticsearch 只有 search after,我們的 `before` 是用反向 + search after 處理的⋯⋯)
佛比 07:30:04
@aichi.p.chang has joined the channel
mrorz 12:06:57
exactly,不然我也不想用 pagination 呀很麻煩。

就是因為數量會超多所以改 connection~
mrorz 12:07:33
但這會影響到 dataloader,因為等於要傳 before / after (cursor)與 sort settings 進去
mrorz 12:09:10
(其實 elasticsearch 只有 search after,我們的 `before` 是用反向 + search after 處理的⋯⋯)
pokai 12:17:51
@neson has joined the channel
mrorz 13:14:48
如果四月小聚時疫情仍然嚴峻
那就換用這個吧 (?)
https://medium.com/mozilla-related/virtual-community-meetup-at-the-mozilla-hubs-6fdfd269a81d
Medium
It’s may be a good time to run your first virtual gathering
  • 😎6
  • 2
  • 2
  • 🐛1
之前 Lab 的Tony 有在這邊實習哈
lucien 14:09:10
之前 Lab 的Tony 有在這邊實習哈
mrorz 16:30:07
早上看了 svelte
覺得值得一試 XDD
mrorz 21:09:03
hubs.mozilla.com
Join others in VR at Cofacts test, right in your browser.
  • 😲1
2020-03-19
mrorz 14:01:12
Replied to a thread: 2020-03-17 20:47:32
看起來 svelte 跟 ttag 預設的樣子水火不容 orz
ttag 的 implementation 想讀 `process` 但 svelte 的環境不會偷塞 `process`。

我本來預期是抽字串會遇到問題,沒想到連最基礎的 import 都會踩到問題。

我覺得可以把 rollup 改成 webpack 再重新試試看 @@
image.png
fly 15:22:11
想請問Cofacts有自動加註連結來自內容農場之類的作法嗎? 例如這個瀏覽器外掛會在user進入前會提示為農場 https://www.facebook.com/ContentFarmTerminator https://github.com/danny0838/content-farm-terminator
沒有唷,目前我們沒有計畫去碰「誰可以定義一個網站是內容農場」這件事情~
好的,感謝回覆!農場定義真得很難。
何況,專注在驗証事實就夠辛苦了,GO GO!
不過我可以提供 https://trusted-news.com/ 的解法參考

這是做 adblock 的公司發展的計畫,現在看起來轉交 factmata 營運了。

trusted-news 過去的作法是,他去接很多不同的 fact-checker 針對個別 URL 的 fact-check rating。

當 trusted-news browser extension 的使用者瀏覽到某個網頁的時候,他就會使用這些過去的 rating 來告訴使用者這個網站(或網站的某些頁面)過去被 fact-check 的紀錄。
mrorz 15:54:44
沒有唷,目前我們沒有計畫去碰「誰可以定義一個網站是內容農場」這件事情~
  • 1
fly 17:39:59
好的,感謝回覆!農場定義真得很難。
何況,專注在驗証事實就夠辛苦了,GO GO!
mrorz 17:44:19
LINE bot memory 一直爆炸嗚嗚嗚
一波一波的
load 很大的時候,也是 memory 暴增、response time 增加(導致 timeout)的時候

看起來是 OCR?
但目前都仍然是零星的 dropout
畢竟 rps 都依然是 < 1
也就是每隔幾秒才有一個 request 進來
mrorz 17:50:31
不過我可以提供 https://trusted-news.com/ 的解法參考

這是做 adblock 的公司發展的計畫,現在看起來轉交 factmata 營運了。

trusted-news 過去的作法是,他去接很多不同的 fact-checker 針對個別 URL 的 fact-check rating。

當 trusted-news browser extension 的使用者瀏覽到某個網頁的時候,他就會使用這些過去的 rating 來告訴使用者這個網站(或網站的某些頁面)過去被 fact-check 的紀錄。
mrorz 18:20:04
一波一波的
load 很大的時候,也是 memory 暴增、response time 增加(導致 timeout)的時候

看起來是 OCR?
dashboard.heroku.com_apps_rumors-line-bot_metrics_web_ending=0-hours-ago&amp;starting=2-hours-ago.png
mrorz 18:21:54
但目前都仍然是零星的 dropout
畢竟 rps 都依然是 < 1
也就是每隔幾秒才有一個 request 進來
mrorz 22:01:47
剛才 load 飆到 14
image.png
最多的是 API server
再來是 elasticsearch
再來是網站
mrorz 22:02:38
最多的是 API server
再來是 elasticsearch
再來是網站
image.png
mrorz 22:03:17
HackMD
20200311 會議紀錄 ===== &gt; 黑卡 mrorz, bil &gt; ggm、Lucien、蝴蝶、志超 &gt; &gt; 上次開會紀錄:<https://g0v.hackmd.io/@johnson/B>
2020-03-20
mrorz 10:07:34
Voicettank
為了對抗假新聞,民間成立了各種事實查核網站,包括Mygopen、真的假的Cofacts、乃至於台灣事實查核中心等。然而,到底哪些人真的會去看這些事實查核網站?
  • 👍1
yanglin 10:58:00
有人遇過 material-ui `makeStyles` 在 production 產生的 class name 對不上的問題嗎 @@
code 裡面的是 `makeStyles-{className}-{id}` 這樣子
但是 style tag 裡卻是 `jss{id}`
  • 😱1
我們在 _app.js 裡面有拔掉 server-side rendered jss 然後重新放一個新的
那個部分不確定還該不該留著
material ui 官方寫的也是有移掉
那個部份我一直不太懂
而且現在 material-ui 官網是 4.9.6
我有升級了
那官方 repo 跑起來也會遇到一樣的事情ㄇ
如果可以的話就能發 issue
還沒試
晚點試試看
看起來 `_document.js` 也跟官方的一樣囧
de 這種 bug 超級沒頭緒 QQ
yanglin 11:06:48
material-ui.com
Stuck on a particular problem? Check some of these common gotchas first in the FAQ.
mrorz 11:23:31
我們在 _app.js 裡面有拔掉 server-side rendered jss 然後重新放一個新的
那個部分不確定還該不該留著
yanglin 11:24:19
material ui 官方寫的也是有移掉
mrorz 11:25:09
那個部份我一直不太懂
而且現在 material-ui 官網是 4.9.6
yanglin 11:25:20
我有升級了
mrorz 11:26:31
GitHub
React components for faster and easier web development. Build your own design system, or start with Material Design. - mui-org/material-ui
mrorz 11:27:40
那官方 repo 跑起來也會遇到一樣的事情ㄇ
如果可以的話就能發 issue
yanglin 11:28:13
還沒試
晚點試試看
mrorz 11:30:18
看起來 `_document.js` 也跟官方的一樣囧
mrorz 11:30:32
de 這種 bug 超級沒頭緒 QQ
mrorz 14:05:12
Cofacts 這裏收到編輯來信,希望可以增加在「回應是否有幫助」的區塊增加回覆功能。

他在使用 Cofacts 時,偶爾會看到「含有不實訊息」、「含有個人意見」的回應被人標成沒用❌ ,但卻無法針對他的理由發言,只能放任不合理的理由為謠言「背書」。

大家有沒有什麼想法呢?
90431247_195071161929880_4737074315869028352_n.png
目前 Cofacts 的設計是
• 每個人在一個回應下只能評一次「有用」 or「沒用」
• 針對同一則回應重複評價時,會覆蓋上一次自己的評價
• 給負評(覺得沒幫助)時會跳出視窗讓他填寫理由
• 其實正評在 API 上是可以提供理由的,但目前 UI 上沒有讓他填寫,也沒有顯示正評理由的地方
• 其實 API 還保留一種「中立」的評分,但目前 UI 上沒有實作。
關於這種「對回應的回應」設計,有下面兩個系統可以參考
mrorz