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
参见贡献。
提交者:
技术委员会: