pilha 0.1.1 → 0.1.2
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.
- data/lib/pilha.rb +18 -10
- data/lib/pilha/stack_overflow/answer.rb +69 -0
- data/lib/pilha/stack_overflow/badge.rb +9 -2
- data/lib/pilha/stack_overflow/comment.rb +32 -0
- data/lib/pilha/stack_overflow/statistics.rb +2 -2
- data/lib/pilha/stack_overflow/user.rb +7 -2
- data/pilha.gemspec +23 -6
- data/spec/fixtures/answer_with_comments.json +61 -0
- data/spec/fixtures/answer_with_comments.json.gz +0 -0
- data/spec/fixtures/answers_by_id.json +28 -0
- data/spec/fixtures/answers_by_id.json.gz +0 -0
- data/spec/fixtures/badges.json.gz +0 -0
- data/spec/fixtures/badges_by_id.json.gz +0 -0
- data/spec/fixtures/badges_by_id_page2.json.gz +0 -0
- data/spec/fixtures/badges_tag_based.json +1372 -0
- data/spec/fixtures/badges_tag_based.json.gz +0 -0
- data/spec/fixtures/comments.json +22 -0
- data/spec/fixtures/comments.json.gz +0 -0
- data/spec/fixtures/stats.json.gz +0 -0
- data/spec/fixtures/users_answers.json +647 -0
- data/spec/fixtures/users_answers.json.gz +0 -0
- data/spec/pilha/stack_overflow/answer_spec.rb +41 -0
- data/spec/pilha/stack_overflow/badge_spec.rb +14 -1
- data/spec/pilha/stack_overflow/comment_spec.rb +19 -0
- data/spec/pilha/stack_overflow/stack_overflow_spec.rb +4 -4
- data/spec/pilha/stack_overflow/user_spec.rb +1 -1
- data/spec/spec_helper.rb +6 -1
- metadata +24 -7
- data/spec/fixtures/badges_name.json +0 -400
data/lib/pilha.rb
CHANGED
@@ -1,13 +1,16 @@
|
|
1
1
|
path = File.expand_path(File.dirname(__FILE__))
|
2
2
|
$LOAD_PATH.unshift(path) unless $LOAD_PATH.include?(path)
|
3
3
|
|
4
|
-
require '
|
4
|
+
require 'zlib'
|
5
5
|
require 'json'
|
6
|
+
require 'open-uri'
|
6
7
|
require 'forwardable'
|
7
8
|
|
8
9
|
require 'pilha/stack_overflow/statistics'
|
9
10
|
require 'pilha/stack_overflow/badge'
|
10
11
|
require 'pilha/stack_overflow/user'
|
12
|
+
require 'pilha/stack_overflow/answer'
|
13
|
+
require 'pilha/stack_overflow/comment'
|
11
14
|
|
12
15
|
module StackExchange
|
13
16
|
|
@@ -22,10 +25,11 @@ module StackExchange
|
|
22
25
|
|
23
26
|
class << self
|
24
27
|
def config &block
|
25
|
-
options =
|
28
|
+
options = OpenStruct.new
|
26
29
|
yield options if block_given?
|
27
|
-
|
28
|
-
|
30
|
+
|
31
|
+
client = Client.new(options)
|
32
|
+
include_client(client, Badge, Statistics, User, Answer, Comment)
|
29
33
|
end
|
30
34
|
|
31
35
|
def include_client(client, *classes)
|
@@ -35,10 +39,10 @@ module StackExchange
|
|
35
39
|
end
|
36
40
|
end
|
37
41
|
|
38
|
-
def initialize(options =
|
39
|
-
@url = normalize(options
|
40
|
-
@api_version = options
|
41
|
-
@api_key = options
|
42
|
+
def initialize(options = OpenStruct.new)
|
43
|
+
@url = normalize(options.url || URL )
|
44
|
+
@api_version = options.api_version || API_VERSION
|
45
|
+
@api_key = options.api_key
|
42
46
|
end
|
43
47
|
|
44
48
|
def api_method_path(pattern, options = {})
|
@@ -48,7 +52,6 @@ module StackExchange
|
|
48
52
|
parts.each do |part|
|
49
53
|
key = part.sub(':', '').intern
|
50
54
|
pattern.sub!(part, options[key].to_s)
|
51
|
-
options.delete key
|
52
55
|
end
|
53
56
|
|
54
57
|
pattern
|
@@ -60,7 +63,7 @@ module StackExchange
|
|
60
63
|
end
|
61
64
|
|
62
65
|
def get(url)
|
63
|
-
stream = open(url) { |stream| stream.read }
|
66
|
+
stream = open(url) { |stream| Zlib::GzipReader.new(stream).read }
|
64
67
|
JSON.parse stream
|
65
68
|
end
|
66
69
|
|
@@ -68,6 +71,10 @@ module StackExchange
|
|
68
71
|
url + api_version
|
69
72
|
end
|
70
73
|
|
74
|
+
def request(path, options)
|
75
|
+
get(api_method_url(path, options))
|
76
|
+
end
|
77
|
+
|
71
78
|
private
|
72
79
|
def key?
|
73
80
|
!!@api_key
|
@@ -76,6 +83,7 @@ module StackExchange
|
|
76
83
|
def query_string(options)
|
77
84
|
params = options[:query]
|
78
85
|
if params
|
86
|
+
params = params.sort_by { |k, v| k.to_s }
|
79
87
|
'?' + params.inject([]) do |arr, (key, value)|
|
80
88
|
arr << "#{key}=#{value}"
|
81
89
|
end.join('&')
|
@@ -0,0 +1,69 @@
|
|
1
|
+
module StackExchange
|
2
|
+
module StackOverflow
|
3
|
+
class Answer
|
4
|
+
extend Forwardable
|
5
|
+
|
6
|
+
def_delegators :@struct, :answer_id, :accepted, :answer_comments_url, :question_id,
|
7
|
+
:owner, :creation_date, :last_activity_date, :up_vote_count, :down_vote_count,
|
8
|
+
:view_count, :score, :community_owned, :title, :comments
|
9
|
+
|
10
|
+
class << self
|
11
|
+
attr_reader :client
|
12
|
+
|
13
|
+
def find_by_id(id, options = {})
|
14
|
+
options.merge! :id => id
|
15
|
+
response = client.request('/answers/:id', options)
|
16
|
+
OpenStruct.new(parse response)
|
17
|
+
end
|
18
|
+
|
19
|
+
def find_by_user_id(id, options = {})
|
20
|
+
options.merge! :id => id
|
21
|
+
response = client.request('/users/:id/answers', options)
|
22
|
+
OpenStruct.new(parse response)
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
def setup_associations!(response, hash)
|
27
|
+
setup_comments! hash
|
28
|
+
setup_owner! hash
|
29
|
+
end
|
30
|
+
|
31
|
+
def setup_comments!(hash)
|
32
|
+
if hash['comments']
|
33
|
+
hash['comments'] = hash['comments'].map {|c| Comment.new c }
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def setup_owner!(hash)
|
38
|
+
if hash['owner']
|
39
|
+
hash['owner'] = User.new(hash['owner'])
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def setup_answers!(response)
|
44
|
+
if response['answers']
|
45
|
+
response['answers'] = response['answers'].map { |a| Answer.new a }
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def parse(response)
|
50
|
+
response['answers'].each do |answer_hash|
|
51
|
+
setup_associations!(response, answer_hash)
|
52
|
+
end
|
53
|
+
setup_answers! response
|
54
|
+
response
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def initialize(hash)
|
59
|
+
@struct = OpenStruct.new hash
|
60
|
+
end
|
61
|
+
|
62
|
+
def id
|
63
|
+
@struct.answer_id
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
@@ -10,11 +10,17 @@ module StackExchange
|
|
10
10
|
class << self
|
11
11
|
attr_reader :client
|
12
12
|
|
13
|
-
def all
|
14
|
-
|
13
|
+
def all(options = {})
|
14
|
+
method = select_method options
|
15
|
+
response = client.request(method, options)
|
15
16
|
badges = response['badges']
|
16
17
|
badges.map { |badge| Badge.new badge }
|
17
18
|
end
|
19
|
+
|
20
|
+
def select_method(options)
|
21
|
+
tag_based = options[:tag_based] || options['tag_based']
|
22
|
+
tag_based ? '/badges/tags' : '/badges'
|
23
|
+
end
|
18
24
|
end
|
19
25
|
|
20
26
|
def initialize(hash)
|
@@ -24,6 +30,7 @@ module StackExchange
|
|
24
30
|
def id
|
25
31
|
@struct.badge_id
|
26
32
|
end
|
33
|
+
|
27
34
|
end
|
28
35
|
end
|
29
36
|
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module StackExchange
|
2
|
+
module StackOverflow
|
3
|
+
class Comment
|
4
|
+
extend Forwardable
|
5
|
+
|
6
|
+
def_delegators :@struct, :comment_id, :creation_date, :owner, :post_id,
|
7
|
+
:post_type, :score, :body
|
8
|
+
|
9
|
+
class << self
|
10
|
+
attr_reader :client
|
11
|
+
|
12
|
+
def find_by_id(id, options = {})
|
13
|
+
options.merge! :id => id
|
14
|
+
response = client.request('/comments/:id/', options)
|
15
|
+
|
16
|
+
comment = Comment.new(response['comments'].first)
|
17
|
+
response['comments'] = [comment]
|
18
|
+
|
19
|
+
OpenStruct.new response
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def initialize(hash)
|
24
|
+
@struct = OpenStruct.new hash
|
25
|
+
end
|
26
|
+
|
27
|
+
def id
|
28
|
+
@struct.comment_id
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -17,8 +17,8 @@ module StackExchange
|
|
17
17
|
class << self
|
18
18
|
attr_reader :client
|
19
19
|
|
20
|
-
def all
|
21
|
-
response = client.
|
20
|
+
def all(options = {})
|
21
|
+
response = client.request('/stats', options)
|
22
22
|
stats = response['statistics'].first
|
23
23
|
Statistics.new stats
|
24
24
|
end
|
@@ -17,12 +17,17 @@ module StackExchange
|
|
17
17
|
@struct = OpenStruct.new hash
|
18
18
|
end
|
19
19
|
|
20
|
+
def id
|
21
|
+
@struct.user_id
|
22
|
+
end
|
23
|
+
|
20
24
|
class << self
|
21
25
|
|
22
26
|
attr_reader :client
|
23
27
|
|
24
|
-
def find_by_badge_id(id,
|
25
|
-
|
28
|
+
def find_by_badge_id(id, options = {})
|
29
|
+
options.merge! :id => id
|
30
|
+
response = client.request('/badges/:id', options)
|
26
31
|
users = response['users'].map { |user| User.new(user) }
|
27
32
|
response['users'] = users
|
28
33
|
OpenStruct.new response
|
data/pilha.gemspec
CHANGED
@@ -1,26 +1,43 @@
|
|
1
1
|
Gem::Specification.new do |gem|
|
2
2
|
gem.name = "pilha"
|
3
|
-
gem.version = "0.1.
|
3
|
+
gem.version = "0.1.2"
|
4
4
|
gem.authors = ["Dalto Curvelano Junior"]
|
5
|
-
gem.description = "A ruby wrapper to the
|
6
|
-
gem.summary = "A ruby wrapper to the
|
5
|
+
gem.description = "A ruby wrapper to the Stack Exchange (Stack Overflow and friends) API."
|
6
|
+
gem.summary = "A ruby wrapper to the Stack Exchange (Stack Overflow and friends) API."
|
7
7
|
gem.files = [
|
8
8
|
"pilha.gemspec",
|
9
9
|
"lib/pilha/stack_overflow/badge.rb",
|
10
10
|
"lib/pilha/stack_overflow/statistics.rb",
|
11
11
|
"lib/pilha/stack_overflow/user.rb",
|
12
|
+
"lib/pilha/stack_overflow/comment.rb",
|
13
|
+
"lib/pilha/stack_overflow/answer.rb",
|
12
14
|
"lib/pilha.rb",
|
15
|
+
"spec/fixtures/stats.json",
|
16
|
+
"spec/fixtures/stats.json.gz",
|
13
17
|
"spec/fixtures/badges.json",
|
18
|
+
"spec/fixtures/badges.json.gz",
|
14
19
|
"spec/fixtures/badges_by_id.json",
|
20
|
+
"spec/fixtures/badges_by_id.json.gz",
|
15
21
|
"spec/fixtures/badges_by_id_page2.json",
|
16
|
-
"spec/fixtures/
|
17
|
-
"spec/fixtures/
|
22
|
+
"spec/fixtures/badges_by_id_page2.json.gz",
|
23
|
+
"spec/fixtures/badges_tag_based.json",
|
24
|
+
"spec/fixtures/badges_tag_based.json.gz",
|
25
|
+
"spec/fixtures/answers_by_id.json",
|
26
|
+
"spec/fixtures/answers_by_id.json.gz",
|
27
|
+
"spec/fixtures/answer_with_comments.json",
|
28
|
+
"spec/fixtures/answer_with_comments.json.gz",
|
29
|
+
"spec/fixtures/comments.json",
|
30
|
+
"spec/fixtures/comments.json.gz",
|
31
|
+
"spec/fixtures/users_answers.json",
|
32
|
+
"spec/fixtures/users_answers.json.gz",
|
18
33
|
"spec/pilha/stack_overflow/badge_spec.rb",
|
19
34
|
"spec/pilha/stack_overflow/stack_overflow_spec.rb",
|
20
35
|
"spec/pilha/stack_overflow/statistics_spec.rb",
|
21
36
|
"spec/pilha/stack_overflow/user_spec.rb",
|
37
|
+
"spec/pilha/stack_overflow/comment_spec.rb",
|
38
|
+
"spec/pilha/stack_overflow/answer_spec.rb",
|
22
39
|
"spec/spec.opts",
|
23
40
|
"spec/spec_helper.rb"
|
24
41
|
]
|
25
|
-
gem.homepage = "http://github.com/dlt/
|
42
|
+
gem.homepage = "http://github.com/dlt/pilha"
|
26
43
|
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
{
|
2
|
+
"total": 1,
|
3
|
+
"page": 1,
|
4
|
+
"pagesize": 30,
|
5
|
+
"answers": [
|
6
|
+
{
|
7
|
+
"answer_id": 555,
|
8
|
+
"accepted": false,
|
9
|
+
"answer_comments_url": "/answers/555/comments",
|
10
|
+
"question_id": 549,
|
11
|
+
"owner": {
|
12
|
+
"user_id": 136,
|
13
|
+
"user_type": "registered",
|
14
|
+
"display_name": "Michiel de Mare",
|
15
|
+
"reputation": 3758,
|
16
|
+
"email_hash": "7c45f63f61e478233f0c2ad3006b178c"
|
17
|
+
},
|
18
|
+
"creation_date": 1217709645,
|
19
|
+
"last_edit_date": 1236727932,
|
20
|
+
"last_activity_date": 1236727932,
|
21
|
+
"up_vote_count": 23,
|
22
|
+
"down_vote_count": 0,
|
23
|
+
"view_count": 5380,
|
24
|
+
"score": 23,
|
25
|
+
"community_owned": true,
|
26
|
+
"title": "The Definitive Guide To Website Authentication (beta)",
|
27
|
+
"comments": [
|
28
|
+
{
|
29
|
+
"comment_id": 278816,
|
30
|
+
"creation_date": 1232410823,
|
31
|
+
"owner": {
|
32
|
+
"user_id": 13834,
|
33
|
+
"user_type": "registered",
|
34
|
+
"display_name": "Kevin Loney",
|
35
|
+
"reputation": 1971,
|
36
|
+
"email_hash": "10f6e15abcf7ed8ca175fd8507e3c19b"
|
37
|
+
},
|
38
|
+
"post_id": 555,
|
39
|
+
"post_type": "answer",
|
40
|
+
"score": 0,
|
41
|
+
"body": "Given the recent MITM vulnerability surrounding signed SSL certificates (<a href=\"https://blog.startcom.org/?p=145\" rel=\"nofollow\">blog.startcom.org/?p=145</a>) so a combination of SSL and some kind of Challenge response authentication (There are alternatives to SRP) is probably a better solution."
|
42
|
+
},
|
43
|
+
{
|
44
|
+
"comment_id": 303010,
|
45
|
+
"creation_date": 1233120361,
|
46
|
+
"owner": {
|
47
|
+
"user_id": 26,
|
48
|
+
"user_type": "registered",
|
49
|
+
"display_name": "Shawn Simon",
|
50
|
+
"reputation": 4848,
|
51
|
+
"email_hash": "f878a55e08bacee0af48852c29a02dc7"
|
52
|
+
},
|
53
|
+
"post_id": 555,
|
54
|
+
"post_type": "answer",
|
55
|
+
"score": 0,
|
56
|
+
"body": "a lot of this stuff is situational. i tend not to use session cookies at all. cookies getting hijacked is almost always the servers fault. man in the middle / packet sniffing arent that common"
|
57
|
+
}
|
58
|
+
]
|
59
|
+
}
|
60
|
+
]
|
61
|
+
}
|
Binary file
|
@@ -0,0 +1,28 @@
|
|
1
|
+
{
|
2
|
+
"total": 1,
|
3
|
+
"page": 1,
|
4
|
+
"pagesize": 30,
|
5
|
+
"answers": [
|
6
|
+
{
|
7
|
+
"answer_id": 666,
|
8
|
+
"accepted": false,
|
9
|
+
"answer_comments_url": "/answers/666/comments",
|
10
|
+
"question_id": 664,
|
11
|
+
"owner": {
|
12
|
+
"user_id": 58,
|
13
|
+
"user_type": "registered",
|
14
|
+
"display_name": "cmcculloh",
|
15
|
+
"reputation": 2903,
|
16
|
+
"email_hash": "298e0497aa6b76a573f17e6a2bb22dec"
|
17
|
+
},
|
18
|
+
"creation_date": 1217766782,
|
19
|
+
"last_activity_date": 1217766782,
|
20
|
+
"up_vote_count": 21,
|
21
|
+
"down_vote_count": 0,
|
22
|
+
"view_count": 1028,
|
23
|
+
"score": 21,
|
24
|
+
"community_owned": false,
|
25
|
+
"title": "What level of programming should I have to contribute to open source?"
|
26
|
+
}
|
27
|
+
]
|
28
|
+
}
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,1372 @@
|
|
1
|
+
{
|
2
|
+
"badges": [
|
3
|
+
{
|
4
|
+
"badge_id": 204,
|
5
|
+
"rank": "silver",
|
6
|
+
"name": ".htaccess",
|
7
|
+
"description": "Earned 400 upvotes for answers in the .htaccess tag",
|
8
|
+
"award_count": 1,
|
9
|
+
"tag_based": true,
|
10
|
+
"badges_recipients_url": "/badges/204"
|
11
|
+
},
|
12
|
+
{
|
13
|
+
"badge_id": 41,
|
14
|
+
"rank": "silver",
|
15
|
+
"name": ".net",
|
16
|
+
"description": "Earned 400 upvotes for answers in the .net tag",
|
17
|
+
"award_count": 49,
|
18
|
+
"tag_based": true,
|
19
|
+
"badges_recipients_url": "/badges/41"
|
20
|
+
},
|
21
|
+
{
|
22
|
+
"badge_id": 43,
|
23
|
+
"rank": "gold",
|
24
|
+
"name": ".net",
|
25
|
+
"description": "Earned 1000 upvotes for answers in the .net tag",
|
26
|
+
"award_count": 12,
|
27
|
+
"tag_based": true,
|
28
|
+
"badges_recipients_url": "/badges/43"
|
29
|
+
},
|
30
|
+
{
|
31
|
+
"badge_id": 185,
|
32
|
+
"rank": "silver",
|
33
|
+
"name": ".net-3.5",
|
34
|
+
"description": "Earned 400 upvotes for answers in the .net-3.5 tag",
|
35
|
+
"award_count": 1,
|
36
|
+
"tag_based": true,
|
37
|
+
"badges_recipients_url": "/badges/185"
|
38
|
+
},
|
39
|
+
{
|
40
|
+
"badge_id": 140,
|
41
|
+
"rank": "silver",
|
42
|
+
"name": "algorithm",
|
43
|
+
"description": "Earned 400 upvotes for answers in the algorithm tag",
|
44
|
+
"award_count": 3,
|
45
|
+
"tag_based": true,
|
46
|
+
"badges_recipients_url": "/badges/140"
|
47
|
+
},
|
48
|
+
{
|
49
|
+
"badge_id": 151,
|
50
|
+
"rank": "silver",
|
51
|
+
"name": "android",
|
52
|
+
"description": "Earned 400 upvotes for answers in the android tag",
|
53
|
+
"award_count": 2,
|
54
|
+
"tag_based": true,
|
55
|
+
"badges_recipients_url": "/badges/151"
|
56
|
+
},
|
57
|
+
{
|
58
|
+
"badge_id": 178,
|
59
|
+
"rank": "gold",
|
60
|
+
"name": "android",
|
61
|
+
"description": "Earned 1000 upvotes for answers in the android tag",
|
62
|
+
"award_count": 1,
|
63
|
+
"tag_based": true,
|
64
|
+
"badges_recipients_url": "/badges/178"
|
65
|
+
},
|
66
|
+
{
|
67
|
+
"badge_id": 117,
|
68
|
+
"rank": "silver",
|
69
|
+
"name": "arrays",
|
70
|
+
"description": "Earned 400 upvotes for answers in the arrays tag",
|
71
|
+
"award_count": 2,
|
72
|
+
"tag_based": true,
|
73
|
+
"badges_recipients_url": "/badges/117"
|
74
|
+
},
|
75
|
+
{
|
76
|
+
"badge_id": 64,
|
77
|
+
"rank": "silver",
|
78
|
+
"name": "asp.net",
|
79
|
+
"description": "Earned 400 upvotes for answers in the asp.net tag",
|
80
|
+
"award_count": 15,
|
81
|
+
"tag_based": true,
|
82
|
+
"badges_recipients_url": "/badges/64"
|
83
|
+
},
|
84
|
+
{
|
85
|
+
"badge_id": 193,
|
86
|
+
"rank": "gold",
|
87
|
+
"name": "asp.net",
|
88
|
+
"description": "Earned 1000 upvotes for answers in the asp.net tag",
|
89
|
+
"award_count": 2,
|
90
|
+
"tag_based": true,
|
91
|
+
"badges_recipients_url": "/badges/193"
|
92
|
+
},
|
93
|
+
{
|
94
|
+
"badge_id": 126,
|
95
|
+
"rank": "gold",
|
96
|
+
"name": "asp.net-mvc",
|
97
|
+
"description": "Earned 1000 upvotes for answers in the asp.net-mvc tag",
|
98
|
+
"award_count": 1,
|
99
|
+
"tag_based": true,
|
100
|
+
"badges_recipients_url": "/badges/126"
|
101
|
+
},
|
102
|
+
{
|
103
|
+
"badge_id": 66,
|
104
|
+
"rank": "silver",
|
105
|
+
"name": "asp.net-mvc",
|
106
|
+
"description": "Earned 400 upvotes for answers in the asp.net-mvc tag",
|
107
|
+
"award_count": 6,
|
108
|
+
"tag_based": true,
|
109
|
+
"badges_recipients_url": "/badges/66"
|
110
|
+
},
|
111
|
+
{
|
112
|
+
"badge_id": 184,
|
113
|
+
"rank": "silver",
|
114
|
+
"name": "bash",
|
115
|
+
"description": "Earned 400 upvotes for answers in the bash tag",
|
116
|
+
"award_count": 2,
|
117
|
+
"tag_based": true,
|
118
|
+
"badges_recipients_url": "/badges/184"
|
119
|
+
},
|
120
|
+
{
|
121
|
+
"badge_id": 121,
|
122
|
+
"rank": "silver",
|
123
|
+
"name": "beginner",
|
124
|
+
"description": "Earned 400 upvotes for answers in the beginner tag",
|
125
|
+
"award_count": 4,
|
126
|
+
"tag_based": true,
|
127
|
+
"badges_recipients_url": "/badges/121"
|
128
|
+
},
|
129
|
+
{
|
130
|
+
"badge_id": 202,
|
131
|
+
"rank": "gold",
|
132
|
+
"name": "beginner",
|
133
|
+
"description": "Earned 1000 upvotes for answers in the beginner tag",
|
134
|
+
"award_count": 1,
|
135
|
+
"tag_based": true,
|
136
|
+
"badges_recipients_url": "/badges/202"
|
137
|
+
},
|
138
|
+
{
|
139
|
+
"badge_id": 57,
|
140
|
+
"rank": "silver",
|
141
|
+
"name": "best-practices",
|
142
|
+
"description": "Earned 400 upvotes for answers in the best-practices tag",
|
143
|
+
"award_count": 8,
|
144
|
+
"tag_based": true,
|
145
|
+
"badges_recipients_url": "/badges/57"
|
146
|
+
},
|
147
|
+
{
|
148
|
+
"badge_id": 107,
|
149
|
+
"rank": "gold",
|
150
|
+
"name": "best-practices",
|
151
|
+
"description": "Earned 1000 upvotes for answers in the best-practices tag",
|
152
|
+
"award_count": 1,
|
153
|
+
"tag_based": true,
|
154
|
+
"badges_recipients_url": "/badges/107"
|
155
|
+
},
|
156
|
+
{
|
157
|
+
"badge_id": 190,
|
158
|
+
"rank": "silver",
|
159
|
+
"name": "blackberry",
|
160
|
+
"description": "Earned 400 upvotes for answers in the blackberry tag",
|
161
|
+
"award_count": 1,
|
162
|
+
"tag_based": true,
|
163
|
+
"badges_recipients_url": "/badges/190"
|
164
|
+
},
|
165
|
+
{
|
166
|
+
"badge_id": 96,
|
167
|
+
"rank": "gold",
|
168
|
+
"name": "c",
|
169
|
+
"description": "Earned 1000 upvotes for answers in the c tag",
|
170
|
+
"award_count": 10,
|
171
|
+
"tag_based": true,
|
172
|
+
"badges_recipients_url": "/badges/96"
|
173
|
+
},
|
174
|
+
{
|
175
|
+
"badge_id": 52,
|
176
|
+
"rank": "silver",
|
177
|
+
"name": "c",
|
178
|
+
"description": "Earned 400 upvotes for answers in the c tag",
|
179
|
+
"award_count": 38,
|
180
|
+
"tag_based": true,
|
181
|
+
"badges_recipients_url": "/badges/52"
|
182
|
+
},
|
183
|
+
{
|
184
|
+
"badge_id": 39,
|
185
|
+
"rank": "silver",
|
186
|
+
"name": "c#",
|
187
|
+
"description": "Earned 400 upvotes for answers in the c# tag",
|
188
|
+
"award_count": 134,
|
189
|
+
"tag_based": true,
|
190
|
+
"badges_recipients_url": "/badges/39"
|
191
|
+
},
|
192
|
+
{
|
193
|
+
"badge_id": 40,
|
194
|
+
"rank": "gold",
|
195
|
+
"name": "c#",
|
196
|
+
"description": "Earned 1000 upvotes for answers in the c# tag",
|
197
|
+
"award_count": 42,
|
198
|
+
"tag_based": true,
|
199
|
+
"badges_recipients_url": "/badges/40"
|
200
|
+
},
|
201
|
+
{
|
202
|
+
"badge_id": 197,
|
203
|
+
"rank": "silver",
|
204
|
+
"name": "c#3.0",
|
205
|
+
"description": "Earned 400 upvotes for answers in the c#3.0 tag",
|
206
|
+
"award_count": 1,
|
207
|
+
"tag_based": true,
|
208
|
+
"badges_recipients_url": "/badges/197"
|
209
|
+
},
|
210
|
+
{
|
211
|
+
"badge_id": 48,
|
212
|
+
"rank": "silver",
|
213
|
+
"name": "c++",
|
214
|
+
"description": "Earned 400 upvotes for answers in the c++ tag",
|
215
|
+
"award_count": 95,
|
216
|
+
"tag_based": true,
|
217
|
+
"badges_recipients_url": "/badges/48"
|
218
|
+
},
|
219
|
+
{
|
220
|
+
"badge_id": 49,
|
221
|
+
"rank": "gold",
|
222
|
+
"name": "c++",
|
223
|
+
"description": "Earned 1000 upvotes for answers in the c++ tag",
|
224
|
+
"award_count": 32,
|
225
|
+
"tag_based": true,
|
226
|
+
"badges_recipients_url": "/badges/49"
|
227
|
+
},
|
228
|
+
{
|
229
|
+
"badge_id": 89,
|
230
|
+
"rank": "silver",
|
231
|
+
"name": "career-development",
|
232
|
+
"description": "Earned 400 upvotes for answers in the career-development tag",
|
233
|
+
"award_count": 1,
|
234
|
+
"tag_based": true,
|
235
|
+
"badges_recipients_url": "/badges/89"
|
236
|
+
},
|
237
|
+
{
|
238
|
+
"badge_id": 175,
|
239
|
+
"rank": "silver",
|
240
|
+
"name": "casting",
|
241
|
+
"description": "Earned 400 upvotes for answers in the casting tag",
|
242
|
+
"award_count": 1,
|
243
|
+
"tag_based": true,
|
244
|
+
"badges_recipients_url": "/badges/175"
|
245
|
+
},
|
246
|
+
{
|
247
|
+
"badge_id": 148,
|
248
|
+
"rank": "silver",
|
249
|
+
"name": "clojure",
|
250
|
+
"description": "Earned 400 upvotes for answers in the clojure tag",
|
251
|
+
"award_count": 2,
|
252
|
+
"tag_based": true,
|
253
|
+
"badges_recipients_url": "/badges/148"
|
254
|
+
},
|
255
|
+
{
|
256
|
+
"badge_id": 199,
|
257
|
+
"rank": "silver",
|
258
|
+
"name": "clr",
|
259
|
+
"description": "Earned 400 upvotes for answers in the clr tag",
|
260
|
+
"award_count": 1,
|
261
|
+
"tag_based": true,
|
262
|
+
"badges_recipients_url": "/badges/199"
|
263
|
+
},
|
264
|
+
{
|
265
|
+
"badge_id": 113,
|
266
|
+
"rank": "gold",
|
267
|
+
"name": "cocoa",
|
268
|
+
"description": "Earned 1000 upvotes for answers in the cocoa tag",
|
269
|
+
"award_count": 1,
|
270
|
+
"tag_based": true,
|
271
|
+
"badges_recipients_url": "/badges/113"
|
272
|
+
},
|
273
|
+
{
|
274
|
+
"badge_id": 69,
|
275
|
+
"rank": "silver",
|
276
|
+
"name": "cocoa",
|
277
|
+
"description": "Earned 400 upvotes for answers in the cocoa tag",
|
278
|
+
"award_count": 7,
|
279
|
+
"tag_based": true,
|
280
|
+
"badges_recipients_url": "/badges/69"
|
281
|
+
},
|
282
|
+
{
|
283
|
+
"badge_id": 115,
|
284
|
+
"rank": "silver",
|
285
|
+
"name": "cocoa-touch",
|
286
|
+
"description": "Earned 400 upvotes for answers in the cocoa-touch tag",
|
287
|
+
"award_count": 1,
|
288
|
+
"tag_based": true,
|
289
|
+
"badges_recipients_url": "/badges/115"
|
290
|
+
},
|
291
|
+
{
|
292
|
+
"badge_id": 150,
|
293
|
+
"rank": "silver",
|
294
|
+
"name": "collections",
|
295
|
+
"description": "Earned 400 upvotes for answers in the collections tag",
|
296
|
+
"award_count": 1,
|
297
|
+
"tag_based": true,
|
298
|
+
"badges_recipients_url": "/badges/150"
|
299
|
+
},
|
300
|
+
{
|
301
|
+
"badge_id": 131,
|
302
|
+
"rank": "silver",
|
303
|
+
"name": "compact-framework",
|
304
|
+
"description": "Earned 400 upvotes for answers in the compact-framework tag",
|
305
|
+
"award_count": 1,
|
306
|
+
"tag_based": true,
|
307
|
+
"badges_recipients_url": "/badges/131"
|
308
|
+
},
|
309
|
+
{
|
310
|
+
"badge_id": 116,
|
311
|
+
"rank": "silver",
|
312
|
+
"name": "css",
|
313
|
+
"description": "Earned 400 upvotes for answers in the css tag",
|
314
|
+
"award_count": 6,
|
315
|
+
"tag_based": true,
|
316
|
+
"badges_recipients_url": "/badges/116"
|
317
|
+
},
|
318
|
+
{
|
319
|
+
"badge_id": 124,
|
320
|
+
"rank": "silver",
|
321
|
+
"name": "database",
|
322
|
+
"description": "Earned 400 upvotes for answers in the database tag",
|
323
|
+
"award_count": 3,
|
324
|
+
"tag_based": true,
|
325
|
+
"badges_recipients_url": "/badges/124"
|
326
|
+
},
|
327
|
+
{
|
328
|
+
"badge_id": 192,
|
329
|
+
"rank": "silver",
|
330
|
+
"name": "datetime",
|
331
|
+
"description": "Earned 400 upvotes for answers in the datetime tag",
|
332
|
+
"award_count": 1,
|
333
|
+
"tag_based": true,
|
334
|
+
"badges_recipients_url": "/badges/192"
|
335
|
+
},
|
336
|
+
{
|
337
|
+
"badge_id": 120,
|
338
|
+
"rank": "silver",
|
339
|
+
"name": "delegates",
|
340
|
+
"description": "Earned 400 upvotes for answers in the delegates tag",
|
341
|
+
"award_count": 1,
|
342
|
+
"tag_based": true,
|
343
|
+
"badges_recipients_url": "/badges/120"
|
344
|
+
},
|
345
|
+
{
|
346
|
+
"badge_id": 122,
|
347
|
+
"rank": "gold",
|
348
|
+
"name": "delphi",
|
349
|
+
"description": "Earned 1000 upvotes for answers in the delphi tag",
|
350
|
+
"award_count": 3,
|
351
|
+
"tag_based": true,
|
352
|
+
"badges_recipients_url": "/badges/122"
|
353
|
+
},
|
354
|
+
{
|
355
|
+
"badge_id": 65,
|
356
|
+
"rank": "silver",
|
357
|
+
"name": "delphi",
|
358
|
+
"description": "Earned 400 upvotes for answers in the delphi tag",
|
359
|
+
"award_count": 15,
|
360
|
+
"tag_based": true,
|
361
|
+
"badges_recipients_url": "/badges/65"
|
362
|
+
},
|
363
|
+
{
|
364
|
+
"badge_id": 196,
|
365
|
+
"rank": "silver",
|
366
|
+
"name": "dictionary",
|
367
|
+
"description": "Earned 400 upvotes for answers in the dictionary tag",
|
368
|
+
"award_count": 1,
|
369
|
+
"tag_based": true,
|
370
|
+
"badges_recipients_url": "/badges/196"
|
371
|
+
},
|
372
|
+
{
|
373
|
+
"badge_id": 73,
|
374
|
+
"rank": "silver",
|
375
|
+
"name": "django",
|
376
|
+
"description": "Earned 400 upvotes for answers in the django tag",
|
377
|
+
"award_count": 6,
|
378
|
+
"tag_based": true,
|
379
|
+
"badges_recipients_url": "/badges/73"
|
380
|
+
},
|
381
|
+
{
|
382
|
+
"badge_id": 182,
|
383
|
+
"rank": "gold",
|
384
|
+
"name": "django",
|
385
|
+
"description": "Earned 1000 upvotes for answers in the django tag",
|
386
|
+
"award_count": 1,
|
387
|
+
"tag_based": true,
|
388
|
+
"badges_recipients_url": "/badges/182"
|
389
|
+
},
|
390
|
+
{
|
391
|
+
"badge_id": 156,
|
392
|
+
"rank": "gold",
|
393
|
+
"name": "eclipse",
|
394
|
+
"description": "Earned 1000 upvotes for answers in the eclipse tag",
|
395
|
+
"award_count": 1,
|
396
|
+
"tag_based": true,
|
397
|
+
"badges_recipients_url": "/badges/156"
|
398
|
+
},
|
399
|
+
{
|
400
|
+
"badge_id": 75,
|
401
|
+
"rank": "silver",
|
402
|
+
"name": "eclipse",
|
403
|
+
"description": "Earned 400 upvotes for answers in the eclipse tag",
|
404
|
+
"award_count": 1,
|
405
|
+
"tag_based": true,
|
406
|
+
"badges_recipients_url": "/badges/75"
|
407
|
+
},
|
408
|
+
{
|
409
|
+
"badge_id": 99,
|
410
|
+
"rank": "silver",
|
411
|
+
"name": "emacs",
|
412
|
+
"description": "Earned 400 upvotes for answers in the emacs tag",
|
413
|
+
"award_count": 1,
|
414
|
+
"tag_based": true,
|
415
|
+
"badges_recipients_url": "/badges/99"
|
416
|
+
},
|
417
|
+
{
|
418
|
+
"badge_id": 181,
|
419
|
+
"rank": "gold",
|
420
|
+
"name": "emacs",
|
421
|
+
"description": "Earned 1000 upvotes for answers in the emacs tag",
|
422
|
+
"award_count": 1,
|
423
|
+
"tag_based": true,
|
424
|
+
"badges_recipients_url": "/badges/181"
|
425
|
+
},
|
426
|
+
{
|
427
|
+
"badge_id": 171,
|
428
|
+
"rank": "silver",
|
429
|
+
"name": "entity-framework",
|
430
|
+
"description": "Earned 400 upvotes for answers in the entity-framework tag",
|
431
|
+
"award_count": 1,
|
432
|
+
"tag_based": true,
|
433
|
+
"badges_recipients_url": "/badges/171"
|
434
|
+
},
|
435
|
+
{
|
436
|
+
"badge_id": 180,
|
437
|
+
"rank": "silver",
|
438
|
+
"name": "enums",
|
439
|
+
"description": "Earned 400 upvotes for answers in the enums tag",
|
440
|
+
"award_count": 1,
|
441
|
+
"tag_based": true,
|
442
|
+
"badges_recipients_url": "/badges/180"
|
443
|
+
},
|
444
|
+
{
|
445
|
+
"badge_id": 195,
|
446
|
+
"rank": "silver",
|
447
|
+
"name": "events",
|
448
|
+
"description": "Earned 400 upvotes for answers in the events tag",
|
449
|
+
"award_count": 1,
|
450
|
+
"tag_based": true,
|
451
|
+
"badges_recipients_url": "/badges/195"
|
452
|
+
},
|
453
|
+
{
|
454
|
+
"badge_id": 137,
|
455
|
+
"rank": "silver",
|
456
|
+
"name": "exception",
|
457
|
+
"description": "Earned 400 upvotes for answers in the exception tag",
|
458
|
+
"award_count": 1,
|
459
|
+
"tag_based": true,
|
460
|
+
"badges_recipients_url": "/badges/137"
|
461
|
+
},
|
462
|
+
{
|
463
|
+
"badge_id": 152,
|
464
|
+
"rank": "gold",
|
465
|
+
"name": "f#",
|
466
|
+
"description": "Earned 1000 upvotes for answers in the f# tag",
|
467
|
+
"award_count": 1,
|
468
|
+
"tag_based": true,
|
469
|
+
"badges_recipients_url": "/badges/152"
|
470
|
+
},
|
471
|
+
{
|
472
|
+
"badge_id": 74,
|
473
|
+
"rank": "silver",
|
474
|
+
"name": "f#",
|
475
|
+
"description": "Earned 400 upvotes for answers in the f# tag",
|
476
|
+
"award_count": 3,
|
477
|
+
"tag_based": true,
|
478
|
+
"badges_recipients_url": "/badges/74"
|
479
|
+
},
|
480
|
+
{
|
481
|
+
"badge_id": 157,
|
482
|
+
"rank": "silver",
|
483
|
+
"name": "functional-programming",
|
484
|
+
"description": "Earned 400 upvotes for answers in the functional-programming tag",
|
485
|
+
"award_count": 1,
|
486
|
+
"tag_based": true,
|
487
|
+
"badges_recipients_url": "/badges/157"
|
488
|
+
},
|
489
|
+
{
|
490
|
+
"badge_id": 46,
|
491
|
+
"rank": "silver",
|
492
|
+
"name": "generics",
|
493
|
+
"description": "Earned 400 upvotes for answers in the generics tag",
|
494
|
+
"award_count": 3,
|
495
|
+
"tag_based": true,
|
496
|
+
"badges_recipients_url": "/badges/46"
|
497
|
+
},
|
498
|
+
{
|
499
|
+
"badge_id": 104,
|
500
|
+
"rank": "gold",
|
501
|
+
"name": "generics",
|
502
|
+
"description": "Earned 1000 upvotes for answers in the generics tag",
|
503
|
+
"award_count": 1,
|
504
|
+
"tag_based": true,
|
505
|
+
"badges_recipients_url": "/badges/104"
|
506
|
+
},
|
507
|
+
{
|
508
|
+
"badge_id": 80,
|
509
|
+
"rank": "silver",
|
510
|
+
"name": "git",
|
511
|
+
"description": "Earned 400 upvotes for answers in the git tag",
|
512
|
+
"award_count": 4,
|
513
|
+
"tag_based": true,
|
514
|
+
"badges_recipients_url": "/badges/80"
|
515
|
+
},
|
516
|
+
{
|
517
|
+
"badge_id": 161,
|
518
|
+
"rank": "gold",
|
519
|
+
"name": "git",
|
520
|
+
"description": "Earned 1000 upvotes for answers in the git tag",
|
521
|
+
"award_count": 1,
|
522
|
+
"tag_based": true,
|
523
|
+
"badges_recipients_url": "/badges/161"
|
524
|
+
},
|
525
|
+
{
|
526
|
+
"badge_id": 125,
|
527
|
+
"rank": "silver",
|
528
|
+
"name": "google-app-engine",
|
529
|
+
"description": "Earned 400 upvotes for answers in the google-app-engine tag",
|
530
|
+
"award_count": 2,
|
531
|
+
"tag_based": true,
|
532
|
+
"badges_recipients_url": "/badges/125"
|
533
|
+
},
|
534
|
+
{
|
535
|
+
"badge_id": 127,
|
536
|
+
"rank": "silver",
|
537
|
+
"name": "haskell",
|
538
|
+
"description": "Earned 400 upvotes for answers in the haskell tag",
|
539
|
+
"award_count": 3,
|
540
|
+
"tag_based": true,
|
541
|
+
"badges_recipients_url": "/badges/127"
|
542
|
+
},
|
543
|
+
{
|
544
|
+
"badge_id": 194,
|
545
|
+
"rank": "silver",
|
546
|
+
"name": "hibernate",
|
547
|
+
"description": "Earned 400 upvotes for answers in the hibernate tag",
|
548
|
+
"award_count": 1,
|
549
|
+
"tag_based": true,
|
550
|
+
"badges_recipients_url": "/badges/194"
|
551
|
+
},
|
552
|
+
{
|
553
|
+
"badge_id": 134,
|
554
|
+
"rank": "gold",
|
555
|
+
"name": "html",
|
556
|
+
"description": "Earned 1000 upvotes for answers in the html tag",
|
557
|
+
"award_count": 2,
|
558
|
+
"tag_based": true,
|
559
|
+
"badges_recipients_url": "/badges/134"
|
560
|
+
},
|
561
|
+
{
|
562
|
+
"badge_id": 84,
|
563
|
+
"rank": "silver",
|
564
|
+
"name": "html",
|
565
|
+
"description": "Earned 400 upvotes for answers in the html tag",
|
566
|
+
"award_count": 11,
|
567
|
+
"tag_based": true,
|
568
|
+
"badges_recipients_url": "/badges/84"
|
569
|
+
},
|
570
|
+
{
|
571
|
+
"badge_id": 147,
|
572
|
+
"rank": "silver",
|
573
|
+
"name": "inheritance",
|
574
|
+
"description": "Earned 400 upvotes for answers in the inheritance tag",
|
575
|
+
"award_count": 1,
|
576
|
+
"tag_based": true,
|
577
|
+
"badges_recipients_url": "/badges/147"
|
578
|
+
},
|
579
|
+
{
|
580
|
+
"badge_id": 191,
|
581
|
+
"rank": "silver",
|
582
|
+
"name": "interview-questions",
|
583
|
+
"description": "Earned 400 upvotes for answers in the interview-questions tag",
|
584
|
+
"award_count": 1,
|
585
|
+
"tag_based": true,
|
586
|
+
"badges_recipients_url": "/badges/191"
|
587
|
+
},
|
588
|
+
{
|
589
|
+
"badge_id": 172,
|
590
|
+
"rank": "gold",
|
591
|
+
"name": "iphone",
|
592
|
+
"description": "Earned 1000 upvotes for answers in the iphone tag",
|
593
|
+
"award_count": 2,
|
594
|
+
"tag_based": true,
|
595
|
+
"badges_recipients_url": "/badges/172"
|
596
|
+
},
|
597
|
+
{
|
598
|
+
"badge_id": 67,
|
599
|
+
"rank": "silver",
|
600
|
+
"name": "iphone",
|
601
|
+
"description": "Earned 400 upvotes for answers in the iphone tag",
|
602
|
+
"award_count": 15,
|
603
|
+
"tag_based": true,
|
604
|
+
"badges_recipients_url": "/badges/67"
|
605
|
+
},
|
606
|
+
{
|
607
|
+
"badge_id": 44,
|
608
|
+
"rank": "gold",
|
609
|
+
"name": "java",
|
610
|
+
"description": "Earned 1000 upvotes for answers in the java tag",
|
611
|
+
"award_count": 24,
|
612
|
+
"tag_based": true,
|
613
|
+
"badges_recipients_url": "/badges/44"
|
614
|
+
},
|
615
|
+
{
|
616
|
+
"badge_id": 42,
|
617
|
+
"rank": "silver",
|
618
|
+
"name": "java",
|
619
|
+
"description": "Earned 400 upvotes for answers in the java tag",
|
620
|
+
"award_count": 78,
|
621
|
+
"tag_based": true,
|
622
|
+
"badges_recipients_url": "/badges/42"
|
623
|
+
},
|
624
|
+
{
|
625
|
+
"badge_id": 59,
|
626
|
+
"rank": "silver",
|
627
|
+
"name": "javascript",
|
628
|
+
"description": "Earned 400 upvotes for answers in the javascript tag",
|
629
|
+
"award_count": 35,
|
630
|
+
"tag_based": true,
|
631
|
+
"badges_recipients_url": "/badges/59"
|
632
|
+
},
|
633
|
+
{
|
634
|
+
"badge_id": 78,
|
635
|
+
"rank": "gold",
|
636
|
+
"name": "javascript",
|
637
|
+
"description": "Earned 1000 upvotes for answers in the javascript tag",
|
638
|
+
"award_count": 7,
|
639
|
+
"tag_based": true,
|
640
|
+
"badges_recipients_url": "/badges/78"
|
641
|
+
},
|
642
|
+
{
|
643
|
+
"badge_id": 79,
|
644
|
+
"rank": "gold",
|
645
|
+
"name": "jquery",
|
646
|
+
"description": "Earned 1000 upvotes for answers in the jquery tag",
|
647
|
+
"award_count": 7,
|
648
|
+
"tag_based": true,
|
649
|
+
"badges_recipients_url": "/badges/79"
|
650
|
+
},
|
651
|
+
{
|
652
|
+
"badge_id": 61,
|
653
|
+
"rank": "silver",
|
654
|
+
"name": "jquery",
|
655
|
+
"description": "Earned 400 upvotes for answers in the jquery tag",
|
656
|
+
"award_count": 20,
|
657
|
+
"tag_based": true,
|
658
|
+
"badges_recipients_url": "/badges/61"
|
659
|
+
},
|
660
|
+
{
|
661
|
+
"badge_id": 186,
|
662
|
+
"rank": "silver",
|
663
|
+
"name": "jsf",
|
664
|
+
"description": "Earned 400 upvotes for answers in the jsf tag",
|
665
|
+
"award_count": 1,
|
666
|
+
"tag_based": true,
|
667
|
+
"badges_recipients_url": "/badges/186"
|
668
|
+
},
|
669
|
+
{
|
670
|
+
"badge_id": 173,
|
671
|
+
"rank": "silver",
|
672
|
+
"name": "jsp",
|
673
|
+
"description": "Earned 400 upvotes for answers in the jsp tag",
|
674
|
+
"award_count": 1,
|
675
|
+
"tag_based": true,
|
676
|
+
"badges_recipients_url": "/badges/173"
|
677
|
+
},
|
678
|
+
{
|
679
|
+
"badge_id": 179,
|
680
|
+
"rank": "silver",
|
681
|
+
"name": "lambda",
|
682
|
+
"description": "Earned 400 upvotes for answers in the lambda tag",
|
683
|
+
"award_count": 1,
|
684
|
+
"tag_based": true,
|
685
|
+
"badges_recipients_url": "/badges/179"
|
686
|
+
},
|
687
|
+
{
|
688
|
+
"badge_id": 70,
|
689
|
+
"rank": "silver",
|
690
|
+
"name": "language-agnostic",
|
691
|
+
"description": "Earned 400 upvotes for answers in the language-agnostic tag",
|
692
|
+
"award_count": 1,
|
693
|
+
"tag_based": true,
|
694
|
+
"badges_recipients_url": "/badges/70"
|
695
|
+
},
|
696
|
+
{
|
697
|
+
"badge_id": 47,
|
698
|
+
"rank": "silver",
|
699
|
+
"name": "linq",
|
700
|
+
"description": "Earned 400 upvotes for answers in the linq tag",
|
701
|
+
"award_count": 6,
|
702
|
+
"tag_based": true,
|
703
|
+
"badges_recipients_url": "/badges/47"
|
704
|
+
},
|
705
|
+
{
|
706
|
+
"badge_id": 85,
|
707
|
+
"rank": "gold",
|
708
|
+
"name": "linq",
|
709
|
+
"description": "Earned 1000 upvotes for answers in the linq tag",
|
710
|
+
"award_count": 2,
|
711
|
+
"tag_based": true,
|
712
|
+
"badges_recipients_url": "/badges/85"
|
713
|
+
},
|
714
|
+
{
|
715
|
+
"badge_id": 102,
|
716
|
+
"rank": "silver",
|
717
|
+
"name": "linq-to-sql",
|
718
|
+
"description": "Earned 400 upvotes for answers in the linq-to-sql tag",
|
719
|
+
"award_count": 2,
|
720
|
+
"tag_based": true,
|
721
|
+
"badges_recipients_url": "/badges/102"
|
722
|
+
},
|
723
|
+
{
|
724
|
+
"badge_id": 165,
|
725
|
+
"rank": "silver",
|
726
|
+
"name": "linux",
|
727
|
+
"description": "Earned 400 upvotes for answers in the linux tag",
|
728
|
+
"award_count": 1,
|
729
|
+
"tag_based": true,
|
730
|
+
"badges_recipients_url": "/badges/165"
|
731
|
+
},
|
732
|
+
{
|
733
|
+
"badge_id": 141,
|
734
|
+
"rank": "silver",
|
735
|
+
"name": "lisp",
|
736
|
+
"description": "Earned 400 upvotes for answers in the lisp tag",
|
737
|
+
"award_count": 1,
|
738
|
+
"tag_based": true,
|
739
|
+
"badges_recipients_url": "/badges/141"
|
740
|
+
},
|
741
|
+
{
|
742
|
+
"badge_id": 169,
|
743
|
+
"rank": "gold",
|
744
|
+
"name": "matlab",
|
745
|
+
"description": "Earned 1000 upvotes for answers in the matlab tag",
|
746
|
+
"award_count": 1,
|
747
|
+
"tag_based": true,
|
748
|
+
"badges_recipients_url": "/badges/169"
|
749
|
+
},
|
750
|
+
{
|
751
|
+
"badge_id": 103,
|
752
|
+
"rank": "silver",
|
753
|
+
"name": "matlab",
|
754
|
+
"description": "Earned 400 upvotes for answers in the matlab tag",
|
755
|
+
"award_count": 2,
|
756
|
+
"tag_based": true,
|
757
|
+
"badges_recipients_url": "/badges/103"
|
758
|
+
},
|
759
|
+
{
|
760
|
+
"badge_id": 110,
|
761
|
+
"rank": "silver",
|
762
|
+
"name": "maven-2",
|
763
|
+
"description": "Earned 400 upvotes for answers in the maven-2 tag",
|
764
|
+
"award_count": 2,
|
765
|
+
"tag_based": true,
|
766
|
+
"badges_recipients_url": "/badges/110"
|
767
|
+
},
|
768
|
+
{
|
769
|
+
"badge_id": 201,
|
770
|
+
"rank": "gold",
|
771
|
+
"name": "maven-2",
|
772
|
+
"description": "Earned 1000 upvotes for answers in the maven-2 tag",
|
773
|
+
"award_count": 1,
|
774
|
+
"tag_based": true,
|
775
|
+
"badges_recipients_url": "/badges/201"
|
776
|
+
},
|
777
|
+
{
|
778
|
+
"badge_id": 188,
|
779
|
+
"rank": "silver",
|
780
|
+
"name": "mercurial",
|
781
|
+
"description": "Earned 400 upvotes for answers in the mercurial tag",
|
782
|
+
"award_count": 1,
|
783
|
+
"tag_based": true,
|
784
|
+
"badges_recipients_url": "/badges/188"
|
785
|
+
},
|
786
|
+
{
|
787
|
+
"badge_id": 162,
|
788
|
+
"rank": "silver",
|
789
|
+
"name": "mod-rewrite",
|
790
|
+
"description": "Earned 400 upvotes for answers in the mod-rewrite tag",
|
791
|
+
"award_count": 1,
|
792
|
+
"tag_based": true,
|
793
|
+
"badges_recipients_url": "/badges/162"
|
794
|
+
},
|
795
|
+
{
|
796
|
+
"badge_id": 108,
|
797
|
+
"rank": "silver",
|
798
|
+
"name": "mono",
|
799
|
+
"description": "Earned 400 upvotes for answers in the mono tag",
|
800
|
+
"award_count": 1,
|
801
|
+
"tag_based": true,
|
802
|
+
"badges_recipients_url": "/badges/108"
|
803
|
+
},
|
804
|
+
{
|
805
|
+
"badge_id": 143,
|
806
|
+
"rank": "silver",
|
807
|
+
"name": "ms-access",
|
808
|
+
"description": "Earned 400 upvotes for answers in the ms-access tag",
|
809
|
+
"award_count": 2,
|
810
|
+
"tag_based": true,
|
811
|
+
"badges_recipients_url": "/badges/143"
|
812
|
+
},
|
813
|
+
{
|
814
|
+
"badge_id": 129,
|
815
|
+
"rank": "gold",
|
816
|
+
"name": "multithreading",
|
817
|
+
"description": "Earned 1000 upvotes for answers in the multithreading tag",
|
818
|
+
"award_count": 1,
|
819
|
+
"tag_based": true,
|
820
|
+
"badges_recipients_url": "/badges/129"
|
821
|
+
},
|
822
|
+
{
|
823
|
+
"badge_id": 92,
|
824
|
+
"rank": "silver",
|
825
|
+
"name": "multithreading",
|
826
|
+
"description": "Earned 400 upvotes for answers in the multithreading tag",
|
827
|
+
"award_count": 2,
|
828
|
+
"tag_based": true,
|
829
|
+
"badges_recipients_url": "/badges/92"
|
830
|
+
},
|
831
|
+
{
|
832
|
+
"badge_id": 56,
|
833
|
+
"rank": "silver",
|
834
|
+
"name": "mysql",
|
835
|
+
"description": "Earned 400 upvotes for answers in the mysql tag",
|
836
|
+
"award_count": 8,
|
837
|
+
"tag_based": true,
|
838
|
+
"badges_recipients_url": "/badges/56"
|
839
|
+
},
|
840
|
+
{
|
841
|
+
"badge_id": 123,
|
842
|
+
"rank": "gold",
|
843
|
+
"name": "mysql",
|
844
|
+
"description": "Earned 1000 upvotes for answers in the mysql tag",
|
845
|
+
"award_count": 2,
|
846
|
+
"tag_based": true,
|
847
|
+
"badges_recipients_url": "/badges/123"
|
848
|
+
},
|
849
|
+
{
|
850
|
+
"badge_id": 174,
|
851
|
+
"rank": "gold",
|
852
|
+
"name": "objective-c",
|
853
|
+
"description": "Earned 1000 upvotes for answers in the objective-c tag",
|
854
|
+
"award_count": 4,
|
855
|
+
"tag_based": true,
|
856
|
+
"badges_recipients_url": "/badges/174"
|
857
|
+
},
|
858
|
+
{
|
859
|
+
"badge_id": 100,
|
860
|
+
"rank": "silver",
|
861
|
+
"name": "objective-c",
|
862
|
+
"description": "Earned 400 upvotes for answers in the objective-c tag",
|
863
|
+
"award_count": 13,
|
864
|
+
"tag_based": true,
|
865
|
+
"badges_recipients_url": "/badges/100"
|
866
|
+
},
|
867
|
+
{
|
868
|
+
"badge_id": 114,
|
869
|
+
"rank": "silver",
|
870
|
+
"name": "oop",
|
871
|
+
"description": "Earned 400 upvotes for answers in the oop tag",
|
872
|
+
"award_count": 1,
|
873
|
+
"tag_based": true,
|
874
|
+
"badges_recipients_url": "/badges/114"
|
875
|
+
},
|
876
|
+
{
|
877
|
+
"badge_id": 132,
|
878
|
+
"rank": "silver",
|
879
|
+
"name": "optimization",
|
880
|
+
"description": "Earned 400 upvotes for answers in the optimization tag",
|
881
|
+
"award_count": 1,
|
882
|
+
"tag_based": true,
|
883
|
+
"badges_recipients_url": "/badges/132"
|
884
|
+
},
|
885
|
+
{
|
886
|
+
"badge_id": 81,
|
887
|
+
"rank": "silver",
|
888
|
+
"name": "oracle",
|
889
|
+
"description": "Earned 400 upvotes for answers in the oracle tag",
|
890
|
+
"award_count": 7,
|
891
|
+
"tag_based": true,
|
892
|
+
"badges_recipients_url": "/badges/81"
|
893
|
+
},
|
894
|
+
{
|
895
|
+
"badge_id": 198,
|
896
|
+
"rank": "silver",
|
897
|
+
"name": "orm",
|
898
|
+
"description": "Earned 400 upvotes for answers in the orm tag",
|
899
|
+
"award_count": 1,
|
900
|
+
"tag_based": true,
|
901
|
+
"badges_recipients_url": "/badges/198"
|
902
|
+
},
|
903
|
+
{
|
904
|
+
"badge_id": 68,
|
905
|
+
"rank": "silver",
|
906
|
+
"name": "performance",
|
907
|
+
"description": "Earned 400 upvotes for answers in the performance tag",
|
908
|
+
"award_count": 1,
|
909
|
+
"tag_based": true,
|
910
|
+
"badges_recipients_url": "/badges/68"
|
911
|
+
},
|
912
|
+
{
|
913
|
+
"badge_id": 170,
|
914
|
+
"rank": "gold",
|
915
|
+
"name": "performance",
|
916
|
+
"description": "Earned 1000 upvotes for answers in the performance tag",
|
917
|
+
"award_count": 1,
|
918
|
+
"tag_based": true,
|
919
|
+
"badges_recipients_url": "/badges/170"
|
920
|
+
},
|
921
|
+
{
|
922
|
+
"badge_id": 60,
|
923
|
+
"rank": "gold",
|
924
|
+
"name": "perl",
|
925
|
+
"description": "Earned 1000 upvotes for answers in the perl tag",
|
926
|
+
"award_count": 6,
|
927
|
+
"tag_based": true,
|
928
|
+
"badges_recipients_url": "/badges/60"
|
929
|
+
},
|
930
|
+
{
|
931
|
+
"badge_id": 53,
|
932
|
+
"rank": "silver",
|
933
|
+
"name": "perl",
|
934
|
+
"description": "Earned 400 upvotes for answers in the perl tag",
|
935
|
+
"award_count": 26,
|
936
|
+
"tag_based": true,
|
937
|
+
"badges_recipients_url": "/badges/53"
|
938
|
+
},
|
939
|
+
{
|
940
|
+
"badge_id": 54,
|
941
|
+
"rank": "silver",
|
942
|
+
"name": "php",
|
943
|
+
"description": "Earned 400 upvotes for answers in the php tag",
|
944
|
+
"award_count": 44,
|
945
|
+
"tag_based": true,
|
946
|
+
"badges_recipients_url": "/badges/54"
|
947
|
+
},
|
948
|
+
{
|
949
|
+
"badge_id": 93,
|
950
|
+
"rank": "gold",
|
951
|
+
"name": "php",
|
952
|
+
"description": "Earned 1000 upvotes for answers in the php tag",
|
953
|
+
"award_count": 12,
|
954
|
+
"tag_based": true,
|
955
|
+
"badges_recipients_url": "/badges/93"
|
956
|
+
},
|
957
|
+
{
|
958
|
+
"badge_id": 163,
|
959
|
+
"rank": "silver",
|
960
|
+
"name": "pointers",
|
961
|
+
"description": "Earned 400 upvotes for answers in the pointers tag",
|
962
|
+
"award_count": 2,
|
963
|
+
"tag_based": true,
|
964
|
+
"badges_recipients_url": "/badges/163"
|
965
|
+
},
|
966
|
+
{
|
967
|
+
"badge_id": 160,
|
968
|
+
"rank": "silver",
|
969
|
+
"name": "powershell",
|
970
|
+
"description": "Earned 400 upvotes for answers in the powershell tag",
|
971
|
+
"award_count": 1,
|
972
|
+
"tag_based": true,
|
973
|
+
"badges_recipients_url": "/badges/160"
|
974
|
+
},
|
975
|
+
{
|
976
|
+
"badge_id": 183,
|
977
|
+
"rank": "silver",
|
978
|
+
"name": "programming-languages",
|
979
|
+
"description": "Earned 400 upvotes for answers in the programming-languages tag",
|
980
|
+
"award_count": 1,
|
981
|
+
"tag_based": true,
|
982
|
+
"badges_recipients_url": "/badges/183"
|
983
|
+
},
|
984
|
+
{
|
985
|
+
"badge_id": 50,
|
986
|
+
"rank": "silver",
|
987
|
+
"name": "python",
|
988
|
+
"description": "Earned 400 upvotes for answers in the python tag",
|
989
|
+
"award_count": 58,
|
990
|
+
"tag_based": true,
|
991
|
+
"badges_recipients_url": "/badges/50"
|
992
|
+
},
|
993
|
+
{
|
994
|
+
"badge_id": 51,
|
995
|
+
"rank": "gold",
|
996
|
+
"name": "python",
|
997
|
+
"description": "Earned 1000 upvotes for answers in the python tag",
|
998
|
+
"award_count": 10,
|
999
|
+
"tag_based": true,
|
1000
|
+
"badges_recipients_url": "/badges/51"
|
1001
|
+
},
|
1002
|
+
{
|
1003
|
+
"badge_id": 135,
|
1004
|
+
"rank": "silver",
|
1005
|
+
"name": "r",
|
1006
|
+
"description": "Earned 400 upvotes for answers in the r tag",
|
1007
|
+
"award_count": 2,
|
1008
|
+
"tag_based": true,
|
1009
|
+
"badges_recipients_url": "/badges/135"
|
1010
|
+
},
|
1011
|
+
{
|
1012
|
+
"badge_id": 86,
|
1013
|
+
"rank": "silver",
|
1014
|
+
"name": "reflection",
|
1015
|
+
"description": "Earned 400 upvotes for answers in the reflection tag",
|
1016
|
+
"award_count": 2,
|
1017
|
+
"tag_based": true,
|
1018
|
+
"badges_recipients_url": "/badges/86"
|
1019
|
+
},
|
1020
|
+
{
|
1021
|
+
"badge_id": 97,
|
1022
|
+
"rank": "silver",
|
1023
|
+
"name": "regex",
|
1024
|
+
"description": "Earned 400 upvotes for answers in the regex tag",
|
1025
|
+
"award_count": 6,
|
1026
|
+
"tag_based": true,
|
1027
|
+
"badges_recipients_url": "/badges/97"
|
1028
|
+
},
|
1029
|
+
{
|
1030
|
+
"badge_id": 133,
|
1031
|
+
"rank": "gold",
|
1032
|
+
"name": "regex",
|
1033
|
+
"description": "Earned 1000 upvotes for answers in the regex tag",
|
1034
|
+
"award_count": 2,
|
1035
|
+
"tag_based": true,
|
1036
|
+
"badges_recipients_url": "/badges/133"
|
1037
|
+
},
|
1038
|
+
{
|
1039
|
+
"badge_id": 106,
|
1040
|
+
"rank": "silver",
|
1041
|
+
"name": "ruby",
|
1042
|
+
"description": "Earned 400 upvotes for answers in the ruby tag",
|
1043
|
+
"award_count": 6,
|
1044
|
+
"tag_based": true,
|
1045
|
+
"badges_recipients_url": "/badges/106"
|
1046
|
+
},
|
1047
|
+
{
|
1048
|
+
"badge_id": 90,
|
1049
|
+
"rank": "silver",
|
1050
|
+
"name": "ruby-on-rails",
|
1051
|
+
"description": "Earned 400 upvotes for answers in the ruby-on-rails tag",
|
1052
|
+
"award_count": 3,
|
1053
|
+
"tag_based": true,
|
1054
|
+
"badges_recipients_url": "/badges/90"
|
1055
|
+
},
|
1056
|
+
{
|
1057
|
+
"badge_id": 111,
|
1058
|
+
"rank": "silver",
|
1059
|
+
"name": "scala",
|
1060
|
+
"description": "Earned 400 upvotes for answers in the scala tag",
|
1061
|
+
"award_count": 4,
|
1062
|
+
"tag_based": true,
|
1063
|
+
"badges_recipients_url": "/badges/111"
|
1064
|
+
},
|
1065
|
+
{
|
1066
|
+
"badge_id": 168,
|
1067
|
+
"rank": "gold",
|
1068
|
+
"name": "scala",
|
1069
|
+
"description": "Earned 1000 upvotes for answers in the scala tag",
|
1070
|
+
"award_count": 1,
|
1071
|
+
"tag_based": true,
|
1072
|
+
"badges_recipients_url": "/badges/168"
|
1073
|
+
},
|
1074
|
+
{
|
1075
|
+
"badge_id": 176,
|
1076
|
+
"rank": "silver",
|
1077
|
+
"name": "serialization",
|
1078
|
+
"description": "Earned 400 upvotes for answers in the serialization tag",
|
1079
|
+
"award_count": 1,
|
1080
|
+
"tag_based": true,
|
1081
|
+
"badges_recipients_url": "/badges/176"
|
1082
|
+
},
|
1083
|
+
{
|
1084
|
+
"badge_id": 189,
|
1085
|
+
"rank": "silver",
|
1086
|
+
"name": "servlets",
|
1087
|
+
"description": "Earned 400 upvotes for answers in the servlets tag",
|
1088
|
+
"award_count": 1,
|
1089
|
+
"tag_based": true,
|
1090
|
+
"badges_recipients_url": "/badges/189"
|
1091
|
+
},
|
1092
|
+
{
|
1093
|
+
"badge_id": 119,
|
1094
|
+
"rank": "silver",
|
1095
|
+
"name": "sharepoint",
|
1096
|
+
"description": "Earned 400 upvotes for answers in the sharepoint tag",
|
1097
|
+
"award_count": 1,
|
1098
|
+
"tag_based": true,
|
1099
|
+
"badges_recipients_url": "/badges/119"
|
1100
|
+
},
|
1101
|
+
{
|
1102
|
+
"badge_id": 177,
|
1103
|
+
"rank": "silver",
|
1104
|
+
"name": "silverlight",
|
1105
|
+
"description": "Earned 400 upvotes for answers in the silverlight tag",
|
1106
|
+
"award_count": 1,
|
1107
|
+
"tag_based": true,
|
1108
|
+
"badges_recipients_url": "/badges/177"
|
1109
|
+
},
|
1110
|
+
{
|
1111
|
+
"badge_id": 167,
|
1112
|
+
"rank": "silver",
|
1113
|
+
"name": "spring",
|
1114
|
+
"description": "Earned 400 upvotes for answers in the spring tag",
|
1115
|
+
"award_count": 1,
|
1116
|
+
"tag_based": true,
|
1117
|
+
"badges_recipients_url": "/badges/167"
|
1118
|
+
},
|
1119
|
+
{
|
1120
|
+
"badge_id": 82,
|
1121
|
+
"rank": "gold",
|
1122
|
+
"name": "sql",
|
1123
|
+
"description": "Earned 1000 upvotes for answers in the sql tag",
|
1124
|
+
"award_count": 5,
|
1125
|
+
"tag_based": true,
|
1126
|
+
"badges_recipients_url": "/badges/82"
|
1127
|
+
},
|
1128
|
+
{
|
1129
|
+
"badge_id": 55,
|
1130
|
+
"rank": "silver",
|
1131
|
+
"name": "sql",
|
1132
|
+
"description": "Earned 400 upvotes for answers in the sql tag",
|
1133
|
+
"award_count": 25,
|
1134
|
+
"tag_based": true,
|
1135
|
+
"badges_recipients_url": "/badges/55"
|
1136
|
+
},
|
1137
|
+
{
|
1138
|
+
"badge_id": 88,
|
1139
|
+
"rank": "silver",
|
1140
|
+
"name": "sql-server",
|
1141
|
+
"description": "Earned 400 upvotes for answers in the sql-server tag",
|
1142
|
+
"award_count": 16,
|
1143
|
+
"tag_based": true,
|
1144
|
+
"badges_recipients_url": "/badges/88"
|
1145
|
+
},
|
1146
|
+
{
|
1147
|
+
"badge_id": 118,
|
1148
|
+
"rank": "gold",
|
1149
|
+
"name": "sql-server",
|
1150
|
+
"description": "Earned 1000 upvotes for answers in the sql-server tag",
|
1151
|
+
"award_count": 4,
|
1152
|
+
"tag_based": true,
|
1153
|
+
"badges_recipients_url": "/badges/118"
|
1154
|
+
},
|
1155
|
+
{
|
1156
|
+
"badge_id": 128,
|
1157
|
+
"rank": "silver",
|
1158
|
+
"name": "sql-server-2005",
|
1159
|
+
"description": "Earned 400 upvotes for answers in the sql-server-2005 tag",
|
1160
|
+
"award_count": 4,
|
1161
|
+
"tag_based": true,
|
1162
|
+
"badges_recipients_url": "/badges/128"
|
1163
|
+
},
|
1164
|
+
{
|
1165
|
+
"badge_id": 158,
|
1166
|
+
"rank": "silver",
|
1167
|
+
"name": "stl",
|
1168
|
+
"description": "Earned 400 upvotes for answers in the stl tag",
|
1169
|
+
"award_count": 2,
|
1170
|
+
"tag_based": true,
|
1171
|
+
"badges_recipients_url": "/badges/158"
|
1172
|
+
},
|
1173
|
+
{
|
1174
|
+
"badge_id": 87,
|
1175
|
+
"rank": "silver",
|
1176
|
+
"name": "string",
|
1177
|
+
"description": "Earned 400 upvotes for answers in the string tag",
|
1178
|
+
"award_count": 1,
|
1179
|
+
"tag_based": true,
|
1180
|
+
"badges_recipients_url": "/badges/87"
|
1181
|
+
},
|
1182
|
+
{
|
1183
|
+
"badge_id": 77,
|
1184
|
+
"rank": "gold",
|
1185
|
+
"name": "subjective",
|
1186
|
+
"description": "Earned 1000 upvotes for answers in the subjective tag",
|
1187
|
+
"award_count": 2,
|
1188
|
+
"tag_based": true,
|
1189
|
+
"badges_recipients_url": "/badges/77"
|
1190
|
+
},
|
1191
|
+
{
|
1192
|
+
"badge_id": 45,
|
1193
|
+
"rank": "silver",
|
1194
|
+
"name": "subjective",
|
1195
|
+
"description": "Earned 400 upvotes for answers in the subjective tag",
|
1196
|
+
"award_count": 13,
|
1197
|
+
"tag_based": true,
|
1198
|
+
"badges_recipients_url": "/badges/45"
|
1199
|
+
},
|
1200
|
+
{
|
1201
|
+
"badge_id": 159,
|
1202
|
+
"rank": "silver",
|
1203
|
+
"name": "subsonic",
|
1204
|
+
"description": "Earned 400 upvotes for answers in the subsonic tag",
|
1205
|
+
"award_count": 1,
|
1206
|
+
"tag_based": true,
|
1207
|
+
"badges_recipients_url": "/badges/159"
|
1208
|
+
},
|
1209
|
+
{
|
1210
|
+
"badge_id": 98,
|
1211
|
+
"rank": "silver",
|
1212
|
+
"name": "svn",
|
1213
|
+
"description": "Earned 400 upvotes for answers in the svn tag",
|
1214
|
+
"award_count": 2,
|
1215
|
+
"tag_based": true,
|
1216
|
+
"badges_recipients_url": "/badges/98"
|
1217
|
+
},
|
1218
|
+
{
|
1219
|
+
"badge_id": 109,
|
1220
|
+
"rank": "silver",
|
1221
|
+
"name": "templates",
|
1222
|
+
"description": "Earned 400 upvotes for answers in the templates tag",
|
1223
|
+
"award_count": 1,
|
1224
|
+
"tag_based": true,
|
1225
|
+
"badges_recipients_url": "/badges/109"
|
1226
|
+
},
|
1227
|
+
{
|
1228
|
+
"badge_id": 139,
|
1229
|
+
"rank": "silver",
|
1230
|
+
"name": "tsql",
|
1231
|
+
"description": "Earned 400 upvotes for answers in the tsql tag",
|
1232
|
+
"award_count": 4,
|
1233
|
+
"tag_based": true,
|
1234
|
+
"badges_recipients_url": "/badges/139"
|
1235
|
+
},
|
1236
|
+
{
|
1237
|
+
"badge_id": 200,
|
1238
|
+
"rank": "gold",
|
1239
|
+
"name": "tsql",
|
1240
|
+
"description": "Earned 1000 upvotes for answers in the tsql tag",
|
1241
|
+
"award_count": 1,
|
1242
|
+
"tag_based": true,
|
1243
|
+
"badges_recipients_url": "/badges/200"
|
1244
|
+
},
|
1245
|
+
{
|
1246
|
+
"badge_id": 130,
|
1247
|
+
"rank": "silver",
|
1248
|
+
"name": "unit-testing",
|
1249
|
+
"description": "Earned 400 upvotes for answers in the unit-testing tag",
|
1250
|
+
"award_count": 3,
|
1251
|
+
"tag_based": true,
|
1252
|
+
"badges_recipients_url": "/badges/130"
|
1253
|
+
},
|
1254
|
+
{
|
1255
|
+
"badge_id": 154,
|
1256
|
+
"rank": "gold",
|
1257
|
+
"name": "vb.net",
|
1258
|
+
"description": "Earned 1000 upvotes for answers in the vb.net tag",
|
1259
|
+
"award_count": 1,
|
1260
|
+
"tag_based": true,
|
1261
|
+
"badges_recipients_url": "/badges/154"
|
1262
|
+
},
|
1263
|
+
{
|
1264
|
+
"badge_id": 58,
|
1265
|
+
"rank": "silver",
|
1266
|
+
"name": "vb.net",
|
1267
|
+
"description": "Earned 400 upvotes for answers in the vb.net tag",
|
1268
|
+
"award_count": 4,
|
1269
|
+
"tag_based": true,
|
1270
|
+
"badges_recipients_url": "/badges/58"
|
1271
|
+
},
|
1272
|
+
{
|
1273
|
+
"badge_id": 166,
|
1274
|
+
"rank": "silver",
|
1275
|
+
"name": "version-control",
|
1276
|
+
"description": "Earned 400 upvotes for answers in the version-control tag",
|
1277
|
+
"award_count": 2,
|
1278
|
+
"tag_based": true,
|
1279
|
+
"badges_recipients_url": "/badges/166"
|
1280
|
+
},
|
1281
|
+
{
|
1282
|
+
"badge_id": 101,
|
1283
|
+
"rank": "silver",
|
1284
|
+
"name": "visual-studio",
|
1285
|
+
"description": "Earned 400 upvotes for answers in the visual-studio tag",
|
1286
|
+
"award_count": 2,
|
1287
|
+
"tag_based": true,
|
1288
|
+
"badges_recipients_url": "/badges/101"
|
1289
|
+
},
|
1290
|
+
{
|
1291
|
+
"badge_id": 203,
|
1292
|
+
"rank": "silver",
|
1293
|
+
"name": "visual-studio-2008",
|
1294
|
+
"description": "Earned 400 upvotes for answers in the visual-studio-2008 tag",
|
1295
|
+
"award_count": 1,
|
1296
|
+
"tag_based": true,
|
1297
|
+
"badges_recipients_url": "/badges/203"
|
1298
|
+
},
|
1299
|
+
{
|
1300
|
+
"badge_id": 112,
|
1301
|
+
"rank": "silver",
|
1302
|
+
"name": "wcf",
|
1303
|
+
"description": "Earned 400 upvotes for answers in the wcf tag",
|
1304
|
+
"award_count": 1,
|
1305
|
+
"tag_based": true,
|
1306
|
+
"badges_recipients_url": "/badges/112"
|
1307
|
+
},
|
1308
|
+
{
|
1309
|
+
"badge_id": 187,
|
1310
|
+
"rank": "gold",
|
1311
|
+
"name": "wcf",
|
1312
|
+
"description": "Earned 1000 upvotes for answers in the wcf tag",
|
1313
|
+
"award_count": 1,
|
1314
|
+
"tag_based": true,
|
1315
|
+
"badges_recipients_url": "/badges/187"
|
1316
|
+
},
|
1317
|
+
{
|
1318
|
+
"badge_id": 138,
|
1319
|
+
"rank": "silver",
|
1320
|
+
"name": "windows-mobile",
|
1321
|
+
"description": "Earned 400 upvotes for answers in the windows-mobile tag",
|
1322
|
+
"award_count": 1,
|
1323
|
+
"tag_based": true,
|
1324
|
+
"badges_recipients_url": "/badges/138"
|
1325
|
+
},
|
1326
|
+
{
|
1327
|
+
"badge_id": 149,
|
1328
|
+
"rank": "silver",
|
1329
|
+
"name": "winforms",
|
1330
|
+
"description": "Earned 400 upvotes for answers in the winforms tag",
|
1331
|
+
"award_count": 2,
|
1332
|
+
"tag_based": true,
|
1333
|
+
"badges_recipients_url": "/badges/149"
|
1334
|
+
},
|
1335
|
+
{
|
1336
|
+
"badge_id": 164,
|
1337
|
+
"rank": "gold",
|
1338
|
+
"name": "wpf",
|
1339
|
+
"description": "Earned 1000 upvotes for answers in the wpf tag",
|
1340
|
+
"award_count": 1,
|
1341
|
+
"tag_based": true,
|
1342
|
+
"badges_recipients_url": "/badges/164"
|
1343
|
+
},
|
1344
|
+
{
|
1345
|
+
"badge_id": 76,
|
1346
|
+
"rank": "silver",
|
1347
|
+
"name": "wpf",
|
1348
|
+
"description": "Earned 400 upvotes for answers in the wpf tag",
|
1349
|
+
"award_count": 6,
|
1350
|
+
"tag_based": true,
|
1351
|
+
"badges_recipients_url": "/badges/76"
|
1352
|
+
},
|
1353
|
+
{
|
1354
|
+
"badge_id": 105,
|
1355
|
+
"rank": "silver",
|
1356
|
+
"name": "xml",
|
1357
|
+
"description": "Earned 400 upvotes for answers in the xml tag",
|
1358
|
+
"award_count": 4,
|
1359
|
+
"tag_based": true,
|
1360
|
+
"badges_recipients_url": "/badges/105"
|
1361
|
+
},
|
1362
|
+
{
|
1363
|
+
"badge_id": 153,
|
1364
|
+
"rank": "silver",
|
1365
|
+
"name": "xslt",
|
1366
|
+
"description": "Earned 400 upvotes for answers in the xslt tag",
|
1367
|
+
"award_count": 2,
|
1368
|
+
"tag_based": true,
|
1369
|
+
"badges_recipients_url": "/badges/153"
|
1370
|
+
}
|
1371
|
+
]
|
1372
|
+
}
|