Making articles render properly
32
build.js
|
@ -31,27 +31,38 @@ var renderTeX = require('./stages/render-tex.js');
|
|||
var metalsmith = Metalsmith(__dirname)
|
||||
.source('./src')
|
||||
.destination('./site')
|
||||
// Disable posting of drafts
|
||||
.use(drafts())
|
||||
// Generate Cache-Busted CSS files
|
||||
.use(fingerprint({
|
||||
pattern: 'css/*.css'
|
||||
}))
|
||||
// Load metadata: CV, Lab Members/Affiliates, and Pubs
|
||||
// Required for buildPubs
|
||||
.use(metadata({
|
||||
okennedy: "metadata/okennedy.json",
|
||||
odinLab: "metadata/lab.json",
|
||||
altPubs: "metadata/publications.json",
|
||||
}))
|
||||
// Helper Stage: Render Publication Details (required for inline rendering)
|
||||
.use(buildPubs())
|
||||
// Extract Path to Root (required for inline rendering)
|
||||
.use(rootpath())
|
||||
// Extract Dates from Filenames (required for inline rendering)
|
||||
.use(filenamedate(false))
|
||||
// Render Page-Specific Handlebars
|
||||
.use(inplace({
|
||||
engine: "handlebars"
|
||||
}))
|
||||
.use(filenamedate(false))
|
||||
// Render Markdown
|
||||
.use(markdown({
|
||||
pattern: "**/*.md"
|
||||
}))
|
||||
// Load Path Information (Must come After Markdown Rendering)
|
||||
.use(paths({
|
||||
property: "paths"
|
||||
}))
|
||||
// Group News Article Collections
|
||||
.use(collections({
|
||||
news: {
|
||||
pattern: 'news/*.html',
|
||||
|
@ -66,6 +77,20 @@ var metalsmith = Metalsmith(__dirname)
|
|||
limit: 3
|
||||
}
|
||||
}))
|
||||
// Render News Article Headers
|
||||
.use(branch('rants/**/*.html')
|
||||
.use(layouts({
|
||||
engine: "handlebars",
|
||||
default: "article.hbs"
|
||||
}))
|
||||
)
|
||||
.use(branch('news/**/*.html')
|
||||
.use(layouts({
|
||||
engine: "handlebars",
|
||||
default: "article.hbs"
|
||||
}))
|
||||
)
|
||||
// Render HTML
|
||||
.use(branch()
|
||||
.pattern('**/*.html')
|
||||
.use(renderTeX())
|
||||
|
@ -74,11 +99,14 @@ var metalsmith = Metalsmith(__dirname)
|
|||
default: "default.hbs"
|
||||
}))
|
||||
)
|
||||
// Validate
|
||||
.use(linkchecker({
|
||||
allowRegex: /^(\/resources|\/slides)/,
|
||||
allowRedirect: true
|
||||
}))
|
||||
// .use(uglify())
|
||||
// Compress
|
||||
.use(uglify())
|
||||
// Compile
|
||||
.build(function(err){
|
||||
if (err) throw err;
|
||||
});
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
|
||||
<div class="article">
|
||||
<div class="navigation">
|
||||
{{#if previous}}
|
||||
<a href="{{previous.paths.base}}">
|
||||
<span style="float: left">
|
||||
<span class="arrow">⟵</span>
|
||||
{{previous.title}}
|
||||
<span class="arrow">—</span>
|
||||
</span>
|
||||
</a>
|
||||
{{/if}}
|
||||
{{#if next}}
|
||||
<a href="{{next.paths.base}}">
|
||||
<span style="float: right">
|
||||
<span class="arrow">—</span>
|
||||
{{next.title}}
|
||||
<span class="arrow">⟶</span>
|
||||
</span>
|
||||
</a>
|
||||
{{/if}}
|
||||
</div>
|
||||
<h1 class="title">{{title}}</h1>
|
||||
<h2 class="byline">
|
||||
{{#if author}}
|
||||
{{{author}}} at
|
||||
{{/if}}
|
||||
{{date}}
|
||||
</h2>
|
||||
{{{contents}}}
|
||||
</div>
|
|
@ -24,7 +24,7 @@
|
|||
|
||||
<div class="header_menu">
|
||||
<li class="first"><a href="{{{rootPath}}}people.html">People</a></li>
|
||||
<li><a href="{{{rootPath}}}projects/index.html">Projects</a></li>
|
||||
<li><a href="{{{rootPath}}}research/index.html">Projects</a></li>
|
||||
<li><a href="{{{rootPath}}}teaching/index.html">Teaching</a></li>
|
||||
<li><a href="{{{rootPath}}}pubs.html">Publications</a></li>
|
||||
<li><a href="{{{rootPath}}}grants/index.html">Funding</a></li>
|
||||
|
|
|
@ -107,7 +107,7 @@ body {
|
|||
}
|
||||
|
||||
.segment {
|
||||
width: 1000px;
|
||||
width: 950px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
vertical-align: top;
|
||||
|
@ -115,7 +115,7 @@ body {
|
|||
|
||||
.content {
|
||||
display: inline-block;
|
||||
width: 690px;
|
||||
width: 640px;
|
||||
background-color: white;
|
||||
margin-left: -4px;
|
||||
margin-top: 0px;
|
||||
|
@ -135,6 +135,7 @@ body {
|
|||
font-variant: normal;
|
||||
font-weight: normal;
|
||||
font-size: 16px;
|
||||
min-height: 600px;
|
||||
}
|
||||
|
||||
.content h1, .content h2, .content h3, .content h4 {
|
||||
|
@ -241,4 +242,36 @@ body {
|
|||
}
|
||||
.paper_list li .metadata {
|
||||
margin-left: 10px;
|
||||
}
|
||||
.article .navigation {
|
||||
margin-top: 10px;
|
||||
margin-left: 60px;
|
||||
margin-right: 60px;
|
||||
margin-bottom: 10px;
|
||||
line-height: 40px;
|
||||
vertical-align: middle;
|
||||
font-size: 12px;
|
||||
}
|
||||
.article .navigation a {
|
||||
color: #041a9b;
|
||||
}
|
||||
.article .navigation .arrow {
|
||||
margin-left: 5px;
|
||||
margin-right: 5px;
|
||||
padding-bottom: 4px;
|
||||
}
|
||||
.article h1.title {
|
||||
clear: both;
|
||||
text-decoration: none;
|
||||
margin-bottom: 0px;
|
||||
padding-bottom: 0px;
|
||||
font-variant: normal;
|
||||
}
|
||||
.article h2.byline {
|
||||
text-decoration: none;
|
||||
font-size: 14px;
|
||||
margin-top: 0px;
|
||||
padding-top: 0px;
|
||||
margin-bottom: 30px;
|
||||
font-variant: normal;
|
||||
}
|
|
@ -1,4 +1,5 @@
|
|||
---
|
||||
title: JITDs @ CIDR
|
||||
author: Oliver Kennedy
|
||||
---
|
||||
Our paper on <a href="http://mjolnir.cse.buffalo.edu/wp-content/uploads/2014/10/jitd-submitted.pdf">Just-In-Time Data Structures</a> (JITDs) has been accepted at <a href="http://cidrdb.org/cidr2015/index.html">CIDR 2015</a>!
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
title: CSTA @nalytics Workshop
|
||||
author: Oliver Kennedy
|
||||
---
|
||||
Oliver is presenting a workshop on Data @nalytics at <strong>The WNY-CSTA Fall Conference</strong>. Hello to all the high-school teachers in attendance!
|
||||
<ul>
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
title: Tentative CIDR 2015 Program Posted
|
||||
author: Oliver Kennedy
|
||||
---
|
||||
The lineup's looking pretty sweet...
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
---
|
||||
title: Congrats Niccolo and Jan!
|
||||
author: Oliver Kennedy
|
||||
---
|
||||
Congratulations to Niccolò and Jan on being accepted at SIGMOD 2015 for their paper <strong>"Output-sensitive Evaluation of Prioritized Skyline Queries"</strong>!
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
---
|
||||
title: Ying @ Systems Lunch
|
||||
author: Oliver Kennedy
|
||||
---
|
||||
Ying Yang will be reprising her VLDB PhD workshop presentation about "On-Demand Data Cleaning" at the UB Systems Lunch on November 7th. We hope to see everyone there.
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
title: Just in Time Data Structures @ CIDR
|
||||
author: Oliver Kennedy
|
||||
---
|
||||
Adaptive indexing is a promising alternative to classical offline index optimization. Under adaptive indexing, index creation and re-organization take place automatically and incrementally as a side-effect of query execution. Adaptive indexing implementations optimize the index's structure by progressively rewriting it until it converges to a single idealized form such as a sorted array or B-Tree. However, the ideal representation changes over time: An adaptive index that is initially optimal for one workload becomes suboptimal as the workload's characteristics change.
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
title: 'maybe' we got a HotMobile Paper
|
||||
author: Oliver Kennedy
|
||||
---
|
||||
The <tt>maybe</tt> statement is a new code primitive that allows developers to harness the power of nondeterminism in their code. Through a collaboration between three labs at UB, we are building compiler, infrastructure, and analytics support that will help developers to write safer, faster, and more adaptable mobile applications. See <a href="http://mjolnir.cse.buffalo.edu/wp-content/uploads/2015/01/hot60-challenA.pdf">our paper</a> at this year's <a href="http://hotmobile.org/">HotMobile</a>.
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
---
|
||||
title: CSE 562 Syllabus is live
|
||||
author: Oliver Kennedy
|
||||
---
|
||||
Hot off the presses. See what lies in store for <a title="CSE 562" href="http://mjolnir.cse.buffalo.edu/teaching/cse-562/">graduate databases</a>.
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
title: Conference Summary: CIDR
|
||||
author: Oliver Kennedy
|
||||
---
|
||||
<p style="text-align: justify;"><a href="http://www.cidrdb.org/cidr2015/">CIDR</a> is a bi-anual conference focusing on new ideas and directions for the database community. Topics presented range from early and mid stage systems efforts, to proposals for radical changes in the direction of database research. A focus of CIDR is the Gong Show, a sequence of 5-minute talks about literally anything.</p>
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
---
|
||||
title: Lenses @ VLDB
|
||||
author: Oliver Kennedy
|
||||
---
|
||||
Ying and Niccolo's paper on Lenses (<a href="http://odin.cse.buffalo.edu/wp-content/uploads/2015/06/p2322_yang2.pdf">camera-ready here</a>) and intuitive uncertainty management was accepted at VLDB 2015. Congratulations to them, and everyone else involved in the <a href="http://odin.cse.buffalo.edu/research/mimir/">Mimir</a> project, including co-authors Ronny Fehling and Zhen Hua Liu from Oracle.
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
title: 1 Month of SQLite Smartphone Logs at TPC-TC
|
||||
author: Oliver Kennedy
|
||||
---
|
||||
To appear at TPC-TC in Hawaii: An <a href="http://odin.cse.buffalo.edu/wp-content/uploads/2015/06/2015-TPCTC-SQLite-submitted.pdf">in-depth analysis</a> of 1 month of SQLite query logs on <a href="https://www.phone-lab.org">PhoneLab</a>. We found quite a few surprising things... :)
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
---
|
||||
title: Ontology for Insider Attacks @ MIST 2015
|
||||
author: Oliver Kennedy
|
||||
---
|
||||
(A much delayed) Congrats to Gokhan and Shambhu for getting their paper "<a href="http://odin.cse.buffalo.edu/wp-content/uploads/2015/08/mist04pp.pdf">A Preliminary Cyber Ontology for Insider Threats in the Financial Sector</a>" accepted at MIST 2015. This paper is part of the <a href="http://odin.cse.buffalo.edu/research/insider-threats/">Insider Threats</a> project.
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
---
|
||||
title: PocketData @ TPC-TC
|
||||
author: Oliver Kennedy
|
||||
---
|
||||
I presented our work on <a href="http://odin.cse.buffalo.edu/wp-content/uploads/2015/08/tpctc2015.pdf">Pocket Data</a> today at <a href="http://www.tpc.org/tpctc/tpctc2015/default.asp">TPC-TC</a>. See the slides <a href="http://odin.cse.buffalo.edu/slides/talks/2015-PocketData/index.html">here</a>, and download the dataset <a href="https://www.phone-lab.org/experiment/request/">here</a>. Many thanks to Jerry, Geoff, Luke, and the entire PhoneLab project for making this paper happen.
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
---
|
||||
title: Oliver @ CSE 501
|
||||
author: Oliver Kennedy
|
||||
---
|
||||
Sides can be found <a href="http://odin.cse.buffalo.edu/slides/cse501/2015.html">here</a>.
|
|
@ -1,4 +1,5 @@
|
|||
---
|
||||
title: Stratos Idreos at UB-CSE
|
||||
author: Oliver Kennedy
|
||||
---
|
||||
For those asking about Stratos' slides, you can find them <a href="http://odin.cse.buffalo.edu/slides/guests/2015-10-Stratos_Idreos-Adaptive_Systems.pdf">here</a>.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<img src="../../assets/logos/mimir_logo_final.png" alt="mimir_logo_final" width="539" height="214" />
|
||||
<p style="text-align: justify;"><b>Students:</b> Ying Yang, Niccolo Meneghetti, Arindam Nandi, Vinayak Karuppasamy</p>
|
||||
<img src="http://odin.cse.buffalo.edu/wp-content/uploads/2015/08/Mimir_Screenshot.png" alt="Mimir_Screenshot" width="643" height="564" />
|
||||
<img src="screenshots/Mimir_Screenshot.png" alt="Mimir_Screenshot" width="643" height="564" />
|
||||
<p style="text-align: justify;">Many analytics tasks are based on information that is initially incomplete, inconsistent, or simply used incorrectly. Although a variety of strategies exist to help people cope with these sources of uncertainty, they often require users to undertake heavyweight upfront organizationational tasks (i.e., tagging, data-cleaning, or modeling) before the data can be used. Automated techniques exist, but typically introduce their own forms of uncertainty.</p>
|
||||
<p style="text-align: justify;">Mimir takes a step back and accepts that uncertainty is a fact of life. Rather than trying to fight it, Mimir embraces uncertainty, and helps users to understand it better. Combining automated data cleaning and data analysis techniques, Mimir's goal is to help users clean and query uncertain data, and to understand the impact of that uncertainty on the results of their analyses.</p>
|
||||
|
||||
|
@ -20,15 +20,15 @@
|
|||
<h4 style="text-align: justify;">Publications</h4>
|
||||
<ul>
|
||||
<li style="text-align: justify;"><b>Lenses: An On-Demand Approach to ETL</b>
|
||||
<i>VLDB 2015</i> ( <a href="http://odin.cse.buffalo.edu/wp-content/uploads/2015/05/lenses_revised.pdf">paper</a> | <a href="http://odin.cse.buffalo.edu/slides/conference/2015-Ying-VLDB-Mimir.pdf">slides</a> )</li>
|
||||
<i>VLDB 2015</i> ( <a href="{{rootPath}}papers/2015/VLDB-lenses-final.pdf">paper</a> | <a href="http://odin.cse.buffalo.edu/slides/conference/2015-Ying-VLDB-Mimir.pdf">slides</a> )</li>
|
||||
<li style="text-align: justify;"><b>Detecting the Temporal Context of Queries</b>
|
||||
<i>BIRTE 2014</i> ( <a href="http://odin.cse.buffalo.edu/wp-content/uploads/2014/10/BIRTE2014-context-finalCR.pdf">paper</a> )</li>
|
||||
<i>BIRTE 2014</i> ( <a href="{{rootPath}}papers/2014/BIRTE-context-final.pdf">paper</a> )</li>
|
||||
<li style="text-align: justify;"><b>On-Demand Query Result Cleaning</b>
|
||||
<i>VLDB PhD Workshop 2014</i> ( <a href="http://odin.cse.buffalo.edu/wp-content/uploads/2014/10/p1283-Yang.pdf">paper</a> )</li>
|
||||
<i>VLDB PhD Workshop 2014</i> ( <a href="{{rootPath}}papers/2014/VLDBPhD-ondemand-final.pdf">paper</a> )</li>
|
||||
</ul>
|
||||
<h4>Presentations</h4>
|
||||
<ul>
|
||||
<li><a href="https://www.youtube.com/watch?v=jow4JmDOxPs">Video Demo</a> (2015)</li>
|
||||
<li><a href="http://odin.cse.buffalo.edu/slides/talks/2015-2-Mimir">Overview Slides</a> (2015)</li>
|
||||
<li><a href="http://odin.cse.buffalo.edu/2015/08/what-if-databases-could-answer-incorrectly/">Rant: What if Databases Could Answer Incorrectly</a> (2015)</li>
|
||||
<li><a href="{{rootPath}}rants/2015-08-13-incorrect-dbs.html">Rant: What if Databases Could Answer Incorrectly</a> (2015)</li>
|
||||
</ul>
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 68 KiB |
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 86 KiB |
Before Width: | Height: | Size: 250 KiB After Width: | Height: | Size: 250 KiB |
Before Width: | Height: | Size: 233 KiB After Width: | Height: | Size: 233 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 96 KiB After Width: | Height: | Size: 96 KiB |
Before Width: | Height: | Size: 120 KiB After Width: | Height: | Size: 120 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 47 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 114 KiB After Width: | Height: | Size: 114 KiB |
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 55 KiB |
Before Width: | Height: | Size: 116 KiB After Width: | Height: | Size: 116 KiB |