/
index.html
146 lines (133 loc) · 5.81 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
<!DOCTYPE HTML>
<html>
<head>
<title>The Neighborhood Project</title>
<link rel="stylesheet" type="text/css" href="stylesheet.css"/>
</head>
<body>
<div style="width:600px;align:center;margin:0 auto;">
<div style="text-align:center;">
<span style="font-weight:bold; font-size:24px;">The Neighborhood Project</span>
<br/>
<span>
<small>
By <a href="http://www.theory.org/~matt">Matt Chisholm</a>
and <a href="http://lumberjack.snurgle.org/~rcohen">Ross Cohen</a>
</small>
</span>
<br/>
<span>
<small>
<tt>matt(dash)hood(at)theory(dot)org</tt>
and
<tt>rcohen(plus)hood(at)snurgle(dot)org</tt>
</small>
</span>
</div>
<div style="width:600px; text-align:center; margin:16px;">
<a href="map">View the map!</a>
</div>
<div style="width:600px;">
<div style="float:right; width:300px; border: 0px; margin:10px; text-align:center;">
<a href="map" style="border:0px;" title="when a couple 'a guys, they were upta no good, started makin' trouble in my....">
<img src="map_thumb.png" height="300" width="300" border="0"/>
</a>
<i><small>...neighborhood.</small></i>
</div>
<p>
The Neighborhood Project is creating a map of city
neighborhoods based on the collective opinions of internet
users. Addresses and neighborhood data are translated into
latitude and longitude values, and then drawn on the map.
The address and neighborhood data are collected from <a
href="http://www.craigslist.org/sfc/hhh/">housing posts</a>
on <a href="http://www.craigslist.org">craigslist</a>, and
from people filling out the form below. The coordinates are
generated using the free <a
href="http://www.geocoder.us/">geocoder.us</a>. The map is from
<a href="https://www.openstreetmap.org/">Open Street Map</a>.
Our first city is San Francisco, but we will add more soon. Or
you can <a href="https://github.com/glyphobet/neighborhood">download</a>
the software and make your own.
</p>
<p>
This is an experiment in collective knowledge. The more
people who add their opinion to the database, the more
accurate the neighborhood boundaries become. Plese add your
location below!
</p>
<iframe style="width:800px; height:100px; clear:both;" src="web.py" frameborder="no" scrolling="no">
</iframe>
<p>
The map is updated every night. We plan to make the data
we've collected available, once we get a little bit better
at working with PostgreSQL.
</p>
<p>
The algorithm for drawing neighborhoods is the "blobby"
algorithm, well known in computer graphics. You can think
of each point in a neighborhood as a little magnet, and the
neighborhood is the region where the combined attraction of
all those magnets is above a certain strength. A single
point makes a small circle on the map. The influence of a
number of nearby points will combine to make a curved blob.
Read more about blobbies:
<ul>
<li>
<a href="http://paulbourke.net/geometry/implicitsurf/">Implicit Surfaces</a>
</li>
<li>
<a href="http://www.geisswerks.com/ryan/BLOBS/blobs.html">Metaballs</a>
</li>
<li>
<a href="http://www.siggraph.org/education/materials/HyperGraph/modeling/metaballs/metaballs_mward.html">An Overview of Metaballs/Blobby Objects</a>
</li>
</ul>
</p>
<p>
To prevent duplicate postings or submissions from combining
to form larger and larger circles, the program discards
duplicate entries when it draws the map.
</p>
<p>
There are two problems with the way the map is being drawn
currently:
<ul>
<li>
Multiple entries that are very close together combine to
form large blobs. We are experimenting with an
algorithm which reduces the individual contribution of
points as the number of points in that immediate region
increases.
</li>
<li>
There are a small number of posts that are very far
outside the neighborhood that they claim to be in.
(Currently there appears to be an Inner Sunset and a
Marina post in SOMA, and a SOMA post in Potrero Hill, a
USF/Panhandle post in the Sunset, and so on.) We may
develop an algorithm that discards data points that are
very divergent from the average or standard deviation
for that neighborhood.
</li>
</ul>
</p>
<p>
Thanks to Jeremy Avnet, Jonathan Moore, Amber Clisura, <a
href="http://theory.org">theory.org</a> and <a
href="http://mosuki.com">mosuki.com</a> for inspiration and
support.
</p>
<p><a name="download"></a>
The software to create these maps is available on <a href="https://github.com/glyphobet/neighborhood">GitHub</a>.
It is licensed under the <a
href="http://www.gnu.org/copyleft/gpl.html">GNU GPL.</a> It
is written in <a href="http://www.python.org">Python</a> and
uses the <a href="http://www.postgresql.org">PostgreSQL
database.</a> It's also hella beta so be afraid, be very afraid.
</p>
</div>
</div>
<div style="width:100%;clear:both;"></div>
</body>
</html>