diff --git a/Text/CSL/Input/Bibtex.hs b/Bibtex.hs similarity index 99% rename from Text/CSL/Input/Bibtex.hs rename to Bibtex.hs index 9ccd73d..c64c77b 100644 --- a/Text/CSL/Input/Bibtex.hs +++ b/Bibtex.hs @@ -11,7 +11,7 @@ -- Modified : JH: Use just the bibtex parser ----------------------------------------------------------------------------- -module Text.CSL.Input.Bibtex +module Bibtex ( bibEntries , resolveCrossRefs diff --git a/HakyllBibTex.hs b/HakyllBibTex.hs index 4d442c0..79f2650 100644 --- a/HakyllBibTex.hs +++ b/HakyllBibTex.hs @@ -17,7 +17,7 @@ import Control.Applicative import Data.Binary (Binary (..)) import Data.Typeable (Typeable) import Hakyll -import qualified Text.CSL.Input.Bibtex as B +import qualified Bibtex as B import qualified Text.Pandoc as Pandoc import qualified Text.Parsec as Parsec diff --git a/bibs/header.bib b/bibs/header.bib index fedcdec..e012ef4 100644 --- a/bibs/header.bib +++ b/bibs/header.bib @@ -397,7 +397,8 @@ @STRING{vmcai13 = vmcai # ", Rome, Italy" } % ---- -@STRING{csf = "{IEEE} {C}omputer {S}ecurity {F}oundations {S}ymposium" } +@STRING{csf = "{IEEE} {C}omputer {S}ecurity {F}oundations {S}ymposium + ({CSF})" } @STRING{csf08 = csf # ", Pittsburgh, Pennsylvania" } @STRING{csf13 = csf # ", New Orleans, Louisiana" } @STRING{csf14 = csf # ", Vienna, Austria" } diff --git a/bibs/myrefs.bib b/bibs/myrefs.bib index 4902be1..234512e 100644 --- a/bibs/myrefs.bib +++ b/bibs/myrefs.bib @@ -471,7 +471,7 @@ url = {http://arxiv.org/abs/0803.0032} } -@inproceedings{HGH+13, +@inproceedings{HGH+14, author = {Justin Hsu and Marco Gaboardi and Andreas Haeberlen and @@ -1518,7 +1518,6 @@ year = {2014} year = {2014}, url = {http://arxiv.org/abs/1402.1526}, jh = yes, - slides = yes, poster = yes, eprint = yes } diff --git a/content/about.md b/content/about.md new file mode 100644 index 0000000..3093ef9 --- /dev/null +++ b/content/about.md @@ -0,0 +1,21 @@ +I am a graduate student in the [Department of Computer +Science](http://cis.upenn.edu) at the [University of +Pennsylvania](http://upenn.edu). +There, I am associated with the [Theory Group](http://theory.cis.upenn.edu), the +[PL Club], and the [Privacy Group](http://privacy.cis.upenn.edu). +I am very fortunate to be co-advised by [Benjamin +Pierce](http://cis.upenn.edu/~bcpierce) and [Aaron +Roth](http://cis.upenn.edu/~aaroth). + +## Research Interests ## +I spend my time thinking about questions in **verification**, **programming +languages**, and **algorithms**. My work has mostly centered on [differential +privacy](http://en.wikipedia.org/wiki/Differential_privacy), a rigorous +definition of privacy that is currently under extensive study. + +From the verification side, I am interested in using formal methods---such as +[type systems](http://en.wikipedia.org/wiki/Type_system) and [program +logics](http://en.wikipedia.org/wiki/Hoare_logic))---to verify that programs are +differentially private. From the algorithms side, I am interested in +applications of differential privacy to optimization, machine learning, and +mechanism design. diff --git a/content/biblio.md b/content/biblio.md new file mode 100644 index 0000000..9ff34e6 --- /dev/null +++ b/content/biblio.md @@ -0,0 +1,7 @@ +## Drafts ## + +\$draft\$ + +## Conference Publications ## + +\$confs\$ diff --git a/content/contacts.md b/content/contacts.md index fbe7960..5af4fc4 100644 --- a/content/contacts.md +++ b/content/contacts.md @@ -1,3 +1,3 @@ -# Contacts # {#contacts} -* Office: GRW 561 -* Email: justin@justinh.su +### Contacts ### +Office: GRW 561 +Email: email@justinh.su diff --git a/content/footer.md b/content/footer.md new file mode 100644 index 0000000..25dfe81 --- /dev/null +++ b/content/footer.md @@ -0,0 +1,6 @@ +[Source](http://git.justinh.su/justin/justin-site/tree/master/). +Powered by +[Hakyll](http://jaspervdj.be/hakyll/), +[Pandoc](http://johnmacfarlane.net/pandoc/), +and [bibtex2html](https://www.lri.fr/~filliatr/bibtex2html/). +© Justin Hsu, 2015. diff --git a/content/news.md b/content/news.md new file mode 100644 index 0000000..31cd777 --- /dev/null +++ b/content/news.md @@ -0,0 +1,4 @@ ++ **11/2014** Our paper **Jointly private convex programming** has been uploaded to + `arxiv`. ++ **9/2014** Our paper, **Higher-order refinement types for mechanism design and + differential privacy**, has been accepted to POPL 2015! diff --git a/css/style.scss b/css/style.scss index 10af187..75b640f 100644 --- a/css/style.scss +++ b/css/style.scss @@ -1,99 +1,213 @@ @import "compass/css3"; @import "compass/css3/border-radius"; +@import "compass/css3/box-shadow"; +@import "compass/typography/links/link-colors"; +@import "compass/typography/links/unstyled-link"; +@import "compass/typography/links/hover-link"; @import "compass/typography/vertical_rhythm"; $base-font-size: 16px; $base-line-height: 24px; +$break-point: 45em; +$bg-color: #EEEEEE; +$main-color: #2196F3; +$acc-color: #C51162; @include establish-baseline; -.container { +@mixin flexed { @include display-flex; - @include flex-direction(column); @include flex-wrap(nowrap); - @include justify-content(flex-start); @include align-items(center); } +body { + margin: 0; + background: $bg-color; + a { + @include hover-link; + @include link-colors($acc-color); + } +} + +// Default table style sets the wrong font weight +// if we set this in body. +* { + font-family: 'roboto', sans-serif; + font-weight: 300; +} + +.container { + @include flexed; + @include flex-direction(column); + @include justify-content(flex-start); + + h1 { + @include adjust-font-size-to(3em, 1/2); + } + + h2 { + @include adjust-font-size-to(2em, 1/2); + } + + h3 { + @include adjust-font-size-to(1.5em, 1/2); + } + + p { + @include adjust-font-size-to(1em); + } +} + .container > * { - width: 50%; - padding: rhythm(0.5); + width: $break-point; margin: rhythm(0.5); -} - -.container h1 { - @include adjust-font-size-to(3em); -} - -.container h2 { - @include adjust-font-size-to(2em); -} - -.container p { - @include adjust-font-size-to(1em); -} - -.header { - background: purple; - @include border-radius(5px, 5px); - // @include border-radius(10px 25px, 15px 30px); - // @include border-radius(1px 3px 5px 7px, 2px 4px 6px 8px); -} - -.header h1 { - @include adjust-font-size-to(5em); -} - -.topbox { - @include display-flex; - @include flex-direction(row); - @include flex-wrap(nowrap); - @include justify-content(space-around); - @include align-items(stretch); - background: blue; - - max-height: 30em; -} - -.topbox > * { padding: rhythm(0.5); - margin: rhythm(0.5); } @media all and (max-width: 700px) { + .container > * { + width: 100%; + } +} + +// Top banner. +.header { + @include single-box-shadow(0, 10px, 5px, -10px); + background: $main-color; + + h1 { + @include adjust-font-size-to(5em,1/2); + color: white; + } +} + +// The top box. About, picture, and contact. +.topbox { + @include flexed; + @include flex-direction(row); + @include justify-content(space-around); + background: white; +} + +.topbar > * { + max-width: 100%; + h1 h2 { + color: $main-color; + } +} + +// Bar containing picture and contact info. +.bio-bar { + @include flexed; + @include flex-direction(column); + @include justify-content(space-around); + @include flex(1 1); + @include order(2); +} + +@media all and (max-width: $break-point) { .topbox { - @include flex-direction(column); - background: yellow; + @include flex-direction(column); + @include align-items(stretch); } - .topbox > * { - padding: rhythm(0.5); - margin: rhythm(0.5); + .bio-bar { + @include flex-direction(row); + @include order(1); } } .picture { - @include flex(1 1 10em); - background: green; - @include order(2); + @include flex(1 1); + padding: rhythm(0.5); } .contact { - @include flex(1 1 10em); - background: red; - @include order(3); + @include flex(1 1); + padding: rhythm(0.5); + + h3 { + color: $main-color; + } } -@media all and (max-width: 700px) { - .picture { - @include order(3); - } +// About cell ~ 2x sidebar in normal mode +.about { + @include flex(2 1); +} - .contact { +@media all and (max-width: $break-point) { + .about { @include order(2); } } -#card { - background: blue; +// Two section headers, different bg colors. +#mini-header { + background: $main-color; + color: white; + @include adjust-font-size-to(3em,1/2); + padding: rhythm(0.5); +} + +#mini-header-alt { + background: $acc-color; + color: white; + @include adjust-font-size-to(3em,1/2); + padding: rhythm(0.5); +} + +// Main unit for sections. +#card { + padding: rhythm(0.5); + @include single-box-shadow(0, 11px, 5px, -10px); + background: white; + h1 { + background: $main-color; + color: white; + }; + + h2 { + background: white; + color: $main-color; + }; + + b, strong { + font-family: 'Roboto', sans-serif; + font-weight: 500; + }; + + em { + font-family: 'Roboto', sans-serif; + font-weight: 300; + font-style: italic; + }; + + code { + font-family: 'Inconsolata', monospace; + font-weight: 500; + } +} + +#bibcell { + vertical-align: top; + padding: rhythm(1/2); +} + +// Latex parsed as {H} turns into spans, make these bold. +#titlecell span { + font-family: 'Roboto', sans-serif; + font-weight: 500; +} + +footer * { + text-align: center; + background: $main-color; + margin: 0; + a { + // Turn off colors. Using both colors together looks bad. + @include unstyled-link; + @include hover-link; + } } diff --git a/images/haskell-logo.png b/images/haskell-logo.png new file mode 100644 index 0000000..97c0937 Binary files /dev/null and b/images/haskell-logo.png differ diff --git a/images/round.png b/images/round.png new file mode 100644 index 0000000..7f04760 Binary files /dev/null and b/images/round.png differ diff --git a/index.html b/index.html index 36c3ad9..00cf7b7 100644 --- a/index.html +++ b/index.html @@ -1,11 +1,33 @@ -