This year the hackathon will take place in the iconic Grand Cafe De Lichttoren on Saturday, July 13th. Here you can chat with the friends you made during the previous days of JuliaCon, while in the meantime solving problem of package developers.
I’m working on creating content to explain the hackathon at Hackathon .
Help us to brainstorm ideas for JuliaCon 2024 Hackathon projects.
Here are a few I came up with:
Implement and test compression for interoperability between JLD.jl, JLD2.jl, HDF5.jl, and Zarr.jl (Mark Kittisopikul)
Make Zarr.jl compatible with Zarr version 3 or create a Zarr3.jl (Mark Kittisopikul)
Create a tarball or zip archive format to aid in Julia package distribution (Mark Kittisopikul)
Create extension packages to integrate Images.jl with Makie.jl (Mark Kittisopikul)
Update Napari.jl to work with PythonCall.jl, integrate IJulia into the Napari console (Mark Kittisopikul)
Create an ImageJ.jl package via JavaCall.jl for ImageJ and Julia interoperation. (Mark Kittisopikul)
For AppBundler.jl, there are a few things that can be done:
Writing a GitHub action that automatically bundles applications when a new app version is tagged;
Exploring the possibility of starting Julia in a Windows sandboxed environment by loading each dependency explicitly issue #52007;
Making a flatpack recipe;
Adding a PackageCompiler support for postprocessing the application bundles.
Then there are issues such as QML issue #191, which could be done if one has an insight. Another is understanding why MacOS apps, when sandboxing is enabled, are frozen to input and what can be done about that.
I have a few ideas in connection with JuliaDiff and SciML, more specifically around DifferentiationInterface.jl and its sibling packages or dependents:
Speed up sparse AD in DI and SparseMatrixColorings.jl, in order to equal SparseDiffTools.jl on the SciML benchmarks
Figure out a way to support multiple arguments in DI without burning everything to the ground and starting from scratch.
I started working on the first one in between projects, before I got sidetracked. This is based on this technology. I am not sure what happened to it as the Bresotec website is no longer active. The idea here is to listen to breathing by placing a low power MEMS microphone near the mouth for the night and record to a SD card. Possibly include humidity and other parameters that can be useful to determine if the sleeping person is breathing. At the time I selected the Dragonfly as a low power embedded computer with a microphone attached. This uses the Arduino IDE, so is open source but not Julia. We would need to check if it is still available. Then I thought that an algorithm could be developed to determine if breathing had stopped. The techniques may be similar to EEG/ECG processing and it seems there is expertise in the Julia community for this aspect. I have not given this part much thought.
When writing a report showing a figure containing a spectrum, I often want to show the frequency and magnitude of a frequency line in the spectrum. Matlab has its datatips for this. In Matlab it shows the nearest point on an existing line in the figure. I would like to be able to do this with Makie, though showing the current curser position would be a great start.
Mousetrap.jl appears to be a nice way to create a GUI for Julia. A nice example using its functionality would be interesting. Perhaps using it to create a table and plotting the points created in real time. Then for additional snazziness, use the mouse to move a plotted point and update the coordinates in the table.
SciML has a ton of small grants proposals projects already setup, and getting started on those would be great hackathon topics! See the current projects list:
These are great projects. Always happy to help.
Adding more benchmarks to track on SciMLBenchmarks always helps! It requires no background in package development to add benchmarks so it has a very easy on-ramp, just some code that is interesting to differentiate! And I can share many examples!
In all honesty I am hoping people will be super motivated to work on docs throughout ecosystems after our Documentation workshop!
There are also many things one can do in JuliaDynamics land, for example ComplexityMeasures.jl has many issues that are low complexity (pun NOT intended) and people can get started with implementing algorithms for timeseries analysis. Improving tests is another thing that is (perhaps) beginner friendly. ChaosTools.jl and Attractors.jl are two packages of the org that could benefit from that. Personally I will probably be working on Attractors.jl implementing a new global continuation method based on a Newton algorithm and interval root finding.
JuliaGeo has quite a few possible listed in a dedicated JuliaCon project, which would be really cool to implement (and shouldn’t take much time!). There are even a few documentation based projects which wouldn’t require any deep knowledge.
It’s also a great way for people to get familiar with the internals of the JuliaGeo/GeoInterface.jl ecosystem, as well as the new package GeometryOps.jl for native Julia geospatial processing!
If you aren’t familiar with the ecosystem, JuliaGeo is a Julia organization looking at geospatial data reading, writing and processing!
Find any of us at or before the hackathon to discuss: @visr@evetion@Raf@asinghvi17 (and quite a few others from JuliaGeo - ping me if you’d like to be added here!)
Pretty doable I’d say, probably as a separate file/repo though. I may not have the time to contribute code but I can definitely offer advice!
For context: we’re looking at creating cartograms like the New York Times olympic medal visualization as well as things that would result from that. Hacking on this probably needs a decent familiarity with Makie, but the geospatial stuff is quite straightforward.
collect the docs for the different subpackage listed in bifurcationkit in a single place like SciML does here albeit for a much larger organisation than mine
make a GUI for BifurcationKit.jl so that the users do not have to code much to compute bifurcation diagrams. A proof of concept would be very nice.
The Flexible Image Transport System (FITS) file format is the standard data format for astronomy. In order to reduce the size of astronomical images obtained from large digital cameras (~gigapixels), data compression is used; specifically, Rice, gzip, PLIO, and Haar compression. Currently, there are no Julia versions of the Rice, PLIO, and Haar compression algorithms. Therefore, the FITS.jl package currently does not have this capability.
I propose implementing these general purpose compression algorithms to support FITS.jl and satellite data transmission in general.
If anyone is interested in hacking on GenAI projects, I’ll be around!
My few ideas would be:
Implement length-adjusted similarity for SemanticCaches.jl - because cosine distance doesn’t work well across things of different length, let’s tweak it
Writing a few hacky parsers for common text formats (PPTX, DOCX). We can use Python packages and Java packages, but it can fail so often! I wanted to hack up RAG of my friend’s local file and failed hard because of these other languages – if we had something native, we could build such apps in 30mins!
Integrating Cohere Command R model to PromptingTools.jl
Add latent-style-like transformations to LLMTextAnalysis.jl to provide topic stability over time
and more… Talk to me
Also, I’ll be on Slack in the #generativeai channel if you want to join remotely.
EDIT:
Based on Sixzero’s post on Slack, let’s make some code editing tooling (diffing, application of code suggestions, etc)
I would love to work on symbolic methods for checking ODE properties. I am thinking of implementing some functionality to transform an invariance formula into a formula in first-order real arithmetic.
If you want to know more about this, just come talk to me .
For anybody not started with a project yet. We came up with an idea for the mentorship program during the diversity dinner. If you’d like to help set up some educational resources for helping Julians go from scripting to package developer/contributor please contact me (online, I’m not actually at the hackathon). More details in the proposal