Using Goldmine to help visualize data

Accelerate your ability to extract valuable data from lists of objects. Think of it as Ruby's Enumerable#group_by on steroids.


Note: This example manages all concerns in just 2 files. A formal project would lend itself to a more elegant solution.

We use New York wifi hotspot data from NYC Open Data to illustrate just how simple it can be to extract meaning from a dataset. Checkout the project source to learn how this page was created.

  • Data - a CSV file that serves as the source data
  • Ruby - extracts info from the data & renders it to HTML
  • HTML - the HTML template used for rendering the page

Of course, we are using a few libs to make life easy. Namely JQuery, Bootstrap, & Google Chart


Paid wifi in New York

Free wifi in New York (libraries)

Free wifi in New York (non-libraries)


City Free Library Hotspots Percentage Address Sum Location Names Zip Codes
New York 219 17.52% 3089613 183 42
New York 42 3.36% 3208864 42 28
New York 477 38.16% 25246394 134 44
Brooklyn 51 4.08% 47898 47 16
Brooklyn 61 4.88% 2642674 61 35
Brooklyn 95 7.60% 3675982 23 33
Bronx 13 1.04% 122527 13 9
Bronx 35 2.80% 5057825 35 23
Bronx 42 3.36% 12539935 4 20
Arverne 1 0.08% 31254 1 1
Flushing 9 0.72% 92520 9 6
Flushing 2 0.16% 0 2 1
Flushing 21 1.68% 67852 9 6
Jamaica 4 0.32% 16940600 4 4
Jamaica 2 0.16% 41 2 1
Jamaica 30 2.40% 82113 19 5
Bayside 3 0.24% 31206 3 3
Bayside 4 0.32% 2144148 4 2
Bayside 2 0.16% 41840 2 1
Bellerose 1 0.08% 25006 1 1
Briarwood 1 0.08% 8512 1 1
Broad Channel 1 0.08% 1626 1 1
Cambria Heights 1 0.08% 21813 1 1
Cambria Heights 1 0.08% 21607 1 1
Little Neck 2 0.16% 30605 2 1
Little Neck 1 0.08% 25441 1 1
Elmhurst 1 0.08% 8601 1 1
Elmhurst 2 0.16% 16634 2 1
Elmhurst 3 0.24% 118224 2 2
Far Rockaway 1 0.08% 1637 1 1
Forest Hills 2 0.16% 1091798 2 1
Forest Hills 3 0.24% 21367 3 1
Forest Hills 3 0.24% 1078372 2 1
Fresh Meadows 1 0.08% 19320 1 1
Fresh Meadows 1 0.08% 17660 1 1
Fresh Meadows 1 0.08% 6151188 1 1
Glendale 1 0.08% 786073 1 1
Glendale 1 0.08% 7325 1 1
Glendale 1 0.08% 8989 1 1
Hollis 1 0.08% 20205 1 1
Howard Beach 1 0.08% 9206156 1 1
Howard Beach 2 0.16% 31681 2 1
Laurelton 1 0.08% 13426225 1 1
Richmond Hill 2 0.16% 22148 2 2
Corona 3 0.24% 4816162 3 1
Corona 1 0.08% 10316 1 1
Corona 3 0.24% 958288 1 2
Maspeth 1 0.08% 6970 1 1
Maspeth 2 0.16% 602990 1 1
Middle Village 1 0.08% 7231 1 1
Long Island City 4 0.32% 663682 2 2
Long Island City 6 0.48% 601180 6 5
Long Island City 5 0.40% 738553 5 1
Staten Island 16 1.28% 27378 4 10
Staten Island 7 0.56% 10403 7 3
Staten Island 7 0.56% 5883 7 7
Ozone Park 1 0.08% 9224 1 1
Rockaway Beach 1 0.08% 9225 1 1
College Point 1 0.08% 1212314 1 1
Queens Village 1 0.08% 9411217 1 1
Rego Park 1 0.08% 914163 1 1
Rego Park 1 0.08% 6265 1 1
Rego Park 1 0.08% 950563 1 1
Ridgewood 1 0.08% 2012 1 1
Ridgewood 2 0.16% 10833 1 1
Rosedale 1 0.08% 14420243 1 1
Rockaway Park 1 0.08% 11615 1 1
South Hollis 1 0.08% 20401 1 1
Astoria 6 0.48% 1035039 3 4
Astoria 5 0.40% 632211 5 3
Woodside 2 0.16% 10241 2 1
Woodside 1 0.08% 5422 1 1
South Ozone Park 1 0.08% 12816 1 1
St. Albans 1 0.08% 19105 1 1
Whitestone 1 0.08% 1511014 1 1
Whitestone 1 0.08% 1381120 1 1
Woodhaven 1 0.08% 8541 1 1
Richmond Hills 1 0.08% 11905 1 1
Jackson Heights 2 0.16% 383493 1 1
Jackson Heights 1 0.08% 355181 1 1
E Elmhurst 1 0.08% 8805 1 1
Sun 1 0.08% 4506 1 1
Hillside 1 0.08% 8814 1 1
East Elmhurst 1 0.08% 9506 1 1
Queens 1 0.08% 7805164 1 1
Queens 1 0.08% 16630 1 1
Sunnyside 1 0.08% 4609 1 1
Douglaston 1 0.08% 2420261 1 1
Brookyn 1 0.08% 67 1 1