diff --git a/Rakefile b/Rakefile index 6d02e4f6..5a4b6be4 100644 --- a/Rakefile +++ b/Rakefile @@ -194,7 +194,10 @@ task :documents => ["artifacts/db.json", :cv, :cnp] directory "build/artifacts" task :deploy => [:documents,:odin_lab,"build/artifacts"] do - system("cp -r artifacts/*.{pdf,json} build/artifacts/") + files = Dir["artifacts/*.{pdf,json}"] + unless files.empty? then + system("cp -r #{files.join(" ")} build/artifacts/") + end end ###################### Specialized Stuff for Individual Use ###################### diff --git a/db/cv/okennedy.json b/db/cv/okennedy.json index a1eca070..b8e69ca6 100644 --- a/db/cv/okennedy.json +++ b/db/cv/okennedy.json @@ -65,7 +65,7 @@ ], "employment" : [ { - "title" : "Assistant Professor", + "title" : "Associate Professor", "employer" : "Dept. of Comp. Sci. & Eng., SUNY Buffalo", "start" : "Sept. 2012" }, @@ -190,11 +190,27 @@ "type" : "award", "source" : "UB", "individual" : "YES" + }, + { + "description" : + "Oliver received the CSE Departmental Senior Research Award in 2021", + "year" : 2021, + "type" : "award", + "source" : "UB", + "individual" : "YES" + }, + { + "description" : + "Oliver received the School of Engineering and Applied Sciences Senior Teaching Award in 2021", + "year" : 2021, + "type" : "award", + "source" : "UB", + "individual" : "YES" } ], "chairs" : [ - { "venue" : "pVLDB", "position" : "Reproducibility Co-Chair", "years" : [ 2018, 2019, 2020 ] }, + { "venue" : "pVLDB", "position" : "Reproducibility Co-Chair", "years" : [ 2018, 2019, 2020, 2021, 2022 ] }, { "venue" : "SoCC", "position" : "Scholarship Co-Chair", "years" : [ 2019 ] }, { "venue" : "VLDB", "position" : "Technical Co-Chair", "years" : [ 2020 ] }, { "venue" : "SIGMOD", "position" : "Treasurer", "years" : [ 2022 ] } @@ -241,14 +257,19 @@ "service" : { "general" : [ { "description" : "WebDB Session Chair", "years" : [ 2013 ] }, - { "description" : "NSF Panel Member", "years" : [ 2014, 2015, 2016, 2018, 2020, 2021 ] }, + { "description" : "NSF Panel Member", "years" : [ 2014, 2015, 2016, 2018, 2020, 2021, 2022 ] }, { "description" : "SIGMOD Reproducibility Committee", "years" : [ 2015, 2016, 2017 ] } ], "dept" : [ { "org" : "Dept. of Comp. Sci. and Eng., University at Buffalo, SUNY", "service" : [ { "org" : "Graduate Admissions Committee", "start" : 2012, "end" : 2017 }, - { "org" : "Graduate Advisory Board", "start" : 2012 }, + { "org" : "Graduate Advisory Committee", "years" : [ 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2022], + "roles": [ + { "title" : "Graduate Co-Director", "years" : [2022] } + ] + }, + { "org" : "Undergraduate Advisory Committee", "years" : [ 2021 ] }, { "org" : "Distinguished Speaker Committee", "years" : [ 2017 ] }, { "org" : "Faculty Search Committee", "years" : [ 2012, 2013, 2014 ] }, { "org" : "Facilities Committee", "years" : [ 2016 ] }, @@ -260,7 +281,12 @@ { "org" : "Grievances Committee", "years" : [ 2015, 2016 ] }, { "org" : "Undergraduate Curriculum Development Subcommittee", "years" : [ 2015, 2016 ] }, { "org" : "Teaching Effectiveness Committee", "years" : [ 2019,2022 ] }, - { "org" : "Preserving Academic Integrity", "years" : [ 2021,2022 ] } + { "org" : "Preserving Academic Integrity", "years" : [ 2021,2022 ] }, + { "org" : "Teaching Load Task Force", "years" : [ 2021,2022 ], + "roles" : [ + { "title" : "Co-Chair", "years" : [2022] } + ] + } ] } ] diff --git a/db/cv/okennedy/courses.json b/db/cv/okennedy/courses.json index 84dcb60e..29e2923e 100644 --- a/db/cv/okennedy/courses.json +++ b/db/cv/okennedy/courses.json @@ -1,10 +1,10 @@ [ { "venue" : "Department of Computer Science and Engineering, SUNY Buffalo", "courses" : [ - { "code" : "CSE 7xx", + { "code" : "CSE 501", "enrollment" : 0, - "title" : "(planned) Seminar", - "semester" : "Spring 2023" }, + "title" : "(planned) Grad Studies in CS", + "semester" : "Fall 2022" }, { "code" : "CSE 250", "enrollment" : 0, "title" : "(planned) Data Structures", diff --git a/db/cv/okennedy/students.json b/db/cv/okennedy/students.json index a6dcf602..32ca35fc 100644 --- a/db/cv/okennedy/students.json +++ b/db/cv/okennedy/students.json @@ -1,16 +1,39 @@ { "advised" : [ + { "name" : "Caleb Levine", + "degree" : "BS", + "start" : "Jan. 2020" }, + { "name" : "Nicholas Brown", + "degree" : "BS", + "start" : "Jan. 2020" }, + { "name" : "William Spoth", + "degree" : "PhD", + "start" : "Sept. 2017", "end" : "May 2014" }, + { "name" : "Darshana Balakrishnan", + "degree" : "PhD", + "coadvisor" : "Lukasz Ziarek", + "start" : "Jan. 2017" }, + { "name" : "Aaron Huber", + "degree" : "PhD", + "coadvisor" : "Atri Rudra", + "start" : "Sept. 2016" }, + { "name" : "Poonam Kumari", + "degree" : "PhD", + "start" : "Sept. 2016" }, + { "name" : "Carl Nuessle", + "degree" : "PhD", + "start" : "Sept. 2015" }, { "name" : "Gokhan Khul", "degree" : "PhD", "coadvisor" : "Shambhu Upadhaya", - "start" : "Jan. 2015" }, + "start" : "Jan. 2015", "end" : "May 2018" }, { "name" : "Ting Xie", "degree" : "PhD", "coadvisor" : "Hung Ngo", - "start" : "Jan. 2015" }, + "start" : "Jan. 2015", "end" : "May 2019" }, { "name" : "Ying Yang", "degree" : "PhD", - "start" : "Sept. 2012" }, + "start" : "Sept. 2012", "end" : "May 2016" }, { "name" : "Daniel Bellinger", "degree" : "BS", "coadvisor" : "Lukasz Ziarek", diff --git a/db/cv/okennedy/talks.json b/db/cv/okennedy/talks.json index afefde42..e4bf876f 100644 --- a/db/cv/okennedy/talks.json +++ b/db/cv/okennedy/talks.json @@ -1,4 +1,6 @@ [ + { "talk" : "Panel: On the Multifaceted Impact of Artificial Intelligence in Healthcare: Past, Present, and Emerging Trends", "date" : "May 2022", + "venue" : "UP-STAT 2022" }, { "talk" : "How to Start Collaborating with CSE to Solve Global Health Problems", "date" : "May 2020", "venue" : "University at Buffalo: Center for Global Health Equity" }, { "talk" : "Safe, Reusable Heuristic Data Transformation (through Caveats)", "date" : "Dec 2019", diff --git a/db/lab.json b/db/lab.json index 5d648ab7..90a988fe 100644 --- a/db/lab.json +++ b/db/lab.json @@ -79,6 +79,23 @@ "height" : 200 }, "ubit" : "carlnues" + }, + "Nicholas Brown" : { + "status" : "BS", + "projects" : ["astral"], + "joint_advisor" : false, + "ubit" : "njbrown4" + }, + "Caleb Levine" : { + "status" : "BS", + "projects" : ["vizier"], + "joint_advisor" : false, + "ubit" : "caleblev" + }, + "Nachiket Deo" : { + "status" : "MS", + "projects" : ["vizier"], + "joint_advisor" : false } }, "temp-leave" : { diff --git a/db/publications.json b/db/publications.json index 2b0bcd45..e3699af0 100644 --- a/db/publications.json +++ b/db/publications.json @@ -1,4 +1,16 @@ [ + { + "title" : "Runtime Provenance Refinement for Notebooks", + "authors" : [ + "Nachiket Deo", + "Boris Glavic", + "Oliver Kennedy" + ], + "venue" : "TaPP", + "year" : 2022, + "projects" : ["vizier"], + "length" : 4 + }, { "title" : "TreeToaster: Towards an IVM-Optimized Compiler", "authors" : [ diff --git a/db/venues.json b/db/venues.json index 6022a944..bc219cbf 100644 --- a/db/venues.json +++ b/db/venues.json @@ -99,6 +99,10 @@ "2016" : { "location" : "McLean, VA, USA", "date" : "June 6-9, 2016" + }, + "2022" : { + "location" : "Philadelphia, NY", + "date": "June 18, 2022" } } }, diff --git a/src/people/index.erb b/src/people/index.erb index afb26abd..e4cb797e 100644 --- a/src/people/index.erb +++ b/src/people/index.erb @@ -6,7 +6,7 @@ title: Members and Affiliates <% $db["lab/members"].each do |member, data| %>
<%= - img = "../assets/people/missing.png" + img = "assets/people/missing.png" if data.has_key? "pic" img = data["pic"] img = img["file"] if img.is_a? Hash diff --git a/src/talks/.ipynb_checkpoints/Untitled-checkpoint.ipynb b/src/talks/.ipynb_checkpoints/Untitled-checkpoint.ipynb deleted file mode 100644 index 363fcab7..00000000 --- a/src/talks/.ipynb_checkpoints/Untitled-checkpoint.ipynb +++ /dev/null @@ -1,6 +0,0 @@ -{ - "cells": [], - "metadata": {}, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/src/talks/2022-06-20-DataThread.erb b/src/talks/2022-06-20-DataThread.erb index 3b116712..e2a04f10 100644 --- a/src/talks/2022-06-20-DataThread.erb +++ b/src/talks/2022-06-20-DataThread.erb @@ -4,14 +4,146 @@ title: "Microkernel Notebooks" ---
-
-

μKernel Notebooks

+

μKernel Notebooks

-

Oliver Kennedy

-
+

Oliver Kennedy

+
University at Buffalo
+
-
- -
+
+ +
+ +
+ +
+ +

Pimentel et al: "4.03% of notebooks on github are reproducible"

+
+ +
+ +

Joel Grus: "For beginners, with dozens of cells and more complex code [the ability to run code snippets out of order] is utterly confusing."

+
+
+ +
+ +
+ +
+

Nodebook

+ + + https://github.com/stitchfix/nodebook +
+ +
+ + https://openclipart.org +
+ +
+ +
+ +
+

A modest proposal...

+
+ +
+ + https://openclipart.com +
+ +
+

So now...

+
+ +
+ +
+ +
+ +
+ +
+

and...

+
+ +
+ +
+ +
+

... and more

+ + +
+ +
+

... not all smiles and sunshine

+
+
+ +
+

+		x = 3
+	
+
+ +
+

+		from foo import x
+	
+
+ +
+

+		x = pandas.read_csv("foo.csv")
+	
+
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ + +

https://vizierdb.info

+
+ +

Mike Brachmann, Boris Glavic, Nachiket Deo, Juliana Freire, Heiko Mueller, Sonia Castello, Munaf Arshad Qazi, William Spoth, Poonam Kumari, Soham Patel, and more...

+
- \ No newline at end of file diff --git a/src/talks/graphics/2022-06-20/Checkpointing.svg b/src/talks/graphics/2022-06-20/Checkpointing.svg new file mode 100644 index 00000000..eefa3790 --- /dev/null +++ b/src/talks/graphics/2022-06-20/Checkpointing.svg @@ -0,0 +1,379 @@ + + + + + + + + + + + + + + + + + The original value of 'x' is gone by here. + + + + We need a way to recover the value of 'x' from here + + + + diff --git a/src/talks/graphics/2022-06-20/CheckpointingGlobals.svg b/src/talks/graphics/2022-06-20/CheckpointingGlobals.svg new file mode 100644 index 00000000..98bb7a17 --- /dev/null +++ b/src/talks/graphics/2022-06-20/CheckpointingGlobals.svg @@ -0,0 +1,4138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 500 GB + + + + + + + + + + + + diff --git a/src/talks/graphics/2022-06-20/Grus.png b/src/talks/graphics/2022-06-20/Grus.png new file mode 100644 index 00000000..e9dd4994 Binary files /dev/null and b/src/talks/graphics/2022-06-20/Grus.png differ diff --git a/src/talks/graphics/2022-06-20/MicrokernelCheckpoints.svg b/src/talks/graphics/2022-06-20/MicrokernelCheckpoints.svg new file mode 100644 index 00000000..16f4a160 --- /dev/null +++ b/src/talks/graphics/2022-06-20/MicrokernelCheckpoints.svg @@ -0,0 +1,1080 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 500 GB + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 500 GB + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 500 GB + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/talks/graphics/2022-06-20/MicrokernelPyScalaCheckpoints.svg b/src/talks/graphics/2022-06-20/MicrokernelPyScalaCheckpoints.svg new file mode 100644 index 00000000..c1b07319 --- /dev/null +++ b/src/talks/graphics/2022-06-20/MicrokernelPyScalaCheckpoints.svg @@ -0,0 +1,3769 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SQL + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 500 GB + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 500 GB + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 500 GB + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/talks/graphics/2022-06-20/MicrokernelPyV2Checkpoints.svg b/src/talks/graphics/2022-06-20/MicrokernelPyV2Checkpoints.svg new file mode 100644 index 00000000..bc68b8e5 --- /dev/null +++ b/src/talks/graphics/2022-06-20/MicrokernelPyV2Checkpoints.svg @@ -0,0 +1,1114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3.10 + 2.7 + 3.10 + + + + + + + + + + + + + + + + + + + + + + + + + + 500 GB + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 500 GB + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 500 GB + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/talks/graphics/2022-06-20/MonokernelCheckpoints.svg b/src/talks/graphics/2022-06-20/MonokernelCheckpoints.svg new file mode 100644 index 00000000..39a48234 --- /dev/null +++ b/src/talks/graphics/2022-06-20/MonokernelCheckpoints.svg @@ -0,0 +1,1058 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 500 GB + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 500 GB + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 500 GB + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/talks/graphics/2022-06-20/NoCheckpointing.png b/src/talks/graphics/2022-06-20/NoCheckpointing.png new file mode 100644 index 00000000..2442376e Binary files /dev/null and b/src/talks/graphics/2022-06-20/NoCheckpointing.png differ diff --git a/src/talks/graphics/2022-06-20/Nodebook.png b/src/talks/graphics/2022-06-20/Nodebook.png new file mode 100644 index 00000000..c67f2138 Binary files /dev/null and b/src/talks/graphics/2022-06-20/Nodebook.png differ diff --git a/src/talks/graphics/2022-06-20/NotebookOverview.svg b/src/talks/graphics/2022-06-20/NotebookOverview.svg new file mode 100644 index 00000000..54f62b96 --- /dev/null +++ b/src/talks/graphics/2022-06-20/NotebookOverview.svg @@ -0,0 +1,287 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + How you... + present it | explore it + + diff --git a/src/talks/graphics/2022-06-20/Parallelism.svg b/src/talks/graphics/2022-06-20/Parallelism.svg new file mode 100644 index 00000000..05679bc8 --- /dev/null +++ b/src/talks/graphics/2022-06-20/Parallelism.svg @@ -0,0 +1,1174 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/talks/graphics/2022-06-20/Pimentel.png b/src/talks/graphics/2022-06-20/Pimentel.png new file mode 100644 index 00000000..0e4d9619 Binary files /dev/null and b/src/talks/graphics/2022-06-20/Pimentel.png differ diff --git a/src/talks/graphics/2022-06-20/Vizier System Diag.svg b/src/talks/graphics/2022-06-20/Vizier System Diag.svg new file mode 100644 index 00000000..917bae2e --- /dev/null +++ b/src/talks/graphics/2022-06-20/Vizier System Diag.svg @@ -0,0 +1,287 @@ + + + + + + + + + + + + + + JVM + ControlBus + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + V + db + + + diff --git a/src/talks/graphics/2022-06-20/Vizier-Load.png b/src/talks/graphics/2022-06-20/Vizier-Load.png new file mode 100644 index 00000000..b0bb7917 Binary files /dev/null and b/src/talks/graphics/2022-06-20/Vizier-Load.png differ diff --git a/src/talks/graphics/2022-06-20/Vizier-New.png b/src/talks/graphics/2022-06-20/Vizier-New.png new file mode 100644 index 00000000..162b9500 Binary files /dev/null and b/src/talks/graphics/2022-06-20/Vizier-New.png differ diff --git a/src/talks/graphics/2022-06-20/Vizier-Polyglot.png b/src/talks/graphics/2022-06-20/Vizier-Polyglot.png new file mode 100644 index 00000000..b72927e4 Binary files /dev/null and b/src/talks/graphics/2022-06-20/Vizier-Polyglot.png differ diff --git a/src/talks/graphics/2022-06-20/Vizier-Spreadsheet.png b/src/talks/graphics/2022-06-20/Vizier-Spreadsheet.png new file mode 100644 index 00000000..6b10c85b Binary files /dev/null and b/src/talks/graphics/2022-06-20/Vizier-Spreadsheet.png differ diff --git a/src/talks/graphics/2022-06-20/Vizier-System-Diag.svg b/src/talks/graphics/2022-06-20/Vizier-System-Diag.svg new file mode 100644 index 00000000..d25e2f05 --- /dev/null +++ b/src/talks/graphics/2022-06-20/Vizier-System-Diag.svg @@ -0,0 +1,287 @@ + + + + + + + + + + + + + + JVM + ControlBus + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + V + db + + + diff --git a/src/talks/graphics/2022-06-20/arrow.png b/src/talks/graphics/2022-06-20/arrow.png new file mode 100644 index 00000000..72104b07 Binary files /dev/null and b/src/talks/graphics/2022-06-20/arrow.png differ diff --git a/src/talks/graphics/2022-06-20/vizier.svg b/src/talks/graphics/2022-06-20/vizier.svg new file mode 100644 index 00000000..1a17b3ed --- /dev/null +++ b/src/talks/graphics/2022-06-20/vizier.svg @@ -0,0 +1,117 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + V + db + diff --git a/src/talks/graphics/2022-06-20/xkcd_python.png b/src/talks/graphics/2022-06-20/xkcd_python.png new file mode 100644 index 00000000..369a6fd4 Binary files /dev/null and b/src/talks/graphics/2022-06-20/xkcd_python.png differ