<?xml version='1.0' encoding='UTF-8'?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://sunpy.org/</id>
  <title>Blog - Posts by Yash Sharma</title>
  <updated>2026-04-16T16:25:22.532204+00:00</updated>
  <link href="https://sunpy.org/"/>
  <link href="https://sunpy.org/blog/author/yash-sharma/atom.xml" rel="self"/>
  <generator uri="https://ablog.readthedocs.io/" version="0.11.13">ABlog</generator>
  <entry>
    <id>https://sunpy.org/posts/2019/2019-08-24-GSoC2019-NDCube-Final-Report/</id>
    <title>Google Summer of Code 2019 | Final Report | OpenAstronomy | NDCube</title>
    <updated>2019-08-24T00:00:00+00:00</updated>
    <author>
      <name>Yash Sharma</name>
    </author>
    <content type="html">&lt;section id="google-summer-of-code-2019-final-report-openastronomy-ndcube"&gt;

&lt;section id="id1"&gt;
&lt;h2&gt;Google Summer of Code 2019 | Final Report | OpenAstronomy | NDCube&lt;/h2&gt;
&lt;aside class="system-message"&gt;
&lt;p class="system-message-title"&gt;System Message: INFO/1 (&lt;span class="docutils literal"&gt;/home/docs/checkouts/readthedocs.org/user_builds/sunpyorg/checkouts/489/posts/2019/2019-08-24-GSoC2019-NDCube-Final-Report.rst&lt;/span&gt;, line 10); &lt;em&gt;&lt;a href="#id1"&gt;backlink&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Duplicate implicit target name: “google summer of code 2019 | final report | openastronomy | ndcube”.&lt;/p&gt;
&lt;/aside&gt;
&lt;figure class="align-default" id="id2"&gt;
&lt;img alt="GSoC FTW!" src="https://cdn-images-1.medium.com/max/2000/0*uRGLzjnCFvoPcs7F" /&gt;
&lt;figcaption&gt;
&lt;p&gt;&lt;span class="caption-text"&gt;GSoC FTW!&lt;/span&gt;&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/section&gt;
&lt;section id="for-those-who-are-geeky-and-want-to-see-the-prs-submitted"&gt;
&lt;h2&gt;For those who are geeky and want to see the PRs submitted…&lt;/h2&gt;
&lt;p&gt;&lt;a class="reference external" href="https://medium.com/&amp;#64;yashrsharma44/pull-requests-merged-in-for-gsoc19-ndcube-95a9fd15c8b6"&gt;Here is the
link&lt;/a&gt;
where all my PRs for completing the project are present. &amp;gt; # Google
Summer of Code (GSoC) is an online, international &amp;gt; #program designed to
encourage university student participation in open source software
development.&lt;/p&gt;
&lt;/section&gt;
&lt;/section&gt;
&lt;section id="details-of-my-organisation-and-project"&gt;
&lt;h1&gt;Details of my Organisation and Project&lt;/h1&gt;
&lt;blockquote&gt;
&lt;div&gt;&lt;p&gt;Before I start writing my report, I would like to thank my mentors
&lt;a class="reference external" href="https://github.com/DanRyanIrish"&gt;Daniel Ryan&lt;/a&gt; and &lt;a class="reference external" href="https://github.com/cadair"&gt;Stuart
Mumford&lt;/a&gt;. They have been quite helpful
in guiding me through the project, and have been quite responsive.
Special thanks to &lt;a class="reference external" href="https://github.com/nabobalis"&gt;Nabil Freij&lt;/a&gt;,
for guiding through the project here in SunPy/NDCube.&lt;/p&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;code class="xref py py-obj docutils literal notranslate"&gt;&lt;span class="pre"&gt;NDCube&lt;/span&gt;&lt;/code&gt; is the fundamental class of the ndcube package and is designed to handle
data contained in a single N-D array described by a single set of WCS
transformations.
&lt;code class="xref py py-obj docutils literal notranslate"&gt;&lt;span class="pre"&gt;NDCube&lt;/span&gt;&lt;/code&gt; is subclassed from
&lt;a class="reference external" href="https://docs.astropy.org/en/stable/api/astropy.nddata.NDData.html#astropy.nddata.NDData" title="(in Astropy v7.2)"&gt;&lt;code class="xref py py-obj docutils literal notranslate"&gt;&lt;span class="pre"&gt;astropy.nddata.NDData&lt;/span&gt;&lt;/code&gt;&lt;/a&gt; and so inherits the same attributes for data, wcs, uncertainty, mask, meta,
and unit. The WCS object contained in the .wcs attribute is subclassed
from &lt;a class="reference external" href="https://docs.astropy.org/en/stable/api/astropy.wcs.WCS.html#astropy.wcs.WCS" title="(in Astropy v7.2)"&gt;&lt;code class="xref py py-obj docutils literal notranslate"&gt;&lt;span class="pre"&gt;astropy.wcs.WCS&lt;/span&gt;&lt;/code&gt;&lt;/a&gt; and contains a few additional attributes to enable to keep track of its
relationship to the data.&lt;/p&gt;
&lt;figure class="align-default" id="id3"&gt;
&lt;img alt="SunPy: The Sub-Organisation that I worked in." src="https://cdn-images-1.medium.com/max/2000/0*uqnVlB46CcEgB4CV" /&gt;
&lt;figcaption&gt;
&lt;p&gt;&lt;span class="caption-text"&gt;SunPy: The Sub-Organisation that I worked in.&lt;/span&gt;&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;My GSoC project was under
&lt;a class="reference external" href="https://openastronomy.org/"&gt;OpenAstronomy&lt;/a&gt;, and NDCube is a SunPy
affiliated subpackage for handling ND Data arrays and perform
data-analysis on them.&lt;/p&gt;
&lt;p&gt;NDCube is a SunPy affiliated package for easily dealing with ND-Data
cubes along with convenience method that allows the data cubes to be
sliced, attach meta-data to it, and easy to use plotting methods, to
visualize an ND-Data. It uses SunPy’s visualization to plot more than
&lt;code class="xref py py-obj docutils literal notranslate"&gt;&lt;span class="pre"&gt;&amp;gt;2D&lt;/span&gt;&lt;/code&gt; cubes and provides sliders to shift the different dimensions, so
even if users are using only 2D dimensions at a time, we can still
leverage the other dimensions.&lt;/p&gt;
&lt;p&gt;My project with NDCube was to port the internal API to match all the
proposals laid out in
&lt;a class="reference external" href="https://github.com/astropy/astropy-APEs/blob/master/APE14.rst"&gt;APE14&lt;/a&gt;
and make sure that NDCube works in the same manner as it was working.
The project was particularly interesting because I had a first-hand
chance of interacting with API designing and how the different patterns
were used to implement that. NDCube uses FITS-WCS to interact with, but
APE14 leveraged the NDCube to use any WCS object implementing all the
base methods laid out in the proposal. This was really exciting and I
had a chance to use gWCS along with FITS-WCS in NDCube.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="blogging-and-details-of-my-work"&gt;
&lt;h1&gt;Blogging and details of my work&lt;/h1&gt;
&lt;p&gt;My weekly notes about my progress have been documented in my
&lt;a class="reference external" href="https://medium.com/&amp;#64;yashrsharma44"&gt;blog&lt;/a&gt;. Feel free to check out and
suggest changes if needed.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="breakdown-of-my-project"&gt;
&lt;h1&gt;Breakdown of my project&lt;/h1&gt;
&lt;p&gt;As described in my
&lt;a class="reference external" href="https://github.com/yashrsharma44/GSoC-2019-Proposal"&gt;proposal&lt;/a&gt;, I
had broken down my project into three parts —&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Porting NDCubeBase to use APE14&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Porting NDCubeSequence to APE14&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Support plotting in NDCube&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All the associated PRs have been blogged in the &lt;a class="reference external" href="https://medium.com/&amp;#64;yashrsharma44/pull-requests-merged-in-for-gsoc19-ndcube-95a9fd15c8b6"&gt;PR
post&lt;/a&gt;
that I made earlier. Feel free to check them and gauge the progress that
I made.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="some-visuals-associated-with-my-project"&gt;
&lt;h1&gt;Some Visuals associated with my project&lt;/h1&gt;
&lt;figure class="align-default" id="id4"&gt;
&lt;img alt="Example of a WCS plotting with NDCube" src="https://cdn-images-1.medium.com/max/2000/1*jPvoayLdAkm8D8sWseUM1g.png" /&gt;
&lt;figcaption&gt;
&lt;p&gt;&lt;span class="caption-text"&gt;Example of a WCS plotting with NDCube&lt;/span&gt;&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class="align-default" id="id5"&gt;
&lt;img alt="Example of WCS Line Plotting with NDCube" src="https://cdn-images-1.medium.com/max/2000/1*BaYgBlsV9B6f5o-vEAa5sg.png" /&gt;
&lt;figcaption&gt;
&lt;p&gt;&lt;span class="caption-text"&gt;Example of WCS Line Plotting with NDCube&lt;/span&gt;&lt;/p&gt;
&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/section&gt;
&lt;section id="my-experience-with-working-with-ndcube-sunpy"&gt;
&lt;h1&gt;My Experience with working with NDCube/SunPy&lt;/h1&gt;
&lt;p&gt;Right from the start, I was really interested in working in SunPy,
because of its amazing community and responsive mentors which I had
planned to learn from them. The mentors were really helpful, right from
designing the proposal to implementing them, always filling out on
potential hurdles and rescuing me out every now and then.&lt;/p&gt;
&lt;p&gt;I decided to list out the tasks which could not be completed, as the
rest of the checkpoints were achieved successfully.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Here are some tasks which I had planned but could not be done&lt;/strong&gt;&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Writing gWCS test-suite for NDCube — This was an optional part but
having spent time with the code-base a lot, I realized that this
could be done in a short time. However, this being an optional part,
got pushed right at the end, and eventually had to be dropped off
from the weekly tasks. I have planned to complete it after GSoC, so
it remains on top of my priority list.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Completing
plotting
of NDCubeSequence — I had completed almost all of the tasks as I had
planned in my
proposal but
remaining one — Completing the plotting for NDCube Sequence objects.
I had made the PR, but on close digging with the codebase, I realized
that the master codebase was buggy, and a bug fix was needed to be
made before resuming my porting. I made the PR, and after
consultation with my mentor, we decided to drop the priority for the
bug fix and just concentrate on my porting. I &lt;a class="reference external" href="https://github.com/sunpy/ndcube/pull/196"&gt;made a
PR&lt;/a&gt; but it remains open
till the bug is fixed in the master branch.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="my-experience-with-google-summer-of-code"&gt;
&lt;h1&gt;My Experience with Google Summer of Code&lt;/h1&gt;
&lt;p&gt;GSoC had been an integral part of my sophomore life, as it was something
that I wanted to try out, with the associated perks and the hyped-up(
but true!) steep learning curve. I had started my contributions right
from January when people are unsure with the organizations and the type
of projects that they want to commit to for the rest of the summers. I
chose SunPy because of its fantastic community of developers from whom I
learned a lot.&lt;/p&gt;
&lt;p&gt;There was
&lt;a class="reference external" href="https://numfocus.org/blog/meet-our-2019-gsoc-students-part-3"&gt;blogpost&lt;/a&gt;
by NumFocus which highlighted my learnings during GSoC, so I would be
sharing some unique points (not share the old ones :P) that highlighted
my learnings —&lt;/p&gt;
&lt;blockquote&gt;
&lt;div&gt;&lt;p&gt;Make sure you have a good understanding of the subparts of the project&lt;/p&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;I have had some moments where I just went about my tasks without having
a solid understanding of them. I had to revert back to understand it
again, so I recognized my shortcomings after my first evaluations and
made sure that I had a solid understanding of the problem, rather than
diving into it, without understanding the what and why of the problem.&lt;/p&gt;
&lt;blockquote&gt;
&lt;div&gt;&lt;p&gt;Make sure you have some backup tasks to fall back upon&lt;/p&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;I have had moments when my work progress
&lt;a class="reference external" href="https://medium.com/&amp;#64;yashrsharma44/week-08-gearing-up-for-the-plotting-ii-e7e17493433b"&gt;dried&lt;/a&gt;
&lt;a class="reference external" href="https://medium.com/&amp;#64;yashrsharma44/week-09-cadair-is-back-ee083d59c71e"&gt;out&lt;/a&gt;,
but talking with my mentor(s) and having some backup tasks did help me
with my case of sitting idle. This turned out to be crucial in the last
few weeks, as I had little to no time of starting out on a new feature.
Thanks to my backup tasks, I had to carry forward them rather than
starting them from scratch.&lt;/p&gt;
&lt;blockquote&gt;
&lt;div&gt;&lt;p&gt;Make sure you have fun&lt;/p&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;Well, this depends on org-to-org, so I would not consider it as a
universal fact. I had fun in interacting with the weekly community
meetings arranged in every Wednesday. Other developers were quite
helpful and curious about the progress of my project, and I was really
happy to share the progress of my work.&lt;/p&gt;
&lt;p&gt;GSoC is surely an experience of a lifetime, and I would suggest everyone
who is enthusiastic with Open-Source and want to develop industry graded
software, then GSoC is the right place.&lt;/p&gt;
&lt;blockquote&gt;
&lt;div&gt;&lt;p&gt;Ciaos Adios!&lt;/p&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;/section&gt;
</content>
    <link href="https://sunpy.org/posts/2019/2019-08-24-GSoC2019-NDCube-Final-Report/"/>
    <summary>Duplicate implicit target name: “google summer of code 2019 | final report | openastronomy | ndcube”.</summary>
    <category term="GSoC" label="GSoC"/>
    <category term="NDCube" label="NDCube"/>
    <published>2019-08-24T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://sunpy.org/posts/2019/2019-07-08-GSoC2019-Project-NDCube-8/</id>
    <title>[Week 06] — First Evaluations and Completing the first half</title>
    <updated>2019-07-08T00:00:00+00:00</updated>
    <author>
      <name>Yash Sharma</name>
    </author>
    <content type="html">&lt;section id="week-06-first-evaluations-and-completing-the-first-half"&gt;

&lt;p&gt;&lt;img alt="image0" src="https://cdn-images-1.medium.com/max/1144/1*BSnsYzTJ6ZurFgZPxZGvng.png" /&gt; First Evaluations are Completed!&lt;/p&gt;
&lt;blockquote&gt;
&lt;div&gt;&lt;p&gt;This blog post deals with the entry of tasks that I did for the 6th
week for the project under Google Summer of Code 2019.&lt;/p&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;section id="first-evaluations-results-are-out"&gt;
&lt;h2&gt;First Evaluations results are out&lt;/h2&gt;
&lt;p&gt;So the first evaluations results are out, and fortunately, I have passed
the first evaluations. This was a mini-victory moment for me, and to top
it up, my PR regarding the first evals was merged which was sweet for
me!&lt;/p&gt;
&lt;p&gt;I got a mail from Google, stating that I have &lt;strong&gt;passed&lt;/strong&gt; my evaluations,
and my mentor had given positive feedback. I was overjoyed and jumping
out of happiness! I am not comfortable in sharing my mail here, but I am
happy to state a few of the comments by my mentor.&lt;/p&gt;
&lt;blockquote&gt;
&lt;div&gt;&lt;p&gt;My mentor commended the amount of hard work done and suggested me to
improve my check-ins with the progress and keep pushing the code to
GitHub so that how much progress I am making could be gauged.&lt;/p&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;This was imperative as it would help me in assessing my strengths and
not over-working them, and work on my shortcomings as soon as possible.
I had decided with my mentors that for the second part of the project, I
would rather break my PRs into several small parts, each of them dealing
with a small sub-task, that could be individually integrated back into
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;NDCube&lt;/span&gt;&lt;/code&gt;.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="gearing-up-for-the-next-sub-part"&gt;
&lt;h2&gt;Gearing up for the next sub-part&lt;/h2&gt;
&lt;p&gt;If any of my readers had been gauging my progress, here is a
tab which contains most
of the task that should be completed to check-off the task. I had
covered most of the tasks of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;NDCubeBase&lt;/span&gt;&lt;/code&gt;. I was concerned with the
working of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;axis_world_coords&lt;/span&gt;&lt;/code&gt;, which I had re-written earlier, and
not sure about the working of it.&lt;/p&gt;
&lt;p&gt;I decided to add it to my later tasks, as I started with planning for
the next half of the project, the plotting. This required me to read
through the docs for understanding the plotting. I had earlier
&lt;a class="reference external" href="https://github.com/sunpy/ndcube/pull/176"&gt;worked&lt;/a&gt; with the plotting
earlier, so I had been familiar with the code of plotting.&lt;/p&gt;
&lt;p&gt;The trick was to break the codebase into small portions, as the plotting
code was delegated into small methods which worked out the plotting of
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;1D&lt;/span&gt;&lt;/code&gt;, &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;2D&lt;/span&gt;&lt;/code&gt; and &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;&amp;gt;2D&lt;/span&gt;&lt;/code&gt; &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;NDCube&lt;/span&gt;&lt;/code&gt; objects. &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;&amp;#64;DanRyanIrish&lt;/span&gt;&lt;/code&gt; had
earlier advised me to break out the code into small parts, each of the
refactoring dealing with different types of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;NDCube&lt;/span&gt;&lt;/code&gt; objects.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="tasks-for-the-next-week"&gt;
&lt;h2&gt;Tasks for the next week&lt;/h2&gt;
&lt;p&gt;The tasks for the next week remains a bit confusing. I plan to take on
plotting, before trying out the changes that I made for the first part
of the coding. My mentor &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;&amp;#64;Cadair&lt;/span&gt;&lt;/code&gt; would be out on his vacations for
around 2-3 weeks, so &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;&amp;#64;DanRyanIrish&lt;/span&gt;&lt;/code&gt; would be expected to take in the
charge. I don’t expect him to be available every now and then 😛, but I
plan to make progress without pinging them every now and then.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="link-to-my-previous-post"&gt;
&lt;h2&gt;Link to my previous post&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;[Week 05] — Testing out the codebase! —
&lt;a class="reference external" href="https://medium.com/&amp;#64;yashrsharma44/week-05-testing-out-the-codebase-aaf5e804ff3a"&gt;Link&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;/section&gt;
</content>
    <link href="https://sunpy.org/posts/2019/2019-07-08-GSoC2019-Project-NDCube-8/"/>
    <summary>image0 First Evaluations are Completed!</summary>
    <category term="GSoC" label="GSoC"/>
    <category term="NDCube" label="NDCube"/>
    <published>2019-07-08T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://sunpy.org/posts/2019/2019-07-08-GSoC2019-Project-NDCube-7/</id>
    <title>[Week 05] — Testing out the codebase!</title>
    <updated>2019-07-08T00:00:00+00:00</updated>
    <author>
      <name>Yash Sharma</name>
    </author>
    <content type="html">&lt;section id="week-05-testing-out-the-codebase"&gt;

&lt;p&gt;&lt;img alt="image0" src="https://cdn-images-1.medium.com/max/1144/0*_QMGe_qrp3ihCxlh.png" /&gt; Testing FTW!&lt;/p&gt;
&lt;blockquote&gt;
&lt;div&gt;&lt;p&gt;This blog post deals with the entry of tasks that I did for the 5th
week for the project under Google Summer of Code 2019.&lt;/p&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;/section&gt;
&lt;section id="first-evaluations-are-nearing"&gt;
&lt;h1&gt;First evaluations are nearing!&lt;/h1&gt;
&lt;p&gt;My task for this week was cut-out; complete the testing and pass my
first evaluations. Well, it wasn’t as strict as it sounds, as my mentor
has been quite supportive, and he was more than happy to pass me for the
first evaluations for the amount of work that I had put. However, I
personally felt that delivering complete content before the first
evaluations were important, for it would unfair for anyone to pass me
for the sake of hard work. Final results matter, so I was determined to
complete off the tasks, before riding on to the next set of challenges.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="testing-out-the-slicing"&gt;
&lt;h1&gt;Testing out the Slicing&lt;/h1&gt;
&lt;p&gt;So I started out with commenting out all tests, and un-commenting each
of them one by one, and seeing if they are failing. Well, it was manual
work, but I was more than happy to do, considering the mentally draining
work that I did the week before.&lt;/p&gt;
&lt;p&gt;Each test cases were written with a specific use case, and my code was
performing well with each one. After completing the refactoring of the
test-suite, I was mostly finished with them, with two of the tests
failing. I was not sure what was happening, so I discussed my issue with
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;&amp;#64;Cadair&lt;/span&gt;&lt;/code&gt; and &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;&amp;#64;DanRyanIrish&lt;/span&gt;&lt;/code&gt;. They were quite happy with the
progress, and I had a telecon with them, through which I explained how I
rewrote the codebase and explained the assumptions that I took while
writing them.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="code-reviews-are-important"&gt;
&lt;h1&gt;Code reviews are important!&lt;/h1&gt;
&lt;p&gt;Well before I had my telecon, I was assisted with my mentors for a code
review, and boy it sounded quite intimidating. Imagine working out a
workable solution, and then get suggested by the mentors, a much simpler
and elegant solution. It was helpful and scary at the same time —
Helpful in the sense that it changed my way of approaching a paradigm of
coding, and scary because I was unsure if I met with the standards of
coding.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="telecon-with-my-mentors"&gt;
&lt;h1&gt;Telecon with my mentors&lt;/h1&gt;
&lt;p&gt;After finishing up with the suggestions from my mentor, I discussed out
the two failing test cases, which was bothering me for a long time.
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;&amp;#64;DanRyanIrish&lt;/span&gt;&lt;/code&gt; was away for a long time, so he asked me for a telecon
to get updated with what I have been up to this time. &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;&amp;#64;Cadair&lt;/span&gt;&lt;/code&gt; also
joined me, filling out on the holes that I made throughout the
discussion, as he was quite active while I was writing and pushing my
code.&lt;/p&gt;
&lt;p&gt;During the telecon, after closely looking through the code, &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;&amp;#64;Cadair&lt;/span&gt;&lt;/code&gt;
suggested that the ordering of slicing for &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;WCS&lt;/span&gt;&lt;/code&gt; object required input
parameters in the cartesian format, opposite to what I had assumed in my
code. This sounded really scary I had written my code with that
assumption. This was really heartbreaking for me, as I didn’t expect
such a conceptual error from my side. This meant that I hadn’t read the
assumption well, and certainly threatened my progress.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="diving-into-the-docs-again"&gt;
&lt;h1&gt;Diving into the docs again&lt;/h1&gt;
&lt;p&gt;In order to fix this, I was determined to dive into the docs again, as I
wasn’t sure how the stuff was working. I mostly considered the slicing
of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;WCS&lt;/span&gt;&lt;/code&gt; as a black box, which was a big conceptual error from my
part. I learned how not believe certain assumptions, and the code is
written provides the concise proof of the assumptions taken — Nothing
more, nothing less.&lt;/p&gt;
&lt;p&gt;On further brainstorming, I found that the slicing used &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;NumPy&lt;/span&gt;&lt;/code&gt;
convention(opposite of cartesian convention), and that was the result
why most of the tests were not breaking. This was a big green flag, but
I was worried about those two failing test. On close inspection, I found
that both of them used Cartesian ordering instead of NumPy ordering,
which was why it was breaking. It was sloppy from my side, as dealing
with a huge number of test-cases certainly invites a mistake or two.&lt;/p&gt;
&lt;p&gt;I was able to get my PR merged, as Cadair was mostly impressed and
convinced about the tests passing, and asked me to focus on the next
part of the project which was plotting.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="content-for-the-next-week-s-blog-post"&gt;
&lt;h1&gt;Content for the next week’s blog post&lt;/h1&gt;
&lt;p&gt;The next week comes after my first evaluations have been done, so I plan
to document out my evals result and discuss my next target of the
coding.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="link-to-my-previous-post"&gt;
&lt;h1&gt;Link to my previous post&lt;/h1&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;[Week 04] — Climbing the Everest — 02—
&lt;a class="reference external" href="https://medium.com/&amp;#64;yashrsharma44/week-04-climbing-the-everest-02-7b6aea5110d7"&gt;Link&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
</content>
    <link href="https://sunpy.org/posts/2019/2019-07-08-GSoC2019-Project-NDCube-7/"/>
    <summary>image0 Testing FTW!</summary>
    <category term="GSoC" label="GSoC"/>
    <category term="NDCube" label="NDCube"/>
    <published>2019-07-08T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://sunpy.org/posts/2019/2019-07-08-GSoC2019-Project-NDCube-6/</id>
    <title>[Week 04] — Climbing the Everest — 02</title>
    <updated>2019-07-08T00:00:00+00:00</updated>
    <author>
      <name>Yash Sharma</name>
    </author>
    <content type="html">&lt;section id="week-04-climbing-the-everest-02"&gt;

&lt;p&gt;&lt;img alt="image0" src="https://cdn-images-1.medium.com/max/1144/0*GuhDaaal6sTcCY1K" /&gt; Sustaining the journey!&lt;/p&gt;
&lt;blockquote&gt;
&lt;div&gt;&lt;p&gt;This blog post deals with the entry of tasks that I did for the 4th
week for the project under Google Summer of Code 2019.&lt;/p&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;/section&gt;
&lt;section id="using-the-slicing-api"&gt;
&lt;h1&gt;Using the Slicing API&lt;/h1&gt;
&lt;p&gt;The previous week, I had went through the docs, and played with some of
the test cases of slicing. Now I was fairly ready to implement them in
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;NDCube&lt;/span&gt;&lt;/code&gt; . I had long chats with my mentor, &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;&amp;#64;Cadair&lt;/span&gt;&lt;/code&gt; who was always
free to hear out my doubts, sometimes suggesting alternative ways to
approach, filling me with hints and tips to approach the problem, rather
than serving it out in a platter. This was really crucial and ensured
that I enjoy the coding without hampering the learning part.&lt;/p&gt;
&lt;p&gt;So I used the new slicing API, which was written by &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;&amp;#64;Cadair&lt;/span&gt;&lt;/code&gt; and
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;&amp;#64;astrofrog&lt;/span&gt;&lt;/code&gt;, and boy, it was a breeze in using it, as it required
minimal code refactoring for performing slicing of wcs object. Since an
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;NDCube&lt;/span&gt;&lt;/code&gt; object contains &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;WCS&lt;/span&gt;&lt;/code&gt;, &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;extra_coords&lt;/span&gt;&lt;/code&gt; and bunch of other
helper methods, so the slicing of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;extra_coords&lt;/span&gt;&lt;/code&gt; was something, that
wasn’t implemented earlier, and I had to do it from scratch. I had a
talk with &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;&amp;#64;Cadair&lt;/span&gt;&lt;/code&gt;, who warned me about thinking out the slicing of
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;extra_coords&lt;/span&gt;&lt;/code&gt; in advance, and it turned out to be true, as it was
another beast to be taken care of.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="rewriting-the-slicing-api-of-extra-coords"&gt;
&lt;h1&gt;Rewriting the slicing API of extra_coords&lt;/h1&gt;
&lt;p&gt;So far, after implementing the slicing of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;WCS&lt;/span&gt;&lt;/code&gt; object, I was left
with refactoring the code of slicing API(more of a redesign) of
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;extra_coords&lt;/span&gt;&lt;/code&gt; and I was up to the task. After consulting numerous
examples and test cases for the ideal working of sliced
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;extra_coords&lt;/span&gt;&lt;/code&gt;, I went after writing up the slicing API. It was
confusing, but at the same time, I had broken down the code rewriting
into small subparts, and I finished off each of the small portions, as I
consolidated my way towards completing my work.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="finishing-up-the-refactoring"&gt;
&lt;h1&gt;Finishing up the refactoring&lt;/h1&gt;
&lt;p&gt;Well, after testing out numerous cases(well not exactly a lot of
examples!), I finally pushed my changes to GitHub, and a
&lt;a class="reference external" href="https://github.com/sunpy/ndcube/pull/169"&gt;PR&lt;/a&gt; was made for the
changes that I made. The code was written, and I was mostly convinced
about the behavior of the code, though the test suite was failing, and
needed to be resurrected. This was ok, for me the most challenging part
of the project was implemented, and considering the plan that I had
earlier chalked out while rewriting the API, I was sure that it would
work as intended.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="task-for-the-next-week"&gt;
&lt;h1&gt;Task for the next week&lt;/h1&gt;
&lt;p&gt;So, after rewriting and installing the new API for slicing, I was now
left with modifying the slicing tests, partly because the type of object
returned by APE14 (the API that I was implementing) was different from
the earlier ones while having the same return values. So that was
considered by me more of a manual work rather than requiring the
brainstorming stuff. In a way, I was happy to work with the tests, for
it was mentally frustrating to cover such an intense task in a week, and
I wanted to cherish the way how the new API was working, and what a way
to do that was the testing. So I am looking forward to it.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="link-to-my-previous-post"&gt;
&lt;h1&gt;Link to my previous post&lt;/h1&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;[Week 03] — Climbing the Everest — 01
—&lt;a class="reference external" href="https://medium.com/&amp;#64;yashrsharma44/week-03-climbing-the-everest-01-6d9508a819a"&gt;Link&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
</content>
    <link href="https://sunpy.org/posts/2019/2019-07-08-GSoC2019-Project-NDCube-6/"/>
    <summary>image0 Sustaining the journey!</summary>
    <category term="GSoC" label="GSoC"/>
    <category term="NDCube" label="NDCube"/>
    <published>2019-07-08T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://sunpy.org/posts/2019/2019-06-19-GSoC2019-Project-NDCube-5/</id>
    <title>[Week 03] — Climbing the Everest — 01</title>
    <updated>2019-06-19T00:00:00+00:00</updated>
    <author>
      <name>Yash Sharma</name>
    </author>
    <content type="html">&lt;section id="week-03-climbing-the-everest-01"&gt;

&lt;p&gt;&lt;img alt="image0" src="https://cdn-images-1.medium.com/max/1144/0*O02irLG83RzAyKCm.jpg" /&gt; Climbing the Everest — Starting the trek!&lt;/p&gt;
&lt;blockquote&gt;
&lt;div&gt;&lt;p&gt;This blog post deals with the entry of tasks that I did for the
3&lt;em&gt;rd&lt;/em&gt; week for the project under Google Summer of Code 2019.&lt;/p&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;/section&gt;
&lt;section id="reading-through-the-docs"&gt;
&lt;h1&gt;Reading through the Docs&lt;/h1&gt;
&lt;p&gt;This week marks my initial stab to&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;slicing&lt;/span&gt;&lt;/code&gt; of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;NDCube&lt;/span&gt;&lt;/code&gt;. The best
place to start with the refactoring of any code-base, or any method, is
reading through the docs, and figuring out how they work currently.
Sometimes, figuring out how the present behavior is, and what parts are
we looking to refactoring, can easily ease out the process, and help in
breaking the refactoring to small parts.&lt;/p&gt;
&lt;p&gt;I had a look into the &lt;a class="reference external" href="https://docs.astropy.org/en/stable/_modules/astropy/nddata/mixins/ndslicing.html"&gt;astropy
docs&lt;/a&gt;,
and boy, they have documented each part of the logic, explaining the
what and why of the code. Trust me for I have been contributing to
open-source projects over for more than a year, and this sounds delight
for any developer, for good docs removes the overhead of how the code
works, but to focus on the high-level overview of what we want to
achieve.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="playing-with-the-slicing"&gt;
&lt;h1&gt;Playing with the slicing&lt;/h1&gt;
&lt;p&gt;Trying out any feature is more realistic than reading about them, and so
I started with creating examples from previous tests of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;NDCube&lt;/span&gt;&lt;/code&gt; and
how they fit into the scheme of things. Hands down to &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;&amp;#64;Cadair&lt;/span&gt;&lt;/code&gt; and
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;&amp;#64;astrofrog&lt;/span&gt;&lt;/code&gt;, for what a concise and behavior agnostic
&lt;a class="reference external" href="https://github.com/astropy/astropy/pull/8546"&gt;API&lt;/a&gt; they had made.
This abstracted most part of slicing for &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;WCS&lt;/span&gt;&lt;/code&gt; object, that &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;NDCube&lt;/span&gt;&lt;/code&gt;
uses underneath.&lt;/p&gt;
&lt;p&gt;The real deal starts with refactoring the slicing of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;extra_coords&lt;/span&gt;&lt;/code&gt;.
This now had to be done using &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;APE14&lt;/span&gt;&lt;/code&gt; methods, so I had to first try
out a few examples of slicing &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;extra_coords&lt;/span&gt;&lt;/code&gt; before refactoring it.
Soon, after going into the rabbit hole, I realized, it would require
refactoring of internal helper methods that the slicing of
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;extra_coords&lt;/span&gt;&lt;/code&gt; uses. This sounded way too much work, but something
that had to be done.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="rewriting-the-helper-methods"&gt;
&lt;h1&gt;Rewriting the helper methods&lt;/h1&gt;
&lt;p&gt;The helper methods were based on a logic, which would not apply after we
migrated to APE14. So certainly it required me to rewrite them. A common
practice that I found, while refactoring, was to go top-down. A top-down
approach would mean that you would refactor stuff which you want, to the
methods that would get refactored for working correctly. This helped me
in worrying about methods which would get affected, rather than worrying
which method needs to be refactored.&lt;/p&gt;
&lt;p&gt;I started refactoring the helper methods but got stuck at a fundamental
point. But &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;&amp;#64;Cadair&lt;/span&gt;&lt;/code&gt; came to rescue, and he suggested some attributes
of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;WCS&lt;/span&gt;&lt;/code&gt; which would do my job. This was really crucial as getting
stuck would have sucked out more time. This solved my problem, as I went
out re-writing the helper methods, working to a behavior as I wanted.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="tasks-for-the-next-week"&gt;
&lt;h1&gt;Tasks for the next week&lt;/h1&gt;
&lt;p&gt;This week was really busy, as I spent time in reading docs and figuring
out the most optimum plan to approach slicing. Till now it has gone
fairly gone according to plan, though more tasks still await. I keep
chugging along, trying to keep up with the required pace, as the phase
containing the real challenge has arrived.&lt;/p&gt;
&lt;blockquote&gt;
&lt;div&gt;&lt;p&gt;“I will come again &amp;amp; conquer you because as a mountain you can’t
grow, but as a human, I can.” — Sir Edmund Hillary&lt;/p&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;/section&gt;
&lt;section id="link-to-my-previous-post"&gt;
&lt;h1&gt;Link to my previous post&lt;/h1&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;[Week 02] — Solving Bugs! —
&lt;a class="reference external" href="https://medium.com/&amp;#64;yashrsharma44/week-2-solving-bugs-fb7e2eff576e"&gt;Link&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
</content>
    <link href="https://sunpy.org/posts/2019/2019-06-19-GSoC2019-Project-NDCube-5/"/>
    <summary>image0 Climbing the Everest — Starting the trek!</summary>
    <category term="GSoC" label="GSoC"/>
    <category term="NDCube" label="NDCube"/>
    <published>2019-06-19T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://sunpy.org/posts/2019/2019-06-19-GSoC2019-Project-NDCube-4/</id>
    <title>[Week 02] — Solving Bugs!</title>
    <updated>2019-06-19T00:00:00+00:00</updated>
    <author>
      <name>Yash Sharma</name>
    </author>
    <content type="html">&lt;section id="week-02-solving-bugs"&gt;

&lt;p&gt;&lt;img alt="image0" src="https://cdn-images-1.medium.com/max/1144/1*qaM9LjB9PY5pwj9RDtP93g.jpeg" /&gt;&lt;/p&gt;
&lt;p&gt;Solving bugs for eternity!&lt;/p&gt;
&lt;blockquote&gt;
&lt;div&gt;&lt;p&gt;To those who have been my blog, it would have been a bit surprising
for them for getting this blog-post a bit late. This has been a
result of hectic work schedule and a little bit of procastination :P&lt;/p&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;This blog-post sums up my work for the second week of Google Summer of
Code 2019.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="telecon-with-my-mentor"&gt;
&lt;h1&gt;Telecon with my mentor&lt;/h1&gt;
&lt;p&gt;As I might have mentioned(or maybe not), but my other mentor,
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;&amp;#64;DanRyanIrish&lt;/span&gt;&lt;/code&gt;, was away for a while now, and after discussing with
him, we managed to set up a time-slot for a telecon, for getting him
updated with my work.&lt;/p&gt;
&lt;p&gt;The main points that we discussed were, getting this
&lt;a class="reference external" href="https://github.com/sunpy/ndcube/pull/176"&gt;#PR176&lt;/a&gt; merged. We also
discussed, the progress of the main PR for the project, and how much did
I make progress. I went through my
&lt;a class="reference external" href="https://github.com/sunpy/ndcube/pull/169"&gt;PR&lt;/a&gt;, and discussed a few
points about how I refactored the existing methods, and briefly
explained my understanding. Code reviews are necessary, and after
discussing with &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;Dan&lt;/span&gt;&lt;/code&gt; we decided to change the logic of some part of
the code.&lt;/p&gt;
&lt;p&gt;As I had completed most of the tasks for this week, we agreed to start
the closed &lt;a class="reference external" href="https://github.com/sunpy/ndcube/pull/179"&gt;PR&lt;/a&gt;. This PR
helped in writing a &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;FITS&lt;/span&gt;&lt;/code&gt; file from a &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;NDCube&lt;/span&gt;&lt;/code&gt; object. I had
started contributing to &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;NDCube&lt;/span&gt;&lt;/code&gt; with this PR, most of the work had
been completed. I had to rebase and write the tests and docs.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="completing-the-tasks"&gt;
&lt;h1&gt;Completing the tasks&lt;/h1&gt;
&lt;p&gt;Throughout this week, I had another discussion with my mentor &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;Dan&lt;/span&gt;&lt;/code&gt;,
who helped me in understanding the code of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;plotting&lt;/span&gt;&lt;/code&gt;. The #PR176 was
failing some tests, which were part of the plotting of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;&amp;gt;1D&lt;/span&gt;&lt;/code&gt;
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;NDCube&lt;/span&gt;&lt;/code&gt; objects. I had earlier skimmed through the code of plotting
but still found understanding the code of plotting quite complex.&lt;/p&gt;
&lt;p&gt;&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;Dan&lt;/span&gt;&lt;/code&gt; helped me in understanding the flow of code in plotting, and it
helped me in fast-tracking my work with plotting. Refactoring the tests
were much easier, though repetitive. Though the real happiness lies,
when all the tests pass, and there is a green color message, signaling
that all of your tests have passed.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="thoughts-for-the-next-week"&gt;
&lt;h1&gt;Thoughts for the next week&lt;/h1&gt;
&lt;p&gt;With most of the tasks completed for refactoring &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;NDCube&lt;/span&gt;&lt;/code&gt; with APE14
methods, it was now clear for me to take on the second stage of my
project — &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;Slicing&lt;/span&gt; &lt;span class="pre"&gt;of&lt;/span&gt; &lt;span class="pre"&gt;NDCube&lt;/span&gt;&lt;/code&gt;. Slicing by far was presumed by my
mentor &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;&amp;#64;Cadair&lt;/span&gt;&lt;/code&gt; as the most complex part of the project. I was
apprised by him about how the slicing can take most of the time of the
project, so I was rather aware of that. I am planning to start playing
with the slicing, and how it used to work for &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;NDCube&lt;/span&gt;&lt;/code&gt; earlier, and
how the behavior changes with APE14 changes. This should take a fair
amount of time, so I would hope that this gets completed within a
reasonable amount of time.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="link-to-my-previous-post"&gt;
&lt;h1&gt;Link to my previous post&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;[Week 01] — Getting Stuff Done! —
&lt;a class="reference external" href="https://medium.com/&amp;#64;yashrsharma44/week-01-getting-stuff-done-a751cb7eb816"&gt;Link&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;div&gt;&lt;p&gt;Until the next blog-post, ciao-adios!&lt;/p&gt;
&lt;/div&gt;&lt;/blockquote&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
</content>
    <link href="https://sunpy.org/posts/2019/2019-06-19-GSoC2019-Project-NDCube-4/"/>
    <summary>image0</summary>
    <category term="GSoC" label="GSoC"/>
    <category term="NDCube" label="NDCube"/>
    <published>2019-06-19T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://sunpy.org/posts/2019/2019-06-03-GSoC2019-Project-NDCube-3/</id>
    <title>[Week 01]— Getting Stuff Done!</title>
    <updated>2019-06-03T00:00:00+00:00</updated>
    <author>
      <name>Yash Sharma</name>
    </author>
    <content type="html">&lt;section id="week-01-getting-stuff-done"&gt;

&lt;p&gt;&lt;img alt="image0" src="https://cdn-images-1.medium.com/max/1144/0*z7jar2Q3sthcusYq.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;It’s time for Action ; Code-Sleep-Coffee Repeat!&lt;/p&gt;
&lt;p&gt;This blog post marks my account for the first week of coding for
GSoC’19. While it may not be as long as my previous posts, I would hope
to make posts every week, so it would be as recent and relevant.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="making-progress-for-the-week"&gt;
&lt;h1&gt;Making Progress for the Week&lt;/h1&gt;
&lt;p&gt;While I had already made progress with the tasks, now it was time to get
the unmerged PRs merged. I started to refine my PRs, and after going
through lot of iterations, I decided to drop this idea and do something
else. A fresh mind would be more receptive to find bugs.&lt;/p&gt;
&lt;p&gt;Frankly speaking, I did not make any progress, even though in my mind I
thought I made 😛. I mostly had a lot of discussion with &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;&amp;#64;Cadair&lt;/span&gt;&lt;/code&gt;
about the issue of failing tests of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;NDCube&lt;/span&gt;&lt;/code&gt;, and I spent a lot of
time understanding the plotting of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;NDCube&lt;/span&gt;&lt;/code&gt;. The plotting seems to be
very complex, and it contained small portions of code which made no
sense to me at all. All the time, I spent time understanding the code,
but made no progress.&lt;/p&gt;
&lt;p&gt;&lt;img alt="image1" src="https://cdn-images-1.medium.com/max/1144/0*PjHq4AuTbMjXz7Gq.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;Sometimes debugging is helpful in understanding the flow of
code!&lt;/p&gt;
&lt;p&gt;I had been spending time in understanding, more than making real
progress. This is wrong as writing some code always help in getting
&lt;em&gt;unstuck&lt;/em&gt;. A lot of times people suggest to understand the code before
making changes, but if you spend a lot of time understanding the flow of
code without any progress, it is better to crack open your favourite
editor and start using breakpoint to identify the flow of code and make
notes (yes notes!) of the changes unexpected.&lt;/p&gt;
&lt;p&gt;Another thing I did is use test-cases to identify how the input was
getting modified. Sometimes, an example is really helpful to map the
abstraction of a method into something practical. I used the tests to
inspect the portions of code which were creating nuisance, as I
submitted another PR about fixing most the issues. There are few test
cases which are failing, so it would take more time before this
&lt;a class="reference external" href="https://github.com/sunpy/ndcube/pull/176"&gt;PR&lt;/a&gt; is merged.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="link-to-previous-post"&gt;
&lt;h1&gt;Link to previous post&lt;/h1&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Contributing my way to SunPy1.0 —
&lt;a class="reference external" href="https://medium.com/&amp;#64;yashrsharma44/contributing-my-way-for-sunpy1-0-76bbc5673b8f"&gt;Link&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
</content>
    <link href="https://sunpy.org/posts/2019/2019-06-03-GSoC2019-Project-NDCube-3/"/>
    <summary>image0</summary>
    <category term="GSoC" label="GSoC"/>
    <category term="NDCube" label="NDCube"/>
    <published>2019-06-03T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://sunpy.org/posts/2019/2019-05-26-GSoC2019-Project-NDCube-2/</id>
    <title>GSoC 2019: Community Bonding Period — II</title>
    <updated>2019-05-26T00:00:00+00:00</updated>
    <author>
      <name>Yash Sharma</name>
    </author>
    <content type="html">&lt;section id="gsoc-2019-community-bonding-period-ii"&gt;

&lt;p&gt;&lt;img alt="image0" src="https://cdn-images-1.medium.com/max/1144/0*2ViVFo_JvjR1r5ih.png" /&gt;&lt;/p&gt;
&lt;p&gt;So as I discussed in my earlier posts about how I started my Community
Bonding Period, so this post deals with the remaining tasks that I did
for the remaining part of the Community Bonding Period. ### Starting
with the Week 01 tasks&lt;/p&gt;
&lt;p&gt;I had a chat with &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;&amp;#64;Cadair&lt;/span&gt;&lt;/code&gt; who is my mentor, and we decided that I
start with the tasks of the
first part of
the project. GitHub has these awesome project tabs, which help you sort
out all the tasks and todo for a GitHub project, and even though it is a
simple feature, it makes managing the stuff look neat and easy.&lt;/p&gt;
&lt;p&gt;So I approached the tasks as it was given, and by refactoring each of
the methods, I realised that as simple as the work sounds, there is a
lot of overhead to cover, before a method is refactored. Even though, I
have written lots of tests in my short developer period, but
contributing and making changes to a new repository requires a lot of
learning and unlearning, especially modifying the tests.&lt;/p&gt;
&lt;p&gt;After going through each of the test cases, I realised, that it is a
different beast all together. However the overhead does make a lot of
sense, as it makes sure that the intention of a developer is shown as
he/she thinks while coding up the features.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="making-progress-with-the-tasks-coding-101"&gt;
&lt;h1&gt;Making progress with the tasks : Coding 101&lt;/h1&gt;
&lt;p&gt;As it happens, I made lot of refactoring, and I tested out each of the
methods, if they are performing as expected. The mantra for making a
successful contribution is &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;Code&lt;/span&gt; &lt;span class="pre"&gt;—&lt;/span&gt; &lt;span class="pre"&gt;Test&lt;/span&gt; &lt;span class="pre"&gt;—&lt;/span&gt; &lt;span class="pre"&gt;Document&lt;/span&gt;&lt;/code&gt; all along. Well
lets add another dimension to it — &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;Code&lt;/span&gt; &lt;span class="pre"&gt;Reviews&lt;/span&gt;&lt;/code&gt;. Code reviews are
really important, if not the most underrated task, as I got my first
&lt;a class="reference external" href="https://github.com/sunpy/ndcube/pull/169"&gt;PR&lt;/a&gt;, reviewed by
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;&amp;#64;Cadair&lt;/span&gt;&lt;/code&gt; and &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;&amp;#64;DanRyanIrish&lt;/span&gt;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Even though I have had my code reviewed by many people earlier, I still
was a bit nervous about going through, as Code Reviews differ from the
person who are reviewing. I got few suggestions as they went through,
and believe me it was a really good experience, as they shared how
coding style should be maintained for a given codebase, and how
wandering away from them can be a nightmare for maintainers.&lt;/p&gt;
&lt;p&gt;Overall, my PR hasn’t been merged, as it is a bigger part of my project,
so lot more changes are expected, before it gets merged.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="contributing-to-sunpy1-0"&gt;
&lt;h1&gt;Contributing to SunPy1.0&lt;/h1&gt;
&lt;p&gt;While the title sounds a bit misleading, as I have made PRs to
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;SunPy/NDCube&lt;/span&gt;&lt;/code&gt; it does not directly affect &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;SunPy&lt;/span&gt;&lt;/code&gt;, but I have made
changes which might affect &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;SunPy&lt;/span&gt;&lt;/code&gt; indirectly.&lt;/p&gt;
&lt;p&gt;After completing most of the
tasks, I
decided to do something else, unrelated to my project. I had a chat with
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;&amp;#64;Cadair&lt;/span&gt;&lt;/code&gt; and he suggested me to help him to fix some tests which were
failing in &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;SunPy/NDCube&lt;/span&gt;&lt;/code&gt;. As &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;SunPy&lt;/span&gt;&lt;/code&gt; was quite near to be released,
so some changes were breaking &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;SunPy/NDCube&lt;/span&gt;&lt;/code&gt;. On skimming through, I
wasn’t able to make any sense of what was happening, so I used debugging
techniques to figure out the issue. Those who don’t know about debugging
and the techniques, believe me it’s &lt;em&gt;Just Like Heaven.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Python has a lot of tools by its toolbox, one of the most powerful and
the elementary tools for debugging is &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;breakpoint()&lt;/span&gt;&lt;/code&gt;. It is supported
in &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;Python3.7&lt;/span&gt;&lt;/code&gt; , and it turned out as a saviour for me.
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;Breakpoint()&lt;/span&gt;&lt;/code&gt; helps in stopping the flow of code at the point of time
where the code breaks; where stuff happens the way it shouldn’t have
happened. It helps us in inspecting the state of the object and the
logic of the code, so you can understand the context of the issue
generated by the failing tests.&lt;/p&gt;
&lt;p&gt;Enough of the technical jargons, let me discuss the work that I did,
which marked the ending of the Community Bonding Period. After countless
debugging, I found that the &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;plotting&lt;/span&gt;&lt;/code&gt; code of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;NDCube&lt;/span&gt;&lt;/code&gt; used
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;pixel-values&lt;/span&gt;&lt;/code&gt; instead of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;pixel-edges&lt;/span&gt;&lt;/code&gt;, and since &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;SunPy&lt;/span&gt;&lt;/code&gt; had
changed its API, now requesting &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;pixel-edges&lt;/span&gt;&lt;/code&gt; instead of
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;pixel-values&lt;/span&gt;&lt;/code&gt; . I made a PR for changing the support to
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;pixel-edges&lt;/span&gt;&lt;/code&gt; instead of &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;pixel-values&lt;/span&gt;&lt;/code&gt;. I got a
&lt;a class="reference external" href="https://github.com/sunpy/ndcube/pull/174"&gt;PR&lt;/a&gt; merged for &lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;1D&lt;/span&gt;&lt;/code&gt;
plotting, but the &lt;a class="reference external" href="https://github.com/sunpy/ndcube/pull/176"&gt;PR&lt;/a&gt; for
&lt;code class="docutils literal notranslate"&gt;&lt;span class="pre"&gt;&amp;gt;1D&lt;/span&gt;&lt;/code&gt; needs to be merged.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="links-to-previous-post"&gt;
&lt;h1&gt;Links to previous post&lt;/h1&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;First meeting and plan of action —
&lt;a class="reference external" href="https://medium.com/&amp;#64;yashrsharma44/first-meeting-and-plan-of-action-60cedf1e2fd"&gt;Link&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
</content>
    <link href="https://sunpy.org/posts/2019/2019-05-26-GSoC2019-Project-NDCube-2/"/>
    <summary>image0</summary>
    <category term="GSoC" label="GSoC"/>
    <category term="NDCube" label="NDCube"/>
    <published>2019-05-26T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://sunpy.org/posts/2019/2019-05-16-GSoC2019-Project-NDCube-0/</id>
    <title>Getting selected for Google Summer of Code-2019</title>
    <updated>2019-05-16T00:00:00+00:00</updated>
    <author>
      <name>Yash Sharma</name>
    </author>
    <content type="html">&lt;section id="getting-selected-for-google-summer-of-code-2019"&gt;

&lt;p&gt;This short blogpost describes the journey of getting selected for Google Summer of Code, under SunPy organisation, for 2019.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="what-is-google-summer-of-code"&gt;
&lt;h1&gt;What is Google Summer of Code?&lt;/h1&gt;
&lt;div style="position: relative; padding-bottom: 0; height: 0; overflow: hidden; max-width: 100%; height: auto;"&gt;
    &lt;iframe width="765" height="430" src="https://www.youtube.com/embed/QVnN34YGz8s" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen&gt;&lt;/iframe&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;According to the sources&lt;/strong&gt; -&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Google Summer of Code is a global program focused on introducing students to open source software development. Students work on a 3 month programming project with an open source organization during their break from university.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;For undergraduates students like us, GSoC, serves as an exciting and eventful opportunity to write software, for real world organisations, which provides the participants to write and learn the different aspects of real world programming.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="events-building-up-to-gsoc-19"&gt;
&lt;h1&gt;Events building up to GSoC’ 19&lt;/h1&gt;
&lt;p&gt;Roughly, I started to prepare my case for GSoC, by choosing organisations. The organisation list is generally out by February, but many organisations, who have taken part in GSoC earlier, take part the current year also. I started to prune down my choices, and based on my interest, I chose SunPy. Since I was really fascinated with Physics, and the astronomical side of SunPy, I was quite keen to contribute to SunPy.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="working-through-prs-and-issues"&gt;
&lt;h1&gt;Working through PRs and Issues&lt;/h1&gt;
&lt;p&gt;GSoC provides a really good platform to sharpen and develop skills for building Open Sourced software. While, the codebase for SunPy is present in GitHub, it was easy for me to understand and get through the process of solving issues/bugs and making a Pull Request.&lt;/p&gt;
&lt;p&gt;I started to solve the issues and PRs for SunPy around from January, so this provided me ample time to go through the probable projects and the code base that I would work later on.&lt;/p&gt;
&lt;p&gt;Reading codebase requires another skill, the ability to read through long scripts, understanding the flow of code and understanding the different &lt;strong&gt;witch-craft&lt;/strong&gt; done in the codebase, and learning about them, which is what that makes up the important skill for making contributions.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="making-proposal"&gt;
&lt;h1&gt;Making Proposal&lt;/h1&gt;
&lt;p&gt;After working through the issues and bugs, I started looking through the project ideas listed, and based on my interest, I chose NDCube. I started working on some issues of NDCube, after going through the project ideas, I chose &lt;strong&gt;Supporting APE14 for NDCube&lt;/strong&gt;. This was quite fascinating, as it used N Dimensional cubical data structure for storing and manipulating astronomical data.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="getting-selected-for-gsoc-19"&gt;
&lt;h1&gt;Getting selected for GSoC’ 19&lt;/h1&gt;
&lt;p&gt;Even though I had a very good conversation with my mentor and the SunPy project leads, I was still quite nervous during the result day. I was watching some movies to tone out my anxiety. The moment I got my result, I was really happy, and was quite relieved.&lt;/p&gt;
&lt;p&gt;Now the upcoming months is some thing, which I look forward to, as it remains one of my challenging months for Summers.&lt;/p&gt;
&lt;p&gt;I have written a blogpost of my first video-chat with my mentor, so stay tuned for another blogpost of my conversation.&lt;/p&gt;
&lt;p&gt;BTW, my mentors for the project are &lt;a class="reference external" href="https://github.com/cadair"&gt;Stuart Mumford&lt;/a&gt; and &lt;a class="reference external" href="https://github.com/DanRyanIrish"&gt;Daniel Ryan.&lt;/a&gt;&lt;/p&gt;
&lt;/section&gt;
</content>
    <link href="https://sunpy.org/posts/2019/2019-05-16-GSoC2019-Project-NDCube-0/"/>
    <summary>This short blogpost describes the journey of getting selected for Google Summer of Code, under SunPy organisation, for 2019.</summary>
    <category term="GSoC" label="GSoC"/>
    <category term="NDCube" label="NDCube"/>
    <published>2019-05-16T00:00:00+00:00</published>
  </entry>
  <entry>
    <id>https://sunpy.org/posts/2019/2019-05-16-GSoC2019-Project-NDCube-1/</id>
    <title>GSoC 2019: Community Bonding Period - I</title>
    <updated>2019-05-16T00:00:00+00:00</updated>
    <author>
      <name>Yash Sharma</name>
    </author>
    <content type="html">&lt;section id="gsoc-2019-community-bonding-period-i"&gt;

&lt;p&gt;This post encapsulates my proceedings with the &lt;strong&gt;GSoC&lt;/strong&gt; project that I
have been working on, and a short log on the meeting that I had with my
mentors.&lt;/p&gt;
&lt;section id="community-bonding-period-getting-acquainted-with-the-environment"&gt;
&lt;h2&gt;Community Bonding Period: Getting acquainted with the environment&lt;/h2&gt;
&lt;p&gt;So first things first, after getting selected for &lt;strong&gt;GSoC’ 2019&lt;/strong&gt;, all of
the people of participants who got through the proposal selection, got a
wave of congratulations from the SunPy developers, who are quite
friendly.&lt;/p&gt;
&lt;p&gt;Soon, I got my first mail from &lt;strong&gt;Open Astronomy&lt;/strong&gt;, the organization
which is responsible for conducting the event smoothly. We were asked to
submit a PR without RSS feed credentials for easy access to the blog
posts that we are to make every week (or two).&lt;/p&gt;
&lt;p&gt;I never had the first-hand experience with &lt;strong&gt;RSS feeds&lt;/strong&gt;, so I got a bit
anxious about making one. But soon, the mentors had agreed on making an
account on medium, and since medium has an RSS feed
&lt;a class="reference external" href="https://medium.com/feed/&amp;#64;yashrsharma44/"&gt;https://medium.com/feed/&amp;#64;yashrsharma44&lt;/a&gt;
it was almost taken care of. So all in all, it helped in fast-tracking
the process and getting started with the blog-posts.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="gearing-up-for-the-work-reading-the-codebase"&gt;
&lt;h2&gt;Gearing up for the work: Reading the codebase&lt;/h2&gt;
&lt;p&gt;Well for starters, I had been reading through the codebase of
&lt;strong&gt;``NDCube``&lt;/strong&gt; for a long period of time, right from my contribution
period, so I had mostly assumed that it would be a cake walk. But boy,
was I so wrong, as while going through my proposal, I had tried to make
a prototype, but it was language agnostic. So all in all, what I
realized that solving an issue is quite different from making a feature.&lt;/p&gt;
&lt;p&gt;Overall, my condition wasn’t so bad, if not good, as I
still had gone through the codebase and made some notes, so that was a
cookie point for myself. There were some areas (which I realized during
my meeting with mentors) which was not conceptually clear, though I was
able to figure out the logic of the code.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="meeting-with-the-mentors-an-exciting-moment"&gt;
&lt;h2&gt;Meeting with the mentors: An exciting moment&lt;/h2&gt;
&lt;p&gt;Meeting with the mentors was the first thing that I was looking forward
to, as I had interacted with them earlier, and they were quite pragmatic
in dealing with queries, often responding as fast as possible, with some
hint of chirpy comments from &lt;strong&gt;Cadair&lt;/strong&gt;, who made the moment light.&lt;/p&gt;
&lt;p&gt;On the day of the phone-screen meeting, as they say, it was scheduled on
a Friday, in the evening. I had been to the meetings once, so I knew how
each of them looked like . We started with me
explaining to them what was the purpose of &lt;strong&gt;``NDCube``&lt;/strong&gt; according to
me: I tried to give my point of view, about how &lt;strong&gt;``NDCube``&lt;/strong&gt; is a
utility package from a contributor’s point of view, and how I had felt
about the impact of the software.&lt;/p&gt;
&lt;p&gt;We then had a talk, in which both the mentors mostly discussed with
themselves, discussing the scope of the project and how do we need to
proceed. The meeting mostly proceeded with me listening to there views,
as it was imperative to absorb their approach and how they thought about
the working of the different parts of &lt;strong&gt;``NDCube``&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Soon, I got to realize about the different contextual meaning of each of
the parts of &lt;strong&gt;``NDCube``&lt;/strong&gt; as it was quite intuitive with the way, the
mentors, particularly &lt;strong&gt;Dan Ryan&lt;/strong&gt;, explained. The meeting was quite
long, which meant that I was starting to lose out on the objectives and
pointers of the meeting. &lt;strong&gt;Cadair&lt;/strong&gt; started to
document down all the
requirements of the project, which made it quite simple to understand
it. Of course, the low-level idea about the goals required me to discuss
with them as required, but the overall high-level idea helped me
breaking down the projects into small doable parts, and hopefully, help
me in deciding the pace of my coding.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="my-takeaways"&gt;
&lt;h2&gt;My takeaways&lt;/h2&gt;
&lt;p&gt;The meeting in general, helped me in propelling my understanding of the
project, particularly the intuition of &lt;strong&gt;``NDCube``&lt;/strong&gt;(thanks to &lt;strong&gt;Dan
Ryan&lt;/strong&gt;) and how it functions, so I am much better equipped to take on
the further challenges of the project.&lt;/p&gt;
&lt;section id="previous-post"&gt;
&lt;h3&gt;Previous Post&lt;/h3&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Getting selected for GSoC’ 2019&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;/section&gt;
&lt;/section&gt;
</content>
    <link href="https://sunpy.org/posts/2019/2019-05-16-GSoC2019-Project-NDCube-1/"/>
    <summary>This post encapsulates my proceedings with the GSoC project that I
have been working on, and a short log on the meeting that I had with my
mentors.</summary>
    <category term="GSoC" label="GSoC"/>
    <category term="NDCube" label="NDCube"/>
    <published>2019-05-16T00:00:00+00:00</published>
  </entry>
</feed>
