diff --git a/pyohio-2023/category.json b/pyohio-2023/category.json
new file mode 100644
index 000000000..93bd2b268
--- /dev/null
+++ b/pyohio-2023/category.json
@@ -0,0 +1,3 @@
+{
+ "title": "PyOhio 2023"
+}
\ No newline at end of file
diff --git a/pyohio-2023/videos/adafruit-circuit-playground-express-as-an-on-air-light.json b/pyohio-2023/videos/adafruit-circuit-playground-express-as-an-on-air-light.json
new file mode 100644
index 000000000..b23e3f90f
--- /dev/null
+++ b/pyohio-2023/videos/adafruit-circuit-playground-express-as-an-on-air-light.json
@@ -0,0 +1,22 @@
+{
+ "description": "The swag bags for PyCon 2019 included an Adafruit Circuit Playground\nExpress, a lovely little circuit board with many inputs and outputs,\nand\u2014crucially for us\u2014the ability to run Python. With the power of Python\nand a few other bits of software, it\u2019s possible to turn one into your\npersonal \u201cOn Air\u201d light. This talk will walk the viewer through the\nsteps required to accomplish this, and reference related resources for\nthe sake of inspiration. There will be pretty lights.\n",
+ "language": "eng",
+ "recorded": "2023-12-16",
+ "related_urls": [
+ {
+ "label": "Conference Website",
+ "url": "https://www.pyohio.org/2023/"
+ }
+ ],
+ "speakers": [
+ "Nik Kantar"
+ ],
+ "thumbnail_url": "https://i.ytimg.com/vi/htqBik6sRNo/maxresdefault.jpg",
+ "title": "Adafruit Circuit Playground Express as an \u201cOn Air\u201d Light",
+ "videos": [
+ {
+ "type": "youtube",
+ "url": "https://youtu.be/htqBik6sRNo"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pyohio-2023/videos/animations-from-first-principles.json b/pyohio-2023/videos/animations-from-first-principles.json
new file mode 100644
index 000000000..a41ac3d5e
--- /dev/null
+++ b/pyohio-2023/videos/animations-from-first-principles.json
@@ -0,0 +1,22 @@
+{
+ "description": "How do animations really work?\n\nHow do you create an animation?\n\nWhat if you want to morph a circle into a figure eight?\n\nAs it turns out, all you need is two or three functions and a loop!\n\nIn this talk, we'll go over the basic concepts and code needed to create\nan animation *from first principles*.\n\nBecause the talk presents the ideas and the code from first principles,\nyou will be able to take the key concepts and build your own animations!\n",
+ "language": "eng",
+ "recorded": "2023-12-16",
+ "related_urls": [
+ {
+ "label": "Conference Website",
+ "url": "https://www.pyohio.org/2023/"
+ }
+ ],
+ "speakers": [
+ "Rodrigo Gir\u00e3o Serr\u00e3o"
+ ],
+ "thumbnail_url": "https://i.ytimg.com/vi/1JZLI23CxCE/maxresdefault.jpg",
+ "title": "Animations from First Principles",
+ "videos": [
+ {
+ "type": "youtube",
+ "url": "https://youtu.be/1JZLI23CxCE"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pyohio-2023/videos/better-living-through-direnv.json b/pyohio-2023/videos/better-living-through-direnv.json
new file mode 100644
index 000000000..fa03686f6
--- /dev/null
+++ b/pyohio-2023/videos/better-living-through-direnv.json
@@ -0,0 +1,22 @@
+{
+ "description": "Never have to activate another virtualenv again? Yes, please! Remove the\nclutter of various API tokens that have accumulated in my shell\nconfiguration over the years? Yes, please! Use Direnv to automate your\nenvironment setup, removing pain points and barriers for your\ndevelopment team. We'll look at good, better, and best levels of\nmanaging environment variables with Direnv.\n",
+ "language": "eng",
+ "recorded": "2023-12-16",
+ "related_urls": [
+ {
+ "label": "Conference Website",
+ "url": "https://www.pyohio.org/2023/"
+ }
+ ],
+ "speakers": [
+ "Kyle Adams"
+ ],
+ "thumbnail_url": "https://i.ytimg.com/vi/FBfvjCzrs7Q/maxresdefault.jpg",
+ "title": "Better Living Through Direnv",
+ "videos": [
+ {
+ "type": "youtube",
+ "url": "https://youtu.be/FBfvjCzrs7Q"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pyohio-2023/videos/build-a-web-map-with-pyscript.json b/pyohio-2023/videos/build-a-web-map-with-pyscript.json
new file mode 100644
index 000000000..da4c0565a
--- /dev/null
+++ b/pyohio-2023/videos/build-a-web-map-with-pyscript.json
@@ -0,0 +1,22 @@
+{
+ "description": "PyScript allows you to run Python code in a browser, like JavaScript\ndoes. It also lets you import geospatial mapping libraries like Folium\nand GeoPandas, all without actually installing anything! In this talk,\nwe'll discuss the benefits and ease of using PyScript for this task,\nthen we'll go through a basic geospatial analysis and display the\nresults in a web map. In the end we'll have an app that can be easily\nshared, containing Python code that anyone can view and run.\n",
+ "language": "eng",
+ "recorded": "2023-12-16",
+ "related_urls": [
+ {
+ "label": "Conference Website",
+ "url": "https://www.pyohio.org/2023/"
+ }
+ ],
+ "speakers": [
+ "Christy Heaton"
+ ],
+ "thumbnail_url": "https://i.ytimg.com/vi/eF2EQFaPEJg/maxresdefault.jpg",
+ "title": "Build a Web Map with PyScript!",
+ "videos": [
+ {
+ "type": "youtube",
+ "url": "https://youtu.be/eF2EQFaPEJg"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pyohio-2023/videos/debugging-failing-pytest-tests-in-a-notebook.json b/pyohio-2023/videos/debugging-failing-pytest-tests-in-a-notebook.json
new file mode 100644
index 000000000..66d385bd6
--- /dev/null
+++ b/pyohio-2023/videos/debugging-failing-pytest-tests-in-a-notebook.json
@@ -0,0 +1,22 @@
+{
+ "description": "This talk describes how to use the ``pytest-ndb`` package for debugging\nfailed pytest tests using a notebook.\n\nIn our opinion, developers should often prefer to debug failing tests\nusing a debugger such as pdb. However for certain applications, such as\nthose that occur in data science with large complex data sets or long\nrunning models, this is can be quite difficult. Debugging a failing test\ncan mean having to analyze data, for which there is little support in a\ndebugger and where notebooks truly shine.\n\nTraditionally to debug in a notebook, all of the code from the test,\nincluding fixtures and parametrizations, must be copied. For simple\ntests this might not be an issue, but for a complex test it can be quite\ntime consuming. Instead, you can use ``pytest-ndb``!\n",
+ "language": "eng",
+ "recorded": "2023-12-16",
+ "related_urls": [
+ {
+ "label": "Conference Website",
+ "url": "https://www.pyohio.org/2023/"
+ }
+ ],
+ "speakers": [
+ "Richard Shadrach"
+ ],
+ "thumbnail_url": "https://i.ytimg.com/vi/90PuD9hNOyo/maxresdefault.jpg",
+ "title": "Debugging Failing Pytest Tests in a Notebook",
+ "videos": [
+ {
+ "type": "youtube",
+ "url": "https://youtu.be/90PuD9hNOyo"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pyohio-2023/videos/digital-signal-processing-in-python-a-matlab-alternative.json b/pyohio-2023/videos/digital-signal-processing-in-python-a-matlab-alternative.json
new file mode 100644
index 000000000..00d74fe20
--- /dev/null
+++ b/pyohio-2023/videos/digital-signal-processing-in-python-a-matlab-alternative.json
@@ -0,0 +1,22 @@
+{
+ "description": "I will be discussing the use of digital signal processing techniques\nusing various Python libraries, such as numpy and scipy, as alternatives\nto classic signal engineering approaches in MATLAB. An introductory\nwalk-through example will be given, as well commentary on how to\npipeline processed signal into machine learning libraries such as\nscikit-learn and tensorflow2.\n",
+ "language": "eng",
+ "recorded": "2023-12-16",
+ "related_urls": [
+ {
+ "label": "Conference Website",
+ "url": "https://www.pyohio.org/2023/"
+ }
+ ],
+ "speakers": [
+ "Meg Sharma"
+ ],
+ "thumbnail_url": "https://i.ytimg.com/vi/lpV9WNaFZd4/maxresdefault.jpg",
+ "title": "Digital Signal Processing in Python: A MATLAB Alternative",
+ "videos": [
+ {
+ "type": "youtube",
+ "url": "https://youtu.be/lpV9WNaFZd4"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pyohio-2023/videos/exploring-opensearch-python-and-serverless-crafting-efficient-and-modern-search-applications.json b/pyohio-2023/videos/exploring-opensearch-python-and-serverless-crafting-efficient-and-modern-search-applications.json
new file mode 100644
index 000000000..85f7cd20b
--- /dev/null
+++ b/pyohio-2023/videos/exploring-opensearch-python-and-serverless-crafting-efficient-and-modern-search-applications.json
@@ -0,0 +1,23 @@
+{
+ "description": "OpenSearch, a community-driven, open-source project, offers a robust\nalternative for search and analytics needs. When coupled with Python's\nflexibility and the efficiency of serverless architecture, it transforms\ninto a dynamic trio that empowers developers to create efficient and\nmodern search applications.\n\nJoin us on a journey as we explore the synergy between OpenSearch,\nPython, and serverless architecture. In this talk, we'll provide an\noverview of OpenSearch and demonstrate how to utilize Python with\nserverless architecture to power your search engine. Additionally, we\nwill delve into best practices and challenges that arise when employing\nthis combination in production.\n\nBy the end of this talk, you'll gain a clear understanding of how to\narchitect, build, and deploy efficient search applications using\nOpenSearch, Python, and serverless architecture. Whether you're a\ndeveloper aiming to enhance your search capabilities or an architect\nexploring modern search solutions, this talk will equip you with the\ntools and insights needed to embrace this exciting synergy.\n",
+ "language": "eng",
+ "recorded": "2023-12-16",
+ "related_urls": [
+ {
+ "label": "Conference Website",
+ "url": "https://www.pyohio.org/2023/"
+ }
+ ],
+ "speakers": [
+ "Laysa Uchoa",
+ "Yuliia Barabash"
+ ],
+ "thumbnail_url": "https://i.ytimg.com/vi/3tqLanasKUY/maxresdefault.jpg",
+ "title": "Exploring OpenSearch, Python, and Serverless: Crafting Efficient and Modern Search Applications",
+ "videos": [
+ {
+ "type": "youtube",
+ "url": "https://youtu.be/3tqLanasKUY"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pyohio-2023/videos/f-strings.json b/pyohio-2023/videos/f-strings.json
new file mode 100644
index 000000000..9a2f8ccbb
--- /dev/null
+++ b/pyohio-2023/videos/f-strings.json
@@ -0,0 +1,22 @@
+{
+ "description": "By now we hope you've been using f-strings, but do you know that there's\nmore to it than sticking variables into curly braces?\n\nIn this talk, we'll go through the useful features of f-strings, from\nformatting to debugging. We'll also share how f-strings have been\nimproved since Python 3.12. Watch this talk so you don't miss out!\n",
+ "language": "eng",
+ "recorded": "2023-12-16",
+ "related_urls": [
+ {
+ "label": "Conference Website",
+ "url": "https://www.pyohio.org/2023/"
+ }
+ ],
+ "speakers": [
+ "Mariatta"
+ ],
+ "thumbnail_url": "https://i.ytimg.com/vi/SNA2O0NQl_Q/maxresdefault.jpg",
+ "title": "F-strings!",
+ "videos": [
+ {
+ "type": "youtube",
+ "url": "https://youtu.be/SNA2O0NQl_Q"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pyohio-2023/videos/from-code-to-clarity-how-good-technical-documentation-is-the-key-to-great-software.json b/pyohio-2023/videos/from-code-to-clarity-how-good-technical-documentation-is-the-key-to-great-software.json
new file mode 100644
index 000000000..db2e085eb
--- /dev/null
+++ b/pyohio-2023/videos/from-code-to-clarity-how-good-technical-documentation-is-the-key-to-great-software.json
@@ -0,0 +1,22 @@
+{
+ "description": "As developers, we know that writing code is only half the battle. The\nother half is writing documentation that effectively communicates our\nideas and helps others understand and use our code. But how do we write\ngood technical documentation that is both accurate and engaging? In this\ntalk, let's explore the secrets to mastering the art of software\ntechnical documentation and transform the way you approach technical\nwriting.\n",
+ "language": "eng",
+ "recorded": "2023-12-16",
+ "related_urls": [
+ {
+ "label": "Conference Website",
+ "url": "https://www.pyohio.org/2023/"
+ }
+ ],
+ "speakers": [
+ "Ria Bhatia"
+ ],
+ "thumbnail_url": "https://i.ytimg.com/vi/hHsEYB06itU/maxresdefault.jpg",
+ "title": "From Code to Clarity: How Good Technical Documentation is the Key to Great Software",
+ "videos": [
+ {
+ "type": "youtube",
+ "url": "https://youtu.be/hHsEYB06itU"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pyohio-2023/videos/full-stack-python-with-htmx.json b/pyohio-2023/videos/full-stack-python-with-htmx.json
new file mode 100644
index 000000000..74b7a46e9
--- /dev/null
+++ b/pyohio-2023/videos/full-stack-python-with-htmx.json
@@ -0,0 +1,22 @@
+{
+ "description": "These days, JavaScript dominates the front-end web ecosystem because it\nis the primary language for the browser. That means you need to use\nJavaScript for dynamic web page interactions, even if your backend is\nwritten in a different language like Python. However, that's no longer\nthe case! Thanks to `HTMX `__, we can develop dynamic\ninteractions directly in hypertext rather than in explicit JS code. In\nthis lightning talk, I'll show you how to create a `full-stack Python\napp `__ with\nFastAPI, HTMX, and a few other Python tools. You will learn how to build\nmodern web apps entirely in Python \u2013 as well as how HTMX democratizes\nfront-end web development!\n",
+ "language": "eng",
+ "recorded": "2023-12-16",
+ "related_urls": [
+ {
+ "label": "Conference Website",
+ "url": "https://www.pyohio.org/2023/"
+ }
+ ],
+ "speakers": [
+ "Pandy Knight"
+ ],
+ "thumbnail_url": "https://i.ytimg.com/vi/zR0qpPTvosI/maxresdefault.jpg",
+ "title": "Full-Stack Python with HTMX",
+ "videos": [
+ {
+ "type": "youtube",
+ "url": "https://youtu.be/zR0qpPTvosI"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pyohio-2023/videos/glacial-refactoring-a-glacier-inspired-approach-to-code-cleanup.json b/pyohio-2023/videos/glacial-refactoring-a-glacier-inspired-approach-to-code-cleanup.json
new file mode 100644
index 000000000..19b84de1f
--- /dev/null
+++ b/pyohio-2023/videos/glacial-refactoring-a-glacier-inspired-approach-to-code-cleanup.json
@@ -0,0 +1,22 @@
+{
+ "description": "Explore a glacier-inspired approach to understanding and refactoring\n(seemingly) complicated code. Learn how the glacial retreat can help you\nunderstand code and codescapes. This intentionally slow-moving method\nallows the safe reworking of scary-looking code through a practical\nincremental approach. Transform code mountains, cliffs, lakes, and\ncaverns into flattened out easy to explore codebase.\n",
+ "language": "eng",
+ "recorded": "2023-12-16",
+ "related_urls": [
+ {
+ "label": "Conference Website",
+ "url": "https://www.pyohio.org/2023/"
+ }
+ ],
+ "speakers": [
+ "Rose Hooper"
+ ],
+ "thumbnail_url": "https://i.ytimg.com/vi/EEGSMkNOsLo/maxresdefault.jpg",
+ "title": "Glacial Refactoring: A Glacier-inspired Approach to Code Cleanup",
+ "videos": [
+ {
+ "type": "youtube",
+ "url": "https://youtu.be/EEGSMkNOsLo"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pyohio-2023/videos/hamming-it-up-using-python-with-ham-radio.json b/pyohio-2023/videos/hamming-it-up-using-python-with-ham-radio.json
new file mode 100644
index 000000000..a8d84e79a
--- /dev/null
+++ b/pyohio-2023/videos/hamming-it-up-using-python-with-ham-radio.json
@@ -0,0 +1,22 @@
+{
+ "description": "Amateur (Ham) Radio is a hobby and service that has been around for\ngenerations. A lot of the concepts have not changed over the years, but\nthe technologies that enable Hams to talk around the world have evolved\nand developed greatly over the years. Ham Radio is all about\nexperimenting and learning new things with electronics and software. But\nwhat if there is not something that you can find that quite fits what\nyou want to be able to do?\n\nIn this talk, we will look at some of the ways that Python can be used\nto fill in some of the gaps and what Python can do to help you in Ham\nRadio.\n",
+ "language": "eng",
+ "recorded": "2023-12-16",
+ "related_urls": [
+ {
+ "label": "Conference Website",
+ "url": "https://www.pyohio.org/2023/"
+ }
+ ],
+ "speakers": [
+ "Jeff Lehman"
+ ],
+ "thumbnail_url": "https://i.ytimg.com/vi/GWmfEaRvV1g/maxresdefault.jpg",
+ "title": "Hamming it Up! Using Python with Ham Radio",
+ "videos": [
+ {
+ "type": "youtube",
+ "url": "https://youtu.be/GWmfEaRvV1g"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pyohio-2023/videos/how-many-times-can-one-line-fail-exceptiongroups-except-what-they-are-and-how-to-use-them.json b/pyohio-2023/videos/how-many-times-can-one-line-fail-exceptiongroups-except-what-they-are-and-how-to-use-them.json
new file mode 100644
index 000000000..00c164670
--- /dev/null
+++ b/pyohio-2023/videos/how-many-times-can-one-line-fail-exceptiongroups-except-what-they-are-and-how-to-use-them.json
@@ -0,0 +1,22 @@
+{
+ "description": "Async programming can make complex things easy, but at the same time be\nhard to get 100% correct; particularly when it comes to exceptions and\nhandling states outside the \"happy path\". Python has been gaining tools\nto more easily handle the failure cases, notably in 3.11 a new exception\nhandling syntax: ``except*``.\n\nDon't know what this does or how to read it? This talk is for you.\n\nThis talk will briefly discuss asyncio and how async code differs from\nnormal functions, ``TaskGroups`` and when to use them, and finally\n``ExceptionGroups`` and the ``try: except*:`` syntax.\n",
+ "language": "eng",
+ "recorded": "2023-12-16",
+ "related_urls": [
+ {
+ "label": "Conference Website",
+ "url": "https://www.pyohio.org/2023/"
+ }
+ ],
+ "speakers": [
+ "Andrew Kubera"
+ ],
+ "thumbnail_url": "https://i.ytimg.com/vi/3PyvWkQsjeM/maxresdefault.jpg",
+ "title": "How Many Times Can One Line Fail? ExceptionGroups & Except*: What They Are and How to Use Them",
+ "videos": [
+ {
+ "type": "youtube",
+ "url": "https://youtu.be/3PyvWkQsjeM"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pyohio-2023/videos/how-to-test-your-cloud-code-confidently.json b/pyohio-2023/videos/how-to-test-your-cloud-code-confidently.json
new file mode 100644
index 000000000..5dc18a907
--- /dev/null
+++ b/pyohio-2023/videos/how-to-test-your-cloud-code-confidently.json
@@ -0,0 +1,22 @@
+{
+ "description": "Writing cloud native Python is one of the easiest ways to build an\napplication for AWS. However, when it comes to running unit tests on\nyour code, how do you ensure that your API calls to other AWS services\ndon't actually change things? Thats where The Stubber comes in! A\nlesser-known part of AWS's python SDK Boto3, The Stubber is a way to\nmock your API calls and return exactly what AWS promises that you will\nget when you invoke their APIs without actually invoking them. This talk\nwill cover why its important to unit test your Python AWS Lambdas, how\nto use the Stubber, and a demo running unit tests with the Stubber.\n",
+ "language": "eng",
+ "recorded": "2023-12-16",
+ "related_urls": [
+ {
+ "label": "Conference Website",
+ "url": "https://www.pyohio.org/2023/"
+ }
+ ],
+ "speakers": [
+ "Drake Pocsatko"
+ ],
+ "thumbnail_url": "https://i.ytimg.com/vi/DyzAb4ra4DM/maxresdefault.jpg",
+ "title": "How to Test Your Cloud Code Confidently",
+ "videos": [
+ {
+ "type": "youtube",
+ "url": "https://youtu.be/DyzAb4ra4DM"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pyohio-2023/videos/inequality-joins-in-pandas-with-pyjanitor.json b/pyohio-2023/videos/inequality-joins-in-pandas-with-pyjanitor.json
new file mode 100644
index 000000000..ecffac95d
--- /dev/null
+++ b/pyohio-2023/videos/inequality-joins-in-pandas-with-pyjanitor.json
@@ -0,0 +1,22 @@
+{
+ "description": "Joins in Pandas are equality based. However, there are other scenarios\nthat require joins on inequality or a combination of equi and non-equi\njoins. Examples include a manufacturer wishing to minimise the cost of\nstorage while maximising profits (increasing the inventory of the more\nprofitable product, while decreasing the storage for the less profitable\nproduct), or a tax audit to find out which employers earn more, but pay\nless tax. Usually in Pandas this is executed via a Cartesian join which\ncan be inefficient as well as memory intensive. Another option is via an\nInterval index; however efficient execution depends on non overlapping\nintervals. There is also pandas.merge_asof - however it is limited to\njust first,last or nearest matches.\n\nThis talk shows an efficient way to handle inequality joins in Pandas.\nIt also shows benchmarks that shows significant performance benefits as\nwell as lower memory usage compared to Cartesian joins.\n",
+ "language": "eng",
+ "recorded": "2023-12-16",
+ "related_urls": [
+ {
+ "label": "Conference Website",
+ "url": "https://www.pyohio.org/2023/"
+ }
+ ],
+ "speakers": [
+ "Samuel Oranyeli"
+ ],
+ "thumbnail_url": "https://i.ytimg.com/vi/AjdBLOAhgDI/maxresdefault.jpg",
+ "title": "Inequality Joins in Pandas with Pyjanitor",
+ "videos": [
+ {
+ "type": "youtube",
+ "url": "https://youtu.be/AjdBLOAhgDI"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pyohio-2023/videos/iterate-iterate-iterate.json b/pyohio-2023/videos/iterate-iterate-iterate.json
new file mode 100644
index 000000000..037c47b5d
--- /dev/null
+++ b/pyohio-2023/videos/iterate-iterate-iterate.json
@@ -0,0 +1,22 @@
+{
+ "description": "The iteration protocol and generators are Python's power tools. Properly\nused, they allow for clearer code that is easier to debug and\nunderstand. The talk will cover the iteration protocol itself, generator\nfunctions and expressions, the itertools and more_itertools libraries,\nand how to use them to up your Python level.\n",
+ "language": "eng",
+ "recorded": "2023-12-16",
+ "related_urls": [
+ {
+ "label": "Conference Website",
+ "url": "https://www.pyohio.org/2023/"
+ }
+ ],
+ "speakers": [
+ "Moshe Zadka"
+ ],
+ "thumbnail_url": "https://i.ytimg.com/vi/1WMLrn7IIEc/maxresdefault.jpg",
+ "title": "Iterate, Iterate, Iterate",
+ "videos": [
+ {
+ "type": "youtube",
+ "url": "https://youtu.be/1WMLrn7IIEc"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pyohio-2023/videos/learn-just-enough-computer-science-to-be-a-better-self-taught-data-scientist-engineer.json b/pyohio-2023/videos/learn-just-enough-computer-science-to-be-a-better-self-taught-data-scientist-engineer.json
new file mode 100644
index 000000000..173f35ac1
--- /dev/null
+++ b/pyohio-2023/videos/learn-just-enough-computer-science-to-be-a-better-self-taught-data-scientist-engineer.json
@@ -0,0 +1,22 @@
+{
+ "description": "Are you an aspiring data scientist or engineer, forging your own path\nthrough the vast landscape of data science and engineering? The journey\ncan be intimidating, with an ever-expanding array of tools and concepts\nto master, both within and beyond the realm of Python. In this talk, I\nwill be your guide, helping you navigate this wilderness by focusing on\nthe indispensable knowledge that has opened doors to more projects and\nbecome a proficient self-taught data scientist and engineer.\n\nJoin me as I share my personal experiences and insights, highlighting\nthe skills and knowledge that have had the most significant impact on my\njourney. From the Linux command line and version control with Git to\ndelving into the basics of computer networks and learning just enough\nweb development for efficient data scraping. I'll break down these key\ncomponents that will empower you on your path to expertise in data\nscience and engineering.\n",
+ "language": "eng",
+ "recorded": "2023-12-16",
+ "related_urls": [
+ {
+ "label": "Conference Website",
+ "url": "https://www.pyohio.org/2023/"
+ }
+ ],
+ "speakers": [
+ "Jian Jin"
+ ],
+ "thumbnail_url": "https://i.ytimg.com/vi/2WORtba6S18/maxresdefault.jpg",
+ "title": "Learn Just Enough Computer Science to Be a Better (Self-taught) Data Scientist/Engineer",
+ "videos": [
+ {
+ "type": "youtube",
+ "url": "https://youtu.be/2WORtba6S18"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pyohio-2023/videos/make-your-documentation-interactive-with-pyscript.json b/pyohio-2023/videos/make-your-documentation-interactive-with-pyscript.json
new file mode 100644
index 000000000..95515ca64
--- /dev/null
+++ b/pyohio-2023/videos/make-your-documentation-interactive-with-pyscript.json
@@ -0,0 +1,22 @@
+{
+ "description": "Your documentation is peppered with examples \u2013 what if users could run\nthem in an interactive REPL, right inside the online documentation? With\nPyScript, developers can add an interactive Python session to any\nwebpage, including integration with Sphinx, MkDocs, readthedocs, and\nGitHub Pages.\n\nIn this talk, you will learn how to enhance your Python web\ndocumentation by making it fully interactive and runnable anywhere, in a\nfully serverless way.\n",
+ "language": "eng",
+ "recorded": "2023-12-16",
+ "related_urls": [
+ {
+ "label": "Conference Website",
+ "url": "https://www.pyohio.org/2023/"
+ }
+ ],
+ "speakers": [
+ "Jeff Glass"
+ ],
+ "thumbnail_url": "https://i.ytimg.com/vi/ysSewLZEqnM/maxresdefault.jpg",
+ "title": "Make Your Documentation Interactive with PyScript",
+ "videos": [
+ {
+ "type": "youtube",
+ "url": "https://youtu.be/ysSewLZEqnM"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pyohio-2023/videos/making-our-python-code-more-accessible.json b/pyohio-2023/videos/making-our-python-code-more-accessible.json
new file mode 100644
index 000000000..ead47481f
--- /dev/null
+++ b/pyohio-2023/videos/making-our-python-code-more-accessible.json
@@ -0,0 +1,23 @@
+{
+ "description": "While web developers work to make websites more accessible to end users,\nwe rarely talk about the accessibility of the code itself. This talk\ngives a brief introduction into accessibility concepts, and a glimpse\ninto our effort to tackle the accessibility of our Python code.\n",
+ "language": "eng",
+ "recorded": "2023-12-16",
+ "related_urls": [
+ {
+ "label": "Conference Website",
+ "url": "https://www.pyohio.org/2023/"
+ }
+ ],
+ "speakers": [
+ "Dmitriy Chukhin",
+ "Janelle Bouchard"
+ ],
+ "thumbnail_url": "https://i.ytimg.com/vi/To1GASgqSek/maxresdefault.jpg",
+ "title": "Making Our Python Code More Accessible",
+ "videos": [
+ {
+ "type": "youtube",
+ "url": "https://youtu.be/To1GASgqSek"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pyohio-2023/videos/mommy-how-are-objects-made-by-dunder-seuss.json b/pyohio-2023/videos/mommy-how-are-objects-made-by-dunder-seuss.json
new file mode 100644
index 000000000..51271d03d
--- /dev/null
+++ b/pyohio-2023/videos/mommy-how-are-objects-made-by-dunder-seuss.json
@@ -0,0 +1,22 @@
+{
+ "description": "A whimsical explanation of the various dunders and types that\nparticipate in object creation and construction as told by Momma Python\nto her child.\n",
+ "language": "eng",
+ "recorded": "2023-12-16",
+ "related_urls": [
+ {
+ "label": "Conference Website",
+ "url": "https://www.pyohio.org/2023/"
+ }
+ ],
+ "speakers": [
+ "Joshua Cannon"
+ ],
+ "thumbnail_url": "https://i.ytimg.com/vi/P6ZoR8Egkpg/maxresdefault.jpg",
+ "title": "Mommy, How Are Objects Made? - by Dunder Seuss",
+ "videos": [
+ {
+ "type": "youtube",
+ "url": "https://youtu.be/P6ZoR8Egkpg"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pyohio-2023/videos/not-so-precise-float-arithmetic-in-python.json b/pyohio-2023/videos/not-so-precise-float-arithmetic-in-python.json
new file mode 100644
index 000000000..1fce4d07b
--- /dev/null
+++ b/pyohio-2023/videos/not-so-precise-float-arithmetic-in-python.json
@@ -0,0 +1,22 @@
+{
+ "description": "Just like in other programming languages, floating number arithmetics is\nnot very precise in Python. What makes floats so special and weird that\na simple arithmetic operation might not yield the expected result? Why\nis it so? For instance, what happens when you run the following line on\nthe Python terminal: 0.1+0.1+0.1==0.3? What will be the output? True or\nFalse?\n\nThis small talk will focus on the underlying behavior of floating\narithmetics precision and then discuss a few potential solutions to the\nproblem in Python.\n",
+ "language": "eng",
+ "recorded": "2023-12-16",
+ "related_urls": [
+ {
+ "label": "Conference Website",
+ "url": "https://www.pyohio.org/2023/"
+ }
+ ],
+ "speakers": [
+ "Syed Muhammad Dawoud Sheraz Ali"
+ ],
+ "thumbnail_url": "https://i.ytimg.com/vi/tHW_ZUQoohM/maxresdefault.jpg",
+ "title": "(Not-so) Precise Float Arithmetic in Python",
+ "videos": [
+ {
+ "type": "youtube",
+ "url": "https://youtu.be/tHW_ZUQoohM"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pyohio-2023/videos/orchestrating-workflows-is-a-cron-ic-systems-problem-airflow-is-the-modern-solution.json b/pyohio-2023/videos/orchestrating-workflows-is-a-cron-ic-systems-problem-airflow-is-the-modern-solution.json
new file mode 100644
index 000000000..3bca1ade9
--- /dev/null
+++ b/pyohio-2023/videos/orchestrating-workflows-is-a-cron-ic-systems-problem-airflow-is-the-modern-solution.json
@@ -0,0 +1,22 @@
+{
+ "description": "As a developer, devops specialist, or SRE, you almost certainly have\nrecurring computational jobs running on your systems. cron is the\nsimple, time-tested sysadmin tool for making a Unix host run a task on a\nregular schedule.\n\nHowever, with the ongoing migration to cloud-based microservices and\nAPIs, many computational tasks have a large, complex, and widely\ndistributed graph of upstream dependencies. These dependencies come in\nmany different forms: for example, a file or other resource arrives; a\nservice or API becomes available; a database finishes a maintenance\ntask; the clock strikes midnight.\n\nTeams that try to manage such complex dependencies with cron inevitably\nend up writing brittle, custom code and scripts to ensure that their\njobs execute in the correct order.\n\nThis raises the question: how can a team more effectively define,\nmanage, visualize, and monitor such complex workflows? An increasingly\npopular answer is Apache Airflow, the open-source system for workflow\norchestration.\n\nFrom this talk, you will learn about the use cases for Airflow, walk\nthrough some introductory examples of the Python code that defines\nworkflows, and watch these workflows operating in real-time in the web\nUI.\n",
+ "language": "eng",
+ "recorded": "2023-12-16",
+ "related_urls": [
+ {
+ "label": "Conference Website",
+ "url": "https://www.pyohio.org/2023/"
+ }
+ ],
+ "speakers": [
+ "Jack Bennett"
+ ],
+ "thumbnail_url": "https://i.ytimg.com/vi/5wfy1Cofivw/maxresdefault.jpg",
+ "title": "Orchestrating Workflows Is a 'cron-ic' Systems Problem. Airflow Is the Modern Solution.",
+ "videos": [
+ {
+ "type": "youtube",
+ "url": "https://youtu.be/5wfy1Cofivw"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pyohio-2023/videos/python-s-magic-for-machine-learning-in-15-minutes.json b/pyohio-2023/videos/python-s-magic-for-machine-learning-in-15-minutes.json
new file mode 100644
index 000000000..512d46da5
--- /dev/null
+++ b/pyohio-2023/videos/python-s-magic-for-machine-learning-in-15-minutes.json
@@ -0,0 +1,22 @@
+{
+ "description": "Uncover the extraordinary world of Python's machine learning and data\nscience capabilities in a lightning-fast 15-minute presentation. Join me\nfor an exhilarating journey as we explore how Python empowers\ndata-driven insights:\n\n#. **Python's Potent Toolkit:** We'll introduce the essential Python\n libraries for data manipulation, analysis, and machine learning,\n setting the stage for rapid exploration.\n\n#. **Dazzling Data Alchemy:** Learn quick techniques for data\n preprocessing, visualization, and exploration, unlocking hidden\n insights with lightning speed.\n\n#. **Prompt Predictive Wizardry:** Witness Python's incredible powers as\n we rapidly introduce, create, and deploy a simple machine learning\n model to predict the future in the blink of an eye!\n\nIn just 15 minutes, you'll grasp the essence of Python's enchanting\ncapabilities within the world of data science and machine learning. This\npresentation promises a thrilling adventure without the need for magic\nspells or sorcery. Join us at PyOhio for this whirlwind exploration of\nPython's magic for Machine Learning!\n",
+ "language": "eng",
+ "recorded": "2023-12-16",
+ "related_urls": [
+ {
+ "label": "Conference Website",
+ "url": "https://www.pyohio.org/2023/"
+ }
+ ],
+ "speakers": [
+ "Connie Skomra"
+ ],
+ "thumbnail_url": "https://i.ytimg.com/vi/2_rYvaOjesQ/maxresdefault.jpg",
+ "title": "Python's Magic for Machine Learning in 15 Minutes",
+ "videos": [
+ {
+ "type": "youtube",
+ "url": "https://youtu.be/2_rYvaOjesQ"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pyohio-2023/videos/serverless-jupyter-notebook-functions.json b/pyohio-2023/videos/serverless-jupyter-notebook-functions.json
new file mode 100644
index 000000000..50a208394
--- /dev/null
+++ b/pyohio-2023/videos/serverless-jupyter-notebook-functions.json
@@ -0,0 +1,22 @@
+{
+ "description": "Jupyter notebooks are awesome! They are a great tool for both Python\nbeginners and experienced professionals alike. A problem arises when we\nhave to \"productionize\" our Jupyter notebook code into a web service.\nWhat if we didn't have to rewrite our code to do this? That's where\nJupyrest comes in! Jupyrest is a library I created to solve this exact\nproblem for my team at Microsoft. In this talk I'll show you how you can\nturn your Jupyter notebooks into a web service without any modifications\nto it. Jupyrest is being used at Microsoft to power hundreds of\nmicroservices.\n",
+ "language": "eng",
+ "recorded": "2023-12-16",
+ "related_urls": [
+ {
+ "label": "Conference Website",
+ "url": "https://www.pyohio.org/2023/"
+ }
+ ],
+ "speakers": [
+ "Koushik Krishnan"
+ ],
+ "thumbnail_url": "https://i.ytimg.com/vi/mFfnJkhAglA/maxresdefault.jpg",
+ "title": "Serverless Jupyter Notebook Functions",
+ "videos": [
+ {
+ "type": "youtube",
+ "url": "https://youtu.be/mFfnJkhAglA"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pyohio-2023/videos/slaying-software-zombies-with-llms-and-lesser-incantations.json b/pyohio-2023/videos/slaying-software-zombies-with-llms-and-lesser-incantations.json
new file mode 100644
index 000000000..00b5aa8b9
--- /dev/null
+++ b/pyohio-2023/videos/slaying-software-zombies-with-llms-and-lesser-incantations.json
@@ -0,0 +1,22 @@
+{
+ "description": "Code is organic: it grows and rots with neglect. So does the associated\n\u201cmeta-code\u201d - like docs, tests, configurations, and requirements. This\nis fertile soil for Zombies, a horde of which can seriously disrupt the\nsoftware development process.\n\nIn this talk, we'll explore how automated testing strategies can be used\nto identify and minimize drift in meta-code. Techniques of yore - such\nas Behaviour-Driven Development and Living Documentation - are\nresuscitated before your eyes using the arcane magic of Large Language\nModels (LLMs). Limitations / good targets for application are discussed\nin the context of the author's experience.\n\nAnd if you act now, we'll throw in two other hyphenated proper nouns\n(Provider-Driven Contracts and Example-Based Requirements) for free!\n",
+ "language": "eng",
+ "recorded": "2023-12-16",
+ "related_urls": [
+ {
+ "label": "Conference Website",
+ "url": "https://www.pyohio.org/2023/"
+ }
+ ],
+ "speakers": [
+ "Paul Pereyda Karayan"
+ ],
+ "thumbnail_url": "https://i.ytimg.com/vi/MiPC9BwDdPA/maxresdefault.jpg",
+ "title": "Slaying Software Zombies with LLMs (and Lesser Incantations)",
+ "videos": [
+ {
+ "type": "youtube",
+ "url": "https://youtu.be/MiPC9BwDdPA"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pyohio-2023/videos/thank-you-looking-ahead-to-pyohio-2024.json b/pyohio-2023/videos/thank-you-looking-ahead-to-pyohio-2024.json
new file mode 100644
index 000000000..4d304e802
--- /dev/null
+++ b/pyohio-2023/videos/thank-you-looking-ahead-to-pyohio-2024.json
@@ -0,0 +1,23 @@
+{
+ "description": "Thank you to everyone who helped make PyOhio happen this year, including\nYOU!\n\nWe can't wait to tell you about PyOhio 2024!\n",
+ "language": "eng",
+ "recorded": "2023-12-16",
+ "related_urls": [
+ {
+ "label": "Conference Website",
+ "url": "https://www.pyohio.org/2023/"
+ }
+ ],
+ "speakers": [
+ "Dave Forgac",
+ "Kattni"
+ ],
+ "thumbnail_url": "https://i.ytimg.com/vi/52b4Tg74Fu0/maxresdefault.jpg",
+ "title": "Thank You & Looking Ahead to PyOhio 2024",
+ "videos": [
+ {
+ "type": "youtube",
+ "url": "https://youtu.be/52b4Tg74Fu0"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pyohio-2023/videos/web-scraping-crash-course-with-python-and-scrapy.json b/pyohio-2023/videos/web-scraping-crash-course-with-python-and-scrapy.json
new file mode 100644
index 000000000..5223e3083
--- /dev/null
+++ b/pyohio-2023/videos/web-scraping-crash-course-with-python-and-scrapy.json
@@ -0,0 +1,22 @@
+{
+ "description": "APIs are a great way to consume publicly accessible data. But what do\nyou do when there's no API? Enter web scraping: a way you can harvest\ndata out of the same HTML documents you look at in your web browser.\n\nWe'll talk about:\n\n- What is web scraping?\n- What is Scrapy and why should you use it?\n- How to scrape data from HTML elements in a web page\n\nSource code for the example project in the talk will be available!\n",
+ "language": "eng",
+ "recorded": "2023-12-16",
+ "related_urls": [
+ {
+ "label": "Conference Website",
+ "url": "https://www.pyohio.org/2023/"
+ }
+ ],
+ "speakers": [
+ "James Walters"
+ ],
+ "thumbnail_url": "https://i.ytimg.com/vi/L3B_9ooL3Uo/maxresdefault.jpg",
+ "title": "Web Scraping Crash Course! With Python and Scrapy",
+ "videos": [
+ {
+ "type": "youtube",
+ "url": "https://youtu.be/L3B_9ooL3Uo"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pyohio-2023/videos/welcome.json b/pyohio-2023/videos/welcome.json
new file mode 100644
index 000000000..b49106283
--- /dev/null
+++ b/pyohio-2023/videos/welcome.json
@@ -0,0 +1,22 @@
+{
+ "description": "Welcome to PyOhio!\n\nHere is some important information before we get started:\n\n- `Code of Conduct `__\n- `Chat on Discord `__\n- `T-Shirts `__ \u2013\n available through Dec 19!\n- `Volunteer! `__\n- `Conference Schedule `__\n",
+ "language": "eng",
+ "recorded": "2023-12-16",
+ "related_urls": [
+ {
+ "label": "Conference Website",
+ "url": "https://www.pyohio.org/2023/"
+ }
+ ],
+ "speakers": [
+ "Dave Forgac"
+ ],
+ "thumbnail_url": "https://i.ytimg.com/vi/MvuIu6l7i4o/maxresdefault.jpg",
+ "title": "Welcome!",
+ "videos": [
+ {
+ "type": "youtube",
+ "url": "https://youtu.be/MvuIu6l7i4o"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pyohio-2023/videos/what-i-learned-in-three-years-writing-tests-live.json b/pyohio-2023/videos/what-i-learned-in-three-years-writing-tests-live.json
new file mode 100644
index 000000000..28b30a736
--- /dev/null
+++ b/pyohio-2023/videos/what-i-learned-in-three-years-writing-tests-live.json
@@ -0,0 +1,22 @@
+{
+ "description": "Live-streaming the writing of tests on Twitch \u2013 twice a week, for three\nyears \u2013 taught me a lot. Join me for a retrospective about the good, the\nbad, and the ugly lessons that I learned running the Salt Project Test\nClinic on Twitch during a global pandemic.\n",
+ "language": "eng",
+ "recorded": "2023-12-16",
+ "related_urls": [
+ {
+ "label": "Conference Website",
+ "url": "https://www.pyohio.org/2023/"
+ }
+ ],
+ "speakers": [
+ "Wayne"
+ ],
+ "thumbnail_url": "https://i.ytimg.com/vi/hdej-WqwpFw/maxresdefault.jpg",
+ "title": "What I Learned in Three Years Writing Tests Live",
+ "videos": [
+ {
+ "type": "youtube",
+ "url": "https://youtu.be/hdej-WqwpFw"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pyohio-2023/videos/what-is-the-annotated-type.json b/pyohio-2023/videos/what-is-the-annotated-type.json
new file mode 100644
index 000000000..e4bdaf655
--- /dev/null
+++ b/pyohio-2023/videos/what-is-the-annotated-type.json
@@ -0,0 +1,22 @@
+{
+ "description": "PEP 593 introduced the ``Annotated`` Type in Python 3.9, allowing typing\nmetadata. In 2023, usage of the type by popular libraries has\nsignificantly increased. For example, ``FastAPI`` and ``Pydantic`` have\nfully adopted the ``Annotated`` type and recommend it as the preferred\nsyntax for their functionality. In this talk, we will explore usage of\nthis type in open source projects and take a look at how it might be\nused in your code.\n",
+ "language": "eng",
+ "recorded": "2023-12-16",
+ "related_urls": [
+ {
+ "label": "Conference Website",
+ "url": "https://www.pyohio.org/2023/"
+ }
+ ],
+ "speakers": [
+ "Daniel Schelkoph"
+ ],
+ "thumbnail_url": "https://i.ytimg.com/vi/5uyda0og04s/maxresdefault.jpg",
+ "title": "What Is the `Annotated` Type?",
+ "videos": [
+ {
+ "type": "youtube",
+ "url": "https://youtu.be/5uyda0og04s"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/pyohio-2023/videos/who-put-the-python-in-my-browser-a-quick-guide-to-pyscript.json b/pyohio-2023/videos/who-put-the-python-in-my-browser-a-quick-guide-to-pyscript.json
new file mode 100644
index 000000000..fde9ae2a3
--- /dev/null
+++ b/pyohio-2023/videos/who-put-the-python-in-my-browser-a-quick-guide-to-pyscript.json
@@ -0,0 +1,22 @@
+{
+ "description": "By the powers of WASM, Pyodide, and modern web technologies, you can run\nPython in the browser with PyScript. From mixing Python with HTML to\nusing libraries such as Pandas, Matplotlib, Numpy, WebGL, and more...\nPyScript allows you to leverage your Python skills to create rich web\napplications. Come see what you can do with PyScript!\n",
+ "language": "eng",
+ "recorded": "2023-12-16",
+ "related_urls": [
+ {
+ "label": "Conference Website",
+ "url": "https://www.pyohio.org/2023/"
+ }
+ ],
+ "speakers": [
+ "Sadukie"
+ ],
+ "thumbnail_url": "https://i.ytimg.com/vi/nfqYepL0ykE/maxresdefault.jpg",
+ "title": "Who Put the Python in My Browser?! A Quick Guide to PyScript!",
+ "videos": [
+ {
+ "type": "youtube",
+ "url": "https://youtu.be/nfqYepL0ykE"
+ }
+ ]
+}
\ No newline at end of file