Revised style & content
This commit is contained in:
parent
0eda7a2685
commit
3d080ecacf
33
build.boot
33
build.boot
|
@ -2,28 +2,33 @@
|
||||||
:source-paths #{"src"}
|
:source-paths #{"src"}
|
||||||
:resource-paths #{"content"}
|
:resource-paths #{"content"}
|
||||||
:dependencies '[[perun "0.4.3-SNAPSHOT" :scope "test"]
|
:dependencies '[[perun "0.4.3-SNAPSHOT" :scope "test"]
|
||||||
[deraen/boot-livereload "0.2.1" :scope "test"]
|
|
||||||
[hiccup "1.0.5" :exclusions [org.clojure/clojure]]
|
[hiccup "1.0.5" :exclusions [org.clojure/clojure]]
|
||||||
[garden "1.3.10"]
|
[garden "1.3.10"]
|
||||||
|
[org.martinklepsch/boot-garden "1.3.2-0"]
|
||||||
[pandeiro/boot-http "0.8.3" :exclusions [org.clojure/clojure]]])
|
[pandeiro/boot-http "0.8.3" :exclusions [org.clojure/clojure]]])
|
||||||
|
|
||||||
(require '[io.perun :as perun]
|
(require '[io.perun :as perun]
|
||||||
'[deraen.boot-livereload :refer [livereload]]
|
|
||||||
'[pandeiro.boot-http :refer [serve]]
|
'[pandeiro.boot-http :refer [serve]]
|
||||||
|
'[org.martinklepsch.boot-garden :refer [garden]]
|
||||||
'[site.core])
|
'[site.core])
|
||||||
|
|
||||||
(deftask build-website []
|
(deftask build []
|
||||||
(comp (perun/markdown)
|
(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/render :renderer 'site.core/page)
|
||||||
(perun/sitemap :filename "sitemap.xml")))
|
(perun/sitemap :filename "sitemap.xml")
|
||||||
|
(sift :move {#"^public/(.*)" "$1"})))
|
||||||
|
|
||||||
(deftask serve-website []
|
(deftask dev []
|
||||||
(comp (livereload)
|
(comp (watch)
|
||||||
(build-website)
|
(build)
|
||||||
(serve :port 8000 :resource-root "public")
|
(serve :port 8000 :resource-root "public")))
|
||||||
; (repl)
|
|
||||||
(wait)))
|
|
||||||
|
|
||||||
(deftask compile-website []
|
(deftask publish []
|
||||||
(comp (build-website)
|
(comp (build)
|
||||||
(target)))
|
(target :dir #{"docs"})))
|
||||||
|
|
94
content/extra/kaangenc.gpg
Normal file
94
content/extra/kaangenc.gpg
Normal file
|
@ -0,0 +1,94 @@
|
||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
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
|
||||||
|
zuxCcj3Ubrs=
|
||||||
|
=IrBB
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
BIN
content/img/game-cover.jpg
Normal file
BIN
content/img/game-cover.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 18 KiB |
BIN
content/img/profile.jpg
Normal file
BIN
content/img/profile.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
|
@ -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
|
I am currently working on novel methods for providing efficient persistent
|
||||||
* Dynamic analysis
|
transactions with strong guarantees. Our work uses non-volatile memory, such as
|
||||||
* Persistent memory
|
Intel Optane Memory, combined with commodity hardware transactional memory to
|
||||||
* Race detection
|
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.
|
<div> <div class="publication">
|
||||||
* Vindicator, PLDI 2018.
|
## Crafty: Efficient, HTM-Compatible Persistent Transactions
|
||||||
|
<div class="authors">Kaan Genç, Michael D. Bond, and Guoqing Harry Xu</div>
|
||||||
|
<div class="conf">ACM SIGPLAN Conference on Programming Language Design and Implementation <a href="https://pldi20.sigplan.org/home">(PLDI 2020)</a>, Online, June 2020</div>
|
||||||
|
|
||||||
## 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)
|
||||||
|
</div>
|
||||||
|
|
||||||
Advanced C Programming, Autumn 2017 & Spring 2018 @ The Ohio State Univerity.
|
|
||||||
|
<div class="publication">
|
||||||
|
## Dependence Aware, Predictive Unbounded Predictive Race Detection
|
||||||
|
<div class="authors">Kaan Genç, Jake Roemer, Yufan Xu, and Michael D. Bond</div>
|
||||||
|
<div class="conf">ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications <a href="https://2019.splashcon.org/track/splash-2019-oopsla">(OOPSLA 2019)</a>, Athens, Greece, October 2019</div>
|
||||||
|
|
||||||
|
[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)
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="publication">
|
||||||
|
## SmartTrack: Efficient Predictive Race Detection
|
||||||
|
<div class="authors">Jake Roemer, Kaan Genç, and Michael D. Bond</div>
|
||||||
|
<div class="conf">ACM SIGPLAN Conference on Programming Language Design and Implementation <a href="https://pldi20.sigplan.org/home">(PLDI 2020)</a>, Online, June 2020 </div>
|
||||||
|
|
||||||
|
[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)
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="publication">
|
||||||
|
## High-Coverage, Unbounded Sound Predictive Race Detection
|
||||||
|
<div class="authors">Jake Roemer, Kaan Genç, and Michael D. Bond</div>
|
||||||
|
<div class="conf">ACM SIGPLAN Conference on Programming Language Design and Implementation <a href="https://pldi18.sigplan.org/">(PLDI 2018)</a>, Philadelphia, PA, USA, June 2018</div>
|
||||||
|
|
||||||
|
[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)
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="other-stuff">
|
||||||
|
# Other stuff
|
||||||
|
|
||||||
|
<a class="img" href="https://seriousbug.itch.io/the-land-itself">
|
||||||
|
![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)\
|
||||||
|
</a>
|
||||||
|
|
||||||
|
On my free time, I develop small indie video games and release them open source.
|
||||||
|
</div>
|
||||||
|
|
|
@ -2,17 +2,24 @@
|
||||||
(:require [hiccup.page :as hp]
|
(:require [hiccup.page :as hp]
|
||||||
[garden.core :as gc]))
|
[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]
|
(defn page [data]
|
||||||
(hp/html5
|
(hp/html5
|
||||||
[:head [:style css]]
|
[:head
|
||||||
[:div
|
[: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)]))
|
(-> data :entry :content)]))
|
||||||
|
|
50
src/site/styles.clj
Normal file
50
src/site/styles.clj
Normal file
|
@ -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)"}])
|
Loading…
Reference in a new issue