12 Weeks of GSoC: A Lot Learned, A Lot More to Do
A Lot Learned, A Lot More to Do 🚀
And just like that, 12 weeks of GSoC are over!
The last two weeks have been quite different from the earlier ones. There was a lot of finishing up, reviewing, fixing things that broke along the way and making sure the bigger pieces of the project were coming together properly.
Here's what I've been up to.
Learning to Write Less Code 😅
One of the biggest lessons from these weeks actually came from a code review.
I had previously added some custom methods for getting time and frequency profiles from a spectrogram. The code worked, but there were some change of plans, during review we realized that ndcube already provided the functionality needed to achieve the same thing.
So instead of keeping the extra code, I removed it and focused on showing users how to use the existing ndcube methods.
It was a really good reminder that adding more code isn't always the right solution.
Sometimes the better approach is to make better use of what already exists.
Making the Examples More Useful 📚
After removing the custom wrappers, I wanted to make sure users could still easily understand how to perform these operations.
I worked on a Sphinx-Gallery example showing how to crop spectrograms and extract profiles using the ndcube API.
The example covers cropping by time, cropping by frequency, combining both and extracting 1D profiles.
I also changed the example based on mentor feedback so that the explanation, code and plots appear step by step instead of having all the plots at the end.
I think it makes the whole example much easier to follow.
Finally Finishing the Factory Migration 🔧
The biggest piece of work during these two weeks was completing the SpectrogramFactory migration.
I had previously migrated WAVES and e-CALLISTO and during these weeks I worked through the remaining instruments.
The idea behind the new design is to keep the factory simple:
Before:
Read everything → Find instrument → Create spectrogram
Now:
Read basic information → Find instrument → Let the instrument parse the data
The instrument-specific parsing now lives inside the individual instrument classes through from_raw() instead of having all of it inside the factory.
Getting all the instruments moved over was definitely one of the bigger milestones of my GSoC project.
The Final Few Fixes 🛠️
Of course, finishing a large refactor also meant dealing with a few unexpected things.
I worked through some documentation build issues, resolved merge conflicts while keeping ndcube-refactor up to date with main and fixed a few smaller issues that came up along the way.
These weren't necessarily the most exciting changes, but they were a good reminder that a project doesn't end when the main code is written. There's always testing, documentation, reviews and cleanup.
12 Weeks Done… But Not Finished Yet 🚀
And that's officially 12 weeks of GSoC done!
Looking back, it's honestly hard to believe how much I've learned in these three months. I started with a lot of questions about the codebase and now I'm working on things like the architecture of the SpectrogramFactory, ndcube integration, documentation, testing and all the little things that come with maintaining an open-source project.
But even though the official GSoC period has come to an end, there's still plenty left to do.
There are reviews to finish, things I'd like to improve and ideas that I didn't get the chance to explore fully during these 12 weeks.
And honestly, I'm still very excited to keep working on radiospectra.
One of the biggest things GSoC gave me wasn't just the code I contributed, but the feeling that I can actually be part of an open-source project and continue contributing even after the program ends.
So this isn't really a goodbye.
It's more like:
12 weeks down. Let's see what comes next. ❤️
A huge thank you to Shane Maloney and Laura Hayes for all the reviews, discussions, patience and guidance throughout these weeks. I've learned something from almost every review and conversation and I'm really grateful for that.
And of course, thanks to the entire SunPy and OpenAstronomy community for making these 12 weeks such a great experience.
GSoC may be ending, but I'm definitely not done with radiospectra yet.
Peace Out ✌🚀
Comments
Post a Comment