facegroup 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.codeclimate.yml +20 -0
- data/.travis.yml +3 -0
- data/README.md +1 -0
- data/Rakefile +8 -0
- data/bin/facegroup +11 -7
- data/facegroup.gemspec +3 -2
- data/lib/facegroup/attachment.rb +5 -3
- data/lib/facegroup/fb_api.rb +19 -28
- data/lib/facegroup/feed.rb +3 -2
- data/lib/facegroup/group.rb +7 -13
- data/lib/facegroup/posting.rb +5 -10
- data/lib/facegroup/version.rb +1 -1
- data/spec/fixtures/cassettes/facebook_api.yml +255 -111
- data/spec/spec_helper.rb +2 -0
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dc7ee158ae35fa2c11b34facde81784382b7d973
|
4
|
+
data.tar.gz: 570fad708f94c07ddba5f29f1521d988e3e935e9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 693ae084c9d9cace16f4a760d46e826212ad0b33988e74691405a09f9790b7a02290769602a137d09f8e32434c8265da7286f63d211933428bfa641844cbea6a
|
7
|
+
data.tar.gz: 1cfda29bc1824050eba0a4fce0c47be5694a72692f60a85c2641563e2fc4ce7af4a487ef223d0d797c21431ef901feb60cfac4624cd6816f654ec9a5ae07eba0
|
data/.codeclimate.yml
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
---
|
2
|
+
engines:
|
3
|
+
bundler-audit:
|
4
|
+
enabled: true
|
5
|
+
duplication:
|
6
|
+
enabled: true
|
7
|
+
config:
|
8
|
+
languages:
|
9
|
+
- ruby
|
10
|
+
fixme:
|
11
|
+
enabled: true
|
12
|
+
rubocop:
|
13
|
+
enabled: true
|
14
|
+
ratings:
|
15
|
+
paths:
|
16
|
+
- Gemfile.lock
|
17
|
+
- "**.rb"
|
18
|
+
exclude_paths:
|
19
|
+
- config/
|
20
|
+
- spec/
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# FaceGroup Gem
|
2
2
|
|
3
|
+
[](https://badge.fury.io/rb/facegroup)
|
3
4
|
[](https://travis-ci.org/ISS-SOA/facegroup)
|
4
5
|
|
5
6
|
FaceGroup is a gem that specializes in getting data from public Facebook Groups.
|
data/Rakefile
CHANGED
@@ -15,6 +15,14 @@ namespace :credentials do
|
|
15
15
|
|
16
16
|
puts "Access Token: #{FaceGroup::FbApi.access_token}"
|
17
17
|
end
|
18
|
+
|
19
|
+
desc 'Export sample credentials from file to bash'
|
20
|
+
task :export do
|
21
|
+
credentials = YAML.load(File.read('config/credentials.yml'))
|
22
|
+
puts 'Please run the following in bash:'
|
23
|
+
puts "export FB_CLIENT_ID=#{credentials[:client_id]}"
|
24
|
+
puts "export FB_CLIENT_SECRET=#{credentials[:client_secret]}"
|
25
|
+
end
|
18
26
|
end
|
19
27
|
|
20
28
|
desc 'run tests'
|
data/bin/facegroup
CHANGED
@@ -1,17 +1,21 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
|
2
|
+
# frozen_string_literal: true
|
3
|
+
$LOAD_PATH.unshift File.join(File.dirname(__FILE__), *%w(.. lib))
|
3
4
|
require 'facegroup'
|
4
5
|
|
5
|
-
group_id = ARGV[0] || '
|
6
|
+
group_id = ARGV[0] || ENV['FB_GROUP_ID']
|
7
|
+
unless group_id
|
8
|
+
puts 'USAGE: facegroup [group_id]'
|
9
|
+
exit(1)
|
10
|
+
end
|
11
|
+
|
6
12
|
group = FaceGroup::Group.find(id: group_id)
|
7
13
|
|
8
14
|
puts group.name
|
9
|
-
puts group.name.length
|
15
|
+
puts Array.new(group.name.length) { '-' }.join
|
10
16
|
group.feed.postings.first(3).each.with_index do |post, index|
|
11
|
-
print "#{index+1}: "
|
17
|
+
print "#{index + 1}: "
|
12
18
|
puts post.message ? post.message : '(blank)'
|
13
|
-
if post.attachment
|
14
|
-
puts "Attached: #{post.attachment.url}"
|
15
|
-
end
|
19
|
+
puts "Attached: #{post.attachment.url}" if post.attachment
|
16
20
|
puts
|
17
21
|
end
|
data/facegroup.gemspec
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
$LOAD_PATH.push File.expand_path('../lib', __FILE__)
|
2
3
|
require 'facegroup/version'
|
3
4
|
|
4
5
|
Gem::Specification.new do |s|
|
@@ -25,7 +26,7 @@ Gem::Specification.new do |s|
|
|
25
26
|
s.add_development_dependency 'flog', '~> 4.4'
|
26
27
|
s.add_development_dependency 'flay', '~> 2.8'
|
27
28
|
s.add_development_dependency 'rubocop', '~> 0.42'
|
28
|
-
|
29
|
+
s.add_development_dependency 'codeclimate-test-reporter', '~> 0.6'
|
29
30
|
s.homepage = 'https://github.com/ISS-SOA/facegroup'
|
30
31
|
s.license = 'MIT'
|
31
32
|
end
|
data/lib/facegroup/attachment.rb
CHANGED
@@ -3,12 +3,14 @@
|
|
3
3
|
module FaceGroup
|
4
4
|
# Attached URL to Posting
|
5
5
|
class Attachment
|
6
|
-
attr_reader :description, :url
|
6
|
+
attr_reader :title, :description, :url
|
7
7
|
|
8
8
|
def initialize(data)
|
9
9
|
return unless data
|
10
|
-
|
11
|
-
@
|
10
|
+
attachment_data = data['data'].first
|
11
|
+
@title = attachment_data['title']
|
12
|
+
@description = attachment_data['description']
|
13
|
+
@url = attachment_data['url']
|
12
14
|
end
|
13
15
|
end
|
14
16
|
end
|
data/lib/facegroup/fb_api.rb
CHANGED
@@ -10,6 +10,13 @@ module FaceGroup
|
|
10
10
|
FB_TOKEN_URL = [FB_API_URL, 'oauth/access_token'].join('/')
|
11
11
|
TOKEN_KEY = 'fbapi_access_token'
|
12
12
|
|
13
|
+
GRAPH_QUERY = {
|
14
|
+
group: 'id,name,feed{name,message,updated_time,created_time,'\
|
15
|
+
'attachments{title,description,url,media}}',
|
16
|
+
posting: 'name,message,updated_time,created_time,'\
|
17
|
+
'attachments{title,description,url,media}'
|
18
|
+
}.freeze
|
19
|
+
|
13
20
|
def self.access_token
|
14
21
|
return @access_token if @access_token
|
15
22
|
|
@@ -22,46 +29,30 @@ module FaceGroup
|
|
22
29
|
end
|
23
30
|
|
24
31
|
def self.config=(credentials)
|
25
|
-
@config
|
26
|
-
@config.update(credentials)
|
32
|
+
@config ? @config.update(credentials) : @config = credentials
|
27
33
|
end
|
28
34
|
|
29
35
|
def self.config
|
30
36
|
return @config if @config
|
31
|
-
@config = { client_id:
|
37
|
+
@config = { client_id: ENV['FB_CLIENT_ID'],
|
32
38
|
client_secret: ENV['FB_CLIENT_SECRET'] }
|
33
39
|
end
|
34
40
|
|
35
|
-
def self.
|
36
|
-
|
37
|
-
fb_resource_url(group_id) + '/feed',
|
38
|
-
params: { access_token: access_token }
|
39
|
-
)
|
40
|
-
JSON.load(feed_response.to_s)
|
41
|
+
def self.group_data(group_id)
|
42
|
+
graphql_query(group_id, :group)
|
41
43
|
end
|
42
44
|
|
43
|
-
def self.
|
44
|
-
|
45
|
-
fb_resource_url(id),
|
46
|
-
params: { access_token: access_token }
|
47
|
-
)
|
48
|
-
JSON.load(response.to_s)
|
45
|
+
def self.posting_data(posting_id)
|
46
|
+
graphql_query(posting_id, :posting)
|
49
47
|
end
|
50
48
|
|
51
|
-
def self.
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
fb_resource(posting_id)
|
57
|
-
end
|
58
|
-
|
59
|
-
def self.posting_attachments(posting_id)
|
60
|
-
attachments_response = HTTP.get(
|
61
|
-
fb_resource_url(posting_id) + '/attachments',
|
62
|
-
params: { access_token: access_token }
|
49
|
+
def self.graphql_query(resource_id, resource_key)
|
50
|
+
response = HTTP.get(
|
51
|
+
fb_resource_url(resource_id),
|
52
|
+
params: { fields: GRAPH_QUERY[resource_key],
|
53
|
+
access_token: access_token }
|
63
54
|
)
|
64
|
-
JSON.load(
|
55
|
+
JSON.load(response.to_s)
|
65
56
|
end
|
66
57
|
|
67
58
|
private_class_method
|
data/lib/facegroup/feed.rb
CHANGED
@@ -7,12 +7,13 @@ module FaceGroup
|
|
7
7
|
class Feed
|
8
8
|
attr_reader :postings
|
9
9
|
|
10
|
-
def initialize(
|
10
|
+
def initialize(feed_data:)
|
11
|
+
postings_data = feed_data['data']
|
11
12
|
@postings = postings_data.map do |post_data|
|
12
13
|
FaceGroup::Posting.new(data: post_data)
|
13
14
|
end
|
14
15
|
|
15
|
-
@
|
16
|
+
@pagination = feed_data['pagination']
|
16
17
|
end
|
17
18
|
|
18
19
|
def count
|
data/lib/facegroup/group.rb
CHANGED
@@ -5,23 +5,17 @@ require_relative 'feed'
|
|
5
5
|
module FaceGroup
|
6
6
|
# Main class to setup a Facebook group
|
7
7
|
class Group
|
8
|
-
attr_reader :name
|
8
|
+
attr_reader :id, :name, :feed
|
9
9
|
|
10
|
-
def initialize(
|
11
|
-
@name =
|
12
|
-
@id =
|
13
|
-
|
14
|
-
|
15
|
-
def feed
|
16
|
-
return @feed if @feed
|
17
|
-
feed_data = FaceGroup::FbApi.group_feed(@id)
|
18
|
-
@feed = Feed.new(postings_data: feed_data['data'],
|
19
|
-
paging_data: feed_data['paging'])
|
10
|
+
def initialize(group_data:)
|
11
|
+
@name = group_data['name']
|
12
|
+
@id = group_data['id']
|
13
|
+
@feed = Feed.new(feed_data: group_data['feed'])
|
20
14
|
end
|
21
15
|
|
22
16
|
def self.find(id:)
|
23
|
-
group_data = FbApi.
|
24
|
-
new(
|
17
|
+
group_data = FbApi.group_data(id)
|
18
|
+
new(group_data: group_data)
|
25
19
|
end
|
26
20
|
end
|
27
21
|
end
|
data/lib/facegroup/posting.rb
CHANGED
@@ -5,21 +5,15 @@ require_relative 'attachment'
|
|
5
5
|
module FaceGroup
|
6
6
|
# Single posting on group's feed
|
7
7
|
class Posting
|
8
|
-
attr_reader :id, :created_time, :updated_time,
|
8
|
+
attr_reader :id, :created_time, :updated_time,
|
9
|
+
:message, :name, :attachment
|
9
10
|
|
10
11
|
def initialize(data: nil)
|
11
12
|
load_data(data)
|
12
13
|
end
|
13
14
|
|
14
|
-
def attachment
|
15
|
-
return @attachment if @attachment
|
16
|
-
|
17
|
-
attached_data = FaceGroup::FbApi.posting_attachments(@id)
|
18
|
-
@attachment = Attachment.new(attached_data)
|
19
|
-
end
|
20
|
-
|
21
15
|
def self.find(id:)
|
22
|
-
posting_data = FaceGroup::FbApi.
|
16
|
+
posting_data = FaceGroup::FbApi.posting_data(id)
|
23
17
|
new(data: posting_data)
|
24
18
|
end
|
25
19
|
|
@@ -29,8 +23,9 @@ module FaceGroup
|
|
29
23
|
@id = posting_data['id']
|
30
24
|
@updated_time = posting_data['updated_time']
|
31
25
|
@created_time = posting_data['created_time']
|
26
|
+
@name = posting_data['message']
|
32
27
|
@message = posting_data['message']
|
33
|
-
attached = posting_data['
|
28
|
+
attached = posting_data['attachments']
|
34
29
|
@attachment = Attachment.new(attached) if attached
|
35
30
|
end
|
36
31
|
end
|
data/lib/facegroup/version.rb
CHANGED
@@ -31,13 +31,13 @@ http_interactions:
|
|
31
31
|
Content-Type:
|
32
32
|
- application/json; charset=UTF-8
|
33
33
|
X-Fb-Trace-Id:
|
34
|
-
-
|
34
|
+
- CzywRdmh8MO
|
35
35
|
X-Fb-Rev:
|
36
|
-
- '
|
36
|
+
- '2638327'
|
37
37
|
X-Fb-Debug:
|
38
|
-
-
|
38
|
+
- LFM+h3jZPwPzV568MfOMFbPDcP8VD14iXykwMwMqBOPCMUkTUyfcL97M7z3RGFWoBiGQPuDIVUEdJGfbOTgdbQ==
|
39
39
|
Date:
|
40
|
-
-
|
40
|
+
- Sun, 23 Oct 2016 23:07:40 GMT
|
41
41
|
Connection:
|
42
42
|
- close
|
43
43
|
Content-Length:
|
@@ -46,10 +46,10 @@ http_interactions:
|
|
46
46
|
encoding: UTF-8
|
47
47
|
string: '{"access_token":"<ACCESS_TOKEN>","token_type":"bearer"}'
|
48
48
|
http_version:
|
49
|
-
recorded_at:
|
49
|
+
recorded_at: Sun, 23 Oct 2016 23:07:41 GMT
|
50
50
|
- request:
|
51
51
|
method: get
|
52
|
-
uri: https://graph.facebook.com/150352985174571?access_token=<ACCESS_TOKEN_ESCAPED
|
52
|
+
uri: https://graph.facebook.com/150352985174571?access_token=<ACCESS_TOKEN_ESCAPED>&fields=id,name,feed%7Bname,message,updated_time,created_time,attachments%7Btitle,url,media%7D%7D
|
53
53
|
body:
|
54
54
|
encoding: US-ASCII
|
55
55
|
string: ''
|
@@ -68,7 +68,7 @@ http_interactions:
|
|
68
68
|
Access-Control-Allow-Origin:
|
69
69
|
- "*"
|
70
70
|
Etag:
|
71
|
-
- '"
|
71
|
+
- '"3636e806cf74b50ee220296d4f7f6f2aaac1691d"'
|
72
72
|
Pragma:
|
73
73
|
- no-cache
|
74
74
|
Cache-Control:
|
@@ -80,111 +80,112 @@ http_interactions:
|
|
80
80
|
Content-Type:
|
81
81
|
- text/javascript; charset=UTF-8
|
82
82
|
X-Fb-Trace-Id:
|
83
|
-
-
|
83
|
+
- EjcUSy3TrOQ
|
84
84
|
X-Fb-Rev:
|
85
|
-
- '
|
86
|
-
X-Fb-Debug:
|
87
|
-
- 0AHyhJaZ1gJu34uSXskVij6SnhcmxkXcZKu9/XpS+LMDuOIzqBv3mqh3fU05gzbAF8KrAOSiv8ijRHa/GN4IEQ==
|
88
|
-
Date:
|
89
|
-
- Thu, 20 Oct 2016 02:03:53 GMT
|
90
|
-
Connection:
|
91
|
-
- close
|
92
|
-
Content-Length:
|
93
|
-
- '86'
|
94
|
-
body:
|
95
|
-
encoding: UTF-8
|
96
|
-
string: '{"name":"Web Service Development \u0040 NTHU","privacy":"OPEN","id":"150352985174571"}'
|
97
|
-
http_version:
|
98
|
-
recorded_at: Thu, 20 Oct 2016 02:03:54 GMT
|
99
|
-
- request:
|
100
|
-
method: get
|
101
|
-
uri: https://graph.facebook.com/150352985174571/feed?access_token=<ACCESS_TOKEN_ESCAPED>
|
102
|
-
body:
|
103
|
-
encoding: US-ASCII
|
104
|
-
string: ''
|
105
|
-
headers:
|
106
|
-
Connection:
|
107
|
-
- close
|
108
|
-
Host:
|
109
|
-
- graph.facebook.com
|
110
|
-
User-Agent:
|
111
|
-
- http.rb/2.0.3
|
112
|
-
response:
|
113
|
-
status:
|
114
|
-
code: 200
|
115
|
-
message: OK
|
116
|
-
headers:
|
117
|
-
Access-Control-Allow-Origin:
|
118
|
-
- "*"
|
119
|
-
Etag:
|
120
|
-
- '"0f7634d1bb89fc13e54239e755654bc4293623fc"'
|
121
|
-
Pragma:
|
122
|
-
- no-cache
|
123
|
-
Cache-Control:
|
124
|
-
- private, no-cache, no-store, must-revalidate
|
125
|
-
Facebook-Api-Version:
|
126
|
-
- v2.6
|
127
|
-
Expires:
|
128
|
-
- Sat, 01 Jan 2000 00:00:00 GMT
|
129
|
-
Content-Type:
|
130
|
-
- text/javascript; charset=UTF-8
|
131
|
-
X-Fb-Trace-Id:
|
132
|
-
- GvHboTOPlo4
|
133
|
-
X-Fb-Rev:
|
134
|
-
- '2632900'
|
85
|
+
- '2638327'
|
135
86
|
Vary:
|
136
87
|
- Accept-Encoding
|
137
88
|
X-Fb-Debug:
|
138
|
-
-
|
89
|
+
- FTxzBLzsbYHDrTIgOoJ4DLAErqYuyEGIHKHao0TcNB8/9+TelMIX4Uh7F1E1UhFcBg0uKS71I//EaYaV0f40kw==
|
139
90
|
Date:
|
140
|
-
-
|
91
|
+
- Sun, 23 Oct 2016 23:07:40 GMT
|
141
92
|
Connection:
|
142
93
|
- close
|
143
94
|
body:
|
144
95
|
encoding: UTF-8
|
145
|
-
string: '{"
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
96
|
+
string: '{"id":"150352985174571","name":"Web Service Development \u0040 NTHU","feed":{"data":[{"name":"GitHub
|
97
|
+
Dumps REST Calls for Facebook''s GraphQL - The New Stack","message":"Github''s
|
98
|
+
adoption of GraphQL for APIs, over RESTful services, might be the tipping
|
99
|
+
point that makes GraphQL ubiquitous. From what little exposure I have to it
|
100
|
+
(thanks to YenTing and Yen-Nan at Cardinal Blue), it seems we are taking the
|
101
|
+
complexity and burden of APIs away from API consumers, and putting it squarely
|
102
|
+
at the feet of API providers. That means using APIs is about to become significantly
|
103
|
+
easier (albeit more deeply nested) for everyone! But it also means that creating
|
104
|
+
APIs is about to become significantly harder. Read more about the big shift
|
105
|
+
at Github.","updated_time":"2016-10-20T08:29:06+0000","created_time":"2016-10-20T05:45:32+0000","id":"150352985174571_524070464469486","attachments":{"data":[{"title":"GitHub
|
106
|
+
Dumps REST Calls for Facebook''s GraphQL - The New Stack","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Fthenewstack.io\u00252Fgithub-dumps-rest-graphql-api\u00252F&h=YAQHzMjoy&s=1&enc=AZMpf-S_2VYik6184ukcBdzjF-3PpyLReF5nW05P4Ayx8nbVzyShNMHp81bPli30OusK3C1qiW0BLXTxP_KOWY8r","media":{"image":{"height":720,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQC5HLw3s46cLqn7&w=720&h=720&url=http\u00253A\u00252F\u00252Fthenewstack.io\u00252Fwp-content\u00252Fuploads\u00252F2016\u00252F09\u00252FGHU-GraphQL-Woah.jpg&cfs=1&sx=0&sy=0&sw=2448&sh=2448","width":720}}}]}},{"name":"Taking
|
107
|
+
PHP Seriously","message":"https:\/\/m.facebook.com\/story.php?story_fbid=1098448240203391&id=100001146751327","updated_time":"2016-10-13T18:17:23+0000","created_time":"2016-10-13T17:15:20+0000","id":"150352985174571_521137638096102","attachments":{"data":[{"title":"Taking
|
108
|
+
PHP Seriously","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fslack.engineering\u00252Ftaking-php-seriously-cf7a60065329\u002523.g3w9ecf66&h=sAQE7DLiZ&s=1&enc=AZOjStbZrdh2BTeov3xBLmrDmpSzHrOD1A7augRsyYWm01FXnKPbvMurc18wBo0f2-zE9GgPiW6UZDcJ0qzjKkRf","media":{"image":{"height":669,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQCmbxAdG46sLBUD&w=720&h=720&url=https\u00253A\u00252F\u00252Fd262ilb51hltx0.cloudfront.net\u00252Fmax\u00252F1200\u00252F1\u00252Ax5N8tfTVEmQro2ySxoZtvw.jpeg&cfs=1","width":669}}}]}},{"name":"How
|
109
|
+
To Save The Princess In 8 Programming Languages","updated_time":"2016-10-06T08:39:47+0000","created_time":"2016-10-06T08:28:40+0000","id":"150352985174571_518029841740215","attachments":{"data":[{"title":"How
|
110
|
+
To Save The Princess In 8 Programming Languages","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Ftoggl.com\u00252Fprogramming-princess&h=xAQFOEieu&s=1&enc=AZOb6TELEoRkW6sKZBeOKyx2JjygU8WGx-WHsg0ieCovelJu2j5IrcipmzwNgC1WY22uf4PI6SOLRVW05FC6XQjq","media":{"image":{"height":630,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQDEZQJwFjW82Fzm&w=720&h=720&url=https\u00253A\u00252F\u00252Ftoggl.com\u00252Fimages\u00252Fshare-img\u00252Ffb-share-git-princess.jpg&cfs=1","width":630}}}]}},{"name":"Guess
|
111
|
+
the Programming Language | Tutorialzine","message":"A little quiz to keep
|
112
|
+
you sharp on programming trends.","updated_time":"2016-10-06T06:51:44+0000","created_time":"2016-10-04T02:21:25+0000","id":"150352985174571_517105121832687","attachments":{"data":[{"title":"Guess
|
113
|
+
the Programming Language | Tutorialzine","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Ftutorialzine.com\u00252F2014\u00252F06\u00252Fguess-the-programming-language\u00252F&h=_AQGXcqF0&s=1&enc=AZO8_k2mGlo63xRMItgRxcJ3KXSH1qFZTqEXwGb5AKfsDv8ffCzjTbLQtdVVaJg6KC5XNsmX8y0KweB1-SZOZbQ7","media":{"image":{"height":490,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQB9saA-D40lNQqm&w=720&h=720&url=http\u00253A\u00252F\u00252Fcdn.tutorialzine.com\u00252Fwp-content\u00252Fuploads\u00252F2014\u00252F06\u00252Fguess-the-programming-language.jpg&cfs=1","width":490}}}]}},{"name":"How
|
114
|
+
it feels to learn JavaScript in 2016","updated_time":"2016-10-06T01:18:12+0000","created_time":"2016-10-05T13:47:43+0000","id":"150352985174571_517701838439682","attachments":{"data":[{"title":"How
|
115
|
+
it feels to learn JavaScript in 2016","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fhackernoon.com\u00252Fhow-it-feels-to-learn-javascript-in-2016-d3a717dd577f\u002523.m0lkkfan1&h=lAQF473Xt&s=1&enc=AZMeRE4HRGYgyXchdkhmzDEP8nbaKmeCttfJLL0m0qqUW3t0VSgo2H9qVZTki5Fykd8q8piqYmtbO1hftJ4OCeD-","media":{"image":{"height":720,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQBw5xIxnMhHtpnj&w=720&h=720&url=https\u00253A\u00252F\u00252Fcdn-images-2.medium.com\u00252Fmax\u00252F1200\u00252F1\u00252AraWO3dhM4jMjf9VY-kZzNg.png&cfs=1","width":720}}}]}},{"name":"5
|
116
|
+
emerging programming languages with a bright future","message":"Up and coming
|
117
|
+
languages worth keeping our eyes on. I''m already a huge fan of Crystal and
|
118
|
+
Rust, but the author has convinced me to pay more attention to Kotlin and
|
119
|
+
Elm.","updated_time":"2016-09-22T08:12:35+0000","created_time":"2016-09-21T10:13:58+0000","id":"150352985174571_511894255687107","attachments":{"data":[{"title":"5
|
120
|
+
emerging programming languages with a bright future","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Ftechbeacon.com\u00252F5-emerging-programming-languages-bright-future\u00253Futm_content\u00253Dbuffer300a1\u002526utm_medium\u00253Dsocial\u002526utm_source\u00253Dtwitter.com\u002526utm_campaign\u00253Dbuffer&h=7AQFqoF4w&s=1&enc=AZOcpN1TtkkxLsE26at9n3Pn2lm0mZimFB_Q8lu9uqVfNFM1oybLIFwc5QvyZ2hhsUGO1afi0O2ah7RCWv_dhtMO","media":{"image":{"height":480,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQAxbtCPHht3vWb6&w=720&h=720&url=http\u00253A\u00252F\u00252Ftechbeacon.com\u00252Fsites\u00252Fdefault\u00252Ffiles\u00252Fstyles\u00252Fsocial\u00252Fpublic\u00252Ffield\u00252Fimage\u00252F5_emerging_programming_languages_with_a_bright_future.jpg\u00253Fitok\u00253Dm0nlEinF&cfs=1","width":480}}}]}},{"name":"A
|
121
|
+
whole new Universe","message":"I can''t even wrap my head around all the new
|
122
|
+
features Github just released: code reviews, kanban boards, and much more.","updated_time":"2016-09-19T09:14:51+0000","created_time":"2016-09-15T03:42:48+0000","id":"150352985174571_509461352597064","attachments":{"data":[{"title":"A
|
123
|
+
whole new Universe","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fgithub.com\u00252Funiverse-2016&h=CAQGu0989&s=1&enc=AZPWVEFbBeUjhIpGBCyYpb_-nztFQjF1X4iV0fky0Ny_VL5sCPlAqPdOFdUjucSRJbnu82OpAbwdQEque4I_dtbp","media":{"image":{"height":630,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQBsb70KV75vMJ8B&w=720&h=720&url=https\u00253A\u00252F\u00252Fassets-cdn.github.com\u00252Fimages\u00252Fmodules\u00252Funiverse-2016\u00252Funiverse-open-graph.png&cfs=1","width":630}}}]}},{"name":"Vert.x","message":"http:\/\/vertx.io\/","updated_time":"2016-09-13T20:34:39+0000","created_time":"2016-09-13T20:34:39+0000","id":"150352985174571_508953969314469","attachments":{"data":[{"title":"Vert.x","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Fvertx.io\u00252F&h=SAQEZza3C&s=1&enc=AZM9uG4L8irWmfzpetWja_hs5ozH7uTj3zZZUeTdgPVysOFrJVgq2uRubR2Y0UpP6qsk6_Httno9fGBrW8Xe5_YI","media":{"image":{"height":360,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQC13D8UqDGMX5IF&w=720&h=720&url=http\u00253A\u00252F\u00252Fvertx.io\u00252Fassets\u00252Fuser_logos\u00252Fswisscom.png&cfs=1","width":360}}}]}},{"name":"Codecademy","updated_time":"2016-09-13T02:04:20+0000","created_time":"2016-09-13T02:04:20+0000","id":"150352985174571_508631766013356","attachments":{"data":[{"title":"Timeline
|
124
|
+
Photos","url":"https:\/\/www.facebook.com\/codecademy\/photos\/a.553205214692855.138303.272256069454439\/1387442691269099\/?type=3","media":{"image":{"height":377,"src":"https:\/\/scontent.xx.fbcdn.net\/v\/t1.0-9\/s720x720\/14264951_1387442691269099_7557697962736020966_n.png?oh=1c67604ccd5679d98c72100f943f3863&oe=5891713F","width":720}}}]}},{"name":"Scaling
|
125
|
+
Spinnaker at Netflix \u2014 The Basics","message":"https:\/\/medium.com\/\u0040ajordens\/scaling-spinnaker-at-netflix-part-1-8a5ae51ee6de#.fubo771g2","updated_time":"2016-09-11T09:14:53+0000","created_time":"2016-09-11T09:14:53+0000","id":"150352985174571_507894159420450","attachments":{"data":[{"title":"Scaling
|
126
|
+
Spinnaker at Netflix \u2014 The Basics","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fmedium.com\u00252F\u002540ajordens\u00252Fscaling-spinnaker-at-netflix-part-1-8a5ae51ee6de\u002523.fubo771g2&h=GAQGR1jp_&s=1&enc=AZOsM-rObXq-NZ8IN4zgxduow_zzyJJN8oFA7g0731F2ThqcJz6IFRXvRTzvT6q10wH8_HHvpFh-kdwFO8BPLwbx","media":{"image":{"height":720,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQBS3PgL3uUEU1VC&w=720&h=720&url=https\u00253A\u00252F\u00252Fcdn-images-1.medium.com\u00252Fmax\u00252F1200\u00252F1\u00252AMrL6DHIxxY6CrL9Binpjjg.png&cfs=1","width":720}}}]}},{"name":"Design
|
127
|
+
Stamina Hypothesis","message":"Why (and when) we need architecture.","updated_time":"2016-09-08T03:33:06+0000","created_time":"2015-09-24T11:12:32+0000","id":"150352985174571_390601061149761","attachments":{"data":[{"title":"Design
|
128
|
+
Stamina Hypothesis","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Fmartinfowler.com\u00252Fbliki\u00252FDesignStaminaHypothesis.html&h=MAQEPmidi&s=1&enc=AZMscZ5ByY7Xh6_-P7PLIil52a7ygWPn_25oIQRH9u6B-Nf6LVNY8uxi5yGtOTr-ePAqZNTu9GJ3SfCcbg1CYacr","media":{"image":{"height":329,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQB61p6nJsutcaQ4&w=720&h=720&url=http\u00253A\u00252F\u00252Fmartinfowler.com\u00252Fbliki\u00252Fimages\u00252FdesignStaminaGraph.gif&cfs=1","width":329}}}]}},{"name":"Git
|
129
|
+
2.10 has been released","updated_time":"2016-09-03T06:33:51+0000","created_time":"2016-09-03T05:23:56+0000","id":"150352985174571_504539303089269","attachments":{"data":[{"title":"Git
|
130
|
+
2.10 has been released","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fgithub.com\u00252Fblog\u00252F2242-git-2-10-has-been-released&h=TAQEO82l0&s=1&enc=AZM8UofTAaNObrpYGEdBNrQoZE7QkXsKTTNF87IwQmioNMA3-gswGJWScFDpoZaE2RXEUZ5jT3kXjPIg4I1uqU28","media":{"image":{"height":630,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQAMeAXoLqWgJ6YI&w=720&h=720&url=https\u00253A\u00252F\u00252Fcloud.githubusercontent.com\u00252Fassets\u00252F121322\u00252F16134794\u00252F284be2e6-33d4-11e6-9165-58068a872ec2.png&cfs=1","width":630}}}]}},{"name":"The
|
131
|
+
target=\"_blank\" vulnerability by example","message":"https:\/\/dev.to\/ben\/the-targetblank-vulnerability-by-example","updated_time":"2016-09-02T17:50:31+0000","created_time":"2016-09-01T12:49:45+0000","id":"150352985174571_503746883168511","attachments":{"data":[{"title":"The
|
132
|
+
target=\"_blank\" vulnerability by example","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fdev.to\u00252Fben\u00252Fthe-targetblank-vulnerability-by-example&h=9AQGeBtRp&s=1&enc=AZOTThm23Z6CU5evZqf9H9oQ6pyy78mhqT56HsssWhdcXScQmWlIdSMYz9jV4W0rU3tOEHzzzZrYKGE0_Krq2NoJ","media":{"image":{"height":700,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQCuBI-PnC7cvAsc&w=720&h=720&url=https\u00253A\u00252F\u00252Fres.cloudinary.com\u00252Fpracticaldev\u00252Fimage\u00252Ffetch\u00252Fs--AGTf6Osi--\u00252Fc_imagga_scale\u00252Cf_auto\u00252Cfl_progressive\u00252Ch_700\u00252Cq_auto\u00252Cw_1480\u00252Fhttps\u00253A\u00252F\u00252Fi.vimeocdn.com\u00252Fvideo\u00252F570148251_1280x720.jpg&cfs=1","width":700}}}]}},{"name":"Katacoda
|
133
|
+
- Interactive Learning Platform for Software Engineers","message":"just discovered
|
134
|
+
this .... looks nice","updated_time":"2016-08-26T02:34:28+0000","created_time":"2016-08-26T02:34:28+0000","id":"150352985174571_500972406779292","attachments":{"data":[{"title":"Katacoda
|
135
|
+
- Interactive Learning Platform for Software Engineers","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fwww.katacoda.com\u00252F&h=fAQFrjrYn&s=1&enc=AZNJH9mmcIw2lNQqHm6ROIQ5NTqWeynJf1Y2EEpwrbGh7FgVQmquo86l1ghD_32IxTUnxAfotA6FsK6Bc6sGN8u7","media":{"image":{"height":720,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQBt33FvO3-PQ4vI&w=720&h=720&url=https\u00253A\u00252F\u00252Fwww.katacoda.com\u00252Fimages\u00252Fbackgrounds\u00252Fpeople-working.jpg&cfs=1","width":720}}}]}},{"name":"Let''s
|
136
|
+
Encrypt - Wikipedia, the free encyclopedia","message":"No reason not to use
|
137
|
+
https for your web services: apart from the good old https:\/\/www.startssl.com,
|
156
138
|
now we have https:\/\/letsencrypt.org which makes getting, installing and
|
157
139
|
keeping a cert up to date easier. Plus its backed by many big guns and its
|
158
140
|
FREE! Here is the wikipedia article about it: https:\/\/en.m.wikipedia.org\/wiki\/Let\u002527s_Encrypt.
|
159
141
|
Just remember its pretty new and do read about how the certs are signed and
|
160
|
-
accepted by browser\/clients.","updated_time":"2016-08-22T00:55:29+0000","id":"150352985174571_499005640309302"
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
142
|
+
accepted by browser\/clients.","updated_time":"2016-08-22T00:55:29+0000","created_time":"2016-08-21T09:50:36+0000","id":"150352985174571_499005640309302","attachments":{"data":[{"title":"Let''s
|
143
|
+
Encrypt - Wikipedia, the free encyclopedia","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fen.m.wikipedia.org\u00252Fwiki\u00252FLet\u00252527s_Encrypt&h=hAQE2ieDs&s=1&enc=AZPtbkBwHFr5EYupqFYgk8WW05jGpS-4Rk4ajNHE9WOvW5soYK2M4TBVGfPEnHB7Vy-LWopBz9IldjsaO8EfOXWu","media":{"image":{"height":131,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQApCjwHGpTUJRSa&w=720&h=720&url=https\u00253A\u00252F\u00252Fupload.wikimedia.org\u00252Fwikipedia\u00252Fcommons\u00252Fthumb\u00252Fb\u00252Fbb\u00252FLetsencrypt_screenshot_2_domain_choice.png\u00252F220px-Letsencrypt_screenshot_2_domain_choice.png&cfs=1","width":131}}}]}},{"name":"Google''s
|
144
|
+
QUIC protocol: moving the web from TCP to UDP","message":"A speedier web?
|
145
|
+
Yes thank you!\n\n","updated_time":"2016-08-02T04:40:01+0000","created_time":"2016-08-01T13:53:37+0000","id":"150352985174571_491254161084450","attachments":{"data":[{"title":"Google''s
|
146
|
+
QUIC protocol: moving the web from TCP to UDP","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fma.ttias.be\u00252Fgoogles-quic-protocol-moving-web-tcp-udp\u00252F&h=wAQGbV1yc&s=1&enc=AZMZ1c0foNJLon4qufED0wOuZ4uAIS6nvl61er-e0QokB00-ixZ3a2ixHFTIQrlSIMjnAVLVQw-XqXGXADxU9qBC","media":{"image":{"height":720,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQAAP49rj-fnvioY&w=720&h=720&url=https\u00253A\u00252F\u00252Fma.ttias.be\u00252Fwp-content\u00252Fuploads\u00252F2016\u00252F07\u00252Fquic_parking_lot_problem.png&cfs=1","width":720}}}]}},{"name":"Introducing
|
147
|
+
GitKraken Pro\u2014launch fundraiser | Axosoft","message":"https:\/\/blog.axosoft.com\/2016\/07\/28\/introducing-gitkraken-pro\/","updated_time":"2016-07-30T17:51:41+0000","created_time":"2016-07-30T17:51:41+0000","id":"150352985174571_490544944488705","attachments":{"data":[{"title":"Introducing
|
148
|
+
GitKraken Pro\u2014launch fundraiser | Axosoft","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fblog.axosoft.com\u00252F2016\u00252F07\u00252F28\u00252Fintroducing-gitkraken-pro\u00252F&h=1AQEXGyv7&s=1&enc=AZNNl2EkIyn5n2lfnf_BpaQkPLmDCGBRO5mgoV7Tx6tL_c4M90rwnank1dYuToQqgf6HqdJA6IIFOXCXtk9OoNyv","media":{"image":{"height":720,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQCiRe3ytesqyg6K&w=720&h=720&url=https\u00253A\u00252F\u00252Fblog.axosoft.com\u00252Fwp-content\u00252Fuploads\u00252F2016\u00252F07\u00252FTeaming-Up-v2-wide.png&cfs=1&l","width":720}}}]}},{"name":"Create
|
149
|
+
Apps with No Configuration | React","message":"For those using React, although
|
150
|
+
optional webpack loaders (such as sass) still need to be added!","updated_time":"2016-07-23T10:41:04+0000","created_time":"2016-07-23T09:55:25+0000","id":"150352985174571_487752758101257","attachments":{"data":[{"title":"Create
|
151
|
+
Apps with No Configuration | React","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Ffacebook.github.io\u00252Freact\u00252Fblog\u00252F2016\u00252F07\u00252F22\u00252Fcreate-apps-with-no-configuration.html&h=0AQGBENqH&s=1&enc=AZPcK7aypFrQ2wkY7ZJPeUEt8Sr-ejtIl3lP1GoENK2vt-gDoqdVKAyJ86jXbe5F_PajWzW_99NM8780c0D28Pl1","media":{"image":{"height":400,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQC26d6oRyFdqvxX&w=720&h=720&url=https\u00253A\u00252F\u00252Ffacebook.github.io\u00252Freact\u00252Fimg\u00252Flogo_og.png&cfs=1","width":400}}}]}},{"name":"introduction\u00b6
|
152
|
+
Lettuce is an extremely useful and charming tool for BDD (Behavior Driven...
|
153
|
+
-...","message":"Test scenarios that anyone can make sense of","updated_time":"2016-07-22T11:46:59+0000","created_time":"2016-07-22T06:28:02+0000","id":"150352985174571_487315358144997","attachments":{"data":[{"title":"introduction\u00b6
|
154
|
+
Lettuce is an extremely useful and charming tool for BDD (Behavior Driven...
|
155
|
+
-...","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Flettuce.it\u00252Ftutorial\u00252Fsimple.html\u002523tutorial-simple&h=LAQHpk3Al&s=1&enc=AZNP93JFnpxKS_Cc826K5YU5ml-MI7t6LpmRKO_vcSCqmUDQCk8D8X0tZB7Ye3vsLavW_jBg4uVLz-IiPo5XKoj1","media":{"image":{"height":687,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQDL7gIjkOiwMbE7&w=720&h=720&url=http\u00253A\u00252F\u00252Flettuce.it\u00252F_images\u00252Fscreenshot5.png&cfs=1","width":687}}}]}},{"message":"Check
|
165
156
|
out: https:\/\/www.websequencediagrams.com \u2014 fun and friendly way to
|
166
157
|
create sequence diagrams for web and mobile activities. I usually end up drawing
|
167
158
|
these on paper or on the board. I think it will be quite engaging to play
|
168
|
-
with this live!","updated_time":"2016-07-21T02:25:49+0000","id":"150352985174571_486566974886502"
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
159
|
+
with this live!","updated_time":"2016-07-21T02:25:49+0000","created_time":"2016-07-20T03:59:51+0000","id":"150352985174571_486566974886502","attachments":{"data":[{"url":"https:\/\/www.facebook.com\/photo.php?fbid=1058362510919499&set=gm.486566974886502&type=3","media":{"image":{"height":392,"src":"https:\/\/scontent.xx.fbcdn.net\/v\/t1.0-9\/s720x720\/13680904_1058362510919499_8542835077177246391_n.jpg?oh=e23aa643f32eb9665e3c8ba8a43c01ca&oe=58A0A9E7","width":720}}}]}},{"name":"Dropbox
|
160
|
+
open-sources Lepton, a compression algorithm that cuts JPEG file size by 22\u0025","message":"http:\/\/venturebeat.com\/2016\/07\/14\/dropbox-open-sources-lepton-a-compression-algorithm-that-cuts-jpeg-file-size-by-22\/","updated_time":"2016-07-15T05:52:51+0000","created_time":"2016-07-14T19:37:54+0000","id":"150352985174571_484513371758529","attachments":{"data":[{"title":"Dropbox
|
161
|
+
open-sources Lepton, a compression algorithm that cuts JPEG file size by 22\u0025","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Fventurebeat.com\u00252F2016\u00252F07\u00252F14\u00252Fdropbox-open-sources-lepton-a-compression-algorithm-that-cuts-jpeg-file-size-by-22\u00252F&h=cAQHtSyRz&s=1&enc=AZNEjRIgXar4FOwLc6uGxtwGMIB0XjFWvPuVBR8hMHcvlRD7xqtaftAnAiBIYyBjG_SQJMvl0aG3LNoiR5MGwlei","media":{"image":{"height":585,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQCBxul8ygkf06Je&w=720&h=720&url=https\u00253A\u00252F\u00252Fventurebeat.com\u00252Fwp-content\u00252Fuploads\u00252F2015\u00252F11\u00252FDropbox-Open-outside-Novet-780x585.jpg&cfs=1","width":585}}}]}},{"name":"Serverless
|
162
|
+
Architectures","message":"\"Serverless\" is the new sensation in service architecture,
|
163
|
+
and it integrates the recent trends of microservices and reactive (message-driven)
|
164
|
+
architectures. We will play with some of these concepts in our SOA class this
|
165
|
+
coming semester. Take a peek at what''s brewing.\nhttp:\/\/martinfowler.com\/articles\/serverless.html","updated_time":"2016-07-14T19:01:17+0000","created_time":"2016-07-14T12:16:33+0000","id":"150352985174571_484366188439914","attachments":{"data":[{"title":"Serverless
|
166
|
+
Architectures","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Fmartinfowler.com\u00252Farticles\u00252Fserverless.html\u002523benefits&h=jAQG7K83t&s=1&enc=AZPvJmESyk6TsdlPKkhoU6H_1mt2rUP9HedbzHV7Gg-aYveD1CNAA8ten1gSOHt0E76V7S0fPlmL1HprKkkRwejf","media":{"image":{"height":300,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQCGBUsGoj1TcRRD&w=720&h=720&url=http\u00253A\u00252F\u00252Fmartinfowler.com\u00252Farticles\u00252Fserverless\u00252Fsps.png&cfs=1","width":300}}}]}},{"name":"Pokemon
|
167
|
+
Go Is Driving Insane Amounts of Sales at Small Local Businesses. Here''s How
|
168
|
+
It Works","message":"I''m shocked at how Pok\u00e9mon Go is taking over our
|
169
|
+
streets (very soon in TW, right?). And now its having a major effect on local
|
170
|
+
businesses as well. Great example of how an online service can transform offline
|
171
|
+
ones.","updated_time":"2016-07-13T09:36:32+0000","created_time":"2016-07-13T02:42:08+0000","id":"150352985174571_483847351825131","attachments":{"data":[{"title":"Pokemon
|
172
|
+
Go Is Driving Insane Amounts of Sales at Small Local Businesses. Here''s How
|
173
|
+
It Works","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Fwww.inc.com\u00252Fwalter-chen\u00252Fpok-mon-go-is-driving-insane-amounts-of-sales-at-small-local-businesses-here-s-h.html&h=0AQGBENqH&s=1&enc=AZO7_mU6Ti2CC6_W48DaDb8knM5duXfTPtoGETe_3RFvllu93NGZmKeJ-9XQHVXHLMtnZlOcffahPEZxSFk3_fFN","media":{"image":{"height":450,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQCDr9LKzFIQfJFh&w=720&h=720&url=http\u00253A\u00252F\u00252Fwww.incimages.com\u00252Fuploaded_files\u00252Fimage\u00252F970x450\u00252FPokemon_Heroes_2003_03-cc_100058.jpg&cfs=1","width":450}}}]}},{"name":"SOA
|
174
|
+
Syllabus","message":"The syllabus for next semester''s \"Service Oriented
|
175
|
+
Architecture\" class is now online! Take a look and share it with your coder
|
176
|
+
friends who are dreaming of their first startup :)","updated_time":"2016-07-04T11:18:26+0000","created_time":"2016-07-04T06:48:44+0000","id":"150352985174571_480686308807902","attachments":{"data":[{"title":"SOA
|
177
|
+
Syllabus","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Fbit.ly\u00252Fsoa-syllabus&h=8AQEzZIIe&s=1&enc=AZPMvD8DtN0P1Rqm_-VvTO9JM3y-910GomHPeoH39tz9vi2IOh22AeCGVAngi-7vQwh4ZW5klcWpf-hmjxwXAxFm"}]}},{"name":"Mongolia
|
178
|
+
is changing all its addresses to three-word phrases","message":"A plucky little
|
179
|
+
online startup is changing how we address and locate geographic places. The
|
180
|
+
story below shows how countries and international organizations are adopting
|
181
|
+
this method. Take a look at https:\/\/what3words.com to find your own three
|
182
|
+
words :)","updated_time":"2016-06-26T05:04:58+0000","created_time":"2016-06-15T07:55:13+0000","id":"150352985174571_474135702796296","attachments":{"data":[{"title":"Mongolia
|
183
|
+
is changing all its addresses to three-word phrases","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Fqz.com\u00252F705273\u00252Fmongolia-is-changing-all-its-addresses-to-three-word-phrases\u00252F&h=TAQEO82l0&s=1&enc=AZMmmMIarpg9VWSz45du2gFvh6N6XtzG655ZYGCtUlsTU__-1mUV9POKFM6dS01pXOov2WKAun2szRbtSWzNC6rV","media":{"image":{"height":720,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQBCzb8yBioJKKug&w=720&h=720&url=https\u00253A\u00252F\u00252Fqzprod.files.wordpress.com\u00252F2016\u00252F06\u00252Fjune-13-rtx12cmt-e1465820880769.jpg\u00253Fquality\u00253D80\u002526strip\u00253Dall\u002526w\u00253D1600&cfs=1","width":720}}}]}}],"paging":{"previous":"https:\/\/graph.facebook.com\/v2.6\/150352985174571\/feed?fields=name,message,updated_time,created_time,attachments\u00257Btitle,url,media\u00257D&since=1476952146&access_token=<ACCESS_TOKEN>&limit=25&__paging_token=enc_AdDRT3FRqddWHdExcEnxBuffZCipxhESZBM93TZAL1VTlcfHQr3aWV1rq23kG3uiPxcZCwvQeCiZC8fEJvrhCQFCo6fyMk1u9HaT3EXZBICgj897coSwZDZD&__previous=1","next":"https:\/\/graph.facebook.com\/v2.6\/150352985174571\/feed?fields=name,message,updated_time,created_time,attachments\u00257Btitle,url,media\u00257D&access_token=<ACCESS_TOKEN>&limit=25&until=1466917498&__paging_token=enc_AdBmZAsUzYqHLvymmCwfLv8K48KqrS6LGOHvgiJYkb7Brd7RrwyTZA8gMCDGPWYdza3XzU34YBZB7Xn0iN7WcT9cLhvOIFzhb8ZCDP8F35OnaNwZBtQZDZD"}}}'
|
183
184
|
http_version:
|
184
|
-
recorded_at:
|
185
|
+
recorded_at: Sun, 23 Oct 2016 23:07:42 GMT
|
185
186
|
- request:
|
186
187
|
method: get
|
187
|
-
uri: https://graph.facebook.com/150352985174571_517105121832687?access_token=<ACCESS_TOKEN_ESCAPED
|
188
|
+
uri: https://graph.facebook.com/150352985174571_517105121832687?access_token=<ACCESS_TOKEN_ESCAPED>&fields=name,message,updated_time,created_time,attachments%7Btitle,description,url,media%7D
|
188
189
|
body:
|
189
190
|
encoding: US-ASCII
|
190
191
|
string: ''
|
@@ -203,7 +204,7 @@ http_interactions:
|
|
203
204
|
Access-Control-Allow-Origin:
|
204
205
|
- "*"
|
205
206
|
Etag:
|
206
|
-
- '"
|
207
|
+
- '"12c40e1438cb186785b25ed66d005b8d3328fb7b"'
|
207
208
|
Pragma:
|
208
209
|
- no-cache
|
209
210
|
Cache-Control:
|
@@ -215,26 +216,29 @@ http_interactions:
|
|
215
216
|
Content-Type:
|
216
217
|
- text/javascript; charset=UTF-8
|
217
218
|
X-Fb-Trace-Id:
|
218
|
-
-
|
219
|
+
- A1KgW907PvI
|
219
220
|
X-Fb-Rev:
|
220
|
-
- '
|
221
|
+
- '2638327'
|
221
222
|
Vary:
|
222
223
|
- Accept-Encoding
|
223
224
|
X-Fb-Debug:
|
224
|
-
-
|
225
|
+
- pjSsBhpJdP8iXrDD1ArO6IuMqKrBKBTM2hUKvusLa4cO4BP1a9ShszwQJ9utPQpBUfqFqXRQmAm1CF9pUnAGqg==
|
225
226
|
Date:
|
226
|
-
-
|
227
|
+
- Sun, 23 Oct 2016 23:07:41 GMT
|
227
228
|
Connection:
|
228
229
|
- close
|
229
230
|
body:
|
230
231
|
encoding: UTF-8
|
231
|
-
string: '{"
|
232
|
-
to keep you sharp on programming trends.","
|
232
|
+
string: '{"name":"Guess the Programming Language | Tutorialzine","message":"A
|
233
|
+
little quiz to keep you sharp on programming trends.","updated_time":"2016-10-06T06:51:44+0000","created_time":"2016-10-04T02:21:25+0000","attachments":{"data":[{"title":"Guess
|
234
|
+
the Programming Language | Tutorialzine","description":"Can you tell Java
|
235
|
+
from JavaScript? Awesome! So you are ready to take our ultimate programming
|
236
|
+
challenge.","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Ftutorialzine.com\u00252F2014\u00252F06\u00252Fguess-the-programming-language\u00252F&h=EAQG17mA8&s=1&enc=AZMbCMgTVaXlmPRdfXOtJgfx4HDjV6QJli4PSM5rQUZBi4jJa5JSzWOdQ_XO8YT4Ut4ZvtJu1oyD5IpfaAjPxEbN","media":{"image":{"height":490,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQB9saA-D40lNQqm&w=720&h=720&url=http\u00253A\u00252F\u00252Fcdn.tutorialzine.com\u00252Fwp-content\u00252Fuploads\u00252F2014\u00252F06\u00252Fguess-the-programming-language.jpg&cfs=1","width":490}}}]},"id":"150352985174571_517105121832687"}'
|
233
237
|
http_version:
|
234
|
-
recorded_at:
|
238
|
+
recorded_at: Sun, 23 Oct 2016 23:07:42 GMT
|
235
239
|
- request:
|
236
240
|
method: get
|
237
|
-
uri: https://graph.facebook.com/
|
241
|
+
uri: https://graph.facebook.com/150352985174571?access_token=<ACCESS_TOKEN_ESCAPED>&fields=id,name,feed%7Bname,message,updated_time,created_time,attachments%7Btitle,description,url,media%7D%7D
|
238
242
|
body:
|
239
243
|
encoding: US-ASCII
|
240
244
|
string: ''
|
@@ -253,7 +257,7 @@ http_interactions:
|
|
253
257
|
Access-Control-Allow-Origin:
|
254
258
|
- "*"
|
255
259
|
Etag:
|
256
|
-
- '"
|
260
|
+
- '"c58790af4ab167d092653e0464c0d18d4dd89bfc"'
|
257
261
|
Pragma:
|
258
262
|
- no-cache
|
259
263
|
Cache-Control:
|
@@ -265,22 +269,162 @@ http_interactions:
|
|
265
269
|
Content-Type:
|
266
270
|
- text/javascript; charset=UTF-8
|
267
271
|
X-Fb-Trace-Id:
|
268
|
-
-
|
272
|
+
- FZ5Ru+ZtnrN
|
269
273
|
X-Fb-Rev:
|
270
|
-
- '
|
274
|
+
- '2645472'
|
271
275
|
Vary:
|
272
276
|
- Accept-Encoding
|
273
277
|
X-Fb-Debug:
|
274
|
-
-
|
278
|
+
- kibcAx4afUXGvnHzx5xF+mXlRXVPDofCe6w06LeU2QySJkvg1LM5HwFPybrgYKEwiwE3ndWa7Bq2aKfRTRgGwg==
|
275
279
|
Date:
|
276
|
-
-
|
280
|
+
- Wed, 26 Oct 2016 16:55:01 GMT
|
277
281
|
Connection:
|
278
282
|
- close
|
279
283
|
body:
|
280
284
|
encoding: UTF-8
|
281
|
-
string: '{"
|
282
|
-
|
283
|
-
|
285
|
+
string: '{"id":"150352985174571","name":"Web Service Development \u0040 NTHU","feed":{"data":[{"name":"GitHub
|
286
|
+
Dumps REST Calls for Facebook''s GraphQL - The New Stack","message":"Github''s
|
287
|
+
adoption of GraphQL for APIs, over RESTful services, might be the tipping
|
288
|
+
point that makes GraphQL ubiquitous. From what little exposure I have to it
|
289
|
+
(thanks to YenTing and Yen-Nan at Cardinal Blue), it seems we are taking the
|
290
|
+
complexity and burden of APIs away from API consumers, and putting it squarely
|
291
|
+
at the feet of API providers. That means using APIs is about to become significantly
|
292
|
+
easier (albeit more deeply nested) for everyone! But it also means that creating
|
293
|
+
APIs is about to become significantly harder. Read more about the big shift
|
294
|
+
at Github.","updated_time":"2016-10-20T08:29:06+0000","created_time":"2016-10-20T05:45:32+0000","id":"150352985174571_524070464469486","attachments":{"data":[{"title":"GitHub
|
295
|
+
Dumps REST Calls for Facebook''s GraphQL - The New Stack","description":"Hoping
|
296
|
+
to streamline the remote querying services of its site, GitHub is moving its
|
297
|
+
API (application programming interface) from REST calls to Facebook\u2019s
|
298
|
+
GraphQL API. In the company\u2019s recent user conference GitHub Universe,
|
299
|
+
Kyle Daigle, GitHub platform engineering manager, explained that the company...","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Fthenewstack.io\u00252Fgithub-dumps-rest-graphql-api\u00252F&h=BAQEQpLDV&s=1&enc=AZMuArWJ2KbXcSfRLOLzlCxKphl_vQiF53WL06dX7ibSzpbcnv7ZFv0F5oWb3es83oDIZlhZIdep6q9x7QtH0RHC","media":{"image":{"height":720,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQC5HLw3s46cLqn7&w=720&h=720&url=http\u00253A\u00252F\u00252Fthenewstack.io\u00252Fwp-content\u00252Fuploads\u00252F2016\u00252F09\u00252FGHU-GraphQL-Woah.jpg&cfs=1&sx=0&sy=0&sw=2448&sh=2448","width":720}}}]}},{"name":"Taking
|
300
|
+
PHP Seriously","message":"https:\/\/m.facebook.com\/story.php?story_fbid=1098448240203391&id=100001146751327","updated_time":"2016-10-13T18:17:23+0000","created_time":"2016-10-13T17:15:20+0000","id":"150352985174571_521137638096102","attachments":{"data":[{"title":"Taking
|
301
|
+
PHP Seriously","description":"by Keith Adams, Slack Engineering","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fslack.engineering\u00252Ftaking-php-seriously-cf7a60065329\u002523.g3w9ecf66&h=iAQHfhNKM&s=1&enc=AZM86DcXm5yXd89ntvD7fgR76vW9E2_kSIUkmhk0VInOMk4wK27Dyf7xy4a6Zr6xW4NK33_piBLoGBbEGayZSN4i","media":{"image":{"height":669,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQCmbxAdG46sLBUD&w=720&h=720&url=https\u00253A\u00252F\u00252Fd262ilb51hltx0.cloudfront.net\u00252Fmax\u00252F1200\u00252F1\u00252Ax5N8tfTVEmQro2ySxoZtvw.jpeg&cfs=1","width":669}}}]}},{"name":"How
|
302
|
+
To Save The Princess In 8 Programming Languages","updated_time":"2016-10-06T08:39:47+0000","created_time":"2016-10-06T08:28:40+0000","id":"150352985174571_518029841740215","attachments":{"data":[{"title":"How
|
303
|
+
To Save The Princess In 8 Programming Languages","description":"Programming
|
304
|
+
sucks. This fairytale comic shows the different ways in which programming
|
305
|
+
languages could fail you in the fantasy kingdom.","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Ftoggl.com\u00252Fprogramming-princess&h=xAQHF7IZn&s=1&enc=AZPT2sBsY0_DCenaNCG_BsPV45iIqV-JSMdaenUQX9sLpkaCZUrI8bYCB_WCP9DfKd5pyT8G_Eo8MqfFVVixpLOy","media":{"image":{"height":630,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQDEZQJwFjW82Fzm&w=720&h=720&url=https\u00253A\u00252F\u00252Ftoggl.com\u00252Fimages\u00252Fshare-img\u00252Ffb-share-git-princess.jpg&cfs=1","width":630}}}]}},{"name":"Guess
|
306
|
+
the Programming Language | Tutorialzine","message":"A little quiz to keep
|
307
|
+
you sharp on programming trends.","updated_time":"2016-10-06T06:51:44+0000","created_time":"2016-10-04T02:21:25+0000","id":"150352985174571_517105121832687","attachments":{"data":[{"title":"Guess
|
308
|
+
the Programming Language | Tutorialzine","description":"Can you tell Java
|
309
|
+
from JavaScript? Awesome! So you are ready to take our ultimate programming
|
310
|
+
challenge.","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Ftutorialzine.com\u00252F2014\u00252F06\u00252Fguess-the-programming-language\u00252F&h=LAQEkOXZt&s=1&enc=AZMwy0_l76RdgXTvZYCA_-LDh6wwKyQm_HeESA58uK3dKtL1ETBCbO-JxKnW_52pBV5hPL2FST_QAlnc9eJGTTl1","media":{"image":{"height":490,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQB9saA-D40lNQqm&w=720&h=720&url=http\u00253A\u00252F\u00252Fcdn.tutorialzine.com\u00252Fwp-content\u00252Fuploads\u00252F2014\u00252F06\u00252Fguess-the-programming-language.jpg&cfs=1","width":490}}}]}},{"name":"How
|
311
|
+
it feels to learn JavaScript in 2016","updated_time":"2016-10-06T01:18:12+0000","created_time":"2016-10-05T13:47:43+0000","id":"150352985174571_517701838439682","attachments":{"data":[{"title":"How
|
312
|
+
it feels to learn JavaScript in 2016","description":"Edit: Thanks for pointing
|
313
|
+
typos and mistakes, I\u2019ll update the article as noted. Discussion in HackerNews
|
314
|
+
and Reddit.","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fhackernoon.com\u00252Fhow-it-feels-to-learn-javascript-in-2016-d3a717dd577f\u002523.m0lkkfan1&h=QAQEDlt5e&s=1&enc=AZNZnAvj_3Bk3oJBTr7wncI4YR8UhkRSoZ6HTh-bmZxJx6hJRqXSMVKzrx34z8Oya5XWUXoPFbgEsrgL65--5HjH","media":{"image":{"height":720,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQBw5xIxnMhHtpnj&w=720&h=720&url=https\u00253A\u00252F\u00252Fcdn-images-2.medium.com\u00252Fmax\u00252F1200\u00252F1\u00252AraWO3dhM4jMjf9VY-kZzNg.png&cfs=1","width":720}}}]}},{"name":"5
|
315
|
+
emerging programming languages with a bright future","message":"Up and coming
|
316
|
+
languages worth keeping our eyes on. I''m already a huge fan of Crystal and
|
317
|
+
Rust, but the author has convinced me to pay more attention to Kotlin and
|
318
|
+
Elm.","updated_time":"2016-09-22T08:12:35+0000","created_time":"2016-09-21T10:13:58+0000","id":"150352985174571_511894255687107","attachments":{"data":[{"title":"5
|
319
|
+
emerging programming languages with a bright future","description":"Get the
|
320
|
+
elevator pitch for five of the most promising languages (some of them you
|
321
|
+
probably haven''t heard of before) that have the potential to grow...","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Ftechbeacon.com\u00252F5-emerging-programming-languages-bright-future\u00253Futm_content\u00253Dbuffer300a1\u002526utm_medium\u00253Dsocial\u002526utm_source\u00253Dtwitter.com\u002526utm_campaign\u00253Dbuffer&h=uAQFyfQhv&s=1&enc=AZPPipsXORfRYPLey-fYNR2-DtHJyKFaX3lKEaDXueH0xC2gj4KC4thpju0QmHEIsRNuSRJKhU54j7OdidNPY7gt","media":{"image":{"height":480,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQAxbtCPHht3vWb6&w=720&h=720&url=http\u00253A\u00252F\u00252Ftechbeacon.com\u00252Fsites\u00252Fdefault\u00252Ffiles\u00252Fstyles\u00252Fsocial\u00252Fpublic\u00252Ffield\u00252Fimage\u00252F5_emerging_programming_languages_with_a_bright_future.jpg\u00253Fitok\u00253Dm0nlEinF&cfs=1","width":480}}}]}},{"name":"A
|
322
|
+
whole new Universe","message":"I can''t even wrap my head around all the new
|
323
|
+
features Github just released: code reviews, kanban boards, and much more.","updated_time":"2016-09-19T09:14:51+0000","created_time":"2016-09-15T03:42:48+0000","id":"150352985174571_509461352597064","attachments":{"data":[{"title":"A
|
324
|
+
whole new Universe","description":"Learn about the exciting features and announcements
|
325
|
+
revealed at this year\u2019s annual GitHub Universe conference at historic
|
326
|
+
Pier 70 in San Francisco.","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fgithub.com\u00252Funiverse-2016&h=tAQFB9sTO&s=1&enc=AZOBVuVkCbishkcMftzb_1w0o11p2yWlgRq0ymgoobnIQ7LBSEhyw0ZPOGUGtTMeP4ckJI8au40LE_wg2mfTEpJM","media":{"image":{"height":630,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQBsb70KV75vMJ8B&w=720&h=720&url=https\u00253A\u00252F\u00252Fassets-cdn.github.com\u00252Fimages\u00252Fmodules\u00252Funiverse-2016\u00252Funiverse-open-graph.png&cfs=1","width":630}}}]}},{"name":"Vert.x","message":"http:\/\/vertx.io\/","updated_time":"2016-09-13T20:34:39+0000","created_time":"2016-09-13T20:34:39+0000","id":"150352985174571_508953969314469","attachments":{"data":[{"title":"Vert.x","description":"Vert.x
|
327
|
+
is a tool-kit for building reactive applications on the JVM.","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Fvertx.io\u00252F&h=NAQG9A1a2&s=1&enc=AZNMqUZEGBqZsKGU8Mvb47om6xOazFfoiGZ6SG5mM2w4WUcCRAz_Xoc4X297eb9cPGZOOUAlODF1vjNHvRFtk7VP","media":{"image":{"height":360,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQC13D8UqDGMX5IF&w=720&h=720&url=http\u00253A\u00252F\u00252Fvertx.io\u00252Fassets\u00252Fuser_logos\u00252Fswisscom.png&cfs=1","width":360}}}]}},{"name":"Codecademy","updated_time":"2016-09-13T02:04:20+0000","created_time":"2016-09-13T02:04:20+0000","id":"150352985174571_508631766013356","attachments":{"data":[{"title":"Timeline
|
328
|
+
Photos","description":"Are you a Javascript guru? Then you should check out
|
329
|
+
our course in React.js!\n\nReact enables websites to display complex animations,
|
330
|
+
large volumes of data, or other memory-heavy tasks without slowing down. At
|
331
|
+
the end of the course, you\u2019ll know how to build sophisticated React applications.
|
332
|
+
Check it out!\n\nhttp:\/\/codecademy.io\/YRFS3047CDf","url":"https:\/\/www.facebook.com\/codecademy\/photos\/a.553205214692855.138303.272256069454439\/1387442691269099\/?type=3","media":{"image":{"height":377,"src":"https:\/\/scontent.xx.fbcdn.net\/v\/t1.0-9\/s720x720\/14264951_1387442691269099_7557697962736020966_n.png?oh=1c67604ccd5679d98c72100f943f3863&oe=5891713F","width":720}}}]}},{"name":"Scaling
|
333
|
+
Spinnaker at Netflix \u2014 The Basics","message":"https:\/\/medium.com\/\u0040ajordens\/scaling-spinnaker-at-netflix-part-1-8a5ae51ee6de#.fubo771g2","updated_time":"2016-09-11T09:14:53+0000","created_time":"2016-09-11T09:14:53+0000","id":"150352985174571_507894159420450","attachments":{"data":[{"title":"Scaling
|
334
|
+
Spinnaker at Netflix \u2014 The Basics","description":"The Backstory","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fmedium.com\u00252F\u002540ajordens\u00252Fscaling-spinnaker-at-netflix-part-1-8a5ae51ee6de\u002523.fubo771g2&h=JAQFMAksP&s=1&enc=AZN8cMfGS70kFQMD1hLWtUjhjw8HlIyKOiVj7cS2uhzClW0FHaHPeLE27ZGsaqZweHyENAIoSFtv1rn50F8ypOZn","media":{"image":{"height":720,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQBS3PgL3uUEU1VC&w=720&h=720&url=https\u00253A\u00252F\u00252Fcdn-images-1.medium.com\u00252Fmax\u00252F1200\u00252F1\u00252AMrL6DHIxxY6CrL9Binpjjg.png&cfs=1","width":720}}}]}},{"name":"Design
|
335
|
+
Stamina Hypothesis","message":"Why (and when) we need architecture.","updated_time":"2016-09-08T03:33:06+0000","created_time":"2015-09-24T11:12:32+0000","id":"150352985174571_390601061149761","attachments":{"data":[{"title":"Design
|
336
|
+
Stamina Hypothesis","description":"The value of good software design is economic:
|
337
|
+
you can continue to add new functionality quickly even as the code-base grows
|
338
|
+
in size.","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Fmartinfowler.com\u00252Fbliki\u00252FDesignStaminaHypothesis.html&h=0AQG-z_xt&s=1&enc=AZNUmjnZMfKYk--re8eXShm4XcF7MfNUMzhjWWgNxNhWj5nsnGYKiDkGYgy_x3xAeqV4EzzJ1d54Ncr2hrAp2yyB","media":{"image":{"height":329,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQB61p6nJsutcaQ4&w=720&h=720&url=http\u00253A\u00252F\u00252Fmartinfowler.com\u00252Fbliki\u00252Fimages\u00252FdesignStaminaGraph.gif&cfs=1","width":329}}}]}},{"name":"Git
|
339
|
+
2.10 has been released","updated_time":"2016-09-03T06:33:51+0000","created_time":"2016-09-03T05:23:56+0000","id":"150352985174571_504539303089269","attachments":{"data":[{"title":"Git
|
340
|
+
2.10 has been released","description":"The open source Git project has just
|
341
|
+
released Git 2.10.0, with features and bugfixes from over 70 contributors.
|
342
|
+
Here''s our look at some of the most interesting new features: Progress reporting
|
343
|
+
for...","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fgithub.com\u00252Fblog\u00252F2242-git-2-10-has-been-released&h=mAQEUdhVr&s=1&enc=AZM2Nlce1FdCxZqMA9lcNbLvsiBOHCNhPbcAs_RPg-RJLTT8RC6yaEIIkJiR2HeBA9hKfT1uHYseL9UeDGJbDVgw","media":{"image":{"height":630,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQAMeAXoLqWgJ6YI&w=720&h=720&url=https\u00253A\u00252F\u00252Fcloud.githubusercontent.com\u00252Fassets\u00252F121322\u00252F16134794\u00252F284be2e6-33d4-11e6-9165-58068a872ec2.png&cfs=1","width":630}}}]}},{"name":"The
|
344
|
+
target=\"_blank\" vulnerability by example","message":"https:\/\/dev.to\/ben\/the-targetblank-vulnerability-by-example","updated_time":"2016-09-02T17:50:31+0000","created_time":"2016-09-01T12:49:45+0000","id":"150352985174571_503746883168511","attachments":{"data":[{"title":"The
|
345
|
+
target=\"_blank\" vulnerability by example","description":"Instagram leaves
|
346
|
+
its users open to a simple phishing attack","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fdev.to\u00252Fben\u00252Fthe-targetblank-vulnerability-by-example&h=IAQEu0Wpp&s=1&enc=AZM1YhiXcj8XpQPFdfpu7mf9bTE4LLGdCzkClL9UFKGPCUtKQvoLOhFYJeOODS1TYI_KQTgNtO0TPqb-N8OB4rri","media":{"image":{"height":700,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQCuBI-PnC7cvAsc&w=720&h=720&url=https\u00253A\u00252F\u00252Fres.cloudinary.com\u00252Fpracticaldev\u00252Fimage\u00252Ffetch\u00252Fs--AGTf6Osi--\u00252Fc_imagga_scale\u00252Cf_auto\u00252Cfl_progressive\u00252Ch_700\u00252Cq_auto\u00252Cw_1480\u00252Fhttps\u00253A\u00252F\u00252Fi.vimeocdn.com\u00252Fvideo\u00252F570148251_1280x720.jpg&cfs=1","width":700}}}]}},{"name":"Katacoda
|
347
|
+
- Interactive Learning Platform for Software Engineers","message":"just discovered
|
348
|
+
this .... looks nice","updated_time":"2016-08-26T02:34:28+0000","created_time":"2016-08-26T02:34:28+0000","id":"150352985174571_500972406779292","attachments":{"data":[{"title":"Katacoda
|
349
|
+
- Interactive Learning Platform for Software Engineers","description":"Learn
|
350
|
+
the latest technologies with our hands-on labs","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fwww.katacoda.com\u00252F&h=gAQGgvDrK&s=1&enc=AZO8tyGR0zvrmvuubnDQxdYafyIe6JOndG1LAgevgQwvWQhJipw-l1QD41kaGzZCX7AYMeYr8vvuSMhDFViJMJTA","media":{"image":{"height":720,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQBt33FvO3-PQ4vI&w=720&h=720&url=https\u00253A\u00252F\u00252Fwww.katacoda.com\u00252Fimages\u00252Fbackgrounds\u00252Fpeople-working.jpg&cfs=1","width":720}}}]}},{"name":"Let''s
|
351
|
+
Encrypt - Wikipedia, the free encyclopedia","message":"No reason not to use
|
352
|
+
https for your web services: apart from the good old https:\/\/www.startssl.com,
|
353
|
+
now we have https:\/\/letsencrypt.org which makes getting, installing and
|
354
|
+
keeping a cert up to date easier. Plus its backed by many big guns and its
|
355
|
+
FREE! Here is the wikipedia article about it: https:\/\/en.m.wikipedia.org\/wiki\/Let\u002527s_Encrypt.
|
356
|
+
Just remember its pretty new and do read about how the certs are signed and
|
357
|
+
accepted by browser\/clients.","updated_time":"2016-08-22T00:55:29+0000","created_time":"2016-08-21T09:50:36+0000","id":"150352985174571_499005640309302","attachments":{"data":[{"title":"Let''s
|
358
|
+
Encrypt - Wikipedia, the free encyclopedia","description":"Let''s Encrypt
|
359
|
+
is a certificate authority that launched on April 12, 2016[1][2] that provides
|
360
|
+
free X.509 certificates for Transport Layer Security (TLS) encryption via
|
361
|
+
an automated process designed to eliminate the current complex process of
|
362
|
+
manual creation, validation, signing, installation, and ren...","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fen.m.wikipedia.org\u00252Fwiki\u00252FLet\u00252527s_Encrypt&h=UAQEsc6jt&s=1&enc=AZM_UTQXQVgR8rG92TmW3SDNSGrD_wjveMtir-Qhm5OmLDpMYtKf_Y26_qZj3hPWfeUSIeaRfMAIs7Nh4qTCsISj","media":{"image":{"height":131,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQApCjwHGpTUJRSa&w=720&h=720&url=https\u00253A\u00252F\u00252Fupload.wikimedia.org\u00252Fwikipedia\u00252Fcommons\u00252Fthumb\u00252Fb\u00252Fbb\u00252FLetsencrypt_screenshot_2_domain_choice.png\u00252F220px-Letsencrypt_screenshot_2_domain_choice.png&cfs=1","width":131}}}]}},{"name":"Google''s
|
363
|
+
QUIC protocol: moving the web from TCP to UDP","message":"A speedier web?
|
364
|
+
Yes thank you!\n\n","updated_time":"2016-08-02T04:40:01+0000","created_time":"2016-08-01T13:53:37+0000","id":"150352985174571_491254161084450","attachments":{"data":[{"title":"Google''s
|
365
|
+
QUIC protocol: moving the web from TCP to UDP","description":"The QUIC protocol
|
366
|
+
(Quick UDP Internet Connections) is an entirely new protocol for the web developed
|
367
|
+
on top of UDP instead of TCP. Some are even (jokingly) calling it TCP\/2.
|
368
|
+
I only learned about QUIC a few weeks ago while doing the curl & libcurl episode
|
369
|
+
of the SysCast podcast. The really interestin...","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fma.ttias.be\u00252Fgoogles-quic-protocol-moving-web-tcp-udp\u00252F&h=RAQEYDKxw&s=1&enc=AZP9Z_8QG5GRdtFg3COWEvE_fKFa_5C_4uapMolCcDn03knEr_VyTQ6eYagFgcMlcCYeT9_AkazP6POeQp4-TQ-D","media":{"image":{"height":720,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQAAP49rj-fnvioY&w=720&h=720&url=https\u00253A\u00252F\u00252Fma.ttias.be\u00252Fwp-content\u00252Fuploads\u00252F2016\u00252F07\u00252Fquic_parking_lot_problem.png&cfs=1","width":720}}}]}},{"name":"Introducing
|
370
|
+
GitKraken Pro\u2014launch fundraiser | Axosoft","message":"https:\/\/blog.axosoft.com\/2016\/07\/28\/introducing-gitkraken-pro\/","updated_time":"2016-07-30T17:51:41+0000","created_time":"2016-07-30T17:51:41+0000","id":"150352985174571_490544944488705","attachments":{"data":[{"title":"Introducing
|
371
|
+
GitKraken Pro\u2014launch fundraiser | Axosoft","description":"Learn about
|
372
|
+
the new edition of GitKraken, with even more features, and help raise money
|
373
|
+
and awareness for the Nightscout Foundation, an open source technology project
|
374
|
+
helping those affected by Type 1 diabetes!","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Fblog.axosoft.com\u00252F2016\u00252F07\u00252F28\u00252Fintroducing-gitkraken-pro\u00252F&h=-AQGdbSSK&s=1&enc=AZObEliJjBtfhK10s4RiR5iBlC-6SMim829br3ueBzfbGoXdCL8qPW4CoJehnCwXMMNZNVETuh9Z6VRa03419JQe","media":{"image":{"height":720,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQCiRe3ytesqyg6K&w=720&h=720&url=https\u00253A\u00252F\u00252Fblog.axosoft.com\u00252Fwp-content\u00252Fuploads\u00252F2016\u00252F07\u00252FTeaming-Up-v2-wide.png&cfs=1&l","width":720}}}]}},{"name":"Create
|
375
|
+
Apps with No Configuration | React","message":"For those using React, although
|
376
|
+
optional webpack loaders (such as sass) still need to be added!","updated_time":"2016-07-23T10:41:04+0000","created_time":"2016-07-23T09:55:25+0000","id":"150352985174571_487752758101257","attachments":{"data":[{"title":"Create
|
377
|
+
Apps with No Configuration | React","description":"A JavaScript library for
|
378
|
+
building user interfaces","url":"https:\/\/www.facebook.com\/l.php?u=https\u00253A\u00252F\u00252Ffacebook.github.io\u00252Freact\u00252Fblog\u00252F2016\u00252F07\u00252F22\u00252Fcreate-apps-with-no-configuration.html&h=SAQGKLveJ&s=1&enc=AZOlJy-fVHd34g9NyWLYYsTJpqe2aQbZ_bRA_AKxQseOOOfm_HqT-dVVj3S01WZD83FUx9vIZKxqGudVGMoWJMcO","media":{"image":{"height":400,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQC26d6oRyFdqvxX&w=720&h=720&url=https\u00253A\u00252F\u00252Ffacebook.github.io\u00252Freact\u00252Fimg\u00252Flogo_og.png&cfs=1","width":400}}}]}},{"name":"introduction\u00b6
|
379
|
+
Lettuce is an extremely useful and charming tool for BDD (Behavior Driven...
|
380
|
+
-...","message":"Test scenarios that anyone can make sense of","updated_time":"2016-07-22T11:46:59+0000","created_time":"2016-07-22T06:28:02+0000","id":"150352985174571_487315358144997","attachments":{"data":[{"title":"introduction\u00b6
|
381
|
+
Lettuce is an extremely useful and charming tool for BDD (Behavior Driven...
|
382
|
+
-...","description":"Lettuce is an extremely useful and charming tool for
|
383
|
+
BDD (Behavior Driven Development). It can execute plain-text functional descriptions
|
384
|
+
as automated tests for Python projects, just as Cucumber does for Ruby.","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Flettuce.it\u00252Ftutorial\u00252Fsimple.html\u002523tutorial-simple&h=FAQGWhi_V&s=1&enc=AZOq0vipkT-2BJL5l3L3gnoDQjRA65yMpzPp0_61d1mOR75X8PJIY0SbXH7cbIzYIrb9A6Y1Eym-eFNN_oFHxZHc","media":{"image":{"height":687,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQDL7gIjkOiwMbE7&w=720&h=720&url=http\u00253A\u00252F\u00252Flettuce.it\u00252F_images\u00252Fscreenshot5.png&cfs=1","width":687}}}]}},{"message":"Check
|
385
|
+
out: https:\/\/www.websequencediagrams.com \u2014 fun and friendly way to
|
386
|
+
create sequence diagrams for web and mobile activities. I usually end up drawing
|
387
|
+
these on paper or on the board. I think it will be quite engaging to play
|
388
|
+
with this live!","updated_time":"2016-07-21T02:25:49+0000","created_time":"2016-07-20T03:59:51+0000","id":"150352985174571_486566974886502","attachments":{"data":[{"description":"Check
|
389
|
+
out: https:\/\/www.websequencediagrams.com \u2014 fun and friendly way to
|
390
|
+
create sequence diagrams for web and mobile activities. I usually end up drawing
|
391
|
+
these on paper or on the board. I think it will be quite engaging to play
|
392
|
+
with this live!","url":"https:\/\/www.facebook.com\/photo.php?fbid=1058362510919499&set=gm.486566974886502&type=3","media":{"image":{"height":392,"src":"https:\/\/scontent.xx.fbcdn.net\/v\/t1.0-9\/s720x720\/13680904_1058362510919499_8542835077177246391_n.jpg?oh=e23aa643f32eb9665e3c8ba8a43c01ca&oe=58A0A9E7","width":720}}}]}},{"name":"Dropbox
|
393
|
+
open-sources Lepton, a compression algorithm that cuts JPEG file size by 22\u0025","message":"http:\/\/venturebeat.com\/2016\/07\/14\/dropbox-open-sources-lepton-a-compression-algorithm-that-cuts-jpeg-file-size-by-22\/","updated_time":"2016-07-15T05:52:51+0000","created_time":"2016-07-14T19:37:54+0000","id":"150352985174571_484513371758529","attachments":{"data":[{"title":"Dropbox
|
394
|
+
open-sources Lepton, a compression algorithm that cuts JPEG file size by 22\u0025","description":"Cloud
|
395
|
+
syncing and sharing software company Dropbox today announced that it has released
|
396
|
+
an image compression algorithm called Lepton under an Apache open-source license
|
397
|
+
on GitHub.","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Fventurebeat.com\u00252F2016\u00252F07\u00252F14\u00252Fdropbox-open-sources-lepton-a-compression-algorithm-that-cuts-jpeg-file-size-by-22\u00252F&h=sAQF-3I4t&s=1&enc=AZOQ0oWoyWXC28pwOZKXN3iktksoqx8dUur7jMWbCIKaR6cksX2Qe9JA3FM0wf5PpeckJ2DsRy5cAinoAjQYzMjs","media":{"image":{"height":585,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQCBxul8ygkf06Je&w=720&h=720&url=https\u00253A\u00252F\u00252Fventurebeat.com\u00252Fwp-content\u00252Fuploads\u00252F2015\u00252F11\u00252FDropbox-Open-outside-Novet-780x585.jpg&cfs=1","width":585}}}]}},{"name":"Serverless
|
398
|
+
Architectures","message":"\"Serverless\" is the new sensation in service architecture,
|
399
|
+
and it integrates the recent trends of microservices and reactive (message-driven)
|
400
|
+
architectures. We will play with some of these concepts in our SOA class this
|
401
|
+
coming semester. Take a peek at what''s brewing.\nhttp:\/\/martinfowler.com\/articles\/serverless.html","updated_time":"2016-07-14T19:01:17+0000","created_time":"2016-07-14T12:16:33+0000","id":"150352985174571_484366188439914","attachments":{"data":[{"title":"Serverless
|
402
|
+
Architectures","description":"Serverless architectures replace a managed server
|
403
|
+
with a collection of third party services and FaaS","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Fmartinfowler.com\u00252Farticles\u00252Fserverless.html\u002523benefits&h=DAQGWi2PV&s=1&enc=AZNAoJheX5WJrmUW4OCNaTUIc4YiLww-HP2jwr0Fk74_-rFwauuk_uHb3HGuJ5GbDlDf6qwbQ8la4ud3WhnnyQ1E","media":{"image":{"height":300,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQCGBUsGoj1TcRRD&w=720&h=720&url=http\u00253A\u00252F\u00252Fmartinfowler.com\u00252Farticles\u00252Fserverless\u00252Fsps.png&cfs=1","width":300}}}]}},{"name":"Pokemon
|
404
|
+
Go Is Driving Insane Amounts of Sales at Small Local Businesses. Here''s How
|
405
|
+
It Works","message":"I''m shocked at how Pok\u00e9mon Go is taking over our
|
406
|
+
streets (very soon in TW, right?). And now its having a major effect on local
|
407
|
+
businesses as well. Great example of how an online service can transform offline
|
408
|
+
ones.","updated_time":"2016-07-13T09:36:32+0000","created_time":"2016-07-13T02:42:08+0000","id":"150352985174571_483847351825131","attachments":{"data":[{"title":"Pokemon
|
409
|
+
Go Is Driving Insane Amounts of Sales at Small Local Businesses. Here''s How
|
410
|
+
It Works","description":"For $1.19 an hour, you can have more customers than
|
411
|
+
you''ve ever seen in your life","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Fwww.inc.com\u00252Fwalter-chen\u00252Fpok-mon-go-is-driving-insane-amounts-of-sales-at-small-local-businesses-here-s-h.html&h=uAQFyfQhv&s=1&enc=AZOtxYNAgRl3Cg6Q57ZG8oEK4xyUD-iFIl_lCmF2j6fx8x6eavOzKa2TsTtKntTwOVJCI03O4rkbQjD5BZhvq7vC","media":{"image":{"height":450,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQCDr9LKzFIQfJFh&w=720&h=720&url=http\u00253A\u00252F\u00252Fwww.incimages.com\u00252Fuploaded_files\u00252Fimage\u00252F970x450\u00252FPokemon_Heroes_2003_03-cc_100058.jpg&cfs=1","width":450}}}]}},{"name":"SOA
|
412
|
+
Syllabus","message":"The syllabus for next semester''s \"Service Oriented
|
413
|
+
Architecture\" class is now online! Take a look and share it with your coder
|
414
|
+
friends who are dreaming of their first startup :)","updated_time":"2016-07-04T11:18:26+0000","created_time":"2016-07-04T06:48:44+0000","id":"150352985174571_480686308807902","attachments":{"data":[{"title":"SOA
|
415
|
+
Syllabus","description":"Institute of Service Science, National Tsing Hua
|
416
|
+
University\u000bService Oriented Architecture\u000bFall 2016 Course Duration:
|
417
|
+
Sep 2015 \u2013 Jan 2016\u000bClass Time: Mondays, 9:00am-12:00pm\u000b Instructor:
|
418
|
+
Soumya Ray (soumya.ray\u0040iss.nthu.edu.tw)\u000bAssistant: TBA (\u0040...
|
419
|
+
available on Slack) How do companies lik...","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Fbit.ly\u00252Fsoa-syllabus&h=lAQHeaX5S&s=1&enc=AZOd1y20GsGnL0v_gYWTrIDCJTY48jbyWj5B_7GB44-LsJGadlpHaIcmAxZ1uaL6qj1dEJ5ixc_BFTASTj74mrfs"}]}},{"name":"Mongolia
|
420
|
+
is changing all its addresses to three-word phrases","message":"A plucky little
|
421
|
+
online startup is changing how we address and locate geographic places. The
|
422
|
+
story below shows how countries and international organizations are adopting
|
423
|
+
this method. Take a look at https:\/\/what3words.com to find your own three
|
424
|
+
words :)","updated_time":"2016-06-26T05:04:58+0000","created_time":"2016-06-15T07:55:13+0000","id":"150352985174571_474135702796296","attachments":{"data":[{"title":"Mongolia
|
425
|
+
is changing all its addresses to three-word phrases","description":"All the
|
426
|
+
mailman will need to find the US embassy in Ulaanbataar are these three words:
|
427
|
+
constants.stuffy.activism.","url":"http:\/\/www.facebook.com\/l.php?u=http\u00253A\u00252F\u00252Fqz.com\u00252F705273\u00252Fmongolia-is-changing-all-its-addresses-to-three-word-phrases\u00252F&h=JAQFMAksP&s=1&enc=AZN02PMmsYT-iK2B1lVh0qeNY7OGxEegLsCoQEytDDBIJgskc9gKuVUVI0SOHPwA5RbLYjALZVY9tHuLS0F0_86P","media":{"image":{"height":720,"src":"https:\/\/external.xx.fbcdn.net\/safe_image.php?d=AQBCzb8yBioJKKug&w=720&h=720&url=https\u00253A\u00252F\u00252Fqzprod.files.wordpress.com\u00252F2016\u00252F06\u00252Fjune-13-rtx12cmt-e1465820880769.jpg\u00253Fquality\u00253D80\u002526strip\u00253Dall\u002526w\u00253D1600&cfs=1","width":720}}}]}}],"paging":{"previous":"https:\/\/graph.facebook.com\/v2.6\/150352985174571\/feed?fields=name,message,updated_time,created_time,attachments\u00257Btitle,description,url,media\u00257D&since=1476952146&access_token=<ACCESS_TOKEN>&limit=25&__paging_token=enc_AdDRT3FRqddWHdExcEnxBuffZCipxhESZBM93TZAL1VTlcfHQr3aWV1rq23kG3uiPxcZCwvQeCiZC8fEJvrhCQFCo6fyMk1u9HaT3EXZBICgj897coSwZDZD&__previous=1","next":"https:\/\/graph.facebook.com\/v2.6\/150352985174571\/feed?fields=name,message,updated_time,created_time,attachments\u00257Btitle,description,url,media\u00257D&access_token=<ACCESS_TOKEN>&limit=25&until=1466917498&__paging_token=enc_AdBmZAsUzYqHLvymmCwfLv8K48KqrS6LGOHvgiJYkb7Brd7RrwyTZA8gMCDGPWYdza3XzU34YBZB7Xn0iN7WcT9cLhvOIFzhb8ZCDP8F35OnaNwZBtQZDZD"}}}'
|
284
428
|
http_version:
|
285
|
-
recorded_at:
|
429
|
+
recorded_at: Wed, 26 Oct 2016 16:55:01 GMT
|
286
430
|
recorded_with: VCR 3.0.3
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: facegroup
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Soumya Ray
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-10-
|
11
|
+
date: 2016-10-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: http
|
@@ -150,6 +150,20 @@ dependencies:
|
|
150
150
|
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '0.42'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: codeclimate-test-reporter
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0.6'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "~>"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0.6'
|
153
167
|
description: Extracts feed, postings, and attachments from FB Groups
|
154
168
|
email:
|
155
169
|
- soumya.ray@gmail.com
|
@@ -158,6 +172,7 @@ executables:
|
|
158
172
|
extensions: []
|
159
173
|
extra_rdoc_files: []
|
160
174
|
files:
|
175
|
+
- ".codeclimate.yml"
|
161
176
|
- ".gitignore"
|
162
177
|
- ".rubocop.yml"
|
163
178
|
- ".travis.yml"
|