Speedupamerica提供有關美國互聯網的現場真相。我們的國家和局部寬帶地圖提供了透明度:接收到的實際互聯網速度,實際支付的價格以及所經驗的服務水平。這些信息有助於指導公共和私人投資在互聯網基礎架構上,最需要它的地方。我們還將這種方法視為對國家寬帶映射的更好解決方案,而不是FCC當前使用的方法。
如果您是軟件開發人員,我們會很喜歡您的幫助,我們可以為您付款!
很容易猜測社區的哪些領域的互聯網訪問緩慢,但是如果沒有數據,幾乎不可能知道誰在獲得良好的服務,可靠的服務以及在哪裡存在改進的機會。關於互聯網服務提供商可用性,實際支付的實際價格以及收到的實際速度的準確信息很難獲得。缺乏有關服務欠缺地區的真實數據和信息。這是俄勒岡州和整個國家的社區需要幫助的地方。
這項工作與我們Ignite合作,致力於推進最初在肯塔基州路易斯維爾建造的技術,從而幫助該市的數字包容性工作,並將其用於美國所有城市和農村社區。
設想的解決方案將眾包互聯網測試結果與整個美國的地圖結合在一起,該結果可按州,郵政編碼,人口普查區,Cencus塊,Cencus塊和其他統計邊界進行過濾。
最後,我們相信該工具將為我們提供有關整個美國互聯網連接實際發生的情況最準確的現場數據。而且,它可以作為鄰居,當選官員和互聯網服務提供商之間對話的起點。
該項目的目的是提高對美國每個人提供的互聯網速度和質量質量不平等的認識。如果您對任何問題有疑問,請加入對話。
歡迎!
當前的Speedupamerica的實施已擴展到2019年6月覆蓋俄勒岡州。 2019年7月增加了華盛頓和愛達荷州。 2019年8月的某個時候,正在添加州和縣邊界。
該項目可以用作數字包含策略的一部分,以了解社區中不平等的位置。 Speedupamerica可以幫助公民,企業,決策者和其他人更好地了解美國人可以在哪裡獲得高質量的互聯網服務,以及在何處獲得需求,從而使城市能夠通過關鍵政策,ISP協議和合作夥伴關係來跟踪和提高績效。
當前的所有數字包含地圖都依賴於ISP自我報告的FCC 477數據,臭名昭著,不完整,誤導性,可在ISP上進行遊戲,並且不夠詳細。讓我們直接從公民那裡獲得更好,更準確,眾包速度的速度數據,以做出更好的決策和推動政策。
2019年3月,路易斯維爾與俄勒岡州尤金的科技界合作,並hack製造了一個可以擴展為單一統一國家地圖的代碼庫的理由。
該新應用程序Speedupamerica.com收集並公開分享了有關當地寬帶服務速度,已付費的價格和整個美國服務質量的人群的信息。它還結合了測試測試和測量實驗室測試(與Google.com集成),並大大增加了應用程序收集的測試數量。
2016年4月,路易斯維爾都會政府的OPI2創新團隊,Powerup Labs和其他合作夥伴啟動了基於網絡的應用程序,旨在提高Hackathon在路易斯維爾的互聯網服務質量的透明度。路易斯維爾(Louisville)工作合作夥伴以開源“加速”,以便任何地方政府或組織都可以為其社區啟動此申請。
Speeduplouisville.com項目始於由公民數據聯盟(Civic Data Alliance)領導的本地公民黑客馬拉松,由Code Louisville和美國代碼主持。埃里克·利特爾頓(Eric Littleton),喬恩·馬塔爾(Jon Matar)和Powerup Labs軟件開發團隊隨後自願繼續在黑客馬拉松期間開始工作。 LVL1是本地製造商,還為完成該項目所需的付費網絡工具提供了資金。
數據顯示在交互式地圖上,可免費下載,目的是提高美國互聯網服務質量的透明度,並繼續在社區中的互聯網訪問周圍進行對話。公民可以從任何設備訪問該網站以進行免費的Internet服務測試,並接受Google的M-LAB測試補充。測試和簡短調查提供的數據存儲在公開可用的數據庫中,與其他結果相結合,並以無法識別貢獻者的形式發佈到在線地圖上,並允許直接下載原始數據。
該測試未收集有關個人互聯網流量的信息,例如電子郵件,網絡搜索或其他個人身份信息。
Speedupamerica項目利用以下技術進行操作:
這些說明可在Linux,Windows和MacOS上使用,除非您重置數據庫或配置文件,否則只需要執行一次。
安裝GIT Windows/Mac/Linux
安裝Docker和Docker Compose(Mac和Windows Docker Installs已包含Docker Compose,但不包括Linux。還請注意,Win Home Install與Pro不同)。
至少需要6GB的本地內存分配。啟動Docker後,進入其設置並調整允許使用的內存量。
內存 - Mac的Docker桌面
內存 - Windows的Docker桌面
根據您的操作系統,您可能必須確保使用
copy而不是cp。
$ git clone https://github.com/Hack4Eugene/SpeedUpAmerica.git
$ git clone https://github.com/Hack4Eugene/speedupamerica-migrator.git
$ cd SpeedUpAmerica
$ cp local.env.template local.env
$ docker-compose up -d mysql
$ docker-compose up --build migrator
$ docker-compose run migrator rake db:seed
$ docker-compose run frontend rake secret將您的local.env定位在現在位於本地系統上的Speedupamerica目錄的根部。使用rake secret的長字母字符串輸出作為SECRET_KEY_BASE的值。轉到MAPBOX並創建一個免費帳戶,以獲取Mapbox API訪問令牌。在local.env文件中使用並將默認的PULIC令牌設置為您的MAPBOX_API_KEY 。
這些說明假設Windows用戶沒有使用WSL,該WSL記錄了Docker的Bind Mounts的問題。為Windows安裝和配置Docker與WSL一起使用,不在本文檔的範圍之內。
下載兩個SQL文件之一,然後將其放入項目data目錄中:
貢獻者:如果您更新這些文件,請確保更改文件名並更新本文檔中的所有引用。
替換文件名並運行此行:
$ docker-compose exec -T mysql mysql -u suyc -psuyc suyc < data/ < SQL filename > $ docker-compose up -d可以在http://localhost:3000/ 。 Ruby應用程序配置為不緩存,並且不需要重新啟動Docker容器即可加載更改,除非它是配置更改。只需進行更改,然後重新加載頁面即可。第一頁加載使您有一點。請參閱docker-compose logs frontend for stdout/stderr。
docker-compose.yml包括一個基於jupyter/datascience-notebook的jupyter集線器。它包括一些用於使用MySQL和MAPBOX的Python模塊。設置數據庫並加載數據集後,您可以通過運行docker-compose up notebooks來啟動Jupyter Hub。準備就緒後,它將輸出一個URL和代幣,您需要使用該URL來訪問瀏覽器中的Jypyter Hub。筆記本和其他文件保存在./notebooks中,請確保簽入並進行PR新/更新的筆記本電腦。
$ docker-compose stop如果在從Git進行新更改並重新啟動Docker後,該站點未正確加載到Localhost上,請嘗試以下操作:
# Show the docker tasks and their exit statuses
$ docker-compose ps
# You might also be interested in seeing the logs for a failing process
# Choose the option below for the process you're interested in:
$ docker-compose logs frontend
$ docker-compose logs migrator
$ docker-compose logs mysql如果docker-compose ps在任何過程中顯示“退出1”,那麼一個可能的原因是該過程的Docker映像需要重建。這通常是由於自上次構建圖像以來的依賴性發生了變化。另一個暗示,這是原因是日誌顯示錯誤,表明找不到依賴關係。
要解決此問題,請重建該特定過程的Docker映像。例如,如果frontend過程以錯誤狀態退出:
$ docker-compose up --build frontend如果docker-compose ps在重建前端后繼續為任何進程丟棄“ 1出口1”錯誤,請確保您的機器防火牆權限允許申請。設置防火牆權限後,您需要關閉工作流程,重新啟動Docker並重新啟動應用程序。
如果啟用防火牆角色後,您仍然在“退出1”方面遇到麻煩,則可能需要刪除tmp/pids/server.pid,然後docker-compose up -d
在Ubuntu上安裝。
在基於Linux的OS上本地運行環境可能需要運行docker-compose命令作為超級用戶sudo docker-compose [commands] 。
這是將Docker作為非根本用戶管理的指南。
假設您從設置指令下載了最近下載的
.sql文件。
更新邊界時,每個開發人員必須重新加載其邊界。由於新的邊界還需要在提交表中添加列,因此最好完全重新加載數據庫。
$ docker-compose stop mysql
$ docker-compose rm mysql
$ docker-compose up mysql
$ docker-compose up --build migrator
$ docker-compose exec -T mysql mysql -u suyc -psuyc suyc < data/sua_20190803.sql更新SQL文件時,請確保從文件的第一行中刪除警告。
確保以簡潔的格式將<date>替換為今天的日期(例如, 20190801 )。
$ docker-compose exec mysql mysqldump --no-create-info -u suyc -psuyc suyc --ignore-table=suyc.schema_migrations --hex-blob > data/sua_ < date > .sql請按照接下來的三個部分下載最新數據,清除邊界表並加載數據。僅當刪除數據庫並加載Last SQL轉儲不是一個選擇時,您才應遵循這些指示。
假設您在data/ :
對於Linux和MacOS,請使用以下內容:
$ docker-compose exec -T mysql mysql -u suyc -psuyc suyc <<< " TRUNCATE boundaries; "對於Windows OS,請使用以下內容:
$ docker-compose exec mysql mysql -u suyc -psuyc suyc
$ mysql> TRUNCATE boundaries;
$ mysql> exit
$ docker-compose run frontend rake populate_boundaries
每天晚上,測試和生產環境運行數據導入過程,該過程將導入最新的M-LAB數據,更新邊界,續訂緩存以及其他與數據相關的任務。
夜間導入過程的某些步驟需要一個訪問測量實驗室數據的BigQuery服務密鑰。
夜間過程是從運行開始的./update_data.sh 。在您當地的環境中,您可以:
$ docker-compose run frontend ./update_data.sh需要一個訪問測量實驗室數據的BigQuery服務密鑰。
$ docker-compose run frontend rake import_mlab_submissions$ docker-compose run frontend rake populate_missing_boundaries$ docker-compose run frontend rake update_providers_statistics $ docker-compose run frontend rake update_stats_cache
參見貢獻。
提交者:
技術委員會: