anoni-net / anoni-net/docs

規劃:ASN 觀測涵蓋率的跨區比較(TW / HK / JP / KR / SG / MY)

Ouverte
#245 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
documentation enhancement
Langage dominant
JavaScript
Étoiles
47
Forks
7
Merge moyen
2 h 42 min
PR mergées (30 j)
291

Description

## 脈絡

`docs/en/regional/index.md` 的「Still to come」列著:

> ASN coverage — cross-region comparison (TW / HK / JP / KR / SG / MY)

這一項原本在 #243,但性質跟那張 issue 的其他三項不同。那三項是修既有的東西,對錯清楚。這一項是新的研究產出,方法選擇會影響結論,而結論會被引用,所以拆出來獨立規劃。

現有的 [ASN observation data analysis](https://anoni.net/docs/en/regional/ooni-asn-coverage/) 只涵蓋台灣,約 9,000 字,結構是「為什麼 ASN 多樣性重要 → 台灣的測量集中在少數電信商 → 怎麼讀單筆測量 → 自己跑分析」。跨區版本要嘛擴充它,要嘛另建一頁,取決於資料跑出來的樣子。

## 技術現況(已確認,不用重新查)

`asn_coverage/ooni.py` 有兩個指令,`lookback`(往回看 N 個時間單位)與 `span`(指定起訖),**兩者都有 `--loc` 參數,預設 TW**,所以跨區在工具層本來就支援。核心函式是 `count_asn(date, loc, oonis3=None)`。

分母來自 `asn_coverage/ripe.py`,抓 RIPE 的 ASN 清單(`ftp.ripe.net`)。

`asn_datas/` 目錄是空的,產出不落地到 repo。

## 最關鍵的設計決定

**這篇的主張必須是「我們的觀測基礎建設在哪裡有洞」,不能是「哪個地區網路比較不自由」。**

OONI 涵蓋率低只代表沒人在那裡測,跟審查程度無關。香港的涵蓋率若低於台灣,反映的是志工社群規模而不是網路環境。這個框架弄反會直接傷害可信度,而英文站的讀者正是會拿數據去引用的國際記者與研究者。

`regional/index.md` 已經誠實寫了「我們對各地區的 standing 不同,不宣稱在整個區域有相同深度」,這篇要延續同一個立場。

## 三個會讓數字誤導的陷阱

**分母不可比。** 香港有大量海外註冊但不服務本地使用者的 ASN,新加坡是區域樞紐有很多純轉送的 ASN。用「該地區總 ASN 數」當分母,這兩地的涵蓋率會被稀釋到看起來很糟。可能要改用「有實際使用者的 ASN」,或至少把這個差異標在圖表旁邊。

**人口與網路結構不成比例。** 日本 1.2 億人、新加坡 590 萬,ASN 數量與人口不是線性關係。跨區比絕對數字沒有意義,要比的是結構。

**測量量的時間分佈。** 某地區可能因為一次事件(選舉、斷網、演練)湧入大量測量,把年度平均拉高。要看分佈不只看總量。台灣自己就有這個現象,8/13 降速演練那次號召帶進一批測量。

## 建議的執行順序

**先跑資料,再決定文章形狀。** 不要先寫大綱再填數字,因為數字會決定哪些比較有意義。可能跑完發現某兩個地區的測量量太少根本無法比較,那範圍就要縮成三、四個地區。

1. **試跑一個非台灣地區**(HK 或 JP),確認資料抓得到、格式與台灣一致、耗時可接受
2. **六個地區各跑一次**,看三個維度:涵蓋率、測量量的集中度(前幾大 ASN 佔比,台灣是 32.9%)、時間趨勢
3. **決定比較維度與呈現方式**。現有台灣頁用 Vega 圖表,跨區可能需要不同的呈現
4. **決定擴充現有頁面或另建**
5. 走完整品管管線,事實查核特別注意各地區的 ASN 總數與人口數字

## 執行成本

OONI 的 S3 資料量大,六個地區跑完可能要數小時。第 1 步的試跑就是為了估這個。如果單一地區就要跑很久,要考慮縮短時間範圍或改用 OONI 的 aggregation API 取代 S3 原始資料。

## 未決的問題

- 六個地區是否都要做,還是先做 TW / HK / JP 三個資料量較有把握的
- 擴充 `regional/ooni-asn-coverage.md` 還是另建一頁
- zh-TW 要不要同步。現有的台灣分析三語都有,跨區版本如果只做 en,要在 zh 版說明為什麼

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Start with asn_coverage/ooni.py, its lookback and span commands, and count_asn; run one non-TW location such as HK or JP before attempting all six. Check asn_coverage/ripe.py and the existing regional/ooni-asn-coverage.md analysis for data and presentation context. Done means choosing a defensible comparison scope and page location, documenting coverage limitations, and completing the stated fact-checking and quality-control steps.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
python
Domaine
data, documentation, networking
Type d'issue
Documentation
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
Active
Clarté
À clarifier
Accessibilité débutants
30/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.