diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/build.boot b/build.boot index 0ccf909..92bbfbd 100644 --- a/build.boot +++ b/build.boot @@ -2,28 +2,33 @@ :source-paths #{"src"} :resource-paths #{"content"} :dependencies '[[perun "0.4.3-SNAPSHOT" :scope "test"] - [deraen/boot-livereload "0.2.1" :scope "test"] [hiccup "1.0.5" :exclusions [org.clojure/clojure]] [garden "1.3.10"] + [org.martinklepsch/boot-garden "1.3.2-0"] [pandeiro/boot-http "0.8.3" :exclusions [org.clojure/clojure]]]) (require '[io.perun :as perun] - '[deraen.boot-livereload :refer [livereload]] '[pandeiro.boot-http :refer [serve]] + '[org.martinklepsch.boot-garden :refer [garden]] '[site.core]) -(deftask build-website [] - (comp (perun/markdown) +(deftask build [] + (comp (perun/pandoc) + (perun/highlight) + (sift :to-resource #{#"^img/(.*)"}) + (sift :move {#"^img/(.*)" "public/img/$1"}) + (sift :to-resource #{#"^extra/(.*)"}) + (sift :move {#"^extra/(.*)" "public/extra/$1"}) + (garden :styles-var 'site.styles/base :output-to "public/main.css") (perun/render :renderer 'site.core/page) - (perun/sitemap :filename "sitemap.xml"))) + (perun/sitemap :filename "sitemap.xml") + (sift :move {#"^public/(.*)" "$1"}))) -(deftask serve-website [] - (comp (livereload) - (build-website) - (serve :port 8000 :resource-root "public") -; (repl) - (wait))) +(deftask dev [] + (comp (watch) + (build) + (serve :port 8000 :resource-root "public"))) -(deftask compile-website [] - (comp (build-website) - (target))) +(deftask publish [] + (comp (build) + (target :dir #{"docs"}))) diff --git a/content/extra/kaangenc.gpg b/content/extra/kaangenc.gpg new file mode 100644 index 0000000..eb13458 --- /dev/null +++ b/content/extra/kaangenc.gpg @@ -0,0 +1,94 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +zuxCcj3Ubrs= +=IrBB +-----END PGP PUBLIC KEY BLOCK----- diff --git a/content/img/game-cover.jpg b/content/img/game-cover.jpg new file mode 100644 index 0000000..bce97a0 Binary files /dev/null and b/content/img/game-cover.jpg differ diff --git a/content/img/profile.jpg b/content/img/profile.jpg new file mode 100644 index 0000000..10d26a5 Binary files /dev/null and b/content/img/profile.jpg differ diff --git a/content/index.markdown b/content/index.markdown index d2455cf..141d9dd 100644 --- a/content/index.markdown +++ b/content/index.markdown @@ -1,17 +1,80 @@ -# Kaan Genç +# Research Interests -## Research Interests +My research interests include programming languages, persistent memory (NVM), +dynamic program analysis, and data race detection. -* Programming languages -* Dynamic analysis -* Persistent memory -* Race detection +I am currently working on novel methods for providing efficient persistent +transactions with strong guarantees. Our work uses non-volatile memory, such as +Intel Optane Memory, combined with commodity hardware transactional memory to +allow programs to survive power interruptions and crashes, with minimal +performance and scalability impacts. -## Publications +# Publications -* Dependence Aware, Predictive Unbounded Predictive Race Detection, OOPSLA 2019. -* Vindicator, PLDI 2018. +
+## Crafty: Efficient, HTM-Compatible Persistent Transactions +
Kaan Genç, Michael D. Bond, and Guoqing Harry Xu
+
ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2020), Online, June 2020
-## Teaching Experience +[Talk](https://www.youtube.com/watch?v=wdVLlQXV1to) [Paper](https://dl.acm.org/doi/10.1145/3385412.3385991) [Extended Paper](https://arxiv.org/pdf/2004.00262.pdf) [Implementation](https://github.com/PLaSSticity/Crafty) +
-Advanced C Programming, Autumn 2017 & Spring 2018 @ The Ohio State Univerity. + +
+## Dependence Aware, Predictive Unbounded Predictive Race Detection +
Kaan Genç, Jake Roemer, Yufan Xu, and Michael D. Bond
+
ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2019), Athens, Greece, October 2019
+ +[Talk](https://www.youtube.com/watch?v=YgZWnc31tVQ) [Paper](https://dl.acm.org/doi/10.1145/3360605) [Extended Paper](https://arxiv.org/pdf/1904.13088.pdf) [Implementation](https://github.com/PLaSSticity/SDP-WDP-implementation) +
+ + +
+## SmartTrack: Efficient Predictive Race Detection +
Jake Roemer, Kaan Genç, and Michael D. Bond
+
ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2020), Online, June 2020
+ +[Paper](http://web.cse.ohio-state.edu/~bond.213/vindicator-pldi-2018.pdf) [Extended Paper](http://web.cse.ohio-state.edu/~bond.213/vindicator-pldi-2018-xtr.pdf) +
+ + +
+## High-Coverage, Unbounded Sound Predictive Race Detection +
Jake Roemer, Kaan Genç, and Michael D. Bond
+
ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2018), Philadelphia, PA, USA, June 2018
+ +[Paper](http://web.cse.ohio-state.edu/~bond.213/vindicator-pldi-2018.pdf) [Extended Paper](http://web.cse.ohio-state.edu/~bond.213/vindicator-pldi-2018-xtr.pdf) +
+
+ +# Teaching Experience + +During Autumn 2017 and Spring 2018 semesters, I had the opportunity to teach the +class [CSE +2451](http://coe-portal.cse.ohio-state.edu/pdf-exports/CSE/CSE-2451.pdf), +Advanced C Programming, at the Ohio State Univerity. The class had around 35 +students enrolled for both semesters. I was given the full responsibilities for +the class, including teaching the class, writing assignments and exams, grading, +and holding office hours. I revised the course material I was given, making it +more comprehensive and adding unique insights on building and optimizing +advanced C programs. + +The students were satisfied with my teaching, with my Student Evaluation of +Instruction mean scores being 4.6 and 4.4 out of 5 for both semesters, a score +above the university mean for classes of similar size. + +# Activities + +[OOPSLA 2020](https://2020.splashcon.org/track/splash-2020-Artifacts) Artifact Committee member + + + +
+# Other stuff + + +![A picture from a 3-D video game, showing a river flowing into the sea. The text "The Land Itself" is overlayed on the sea.](/img/game-cover.jpg)\ + + +On my free time, I develop small indie video games and release them open source. +
diff --git a/src/site/core.clj b/src/site/core.clj index 54ede9e..fd75248 100644 --- a/src/site/core.clj +++ b/src/site/core.clj @@ -2,17 +2,24 @@ (:require [hiccup.page :as hp] [garden.core :as gc])) -(def textcolor-main "rgba(0, 0, 0, 0.87)") - -(def css - (gc/css - [:body - {:max-width "600px" - :color textcolor-main}] - )) (defn page [data] (hp/html5 - [:head [:style css]] - [:div + [:head + [:meta {:charset "utf-8"}] + [:link {:rel "stylesheet" :href "main.css"}]] + [:link {:href + "https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,400;0,700;1,400;1,700&display=swap" + :rel "stylesheet"}] + (when (= "index" (-> data :entry :slug)) + [:div.sidebar.column + [:img.picture {:alt "A photo of Kaan Genç, after his OOPSLA 2019 talk." :src "/img/profile.jpg"}] + [:div.name "Kaan Genç"] + [:div.title "PhD Student"] + [:div.department "Computer Science & Engineering"] + [:div.affiliation "The Ohio State University"] + [:span [:a.email {:href "mailto:genc.5@osu.edu"} "genc.5@osu.edu"] [:a.gpg {:href "/extra/kaangenc.gpg"} "GPG key"]] + [:a.github {:href "https://github.com/SeriousBug"} "Github"] + [:a.researchr {:href "https://conf.researchr.org/profile/kaangenc"} "Researchr"]]) + [:div.main.column (-> data :entry :content)])) diff --git a/src/site/styles.clj b/src/site/styles.clj new file mode 100644 index 0000000..ead11b8 --- /dev/null +++ b/src/site/styles.clj @@ -0,0 +1,50 @@ +(ns site.styles + (:require [garden.def :refer [defrule defstyles]] + [garden.stylesheet :refer [rule]])) + +(def textcolor-main "rgba(0, 0, 0, 0.87)") + +(defstyles base + [:.main + {:max-width "600px"}] + [:h1 {:font-size "1.5em"}] + ["h1:not(:first-child)" {:margin-top "2em"}] + [:h2 {:font-size "1.3em"}] + [:h3 {:font-size "1.15em"}] + ["img, .img" {:border-radius "5px"}] + [:.sidebar + {:max-width "300px"} + [">a,span" {:display "block" :padding "10px 0"}] + [:.gpg {:font-size "0.8em" :margin-left "20px"}]] + [:.column + {:flex "auto" + :padding "20px"}] + [:.title {:margin-bottom "0.5em"}] + [:body + {:display "flex" + :flex-direction "row" + :flex-wrap "wrap" + :justify-content "center" + :color textcolor-main + :background-color "#ffead1" + :font-family "Ubuntu, sans-serif" + :font-size "16px" + :line-height 1.2}] + [:a {:text-decoration "none" :color "#ae3100"}] + ["a:link"] + ["a:visited" {:color "#681e00"}] + ["a:hover"] + ["a:active"] + + [:.other-stuff + {:margin-top "4em"} + [:img {:float "left" :max-width "250px" :margin-right "40px"}]] + + + [:.name {:padding "10px 0" :font-size "1.2em"}] + [:.publication [:p [:a {:padding "0 10px"}]]] + [:.publication [:div {:padding ".2em 10px .2em 30px"}]] + ;; Create a separator between publications with the border + [".publication:not(:last-child)" {:border-bottom "1px solid black"}] + ;; + [:.conf {:font-size "14px" :color "rgba(0, 0, 0, 0.70)"}])