# What are you working on? \[Feb 2019\]

**URL:** <https://discourse.julialang.org/t/what-are-you-working-on-feb-2019/20563>\
**Category:** Community\
**Tags:** question\
**Created:** [February 7, 2019, 7:54pm UTC](https://discourse.julialang.org/t/what-are-you-working-on-feb-2019/20563 "2019-02-07T19:54:49Z")\
**Posts on this page:** 18\
**Page:** 1

<div class="post-metadata">

**Author:** ![Mason](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mason/32/2423_2.png) [@Mason](https://discourse.julialang.org/u/Mason)\
**Post date:** [February 7, 2019, 7:54pm UTC](https://discourse.julialang.org/t/what-are-you-working-on-feb-2019/20563/1 "2019-02-07T19:54:49Z")

</div>

A earlier [‘what are you working on?’](https://discourse.julialang.org/t/what-are-you-working-on-this-week) post was pretty well received so I figured I’d make a new topic so people can chat without notifying all the previous responders.

If the mods think this should just be a continuation of the old thread, feel free to close it.

* * *

I’ll start off: I’m writing some code for calculating certain corrections to the BCS theory of superconductivity. This basically involves using [NLsolve.jl](https://github.com/JuliaNLSolvers/NLsolve.jl) to solve a set of rather ugly Euler-Lagrange equations in momentum space.

I’ve tested my code in the BCS limit against some code a colleague wrote in Mathematica to make sure I reproduce the right values when I turn off my corrections and my code was around 100 times faster than his so I’m quite pleased about that, especially since this correction I’m considering is waaaay more computationally expensive than the simple case considered in the test.

I still had to use Mathematica for finding the symbolic form of my corrections though. I dream of the day when Julia will trump Mathematica’s symbolic capabilities.

---

<div class="post-metadata">

**Author:** ![jcook](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jcook/32/18211_2.png) [@jcook](https://discourse.julialang.org/u/jcook)\
**Post date:** [February 7, 2019, 9:20pm UTC](https://discourse.julialang.org/t/what-are-you-working-on-feb-2019/20563/2 "2019-02-07T21:20:04Z")

</div>

Are you not able to use SymPy via Julia to meet your needs? Otherwise there are native Julia symbolic maths libraries e.g. SymEngine to name one.

---

<div class="post-metadata">

**Author:** ![Mason](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mason/32/2423_2.png) [@Mason](https://discourse.julialang.org/u/Mason)\
**Post date:** [February 7, 2019, 10:20pm UTC](https://discourse.julialang.org/t/what-are-you-working-on-feb-2019/20563/3 "2019-02-07T22:20:54Z")

</div>

I mean, SymPy _might_ be able to do what I need but in my experience SymPy is just not as good as Mathematica (plus I’m more familiar with Mathematica than SymPy). SymEngine is not native Julia, it’s a Julia wrapper around C++ and its functionality last I heard was a strict subset of SymPy but faster.

If I had to guess, I’d think it’ll be a few years before I have enough enthusiasm / trust to use a symbolic julia library over Mathematica, though I look forward to that day!

---

<div class="post-metadata">

**Author:** ![chakravala](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chakravala/32/6832_2.png) [@chakravala](https://discourse.julialang.org/u/chakravala)\
**Post date:** [February 8, 2019, 1:10am UTC](https://discourse.julialang.org/t/what-are-you-working-on-feb-2019/20563/4 "2019-02-08T01:10:07Z")

</div>

Btw, REDUCE is actually the programming language which inspired the creation of Mathematica

My package [Reduce.jl](https://github.com/chakravala/Reduce.jl) is intended to provide a preview of what symbolic computation might look like in Julia someday in the future. I’ve discussed with the developers of the computer algebra system what would be needed to implement the REDUCE language in native Julia. What’s needed is basically a lower level parser which can read the underlying source code and transpile it into Julia, since the computer algebra system is hundreds of thousands of lines of code in its own special language, which is intentionally designed to be parsed for code generation. However, I’m not concerned with it right now.

Currently, I am working on optimizing the type stability and minimizing code footprint for [Grassmann.jl](https://github.com/chakravala/Grassmann.jl)

---

<div class="post-metadata">

**Author:** ![jonathanBieler](https://avatars.discourse-cdn.com/v4/letter/j/82dd89/32.png) [@jonathanBieler](https://discourse.julialang.org/u/jonathanBieler)\
**Post date:** [February 8, 2019, 9:51am UTC](https://discourse.julialang.org/t/what-are-you-working-on-feb-2019/20563/5 "2019-02-08T09:51:24Z")

</div>

I’ve been trying to make a standalone, relocatable version of my Gtk based editor using [ApplicationBuilder](https://github.com/NHDaly/ApplicationBuilder.jl). After some [struggle](https://gist.github.com/jonathanBieler/6f4e078b9294470479a504180a8ef887) with relocating and fixing the paths of all the binary dependencies I managed to make it work on mac OS (assuming it’s installed in /Applications/). The application is pretty large, 800MB, but given all that’s included with it, it’s not that bad.

That said I had some issues with networking that are very hard to debug, since they only show up when running the application on another computer, so the whole thing wasn’t very useful. But with some more work we should be able to bundle and distribute Gtk based apps.

---

<div class="post-metadata">

**Author:** ![abelsiqueira](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/abelsiqueira/32/47269_2.png) [@abelsiqueira](https://discourse.julialang.org/u/abelsiqueira)\
**Post date:** [February 8, 2019, 4:59pm UTC](https://discourse.julialang.org/t/what-are-you-working-on-feb-2019/20563/6 "2019-02-08T16:59:10Z")

</div>

I’m finishing (hopefully) a paper about constrained nonlinear least-squares, which we implemented in Julia, and also trying to get to a stable version on all main packages on [JuliaSmoothOptimizers](https://github.com/JuliaSmoothOptimizers/).

---

<div class="post-metadata">

**Author:** ![ffevotte](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ffevotte/32/6587_2.png) [@ffevotte](https://discourse.julialang.org/u/ffevotte)\
**Post date:** [February 8, 2019, 8:08pm UTC](https://discourse.julialang.org/t/what-are-you-working-on-feb-2019/20563/7 "2019-02-08T20:08:55Z")

</div>

Among other things, I’m working on a Julia implementation of stochastic arithmetic: a method which helps diagnosing floating-point-related errors in a computing code. I’m revisiting some experimental, notebook-based work I did last year, improving it and converting it into a full-fledged package:

[https://github.com/ffevotte/StochasticArithmetic.jl](https://github.com/ffevotte/StochasticArithmetic.jl)

Some things I learned in the process:

- how to use [Documenter.jl](https://github.com/JuliaDocs/Documenter.jl)
- how to set up CI tools to run tests, track coverage and update documentation ([skeleton.jl](https://github.com/tpapp/skeleton.jl) helped a great deal there)
- tons of cool stuff about macros (which was one of the original goals of this experiment)

---

<div class="post-metadata">

**Author:** ![jpsamaroo](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jpsamaroo/32/46804_2.png) [@jpsamaroo](https://discourse.julialang.org/u/jpsamaroo)\
**Post date:** [February 9, 2019, 4:53pm UTC](https://discourse.julialang.org/t/what-are-you-working-on-feb-2019/20563/8 "2019-02-09T16:53:09Z")

</div>

A few things are going on simultaneously for me:

- I’m working on getting AMDGPU’s ROCm/HSA runtime supported in Julia, so that those of us with AMD GPUs can benefit from the amazing progress with adding GPU support across the Julia ecosystem. Currently, the lack of cohesive documentation on their object/executable loading has made this annoying, but I’m making good progress nonetheless! I hope to have an HSARuntime.jl package out on Github in the coming days/weeks. After that, I have the much harder job of setting up something akin to CUDANative.jl for AMDGPU support, but thankfully there’s already great work done by Tim to use for inspiration.
- Plugging away (for the last ~3 years) at my collection of packages I’m tentatively calling “ChimeraUniverse”, which are designed to work together to create a system for automatically evolving, training, and testing AI “agents” based on spiking neural networks. The recent blog post on DiffEqFlux.jl has inspired me to start porting the core algorithms over to the DiffEq ODE format (since SNNs _are_ ODEs at their core, after all), and re-using Flux’s various layers to make life easier. My first goal is to train agents which have the Unix shell/TTY as their primary I/O interface, and I will start with training them to do routine sysadmin tasks and simple maintenance. This is my main research project, and once it starts bearing fruit, I’ll make a Discourse post and accompanying blog post to shed more details on the project, for anyone who might be interested.
- Sending in patches here-and-there to Drew Devault’s [SourceHut project](https://sourcehut.org/) to make it more compatible with Julia’s standard workflow. This is a really interesting project, in my opinion, and one that I look forward to using to host my git repos, test my projects via awesome CI, and just generally provide all the different services required to support open source projects like the ones mentioned above. I’ll also be writing a Discourse+blog post combo on this once I get the chance, with a focus on how Julia developers and users can get started with SourceHut for software development.
- Various little things on the side, some Julia related, some not, but trying to involve myself in the open source community as much as I can!

---

<div class="post-metadata">

**Author:** ![rdeits](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rdeits/32/286_2.png) [@rdeits](https://discourse.julialang.org/u/rdeits)\
**Post date:** [February 10, 2019, 8:53pm UTC](https://discourse.julialang.org/t/what-are-you-working-on-feb-2019/20563/9 "2019-02-10T20:53:27Z")

</div>

I’m rewriting [GitHub - rdeits/cryptics: Cryptic crossword solver](https://github.com/rdeits/cryptics) in Julia! Among other things, that has meant:

- Implementing my own top-down and bottom-up chart parsing algorithms, using the excellent resources from [12.1 Adapting the general algorithm](http://cs.union.edu/~striegnk/courses/nlp-with-prolog/html/node75.html#l10.sec.adaption)
- Experimenting with hash functions and data structures for really fast lookup of prefixes and substrings
- Trying to squeeze as much performance as I can out of string manipulation

The new solver is not yet complete, but it does work pretty well already: [GitHub - rdeits/CrypticCrosswords.jl: Cryptic crossword clue solver written in Julia](https://github.com/rdeits/CrypticCrosswords.jl)

The next steps are:

- Even more performance improvements
- Creating a simple web interface and figuring out how to host it

---

<div class="post-metadata">

**Author:** ![pixelate](https://avatars.discourse-cdn.com/v4/letter/p/ac8455/32.png) [@pixelate](https://discourse.julialang.org/u/pixelate)\
**Post date:** [February 11, 2019, 8:06pm UTC](https://discourse.julialang.org/t/what-are-you-working-on-feb-2019/20563/10 "2019-02-11T20:06:04Z")

</div>

I’m writing a processor that takes the measurements from a satellite scatterometer and uses them to estimate the normalised radar cross section of the Earth’s surface. It’s my hope that the experimental processor written in Julia will be a fraction of the size and faster than the official processor being written by a subcontractor in Java.  
Also having fun comparing Crystal lang with Julia lang.

---

<div class="post-metadata">

**Author:** ![Seanny123](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/seanny123/32/5271_2.png) [@Seanny123](https://discourse.julialang.org/u/Seanny123)\
**Post date:** [February 12, 2019, 9:48pm UTC](https://discourse.julialang.org/t/what-are-you-working-on-feb-2019/20563/11 "2019-02-12T21:48:43Z")

</div>

I’m agonizingly close to releasing a Julia translation of the [UCR Dynamic Time Warping optimized implementation](https://blog.acolyer.org/2016/05/11/searching-and-mining-trillions-of-time-series-subsequences-under-dynamic-time-warping/). I haven’t done much profiling yet, but it seems pretty fast. More importantly, it fixes a number of bugs in the original implementation and adds new features!

---

<div class="post-metadata">

**Author:** ![xiaodai](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/xiaodai/32/15937_2.png) [@xiaodai](https://discourse.julialang.org/u/xiaodai)\
**Post date:** [February 13, 2019, 1:19am UTC](https://discourse.julialang.org/t/what-are-you-working-on-feb-2019/20563/12 "2019-02-13T01:19:05Z")

</div>

Having a play around with cubaatomics to create a fast countmap for soem data types

---

<div class="post-metadata">

**Author:** ![ElOceanografo](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/eloceanografo/32/624_2.png) [@ElOceanografo](https://discourse.julialang.org/u/ElOceanografo)\
**Post date:** [February 13, 2019, 1:25am UTC](https://discourse.julialang.org/t/what-are-you-working-on-feb-2019/20563/13 "2019-02-13T01:25:27Z")

</div>

I am detecting and analyzing the echolocation clicks of [odontocetes](https://en.wikipedia.org/wiki/Toothed_whale) in an 80 TB (and growing) acoustic dataset recorded by a [broadband hydrophone](https://www.mbari.org/technology/solving-challenges/persistent-presence/mars-hydrophone/) in Monterey Bay, California. This is the first project where my entire workflow has been in Julia, from reading raw .wav files, to pre-filtering the data, to detecting clicks, to clustering and classifying them using unsupervised (and eventually supervised) learning, to visualizing and analyzing the resulting time series. Being able to do all this has really driven home for me how far the language and package ecosystem have come in just the past year or two!

---

<div class="post-metadata">

**Author:** ![Raf](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/raf/32/3383_2.png) [@Raf](https://discourse.julialang.org/u/Raf)\
**Post date:** [February 13, 2019, 4:01am UTC](https://discourse.julialang.org/t/what-are-you-working-on-feb-2019/20563/14 "2019-02-13T04:01:32Z")

</div>

I’m working on a few half finished packages that make large environmental datasets easy to use in ecological models.

[GrowthRates.jl](https://github.com/rafaqz/GrowthRates.jl) is for constructing organism growth rate layers from SMAP data. It has modular growth models you can chain arbitrarily, and can run them on the GPU.

[Microclimate.jl](https://github.com/rafaqz/Microclimate.jl) Wraps microclim datasets for spatial mapping of ecophysiological models.

---

<div class="post-metadata">

**Author:** ![Brian\_Thorne](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/brian_thorne/32/6990_2.png) [@Brian\_Thorne](https://discourse.julialang.org/u/Brian_Thorne)\
**Post date:** [February 13, 2019, 5:59am UTC](https://discourse.julialang.org/t/what-are-you-working-on-feb-2019/20563/15 "2019-02-13T05:59:49Z")

</div>

I’m very new to Julia but I’ve been creating a package [Paillier.jl](https://github.com/hardbyte/Paillier.jl) which is an implementation of the Paillier partially homomorphic cryptosystem.

One example use is carrying out private set intersection - [https://github.com/hardbyte/Paillier.jl/blob/master/examples/private\_set\_intersection.jl](https://github.com/hardbyte/Paillier.jl/blob/master/examples/private_set_intersection.jl).

---

<div class="post-metadata">

**Author:** ![matthieu](https://avatars.discourse-cdn.com/v4/letter/m/da6949/32.png) [@matthieu](https://discourse.julialang.org/u/matthieu)\
**Post date:** [March 6, 2019, 4:01am UTC](https://discourse.julialang.org/t/what-are-you-working-on-feb-2019/20563/16 "2019-03-06T04:01:41Z")

</div>

This is so awesome! Can you talk more about what you expect to find?

---

<div class="post-metadata">

**Author:** ![xiaodai](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/xiaodai/32/15937_2.png) [@xiaodai](https://discourse.julialang.org/u/xiaodai)\
**Post date:** [March 6, 2019, 4:11am UTC](https://discourse.julialang.org/t/what-are-you-working-on-feb-2019/20563/17 "2019-03-06T04:11:39Z")

</div>

Tearing my hair out trying to load Fannie Mae data into JuliaDB.jl

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [March 6, 2019, 8:08am UTC](https://discourse.julialang.org/t/what-are-you-working-on-feb-2019/20563/18 "2019-03-06T08:08:19Z")

</div>

I am working on Bayesian inference for hierarchical with many parameters (think 400k-10m). While allocation for NUTS/MCMC was insignificant before (it did happen, but it didn’t matter), now it is becoming costly.

I just rewrote parts of LogDensityProblems.jl to support pre-allocated buffers, DynamicHMC.jl is in the process of being adapted. I am also taking this opportunity to make parts the latter more modular, robust, and improve test coverage.

Also working on some code to make posterior predictive checks easier. I think that PPC is an integral part of Bayesian inference, but by the time the model is estimated there is often little energy remaining for it and it involves a lot of boilerplate code. It turns out that making the parameter structure flatter makes this a lot easier, so I am considering changes to TransformVariables.jl that effect.
