GSoC Tales : Boss Fights & Journey To A New Land Named FITSIO.jl

Kumar Prasun
3 min readJul 11, 2017

--

Well, the best news to write about right now, would have been to say that I’ve completed transcribing the procedures for AstroLib.jl, my main objective for GSoC.

Unfortunately, complications(read laziness) are a thing and with all the smaller monsters and minions killed (the already finished procedures), the last procedures have turned out to be akin to boss monsters.

For example, take the case of the procedure I’m currently working on — uvbybeta. The number of tracked lines (lines that requires test for coverage) required in this single procedure are around 10% of the total tracked lines of all the procedures in the AstroLib.jl package.

The procedure itself is nice though, it calculates and returns values of effective temperature, visible magnitude, radius et cetera of stars based on their stellar classification.

It’s all about brightness for the comets in the Oort Clouds

So it’s slightly disappointing that I couldn’t finish it by last week(*sob*), but anyway the work should be finished by the time of my next blog post.

So what comes next? Well, after discussing with my mentors, my GSoC project will now extend to me working on the FITSIO.jl package. You can read more about it in the docs, but essentially the package allows Julia user to read and write data files in FITS (Flexible Image Transport System) data format, the most commonly used digital file format in astronomy.

This area is entirely new to me (like discovering a new uninhabited land), so it will take me a bit of time to go through the motions and get the feel of the package. Thankfully, one of my first tasks will be to use Documenter.jl instead of Sphinx to generate documentation, which is exactly the sort of thing that’ll help get a clear understanding of the package.

Another piece of good news (it’s something that I’ve been waiting to happen since the start of the coding period) is that my mandatory college-provided internship is coming to an end this week. This firstly means that I can finally go home, after six long months. But more importantly, in relation to GSoC, this means that I have will now have 40 more hours of free time each week! And we all know where that time is going to go now ;-)

This does not mean that my journey with AstroLib,jl is at an end. The thing is, Julia is still in active development (think of it as the closed beta stage of a game). Therefore, a lot of features keep getting added/modified to the language. So what I’ll be doing is to update outdated segments of the code, add/improve the tests a bit and implement a few new features that were not available in Julia, when AstroLib.jl was initially worked on.

An example of that is PR #33 which implemented the jldoctests of Documenter.jl. This nifty feature allows you to run tests on the examples in the documentation, when those docs are actually being built! This helps documentation examples from becoming outdated, incorrect, or misleading.

And so, this is a bit of a summary of the progress I’ve made at the halfway point of the coding period of Google Summer of Code. Just in case you’re curious, I have cleared the first evaluation, with good reviews from my mentors. Let’s see what happens next.

Footnote : GSoC Progress #3
No of procedures translated — 13.5/18 (
#30, #31, #36)
Also, a few issues (the Github kind) related to my project —
#32, #33
Project prognosis till now — Slowed a bit. Time to learn new stuff!

--

--