SpeedUpAmerica fournit une vérité sur le terrain sur Internet en Amérique. Nos cartes à large bande nationales et localisées assurent la transparence: les vitesses Internet réelles reçues, les prix réels payés et le niveau de service expérimenté. Ces informations permettent de guider les investissements publics et privés dans les infrastructures Internet dans les endroits qui en ont le plus besoin. Nous considérons également cette approche comme une meilleure solution à la cartographie nationale à large bande que celle actuellement utilisée par la FCC.
Si vous êtes un développeur de logiciels, nous aimerions votre aide et nous pouvons vous payer pour votre temps!
Il est facile de spéculer sur les domaines d'une communauté qui ont lent accès à Internet, mais sans les données, il est presque impossible de savoir qui obtient un bon service fiable et où les opportunités existent pour l'amélioration. Des informations précises sur la disponibilité des prestataires de services Internet, les prix réels payés et les vitesses réelles reçues sont très difficiles à trouver. Il y a un manque de données réelles et d'informations sur les zones mal desservies. C'est là que les communautés de l'Oregon et dans toute la nation ont besoin d'aide.
En partenariat avec nous Ignite, cet effort fonctionne pour faire progresser la technologie qui a été construite à l'origine à Louisville Kentucky qui a aidé les efforts d'inclusion numérique de cette ville et la mettre à la disposition de toutes les villes et des communautés rurales à travers l'Amérique.
La solution envisagée combine les résultats des tests de vitesse Internet sur le crowdsourced avec une carte de l'ensemble des États-Unis qui est filtrable par État, code postal, tractus de recensement, bloc de cencus et autres limites statistiques.
En fin de compte, nous pensons que cet outil nous donnera les données sur le terrain les plus précises sur ce qui se passe réellement en termes de connectivité Internet à travers l'Amérique. Et, cela peut servir de point de départ pour les conversations entre voisins, élus et fournisseurs de services Internet.
L'objectif de ce projet est d'augmenter la sensibilisation aux inégalités de vitesse et de qualité d'Internet fournies à tous les États-Unis. Si vous avez des questions sur quoi que ce soit, veuillez vous joindre à la conversation.
Accueillir!
La mise en œuvre actuelle de SpeedupAmerica a évolué pour couvrir l'État de l'Oregon en juin 2019. Washington et Idaho ont été ajoutés en juillet 2019. Les limites de l'État et du comté sont ajoutées au cours du mois d'août 2019.
Le projet peut être utilisé dans le cadre d'une stratégie d'inclusion numérique pour savoir où se trouvent les inégalités dans votre communauté. SpeedUpAmerica peut aider les citoyens, les entreprises, les décideurs et d'autres mieux comprendre où les Américains peuvent accéder à un service Internet de haute qualité et où il y a des besoins, permettant aux villes de suivre et d'améliorer les performances grâce à des politiques clés, des accords de FAI et des partenariats.
Toutes les cartes d'inclusion numérique actuelles reposent sur les données FCC 477 qui sont autodéclarées, notoirement incomplètes, trompeuses, jouables par les FAI et pas assez détaillées. Allons mieux, plus précis, les données de vitesse de la foule directement des citoyens pour prendre de meilleures décisions et stimuler la politique.
En mars 2019, Louisville a travaillé avec la communauté technologique d'Eugene, Oregon et Hack pour une cause pour développer une base de code qui pourrait évoluer pour être une seule carte nationale unifiée.
Cette nouvelle application, SpeedupAmerica.com, recueille et partage publiquement des informations sur la foule sur les vitesses de service à large bande locales, les prix payés et la qualité de service dans toute l'Amérique. Il intègre également les tests de tests et les tests de laboratoire de mesure (qui est intégré à Google.com) et augmente considérablement le nombre de tests que l'application recueille.
En avril 2016, l'équipe d'innovation OPI2 du gouvernement du métro de Louisville, Powerup Labs et d'autres partenaires a lancé une application sur le Web visant à accroître la transparence de la qualité des services Internet à Louisville lors d'un hackathon. Louisville a travaillé des partenaires pour "accélérer" l'open source afin que tout gouvernement ou organisation local puisse lancer cette application pour sa communauté.
Le projet Speeduplouisville.com a commencé Oreginal dans un hackathon civique local dirigé par la Civic Data Alliance et hébergé par Code Louisville et Code for America. Eric Littleton, Jon Matar et l'équipe de développement de logiciels Prowup Labs se sont ensuite portés volontaires pour poursuivre les travaux lancés pendant le hackathon. LVL1, un fabricant d'espace local, a également fourni des fonds pour les outils Web payants requis pour terminer le projet.
Les données sont affichées sur une carte interactive et disponible en téléchargement gratuit, dans le but d'augmenter la transparence concernant la qualité des services Internet en Amérique et de poursuivre la conversation autour de l'accès à Internet dans votre communauté. Les citoyens peuvent visiter le site de n'importe quel appareil pour passer le test de service Internet gratuit et est complété par les tests M-Lab de Google. Les données fournies par le test et la courte enquête sont stockées dans une base de données accessible au public, combinée à d'autres résultats, et publiée sur la carte en ligne sous une forme qui n'identifie pas les contributeurs et permet le téléchargement direct de données brutes.
Ce test ne collecte pas d'informations sur le trafic Internet personnel telles que les e-mails, les recherches sur le Web ou d'autres informations personnellement identifiables.
Le projet SpeedupAmerica utilise les technologies suivantes pour l'opération:
Ces instructions fonctionnent sur Linux, Windows et MacOS et ne doivent être effectuées qu'une seule fois, sauf si vous réinitialisez vos fichiers de base de données ou de configuration.
Installer Git Windows / Mac / Linux
Installer Docker et Docker Compose (Docker Compose est déjà inclus avec les installations Mac et Windows Docker, mais pas Linux. Veuillez également noter que l'installation de la maison Win diffère de Pro).
Un minimum de 6 Go d'allocation de mémoire locale est nécessaire. Après avoir démarré Docker, accédez à ses paramètres et ajustez la quantité de mémoire qu'il est autorisé à utiliser.
Mémoire - Docker Desktop pour Mac
Mémoire - Docker Desktop pour Windows
Selon votre système d'exploitation, vous devrez peut-être vous assurer d'utiliser
copyau lieu decp.
$ 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 Localisez votre.env local.env à la racine du répertoire SpeedupAmerica qui réside désormais sur votre système local. Utilisez la longue sortie de chaîne alphanéérique de rake secret comme valeur pour SECRET_KEY_BASE . Accédez à Mapbox et créez un compte gratuit pour obtenir un jeton d'accès API Mapbox. Utilisez et définissez le jeton Pulic par défaut comme votre MAPBOX_API_KEY dans le fichier local.env .
Ces instructions supposent que les utilisateurs de Windows n'utilisent pas le WSL, qui a documenté des problèmes avec les supports de liaison de Docker. L'installation et la configuration de Docker pour Windows pour fonctionner avec le WSL sont en dehors de la portée de ce document.
Téléchargez l'un des deux fichiers SQL et placez-le dans le répertoire data des projets:
Contributeurs: Si vous mettez à jour l'un de ces fichiers, assurez-vous de modifier le nom de fichier et de mettre à jour toutes les références de ce document.
Remplacez le nom de fichier et exécutez cette ligne:
$ docker-compose exec -T mysql mysql -u suyc -psuyc suyc < data/ < SQL filename > $ docker-compose up -d Le site est accessible sur http://localhost:3000/ . L'application Ruby est configurée pour ne pas être en cache et il ne nécessite pas de redémarrage du conteneur Docker pour charger les modifications, sauf s'il s'agit d'un changement de configuration. Faites simplement vos modifications et rechargez la page. Le chargement de la première page fait prendre un peu. Voir docker-compose logs frontend pour STDOUT / STDERR.
Le docker-compose.yml comprend un conteneur de moyeu jupyter basé sur jupyter/datascience-notebook . Il comprend quelques modules Python Ajout pour travailler avec MySQL et Mapbox. Après avoir configuré la base de données et chargé un ensemble de données, vous pouvez démarrer Jupyter Hub en exécutant docker-compose up notebooks . Une fois prêt, il publiera une URL et un jeton que vous devrez utiliser pour accéder au hub Jypyter dans votre navigateur. Les ordinateurs portables et autres fichiers sont enregistrés dans ./notebooks , assurez-vous de consulter les ordinateurs portables nouveaux / mis à jour.
$ docker-compose stopSi le site ne se charge pas correctement sur LocalHost après avoir tiré de nouvelles modifications de Git et redémarrer Docker, essayez ce qui suit:
# 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 Si docker-compose ps montre "Exit 1" pour tout processus, une cause probable est que l'image Docker du processus doit être reconstruite. Cela est généralement dû à la modification des dépendances depuis la dernière fois que vous avez construit l'image. Un indice supplémentaire que c'est la cause est si les journaux montrent des erreurs indiquant qu'une dépendance n'a pas pu être trouvée.
Pour résoudre ce problème, reconstruisez l'image Docker pour ce processus spécifique. Par exemple, si le processus frontend est sorti avec un statut d'erreur:
$ docker-compose up --build frontend Si docker-compose ps continue de lancer une erreur "de sortie 1" pour tout processus après la reconstruction du frontend, veuillez vous assurer que les autorisations de pare-feu de vos machines autorisent les applications. Après avoir défini vos autorisations de pare-feu, vous devrez fermer votre flux de travail, redémarrer Docker et redémarrer l'application.
Si après l'activation de vos pertes de pare-feu, vous avez encore des problèmes avec une "sortie 1", vous devrez peut-être supprimer TMP / Pids / Server.pid puis docker-compose up -d
Installation sur Ubuntu.
L'exécution de l'environnement localement sur un système d'exploitation basé sur Linux pourrait nécessiter l'exécution de commandes docker-compose en tant que super utilisateur, sudo docker-compose [commands] .
Voici un guide pour gérer Docker en tant qu'utilisateur non root.
Suppose que vous avez le fichier
.sqlrécent téléchargé à partir des instructions de configuration.
Lorsque les limites sont mises à jour, chaque développeur doit recharger leurs limites. Étant donné que les nouvelles limites peuvent également nécessiter l'ajout de colonnes à la table de soumissions, il est préférable de recharger complètement votre base de données.
$ 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.sqlLors de la mise à jour des fichiers SQL, assurez-vous de supprimer l'avertissement de la première ligne du fichier.
Assurez-vous de remplacer <date> par la date d'aujourd'hui dans un format concis (par exemple 20190801 ).
$ docker-compose exec mysql mysqldump --no-create-info -u suyc -psuyc suyc --ignore-table=suyc.schema_migrations --hex-blob > data/sua_ < date > .sqlSuivez les trois sections suivantes pour télécharger les dernières données, effacer votre table de limites et charger les données. Vous ne devriez suivre ces instructions que si la suppression de votre base de données et le chargement du dernier vidage SQL n'est pas une option.
Supposons que vous disposez de ces fichiers dans data/ :
Pour Linux et MacOS, veuillez utiliser ce qui suit:
$ docker-compose exec -T mysql mysql -u suyc -psuyc suyc <<< " TRUNCATE boundaries; "Pour Windows OS, veuillez utiliser ce qui suit:
$ docker-compose exec mysql mysql -u suyc -psuyc suyc
$ mysql> TRUNCATE boundaries;
$ mysql> exit
$ docker-compose run frontend rake populate_boundaries
Chaque nuit, les environnements de test et de production exécutent le processus d'importation de données, qui importe des données M-Lab récentes, met à jour les limites, recalcualtes les caches et autres tâches liées aux données.
Certaines étapes du processus d'importation nocturne nécessitent une clé de service BigQuery avec accès aux données du laboratoire de mesure.
Le processus nocturne est de commencer par exécuter ./update_data.sh . Sur votre environnement local, vous pouvez:
$ docker-compose run frontend ./update_data.shNécessite une clé de service BigQuery avec accès aux données du laboratoire de mesure.
$ 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
Voir contribution.md.
COMMISSIONS:
Comité technique: