- Move all icons out of the dock
- Add Google account to iMessage
- Disable natural scrolling
- Set key repeat to fastest, delay to shortest.
- Software update (Apple -> Software Update...)
{ "type": "FeatureCollection", | |
"features": [ | |
{ "type": "Feature", | |
"geometry": {"type": "Point", "coordinates": [102.0, 0.5]}, | |
"properties": {"prop0": "value0"} | |
}, | |
{ "type": "Feature", | |
"geometry": { | |
"type": "LineString", | |
"coordinates": [ |
{ | |
"indent_size": 4, | |
"indent_char": " ", | |
"indent_level": 0, | |
"indent_with_tabs": false, | |
"preserve_newlines": true, | |
"max_preserve_newlines": 10, | |
"jslint_happy": true, | |
"brace_style": "collapse", | |
"keep_array_indentation": false, |
compile: | |
[echo] compiling sources for dist/traffic-geojson-plugin.jar ... | |
[javac] /Users/martijnv/src/traffic-sandbox/geojson-plugin/build.xml:33: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds | |
[javac] Compiling 17 source files to /Users/martijnv/src/traffic-sandbox/geojson-plugin/build | |
[javac] /Users/martijnv/src/traffic-sandbox/geojson-plugin/src/com/telenav/traffic/josm/plugins/geojson/GeoJsonPanel.java:50: type javax.swing.JList does not take parameters | |
[javac] private final JList<GeoJsonFeature> list = new JList<GeoJsonFeature>(); | |
[javac] ^ | |
[javac] /Users/martijnv/src/traffic-sandbox/geojson-plugin/src/com/telenav/traffic/josm/plugins/geojson/GeoJsonPanel.java:54: type javax.swing.JComboBox does not take parameters | |
[javac] private final JComboBox<TaskState> state = new JComboBox<TaskState>(TaskState.values()); | |
[javac] ^ |
# Deploying A MapRoulette Server | |
Deploying a MapRoulette instance is pretty straightforward. We have a Fabric script that takes care of almost everything for you. | |
If you just want to run MapRoulette locally for development or testing, this guide is not for you. | |
## What do you need? ## | |
You need a server to deploy MapRoulette on. This can be a local or remote machine, but it will need to meet these requirements: |
[12:57:02] 127 $ osmconvert --out-statistics ~/Downloads/amsterdam.osm.pbf | |
timestamp min: 2007-03-25T18:36:55Z | |
timestamp max: 2014-04-08T23:02:08Z | |
lon min: 4.4650000 | |
lon max: 5.3469997 | |
lat min: 52.1630000 | |
lat max: 52.6289997 | |
nodes: 6907968 | |
ways: 946951 | |
relations: 8924 |
def get_changeset_path_for(utctime): | |
import os | |
parts = ["http://planet.osm.org/replication/changesets/"] | |
from math import floor | |
minutes = int(floor((utctime - config.OSM_DAY_ZERO).total_seconds() / 60)) | |
rem = minutes | |
while rem > 0: | |
parts.append(str(rem % 1000).zfill(3)) | |
rem = (rem - rem % 1000) / 1000 | |
return os.path.join(*parts) |
def get_current_state_from_server(): | |
# I dislike PyYAML, that is why | |
import requests | |
from dateutil.parser import parse | |
current_state_file_url =\ | |
"http://planet.openstreetmap.org/replication/changesets/state.yaml" | |
state_file = requests.get(current_state_file_url).text | |
current_state = {} | |
for line in state_file.split('\n'): | |
elems = line.split(':') |
count | status | |
-------+--------------- | |
215 | alreadyfixed | |
225 | editing | |
658 | assigned | |
2006 | falsepositive | |
1247 | fixed | |
649 | validated |
This API is used by Challenge providers to update their challenges and their task queue. On MapRoulette.org, this API is accessible from localhost only, so you need an SSH tunnel into the MapRoulette server to access it. Contact the authors at maproulette@maproulette.org to learn more.
GET /api/admin/challenge/<slug>/tasks
Gets the current status for all Tasks in the Challenge identified by slug