Alexander
Astrophysicist – Postdoctoral Fellow at Harvard University.
Sessions
Traditional plotting functions like scatter(x, y, color=c)
separate x
, y
, and c
, losing the fact that they describe properties of the same elements. MakieExtra.jl’s FPlot
promotes a dataset-centric approach, linking arbitrary element features to plot attributes. This method simplifies and enriches interactivity, enables automatic labeling, and enhances composability, as demonstrated in the talk.
Julia stands out by enabling convenient tabular data manipulation without specialized types: built-in arrays, with their versatility, fit perfectly. This approach seamlessly extends beyond flat tables and to out-of-memory datasets while maintaining simplicity and performance. In this talk, I'll explore the tabular-like functions available in Julia, from foundational map to advanced pivoting and joins, and their design.
Functions like map
or filter
in Julia perform well on containers with concrete element types, such as Vectors-of-NamedTuples or StructArrays, used in typical tabular data. However, dealing with hundreds or thousands of columns can overwhelm the compiler. DictArrays aims to get the best of both worlds by delivering the familiar, efficient collection API to type-unstable collections, optimizing both compilation and runtime performance.
Astronomy problems often involve data from diverse instruments and archives. In Julia, all essential tools are available and work together, offering a uniquely performant and uniform workflow. We'll explore how Julia ecosystem tackles the full range of steps when working with astronomy catalogs, large and small.
FlexiJoins.jl offers unparalleled flexibility in data joining – both within the Julia ecosystem and beyond. It supports a wide variety of join conditions and options through efficient algorithms, can operate on both in-memory collections and SQL tables. In this talk, I'll demonstrate and explore the uniform user-facing interface, and discuss the underlying design of the package that leverages Julia dispatch capabilities.
The Accessors.jl package is known as a way to update values within immutable structs with its @set macro. However, the underlying "optics" concept is far more powerful and versatile. The Accessors design makes these optics impressively seamless and performant in Julia, relying heavily on multiple dispatch for composability. In the talk, I'll cover its design and implementation, showcasing neat usecases from autodiff and function optimization to tabular operations and plotting.