150 lines
3.9 KiB
Ruby
150 lines
3.9 KiB
Ruby
require "text.rb"
|
|
require "latex.rb"
|
|
|
|
class ABET_CV < CV
|
|
|
|
def initialize(output)
|
|
super("okennedy", output,
|
|
title: "ABET CV: Oliver Kennedy",
|
|
include_pending_papers: true,
|
|
include_pending_grants: true,
|
|
include_rejected_grants: false,
|
|
include_blurb: false,
|
|
since: {
|
|
employment: 2012,
|
|
service: 2017,
|
|
publications: 2010
|
|
}
|
|
)
|
|
|
|
end
|
|
|
|
def do_section(title)
|
|
noindent
|
|
textbf { puts title }
|
|
yield
|
|
puts ""
|
|
medskip
|
|
end
|
|
|
|
def make_section(title)
|
|
end
|
|
|
|
def gen()
|
|
documentclass("12pt", "article")
|
|
usepackage "fullpage"
|
|
usepackage "bibentry"
|
|
usepackage "enumitem"
|
|
puts_direct("\\usepackage[margin=.75in]{geometry}")
|
|
|
|
puts_direct("\\setlist[itemize,1]{leftmargin=\\dimexpr 26pt-.2in}")
|
|
|
|
|
|
document do
|
|
pagestyle "empty"
|
|
|
|
do_section("Name") do
|
|
puts "Oliver Kennedy"
|
|
end
|
|
|
|
do_section("Education") do
|
|
puts_direct "\\vspace*{-3mm}"
|
|
render_education
|
|
end
|
|
|
|
do_section("Academic Experience") do
|
|
puts_direct "\\vspace*{-3mm}"
|
|
render_employment_history(@data["employment"].take(2))
|
|
end
|
|
|
|
do_section("Non-academic Experience") do
|
|
puts "None"
|
|
end
|
|
|
|
do_section("Certifications or professional registrations") do
|
|
puts "None"
|
|
end
|
|
|
|
do_section("Current membership in professional organizations") do
|
|
puts "ACM, IEEE"
|
|
end
|
|
|
|
do_section("Honors and awards") do
|
|
puts_direct "\\vspace*{-3mm}"
|
|
render_honors
|
|
end
|
|
|
|
do_section("Service activities") do
|
|
puts ""
|
|
noindent
|
|
textit { puts "Leadership:" }
|
|
puts(@data["chairs"]
|
|
.map do |meta|
|
|
"#{LabMetadata.venue_name(meta, size: :short)} (#{duration(meta)})"
|
|
end.join(", "))
|
|
|
|
puts ""
|
|
noindent
|
|
textit { puts "Program Committees: " }
|
|
puts(@data["reviewer"]
|
|
.select { |r| r.fetch("pc", true) }
|
|
.map do |meta|
|
|
"#{LabMetadata.venue_name(meta, size: :short)} (#{duration(meta)})"
|
|
end.join(", "))
|
|
|
|
puts ""
|
|
noindent
|
|
textit { puts "Reviewer: " }
|
|
puts(@data["reviewer"]
|
|
.select { |r| r.fetch("pc", false) }
|
|
.map do |meta|
|
|
"#{LabMetadata.venue_name(meta, size: :short)} (#{duration(meta)})"
|
|
end.join(", "))
|
|
|
|
puts ""
|
|
noindent
|
|
textit { puts "Outreach: " }
|
|
puts(@data["volunteering"]
|
|
.map do |meta|
|
|
"#{meta["org"]} (#{duration(meta)})"
|
|
end.join(", "))
|
|
|
|
puts ""
|
|
noindent
|
|
textit { puts "Departmental Service: " }
|
|
puts(@data["service"]["dept"][0]["service"]
|
|
.map do |meta|
|
|
"#{meta["org"]} (#{duration(meta)})"
|
|
end.join(", "))
|
|
end
|
|
|
|
do_section("Recent publications and presentations") do
|
|
top_venues = [ "SIGMOD", "ICDE", "CIDR" ]
|
|
top_pubs =
|
|
LabMetadata.publications_for(@who)
|
|
.select do |pub|
|
|
get_venue_type(pub) == "journal" or
|
|
( top_venues.include?(pub["venue"]) and
|
|
not pub.has_key? "track" )
|
|
end
|
|
.select { |pub| pub["year"].to_i >= @since[:publications] }
|
|
.each do |pub|
|
|
puts ""
|
|
noindent
|
|
textit {
|
|
puts "``#{pub["title"]}\""
|
|
}
|
|
puts " --- #{pub["authors"].join(", ")} (#{pub["venue"]} #{pub["year"]})"
|
|
end
|
|
# .map { |pub| pub["title"] }
|
|
# .join(", ")
|
|
# puts "#{top_pubs}"
|
|
end
|
|
|
|
do_section("Recent professional development activities") do
|
|
puts "None"
|
|
end
|
|
|
|
end
|
|
end
|
|
end |