{"$schema": "https://c3voc.de/schedule/schema.json", "generator": {"name": "pretalx", "version": "2026.1.1"}, "schedule": {"url": "https://pretalx.com/juliacon2020/schedule/", "version": "0.23", "base_url": "https://pretalx.com", "conference": {"acronym": "juliacon2020", "title": "JuliaCon 2020 (times are in UTC)", "start": "2020-07-24", "end": "2020-07-31", "daysCount": 8, "timeslot_duration": "00:05", "time_zone_name": "UTC", "colors": {"primary": "#3aa57c"}, "rooms": [{"name": "Red Track", "slug": "379-red-track", "guid": "3d00c492-af15-51cb-b3bb-8962b72db196", "description": null, "capacity": null}, {"name": "Green Track", "slug": "380-green-track", "guid": "34f6ddb4-f573-5ff2-83c8-4385dfb81389", "description": null, "capacity": null}, {"name": "Purple Track", "slug": "381-purple-track", "guid": "67b57f92-9a34-5d7f-9f17-ba121b5fec8d", "description": null, "capacity": null}, {"name": "BoF", "slug": "382-bof", "guid": "592d6830-19a2-52eb-aae8-82eea56ef8b7", "description": "Birds of a Feather", "capacity": null}], "tracks": [], "days": [{"index": 1, "date": "2020-07-24", "day_start": "2020-07-24T04:00:00+00:00", "day_end": "2020-07-25T03:59:00+00:00", "rooms": {"Red Track": [{"guid": "1ff7773d-c7fa-57ef-8d30-5d2366398fcf", "code": "LSNEWV", "id": 5568, "logo": null, "date": "2020-07-24T14:00:00+00:00", "start": "14:00", "duration": "03:30", "room": "Red Track", "slug": "juliacon2020-5568-learn-julia-via-epidemic-modelling", "url": "https://pretalx.com/juliacon2020/talk/LSNEWV/", "title": "Learn Julia via epidemic modelling", "subtitle": "", "track": null, "type": "Workshop (half day)", "language": "en", "abstract": "This is a tutorial workshop, aimed at people with some experience of using\nbasic Julia, e.g. by following one of the excellent tutorials available at\nJuliaAcademy or on YouTube. \n\nYou should be familiar with using variables, functions and for loops, and basic plots using Plots.jl, in order to get the most out of the workshop.\n\nJoin this workshop by clicking on the Zoom link in the email from Eventbrite. Otherwise, watch the backup YouTube livestream: https://youtu.be/k0fr7XjH1_Y", "description": "We will explore more advanced features of Julia, in particular Julia\u2019s\ntype system. To do so we will build up simple models \nfor the spread of an epidemic through a population of individuals.\n\nSome topics that we will cover include:\n\n- Why Julia?\n- Small functions as building blocks\n- Multiple dispatch\n- User-defined types\n- Abstract types and type hierarchies\n- Generic programming\n\nMaterials and installation instructions are available at \nhttps://github.com/dpsanders/LearnJulia2020", "recording_license": "", "do_not_record": false, "persons": [{"code": "TJJRTG", "name": "David P. Sanders", "avatar": null, "biography": "Full professor in the Faculty of Sciences, Universidad Nacional Aut\u00f3noma de M\u00e9xico (UNAM) and visiting professor at MIT.\n\nJulia user, tutorial developer and package author since 2014. Co-creator of the JuliaIntervals suite of tools for interval arithmetic in Julia.", "public_name": "David P. Sanders", "guid": "1a0401a6-3623-5e63-9fd5-46130b34f9f8", "url": "https://pretalx.com/juliacon2020/speaker/TJJRTG/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/LSNEWV/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/LSNEWV/", "attachments": []}], "Green Track": [{"guid": "6b7226a5-507e-53d4-900b-51d69eee69f9", "code": "GQATHR", "id": 4403, "logo": null, "date": "2020-07-24T14:00:00+00:00", "start": "14:00", "duration": "03:30", "room": "Green Track", "slug": "juliacon2020-4403-building-and-analyzing-graphs-at-scale-with-lightgraphs", "url": "https://pretalx.com/juliacon2020/talk/GQATHR/", "title": "Building and analyzing graphs at scale with LightGraphs", "subtitle": "", "track": null, "type": "Workshop (half day)", "language": "en", "abstract": "From logistics to bioinformatics or web analytics, graphs are versatile abstractions for modelling problems and solving them with specialized efficient algorithms. But with different problems comes the need for different representations. This workshop aims at giving a hands-on tour to the JuliaGraphs libraries, letting the participants build, analyze and visualize graphs for different applications. Join via Zoom: link in email from Eventbrite. Backup Youtube link: https://youtu.be/K3z0kUOBy2Y.", "description": "1. Introduction  \n\nSetting up a project, logistics, where to get help, quick tour of the JuliaGraphs ecosystem\n\n2. First steps with SimpleGraphs  \n\nBuilding a graph, querying basic information, modifying a graph, constructing a graph iteratively, visualization using GraphPlot, generating standard graphs, getting large graphs from the Graph500.jl and SNAPDatasets.jl datasets.\n\n3. More types, more fun  \n\nThe graph abstraction, why? Two graph variants, with SimpleWeightedGraphs & MetaGraphs. Dot format for visualization of small graphs\n\n4. Applications  \n\nDiscrete optimization (spanning trees, mincut, flows, matching), web & network analysis (pagerank, analysis of the Julia packages), spectral analysis.\n\nTarget audience: we assume the audience is familiar with the basics of Julia syntax (functions, dispatch) and have already encountered graphs before.", "recording_license": "", "do_not_record": false, "persons": [{"code": "WPZLWJ", "name": "James Fairbanks", "avatar": null, "biography": "James is a Research Engineer at the Georgia Tech Research Institute in the High Performance Computing and Data Analytics Branch. His current research involves mathematical and computational formalisms in scientific computing. Where his lab applies techniques from Machine Learning, Numerical Methods, and Applied Category Theory to analyze scientific and engineering systems.", "public_name": "James Fairbanks", "guid": "2e3f01e4-4d27-54ab-81ae-2f864d7fb251", "url": "https://pretalx.com/juliacon2020/speaker/WPZLWJ/"}, {"code": "DK9KDB", "name": "Mathieu Besan\u00e7on", "avatar": "https://pretalx.com/media/avatars/DK9KDB_HEB0su3.webp", "biography": "Mathieu is a PhD candidate in a double program between Polytechnique Montreal & INRIA Lille. His research focuses on mathematical optimization models and applications for power grids. Outside research, he also works on open-source projects around mathematical optimization, graphs and statistics.", "public_name": "Mathieu Besan\u00e7on", "guid": "5faab441-b124-5470-afa0-57e75ffb7f11", "url": "https://pretalx.com/juliacon2020/speaker/DK9KDB/"}, {"code": "ZCWVXE", "name": "Simon Schoelly", "avatar": null, "biography": "Simon is a software developer from Switzerland, he programs Java during the day and Julia at night.\n\nCurrently he is mainly involved with the JuliaGraphs organization.", "public_name": "Simon Schoelly", "guid": "1b636ccd-2e4e-5ef9-a168-4e0aefbcce26", "url": "https://pretalx.com/juliacon2020/speaker/ZCWVXE/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/GQATHR/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/GQATHR/", "attachments": []}]}}, {"index": 2, "date": "2020-07-25", "day_start": "2020-07-25T04:00:00+00:00", "day_end": "2020-07-26T03:59:00+00:00", "rooms": {"Red Track": [{"guid": "d9cf9d4e-2167-5a11-9c20-69da832cfa38", "code": "Y3H7FG", "id": 4812, "logo": null, "date": "2020-07-25T14:00:00+00:00", "start": "14:00", "duration": "03:30", "room": "Red Track", "slug": "juliacon2020-4812-building-microservices-and-applications-in-julia", "url": "https://pretalx.com/juliacon2020/talk/Y3H7FG/", "title": "Building microservices and applications in Julia", "subtitle": "", "track": null, "type": "Workshop (half day)", "language": "en", "abstract": "While Julia started as a \"fresh approach to technical computing\", it has blossomed into a powerful general-purpose language fit for much more than \"just\" linear algebra and automatic differentiation. This workshop will walk-through an architecture of microservices in Julia, and a broad spectrum of high-quality packages to aid in the process. \n\nJoin via Zoom: link in email from Eventbrite. Backup Youtube link: https://youtu.be/uLhXgt_gKJc.", "description": "This workshop will have three phases:\n\n* General overview of microservices and their architecture; what are the purposes and goals of a microservice; need for web, service, and persistence layers; which layer takes care of which pieces of functionality; how does the object model definitions relate to each layer. Included will be a discussion of why a microservice can be more general purpose and accessible than a script, and how one could move a script computation into the framework of a full microservice.\n\n* How does the rubber meet the road; step-by-step walk-through of building a simple Julia microservice; implementation of object model definitions and packages that help in customizing object representations; implementing web, service, and persistence layers and packages available to aid in layer-to-layer object transfer; how to run the service and writing a simple client to test; quick example of \"packaging\" the service as a docker container for maximum portability and flexibility\n\n* Advanced topics in building microservices; solutions to common problems like logging, context setting and management, middleware setup, authentication, caching, connection pooling, config management, threaded worker task execution, docker container considerations, and using PackageCompiler.\n\nEvery microservice is unique and will always require customization and tooling, but with a set of high quality swiss-army packages and best practices, more time can be focused on domain logic instead of service setup and tooling.", "recording_license": "", "do_not_record": false, "persons": [{"code": "MQ3SJP", "name": "Jacob Quinn", "avatar": "https://pretalx.com/media/avatars/MQ3SJP_Z0yuEym.webp", "biography": "A long-time Julia user, developer, and enthusiast, Jacob works at Domo on large data analytics tasks.", "public_name": "Jacob Quinn", "guid": "7bc45afc-d149-5fc1-a5b3-a2c178529ca3", "url": "https://pretalx.com/juliacon2020/speaker/MQ3SJP/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/Y3H7FG/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/Y3H7FG/", "attachments": []}], "Green Track": [{"guid": "4382178a-78fc-5dbe-83b1-b930a3e4a2a5", "code": "9WMAVU", "id": 4170, "logo": "https://pretalx.com/media/juliacon2020/submissions/9WMAVU/build_all_the_things_HUxqyF9.jpg", "date": "2020-07-25T14:00:00+00:00", "start": "14:00", "duration": "03:30", "room": "Green Track", "slug": "juliacon2020-4170-binarybuilder-jl-the-subtle-art-of-binaries-that-just-work", "url": "https://pretalx.com/juliacon2020/talk/9WMAVU/", "title": "BinaryBuilder.jl \u2014 The Subtle Art of Binaries that \"Just Work\"", "subtitle": "", "track": null, "type": "Workshop (half day)", "language": "en", "abstract": "This workshop will walk you through the wonders of `BinaryBuilder.jl`, the framework that allows you to compile binary libraries and programs for all supported Julia platforms. \n\nJoin via Zoom: link in email from Eventbrite. Backup Youtube link: https://youtu.be/3IyXsBwqll8", "description": "In a perfect world, all interesting code would be written in Julia and there would be no need to worry about anything else.  Of course, we do not live in that world, and we must jump through hoops to ensure that code written in other languages is easily accessible from Julia.  BinaryBuilder.jl makes it easy to take software written in compiled languages such as C, C++, Fortran, Go or Rust, and build precompiled artifacts that can be used from Julia packages with ease.\n\nIn the first part of this workshop you will learn about the motivations for this package and how it solves the issues of provinding the needed binaries, but also the issue it creates!\n\nIn the second part we will guide you through the process of crafting a build recipe using `BinaryBuilder.jl`; we will demonstrate using the wizard which will guide you through the process of constructing a `build_tarballs.jl` script, then show how advanced users can write their own scripts in case they need more power or flexibility.\n\nFinally, in the hands-on section of the workshop you will have the opportunity to write a new recipe and submit your first pull request to Yggdrasil, the mythical collector of all `BinaryBuilder.jl` scripts, with the support of the presenters.", "recording_license": "", "do_not_record": false, "persons": [{"code": "B98NWS", "name": "Elliot Saba", "avatar": "https://pretalx.com/media/avatars/B98NWS_tEK7CH0.webp", "biography": "Elliot Saba is a Senior Research Engineer at Julia Computing, where he develops new tools to bolster the Julia community's collective productivity.  From machine learning algorithms to web services, build environments to debugging tools, his greatest weapon against the impossible is patience.", "public_name": "Elliot Saba", "guid": "7d47e0e1-48ab-59d6-930a-c5b09414ffab", "url": "https://pretalx.com/juliacon2020/speaker/B98NWS/"}, {"code": "ST7KZT", "name": "Mos\u00e8 Giordano", "avatar": "https://pretalx.com/media/avatars/ST7KZT_3IdkVo1.webp", "biography": "Research Software Developer at UCL during the day, binary builder during the night.", "public_name": "Mos\u00e8 Giordano", "guid": "70751b6a-0472-5cfa-81b8-4fd48c25a745", "url": "https://pretalx.com/juliacon2020/speaker/ST7KZT/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/9WMAVU/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/9WMAVU/", "attachments": []}]}}, {"index": 3, "date": "2020-07-26", "day_start": "2020-07-26T04:00:00+00:00", "day_end": "2020-07-27T03:59:00+00:00", "rooms": {"Red Track": [{"guid": "7981e253-728b-5f3b-a642-c0a1ac82a4e4", "code": "C9FGPP", "id": 4763, "logo": null, "date": "2020-07-26T14:00:00+00:00", "start": "14:00", "duration": "03:30", "room": "Red Track", "slug": "juliacon2020-4763-doing-scientific-machine-learning-sciml-with-julia", "url": "https://pretalx.com/juliacon2020/talk/C9FGPP/", "title": "Doing Scientific Machine Learning (SciML) With Julia", "subtitle": "", "track": null, "type": "Workshop (half day)", "language": "en", "abstract": "Scientific machine learning combines differentiable programming, scientific simulation, and machine learning in order impose physical constraints on machine learning and automatically learn biological models. Given the composibility of Julia, it is positioned as the best language for this set of numerical techniques, but how to do actually \"do\" SciML? This workshop gets your hands dirty.\n\nJoin via Zoom: link in email from Eventbrite. Backup Youtube link: https://youtu.be/QwVO0Xh2Hbg", "description": "In this workshop we'll dive into some of the latest techniques in scientific machine learning, including Universal Differential Equations ([Universal Differential Equations for Scientific Machine Learning](https://arxiv.org/abs/2001.04385)), Physics-Informed Neural Networks ([Physics-informed neural networks: A deep learning framework for solving forward and inverse problems involving nonlinear partial differential equations](https://www.sciencedirect.com/science/article/pii/S0021999118307125)), and Sparse Identification of Nonlinear Dynamics (SInDy, [Discovering governing equations from data by sparse identification of nonlinear dynamical systems](https://www.pnas.org/content/113/15/3932)). The goal is to get those in the workshop familiar with what these methods are, what kinds of problems they solve, and know how to use Julia packages to implement them.\n\nThe workshop will jump right into how to model the missing part of a physical simulation, describe how universal approximators (neural networks) can be used in this context, and show how to transform such problems into an optimization problem which is then accelerated by specializing automatic differentiation. The set of packages that is involved in this is somewhat intense, using many tools from JuliaDiffEq ([DiffEqFlux.jl](https://diffeqflux.sciml.ai/dev/), DifferentialEquations.jl, DiffEqSensitivity.jl, ModelingToolkit.jl, [NeuralPDE.jl](https://neuralpde.sciml.ai/dev/), DataDrivenDiffEq.jl, Surrogates.jl, etc.) combined with machine learning tools (Flux.jl), differentiation tooling (SparseDiffTools.jl, Zygote.jl, ForwardDiff.jl, ReverseDiff.jl, etc.), and optimization tooling (JuMP, Optim.jl, Flux.jl, NLopt.jl, etc.) all spun together in a glorious soup that automatically discovers physical laws at the end of the day. Thus this workshop has something different to offer for everyone: new users of Julia will get a nice overview of the unique composibility of the Julia package ecosystem, while experienced Julia users will learn how to bridge some area that they are comfortable with (such as machine learning) to a whole new set of phenomena. Meanwhile, even though who are only knee deep in coding can gain a lot from learning these new mathematical advances, meaning that even a casual observer likely has a lot to learn!", "recording_license": "", "do_not_record": false, "persons": [{"code": "WUWQQ3", "name": "Chris Rackauckas", "avatar": "https://pretalx.com/media/avatars/WUWQQ3_otHw1Wk.webp", "biography": "Christopher Rackauckas is an Applied Mathematics Instructor at the Massachusetts Institute of Technology and a Senior Research Analyst at University of Maryland, Baltimore, School of Pharmacy in the Center for Translational Medicine. Chris's research is focused on numerical differential equations and scientific machine learning with applications from climate to biological modeling. He is the developer of over many core numerical packages for the Julia programming language, including DifferentialEquations.jl for which he won the inaugural Julia community prize, and the Pumas.jl for pharmaceutical modeling and simulation. He is the lead developer for the [SciML Open Source Scientific Machine Learning](https://sciml.ai/) software organization, along with its packages like [DiffEqFlux.jl](https://diffeqflux.sciml.ai/dev/) and [NeuralPDE.jl](https://neuralpde.sciml.ai/dev/)", "public_name": "Chris Rackauckas", "guid": "5ecf5886-9c68-55ca-8dcf-c4f85742c1ca", "url": "https://pretalx.com/juliacon2020/speaker/WUWQQ3/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/C9FGPP/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/C9FGPP/", "attachments": []}], "Green Track": [{"guid": "622f0221-e206-5354-be6f-b95f82af13b2", "code": "NNVQQF", "id": 4730, "logo": null, "date": "2020-07-26T14:00:00+00:00", "start": "14:00", "duration": "03:30", "room": "Green Track", "slug": "juliacon2020-4730-wrapping-a-c-library-using-cxxwrap-jl", "url": "https://pretalx.com/juliacon2020/talk/NNVQQF/", "title": "Wrapping a C++ library using CxxWrap.jl", "subtitle": "", "track": null, "type": "Workshop (half day)", "language": "en", "abstract": "This workshop will show how to use [CxxWrap.jl](https://github.com/JuliaInterop/CxxWrap.jl) to wrap a C++ library, based on tutorial material that can be followed along during the workshop. We will show everything you need to know about writing and compiling the required C++ wrapping code. \n\nSetup beforehand is required, see https://github.com/barche/cxxwrap-juliacon2020#docker-dev-container\n\nJoin via Zoom: link in email from Eventbrite. Backup Youtube link: https://youtu.be/VoXmXtqLhdo", "description": "The prerequisites for following this workshop are a working C++17 compiler and a Julia installation, details are given at the [workshop github repository](https://github.com/barche/cxxwrap-juliacon2020)\n\nThe workshop is built up around exercises that can be followed along on your own machine. We start off with some generic tutorials about compiling a very simple shared library and using that directly from Julia using `ccall`, and then build up more complex cases using CxxWrap to tackle proper C++ constructs such as classes and templates. Exercises are as follows:\n\n1. Shared libraries: build and use `libfoo` from the BinaryBuilder tests, using CMake. This will gently introduce everyone to the manual compilation of a shared library, which is required for package development with CxxWrap.\n2. Setting up CxxWrap for development: Compile CxxWrap itself using your system compiler and set it up using Overrides.toml. This is needed on most platforms, since the distributed CxxWrap binaries are cross-compiled and usually incompatible with the installed compiler.\n3. Make a CxxWrap wrapper package for `libfoo`\n4. Wrapping the [Eigen C++ matrix library](http://eigen.tuxfamily.org/)\n5. Smart pointers\n6. Using and extending the STL support\n7. Distributing your package using BinaryBuilder: this will focus on the attention points when using BinaryBuilder, for example it is necessary to download Julia itself to compile a CxxWrap package.", "recording_license": "", "do_not_record": false, "persons": [{"code": "H3TNC7", "name": "Bart Janssens", "avatar": "https://pretalx.com/media/avatars/H3TNC7_3ho4OXK.webp", "biography": "Bart Janssens is a military associate professor at the mechanics department of the [Royal Military Academy](https://www.rma.ac.be), with a passion for computer graphics, high performance computing and fluid mechanics. For performance reasons, he used C++ until being introduced to Julia. His current work focuses on making scientific C++ libraries such as Trilinos interoperate with Julia, with the ultimate objective of developing CFD code for Julia.", "public_name": "Bart Janssens", "guid": "47db3dd0-6dae-543b-8d77-fa09147f7952", "url": "https://pretalx.com/juliacon2020/speaker/H3TNC7/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/NNVQQF/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/NNVQQF/", "attachments": []}]}}, {"index": 4, "date": "2020-07-27", "day_start": "2020-07-27T04:00:00+00:00", "day_end": "2020-07-28T03:59:00+00:00", "rooms": {"Red Track": [{"guid": "7c645d42-5f27-524a-82af-a52cc2f6a2fe", "code": "8SFYHK", "id": 3248, "logo": null, "date": "2020-07-27T14:00:00+00:00", "start": "14:00", "duration": "03:30", "room": "Red Track", "slug": "juliacon2020-3248-a-deep-dive-into-dataframes-jl-indexing", "url": "https://pretalx.com/juliacon2020/talk/8SFYHK/", "title": "A deep dive into DataFrames.jl indexing", "subtitle": "", "track": null, "type": "Workshop (half day)", "language": "en", "abstract": "During this workshop I will explain the design of indexing of the `DataFrame` type provided by the DataFrames.jl package. Next a detailed discussion of the implementation challenges we faced will be given.\n\nJoin via Zoom: link in email from Eventbrite. Backup Youtube link: https://youtu.be/X7AJf0C4Czw", "description": "Making a `DataFrame` consistent with all indexing functionalities provided by Base Julia (`getindex`, `setindex!`, `view`, `broadcast` and `broadcast!`) is a challenge as it can contain heterogeneous columns that can dynamically change their element type and be added/removed/resized.\n\nThe first part of the workshop is aimed at a general audience and explains the `DataFrame` indexing rules. The second part explains how to implement indexing for a custom type in the Julia language.\n\nThe workshop materials will be made available at https://github.com/bkamins/JuliaCon2020-DataFrames-Tutorial.", "recording_license": "", "do_not_record": false, "persons": [{"code": "DHRPEA", "name": "Bogumi\u0142 Kami\u0144ski", "avatar": "https://pretalx.com/media/avatars/DHRPEA_SrG879n.webp", "biography": "I am a researcher in the fields of operations research and computational social science.\nFor development work I mostly use the Julia language.\n\nYou can find more information about me and my work on my [personal website](http://bogumilkaminski.pl/about/) or [GitHub](https://github.com/bkamins).", "public_name": "Bogumi\u0142 Kami\u0144ski", "guid": "ff258f43-c537-5d16-9fda-25f0346ec9a9", "url": "https://pretalx.com/juliacon2020/speaker/DHRPEA/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/8SFYHK/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/8SFYHK/", "attachments": []}], "Green Track": [{"guid": "e56a93bd-f035-56ca-b259-292971b17ae3", "code": "QT3S9U", "id": 4533, "logo": null, "date": "2020-07-27T14:00:00+00:00", "start": "14:00", "duration": "03:30", "room": "Green Track", "slug": "juliacon2020-4533-calculating-with-sets-interval-methods-in-julia", "url": "https://pretalx.com/juliacon2020/talk/QT3S9U/", "title": "Calculating with sets: Interval methods in Julia", "subtitle": "", "track": null, "type": "Workshop (half day)", "language": "en", "abstract": "We will give a hands-on tutorial introduction to the powerful numerical methods for calculating with sets that become available by using interval arithmetic and associated methods, including for approximating functions, root finding, global optimization and solving ODEs, all with guaranteed error bounds.\n\nJoin via Zoom: link in email from Eventbrite. Backup Youtube link: https://youtu.be/LAuRCy9jUU8", "description": "We will give a hands-on tutorial introduction to the powerful numerical methods for calculating with sets that become available by using interval arithmetic and associated methods, including for approximating functions, root finding, global optimization and solving ODEs, all with guaranteed error bounds.\n\nWe will explore the suite of packages in the JuliaIntervals organization and how they interact with other packages in the Julia ecosystem, in particular LinearAlgebra and ForwardDiff. We will show how they\n may be used interactively to  calculate ranges of functions, exclude and prove uniqueness of roots. We will also show how to build branch-and-prune algorithms for global optimization and discuss the use of constraint propagation. We will also discuss how to build rigorous approximations of functions as polynomials with interval remainders, and how these may be used for solving ordinary differential equations with guaranteed error bounds (tubes).\n\nMaterials are available at https://github.com/dpsanders/IntervalsJuliaCon2020", "recording_license": "", "do_not_record": false, "persons": [{"code": "TJJRTG", "name": "David P. Sanders", "avatar": null, "biography": "Full professor in the Faculty of Sciences, Universidad Nacional Aut\u00f3noma de M\u00e9xico (UNAM) and visiting professor at MIT.\n\nJulia user, tutorial developer and package author since 2014. Co-creator of the JuliaIntervals suite of tools for interval arithmetic in Julia.", "public_name": "David P. Sanders", "guid": "1a0401a6-3623-5e63-9fd5-46130b34f9f8", "url": "https://pretalx.com/juliacon2020/speaker/TJJRTG/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/QT3S9U/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/QT3S9U/", "attachments": []}], "BoF": [{"guid": "f384caa2-0e6d-5be6-bb9a-afe0a590a459", "code": "CRYCPR", "id": 6164, "logo": null, "date": "2020-07-27T17:30:00+00:00", "start": "17:30", "duration": "00:45", "room": "BoF", "slug": "juliacon2020-6164-gather-town-social", "url": "https://pretalx.com/juliacon2020/talk/CRYCPR/", "title": "Gather Town Social", "subtitle": "", "track": null, "type": "Birds of Feather", "language": "en", "abstract": "With JuliaCon being remote we've created a gather.town room that will be live throughout the event so that people can mingle and meet. \n\nAny time people want to use it, just go to  https://gather.town/rBrwIUqeDkb5JTxu/juliacon2020\n\nAnd there's now a scheduled social gathering in there on Monday after the workshops (the event's been added to pretalx).\n\nThe team at gather.town are kindly supporting higher capacity for us, and asked that we give them feedback in", "description": "", "recording_license": "", "do_not_record": true, "persons": [], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/CRYCPR/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/CRYCPR/", "attachments": []}]}}, {"index": 5, "date": "2020-07-28", "day_start": "2020-07-28T04:00:00+00:00", "day_end": "2020-07-29T03:59:00+00:00", "rooms": {"Red Track": [{"guid": "5608a4fe-6df2-5084-ac92-163cd780b208", "code": "DMHZCC", "id": 3761, "logo": "https://pretalx.com/media/juliacon2020/images/DMHZCC/mlj_CGeBfS3.png", "date": "2020-07-28T14:00:00+00:00", "start": "14:00", "duration": "03:30", "room": "Red Track", "slug": "juliacon2020-3761-mlj-a-machine-learning-toolbox-for-julia", "url": "https://pretalx.com/juliacon2020/talk/DMHZCC/", "title": "MLJ: a machine learning toolbox for Julia", "subtitle": "", "track": null, "type": "Workshop (half day)", "language": "en", "abstract": "MLJ is a machine learning framework for Julia aiming to provide a convenient way to use and combine a multitude of tools and models available in the Julia ML/Stats ecosystem.\n\nJoin via Zoom: link in email from Eventbrite. Backup Youtube link: https://youtu.be/qSWbCn170HU", "description": "In this workshop we intend to demonstrate how MLJ can be used on a few \"real\" examples demonstrating how to interpret and preprocess data, how to train models and tune hyperparameters and how to evaluate and compare the quality of predictive models. \nWe will also discuss briefly how MLJ positions itself with respect to the Julia ML/Stats ecosystem and what's on the roadmap for future developments.\n\nWorkshop repo: https://github.com/ablaom/MachineLearningInJulia2020", "recording_license": "", "do_not_record": false, "persons": [{"code": "CK3MKJ", "name": "Anthony Blaom", "avatar": null, "biography": "Dr. Anthony Blaom conducted his PhD at Caltech in Mathematics and has expertise in Differential Geometry, Dynamical Systems, Fluid Mechanics, Machine Learning and Applied Statistics.  An erstwhile academic, Anthony is now primarily involved in software development for machine learning.", "public_name": "Anthony Blaom", "guid": "22b02bf5-ea12-53fb-9357-ca3c15f95cd1", "url": "https://pretalx.com/juliacon2020/speaker/CK3MKJ/"}, {"code": "DFDVWV", "name": "Thibaut Lienart", "avatar": null, "biography": "TBD", "public_name": "Thibaut Lienart", "guid": "53e8a220-0b11-5202-9f28-dc1af5af1132", "url": "https://pretalx.com/juliacon2020/speaker/DFDVWV/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/DMHZCC/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/DMHZCC/", "attachments": []}], "Green Track": [{"guid": "bdb9dade-7dd9-55ec-9d4f-d3128d317218", "code": "7MALUA", "id": 4809, "logo": null, "date": "2020-07-28T14:00:00+00:00", "start": "14:00", "duration": "03:30", "room": "Green Track", "slug": "juliacon2020-4809-make-your-julia-code-faster-and-compatible-with-non-julia-code", "url": "https://pretalx.com/juliacon2020/talk/7MALUA/", "title": "Make your Julia code faster and compatible with non-Julia code.", "subtitle": "", "track": null, "type": "Workshop (half day)", "language": "en", "abstract": "Often, new comers to Julia face one of two issues: (1) write a quick Julia implementation that turns out slower than expected, and (2) find it hard to bridge existing codes in another programming language to Julia. In this workshop, I will show Julia tools and \"aha-moments\" that will allow your Julia code to be much faster, and walk through examples of wrapping Python, and C codes into Julia.\n\nJoin via Zoom: link in email from Eventbrite. Backup Youtube link: https://youtu.be/S5R8zXJOsUQ", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "UDMYCM", "name": "Huda Nassar", "avatar": "https://pretalx.com/media/avatars/UDMYCM_VH6LXdv.webp", "biography": "Huda Nassar is a postdoctoral fellow at Stanford University specializing in computational immunology. Her work is currently focused on early disease prediction and specifically building low-rank models for these problems. She is an enthusiastic Julia user and has built the MatrixNetworks.jl package which is a graph algorithms package that treats graphs as matrices and utilizes linear algebra concepts to solve many standard graph problems.", "public_name": "Huda Nassar", "guid": "5801d516-e8d1-55f0-bc4b-453c1b7fdcc2", "url": "https://pretalx.com/juliacon2020/speaker/UDMYCM/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/7MALUA/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/7MALUA/", "attachments": []}], "BoF": [{"guid": "a00775e3-a779-51bd-a8f1-6cd41adfa384", "code": "SA8M93", "id": 6174, "logo": null, "date": "2020-07-28T17:30:00+00:00", "start": "17:30", "duration": "00:45", "room": "BoF", "slug": "juliacon2020-6174-gather-towns-social", "url": "https://pretalx.com/juliacon2020/talk/SA8M93/", "title": "Gather Towns Social", "subtitle": "", "track": null, "type": "Birds of Feather", "language": "en", "abstract": "After the success of the Monday session, a further scheduled social on Gather Town will happen again on Tuesday after the workshops, at 17:30 UTC. \n\nPlease join then (or indeed at any time) using https://gather.town/rBrwIUqeDkb5JTxu/juliacon2020\n\nFor today's event, there will be a dedicated space for MLJ, the Julia Machine Learning toolkit, where the the development team will be around to chat and answer questions.", "description": "", "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/SA8M93/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/SA8M93/", "attachments": []}]}}, {"index": 6, "date": "2020-07-29", "day_start": "2020-07-29T04:00:00+00:00", "day_end": "2020-07-30T03:59:00+00:00", "rooms": {"Red Track": [{"guid": "d6ea4d94-822d-502e-b359-802c451ace22", "code": "YY9QEJ", "id": 4558, "logo": null, "date": "2020-07-29T12:30:00+00:00", "start": "12:30", "duration": "00:10", "room": "Red Track", "slug": "juliacon2020-4558-kernelfunctions-jl-machine-learning-kernels-for-julia", "url": "https://pretalx.com/juliacon2020/talk/YY9QEJ/", "title": "KernelFunctions.jl, machine learning kernels for Julia", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Kernel functions are used in an incredible number of applications ranging from SVM to Gaussian processes as well as Stein variational methods. \nWith [`KernelFunctions.jl`](https://github.com/theogf/KernelFunctions.jl) we propose a modular and easily customizable kernel framework. The emphasis made in this package is to work smoothly with automatic differentiation while being able to construct arbitrarily complex kernels both in terms of input transformation and kernel structure.", "description": "Realising that every package requiring kernels was having his own implementation and that `MLKernels.jl`, the last standard, had a lot of imcompabilities, William Tebbutt and I decided to work on a common project usable by all. \n`KernelFunctions` allows to process arbitrary transformations on the input data allowing for example to use a neural net or to construct kernel sums and product to create complex kernel structures. A series of standard kernels are available and more and more are added but creating a custom kernel is extremely straight-forward.\nThe package needs only a few dependencies and is very light-weight.\n\nI will give a brief introduction to the kernel methods followed by a few concrete examples such as deep kernel learning or automatic kernel selection.", "recording_license": "", "do_not_record": false, "persons": [{"code": "EWDVK7", "name": "Th\u00e9o Galy-Fajou", "avatar": "https://pretalx.com/media/avatars/EWDVK7_US6rgxk.webp", "biography": "PhD Student at TU Berlin with Pr. Opper. I am interested in Bayesian methods and more particularly in approximate inference and Gaussian Processes. I am developing [AugmentedGaussianProcesses.jl](https://github.com/theogf/AugmentedGaussianProcesses.jl) and [KernelFunctions.jl](https://github.com/theogf/KernelFunctions.jl)", "public_name": "Th\u00e9o Galy-Fajou", "guid": "f10d2060-5c35-5bff-a2ab-2f41f5e590d3", "url": "https://pretalx.com/juliacon2020/speaker/EWDVK7/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/YY9QEJ/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/YY9QEJ/", "attachments": []}, {"guid": "807738df-0303-5eb4-ad12-cffe70a99b94", "code": "DSXCMZ", "id": 4737, "logo": null, "date": "2020-07-29T12:40:00+00:00", "start": "12:40", "duration": "00:10", "room": "Red Track", "slug": "juliacon2020-4737-fast-gaussian-processes-for-time-series", "url": "https://pretalx.com/juliacon2020/talk/DSXCMZ/", "title": "Fast Gaussian processes for time series", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "TemporalGPs.jl provides a single-function API to make inference in Gaussian processes (GPs) from Stheno.jl dramatically more efficient in the time-series setting. It makes it feasible to perform (almost) exact inference with 10s of millions of data points quickly on a laptop, and plays nicely with StaticArrays.jl and Zygote.jl.", "description": "Gaussian processes (GPs) are flexible probabilistic models for real-valued functions, and are standard tool for nonlinear regression. Their default implementation involves a costly Cholesky decompostion, yielding cubic computational costs in N (dataset size).\n\nThere is an increasingly-broad literature on a collection of techniques that cast certain classes of GPs for time-series (almost-exactly) as linear stochastic differential equations. This exposes a Markov structure that can be exploited to make the complexity of inference scale linearly in N.\n\nTemporalGPs.jl implements the above techniques, and provides a function that takes a Stheno.jl GP and constructs an (almost) equivalent linear SDE, which in turn exposes the same API as a Stheno.jl GP (modulo some restrictions).\n\nThe only other publicly available implementation of these techniques is available in the famous GPML Matlab package. Moreover, at the time of writing there isn't a publicly available implementation on these techniques that can be used in conjunction with reverse-mode algorithmic differentiation (to the best of the author's knowledge).\n\nIn this talk I'll present the user-facing API, show some basic benchmarking / empirical results, briefly discuss some technical challenges, and conclude with the package's future direct.", "recording_license": "", "do_not_record": false, "persons": [{"code": "LQKANJ", "name": "Will Tebbutt", "avatar": "https://pretalx.com/media/avatars/LQKANJ_frbJWzY.webp", "biography": "Will is a PhD student in the Machine Learning Group at the University of Cambridge. His research focuses on the scalability of Gaussian processes, how software should be implemented to make using them a pleasant experience, and how they can be utilised in climate science.", "public_name": "Will Tebbutt", "guid": "8d1e12ae-dcfa-5cb5-a1c1-dec74956d443", "url": "https://pretalx.com/juliacon2020/speaker/LQKANJ/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/DSXCMZ/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/DSXCMZ/", "attachments": []}, {"guid": "8a1ecc0a-50bd-52ad-986d-9afd44054c08", "code": "CE7FZA", "id": 4570, "logo": "https://pretalx.com/media/juliacon2020/submissions/CE7FZA/banner_csNtco8.png", "date": "2020-07-29T12:50:00+00:00", "start": "12:50", "duration": "00:10", "room": "Red Track", "slug": "juliacon2020-4570-augmentedgaussianprocesses-jl-a-full-gaussian-process-toolkit", "url": "https://pretalx.com/juliacon2020/talk/CE7FZA/", "title": "AugmentedGaussianProcesses.jl, a full Gaussian Process toolkit", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Gaussian Processes (GP) are an essential model of Bayesian non-parametrics. While multiple GP packages already exist in Julia such as Stheno.jl or GaussianProcesses.jl, `AugmentedGaussianProcesses.jl` has a larger scope of applications and is constantly updated with state-of-the-art methods. One of its specificity is to work with augmented variables to simplify inference. In this talk I will briefly explain this concept and show the potential of the package.", "description": "Started as a very specific research project, [`AugmentedGaussianProcesses.jl`](https://github.com/theogf/AugmentedGaussianProcesses.jl) (AGP) is now a package with a much broader range of tools.\nA large class of different of problems are implemented such as Student-T likelihood, heterogeneous multi-output GP, heteroscedastic regression. Are also implemented various type of inference like variational inference, Gibbs sampling, Hamilton Monte-Carlo or even variational streaming!\nIn this sense AGP aims at being a competitor with general GP toolbox such as [`GPFlow`](https://github.com/GPflow/GPflow) or [`GPytorch`](https://gpytorch.ai/) with better or same training and prediction performance.\nHowever one of the additional strength of AGP is to convert problems which start as being intractable into easy ones via latent variable augmentations with a method based on my academic work. It is done so far case by case but current work will aim at being able to treat any problem.\nIn this talk I will showcase all the potential of AGP, and compare its performance with other Julia and Python solutions.", "recording_license": "", "do_not_record": false, "persons": [{"code": "EWDVK7", "name": "Th\u00e9o Galy-Fajou", "avatar": "https://pretalx.com/media/avatars/EWDVK7_US6rgxk.webp", "biography": "PhD Student at TU Berlin with Pr. Opper. I am interested in Bayesian methods and more particularly in approximate inference and Gaussian Processes. I am developing [AugmentedGaussianProcesses.jl](https://github.com/theogf/AugmentedGaussianProcesses.jl) and [KernelFunctions.jl](https://github.com/theogf/KernelFunctions.jl)", "public_name": "Th\u00e9o Galy-Fajou", "guid": "f10d2060-5c35-5bff-a2ab-2f41f5e590d3", "url": "https://pretalx.com/juliacon2020/speaker/EWDVK7/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/CE7FZA/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/CE7FZA/", "attachments": []}, {"guid": "7b42df4a-8894-5f83-8ccc-3335d37c9326", "code": "AA8CQU", "id": 4624, "logo": null, "date": "2020-07-29T13:00:00+00:00", "start": "13:00", "duration": "00:10", "room": "Red Track", "slug": "juliacon2020-4624-modeling-non-gaussian-time-series-with-scoredrivenmodels-jl", "url": "https://pretalx.com/juliacon2020/talk/AA8CQU/", "title": "Modeling non-Gaussian time series with ScoreDrivenModels.jl", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Time series models with time-varying parameters have become increasingly popular over the years due to their advantages in capturing the dynamics of series of interest. In this context, score-driven models represent a recently developed and powerful framework for modeling time series considering non-Gaussian predictive distributions. In this talk, we present ScoreDrivenModels.jl, a Julia package for modeling, forecasting, and simulating data using score-driven models.", "description": "In this talk, we will first provide a brief overview of score-driven models, also known as generalized autoregressive models, based on the paper \u201cGeneralized Autoregressive Score Models With Applications\u201d by D. Creal et al. This class of models represents a powerful and flexible tool for dealing with time-series data under non-Gaussian distributions and different autoregressive structures.\nAfter a high-level introduction to the theory, we will present the ScoreDrivenModels.jl package, going through all steps that a user would possibly need to do: model specification, estimation, forecasting, and simulation. We will show how the package is built on top of Distributions.jl, thus allowing easy integration of any distribution, including more obscure ones, for example, a non-zero mean Student\u2019s t which employs the `LocationScale` abstraction. The package also has a manual for integrating new distributions with small effort.\nFinally, we will motivate the use of this class of models by providing examples of applications in different fields, e.g., simulating scenarios for renewable generation and analyzing financial time-series data, while showcasing the use of the package.\nFor more information on score-driven models, we refer the interested reader to http://www.gasmodel.com.", "recording_license": "", "do_not_record": false, "persons": [{"code": "PCLZTQ", "name": "Guilherme Bodin", "avatar": "https://pretalx.com/media/avatars/PCLZTQ_eLTdzmo.webp", "biography": "I am a Master's student at PUC-Rio in Rio de Janeiro, Brazil. I have contributed to some packages from the JuliaOpt and participated in GSOC'19 with the project Dualization.jl. I am also one of the developers of StateSpaceModels.jl.", "public_name": "Guilherme Bodin", "guid": "5e27e595-e0c4-55e9-8d1f-f2c6505a62f4", "url": "https://pretalx.com/juliacon2020/speaker/PCLZTQ/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/AA8CQU/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/AA8CQU/", "attachments": []}, {"guid": "e3e74032-4675-5c7d-9dac-51a0326df4b4", "code": "AD7TQW", "id": 4482, "logo": null, "date": "2020-07-29T13:10:00+00:00", "start": "13:10", "duration": "00:30", "room": "Red Track", "slug": "juliacon2020-4482-automlpipeline-a-toolbox-for-building-ml-pipelines", "url": "https://pretalx.com/juliacon2020/talk/AD7TQW/", "title": "AutoMLPipeline: A ToolBox for Building ML Pipelines", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "AutoMLPipeline (AMLP) is a package that makes it trivial to create\ncomplex ML pipeline structures using simple\nexpressions. AMLP leverages on the built-in\nmacro programming features of Julia\nto symbolically process, manipulate\npipeline expressions, and\nmakes it easy to discover optimal structures\nfor machine learning prediction and classification.", "description": "The typical workflow in machine learning\nclassification or prediction requires\nsome or combination of the following\npreprocessing steps together with modeling:\n- feature extraction (e.g. ica, pca, svd)\n- feature transformation (e.g. normalization, scaling, ohe)\n- feature selection (anova, correlation)\n- modeling (rf, adaboost, xgboost, lm, svm, mlp)\n\nEach step has several choices of functions\nto use together with their corresponding\nparameters. Optimizing the performance of the\nentire pipeline is a combinatorial search\nof the proper order and combination of preprocessing\nsteps, optimization of their corresponding\nparameters, together with searching for\nthe optimal model and its hyper-parameters.\n\nBecause of close dependencies among various\nsteps, we can consider the entire process\nto be a pipeline optimization problem (POP).\nPOP requires simultaneous optimization of pipeline\nstructure and parameter adaptation of its elements.\nAs a consequence, having an elegant way to\nexpress pipeline structure helps in the analysis\nand implementation of the optimization routines.\n\n### Package Features\n- Pipeline API that allows high-level description of processing workflow\n- Common API wrappers for ML libs including Scikitlearn, DecisionTree, etc\n- Symbolic pipeline parsing for easy expression\n  of complexed pipeline structures\n- Easily extensible architecture by overloading just two main interfaces: fit! and transform!\n- Meta-ensembles that allow composition of\n    ensembles of ensembles (recursively if needed)\n    for robust prediction routines\n- Categorical and numerical feature selectors for\n    specialized preprocessing routines based on types\n\nTo illustrate, a typical machine learning workflow that extracts\nnumerical features (numf) for ICA (independent component analysis) and\nPCA (principal component analysis) transformations, respectively,\nconcatentated with the hot-bit encoding (ohe) of categorical\nfeatures (catf) of a given data for RF modeling can be expressed\nin AMLP as:\n```julia\njulia> model = @pipeline (catf |> ohe) + (numf |> pca) + (numf |> ica) |> rf\njulia> fit!(model,Xtrain,Ytrain)\njulia> prediction = transform!(model,Xtest)\njulia> score(:accuracy,prediction,Ytest)\n```", "recording_license": "", "do_not_record": false, "persons": [{"code": "3EKCYY", "name": "Paulito Palmes", "avatar": "https://pretalx.com/media/avatars/3EKCYY_2ESF1ee.webp", "biography": "Paulito Palmes is a Research Scientist in IBM Research (Dublin Research Lab). He is working on the following research themes: AutoAI/AutoML, Interactive AI, Explainable AI, AI Planning, and ML Pipeline optimization.", "public_name": "Paulito Palmes", "guid": "e6d7bfc8-979d-5bae-a92b-c27416dd2d8e", "url": "https://pretalx.com/juliacon2020/speaker/3EKCYY/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/AD7TQW/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/AD7TQW/", "attachments": []}, {"guid": "b08cafcf-63e8-51aa-86f3-dc89500e835f", "code": "AKY8V7", "id": 4682, "logo": null, "date": "2020-07-29T13:40:00+00:00", "start": "13:40", "duration": "00:10", "room": "Red Track", "slug": "juliacon2020-4682-evotrees-for-flexible-gradient-boosting-trees", "url": "https://pretalx.com/juliacon2020/talk/AKY8V7/", "title": "EvoTrees for Flexible Gradient Boosting Trees", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Introduction to Evotrees.jl, a package developed to provide a pure Julia implementation of Gradient Boosted Trees with performance competitive with reference C++ implementations. \nMain design choices and challenges encountered to achieve a performant solution will be covered. Discussion of the benefits stemming from developing in Julia, notably the ease to extend supported models such as quantile and Gaussian regression, as well as its MLJ ecosystem integration.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "NZXDX3", "name": "Jeremie Desgagne-Bouchard", "avatar": "https://pretalx.com/media/avatars/NZXDX3_6sCmjUE.webp", "biography": "Jeremie is an actuary by trade (FCAS). He most recently joined the portfolio management firm Evovest as their Head of Science following his work as an applied research scientist at Element AI, where he expanded his deep learning acumen. He spent over 8 years at Intact in various R&D roles where he pushed the development of analytical solutions in various areas, including risk assessment, price optimization, and telematics.", "public_name": "Jeremie Desgagne-Bouchard", "guid": "a6a8d21a-0212-5ff5-b44b-4309b0b9e152", "url": "https://pretalx.com/juliacon2020/speaker/NZXDX3/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/AKY8V7/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/AKY8V7/", "attachments": []}, {"guid": "64839ceb-8f59-5cdb-89be-33be46f1f4c3", "code": "ACJRET", "id": 4800, "logo": null, "date": "2020-07-29T13:50:00+00:00", "start": "13:50", "duration": "00:10", "room": "Red Track", "slug": "juliacon2020-4800-generating-automatically-labelled-ml-datasets-with-lattice-jl", "url": "https://pretalx.com/juliacon2020/talk/ACJRET/", "title": "Generating automatically labelled ML datasets with Lattice.jl", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Machine learning research relies heavily on curated data sets for experimentation, measuring performance, and communicating results.  Labeling data is a labor most researchers would rather avoid, so the same standard data sets are constantly reused.  Lattice.jl is our attempt to provide a much wider variety of machine learning datasets with little or no human effort.", "description": "Machine learning datasets are samples taken from a domain and an underlying data generating distribution.  For example, the MNIST dataset is a sample from the set of all 28x28 grayscale images (the domain) that are created by humans writing the digits 0-9 (the data generating distribution).  The examples in datasets are used to train models to perform machine learning tasks; for MNIST, the task is usually \u201cwhat digit is this?\u201d but the task could also be \u201cis this digit odd?\u201d or \u201cwas this digit written by a left-handed person?\u201d  Creating the label for each example--evaluating the task applied to that example--usually requires some sort of human effort.\n\nLattice.jl provides a framework for describing and abstracting domains, data generating distributions, and machine learning tasks for those problems where it is possible for a computer program to automatically generate examples.  To explain the usefulness of such a framework, consider generating examples from an image domain. Since Lattice first generates a simple internal representation of the example and then uses the representation to draw the image, it is also possible to automatically create perfect labels for a wide variety of different tasks applied to each image.  The labels and generating distributions can be manipulated to simulate many different kinds of labeling error and bias, and these problems can be introduced to completely different datasets in a systematic way.\n\nThis talk will provide a brief overview of the motivation and use cases for Lattice, and then show how the library relies on Julia\u2019s type system to automatically pair abstract machine learning tasks with all of the domains where the tasks make sense.  (For example, the abstract task \u201cis X contained by Y?\u201d can be instantiated and applied to images with at least two polygons, or images with bitmaps of a bird and a cage, but not to images of a single digit.  In Lattice, pairs of domains and tasks don't need to be manually specified.)  We\u2019ll also show how multiple dispatch in Julia makes the implementation of Lattice--and the addition of new domains and tasks--remarkably simple.  Finally, we'll share a few examples of using Lattice datasets with Flux.jl to study representation learning and hyperparameter optimization.", "recording_license": "", "do_not_record": false, "persons": [{"code": "TFAW3U", "name": "Don March", "avatar": null, "biography": "Don works at Oak Ridge National Lab on projects in artificial intelligence, high performance computing, remote sensing, and mathematics.  He started using Julia the day it was first publicly announced.", "public_name": "Don March", "guid": "43134fbd-4fa7-5251-9ee7-228dae69133d", "url": "https://pretalx.com/juliacon2020/speaker/TFAW3U/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/ACJRET/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/ACJRET/", "attachments": []}, {"guid": "6ea090ab-654a-5aff-b789-8f747690368a", "code": "UCQCSN", "id": 4597, "logo": null, "date": "2020-07-29T14:20:00+00:00", "start": "14:20", "duration": "00:45", "room": "Red Track", "slug": "juliacon2020-4597-keynote-karen-willcox", "url": "https://pretalx.com/juliacon2020/talk/UCQCSN/", "title": "Keynote: Karen Willcox", "subtitle": "", "track": null, "type": "Keynote", "language": "en", "abstract": "Scientific Machine Learning: Where Physics-based Modeling Meets Data-driven Learning", "description": "Scientific Machine Learning: Where Physics-based Modeling Meets Data-driven Learning", "recording_license": "", "do_not_record": false, "persons": [{"code": "AMHRDW", "name": "Karen Willcox", "avatar": null, "biography": ".", "public_name": "Karen Willcox", "guid": "bd1deb6d-7d69-5370-b675-3283df25f70f", "url": "https://pretalx.com/juliacon2020/speaker/AMHRDW/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/UCQCSN/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/UCQCSN/", "attachments": []}, {"guid": "ddba53f2-589b-5a6f-b82d-5ffd551233c2", "code": "UTGXSH", "id": 4563, "logo": null, "date": "2020-07-29T15:05:00+00:00", "start": "15:05", "duration": "00:10", "room": "Red Track", "slug": "juliacon2020-4563-diversity-and-inclusion-efforts-in-the-julia-community", "url": "https://pretalx.com/juliacon2020/talk/UTGXSH/", "title": "Diversity and Inclusion Efforts in the Julia Community", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "It takes the entire community to promote diversity and inclusion. This talk will focus on the current plans underway to promote diversity and inclusion in the Julia Community as well as give an updated look at the state of diversity and inclusion in our community.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "UNR7XZ", "name": "Logan Kilpatrick", "avatar": "https://pretalx.com/media/avatars/UNR7XZ_vTMPwg8.webp", "biography": "Community Manager for the Julia Language. Harvard and Oxford class of 20'. CU Boulder Class of 23'. Future Software Engineer at Apple starting October of 2020.", "public_name": "Logan Kilpatrick", "guid": "03acf39b-8cef-5726-95cf-8eba7971e480", "url": "https://pretalx.com/juliacon2020/speaker/UNR7XZ/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/UTGXSH/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/UTGXSH/", "attachments": []}, {"guid": "cd7df46c-f254-527b-bf06-611554e0fb28", "code": "DWCJUK", "id": 4780, "logo": "https://pretalx.com/media/juliacon2020/submissions/DWCJUK/juno_lightbg_mu8YED9.png", "date": "2020-07-29T15:15:00+00:00", "start": "15:15", "duration": "00:30", "room": "Red Track", "slug": "juliacon2020-4780-juno-1-0", "url": "https://pretalx.com/juliacon2020/talk/DWCJUK/", "title": "Juno 1.0", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "In this talk we will introduce [Juno](https://junolab.org/) 1.0 and give an overview of new features and workflows as well as key development choices we made during the last months. This new version of Juno is more robust and easy to install than ever before and combines powerful static analysis features with the dynamic approach that's been at Juno's core for so long.", "description": "[Juno](https://junolab.org/) is an IDE for Julia which enables an unique, powerful and very interactive development style. It is also the oldest still maintained IDE for Julia and, as such, has undergone drastic changes during the last few years. \n\nDue to limitations around the current package infrastructure, there also have been some longstanding and fundamental problems, mostly around installation, updating, activation time, and interference with user's own package environment.\n\nIn this presentation we are going to present Juno 1.0. We will give examples of both basic workflows and more arcane features as well as explain how we tackled the problems outlined above; as such, the talk will be split in two parts: A showcase of Juno's current state, and a discussion of internals and planned improvements.", "recording_license": "", "do_not_record": false, "persons": [{"code": "8BZR7G", "name": "Shuhei Kadowaki", "avatar": "https://pretalx.com/media/avatars/8BZR7G_HyyVxGs.webp", "biography": "- Bio: graduated from kyoto univ. this spring with a liberal arts degree, and currently working as a ML engineer at a Japanese tech company\n- Julia: a maintainer of Juno, a Julia IDE, and actively developing various packages around its ecosystem\n- GitHub: https://github.com/aviatesk", "public_name": "Shuhei Kadowaki", "guid": "8b4056e7-0762-5964-9743-d3174af46064", "url": "https://pretalx.com/juliacon2020/speaker/8BZR7G/"}, {"code": "8GV8MU", "name": "Sebastian Pfitzner", "avatar": null, "biography": "Studied Physics in Berlin, has been involved with Julia since 2014. Main maintainer of Juno, a popular Julia IDE.\n\nCurrently working for JuliaComputing.", "public_name": "Sebastian Pfitzner", "guid": "6b8ab9b9-0590-5170-a13c-9b5b66e0a389", "url": "https://pretalx.com/juliacon2020/speaker/8GV8MU/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/DWCJUK/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/DWCJUK/", "attachments": []}, {"guid": "ac68e0a4-01d7-5d68-8d14-9681faa37347", "code": "HZRHEL", "id": 5580, "logo": null, "date": "2020-07-29T15:45:00+00:00", "start": "15:45", "duration": "00:05", "room": "Red Track", "slug": "juliacon2020-5580-julia-computing", "url": "https://pretalx.com/juliacon2020/talk/HZRHEL/", "title": "Julia Computing", "subtitle": "", "track": null, "type": "Sponsor Talk", "language": "en", "abstract": "Some words from our sponsors", "description": "", "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/HZRHEL/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/HZRHEL/", "attachments": []}, {"guid": "9830e4c2-9325-5dab-8a65-eec41fd7d629", "code": "XW9PNR", "id": 4821, "logo": null, "date": "2020-07-29T16:10:00+00:00", "start": "16:10", "duration": "00:10", "room": "Red Track", "slug": "juliacon2020-4821-using-julia-and-group-theory-to-describe-molecular-vibrations", "url": "https://pretalx.com/juliacon2020/talk/XW9PNR/", "title": "Using Julia and group theory  to describe Molecular Vibrations", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Julia is used along applied group theory  to solve  the problem of describing and classifying molecular vibrations, a  highly demanding computational  problem. The solution of this problem  using applied group theory requires, high numerical capabilities, a fast and an extensive use of matrix operations and the possibility  to efficiently handle different kinds of  data structures.  It is shown that Julia is one of the best options  for  implementing fast, reliable and accurate solutions.", "description": "We present an overview of the program for the description and classification of molecular vibrations we have been developing using Julia, along with a systematic and highly effective method derived  from applied group theory.  This overview emphasizes the computational challenges that this real-time description  presents and  the  solutions offered by Julia.\n \n The description of molecular vibrations in real-time  implies a series of complex and  highly demanding  computational tasks that we have implemented in Julia :\n\n1) Given the coordinates of the atoms as input, we determine the point symmetry group of the molecule.  Extensive use of matrices and fast calculation of  eigenvectors and eigenvalues is a must.\n\n2) Once the point group is determined, we identify the symmetry operations using their matrix representations. Once again, we have relied on Julia's capabilities of matrix diagonalization, this time in the case of  asymmetric matrices with complex eigenvalues and eigenvectors. \n\n3) Finally we determine and classify the normal modes of vibration using a matrix representation of invariant subspaces that allow a complete classification of the vibrational modes. \n\nOnly we have to add that, knowledge of  the  molecular vibrational modes is a must in many scientific and technological applications. Its  importance is out of discussion.\n\nAlthough many programs have been developed, mainly in Fortran, most of them are highly sophisticated and depends upon expensive hardware resources.\n\nJulia offers the invaluable opportunity to develop a simple, reliable and low-cost resources program with high standard of quality that requires no more than a simple laptop.", "recording_license": "", "do_not_record": false, "persons": [{"code": "VKWTH7", "name": "Le\u00f3n Alday", "avatar": null, "biography": "Chem grad student, interested in imperative and functional programming.", "public_name": "Le\u00f3n Alday", "guid": "c737f637-9aee-599d-b64e-6f1dfaa73ec4", "url": "https://pretalx.com/juliacon2020/speaker/VKWTH7/"}, {"code": "TWTFVU", "name": "Roberto Bernal-Jaquez", "avatar": null, "biography": "Roberto Bernal received his Bachelor in Science in Physics from Universidad Nacional Autonoma de Mexico (UNAM), and his his PhD in Physics from Universidad Autonoma del Estado de Morelos-Nuclear Sciences Institute(UNAM) Mexico (2006). He was postdoc at the Departamento de Fisica of the UAEM (2006-2007) and in the Theoretical Chemistry Group - University of Turin in Italy from 2007- 2008. Actually he is full professor at the Departamento de Matematicas Aplicadas y Sistemas, of the UAM-Cuajimalpa in Mexico. \n\nHis research interests are mainly focus on algebraic methods in chemical-physics, mathematical-physics, nonlinear dynamics, and complex networks.", "public_name": "Roberto Bernal-Jaquez", "guid": "7e43d5ab-5226-51c9-b47f-55c6522de24b", "url": "https://pretalx.com/juliacon2020/speaker/TWTFVU/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/XW9PNR/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/XW9PNR/", "attachments": []}, {"guid": "ea0f2fc7-20b9-55fe-ba38-2cd0a28bb594", "code": "GALAX8", "id": 4586, "logo": null, "date": "2020-07-29T16:20:00+00:00", "start": "16:20", "duration": "00:30", "room": "Red Track", "slug": "juliacon2020-4586-algebraicjulia-applied-category-theory-in-julia", "url": "https://pretalx.com/juliacon2020/talk/GALAX8/", "title": "AlgebraicJulia: Applied Category Theory in Julia", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Applied Category Theory is a new paradigm of applied mathematics that incorporates the advances in type theory to analyze scientific and engineering systems. Our talk will describe the AlgebraicJulia software ecosystem for representing and executing category theoretic computations with applications to numerical linear algebra, scientific modeling, and data science.", "description": "Applied Category Theory builds on algebraic interpretations of type systems to represent mathematical reasoning in a universal way. This allows the construction of domain specific logics that can capture the reasoning systems employed by programmers, scientists, and engineers in differing applications. The Julia type system is sufficiently sophisticated to support implementations of these domain specific logics, while the metaprogramming facilities support the implementation of domain specific languages for describing systems within these domain specific logics. \n\nThis talk will illustrate how features of Julia interact to create an ideal environment for implementing such abstract and mathematical structure in code, and feature some specific applications to the technical computing community. Such examples include, reasoning about linear maps graphically, constructing scientific models of chemical or biological systems via model composition, and hierarchical design of complex systems. The algebraic approach used in this ecosystem illustrates how many techniques in computer science that represent processes as graphs with mathematical interpretations are related on a deep level. The generic programming capabilities of julia combined with low cost abstractions allow us to realize this similarity in the structure of our software, which reveals and leverages the similarity between application areas to build cohesive tooling for diverse applications.\n\nThis talk will present code developed in the Catlab.jl, Petri.jl, and SemanticModels.jl packages.", "recording_license": "", "do_not_record": false, "persons": [{"code": "WPZLWJ", "name": "James Fairbanks", "avatar": null, "biography": "James is a Research Engineer at the Georgia Tech Research Institute in the High Performance Computing and Data Analytics Branch. His current research involves mathematical and computational formalisms in scientific computing. Where his lab applies techniques from Machine Learning, Numerical Methods, and Applied Category Theory to analyze scientific and engineering systems.", "public_name": "James Fairbanks", "guid": "2e3f01e4-4d27-54ab-81ae-2f864d7fb251", "url": "https://pretalx.com/juliacon2020/speaker/WPZLWJ/"}, {"code": "N7DDPD", "name": "Micah Halter", "avatar": "https://pretalx.com/media/avatars/N7DDPD_OgkGsCt.webp", "biography": "Micah E. Halter is a research scientist at the Information and Communications Laboratory of the Georgia Tech Research Institute in Atlanta, GA. He has worked on several projects since he joined the Georgia Tech Research Institute in 2016, centered on using category theory, machine learning, databases to advance scientific and engineering applications. His research interests include high performance computing, database design and application, and category theoretic scientific knowledge representations.", "public_name": "Micah Halter", "guid": "e24a29a1-a7d6-5d31-bb67-cf4ee7ee0e0a", "url": "https://pretalx.com/juliacon2020/speaker/N7DDPD/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/GALAX8/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/GALAX8/", "attachments": []}, {"guid": "c6bd3240-d50a-5061-9720-c79a2f9dd999", "code": "XEELRW", "id": 4595, "logo": null, "date": "2020-07-29T16:50:00+00:00", "start": "16:50", "duration": "00:30", "room": "Red Track", "slug": "juliacon2020-4595-solving-neuroinformatics-three-language-problem-with-julia", "url": "https://pretalx.com/juliacon2020/talk/XEELRW/", "title": "Solving Neuroinformatics' Three Language Problem With Julia", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "The field of neuroinformatics requires collaboration from highly skilled experts from many diverse fields.\nWe will briefly introduce the problem space and show how JuliaNeuroscience addresses this.", "description": "Neuroscience relies on the development of highly technical mathematical and computational techniques. These techniques are subsequently used and empirically validated and interpreted with the assistance of neuroscientists. This dynamic results in an additional step to the classic two-language problem, communication between fields that often have a very different knowledge base. Often this communication gap is managed by a common coding language. However, the increasing demand for incorporating multiple modalities and larger sample sizes into data analyses is incompatible with most languages used by neuroscientists (e.g., Matlab, R, Python). Consequently, neuroscientists are often using outdated techniques and those developing newer techniques struggle to reach broader adoption for empirically testing and improving their work. We will show how Julia can help solve the three-language problem through a common programmatic language and the interaction between generic code bases across different fields by introducing the [NeuroCore]( https://github.com/JuliaNeuroscience/NeuroCore.jl) package and related resources.\n\nWe will begin by providing a high-level overview of how NeuroCore provides a generic API and access to flexible types. We will provide examples illustrating how this design can be easily extended and incorporated by others.  We will then provide brief examples of current and planned uses of NeuroCore, including plotting, graph theory, file format access, and data wrangling. Finally, we will show how this design will facilitate natural integration into other components of the Julia ecosystem.", "recording_license": "", "do_not_record": false, "persons": [{"code": "RZTTFH", "name": "Zachary P Christensen", "avatar": null, "biography": "I'm an MD/PhD candidate investigating predictive biomarkers for developmental psychopathology. I use magnetic resonance imaging, neurophysiology, and psychometrics to perform my research.", "public_name": "Zachary P Christensen", "guid": "12dfb190-7944-5cd6-8420-f962acc159b1", "url": "https://pretalx.com/juliacon2020/speaker/RZTTFH/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/XEELRW/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/XEELRW/", "attachments": []}, {"guid": "4d1c8ff0-7756-5f41-9ecc-3a64f4b50d4d", "code": "CUMDLK", "id": 4824, "logo": "https://pretalx.com/media/juliacon2020/submissions/CUMDLK/brainmodel_408GxPg.png", "date": "2020-07-29T17:20:00+00:00", "start": "17:20", "duration": "00:10", "room": "Red Track", "slug": "juliacon2020-4824-whole-brain-systems-neuroscience-with-julia", "url": "https://pretalx.com/juliacon2020/talk/CUMDLK/", "title": "Whole-brain systems neuroscience with Julia", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "We study the larval zebrafish, a vertebrate whose whole brain can be imaged during behavior. In this system, we can observe neural activity underlying computations in visual processing, decision making and adaptive motor control. To analyze terabyte-size imaging data and test a variety of hypotheses about the neural processes, we are using a Julia-based pipeline that takes full advantage of the parallelism, multiple dispatch and flexible package ecosystem of the language.", "description": "For analysing imaging and behavioral data I am developing two packages: \n\nCalcium.jl - for extraction of lower-dimensional neuronal signals from dense, volumentric imaging data. It provides non-negative matrix factorization or local correlation-based methods as well as visualization, pre- and postprocessing tools. \n\nFishyfits.jl - defining interfaces and providing methods for simple models that can be fit and compared across behavioral data and neural activity, building on Julia's extensive model fitting and optimization toolkit. \n\nI will discuss some challanges on developing codebases that have to interoperate with Python pipelines, as Julia is not yet widespread in our lab or the wider neuroscience community.\n\nFinally, I will showcase [examples from our publications](https://github.com/portugueslab/Dragomir-et-al-2019-modelfit) on using Binder for sharing reproducible analyses.", "recording_license": "", "do_not_record": false, "persons": [{"code": "LCPDFA", "name": "Vilim \u0160tih", "avatar": "https://pretalx.com/media/avatars/LCPDFA_MCdIszd.webp", "biography": "I am a PhD student in systems neuroscience at the Portugues Lab at the Max Planck Institute of Neurobiology and Technical University of Munich studying sensorimotor control in larval zebrafish using VR and whole-brain imaging.", "public_name": "Vilim \u0160tih", "guid": "a25c84c2-bd7b-592a-9641-ff4f8f455b67", "url": "https://pretalx.com/juliacon2020/speaker/LCPDFA/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/CUMDLK/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/CUMDLK/", "attachments": []}, {"guid": "79028e53-ad3d-5a1e-81b8-ed392016716b", "code": "7MYVV3", "id": 4565, "logo": null, "date": "2020-07-29T17:30:00+00:00", "start": "17:30", "duration": "00:10", "room": "Red Track", "slug": "juliacon2020-4565-computational-tools-for-designing-modular-biosystems", "url": "https://pretalx.com/juliacon2020/talk/7MYVV3/", "title": "Computational tools for designing modular biosystems", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Living systems, from molecules to ecosystems, are modular, allowing us to engineer them. I develop computational tools to aid bioscience engineering with applications in health, ecology and engineering. The whole chain of modeling, knowledge and decision relies on methods from machine learning, bioinformatics and optimization. Julia has proven to be a useful language for these tasks. In this talk, I will outline how I use Julia for my research through a series of case studies.", "description": "Biological systems are intrinsically modular: proteins contain functional units, pathways are formed by linking enzymatic steps and, at the highest level, different species form a functional ecosystem. This property allows for engineering those biosystems, from designing new proteins and pathways to selecting organisms to optimize ecosystem function. In our work, we combine tools from machine learning, optimization and bioinformatics to create novel biological entities. We found Julia an excellent language that allows us to rapidly explore ideas while still maintaining computational efficiency. In this talk, we will discuss some case studies, including selecting optimal bacterial co-cultures for BAM demineralization and the design of enzybiotic proteins using Bayesian optimization.", "recording_license": "", "do_not_record": false, "persons": [{"code": "T3ZCAP", "name": "Michiel Stock", "avatar": null, "biography": "Michiel Stock is a postdoctoral researcher, studying computational intelligence for synthetic biology and ecology.", "public_name": "Michiel Stock", "guid": "c01a220a-5629-59f7-9304-3455940f4d6f", "url": "https://pretalx.com/juliacon2020/speaker/T3ZCAP/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/7MYVV3/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/7MYVV3/", "attachments": [{"title": "Slides", "url": "/media/juliacon2020/submissions/7MYVV3/resources/Juliacon2020_LoRYdnB.pdf", "type": "related"}]}, {"guid": "9dd17f06-7808-53d0-a311-85a502d70d04", "code": "PARPJU", "id": 4796, "logo": "https://pretalx.com/media/juliacon2020/submissions/PARPJU/loop_E0BS6Ux.gif", "date": "2020-07-29T18:00:00+00:00", "start": "18:00", "duration": "00:10", "room": "Red Track", "slug": "juliacon2020-4796-neuralprocesses-jl-composing-neural-processes-with-flux", "url": "https://pretalx.com/juliacon2020/talk/PARPJU/", "title": "NeuralProcesses.jl: Composing Neural Processes with Flux", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Neural Processes (NPs) are a rich class of models for meta-learning that have enjoyed a flurry of interest recently. We present NeuralProcesses.jl, a compositional framework for constructing and training NPs built on top of Flux.jl. We demonstrate how the Convolutional Conditional Neural Process (ConvCNP), a new member of the NP family, can be implemented with the framework. The ConvCNP models translation equivariance, which is an important inductive bias for many learning problems.", "description": "(Conditional) Neural Processes ((C)NPs) [^1] [^2] are a rich class of models that parametrise the predictive distribution through an encoding of the observed data. Their flexibility allows them to be deployed in a myriad of applications, such as image completion and generation, time series modelling, and spatio-temporal applications. Neural Processes have enjoyed much interest recently, resulting in the development of several well-performing members of the Neural Process family. As an effort to accelerate the development and evaluation of NP architectures, we present NeuralProcesses.jl [^3], a framework for NPs built on top of Flux.jl. NeuralProcesses.jl provides basic building blocks that can be flexibly composed and mixed and matched to reconstruct many (conditional) neural process architectures from the literature, as well as expand to novel architectures.\n\nA recently introduced new member of the neural process family, called the Convolutional Conditional Neural Process (ConvCNP) [^4], proposes to account for _translation equivariance_ in the data: if the observations are shifted, then the predictions should be shifted accordingly. Translation equivariance is an important inductive bias for many learning problems, such as time series, spatial data, and images. The ConvCNP has been demonstrated to achieve state-of-the-art performance on several established NP benchmarks.\n\nIn this talk, we give a brief introduction to meta-learning, the neural process family, and NeuralProcesses.jl. To demonstrate the abstractions of NeuralProcess.jl, we walk through an implementation of the ConvCNP. We will then use the ConvCNP to predict a sawtooth wave, an otherwise challenging task due to the wave's discontinuous nature. We conclude with a brief demonstration of how the building blocks of NeuralProcess.jl can be used to construct several prominent NP architectures.\n\n[^1] https://arxiv.org/abs/1807.01613\n\n[^2] https://arxiv.org/abs/1807.01622\n\n[^3] https://github.com/wesselb/NeuralProcesses.jl\n\n[^4] https://openreview.net/forum?id=Skey4eBYPS", "recording_license": "", "do_not_record": false, "persons": [{"code": "N7JBS7", "name": "Wessel Bruinsma", "avatar": "https://pretalx.com/media/avatars/N7JBS7_cFMRgSR.webp", "biography": "Hello! I am a PhD student at the Machine Learning Group at the University of Cambridge, supervised by Dr Richard Turner.", "public_name": "Wessel Bruinsma", "guid": "e853a04e-b454-5e85-ac4d-4dd8bbeead88", "url": "https://pretalx.com/juliacon2020/speaker/N7JBS7/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/PARPJU/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/PARPJU/", "attachments": []}, {"guid": "0f451895-400f-51f0-9486-1c78f557f398", "code": "PUHBMG", "id": 4739, "logo": null, "date": "2020-07-29T18:10:00+00:00", "start": "18:10", "duration": "00:10", "room": "Red Track", "slug": "juliacon2020-4739-applying-differentiable-programming-to-the-dark-channel-prior", "url": "https://pretalx.com/juliacon2020/talk/PUHBMG/", "title": "Applying Differentiable Programming to the Dark Channel Prior", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "The Dark Channel Prior was introduced by He, et al. as a method to dehaze a single image. Since its publication in 2010, other authors have sought to improve this dehazing method. Using the parameters that other authors have tuned as a guide, we parameterize the Dark Channel Prior dehazing method and utilize Zygote to apply gradient based optimization.", "description": "This talk will briefly discuss the Dark Channel Prior implementation and will emphasize how it is possible to parameterize the algorithm and replace key portions with small neural networks. It will also cover gathering useful data and defining a meaningful loss function for measuring the performance of the dehaze algorithm. The hope is that others will see how programming in Julia can allow for easy application of differentiable programming in variety of scientific domains.", "recording_license": "", "do_not_record": false, "persons": [{"code": "P3DS7F", "name": "Vandy Tombs", "avatar": null, "biography": "Vandy Tombs is an Applied Mathematician in Geographic Data Science group at Oak Ridge National Laboratory. She enjoys applying group theory to develop new machine learning architectures and utilizing differentiable programming to improve existing scientific algorithms.", "public_name": "Vandy Tombs", "guid": "9931ca46-4be4-5469-b9fb-9355212db3b7", "url": "https://pretalx.com/juliacon2020/speaker/P3DS7F/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/PUHBMG/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/PUHBMG/", "attachments": [{"title": "Slides", "url": "/media/juliacon2020/submissions/PUHBMG/resources/JuliaCon2020_final_7r6kBS4.pptx", "type": "related"}]}, {"guid": "b0c48412-9ac5-5da9-8b0c-400e86906643", "code": "MR9QWA", "id": 4668, "logo": null, "date": "2020-07-29T18:20:00+00:00", "start": "18:20", "duration": "00:10", "room": "Red Track", "slug": "juliacon2020-4668-exploring-disease-vector-dynamics-under-environmental-change", "url": "https://pretalx.com/juliacon2020/talk/MR9QWA/", "title": "Exploring Disease Vector Dynamics Under Environmental Change", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "As climate change alters the distribution of disease vectors, the prevention of mosquito-borne illnesses like dengue and malaria stand to be complicated by shifting ecological realities. I use DifferentialEquations.jl to gain insights about the population dynamics of disease vectors that are subjected to environmental variation.", "description": "Improved knowledge of mosquito population dynamics can help control the spread of the diseases they carry. However, the interactions that inform such dynamics are complex. Computational models furnish an effective means for scientists to probe the environmental sensitivities of disease vectors.\n\nI use DifferentialEquations.jl to develop a metapopulation model parameterized with empirical data, with which I explore the effect of various environmental scenarios on the population dynamics of malarial mosquitos. I briefly distill the entomological and public health implications of my results, and then explicate my approach to applying the DifferentialEquations.jl platform to this scientific question.", "recording_license": "", "do_not_record": false, "persons": [{"code": "QTQ3YB", "name": "Valeri Vasquez", "avatar": null, "biography": "Valeri is a PhD student in the Energy and Resources Group at the University of California, Berkeley and a Moore/Sloan Fellow at the Berkeley Institute for Data Science. She applies ordinary differential equations to study the dynamics of biological systems.", "public_name": "Valeri Vasquez", "guid": "f734e87a-2f94-54ce-a7a3-ff56dc64894e", "url": "https://pretalx.com/juliacon2020/speaker/QTQ3YB/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/MR9QWA/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/MR9QWA/", "attachments": []}, {"guid": "184192e4-4e0c-5fc4-bb68-5eb2a7e92fe3", "code": "RYFMY9", "id": 4308, "logo": null, "date": "2020-07-29T18:30:00+00:00", "start": "18:30", "duration": "00:30", "room": "Red Track", "slug": "juliacon2020-4308-sciml-automatic-discovery-of-droplet-fragmentation-physics", "url": "https://pretalx.com/juliacon2020/talk/RYFMY9/", "title": "SciML: Automatic Discovery of droplet fragmentation Physics", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "We consider a classical droplet fragmentation problem in fluid mechanics, and augment the system modeling with neural architectures using DiffEqFlux.jl. This augmentation speeds up experimental inquiries by training physically-interpretable neural architectures to recover the physical equations for the spatial and temporal variation of dynamic quantities. Together we showcase how Julia's unique differentiable programming ecosystem can be the basis for next-generation physical science.", "description": "In this study, we consider a canonical fragmentation problem in fluid mechanics: splash of a drop on a liquid layer. Although this phenomena occurs in the twinkling of an eye (20 - 30 ms), it is an exquisitely regulated phenomena. The splash is typically accompanied by the formation of a thin cylindrical liquid sheet rising upwards, which resembles a crown. The crown sheet dynamics is typically characterized by a coupled set of mass and momentum balance equations. The thickness of the sheet is of the order of microns. In addition, the crown sheet thickness is found to have a spatial and temporal dependence, making it a dynamically changing quantity and difficult to probe experimentally. The sheet thickness has only recently been experimentally measured and theoretically validated in prior studies.\n\nIn the present work, we use a neural architecture to approximate the sheet thickness profile and use it in combination with the crown mass and momentum balance equations. We show that the thickness profile predicted by the trained neural architecture matches well with the experimentally measured thickness profile. In addition, the trained neural network is also able to recover the spatial and temporal dependence of the thickness profile, which matches well with the theoretically derived dependencies. \n\nThis augmentation of scientific modeling with neural networks is thus shown to play a major role in speeding experimentally driven inquiries, especially when studying dynamically varying quantities which are difficult to measure; such as the sheet thickness in this system. In addition, such augmentation paves way to make neural architectures more interpretable even when working with small datasets.", "recording_license": "", "do_not_record": false, "persons": [{"code": "LWEMM8", "name": "Raj Dandekar", "avatar": "https://pretalx.com/media/avatars/LWEMM8_H4gsgjF.webp", "biography": "PhD student, Massachusetts Institute of Technology, USA.", "public_name": "Raj Dandekar", "guid": "fc377951-ba45-5899-af76-5bcbadb14d65", "url": "https://pretalx.com/juliacon2020/speaker/LWEMM8/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/RYFMY9/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/RYFMY9/", "attachments": []}, {"guid": "f1971386-1307-5728-aa99-20adfb824c4e", "code": "RRNYRW", "id": 4776, "logo": null, "date": "2020-07-29T19:00:00+00:00", "start": "19:00", "duration": "00:30", "room": "Red Track", "slug": "juliacon2020-4776-on-the-state-of-flux", "url": "https://pretalx.com/juliacon2020/talk/RRNYRW/", "title": "On the State of Flux", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Machine Learning is more than large complex models, it is moving towards integrating existing domain knowledge to better inform learning processes. See how Flux expresses that problem in the modern machine learning paradigm.", "description": "[Flux.jl](https://github.com/FluxML/Flux.jl) has been evolving with a host of improvements from the ground up. A major change from last year is that we have officially launched a stable release that uses [Zygote.jl](https://github.com/FluxML/Zygote.jl) as its AD package, opening up a lot more of the ecosystem to take advantage of it. We will show how well it plays with Julia\u2019s existing state-of-the-art packages enabling more kinds of modelling than ever, and show how the community is taking advantage of it.\n\nWe will also showcase Flux\u2019s new APIs and features that open up the awesome open-source community to express more complex ideas and bring domain skills into their ML stories. We will show how we\u2019ve worked on improving performance through a myriad changes across the ecosystem, while keeping it easy to use as ever.\n\nWe would also discuss the design patterns that enable users to write elegant and performant Julian code that can best take advantage of the powerful automatic differentiation capabilities that we have built over time.", "recording_license": "", "do_not_record": false, "persons": [{"code": "83D8SQ", "name": "Dhairya Gandhi", "avatar": null, "biography": "Dhairya is currently a Data Scientist at Julia Computing Inc. and maintains and develops Julia's ML stack with Flux and Zygote.", "public_name": "Dhairya Gandhi", "guid": "b58b5f7a-2c90-56f6-9b17-b9dc331f5d97", "url": "https://pretalx.com/juliacon2020/speaker/83D8SQ/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/RRNYRW/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/RRNYRW/", "attachments": []}], "Green Track": [{"guid": "1d4f5937-06a4-5778-a9e5-bbfaa5c34798", "code": "WGAHCK", "id": 4573, "logo": null, "date": "2020-07-29T12:30:00+00:00", "start": "12:30", "duration": "00:30", "room": "Green Track", "slug": "juliacon2020-4573-when-compiler-technology-meets-market-risk-management", "url": "https://pretalx.com/juliacon2020/talk/WGAHCK/", "title": "When compiler technology meets Market Risk Management", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "This talk will show a Julia based solution that can automatically create a price function and map the risk factors of a given Financial Contract defined in a domain-specific language. This project applies compiler algorithms to take advantage of context in the pricing formulas so that it is possible to handle big portfolios with a wide variety of financial contracts.", "description": "This talk tackles the main issue regarding the development of solutions for market risk management: given a financial contract, one must know how to price it, but it is also required to understand how the pricing formula reacts to changes in the market prices.\n\nThis project was heavily inspired by Julia Computing's [Miletus.jl](https://github.com/JuliaComputing/Miletus.jl), but goes one step further: given a financial contract, it is now possible to automatically map its risk factors. A general solution is based on [ForwardDiff.jl](https://github.com/JuliaDiff/ForwardDiff.jl). Alternative methods can be included in the system by making use of Julia's multiple-dispatch.\n\nCompiler algorithms were used on top of Julia's [JIT compiler](https://en.wikipedia.org/wiki/Just-in-time_compilation) to generate pricing formulas. Using a customized [IR](https://en.wikipedia.org/wiki/Intermediate_representation) defined in [OptimizingIR.jl](https://github.com/felipenoris/OptimizingIR.jl) it is possible to represent a pricing function that would require a billion nodes on an [AST](https://en.wikipedia.org/wiki/Abstract_syntax_tree) with just a few thousand instructions in the optimized IR. With this setting, this solution provides:\n\n* Scalability: compile millions of pricing functions without breaking Julia.\n\n* Automated Auditing: automatically generate documentation on how the calculation is performed, as often required by market regulators and auditing firms.\n\n* Cashflow projection: given that functions are not restricted to return a single number, it is possible to compile pricing functions that also return intermediate results.\n\n* Take advantage of context: compile a whole portfolio to a single pricing function, and all repeated intermediate steps in the calculation are done only once, without losing detail on pricing results for each contract in the portfolio.", "recording_license": "", "do_not_record": false, "persons": [{"code": "YT79YK", "name": "Felipe Noronha Tavares", "avatar": null, "biography": "Market Risk Manager at the Brazilian Development Bank.", "public_name": "Felipe Noronha Tavares", "guid": "e3a27a53-9793-5396-aafb-e6ad5f13acd7", "url": "https://pretalx.com/juliacon2020/speaker/YT79YK/"}, {"code": "CANQ7F", "name": "Lucas Processi", "avatar": "https://pretalx.com/media/avatars/CANQ7F_NVavykK.webp", "biography": "Computer Nerd", "public_name": "Lucas Processi", "guid": "d1740841-eb4f-5521-a10e-3473a9b54f0e", "url": "https://pretalx.com/juliacon2020/speaker/CANQ7F/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/WGAHCK/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/WGAHCK/", "attachments": []}, {"guid": "7cbd0b4c-c7fd-5b2c-86c0-d517ac08b639", "code": "FW7W9D", "id": 4119, "logo": null, "date": "2020-07-29T13:00:00+00:00", "start": "13:00", "duration": "00:30", "room": "Green Track", "slug": "juliacon2020-4119-jusdl-jl-julia-based-system-description-language", "url": "https://pretalx.com/juliacon2020/talk/FW7W9D/", "title": "Jusdl.jl - Julia Based System Description Language", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "The talk will introduce [Jusdl.jl](https://github.com/zekeriyasari/Jusdl.jl), which is a Julia based system description language and simulation tool that focuses on effective system simulations together with online and offline data analysis. Jusdl provides users with the ability to simulate systems consisting of components represented by different types of equations and the flexibility of enriching analysis capabilities with user-defined plugins.", "description": "Numerical simulations can be expressed as solving the mathematical equations--derived from the modeling--and/or processing the data obtained from those equations. Based on the properties of the system at hand and the level of abstraction in the modeling, the mathematical equations may be ordinary, stochastic, delay differential or difference equations. Although different simulation environments have been developed for numerical simulations of systems, they are able to simulate mostly the models represented by ordinary differential or differential-algebraic equations. This is restrictive when considering the diversity of mathematical models that can be encountered. In Jusdl.jl, it is possible to simulate discrete-time and continuous-time, static or dynamical systems. In particular, it is possible to simulate dynamical systems modeled by different types of differential equations such as ODE(Ordinary Differential Equation), Random Ordinary Differential Equation(RODE), SDE(Stochastic Differential Equation), DDE(Delay Differential Equation) and DAE(Differential-Algebraic Equation), and discrete difference equations. During the simulation, the data flowing through the links of the model can be processed online and specialized analyzes can be performed. These analyses can also be enriched with plugins that can be defined using the standard Julia library or various Julia packages. The simulation is performed by evolving model components individually and in parallel in sampling time intervals. The individual evolution of the components allows the simulation of the models including the components that are represented by different kinds of mathematical equations.\n\nKey features of Jusdl.jl includes\n* Simulation of a large class of systems: \n    * Static systems (whose input, output relation is represented by a functional relation)\n    * Dynamical systems (whose input, state and output relation is represented by difference or differential equations)\n        * Dynamical systems modelled by continuous time differential equations: ODE, DAE, RODE, SDE, DDE\n        * Dynamics systems modelled by discrete time difference equations.\n* Simulation of models consisting of components that are represented by different type mathematical equations\n* Individual construction of components, no need to construct a unique equation representing the whole model\n* Online data analysis through plugins \n* Flexibility to enrich the data analysis scope through user-defined plugins", "recording_license": "", "do_not_record": false, "persons": [{"code": "HRFLPC", "name": "Zekeriya SARI", "avatar": "https://pretalx.com/media/avatars/HRFLPC_QKDHtqM.webp", "biography": "##### Educational Background\n* 2008\u20132013 Bachelor of Science, Dokuz Eyl\u00fcl University, Department of Electrical and Electronics Engineering,\nIzmir, Turkey.\nThesis: Attack on a chaos-based random number generator.\n* 2014\u20132016 Master of Science, Dokuz Eyl\u00fcl University, Graduate School of Natural and Applied Sciences, Izmir\nTurkey.\nThesis: Secure communication via partial synchronization of nonlinear systems.\n* 2016\u2013\nDoctor of Philosophy, Dokuz Eyl\u00fcl University, Graduate School of Natural and Applied Sciences,\nIzmir, Turkey.\nThesis: Design and optimization of clustered synchronization systems.\n\n##### Research Activity and Interests\n* Dynamics of Coupled Systems\n* Synchronization in Complex Networks\n* Chaos Communications", "public_name": "Zekeriya SARI", "guid": "d79c93a3-cdaf-5152-9cb7-f837b53fdfcd", "url": "https://pretalx.com/juliacon2020/speaker/HRFLPC/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/FW7W9D/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/FW7W9D/", "attachments": []}, {"guid": "d4277faa-c4a4-51e6-8799-406e8cae0dcd", "code": "DBGWXK", "id": 4789, "logo": "https://pretalx.com/media/juliacon2020/submissions/DBGWXK/rai-logo_sARXdqW.png", "date": "2020-07-29T13:30:00+00:00", "start": "13:30", "duration": "00:30", "room": "Green Track", "slug": "juliacon2020-4789-salsa-jl-a-framework-for-on-demand-incremental-computation", "url": "https://pretalx.com/juliacon2020/talk/DBGWXK/", "title": "Salsa.jl: A framework for on-demand, incremental computation", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "[Salsa.jl](https://github.com/RelationalAI-oss/Salsa.jl) is a framework for on-demand, incremental computation. This type of incremental computing is seen in modern compilers (for IDEs), database systems (to maintain queries), spreadsheets (to recompute values on edits) and web applications (for UIs). `Salsa` guides and simplifies writing such applications and ensures correctness by construction. We use `Salsa` at RelationalAI as the core of our highly responsive compiler and database product.", "description": "Incremental computation reframes the way we build responsive systems such as databases, compilers, ML applications, spreadsheets, and web apps. Performing the minimal amount of computation needed to update a result means avoiding re-running a full computation, boosting performance.\n\nModern compilers are one such challenging responsive system. Programmers expect tools (Atom, VSCode) to understand their programs _while typing_, and to provide syntax highlighting, cross-linking, error indicators, auto-completion and documentation. IDEs essentially need a full-blown compiler front-end. To facilitate this, modern compilers are no longer designed as batch compilers consisting of distinct passes, but rather with on-demand usage as a primary use case (eg by allowing cheaply type-checking a function while accepting errors).\n\nTo meet this challenge, state-of-the-art compilers employ generic frameworks for incremental computing. Rust uses the [salsa](https://github.com/salsa-rs/salsa) framework (see this [PLISS 2019 recording](https://youtu.be/N6b44kMS6OM) for an in-depth discussion).\n\nIn this talk, we introduce [Salsa.jl](https://github.com/RelationalAI-oss/Salsa.jl), which is inspired by Rust's salsa. Salsa.jl (like incremental computing frameworks in general) takes away the guesswork in building efficient incremental systems through its automatic dependency tracking and cache invalidation via versioning. Salsa.jl also introduces novel incremental computation features such as _maintaining_ computations, recursion, and improved dependency analysis. For example, thanks to Julia, Salsa is extensible and supports using existing automatic differentiation tools to maintain computations.\n\nWe use Salsa in production to build a declarative programming language and database system with fast incremental evaluation and immediate feedback. As a novel use-case, we show how Salsa makes it easy to implement a multi-stage language where compilation and evaluation are interleaved.\n\nWe show how to use Salsa to build a small on-demand compiler and an incremental spreadsheet that is correct by construction.\n\nSalsa takes advantage of Julia's meta-programming features and design choices, such as macros, dynamic computation, multiple dispatch, excellent performance, and bias towards immutable data structures. This talk demonstrates that Julia is a remarkably pleasant and productive language for implementing compilers and for incremental computation more broadly.", "recording_license": "", "do_not_record": false, "persons": [{"code": "JP9VJF", "name": "Nathan Daly", "avatar": null, "biography": "Nathan Daly is a Software Engineer at RelationalAI. He was first introduced to the idea of contributing to JuliaLang as one small way to help fight climate change by making scientific computing a little bit easier: http://worrydream.com/ClimateChange", "public_name": "Nathan Daly", "guid": "603562e4-dec3-5901-82c1-618c3db06fd9", "url": "https://pretalx.com/juliacon2020/speaker/JP9VJF/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/DBGWXK/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/DBGWXK/", "attachments": []}, {"guid": "f02c9efa-ab4d-567a-9f77-4a731ac4cd9b", "code": "MCQHT3", "id": 4703, "logo": null, "date": "2020-07-29T16:10:00+00:00", "start": "16:10", "duration": "00:10", "room": "Green Track", "slug": "juliacon2020-4703-estimation-of-macroeconomic-models", "url": "https://pretalx.com/juliacon2020/talk/MCQHT3/", "title": "Estimation of Macroeconomic Models", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Macroeconomic models require efficient estimation methods when used in policy analysis. Recent additions to DSGE.jl expand its toolkit with state-of-the-art routines for constructing and analyzing Dynamic Stochastic General Equilibrium (DSGE) models. Additions include DSGE-Vector Autoregressions (DSGEVAR), Hamiltonian Monte Carlo (HMC), and potentially a \u201cdouble-parallel\u201d Bayesian algorithm.", "description": "I will present on new features of DSGE.jl. Tentatively, they will be DSGEVARs and HMC.\n\nDynamic Stochastic General Equilibrium (DSGE) models are workhorse tools at central banks. DSGEVAR methods allow economists to assess misspecification of DSGEs by comparing them to atheoretic vector autoregressions (VAR). The idea is to use DSGEs as priors for VARs in a Bayesian framework. These priors can be implemented by creating pseudo-data from a DSGE. The weight on the prior is determined by a hyperparameter. Larger values of the hyperparameter imply stronger belief that the DSGE explains the data. By finding the hyperparameter which maximizes the marginal data density of a DSGEVAR, we can evaluate misspecification relative to VARs. We build a simple user interface for DSGEVARs on top of DSGE.jl\u2019s modeling approach, allowing users to easily estimate DSGEVARs and apply them in economic analysis.\n\nHamiltonian Monte Carlo (HMC) improves sampling efficiency during estimation of DSGEs because DSGEs have large sets of parameters. MCMC methods face a trade-off between exploring the parameter space and sampling from high-probability regions. This trade-off worsens in high dimensions. By using information from the gradient of the likelihood, HMC handles this trade-off better than other algorithms like Metropolis-Hastings. Applying HMC to DSGEs is difficult, however, because DSGEs have complex likelihood functions. Autodifferentiation is not immediately possible since calls to LAPACK are made during the likelihood calculation. We use the implicit function theorem to avoid calling LAPACK, which allows us to apply ForwardDiff.jl\u2019s autodifferentiation for fast, accurate, and user-friendly gradient computation. We then write wrappers for the likelihood function and gradient to make it compatible with DynamicHMC.jl\u2019s interface.\n \nDepending on research progress, I may also discuss tools to estimate nonlinear models. Unless Monte Carlo methods like particle filters are applied, it is difficult to compute the likelihoods of nonlinear models. Parallelization is required to effectively use these methods, but for most computing environments, this restriction forces users to use sequential Bayesian estimation algorithms, which are slow. In Julia, however, we can run nested parallel for loops. We combine SMC.jl\u2019s Sequential Monte Carlo estimation algorithm with StateSpaceRoutines.jl\u2019s Tempered Particle Filter to perform a \u201cdouble-parallel\u201d estimation of nonlinear economic models.", "recording_license": "", "do_not_record": false, "persons": [{"code": "LW9BUW", "name": "William Chen", "avatar": null, "biography": "William Chen is a senior Research Analyst at the Federal Reserve Bank of New York (FRBNY) and works on the DSGE team of the Macroeconomics and Monetary Studies Function in the Research and Statistics Group. His research interest are in macroeconomics and financial theory. Chen is a graduate of Williams College with a B.A. in Economics and a B.A. in Mathematics.", "public_name": "William Chen", "guid": "1e16e39c-93a8-5f54-892c-b3180565a770", "url": "https://pretalx.com/juliacon2020/speaker/LW9BUW/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/MCQHT3/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/MCQHT3/", "attachments": []}, {"guid": "43a8b16e-68b0-5ac7-a3fc-6362b15fbede", "code": "LQLP9P", "id": 4765, "logo": null, "date": "2020-07-29T16:30:00+00:00", "start": "16:30", "duration": "00:10", "room": "Green Track", "slug": "juliacon2020-4765-convex-jl-where-are-we-and-where-do-we-want-to-go", "url": "https://pretalx.com/juliacon2020/talk/LQLP9P/", "title": "Convex.jl: where are we and where do we want to go?", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "We will show off some new features in Convex.jl, solve a few example problems, and discuss development plans for the future.", "description": "Convex.jl is a modelling language for solving convex optimization problems. This is a class of problem that, when modelled correctly, can be efficiently and accurately solved to global optimality. Convex.jl provides a simple and convenient modelling language that transforms user-entered problems into a structured form which, via the intermediary layer MathOptInterface.jl, is passed to solvers which can then exploit the structure to efficiently solve the problem.\n\nWe will discuss Convex.jl\u2019s recent update from using the deprecated MathProgBase as an intermediary layer to instead using the actively developed MathOptInterface (which also powers JuMP). Among other things, this enables Convex.jl to formulate problems specified using generic numeric types and send problems to high-precision solvers in order to accurately calculate optimal values of optimization problems to many decimal places. We will also see how to build domain-specific abstractions on top of Convex.jl to provide convenient interfaces for formulating problems in field-specific contexts by using custom variable types and a new feature that allows variables to carry around their own constraints.\n\nWe will also see some new tooling: a library of end-to-end tests for MathOptInterface-compatible optimization solvers, and infrastructure to run the tests in parallel on GitHub Actions and display the results on a convenient webpage. \n\nLastly, we will discuss plans for Convex.jl\u2019s next steps, to make it more efficient and even easier to extend, and invite the audience to help build that future.", "recording_license": "", "do_not_record": false, "persons": [{"code": "GBSYWE", "name": "Eric P. Hanson", "avatar": "https://pretalx.com/media/avatars/GBSYWE_YWaQrfN.webp", "biography": "PhD student studying quantum information theory at Cambridge University", "public_name": "Eric P. Hanson", "guid": "cde15243-3314-5757-bfc8-10b1a1f1672c", "url": "https://pretalx.com/juliacon2020/speaker/GBSYWE/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/LQLP9P/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/LQLP9P/", "attachments": []}, {"guid": "dc93aeff-cc9a-5549-a79f-4a300cebc16c", "code": "RXAN8F", "id": 4628, "logo": null, "date": "2020-07-29T16:40:00+00:00", "start": "16:40", "duration": "00:30", "room": "Green Track", "slug": "juliacon2020-4628-what-s-new-in-pkg-artifacts-binaries-the-pkg-protocol", "url": "https://pretalx.com/juliacon2020/talk/RXAN8F/", "title": "What's new in Pkg: artifacts, binaries & the Pkg protocol", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "There have been some major developments in Julia package manager in the past year. A system has been added in 1.3 for content-addressed binary artifacts, including data and platform-dependent binaries. In conjunction, the BinaryBuilder system has been updated to produce these artifacts, allowing package to depend on non-Julia libraries without any client-side build step. Pkg 1.4 introduced a new protocol for clients to get packages and artifacts from \"Pkg servers\" without needing git or GitHub.", "description": "This talk will go over the high-level design of the artifact system, how BinaryBuilder lets you easily build binaries for dozens of platforms and get them in the hands of Julia users with unprecedented ease. The bottom line: no client-side build step means no client-side build failures. The new Pkg protocol makes it faster and easier to use the package manager behind a firewall or in countries that don't happen to be close to GitHub's servers. No more libgit2/proxy woes. In Julia 1.5 the Pkg protocol will be the default way that Julia clients get packages and artifacts, making it easier for Julia users everywhere to get packages.", "recording_license": "", "do_not_record": false, "persons": [{"code": "B98NWS", "name": "Elliot Saba", "avatar": "https://pretalx.com/media/avatars/B98NWS_tEK7CH0.webp", "biography": "Elliot Saba is a Senior Research Engineer at Julia Computing, where he develops new tools to bolster the Julia community's collective productivity.  From machine learning algorithms to web services, build environments to debugging tools, his greatest weapon against the impossible is patience.", "public_name": "Elliot Saba", "guid": "7d47e0e1-48ab-59d6-930a-c5b09414ffab", "url": "https://pretalx.com/juliacon2020/speaker/B98NWS/"}, {"code": "9NNRE7", "name": "Stefan Karpinski", "avatar": "https://pretalx.com/media/avatars/9NNRE7_UASzy0Z.webp", "biography": "Stefan is a co-creator of Julia and a co-founder of Julia Computing. He has previously worked as a software engineer and data scientist at Etsy, Akamai and Citrix Online. In addition to running Julia Computing, he has a part-time appointment as a Research Engineer at New York University.", "public_name": "Stefan Karpinski", "guid": "028e4611-bde2-5948-8dc0-e5d7b301e181", "url": "https://pretalx.com/juliacon2020/speaker/9NNRE7/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/RXAN8F/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/RXAN8F/", "attachments": []}, {"guid": "aab4497c-0f69-54c2-a59d-a6dd088b3e38", "code": "KTDY7J", "id": 4569, "logo": null, "date": "2020-07-29T17:10:00+00:00", "start": "17:10", "duration": "00:10", "room": "Green Track", "slug": "juliacon2020-4569-probabilistic-optimization-with-the-koopman-operator", "url": "https://pretalx.com/juliacon2020/talk/KTDY7J/", "title": "Probabilistic Optimization with the Koopman Operator", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "The probabilistic optimization of dynamical systems is often framed to minimize the expectation of a given loss function. For non-linear systems, the evaluation of such a loss function and its gradient can be expensive. In this work the Koopman Operator and its computational advantages are presented using the AD-compatible [DiffEqUncertainty.jl](https://github.com/JuliaDiffEq/DiffEqUncertainty.jl).", "description": "The probabilistic optimization of dynamical systems is often framed to minimize the expectation of a given loss function. For non-linear systems, the evaluation of such a loss function and its gradient can be expensive. Often times practitioners rely on implicit methods, such a Monte Carlo simulation, for this calculation due to ease of implementation and understanding. Alternatively, explicit methods such as the Frobenious-Perron Operator can be leveraged to directly evolve probability densities through non-linear systems. Furthermore, the adjoint to the Frobenious-Perron Operator, the Koopman Operator, can be leveraged to the same ends. In this work we will demonstrate how the adjoint property of the Koopman Operator provides significant computational advantages over alternative methods for calculating expectations. We also demonstrate how this Koopman-based approach is AD-compatible. Building on Julia's differential equation ecosystem, this Koopman-based approach is available in [DiffEqUncertainty.jl](https://github.com/JuliaDiffEq/DiffEqUncertainty.jl)", "recording_license": "", "do_not_record": false, "persons": [{"code": "Z7P7KW", "name": "Adam R. Gerlach", "avatar": "https://pretalx.com/media/avatars/Z7P7KW_fiqfMyC.webp", "biography": "Adam Gerlach is a Research Aerospace Engineer in the Control Sciences Center of Excellence at the Air Force Research Laboratory (AFRL). His research interests are in intelligent systems, decision making under uncertainty, decentralized cooperative control.\n\nAdam received his Ph.D. in aerospace engineering from the University of Cincinnati in 2014 focused on Controls, Dynamics, and Intelligent Systems.", "public_name": "Adam R. Gerlach", "guid": "9b1db272-3470-5775-a39e-c198393bb28b", "url": "https://pretalx.com/juliacon2020/speaker/Z7P7KW/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/KTDY7J/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/KTDY7J/", "attachments": []}, {"guid": "2158c5a3-8ca6-5080-894c-19b8c0912ad8", "code": "YDSABY", "id": 4543, "logo": null, "date": "2020-07-29T17:20:00+00:00", "start": "17:20", "duration": "00:10", "room": "Green Track", "slug": "juliacon2020-4543-multi-physics-3-d-inversion-on-gpu-supercomputers-with-julia", "url": "https://pretalx.com/juliacon2020/talk/YDSABY/", "title": "Multi-Physics 3-D Inversion on GPU Supercomputers with Julia", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "We present an **iterative and massively scalable** 3-D multi-GPU inversion workflow using Julia for **coupled multi-physics processes** in Earth Sciences. We introduce an **adjoint framework** for the two-phase flow equations, assess the unknown porosity field reconstruction in 3-D and discuss the performance evaluation.", "description": "The adjoint-based multi-physics inversion framework we present enables the development of efficient and massively scalable 3-D multi-GPU solvers with **application to optimisation problems**.\n\nWe use an **iterative matrix-free pseudo-transient approach** and the finite difference method to solve the forward and the adjoint coupled two-phase flow equations. We achieve efficient calculations of the pointwise gradients of the flow solution with respect to the porosity. We then use the gradients in a gradient descent method to reconstruct the pointwise porosity in 3-D.\n\nWe assess the performance of the 3-D memory-bounded solvers using a **simple effective memory throughput metric**. We finally discuss how the **overlap of computations with MPI communications** permits us to achieve a close to optimal parallel efficiency. We rely on the `ParallelStencil` and `ImplicitGobalGrid` packages for high-performance stencil-based calculations and optimal distributed memory parallelisation.\n\n**Co-authors** - Georg Reuber, Samuel Omlin", "recording_license": "", "do_not_record": false, "persons": [{"code": "ZTATFJ", "name": "Ludovic R\u00e4ss", "avatar": "https://pretalx.com/media/avatars/ZTATFJ_PLThLkL.webp", "biography": "Why to perform serial tasks while nature is mostly parallel? I am geoscientist with strong interest in high-performance computing (HPC), two-phase flow and ice dynamics. GPUs and supercomputers permit to investigate previously unsolvable problems at unprecedented resolutions.", "public_name": "Ludovic R\u00e4ss", "guid": "c380de01-7af0-5e6b-ae0e-85c82f5da267", "url": "https://pretalx.com/juliacon2020/speaker/ZTATFJ/"}, {"code": "UXJCL8", "name": "Georg", "avatar": null, "biography": null, "public_name": "Georg", "guid": "838cc2b2-8733-50ff-8d11-579cf9c896f0", "url": "https://pretalx.com/juliacon2020/speaker/UXJCL8/"}, {"code": "QTKXPY", "name": "Samuel Omlin", "avatar": "https://pretalx.com/media/avatars/QTKXPY_Th2goew.webp", "biography": "Computational Scientist and responsible for Julia Computing at the Swiss National Supercomputing Centre (CSCS), ETH Zurich", "public_name": "Samuel Omlin", "guid": "195c4c1e-6421-5b98-9109-0e493bd51ced", "url": "https://pretalx.com/juliacon2020/speaker/QTKXPY/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/YDSABY/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/YDSABY/", "attachments": []}, {"guid": "ccaa9db4-cdd1-5287-a4f4-adbf089585ad", "code": "SD8PSC", "id": 4354, "logo": null, "date": "2020-07-29T17:30:00+00:00", "start": "17:30", "duration": "00:10", "room": "Green Track", "slug": "juliacon2020-4354-terminal-user-interfaces-in-julia", "url": "https://pretalx.com/juliacon2020/talk/SD8PSC/", "title": "Terminal User Interfaces in Julia", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Have you ever wondered how htop, vim or other terminal applications work? Do you want to add color, or formatting to the terminal output from your Julia application? Are you interested in building interactive terminal user interfaces for your users? Well, this is the talk for you! \n\nWe will discuss how terminal emulators work, features they make available and how you can leverage these features to create the best experience for you and your users in the terminal for a Julia application.", "description": "Terminal User Interfaces can be developed using in-band ANSI escape and control sequences. Using the various escape and control sequences we can move the cursor to any position, erase lines or part of the screen, set formatting options such as bold, italic, foreground color, background color, change the cursor shape, etc. \n\nIn this lightning talk I will go over some examples of building terminal user interfaces in Julia.  The presentation will feature ANSI escape sequences; TERMIOS settings, such as cooked, raw and cbreak modes; reading stdin and write to stdout while in these various modes, etc.", "recording_license": "", "do_not_record": false, "persons": [{"code": "ZWPRXJ", "name": "Dheepak Krishnamurthy", "avatar": "https://pretalx.com/media/avatars/ZWPRXJ_68yWH0n.webp", "biography": "Dheepak is an energy system research engineer working at the National Renewable Energy Laboratory. He is interested in energy, optimization and high performance computing.", "public_name": "Dheepak Krishnamurthy", "guid": "e88d6fa2-9e41-59f0-b63e-3737fd9a56a5", "url": "https://pretalx.com/juliacon2020/speaker/ZWPRXJ/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/SD8PSC/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/SD8PSC/", "attachments": []}, {"guid": "80df1abb-3f60-5972-bbf2-c8c2e8d3a118", "code": "JQLXBK", "id": 4838, "logo": null, "date": "2020-07-29T18:00:00+00:00", "start": "18:00", "duration": "00:30", "room": "Green Track", "slug": "juliacon2020-4838-loop-analysis-in-julia", "url": "https://pretalx.com/juliacon2020/talk/JQLXBK/", "title": "Loop Analysis in Julia", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "This talk will focus on the library LoopVectorization, providing an overview of how the library represents loops, and how this representation is used alongside cost modeling to pick an efficient vectorization strategy, and how it can be used for defining loops for an autodiff reverse pass.", "description": "I will give a brief introduction to loop vectorization in Julia, discussing practical issues such as the benefit of contiguous loads and stores and how they relate to data layout decisions such as arrays of structs versus struct of arrays.\n\nThe emphasis of the low level discussion will be the extreme level of parallelism within a single modern CPU core (a single AVX512 core can have up to 128 concurrent double precision floating point operations: 8 Float64 per vector * 2 operations / fma * 2 instructions executed / cycle * 4 cycles latency), emphasizing the need for parallel programming paradigms like SPMD.\n\nLoopVecorization.jl can be thought of as treating loops like a familiar DSL for specifying dependencies between operations (such as arithmetic and loads or stores) and loops, without regard to any order aside from that inherent in the dependency chains.\nThe library has infrastructure for modeling the cost of evaluating a loop nest using different orders of the constituent loops, and different unrolling and blocking factors of the loops.\nThe advantage is demonstrated in allowing writing high performance code that is generic with respect to the data layout of the underlying arrays, with the order of evaluated loops and data access pattern shifting in response to transposed arrays without any change in the user's code.\n\nNext, the advantage of the simple representation of loops as dependencies between operations and loops for automatic differentiation is demonstrated.", "recording_license": "", "do_not_record": false, "persons": [{"code": "DNZRRM", "name": "Chris Elrod", "avatar": "https://pretalx.com/media/avatars/DNZRRM_OQtvvAW.webp", "biography": "Statistician at Eli Lilly.", "public_name": "Chris Elrod", "guid": "3e1bf33d-fd1f-5a4e-8cd9-39c126792e82", "url": "https://pretalx.com/juliacon2020/speaker/DNZRRM/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/JQLXBK/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/JQLXBK/", "attachments": []}, {"guid": "e82ded29-a89b-562f-bd1d-919943c64a23", "code": "XKG7TT", "id": 4677, "logo": null, "date": "2020-07-29T18:30:00+00:00", "start": "18:30", "duration": "00:10", "room": "Green Track", "slug": "juliacon2020-4677-symbolictensors-jl-high-level-tensor-manipulation-in-julia", "url": "https://pretalx.com/juliacon2020/talk/XKG7TT/", "title": "SymbolicTensors.jl -- high-level tensor manipulation in Julia", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Learn how to speed up your tensor calculations with `SymbolicTensors.jl`, a package designed to manipulate and simplify your tensor expressions before rewriting them in performant pure Julia.", "description": "Many numerical tensor manipulation packages exist (e.g. `Einsum.jl`), but treating tensors at a purely numeric level throws away a lot of potential optimizations.\nOften, it's possible to exploit the symmetries of a problem to dramatically reduce the calculation steps necessary, or perform some tensor contractions symbolically rather than numerically. \n\n`SymbolicTensors.jl` is designed to exploit these simplifications to generate more efficient input into numeric tensor packages than you would write by hand. It based on `SymPy.jl`, `sympy.tensor.tensor`, and `ITensors.jl`.", "recording_license": "", "do_not_record": false, "persons": [{"code": "YKT39B", "name": "Robert Rosati", "avatar": null, "biography": "Physics PhD student at University of Texas at Austin\n\nhttps://github.com/rjrosati", "public_name": "Robert Rosati", "guid": "bb634d8d-a66e-5cef-ad24-335a4f62f33e", "url": "https://pretalx.com/juliacon2020/speaker/YKT39B/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/XKG7TT/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/XKG7TT/", "attachments": []}, {"guid": "e44d1958-7a9e-59d3-904e-fa51174b50d0", "code": "3JSMMG", "id": 4656, "logo": null, "date": "2020-07-29T18:40:00+00:00", "start": "18:40", "duration": "00:10", "room": "Green Track", "slug": "juliacon2020-4656-concatenation-and-kronecker-products-of-abstract-linear-maps", "url": "https://pretalx.com/juliacon2020/talk/3JSMMG/", "title": "Concatenation and Kronecker products of abstract linear maps", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "In this talk, I present `LinearMaps.jl`, a well-established Julia package for handling linear maps whose action on vectors is given by the classic matrix-vector product or by the application of a function to a vector. I will focus on two recently added features, namely (diagonal) block concatenation and (higher-order) Kronecker products and sums of such abstract linear maps.", "description": "Linear maps (or operators) are ubiquitous in the mathematical sciences, modeling and scientific computing. In many problems, linear maps are not necessarily given by some matrix representation, but as programs that transform vectors in a linear fashion. Such linear programs can be used, for instance, in iterative linear algebra methods synonymously to usual matrices by wrapping them with the `LinearMaps.jl` package. With this package, more complicated linear maps can be constructed lazily from simple linear function maps or wrapped matrices via scaling, addition, multiplication, transposition and taking the adjoint. Recently, two further classes of such operator algebraic operations have been added to the aforementioned traditional set of operations in `LinearMaps.jl`: horizontal, vertical and diagonal (block) concatenation  and Kronecker products, sums, and powers. These operations feature prominently in applications like structured optimization and image reconstruction. Their implementation in `LinearMaps.jl` facilitates top performance even in the classic matrix context due to their laziness and type-stable usage of specialized multiplication methods.", "recording_license": "", "do_not_record": false, "persons": [{"code": "FXFFZ8", "name": "Daniel Karrasch", "avatar": "https://pretalx.com/media/avatars/FXFFZ8_qHe4ABt.webp", "biography": "Daniel Karrasch graduated in 2012 with a PhD in Mathematics from TU Dresden, Germany. After a postdoctoral fellowship at ETH Zurich, Switzerland, he now works as a postdoctoral researcher in the Scientific Computing group at TU Munich, Germany. His research interests are in applied and computational mathematics, with a focus on dynamical systems theoretical approaches to the study of fluid motion. He is an enthusiastic contributor to the Julia language, mostly in the area of linear algebra.", "public_name": "Daniel Karrasch", "guid": "ac1f3b89-c810-59ba-8729-8cf6709f1416", "url": "https://pretalx.com/juliacon2020/speaker/FXFFZ8/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/3JSMMG/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/3JSMMG/", "attachments": []}, {"guid": "c9e8491e-db67-5d99-9732-c92f53d0ee43", "code": "NMGTD9", "id": 4778, "logo": null, "date": "2020-07-29T18:50:00+00:00", "start": "18:50", "duration": "00:10", "room": "Green Track", "slug": "juliacon2020-4778-simd-in-julia-automatic-and-explicit", "url": "https://pretalx.com/juliacon2020/talk/NMGTD9/", "title": "SIMD in Julia - Automatic and explicit", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "SIMD (Single Instruction, Multiple Data) is a term for when the processor executes the same operation (like addition) on multiple numbers (data) in one instruction. This can give significant speedups. Julia has many ways to take advantage of SIMD, sometimes it happens automatically, as an optimization, but it is also possible to manually write SIMD code.\nThis talk will give an overview of the different ways you can use SIMD in Julia.", "description": "SIMD (Single Instruction, Multiple Data) is a term for when the processor executes the same operation (like addition) on multiple numbers (data) in one instruction. Recent processor architectures come with the capability of running these SIMD instructions on even larger batches of data, making it more important to make sure that SIMD is used when possible, for best performance.\n\nFortunately, in many cases, Julia can automatically make code use SIMD. Often this comes from optimizations made by LLVM, the code generation library Julia uses. Some cases of this are in:\n\n- Loops, where the LLVM Loop Vectorizer can identify patterns where the loop can be unrolled so that multiple iterations can be done When there is a reduction involved, like when summing the elements of an array, the `@simd` macro might be needed.\n- Different patterns of scalar operations that can be combined into one SIMD instructions, like when adding two tuples. This is vectorized by the LLVM SLP (Superword-Level Parallelism) vectorizer.\n\nThere are however cases where auto-vectorization like above doesn\u2019t happen. This can be when LLVM does not recognize the opportunity to use SIMD or when it isn\u2019t valid to do so because it could change the result slightly. In cases like this, it is possible to:\n\n- Use a \u201cSIMD vector library\u201d like SIMD.jl. This allows one to create a \u201cSIMD Vector\u201d that works similarly to a number but operations on it will work elementwise using SIMD instructions.\n- Explicitly call machine instructions specific for a certain CPU architecture. This gives the most control but has the drawback of tying the code the CPU architecture, making it less generic. \n\nThis talk will show discuss and show examples of the above SIMD cases, giving insight into how to leverage SIMD for greater performance.", "recording_license": "", "do_not_record": false, "persons": [{"code": "AS3MKE", "name": "Kristoffer Carlsson", "avatar": "https://pretalx.com/media/avatars/AS3MKE_SxjKovB.webp", "biography": "- Contributor to Base and many packages (Pkg.jl, OhMyREPL.jl, PGFPlotsX.jl, TimerOutputs.jl, JuAFEM.jl,  NearestNeighbors.jl, etc)\n- Release manager for Julia.\n- Software engineer at Julia Computing.\n- PhD-student in mechanical engineering at Chalmers University of Technology, Sweden.", "public_name": "Kristoffer Carlsson", "guid": "594ec697-a1bb-5816-9ffd-c92c93250002", "url": "https://pretalx.com/juliacon2020/speaker/AS3MKE/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/NMGTD9/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/NMGTD9/", "attachments": []}, {"guid": "a722a66d-ea91-5888-9be9-d48d7b4675e2", "code": "LEADQ7", "id": 4725, "logo": null, "date": "2020-07-29T19:00:00+00:00", "start": "19:00", "duration": "00:30", "room": "Green Track", "slug": "juliacon2020-4725-accurate-and-efficiently-vectorized-sums-and-dot-products", "url": "https://pretalx.com/juliacon2020/talk/LEADQ7/", "title": "Accurate and Efficiently Vectorized Sums and Dot Products", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "This talk will present how basic operations on vectors, like summation and dot products, can be made more accurate with respect to Floating-Point arithmetic by using compensated algorithms. The proposed implementation is available in the [AccurateArithmetic.jl](https://github.com/JuliaMath/AccurateArithmetic.jl) package, and leverages SIMD instructions in order to achieve high performance on modern hardware architectures.", "description": "Computing the dot product of two vectors and, perhaps to a lesser extent, summing the elements of a vector, are two very common basic building blocks for more complex linear algebra algorithms. As such, any change in their performance is likely to affect the overall performance of scientific computing codes; any change in their accuracy is likely to induce a loss of reproducibility in overall computed results. However, both the performance and accuracy of these algorithms is affected by the use of Floating-Point (FP) arithmetic: on the one hand, using smaller FP numbers tends to increase the performance of the computation (through increased memory bandwidth and wider SIMD registers). On the other hand, decreasing the precision of FP numbers also tends to decrease the accuracy if the results.\n\nThe work presented in this talk tries to address this issue by efficiently implementing [accurate summation and dot product algorithms in Julia](https://hal.archives-ouvertes.fr/hal-02265534). These implementations are available under an open source license in the [AccurateArithmetic.jl](https://github.com/JuliaMath/AccurateArithmetic.jl) package, and aim at high performance by leveraging the SIMD capabilities of modern hardware (esp. AVX-2 & AVX-512). Besides naive algorithms, compensated algorithms are implemented: the Kahan-Babu\u0161ka-Neumaier summation algorithm, and the [Ogita-Rump-Oishi](http://dx.doi.org/10.1137/030601818) simply compensated summation and dot product algorithms. These algorithms effectively double the working precision, producing much more accurate results while incurring little to no overhead, especially for large input vectors.\n\nThis talk also tries to build upon this example to make a case for a more widespread use of Julia in the HPC community. Although the vectorization of compensated algorithms is no particularly simple task, Julia makes it relatively easy and straightforward, particularly thanks to existing building blocks in the eco-system such as [SIMDPirates.jl](https://github.com/chriselrod/SIMDPirates.jl). Relying on generic functions and multiple dispatch also allows structuring the code in small, composable building blocks, closely matching textbook algorithms yet efficiently compiled.", "recording_license": "", "do_not_record": false, "persons": [{"code": "ZT3GSX", "name": "Fran\u00e7ois F\u00e9votte", "avatar": "https://pretalx.com/media/avatars/ZT3GSX_hbaEldT.webp", "biography": "Fran\u00e7ois F\u00e9votte is co-founder and Chief Scientist of TriScale innov, a start-up dedicated to technical and scientific computing. Prior to that, he graduated in 2008 with a PhD in applied mathematics from the CEA and spent more than ten years with a team dedicated to numerical analysis and modeling in the R&D division of EDF (France's main electric utility). Fran\u00e7ois' approach aims at achieving high performance in scientific software by focusing the effort where it matters most. This includes using state-of-the art numerical techniques in combination with FP-aware algorithms and implementations targeting modern hardware architectures.", "public_name": "Fran\u00e7ois F\u00e9votte", "guid": "2a00d6bf-abbf-5ef3-beb8-79403ce0f4d6", "url": "https://pretalx.com/juliacon2020/speaker/ZT3GSX/"}, {"code": "DNZRRM", "name": "Chris Elrod", "avatar": "https://pretalx.com/media/avatars/DNZRRM_OQtvvAW.webp", "biography": "Statistician at Eli Lilly.", "public_name": "Chris Elrod", "guid": "3e1bf33d-fd1f-5a4e-8cd9-39c126792e82", "url": "https://pretalx.com/juliacon2020/speaker/DNZRRM/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/LEADQ7/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/LEADQ7/", "attachments": []}], "Purple Track": [{"guid": "115d8032-6fa0-56ce-800f-90ff7a9256e6", "code": "8VUMUA", "id": 4074, "logo": null, "date": "2020-07-29T12:30:00+00:00", "start": "12:30", "duration": "00:10", "room": "Purple Track", "slug": "juliacon2020-4074-parallelization-random-numbers-and-reproducibility", "url": "https://pretalx.com/juliacon2020/talk/8VUMUA/", "title": "Parallelization, Random Numbers and Reproducibility", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "We will show how the different types of parallelization in Julia interact with random number generators and shared state. Using the parametric bootstrap in MixedModels, we will show to how use threads effectively with a shared random number generator to give the same result as the serial version.", "description": "Random-number generators present a special problem for both thread- and process-based parallelism, especially when guaranteeing a reproducible, unbiased stream that is independent of the number of concurrent workers. In other words, we require the ability to parallelize a replicated, stochastic operation in such a way that we will get the same result as the serial computation with the same RNG and seed. For thread-based parallelism, this can easily be achieved via a shared RNG with appropriate locking.  We demonstrate this with the implementation of the parametric bootstrap in MixedModels. The parametric bootstrap is embarrassingly parallel computation, yet depends on a stochastic element and thus random-number generation.  In particular, we examine how the granularity of locking impacts the 'striping' of random numbers across threads and thus reproducibility. We finish by contrasting our approach to the use of 'fast-forwarding' and copying the RNG and discussing issues with generalizing these approaches to process-based parallelism.", "recording_license": "", "do_not_record": false, "persons": [{"code": "3EFERC", "name": "Phillip Alday", "avatar": "https://pretalx.com/media/avatars/3EFERC_WmANQQ0.webp", "biography": "Phillip was a struggling mathematician, then a linguist and now a cognitive neuroscientist, but always a hacker.", "public_name": "Phillip Alday", "guid": "b466e92f-1e17-5821-9e7c-d547cc9fffe7", "url": "https://pretalx.com/juliacon2020/speaker/3EFERC/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/8VUMUA/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/8VUMUA/", "attachments": []}, {"guid": "3bbeb7fe-698f-5050-8055-83835526b24d", "code": "L3FYJW", "id": 3251, "logo": "https://pretalx.com/media/juliacon2020/images/L3FYJW/DrWatson-icon_HuSEXOb.png", "date": "2020-07-29T12:40:00+00:00", "start": "12:40", "duration": "00:10", "room": "Purple Track", "slug": "juliacon2020-3251-drwatson-the-perfect-sidekick-to-your-scientific-inquiries", "url": "https://pretalx.com/juliacon2020/talk/L3FYJW/", "title": "DrWatson - The perfect sidekick to your scientific inquiries", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Science is hard! Not only because scientific work requires utmost scrutiny and focus, but also because managing a scientific project is hard and messy. [DrWatson](https://juliadynamics.github.io/DrWatson.jl/stable/) is a scientific project assistant software made for Julia that makes scientific work less nightmarish.", "description": "DrWatson is the first-of-its-kind scientific project assistant software. It was born out of the frustration about the hardships of managing scientific projects, and constantly re-creating the same functionalities. DrWatson offers several ways to help you manage your project: consistent & universal project structure & navigation, naming schemes, saving tools and simulation management. This talk will introduce and motivate DrWatson and showcase its features in real scientific projects.", "recording_license": "", "do_not_record": false, "persons": [{"code": "GB8WTV", "name": "George Datseris", "avatar": "https://pretalx.com/media/avatars/GB8WTV_KjiCmmK.webp", "biography": "By day I am a scientist and by night I am a software developer and a drummer.\nMy areas of research are: quantum transport, nonlinear dynamics and chaos, music timeseries analysis, climate physics.", "public_name": "George Datseris", "guid": "c572f2b9-6dbe-50e8-9426-cfe4e0acc344", "url": "https://pretalx.com/juliacon2020/speaker/GB8WTV/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/L3FYJW/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/L3FYJW/", "attachments": []}, {"guid": "00000b30-b505-5fdd-a5f6-b0d1d4a26bbc", "code": "KCP9NT", "id": 4794, "logo": null, "date": "2020-07-29T12:50:00+00:00", "start": "12:50", "duration": "00:10", "room": "Purple Track", "slug": "juliacon2020-4794-reproducible-environments-with-singularity", "url": "https://pretalx.com/juliacon2020/talk/KCP9NT/", "title": "Reproducible environments with Singularity", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Today\u2019s science requires ever-increasing amounts of computation, so ideally, we should be able to easily shift our simulations to any nonpersonal machine and guarantee that we can exactly reproduce the result later.  \nTo do so, I would like to talk about a containerization software aimed at high performance computing called Singularity, the small package that I wrote for it, and the adventure of combining JIT with read-only containers.", "description": "As the use of computing in science grows, more scientists are running ever larger computations. However, while the importance and use of a lab notebook is taught in many science degrees, the corresponding best practices for computer use often are not. From personal experience, I can tell that this leads to a growing number of random scripts and result files that after a week can\u2019t be matched anymore. Alternatively, the code is sent to a server, and after requiring some small tweaks, the local and the remote version look different. A google search shows that this is not an uncommon problem, and there is an increasing number of blogs and papers addressing various aspects.  \n\nIn general, there are three aspect to a numerical result: the parameters, the code, and the environment. Specifically in Julia, the first two can be addressed by the combination of DrWatson.jl and Git, which makes it very easy to store the parameters used and the git hash of the commit with the code. This also includes the Manifest file, meaning that one can recreate the exact package environment, which is a major feature of Julia. However, this does not cover the binaries used by many packages. Examples include an NLopt algorithm throwing a segfault only on a specific version of Ubuntu, or a binary that only on Mac clashes with MKL.  \n\nOn the surface, containerization is the solution to these problems, but in practice the group doing the science and the group understanding containers seem mostly disjunct. After being in the first group until a few months ago, I now would like to present my approach and the small package [1] I wrote to facilitate it. It uses the scientific container software Singularity, which is less popular but more specialized than the widely known Docker (like Julia compared to Python). Differing from Docker, Singularity containers support various HPC hardware and software, do not require root to run, and integrate well into resource managers like SLURM. \n\nIn this talk, I would like to introduce my workflow based on DrWatson.jl and my own measures to create very minimal containers that enable results that are fully reproducible on any machine with the Singularity runtime. This will include general aspects about Singularity and specific one related to incorporating Julia.  \n\n[1] https://github.com/Crown421/Singularity.jl", "recording_license": "", "do_not_record": false, "persons": [{"code": "YJZSDG", "name": "Steffen Ridderbusch", "avatar": "https://pretalx.com/media/avatars/YJZSDG_5t7Buyj.webp", "biography": "Steffen Ridderbusch is a doctoral student of the 2018 cohort of the Centre of Doctoral Training in Autonomous Intelligent Machines and Systems. Holding degrees in Mathematics and Engineering, he is now part of the Control Department.", "public_name": "Steffen Ridderbusch", "guid": "a6f9cc77-c758-5a26-ad05-7cf03ecfc22f", "url": "https://pretalx.com/juliacon2020/speaker/YJZSDG/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/KCP9NT/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/KCP9NT/", "attachments": []}, {"guid": "6debdf81-9e96-543c-acf4-d5382371799c", "code": "Z8TE39", "id": 4786, "logo": null, "date": "2020-07-29T13:00:00+00:00", "start": "13:00", "duration": "00:30", "room": "Purple Track", "slug": "juliacon2020-4786-shippable-apps-and-custom-sysimages-with-packagecompiler-jl", "url": "https://pretalx.com/juliacon2020/talk/Z8TE39/", "title": "Shippable apps and custom sysimages with PackageCompiler.jl", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "This talk presents the new 1.0 release of the Julia package PackageCompiler.jl which allows one to, in addition to create sysimages, also create \u201capps\u201d or executables which can be run on machines that do not have Julia installed. In addition, it gives a background to the Julia compilation model and how and why one would want to create custom sysimages.", "description": "When a function is to be executed for the first time in Julia there are several steps that need to happen. The code needs to be parsed, type inference has to run, LLVM has to compile it to machine code etc. Depending on the function, this can take some time giving a bit of a latency to the first call of a function. When packages are loaded, there is a precompilation step that takes place that tries to cache some of this work, but even with that the latency before the function actually runs can be significant.\n\nJulia comes with a few packages that are already installed and available without having to explicitly add them like normal packages. These are called \u201cstandard libraries\u201d and the Julia REPL is one of them. You might have noticed that the Julia REPL loads almost instantly (significantly faster than a \u201cnormal\u201d package) even though it is a quite complex package. This is because it is compiled into what is called a \u201csysimage\u201d which allows more extensive caching of compiled code than the normal package precompilation system.\n\nPackageCompiler.jl (which recently had its 1.0 release) is a package that makes it easy to create custom sysimages which can include other packages than the default standard libraries. This can be used in cases where a commonly used package is slow to load or has functions with high overhead for the first call.\n\nIn addition, PackageCompiler.jl can create apps that can be downloaded and directly run on a machine that doesn\u2019t have Julia installed. It works together with [the artifact system](https://julialang.org/blog/2019/11/artifacts/) allowing automatic bundling of external binaries and libraries. This allows one to ship quite sophisticated apps written in Julia in a simple manner.\n\nThis talk will expand on the points above and show the API of PackageCompiler.jl v1.0.", "recording_license": "", "do_not_record": false, "persons": [{"code": "AS3MKE", "name": "Kristoffer Carlsson", "avatar": "https://pretalx.com/media/avatars/AS3MKE_SxjKovB.webp", "biography": "- Contributor to Base and many packages (Pkg.jl, OhMyREPL.jl, PGFPlotsX.jl, TimerOutputs.jl, JuAFEM.jl,  NearestNeighbors.jl, etc)\n- Release manager for Julia.\n- Software engineer at Julia Computing.\n- PhD-student in mechanical engineering at Chalmers University of Technology, Sweden.", "public_name": "Kristoffer Carlsson", "guid": "594ec697-a1bb-5816-9ffd-c92c93250002", "url": "https://pretalx.com/juliacon2020/speaker/AS3MKE/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/Z8TE39/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/Z8TE39/", "attachments": []}, {"guid": "540c70f8-8eda-5553-886b-2b5556332a49", "code": "GVFYUF", "id": 4486, "logo": null, "date": "2020-07-29T13:30:00+00:00", "start": "13:30", "duration": "00:10", "room": "Purple Track", "slug": "juliacon2020-4486-project-binder-and-the-julia-community-how-can-we-help-each-oth", "url": "https://pretalx.com/juliacon2020/talk/GVFYUF/", "title": "Project Binder and the Julia Community: How can we help each oth", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Project Binder (https://mybinder.org, https://jupyter.org/binder) offers an easy place to share reproducible computing environments, including Julia. In this lightning talk, Sarah Gibson will present the results of the mybinder.org User Survey, in particular those of interest to or suggested by the Julia community. She will introduce herself as a point of contact for further discussion on how the Julia and Binder communities can work more closely, and how you can become involved in Project Binde", "description": "The Binder Project is a collection of tools that rewards best practices in reproducible data science and provides an easy method of sharing computing environments with anyone via a single clickable link. The free and public Binder service, hosted at https://mybinder.org, serves around 100,000 launches per week from over 10,000 individual git repositories in a variety of programming languages, including Julia.\n\nBinder is a community-driven project, taking the lead from community-developed standards of reproducibility and input from its users via the mybinder.org user survey. The user survey was last conducted at the beginning of 2020 and a summary of the results will be presented during the lightning talk.\n\nThere are so many fantastic ideas and features the Binder project team (https://jupyterhub-team-compass.readthedocs.io/en/latest/team.html#binder-team) would like to develop but - like many open source projects - we face time restrictions, a low bus factor (https://en.wikipedia.org/wiki/Bus_factor), and often lack domain expertise when developing language-specific features.\n\nSarah Gibson would like to introduce the Binder Project to the Julia community as an opportunity to shape a tool that would be most useful to them and provide guidance on how to get started with contributing to or joining the project.\n\nThis lightning talk will (hopefully!) be accompanied by a Birds of a Feather session and/or a drop-in table where Sarah will be available for more in-depth discussions about Binder.", "recording_license": "", "do_not_record": false, "persons": [{"code": "8BQNLY", "name": "Sarah Gibson", "avatar": null, "biography": "Sarah Gibson is a Research Software Engineer at the Alan Turing Institute. She is passionate about best software practices and reproducible research and helps the open source community reach these gold-standards by contributing to The Turing Way (https://github.com/alan-turing-institute/the-turing-way) and operating mybinder.org (https://jupyter.org/binder)", "public_name": "Sarah Gibson", "guid": "699f0c12-fc2b-5cc4-9875-b3b7e586bfa7", "url": "https://pretalx.com/juliacon2020/speaker/8BQNLY/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/GVFYUF/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/GVFYUF/", "attachments": []}, {"guid": "89513c4d-6c34-5b23-b8bd-519c88f47c1d", "code": "87JCMX", "id": 3821, "logo": null, "date": "2020-07-29T13:40:00+00:00", "start": "13:40", "duration": "00:10", "room": "Purple Track", "slug": "juliacon2020-3821-dependency-aware-jupyter-notebooks", "url": "https://pretalx.com/juliacon2020/talk/87JCMX/", "title": "Dependency-Aware Jupyter Notebooks", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Jupyter notebooks are useful for sharing Julia code. But if collaborators have different package versions, bugs arise and reproducibility is lost. \n\nWe present two tools that solve this problem, and describe their use in QuantEcon's Julia course. One (InstantiateFromURL.jl) allows binds notebooks to GitHub repositories for TOML, and supports version-controlling notebooks and manifests. The other (PkgUtils.jl) allows for direct pasting of Manifest and Project information into the notebook file.", "description": "The current method for sharing dependency information with Jupyter is simply to send TOML files along with the notebook. This can be difficult (e.g. for students, who may struggle with Julia environments), and generally hampers mobility.\n\nThe QuantEcon Julia course uses InstantiateFromURL.jl to have notebooks download (version-controlled) TOML from GitHub. We demonstrate its support for both local machines and JupyterHubs.", "recording_license": "", "do_not_record": false, "persons": [{"code": "BLMFSS", "name": "Arnav Sood", "avatar": null, "biography": "Arnav is a Predoctoral Researcher at the UBC Vancouver School of Economics, where he works primarily with Jesse Perla. He is also a team member at QuantEcon, contributing to Julia projects and lectures.", "public_name": "Arnav Sood", "guid": "2edd4a41-b730-5e4b-8a8e-a998aac86225", "url": "https://pretalx.com/juliacon2020/speaker/BLMFSS/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/87JCMX/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/87JCMX/", "attachments": []}, {"guid": "f850d4bc-46d9-569d-8b79-0db81d77ef7e", "code": "N39HSX", "id": 4795, "logo": null, "date": "2020-07-29T13:50:00+00:00", "start": "13:50", "duration": "00:10", "room": "Purple Track", "slug": "juliacon2020-4795-julia-for-scripting", "url": "https://pretalx.com/juliacon2020/talk/N39HSX/", "title": "Julia for scripting", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Julia is often not recommended for a \"scripting workflow\", i.e. starting Julia, execute a code snippet, and exit. This especially applies to short tasks where most of the time will be spent on compiling the code instead of running it. The recommended workflow is instead to keep the Julia session alive for as long as possible in order to benefit from already compiled methods. This talk will discuss how Julia can be used for scripting and present some tips on how to reduce compilation time.", "description": "The \"scripting workflow\", i.e. starting Julia, execute a code snippet, and then exit, is often not the recommended method for Julia code. One reason for this is that Julia is a just-in-time (JIT) compiled language, and the first call to a function is usually a lot slower than subsequent calls due to compilation. In a setting such as scripting there might only be one call to a function before exiting Julia. Spending time compiling the function might not be worth it in such a case, unless the faster runtime makes up for it. A simple example is a script that defines a single function, calls it, and then exits.\n\nThe recommended Julia workflow is instead to keep a single Julia session alive for as long as possible, and reuse it for multiple tasks. Even though two tasks A and B are not be directly related, they may both use, for example, arrays. Thus, after performing task A we have already compiled some array methods, and task B will benefit from that, with reduced compilation time as the result. This interaction is something that scripting can not take advantage of, since compiled methods are forgotten when exiting Julia.\n\nThe problems presented above have two obvious possible solutions: (i) spend less time compiling and (ii) store compiled methods and make them available in future sessions. For the first option we can use Julias interpreter and only compile whats necessary. This is often a great solution for very short-running tasks, and requires nothing extra, just some command line flags to Julia. The second option is a bit more involved (although nowadays pretty easy using the PackageCompiler.jl package), however, it can completely elimitate runtime compilation. The downside is that the compiled and cached methods live in a separate file that needs to be bundled with the script.\n\nThis talk will discuss how Julia can be used for scripting, present some tips and tricks on how to make scripting more viable, and show some succesful examples of the two solutions presented above.", "recording_license": "", "do_not_record": false, "persons": [{"code": "FTWNWJ", "name": "Fredrik Ekre", "avatar": null, "biography": "I am a PhD student in computational material mechanics and use Julia both for research, procrastination and as a hobby. Long time contributor to Julia and various packages.", "public_name": "Fredrik Ekre", "guid": "67c8ce82-70d7-535a-8856-afb916c0cb0e", "url": "https://pretalx.com/juliacon2020/speaker/FTWNWJ/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/N39HSX/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/N39HSX/", "attachments": []}, {"guid": "cdc5ae07-d2e4-5400-82e5-96ac063f92b2", "code": "9BNNMD", "id": 5479, "logo": null, "date": "2020-07-29T16:10:00+00:00", "start": "16:10", "duration": "01:30", "room": "Purple Track", "slug": "juliacon2020-5479-poster-session-1", "url": "https://pretalx.com/juliacon2020/talk/9BNNMD/", "title": "Poster Session 1", "subtitle": "", "track": null, "type": "Minisymposia", "language": "en", "abstract": "This is the first poster session.", "description": "- [\"Calling a parallel simulation code from Julia\" by Marc Fuentes](https://pretalx.com/juliacon2020/talk/review/N8LZSTA9TXYJ87F7YV8AMHCWJHLCDWXU)\n - [\"Fast global optimization on the GPU\" by David P. Sanders](https://pretalx.com/juliacon2020/talk/review/WWDA9KCPBAPBAYXBKTBP8DDKCXRTRSHP)\n - [\"Simple Layers for Species Distributions Modelling in Julia\" by Gabriel Dansereau](https://pretalx.com/juliacon2020/talk/review/7GFU7NSWMXTTEABSZKQZNCUD8K3SXHAT)\n - [\"TrackMatcher \u2013 A tool for finding intersections in trajectories\" by Peter Br\u00e4uer](https://pretalx.com/juliacon2020/talk/review/KMBEMX3UBTXDWWMLPWD7PTFEA3HKJHLQ)\n - [\"Automatic gradient and scale for high dimensional optimization\" by Tim Holy](https://pretalx.com/juliacon2020/talk/review/FNVSDEDMJ9VULYDA9PD73NKADEWNUSPP)\n - [\"Supercharging your data science workflows using GitHub Actions\" by Chidubem Iddianozie](https://pretalx.com/juliacon2020/talk/review/V8ZUTHUMARTWVH89XCT8EV3KFC7WXGRY)\n - [\"Visual Biology with Makie\" by Daniel Kool](https://pretalx.com/juliacon2020/talk/review/RGFUVV9RY393B8GAS7AXWLXYJKFCAPDY)\n - [\"Why we need reversible computing?\" by JinGuo Liu](https://pretalx.com/juliacon2020/talk/review/RFDXUXMBWB9PZLBMTXHWXYEQXDY9YPPR)\n - [\"What can imply behind a special weather profile\" by Shiqi XIAO](https://pretalx.com/juliacon2020/talk/review/XYNSHG3EPJ7UELFYQQZCKBRAS9V9CUSS)\n - [\"Taylor-Mode for Higher Order Automatic Differentiation\" by Jesse Bettencourt](https://pretalx.com/juliacon2020/talk/review/GQCSE3Z7RQ3NJCCAV3UCPQAPWWN9MMRH)\n - [\"Fantastic beasts and how to show them\" by Joris Kraak](https://pretalx.com/juliacon2020/talk/review/QFVVVEFEEBYTMVBUDCB7T9LSSDWE8LPH)\n - [\"Deferred Acceptance with Allocation Rules\" by Minyoung Rho](https://pretalx.com/juliacon2020/talk/review/EUAAJACBH38FSUGJYASEGZ9FCXNSU9RZ)\n - [\"Large-scale environmental flow simulations with Julia\" by Martijn Russcher (Deltares, Delft, the Netherlands) and Frank Platzek (Deltares, Delft, the Netherlands)](https://pretalx.com/juliacon2020/talk/review/SVBMCZWWHFS8GMFYUC7E3DQZ8XGMJPVL)\n - [\"Squaring the circle: polyhedral approximation of convex sets\" by Maxim Demenkov](https://pretalx.com/juliacon2020/talk/review/FQUTPSUBADDTFJWLLH3LWXM9FL7GFB9G)\n - [\"CombinatorFormatting.jl: Polymorphic, composable text formatting\" by Kusti Skyt\u00e9n](https://pretalx.com/juliacon2020/talk/review/YLGMVPYLRV83DJLERGZEAEEE8CK9TQBC)\n - [\"Vehicle's crew survivability using Julia\" by Irene Ndindabahizi](https://pretalx.com/juliacon2020/talk/review/QDZMDQ3WSPZVQCKWYJM9BS3FEYZ8DAU7)\n - [\"Julia for Good Old-Fashioned (Symbolic) Artificial Intelligence\" by Johann-Tobias Sch\u00e4g](https://pretalx.com/juliacon2020/talk/review/3YSBZLVYVSDU7HWF33SSLXFLMHGSABAL)\n - [\"Julia, From a Programming Language Theory Perspective\" by Harrison Grodin](https://pretalx.com/juliacon2020/talk/review/AVRZTRDN7LJWNUSXXHJTQXYLS3JWTDJE)\n - [\"BinaryTraits - traits made easy\" by Tom Kwong](https://pretalx.com/juliacon2020/talk/review/APB7LSLLDFYNXKBEDY8GNZFEA3FTXSJC)\n - [\"Extending Distributions with Expectations.jl\" by Arnav Sood](https://pretalx.com/juliacon2020/talk/review/G3BQVHGVA7VH8LUR7Y83QSTBWEZVTLM3)\n - [\"Machine Learning in Graphs\" by Ollin D. Langle-Chimal](https://pretalx.com/juliacon2020/talk/review/GVLJB7AZ9W3XDZ7UQQ9AUU8FVUJG9JF8)\n - [\"Parallel face recognition algorithms using Julia + CUDAnative.jl\" by Oscar A. Esquivel-Flores and \u00d3scar Alvarado](https://pretalx.com/juliacon2020/talk/review/KF93SREHJCZSZWYGR7ALLBMAUJYCHKJW)", "recording_license": "", "do_not_record": false, "persons": [{"code": "M9YRTS", "name": "JuliaCon Committee", "avatar": null, "biography": null, "public_name": "JuliaCon Committee", "guid": "f11578a3-77c6-5763-b765-4b879793570a", "url": "https://pretalx.com/juliacon2020/speaker/M9YRTS/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/9BNNMD/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/9BNNMD/", "attachments": []}, {"guid": "535f1479-a462-5322-9059-cb23490b9e5d", "code": "JEWE93", "id": 4817, "logo": null, "date": "2020-07-29T18:00:00+00:00", "start": "18:00", "duration": "00:30", "room": "Purple Track", "slug": "juliacon2020-4817-a-cloud-relational-database-system-for-knowledge-graphs-in-julia", "url": "https://pretalx.com/juliacon2020/talk/JEWE93/", "title": "A Cloud Relational Database System for Knowledge Graphs in Julia", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "We present our use of Julia to build a new kind of cloud-native relational database management system for knowledge graphs. We motivate the need for a database that excels in supporting workloads that mix data management, machine learning, and graph analytics.  We explain how Julia's unique features enabled us to build a high-performance database with less time and effort.  We also discuss how we contribute to and leverage the Julia ecosystem.", "description": "After a brief overview of knowledge graphs and the relational paradigm we describe the foundational design principles and implementation philosophy of the RelationalAI system:\n- Leverage: how we use cloud computers and modern compilers to reduce engineering effort\n- Brains and brawn: how we improve the asymptotic performance of our system with new algorithms that exploit problem structure \n- Aggressive simplification and consolidation: how we build on 5 core capabilities that compose elegantly in ways that cover a broad range of use cases.\n\nWe then review the first 3 of these 5 core capabilities (the query compiler, incremental maintenance, immutable structures) and touch on the remaining 2 (worst-case optimal joins and semantic optimization)", "recording_license": "", "do_not_record": false, "persons": [{"code": "SNBVBG", "name": "Molham Aref", "avatar": null, "biography": "Molham Aref is the Chief Executive Officer of RelationalAI. He has more than 28 years of experience in leading organisations that develop and implement high value machine learning and artificial intelligence solutions across various industries. Prior to RelationalAI he was CEO of LogicBlox and Predictix (now Infor), Optimi (now Ericsson), and co-founder of Brickstream (now FLIR). Molham held senior leadership positions at HNC Software (now FICO) and Retek (now Oracle).", "public_name": "Molham Aref", "guid": "d8d7a194-dea4-59e9-ad00-dc795a044e45", "url": "https://pretalx.com/juliacon2020/speaker/SNBVBG/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/JEWE93/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/JEWE93/", "attachments": []}, {"guid": "e5cdb935-3251-5e14-baf4-8a178be0bd8c", "code": "3NXGGJ", "id": 4706, "logo": null, "date": "2020-07-29T18:40:00+00:00", "start": "18:40", "duration": "00:10", "room": "Purple Track", "slug": "juliacon2020-4706-mpi-jl-julia-meets-classic-hpc", "url": "https://pretalx.com/juliacon2020/talk/3NXGGJ/", "title": "MPI.jl: Julia meets classic HPC", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "The MPI.jl package provides a standard Julia interface for working with the Message Passing Interface (MPI). In this talk I will introduce the package and illustrate its use with some examples, describe some of the unique challenges it faces, and detail plans for the future to make it easier to use.", "description": "Over 25 years old, MPI is the stalwart of high-performance computing, supported on everything from single machines to billion-dollar supercomputers. Despite its age, it supports several different modes of communication, and lots of engineering effort goes into optimizing bandwidth and reducing latency. However its use with a dynamic language such as Julia presents certain challenges.\n\nI\u2019ll start with some simple examples on how its single program, multiple data (SPMD) programming model can be used with Julia. Then I will discuss some implementation details, and highlight some of the unique challenges in supporting this package, from a lack of a standardised application binary interface (ABI), supporting optional CUDA-aware interfaces, and working with specific Julia features, like custom data types and reduction operators. Finally, I\u2019ll describe some additional features and future plans to improve the usability of this venerable library.", "recording_license": "", "do_not_record": false, "persons": [{"code": "PKSECG", "name": "Simon Byrne", "avatar": null, "biography": "Dr Simon Byrne is the lead software engineer on the [CliMA project](https://clima.caltech.edu/), and has been using and contributing to Julia since 2012.", "public_name": "Simon Byrne", "guid": "d4c0f28c-96b1-5d67-adf7-8a8731b84a95", "url": "https://pretalx.com/juliacon2020/speaker/PKSECG/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/3NXGGJ/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/3NXGGJ/", "attachments": []}, {"guid": "fbd8435e-eb57-5bc1-9da4-c9eb7ec911e8", "code": "JHCWQA", "id": 4734, "logo": null, "date": "2020-07-29T18:50:00+00:00", "start": "18:50", "duration": "00:10", "room": "Purple Track", "slug": "juliacon2020-4734-effectively-using-gr", "url": "https://pretalx.com/juliacon2020/talk/JHCWQA/", "title": "Effectively Using GR", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "GR is a plotting package for creating two- and three-dimensional graphics in Julia that provides basic MATLAB-like plotting functions for visualizing static or dynamic data. In this talk, the most important new features are presented, such as a new meta layer that allows the integration of GR in browser environments and GUI toolkits, or improved output functions for drawing paths and texts to make publication-quality plots.", "description": "GR is a plotting package for the creation of two- and three-dimensional graphics in Julia and other languages, offering basic MATLAB-like plotting functions to visualize static or dynamic data with minimal overhead. GR is now available for all major platforms and can be easily installed with pre-built binary packages.\n\nUsing quick practical examples, this talk is going to present the important improvements and features provided by the GR framework for high-performance graphics, in particular when being used for publication-quality Plots in interactive notebooks (Jupyter), development environments (Atom) or terminal programs (iTerm2). One of the often requested innovations in the current GR version is the integrated renderer for scientific formulas in LaTeX format.\n\nThe presentation also introduces a new meta layer, which provides an interface to interactive backends based on Qt5 or JavaScript. In this context, the improvements in the structure of the GR framework are presented with respect to a more efficient integration into existing plot environments (such as Plots.jl).", "recording_license": "", "do_not_record": false, "persons": [{"code": "UKMRMB", "name": "Josef Heinen", "avatar": null, "biography": "Josef Heinen is the head of the group \"Scientific IT\u2013Systems\" at the Peter Gr\u00fcnberg Institute / J\u00fclich Centre for Neutron Science, both institutes at Forschungszentrum J\u00fclich, a leading research centre in Germany. The design and development of visualization systems have been an essential part of his activities over the last twenty years. Most recently his team is engaged with the further development of a universal framework for cross-platform visualization applications (GR Framework).", "public_name": "Josef Heinen", "guid": "e91c87ac-86db-536d-a194-b7d2ff11133c", "url": "https://pretalx.com/juliacon2020/speaker/UKMRMB/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/JHCWQA/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/JHCWQA/", "attachments": []}, {"guid": "fbcbaac9-779f-501f-bacb-76894b62359e", "code": "X8LY73", "id": 3736, "logo": "https://pretalx.com/media/juliacon2020/images/X8LY73/DFTK_750x250_hCoUKwY.png", "date": "2020-07-29T19:00:00+00:00", "start": "19:00", "duration": "00:30", "room": "Purple Track", "slug": "juliacon2020-3736-dftk-a-julian-approach-for-simulating-electrons-in-solids", "url": "https://pretalx.com/juliacon2020/talk/X8LY73/", "title": "DFTK: A Julian approach for simulating electrons in solids", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Density-functional theory (DFT) is a widespread method for simulating the quantum-chemical behaviour of electrons in matter. This talk presents our package DFTK, which aims to provide a joint platform accessible to different scientific communities.", "description": "The quantum-chemical simulation of electronic structures is an established approach in materials reseach. The desire to tackle even bigger systems and more involved materials, however, keeps posing challenges with respect to physical models, reliablity and performance of methods such as DFT. With DFTK (https://dftk.org) we provide a Julia package for DFT, which aims to be fast enough for practical calculations, but also flexible to support toy problems for mathematical development in the field.", "recording_license": "", "do_not_record": false, "persons": [{"code": "DZ7WHZ", "name": "Michael F. Herbst", "avatar": null, "biography": "By training a chemist, who got more and more twisted towards the \"dark side\" of numerical analysis. Now working as a PostDoc at [CERMICS](https://cermics-lab.enpc.fr/), the Applied Math lab of Ecole des Ponts, Paris, developing a Julia code for mathematical research in quantum chemistry ([DFTK](https://dftk.org)).", "public_name": "Michael F. Herbst", "guid": "a5d6cd44-55b2-5f59-8f0c-f968c51cf3c2", "url": "https://pretalx.com/juliacon2020/speaker/DZ7WHZ/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/X8LY73/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/X8LY73/", "attachments": []}], "BoF": [{"guid": "4be12b21-345f-5433-8306-7dc62018e7a6", "code": "UD7AGC", "id": 4752, "logo": null, "date": "2020-07-29T16:10:00+00:00", "start": "16:10", "duration": "00:45", "room": "BoF", "slug": "juliacon2020-4752-fancy-array-indexing", "url": "https://pretalx.com/juliacon2020/talk/UD7AGC/", "title": "Fancy Array Indexing", "subtitle": "", "track": null, "type": "Birds of Feather", "language": "en", "abstract": "This is a BoF to talk about cool array types, such as:\n - AxisArrays\n - AxisRanges\n - IndexedDims\n - NamedDims\n - DimensionalData\n - JuMP's DenseAxisArray and SparseAxisArray\n - etc \n\nDo you have or love an array package with fancy indexing? Come chat about it.\nMaybe we will even be in a position to kill off some of them, and decide on a rightful successor to AxisArrays;\nor at least make a plan for what to decide in the next 12 months.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "ECUZBT", "name": "Frames Catherine White", "avatar": "https://pretalx.com/media/avatars/ECUZBT_cvD4sfq.webp", "biography": "I am a research software engineer at Invenia Labs (Cambridge, UK). I help researchers use machine learning, constrained optimization, and generally tools from the technical computing domain to optimize the power grid. I get to do all the best parts of being a software developer and all the best parts of being a researcher, its great. I am a long-term contributor to the open-source JuliaLang ecosystem. I am passionate about building the tools to do research better.", "public_name": "Frames Catherine White", "guid": "c06ebbf0-5d5c-5478-ba3d-40ca50fa2be6", "url": "https://pretalx.com/juliacon2020/speaker/ECUZBT/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/UD7AGC/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/UD7AGC/", "attachments": []}, {"guid": "0fa47038-19af-574e-9e15-97d5f0f7b3e6", "code": "F7DKF8", "id": 4751, "logo": null, "date": "2020-07-29T16:55:00+00:00", "start": "16:55", "duration": "00:45", "room": "BoF", "slug": "juliacon2020-4751-moving-forward-on-diversity-inclusion-in-the-julia-community", "url": "https://pretalx.com/juliacon2020/talk/F7DKF8/", "title": "Moving forward on diversity&inclusion in the Julia community", "subtitle": "", "track": null, "type": "Birds of Feather", "language": "en", "abstract": "For the past few years JuliaCon has hosted yearly discussions on how to improve diversity and inclusion in the Julia community as well as conducted a survey on how users and developers in the community identify. Many excellent ideas emerged from these sessions, including creating accessible material and targeted outreach and recruitment. In this session we will review our diversity goals, then form affinity groups to accomplish those goals using inspiration from previous brainstorming sessions.", "description": "This BoF (and all others) will be on Discord. Please join Discord by clicking on the following link: https://live.juliacon.org/discord/join . To join Discord, you will need the registration ID that you recieved when you signed up for the conference. You will find it in the confirmation email you get from Eventbrite. If you haven't yet registered, please do so immediately at https://juliacon.org/2020/tickets/", "recording_license": "", "do_not_record": false, "persons": [{"code": "UDMYCM", "name": "Huda Nassar", "avatar": "https://pretalx.com/media/avatars/UDMYCM_VH6LXdv.webp", "biography": "Huda Nassar is a postdoctoral fellow at Stanford University specializing in computational immunology. Her work is currently focused on early disease prediction and specifically building low-rank models for these problems. She is an enthusiastic Julia user and has built the MatrixNetworks.jl package which is a graph algorithms package that treats graphs as matrices and utilizes linear algebra concepts to solve many standard graph problems.", "public_name": "Huda Nassar", "guid": "5801d516-e8d1-55f0-bc4b-453c1b7fdcc2", "url": "https://pretalx.com/juliacon2020/speaker/UDMYCM/"}, {"code": "PUQAK9", "name": "August Guang", "avatar": null, "biography": "Genomics Data Scientist at Brown University, Providence, RI.", "public_name": "August Guang", "guid": "bf1a5e3c-90ff-570e-83a9-51e21790986d", "url": "https://pretalx.com/juliacon2020/speaker/PUQAK9/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/F7DKF8/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/F7DKF8/", "attachments": []}, {"guid": "6c6c3b8d-ef56-571e-8278-5a3143aa32f6", "code": "QF8BC7", "id": 4485, "logo": null, "date": "2020-07-29T18:00:00+00:00", "start": "18:00", "duration": "00:45", "room": "BoF", "slug": "juliacon2020-4485-project-binder-and-the-julia-community-planning-for-the-future", "url": "https://pretalx.com/juliacon2020/talk/QF8BC7/", "title": "Project Binder and the Julia Community: Planning for the Future", "subtitle": "", "track": null, "type": "Birds of Feather", "language": "en", "abstract": "This Birds of Feather session aims to facilitate structured discussion around some of the themes that arose from the mybinder.org user survey (https://mybinder.org). Specifically, which features or improvements would the Julia community like the Project Binder team (https://jupyter.org/binder) to pursue, what roadblocks do they foresee, and what \"on ramps\" are available for community members to become involved in the development and implementation processes.", "description": "The Binder Project is a collection of tools that rewards best practices in reproducible data science and provides an easy method of sharing computing environments with anyone via a single clickable link. The free and public Binder service, hosted at https://mybinder.org, serves around 100,000 launches per week from over 10,000 individual git repositories in a variety of programming languages, including Julia.\n\nBinder is a community-driven project, taking the lead from community-developed standards of reproducibility and input from its users via the mybinder.org user survey. The user survey was last conducted at the beginning of 2020 and a summary of the results, both general and specific to the Julia community, will be presented.\n\nThere are so many fantastic ideas and features the Binder project team (https://jupyterhub-team-compass.readthedocs.io/en/latest/team.html#binder-team) would like to develop but - like many open source projects - we face time restrictions, a low bus factor (https://en.wikipedia.org/wiki/Bus_factor), and often lack domain expertise when developing language-specific features.\n\nSarah Gibson would like to introduce the Binder Project to the Julia community as an opportunity to shape a tool that would be most useful to them and provide guidance on how to get started with contributing to or joining the project.", "recording_license": "", "do_not_record": false, "persons": [{"code": "8BQNLY", "name": "Sarah Gibson", "avatar": null, "biography": "Sarah Gibson is a Research Software Engineer at the Alan Turing Institute. She is passionate about best software practices and reproducible research and helps the open source community reach these gold-standards by contributing to The Turing Way (https://github.com/alan-turing-institute/the-turing-way) and operating mybinder.org (https://jupyter.org/binder)", "public_name": "Sarah Gibson", "guid": "699f0c12-fc2b-5cc4-9875-b3b7e586bfa7", "url": "https://pretalx.com/juliacon2020/speaker/8BQNLY/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/QF8BC7/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/QF8BC7/", "attachments": []}, {"guid": "91b201a7-ea34-52bb-ac94-e0a3a745c238", "code": "R7EPKS", "id": 4764, "logo": null, "date": "2020-07-29T18:45:00+00:00", "start": "18:45", "duration": "00:45", "room": "BoF", "slug": "juliacon2020-4764-probabilistic-programming-in-julia", "url": "https://pretalx.com/juliacon2020/talk/R7EPKS/", "title": "Probabilistic Programming in Julia", "subtitle": "", "track": null, "type": "Birds of Feather", "language": "en", "abstract": "Julia's PPL community is strong and growing. The various groups already have a strong professional relationship, but a BoF would help to formalize this somewhat, as well as being a good introduction for newcomers to the community. Join the BoF channel on Discord.", "description": "Possible topics (just a starting point really):\n- Standardizing output data structures for samplers\n- Making distributions extensible, and AD- and GPU-friendly\n- Interop across PPLs\n- Connecting with non-PPL libraries (e.g. Flux)\n- What existing (Python, etc) capabilities is Julia PPL missing?\n- What's next for Julia PPL?\n- What's next for PPL in general?", "recording_license": "", "do_not_record": false, "persons": [{"code": "A7PDM3", "name": "Chad Scherrer", "avatar": "https://pretalx.com/media/avatars/A7PDM3_wD3iuM1.webp", "biography": "Chad Scherrer is a Senior Research Scientist at [RelationalAI](https://www.relational.ai/).\n\nChad's work in probabilistic programming began in 2010, leading to the development of [Passage](https://cscherrer.github.io/pdf/Scherrer%20-%202012%20-%20Passage%20A%20Parallel%20Sampler%20Generator%20for%20Hierarchical%20Bayesian%20Modeling.pdf), a Haskell-based language to generate parallel C/OpenMP code for Gibbs sampling. Following this, he served as technical lead for the language evaluation team for the DARPA program \"Probabilistic Programming for Advancing Machine Learning\".", "public_name": "Chad Scherrer", "guid": "607e9ec8-c6c7-5736-8576-9fc1c85d0b8c", "url": "https://pretalx.com/juliacon2020/speaker/A7PDM3/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/R7EPKS/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/R7EPKS/", "attachments": []}, {"guid": "f2da5b66-1e9a-5bb1-9af9-5f34f10b6c64", "code": "RGXHMF", "id": 6178, "logo": null, "date": "2020-07-29T19:30:00+00:00", "start": "19:30", "duration": "00:45", "room": "BoF", "slug": "juliacon2020-6178-gather-town-social", "url": "https://pretalx.com/juliacon2020/talk/RGXHMF/", "title": "Gather Town Social", "subtitle": "", "track": null, "type": "Birds of Feather", "language": "en", "abstract": "A scheduled social on Gather Town will happen after the last talk finishes\nPlease join then (or indeed at any time) using https://gather.town/rBrwIUqeDkb5JTxu/juliacon2020", "description": "", "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/RGXHMF/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/RGXHMF/", "attachments": []}]}}, {"index": 7, "date": "2020-07-30", "day_start": "2020-07-30T04:00:00+00:00", "day_end": "2020-07-31T03:59:00+00:00", "rooms": {"Red Track": [{"guid": "506a5cf2-ad0c-5ca5-bab3-41d9cf420a7b", "code": "GX8QCX", "id": 4585, "logo": "https://pretalx.com/media/juliacon2020/submissions/GX8QCX/OpenStreetMapX_sims_CIfGBY0.png", "date": "2020-07-30T12:30:00+00:00", "start": "12:30", "duration": "00:10", "room": "Red Track", "slug": "juliacon2020-4585-complex-graphs-in-transportation-networks-with-openstreetmapx-jl", "url": "https://pretalx.com/juliacon2020/talk/GX8QCX/", "title": "Complex graphs in transportation networks with OpenStreetMapX.jl", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "We will show how to perform modeling and large scale simulation of complex graphs using the `OpenStreetMapX.jl` package.\nAny transportation network can be represented as a complex directed graph where vertices are spread an Euclidean space. The library provides a bridging functionality between real world spatial data available in the OpenStreetMap project and `LightGraphs.jl` and makes it possible to run real-life-sized experiment on transportation networks along with various visualizations.", "description": "A transportation system or even an entire city can be represented as a complex directed graph embedded in an Euclidean space. Such graph can model real world in 1:1 scale and be used to perform various numerical experiments. The [`OpenStreetMapX.jl`](https://github.com/pszufe/OpenStreetMapX.jl) package makes it possible to load the data from the [OpenStreetMap.org](https://www.openstreetmap.org/) project and processes such graphs with Julia. The package is using [LightGraphs.jl](https://github.com/JuliaGraphs/LightGraphs.jl) to represent the directed graph structure object along with meta related to spatial information.\n\nIn this talk the following areas will be discussed:\n- processing of [OpenStreetMap](https://www.openstreetmap.org/) data in Julia to obtain graph structures\n- visualizing graphs, maps and spatial data with [OpenStreetMapXPlot.jl](https://github.com/pszufe/OpenStreetMapXPlot.jl) (`GR`, `PyPlot` backends) as well as integration with [Leaflet](https://leafletjs.com/) via [folium](https://github.com/python-visualization/folium) and [PyCall](https://github.com/JuliaPy/PyCall.jl)\n- technical issues and tips for running massive scale agent based simulations  (e.g. with 1 million agents) of an entire city with real-world spatial data in 1:1 scale\n- various examples and scenarios of graph dynamics analysis with simulation models reflecting behavior of people and vehicles in virtual model of a city.\n\nThis project is co-financed by the Polish National Agency for Academic Exchange.", "recording_license": "", "do_not_record": false, "persons": [{"code": "DHRPEA", "name": "Bogumi\u0142 Kami\u0144ski", "avatar": "https://pretalx.com/media/avatars/DHRPEA_SrG879n.webp", "biography": "I am a researcher in the fields of operations research and computational social science.\nFor development work I mostly use the Julia language.\n\nYou can find more information about me and my work on my [personal website](http://bogumilkaminski.pl/about/) or [GitHub](https://github.com/bkamins).", "public_name": "Bogumi\u0142 Kami\u0144ski", "guid": "ff258f43-c537-5d16-9fda-25f0346ec9a9", "url": "https://pretalx.com/juliacon2020/speaker/DHRPEA/"}, {"code": "HNA89P", "name": "Przemys\u0142aw Szufel", "avatar": "https://pretalx.com/media/avatars/HNA89P_08jkBN6.webp", "biography": "Przemys\u0142aw Szufel is an Assistant Professor in Decision Support and Analysis Unit at Warsaw School of Economics, an Adjunct Professor in The Cybersecurity Research Lab, Ryerson University, Toronto and a member of Computational Methods in Industrial Mathematics Lab in Fields Institute, Toronto. He is also a Management Committee member of the European Social Simulation Association.\n\nPrzemys\u0142aw Szufel main research focus is in applying advanced analytics methods, and in particular, machine learning, simulation and optimization in modelling and automating decision business processes.  He is a co-author of \"Julia 1.0 Programming Cookbook: Over 100 Numerical and Distributed Computing Recipes for Your Daily Data Science Workflow\" that has recently been translated by O'Reilly to Japanese.    He is a co-author of over 30 publications, including handbooks and journal papers, in the area of applying advanced analytics, machine learning and simulation methods to making optimal business decisions. \nPrzemys\u0142aw Szufel has delivered several workshops showing advanced analytics and simulation in Julia including Canada (University of Toronto, Ryerson University), Ireland (University College Dublin), Sweden (Stockholm University) and Central Bank of Poland and top consulting copmpanies. He is also a regular presenter for Julia hands-on-workshop at the Supercomputing Frontiers Europe conference. He also teaches Julia programming and advanced analytics PhD course in the Information Technology Department at Salerno University and he teaches several post graduate and PhD simulation and data science courses at Warsaw School of Economics, Poland.\nHe has also been working as an auditor for venture capital companies - he specializes in assessing technology of data-oriented startups. Dr Przemy\u0142aw Szufel has been also co-managing SilverDecisions.pl project (that aims for representing and supporting business decisions and was part of a larger grant financed by the H2020 European Union grant), which has been elected by the European Commission to the Innovation Radar programme grouping the best European innovations financed by the EU funds.", "public_name": "Przemys\u0142aw Szufel", "guid": "3d650c4d-9c55-5bb6-badf-a813a4b949f4", "url": "https://pretalx.com/juliacon2020/speaker/HNA89P/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/GX8QCX/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/GX8QCX/", "attachments": []}, {"guid": "bd3d051c-b955-5ccc-a9b4-b9e1e5307d3d", "code": "GR9TZH", "id": 4781, "logo": null, "date": "2020-07-30T12:40:00+00:00", "start": "12:40", "duration": "00:10", "room": "Red Track", "slug": "juliacon2020-4781-geointerface-bringing-geospatial-packages-together", "url": "https://pretalx.com/juliacon2020/talk/GR9TZH/", "title": "GeoInterface: bringing geospatial packages together", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "The GeoInterface, a package for interoperability of geospatial geometries, has been completely redesigned. Formerly it forced geometries to subtype abstract interface types. Now it is much more flexible, allowing packages to hook in using traits, and support methods based on the Simple Features standard. This talk will show why this is important for the JuliaGeo ecosystem, and what it enables you to do.", "description": "In the Julia documentation, the [example of `Point{T}`](https://docs.julialang.org/en/v1.3/manual/types/#Parametric-Composite-Types-1) is used to introduce parametric types. It is easy to implement your own point type, and many packages have done so. For users, having to convert their points from package A to package B can be bothersome. Besides points, the same applies to other geometries such as lines and polygons, which are commonly used in geospatial workflows. Just agreeing on a single set of types for all uses is unlikely, since the diversity stems from different needs. Some may want to match a particular file format, or wrap pointers through a C API, such as GDAL.\n\nHence, to embrace the diversity and allow smooth workflows involving different geometry representations, we redesigned [GeoInterface.jl](https://github.com/JuliaGeo/GeoInterfaceRFC.jl). It allows you to efficiently convert between any sets of types that implement the interface, without having to know about or depend on the other package. The redesign incorporates many ideas from the Simple Features standard, and was inspired by the success of the [Tables.jl](https://github.com/JuliaData/Tables.jl) interface. Interestingly, we can show examples how these two interfaces can complement each other for tabular data with geometry columns, as seen in [Shapefile.jl](https://github.com/JuliaGeo/Shapefile.jl) and [GeoJSONTables.jl](https://github.com/visr/GeoJSONTables.jl).", "recording_license": "", "do_not_record": false, "persons": [{"code": "DL3SFL", "name": "Martijn Visser", "avatar": "https://pretalx.com/media/avatars/DL3SFL_FfasYRK.webp", "biography": "Martijn Visser is a hydrologist working at the Deltares applied research institute in the Netherlands. He has been an active developer of the JuliaGeo community effort since the beginning, and wants to make Julia a great choice for geospatial workflows.", "public_name": "Martijn Visser", "guid": "dcbd6273-b46d-568d-a3f1-972bf26b0413", "url": "https://pretalx.com/juliacon2020/speaker/DL3SFL/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/GR9TZH/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/GR9TZH/", "attachments": []}, {"guid": "8ade1afc-2921-5c6a-8ab9-5a5b6f537c1c", "code": "GDCEYU", "id": 4801, "logo": null, "date": "2020-07-30T12:50:00+00:00", "start": "12:50", "duration": "00:10", "room": "Red Track", "slug": "juliacon2020-4801-handling-large-geospatial-raster-data-with-the-earth-system-data", "url": "https://pretalx.com/juliacon2020/talk/GDCEYU/", "title": "Handling large geospatial raster data with the Earth System Data", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Currently, satellites generate data of the Earth in an unprecedented\namount.\nThese datasets need to be processed in a fast and user friendly way to\nderive comprehensive information. This talk shows how we use  the\n[Earth System Data\nLab](https://github.com/esa-esdl/ESDL.jl) to handle Sentinel-1 time\nseries for the detection of deforestation.", "description": "The EarthSystemDataLab.jl allows you to handle geospatial raster data\neasily and fast. You can load  data which is too large for your RAM\ndirectly from disk in small enough chunks so that it can be\nparalllelized without you thinking too much about it.\nThe EarthSystemDataLab establishs a data cube workflow, where low-\ndimensional functions are applied  to higher dimensional cubes by\nfunctional extension. This means, that user defined functions can act\nalong a particular subset of the input dimensions and loop then across\nall other input dimensions to get a new data cube which has the\nunspecified dimensions as well as the output dimensions of the user\ndefined function.\nWe are going to show how we used the EarthSystemDataLab.jl package for\nthe time series analysis of Sentinel-1 data.", "recording_license": "", "do_not_record": false, "persons": [{"code": "3YRKPG", "name": "Felix Cremer", "avatar": null, "biography": "received his diploma in mathematics\nfrom the University of Leipzig in 2014. He is a PhD student at the\nFriedrich-Schiller University Jena where he works on the analysis\nof hyper-temporal SAR time series from Sentinel-1", "public_name": "Felix Cremer", "guid": "95adc564-ebf6-505b-845c-5f01fc2d648e", "url": "https://pretalx.com/juliacon2020/speaker/3YRKPG/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/GDCEYU/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/GDCEYU/", "attachments": []}, {"guid": "7cf5facf-de43-51cf-968a-65391ca8c960", "code": "YVRWMA", "id": 4488, "logo": null, "date": "2020-07-30T13:00:00+00:00", "start": "13:00", "duration": "00:30", "room": "Red Track", "slug": "juliacon2020-4488-networkdynamics-jl-modeling-dynamical-systems-on-networks", "url": "https://pretalx.com/juliacon2020/talk/YVRWMA/", "title": "NetworkDynamics.jl - Modeling dynamical systems on networks", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "NetworkDynamics.jl is a tool for dynamical modeling and analysis of large, inhomogeneous, networked systems. It provides a convenient interface between LightGraphs.jl and DifferentialEquations.jl.\n\nWe introduce the basic syntax of our package and showcase applications ranging from neurodynamics to power systems. We conclude with a brief overview of advanced features such as multi-threading, support for SDEs and integration with the machine learning environment DiffEqFlux.jl.", "description": "NetworkDynamics.jl is developed at Potsdam Insitut for Climate Impact Research (PIK) to facilitate modeling and analysis of large, inhomogeneous, networked dynamical systems. In such systems local dynamics as well as interactions can be described by differential and/or algebraic equations. ND.jl\n serves as the technical core of new efforts to develop state of the art power system models in Julia (PowerDynamics.jl).\n\nThe aim of this package is to provide the user with a convenient interface that allows them to focus on building models rather than to worry about numerical intricacies. This is achieved by combining the network package LightGraphs.jl with the fully-featured solver suite DifferentialEquations.jl. \n\nJulia turned out to be the perfect environment for our goal since it can be used like a scripting language for protoyping while matching the speed of FORTRAN and C when writing optimized code. \n\nIn this talk we introduce the basic constructors of NetworkDynamics.jl and showcase potential applications ranging from neurodynamics to power systems. We conclude with a brief overview of advanced features such as multi-threading, support for stochastic differential equations and integration with the machine learning environment DiffEqFlux.jl.", "recording_license": "", "do_not_record": false, "persons": [{"code": "3ZHWSX", "name": "Michael Lindner", "avatar": null, "biography": "Hi, my name is Michael Lindner. Currently, I am working on my PhD project on \"Exploring network dynamics with machine learning\". I am a member of the non-linear dynamics and control group at TU Berlin and of the complex energy networks (COEN) group at PIK.", "public_name": "Michael Lindner", "guid": "78309acc-dcc6-5dad-9c31-dd8834d0c0c1", "url": "https://pretalx.com/juliacon2020/speaker/3ZHWSX/"}, {"code": "BC8CK8", "name": "Anton Plietzsch", "avatar": null, "biography": "I studied Physics at Humboldt-University Berlin and I am currently doing my PhD at the Potsdam Institute for Climate Impact Research. My research is focussed on the modelling and analysis of power grids with fluctuating power infeed.", "public_name": "Anton Plietzsch", "guid": "ed4ed21d-d9a8-5ce8-aee3-b81de9236339", "url": "https://pretalx.com/juliacon2020/speaker/BC8CK8/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/YVRWMA/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/YVRWMA/", "attachments": []}, {"guid": "ded4cf09-b3f2-5b43-b217-4a155292b3cd", "code": "9A8DCP", "id": 3748, "logo": "https://pretalx.com/media/juliacon2020/images/9A8DCP/logo_kafyqWH.png", "date": "2020-07-30T13:30:00+00:00", "start": "13:30", "duration": "00:30", "room": "Red Track", "slug": "juliacon2020-3748-geometricflux-jl-geometric-deep-learning-on-flux", "url": "https://pretalx.com/juliacon2020/talk/9A8DCP/", "title": "GeometricFlux.jl: Geometric Deep Learning on Flux", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "GeometricFlux, a Julia package for geometric deep learning on graph.  GeometricFlux relies on Flux/Zygote framework, integrates with JuliaGraph ecosystem and supports CUDA.", "description": "Geometric\u00a0deep learning\u00a0plays\u00a0a role\u00a0in\u00a0modeling\u00a0non-Euclidean data\u00a0with graph structure.\u00a0I introduce GeometricFlux, a Julia package for geometric deep learning on graph. GeometricFlux relies on Zygote as automatic differentiation engine, accepts graph data structure provided by JuliaGraph. GeometricFlux layers are compatible with Flux layers and supported by CuArrays. It will be a competitive platform against other framework.", "recording_license": "", "do_not_record": false, "persons": [{"code": "HAWZZR", "name": "Yueh-Hua Tu", "avatar": "https://pretalx.com/media/avatars/HAWZZR_VGu7jKb.webp", "biography": "I am doing my bioinformatics PhD project with machine learning/deep learning approach in Academia sinica, Taiwan. Host and founder of Julia Taiwan community.", "public_name": "Yueh-Hua Tu", "guid": "e09aae7e-aea9-510f-94e7-099773a41bb0", "url": "https://pretalx.com/juliacon2020/speaker/HAWZZR/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/9A8DCP/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/9A8DCP/", "attachments": []}, {"guid": "f6db394a-270c-5463-871b-39cbc60cee13", "code": "MASLPF", "id": 4627, "logo": null, "date": "2020-07-30T14:20:00+00:00", "start": "14:20", "duration": "00:45", "room": "Red Track", "slug": "juliacon2020-4627-the-state-of-julia", "url": "https://pretalx.com/juliacon2020/talk/MASLPF/", "title": "The State of Julia", "subtitle": "", "track": null, "type": "Keynote", "language": "en", "abstract": "We take stock of the Julia and its ecosystem. The releases since 1.0 have been less major and non-breaking\u2014which has been a relief\u2014but nevertheless, a significant number of major new functionality has been added. We'll highlight some of the biggest developments in the language (can anyone say \"multithreading\"?), infrastructure (BB, Pkg3, Artifacts), and ecosystem (the Dataverse, DiffEqs, differentiable programming) and beyond.  And finally, we look ahead to Julia 2.0.", "description": "In addition to taking stock of the language and ecosystem, we'll review the annual developer survey. That accounts for some portion of the 45 minutes, although it would also be separable if that's easier for scheduling.", "recording_license": "", "do_not_record": false, "persons": [{"code": "9NNRE7", "name": "Stefan Karpinski", "avatar": "https://pretalx.com/media/avatars/9NNRE7_UASzy0Z.webp", "biography": "Stefan is a co-creator of Julia and a co-founder of Julia Computing. He has previously worked as a software engineer and data scientist at Etsy, Akamai and Citrix Online. In addition to running Julia Computing, he has a part-time appointment as a Research Engineer at New York University.", "public_name": "Stefan Karpinski", "guid": "028e4611-bde2-5948-8dc0-e5d7b301e181", "url": "https://pretalx.com/juliacon2020/speaker/9NNRE7/"}, {"code": "JWDSCE", "name": "Jeff Bezanson", "avatar": "https://pretalx.com/media/avatars/JWDSCE_L1lwVeY.webp", "biography": null, "public_name": "Jeff Bezanson", "guid": "0f4f7e19-c31f-5938-b983-e502161711f2", "url": "https://pretalx.com/juliacon2020/speaker/JWDSCE/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/MASLPF/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/MASLPF/", "attachments": []}, {"guid": "d650042a-9d07-5715-9c06-17ecd27673c4", "code": "7RL9UQ", "id": 4698, "logo": null, "date": "2020-07-30T15:10:00+00:00", "start": "15:10", "duration": "00:45", "room": "Red Track", "slug": "juliacon2020-4698-keynote-juan-pablo-vielma", "url": "https://pretalx.com/juliacon2020/talk/7RL9UQ/", "title": "Keynote: Juan Pablo Vielma", "subtitle": "", "track": null, "type": "Keynote", "language": "en", "abstract": "TBA", "description": "TBA", "recording_license": "", "do_not_record": false, "persons": [{"code": "PFCA7P", "name": "Juan Pablo Vielma", "avatar": null, "biography": ".", "public_name": "Juan Pablo Vielma", "guid": "2fcfabe4-2e3d-59b7-a323-7f426f6aee70", "url": "https://pretalx.com/juliacon2020/speaker/PFCA7P/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/7RL9UQ/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/7RL9UQ/", "attachments": []}, {"guid": "bc526f8b-ee92-5134-945a-c57dc1dfabdf", "code": "XGHSWW", "id": 4630, "logo": null, "date": "2020-07-30T16:10:00+00:00", "start": "16:10", "duration": "00:30", "room": "Red Track", "slug": "juliacon2020-4630-julia-and-c-a-technical-overview-of-cxxwrap-jl", "url": "https://pretalx.com/juliacon2020/talk/XGHSWW/", "title": "Julia and C++: a technical overview of CxxWrap.jl", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "[CxxWrap.jl](https://github.com/JuliaInterop/CxxWrap.jl) simplifies the creation of Julia packages that rely on C++ libraries for part of their functionality. Unlike [Cxx.jl](https://github.com/JuliaInterop/Cxx.jl), the focus is on writing the wrapper code in C++, compiling it into a small shared library, inspired by the approach of Boost.Python for Python.", "description": "Since the previous presentation in 2016, the package has evolved quite a bit, so after a brief recap of the basic functionality the talk will focus on some of the new design choices and their implementation, which will hopefully clarify some aspects that are not easy to convey in documentation.\n\nWe will start with a short introduction, showing the basic principle of using `ccall` on a C++ function pointer to make calling any kind of C++ function possible. From there, we will explain the mapping of argument and return types, especially focusing on the recent changes for integer number types. Since CxxWrap v0.9 there is also a much more rigorous treatment of pointers, references and values, which all have a distinct type now. We will explain some of the design choices behind these new types, as well as the new `@cxxdereference` macro that simplifies writing Julia functions acting on CxxWrap-generated types.\n\nWe end the presentation with a discussion of the new C++ standard library functionality and show how to extend this for as yet unsupported container types.\n\nSlides are available at https://barche.github.io/juliacon2020-cxxwrap-talk/", "recording_license": "", "do_not_record": false, "persons": [{"code": "H3TNC7", "name": "Bart Janssens", "avatar": "https://pretalx.com/media/avatars/H3TNC7_3ho4OXK.webp", "biography": "Bart Janssens is a military associate professor at the mechanics department of the [Royal Military Academy](https://www.rma.ac.be), with a passion for computer graphics, high performance computing and fluid mechanics. For performance reasons, he used C++ until being introduced to Julia. His current work focuses on making scientific C++ libraries such as Trilinos interoperate with Julia, with the ultimate objective of developing CFD code for Julia.", "public_name": "Bart Janssens", "guid": "47db3dd0-6dae-543b-8d77-fa09147f7952", "url": "https://pretalx.com/juliacon2020/speaker/H3TNC7/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/XGHSWW/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/XGHSWW/", "attachments": []}, {"guid": "61ab6f31-a532-5f0b-88ea-af1bcff24e7c", "code": "QHRQVF", "id": 4631, "logo": null, "date": "2020-07-30T16:40:00+00:00", "start": "16:40", "duration": "00:30", "room": "Red Track", "slug": "juliacon2020-4631-advanced-metaprogramming-tools", "url": "https://pretalx.com/juliacon2020/talk/QHRQVF/", "title": "Advanced Metaprogramming Tools", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Julia provides an intimidating array of ways to write programs that write programs. There are macros, generated functions, custom compiler passes, ASTs, IRs, DSLs and backends galore. This talk is a deep-dive into all of these tools that will hopefully clarify how and when you'd want to use them, with examples from advanced projects across the Julia ecosystem.", "description": "This talk will try to clarify the relationship between Julia's many metaprogramming tools, showing how you should (and shouldn't) use Julia's metaprogramming to create DSLs, build program transformations like differentiation, SPMD or batching, or apply domain-specific optimisations in areas like differential equations or probabilistic programming. We'll also clarify the relationship Julia's tools have to advanced programming tools from other language communities, like staged programming and algebraic effect handlers.", "recording_license": "", "do_not_record": false, "persons": [{"code": "M8VL8C", "name": "Mike Innes", "avatar": null, "biography": "Mike is a software engineer at Julia Computing, where he works on Julia's machine learning stack.", "public_name": "Mike Innes", "guid": "ecb44a1b-2991-55db-a583-134171b47386", "url": "https://pretalx.com/juliacon2020/speaker/M8VL8C/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/QHRQVF/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/QHRQVF/", "attachments": []}, {"guid": "74788b25-52e6-5f19-9ad4-00835ddf23fe", "code": "KKUCBL", "id": 4777, "logo": null, "date": "2020-07-30T17:10:00+00:00", "start": "17:10", "duration": "00:10", "room": "Red Track", "slug": "juliacon2020-4777-beyond-overdubbing-building-a-generic-ir-tracker", "url": "https://pretalx.com/juliacon2020/talk/KKUCBL/", "title": "Beyond Overdubbing: Building a Generic IR Tracker", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "A case of IR-based metaprogramming, going beyond just nonstandard function execution.", "description": "This talk introduces the design and development goals of [IRTracker](https://github.com/TuringLang/IRTracker.jl), a library for dynamic and recursive tracking of Julia\u2019s intermediate representation (IR) during the execution of any Julia function.  I will describe the relative merits of [Cassette](https://github.com/jrevels/Cassette.jl) and [IRTools](https://github.com/MikeInnes/IRTools.jl) for implementing such a project, and discuss some insights about the current metaprogramming infrastructure.  Then, I\u2019ll provide an overview of the resulting package, which is designed with the application to probabilistic programming in mind (specifically, its use within [Turing](https://github.com/TuringLang/Turing.jl) for automatic computation of Gibbs conditionals).\n\nThe code transformation mechanism is currently specialized to insert the necessary tracking statements, but it can be easily abstracted out.  This could serve as the basis for the implementation of IR transformations for other abstract interpretation mechanisms, especially such which need access not only to function calls, but also to branches performed during execution.", "recording_license": "", "do_not_record": false, "persons": [{"code": "FL9ZYS", "name": "Philipp Gabler", "avatar": "https://pretalx.com/media/avatars/FL9ZYS_INBVrYl.webp", "biography": "- Student at Graz University of Technology\n- Member of [TuringLang](https://github.com/TuringLang)", "public_name": "Philipp Gabler", "guid": "39aec85e-2362-5c8c-8fd5-c5a0bce8fd84", "url": "https://pretalx.com/juliacon2020/speaker/FL9ZYS/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/KKUCBL/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/KKUCBL/", "attachments": []}, {"guid": "912ba53c-ccda-5fc3-9d3a-b41c68bb63cb", "code": "PHGCKB", "id": 4740, "logo": "https://pretalx.com/media/juliacon2020/submissions/PHGCKB/JuliaConnectoRLogo_EArVV6P.png", "date": "2020-07-30T17:20:00+00:00", "start": "17:20", "duration": "00:10", "room": "Red Track", "slug": "juliacon2020-4740-integrating-julia-in-r-with-the-juliaconnector", "url": "https://pretalx.com/juliacon2020/talk/PHGCKB/", "title": "Integrating Julia in R with the JuliaConnectoR", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Despite the advantages of Julia, there are some hurdles that prevent R users from making the leap and switch to Julia. To bring Julia closer to R, we developed the new [\"JuliaConnectoR\" R package](https://github.com/stefan-m-lenz/JuliaConnectoR) that conveniently integrates Julia in R, allowing R users to harness the power of Julia, and making it easier for Julia developers to share features of their Julia code with R users.", "description": "R and Julia are two languages that complement each other very well: R has many convenient features from a huge number of packages. Julia brings new possibilities for writing fast code and offers new and innovative packages. Integrating functionality of Julia in R is especially promising due to the many commonalities of Julia and R. We take advantage of these in the design of our \"JuliaConnectoR\" R package (https://github.com/stefan-m-lenz/JuliaConnectoR), which aims at a tight and stable integration of Julia in R.\n\nThe JuliaConnectoR can import Julia functions, also from whole packages, and make them directly callable in R. Values and data structures are translated between the two languages. Julia objects can be fully translated to R objects or accessed via proxy object that behave like R objects. In addition to directly using features from Julia packages, this also greatly simplifies writing own Julia code for optimizing time critical portions of R code compared to writing C extensions in R.\n\nThe possibility to pass R functions as arguments to Julia functions makes the JuliaConnectoR a truly functional interface. Such callback functions can, e. g., be used to interactively display the learning process of a neural network in R while it is trained in Julia. This sets the JuliaConnectoR apart from the other R packages for integrating Julia in R, \u201cXRJulia\u201d and \u201cJuliaCall\u201d. Additionally, the JuliaConnectoR offers features that make the interactive use more convenient and stable, such as the redirection of standard (error) output and the ability to interrupt running calls to Julia. These unique features become possible with an optimized communication protocol, based on TCP, which also allows a highly efficient data transfer by leveraging the similarities in the binary representation of values in Julia and R.\n\nWe show the implementation of the package and demonstrate the features of the JuliaConnectoR with several examples, including deep learning with the Julia package \u201cFlux\u201d in R and analysing large datasets via \u201cJuliaDB\u201d.", "recording_license": "", "do_not_record": false, "persons": [{"code": "FVK8GZ", "name": "Stefan Lenz", "avatar": "https://pretalx.com/media/avatars/FVK8GZ_eHs0wIa.webp", "biography": "Researcher on deep learning with medical data at the [Institute of Medical Biometry and Statistics](https://www.imbi.uni-freiburg.de/?set_language=en) at the University Medical Center in Freiburg im Breisgau (Germany). After studying mathematics, I have now worked for six years in the fields of medical informatics and statistics. My special interests are programming and software design.", "public_name": "Stefan Lenz", "guid": "43a69c4f-c12a-5063-87ac-8e50d4812c6e", "url": "https://pretalx.com/juliacon2020/speaker/FVK8GZ/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/PHGCKB/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/PHGCKB/", "attachments": []}, {"guid": "92198d8a-894b-5df9-a534-f538b9cd9030", "code": "9XN9AW", "id": 5581, "logo": null, "date": "2020-07-30T17:30:00+00:00", "start": "17:30", "duration": "00:05", "room": "Red Track", "slug": "juliacon2020-5581-zapata", "url": "https://pretalx.com/juliacon2020/talk/9XN9AW/", "title": "Zapata", "subtitle": "", "track": null, "type": "Sponsor Talk", "language": "en", "abstract": "Some words from our sponsor", "description": "", "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/9XN9AW/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/9XN9AW/", "attachments": []}, {"guid": "349e3ac5-22bc-542a-a7f4-124819102d62", "code": "M98VVM", "id": 4735, "logo": null, "date": "2020-07-30T18:00:00+00:00", "start": "18:00", "duration": "00:30", "room": "Red Track", "slug": "juliacon2020-4735-solving-nonlinear-multi-physics-on-gpu-supercomputers-with-julia", "url": "https://pretalx.com/juliacon2020/talk/M98VVM/", "title": "Solving Nonlinear Multi-Physics on GPU Supercomputers with Julia", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "We present a self-contained approach for the development of massively scalable multi-GPU solvers for coupled nonlinear systems of partial differential equations (PDEs) in Julia. The approach encompasses numerics, implementation and performance evaluation. We showcase several 2-D and 3-D Multi-GPU PDE solvers as, e.g., a solver for spontaneous nonlinear porous flow localization in 3-D which scales nearly ideally on thousands of GPUs.", "description": "The widely applicable approach we present relies on the usage of a powerful **stencil-based iterative method** which enables to efficiently converge to the time-dependent implicit solution for strongly nonlinear problems. The method optimally suits both shared and distributed memory parallelism. \n\nThe **implementation approach** enables a straightforward development of a single Julia code that can be readily deployed on a single CPU thread or on thousands of GPUs/CPUs. We have instantiated the approach in the Julia packages `ParallelStencil` and `ImplicitGlobalGrid`. `ParallelStencil` empowers domain scientists to write architecture-agnostic high-level code for parallel high-performance stencil computations on GPUs and CPUs. `ParallelStencil` uses `CUDAnative` for computations on GPUs and `Base.Threads` for computations on CPUs. `ImplicitGlobalGrid` renders the distributed parallelization of stencil-based GPU and CPU applications on a regular (staggered) grid nearly trivial. `ImplicitGlobalGrid` relies on the Julia MPI wrapper, `MPI.jl`, to perform halo updates close to hardware limit and leverages CUDA-aware MPI for GPU applications. We have designed both `ParallelStencil` and `ImplicitGlobalGrid` for simplest possible usage by domain-scientists, rendering fast and interactive development of massively scalable high performance Multi-GPU applications readily accessible to them.\n\nWe conduct the **performance evaluation** with a simple metric for iterative PDE solvers. The metric measures effective memory throughput and is complementary to traditional metrics.\n\nWe demonstrate the broad applicability of our approach **showcasing multiple 2-D and 3-D Multi-GPU PDE solvers**, as, for instance, a solver for spontaneous nonlinear multi-physics porous flow localization in 3-D. As reference, we ported the latter solver from MPI+CUDA C to Julia and it achieves 95% of the performance of the original solver and a nearly ideal parallel efficiency on thousands of NVIDIA Tesla P100 GPUs on the Piz Daint supercomputer at the Swiss National Supercomputing Centre, CSCS. We evaluate the presented solvers' performance and scalability on Piz Daint. The majority of the presented solvers are being made publicly available as part of the documentation of the packages `ParallelStencil` and `ImplicitGlobalGrid`.\n\nCo-authors: Ludovic R\u00e4ss\u00b9 \u00b2, Grzegorz Kwasniewski\u00b9, Benjamin Malvoisin\u00b3, Yury Podladchikov\u00b3\n\n\u00b9 ETH Zurich | \u00b2 Stanford University | \u00b3 University of Lausanne", "recording_license": "", "do_not_record": false, "persons": [{"code": "QTKXPY", "name": "Samuel Omlin", "avatar": "https://pretalx.com/media/avatars/QTKXPY_Th2goew.webp", "biography": "Computational Scientist and responsible for Julia Computing at the Swiss National Supercomputing Centre (CSCS), ETH Zurich", "public_name": "Samuel Omlin", "guid": "195c4c1e-6421-5b98-9109-0e493bd51ced", "url": "https://pretalx.com/juliacon2020/speaker/QTKXPY/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/M98VVM/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/M98VVM/", "attachments": []}, {"guid": "ea602949-5f18-5add-86c9-532efeb84563", "code": "DVSD7Q", "id": 4384, "logo": null, "date": "2020-07-30T18:30:00+00:00", "start": "18:30", "duration": "00:30", "room": "Red Track", "slug": "juliacon2020-4384-solving-partial-differential-equations-in-julia-with-gridap-jl", "url": "https://pretalx.com/juliacon2020/talk/DVSD7Q/", "title": "Solving partial differential equations in Julia with Gridap.jl", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "We present `Gridap`, a novel finite element framework written in Julia. In the talk, we will show the software design behind the library and its application to solve a collection of well-known partial differential equations including linear, non-linear, single-field and multi-physics problems. To this end, we will consider different discretization techniques provided by the package such as continuous and discontinuous Galerkin methods with Lagrangian and Raviart-Thomas elements.", "description": "The design of `Gridap` is quite unique for a finite element software package since it is not a simple translation of an existing C/C++ or FORTRAN code. In contrast, the library makes use of lazy-data structures that represent objects (e.g., elemental matrices and vectors) on the entire computational domain. This allows us the library developers to hide assembly loops and other core computations from the user-code leading to a very compact, user-friendly, syntax.  `Gridap` is designed both for research and teaching purposes.  It is a registered Julia package distributed under a MIT license and it is available at Github (https://github.com/gridap/Gridap.jl) .", "recording_license": "", "do_not_record": false, "persons": [{"code": "TJKSVY", "name": "Francesc Verdugo", "avatar": "https://pretalx.com/media/avatars/TJKSVY_ZrKtbXT.webp", "biography": "Francesc Verdugo, PhD, is Assistant Research Professor at the International Center for Numerical Methods in Engineering (CIMNE), Barcelona, Spain, where he collaborates at the \"Large-Scale Scientific Computing\" group.  His main research interest is the development of advanced finite element techniques such as embedded finite element methods able to exploit the power of modern distributed-memory supercomputers.", "public_name": "Francesc Verdugo", "guid": "915086f4-fa34-55a4-8914-7249e82243fa", "url": "https://pretalx.com/juliacon2020/speaker/TJKSVY/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/DVSD7Q/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/DVSD7Q/", "attachments": [{"title": "The Stokes lid-driven cavity problem solved with Gridap.", "url": "/media/juliacon2020/submissions/DVSD7Q/resources/stokes_gvClGzz.jl", "type": "related"}]}, {"guid": "adbb4c1b-e73e-5d62-9e0f-04b00a0cc588", "code": "HJZXMX", "id": 4383, "logo": null, "date": "2020-07-30T19:00:00+00:00", "start": "19:00", "duration": "00:30", "room": "Red Track", "slug": "juliacon2020-4383-inference-of-bifurcations-with-differentiable-continuation", "url": "https://pretalx.com/juliacon2020/talk/HJZXMX/", "title": "Inference of Bifurcations with Differentiable Continuation", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "In this talk I will demonstrate a gradient-based semi-supervised approach for matching target codimension one bifurcations with parameterised differential equation models. This work has been applied in synthetic biology settings, where experiments generate qualitative observations: locations of fixed points, limit cycles and bistability. Future outlooks include a view towards designing patterns and limit cycles in partial differential equations.", "description": "This project uses functionality of parameter continuation library BifurcationKit.jl to work with automatic differentiation library Zygote.jl. This talk would be interesting to anyone who infers parameters of differential equation models, users of DifferentialEquations.jl, Flux.jl and FluxDiffEq.jl. Repository: github.com/gszep/FluxContinuation", "recording_license": "", "do_not_record": false, "persons": [{"code": "ZBMJRN", "name": "Grisha Szep", "avatar": "https://pretalx.com/media/avatars/ZBMJRN_d7vIywh.webp", "biography": "Together with Station B at Microsoft Research Cambridge and the Randall Division of Cell and Molecular Biophysics at King's College London we aim to create tools that can make biochemical manufacturing more efficient, with efforts towards combating Eroom's law of drug discovery and addressing the reproducibility crisis in biotechnology. My current research focus is the development of novel parameter inference procedures for differential equation models where data had been obtained by flow cytometry or fluorescence microscopy.", "public_name": "Grisha Szep", "guid": "f25860f6-2b01-5d1a-a4a2-e48b4cb369a2", "url": "https://pretalx.com/juliacon2020/speaker/ZBMJRN/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/HJZXMX/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/HJZXMX/", "attachments": [{"title": "slides", "url": "/media/juliacon2020/submissions/HJZXMX/resources/juliacon-talk_fp9GPM3.pdf", "type": "related"}]}], "Green Track": [{"guid": "ec5afa08-7ead-5872-b6b4-7e7549259585", "code": "LHBLF3", "id": 4743, "logo": null, "date": "2020-07-30T12:30:00+00:00", "start": "12:30", "duration": "00:10", "room": "Green Track", "slug": "juliacon2020-4743-state-space-modeling-for-macroeconomics-with-statespaceecon", "url": "https://pretalx.com/juliacon2020/talk/LHBLF3/", "title": "State Space Modeling for Macroeconomics with StateSpaceEcon", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "We will show how StateSpaceEcon can be used for state space modeling in macroeconomics in Julia. This package can solve discrete-time systems of linear and non-linear equations that contain expectations of future values of the variables. The shocks to the system can be anticipated or unanticipated. This package can also find the steady state of the system and diagnose which variables are left undetermined. In addition, we will cover the Julia package TSeries to work with discrete time series.", "description": "We will give an overview of what the Julia package StateSpaceEcon can do and how it works internally.\n\nMacroeconomics typically deals with discrete-time systems of non-linear equations that include expectations of future values of the variables. One way to solve for these expectations is the \u201crational expectations\u201d hypothesis which posits that expectations should be consistent with the whole system.\n\nThe package StateSpaceEcon solves these kinds of systems using a stacked-time algorithm. This algorithm builds one large system of equations over all time periods and solves it using a root-finding algorithm such as Newton-Raphson. This approach works very well for large discrete-time systems of non-linear equations simulated with anticipated shocks. When shocks are anticipated, the expectation about the future values of the variables and their realisations are equal.\n\nBesides, the StateSpaceEcon package offer functionalities that facilitate working with state space systems in the context of macroeconomic policy analysis.\n1. The package dependency TimeSeries supports time series at low frequencies (e.g. integer, monthly, quarterly and yearly). Vectorized operations, indexing and assignments greatly facilitate data manipulations.\n2. A plan object allows to perfectly control which variables and shocks are endogenous (i.e. determined by the system) or exogenous (imposed on the system externally), which might change from one time period to the next.\n3. On top of anticipated shocks, the package can handle unanticipated shocks. In this case, the expectations and their realizations will differ.\n4. The rational expectations solver computes the Jacobian of the system using automatic differentiation. It uses sparse matrices throughout in order to handle the very large, but very sparse, Jacobian resulting from the stacked-time algorithm.\n5. The steady state of the system can be computed and analysed using QR decomposition to report states that are left undetermined. Functionalities allow for adding steady state equations and assumptions, in order to close the steady state system.\n6. Finally, the package StateSpaceEcon can linearize the system around the steady state or any other solution and use the linearized system for simulations.", "recording_license": "", "do_not_record": false, "persons": [{"code": "PXJ9SN", "name": "Nicholas L. St-Pierre", "avatar": null, "biography": "Nicholas Labelle St-Pierre is a Principal Economist in the Projection Division of the Canadian Economic Analysis Department at the Bank of Canada. His research interests include macroeconomics and computational economics. Nicholas holds an MSc in Economics from the University of Quebec in Montreal (UQAM).", "public_name": "Nicholas L. St-Pierre", "guid": "15331ce2-8fb9-5f34-9a02-983d18bac1ae", "url": "https://pretalx.com/juliacon2020/speaker/PXJ9SN/"}, {"code": "JXPEBU", "name": "Boyan Bejanov", "avatar": "https://pretalx.com/media/avatars/JXPEBU_E5njXgt.webp", "biography": "Boyan is a Senior Data Scientist at the Bank of Canada in the Digital Economy and Advanced Analytics division. He is interested in scientific computing. His PhD is in Applied Mathematics from the University of Alberta in Edmonton, Alberta, Canada.", "public_name": "Boyan Bejanov", "guid": "7101476f-b775-5dd5-a09a-827f7544173a", "url": "https://pretalx.com/juliacon2020/speaker/JXPEBU/"}, {"code": "UJUFMU", "name": "Atai Akunov", "avatar": null, "biography": "Projection Analyst, Bank of Canada.", "public_name": "Atai Akunov", "guid": "e9317cf1-b479-527b-825f-a4c5127ed702", "url": "https://pretalx.com/juliacon2020/speaker/UJUFMU/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/LHBLF3/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/LHBLF3/", "attachments": []}, {"guid": "c7650fb7-db6f-55c3-8bbd-0be4fd3789b6", "code": "ALMRKK", "id": 4742, "logo": null, "date": "2020-07-30T12:40:00+00:00", "start": "12:40", "duration": "00:10", "room": "Green Track", "slug": "juliacon2020-4742-parallel-implementation-of-monte-carlo-markov-chain-algorithm", "url": "https://pretalx.com/juliacon2020/talk/ALMRKK/", "title": "Parallel Implementation of Monte Carlo-Markov Chain Algorithm", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "This work presents a parallel implementation  of Monte Carlo-Markov Chain method for solving systems of linear algebraic equations using Julia and GPU accelerator. Julia 1.1.0 + CUDAnative.jl  provide several advantages regarding development and performance which help to delve  into  convergence and precision analysis. This work is supported by PAPIIT-IA104720.", "description": "During the last 5 years we have been working on the iterative methods for solving  systems of linear algebraic equations. Recently our work has focused on estimates inverse matrix of the system and an efficient condicioner in order to obtain a  good approximate solution. We use for this task **Markov Chain-Monte Carlo** (MCMC) method as a theoretical basis. Iterative process, convergence, random sampling and  calculation of weights and estimators represent an exhaustive computational effort for the MCMC method as the size of the system of linear equations to be solved increases. In order to tackle this problem paralllel implementation using Julia 1.1.0 + CUDAnative is proposed.\nJulia programming language has captured our attention since it has consolidated, as an excellent development environment for scientific computation. Our contribution to the Julia conference 2020  is to show parallel implementation of the MCMC method highlighting  the advantages of CUDAnative.jl as a wrapper of GPU accelerators.  Convergence and scaling results are discused at the end of  the talk.\nWe would like to thank the financial support of PAPIIT-IA104720.", "recording_license": "", "do_not_record": false, "persons": [{"code": "GYDYSB", "name": "Oscar A. Esquivel-Flores", "avatar": null, "biography": "Oscar A.  Esquivel-Flores received his Bachelor's degree in Applied Mathematics and Computing from Universidad Nacional Aut\u00f3noma de M\u00e9xico (UNAM). M.S. degree in Computer Sciences from Universidad Aut\u00f3noma Metropolitana, M\u00e9xico and PhD degree in Computer Engineering from UNAM in 2013. He has working on parallel and high performance computing as part of a posdoctoral position at the Barcelona Supercomputing Center as an international agreement with National Council of Science and Technology of M\u00e9xico. He currently helds a research position in Instituto de Investigaciones en Matem\u00e1ticas Aplicadas y en Sistemas at Universidad Nacional Aut\u00f3noma de M\u00e9xico developing parallel algorithms regard matrix computations, machine learning and optimization.", "public_name": "Oscar A. Esquivel-Flores", "guid": "97e427c1-1727-5b74-bb81-6a99c10c32fb", "url": "https://pretalx.com/juliacon2020/speaker/GYDYSB/"}, {"code": "ZZTWND", "name": "\u00d3scar Alvarado", "avatar": "https://pretalx.com/media/avatars/ZZTWND_TwmwxEj.webp", "biography": "Degree in physics. Currently studying data science and interested in AI, high-performance computing, and computational physics.\nStudying at the National Autonomous University of Mexico.", "public_name": "\u00d3scar Alvarado", "guid": "80634858-2b72-5b16-badf-4af06e1cd149", "url": "https://pretalx.com/juliacon2020/speaker/ZZTWND/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/ALMRKK/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/ALMRKK/", "attachments": []}, {"guid": "0f2a9c33-18aa-53c0-b8e4-fa0f41d2a8d6", "code": "J9Q8UR", "id": 4798, "logo": null, "date": "2020-07-30T12:50:00+00:00", "start": "12:50", "duration": "00:10", "room": "Green Track", "slug": "juliacon2020-4798-amdgpu-computing-in-julia", "url": "https://pretalx.com/juliacon2020/talk/J9Q8UR/", "title": "AMDGPU Computing in Julia", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "I will describe the current state of Julia's AMDGPU stack and how it compares\nto Julia's CUDA stack, interesting advantages of AMD's ROCm platform that\nwe can leverage from Julia, as well as my own perspective on the future of\nJulia's GPGPU ecosystem.", "description": "NVIDIA's CUDA (Compute Unified Device Architecture) has been the dominant\ntoolkit for general-purpose GPU (GPGPU) computing for many years, and has\nexcellent support in Julia. However, AMD's ROCm (Radeon Open Compute) platform\nis rising in popularity, and many Julia users wish to use their AMD GPUs in\nJulia in the same ways that CUDA users can today. I will provide an overview\nof how to do exactly that, and what pitfalls users need to be aware of.\n\nBeyond past basic functionality, the open source nature of the AMDGPU kernel\nmodule makes support for advanced features like hostcall and unified memory\neasy to use, and enables opportunities to unify computations on CPUs and GPUs\nwithout much difficulty. I will present some short demos of how these useful\nfeatures can be used in practice\n\nGoing forward, a number of innovations in Julia's GPGPU ecosystem are\npossible. Merging compiler codebases, providing better abstractions for\ngeneric kernel programming, integration with distributed computing libraries,\nand automated GPU-ification of scientific and machine learning codes are all\non the table for the future. I will briefly explore what exciting\npossibilities users and developers have to look forward to, and what work\nstill needs to be done.", "recording_license": "", "do_not_record": false, "persons": [{"code": "GRFD9D", "name": "Julian P Samaroo", "avatar": "https://pretalx.com/media/avatars/GRFD9D_X04BPZD.webp", "biography": "I am the founder of Julia's AMDGPU stack, and interested in helping users make use of every bit of computing power they have available. I am interested in using GPUs to accelerate real-time execution of spiking neural networks, as well as other machine learning algorithms.", "public_name": "Julian P Samaroo", "guid": "545e5d52-47fb-56ff-99ce-9ee52d0dc560", "url": "https://pretalx.com/juliacon2020/speaker/GRFD9D/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/J9Q8UR/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/J9Q8UR/", "attachments": []}, {"guid": "fa650c91-b655-5eea-89c5-e77c53b46e05", "code": "HVXXZD", "id": 4736, "logo": null, "date": "2020-07-30T13:00:00+00:00", "start": "13:00", "duration": "00:30", "room": "Green Track", "slug": "juliacon2020-4736-optimization-algorithms-in-julia-for-gpus", "url": "https://pretalx.com/juliacon2020/talk/HVXXZD/", "title": "Optimization Algorithms in Julia for GPUs", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "The ExaSGD (Optimizing Stochastic Grid Dynamics at Exascale) application is part of the Department of Energy's Exascale project (ECP). We show our challenges of finding optimization algorithms for GPUs and present our prototyping framework that written end-to-end in Julia.", "description": "The ExaSGD (Optimizing Stochastic Grid Dynamics at Exascale) application is part of the Department of Energy's Exascale project (ECP). We use Julia and JuMP for large-scale optimization on the current generation of supercomputers. However, the recent switch from CPU to GPU in the upcoming generation of supercomputers poses great challenges for classic optimization algorithms. Sparse algebra and linear solvers are known to have poor performance on GPUs. Our project looks into novel optimization algorithms that are applied to the alternate current optimal power flow (ACOPF) problem. Current solvers supported by JuMP largely rely on sparse linear solvers. Our goal is to find algorithms that rely on denser algebra that scales over the large number of cores that a GPU provides. We present a complete software stack from modeling to the linear solver that is written completely in Julia and provide an end-to-end overview of the challenges met both at the modeling level as well as at the algebra level. We use automatic differentiation to generate the derivative code for the GPUs and show performance results for the power flow problem (PF) that look promising to be extended to OPF.", "recording_license": "", "do_not_record": false, "persons": [{"code": "DUUAYM", "name": "Michel Schanen", "avatar": null, "biography": "Michel Schanen is Computational Engineer at the Mathematics and Computer Science division at the Argonne National Laboratory. His background is automatic differentiation and large-scale numerical simulations. His group's research revolves around optimization algorithms for power systems.", "public_name": "Michel Schanen", "guid": "870b7d84-1255-54f3-a7da-b68764c5ddb3", "url": "https://pretalx.com/juliacon2020/speaker/DUUAYM/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/HVXXZD/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/HVXXZD/", "attachments": []}, {"guid": "fc0b4d70-46aa-5003-9382-cc31ce0c542d", "code": "YCGSVY", "id": 4814, "logo": null, "date": "2020-07-30T13:30:00+00:00", "start": "13:30", "duration": "00:30", "room": "Green Track", "slug": "juliacon2020-4814-how-not-to-write-cpu-code-kernelabstractions-jl", "url": "https://pretalx.com/juliacon2020/talk/YCGSVY/", "title": "How not to write CPU code -- KernelAbstractions.jl", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "KernelAbstractions.jl is a library to write portable kernels for CPU and GPU computing.\nIt presents a unified programming model ala OpenCL in Julia so that users can write a\nsingle kernel that targets multiple accelerators an multi-threaded CPUs.", "description": "Writing performance portable code that targets multiple hardware platforms is challenging.\nKernelAbstractions.jl allows users to abstract away some of the hardware differences and \nwrite one unified code that targets multiple hardware platforms. Despite being able to target\nmulti-threaded CPUs it's design choices are biased towards GPUs and can sometimes be sub-optimal\nfor CPU execution. In this talk I will introduce KernelAbstractions.jl, and explain it's design choices.", "recording_license": "", "do_not_record": false, "persons": [{"code": "3C7UBC", "name": "Valentin Churavy", "avatar": null, "biography": "PhD Student at MIT", "public_name": "Valentin Churavy", "guid": "5f21f8f2-dc89-5fbd-bed2-e89c081c0337", "url": "https://pretalx.com/juliacon2020/speaker/3C7UBC/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/YCGSVY/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/YCGSVY/", "attachments": []}, {"guid": "8826246d-a1bc-5ad7-a2ff-fb8c89de5faa", "code": "Y7ERM9", "id": 4522, "logo": null, "date": "2020-07-30T16:10:00+00:00", "start": "16:10", "duration": "00:10", "room": "Green Track", "slug": "juliacon2020-4522-introducing-the-ccall-macro", "url": "https://pretalx.com/juliacon2020/talk/Y7ERM9/", "title": "Introducing the @ccall macro", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "In Julia 1.5, a new interface for calling dynamic libraries will be introduced: the `@ccall` macro. The talk goes over the new syntax, API and development process.", "description": "As I was learning Julia, I was delighted with the ease and speed with which the language could access C libraries, but I found the specific syntax of `ccall` a bit cumbersome. I created a simple macro to provide what I felt was a more \"Julian\" syntax `ccall`. What I came up turned out to be very similar to a syntax that Julia's core developers had discussed previously, so I began the process of getting my macro into the language. [PR #32748](https://github.com/JuliaLang/julia/pull/32748)\n\nThis short talk will cover the new syntax presented by `@ccall`, what new features it has that the original `ccall` doesn't, and also provide some reflections on making my first contribution to the language and the helpful guidance provided by the Julia team.", "recording_license": "", "do_not_record": false, "persons": [{"code": "PHBURX", "name": "Aaron Christianson", "avatar": "https://pretalx.com/media/avatars/PHBURX_Fm3RJpx.webp", "biography": "Aaron works at the Goethe University Library in Frankfurt on problems related writing systems of natural languages. Most of the work is in Python, but he enjoys sneaking in bits and bobs in Julia and OCaml when no one is looking. Outside of work, he has contributed to a refreshed C-calling interface for Julia 1.5 and answers way, way too many questions about Julia on Quora.", "public_name": "Aaron Christianson", "guid": "3c5e62e7-ba5d-5e19-b413-bd9cc82a5127", "url": "https://pretalx.com/juliacon2020/speaker/PHBURX/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/Y7ERM9/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/Y7ERM9/", "attachments": []}, {"guid": "0ce20f41-6223-5c30-9a88-907135a948b4", "code": "3LUQVT", "id": 4450, "logo": null, "date": "2020-07-30T16:20:00+00:00", "start": "16:20", "duration": "00:10", "room": "Green Track", "slug": "juliacon2020-4450-design-documents-are-great-and-here-s-why-you-should-consider-w", "url": "https://pretalx.com/juliacon2020/talk/3LUQVT/", "title": "Design documents are great, and here\u2019s why you should consider w", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Whether you have an existing package, are planning a re-write or creating a new package, design documents can help explain the problem you are trying to solve. In this talk, we will walk through AWSCore as a use-case, discuss what design documents are, their benefits, and showcase how they help users understand packages they haven't seen before.", "description": "A design document is a written description of a software product, that a software designer writes to give a development team overall guidance to the architecture of the project. They include everything from the general architecture, internal/external dependencies, and in/out of scope tasks, among other things.\n\nWhen an individual or team starts contributing to a new package, it can be overwhelming at first. Finding out which components do what, how they interact with each other, and why certain design decisions were made. A design document can help clarify these general questions and get a new contributor started in understanding the package. Design documents are also helpful in producing an overview of the current architecture, showcasing alternative solutions, and explaining why certain design decisions were made.\n\nIn this talk, we will discuss what a design document is, why you should consider creating one and what components go into it. By the end, you will know how to create a design document that will capture a snapshot of your package (or future package), outline guiding principles and summarize design decisions that will help lead to improvements in future revisions.", "recording_license": "", "do_not_record": false, "persons": [{"code": "M99LZJ", "name": "Matt Brzezinski", "avatar": null, "biography": "Software Developer at Invenia Computing", "public_name": "Matt Brzezinski", "guid": "933e12bd-fdd1-53ab-a0f9-4fef790a1a2f", "url": "https://pretalx.com/juliacon2020/speaker/M99LZJ/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/3LUQVT/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/3LUQVT/", "attachments": []}, {"guid": "e8941a19-ad72-53d3-91f7-c1ede5fbbb21", "code": "BSQLL9", "id": 4636, "logo": null, "date": "2020-07-30T16:30:00+00:00", "start": "16:30", "duration": "00:10", "room": "Green Track", "slug": "juliacon2020-4636-adventures-in-avoiding-allocations", "url": "https://pretalx.com/juliacon2020/talk/BSQLL9/", "title": "Adventures in Avoiding Allocations", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Lessons learned while achieving a 100x speedup of TrajectoryOptimization.jl by eliminating allocations.", "description": "Memory allocations can have a significant impact on run-time performance. My research focuses on developing state-of-the-art optimization solvers for doing real-time motion planning on nonlinear robotic systems, where run-time consistency is critical. This talk will discuss some practical considerations of writing non-allocating code in Julia, in the context of TrajectoryOptimization.jl, where we leveraged several techniques to achieve a 100x improvement in speed on many problems. This talk will include tips, tricks, and insights on how to avoid memory allocations and boost performance, as well as some discussion about the shortcomings of Julia with regards to memory management.", "recording_license": "", "do_not_record": false, "persons": [{"code": "BJYQ39", "name": "Brian Jackson", "avatar": null, "biography": "Currently a PhD student in Mechanical Engineering at Stanford University, my research focuses on developing state-of-the-art algorithms for doing real-time motion planning for nonlinear robotic systems. I started using Julia a little under 2 years ago and am the primary developer of TrajectoryOptimization.jl.", "public_name": "Brian Jackson", "guid": "23ce2ee3-e578-5daf-a7d7-2b67c098cdcd", "url": "https://pretalx.com/juliacon2020/speaker/BJYQ39/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/BSQLL9/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/BSQLL9/", "attachments": []}, {"guid": "de81967b-e104-5226-8570-b4c415099e93", "code": "JYNERU", "id": 4508, "logo": null, "date": "2020-07-30T16:40:00+00:00", "start": "16:40", "duration": "00:30", "room": "Green Track", "slug": "juliacon2020-4508-dispatching-design-patterns", "url": "https://pretalx.com/juliacon2020/talk/JYNERU/", "title": "Dispatching Design Patterns", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "This talk covers common patterns that have emerged in Julia using multiple dispatch and generic types to create code that is flexible, robust and performs well.", "description": "A topic which frequently comes up in discussions of Julia is how to solve complex problems without class-based object orientation. We will look at how objects and interfaces are designed in Julia using modules, structs, multiple dispatch and abstract types. We\u2019ll look at how to use generics for more open-ended polymorphism that doesn\u2019t sacrifice performance and how to use the trait pattern to define extensible, overlapping categories of types. We\u2019ll also mention a few anti-patterns that come up in Julia, such as the infamous \u201ctype piracy\u201d.\n\nWe\u2019ll also look at how multiple dispatch can be used as a simple form of pattern matching, similar algebraic data types in functional languages, and how this is useful for traversing recursive data structures like the abstract syntax trees one deals with when writing macros.\n\nThis talk is for programmers who may be experienced with other languages but are new to Julia and want to see how we design software using Julia\u2019s unique feature set.", "recording_license": "", "do_not_record": false, "persons": [{"code": "PHBURX", "name": "Aaron Christianson", "avatar": "https://pretalx.com/media/avatars/PHBURX_Fm3RJpx.webp", "biography": "Aaron works at the Goethe University Library in Frankfurt on problems related writing systems of natural languages. Most of the work is in Python, but he enjoys sneaking in bits and bobs in Julia and OCaml when no one is looking. Outside of work, he has contributed to a refreshed C-calling interface for Julia 1.5 and answers way, way too many questions about Julia on Quora.", "public_name": "Aaron Christianson", "guid": "3c5e62e7-ba5d-5e19-b413-bd9cc82a5127", "url": "https://pretalx.com/juliacon2020/speaker/PHBURX/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/JYNERU/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/JYNERU/", "attachments": []}, {"guid": "b64691ed-e458-5fa1-9828-853ac1dfe39e", "code": "LRKHWM", "id": 4806, "logo": null, "date": "2020-07-30T17:10:00+00:00", "start": "17:10", "duration": "00:10", "room": "Green Track", "slug": "juliacon2020-4806-continuables-jl-python-yield-in-julia-in-blazingly-fast", "url": "https://pretalx.com/juliacon2020/talk/LRKHWM/", "title": "Continuables.jl: Python yield in Julia in blazingly fast", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "When coming from Python (or C#) you may be like me and love using generators `yield` a lot. Of course I wanted to have this in Julia, too, and wanted it to be blazingly fast. Unfortunately, the recommended approach using Julia Channels is everything else but super fast. That motivated me to build a solution which in many cases can compile down to perfect machine code: [Continuables.jl](https://github.com/schlichtanders/Continuables.jl).", "description": "I want to present you the simple idea behind [Continuables.jl](https://github.com/schlichtanders/Continuables.jl), to interprete `yield` as withhold computation. [Continuables.jl](https://github.com/schlichtanders/Continuables.jl) lets you define a generator with `@cont` and use `cont()` as the new ``yield``. \"cont\" stands for continue, which hints at the implementation: A continuable simply expects a function which it can use as the ``cont()`` placeholder. \nWith this basic idea (plus some details) you get many of the standard iterable functionalities and the code compiles perfectly.", "recording_license": "", "do_not_record": false, "persons": [{"code": "MJPZGQ", "name": "Stephan Sahm", "avatar": "https://pretalx.com/media/avatars/MJPZGQ_ZnjakqT.webp", "biography": "Stephan Sahm is senior consultant at Machine Learning Reply for Data Science and Data Engineering. As an outstanding\nmaster of cognitive science, master of stochastics, as well as a\npassionate professional programmer he strives towards bringing tomorrow\u2019s Data Science into today\u2019s business.\n\nHe launched and organizes the Julia User Group Munich, the main driver for establishing Julia within Munich's Data Science community.", "public_name": "Stephan Sahm", "guid": "0ef0d46c-974c-5234-a989-87a118f9939b", "url": "https://pretalx.com/juliacon2020/speaker/MJPZGQ/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/LRKHWM/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/LRKHWM/", "attachments": []}, {"guid": "9c1b015b-722c-5310-976e-2f84d4f02bfe", "code": "MGJCGT", "id": 4707, "logo": null, "date": "2020-07-30T17:20:00+00:00", "start": "17:20", "duration": "00:10", "room": "Green Track", "slug": "juliacon2020-4707-computation-techniques-for-encrypted-data", "url": "https://pretalx.com/juliacon2020/talk/MGJCGT/", "title": "Computation Techniques for Encrypted Data", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "The session begins with a discussion on homomorphic properties of cryptographic algorithms with the demonstration and techniques to reduce computational complexity. The session discusses the concept of recryption for secure computation. This session also discusses a case study on how machine learning techniques can be applied to encrypted data for secure computation and protecting the machine learning model. Finally, the utility of homomorphic encryption for blockchain will be discussed.", "description": "Imagine you have important documents such as credit card statements of expenditure or other financial documents and you want to protect them from illegal entities. You will store them in safe and lock it with a key. This process is known as encryption. Now if you want to analyze your spending habits or process financial accounts related to your business then you need to take the documents out of safe. This process is known as decryption. This step has a problem i.e.; the moment you take out the documents from the safe they become vulnerable to illegal entities. To avoid such situations, we need a mechanism to process documents without taking them out of the safe. It is possible through homomorphic encryption i.e., by performing computations on encrypted data and this talks addresses techniques to perform computations of encrypted data.<br/>\n<br/>\nImplementation:<br/>\nThe cryptographic algorithms have been implemented in Julia. Also, the Julia code has been written\nto verify the homomorphic properties of cryptographic algorithms. Homomorphic encryption techniques are computation intensive. To reduce the number of computations we used the Fast Fourier Transform (FFT) and Karatsuba methods for performing arbitrary computations such as multiplication over large integers. Next to demonstrate the implementation of a secure machine learning model we combined cryptography algorithms implementation in Julia and machine learning toolbox (MLJ.jl). A minimal blockchain was implemented in Julia to perform secure computations in a blockchain environment.<br/><br/>\nOutline<br/>\n1.Introduction to cryptography and homomorphic encryption(02 Minutes)<br/>\n2.Introduction to the Internet of Things and problems of homomorphic encryption(03 Minutes)<br/>\n3.Techniques to reduce the complexity of computations on encrypted data(04 Minutes)<br/>\n4.Recryption for secure computation(04 Minutes)<br/>\n5.Homomorphic encryption and Machine Learning(04 Minutes)<br/>\n6.Homomorphic encryption and Blockchain(04 Minutes)<br/>\n7.Conclusion and Questions(04 Minutes)<br/>", "recording_license": "", "do_not_record": false, "persons": [{"code": "CPJQQS", "name": "Gajendra Deshpande", "avatar": "https://pretalx.com/media/avatars/CPJQQS_Dy3rZGa.webp", "biography": "Mr. Gajendra Deshpande holds a master's degree in Computer Science and Engineering and working as Assistant Professor at the Department of Computer Science and Engineering, KLS Gogte Institute of Technology, Belagavi, Karnataka, India.  He has a teaching experience of 12 years and Linux and Network Administration experience of one year. Under his mentorship teams have won Smart India Hackathon 2018 and Smart India Hackathon 2019. He is the Technical Director for Sestoauto Networks Pvt. Ltd. and Founder of Thingsvalley. His areas of Interest include Programming, Web Designing, Cyber Security, Artificial Intelligence, Machine Learning, Brain-Computer Interface, Internet of Things and Virtual Reality. He has presented papers at NIT Goa, Scipy India 2017 IIT Bombay, JuliaCon 2018 London, Scipy India 2018 IIT Bombay, Scipy 2019 USA and PyCon France 2019.", "public_name": "Gajendra Deshpande", "guid": "c9d7383b-8dee-551a-af88-006a165ffe7d", "url": "https://pretalx.com/juliacon2020/speaker/CPJQQS/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/MGJCGT/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/MGJCGT/", "attachments": []}, {"guid": "ea3a2aa3-b65d-5c7c-8c4a-6e496318c5ec", "code": "3YDDAE", "id": 5481, "logo": null, "date": "2020-07-30T17:30:00+00:00", "start": "17:30", "duration": "00:10", "room": "Green Track", "slug": "juliacon2020-5481-julialang-survey-results", "url": "https://pretalx.com/juliacon2020/talk/3YDDAE/", "title": "JuliaLang Survey Results", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "The results of the 2020 JuliaLang Survey", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "3HK3M7", "name": "Viral B. Shah", "avatar": null, "biography": null, "public_name": "Viral B. Shah", "guid": "a898af6d-b57b-545a-a78c-efafe794e26e", "url": "https://pretalx.com/juliacon2020/speaker/3HK3M7/"}, {"code": "BBAW3P", "name": "Andrew Claster", "avatar": null, "biography": null, "public_name": "Andrew Claster", "guid": "5ada4532-4cda-5ad8-8e35-7c35d0d54408", "url": "https://pretalx.com/juliacon2020/speaker/BBAW3P/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/3YDDAE/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/3YDDAE/", "attachments": []}, {"guid": "1c4286fc-ce11-5077-8979-53270ba54e7d", "code": "ELQ8A8", "id": 4811, "logo": null, "date": "2020-07-30T18:00:00+00:00", "start": "18:00", "duration": "00:30", "room": "Green Track", "slug": "juliacon2020-4811-statsmodels-jl-mistakes-were-made-a-formula-for-success", "url": "https://pretalx.com/juliacon2020/talk/ELQ8A8/", "title": "StatsModels.jl: Mistakes were made/A `@formula` for success", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "What happens when you re-implement a critical piece of the data science\necosystem from what was essentially an R clone to take full advantage of the\nJulia language?  You learn a lot about flexibility, composability, and\nperformance.", "description": "Transforming tabular, heterogeneous data into numerical arrays is a critical\nfirst step in many data analysis pipelines.  [StatsModels.jl](https://github.com/JuliaStats/StatsModels.jl) provides\nfunctionality for this through the `@formula` macro.\n\nThe earliest implementations of `@formula` in Julia were based on R, which has a\nvery different model for metaprogramming and composition across packages.  Over\nthe last two years, we re-implemented the `@formula` from the ground up in a\nmore Julian fashion, trying to strike a balance between maintaining a\ncontinuous, familiar experience for front-end users while also taking advantage\nof Julia's many features to create a hackable, flexible, modular, and extensible\nplatform that other packages can build on.\n\nIn this talk, I'll show you how the current implementation achieves these goals,\nbut more importantly what we *learned* in the process of rewriting this critical\npiece of data science infrastructure.  I'll pay special attention to mistakes we\nmade in initial development, lessons we learned from those mistakes about how to\nmake a flexible, composable package, and issues for current and future\ndevelopment.  You'll learn how [StatsModels.jl](https://github.com/JuliaStats/StatsModels.jl) takes advantage of multiple\ndispatch to allow *other* packages to hook into and extend the `@formula` system\nwhile still playing nicely together.", "recording_license": "", "do_not_record": false, "persons": [{"code": "SLNRF8", "name": "Dave Kleinschmidt", "avatar": "https://pretalx.com/media/avatars/SLNRF8_3aoH8pP.webp", "biography": "Like many before and after him, Dave started hacking on Julia to procrastinate finishing his dissertation. Despite his best efforts he finished his PhD in Brain and Cognitive Sciences in 2016. In his day job as an Assistant Professor of Psychology at Rutgers New Brunswick, he works on understanding how people understand spoken language with such apparent ease, combining behavioral, computational, and neural approaches. Otherwise he's committed to promoting open, reproducible science, and designing tools that empower researchers and lower the barrier to entry for data analysis and statistics.", "public_name": "Dave Kleinschmidt", "guid": "d6ed36d8-c50b-5510-bcac-41749cd7f531", "url": "https://pretalx.com/juliacon2020/speaker/SLNRF8/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/ELQ8A8/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/ELQ8A8/", "attachments": []}, {"guid": "370774d7-1e4f-5b03-882b-fe02a2f6af92", "code": "8EPG3L", "id": 4773, "logo": null, "date": "2020-07-30T18:30:00+00:00", "start": "18:30", "duration": "00:10", "room": "Green Track", "slug": "juliacon2020-4773-the-queryverse", "url": "https://pretalx.com/juliacon2020/talk/8EPG3L/", "title": "The Queryverse", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "This talk will give a quick introduction to the Queryverse. I will also give an update on new features since the last Juliacon.", "description": "This talk will briefly introduce users to the Queryverse, what the scope of it is and how one can use it. I will also briefly talk about new features that have been added since last year.", "recording_license": "", "do_not_record": false, "persons": [{"code": "7JQFVF", "name": "David Anthoff", "avatar": "https://pretalx.com/media/avatars/7JQFVF_6hMSzX4.webp", "biography": "David Anthoff is an environmental economist who studies climate change and environmental policy. He co-develops the integrated assessment model FUND that is used widely in academic research and in policy analysis. His research has appeared in Science, the Journal of Environmental Economics and Management, Environmental and Resource Economics, the Oxford Review of Economic Policy and other academic journals. He contributed a background research paper to the Stern Review and has advised numerous organizations (including US EPA and the Canadian National Round Table on the Environment and the Economy) on the economics of climate change.\n\nHe is an assistant professor in the Energy and Resources Group at the University of California, Berkeley. Previously he was an assistant professor in the School of Natural Resources and the Environment of the University of Michigan, a postdoc at the University of California, Berkeley and a postdoc at the Economic and Social Research Institute in Ireland. He also was a visiting research fellow at the Smith School of Enterprise and the Environment, University of Oxford.\n\nHe holds a PhD (Dr. rer. pol.) in economics from the University of Hamburg (Germany) and the International Max Planck Research School on Earth System Modelling, a MSc in Environmental Change and Management from the University of Oxford (UK) and a M.Phil. in philosophy, logic and philosophy of science from Ludwig-Maximilians-Universit\u00e4t M\u00fcnchen (Munich, Germany).", "public_name": "David Anthoff", "guid": "bcf50455-31c2-51ca-955a-1ed8f65d0d65", "url": "https://pretalx.com/juliacon2020/speaker/7JQFVF/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/8EPG3L/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/8EPG3L/", "attachments": []}, {"guid": "e27f4269-d544-5f9d-bd00-ce29cf736b5a", "code": "EVJNMH", "id": 4592, "logo": null, "date": "2020-07-30T18:40:00+00:00", "start": "18:40", "duration": "00:10", "room": "Green Track", "slug": "juliacon2020-4592-julia-for-knowledge-mining-in-industry-4-0", "url": "https://pretalx.com/juliacon2020/talk/EVJNMH/", "title": "Julia for Knowledge Mining in Industry 4.0", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Industry 4.0, simply I4.0 or I4, refers to the \u201cFourth Industrial Revolution\u201d that's the new digital industrial technology for transforming industries into smart/intelligent industries (iIndustry) by connecting machines with intelligent robots and Industrial Internet of Things (IIoT) devices. In this talk, we have addressed and proposed several issues for knowledge mining from Industrial Big Data (iBigData) in Industry 4.0 using Julia programming language.", "description": "Industry 4.0 engenders and analysis data across the machines in iIndustry to produce high-quality products at low costs, and changes traditional production relationships among suppliers, producers, and customers. Industry 4.0 amalgamates nine technologies to transform industrial production, which includes: (1) Big Data Analytics, (2) Autonomous Robots/ Robotics, (3) Simulation, (4) Horizontal & Vertical System Integration, (5) Industrial Internet of Things (IIoT), (6) Cybersecurity, (7) Cloud Computing, (8) Additive Manufacturing (such as 3-D printing), and (9) Augmented Reality. I4.0 uses Decision Support Systems (DSS) incorporating with knowledge mining techniques to know what actions need to take in future that help manufacturers to optimise their operations quickly. The fourth revolution ameliorates the industries with intelligent computing fuelled by data with Machine Learning (ML) and Data Mining (DM) technologies. In this talk, we have addressed several issues for knowledge mining process in Industry 4.0 using Julia programming language. Knowledge mining is the process of extracting hidden information/patters from Industrial Big Data (iBigData) to lucid market trends, customer preferences and other information that\u2019s useful to businesses. Industrial Big Data is extremely large that we can't store all the data into a single computer/machine; so, we need more scalable and robust learning approach to deal with iBigData. We have collected the data set with 1067371 instances named \u201cOnline Retail II\u201d from UCI Machine Learning Repository (https://archive.ics.uci.edu/) and implemented RainForest and BOAT (Bootstrapped Optimistic Algorithm for Tree construction) learning algorithms using Julia. RainForest and BOAT are basically decision tree (DT) based supervised learning algorithms for classifying Big Data. We have presented a new decision tree merging approach that addresses the repetition and replication problems in tree pruning. Industrial Big Data is multivariate, high-dimensional, noisy, and also the characteristics of data can be changed over the time (e.g. concept drifting in data streaming environment). In this talk, we also discussed the how we can handle the noisy and streaming data; find the most informative training instances, so that we can build a learning model with minimum number of instances. For selecting informative training instances, we have used simple partition-based clustering approach and implemented clustering algorithm in Julia.", "recording_license": "", "do_not_record": false, "persons": [{"code": "A9KWKS", "name": "Swakkhar Shatabda", "avatar": "https://pretalx.com/media/avatars/A9KWKS_r7yVtan.webp", "biography": "Dr. Shatabda is Associate Professor and Undergraduate Program Co-ordinator of Computer Science and Engineering Department.\n\nHe achieved his Ph. D degree from the Institute for Integrated and Intelligent Systems (IIIS), Griffith University in 2014. His thesis is titled \u201cLocal Search Heuristics for Protein Structure Prediction\u201d.  He completed his BSc. in Computer Science and Engineering from Bangladesh University of Engineering and Technology (BUET) in 2007.\n\nResearch interest of Dr. Shatabda includes bioinformatics, optimization, search and meta-heuristics, data Mining, constraint programming, approximation Algorithms and graph theory. He has a number of quality publications in both national and international conferences and journals.\n\nHe has worked as Graduate Researcher in Queensland Research Laboratory, NICTA, Australia. Prior entering the teaching line he worked  as a Software Engineer in Vonair Inc, Bangladesh.", "public_name": "Swakkhar Shatabda", "guid": "50c71845-c898-576f-a339-e79c12a17939", "url": "https://pretalx.com/juliacon2020/speaker/A9KWKS/"}, {"code": "PDQSEA", "name": "Dewan Md. Farid", "avatar": "https://pretalx.com/media/avatars/PDQSEA_Z1tMS4k.webp", "biography": "Dr. Dewan Md. Farid is a Postdoctoral staff in the Decision and Information Systems for Production systems (DISP) Laboratory, IUT Lumi\u00e8re \u2013 Universit\u00e9 Lyon 2, France, and Associate Professor (on leave), Department of Computer Science and Engineering, United International University, Bangladesh. He worked as a Postdoctoral Fellow at the following research groups: (1) Computational Modeling Lab (CoMo), Department of Computer Science, Vrije Universiteit Brussel, Belgium in 2015-2016, and (2) Computational Intelligence Group (CIG), Department of Computer Science and Digital Technology, University of Northumbria at Newcastle, UK in 2013. Dr. Farid was a Visiting Faculty at the Faculty of Engineering, University of Porto, Portugal in June 2016. He holds a PhD in Computer Science and Engineering from Jahangirnagar University, Bangladesh in 2012. Part of his PhD research has been done at ERIC Laboratory, University Lumi\u00e8re Lyon 2, France by Erasmus-Mundus ECW eLink PhD Exchange Program. He has published 84 peer-reviewed scientific articles, including 28 journal papers in the field of machine learning, data mining, and big data. Dr. Farid received the following awards: (1) JuliaCon 2019 Travel Award for attending Julia Conference at the University of Maryland, Baltimore, USA, and (2) United Group Research Award 2016 in the field of Science and Engineering. He received a2i Innovation Fund of Innov-A-Thon 2018 (Ideabank ID No.: 12502) from a2i-Access to Information Program \u2013 II, Information and Communication Technology (ICT) Division, Government of the People's Republic of Bangladesh. Dr. Farid received the following Erasmus Mundus scholarships: (1) LEADERS (Leading mobility between Europe and Asia in Developing Engineering Education and Research) in 2015, (2) cLink (Centre of excellence for Learning, Innovation, Networking and Knowledge) in 2013, and (3) eLink (east west Link for Innovation, Networking and Knowledge exchange) in 2009. Dr. Farid also received Senior Fellowship I, and II award by National Science & Information and Communication Technology (NSICT), Ministry of Science & Information and Communication Technology, Government of Bangladesh respectively in 2008 and 2011. He is a member of IEEE.", "public_name": "Dewan Md. Farid", "guid": "007f0359-2348-57b5-b75e-5576245e4c18", "url": "https://pretalx.com/juliacon2020/speaker/PDQSEA/"}, {"code": "NDCRAZ", "name": "Aicha Sekhari", "avatar": "https://pretalx.com/media/avatars/NDCRAZ_Q8BDWAx.webp", "biography": "A. SEKHARI Seklouli is currently member of DISP laboratory. Aicha Sekhari Seklouli is a co-leader of \u201cSystem Lifecycle Modeling and Optimization\u201d axis in DISP and a Head of the RTI knowledge Transfer and innovation pole.  Her research activities deal with Product and Production Sustainability, including Product Life cycle Management and Supply Chain Management. She co-advice PhDs AND Masters  Students in these fields.  Dr Sekhari Seklouli was technical manager of EASYIMP FP7 FoF ICT NMPB, working on the development of an MBSE method for smart Product. As a member of EcoSD (Eco Conception de syst\u00e8me durable) research and industry association, She has many contribution in the field of Eco-PLM and Suitanaible product development. Dr. Sekhari Seklouli has been and currently coordinator/member of several international research and collaboration projects: FP7 ICT FI-PPP FITMAN, Erasmus mundus (eLink, cLink, eTourism, Fusion), Hubert Curien, ARC8, ... \n\nA. SEKHARI Seklouli teaches in the fields of Production Management , Methods and Tools for Quality Management and Norms for Postgraduat and undergrad degrees.\n\nA SEKHARI Seklouli was a head of Health, Safety and Environment (HSE) department. She received her Engineering Degree in Electronic in 1994 from Algerian University of Engineering Science in Setif. After three years of industrial experiences in Engineering maintenance, she joined INSA Lyon for her M. Sc. (DEA) degree in 1999. She obtained her Ph.D degree in Production System from University of Joseph Fourier of Clermond Ferrand in France in 2004. Dr. Sekhari Seklouli is currently collaborating on various EU and International teaching Projects (FSP; Transport II; ...).", "public_name": "Aicha Sekhari", "guid": "4b7cd33b-5cc6-5059-8d13-686113bb0065", "url": "https://pretalx.com/juliacon2020/speaker/NDCRAZ/"}, {"code": "Z9FREG", "name": "Yacine Ouzrout", "avatar": null, "biography": "N/A", "public_name": "Yacine Ouzrout", "guid": "54c33ac6-fd45-52bf-8394-c10e869d7598", "url": "https://pretalx.com/juliacon2020/speaker/Z9FREG/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/EVJNMH/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/EVJNMH/", "attachments": []}, {"guid": "260fad86-4c4a-5050-aded-d5fb7a2178a3", "code": "XQ9YQK", "id": 4784, "logo": null, "date": "2020-07-30T18:50:00+00:00", "start": "18:50", "duration": "00:10", "room": "Green Track", "slug": "juliacon2020-4784-efficient-ransac-in-efficient-julia", "url": "https://pretalx.com/juliacon2020/talk/XQ9YQK/", "title": "Efficient RANSAC in efficient Julia", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "RANSAC.jl offers the Efficient RANSAC algorithm, a widely spread method to recognize simple primitives in point clouds of scanned objects. This talk will show that the package can not only be a basis for existing reconstruction processes, but a tool for further research as well.", "description": "We introduce the RANSAC.jl package that implements the Efficient RANSAC algorithm. It is a widely used tool in the field of digital shape reconstruction to recognize simple geometric primitives (plane, sphere, cylinder, torus, cone) in point clouds. This algorithm can not only be used alone, but also as part of complex reconstruction processes.\n\nSo far, mostly C++ implementations have been published, and to the best of my knowledge, this is the first one in Julia. The main goal of the implementation is establishing a flexible tool, while maintaining the same level of performance as existing solutions. This way, not only existing functionality is replicated, but also a new research tool is introduced.", "recording_license": "", "do_not_record": false, "persons": [{"code": "QWEUG7", "name": "Tam\u00e1s Cserteg", "avatar": null, "biography": "Tam\u00e1s Cserteg is a developer at SZTAKI EMI (Institute for Computer Science and Control, Research Laboratory on Engineering & Management Intelligence). He received his MSc in mechatronics engineering at BME (Hungary). During his studies, he was a demonstrator several times at different departments of the Faculty of Mechanical Engineering. He participated in numerous national competitions (organised for teams of engineering students), and he finished twice in the top five places. His main research interests are robotics - including human-robot collaboration - and digital shape reconstruction.", "public_name": "Tam\u00e1s Cserteg", "guid": "f9bdef61-7612-52cd-9570-02080267cd3c", "url": "https://pretalx.com/juliacon2020/speaker/QWEUG7/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/XQ9YQK/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/XQ9YQK/", "attachments": []}, {"guid": "acc8bb49-bab3-52b5-8004-d9dea7cd2635", "code": "KFRKCB", "id": 4828, "logo": null, "date": "2020-07-30T19:00:00+00:00", "start": "19:00", "duration": "00:30", "room": "Green Track", "slug": "juliacon2020-4828-inventing-curriculum-with-julia-and-pointer-generator-network", "url": "https://pretalx.com/juliacon2020/talk/KFRKCB/", "title": "Inventing Curriculum with Julia and Pointer-Generator Network", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "In this talk, attendees will learn about natural language processing techniques (TextAnalysis.jl) using Julia and how it can be combined with machine learning(MLJ.jl) to generate new knowledge from the existing knowledge.  We will talk about how we designed curriculum using natural language processing, unsupervised machine learning and pointer-generator network.", "description": "The curriculum in general and undergraduate curriculum, in particular, is one of the most important pillars of an education system. The undergraduate curriculum has two main objectives i.e. employability and higher education. The greatest challenge in designing an undergraduate curriculum is achieving a balance between employability skills and laying the foundation for higher education. Generally, the curriculum is the combination of core technical subjects, professional electives, humanities, and skill-oriented subjects. We used natural language processing and machine learning packages in Julia to build a curriculum design system.\nThe steps to build a curriculum design system are described below:\n1.\tThe dataset was built from the job profiles from different job listing websites like indeed.com, linkedin.com, and monster.com. Also from the syllabus of competitive exams and qualifying exams for higher education.\n2.\tOn the dataset, we applied natural language processing techniques to identify the subjects and subject content. For natural language processing, we used TextAnalysis.jl package in Julia.\n3.\tTo generate syllabus content for a particular subject, a pointer-generator network was used. The pointer generator network is a text summarization technique that combines extractive and abstractive summarization techniques. The extractive summarization technique extracts keywords from the dataset, whereas the abstractive summarization technique generates new text from the existing text. The pointer-generator network was implemented using the MLJ.jl machine learning package in Julia. \n4.\tThe generated curriculum was then compared with the existing curriculum to get insights like, how much percent of the curriculum is industry oriented, how much percent of the curriculum is aimed at higher education, and job-oriented skills. \n5.\tThe above steps can be repeated with modified parameters to get better insights and curriculum. This also gives us an idea of how we can have an evolving curriculum that can help us bridge the gap between industry and academia.\n\nIn this talk, attendees will learn about natural language processing techniques using Julia and how it can be combined with machine learning to generate new knowledge from the existing knowledge.", "recording_license": "", "do_not_record": false, "persons": [{"code": "CPJQQS", "name": "Gajendra Deshpande", "avatar": "https://pretalx.com/media/avatars/CPJQQS_Dy3rZGa.webp", "biography": "Mr. Gajendra Deshpande holds a master's degree in Computer Science and Engineering and working as Assistant Professor at the Department of Computer Science and Engineering, KLS Gogte Institute of Technology, Belagavi, Karnataka, India.  He has a teaching experience of 12 years and Linux and Network Administration experience of one year. Under his mentorship teams have won Smart India Hackathon 2018 and Smart India Hackathon 2019. He is the Technical Director for Sestoauto Networks Pvt. Ltd. and Founder of Thingsvalley. His areas of Interest include Programming, Web Designing, Cyber Security, Artificial Intelligence, Machine Learning, Brain-Computer Interface, Internet of Things and Virtual Reality. He has presented papers at NIT Goa, Scipy India 2017 IIT Bombay, JuliaCon 2018 London, Scipy India 2018 IIT Bombay, Scipy 2019 USA and PyCon France 2019.", "public_name": "Gajendra Deshpande", "guid": "c9d7383b-8dee-551a-af88-006a165ffe7d", "url": "https://pretalx.com/juliacon2020/speaker/CPJQQS/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/KFRKCB/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/KFRKCB/", "attachments": []}], "Purple Track": [{"guid": "8ab7c32f-5acb-5880-baa8-ae2d07eec155", "code": "KK9S9V", "id": 4632, "logo": null, "date": "2020-07-30T12:30:00+00:00", "start": "12:30", "duration": "00:10", "room": "Purple Track", "slug": "juliacon2020-4632-creating-a-multichannel-wireless-speaker-setup-with-julia", "url": "https://pretalx.com/juliacon2020/talk/KK9S9V/", "title": "Creating a multichannel wireless speaker setup with Julia", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "The Julia package ecosystem provides a rich trove of useful functionality across a wide range of platforms.  By standing on the shoulders of giants and combining packages such as `ZMQ.jl`, `Opus.jl`, `PortAudio.jl`, `DSP.jl` and more, we are able to build a multichannel, low-latency, intelligent wireless speaker system that runs on cheap single-board linux computers.", "description": "Taking advantage of some of the strengths of the Julia package ecosystem and tooling, we will demonstrate the ease with which an advanced wireless speaker system can be developed and deployed across heterogenous architectures.  Combining `ZMQ.jl` for easy and fast communication, `DSP.jl` and `PortAudio.jl` for signal processing/audio IO, `Opus.jl` for high-quality compression during transmission and some cheap single-board linux computers, we are able to build a system that performs the kind of realtime audio processing that we crave, all without breaking the bank.  This talk will focus on demonstrating the usefulness of having a single language that can deal with signal processing, low-latency network communication, and cross-platform binaries, all at once.", "recording_license": "", "do_not_record": false, "persons": [{"code": "B98NWS", "name": "Elliot Saba", "avatar": "https://pretalx.com/media/avatars/B98NWS_tEK7CH0.webp", "biography": "Elliot Saba is a Senior Research Engineer at Julia Computing, where he develops new tools to bolster the Julia community's collective productivity.  From machine learning algorithms to web services, build environments to debugging tools, his greatest weapon against the impossible is patience.", "public_name": "Elliot Saba", "guid": "7d47e0e1-48ab-59d6-930a-c5b09414ffab", "url": "https://pretalx.com/juliacon2020/speaker/B98NWS/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/KK9S9V/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/KK9S9V/", "attachments": []}, {"guid": "5b2060f4-6507-5696-a63e-1859edb47ce4", "code": "M89V9M", "id": 4791, "logo": null, "date": "2020-07-30T12:40:00+00:00", "start": "12:40", "duration": "00:10", "room": "Purple Track", "slug": "juliacon2020-4791-boids-dancing-with-friends-and-enemies", "url": "https://pretalx.com/juliacon2020/talk/M89V9M/", "title": "Boids: Dancing with Friends and Enemies", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Boid (\"bird\" pronounced in New York dialect) is an artificial life program\nsimulating flocking behaviour.  In this fun, short talk I will describe one\nboids simulation, a Dance with Friends and Enemies, and demonstrate a Makie\nvisualization that allows manipulating the swarm behaviour in realtime.", "description": "A Dance with Friends and Enemies is a Boids artificer life program introduced on\nthe [Mathematica Forums](https://community.wolfram.com/groups/-/m/t/122095). In\nthis simulation each \"dancer\" has a randomly chosen friend and enemy.\n\nAt each beat of the dance, the dancers \n1. Take a step to the center of the dancefloor\n2. Take a step to their friend\n3. Take a step away from their enemy.\n\nAlso, at random intervals a dancer will choose new friends and enemies.\n\nThe sizes of each of these steps, as well as the frequency of partner switches,\nare parameters which affect the emergent, flocking behaviour.\n\nIn this talk I will quickly describe a Julia implementation of this simulation,\nwhich is performant with large numbers of dancers.\n\nFurther, I will demonstrate the emergent flocking behaviour with a visualization\nin Makie.jl. This will highlight some of Makie's features. In particular, the\nsimulation will have sliders allowing us to modify the parameters and see the\naffect on flock behaviour plotted efficiently in realtime.", "recording_license": "", "do_not_record": false, "persons": [{"code": "EL3WH8", "name": "Jesse Bettencourt", "avatar": null, "biography": "Graduate student in Machine Learning at University of Toronto", "public_name": "Jesse Bettencourt", "guid": "3a844753-1246-5d70-be60-dd3db09a7674", "url": "https://pretalx.com/juliacon2020/speaker/EL3WH8/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/M89V9M/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/M89V9M/", "attachments": []}, {"guid": "2d04d310-719a-5b9a-921f-214c1ad18c7c", "code": "8RM33X", "id": 3252, "logo": "https://pretalx.com/media/juliacon2020/images/8RM33X/JuliaMusic_logo_kHGTozW.png", "date": "2020-07-30T13:00:00+00:00", "start": "13:00", "duration": "00:30", "room": "Purple Track", "slug": "juliacon2020-3252-juliamusic-doing-cool-science-and-becoming-a-better-drummer", "url": "https://pretalx.com/juliacon2020/talk/8RM33X/", "title": "JuliaMusic: doing cool science and becoming a better drummer", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "JuliaMusic is a collection of packages for analyzing music data. As the lead-dev I use these packages in my day-to-day scientific work about the properties of music. However I also use them to create exercises that help me become a better drummer.", "description": "JuliaMusic contains intuitive and powerful packages for analyzing music data, made for scientific work on the mathematical properties of music. Thus, they contain advanced functionality that does not exist in counterparts in e.g. Python. The flexibility of JuliaMusic allows me to straightforwardly ask and answer questions about the mathematical structure of music. But through some clever use of combinatorics, I can also use them to produce exercises for my drums practice sessions.", "recording_license": "", "do_not_record": false, "persons": [{"code": "GB8WTV", "name": "George Datseris", "avatar": "https://pretalx.com/media/avatars/GB8WTV_KjiCmmK.webp", "biography": "By day I am a scientist and by night I am a software developer and a drummer.\nMy areas of research are: quantum transport, nonlinear dynamics and chaos, music timeseries analysis, climate physics.", "public_name": "George Datseris", "guid": "c572f2b9-6dbe-50e8-9426-cfe4e0acc344", "url": "https://pretalx.com/juliacon2020/speaker/GB8WTV/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/8RM33X/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/8RM33X/", "attachments": []}, {"guid": "de5cafc9-6513-5e66-9d0b-b56a58a93110", "code": "38UTLX", "id": 4753, "logo": null, "date": "2020-07-30T13:30:00+00:00", "start": "13:30", "duration": "00:30", "room": "Purple Track", "slug": "juliacon2020-4753-rapid-commercialization-of-drone-autonomy-using-julia", "url": "https://pretalx.com/juliacon2020/talk/38UTLX/", "title": "Rapid Commercialization of Drone Autonomy using Julia", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "In robotics, the two language problem is potentially even more pronounced than in other fields of scientific computing. KEF Robotics is using Julia to tackle this challenge and rapidly develop, field test, and commercialize autonomy software for small multirotor drones.", "description": "There is currently a very large gap from new robotics research to commercial products. The two language problem contributes to this gap, where research and prototyping often occurs in MATLAB or Python and then field testing and commercialization requires porting to C or C++. The development speed, runtime speed, and scientific computing capabilities of Julia offer a promising solution to this challenge.\n\nKEF Robotics is developing an attachable autonomy subsystem for small aerial vehicles, allowing us to add navigation, hazard avoidance, and machine learning capabilities to any drone, all with just cameras (no GPS required). Our hazard detection and avoidance module has been developed, tested, fielded, and is now being transitioned into a commercial product, all in Julia. This module combines widely varying components, including image processing, geometric computer vision, splines, and nonlinear optimization, making it a perfect showcase for Julia's unique strength in composability and scientific computing.\n\nAnother key challenge in robotics is predictable real-time performance, often on embedded computing. These factors are typically not associated with garbage-collected scripting languages. While Julia's tooling and runtime are not perfect for the task, options for allocation management, profiling, and package compilation allow prototype code to be ported to these applications, all in the same language. Also, Julia native CUDA programming is of particular utility for NVIDIA's Jetson products, which are prevalent in robotics research and commercialization.", "recording_license": "", "do_not_record": false, "persons": [{"code": "9GSQX8", "name": "Kerry Snyder", "avatar": "https://pretalx.com/media/avatars/9GSQX8_WLLM3T2.webp", "biography": "Co-founder at KEF Robotics. Formerly R&D at Astrobotic. B.S. in Computer Science and Robotics at Carnegie Mellon University.", "public_name": "Kerry Snyder", "guid": "c346d400-60d2-5df5-82fe-8e61b647f438", "url": "https://pretalx.com/juliacon2020/speaker/9GSQX8/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/38UTLX/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/38UTLX/", "attachments": []}, {"guid": "909447fc-d405-5dc5-a603-b491d95e12af", "code": "Q88P8U", "id": 4593, "logo": null, "date": "2020-07-30T16:10:00+00:00", "start": "16:10", "duration": "00:10", "room": "Purple Track", "slug": "juliacon2020-4593-integrate-julia-and-javascript-using-node-js-extensions", "url": "https://pretalx.com/juliacon2020/talk/Q88P8U/", "title": "Integrate Julia and Javascript using Node.js extensions", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Julia is a great language for implementing algorithms, and Node.js is a popular platform for writing web services using Javascript. In this talk we will see how to run Julia code in a Node.js application, by using Node.js native extensions. This approach is particularly efficient from a performance point of view, and makes it easy to integrate Julia in existing Javascript environments.", "description": "Julia is a great language for implementing algorithms, and Node.js is a popular platform for writing web services using Javascript. In this talk we will see how to run Julia code in a Node.js application, by using Node.js native extensions.\n\nThis approach has been used to serve a statistical inference algorithm, written in Julia, through an HTTP API, written in Javascript.\n\nThe Julia code is simplified since it does not have to handle HTTP requests, and it avoids data serialization costs by directly sharing memory between the runtimes. Furthemore, this makes the integration into an existing Node.js environment easy, since it does not require the installation of Julia on the server.\n\nWe will show how to use `PackageCompiler.jl` to produce a shared library, and the `node-addon-api` and `node-gyp` packages to build and distribute the extension.\n\nWe will also discuss the challenges and limitations of this approach, such as garbage collection, exceptions handling, and multithreading.\n\nAn example extension is available at https://github.com/maxmouchet/julia-node-extension-demo.", "recording_license": "", "do_not_record": false, "persons": [{"code": "QT7SE8", "name": "Maxime Mouchet", "avatar": "https://pretalx.com/media/avatars/QT7SE8_B7G67gX.webp", "biography": "Maxime Mouchet is a PhD student at IMT Atlantique, France, from which he also holds a telecommunications engineering degree.  \nHis work focuses on detecting and locating faults on the Internet, as well as optimizing routing and quality-of-service measurements in large networks, using artificial intelligence methods.  \nHe is interested in practical implementations of his work, using Julia and Python.", "public_name": "Maxime Mouchet", "guid": "70ce2844-6451-5bfa-89f3-fa7dbf83480a", "url": "https://pretalx.com/juliacon2020/speaker/QT7SE8/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/Q88P8U/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/Q88P8U/", "attachments": []}, {"guid": "56b950a2-ad5d-58c7-8dda-030870182474", "code": "DTLBM9", "id": 4729, "logo": null, "date": "2020-07-30T16:20:00+00:00", "start": "16:20", "duration": "00:10", "room": "Purple Track", "slug": "juliacon2020-4729-highly-productive-julia-web-development-with-genie-1-0", "url": "https://pretalx.com/juliacon2020/talk/DTLBM9/", "title": "Highly productive Julia web development with Genie 1.0", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "A quick tour de force of Genie's most important features, now packed into the stable, mature, performant, and resilient v1 API. The attendees will discover how Genie can help them to productively build and deploy powerful web applications with Julia.", "description": "With over 900 stars on GitHub and consistently ranking as one of the top 10 most starred Julia packages, Genie is a testament of Julia's great potential as a language for the web. After 5 years in development, over 1000 commits and 50 releases, Genie reaches the v1 milestone as a mature, stable, performant, and feature-rich Julia web development framework. \n\nThe talk will touch upon Genie's most important features, providing a starting point for Julia developers interested in the development of web applications. We will go over features like the HTML templating language, JSON rendering capabilities, input handling, caching, built-in Docker integration, the plugins ecosystem (Genie Authentication and Genie Autoreload), and the built-in deployment adapters for the major hosting platforms.", "recording_license": "", "do_not_record": false, "persons": [{"code": "3MGMJN", "name": "Adrian Salceanu", "avatar": "https://pretalx.com/media/avatars/3MGMJN_ZDj3zD6.webp", "biography": "IT professional working at the intersection between Web Development, Data Science, and Machine Learning. 20 years of experience leading agile teams in developing real-time, data-intensive, web and mobile products.\n\nPublic speaker and enthusiastic contributor to Open Source projects, with a focus on high-performance web development. Creator of Genie, the highly-productive Julia web framework. Author of \"Julia Programming Projects\" (Packt, 2018) and co-author of \u201cJulia Programming Complete Reference Guide\u201d (Packt, 2019).\n\nMSc. Advanced Computer Science. MSc. Computing. Certified ScrumMaster.", "public_name": "Adrian Salceanu", "guid": "5d2e4e09-afb7-5a28-8f45-806432c27f99", "url": "https://pretalx.com/juliacon2020/speaker/3MGMJN/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/DTLBM9/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/DTLBM9/", "attachments": [{"title": "Presentation slides", "url": "/media/juliacon2020/submissions/DTLBM9/resources/Highly_productive_Julia_web_development_with__ifLirDd.pptx", "type": "related"}]}, {"guid": "0f375957-9a24-578b-9110-ae34e4ada975", "code": "GFE3DB", "id": 4056, "logo": "https://pretalx.com/media/juliacon2020/submissions/GFE3DB/jsserve_ipQdeGC.png", "date": "2020-07-30T16:30:00+00:00", "start": "16:30", "duration": "00:10", "room": "Purple Track", "slug": "juliacon2020-4056-jsserve-websites-dashboards-in-julia", "url": "https://pretalx.com/juliacon2020/talk/GFE3DB/", "title": "JSServe: Websites & Dashboards in Julia", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "This talk presents JSServe.jl, a high performance framework to easily combines interactive plots, markdown, widgets and plain HTML/Javascript in Jupyter / Atom / Nextjournal and on websites.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "JSJDXE", "name": "Simon Danisch", "avatar": "https://pretalx.com/media/avatars/JSJDXE_fZrtTfz.webp", "biography": "Simon has been working with Julia for around 7 years by now. Some of the packages he created include:\n\n* [GeometryTypes](https://github.com/JuliaGeometry/GeometryTypes.jl)\n* [GPUArrays](https://github.com/JuliaGPU/GPUArrays.jl)\n* [Makie](https://github.com/JuliaPlots/Makie.jl/)\n* [PackageCompiler](https://github.com/JuliaLang/PackageCompiler.jl/)\n* [JSServe](https://github.com/SimonDanisch/JSServe.jl)\n\nAnd lots of others! \nNoways, Simon works for Beacon-Biosignals on visualizing EEG data!", "public_name": "Simon Danisch", "guid": "9fe14921-7cb7-55ed-abe4-d22427bd2b37", "url": "https://pretalx.com/juliacon2020/speaker/JSJDXE/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/GFE3DB/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/GFE3DB/", "attachments": []}, {"guid": "e4a8a007-b8aa-50c5-b9a0-82c5004642a0", "code": "P7EQCK", "id": 4787, "logo": null, "date": "2020-07-30T16:40:00+00:00", "start": "16:40", "duration": "00:10", "room": "Purple Track", "slug": "juliacon2020-4787-write-a-webapp-in-julia-with-dash-jl", "url": "https://pretalx.com/juliacon2020/talk/P7EQCK/", "title": "Write a WebApp in Julia with Dash.jl", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "For many scientific workflows, an easy way to publish results interactively to the browser is very useful. However, most web frameworks have a steep learning curve, and involve knowledge of multiple languages and technologies. In this talk, we will show you how to create web applications in pure Julia, without any javascript or html using Dash.jl.", "description": "[Dash.jl](https://github.com/plotly/Dash.jl) is a Julia interface to the Dash framework developed by the Plotly team. This talk is aimed at demonstrating how easy it is to write a high quality webapp in Julia, without having to write JavaScript, and still have it be really intuitive, almost as if one is writing HTML. \nOften in large projects, one of the key goals is to deliver a final solution to a large user base. In this talk, we will explore a simple way to deploy your solution behind a web server.\nWe will write a webapp that includes user input, automated HTTP request routing, and displaying analytical results with Plotly graphs.", "recording_license": "", "do_not_record": false, "persons": [{"code": "83D8SQ", "name": "Dhairya Gandhi", "avatar": null, "biography": "Dhairya is currently a Data Scientist at Julia Computing Inc. and maintains and develops Julia's ML stack with Flux and Zygote.", "public_name": "Dhairya Gandhi", "guid": "b58b5f7a-2c90-56f6-9b17-b9dc331f5d97", "url": "https://pretalx.com/juliacon2020/speaker/83D8SQ/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/P7EQCK/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/P7EQCK/", "attachments": []}, {"guid": "3b15d1da-a071-514b-b683-cb01b5025470", "code": "VP3W33", "id": 4431, "logo": null, "date": "2020-07-30T17:00:00+00:00", "start": "17:00", "duration": "00:10", "room": "Purple Track", "slug": "juliacon2020-4431-rocket-jl-a-julia-package-for-reactive-programming", "url": "https://pretalx.com/juliacon2020/talk/VP3W33/", "title": "Rocket.jl: A Julia package for reactive programming", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "__Rocket.jl__ is a native Julia implementation of reactive programming concepts. \nThe package uses the observable sequence and actor model to make it easier to work with asynchronous data streams and message-driven program architectures.", "description": "The reactive programming (RP) paradigm is becoming increasingly popular. RP combines concepts from asynchronous data processing and the observer design pattern. Common applications are online data processing, interactive visualization and responsive user interfacing. The implementation of RP within a reactive framework allows developers to conveniently define relationships between data producers and consumers, and enables developers to build distributed and scalable applications more efficiently. Popular reactive frameworks in languages other than Julia include RxPy, RxJS, RxCpp and RxJava. \n\nIn areas such as machine learning, reinforcement learning and signal processing, data often arrive asynchronously and at different time scales. In this context, to reduce the developer's effort, RP offers a set of operators for composing, merging, filtering and transforming asynchronous data streams and provides a versatile API for listening for changes in these data streams. \n\nIn order to support RP in Julia, we have developed Rocket.jl, which is an efficient and flexible reactive extensions package, written in pure Julia. \n\nEfficiency is achieved by relying on Julia's type system and advanced optimisation techniques. Rocket.jl introduces additional abstractions that can largely be evaluated and in-lined at compile time, resulting in an efficient implementation of RP with almost zero overhead compared to traditional imperative programs. Comparative performance benchmarks are available on the GitHub repository.\n\nAt the same time, flexibility is maintained by making use of Julia's multiple dispatch system. A user can readily extend built-in functionality with additional operators and custom observables. The self-contained documentation of Rocket.jl provides a convenient introduction to RP, and offers a collection of examples and use cases that illustrates how users can customize the built-in functionality to their needs.\n\nWe compared Rocket.jl with two other Julia implementations of the RP, and applied the basic map and filter operators to an asynchronous data stream. In terms of computation time, Rocket.jl outperforms Signals.jl and Reactive.jl on average by a factor of 2 and 4, respectively. Memory usage is similar across these packages. \n\nWe believe that usability is a key factor when applying the RP to practical problems. Therefore we designed Rocket.jl as a RP package that enables developers to build flexible and efficient reactive systems.", "recording_license": "", "do_not_record": false, "persons": [{"code": "RKNELB", "name": "Dmitry Bagaev", "avatar": null, "biography": "Dmitry Bagaev received his MSc degree in computational mathematics and computer science from Moscow State University in 2019. Currently he works as a PhD student in the BIASlab group (http://biaslab.org) at the electrical engineering department at Eindhoven University of Technology (TU/e).", "public_name": "Dmitry Bagaev", "guid": "832cf1ae-2638-531a-a598-41f26ba0b2ee", "url": "https://pretalx.com/juliacon2020/speaker/RKNELB/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/VP3W33/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/VP3W33/", "attachments": []}, {"guid": "deebd95d-6e08-5613-bc9c-ef71e876836d", "code": "WNBYW8", "id": 4830, "logo": "https://pretalx.com/media/juliacon2020/submissions/WNBYW8/pluto_demo_DB6icv4.gif", "date": "2020-07-30T17:10:00+00:00", "start": "17:10", "duration": "00:30", "room": "Purple Track", "slug": "juliacon2020-4830-interactive-notebooks-pluto-jl", "url": "https://pretalx.com/juliacon2020/talk/WNBYW8/", "title": "Interactive notebooks ~ Pluto.jl", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Introducing a fresh, new notebook system for rapid prototyping! Pluto understands global references between cells, and reactively re-evaluates cells affected by a code change. At JuliaCon, we will show how Pluto can liven up your workflow.", "description": "Whether you\u2019re a scientist, a finance professional or an engineer, you use notebooks like Jupyter to tell a story. You fiddle a bit with your code, running cells here and there, and when you\u2019re done - you restart the kernel and keep your fingers crossed that it\u2019ll all work together when you press \u201crun all\u201d. \n\n\ud83d\ude4b **In Pluto, things work differently.** When you change a variable, Pluto automatically re-runs the cells that refer to it. And when you delete a cell, the variables, methods and imports from the old code disappear. Unlike Jupyter or Matlab, there is **no mutable workspace**, but rather a _one-to-one correspondence_ between variables and code. \n\n\ud83d\udea8 Reactivity is not just fun for mathematical tricks! It guarantees that the code you see exactly matches the variables you're working with, eliminating bugs before you even knew you had them. \n\n\u26a1 Your notebook becomes interactive by splitting your code into multiple cells! Changing one cell **instantly shows effects** on all other cells, giving you a fast and fun way to experiment with your model. And to really spice up your notebook, you can use HTML sliders, or even custom JavaScript widgets, to drive your Julia variables. Change `\u03bb = 5` to `@bind \u03bb Slider(1:10)`, and all cells that use `\u03bb` are controlled by a slider.\n\n\ud83d\udcbe Notebooks are **saved as pure Julia files** and can be exported as rich documents with cell output to HTML or PDF. By separating source code and output, you can take full advantage of git for version control and you can import Pluto notebooks as if they are written in a regular editor.\n\n---\n\nAfter a live demo, the second part of the talk will unveil some of the tricks that power Pluto. The core concepts are: \n- **_static code analysis_** to find global definitions and references in cells;\n- **_directed graph_** of cells, which tells Pluto which cells to run, in which order;\n- **_managed workspace_** for code to live in, and cleaning the workspace in milliseconds;\n- **_responsive connection_** between JavaScript clients and Julia.\n\nPluto is **written in pure Julia**, which comes with two benefits: first, it\u2019s easily installable as a package without requiring Python - you only need Julia and a web browser. Second, it is ready to be improved by Julia developers who we hope to inspire at the conference. Pluto is an exciting project to work on, and we are eager to hear your ideas!\n\n[https://github.com/fonsp/Pluto.jl](https://github.com/fonsp/Pluto.jl)", "recording_license": "", "do_not_record": false, "persons": [{"code": "ECC83Q", "name": "Fons van der Plas", "avatar": "https://pretalx.com/media/avatars/ECC83Q_5CxYWbQ.webp", "biography": "https://github.com/fonsp", "public_name": "Fons van der Plas", "guid": "d6b48367-025c-5c07-8e95-459fc2523fb9", "url": "https://pretalx.com/juliacon2020/speaker/ECC83Q/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/WNBYW8/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/WNBYW8/", "attachments": []}, {"guid": "4b936caa-a83d-5411-9287-557d27626f97", "code": "AQMLUC", "id": 4768, "logo": "https://pretalx.com/media/juliacon2020/submissions/AQMLUC/Screen_Shot_2020-03-14_at_10.30.29_PM_F2Av4QC.png", "date": "2020-07-30T18:00:00+00:00", "start": "18:00", "duration": "00:30", "room": "Purple Track", "slug": "juliacon2020-4768-enterprise-data-management-with-low-rank-topic-models", "url": "https://pretalx.com/juliacon2020/talk/AQMLUC/", "title": "Enterprise data management with low-rank topic models", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "How can enterprises create a catalogue of what data they have, given only a few labels and access to physical data layouts and other metadata? I show how to extend `GeneralizedLowRankModels.jl` to generate topic models that can be used for semisupervised learning tasks like extrapolating from known labels, evaluating possible errors in existing labels, and predicting missing metadata.", "description": "To adopt modern practices for reproducible data science, enterprises need to first know what kinds of data they have. In some industries like financial services, being able to reproduce critical risk calculations is even a regulatory requirement. A necessary first step is for enterprises to build comprehensive data catalogue, before building other infrastructure such as data lakes. Building such a catalogue can be challenging for enterprises with multiple legacy systems, incomplete documentation, and inherited technical debt. The expert knowledge needed to provide and verify subject labels further escalates the cost of building a data catalogue.\n\nIn this talk, I demonstrate how topic modeling can be used to help build a comprehensive data catalogue from incomplete subject labels and access to metadata such as low-level record types and database table names. By treating such metadata as a sequence of tokens, similar to natural text, I show how to construct semisupervised topic models that allow extrapolation from existing labels. First, I show how a gauge transformation of a standard topic modeling technique, latent semantic indexing (LSI), yields a labelled topic model that is explictly separable. Next, I show how to use generalized low-rank models (GLRMs), as implemented in `GeneralizedLowRankModels.jl`, to explicitly construct a labelled topic model that is a sparse, interpretable, and separable generalization of principal components analysis. I show how to implement a new regularizer in Julia, including an implementation of its corresponding proximal gradient operator. Furthermore, I show how to modify the code of `GeneralizedLowRankModels.jl` to take advantage of the new multithreading model in Julia 1.3 for near-perfect parallel speedup. Additionally, numerical tricks such as low-precision iterative linear algebra, randomized subsampling, and warm starts help to make efficient the training of a GLRM via proximal gradient descent.\n\nAs an illustration of the technique, I will show how this new topic model performs on predicting subject tags on over 25,000 datasets from Kaggle.com. The GLRM-based topic model can be used for several different semisupervised learning tasks, like extrapolating from known labels, evaluating possible errors in existing labels, and predicting missing metadata.", "recording_license": "", "do_not_record": false, "persons": [{"code": "GVE78J", "name": "Jiahao Chen", "avatar": "https://pretalx.com/media/avatars/GVE78J_Dg0Kgd8.webp", "biography": "Jiahao Chen is a senior Vice President and Research Lead at JPMorgan AI Research in New York, with research focusing on explainability and fairness in machine learning, as well as semantic knowledge management. He was previously a Senior Manager of Data Science at Capital One focusing on machine learning research for credit analytics and retail operations.\n\nWhen still in academia, Jiahao was a Research Scientist at MIT CSAIL where he co-founded and led the Julia Lab, focusing on applications of the Julia programming language to data science, scientific computing, and machine learning. Jiahao has organized JuliaCon, the Julia conference, for the years 2014-2016, as well as organized workshops at NeurIPS, SIAM CSE, and the American Chemical Society National Meetings. Jiahao has authored over 120 packages for numerical computation, data science and machine learning for the Julia programming language, in addition to numerous contributions to the base language itself.", "public_name": "Jiahao Chen", "guid": "89f79008-ef85-5d0a-ae15-ad4497a44643", "url": "https://pretalx.com/juliacon2020/speaker/GVE78J/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/AQMLUC/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/AQMLUC/", "attachments": []}, {"guid": "6d6de417-8a49-5707-a5d5-7ba0eb09905d", "code": "HWZ38H", "id": 4054, "logo": null, "date": "2020-07-30T18:30:00+00:00", "start": "18:30", "duration": "00:30", "room": "Purple Track", "slug": "juliacon2020-4054-dynamicppl-stan-like-speed-for-dynamic-probabilistic-models", "url": "https://pretalx.com/juliacon2020/talk/HWZ38H/", "title": "DynamicPPL: Stan-like Speed for Dynamic Probabilistic Models", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "We present DynamicPPL.jl, a modular library providing a lightning-fast infrastructure for probabilistic programming and Bayesian inference, used in Turing.jl. DynamicPPL enables Turing to have C/Stan-like speeds for Bayesian inference involving static and dynamic models alike. Beside run-time speed, DynamicPPL provides a user-friendly domain-specific language for defining and then querying probabilistic models.", "description": "We present the preliminary high-level design and features of DynamicPPL.jl (https://github.com/TuringLang/DynamicPPL.jl), a modular library providing a lightning-fast infrastructure for probabilistic programming, used as a backend for Turing.jl (https://github.com/TuringLang/Turing.jl). Beside a computational performance that is often close to or better than Stan, DynamicPPL provides an intuitive domain-specific language (DSL) that allows the rapid development of complex dynamic probabilistic programs. Being entirely written in Julia, a high-level dynamic programming language for numerical computing, DynamicPPL inherits a rich set of features available through the Julia ecosystem. Since DynamicPPL is a modular, stand-alone library, any probabilistic programming system written in Julia, such as Turing.jl, can use DynamicPPL to specify models and trace their model parameters. The main features of DynamicPPL are: 1) a meta-programming based DSL for specifying dynamic models using an intuitive tilde-based notation; 2) a tracing data-structure for tracking random variables in dynamic probabilistic models; 3) a rich contextual dispatch system allowing tailored behaviour during model execution; and 4) a user-friendly syntax for probabilistic queries. Finally, we show in a variety of experiments that DynamicPPL, in combination with Turing.jl, achieves computational performance that is often close to or better than Stan.", "recording_license": "", "do_not_record": false, "persons": [{"code": "PFTTSC", "name": "Mohamed Tarek", "avatar": "https://pretalx.com/media/avatars/PFTTSC_SB9KB6G.webp", "biography": "I am a PhD student at UNSW Canberra working on topology optimization. I have 2 seemingly unrelated interests that I hope to combine one day: topology optimization and Bayesian inference. This talk is all about the latter, so let's focus on that. I joined the TuringLang development team 1-2 years ago. Since then, my main goal has been to make Turing as fast as possible without sacrificing usability. In this talk, I share some of the work I have done towards that goal and give an overview of the present and future of Turing and DynamicPPL including features, short-term goals and bottlenecks.\n\nGitHub: https://github.com/mohamed82008", "public_name": "Mohamed Tarek", "guid": "0ec81812-7d54-5be8-a9bb-b81c30305e24", "url": "https://pretalx.com/juliacon2020/speaker/PFTTSC/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/HWZ38H/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/HWZ38H/", "attachments": []}, {"guid": "2f58134c-a88f-5c34-8bb8-51d5b4d1b0cb", "code": "8SZSBE", "id": 4728, "logo": null, "date": "2020-07-30T19:00:00+00:00", "start": "19:00", "duration": "00:10", "room": "Purple Track", "slug": "juliacon2020-4728-interactive-data-dashboards-with-julia-and-stipple", "url": "https://pretalx.com/juliacon2020/talk/8SZSBE/", "title": "Interactive data dashboards with Julia and Stipple", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Learn how to build interactive, web based data dashboards in pure Julia with the Stipple Reactive UI library. The participants will learn the fundamentals of developing Stipple apps, allowing them to apply the skills to easily and efficiently create their own interactive data dashboards with pure Julia.", "description": "We will start by taking a quick look at the technology stack behind Stipple and its Reactive UI components, to provide a high level understanding of the various layers (Julia, Genie, Observables, Stipple, and Vue.js) and the interactions between them. \n\nWe will then build a fully functional interactive data dashboard using the German Credit dataset, in which we will explore and visualize the credits distribution by age, using data tables, different types of plots and big numbers -- all in just 10 minutes!", "recording_license": "", "do_not_record": false, "persons": [{"code": "3MGMJN", "name": "Adrian Salceanu", "avatar": "https://pretalx.com/media/avatars/3MGMJN_ZDj3zD6.webp", "biography": "IT professional working at the intersection between Web Development, Data Science, and Machine Learning. 20 years of experience leading agile teams in developing real-time, data-intensive, web and mobile products.\n\nPublic speaker and enthusiastic contributor to Open Source projects, with a focus on high-performance web development. Creator of Genie, the highly-productive Julia web framework. Author of \"Julia Programming Projects\" (Packt, 2018) and co-author of \u201cJulia Programming Complete Reference Guide\u201d (Packt, 2019).\n\nMSc. Advanced Computer Science. MSc. Computing. Certified ScrumMaster.", "public_name": "Adrian Salceanu", "guid": "5d2e4e09-afb7-5a28-8f45-806432c27f99", "url": "https://pretalx.com/juliacon2020/speaker/3MGMJN/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/8SZSBE/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/8SZSBE/", "attachments": [{"title": "Presentation slides", "url": "/media/juliacon2020/submissions/8SZSBE/resources/Stipple_no_vids_4Xq2UpV.pptx", "type": "related"}]}, {"guid": "92ec5a45-f408-5508-93cf-8bcc263c2907", "code": "9RX99T", "id": 4643, "logo": null, "date": "2020-07-30T19:10:00+00:00", "start": "19:10", "duration": "00:10", "room": "Purple Track", "slug": "juliacon2020-4643-bijectors-jl-transforming-probability-distributions-in-julia", "url": "https://pretalx.com/juliacon2020/talk/9RX99T/", "title": "Bijectors.jl: Transforming probability distributions in Julia", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Transforming one probability distribution to another is a powerful tool in Bayesian inference and machine learning, e.g. constrained-to-unconstrained transformations of distributions for use in Hamiltonian Monte Carlo or constructing flexible and learnable densities such as normalizing flows.\n\nIn this talk we'll have a look at how we can use Bijectors.jl to do all of the above and more!\n\nThe slides can be bound at https://torfjelde.github.io/presentations/juliacon-2020-bijectors/.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "RQSHFH", "name": "Tor Erlend Fjelde", "avatar": "https://pretalx.com/media/avatars/RQSHFH_oLL3z05.webp", "biography": "Hey. My name is Tor, like the onion browser or the norse god. Neither are fitting; I'm not a man of many layers nor am I long-haired and muscular. I'm currently working as a research assistant in the Machine Learning group at University of Cambridge where I spend time doing research and working on Turing.jl and it's related packages, e.g Bijectors.jl. It's all related to probabilities, and it's all good fun.\n\nAnd like you, I of course loooove Julia!", "public_name": "Tor Erlend Fjelde", "guid": "c70911f6-2900-5162-8531-35a6aaeec222", "url": "https://pretalx.com/juliacon2020/speaker/RQSHFH/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/9RX99T/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/9RX99T/", "attachments": []}, {"guid": "6909edeb-2680-52ea-b6d7-0ae72fba600a", "code": "3ZTCWX", "id": 4581, "logo": null, "date": "2020-07-30T19:20:00+00:00", "start": "19:20", "duration": "00:10", "room": "Purple Track", "slug": "juliacon2020-4581-easy-and-fast-desktop-guis-with-qml", "url": "https://pretalx.com/juliacon2020/talk/3ZTCWX/", "title": "Easy and fast desktop GUIs with QML", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Qt QML is a declarative, javascript-based language to describe graphical user interfaces (GUIs) for desktop and mobile platforms. With the [QML.jl](https://github.com/barche/QML.jl) package it is possible to also use this to create user interfaces for Julia programs, on Linux, Mac and Windows.", "description": "From a user perspective, the connection between Julia and QML works by exposing Julia functions to be called from QML and/or by using [Observables](https://github.com/JuliaGizmos/Observables.jl) that can be updated and monitored both from QML and Julia. Aside from these standard mechanism, the package also exposes some Julia-specific functionality, such as an [`AbstractDisplay`](https://docs.julialang.org/en/latest/base/io-network/#Multimedia-I/O-1) implementation and integration with [GR.jl](https://github.com/jheinen/GR.jl) and [Makie.jl](https://github.com/JuliaPlots/Makie.jl).\n\nThe presentation will start off with a description of the Observables integration (new since the 2017 talk about this package) and then discuss more in detail how to combine different elements in Julia and QML to obtain interactive GR and Makie visualizations in a QML window.\n\nWe will finish with a note on GUI styling and themes, showing how to configure a GUI for either an identical look across platforms, or for integration with the desktop look and feel.\n\nSlides and examples are available at https://github.com/barche/juliacon2020-qml", "recording_license": "", "do_not_record": false, "persons": [{"code": "H3TNC7", "name": "Bart Janssens", "avatar": "https://pretalx.com/media/avatars/H3TNC7_3ho4OXK.webp", "biography": "Bart Janssens is a military associate professor at the mechanics department of the [Royal Military Academy](https://www.rma.ac.be), with a passion for computer graphics, high performance computing and fluid mechanics. For performance reasons, he used C++ until being introduced to Julia. His current work focuses on making scientific C++ libraries such as Trilinos interoperate with Julia, with the ultimate objective of developing CFD code for Julia.", "public_name": "Bart Janssens", "guid": "47db3dd0-6dae-543b-8d77-fa09147f7952", "url": "https://pretalx.com/juliacon2020/speaker/H3TNC7/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/3ZTCWX/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/3ZTCWX/", "attachments": []}], "BoF": [{"guid": "f504e6f1-9d4d-5c62-998f-059777ea253f", "code": "N9RVPR", "id": 4799, "logo": null, "date": "2020-07-30T16:10:00+00:00", "start": "16:10", "duration": "00:45", "room": "BoF", "slug": "juliacon2020-4799-number-theory-and-computer-algebra-in-julia", "url": "https://pretalx.com/juliacon2020/talk/N9RVPR/", "title": "Number Theory and Computer Algebra in Julia", "subtitle": "", "track": null, "type": "Birds of Feather", "language": "en", "abstract": "We will review existing computer algebra packages, discuss what new packages could be written, and look at existing C/C++ libraries like NTL that we might provide Julia wrappers for. Join the BoF channel on Discord.", "description": "We're happy to talk about all kinds of other computer algebra and number theory topics such as:\n\n* Can you recommend a book for number theory beginners? [(Yes we can!)](http://illustratedtheoryofnumbers.com/)\n* What important computer algebra functionality don't yet exist in Julia? \n* Which packages do/do not allow composable computation?\n* Is there any interest in wrapping the [NTL](https://www.shoup.net/ntl/)(C++) or [PARI](http://pari.math.u-bordeaux.fr/)(C) libraries?\n* Would anyone use Julia wrappers around lattice libraries like [fplll](https://github.com/fplll/fplll), [plll](https://felix.fontein.de/plll/) or [LUSA](https://eprint.iacr.org/2020/605.pdf)?\n\nBill Hart, author of [Nemo.jl](https://github.com/Nemocas/Nemo.jl), [AbstractAlgebra.jl](https://github.com/Nemocas/AbstractAlgebra.jl), [Hecke.jl](https://github.com/thofma/Hecke.jl) and other computer algebra packages will be available to answer questions about the wonderful packages that he and his collaborators have written. \n\nHere is an (incomplete!) list of computer algebra and number theory packages written in Julia. We may discuss some of these packages as well: [GaloisFields.jl](https://github.com/tkluck/GaloisFields.jl), [PolynomialFactors.jl](https://github.com/jverzani/PolynomialFactors.jl), [Theta.jl](https://github.com/chualynn/Theta.jl), [LatticeGFH90.jl](https://github.com/erou/LatticeGFH90.jl), [SecureComputation.jl](https://github.com/jiahao/SecureComputation.jl), [Coleman.jl](https://github.com/alexjbest/Coleman.jl),  [ModularForms.jl](https://github.com/aghitza/ModularForms.jl), [RootFindGF.jl](https://github.com/defeo/RootFindGF.jl), [DlogGF.jl](https://github.com/erou/DlogGF.jl),  [Braids.jl](https://github.com/jwvictor/Braids.jl),  [IsogenyViz.jl](https://github.com/defeo/IsogenyViz.jl),  [NumberTheoreticTransforms.jl](https://github.com/jakubwro/NumberTheoreticTransforms.jl),  [ToyFHE.jl](https://github.com/JuliaCrypto/ToyFHE.jl) (relies on hardness of lattice problems).", "recording_license": "", "do_not_record": false, "persons": [{"code": "YXRYYS", "name": "Chris Peel", "avatar": "https://pretalx.com/media/avatars/YXRYYS_xPKWEdN.webp", "biography": "Chris is the organizer of the SF [Bay Area Julia users group](https://www.meetup.com/Bay-Area-Julia-Users/).", "public_name": "Chris Peel", "guid": "47dbd941-4ae6-56e3-96f3-38fdd7b2a44d", "url": "https://pretalx.com/juliacon2020/speaker/YXRYYS/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/N9RVPR/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/N9RVPR/", "attachments": []}, {"guid": "22b0e216-c9b8-58e0-9584-30f9823be7ac", "code": "8NDYCT", "id": 3749, "logo": null, "date": "2020-07-30T16:55:00+00:00", "start": "16:55", "duration": "00:45", "room": "BoF", "slug": "juliacon2020-3749-julia-for-quantum-physics", "url": "https://pretalx.com/juliacon2020/talk/8NDYCT/", "title": "Julia For Quantum Physics", "subtitle": "", "track": null, "type": "Birds of Feather", "language": "en", "abstract": "Chat about Yao, ITensor, TensorOperations, OMEinsum and development on common infrastructure such as lattices, sparse tensor, domain specific automatic differentiation etc. in Quantum Physics. Join the BoF channel on Discord.", "description": "# JuliaCon 2020 Quantum BoF Materials\nMaterials for Quantum BOF in JuliaCon 2020\n\n## Abstract\n\nChat about [Yao](http://yaoquantum.org/), [ITensor](https://github.com/ITensor/ITensors.jl), [TensorOperations](https://github.com/Jutho/TensorOperations.jl), [OMEinsum](https://github.com/under-Peter/OMEinsum.jl) and development on common infrastructure such as lattices, sparse tensor, domain specific automatic differentiation etc. in Quantum Physics.\n\n## Description\n\nTopics to discuss:\n\n- A Julian lattice package\n- Status of Julia library support for specialized tensor operation backends\n  * CuTensor support in CuArrays\n  * Support for TBLIS, GETT and similar?\n  * Algorithms people want (TDVP, TEBD, tDMRG, any four letter acronym like this)\n- Domain specific automatic differentiation (AD)\n  * AD through SVD in Julia libraries such as Zygote\n- GPU stuff\n  * multi GPU parallelism\n  * exploiting mixed precision for some quantum libraries\n- Tutorial writing\n- Julia quantum as a teaching tool - interactive graph demos?\n- Benchmarking within the Julia community and compared to other packages\n\nSee https://github.com/Roger-luo/juliacon-quantum-bof  for details", "recording_license": "", "do_not_record": false, "persons": [{"code": "VRCN8Y", "name": "Xiu-zhe (Roger) Luo", "avatar": null, "biography": "github.com/Roger-luo", "public_name": "Xiu-zhe (Roger) Luo", "guid": "bb206a24-76c5-53f7-a7fc-98d8e6b46517", "url": "https://pretalx.com/juliacon2020/speaker/VRCN8Y/"}, {"code": "DMTTDJ", "name": "Katharine Hyatt, Matthew Fishman", "avatar": null, "biography": null, "public_name": "Katharine Hyatt, Matthew Fishman", "guid": "844a80bd-bbbf-56a2-b288-a8b7076dbb68", "url": "https://pretalx.com/juliacon2020/speaker/DMTTDJ/"}, {"code": "QBUZQE", "name": "JinGuo Liu", "avatar": "https://pretalx.com/media/avatars/QBUZQE_aMgqC3a.webp", "biography": "A quantum computing geek!\nMy recent work is: https://arxiv.org/abs/2003.04617\nI am going to QuEra (https://www.quera-computing.com/).", "public_name": "JinGuo Liu", "guid": "8ac72060-1efd-588f-924f-20fde8d92897", "url": "https://pretalx.com/juliacon2020/speaker/QBUZQE/"}, {"code": "8Q8AYS", "name": "Matthew Fishman", "avatar": "https://pretalx.com/media/avatars/8Q8AYS_o1YSMFw.webp", "biography": null, "public_name": "Matthew Fishman", "guid": "61b85566-46db-59bf-8a17-8c78f0c99dea", "url": "https://pretalx.com/juliacon2020/speaker/8Q8AYS/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/8NDYCT/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/8NDYCT/", "attachments": []}, {"guid": "4b7958b4-5e5a-5225-9b81-d322e0fd3552", "code": "9X7V3A", "id": 4815, "logo": null, "date": "2020-07-30T18:00:00+00:00", "start": "18:00", "duration": "00:45", "room": "BoF", "slug": "juliacon2020-4815-juliagpu", "url": "https://pretalx.com/juliacon2020/talk/9X7V3A/", "title": "JuliaGPU", "subtitle": "", "track": null, "type": "Birds of Feather", "language": "en", "abstract": "Bird of a feather for the JuliaGPU ecosystem. Join the BoF channel on Discord.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "3C7UBC", "name": "Valentin Churavy", "avatar": null, "biography": "PhD Student at MIT", "public_name": "Valentin Churavy", "guid": "5f21f8f2-dc89-5fbd-bed2-e89c081c0337", "url": "https://pretalx.com/juliacon2020/speaker/3C7UBC/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/9X7V3A/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/9X7V3A/", "attachments": []}, {"guid": "4f900c30-416b-5573-9df9-4e59bbee9853", "code": "YPT9CQ", "id": 4797, "logo": "https://pretalx.com/media/juliacon2020/submissions/YPT9CQ/optNumFocus_LRG_PoEyme2.png", "date": "2020-07-30T18:45:00+00:00", "start": "18:45", "duration": "00:45", "room": "BoF", "slug": "juliacon2020-4797-numfocus-and-julia-project-finances", "url": "https://pretalx.com/juliacon2020/talk/YPT9CQ/", "title": "NumFOCUS and Julia project finances", "subtitle": "", "track": null, "type": "Birds of Feather", "language": "en", "abstract": "The Julia project is fiscally sponsored at NumFOCUS. In this session, we will discuss the projects income and expenditures, including the finances for JuliaCon.", "description": "Income for the Julia project comes primarily from JuliaCon sponsorships, and some individual contributions. Expenditures is primarily the organisation of JuliaCon, as well as smaller events and hackathon. Join the BoF channel on Discord.", "recording_license": "", "do_not_record": true, "persons": [{"code": "JR9GPS", "name": "Avik Sengupta", "avatar": "https://pretalx.com/media/avatars/JR9GPS_qh7TH6b.webp", "biography": "Avik Sengupta is VP Engineering and head of Julia Computing's European headquarters in London. Avik is the head of product development and software engineering at Julia Computing, contributor to open source Julia and maintainer of several Julia packages. Avik is the author of Julia High Performance, co-founder of two artificial intelligence startups in the financial services sector and creator of large complex trading systems for the world's leading investment banks. Prior to Julia Computing, Avik was co-founder and CTO at AlgoCircle and at Itellix, director at Lab49 and head of algorithmic solutions at Decimal Point Analytics. Avik earned his MS in Computational Finance at Carnegie Mellon and MBA Finance at the Indian Institute of Management in Bangalore.", "public_name": "Avik Sengupta", "guid": "bbff57bd-ba55-5fa4-9954-e719de47a91f", "url": "https://pretalx.com/juliacon2020/speaker/JR9GPS/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/YPT9CQ/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/YPT9CQ/", "attachments": []}, {"guid": "cbf4aa92-d2d4-5462-b60d-e0ce8792caff", "code": "LCDHAG", "id": 6180, "logo": null, "date": "2020-07-30T19:30:00+00:00", "start": "19:30", "duration": "00:45", "room": "BoF", "slug": "juliacon2020-6180-gather-town-social", "url": "https://pretalx.com/juliacon2020/talk/LCDHAG/", "title": "Gather Town Social", "subtitle": "", "track": null, "type": "Birds of Feather", "language": "en", "abstract": "A scheduled social on Gather Town will happen after the last talk finishes\nPlease join then (or indeed at any time) using https://gather.town/rBrwIUqeDkb5JTxu/juliacon2020", "description": "", "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/LCDHAG/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/LCDHAG/", "attachments": []}]}}, {"index": 8, "date": "2020-07-31", "day_start": "2020-07-31T04:00:00+00:00", "day_end": "2020-08-01T03:59:00+00:00", "rooms": {"Red Track": [{"guid": "4e6a9d0c-42ac-5c68-999b-9e1c5ca2e3ad", "code": "NPWSWB", "id": 4623, "logo": null, "date": "2020-07-31T12:30:00+00:00", "start": "12:30", "duration": "00:30", "room": "Red Track", "slug": "juliacon2020-4623-a-computational-textbook-for-teaching-data-science-with-julia", "url": "https://pretalx.com/juliacon2020/talk/NPWSWB/", "title": "A Computational Textbook for Teaching Data Science with Julia", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Data science and machine learning courses are in high demand with growing enrollments. We discuss our experience teaching a computational DS&ML course with 250+ students that is designed to scale. We highlight the use of experiential learning, just-in-time presentation of key concepts, and real-time feedback on students\u2019 understanding. We demo a computational textbook to make teaching a scalable DS&ML course easy. \n\nDEMO: https://mynerva.io/courses/register, code `juliacon2020`", "description": "Over the past two years at the University of Michigan, we have successfully taught computational data science and machine learning using Julia to over a thousand graduate students, spanning over 80 disciplines. We've scaled to support 275 enrolled students (Fall 2019) and expect to scale to over 500 in the very near future. The course is taught in a hybrid lecture-lab style which presents students with the opportunity to experience hands-on, interactive, inquiry-based learning. Student feedback has been overwhelmingly positive. We will present a hands-on demo, featuring selected content from the course, and invite the audience to experience it for themselves.\n\nWe will present our vision for an interactive computational textbook platform designed to stimulate deeper conversations between students and the material that they are attempting to master. The primary technique used to facilitate this deeper engagement is the punctuation of instructional content (such as motivation, math fundamentals, theorems, proofs, etc.) with short, self-contained exercises that are designed to allow the student to constantly check their understanding. Exercises include conceptual questions to check comprehension of the underlying content, auto-graded programming assignments to practice the ability to put ideas into practice as code, and free-response prompts to allow the student to make their own observations and draw the appropriate conclusions.\n\nThe effect of this constant \"self-checking\" is two-fold. First, students are forced to more rigorously develop foundational knowledge before moving on to more advanced topics. This sets students up for success when the more advanced content is presented and avoids the dreaded \"content paralysis\" phenomenon where students are overwhelmed by the sheer scope of content on first glance (this usually manifests itself as a student blindly running code in \u201crun-all mode\" in an attempt to produce the desired results instead of actually understanding what they are doing). Second, this framework allows an author to more carefully design content to encourage a guided learning experience. The author can design a narrative, complete with exposition (what is this algorithm?), conflict (when does it fail?), and resolution (how can we fix it?). Our demo will allow you to experience how much more immersive \u201cliving\u201d computational textbooks written in this way can be.", "recording_license": "", "do_not_record": false, "persons": [{"code": "CQME7G", "name": "Travis DePrato", "avatar": null, "biography": "Travis DePrato is an Experiential Learning Software Developer at the University of Michigan, working on developing new ways to teach courses in computer science, computational mathematics, and data science.", "public_name": "Travis DePrato", "guid": "7a3bede4-44d3-54c4-b7bd-058d2d7082d7", "url": "https://pretalx.com/juliacon2020/speaker/CQME7G/"}, {"code": "BUFAQT", "name": "Raj Rao", "avatar": null, "biography": "Professor of EECS at University of Michigan", "public_name": "Raj Rao", "guid": "3d2c7e8d-9b3d-572f-a5e4-2f00e63a93c2", "url": "https://pretalx.com/juliacon2020/speaker/BUFAQT/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/NPWSWB/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/NPWSWB/", "attachments": []}, {"guid": "d9df85f7-7a67-5e32-9128-e7bd6da6f2ab", "code": "VPUS7J", "id": 4755, "logo": null, "date": "2020-07-31T13:00:00+00:00", "start": "13:00", "duration": "00:10", "room": "Red Track", "slug": "juliacon2020-4755-introducing-the-hispanic-community-to-julia", "url": "https://pretalx.com/juliacon2020/talk/VPUS7J/", "title": "Introducing the Hispanic community to Julia", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "This talk gives the origin and development of the Spanish translation of the open-source book \u201cThink Julia\u201d, titled \u201cIntroducci\u00f3n a la Programaci\u00f3n en Julia\u201d. This book focuses on teaching to program with Julia as the first programming language and is one of the first books in Spanish about Julia. The goal of this translation is to facilitate the use of Julia in the Hispanic community; the English level of most Latin American countries is medium or low according to the English Proficiency Index.", "description": "For Julia, the diversity of users is fundamental for its development and growth. Users from different backgrounds, regions, ages, and social contexts can contribute with different perspectives, and promote its usage in their context. This talk presents our experience translating into Spanish the open-source book \u201cThink Julia\u201d, titled \u201cIntroducci\u00f3n a la Programaci\u00f3n en Julia\u201d. The goal of this translation is to facilitate the use of Julia in the Hispanic community. We will share how we planned and executed the translation, what we learned in the process, and why you might want to do something similar.\n\nThe talk will review the choice to translate an introductory text rather than the Julia manual, including its utility to students in secondary education (high-school). A brief history of ThinkJulia will be shared, including its license and the use of Julia to verify inline code excerpts. We will review the utility of PDF and online versions (see https://introajulia.org/). \"Intro a Julia\" will be presented as a valuable tool for Spanish coders without English proficiency.", "recording_license": "", "do_not_record": false, "persons": [{"code": "HSUYYR", "name": "Pamela Alejandra Bustamante Fa\u00fandez", "avatar": "https://pretalx.com/media/avatars/HSUYYR_k0tafn4.webp", "biography": "Pamela Bustamante is a PhD student from Pontificia Universidad Cat\u00f3lica de Chile. She has been using Julia since her undergraduate days at Universidad del B\u00edo-B\u00edo, Chile. Co-author of IntroAJulia.jl", "public_name": "Pamela Alejandra Bustamante Fa\u00fandez", "guid": "0385581b-ca9c-58aa-a9f8-02ffb43a26c3", "url": "https://pretalx.com/juliacon2020/speaker/HSUYYR/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/VPUS7J/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/VPUS7J/", "attachments": []}, {"guid": "f22ae5d7-64c8-5630-970b-3f33a254f0fd", "code": "YYWMPR", "id": 4747, "logo": "https://pretalx.com/media/juliacon2020/submissions/YYWMPR/Space_pod_Fxe9cka.png", "date": "2020-07-31T13:10:00+00:00", "start": "13:10", "duration": "00:10", "room": "Red Track", "slug": "juliacon2020-4747-no-overhead-game-development-in-julia", "url": "https://pretalx.com/juliacon2020/talk/YYWMPR/", "title": "No-overhead Game Development in Julia", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Game development is a great way to attract beginner programmers. However, they are often dissuaded by the accidental complexity. In this talk, I will show how to easily create a simple game without any framework overheads.", "description": "Every child who starts programming wants to build games. Evidence of this can be seen in the popularity of block-based languages like Scratch. However, once they move to text-based languages (such as Julia), they struggle with the overheads of game development libraries, rather than being able to simply express their ideas in code. In this talk, I will demonstrate how to build simple games without the difficulties of low-level game-development frameworks, using GameZero.jl, a Julia library inspired by the Pygame Zero package. The talk will describe the library through the use of a series of examples that progressively build games from the simple to the more complicated.", "recording_license": "", "do_not_record": false, "persons": [{"code": "A3J7CA", "name": "Ahan Sengupta", "avatar": "https://pretalx.com/media/avatars/A3J7CA_Tf6J0of.webp", "biography": "I am a 14-year-old student, currently attending the City of London School. I have always had a deep interest in programming, first starting with Scratch when I was quite young, then moving onto Python, then finally, a few years ago, Julia. I have since presented at JuliaCon 2018 and 2019 and therefore have some experience with the language.", "public_name": "Ahan Sengupta", "guid": "c78b4505-1083-5b76-a3d8-68bdeb704bf0", "url": "https://pretalx.com/juliacon2020/speaker/A3J7CA/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/YYWMPR/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/YYWMPR/", "attachments": []}, {"guid": "5e0439c0-0751-56b9-ac1f-821b5ef70434", "code": "HJTZNE", "id": 4724, "logo": "https://pretalx.com/media/juliacon2020/submissions/HJTZNE/Capture_2_uw1N9od.PNG", "date": "2020-07-31T13:20:00+00:00", "start": "13:20", "duration": "00:10", "room": "Red Track", "slug": "juliacon2020-4724-julia-track-google-code-in-and-beyond", "url": "https://pretalx.com/juliacon2020/talk/HJTZNE/", "title": "Julia Track Google Code In and Beyond", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "This talk will describe work done using the NeuralNetDiffEq & Flux packages, as part of the Google Code In 2019 program, including writing a second order ODE solver. I will also talk about pursuing Julia beyond GCI, including how I used Julia to create Corona-Net, a binary and multi-class symptoms localisation system for COVID-19. Through this talk, I hope share on how GCI with Julia has accelerated my progress in ML, and how Julia can be used to help contribute to the fight against COVID-19.", "description": "Some highlights for Google Code In were working with the NeuralNetDiffEq and Flux packages. In this talk, I will describe the process of writing a 2nd order ordinary differential equations solver using Neural Networks as part of GCI. Subsequently, I will cover how I used Flux to implement UNet's Fully-Convolutional Network architecture, for binary and multi-class (3 symptoms: ground glass, consolidation, pleural effusion) segmentation on the COVID-19 CT Segmentation Datasets, and discuss the Julia versus Python workflow in creating Corona-Net. Lastly, I will reflect on the impact of Google Code In Julia track on teenage ML & Open Source enthusiasts like myself, and how it ties in to my subsequent opportunities at NVIDIA. \n\n(A big thank you to Chris Rackauckas, Kirill Zubov, Avik Sengupta, Dhairya Gandhi, Avik Pal and Logan Kilpatrick for all their guidance in GCI, JuliaCon and beyond!)", "recording_license": "", "do_not_record": false, "persons": [{"code": "QFHKYS", "name": "Choi Ching Lam", "avatar": "https://pretalx.com/media/avatars/QFHKYS_OiCymDj.webp", "biography": "16 year old ML enthusiast, aspiring CV researcher, intern at NVIDIA's AI Tech Center", "public_name": "Choi Ching Lam", "guid": "038c92b4-7dfd-5f91-bed4-7e7cdd0af08b", "url": "https://pretalx.com/juliacon2020/speaker/QFHKYS/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/HJTZNE/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/HJTZNE/", "attachments": []}, {"guid": "538b8a0a-44ce-5ddf-96c2-debca42ba1a2", "code": "9GDBEW", "id": 4710, "logo": null, "date": "2020-07-31T13:30:00+00:00", "start": "13:30", "duration": "00:10", "room": "Red Track", "slug": "juliacon2020-4710-julia-in-education-for-generation-z", "url": "https://pretalx.com/juliacon2020/talk/9GDBEW/", "title": "Julia in Education for Generation Z", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "The students who belong to Generation Z or post-millennials have access to gadgets such as smartphones even before they go to school. This makes them technology savvy and at the same time, they get bored easily in a traditional classroom setting. It becomes necessary to use modern tools and techniques in the classroom to engage students in activities. In this BOF, I will demonstrate how we can use smartphone and visual programming tools to engage Generation Z students in the classroom.", "description": "The students who belong to Generation Z or post-millennials have access to gadgets such as smartphones even before they go to school. This makes them technology savvy and at the same time, they get bored easily in a traditional classroom setting. It becomes necessary to use modern tools and techniques in the classroom to engage students in activities. Also, governments are promoting \u201cBring Your Own Device (BYOD)\u201d concept in education which can be a boon to those who cannot afford a computer or laptop. In this BOF, I will demonstrate how Julia can be installed on a smartphone and execute Julia programs on the smartphone. Next, I will also introduce visual programming tools like flowgorithm which is a flowchart interpreter to generate Julia code (The Julia code generator for flowgorithm is available at https://github.com/gcdeshpande/Julia-Code-Generator).  Then I will demonstrate how we can import Python packages in Julia for creative programming. Then the session will be open for the audience where they can share their thoughts on the topic.", "recording_license": "", "do_not_record": false, "persons": [{"code": "CPJQQS", "name": "Gajendra Deshpande", "avatar": "https://pretalx.com/media/avatars/CPJQQS_Dy3rZGa.webp", "biography": "Mr. Gajendra Deshpande holds a master's degree in Computer Science and Engineering and working as Assistant Professor at the Department of Computer Science and Engineering, KLS Gogte Institute of Technology, Belagavi, Karnataka, India.  He has a teaching experience of 12 years and Linux and Network Administration experience of one year. Under his mentorship teams have won Smart India Hackathon 2018 and Smart India Hackathon 2019. He is the Technical Director for Sestoauto Networks Pvt. Ltd. and Founder of Thingsvalley. His areas of Interest include Programming, Web Designing, Cyber Security, Artificial Intelligence, Machine Learning, Brain-Computer Interface, Internet of Things and Virtual Reality. He has presented papers at NIT Goa, Scipy India 2017 IIT Bombay, JuliaCon 2018 London, Scipy India 2018 IIT Bombay, Scipy 2019 USA and PyCon France 2019.", "public_name": "Gajendra Deshpande", "guid": "c9d7383b-8dee-551a-af88-006a165ffe7d", "url": "https://pretalx.com/juliacon2020/speaker/CPJQQS/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/9GDBEW/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/9GDBEW/", "attachments": []}, {"guid": "8f52ea17-a371-5bd4-a3c8-2a5c769980ec", "code": "Z3RDBQ", "id": 4802, "logo": null, "date": "2020-07-31T13:40:00+00:00", "start": "13:40", "duration": "00:10", "room": "Red Track", "slug": "juliacon2020-4802-developing-an-exercise-based-julia-curriculum", "url": "https://pretalx.com/juliacon2020/talk/Z3RDBQ/", "title": "Developing an exercise-based Julia curriculum", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "We will share our learnings from creating a Julia curriculum on Exercism that teaches Julia to users with previous programming experience based on practice exercises, automated as well as community-sourced and individual human mentoring. Further we will share how Julia users teaching workshops or classes can benefit from our project, and why we think that Exercism benefits the community as a whole.", "description": "To motivate the development of the new version and curriculum of the Exercism Julia Track (referred to as v3 from now on), we will briefly outline the history of Exercism, and the major problems of previous versions, mainly large amounts of repeated work by mentors and a lack of structured progression through concepts that the student needs to learn when learning Julia. The human interaction and mentoring is the core of Exercism, and the v3 curriculum is built around making these interactions as meaningful as possible.\n\nDuring the development of v3, we first identified concepts that make Julia unique and that users must know in order to reach \u201cfluency\u201d in the language. Then, we built bite-sized concept exercises that teach these concepts, ideally isolated from other concepts. These will be mentored automatically based on a normalization of the solution and community-sourced feedback. Solving these exercises unlocks practice exercises that can be used to deepen learned concepts and allow many different approaches whose merits can be discussed with a human mentor.\n\nWhile there are many great resources for learning Julia, information on how to create such resources is scarce. By sharing our experiences, challenges and learnings from creating v3, we hope to encourage others to create learning resources and share our approach to creating one. Additionally, we believe that the tooling, primarily the normalization of solutions, and the exercise pool can be of use to others teaching Julia.", "recording_license": "", "do_not_record": false, "persons": [{"code": "EQ7JQA", "name": "Sascha Mann", "avatar": null, "biography": "Physics student from Cologne, Germany.", "public_name": "Sascha Mann", "guid": "991b2830-72e8-5015-9f0b-4704dbe338d8", "url": "https://pretalx.com/juliacon2020/speaker/EQ7JQA/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/Z3RDBQ/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/Z3RDBQ/", "attachments": []}, {"guid": "b8671ff4-dea0-517c-924a-497f31c9f91c", "code": "FHEGUA", "id": 4466, "logo": null, "date": "2020-07-31T13:50:00+00:00", "start": "13:50", "duration": "00:10", "room": "Red Track", "slug": "juliacon2020-4466-the-ups-and-downs-of-convincing-to-switch-to-julia-in-a-company", "url": "https://pretalx.com/juliacon2020/talk/FHEGUA/", "title": "The ups and downs of convincing to switch to Julia in a company", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "We will talk about the hurdles of trying to convince people at ASML to switch from a very entrenched MATLAB culture to Julia at times when people are just starting to switch to python.", "description": "ASML is company in the Netherlands which is the world leader on photo-lithographic system which are crucial for semi-conductor manufacture. For many years its engineers have been using MATLAB to develop hardware and algorithms that are usually rewritten in C/C++ on the main photo-lithography systems. This is the well known *two-language problem* and for mission critical systems this has been accepted for long time.\n\nFor several years ASML has been expanding its market to Analytics and Software for process optimization for which the two-language problem seems to be a little less forgiving than for hardware because time to market is a larger driving force. \n\nFor this Julia seems to be a natural candidate to solve the problem. However as this talk will show it is hard to convince \"normal\" engineers to switch from their trusted tried and truth tools. Moreover, it's even harder to convince them to switch to a relatively unknown/unfamiliar language than a more mainstream like python ... even when it's not the right tool for the job. Which makes things even more difficult is that managers also have a say on this and most think that this is just a fad.\n\nThis presentation will give an overview of common reactions, comments and attitudes, and hopefully a guide on how to work around them.", "recording_license": "", "do_not_record": true, "persons": [{"code": "QCZCDE", "name": "Jorge Alberto Vieyra Salas", "avatar": null, "biography": "Born in Mexico City. Studied a Bachelors in Chemical Engineering at UNAM. M.Sc. on Materials Science and Engineering at MIT. Studied PhD at TU Eindhoven on Applied Physics.\nWorked for Philips Research 1 year.\nWorking at ASML for 7 years on algorithms.", "public_name": "Jorge Alberto Vieyra Salas", "guid": "37fbaeb6-ab74-5f69-8b77-40fdd41c7774", "url": "https://pretalx.com/juliacon2020/speaker/QCZCDE/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/FHEGUA/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/FHEGUA/", "attachments": []}, {"guid": "b55573a8-0991-5548-a7dd-199c50cd26ac", "code": "LG3GQP", "id": 5085, "logo": null, "date": "2020-07-31T14:20:00+00:00", "start": "14:20", "duration": "00:45", "room": "Red Track", "slug": "juliacon2020-5085-keynote-linda-petzold", "url": "https://pretalx.com/juliacon2020/talk/LG3GQP/", "title": "Keynote: Linda Petzold", "subtitle": "", "track": null, "type": "Keynote", "language": "en", "abstract": "TBA", "description": "TBA", "recording_license": "", "do_not_record": false, "persons": [{"code": "D9VK7X", "name": "Linda Petzold", "avatar": null, "biography": null, "public_name": "Linda Petzold", "guid": "faab5e0b-53a4-5b2f-aa3d-b57853df8174", "url": "https://pretalx.com/juliacon2020/speaker/D9VK7X/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/LG3GQP/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/LG3GQP/", "attachments": []}, {"guid": "ed150b27-defd-5dcd-b449-13314c1cd9f5", "code": "PLFURQ", "id": 4487, "logo": "https://pretalx.com/media/juliacon2020/submissions/PLFURQ/logo_ypMahdA.png", "date": "2020-07-31T15:10:00+00:00", "start": "15:10", "duration": "00:10", "room": "Red Track", "slug": "juliacon2020-4487-pkg-update-or-what-s-going-on-in-pkg-land", "url": "https://pretalx.com/juliacon2020/talk/PLFURQ/", "title": "Pkg.update() or What's going on in Pkg-land?", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Julia 1.0 was released two years ago and with that a brand new, rewritten from scratch, package manager called `Pkg`. This talk summarizes some of the improvements and features that have been added to `Pkg` since Julia 1.0 was released and also gives an overview of some of the plans for the future.", "description": "The new package manager, `Pkg`, that comes with Julia 1.0 had many improvements over the previous one. However, just because Julia 1.0 was released, did not mean that the work on Pkg stopped. The biggest feature that has landed is the [Artifact system](https://julialang.org/blog/2019/11/artifacts/) which got added in 1.3. There are however also some other, smaller features that might have gone under the radar, for example:\n\n- New resolver strategy to reduce the number of resolver errors when adding packages but also reduce the number of unnecessary updates to packages when adding a package.\n- Built-in support for managing registries.\n- Argument passing to the test process\n- Support for instantiating a manifest without a corresponding project file.\n\nIn addition, there are some exciting features that are in development some of which are listed below:\n\n- Offline mode (aka airplane mode) allows one to develop packages in a convenient manner even while being offline.\n- Community driven hosting of packages and artifacts allows for package authors to see e.g. download stats for their packages.\n- Multiple packages in one repo.\n\nThis talk will summarize the new features of `Pkg` since 1.0 and also give an overview of plans and work in progress for future `Pkg` releases.", "recording_license": "", "do_not_record": false, "persons": [{"code": "AS3MKE", "name": "Kristoffer Carlsson", "avatar": "https://pretalx.com/media/avatars/AS3MKE_SxjKovB.webp", "biography": "- Contributor to Base and many packages (Pkg.jl, OhMyREPL.jl, PGFPlotsX.jl, TimerOutputs.jl, JuAFEM.jl,  NearestNeighbors.jl, etc)\n- Release manager for Julia.\n- Software engineer at Julia Computing.\n- PhD-student in mechanical engineering at Chalmers University of Technology, Sweden.", "public_name": "Kristoffer Carlsson", "guid": "594ec697-a1bb-5816-9ffd-c92c93250002", "url": "https://pretalx.com/juliacon2020/speaker/AS3MKE/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/PLFURQ/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/PLFURQ/", "attachments": []}, {"guid": "72dfc423-65e9-5e9d-b230-884adf27d0f7", "code": "RMGYYX", "id": 4808, "logo": "https://pretalx.com/media/juliacon2020/submissions/RMGYYX/10791402_ztQkys2.png", "date": "2020-07-31T15:20:00+00:00", "start": "15:20", "duration": "00:30", "room": "Red Track", "slug": "juliacon2020-4808-lessons-learned-on-trait-based-descriptions-of-graphs", "url": "https://pretalx.com/juliacon2020/talk/RMGYYX/", "title": "Lessons learned on trait-based descriptions of graphs", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "LightGraphs has been structured around a graph interface, which is used by algorithms without assuming anything on the underlying data structure. Few months ago, we realized it was implicitly assumed in some places that the graph vertices are contiguous integers starting from one. Making this assumption explicit for each graph type allows users to describe more properties of their types, and to indicate in the signature of algorithms whether this assumption is necessary.", "description": "The talk will cover the definition of interfaces for a Julia ecosystem and advantage of a trait-based approach, these two topics being of interest not only for graphs, but for other packages defining a common interface to reason on.", "recording_license": "", "do_not_record": false, "persons": [{"code": "DK9KDB", "name": "Mathieu Besan\u00e7on", "avatar": "https://pretalx.com/media/avatars/DK9KDB_HEB0su3.webp", "biography": "Mathieu is a PhD candidate in a double program between Polytechnique Montreal & INRIA Lille. His research focuses on mathematical optimization models and applications for power grids. Outside research, he also works on open-source projects around mathematical optimization, graphs and statistics.", "public_name": "Mathieu Besan\u00e7on", "guid": "5faab441-b124-5470-afa0-57e75ffb7f11", "url": "https://pretalx.com/juliacon2020/speaker/DK9KDB/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/RMGYYX/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/RMGYYX/", "attachments": []}, {"guid": "34d8b153-f209-5535-8780-07f75e90fed0", "code": "HBTFT7", "id": 4770, "logo": null, "date": "2020-07-31T16:10:00+00:00", "start": "16:10", "duration": "00:30", "room": "Red Track", "slug": "juliacon2020-4770-using-vs-code-for-julia-development", "url": "https://pretalx.com/juliacon2020/talk/HBTFT7/", "title": "Using VS Code for Julia development", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "This talk will demonstrate how one can use the Julia extension for VS Code effectively. Special emphasis will be given to new features like the debugger, the workspace view, remote scenarios and support for Julia Notebooks (if finished by Juliacon).", "description": "This talk is targeted as novel and experienced users of the Julia VS Code extension. I will provide an overview of the basic functionality, showcase tricks and good practice. I will also introduce a number of major new features that have been introduced since the last Juliacon:\n- the debugger and how to effectively use it.\n- the workspace view and how to effectively use it.\n- support for Julia Notebooks, how they work and how one can use them.\n- how one can use the remote capabilities of VS Code for Julia developments (including VS online).", "recording_license": "", "do_not_record": false, "persons": [{"code": "7JQFVF", "name": "David Anthoff", "avatar": "https://pretalx.com/media/avatars/7JQFVF_6hMSzX4.webp", "biography": "David Anthoff is an environmental economist who studies climate change and environmental policy. He co-develops the integrated assessment model FUND that is used widely in academic research and in policy analysis. His research has appeared in Science, the Journal of Environmental Economics and Management, Environmental and Resource Economics, the Oxford Review of Economic Policy and other academic journals. He contributed a background research paper to the Stern Review and has advised numerous organizations (including US EPA and the Canadian National Round Table on the Environment and the Economy) on the economics of climate change.\n\nHe is an assistant professor in the Energy and Resources Group at the University of California, Berkeley. Previously he was an assistant professor in the School of Natural Resources and the Environment of the University of Michigan, a postdoc at the University of California, Berkeley and a postdoc at the Economic and Social Research Institute in Ireland. He also was a visiting research fellow at the Smith School of Enterprise and the Environment, University of Oxford.\n\nHe holds a PhD (Dr. rer. pol.) in economics from the University of Hamburg (Germany) and the International Max Planck Research School on Earth System Modelling, a MSc in Environmental Change and Management from the University of Oxford (UK) and a M.Phil. in philosophy, logic and philosophy of science from Ludwig-Maximilians-Universit\u00e4t M\u00fcnchen (Munich, Germany).", "public_name": "David Anthoff", "guid": "bcf50455-31c2-51ca-955a-1ed8f65d0d65", "url": "https://pretalx.com/juliacon2020/speaker/7JQFVF/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/HBTFT7/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/HBTFT7/", "attachments": []}, {"guid": "52bdda02-bd68-5c40-ac68-f7a52cf0e9b5", "code": "KZK93G", "id": 4836, "logo": null, "date": "2020-07-31T16:40:00+00:00", "start": "16:40", "duration": "00:30", "room": "Red Track", "slug": "juliacon2020-4836-display-show-and-print-how-julia-s-display-system-works", "url": "https://pretalx.com/juliacon2020/talk/KZK93G/", "title": "Display, show and print -- how Julia's display system works", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "After executing Julia code you are presented with the result. If you are working in the Julia REPL you are usually seeing just a basic text representation. However, in other environments, such as in a Jupyter notebook, you sometimes see a more rich representation of the output. This talk will present how Julia's display system works when presenting output to the user, which methods are called when, and how to implement \"pretty printing\" for custom types.", "description": "When Julia finishes a computation and obtains a value the user is presented with the result. In the Julia REPL the result is usually represented as plain text. In other environments, such as in a Jupyter notebook, you sometimes see more rich representations, for example some values display as HTML, and others as images.\n\nThe main functions responsible for output in Julia are `display` and `show`. Usually `display` is the first method to be called when an object is presented to the user. The `display` function is implemented by displays such as the Julia REPL, the IDE or the notebook interface. Next, `display` requests output from `show` with a specific so-called MIME-type. Which MIME-types that are requested depends on what output the display is able to present back to the user. For example, the REPL mostly works with the `text/plain` MIME-type, and the notebook display supports multiple additional MIME-types, for example `image/png` for image output, `text/html` for HTML output, and so on. Given this rough overview the display system might seem rather simple, but there are many hidden complexities.\n\nIn order to take advantage of the rich display system and implement \"pretty printing\" for a custom type it is generally enough to implement methods of `show` with specific MIME-types. All types get a default text representation, but this can easily be overridden by implementing `show` with the `text/plain` MIME type. If the type can be represented in richer formats it is simple to add additional methods. For example, in order to support image output in a notebook it is enough to implement `show` with the `image/png` MIME type.\n\nThis talk will present how Julia's display system works and go through the process of taking an output object and generating output to present the user with. The talk will also examplify this process by discussing how to customize the output for your own types.", "recording_license": "", "do_not_record": false, "persons": [{"code": "FTWNWJ", "name": "Fredrik Ekre", "avatar": null, "biography": "I am a PhD student in computational material mechanics and use Julia both for research, procrastination and as a hobby. Long time contributor to Julia and various packages.", "public_name": "Fredrik Ekre", "guid": "67c8ce82-70d7-535a-8856-afb916c0cb0e", "url": "https://pretalx.com/juliacon2020/speaker/FTWNWJ/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/KZK93G/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/KZK93G/", "attachments": []}, {"guid": "f43696e6-1df0-5bca-b600-05b5e9b709e6", "code": "S9TDNB", "id": 6176, "logo": null, "date": "2020-07-31T17:10:00+00:00", "start": "17:10", "duration": "00:05", "room": "Red Track", "slug": "juliacon2020-6176-invenia", "url": "https://pretalx.com/juliacon2020/talk/S9TDNB/", "title": "Invenia", "subtitle": "", "track": null, "type": "Sponsor Talk", "language": "en", "abstract": "A message from our sponsor: https://www.invenia.ca/", "description": "", "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/S9TDNB/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/S9TDNB/", "attachments": []}, {"guid": "d668fb06-ed96-583e-9378-10421d0c5821", "code": "T7VKHM", "id": 6177, "logo": null, "date": "2020-07-31T17:15:00+00:00", "start": "17:15", "duration": "00:05", "room": "Red Track", "slug": "juliacon2020-6177-pumas", "url": "https://pretalx.com/juliacon2020/talk/T7VKHM/", "title": "Pumas", "subtitle": "", "track": null, "type": "Sponsor Talk", "language": "en", "abstract": "A message from our sponsor. https://pumas.ai/", "description": "", "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/T7VKHM/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/T7VKHM/", "attachments": []}, {"guid": "2ff67c84-2045-5f3a-b33a-28ac9e9d0f3f", "code": "ER3ZYC", "id": 4227, "logo": null, "date": "2020-07-31T17:20:00+00:00", "start": "17:20", "duration": "00:10", "room": "Red Track", "slug": "juliacon2020-4227-changing-the-immutable", "url": "https://pretalx.com/juliacon2020/talk/ER3ZYC/", "title": "Changing the immutable", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "We discuss the problem of updating immutable objects. The solutions presented are implemented in the [`Setfield.jl`](https://github.com/jw3126/Setfield.jl) package.", "description": "In Julia, some objects are *mutable* (`Array`, `mutable struct`, `...`), while others are *immutable* (`Tuple`, `struct`, `...`). Neither is strictly better than the other in every situation. However, *immutability* usually leads to code that is easier to reason about, for both humans and compilers. And therefore less buggy and more performant programs.\nOne convenience with mutability is, that it makes updating objects very simple:\n\n`spaceship.captain.name = \"Julia\"`\n\nThe analogous operation in the immutable case is to create a copy of `spaceship`, with just the captain's name changed to \"Julia\".\nJust think for a moment, how would you achieve this? It is a serious obstacle to adopting immutables in practice. The title \"Changing the immutable\" refers to this and similar problems. There are various approaches, for instance, https://github.com/JuliaLang/julia/pull/21912 .\n\nI would like to talk about this problem and present one solution, namely [`Setfield.jl`](https://github.com/jw3126/Setfield.jl). In the spirit of Julia, it is dirt simple to learn:\n\n`@set spaceship.captain.name = \"Julia\"`\n\nyet keeps the most serious hackers happy (as it is built around the beautiful concept of [lenses](https://hackage.haskell.org/package/lens)).", "recording_license": "", "do_not_record": false, "persons": [{"code": "RSTHFY", "name": "Jan Weidner", "avatar": null, "biography": "Mathematician and Julia enthusiast working in medical physics.", "public_name": "Jan Weidner", "guid": "b39ab7c5-4d90-5eb2-9cf6-f576dbb5b292", "url": "https://pretalx.com/juliacon2020/speaker/RSTHFY/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/ER3ZYC/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/ER3ZYC/", "attachments": []}, {"guid": "b87f7c17-10b6-592a-81d6-3c77b526d514", "code": "ZRC8HA", "id": 4062, "logo": null, "date": "2020-07-31T17:30:00+00:00", "start": "17:30", "duration": "00:10", "room": "Red Track", "slug": "juliacon2020-4062-smarthomy-julia-controlling-your-home-and-life", "url": "https://pretalx.com/juliacon2020/talk/ZRC8HA/", "title": "SmartHomy: Julia controlling your home and life!", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "After fighting with a Python smarthome implementation, I re-implemented it in Julia. I'll show how I set up Julia on a Raspberry Pi, control the sensors & devices with a mix of PyCall & Julia libraries, and how I unite it all under a UI written with JSServe.jl.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "JSJDXE", "name": "Simon Danisch", "avatar": "https://pretalx.com/media/avatars/JSJDXE_fZrtTfz.webp", "biography": "Simon has been working with Julia for around 7 years by now. Some of the packages he created include:\n\n* [GeometryTypes](https://github.com/JuliaGeometry/GeometryTypes.jl)\n* [GPUArrays](https://github.com/JuliaGPU/GPUArrays.jl)\n* [Makie](https://github.com/JuliaPlots/Makie.jl/)\n* [PackageCompiler](https://github.com/JuliaLang/PackageCompiler.jl/)\n* [JSServe](https://github.com/SimonDanisch/JSServe.jl)\n\nAnd lots of others! \nNoways, Simon works for Beacon-Biosignals on visualizing EEG data!", "public_name": "Simon Danisch", "guid": "9fe14921-7cb7-55ed-abe4-d22427bd2b37", "url": "https://pretalx.com/juliacon2020/speaker/JSJDXE/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/ZRC8HA/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/ZRC8HA/", "attachments": []}, {"guid": "f1bae375-44b5-526b-a0de-1667a03b925c", "code": "MCFFUY", "id": 4810, "logo": null, "date": "2020-07-31T18:00:00+00:00", "start": "18:00", "duration": "01:30", "room": "Red Track", "slug": "juliacon2020-4810-minisymposium-on-partial-differential-equations", "url": "https://pretalx.com/juliacon2020/talk/MCFFUY/", "title": "Minisymposium on Partial Differential Equations", "subtitle": "", "track": null, "type": "Minisymposia", "language": "en", "abstract": "Chairs: \nJ\u00fcrgen Fuhrmann (Weierstrass Institute Berlin), \nPetr Krysl (UCSD)\n\nThe talks at the minisymposium present several packages devoted to the solution of partial differential equations based on various approaches to space discretization including finite element, finite volume, boundary element and neural networks.\nDuring the conference chat, developments of the PDE simulation infrastructure shall be discussed.", "description": "Julia with its near optimal scalar performance, built-in multithreading, multiprocessing, and packages for GPU computing in combination with its generic programming facilities provides a new opportunities to implement high- performing and easy to uses packages for PDE solution.\n\nOn the other hand, it is likely that the full potential of Julia with respect to this problem class has not been reached yet. The ecosystem of packages and the language itself have barely matured.\n\nWe propose a minisymposium whose contributors present their Julia packages connected with the solution of partial differential equations and systems thereof. The talks shall  appeal to a broader public.\n\nUpdated July, 26:\n\nThe following pre-recorded talks will be given:\n\n- Petr Krysl: \"Julia for PDEs: Come for the speed, stay for ... much more\" 10min\n- J\u00fcrgen Fuhrmann: \"VoronoiFVM.jl: Finite Volume Methods for Nonlinear Multiphysics Problems\" 17min \n- Kristof Cools:  'BEAST.jl - Minisymposium on Partial Differential Equations\"  19min\n- Kirill Zubov: \"NeuralPDE.jl: Physics Informed Neural Networks for Automated PDE solving\" 15min\n- Michael Reed: \"Grassmann.jl - Minisymposium on Partial Differential Equations\" 17min\n\nDuring the remaining time, we will discuss the state of Julia concerning the solution of partial differential equations:\n\n- What are the pieces that are in your opinion missing from the Julia for PDE ecosystem?\n- What would make the ecosystem easier to use for\u00a0novice users?\n- What would make it easier to collaborate?\n- What do you see as a role for the Julia PDE organization?", "recording_license": "", "do_not_record": false, "persons": [{"code": "XR3TFU", "name": "J\u00fcrgen Fuhrmann", "avatar": "https://pretalx.com/media/avatars/XR3TFU_542S37m.webp", "biography": "J\u00fcrgen Fuhrmann was born in 1961 in Erfurt, Germany. He received his Diploma in mathematics from Moscow State University in 1984 and his Ph.D.\nfrom Technical University Chemnitz in 1995. He is with Weierstrass Institute for Applied Analysis and Stochastics resp. its predecessor institution since 1984. He is deputy head of the research group \"Numerical Mathematics and Scientific Computing\". His present research interests focus on discretization methods, algorithms and software development for drift-diffusion systems in electrochemistry and semiconductor physics.", "public_name": "J\u00fcrgen Fuhrmann", "guid": "111f548f-bf01-5421-8b66-c47ae216333c", "url": "https://pretalx.com/juliacon2020/speaker/XR3TFU/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/MCFFUY/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/MCFFUY/", "attachments": []}], "Green Track": [{"guid": "3f69f93c-d134-5b73-b37d-2e0e0a237736", "code": "79FJUW", "id": 4647, "logo": null, "date": "2020-07-31T12:30:00+00:00", "start": "12:30", "duration": "00:30", "room": "Green Track", "slug": "juliacon2020-4647-generic-manpower-simulation-engine-a-simjulia-case-study", "url": "https://pretalx.com/juliacon2020/talk/79FJUW/", "title": "Generic Manpower Simulation Engine: a SimJulia case study", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Proper HR management within an organisation is vital in the current day and age. Because of this task\u2019s complexity, managers should be able to rely on good tools or models to support them, so they can gauge the short and long term impact of their decisions before making them. To this end, we developed a generalised manpower simulation engine in Julia, using SimJulia. We present this tool\u2019s main features, highlight some of the encountered difficulties, and illustrate how it can be employed.", "description": "Many studies have shown that proper human resource management is vital to the success of any organisation. This means that managers need to balance the needs of the organisation with the needs of their employees, and are required to make well-informed planning decisions. One part of the problem covers short term planning, such as setting up employee rosters to ensure an appropriate distribution of the workload over the employees. The other part deals with long term manpower planning, and usually concerns hiring and promotion policies to meet the organisation\u2019s goals without alienating its employees. Naturally, any of the planning decisions have to be made within a certain legal framework that the organisation cannot influence.\nAs such, such decisions are too important to be left to the manager\u2019s \"gut feeling\". Instead, they can rely on a variety of mathematical models to provide invaluable insights to allow them to make the appropriate decisions. These models can be of various types: Markov models, optimisation models using mathematical programming, stochastic simulation models, or system dynamics models, each with their own benefits and drawbacks.\nIn particular, we have chosen to develop a tool, the Generic Manpower Simulation Engine (GMSE), based on stochastic simulation, as an organisation\u2019s internal structure and policies are often too complex and varied to be able to estimate all the effects of a particular change. Instead, our tool allows the user to define the structure of the organisation and its policies, entering only the direct effect these policies have on the personnel members of that organisation. Once the system is configured, the user can then run the simulation for the period of interest, and request reports on the state of the organisation at any time point covered by the simulation. This allows the user to get a prediction of the full impact of specific proposed policy changes, among other applications.\nThe GMSE is developed entirely in Julia with the SimJulia library at its core, and provides all the necessary methods to fully configure a manpower simulation from within Julia for the expert user, as well as a way to configure one from MS Excel.\nIn addition to giving an overview of the GMSE, we will show how we use the SimJulia library, and we illustrate some of the challenges we faced, and how we decided to handle those challenges. Finally, we give a quick overview of how we can use the GMSE to optimise the organisation\u2019s policies.", "recording_license": "", "do_not_record": false, "persons": [{"code": "WBWK8K", "name": "Johan Van Kerckhoven", "avatar": null, "biography": "JOHAN VAN KERCKHOVEN graduated from the Vrije Universiteit Brussel (VUB) in Brussels as a Master in Mathematics (Licentiaat in de Wiskunde), with specialisation in statistics, in 2002. He worked as a university researcher, specialising in variable selection methods in predictive modelling and robust statistics, and teaching assistant at various Belgian universities (2002-2012), obtaining his PhD in Applied Economics in 2008 at the Katholieke Universiteit Leuven. From 2012-2016 he worked as market risk modeller at KBC. He joined the department MWMW of the Royal Military Academy as a researcher in 2016, specialising in (discrete event) simulation, in particular using SimJulia.", "public_name": "Johan Van Kerckhoven", "guid": "42615d12-3071-5aa8-aa78-d6f5d0f7526e", "url": "https://pretalx.com/juliacon2020/speaker/WBWK8K/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/79FJUW/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/79FJUW/", "attachments": []}, {"guid": "f5092d31-dfe7-5286-8d27-3e86beed256a", "code": "S9BVBR", "id": 4082, "logo": null, "date": "2020-07-31T13:00:00+00:00", "start": "13:00", "duration": "00:10", "room": "Green Track", "slug": "juliacon2020-4082-migrating-to-jump-leaving-behind-domain-specific-languages", "url": "https://pretalx.com/juliacon2020/talk/S9BVBR/", "title": "Migrating to JuMP: Leaving Behind Domain Specific Languages", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "To increase transparency and partnership opportunities, the Department of Energy funded an [open source release](https://github.com/NREL/reopt_api) of NREL developed [REopt](https://reopt.nrel.gov/). The optimization model that powers REopt was originally written in a domain specific, proprietary modeling language called Mosel. This transition required some python-familiar engineers to learn Julia and the JuMP package. This talk will detail our experience and what we learned along the way.", "description": "The REopt\u2122 techno-economic decision support platform is used by the National Renewable Energy Laboratory (NREL) researchers to optimize energy systems for buildings, campuses, communities, microgrids, and more. REopt recommends the optimal mix of renewable energy, conventional generation, and energy storage technologies to meet cost savings, resilience, and energy performance goals.", "recording_license": "", "do_not_record": false, "persons": [{"code": "9ARXRF", "name": "Josiah Pohl", "avatar": "https://pretalx.com/media/avatars/9ARXRF_ld3pToa.webp", "biography": "Josiah is an optimization engineer in the Modeling and Analysis Group in the Integrated Applications Center. He has experience in engineering analysis, data-driven decision support, and applied operations research. Josiah performs techno-economic analysis with REopt, an optimization model focused on integration and distributed energy resources.\n\nJosiah is an advocate for furthering the usage of operations research techniques in engineering disciplines and is a member of the Institute of Operations Research and the Management Sciences (INFORMS).", "public_name": "Josiah Pohl", "guid": "4df7a04b-2ab9-5921-ae1f-8cbe6185a8e1", "url": "https://pretalx.com/juliacon2020/speaker/9ARXRF/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/S9BVBR/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/S9BVBR/", "attachments": []}, {"guid": "e39a7762-3881-5e72-8d05-e46965684222", "code": "V3QDAM", "id": 4452, "logo": null, "date": "2020-07-31T13:10:00+00:00", "start": "13:10", "duration": "00:10", "room": "Green Track", "slug": "juliacon2020-4452-crash-course-in-energy-systems-modeling-and-analysis-with-julia", "url": "https://pretalx.com/juliacon2020/talk/V3QDAM/", "title": "Crash Course in Energy Systems Modeling and Analysis with Julia", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Do you want to customize an energy systems market model? Do you have trouble parsing data from various tools? Do you want to interactively explore your model results? This 0-60 crash course will get you up and going on energy systems modeling and analysis with Julia using **PowerSystems.jl**, **PowerSimulations.jl**, **PowerModels.jl**, and **PowerGraphics.jl**.", "description": "Researchers at the U.S. National Renewable Energy Laboratory (NREL) have developed a new suite of infrastructure modeling capabilities to understand emerging energy systems operations and planning challenges. This talk will introduce the power systems modeling and analysis capabilities enabled by NREL researchers. Basic overviews of the following packages and associated capabilities will be presented:\n - **PowerSystems.jl:** Power system data specification, parsing, and analysis.\n - **PowerSimulations.jl:** Optimal power system scheduling, production cost modeling, and quasi-static system simulation.\n - **PowerGraphics.jl:** Visualization and analysis of power systems simulation results.", "recording_license": "", "do_not_record": false, "persons": [{"code": "ZWPRXJ", "name": "Dheepak Krishnamurthy", "avatar": "https://pretalx.com/media/avatars/ZWPRXJ_68yWH0n.webp", "biography": "Dheepak is an energy system research engineer working at the National Renewable Energy Laboratory. He is interested in energy, optimization and high performance computing.", "public_name": "Dheepak Krishnamurthy", "guid": "e88d6fa2-9e41-59f0-b63e-3737fd9a56a5", "url": "https://pretalx.com/juliacon2020/speaker/ZWPRXJ/"}, {"code": "KUWVG3", "name": "Clayton Barrows", "avatar": null, "biography": null, "public_name": "Clayton Barrows", "guid": "48715c28-9406-53d2-aecf-e0b47e051179", "url": "https://pretalx.com/juliacon2020/speaker/KUWVG3/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/V3QDAM/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/V3QDAM/", "attachments": []}, {"guid": "fa9cf398-905e-5f85-99de-0ea0ec442424", "code": "ETWX8X", "id": 4537, "logo": null, "date": "2020-07-31T13:20:00+00:00", "start": "13:20", "duration": "00:10", "room": "Green Track", "slug": "juliacon2020-4537-hydropowermodels-jl-impacts-of-network-simplifications", "url": "https://pretalx.com/juliacon2020/talk/ETWX8X/", "title": "HydroPowerModels.jl: Impacts of Network Simplifications", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Planning the operation of Power Systems is an important task to guarantee\u00a0low operational costs and reliability. In practice, model simplifications are used given problem complexity. The objective of this work is to propose a framework, comprised of a methodology and the [HydroPowerModels.jl](https://github.com/andrewrosemberg/HydroPowerModels.jl) Julia package for testing the operative and economic impact of modeling simplifications over the network power-flow in hydrothermal power systems.", "description": "One of the most efficient algorithms for solving hydrothermal operation planning problems, which are large-scale multi-stage stochastic models, is the so-called stochastic dual dynamic programming (SDDP) algorithm. Operation planning of power systems aims to assess the value of the scarce resources (e.g. water) to feed short-term dispatch models used in the actual implementation of the decisions. When the planning model significantly deviates from the reality of the implemented operation, decision policies are said to be time-inconsistent. Recent literature has explored different sources of inconsistency such as time-inconsistent dynamic risk measures, inaccurate representation of the information process and simplifications in the network planning model. This work addresses the time-inconsistency due to simplifications in the network representation in the planning model extending the existing literature.\n\nThe objective of this work is to propose a framework, comprised of a methodology and an open-source computational package, for testing the operative and economic impact of modeling simplifications over the network power-flow in hydrothermal power systems.\u00a0\n\nIn this presentation, we will discuss how the [HydroPowerModels.jl](https://github.com/andrewrosemberg/HydroPowerModels.jl) package models hydrothermal\u00a0operation planning problems and how we have to use it to study the impacts of time-inconsistency in the operation of hydrothermal power systems.", "recording_license": "", "do_not_record": false, "persons": [{"code": "JATRBX", "name": "Andrew Rosemberg", "avatar": "https://pretalx.com/media/avatars/JATRBX_m5Gfi9p.webp", "biography": "Andrew received a BSc in control engineering from PUC-RIO and a BSc in general engineering from \u00c9cole Centrale de Marseille. He also holds a master's in Electrical Engineering with an emphasis on Operation Research, focusing on Power Systems and Energy markets. Some of his previous projects revolve around energy economic dispatch analysis and simulation, financial data classification and portfolio optimization. His main interests are optimization, decisions under uncertainty and machine learning.\nCurrently, Andrew is part of the Research team at Invenia Labs.", "public_name": "Andrew Rosemberg", "guid": "86709553-7d4c-5514-bcc3-fea53995f77e", "url": "https://pretalx.com/juliacon2020/speaker/JATRBX/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/ETWX8X/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/ETWX8X/", "attachments": []}, {"guid": "c92bbd18-2787-546d-ae43-76bcd2f67d66", "code": "ELXNUQ", "id": 3704, "logo": null, "date": "2020-07-31T13:30:00+00:00", "start": "13:30", "duration": "00:10", "room": "Green Track", "slug": "juliacon2020-3704-solving-practical-allotment-problems-with-julia", "url": "https://pretalx.com/juliacon2020/talk/ELXNUQ/", "title": "Solving Practical Allotment Problems with Julia", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Allotting the best possible choice to each individual as per their preferences while adhering to total available positions and satisfying quality constraints is a common practical problem. Using Julia helped us get a tenfold speedup over our previous Python implementation.", "description": "Allotting interviewers to candidates, teaching assistants to courses, and invigilators to exams are routine problems at our university. These types of problems are combinatorially hard to solve and consumed significant staff-hours for manually coming up with decent allotments. We model such allotment problems as a Bipartite graph matching and develop a stochastic optimization approach to obtain an approximate solution. We developed a computational approach requiring no manual effort, which offers better allotments than previous manual solutions. We initially implemented this in Python, which brought down the time required for obtaining an allotment to a couple of CPU-hours. By reimplementing the solver in Julia, we got a speedup of 13x over the Python implementation. In particular, we were surprised to find how fast Julia is for implementing iterative algorithms.", "recording_license": "", "do_not_record": false, "persons": [{"code": "X8ZTSA", "name": "Saurabh Kumar", "avatar": "https://pretalx.com/media/avatars/X8ZTSA_Ms9kkVB.webp", "biography": "I am a Ph.D. student with the Vision and Image Processing Group at the Indian Institute of Technology Bombay. My research interests are Computational Cameras and Machine Learning. Apart from my research, I work on side projects on Automation and Visualization.", "public_name": "Saurabh Kumar", "guid": "a7cac11d-5616-5b7d-bd85-9a51404ea6a1", "url": "https://pretalx.com/juliacon2020/speaker/X8ZTSA/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/ELXNUQ/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/ELXNUQ/", "attachments": []}, {"guid": "6b634cfa-c8c7-5bd0-86d6-4efff4317cc0", "code": "ZMHR9V", "id": 4648, "logo": null, "date": "2020-07-31T13:40:00+00:00", "start": "13:40", "duration": "00:10", "room": "Green Track", "slug": "juliacon2020-4648-a-parallel-time-domain-power-system-simulation-toolbox-in-julia", "url": "https://pretalx.com/juliacon2020/talk/ZMHR9V/", "title": "A Parallel Time-Domain Power System Simulation Toolbox in Julia", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "This talk introduces a new flexible and extendable parallel time-domain simulation toolbox developed in Julia for the analysis of power system dynamics in large networks. The simulation algorithm adapts a parallel-in-space decomposition scheme to a sequential algorithm to create parallelizable tasks in the numerical solution of the power system analysis problem. Test simulations using a supercomputing cluster show a huge potential for computational speedup with increasing network complexity.", "description": "Dynamic simulations are important in the design and operation of power systems in order to ensure grid stability. Traditional simulation tools in research and industry mainly rely on time-domain simulations based on step-by-step numerical integration. The power system, however, has seen an increase in complexity in light of the current operation of large interconnected networks, growth in electricity demand, and the increasing integration of renewable energies. From the power system analysis perspective, the impact of these changes in operating conditions is an increase in computational complexity in the simulation tools applied for stability and control studies. Parallel and distributed computing techniques are frequently applied to improve the computational speed by taking advantage of multi-core processors and cluster computing. However, the analysis methods for time-domain simulations were developed for sequential operation and optimized for running on single-processors, thereby rendering their application for parallel solutions challenging.\n\nThis talk introduces a new Julia-based parallel simulation algorithm to address the need for efficient computation methods in power system stability analysis. The parallel algorithm achieves computational efficiency by adapting an inherently sequential power system numerical solution to a parallel solution using a parallel-in-space decomposition scheme and the Julia computing environment. This talk will describe the parallel-in-space technique which is applied to restructure the power system problem in such a way that it can be applied for formulation of a parallel algorithm. The in-space decomposition is based on the Block Bordered Diagonal Formulation (BBDF) to divide the network coefficient matrix into submatrices that can be solved in parallel. The talk will show how optimal balancing of tasks in the parallel solution process is achieved using a multi-level graph partitioning technique, which is extended to the dynamic simulation problem to obtain balanced subnetworks to be solved in parallel and only linked via an interconnect partition to share information at every time step.\n\nSimulation results will be presented using IEEE standard test networks of varying complexity. The results in the parallel simulation toolbox are compared to those obtained from a sequential implementation in order to validate the solution accuracy and to determine performance improvements in terms of computational speedup.", "recording_license": "", "do_not_record": false, "persons": [{"code": "ZCE33M", "name": "Michael Kyesswa", "avatar": null, "biography": "Michael Kyesswa is a Ph.D student at Karlsruhe Institute of Technology. His main areas of research are computational methods for power system analysis, and parallel and real-time simulations.", "public_name": "Michael Kyesswa", "guid": "8d5b93ca-a9f4-5f89-bb52-0ec745da2f56", "url": "https://pretalx.com/juliacon2020/speaker/ZCE33M/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/ZMHR9V/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/ZMHR9V/", "attachments": []}, {"guid": "8788398a-6351-5db5-aecd-b04a75221ee5", "code": "JFUJJ7", "id": 4803, "logo": null, "date": "2020-07-31T13:50:00+00:00", "start": "13:50", "duration": "00:10", "room": "Green Track", "slug": "juliacon2020-4803-evolutionary-algorithms-for-electrical-circuit-design", "url": "https://pretalx.com/juliacon2020/talk/JFUJJ7/", "title": "Evolutionary algorithms for electrical circuit design", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "The goal of this presentation will be to illustrate how the design\nof equivalent electrical circuits for the analysis of electrochemical\n(e.g. biological) systems can be optimized with an approach based\non evolutionary algorithms.", "description": "Electrochemical impedance spectroscopy (EIS) is the study of a\nsample by measuring its resistance to alternating electrical currents (termed\nimpedance) over a range of frequencies. The data arising from these experiments\nis commonly analysed by fitting an equivalent electrical circuit (EIC),\nwhich consists of resistors, capacitors and possibly other electrical elements.\nWhen considering well defined basic electrical systems, the configuration of\nthese circuits is relatively straightforward. More complex systems, such as\nthose arising in biology, where reasoning about the appropriate configurations\nof the circuits becomes more challenging and subjective, can benefit from an\nalgorithmic approach.\nAn efficient Julia equivalent electrical circuit modelling and fitting module\nthat was implemented will be discussed. Next the evolutionary algorithms\nused to build optimal circuit designs based on the biological measurement\ndata and fit the circuit-element parameters of the design, will be explained\nalong with some performance metrics.", "recording_license": "", "do_not_record": false, "persons": [{"code": "DRVRCN", "name": "Maxime", "avatar": "https://pretalx.com/media/avatars/DRVRCN_XarYXCk.webp", "biography": "Bio-engineer and PhD student at the bio-science engineering department of mathematical modeling and data-analysis of Ghent university.", "public_name": "Maxime", "guid": "0063b042-62f4-51b0-8ee7-6f60da19bd6c", "url": "https://pretalx.com/juliacon2020/speaker/DRVRCN/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/JFUJJ7/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/JFUJJ7/", "attachments": []}, {"guid": "4556e822-c585-5568-b247-989fcde7a7ea", "code": "B3VAGU", "id": 4758, "logo": null, "date": "2020-07-31T16:10:00+00:00", "start": "16:10", "duration": "00:30", "room": "Green Track", "slug": "juliacon2020-4758-auto-optimization-and-parallelism-in-differentialequations-jl", "url": "https://pretalx.com/juliacon2020/talk/B3VAGU/", "title": "Auto-Optimization and Parallelism in DifferentialEquations.jl", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "You might not know all of the latest methods in differential equations, all of the best knobs to tweak, \n how to properly handle sparsity, or how to parallelize your code. Or you might just write bad code. Don't you wish someone would just fix that for you automatically? It turns out that the latest feature of DifferentialEquations.jl, autooptimize, can do just that. This talk is both a demo of this cool new feature and a description of how it was created for other package authors to copy.", "description": "A general compiler can only have so much knowledge, but when we know that someone is solving a differential equation, there are a million things that we know. We know that different sizes of differential equations will do better/worse with different solver methods, we know that sparsity of the Jacobian will have a large impact on the speed of computation, we know that the user's `f` function describing the ODE can be considered independently from the rest of the program, and so on. In DifferentialEquations.jl, we have codified these ideas in order to build a toolchain that automatically optimizes a user's `f` function in order to spit out a more optimized DEProblem.\n\nThis works by first tracing to a symbolic sublanguage, ModelingToolkit.jl. By using tasks to time-out, we can try performing an auto-trace which, if successful, gives us a complete symbolic mathematical description of the user's numerical code. We can then proceed to symbolically analyze the function to generate the analytical solution to the user's Jacobian and even symbolically factorize the Jacobian, if doable in the allotted time. From the symbolic world we can then auto-parallelize the generated Julia code, chunking the output into tasks to multithread, or using a cost model determine that the ODE is large enough to automatically distribute (with auto-GPU coming soon).\n\nIf the system is not symbolically trace-able (there is a while loop depending on an input value, something that is quite uncommon), then we can resort to IR-based and adaptive analysis. We will demonstrate how SparsityDetection.jl can automatically identify the sparsity pattern of the Jacobian for a Julia code and then use SparseDiffTools.jl to accelerate the solve of stiff equations by performing a matrix coloring and optimizing the Jacobian construction for the problem. We will then discuss how DifferentialEquations.jl automatically picks the solver algorithm, defaulting to methods which can automatically switch between stiff and non-stiff integrators, determining stiffness on the fly with heuristics.\n\nTogether, we have demonstrated that these auto-optimizations can improve the code of even experienced Julia programmers by >100x by enabling sparsity coloring optimizations that they may not have known about, and by parallelizing code that is either difficult to parallelize or is simply automatically generated and thus hard to intervene with.", "recording_license": "", "do_not_record": false, "persons": [{"code": "WUWQQ3", "name": "Chris Rackauckas", "avatar": "https://pretalx.com/media/avatars/WUWQQ3_otHw1Wk.webp", "biography": "Christopher Rackauckas is an Applied Mathematics Instructor at the Massachusetts Institute of Technology and a Senior Research Analyst at University of Maryland, Baltimore, School of Pharmacy in the Center for Translational Medicine. Chris's research is focused on numerical differential equations and scientific machine learning with applications from climate to biological modeling. He is the developer of over many core numerical packages for the Julia programming language, including DifferentialEquations.jl for which he won the inaugural Julia community prize, and the Pumas.jl for pharmaceutical modeling and simulation. He is the lead developer for the [SciML Open Source Scientific Machine Learning](https://sciml.ai/) software organization, along with its packages like [DiffEqFlux.jl](https://diffeqflux.sciml.ai/dev/) and [NeuralPDE.jl](https://neuralpde.sciml.ai/dev/)", "public_name": "Chris Rackauckas", "guid": "5ecf5886-9c68-55ca-8dcf-c4f85742c1ca", "url": "https://pretalx.com/juliacon2020/speaker/WUWQQ3/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/B3VAGU/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/B3VAGU/", "attachments": []}, {"guid": "19c7b53f-f80a-5597-bb0d-efe29949691a", "code": "QABEK8", "id": 4783, "logo": "https://pretalx.com/media/juliacon2020/submissions/QABEK8/logo_xHiYTxP.png", "date": "2020-07-31T16:40:00+00:00", "start": "16:40", "duration": "00:30", "room": "Green Track", "slug": "juliacon2020-4783-chainrules-jl", "url": "https://pretalx.com/juliacon2020/talk/QABEK8/", "title": "ChainRules.jl", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "The ChainRules project allows package authors to write rules for custom sensitivities (sometimes called custom adjoints) in a way that is not dependent on any particular autodiff (AD) package.\nIt allows authors of AD packages to access a wealth of prewritten custom sensitivities, saving them the effort of writing them all out themselves.\nChainRules is the successor to DiffRules.jl and is the native rule system currently used by ForwardDiff2,  Zygote and soon ReverseDiff", "description": "[Slides](https://raw.githack.com/oxinabox/ChainRulesJuliaCon2020/main/out/build/index.html)\n\nA perhaps counterintuitive requirement for differentiable programming is easy hand-coded rules for determining derivatives. You might think: \u201cI thought the whole point of differentiable programming was to use AD, so I didn\u2019t have to write all these derivatives by hand.\u201d. Indeed you don\u2019t have to, but that doesn\u2019t mean you shouldn't be allowed to, and it doesn\u2019t mean you can't get advantages out of doing do. Custom sensitivities allow programmers to insert domain knowledge that no autodiff system could ever figure out. Further custom rules, let you work around any bugs in the AD system, and fix performance issues.\nSo being able to write custom rules is important, and doing it once for every AD system is win on deduplicating effort.\n\nA secondary advantage of ChainRules is that it provides a set of differential types to be used by AD systems. The differential types provided by ChainRules are very expressive, more expressive in-fact than is required for any current AD system. These types allow ChainRules to act as a lingua franca between AD systems. If it is advantageous because of some properties of your system to AD one part with ForwardDiff2 (via forward-mode), another part with Zygote (via source code transformation reverse mode) and another via Nabla (via overloading tape-based reverse mode) then you can; and each part can understand the derivative types returned by the other.\n\nThe ChainRules project has 3 packages:\n - ChainRulesCore.jl: the minimum stuff required to implement custom rules for your package. Think of it like RecipesBase for Plots.jl. It should be used by all packages wanting to support rules.\n - ChainRules.jl: a repository of rules for functions defined in Base and the Standard Libraries. This was separated out from ChainRulesCore to minimize load time. It should be used by AD packages wanting to consume rules.\n - ChainRulesTestUtils.jl: robust testing utilities based on finite differencing. Its a test-time dependency for packages defining rules.\n\n\nThis talk will cover:\n - An introduction to AD, including terminology such as pullback, custom sensitivity etc.\n - The details the use and design of the ChainRules packages\n - An explanation of some of the open questions in autodiff and our resolutions to them including: natural vs structural derivatives, mutating reverse-mode AD, chunked AD / change of basis, one-to-one vs many-to-many relationships between differential and primal types.", "recording_license": "", "do_not_record": false, "persons": [{"code": "ECUZBT", "name": "Frames Catherine White", "avatar": "https://pretalx.com/media/avatars/ECUZBT_cvD4sfq.webp", "biography": "I am a research software engineer at Invenia Labs (Cambridge, UK). I help researchers use machine learning, constrained optimization, and generally tools from the technical computing domain to optimize the power grid. I get to do all the best parts of being a software developer and all the best parts of being a researcher, its great. I am a long-term contributor to the open-source JuliaLang ecosystem. I am passionate about building the tools to do research better.", "public_name": "Frames Catherine White", "guid": "c06ebbf0-5d5c-5478-ba3d-40ca50fa2be6", "url": "https://pretalx.com/juliacon2020/speaker/ECUZBT/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/QABEK8/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/QABEK8/", "attachments": []}, {"guid": "44143c12-5076-504a-bf53-8f45209f91e9", "code": "KCFCMQ", "id": 4561, "logo": "https://pretalx.com/media/juliacon2020/submissions/KCFCMQ/logo_1jhBL5D.png", "date": "2020-07-31T17:10:00+00:00", "start": "17:10", "duration": "00:30", "room": "Green Track", "slug": "juliacon2020-4561-manifolds-in-julia-manifolds-jl-manifoldsbase-jl", "url": "https://pretalx.com/juliacon2020/talk/KCFCMQ/", "title": "Manifolds in Julia \u2013 Manifolds.jl & ManifoldsBase.jl", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "From optimization to statistical modeling, many problems involve working with manifolds, smooth sets of points with nonlinear constraints.\n[Manifolds.jl](https://juliamanifolds.github.io/Manifolds.jl/stable/) provides various tools to work on these problems along with a library of manifolds.\n`ManifoldsBase.jl` gives it a light-weight, extensible interface.\nWe will show how to use these tools to construct new manifolds and implement algorithms on these manifolds.", "description": "[Slides](https://ronnybergmann.net/talks/2020-JuliaCon-Manifolds.pdf)\n\nIn many scientific and engineering scenarios, measured data or model variables lie in smooth, nonlinear spaces like the sphere or the group of 3D rotations.\nSuch spaces often have a manifold structure, that is, they locally can be approximately linearized (_i.e._ they are locally diffeomorphic to a Hilbert space).\nEquipping such manifolds with a (pseudo-)Riemannian metric tensor, which defines a ruler on the manifold, enables local computation of distances and angles.\nThese features enable construction of efficient algorithms that respect the nonlinear structure, for example for optimization, interpolation, and statistical modeling.\n\nIn this talk, we demonstrate various tools that [Manifolds.jl](https://juliamanifolds.github.io/Manifolds.jl/stable/) provides for working with manifolds.\nWith these tools, you can for example explicitly locally linearize points using inverse retractions and orthonormal bases.\nYou can also compute intrinsic statistics, such as the Riemannian mean and variance, of data on manifolds.\nWe also extend [Distributions.jl](https://juliastats.org/Distributions.jl/stable/) to support distributions on arbitrary manifolds, which can be used to generate random points on a manifold or for statistical modeling.\n\n[Manifolds.jl](https://juliamanifolds.github.io/Manifolds.jl/stable/) implements a library of manifolds and provides combinators to construct new manifolds from these.\nExamples are the product manifold of two manifolds, the power manifold, the tangent bundle, and Lie groups.\nUsing a trait-based system, any manifold may be augmented with additional geometric structure, including various metrics, without sacrificing efficiency.\n\nWe also present the light-weight interface package [ManifoldsBase.jl](https://juliamanifolds.github.io/Manifolds.jl/stable/interface.html), which enables users to easily extend [Manifolds.jl](https://juliamanifolds.github.io/Manifolds.jl/stable/) with new algorithms and additional manifolds thanks to multiple dispatch.\nThe interface can also be used to develop new, stand-alone projects.\nIt is minimally restrictive and makes it possible to write algorithms that are independent from any concrete implementations of the manifolds.\nOne package that uses this interface is [Manopt.jl](http://manoptjl.org), which provides optimization algorithms on Riemannian manifolds, with a focus on high-dimensional and non-smooth optimization.", "recording_license": "", "do_not_record": false, "persons": [{"code": "JTRCDU", "name": "Ronny Bergmann", "avatar": "https://pretalx.com/media/avatars/JTRCDU_ffiACjM.webp", "biography": "I am an applied mathematician working on optimization on manifolds.", "public_name": "Ronny Bergmann", "guid": "17f8e530-bd0b-5c22-b8c6-ee558a48ff77", "url": "https://pretalx.com/juliacon2020/speaker/JTRCDU/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/KCFCMQ/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/KCFCMQ/", "attachments": []}, {"guid": "04e59960-77ac-5f37-a641-088e04bd4677", "code": "UPHPAT", "id": 4651, "logo": "https://pretalx.com/media/juliacon2020/submissions/UPHPAT/logo_BEeEtCN.png", "date": "2020-07-31T18:00:00+00:00", "start": "18:00", "duration": "00:30", "room": "Green Track", "slug": "juliacon2020-4651-gigasom-jl-1-billion-cytometry-events-and-beyond-with-julia", "url": "https://pretalx.com/juliacon2020/talk/UPHPAT/", "title": "GigaSOM.jl: 1 billion cytometry events and beyond with Julia", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Studies in immunology, developmental biology, and medicine use flow and mass cytometry to generate huge amounts of single-cell data. GigaSOM.jl is a high-performance, horizontally scalable implementation of the commonly used clustering and visualization algorithms used in cytometry, designed to handle dataset of sizes inaccessible to currently available tools. We show the structure and design of GigaSOM.jl, and demonstrate the results on recent datasets from a massive immunophenotyping effort.", "description": "GigaSOM is an implementation of the Self-Organizing-Maps algorithm by Kohonen that facilitates  the clustering and dimension reduction of huge-scale datasets, counting billions of individual data points with tens of dimensions. Its development, showcased at the 2019 JuliaCon conference, is motivated by the needs of flow and mass cytometry data analysis, relevant in immunology, developmental biology and clinical medicine: Individual cells from the measurements need to be precisely categorized (which is currently best done by the self-organizing maps as devised by van Gassen et al. (2015)), and eventually evaluated and visualized.\n\nGigaSOM is able to perform this precise kind of computation on large compute clusters, and facilitates the analysis to scale horizontally. We will describe a Julia toolkit for map-reduce-style computation and data distribution in the common HPC environments, which we developed for the purposes of GigaSOM. The toolkit cooperates with the Distributed package, and works well within common cluster software, e.g. Slurm. With that in hand, we demonstrate high-level implementation of SOMs and related algorithms (e.g. EmbedSOM (Kratochv\u00edl et al., 2019)) that scale horizontally, show measurements of the performance, and demonstrate the results achievable on several datasets, including the data from International Mouse Phenotyping Consortium (Brown & Moore, 2012). Notably, our testing showed that 1 billion data points can be processed within only minutes using relatively common computer clusters or cloud compute grids, which vastly expands the possibilities of large-scale data analysis.\n\nThe quality of the software package is assured using ARTENOLIS (https://artenolis.lcsb.uni.lu) (Heirendt et al., 2017). Biological validation of the results is performed by comparison to conventional implementations of the FlowSOM package and manual analysis.", "recording_license": "", "do_not_record": false, "persons": [{"code": "AVXQCK", "name": "Miroslav Kratochv\u00edl", "avatar": "https://pretalx.com/media/avatars/AVXQCK_bNDMGp2.webp", "biography": "PhD student at Charles university in Prague, Dept. of SW engineering. Assistant researcher at Institute of Organic Chemistry and Biochemistry in Prague. Working on various computationally intensive problems in bioinformatics and cheminformatics.", "public_name": "Miroslav Kratochv\u00edl", "guid": "5fd0b10d-1f36-5d2c-aa4a-753328f60d21", "url": "https://pretalx.com/juliacon2020/speaker/AVXQCK/"}, {"code": "BWUVG9", "name": "Oliver Hunewald", "avatar": null, "biography": null, "public_name": "Oliver Hunewald", "guid": "ff1adcca-96ea-55e8-950f-ac09cd69c216", "url": "https://pretalx.com/juliacon2020/speaker/BWUVG9/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/UPHPAT/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/UPHPAT/", "attachments": []}, {"guid": "48aee1d3-91ff-58f7-9117-1ab52517a59b", "code": "LUSFK8", "id": 4674, "logo": "https://pretalx.com/media/juliacon2020/submissions/LUSFK8/inflationjl_ZUsDdFM.png", "date": "2020-07-31T18:30:00+00:00", "start": "18:30", "duration": "00:30", "room": "Green Track", "slug": "juliacon2020-4674-simulating-the-early-universe-with-inflation-jl", "url": "https://pretalx.com/juliacon2020/talk/LUSFK8/", "title": "Simulating the Early Universe with Inflation.jl", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "I'll talk about my experience developing the `Inflation.jl` package in my research as a graduate student, and what I think Julia can do for computational and theoretical cosmology.\nThe talk should appeal to anyone interested in Julia's differential equations and parameter estimation suites, symbolic computation, package development, or the early universe.", "description": "The early universe is a terribly violent place, but within the first 10<sup>-30</sup> seconds, cosmologists believe a process called inflation smoothed out the primordial universe into something that could expand and cool into our universe today.\n\nSimulating this process is a necessity for understanding the early universe, but in practice this means symbolically generating and then solving a challenging set of PDEs, and comparing their solutions to cosmological data. When the model includes unknown parameters, some parameter estimation is needed as well. I'll describe how Julia is the right tool for every step in this process.\n\n`Inflation.jl` generates the symbolic PDEs with a **symbolic tensor manipulation engine** built on `SymPy.jl` and `sympy.tensor.tensor`. Then `DifferentialEquations.jl` and related parameter estimation routines solve the PDEs, having little trouble even with high-dimensional inflation models.\n\nThe presentation will be organized into the lessons I learned while developing the package, and what I think we can all learn and apply to our own scientific computing projects, in cosmology and other fields.", "recording_license": "", "do_not_record": false, "persons": [{"code": "YKT39B", "name": "Robert Rosati", "avatar": null, "biography": "Physics PhD student at University of Texas at Austin\n\nhttps://github.com/rjrosati", "public_name": "Robert Rosati", "guid": "bb634d8d-a66e-5cef-ad24-335a4f62f33e", "url": "https://pretalx.com/juliacon2020/speaker/YKT39B/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/LUSFK8/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/LUSFK8/", "attachments": []}, {"guid": "c5c6fe71-a538-59cc-8a9f-b216719f036a", "code": "7XARPV", "id": 4059, "logo": "https://pretalx.com/media/juliacon2020/submissions/7XARPV/nice_makie_BlW4BOY.png", "date": "2020-07-31T19:00:00+00:00", "start": "19:00", "duration": "00:10", "room": "Green Track", "slug": "juliacon2020-4059-makie-jl", "url": "https://pretalx.com/juliacon2020/talk/7XARPV/", "title": "Makie.jl", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "All the news about Makie! WebGL, layouts, widgets, recipes and more!", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "JSJDXE", "name": "Simon Danisch", "avatar": "https://pretalx.com/media/avatars/JSJDXE_fZrtTfz.webp", "biography": "Simon has been working with Julia for around 7 years by now. Some of the packages he created include:\n\n* [GeometryTypes](https://github.com/JuliaGeometry/GeometryTypes.jl)\n* [GPUArrays](https://github.com/JuliaGPU/GPUArrays.jl)\n* [Makie](https://github.com/JuliaPlots/Makie.jl/)\n* [PackageCompiler](https://github.com/JuliaLang/PackageCompiler.jl/)\n* [JSServe](https://github.com/SimonDanisch/JSServe.jl)\n\nAnd lots of others! \nNoways, Simon works for Beacon-Biosignals on visualizing EEG data!", "public_name": "Simon Danisch", "guid": "9fe14921-7cb7-55ed-abe4-d22427bd2b37", "url": "https://pretalx.com/juliacon2020/speaker/JSJDXE/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/7XARPV/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/7XARPV/", "attachments": []}, {"guid": "a0e7b3c7-419f-5fb3-b524-d25482d9d8b1", "code": "BMNWLJ", "id": 4622, "logo": "https://pretalx.com/media/juliacon2020/submissions/BMNWLJ/statsmakie_gui_example_lNjgh5u.png", "date": "2020-07-31T19:10:00+00:00", "start": "19:10", "duration": "00:10", "room": "Green Track", "slug": "juliacon2020-4622-interactive-data-visualizations-with-algebraofgraphics", "url": "https://pretalx.com/juliacon2020/talk/BMNWLJ/", "title": "Interactive data visualizations with AlgebraOfGraphics", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "The Makie library supports interactive visualizations in 2D or 3D, both native and web-based. AlgebraOfGraphics.jl adds support for statistical visualizations in two ways. It implements visualizations for common analyses (frequency table, kernel density, linear and non-linear regressions...), and it offers a set of custom types that allow to express how the data should be grouped, styled, and analyzed. This unified syntax layer simplifies the creation of UIs for interactive data analysis.", "description": "In this talk, I will present Algebra of Graphics, a novel take on the Grammar of Graphics (GoG) approach to plotting.\n\nIn GoG (available in Julia thanks to for example Gadfly.jl or VegaLite.jl), a tabular dataset is used to inform how a plot should look like. Different columns correspond to different plot attributes, according to different scales. On top of that, columns can be transformed using \"statistics\", which in turn will inform what plot function to use (e.g. bar plot or scatter plot).\n\nOn the other hand, in the recipe framework, implemented in the Plots.jl and Makie.jl packages, custom types are recursively transformed into simpler types, until a suitable visualization is found.\n\nI will show how [AlgebraOfGraphics.jl](https://github.com/JuliaPlots/AlgebraOfGraphics.jl) (the successor of StatsMakie.jl) attempts to bridge the gap between the two approaches, as it implements a version of Grammar of Graphics based on custom types and multiple dispatch. In particular, a combination of custom types (`Style` and `Analysis`) can be used to express how data should be grouped, styled, and analyzed (see [examples](http://juliaplots.org/AlgebraOfGraphics.jl/dev/generated/tutorial/)).\nThese basic types can then be combined using the `+` and `*` operators.\n\nThe interface is declarative. The \"translation\" from data columns to plot attributes relies on a default theme, which can be customized, thus changing the \"look\" of all visualization consistently.\n\nAs the library is implemented in pure Julia, users are not limited to pre-built analyses but can implement their own, and they will automatically be integrated in the framework. This GoG-inspired framework, can then be combined with Makie's plot functions, as well as with the plot functions provided in StatsMakie.jl (such as boxplot or violin plot) or in other external packages.\n\nAn added benefit of the GoG approach is that many different plot commands can be expressed with a uniform syntax. This greatly simplifies the creation of interactive user interfaces for data analysis, where the user can select (from e.g. dropdown menus) what columns of a dataset to use, what analysis to run, and how to group and style the data. I will show a simple UI to create visualizations of a tabular dataset interactively.", "recording_license": "", "do_not_record": false, "persons": [{"code": "RB8YD8", "name": "Pietro Vertechi", "avatar": "https://pretalx.com/media/avatars/RB8YD8_YHLhzuK.webp", "biography": "I am a PhD student in Neuroscience at the Champalimaud Foundation (Lisbon, Portugal). During my PhD, I have mostly worked on behavioral task design, and computational models of behavior of biological and artificial agents. I have been using julia for a few years for my research, and have contributed to several julia packages for data analysis and visualization.", "public_name": "Pietro Vertechi", "guid": "399bc887-e197-57ad-b39c-f794ab378e92", "url": "https://pretalx.com/juliacon2020/speaker/RB8YD8/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/BMNWLJ/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/BMNWLJ/", "attachments": []}, {"guid": "aa0de41b-0b78-5711-9e21-8b8ae67be2ed", "code": "XBLMPG", "id": 4772, "logo": null, "date": "2020-07-31T19:20:00+00:00", "start": "19:20", "duration": "00:10", "room": "Green Track", "slug": "juliacon2020-4772-the-julia-vega-and-vega-lite-ecosystem", "url": "https://pretalx.com/juliacon2020/talk/XBLMPG/", "title": "The Julia Vega and Vega-Lite ecosystem", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "The Queryverse has a powerful visualization story that is based on the Vega ecosystem. This talk will demonstrate how one can use the Vega family of packages to easily create simple and advanced visualizations with Julia and how the various packages are integrated with each other.", "description": "The Julia Vega ecosystem is made up of five packages and tightly integrated with the Queryverse. The packages that this talk will introduce are:\n- VegaLite.jl: the core grammar of interactive graphics package that makes it easy to create powerful figures with ease.\n- Vega.jl: if you need the power of the full Vega grammar, you can access it via this package. Creating figures with Vega.jl is more verbose, but gives you more control.\n- QuickVega.jl: this package provides a simple imperative API to create complicated figures without a full grammar of graphics API.\n- DataVoyager.jl: an interactive UI for data exploration that allows you to create Vega-Lite plots.\n- Lyra.jl: another interactive UI that is WYSIWYG editor for powerful Vega figures.\n\nI will also briefly on various front-ends that have native Vega and Vega-Lite support built in: ElectronDisplay.jl, the Julia VS Code extension, Jupyterlab and nteract.", "recording_license": "", "do_not_record": false, "persons": [{"code": "7JQFVF", "name": "David Anthoff", "avatar": "https://pretalx.com/media/avatars/7JQFVF_6hMSzX4.webp", "biography": "David Anthoff is an environmental economist who studies climate change and environmental policy. He co-develops the integrated assessment model FUND that is used widely in academic research and in policy analysis. His research has appeared in Science, the Journal of Environmental Economics and Management, Environmental and Resource Economics, the Oxford Review of Economic Policy and other academic journals. He contributed a background research paper to the Stern Review and has advised numerous organizations (including US EPA and the Canadian National Round Table on the Environment and the Economy) on the economics of climate change.\n\nHe is an assistant professor in the Energy and Resources Group at the University of California, Berkeley. Previously he was an assistant professor in the School of Natural Resources and the Environment of the University of Michigan, a postdoc at the University of California, Berkeley and a postdoc at the Economic and Social Research Institute in Ireland. He also was a visiting research fellow at the Smith School of Enterprise and the Environment, University of Oxford.\n\nHe holds a PhD (Dr. rer. pol.) in economics from the University of Hamburg (Germany) and the International Max Planck Research School on Earth System Modelling, a MSc in Environmental Change and Management from the University of Oxford (UK) and a M.Phil. in philosophy, logic and philosophy of science from Ludwig-Maximilians-Universit\u00e4t M\u00fcnchen (Munich, Germany).", "public_name": "David Anthoff", "guid": "bcf50455-31c2-51ca-955a-1ed8f65d0d65", "url": "https://pretalx.com/juliacon2020/speaker/7JQFVF/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/XBLMPG/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/XBLMPG/", "attachments": []}], "Purple Track": [{"guid": "a57eba88-c4b2-50ec-8ded-c2de6101db09", "code": "TKAXGF", "id": 4002, "logo": null, "date": "2020-07-31T12:30:00+00:00", "start": "12:30", "duration": "00:10", "room": "Purple Track", "slug": "juliacon2020-4002-bringing-julia-to-the-realm-of-electronic-structure-theory", "url": "https://pretalx.com/juliacon2020/talk/TKAXGF/", "title": "Bringing Julia to the Realm of Electronic Structure Theory", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "This talk introduces JuliaChem.jl, a package designed for performing quantum chemistry calculations via electronic structure theory methods. JuliaChem.jl uses Julia\u2019s features to achieve performance similar to established quantum chemistry codes.", "description": "Electronic structure theorists love performing novel research in a variety of ways. However, the use of new programming languages remains largely unexplored. Due to its combination of features, Julia could be an extremely useful tool for quantum chemists, enabling high productivity without sacrificing performance. In this talk, we will see how Julia\u2019s potential in electronic structure theory can be realized, by introducing the JuliaChem.jl package.", "recording_license": "", "do_not_record": false, "persons": [{"code": "3NCSMS", "name": "David Poole", "avatar": null, "biography": "My name is David Poole, and I am a graduate research assistant in Dr. Mark S. Gordon's research group at Iowa State University. I perform research in developing and improving the popular General Atomic and Molecular Electronic Structure System (GAMESS) quantum chemistry software package. These developments include writing code to enable GAMESS to take advantage of Graphics Processing Units (GPUs), and enabling GAMESS to build and run on the most modern high-performance supercomputers. Additionally, I develop and maintain the JuliaChem.jl quantum chemistry software package, which aims to combine high performance with high programming productivity by taking advantage of Julia's features.", "public_name": "David Poole", "guid": "ba0df8b8-24aa-5503-90da-1aac761146c7", "url": "https://pretalx.com/juliacon2020/speaker/3NCSMS/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/TKAXGF/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/TKAXGF/", "attachments": []}, {"guid": "3a802faf-6aa5-594a-8297-bf82fbe22233", "code": "MMJXXC", "id": 4749, "logo": null, "date": "2020-07-31T12:40:00+00:00", "start": "12:40", "duration": "00:10", "room": "Purple Track", "slug": "juliacon2020-4749-interrogating-intratumor-heterogeneity-dynamics-with-julia", "url": "https://pretalx.com/juliacon2020/talk/MMJXXC/", "title": "Interrogating intratumor heterogeneity dynamics with Julia", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Julia is a great scientific computing language for interrogating ecological and evolutionary dynamics of intratumor heterogeneity and how it changes over time. This talk will appeal to people interested in studying Mathematical Biology and Ecology applications with Julia.", "description": "Cancer research stipulates that more heterogenous tumor cell populations ultimately drive unfavorable outcomes for patients.  To study this question, we have developed software tools in Julia that harnesses evolutionary game theory methodologies like replicator-mutator dynamics and random walk model simulations through DifferentialEquations.jl and Distributions.jl along with data analysis pipelines for quantifying generalized diversity index (GDI) with DataFrames.jl and Query.jl.  These tools reveal quantitative insights into how GDI changes over time under evolutionary pressures. Julia has solved our two-language problem allowing us to interrogate temporal changes in intratumor heterogeneity by simulating different tumor ecological niches over time and quantifying those changes in diversity to help fight cancer. \n\nThis talk will present this biological application and discuss how existing Julia packages make this analytical work feasible. I will also highlight some areas of biological science research where there are gaps in Julia tooling relative to other data science ecosystems such as R and Scientific Python.", "recording_license": "", "do_not_record": false, "persons": [{"code": "VNADNL", "name": "Meghan Ferrall-Fairbanks", "avatar": "https://pretalx.com/media/avatars/VNADNL_HPnzOUi.webp", "biography": "Meghan Ferrall-Fairbanks received her B.S. in Mechanical Engineering with a Biomechanics minor at the University of Florida in 2012. She earned her PhD in Biomedical Engineering in 2017 from the joint Georgia Tech and Emory program under the guidance of Dr. Manu O. Platt. In her graduate dissertation work, Meghan focused on integrating wet-lab experimental and computational methods to tease apart complex enzyme-on-enzyme interactions in proteolytic networks up-regulated in tissue destructive diseases. In August 2017, she began her postdoctoral studies in the Department of Integrated Mathematical Oncology at Moffitt Cancer Center and Research Institute with Dr. Philipp M. Altrock. In her postdoctoral work, Meghan has focused on applying mathematical and computational methods to model cancer evolution in hematopoietic malignancies.", "public_name": "Meghan Ferrall-Fairbanks", "guid": "ba434996-36d8-5fc4-81d1-08a30d24de5e", "url": "https://pretalx.com/juliacon2020/speaker/VNADNL/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/MMJXXC/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/MMJXXC/", "attachments": []}, {"guid": "59ffe47c-4fb9-5bf8-a655-8e3ab33c3ede", "code": "GPFUZR", "id": 4587, "logo": "https://pretalx.com/media/juliacon2020/submissions/GPFUZR/Species_interaction_network_E9WSlrA.PNG", "date": "2020-07-31T12:50:00+00:00", "start": "12:50", "duration": "00:10", "room": "Purple Track", "slug": "juliacon2020-4587-analyzing-species-interaction-networks-in-julia", "url": "https://pretalx.com/juliacon2020/talk/GPFUZR/", "title": "Analyzing species interaction networks in Julia", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "In this talk, we will present three novel and complementary Julia packages that can handle data on species interactions. These packages can be used to import, simulate, analyze, and visualize all sorts of ecological networks, greatly simplifying the study of this emerging subfield of biology.", "description": "Network ecology is the novel approach to studying biodiversity. In that respect, this presentation provides an overview of three brand-new packages (`Mangal`, `EcologicalNetworks`, and `EcologicalNetworksPlots`) written by Timoth\u00e9e Poisot and collaborators, which were created in response to the increasing need to handle species interaction data in Julia. Built around state-of-the-art practices in network ecology, they largely facilitate the analysis and visualization of almost all types of species interaction networks. In these, two species are linked together if they can interact.\n\nThe `Mangal` package is a wrapper around the Mangal database, which is among the world's most exhaustive open source database of ecological interactions. The Mangal database contains 172 well-documented datasets for a total of 1300 ecological networks worldwide. It encompasses various types of ecological networks, including predation (food webs), pollination and parasitism networks.\n\nIn addition, the `EcologicalNetworksPlots` package implements the visualization of ecological networks, whereas `EcologicalNetworks` provides functions for the analysis of their emergent structure. The structure of species interaction networks is a rich source of information, as it is associated with the stability, dynamics, and functions of biological communities. The `EcologicalNetworks` package is the only one designed to conduct such a specialized analysis in Julia. It is also a suitable tool for the simulation of networks under different sets of assumptions and ecological models. These two packages use a well-documented type system for networks in order to capture the various types of data typically handled by network ecologists. This makes them easily extensible and somewhat fast.\n\nTogether, these three packages provide an extremely valuable methodological framework for the analysis of ecological networks in Julia. Our presentation offers an overview of their key features and depicts some of their concrete applications in this complex and emerging subfield of biology. It is aimed at ecologists among the Julia community, but also more broadly at network scientists and other attendees fascinated by networks and graphs.", "recording_license": "", "do_not_record": false, "persons": [{"code": "YDHB3H", "name": "Francis Banville", "avatar": "https://pretalx.com/media/avatars/YDHB3H_A33xCrv.webp", "biography": "PhD student in biological sciences in the computational ecology lab of Timoth\u00e9e Poisot (University of Montreal) and the integrative ecology lab of Dominique Gravel (University of Sherbrooke).", "public_name": "Francis Banville", "guid": "2193e168-8978-51da-ba0b-f71298e02644", "url": "https://pretalx.com/juliacon2020/speaker/YDHB3H/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/GPFUZR/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/GPFUZR/", "attachments": []}, {"guid": "161ec681-b558-50a8-b2c8-d54bef331a4d", "code": "DTAFMF", "id": 4790, "logo": null, "date": "2020-07-31T13:00:00+00:00", "start": "13:00", "duration": "00:10", "room": "Purple Track", "slug": "juliacon2020-4790-a-fast-atmospheric-radiation-code-for-global-circulation-models", "url": "https://pretalx.com/juliacon2020/talk/DTAFMF/", "title": "A fast atmospheric radiation code for global circulation models", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Global circulation models, for numerical weather and climate prediction, spend about 30% of their time in radiation computations. Hence, the performance of atmospheric radiative transfer models (RTMs) is critically important.\n\nWe present RRTMGP.jl, a commonly used atmospheric RTM for global circulation models. Translated from Fortran, RRTMGP.jl has new abstractions, CI tests, and will run on GPUs. We will give a quick overview of the problem/equations that are solved and improvements.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "E77THB", "name": "Charlie Kawczynski", "avatar": "https://pretalx.com/media/avatars/E77THB_YtLDr7v.webp", "biography": "Charles is a software engineer at Caltech, working on a new climate model, CLIMA, intended to learn from a diverse set of data. This climate model is implementing novel sub-grid scale models for resolving turbulence and cloud processes. The code, developed by a distributed team, will be made capable to run on CPU and GPU architectures.\n\nPreviously, during his Ph.D., Charles developed a liquid-metal magnetohydrodynamic (MHD) solver and framework for simulating liquid-metal MHD flows for fusion energy applications, in particular, for accident scenarios involving loss of plasma confinement, resulting in electromagnetic interactions between the plasma and liquid-metal breeding blanket.\n\nCharles has a passion for developing HPC software for simulating physical phenomena.", "public_name": "Charlie Kawczynski", "guid": "cbd82c69-60bd-5041-bcf0-afd20328410b", "url": "https://pretalx.com/juliacon2020/speaker/E77THB/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/DTAFMF/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/DTAFMF/", "attachments": []}, {"guid": "4fff6f13-d7ca-5429-b968-50fd863debc8", "code": "PTL7YB", "id": 4779, "logo": "https://pretalx.com/media/juliacon2020/submissions/PTL7YB/glacier-world_NnUxNSM.png", "date": "2020-07-31T13:10:00+00:00", "start": "13:10", "duration": "00:10", "room": "Purple Track", "slug": "juliacon2020-4779-bite-a-bayesian-glacier-thickness-estimation-model", "url": "https://pretalx.com/juliacon2020/talk/PTL7YB/", "title": "BITE, a Bayesian glacier thickness estimation model", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "BITE is a new glacier thickness estimation model based on a mass-conserving forward model and a Bayesian inversion scheme. The model is fitted to available data using a Markov chain Monte Carlo (MCMC) method. The model is applied to more than 30,000 glaciers representing about 1/6 of the total. Thanks to  Julia's speed it was possible to calculate the 1e8 glacier thickness maps necessary for the MCMC procedure.", "description": "Accurate estimations of glacier ice thickness and volume are indispensable for ice flow modelling, hydrological forecasts and sea-level rise projections. I present a new ice thickness estimation model [1,2] based on a mass-conserving forward model and a Bayesian inversion scheme (BITE.jl code on github [3]).  The model assimilates observations of ice thickness and speed using a Bayesian scheme implemented with a Markov chain Monte Carlo method, which calculates estimates of ice thickness and their error. The model is validated using 733 glaciers from four regions of the world with ice thickness measurements, and it is demonstrated that the model can be used for large-scale studies by fitting it to over 30,000 glaciers from around the globe. I will detail how Julia's speed as well as its productivity was indispensable in making the project succeed.\n\n[1] https://doi.org/10.1017/jog.2019.93,\n[2] https://juliacomputing.com/case-studies/bayesian.html,\n[3] https://github.com/mauro3/BITEmodel.jl", "recording_license": "", "do_not_record": false, "persons": [{"code": "CRJ7BV", "name": "Mauro Werder", "avatar": "https://pretalx.com/media/avatars/CRJ7BV_uiwVVNO.webp", "biography": "Glaciologist at ETH Zurich, Switzerland", "public_name": "Mauro Werder", "guid": "1fbbcf46-44be-5c28-93df-eb4342638278", "url": "https://pretalx.com/juliacon2020/speaker/CRJ7BV/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/PTL7YB/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/PTL7YB/", "attachments": []}, {"guid": "f1f020ac-d932-5091-b976-c5371129cb0f", "code": "JPGZK3", "id": 4715, "logo": "https://pretalx.com/media/juliacon2020/submissions/JPGZK3/sst_YGBX243.png", "date": "2020-07-31T13:20:00+00:00", "start": "13:20", "duration": "00:10", "room": "Purple Track", "slug": "juliacon2020-4715-climate-models-in-16bit-arithmetic-and-algorithmic-challenges", "url": "https://pretalx.com/juliacon2020/talk/JPGZK3/", "title": "Climate models in 16bit: Arithmetic and algorithmic challenges", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "Powered by Julia\u2019s type-flexibility, various posit and float arithmetics are tested in ShallowWaters.jl for perspectives to accelerate climate models on modern computing architecture in 16 bit, using either deterministic or StochasticRounding.jl. Algorithmic bottlenecks with low precision are identified and information theory is used to find the best number format for a given algorithm, which led to the development of Sonums.jl \u2013 a number format that learns from data.", "description": "The need for high precision calculations with 64bit floating-point numbers for weather and climate models has been questioned. Lower precision numbers can accelerate simulations and are increasingly supported by modern computing architecture. Posit numbers, a recently proposed alternative to floating-point numbers, claim to have smaller arithmetic rounding errors in many applications. As a standardized posit processor does not exist yet, we emulate posit arithmetic with SoftPosit.jl on a conventional processor. Julia\u2019s type-flexibility easily allows to test benefits of posits compared to floats at 16bit in the Lorenz system and in ShallowWaters.jl. We show that forecasts based on posits are clearly more accurate than floats. Mixing 16 bit arithmetic with 32 bit for critical computations strongly reduces errors and is promising for present-day float-based hardware. Reduced precision communication of boundary values with 16 or 8-bit encoded as floats or posits introduces negligible errors, presenting a perspective for reduced data communication within a computer cluster.  Stochastic rounding modes, that are exact in expectation, are found to improve simulations at 16-bit and mimic uncertainties. Algorithmic bottlenecks with low precision are identified using Sherlogs.jl to facilitate the transition towards 16-bit arithmetic. We analyse algorithms form an information theory perspective to find the best number format for a given application. This approach led the the development of Sonums.jl, a number format that is optimal once trained on data to minimize the rounding error. The results promote the potential of 16-bit formats for at least parts of complex weather and climate models, where rounding errors would be entirely masked by intitial condition, model or discretization error.\n\nCo-authored by\n- Peter Dueben, ECMWF, Reading, UK\n- Tim Palmer, University of Oxford, UK", "recording_license": "", "do_not_record": false, "persons": [{"code": "A9SQSW", "name": "Milan Kl\u00f6wer", "avatar": "https://pretalx.com/media/avatars/A9SQSW_nKoqOOA.webp", "biography": "Sun is shining", "public_name": "Milan Kl\u00f6wer", "guid": "da34690e-e394-5c01-a2f8-6876c357d29c", "url": "https://pretalx.com/juliacon2020/speaker/A9SQSW/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/JPGZK3/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/JPGZK3/", "attachments": []}, {"guid": "b107d5e4-f18e-5154-b206-51ca74816ebf", "code": "UUECGJ", "id": 4834, "logo": null, "date": "2020-07-31T13:30:00+00:00", "start": "13:30", "duration": "00:30", "room": "Purple Track", "slug": "juliacon2020-4834-intertwined-economic-and-energy-analysis-using-julia", "url": "https://pretalx.com/juliacon2020/talk/UUECGJ/", "title": "Intertwined Economic and Energy Analysis using Julia", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "Energy and the economy are deeply intertwined yet the models typically employed for energy analysis treat the energy sector in isolation while lacking the capability to robustly represent the U.S. economy.  This talk introduces the SLiDE.jl package, which leverages U.S. economic data to assess economic implications of energy infrastructure planning to answer these and other questions.", "description": "The Scalable Linked Dynamic Equilibrium (SLiDE) model is an implementation of a computable general equilibrium (CGE) model. CGE models are commonly used for detailed regional economic analysis of inputs, outputs, prices and quantities of various economic sectors to inform policy decisions. This talk will focus on the development of the data management approach with a focus on usability.\n\nWe will delve into the inner workings of the SLiDE module to explore the benefits and challenges of using Julia for data science applications. Techniques used to standardize the publicly available blueNOTE dataset include autogenerated and populated structs and powerful multiple dispatch and methods. Discussion will include the design-thinking approach taken to create a user-friendly interface to scale the model in space, time, and sector and encourage further adoption of Julia in policy analysis.", "recording_license": "", "do_not_record": false, "persons": [{"code": "ZTSULB", "name": "Caroline Hughes", "avatar": "https://pretalx.com/media/avatars/ZTSULB_8GWwCgR.webp", "biography": "Caroline Hughes is an Energy Data and Simulation Analyst at the U.S. National Renewable Energy Laboratory. Her research focuses on computational modeling and decision-making under uncertainty. A data scientist and user experience designer, she sees the terminal as an interface and has strong opinions about leveraging coding best-practices to write clever and user-friendly code.", "public_name": "Caroline Hughes", "guid": "02660d3d-5374-5fe9-b81b-cdaa6e615e1f", "url": "https://pretalx.com/juliacon2020/speaker/ZTSULB/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/UUECGJ/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/UUECGJ/", "attachments": []}, {"guid": "7588f4fc-73c8-5597-b02f-76ff0c4fed57", "code": "LRRAGD", "id": 5480, "logo": null, "date": "2020-07-31T16:10:00+00:00", "start": "16:10", "duration": "01:30", "room": "Purple Track", "slug": "juliacon2020-5480-poster-session-2", "url": "https://pretalx.com/juliacon2020/talk/LRRAGD/", "title": "Poster Session 2", "subtitle": "", "track": null, "type": "Minisymposia", "language": "en", "abstract": "This is the second poster session", "description": "- [\"Control and Automation Software for Chromatographic Processes\" by Tiago Santos](https://pretalx.com/juliacon2020/talk/review/S8SQW3TQEQFLKDLGHXZNY93ZKXJFEXFX)\n - [\"ContextTracking.jl - do you know where you are?\" by Tom Kwong](https://pretalx.com/juliacon2020/talk/review/PSJDTU3ZVWNC7G3RKDLVCRCSLRPGEVGW)\n - [\"Julia for Structural Engineering\" by Henki Ashadi](https://pretalx.com/juliacon2020/talk/review/KY87TTQHX9BSHQPDT8HHSTDVZ3G8CJJG)\n - [\"Steel Truss Design using Julia Programming Language\" by Rahma Latifa Dewi](https://pretalx.com/juliacon2020/talk/review/APWY839YWNAYXCG9GXSVWJJLP7LQ98DW)\n - [\"A two way real time communication for mute and deaf people\" by Nafiz and Saiful Islam](https://pretalx.com/juliacon2020/talk/review/XC8RSZABX3SRTR3WN8PZBYTKWKVFACGV)\n - [\"How to not lose a mind by paralelizing a feedback loop?\" by paralelizing a feedback loop?\" by Janis Erdmanis](https://pretalx.com/juliacon2020/talk/review/ZGP8BB3LYMFKWQ3VBVBGSGHXNG87KUGG)\n - [\"Julia for cryptography, security and voting\" by Janis Erdmanis](https://pretalx.com/juliacon2020/talk/review/L7YBHDCE3JNW3GLYC87QZL9HUEQ9KXNG)\n - [\"Reproducible data science with the RENKU platform\" by Christine Choirat](https://pretalx.com/juliacon2020/talk/review/GZJKCPEYRLXJBTZE7CQLCYMVLUG3S9FJ)\n - [\"Julia Code Generator for Flowgorithm Flow Chart Interpreter\" by Gajendra Deshpande](https://pretalx.com/juliacon2020/talk/review/79SJQV9USWAKCBASVVHMDY398MCFL7VA)\n - [\"How Julia improves the ROI of analytics: A case study of Arthur\" by Eric Torkia and Egan Picken](https://pretalx.com/juliacon2020/talk/review/9PUBLQWTPPKRKTL3UP3MAQ39R8EJZWBF)\n - [\"JLBoost.jl: Hackable XGBoost-like Gradient Boosting Tree Package\" by Dai ZJ](https://pretalx.com/juliacon2020/talk/review/XPJXWS3S3GZ8ASLUVCS3CXXWH9HZUMKF)\n - [\"HierarchicalTemporalMemory.jl: a short delta from paper to code\" by Konstantinos Samaras-Tsakiris](https://pretalx.com/juliacon2020/talk/review/DEKU8BUBDRYLTADSNXNBPNESL9WSRSGQ)\n - [\"A new Traits.jl: Easily dispatch on whatever you want\" by Stephan Sahm](https://pretalx.com/juliacon2020/talk/review/3PMFP3TEH8MLUFXW7JXNEMAZSUMKFASS)\n - [\"Using Julia for User Interface Design\" by Erik Engheim](https://pretalx.com/juliacon2020/talk/review/SPFQXYJFL9F9WQGCMDEXSFJ8KDLRWRUH)\n - [\"Decision Modeling and Simulation with MCHammer.jl\" by Eric Torkia](https://pretalx.com/juliacon2020/talk/review/RQCY8FWQSTLFHV8Q99SJQW8KLG99ZFXU)\n - [\"Implicit RK solver for high precision numerical integration\" by Mikel](https://pretalx.com/juliacon2020/talk/review/MQTDFQKVH3U3ACLWRMPKZNRXSPWE3CPX)\n - [\"Bayesian curve reconstruction from noisy streams in Julia\" by Marco Quartulli](https://pretalx.com/juliacon2020/talk/review/PDEZCD7HPMJ3XASVT3QGQSEH38XWUDH8)\n - [\"WaspNet.jl, a Julian Spiking Neural Network Simulator\" by Sam Buercklin](https://pretalx.com/juliacon2020/talk/review/WR798NBTNZCDELPRFVCQSTKA7CJ8MBE9)\n - [\"A Julia coding font\" by cormullion](https://pretalx.com/juliacon2020/talk/review/QQS3Y9NXHYYP9VUBAWRTZQB9VYYLNMKT)\n - [\"Quantum Game Theory with Julia: A computational analysis\" by Indranil Ghosh](https://pretalx.com/juliacon2020/talk/review/EWD7WUAQ3HSYJ7JHVB9LNXLF3VXPJYR8)\n - [\"Exposing Julia to the frontend web developer via DanceJL\" by Chris \"Yoh\" Meyers](https://pretalx.com/juliacon2020/talk/review/SVTDWU9UEY9HF8GNRPM7WGJZH7GSTR3Z)\n - [\"Computing on Encrypted Data with  Julia and Friends\" by David W. Archer](https://pretalx.com/juliacon2020/talk/review/D3YYHHX7Y9ZCDFJNST8KVXU3BYAAPJLL)", "recording_license": "", "do_not_record": false, "persons": [{"code": "M9YRTS", "name": "JuliaCon Committee", "avatar": null, "biography": null, "public_name": "JuliaCon Committee", "guid": "f11578a3-77c6-5763-b765-4b879793570a", "url": "https://pretalx.com/juliacon2020/speaker/M9YRTS/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/LRRAGD/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/LRRAGD/", "attachments": []}, {"guid": "e38c3d32-998c-568c-950e-a814bd263f02", "code": "P8D3PF", "id": 4030, "logo": null, "date": "2020-07-31T18:00:00+00:00", "start": "18:00", "duration": "00:30", "room": "Purple Track", "slug": "juliacon2020-4030-dynamicgrids-jl-high-performance-spatial-simulations-in-julia", "url": "https://pretalx.com/juliacon2020/talk/P8D3PF/", "title": "DynamicGrids.jl: high-performance spatial simulations in Julia", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "DynamicGrids.jl is a new framework for constructing, running and visualising gridded spatial simulations, in Julia, developed for organism dispersal modelling with Dispersal.jl, but but generalised to be applicable to a wide range of contexts.", "description": "DynamicGrids.jl facilitates the easy construction of custom high-performance spatial simulations. It provides tools to construct simple simulations like the game-of-life and other cellular automata, but also complex, multi-rule and even multi-grid simulations that can involve random grid writes and grid interactions. DynamicGridsGtk.jl and DynamicGridsInteract.jl provide live visual interfaces, where simulations can be tweaked in real-time. Dispersal.jl will be used to demonstrate its potential.", "recording_license": "", "do_not_record": false, "persons": [{"code": "LVYSRF", "name": "Rafael Schouten", "avatar": "https://pretalx.com/media/avatars/LVYSRF_fZU3Mtd.webp", "biography": "I'm an ecologist, spending a lot of my time building spatial ecological models of plant and insect growth and population dynamics, at cesar (Melbourne), UNSW, and the University of Melbourne.", "public_name": "Rafael Schouten", "guid": "2d6eb305-6608-5967-a40b-78dda593babf", "url": "https://pretalx.com/juliacon2020/speaker/LVYSRF/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/P8D3PF/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/P8D3PF/", "attachments": []}, {"guid": "e0c4221f-07f4-5849-a176-58bb81bcfbbf", "code": "Z8WWNV", "id": 4600, "logo": null, "date": "2020-07-31T18:30:00+00:00", "start": "18:30", "duration": "00:30", "room": "Purple Track", "slug": "juliacon2020-4600-natural-language-processing-in-julia", "url": "https://pretalx.com/juliacon2020/talk/Z8WWNV/", "title": "Natural Language Processing in Julia", "subtitle": "", "track": null, "type": "Talk", "language": "en", "abstract": "The JuliaText ecosystem provides various packages for working with human languages. In this talk, we show the usage of these JuliaText packages with Flux.jl for Natural Language Processing (NLP) with a focus on deep learning-based approaches.", "description": "Natural Language Processing (NLP) enables the computers to analyse, understand and read human languages. In the past decade, tremendous growth has been witnessed in NLP owing to milestones like word embeddings, neural networks for NLP, attention and pre-trained language modelling. JuliaText packages, together with Flux, makes Deep Learning for NLP easy in Julia.\n\n## Packages\n\nWe will start with an overview of natural language processing.\nThen we pick up the task of Sentiment Analysis and discuss following packages:\n- `WordTokenizers.jl` provides various high-speed tokenizers and APIs for writing custom tokenizers for natural languages.\n- `CorpusLoaders.jl` contains a variety of (lazy) loaders for NLP corpora.\n- `Embeddings.jl` for working with Word Embeddings.\n- `Flux.jl` for neural networks.\n\nNext we will move on to some other NLP pipelines and discuss some APIs from `TextAnalysis.jl`\n\n## Talk\n\nThe attendees will gain working knowledge about how to apply the package for NLP in Julia.\nThe talk will encompass the following:\n- Tokenizers (Sentence splitters and word tokenizers) in WordTokenizers.jl\n- Word Embeddings (mapping words to vectors of numbers) using Embeddings.jl\n- Recurrent Neural Networks and Language models.\n\nAll notebooks with model weights at https://github.com/Ayushk4/JuliaCon20_Talk", "recording_license": "", "do_not_record": false, "persons": [{"code": "QAS7GV", "name": "Ayush Kaushal", "avatar": "https://pretalx.com/media/avatars/QAS7GV_ylqiJOm.webp", "biography": "Undergraduate student majoring in Computer Science and Engineering at Indian Institute of Technology Kharagpur.", "public_name": "Ayush Kaushal", "guid": "ab47e473-b051-5eed-939d-d4380997fa7e", "url": "https://pretalx.com/juliacon2020/speaker/QAS7GV/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/Z8WWNV/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/Z8WWNV/", "attachments": []}, {"guid": "70d1d757-ee9b-50ea-84f3-eaea9ea98b5b", "code": "M8JLAF", "id": 4823, "logo": null, "date": "2020-07-31T19:00:00+00:00", "start": "19:00", "duration": "00:10", "room": "Purple Track", "slug": "juliacon2020-4823-iterable-parser-combinators-for-fast-parsing-in-pure-julia", "url": "https://pretalx.com/juliacon2020/talk/M8JLAF/", "title": "Iterable Parser Combinators for fast parsing in pure Julia", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "I will introduce the CombinedParsers package for writing complex recursive parsers efficiently in a composable functional style.\n\nThe package API will be demonstrated by example of an CombinedParser for regular expressions which generates compiled regular expression parsers in pure julia.\n\nFar more expressive than regular expressions, parser combinators allow for arbitrary transformations and higher-order parsers depending on the parsing state (exemplified with a very short html parser).", "description": "Parsing data from strings recurrently is at the beginning of scientific computing and thus regular expressions are a familiar part of standard tooling. \nCombinedParsers constructors will be presented side-by-side with the equivalent regex syntax.\nThe regex parser provided with the package can be used as a pure julia plug-in replacement for the current julia Regex type.\n\nBenchmarks and compliance with PCRE syntax will be reported based on the extensive unit tests of the PCRE library.\nLeveraging julia compiler optimizations for multiple dispatch and parametric types,\nCombinedParsers performance can for many patterns compete with the PCRE C library that currently is used by julia base Regex.\n\nArbitrary transformations can be defined as part of the grammar definition, with convenient syntax for extracting data as named tuples.\nFor optimized performance, parsing and transformation are decoupled, and parsing memoization can be used optionally.\n\nParser combinators straightforwardly generalize from strings to parsing any iterator type.\nLogging and human-readable error messages help debugging complex parsers.\n\nCombinedParsers supports the iterate interface to lazily generate all valid parsings, and the TextParse interface to include CombinedParsers e.g. in CSV.jl.\nPreliminary packages for parsing wikitext and orgmode markup with ParserIterators are available.\n\nOther parsing packages (Automa.jl, ParserCombinator.jl) will be acknowledged. Current limitations and considerations for further optimization will be discussed.", "recording_license": "", "do_not_record": false, "persons": [{"code": "ABRWNH", "name": "Gregor Kappler", "avatar": "https://pretalx.com/media/avatars/ABRWNH_0jnHQRJ.webp", "biography": "Gregor Kappler carries out psychometric research and data science consulting, and is founder of FilingForest, a julia-focused startup developing solutions for fast unbiased measurement in graph data.\n\nGregor was initially trained as a mathematician and psychologist, has implemented solutions for semantic text analytics for his PhD in 2007, and developed psychometric models for measuring with texts. \nHe has worked as a lecturer and researcher at the University of Vienna and the University of Jena and worked on a series of predictive analytic projects for software vendors and customers. \n\nGregor has switched to Julia from R in 2018, and is creator of the IterableParsers package which provides parser combinators for fast, recursive and type-save parsing in pure Julia.", "public_name": "Gregor Kappler", "guid": "a1a0f82e-16c8-5ed0-8c7e-3d14424757ba", "url": "https://pretalx.com/juliacon2020/speaker/ABRWNH/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/M8JLAF/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/M8JLAF/", "attachments": []}, {"guid": "ba45ab57-6169-56bc-b5e6-5707a6f961ef", "code": "V9NX3C", "id": 3574, "logo": null, "date": "2020-07-31T19:10:00+00:00", "start": "19:10", "duration": "00:10", "room": "Purple Track", "slug": "juliacon2020-3574-creating-an-xml-parser-from-scratch", "url": "https://pretalx.com/juliacon2020/talk/V9NX3C/", "title": "Creating an XML parser from scratch", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "By utilizing channels and coroutines in Julia we can create a simple lexer and parser quickly in Julia. In this example we will be building an XML parser from scratch.  Focus is on simplicity rather than performance.", "description": "Many Julia XML packages wrap complex C++ parsers. This create annoying dependencies and are hard to debug. However Julia is a very nice language to hand code lexers and parsers from scratch. Here we will show how surprisingly easy it is to create a parser for XML and Apple's PList format. We will utilize channels and coroutines to simplify our design.", "recording_license": "", "do_not_record": false, "persons": [{"code": "HDAYK8", "name": "Erik Engheim", "avatar": "https://pretalx.com/media/avatars/HDAYK8_11gNRmg.webp", "biography": "Erik has been programming in a variety of programming languages for the last two decades, primarily C/C++, Objective-C and Swift but has become a big fan of Julia and is currently doing Julia training videos and educational material.\n\nHe has spent many years in the Norwegian oil and gas sector working on 3D modeling software for reservoir modeling and simulation. Some of his interests include UX design, space exploration and colonization, micro controllers and green tech.", "public_name": "Erik Engheim", "guid": "8476705a-2d35-5d70-88de-40eafc3b0e3b", "url": "https://pretalx.com/juliacon2020/speaker/HDAYK8/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/V9NX3C/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/V9NX3C/", "attachments": []}, {"guid": "0696dc5d-036b-548d-aa15-6a5112c5cea2", "code": "PTZDCJ", "id": 4750, "logo": "https://pretalx.com/media/juliacon2020/submissions/PTZDCJ/Screenshot_2020-03-14_at_18.46.58_dmVC9dz.png", "date": "2020-07-31T19:20:00+00:00", "start": "19:20", "duration": "00:10", "room": "Purple Track", "slug": "juliacon2020-4750-how-similar-do-two-strings-look-visual-distances-in-julia", "url": "https://pretalx.com/juliacon2020/talk/PTZDCJ/", "title": "How similar do two strings look? Visual distances in Julia", "subtitle": "", "track": null, "type": "Lightning Talk", "language": "en", "abstract": "We will describe a Julia package VisualStringDistances.jl which provides notions of distance between two strings based on how close they look when printed, and discuss a possible application of this:  an automated check in the General Registry auto-merge process to help prevent malicious lookalike registrations.", "description": "The Julia package VisualStringDistances.jl provides several notions of distance between two strings based on how they are rendered by GNU Unifont; e.g., capital-eye (\u201cI\u201d) and lowercase-ell (\u201cl\u201d) are close together, while \u201ca\u201d and e.g. \u201cX\u201d are far apart, even though they are both one character apart. By comparing strings visually, this package provides a means for quantifying how easily two strings might be confused when read by a human.\n\nThis measure of distance is calculated by the means of \u201cunbalanced optimal transport\u201d via the package UnbalancedOptimalTransport.jl which will also be discussed. Loosely speaking, this measures the cost of moving \u201cmass\u201d (i.e. black pixels in the printed representation of a string) from one place to another in order to transform the printed representation of one string into another, allowing the destruction or creation of mass (with some cost). This will be illustrated visually in the talk to provide an understanding of this interesting technique that has been applied to a variety of fields (image registration, economics, traffic flows, etc).\n\nThe motivating application of VisualStringDistances.jl is for establishing automated checks for Julia\u2019s General registry of packages in order to flag new packages for manual review. A malicious agent might try to register a package with a name that looks very similar to the name of some popular package, and then suggest users use it in online postings or tutorials. A user who copy-pastes the name or code that adds the package might not realize the name is different from that of the popular package. To aid in preventing this scenario, an automated check can be added to the General registry in order to prevent automated merging of new packages whose names look similar to those of existing packages.\n\nA related task is that of measuring \u201ctypo-similarity\u201d to prevent automerging of packages who names are likely to be entered by mistake when typing the name of another package. This will be discussed as well, time permitting.", "recording_license": "", "do_not_record": false, "persons": [{"code": "GBSYWE", "name": "Eric P. Hanson", "avatar": "https://pretalx.com/media/avatars/GBSYWE_YWaQrfN.webp", "biography": "PhD student studying quantum information theory at Cambridge University", "public_name": "Eric P. Hanson", "guid": "cde15243-3314-5757-bfc8-10b1a1f1672c", "url": "https://pretalx.com/juliacon2020/speaker/GBSYWE/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/PTZDCJ/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/PTZDCJ/", "attachments": []}], "BoF": [{"guid": "042615d5-b05e-5812-87c8-ccbf7926fbdc", "code": "CA3SET", "id": 4813, "logo": null, "date": "2020-07-31T16:10:00+00:00", "start": "16:10", "duration": "00:45", "room": "BoF", "slug": "juliacon2020-4813-julia-data-an-evolving-ecosystem", "url": "https://pretalx.com/juliacon2020/talk/CA3SET/", "title": "Julia & Data: An Evolving Ecosystem", "subtitle": "", "track": null, "type": "Birds of Feather", "language": "en", "abstract": "Come join authors and fellow users of many of Julia's most popular data-related packages to discuss what works, what doesn't, and how current roadmaps can reconcile the two. Join the BoF channel on Discord.", "description": "", "recording_license": "", "do_not_record": false, "persons": [{"code": "MQ3SJP", "name": "Jacob Quinn", "avatar": "https://pretalx.com/media/avatars/MQ3SJP_Z0yuEym.webp", "biography": "A long-time Julia user, developer, and enthusiast, Jacob works at Domo on large data analytics tasks.", "public_name": "Jacob Quinn", "guid": "7bc45afc-d149-5fc1-a5b3-a2c178529ca3", "url": "https://pretalx.com/juliacon2020/speaker/MQ3SJP/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/CA3SET/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/CA3SET/", "attachments": []}, {"guid": "7de05851-77c2-5912-80de-5f922f88b36e", "code": "YYKQCW", "id": 4771, "logo": null, "date": "2020-07-31T16:55:00+00:00", "start": "16:55", "duration": "00:45", "room": "BoF", "slug": "juliacon2020-4771-what-s-next-for-dynamical-modeling-in-julia", "url": "https://pretalx.com/juliacon2020/talk/YYKQCW/", "title": "What's Next For Dynamical Modeling In Julia?", "subtitle": "", "track": null, "type": "Birds of Feather", "language": "en", "abstract": "Dynamical modeling is arguably one of the biggest strengths of the Julia programming language. With DifferentialEquations.jl, DynamicalSystems.jl, RigidBodyDynamics.jl, ModelingToolkit.jl, DiffEqBiological.jl, Pumas.jl, etc. (the list keeps going), there are many state-of-the-art award winning projects. However, ,what's missing? What's next? Let's discuss and figure out some next steps. Join the BoF channel on Discord.", "description": "There are many directions that we can explore. What should we as a community be prioritizing? I think it would be good to hear from users what they think is \"complete\", and what gaps commonly show up. There's many topics this discussion can go towards:\n\n1) Improved modeling tools and DSLs (ModelingToolkit)\n2) Automated PDE solving\n3) Targeting alternative hardware (exporting models for embedded systems)\n4) New domains: integro-differential equations, fractional differential equations\n5) Geometric methods and DAEs\n6) Parallelism (MPI, GPUs, alternative acceleration hardware)\n7) Connections: mixing ApproxFun.jl and FEM packages with DifferentialEquations.jl, etc.\n8) Continuing to improve benchmarking\n9) Accessibility, tutorials, blog posts, etc.\n10) Whatever else comes to mind!", "recording_license": "", "do_not_record": false, "persons": [{"code": "WUWQQ3", "name": "Chris Rackauckas", "avatar": "https://pretalx.com/media/avatars/WUWQQ3_otHw1Wk.webp", "biography": "Christopher Rackauckas is an Applied Mathematics Instructor at the Massachusetts Institute of Technology and a Senior Research Analyst at University of Maryland, Baltimore, School of Pharmacy in the Center for Translational Medicine. Chris's research is focused on numerical differential equations and scientific machine learning with applications from climate to biological modeling. He is the developer of over many core numerical packages for the Julia programming language, including DifferentialEquations.jl for which he won the inaugural Julia community prize, and the Pumas.jl for pharmaceutical modeling and simulation. He is the lead developer for the [SciML Open Source Scientific Machine Learning](https://sciml.ai/) software organization, along with its packages like [DiffEqFlux.jl](https://diffeqflux.sciml.ai/dev/) and [NeuralPDE.jl](https://neuralpde.sciml.ai/dev/)", "public_name": "Chris Rackauckas", "guid": "5ecf5886-9c68-55ca-8dcf-c4f85742c1ca", "url": "https://pretalx.com/juliacon2020/speaker/WUWQQ3/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/YYKQCW/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/YYKQCW/", "attachments": []}, {"guid": "2f6b90b9-8068-547b-b575-55e9383b73ec", "code": "L9LV3N", "id": 4654, "logo": null, "date": "2020-07-31T18:00:00+00:00", "start": "18:00", "duration": "00:45", "room": "BoF", "slug": "juliacon2020-4654-transitioning-code-from-closed-to-open", "url": "https://pretalx.com/juliacon2020/talk/L9LV3N/", "title": "Transitioning Code From Closed To Open", "subtitle": "", "track": null, "type": "Birds of Feather", "language": "en", "abstract": "Within private companies/institutions, it can be difficult to implement effective internal practices that enable internal code to smoothly transition into high quality, open-source contributions. In this BoF, we'll swap techniques for maximizing open-source impact in the Julia ecosystem while minimizing refactor time/effort and code churn. Join the BoF channel on Discord.", "description": "Julia's package ecosystem makes it fairly easy for private organizations to redistribute code back to the Julia community, and we've found there are numerous benefits to routinely open-sourcing internally developed packages:\n\n- great for recruiting both community collaborators and future FTEs\n- encourages well-scoped, composable APIs and discourages overcoupling of orthogonal functionality\n- encourages structuring/maintaining the project in a manner that keeps the contribution/collaboration barrier low\n- positively contributes to the health/growth of the Julia ecosystem that we all rely on; a more robust/featureful ecosystem attracts more great community members and improves productivity for existing community members.\n\nHowever, it can be difficult to implement effective internal practices that enable internal code to smoothly transition into high quality, open-source contributions. In this BoF, we'll swap techniques for maximizing open-source impact in the Julia ecosystem while minimizing refactor time/effort and code churn. Discussion points include:\n\n- developing Julia packages with upfront \"intent to open-source\"\n- the benefits/challenges of piecemeal upstreaming to existing packages\n- identifying/mitigating common pain points w.r.t. internal code churn\n- managing internal dependency graphs when nodes are open-sourced\n- the interplay between private CI/CD and open CI/CD for Julia packages\n- git history/metadata preservation\n- the role of GitHub in the Julia community, and open-sourcing non-GitHub-hosted projects\n- software licensing", "recording_license": "", "do_not_record": false, "persons": [{"code": "VAVNMG", "name": "Jarrett Revels", "avatar": null, "biography": "CTO @ Beacon Biosignals", "public_name": "Jarrett Revels", "guid": "2b85a9aa-3931-537a-967d-a10cad7645a8", "url": "https://pretalx.com/juliacon2020/speaker/VAVNMG/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/L9LV3N/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/L9LV3N/", "attachments": []}, {"guid": "44fe445e-ec4d-5a7d-a037-8c278d32a1c6", "code": "3AGJ3V", "id": 4741, "logo": null, "date": "2020-07-31T18:45:00+00:00", "start": "18:45", "duration": "00:45", "room": "BoF", "slug": "juliacon2020-4741-julia-in-production", "url": "https://pretalx.com/juliacon2020/talk/3AGJ3V/", "title": "Julia in Production", "subtitle": "", "track": null, "type": "Birds of Feather", "language": "en", "abstract": "An informal conversation about problems and solutions related to running Julia in a production environment. Join the BoF channel on Discord.", "description": "Running Julia in production can take many different forms. Those who have already deployed Julia to production will share their experiences and discuss challenges they have had or still have. For those who have not yet run Julia in production this is a good opportunity to get feedback on deployment strategies.\n\nThis birds-of-a-feather also provides us with the chance to discover common patterns with running Julia in production and hopefully will generate ideas for new tools that can we can all share.", "recording_license": "", "do_not_record": false, "persons": [{"code": "AQLMAC", "name": "Curtis Vogt", "avatar": "https://pretalx.com/media/avatars/AQLMAC_i6usF6T.webp", "biography": "Head of Development at Invenia Technical Computing\n\nHas been using Julia since 2015\n\nMain author of [TimeZones.jl](https://github.com/JuliaTime/TimeZones.jl) and [Mocking.jl](https://github.com/invenia/Mocking.jl)", "public_name": "Curtis Vogt", "guid": "f9e41e0e-a340-5404-aed7-029bb2a695f7", "url": "https://pretalx.com/juliacon2020/speaker/AQLMAC/"}], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/3AGJ3V/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/3AGJ3V/", "attachments": []}, {"guid": "4c529bf4-3b58-58cd-a1ef-2138b613f349", "code": "8WYB3B", "id": 6179, "logo": null, "date": "2020-07-31T19:30:00+00:00", "start": "19:30", "duration": "00:45", "room": "BoF", "slug": "juliacon2020-6179-gather-town-social", "url": "https://pretalx.com/juliacon2020/talk/8WYB3B/", "title": "Gather Town Social", "subtitle": "", "track": null, "type": "Birds of Feather", "language": "en", "abstract": "A scheduled social on Gather Town will happen after the last talk finishes\nPlease join then (or indeed at any time) using https://gather.town/rBrwIUqeDkb5JTxu/juliacon2020", "description": "", "recording_license": "", "do_not_record": false, "persons": [], "links": [], "feedback_url": "https://pretalx.com/juliacon2020/talk/8WYB3B/feedback/", "origin_url": "https://pretalx.com/juliacon2020/talk/8WYB3B/", "attachments": []}]}}]}}}