Tables.jl
RequiredInterfaces.jl
Tables.jl | RequiredInterfaces.jl | |
---|---|---|
3 | 1 | |
291 | 31 | |
1.4% | - | |
4.6 | 6.8 | |
24 days ago | 28 days ago | |
Julia | Julia | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Tables.jl
- Julia or Python for analysis on Arrow datasets
-
Beacon Biosignals raises $27M to scale EEG neurobiomarker discovery
Good questions!
> How exactly does Julia fit into your software architecture?
In a variety of ways:
- We have a bunch of external/internal Julia packages; Julia's package manager is really great at facilitating the development of "tooling ecosystems" comprised of lightweight libraries that compose well together. For example, we use Legolas.jl [1] in conjunction with a well-curated Arrow-in-S3 lake to help teams define lightweight, self-serviceable schemas for Arrow tables in a manner that integrates well with the wider Tables.jl ecosystem [2], interactive analysis workflows, and our own ETL/ELT-ish patterns.
- Julia powers some interesting services within Beacon's Platform. For example, one of our Julia services provides dynamic streaming DSP (multiplexing, filtering, statistics) for biosignal data, atop which we build other applications/pipelines for both product development and internal analysis work.
- We use Julia for exploratory distributed computing on K8s [3], which is awesome because Julia has a lot of potential in the distributed computing landscape (IMO [4]).
> Is your product a cloud offering and/or does it have a client side application?
We work with our clients to do neurobiomarker discovery, clinical trial design, deploy our analysis pipelines into clinical trials, and a few other interesting things :) One of the critical differentiators of Beacon is that we can precisely target and harness key EEG features to a degree that isn't possible without the kind of algorithms/tools we've developed.
> what do you even mean by data architecture for science-first teams
I want to do a blog post on this at some point, but a core value for us - across all of our processes, tooling, and data interactions - is self-serviceability and composability. IMO, the two are inextricably linked. Our goal is to empower each Beaconeer to perform analyses in an afternoon atop terabytes of data that would take them months in a lab atop gigabytes of data.
To achieve this, we treat large-scale data curation/manipulation as an activity that we're all empowered to participate in and contribute to, as opposed to an environment where separate data engineering teams have to administrate siloed systems. Tools like K8s/Julia/Arrow are key enablers here, by surfacing capabilities to domain experts that let them to iterate fast without needing to "throw problems over the wall" to other teams/systems.
It's not a perfect match, and it's a bit abstract, but I remember reading this post about "data meshes" [5] a while back and thinking "Hey, that's similar to what we're chasing after!"
[1] https://github.com/beacon-biosignals/Legolas.jl
[2] https://github.com/JuliaData/Tables.jl
[3] https://github.com/beacon-biosignals/K8sClusterManagers.jl
[4] https://news.ycombinator.com/item?id=24842084
[5] https://martinfowler.com/articles/data-mesh-principles.html
-
Hello everyone! Iām new to Julia, and Iām trying to pass a JuliaDB table to another function. Does anyone know how I can do so? The documentation for examples and everything surrounding JuliaDB seems so little in comparison to other languages.
As you progress you'll likely learn to be a bit more relaxed about types - there's a Table Interface that JuliaDB implements along with many other data sources.But this should get you going.
RequiredInterfaces.jl
-
Julia as a unifying end-to-end workflow language on the Frontier exascale system
There is no rebuttal because nothing much has really changed culture wise. Sure, the various @inbounds issues and concrete bugs that are mentioned in Yuris post have mostly been addressed, but the larger point (that is, "what can I actually expect/get guaranteed when calling a given function?") definitely hasn't been, at least not culturally. Documentation of pre- and postconditions are still lackluster, PRs trying to establish that for functions in Base stall for unclear reasons/don't get followups and when you try to talk about that on Slack retorts boil down to "we're tired of hearing you complain about this" instead of trying to find a systemic solution to that problem. Until that changes, I have large doubts about Yuris post losing relevance.
My own efforts (shameless plug, https://github.com/Seelengrab/PropCheck.jl for property based testing inspired by Hedgehog and https://github.com/Seelengrab/RequiredInterfaces.jl for somewhat formalizing "what methods are needed to subtype an abstract type") are unused in the wider community as far as I can tell, in spite of people speaking highly of them when coming across them. I also don't think Kenos InterfaceSpecs.jl is the way forward either - I think there's quite a lot of design space left in the typesystem the language could do without reaching for z3 and other SAT/SMT solvers. I personally attribute the lack of progress on that front to the lack of coherent direction of the project at large (and specifically not to the failings of individuals - folks are always very busy with their lives outside of Julia development/other priorities). In spite of the fact that making this single area better could be a big boon with more traditional software engineers, which are very underrepresented in the community.
What are some alternatives?
Pluto.jl - š Simple reactive notebooks for Julia
InterfaceSpecs.jl - Playground for formal specifications of interfaces in Julia
DataFrames.jl - In-memory tabular data in Julia
SciMLStyle - A style guide for stylish Julia developers
DifferentialEquations.jl - Multi-language suite for high-performance solvers of differential equations and scientific machine learning (SciML) components. Ordinary differential equations (ODEs), stochastic differential equations (SDEs), delay differential equations (DDEs), differential-algebraic equations (DAEs), and more in Julia.
PropCheck.jl - A package for simple property based testing in julia.
Tumble.jl - lazy predictive modeling for julia
julia - The Julia Programming Language
Jive.jl - some useful steps in tests š£
JSONTables.jl - JSON3.jl + Tables.jl
K8sClusterManagers.jl - A Julia cluster manager for Kubernetes