cofacts

Month: 2020-03

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

[Wireframe] Need to Review Page

Created with Figma

缺 RSS 訂閱按鈕~
rss 訂閱鈕應該好處理
時間的 filter 是不是要額外加?
嗯 API 目前還沒有,要加
嗨嗨,不是的
每個列表的可疑訊息點進去仍然會有詳情頁
目前只有最新查核頁才有帶回覆
熱門訊息那邊,我還要確定一下定義
熱門訊息是啥呀
用 LINE bot analytics 的嗎(現在沒有)
Eric Chen 18:16:17
@iforests has joined the channel
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
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

t: GraphQL error: userId is not set via query string. · Issue #209 · cofacts/rumors-site

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

GraphQL error: Both appId and userId must be specified at once · Issue #227 · cofacts/rumors-site

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:39
最近只剩下網站的 error 了
非常感謝 @acerxp511 消滅 LINE bot 的 error,剩下的網站的 bug 都是我以前造的孽嗚嗚嗚嗚
1
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 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

Provide date range filter for ListArticles and ListReplies · Issue #148 · cofacts/rumors-api

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

Show login error and don't send them to Rollbar by MrOrz · Pull Request #228 · cofacts/rumors-site

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...

mrorz 23:54:29
@bil 3/14 線上大松
我們在 workis 可以自己訂肯德基嗎 XDD
workis最近是胖老爹
但 KFC 比較棒
訂那個都是腿的
那揪松要訂起家雞(雲端大松演變成炸雞 battle)
我要穿小仙女送公文然後吃雞腿喝牛奶、欸有烤雞腿嗎迷迭香
好呀可以

2020-03-04

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 的時候會顯示
fly 17:05:11
https://taiwan.googleblog.com/2020/03/detectingfakeimergy.html

Google台灣 - 官方部落格

事實查核新工具:協助亞洲各地區新聞編輯室偵測假圖片

面對快速散播的不實資訊,如何從中去蕪存菁、辨別正確內容,儼然成為新聞記者和事實查核人員的巨大挑戰。可怕的是,不實資訊無所不在,文字還只是其中一部分, 那些像病毒般流傳的圖片 及 網路爆紅梗圖 ,也大量充斥在我們的動態消息和即時通訊,而這些內容往往都有斷章取義或造假的可能性。在...

1
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

Postback buttons should be usable for the entire search session · Issue #49 · cofacts/rumors-line-bot

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 by nonumpa · Pull Request #160 · cofacts/rumors-line-bot

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

Fix RSS feed content-type, add replies in feed and adjust subscribe button by MrOrz · Pull Request #229 · cofacts/rumors-site

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...

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

Handle when latestReply is undefined by MrOrz · Pull Request #231 · cofacts/rumors-site

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

傳送 Cofacts 更新到 LINE

太讚啦!!
有幾個限制
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 )
1 2
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 searchUserByArticleId and reply page error by MrOrz · Pull Request #232 · cofacts/rumors-site

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
yanglin 11:05:17
整體來說不算很多
但是變大八倍這一點有點多 XD
mrorz 11:11:48
那我開張票放著好了
mrorz 11:13:30
這張票 merge 之後我就可以把 Rollbar 再打開囉
https://github.com/cofacts/rumors-site/pull/232

GitHub

Fixes searchUserByArticleId and reply page error by MrOrz · Pull Request #232 · cofacts/rumors-site

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....

isabelhou 21:04:17
Cofacts在314大松日會有實體坑嗎?有的話請填一下喔https://g0v.hackmd.io/dOt6002FTe2loy3Ncq6_7Q

g0v.hackmd.io

g0v Hackath38n 在家松實體坑共筆 - HackMD

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
我看看發生什麼事情
GD 13:04:24
@gd has joined the channel
mrorz 13:11:33
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

Elasticsearch docker container taking all my disk space, cannot find where

Here's my docker compose file: version: '3.5' services: elasticsearch: restart: always build: context: elasticsearch/ args: ELK_VERSION: $ELK_VERSION volumes: ...

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
QQ 我修
mrorz 13:46:00
現在應該好了?
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% /```
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

Cofacts analytics

Google Data Studio turns your data into informative dashboards and reports that are easy to read, easy to share, and fully customizable.

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

[Wireframe] Need to Review Page

Created with Figma

讚讚
我加了 comment 問問題囉
ok ok
今天晚上開會確認完接下來我會處理~
👌 1 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:36:21
是說我如果想把 nginx log 弄到 data studio 有沒有什麼省錢的做法呀
現在 API + web 的 nginx raw access log 每兩天大概有 1.6G 這麼大

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

但好像是在 gcp 上的。跟自己設定不太一樣,也不太懂為什麼要用到 treasure data
💰 3
mrorz 12:47:20
Rumors-site 最近 release 比較頻繁,所以我開始寫 release note + 打 tag 囉,這樣以後要追 regression 比較方便。
https://github.com/cofacts/rumors-site/releases

GitHub

cofacts/rumors-site

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 - HackMD

Cofacts Next Spec ===== 全站導航 --- - [列表](/iJm9_nZaTA2GyInn7ycxoA) 各頁細節 --- - [可疑訊息](/ahtI6xsFR

這個要改 db
或是針對 replyrequests table 去 query userId
了解,就是做一個 `ListReplyRequest` API
但 query 就只能針對 `ReplyRequest` 的欄位,無法 search / filter by `articles` 的欄位
嗯嗯
Sibce 16:31:29
@sibce002 has joined the channel

2020-03-12

mrorz 10:56:35
今天又 downtime
image.png
對啊狂收到信 QQ 哭
我還沒調 linode size
凌晨調一下
Migrating Linode from 8GB plan to 16GB plan
😢 1
Ryu 13:56:51
@show7713 has joined the channel
icetzsr 14:23:49
@icetzsr has joined the channel
lexifdev 20:39:51
@sl has joined the channel

2020-03-13

mrorz 01:54:26
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
之前的討論: https://github.com/cofacts/rumors-api/issues/143

GitHub

Category labeling mechanism API implementation · Issue #143 · cofacts/rumors-api

完成 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
如果 confidence 在 borderline,UI 可以保留空間呈現說「AI 也不太確定是不是這個 category」,或許可以有些其它應用(例如說專門列出 confidence 在 borderline 的文章,人工進行 upvote / downvote之類)
mrorz 02:51:05
或是 AI model 們其實會根據 classify 結果進行 upvote / downvote (欸)
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
我++了 先掛著
mrorz 10:19:56
Cofacts 現場:
https://tico.chat/powercall?room=cofactshack&type=memberFirst

Hackfoldr:https://beta.hackfoldr.org/cofacts

tico.chat

Tico | Where better conversation happens

The considerate messenger. Chat with whom you care about always at the best moments and times

cai 10:32:22
@iacmai has joined the channel
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
Afra 11:00:08
我線上會議室進去只有兩個框框,是因為沒有授與麥克風跟鏡頭權限嗎?
bil 11:00:29
你看到哪兩個框框呢,框框上寫什麼
Afra 11:01:55
什麼也沒寫,哈等等截個圖
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)發現聲音很模糊所以變成打字松 (?

我按不允許,然後就再也沒有其他顯示了

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
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
Afra 11:20:49
嗯~~我之前有爬過共筆,依我的能力應該只能當個廢物小編XDDD
Afra 11:21:04
可是還不是很會用~~想說今天會聽到使用教學之類的嗎?
bil 11:21:29
有喔有喔
bil 11:21:31
嗨嗨嗨
bil 11:21:38
最廢就是我
gary96302000.eecs96 11:22:07
Hihi 大家好 我是剛剛 @ggm 跟我說才知道有這邊的討論頻道的振鴻~
哈哈拍謝我雷了 今天大松我才想起來你可能沒加進來
bil 11:23:03
那那那@always5smile 如果願意聽聲音的話請來來我們來聊聊天XDD
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
其實 https://intro.g0v.ronny.tw/meet/channel/g0v-hackath38n/15 有顯示
只有 tico 不顯示
哭哭
對啊我就是說 tico 哈哈
mglee 11:24:52
hihi 似乎因為我在美國所以上不了線上會議室,不知道上面在聊什麼~ 如果沒有特殊任務,我今天的目標是闢五個謠,然後就去陪女兒睡了 😆
不妨試試這個:
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❤️
晚安晚安
❤️ 2 👶 3
Stimim 11:49:33
@death1048576 has joined the channel
👍 1 🦒 1
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
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
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
沒看到 QQ
我要先回去等外送
darkbtf 12:43:29
沒差 XD 我等等自己處理也可以
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 15:35:08
關於「推播新回應」的討論 w/ @ggm @acerxp511
https://g0v.hackmd.io/eIeU2g86Tfu5VnLazNfUvQ

g0v.hackmd.io

rumors-line-bot 過去傳過訊息 implementation - HackMD

有鑒於有時會有很瞎的回應,這種很瞎的東西推出去不太好,所以需要討論什麼樣的回應可以被拿來推播。

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

目前「可以被拿來推播」的回應的定義有:
• 過審閱期:articleReply 建立時間超過 12hr — 目前 @mrorz 有用 RSS 訂閱新回應列表,看到很瞎的會自己回,但有時候會漏接囧。回應真的好多。理論上推播前審閱期設得越長,越有補正回應的機會,但時效性也越差。
• 人工審閱:有使用者已經給予 positive feedback。
mrorz 15:44:30
我是建議 `過審閱期 且 人工審閱` 才推送
我因為有 RSS 訂閱回應列表而且有努力按「覺得有用」,我覺得這些回應出去,我是放心的。
但沒看到的我就會有點怕怕,希望別人有按過「覺得有用」再出去
3 💯 2
ichieh 16:11:45
成果報告要準備收單~~~ 如果要報名可以先填上發表者 slack id

HackMD

hackath38n - 第參拾捌次在家黑客松 - HackMD

g0v 首次線上百人黑客松,運用 youtube+meetjitsi+slack+hackMD+github,讓 g0v 協作工具,效用發揮到極致,讓您在家也能參加黑客松。

bil 16:19:04
報了~~感謝感謝
❤️ 2
tsuifei 16:21:04
@tsuifei has joined the channel
darkbtf 16:36:50
https://www.facebook.com/DalangPhangPhang/posts/2480682265285679/

facebook.com

粉紅色小屋 Pink Phang Phang

【巴拉刈】 「巴拉刈」英語號做 Paraquat,台語講 pa-la-kuah,最近新聞定定聽著「ㄅㄚ ㄌㄚ ㄧˋ」,聽著實在誠礙虐... 另外,其實「巴拉刈」和「巴拉松」(Parathion)是無仝款个物件~ 濁水溪公社个〈農村出代誌〉歌詞:「啉著巴拉松,你就哭攏哭袂出。」內底唱的就是「巴拉松」,以前攏會將這兩種舞袂清楚。...

ggm 16:47:05
我來把 157 , 159 併起來好了,原本是想 Category , ArticleCategory, Article 這樣拆,但發現這樣拆好像也不好分
好哇這樣應該也比較好 review
感謝感謝
也就是變成 Category 和 Article (query 和 mutation )這樣
mrorz 17:42:01
CreateReplyRequestForm 可以唷

雖然我覺得整個 Dialog 一個 component 應該就行,所以如果把 Dialog 也一起包進去,可以用 Dialog 結尾
mrorz 17:44:18
@death1048576 是說 cofacts.hacktabl.org (staging 網站)與 cofacts-api.hacktabl.org (staging API + auth)也是 cross-site

如果 localhost 與 api 會有問題,理論上 staging web 與 staging api 也會有問題才對 @@
lucien 18:53:17
<!here> 導航列我重新整理過了
https://g0v.hackmd.io/iJm9_nZaTA2GyInn7ycxoA?both
https://www.figma.com/file/YikWPPauMnukDH0U2Nq4YS/Components?node-id=0%3A1

g0v.hackmd.io

列表 - HackMD

Figma

Components

Created with Figma

有個 badge 很顯眼很酷噎
使用者會期待

在「等你來答」裡面回應訊息之後,那一則訊息就從「等你來答」消失,且數字因此降低這件事情嗎?
但是也會跟著增加吧
如果有新謠言進來的話
只是有 badge 之後,就是使用者會「想要去消 badge」
會嗎
會吧
lucien 19:05:28
@stbb1025 幾個icon 形狀給你參考
截圖 2020-03-14 下午7.04.43.png
2 ❤️ 1
mrorz 20:21:42
@lucien Try this https://ifttt.com/applets/djEHvum7-cofacts-line

ifttt.com

傳送 Cofacts 更新到 LINE

傳送 Cofacts 更新到 LINE

2020-03-15

lucien 02:22:52
@mrorz
篩選排序定義抽出整理在這裡,查核爭議的過濾 ES 定義需要你 review
https://g0v.hackmd.io/wJSQCszLSGCy0f5B96td0w?both

g0v.hackmd.io

[Spec] 篩選排序 - HackMD

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

2020-03-16

caseyguo 09:00:49
@caseyguo has joined the channel
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

cofacts/rumors-site

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:19:45
最近回訊息的時候,發現自己其實很常搜尋自己過去寫過的來重複使用
覺得可以做下面的功能
1. 回應訊息區可以有個 tab 列出「自己過去的回應」
2. 「把此回應加到這則文章」按鈕可以多個次功能 (收在下拉 dropdown 裡) 是「使用此回應撰寫新回應」,按下去的話會把回應 + 出處(但不含 type 判斷)append 到「回應」與「出處」的輸入框
👌 3
mrorz 11:28:21
似乎還算穩定
```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

g0v.hackmd.io

Cofacts LIFF redesign - HackMD

早上看了 svelte
覺得值得一試 XDD
看起來 svelte 跟 ttag 預設的樣子水火不容 orz
ttag 的 implementation 想讀 `process` 但 svelte 的環境不會偷塞 `process`。

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

我覺得可以把 rollup 改成 webpack 再重新試試看 @@
1 1

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
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

Virtual community meetup at the Mozilla Hubs

It’s may be a good time to run your first virtual gathering

之前 Lab 的Tony 有在這邊實習哈
😎 6 2 2 🐛 1
mrorz 21:09:03
https://hubs.mozilla.com/BD2XJ2u/cofacts-test/

hubs.mozilla.com

Cofacts test | Hubs by Mozilla

Join others in VR at Cofacts test, right in your browser.

😲 1

2020-03-19

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 17:44:19
LINE bot memory 一直爆炸嗚嗚嗚
一波一波的
load 很大的時候,也是 memory 暴增、response time 增加(導致 timeout)的時候

看起來是 OCR?
但目前都仍然是零星的 dropout
畢竟 rps 都依然是 < 1
也就是每隔幾秒才有一個 request 進來
mrorz 22:01:47
剛才 load 飆到 14
image.png
最多的是 API server
再來是 elasticsearch
再來是網站

2020-03-20

mrorz 10:07:34
https://www.voicettank.org/single-post/2020/03/19/031901

Voicettank

王宏恩專欄︱誰在使用事實查核網站?

為了對抗假新聞,民間成立了各種事實查核網站,包括Mygopen、真的假的Cofacts、乃至於台灣事實查核中心等。然而,到底哪些人真的會去看這些事實查核網站?

👍 1
yanglin 10:58:00
有人遇過 material-ui `makeStyles` 在 production 產生的 class name 對不上的問題嗎 @@
code 裡面的是 `makeStyles-{className}-{id}` 這樣子
但是 style tag 裡卻是 `jss{id}`
我們在 _app.js 裡面有拔掉 server-side rendered jss 然後重新放一個新的
那個部分不確定還該不該留著
material ui 官方寫的也是有移掉
那個部份我一直不太懂
而且現在 material-ui 官網是 4.9.6
我有升級了
那官方 repo 跑起來也會遇到一樣的事情ㄇ
如果可以的話就能發 issue
還沒試
晚點試試看
看起來 `_document.js` 也跟官方的一樣囧
de 這種 bug 超級沒頭緒 QQ
😱 1
mrorz 14:05:12
Cofacts 這裏收到編輯來信,希望可以增加在「回應是否有幫助」的區塊增加回覆功能。

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

大家有沒有什麼想法呢?
90431247_195071161929880_4737074315869028352_n.png
目前 Cofacts 的設計是
• 每個人在一個回應下只能評一次「有用」 or「沒用」
• 針對同一則回應重複評價時,會覆蓋上一次自己的評價
• 給負評(覺得沒幫助)時會跳出視窗讓他填寫理由
• 其實正評在 API 上是可以提供理由的,但目前 UI 上沒有讓他填寫,也沒有顯示正評理由的地方
• 其實 API 還保留一種「中立」的評分,但目前 UI 上沒有實作。
關於這種「對回應的回應」設計,有下面兩個系統可以參考
Stackoverflow: 問答型網站,每個回答下面都可以有討論串,而討論串每個 post 大家可以 upvote,或 flag as inappropriate。
comment, upvote, flag 也與 stackoverflow reputation 機制連動:https://meta.stackexchange.com/questions/17364/how-does-comment-voting-and-flagging-work
另一種系統則是 Join 平台「提點子」討論區,分成「贊成論點」與「其他想法」。
需注意的是,Join 平台討論區是針對原提案的回應(接近於 Cofacts 回應),但針對個別討論,大家也只能 upvote / downvote,沒有「回應的回應」這種事情。
我覺得依然可以考慮把 Cofacts 的「回應是否有幫助」做成類似 Join 平台的做法,因為

• 「回應是否有幫助」有正負向,比起 stackoverflow,其實跟 Join 平台更像
• 系統理論上應該要聚焦在「訊息」與「回應」的匹配。如果「回應」需要改進,比起在「回應是否有幫助」筆戰,不如直接寫個新的回應。如果要幫已經沒有改進空間的「回應」護航,那每個人也只要一句話就好。
我覺得「編輯是否有幫助」不應該設計成討論串,否則會有些失焦。但是可以考慮參考 Join 平台,蒐集「贊成論點」的想法並且加以顯示。
我也覺得不用變成討論串...如果說把它弄成類似網拍評價呢?就是可以保留這些給覺得含個人意見的評論沒幫助的『理由』,讓查閱者可以自行參考為何有人覺得沒幫助→邏輯有點像是我在買網拍,都會直接去看負評,如果負評的原因不是我個人在乎的,我就會覺得不影響我對這個產品或是商店的好感
網拍評價是個我之前沒想過的類比,我覺得很恰當

對被評價回應的編輯來說,這些「沒幫助的理由」其實也可能只是自己的回應沒有滿足這些人的需求,不見得是自己的回應不夠好,就像是被打負評的賣家也不見得是貨不好。

不過,這也反映了我們或許真的需要列出「覺得有幫助的理由」來平衡那些「覺得沒幫助的理由」~
mrorz 14:22:01
我覺得依然可以考慮把 Cofacts 的「回應是否有幫助」做成類似 Join 平台的做法,因為

• 「回應是否有幫助」有正負向,比起 stackoverflow,其實跟 Join 平台更像
• 系統理論上應該要聚焦在「訊息」與「回應」的匹配。如果「回應」需要改進,比起在「回應是否有幫助」筆戰,不如直接寫個新的回應。如果要幫已經沒有改進空間的「回應」護航,那每個人也只要一句話就好。
我覺得「編輯是否有幫助」不應該設計成討論串,否則會有些失焦。但是可以考慮參考 Join 平台,蒐集「贊成論點」的想法並且加以顯示。
👍 1

2020-03-21

Tammy 00:04:35
@tammy079 has joined the channel