Solving The                           Brooklyn Problem:                           Better UX through cheap hacks           ...
Thursday, April 21, 2011
Thursday, April 21, 2011
Thursday, April 21, 2011
1. UI/UX can be improved by applying     ambient location informationThursday, April 21, 2011
1. UI/UX can be improved by applying     ambient location information     2. It’s easy.Thursday, April 21, 2011
The Brooklyn ProblemThursday, April 21, 2011
The Brooklyn Problem             Brooklyn, New York Brooklyn, AlabamaThursday, April 21, 2011
if ($query == ‘Brooklyn’) {             return ‘Brooklyn, NY’;            }Thursday, April 21, 2011
Thursday, April 21, 2011
Thursday, April 21, 2011
Thursday, April 21, 2011
Thursday, April 21, 2011
Solr 3.10, Maxmind world populations dataset, bash,                            and an “algorithm”Thursday, April 21, 2011
Solr geo-spatial extension 3.10+      schema.xml:        <fieldType name="location" class="solr.LatLonType"        subFiel...
ALL THE CODE!              <?php                   $fh = fopen(worldcitiespop.txt, r);                   $row = fgetcsv($f...
“a custom Solr scoring function to re-rank results                        based on social geo-relevance”Thursday, April 21...
div(geodist(),sqrt(sum(population,1))Thursday, April 21, 2011
http://localhost:8393/solr/               placesuggest/select?               q=b*&sfield=latlong&pt=37.7749295            ...
OM           G             CO               NT          http://localhost:8393/solr/                  EX                   ...
Done!Thursday, April 21, 2011
the tear down   * Solr 3.10+ working geo-spatial extensions   * 2.6 million points == 380Mb index   * the data sucks, and ...
.Wanjialing, ChinaThursday, April 21, 2011
Brooklyn NY, population: 0Thursday, April 21, 2011
So why aren’t people doing this?Thursday, April 21, 2011
Thursday, April 21, 2011
Thursday, April 21, 2011
Thursday, April 21, 2011
Solr 3.10, Maxmind world populations dataset, bash,                            and an “algorithm”Thursday, April 21, 2011
Thank you!                           http://www.etsy.com/listing/59401151/vintage-coffee-bean-bag-chairs                  ...
Upcoming SlideShare
Loading in...5
×

Solving the "Brooklyn Problem"

7,161

Published on

Better UX through cheap hacks

0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
7,161
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
32
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide

Solving the "Brooklyn Problem"

  1. 1. Solving The Brooklyn Problem: Better UX through cheap hacks Kellan Elliott-McCrea, Etsy @kellanThursday, April 21, 2011
  2. 2. Thursday, April 21, 2011
  3. 3. Thursday, April 21, 2011
  4. 4. Thursday, April 21, 2011
  5. 5. 1. UI/UX can be improved by applying ambient location informationThursday, April 21, 2011
  6. 6. 1. UI/UX can be improved by applying ambient location information 2. It’s easy.Thursday, April 21, 2011
  7. 7. The Brooklyn ProblemThursday, April 21, 2011
  8. 8. The Brooklyn Problem Brooklyn, New York Brooklyn, AlabamaThursday, April 21, 2011
  9. 9. if ($query == ‘Brooklyn’) { return ‘Brooklyn, NY’; }Thursday, April 21, 2011
  10. 10. Thursday, April 21, 2011
  11. 11. Thursday, April 21, 2011
  12. 12. Thursday, April 21, 2011
  13. 13. Thursday, April 21, 2011
  14. 14. Solr 3.10, Maxmind world populations dataset, bash, and an “algorithm”Thursday, April 21, 2011
  15. 15. Solr geo-spatial extension 3.10+ schema.xml: <fieldType name="location" class="solr.LatLonType" subFieldSuffix="_coordinate"/> .... <field name="latlong" type="location" indexed="true" stored="true" required="true" />Thursday, April 21, 2011
  16. 16. ALL THE CODE! <?php $fh = fopen(worldcitiespop.txt, r); $row = fgetcsv($fh); // discard headers for($i=0;$i<100;$i++) { $row = fgetcsv($fh); $json = array(add=> array(doc => array( terms => $row[2] . . $row[0], // city country population => $row[4], latlong => $row[5] . , . $row[6], // "latitude,longitude" gets parsed ))); curl_post(json_encode($json)); } } function curl_post($json, $url=http://localhost:8983/solr/update/json) { $ch = curl_init(); curl_setopt($ch, CURLOPT_HTTPHEADERS, array(Content-Type: application/json)); curl_setopt($ch, CURLOPT_URL, $URL); } ?>Thursday, April 21, 2011
  17. 17. “a custom Solr scoring function to re-rank results based on social geo-relevance”Thursday, April 21, 2011
  18. 18. div(geodist(),sqrt(sum(population,1))Thursday, April 21, 2011
  19. 19. http://localhost:8393/solr/ placesuggest/select? q=b*&sfield=latlong&pt=37.7749295 ,-122.4194155&sort=div(geodist (),sqrt(sum(population,1)))%20ascThursday, April 21, 2011
  20. 20. OM G CO NT http://localhost:8393/solr/ EX TS placesuggest/select? GE EN q=b*&sfield=latlong&pt=37.7749295 OC SIT O D IV ,-122.4194155&sort=div(geodist IN E PE (),sqrt(sum(population,1)))%20asc G! RS !!!! ON AL IZ EDThursday, April 21, 2011
  21. 21. Done!Thursday, April 21, 2011
  22. 22. the tear down * Solr 3.10+ working geo-spatial extensions * 2.6 million points == 380Mb index * the data sucks, and it doesn’t matter (much) * a few days of work, 85% increase in data quality.Thursday, April 21, 2011
  23. 23. .Wanjialing, ChinaThursday, April 21, 2011
  24. 24. Brooklyn NY, population: 0Thursday, April 21, 2011
  25. 25. So why aren’t people doing this?Thursday, April 21, 2011
  26. 26. Thursday, April 21, 2011
  27. 27. Thursday, April 21, 2011
  28. 28. Thursday, April 21, 2011
  29. 29. Solr 3.10, Maxmind world populations dataset, bash, and an “algorithm”Thursday, April 21, 2011
  30. 30. Thank you! http://www.etsy.com/listing/59401151/vintage-coffee-bean-bag-chairs http://www.flickr.com/photos/darn/141009324/ http://www.flickr.com/photos/21953562@N07/5539813593/ http://www.maxmind.com/app/worldcities http://www.lucidimagination.com/blog/2010/07/20/update-spatial-search-in- apache-lucene-and-solr/ http://www.etsy.com/listing/66013923/triceratops-forged-copper-maskThursday, April 21, 2011
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×