Conference Agenda

Friday, July 29, 2022

12:30 UTC

Julia for Space Engineering

07/29/2022, 12:30 PM2:00 PM UTC
BoF

On paper, Julia and its ecosystem are a perfect match for space engineering. We have got all the cool tools at our disposal The number of people working on great Julia-based solutions for space engineering are increasing year over year. What else do we need to gain orbital velocity? Let's have a discussion, come up with a plan, and let's go light this candle!

Join the discussion on the bof-voice channel in discord.

12:30 UTC

A Fresh Approach to Open Source Voice Assistant Development

07/29/2022, 12:30 PM12:40 PM UTC
Blue

We present JustSayIt.jl, a software and high-level API for offline, low latency and secure translation of human speech to computer commands or text, leveraging the Vosk Speech Recognition Toolkit. The API includes an unprecedented, highly generic extension to the Julia programming language, which allows to declare arguments in standard function definitions to be obtainable by voice. As a result, it empowers any programmer to quickly write new commands that take arguments from human voice.

12:30 UTC

Reproducible Publications with Julia and Quarto

07/29/2022, 12:30 PM1:00 PM UTC
Purple

Quarto is an open-source scientific and technical publishing system that builds on standard markdown with features essential for scientific communication. The system has support for reproducible embedded computations, equations, citations, crossrefs, figure panels, callouts, advanced layout, and more. In this talk we'll explore the use of Quarto with Julia, describing both integration with IJulia and the Julia VS Code extension, as well as areas for future improvement and exploration.

12:30 UTC

Fractional Order Computing and Modeling with Julia

07/29/2022, 12:30 PM1:00 PM UTC
Red

As the generalization of classical calculus and differential equations, fractional calculus and fractional differential equations are important areas since their invention, to provide a comprehensive Differential Equations package, SciFracX is here to explore fractional order area with Julia. In 2022 JuliaCon, we will talk about the progress we have made in FractionalDiffEq.jl and FractionalCalculus.jl, how Julia helped us speed up fractional order modeling and com

12:40 UTC

ImplicitDifferentiation.jl: differentiating implicit functions

07/29/2022, 12:40 PM12:50 PM UTC
Blue

We present a Julia package for differentiating through functions that are defined implicitly. It can be used to compute derivatives for a wide array of "black box" procedures, from optimization algorithms to fixed point iterations or systems of nonlinear equations. Since it mostly relies on defining custom chain rules, our code is lightweight and integrates nicely with Julia's automatic differentiation and machine learning ecosystem.

12:50 UTC

Du Bois Data Visualizations: A Julia Recipe

07/29/2022, 12:50 PM1:00 PM UTC
Blue

We introduce a new plotting package allowing users to easily create publication-quality figures in W.E.B. Du Bois’s unique style of data visualizations. A groundbreaking sociologist and historian, Du Bois collected data on Black Georgia residents in the late 19th century and designed over 60 eye-catching graphs to depict these data at the 1900 Paris Exposition. We showcase our package by replicating the original figures exactly and by revisiting them with new data.

13:00 UTC

WhereTraits.jl has now a disambiguity resolution system!

07/29/2022, 1:00 PM1:10 PM UTC
Purple

When WhereTraits.jl was published 2 years ago, the key missing feature was to address ambiguations between traits function definitions. It is implemented now!

If you as a user encounter a trait conflict, you are now prompted with a concrete example resolution. You simply specify an ordering between the traits and everything is resolved automatically for you. A feature only available in WhereTraits - even normal julia functions cannot do this.

13:00 UTC

which(methods)

07/29/2022, 1:00 PM1:10 PM UTC
Green

I will talk about which methods get called by which(methods) calls. How does Julia decide? How fast does it decide? And when does it figure it all out? Let’s take a lightning fast dive together into the complexities of the method selection algorithm we affectionately call multiple-dispatch.

13:00 UTC

Data Analysis and Visualization with AlgebraOfGraphics

07/29/2022, 1:00 PM1:10 PM UTC
Blue

Based on the Makie library, AlgebraOfGraphics offers visualizations for common analyses (frequency table, 1- or 2-D histogram and kernel density, linear and non-linear regression...), as well as functions to express how the data should be processed, grouped, styled, and visualized. These building blocks can be combined using the * and + operators, thus forming a rich algebra of visualizations. The unified syntax layer simplifies the creation of AlgebraOfGraphics-based UIs for data analysis.

13:00 UTC

PointSpreadFunctions.jl - optical point spread functions

07/29/2022, 1:00 PM1:30 PM UTC
Red

Various ways of calculating three-dimensional optical point spread functions (PSFs) are presented. The methods account for the vector nature of the optical field as well as phase aberrations. Quantitative comparisons in terms of speed and accuracy will be presented.

13:10 UTC

Building an inclusive (and fun!) Julia community

07/29/2022, 1:10 PM1:20 PM UTC
Green

A critical component of any programming language’s potential for impact is the diversity of its community! A supportive, inclusive community draws in new learners, brings fresh perspectives to package development, and ultimately expands the reach a language has.

13:10 UTC

Invenia Sponsored Talk

07/29/2022, 1:10 PM1:15 PM UTC
Purple

We are a team of scientists and engineers working together to solve the social, economic and environmental issues that we face in the world today.

13:25 UTC

QuEra Computing Sponsor Talk

07/29/2022, 1:25 PM1:30 PM UTC
Blue

QuEra is a neutral-atom based quantum computing startup located in the heart of Boston near Harvard University.

13:30 UTC

Help! How to grow a corporate Julia community?

07/29/2022, 1:30 PM2:00 PM UTC
Green

For many years we simply accepted the two language problem at our company and spent our time converting MATLAB/Python prototypes into C/C++/Java production code. But during the last two years we have been growing an internal Julia community from 3 initial enthusiasts to over 300 Julians. We would like to share our ongoing journey with you and inspire other Julians who want to kickstart similar communities at their company.

13:30 UTC

Working with Firebase in Julia

07/29/2022, 1:30 PM2:00 PM UTC
Blue

In this talk, I intend to discuss about the use of Firebase in Julia through Firebase.jl https://github.com/ashwani-rathee/Firebase.jl A lot of databases are well supported in Julia but support for Firebase is rather limited, which is an issue. We want to attract more younger people towards Julian community, but a big chunk of these people prefer to use Firebase in their relatively small size projects. Through this talk, I want to demonstrate how to use Firebase.jl for project developement.

14:30 UTC

Keynote - Husain Attarwala

07/29/2022, 2:30 PM3:15 PM UTC
Green

Keynote - Husain Attarwala, Moderna

15:15 UTC

Relational AI Sponsored Talk

07/29/2022, 3:15 PM3:30 PM UTC
Green

At RelationalAI, we are building the world’s fastest, most scalable, most expressive, most open knowledge graph management system, built on top of the world’s only complete relational reasoning engine that uses the knowledge and data captured in enterprise databases to learn and reason.

15:30 UTC

The State of Julia in 2022

07/29/2022, 3:30 PM4:00 PM UTC
Green

An update on Julia from the core development team.

16:00 UTC

Closing remarks

07/29/2022, 4:00 PM4:10 PM UTC
Green

Closing remarks

16:30 UTC

Dagger.jl Development and Roadmap

07/29/2022, 4:30 PM4:40 PM UTC
Green

Dagger.jl is a Julia library aiming to improve the way Julia users do distributed programming. With its functional task-focused API, distributed table and array implementations, and intelligent scheduler, Dagger is quickly becoming the de-facto distributed programming interface for many parts of our ecosystem.

This talk is focused on Dagger's development over the last year, and where we see Dagger going over the next few years. I'll also provide examples of how to use Dagger's new features.

16:30 UTC

Metaheuristics.jl: Towards Any Optimization

07/29/2022, 4:30 PM5:00 PM UTC
Purple

Real-world problems require sophisticated methodologies providing feasible and efficient solutions. Metaheuristics are algorithms proposed to approximate those optimal solutions in a short time, making them suitable for applications where saving time is important. Metaheuristics.jl package implements relevant state-of-the-art algorithms for constrained, multi-, many-objective and bilevel optimization. Moreover, performance indicators are implemented in this package.

16:30 UTC

Interactive Julia data dashboards with Genie

07/29/2022, 4:30 PM5:00 PM UTC
Blue

Genie provides a powerful set of features for fast and easy creation of interactive data dashboards, helping data and research scientists to design, build, and publish production ready interactive apps and dashboards using pure Julia. In this talk we'll explain and demonstrate how to build a production ready, powerful data dashboard, going from 0 to live in 20 minutes!

16:30 UTC

DiffOpt.jl differentiating your favorite optimization problems

07/29/2022, 4:30 PM5:00 PM UTC
JuMP

DiffOpt aims at differentiating optimization problems written in MathOptInterface. Moreover, everything “just works” in JuMP. The current framework is based on existing techniques for differentiating the solution of optimization problems with respect to the input parameters. We will show the current state of the package that supports Quadratic Programs and Conic Programs. Moreover, we will highlight how other packages are used to keep the library generic and efficient.

16:30 UTC

Relational AI Sponsored Forum

07/29/2022, 4:30 PM5:15 PM UTC
Sponsored forums

At RelationalAI, we are building the world’s fastest, most scalable, most expressive, most open knowledge graph management system, built on top of the world’s only complete relational reasoning engine that uses the knowledge and data captured in enterprise databases to learn and reason. Join the sponsored forum here.

16:30 UTC

Production Data Engineering in Julia

07/29/2022, 4:30 PM6:00 PM UTC
BoF

We believe that Julia is uniquely well-positioned to pioneer new approaches to dataflow orchestration that are currently dominated by monolithic frameworks. In this BoF, Julia's nascent Data Engineering community will swap experiences and identify opportunities to collaborate on open-source next-generation data engineering tools.

Join the discussion on the bof-voice channel in discord.

16:30 UTC

Control-systems analysis and design with JuliaControl

07/29/2022, 4:30 PM5:00 PM UTC
Red

The Julia language is uniquely suitable for control-systems analysis and design. Features like a mathematical syntax, powerful method overloading, strong and generic linear algebra, arbitrary-precision arithmetics, all while allowing high performance, creates a compelling platform to build a control ecosystem upon. We will present the JuliaControl packages and illustrate how they make use of Julia to enable novel and sophisticated features while keeping implementations readable and maintainable.

16:40 UTC

DTables.jl - quickstart, current state and next steps!

07/29/2022, 4:40 PM4:50 PM UTC
Green

DTables.jl is a distributed table implementation based on Dagger.jl. It aims to provide distributed and out-of-core tabular data processing for the Julia programming language. The DTables package consists of data structures, distributed algorithms and it's built to be compatible with our rich data processing ecosystem.

The talk covers a quick intro on how to use the DTable, what functionality is currently available and what are our plans for the future!

16:50 UTC

`BesselK.jl`: a fast differentiable implementation of `besselk`

07/29/2022, 4:50 PM5:00 PM UTC
Green

The modified Bessel function of the second kind, provided by SpecialFunctions.jl as besselk, is an important function in several fields. Despite its significance, convenient numerical implementations of its derivatives with respect to the order parameter are not easily available. In this talk, we discuss a solution to this problem that leverages Julia's exceptional automatic differentiation ecosystem to provide fast and accurate derivatives with respect to order.

17:00 UTC

Explaining Black-Box Models through Counterfactuals

07/29/2022, 5:00 PM5:30 PM UTC
Red

We propose CounterfactualExplanations.jl: a package for explaining black-box models through counterfactuals. Counterfactual explanations are based on the simple idea of strategically perturbing model inputs to change model predictions. Our package is novel, easy-to-use and extensible. It can be used to explain custom predictive models including those developed and trained in other programming languages.

17:00 UTC

Recent developments in ParametricOptInterface.jl

07/29/2022, 5:00 PM5:10 PM UTC
JuMP

ParametricOptInterface.jl is a MathOptInterface extension that helps users deal with parameters in MOI/JuMP. The package started as a GSOC project in 2020 and has seen some new developments in recent months. The goal of this talk is to show the current state of ParametricOptInterface amid the JuMP ecosystem as well as to show some interesting use cases of the package.

17:00 UTC

2022 Update: Diversity and Inclusion in the Julia community

07/29/2022, 5:00 PM5:10 PM UTC
Green

In this talk, we will give an annual update on the current diversity and inclusion efforts underway in the community. We will also present stats from Google Analytics showing aggregate country of origin, gender, and age. These stats will help provide additional context for the continued challenge of D&I in the Julia community and will set the stage for the Julia Inclusive BoF session.

17:00 UTC

InferOpt.jl: combinatorial optimization in ML pipelines

07/29/2022, 5:00 PM5:30 PM UTC
Purple

We present InferOpt.jl, a generic package for combining combinatorial optimization algorithms with machine learning models. It has two purposes:

  • Increasing the expressivity of learning models thanks to new types of structured layers.
  • Increasing the efficiency of optimization algorithms thanks to an additional inference step.

Our library provides wrappers for several state-of-the-art methods in order to make them compatible with Julia's automatic differentiation ecosystem.

17:00 UTC

Declarative data transformation via graph transformation

07/29/2022, 5:00 PM5:30 PM UTC
Blue

SQL is far from the only declarative paradigm for specifying the dynamics of data! The field of graph transformation formalizes a generalization of term rewriting systems that is visual, intuitive, and applicable to a wide array of data structures, including Catlab's ACSet datatypes. We will describe the basic theory of graph transformation and show how our implementation in Catlab.jl can be applied to e-graph equality saturation and general agent-based model simulations.

17:10 UTC

Risk Budgeting Portfolios from simulations

07/29/2022, 5:10 PM5:20 PM UTC
JuMP

Risk budgeting is a portfolio strategy where each asset contributes a pre-specified amount to the total portfolio risk. We propose a numerical framework in JuMP that uses only simulations of returns for estimating risk budgeting portfolios, and provide a Sample Average Approximation algorithm. We leveraged automatic differentiation and JuMP's modeling flexibility to build a clear and concise code. We also report on memory issues encountered when solving for every day in a 14 year horizon.

17:10 UTC

The JuliaCon Proceedings

07/29/2022, 5:10 PM5:20 PM UTC
Green

In this talk, we will present the JuliaCon proceedings, the purpose, scope, and target audience of this venue. The proceedings are a community-driven initiative to publish articles of interest to the research and developer communities gathered by JuliaCon, they do not require application processing fees nor a paywall on article, making both producing and accessing the articles possible for all. We will then give a quick tour of the reviewing and publication process which happen transparently in

17:20 UTC

Interplay between chaos and stochasticity in celestial mechanics

07/29/2022, 5:20 PM5:30 PM UTC
Green

This work is focused on the development of an open-source Julia package for the stochastic characterization and the study of chaotic motion in astrodynamics. We focus on the computation of various chaos indicators, among others Fast Lyapunov Indicators (FLI), Finite-Time Lyapunov exponents (FTLE) and Mean Exponential Growth factor of Nearby Orbits (MEGNO) and chaos indicators more in general.

17:20 UTC

Optimising Fantasy Football with JuMP

07/29/2022, 5:20 PM5:30 PM UTC
JuMP

Fantasy Premier League is an online fantasy sports game where you select a team of 15 players and score points based on their performance each week. You have a finite budget and each player costs a certain amount, plus a number of other constraints which makes this an optimisation problem that JuMP can solve. In this talk I will work through this problem and show how each constraint is translated into the JuMP language. It will be a fun introduction to optimisation in an alternative domain.

17:30 UTC

How to recover models from data using DataDrivenDiffEq.jl

07/29/2022, 5:30 PM6:00 PM UTC
Blue

In this talk, we will address the problem of data-driven estimation and approximation of completely or partially unknown systems using DataDrivenDiffEq.jl. We will start by giving a short introduction to the field of symbolic regression in general followed by an example of its practical use. Here we learn how to (a) set up a DataDrivenProblem, (b) use ModelingToolkit.jl to incorporate prior knowledge, (c) use different algorithms to recover the underlying equations.

17:30 UTC

Building an Immediate-Mode GUI (IMGUI) from scratch

07/29/2022, 5:30 PM6:00 PM UTC
Red

Broadly, there are two paradigms of interfacing with a UI library to create a Graphical User Interface (GUI) - Retained-Mode (RM) and Immediate-Mode (IM). This talk is for anyone who wants to understand how to make an immediate-mode GUI from scratch. I will explain the inner workings of an immediate-mode UI library and show one possible way to implement simple widgets like buttons, sliders, and text-boxes from scratch.

Link: https://github.com/Sid-Bhatia-0/SimpleIMGUI.jl

17:30 UTC

Stochastic Optimal Control with MarkovBounds.jl

07/29/2022, 5:30 PM5:40 PM UTC
JuMP

We present MarkovBounds.jl -- a meta-package to SumOfSquares.jl which enables the computation of guaranteed bounds on the optimal value of a large class of stochastic optimal control problems via a high-level, practitioner-friendly interface.

17:30 UTC

How to be an effective Julia advocate?

07/29/2022, 5:30 PM5:40 PM UTC
Green

A major part of Julia's success as a language has come from a large community of user advocates. User advocacy continues to be one of the most effective outreach mechanisms and this talk aims to help improve the approach of those seeking to advocate for Julia.

17:30 UTC

Time to Say Goodbye to Good Old PCA

07/29/2022, 5:30 PM5:40 PM UTC
Purple

In this talk, I present ProjectionPursuit.jl, a package that is designed to address the limitation of PCA, that is the lack of flexibility for dimension reduction. I also discuss the background of projection pursuit, why the result of PCA could be misleading, and compare projection pursuit and PCA with some data examples. An alternative title of this talk is “Bring Your Own Objective Function: Why PCA can be a bad idea?”.

17:40 UTC

RegressionFormulae.jl: familiar `@formula` syntax for regression

07/29/2022, 5:40 PM5:50 PM UTC
Purple

StatsModels.jl provides the @formula mini-language for conveniently specifying table-to-matrix transformations for statistical modeling. RegressionFormulae.jl extends this mini-language with additional syntax that users coming from other statistical modeling ecosystems such as R may be familiar with. This package also serves as a template for developers wish to expand the StatsModels.jl @formula syntax in their own packages.

17:40 UTC

Optimize your marketing spend with Julia!

07/29/2022, 5:40 PM5:50 PM UTC
Green

"Half the money I spend on advertising is wasted; the trouble is I don't know which half." (J.Wanamaker, 19th-century retailer) Optimizing marketing spend is still difficult, but this talk introduces a modern marketing analysis: Media Mix Modelling (MMM). We will combine the strength of Julia with Bayesian decision-making to optimize marketing spend for a hypothetical business. Find more details in the associated GitHub Repo

17:50 UTC

Random utility models with DiscreteChoiceModels.jl

07/29/2022, 5:50 PM6:00 PM UTC
Purple

Random utility models are widely used in social science. While most statistical software, including Julia, has some facilities for estimating multinomial logit models, more advanced models such as mixed logit models and models with different utility functions for different outcomes generally require specific choice modeling software. This presentation describes a new package, DiscreteChoiceModels.jl, which provides flexible and high-performance multinomial and forthcoming mixed logit estimation.

18:00 UTC

GatherTown -- Social break

07/29/2022, 6:00 PM7:00 PM UTC
Green

Join us on Gather.town for a social hour.

19:00 UTC

GeneDrive.jl: Simulate and Optimize Biological Interventions

07/29/2022, 7:00 PM7:30 PM UTC
Red

This talk introduces GeneDrive.jl, a package designed to study the effect of biotic and abiotic interactions on metapopulations, outlining functionalities and use cases. GeneDrive.jl is a 3-part framework for building and analyzing simulations wherein organisms are subjected to anthropogenic and environmental change. It includes: (1) Data models that exploit the power of Julia's type system. (2) Dynamic models that build on DifferentialEquations.jl. (3) Decision models that employ JuMP.jl.

19:00 UTC

Streamlining nonlinear programming on GPUs

07/29/2022, 7:00 PM7:30 PM UTC
JuMP

We propose a prototype for a vectorized modeler written in pure Julia, targeting the resolution of large-scale nonlinear optimization problems. The prototype has been designed to evaluate seamlessly the problem's expression tree with GPU accelerators. We discuss the implementation and the challenges we have encountered, as well as preliminary results comparing our prototype together with JuMP's AD backend.

19:00 UTC

Large-Scale Tabular Data Analytics with BanyanDataFrames.jl

07/29/2022, 7:00 PM7:30 PM UTC
Green

BanyanDataFrames.jl is an open-source library for processing massive Parquet/CSV/Arrow datasets in your Virtual Private Cloud. One of the key goals of the project is to match the API of DataFrames.jl as much as possible. In this talk, we will provide an overview of BanyanDataFrames.jl and discuss challenges and success so far in achieving massively scalable data analytics with the Julia language.

19:30 UTC

Fast optimization via randomized numerical linear algebra

07/29/2022, 7:30 PM8:00 PM UTC
JuMP

We introduce RandomizedPreconditioners.jl, a package for preconditioning linear systems using randomized numerical linear algebra. Crucially, our preconditioners do not require a priori knowledge of structure present in the linear system, making them especially useful for general-purpose algorithms. We demonstrate significant speedups of positive semidefinite linear system solves, which we use to build fast constrained optimization solvers.

19:30 UTC

How to debug Julia simulation codes (ODEs, optimization, etc.!)

07/29/2022, 7:30 PM8:00 PM UTC
Green

The ODE solver spit out dt<dtmin, what do you do? MethodError Dual{...}, what does it mean? Plenty of people ask these questions every day. In this talk I'll walk through the steps of debugging Julia simulation codes and help you get something working!

20:00 UTC

Scaling up Training of Any Flux.jl Model Made Easy

07/29/2022, 8:00 PM8:30 PM UTC
Green

In this talk, we will be discussing some of the state of the art techniques to scale training of ML models beyond a single GPU, why they work and how to scale your own ML pipelines. We will be demonstrating how we have scaled up training of Flux models both by means of data parallelism and by model parallelism. We will be showcasing ResNetImageNet.jl and DaggerFlux.jl to accelerate training of deep learning and scientific ML models such as PINNs and the scaling it achieves.

20:30 UTC

GatherTown -- Social break

07/29/2022, 8:30 PM9:30 PM UTC
Green

Join us on Gather.town for a social hour.

Platinum sponsors

Julia ComputingRelational AIJulius Technology

Gold sponsors

IntelAWS

Silver sponsors

Invenia LabsBeacon BiosignalsMetalenzASMLG-ResearchConningPumas AIQuEra Computing Inc.Jeffrey Sarnoff

Media partners

Packt PublicationGather TownVercel

Community partners

Data UmbrellaWiMLDS

Fiscal Sponsor

NumFOCUS