diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..fa95ecb
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+.clj-kondo
+.lsp
+.calva
\ No newline at end of file
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
index 13441a8..11c8f7d 100644
--- a/.vscode/tasks.json
+++ b/.vscode/tasks.json
@@ -8,6 +8,12 @@
"type": "shell",
"command": "boot publish",
"problemMatcher": []
+ },
+ {
+ "label": "dev",
+ "type": "shell",
+ "command": "boot dev",
+ "problemMatcher": []
}
]
}
\ No newline at end of file
diff --git a/build.boot b/build.boot
index b855c17..03fc45f 100644
--- a/build.boot
+++ b/build.boot
@@ -1,8 +1,8 @@
(set-env!
:source-paths #{"src"}
:resource-paths #{"content"}
- :dependencies '[[perun "0.4.3-SNAPSHOT" :scope "test"]
- [hiccup "1.0.5" :exclusions [org.clojure/clojure]]
+ :dependencies '[[perun "0.5.0-SNAPSHOT" :scope "test"]
+ [hiccup "2.0.0-alpha2" :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]]])
diff --git a/content/CNAME b/content/CNAME
index c5027af..4469a2c 100644
--- a/content/CNAME
+++ b/content/CNAME
@@ -1 +1 @@
-kaangenc.me
\ No newline at end of file
+bgenc.net
\ No newline at end of file
diff --git a/content/extra/kaangenc.gpg b/content/extra/kaangenc.gpg
index eb13458..3423016 100644
Binary files a/content/extra/kaangenc.gpg and b/content/extra/kaangenc.gpg differ
diff --git a/content/index.markdown b/content/index.markdown
index c8859ab..605526d 100644
--- a/content/index.markdown
+++ b/content/index.markdown
@@ -1,132 +1,12 @@
-I'm a 4th year Computer Science PhD student at the Ohio State University. Over
-the duration of my PhD, I have been researching topics in Programming Languages
-such as data race detection, and transactional persistent memory. Research that
-I led or assisted resulted in several publications, which are listed below. I
-also had the opportunity to teach the course Advanced C Programming, and serve
-on the Artifact Evaluation Committees of several conferences.
+I'm a Software Engineer at [Dendron](https://dendron.so), and a recent Master's
+graduate from the Ohio State University. I'm an avid Linux user, an enthusiast
+of many programming languages, a [home cook](/recipes/), and an amateur gardener.
-Outside the school, I build web and mobile applications for fun. Over the years
-I have learned and used many programming languages and technologies, including
-JavaScript, TypeScript, React, React Native, Python, Java, C, C++, Clojure, and
-Haskell. All my projects are open source, and are available on my [Github
+My interests include building web and mobile applications, both at the front and
+back end. Over the years I learned and used many programming languages and
+technologies, including JavaScript, TypeScript, React, React Native, Python,
+Java, C, C++, Clojure, Rust, and Haskell. Pretty much everthing I've worked on is open source and available on my [Github
page](https://github.com/SeriousBug).
-I am an avid Linux user, having been using it full time for the last 7 years. I
-manage several small personal servers, and have experience with Bash scripting,
-writing SystemD services, and building and using Docker containers.
+I published several papers and participated in academic reviews during graduate school, which you can find [links to here](/publications/).
-
-# Highlighted Projects
-
-
-
-## image-survey
-
-A web application to run surveys where users compare 2 images to pick the one
-they prefer. Uses a Python backend utilizing asyncio capabilities with the Sanic
-web server and SQLite. The front end is a React app, written in JavaScript and
-Material-UI.
-
-[Github](https://github.com/SeriousBug/image-survey) [Demo](https://imagesurvey.kaangenc.me/)
-
-
-
-
-## WorkTime
-
-Work-in-progress offline-first mobile app for productivity and time management.
-Uses React Native with TypeScript, and a PouchDB database on the client side.
-Currently planning to add a backend supported by CouchDB to provide
-synchronization capabilities.
-
-[Github](https://github.com/SeriousBug/WorkTime)
-
-
-
-
-## Crafty
-
-A transactional persistent memory library, written in C. Provides transactional
-data storage capabilities to programs by utilizing existing hardware
-transactional memory support of processors, combined with the new non-volatile
-memory hardware. Allows programs to store and access data efficiently, and
-without the need for additional concurrency synchronization. This is the
-corresponding implementation for one of my publications listed below.
-
-[Github](https://github.com/PLaSSticity/Crafty)
-
-
-
-
-## SDP & WDP data race detectors
-
-Data race detection for Java programs using predictive dynamic data race
-analyses. Predictive race analysis looks at a single execution of a program to
-detect races that may occur in many other executions. Our analyses use data and
-control flow dependence to find more data races compared to other analyses. This
-is the corresponding implementation for my publication "Dependence Aware,
-Unbounded Sound Predictive Race Detection".
-
-[Github](https://github.com/PLaSSticity/SDP-WDP-implementation)
-
-
-
-
-
-
-# Publications
-
-
-## 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
-
-[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) [Poster](/extra/Crafty Poster.pdf)
-
-
-
-
-## Dependence Aware, Unbounded Sound 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) [Poster](/extra/DepAware Poster.pdf)
-
-
-
-
-## 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/~mikebond/smarttrack-pldi-2020.pdf) [Extended Paper](https://arxiv.org/pdf/1905.00494.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)
-
-
-
-# Activities
-
-[PLDI 2021](https://pldi21.sigplan.org/track/pldi-2021-PLDI-Research-Artifacts) Artifact Evaluation Committee member
-
-[ASPLOS 2021](https://asplos-conference.org/2021/) Artifact Evaluation Committee member
-
-[OOPSLA 2020](https://2020.splashcon.org/track/splash-2020-Artifacts) Artifact Evaluation Committee member
-
-
-
diff --git a/content/publications.md b/content/publications.md
new file mode 100644
index 0000000..c6f7b44
--- /dev/null
+++ b/content/publications.md
@@ -0,0 +1,68 @@
+---
+no-ttr: true
+---
+
+
+## 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
+
+Crafty is a library for transactional storage, built for new non-volatile memory
+hardware. Taking advantage of hardware transactional capabilities of modern
+CPUs, it provides a low-overhead option that also eliminates the need for
+additional concurrency control.
+
+[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) [Poster](/extra/Crafty Poster.pdf)
+
+
+
+
+## Dependence Aware, Unbounded Sound 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
+
+This paper presents 2 data race detection analyses which analyze a single run of
+a program to predict data races that can happen in other runs. These analyses
+take advantage of data and control flow dependence to accurately understand how
+the analyzed program works, expanding what races can be predicted.
+
+[Talk](https://www.youtube.com/watch?v=YgZWnc31tVQ) [Extended Paper (updated version)](https://arxiv.org/pdf/1904.13088.pdf) [Paper](https://dl.acm.org/doi/10.1145/3360605) [Corrigendum to paper](https://dl.acm.org/action/downloadSupplement?doi=10.1145%2F3360605&file=3360605-corrigendum.pdf) [Implementation](https://github.com/PLaSSticity/SDP-WDP-implementation) [Poster](/extra/DepAware Poster.pdf)
+
+
+
+
+## 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
+
+Predictive data race detection methods greatly improve the number of data races
+found, but they typically significantly slow down programs compared to their
+non-predictive counterparts. SmartTrack, through improved analyses and clever
+algorithms, reduces their overhead to just around non-predictive analyses
+without impacting their performance.
+
+[Paper](http://web.cse.ohio-state.edu/~mikebond/smarttrack-pldi-2020.pdf) [Extended Paper](https://arxiv.org/pdf/1905.00494.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
+
+Predictive data race detection methods typically walk a tight line between
+predicting more races and avoiding false races. This paper presents a new
+analysis that can predict more races, and a method to efficiently eliminate
+false races.
+
+[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)
+
+
+
+# Activities
+
+[PLDI 2021](https://pldi21.sigplan.org/track/pldi-2021-PLDI-Research-Artifacts) Artifact Evaluation Committee member
+
+[ASPLOS 2021](https://asplos-conference.org/2021/) Artifact Evaluation Committee member
+
+[OOPSLA 2020](https://2020.splashcon.org/track/splash-2020-Artifacts) Artifact Evaluation Committee member
diff --git a/src/site/core.clj b/src/site/core.clj
index 71e5f8f..f65418d 100644
--- a/src/site/core.clj
+++ b/src/site/core.clj
@@ -19,21 +19,17 @@
[:div.sidebar.column
(when (not= slug "index") [:a.home {:href "/"} "Home"])
[: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"]
+ [:div.name "Kaan Barmore Genç"]
+ [:div.title "M.S. Software Engineer"]
[:div.spacer]
- [:div.title "Software Engineering Intern"]
+ [:div.title "Software Engineer"]
[:div.affiliation [:a {:href "http://dendron.so/"} "Dendron"]]
[:div.spacer]
- [:span [:a.email {:href "mailto:genc.5@osu.edu"} "genc.5@osu.edu"] [:a.gpg {:href "/extra/kaangenc.gpg"} "GPG key"]]
+ [:span [:a.email {:href "mailto:kaan@bgenc.net"} "kaan@bgenc.net"] [:a.gpg {:href "/extra/kaangenc.gpg"} "GPG key"]]
[:a.github {:href "https://github.com/SeriousBug"} "Github"]
[:a.linkedin {:href "https://www.linkedin.com/in/kaan-genc-8489b9205/"} "LinkedIn"]
[:a.cv {:href "/extra/cv.pdf"} "CV"]
- [:a.blog {:href "/blog/"} "Blog"]
- [:a.twitter {:href "https://twitter.com/KaanGencCS"} "Twitter"]
- [:a.researchr {:href "https://conf.researchr.org/profile/kaangenc"} "Researchr"]])
+ [:a.blog {:href "/blog/"} "Blog"]])
@@ -49,9 +45,9 @@
;; Blog post
[:div.main.column
[:h1.post-title (:title post)]
- [:div.date "Written at " (-> post :date format-time)]
+ (when (:date post) [:div.date "Written at " (-> post :date format-time)])
(when (:modified post) [:div.modified "Last edited at " (-> post :modified format-time)])
- [:div.ttr (:word-count post) " words, takes about " (:ttr post) " minutes to read"]
+ (when (not (:no-ttr post)) [:div.ttr (:word-count post) " words, takes about " (:ttr post) " minutes to read"])
(:content post)])))
diff --git a/src/site/styles.clj b/src/site/styles.clj
index a255a37..cbaf335 100644
--- a/src/site/styles.clj
+++ b/src/site/styles.clj
@@ -2,7 +2,7 @@
(:require [garden.def :refer [defrule defstyles]]
[garden.stylesheet :refer [rule]]))
-(def textcolor-main "rgba(0, 0, 0, 0.87)")
+(def textcolor-main "rgba(255, 255, 255, 0.87)")
(defstyles base
; normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css
@@ -36,35 +36,35 @@
:flex-wrap "wrap"
:justify-content "center"
:color textcolor-main
- :background-color "#ffead1"
+ :background-color "#1e1e1e"
:font-family "'Ubuntu', sans-serif"
:font-size "16px"
:line-height 1.2}]
- [:a {:text-decoration "none" :color "#ae3100"}]
+ [:a {:text-decoration "none" :color "#6cf0c5"}]
["a:link"]
- ["a:visited" {:color "#932900"}]
+ ["a:visited" {:color "#25d99e"}]
["a:hover"]
["a:active"]
- [".date, .modified, .ttr" {:color "rgba(0, 0, 0, 0.67)" :text-align "right"}]
+ [".date, .modified, .ttr" {:color "rgba(255, 255, 255, 0.67)" :text-align "right"}]
[:.other-stuff
{:margin-top "4em"}
[:img {:float "left" :max-width "250px" :margin-right "40px"}]]
["code, pre" {:font-size "0.95em" :font-family "'Ubuntu Mono', monospace"}]
- ["pre, :not(pre) > code" {:background-color "rgba(0, 0, 0, 0.15)" :overflow-x "auto"
+ ["pre, :not(pre) > code" {:background-color "rgba(255, 255, 255, 0.15)" :overflow-x "auto"
:border-radius "10px"
:padding "3px"
:margin "-3px 0"}]
- [:a.home {:font-size "1.2em" :margin "0 20px"}]
+ [:a.home {:font-size "1.2em" :margin "0 20px 2em 20px"}]
[:.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"}]
+ [".publication:not(:last-child)" {:border-bottom "1px solid white"}]
;;
- [:.conf {:font-size "14px" :color "rgba(0, 0, 0, 0.70)"}]
+ [:.conf {:font-size "14px" :color "rgba(255, 255, 255, 0.70)"}]
[:.spacer {:height "2rem"}])