Slide 1

Slide 1 text

A little thing I made with Facebook and D3 Patrick Dougall Tuesday, January 8, 13

Slide 2

Slide 2 text

General Outline Facebook/Graph API web interface D3 a diagrammatic presentation Tuesday, January 8, 13

Slide 3

Slide 3 text

First Things First Get authentication set up Facebook Tuesday, January 8, 13

Slide 4

Slide 4 text

#360 Facebook Authentication #361 Facebook Graph API #363 Facebook Open Graph First Things First Get authentication set up Facebook Tuesday, January 8, 13

Slide 5

Slide 5 text

Facebook A look around Tuesday, January 8, 13

Slide 6

Slide 6 text

Koala Gem Facebook Tuesday, January 8, 13

Slide 7

Slide 7 text

def facebook @facebook = Koala::Facebook::API.new(oauth_token) end Koala Gem def facebook_object facebook.fql_query("SELECT column FROM table WHERE condition") end Facebook Tuesday, January 8, 13

Slide 8

Slide 8 text

def facebook_object facebook.fql_multiquery({ "query1" => "SELECT column FROM table WHERE condition", "query2" => "SELECT column FROM table WHERE condition", "query3" => "SELECT column FROM table WHERE condition" }) end def facebook @facebook = Koala::Facebook::API.new(oauth_token) end Koala Gem Facebook Tuesday, January 8, 13

Slide 9

Slide 9 text

Facebook Tuesday, January 8, 13

Slide 10

Slide 10 text

Graph API Explorer Facebook Tuesday, January 8, 13

Slide 11

Slide 11 text

Railscast http:/ /railscasts.com/episodes/360- facebook-authentication Omniauth-facebook https:/ /github.com/mkdynamic/omniauth- facebook Koala gem https:/ /github.com/arsduo/koala Resources Facebook Tuesday, January 8, 13

Slide 12

Slide 12 text

Railscast http:/ /railscasts.com/episodes/360- facebook-authentication Omniauth-facebook https:/ /github.com/mkdynamic/omniauth- facebook Koala gem https:/ /github.com/arsduo/koala Resources Tuesday, January 8, 13

Slide 13

Slide 13 text

Data- Driven Documents Tuesday, January 8, 13

Slide 14

Slide 14 text

D3 You should just see it! Tuesday, January 8, 13

Slide 15

Slide 15 text

D3 Tuesday, January 8, 13

Slide 16

Slide 16 text

D3 An attempt to explain D3 Diagramatically! (Not a lot of code) Tuesday, January 8, 13

Slide 17

Slide 17 text

D3 #some-div Tuesday, January 8, 13

Slide 18

Slide 18 text

D3 svg element (canvas) #some-div append Tuesday, January 8, 13

Slide 19

Slide 19 text

D3 svg element (canvas) #some-div force layout append apply Tuesday, January 8, 13

Slide 20

Slide 20 text

D3 Tuesday, January 8, 13

Slide 21

Slide 21 text

D3 Tuesday, January 8, 13

Slide 22

Slide 22 text

D3 svg element (canvas) Tuesday, January 8, 13

Slide 23

Slide 23 text

D3 svg element (canvas) nodes add Tuesday, January 8, 13

Slide 24

Slide 24 text

D3 svg element (canvas) nodes add var node = svg.selectAll(".node") .data(graph.nodes) .enter().append("g") .attr("class", "node") .call(force.drag); Tuesday, January 8, 13

Slide 25

Slide 25 text

D3 svg element (canvas) nodes add Tuesday, January 8, 13

Slide 26

Slide 26 text

D3 svg element (canvas) nodes add images append Tuesday, January 8, 13

Slide 27

Slide 27 text

D3 svg element (canvas) nodes add images append var image = node.append("image") .attr("xlink:href", function(d) {return d.pic_square;} ) .attr("x", -25) .attr("y", -25) .attr("width", 50) .attr("height", 50) .style("opacity", 0); Tuesday, January 8, 13

Slide 28

Slide 28 text

D3 svg element (canvas) Tuesday, January 8, 13

Slide 29

Slide 29 text

D3 svg element (canvas) Tuesday, January 8, 13

Slide 30

Slide 30 text

D3 svg element (canvas) links add Tuesday, January 8, 13

Slide 31

Slide 31 text

D3 svg element (canvas) links add function tick() { link.attr("x1", function(d) { return d.source.x; }) .attr("y1", function(d) { return d.source.y; }) .attr("x2", function(d) { return d.target.x; }) .attr("y2", function(d) { return d.target.y; }); }); } Tuesday, January 8, 13

Slide 32

Slide 32 text

D3 svg element (canvas) links add links: [{“source”:0, “target”:1, “affiliation”:2}, {“source”:0, “target”:2, “affiliation”:0}, {“source”:0, “target”:3, “affiliation”:0}, {“source”:0, “target”:4, “affiliation”:1}, {“source”:0, “target”:5, “affiliation”:4}] links x1 = d.source.x y1 = d.source.y x2 = d.target.x y2 = d.target.y id 2 id 0 id 3 id 4 id 5 id 1 Tuesday, January 8, 13

Slide 33

Slide 33 text

Lets see that thing I built agian! Tuesday, January 8, 13

Slide 34

Slide 34 text

Wrap it up Facebook, a lot of data! All you need is permission! D3, do a lot with your data Steep learning curve, but a lot of potential! Tuesday, January 8, 13

Slide 35

Slide 35 text

I’m a beginner programmer (around 1 year) I graduated with an MS in Neuroscience last December. I learned how to teach myself hard stuff Similar conceptual thinking Looking for employment! [email protected] https:/ /github.com/pdougall1 About me :) Tuesday, January 8, 13