Tweaking how pubs are rendered
parent
abdbecc777
commit
6d193b122d
|
@ -243,6 +243,10 @@ module LabMetadata
|
|||
@@publication_erb.result(b)
|
||||
end
|
||||
|
||||
def LabMetadata.render_pubs(publist)
|
||||
"<dl>\n"+publist.map { |pub| render_pub(pub) }.join("\n")+"\n</dt>"
|
||||
end
|
||||
|
||||
def LabMetadata.info_for_affiliate(name)
|
||||
info = { "canonical" => name }
|
||||
while(info.include? "canonical")
|
||||
|
|
|
@ -13,22 +13,20 @@ links = (
|
|||
%>
|
||||
|
||||
|
||||
<li class="list-group-item">
|
||||
<h4 class="list-group-item-heading"><%= pub["title"] %></h4>
|
||||
<p class="list-group-item-text">
|
||||
<div class="authors"><%= pub["authors"].map { |author| LabMetadata::link_for author }.join(", ") %></div>
|
||||
<div class="metadata" style="font-weight: bold;"><span class="venue"><%= pub["venue"] %> <%= pub["year"] %></span>
|
||||
<%
|
||||
type = LabMetadata.complete_venue(pub)["type"]
|
||||
case type
|
||||
when nil, "conference", "journal" then "ignore"
|
||||
when "techreport" then %>(Tech Report)<%
|
||||
else %>(<%= type.capitalize %>)<%
|
||||
end
|
||||
%> <span class="paper_links">[ <%= links.join(" | ") %> ]</span>
|
||||
</div>
|
||||
<div id="<%=bibtexdiv%>" style="display: none">
|
||||
<pre class="well" style="margin-left: auto; margin-right: auto; font-size: 8pt;"><%= LabMetadata.bibtex_for pub %></pre>
|
||||
</div>
|
||||
</p>
|
||||
</li>
|
||||
<dt style="margin-top: 10px"><%= pub["title"] %></dt>
|
||||
<dd style="padding-left: 10px">
|
||||
<div class="authors"><%= pub["authors"].map { |author| LabMetadata::link_for author }.join(", ") %></div>
|
||||
<div class="metadata" style="font-weight: bold;"><span class="venue"><%= pub["venue"] %> <%= pub["year"] %></span>
|
||||
<%
|
||||
type = LabMetadata.complete_venue(pub)["type"]
|
||||
case type
|
||||
when nil, "conference", "journal" then "ignore"
|
||||
when "techreport" then %>(Tech Report)<%
|
||||
else %>(<%= type.capitalize %>)<%
|
||||
end
|
||||
%> <span class="paper_links">[ <%= links.join(" | ") %> ]</span>
|
||||
</div>
|
||||
<div id="<%=bibtexdiv%>" style="display: none" class="select-on-click">
|
||||
<pre class="well" style="margin-left: auto; margin-right: auto; margin-top: 10px; font-size: 8pt;"><%= LabMetadata.bibtex_for pub %></pre>
|
||||
</div>
|
||||
</dd>
|
|
@ -6,15 +6,11 @@ title: Publications
|
|||
<div class="paper_list">
|
||||
<% $db["publications"].map { |pub| [pub["year"].to_i, pub] }.reduce.each do |year, pubs| %>
|
||||
<div class="panel">
|
||||
<div class="panel-heading">
|
||||
<center><h2><%= year %></h2></center>
|
||||
</div><div class="panel-body">
|
||||
<% pubs.each do |pub|
|
||||
if pub.fetch("visible", true) %>
|
||||
<%= LabMetadata.render_pub pub %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
</div>
|
||||
<div class="panel-heading">
|
||||
<center><h2><%= year %></h2></center>
|
||||
</div><div class="panel-body">
|
||||
<%= LabMetadata.render_pubs(pubs.clone.keep_if { |pub| pub.fetch("visible", true) }) %>
|
||||
</div>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
|
@ -5,9 +5,10 @@ twitter: xthemage
|
|||
scholar: 9Q9tiCsAAAAJ
|
||||
dblp: hd/k/Kennedy:Oliver
|
||||
cv: http://odin.cse.buffalo.edu/artifacts/okennedy.pdf
|
||||
pic: ../assets/people/oliver.jpg
|
||||
pic_w: 230
|
||||
pic_h: 346
|
||||
pic:
|
||||
file: ../assets/people/oliver.jpg
|
||||
width: 230
|
||||
height: 346
|
||||
---
|
||||
|
||||
Oliver Kennedy is an Assistant Professor at the University at Buffalo. Oliver's primary area of research is Databases, although his research interests frequently cross over into Programming Languages and Datastructures. His work focuses on self-service analytics, making messy data, schema design, and physical layout decisions more approachable. Through real-world usage metrics gathered from industry collaborations and the use of real-world testbeds, Oliver's work aims to address the practical problems faced by data consumers everywhere. His projects include a UI for ad-hoc cleaning and analytics called <a href="http://www.mimirdb.info">Mimir</a> and a universal, <a href="/research/astral/index.html">Just In-Time Datastructure</a>.
|
||||
|
|
|
@ -24,11 +24,7 @@ title: ASTral
|
|||
</ul>
|
||||
|
||||
<h2>Publications</h2>
|
||||
|
||||
<ul class="paper_list">
|
||||
<% $db["publications"].
|
||||
where { |pub| pub.fetch("projects", []).include? "astral" }.
|
||||
each do |pub| %>
|
||||
<%= LabMetadata.render_pub(pub) %>
|
||||
<% end %>
|
||||
</ul>
|
||||
<%= LabMetadata.render_pubs(
|
||||
$db["publications"].
|
||||
where { |pub| pub.fetch("projects", []).include? "astral" }
|
||||
) %>
|
||||
|
|
|
@ -22,12 +22,6 @@ The PocketData project explores how smartphones make use of embedded databases i
|
|||
|
||||
------
|
||||
|
||||
## <center><a href="http://blue.cse.buffalo.edu/projects/maybe/"><tt>maybe</tt> Statements</a></center>
|
||||
|
||||
One of the reasons programming mobile systems is so hard is the uncertainty created by the wide variety of environments a typical app encounters at runtime. Programmers should not be forced to make choices about runtime environments at development time. The Maybe project aims to create an infrastructure that developers can use to analyze and optimize program behavior __after__ it enters the wild.
|
||||
|
||||
------
|
||||
|
||||
<h1 style="margin-top:60px; margin-bottom:40px;">Older Projects</h1>
|
||||
|
||||
## <center><a href="http://www.dbtoaster.org"><img src="../assets/logos/dbtoaster-logo.gif" alt="dbtoaster-logo" width="174" height="80" /></a></center>
|
||||
|
|
|
@ -22,11 +22,10 @@ datasets:
|
|||
<h2>Publications</h2>
|
||||
|
||||
<ul class="paper_list">
|
||||
<% $db["publications"].
|
||||
where { |pub| pub.fetch("projects", []).include? "insider-threats" }.
|
||||
each do |pub| %>
|
||||
<%= LabMetadata.render_pub(pub) %>
|
||||
<% end %>
|
||||
<%= LabMetadata.render_pubs(
|
||||
$db["publications"].
|
||||
where { |pub| pub.fetch("projects", []).include? "insider-threats" }
|
||||
) %>
|
||||
</ul>
|
||||
|
||||
<hr />
|
||||
|
|
|
@ -115,13 +115,9 @@ acronym: Modular Interface for Managing Incomplete Records
|
|||
<hr/>
|
||||
|
||||
<h2>Publications</h2>
|
||||
<div class="paper_list">
|
||||
<% $db["publications"].
|
||||
where { |pub| pub.fetch("projects", []).include? "mimir" }.
|
||||
where { |pub| case LabMetadata::complete_venue(pub)["type"] when "conference", "journal", "workshop" then true else false end }.
|
||||
sort { |a, b| b["year"].to_i <=> a["year"].to_i }.
|
||||
take(10).
|
||||
each do |pub| %>
|
||||
<%= LabMetadata.render_pub(pub) %>
|
||||
<% end %>
|
||||
</div>
|
||||
<%= LabMetadata.render_pubs(
|
||||
$db["publications"].
|
||||
where { |pub| pub.fetch("projects", []).include? "mimir" }.
|
||||
where { |pub| case LabMetadata::complete_venue(pub)["type"] when "conference", "journal", "workshop" then true else false end }.
|
||||
sort { |a, b| b["year"].to_i <=> a["year"].to_i }.
|
||||
take(10)) %>
|
||||
|
|
|
@ -21,14 +21,10 @@ title: PocketData
|
|||
<hr />
|
||||
|
||||
<h2>Publications</h2>
|
||||
|
||||
<ul class="paper_list">
|
||||
<% $db["publications"].
|
||||
where { |pub| pub.fetch("projects", []).include? "pocketdata" }.
|
||||
each do |pub| %>
|
||||
<%= LabMetadata.render_pub(pub) %>
|
||||
<% end %>
|
||||
</ul>
|
||||
<%= LabMetadata.render_pubs(
|
||||
$db["publications"].
|
||||
where { |pub| pub.fetch("projects", []).include? "pocketdata" }
|
||||
) %>
|
||||
|
||||
<h2>Resources</h2>
|
||||
|
||||
|
|
|
@ -95,5 +95,44 @@
|
|||
})();
|
||||
</script>
|
||||
<!-- End Piwik Code -->
|
||||
<!-- Click select. Liberally borrowed from DBLP -->
|
||||
<script type="text/javascript">
|
||||
function getSelectionText(){
|
||||
var b = "";
|
||||
if (window.getSelection) {
|
||||
b = window.getSelection().toString()
|
||||
} else {
|
||||
if (document.selection && document.selection.type != "Control") {
|
||||
b = document.selection.createRange().text
|
||||
}
|
||||
}
|
||||
return b
|
||||
}
|
||||
function selectText(c) {
|
||||
var e = document, b, d;
|
||||
if (e.body.createTextRange) {
|
||||
b = document.body.createTextRange();
|
||||
b.moveToElementText(c);
|
||||
b.select()
|
||||
} else {
|
||||
if (window.getSelection) {
|
||||
d = window.getSelection();
|
||||
b = document.createRange();
|
||||
b.selectNodeContents(c);
|
||||
d.removeAllRanges();
|
||||
d.addRange(b)
|
||||
}
|
||||
}
|
||||
}
|
||||
$(".select-on-click").click(function() {
|
||||
var c = getSelectionText();
|
||||
if (!c || c.length == 0) {
|
||||
selectText($(this)[0])
|
||||
}
|
||||
});
|
||||
if (!$(".select-on-click").prop("title")) {
|
||||
$(".select-on-click").prop("title", "click to select text")
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -4,7 +4,11 @@ name = if defined? name then name else "A Mysterious Stranger" end
|
|||
%>
|
||||
<div class="person">
|
||||
<% if defined? pic %>
|
||||
<img class="photo" src="<%=pic%>" width="<%=pic_w%>" height="<%=pic_h%>" />
|
||||
<% if pic.is_a? Hash %>
|
||||
<img class="photo" src="<%=pic["file"]%>" width="<%=pic["width"]%>" height="<%=pic["height"]%>" />
|
||||
<% elsif pic.is_a? String %>
|
||||
<img class="photo" src="<%=pic%>" />
|
||||
<% end %>
|
||||
<% end %>
|
||||
<h1><%= name %></h1>
|
||||
|
||||
|
@ -19,8 +23,6 @@ name = if defined? name then name else "A Mysterious Stranger" end
|
|||
<%= body %>
|
||||
|
||||
<h2>Publications</h2>
|
||||
<div class="paper_list">
|
||||
<% LabMetadata::publications_for(name).each { |pub| %> <%= LabMetadata.render_pub(pub) %> <% } %>
|
||||
</div>
|
||||
<%= LabMetadata::render_pubs(LabMetadata::publications_for(name)) %>
|
||||
|
||||
</div>
|
Loading…
Reference in New Issue