Reporting for UB
parent
8460bb0b07
commit
e92845d04e
5
Rakefile
5
Rakefile
|
@ -7,6 +7,7 @@ require "util.rb"
|
|||
require "cv.rb"
|
||||
require "nsfcp.rb"
|
||||
require "nsfconflicts.rb"
|
||||
require "ubreporting.rb"
|
||||
require "bootstrap_markdown.rb"
|
||||
require "disqus.rb"
|
||||
|
||||
|
@ -264,6 +265,10 @@ file "artifacts/grant_report.txt" do
|
|||
end
|
||||
task :report => "artifacts/grant_report.txt"
|
||||
|
||||
task :ub_report do
|
||||
UBSOE::generate_yearly_report(2017)
|
||||
end
|
||||
|
||||
file "artifacts/nsf_merit_blurb.txt" => [ $db.files, "artifacts", "Rakefile" ].flatten do
|
||||
# File.open("artifacts/nsf_related_blurb.txt", "w+") do |fh|
|
||||
citable_pubs =
|
||||
|
|
|
@ -43,10 +43,10 @@
|
|||
"venue":"ICDE",
|
||||
"year":2019,
|
||||
"projects" : [ "mimir" ],
|
||||
"status" : "planned"
|
||||
"status" : "submitted"
|
||||
},
|
||||
{
|
||||
"title" : "Just-In-Time Adaptive Indexes",
|
||||
"title" : "Just-In-Time Index Transitions",
|
||||
"authors": [
|
||||
"Darshana Balakrishnan",
|
||||
"Saurav Singhi",
|
||||
|
@ -56,7 +56,7 @@
|
|||
"venue":"ICDE",
|
||||
"year":2019,
|
||||
"projects" : [ "astral" ],
|
||||
"status" : "planned"
|
||||
"status" : "submitted"
|
||||
},
|
||||
{
|
||||
"title" : "Understanding Mobile Data Management Systems",
|
||||
|
|
|
@ -4,6 +4,12 @@
|
|||
"type" : "workshop",
|
||||
"selectivity" : {
|
||||
"2018" : 0.196428571
|
||||
},
|
||||
"years" : {
|
||||
"2018" : {
|
||||
"location" : "Boston, MA, USA",
|
||||
"date" : "January 19, 2018"
|
||||
}
|
||||
}
|
||||
},
|
||||
"ICDT" : {
|
||||
|
@ -27,6 +33,12 @@
|
|||
"type" : "conference",
|
||||
"selectivity" : {
|
||||
"2017" : 0.218 // Source: acceptance email
|
||||
},
|
||||
"years" : {
|
||||
"2017" : {
|
||||
"location" : "Venice, Italy",
|
||||
"date" : "March 21, 2017 through March 24, 2017"
|
||||
}
|
||||
}
|
||||
},
|
||||
"UB-MS" : {
|
||||
|
@ -63,6 +75,12 @@
|
|||
"startyear" : 2016,
|
||||
"selectivity" : {
|
||||
"2016" : 0.5
|
||||
},
|
||||
"years" : {
|
||||
"2018" : {
|
||||
"location" : "Houston, TX, USA",
|
||||
"date" : "July 10, 2018"
|
||||
}
|
||||
}
|
||||
},
|
||||
"PWEEK" : {
|
||||
|
@ -157,11 +175,23 @@
|
|||
"2007" : 0.276, // source: http://www.cs.duke.edu/~shivnath/publications.html
|
||||
"2005" : 0.129 // source: http://www.cs.duke.edu/~shivnath/publications.html
|
||||
},
|
||||
"years" : {
|
||||
"2017" : {
|
||||
"location" : "San Diego, CA, USA",
|
||||
"date" : "April 19, 2017 through April 22, 2017"
|
||||
}
|
||||
},
|
||||
"tracks" : {
|
||||
"panel" : {
|
||||
"fullname" : "ICDE Panels",
|
||||
"type" : "panel",
|
||||
"acronym" : "Panel"
|
||||
"acronym" : "Panel",
|
||||
"years" : {
|
||||
"2017" : {
|
||||
"location" : "San Diego, CA, USA",
|
||||
"date" : "April 19, 2017 through April 22, 2017"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
@ -1,6 +1,12 @@
|
|||
{
|
||||
"fullname" : "The ACM SIGMOD/PODS Conference",
|
||||
"type" : "conference",
|
||||
"years" : {
|
||||
"2017" : {
|
||||
"location" : "Chicago, IL, USA",
|
||||
"date" : "May 14, 2017 through May 19, 2017"
|
||||
}
|
||||
},
|
||||
"selectivity" : {
|
||||
"2017" : 0.196, // Source: Email to PC from Dan Suciu; March 9, 2017
|
||||
// Canonical Source: http://dl.acm.org/citation.cfm?id=2882903&CFID=875232679&CFTOKEN=83069453
|
||||
|
|
18
lib/cv.rb
18
lib/cv.rb
|
@ -556,23 +556,7 @@ class CV < Latex::Builder
|
|||
end
|
||||
|
||||
def get_avg_selectivity(record, rounding = 2)
|
||||
year = record["year"].to_s
|
||||
v = LabMetadata.complete_venue(record)
|
||||
sel_data = v["selectivity"]
|
||||
if sel_data.nil?
|
||||
"unavailable"
|
||||
elsif sel_data["average"].is_a? Numeric
|
||||
"approximately #{(sel_data["average"]*100).round(rounding)}%"
|
||||
elsif not sel_data["average"].nil?
|
||||
sel_data["average"]
|
||||
else
|
||||
"approximately #{
|
||||
(sel_data.keys.
|
||||
delete_if { |k| /a-zA-Z/ =~ k }.
|
||||
map { |k| sel_data[k].to_f }.
|
||||
avg * 100).round(rounding)
|
||||
}%"
|
||||
end
|
||||
LabMetadata.venue_selectivity(record, rounding: rounding)
|
||||
end
|
||||
|
||||
def render_paper_title(title)
|
||||
|
|
|
@ -192,19 +192,25 @@ module LabMetadata
|
|||
def LabMetadata.complete_venue(record)
|
||||
v = record["venue"];
|
||||
t = record["track"];
|
||||
y = record["year"]
|
||||
v = $db["venues"][v];
|
||||
## if there is no additional metadata for the venue, we're done.
|
||||
return record if v.nil?;
|
||||
## if there's no request for a subtrack, merge with what we have.
|
||||
return v.clone.merge record if t.nil?;
|
||||
v = v["tracks"]
|
||||
## if there's no additional metadata for any tracks, we're done
|
||||
return record if v.nil?;
|
||||
v = v[t]
|
||||
## if there's no additional metadata for this specific track, we're done
|
||||
return record if v.nil?;
|
||||
## otherwise... merge with what we have
|
||||
return v.clone.merge record
|
||||
## if there's no request for a subtrack or year, merge with what we have.
|
||||
result =
|
||||
if t.nil? then v.clone.merge record
|
||||
else
|
||||
tracks = v["tracks"]
|
||||
if tracks.nil? then record
|
||||
else tracks[t].clone.merge record
|
||||
end
|
||||
end
|
||||
|
||||
if result.has_key? "years" and not y.nil? and result["years"].has_key? y.to_s
|
||||
result = result.merge result["years"][y.to_s]
|
||||
end
|
||||
|
||||
return result
|
||||
end
|
||||
|
||||
def LabMetadata.venue_name(record, args = {})
|
||||
|
@ -219,6 +225,27 @@ module LabMetadata
|
|||
end
|
||||
end
|
||||
|
||||
def LabMetadata.venue_selectivity(record, params = {})
|
||||
rounding = params.fetch(:rounding, 2)
|
||||
year = record["year"].to_s
|
||||
v = LabMetadata.complete_venue(record)
|
||||
sel_data = v["selectivity"]
|
||||
if sel_data.nil?
|
||||
"unavailable"
|
||||
elsif sel_data["average"].is_a? Numeric
|
||||
"approximately #{(sel_data["average"]*100).round(rounding)}%"
|
||||
elsif not sel_data["average"].nil?
|
||||
sel_data["average"]
|
||||
else
|
||||
"approximately #{
|
||||
(sel_data.keys.
|
||||
delete_if { |k| /a-zA-Z/ =~ k }.
|
||||
map { |k| sel_data[k].to_f }.
|
||||
avg * 100).round(rounding)
|
||||
}%"
|
||||
end
|
||||
end
|
||||
|
||||
def LabMetadata.abbreviate_person(name)
|
||||
n = name.split(/ +/)
|
||||
last = n.pop
|
||||
|
|
|
@ -0,0 +1,67 @@
|
|||
|
||||
|
||||
module UBSOE
|
||||
def UBSOE::generate_yearly_report(since_year)
|
||||
|
||||
puts "-------------------------------------------------------"
|
||||
puts "| Publications |"
|
||||
puts "-------------------------------------------------------"
|
||||
puts ""
|
||||
#
|
||||
# Include journal/conference/publication titles, authors,
|
||||
# event dates and locations, acceptance rate and number
|
||||
# of pages as appropriate
|
||||
#
|
||||
|
||||
pubs = $db["publications"]
|
||||
pubs += $db["cv/okennedy/publications_submitted"]
|
||||
.select { |pub| pub["status"] == "submitted"}
|
||||
.map { |pub| pub.merge({ "type" => "submitted" }) }
|
||||
|
||||
puts(pubs
|
||||
.select { |pub| pub["year"].to_i >= since_year.to_i }
|
||||
.map { |pub|
|
||||
pub_string = [
|
||||
"\"#{pub["title"]}\"",
|
||||
pub["authors"].join(", "),
|
||||
LabMetadata.venue_name(pub),
|
||||
]
|
||||
|
||||
v = LabMetadata.complete_venue(pub)
|
||||
pub_string.push("#{pub["length"]} pages") if pub.has_key? "length"
|
||||
pub_string.push("Acceptance rate #{LabMetadata.venue_selectivity(pub)}") unless v["type"] == "techreport"
|
||||
pub_string.push(v["location"]) if v.has_key? "location"
|
||||
pub_string.push(v["date"]) if v.has_key? "date"
|
||||
|
||||
pub_string.join("\n")
|
||||
}.join("\n\n------\n\n")
|
||||
)
|
||||
puts ""
|
||||
puts ""
|
||||
puts "-------------------------------------------------------"
|
||||
puts "| Presentations |"
|
||||
puts "-------------------------------------------------------"
|
||||
puts ""
|
||||
puts(
|
||||
$db["cv/okennedy/talks"]
|
||||
.select { |talk| if /([0-9]{4})/ =~ talk["date"] then $1.to_i >= since_year end }
|
||||
.map { |talk| "#{talk["talk"]}\n#{talk["date"]}\n#{talk["venue"]}" }
|
||||
.join("\n\n------\n\n")
|
||||
)
|
||||
puts ""
|
||||
puts ""
|
||||
puts "-------------------------------------------------------"
|
||||
puts "| Advising |"
|
||||
puts "-------------------------------------------------------"
|
||||
puts ""
|
||||
puts
|
||||
puts(
|
||||
$db["lab/members"]
|
||||
.map { |k, person|
|
||||
"#{person["name"]}\n#{person["ubit"]}\n#{person["status"]}"
|
||||
}
|
||||
.join("\n\n------\n\n")
|
||||
)
|
||||
end
|
||||
|
||||
end
|
Loading…
Reference in New Issue