<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Yash Sharma on Medium]]></title>
        <description><![CDATA[Stories by Yash Sharma on Medium]]></description>
        <link>https://medium.com/@yashrsharma44?source=rss-32565179cdfe------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*a_sooA3irx57byQ4C1Rp5Q.jpeg</url>
            <title>Stories by Yash Sharma on Medium</title>
            <link>https://medium.com/@yashrsharma44?source=rss-32565179cdfe------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Fri, 08 May 2026 12:32:45 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@yashrsharma44/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Resources for Google Summer of Code]]></title>
            <link>https://yashrsharma44.medium.com/resources-for-google-summer-of-code-5c2ac800849b?source=rss-32565179cdfe------2</link>
            <guid isPermaLink="false">https://medium.com/p/5c2ac800849b</guid>
            <category><![CDATA[gsoc]]></category>
            <category><![CDATA[open-source]]></category>
            <dc:creator><![CDATA[Yash Sharma]]></dc:creator>
            <pubDate>Sat, 02 Jan 2021 05:11:12 GMT</pubDate>
            <atom:updated>2021-01-02T05:11:12.238Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/800/0*ZvmXjwXLoHZVJAg4" /><figcaption>Wanna apply for GSoC? Use this blogpost!</figcaption></figure><blockquote>I have written this blog to document some useful resources I found while participating for Google Summer of Code. This is supposed to be a live document, so feel free to share your resources of your choice as a comment, I will add yours :)</blockquote><h3>Starting with GSoC</h3><ul><li>Getting a high-level overview of the different aspects of Software Engg — <a href="https://roadmap.sh/">https://roadmap.sh/</a></li><li>Free Udacity course for Git/GitHub — <a href="https://www.udacity.com/course/version-control-with-git--ud123">https://www.udacity.com/course/version-control-with-git--ud123</a></li><li>For learning the implementation details of Software Engineering, I would suggest using Python for easy prototyping. It is quite easy to convert your ideas into code using Python — <a href="https://www.python-course.eu/">https://www.python-course.eu/</a></li><li>KOSS Python workshop — <a href="https://github.com/kossiitkgp/Python-Classes">https://github.com/kossiitkgp/Python-Classes</a></li><li>For getting a list of resources that might help you learn a simple topic, I would suggest — <a href="https://github.com/sindresorhus/awesome">https://github.com/sindresorhus/awesome</a></li><li>Google Summer of Code FAQs — <a href="https://github.com/OrkoHunter/gsoc-FAQs">https://github.com/OrkoHunter/gsoc-FAQs</a></li><li>Finally, I would suggest you go through the organizations — <a href="https://summerofcode.withgoogle.com/archive/2020/organizations/">https://summerofcode.withgoogle.com/archive/2020/organizations/</a> where you can choose an organization based on your interest, and then you can dive into the ideas list of an org. This way you will need to research the different conceptual ideas used to solve the project and the tech stack associated with the project.</li></ul><h3>Choosing Projects for GSoC</h3><ul><li>GSoC Org Frequency — <a href="https://github.com/thealphadollar/GSoCOrgFrequency">https://github.com/thealphadollar/GSoCOrgFrequency</a></li><li>GSoC Archive — Provides a rough idea about the type of projects that are selected — <a href="https://summerofcode.withgoogle.com/archive/">https://summerofcode.withgoogle.com/archive/</a></li></ul><h3>Personal blogs for GSoC participants</h3><ul><li><a href="https://blog.usejournal.com/how-to-prepare-for-gsoc-2020-6e20d0d46398">https://blog.usejournal.com/how-to-prepare-for-gsoc-2020-6e20d0d46398</a></li><li><a href="https://thealphadollar.me/experience/2018/12/03/how-i-prepared-for-gsoc-18.html">https://thealphadollar.me/experience/2018/12/03/how-i-prepared-for-gsoc-18.html</a></li><li>Some orgs have a good account for onboarding people to get familiar with the GSoC application process. Drupal has a good account for this — <a href="https://www.drupal.org/community/contributor-guide/reference-information/event-plan/google-summer-of-code/for-gsoc-students">https://www.drupal.org/community/contributor-guide/reference-information/event-plan/google-summer-of-code/for-gsoc-students</a></li><li>Awesome list for GSoC — <a href="https://realabbas.github.io/awesome-gsoc-roadmap/">https://realabbas.github.io/awesome-gsoc-roadmap/</a></li><li>FossMec Account — <a href="https://github.com/FossMec/Awesome-GSoC-List/blob/master/README.md">https://github.com/FossMec/Awesome-GSoC-List/blob/master/README.md</a></li><li>Hackernoon account — <a href="https://hackernoon.com/an-actionable-checklist-to-being-a-google-summer-of-code-student-47ca97e521f3">https://hackernoon.com/an-actionable-checklist-to-being-a-google-summer-of-code-student-47ca97e521f3</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=5c2ac800849b" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[[Week — 00] Gearing up with Thanos]]></title>
            <link>https://yashrsharma44.medium.com/week-00-gearing-up-with-thanos-6d39694a74e4?source=rss-32565179cdfe------2</link>
            <guid isPermaLink="false">https://medium.com/p/6d39694a74e4</guid>
            <category><![CDATA[thanos]]></category>
            <category><![CDATA[prometheus]]></category>
            <category><![CDATA[cncf]]></category>
            <dc:creator><![CDATA[Yash Sharma]]></dc:creator>
            <pubDate>Sun, 24 May 2020 13:11:08 GMT</pubDate>
            <atom:updated>2020-05-24T13:15:21.649Z</atom:updated>
            <content:encoded><![CDATA[<h3>[Week — 00] Gearing up with Thanos</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/982/0*kcArK98CA3CpAcJ9.png" /><figcaption>The triplets!</figcaption></figure><blockquote>This post is a part of the series of my journal for spending my summers with Thanos. I would try to document my learnings and little tidbits of how I approached my project and any shortcomings that I would try to overcome in future time 😃</blockquote><p>Special thanks to my mentors <a href="https://twitter.com/bwplotka"><strong>Bartłomiej Płotka</strong></a><strong> </strong>and<strong> </strong><a href="https://twitter.com/kkakkoyun?s=20"><strong>Kemal Akkoyun</strong></a><strong> f</strong>or mentoring me on working on a project under them. I am looking forward to an exciting summer with them!</p><h4>Selection with Thanos</h4><p>Thanos is an Open source, highly available Prometheus setup with long term storage capabilities. Before you start questioning what is Prometheus and what problem does Thanos solve, let me answer -</p><blockquote><strong>Prometheus</strong> is an open-source systems monitoring and alerting toolkit originally built at Soundcloud.</blockquote><p>I heard about <strong>Thanos</strong> from a few of my college seniors, and while I was learning more about <strong>distributed systems</strong>, I stumbled upon <strong>CNCF</strong>, and how it provides a plethora of solutions for hosting applications on the cloud. Learning something practically comes from doing things, so I thought of implementing all of my learnings through contributing to an open-source project.</p><p>I was trying to appreciate each of the solutions provided by CNCF, and the monitoring and observability aspect really impressed me. This is how I landed up with Thanos and equipped with a warm and helpful community, I am excited to work with Thanos!</p><p>I also read through <strong>Khyati’s </strong><a href="https://medium.com/@khyatisoneji5/my-internship-with-thanos-a-cncf-project-f1f936366af"><strong>blog-post</strong></a> about Thanos, so I would highly recommend it.</p><h4>Starting with Thanos</h4><p>I started contributing to Thanos with some documentation PRs. I was impressed by the abundance of YouTube conference videos about Thanos and Prometheus, and totally understood the <strong><em>‘what’</em></strong> problem that Thanos and Prometheus are trying to solve. <a href="https://www.youtube.com/watch?v=m0JgWlTc60Q&amp;t=392s">Here</a> is a video resource to get started with Thanos and Prometheus.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*1s3IbrItW7WxExwE5lMkIw.png" /><figcaption>Documentation ftw!</figcaption></figure><p>I sent in a couple of documentation PRs and coupled with some PR reviews, I was up and running with Thanos!</p><h4>Further thoughts</h4><p>I was not able to be productive as I would have loved to be, because of the recent cyclone <strong>Amphan</strong> in Kolkata. While I was fortunate that my electricity was still up, my internet connectivity took a hit, and I have been barely able to connect with the outside world. I was also supposed to have a meet up with the other mentees, but due to bad connectivity, I had to drop the idea.</p><p>My connection has been better by the end of the week, so I guess I would be able to start with my work the next week without any issues.</p><p>I am looking forward to a meetup with my mentors and discuss my understandings and chalk out the plan for the project.</p><blockquote>Until then, Ciao Adios!</blockquote><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=6d39694a74e4" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Articulation Point: A different approach]]></title>
            <link>https://yashrsharma44.medium.com/articulation-point-a-different-approach-bb0ac4666c63?source=rss-32565179cdfe------2</link>
            <guid isPermaLink="false">https://medium.com/p/bb0ac4666c63</guid>
            <category><![CDATA[programming]]></category>
            <dc:creator><![CDATA[Yash Sharma]]></dc:creator>
            <pubDate>Tue, 24 Dec 2019 09:16:36 GMT</pubDate>
            <atom:updated>2019-12-26T09:00:42.869Z</atom:updated>
            <content:encoded><![CDATA[<p>This blog post takes a different approach to calculating articulation points in a graph.</p><blockquote>Note : This blog post is heavily derived from one of the<a href="https://codeforces.com/blog/entry/68138"> blog post</a> from the codeforces website. I have basically explained the author’s approach and how it is different from the other approaches that is taken for calculating the articulation points and bridges.</blockquote><h3>So, what is an articulation point?</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*s6p7a1bjndSHodOB.jpg" /></figure><p>An articulation point is a point in a graph, which when removed from the graph results in disjoint graph components. A practical example of articulation points would be critical points in a network graph, whose removal might create a whole system shutdown.</p><p><a href="https://codeforces.com/blog/entry/68138">This</a> blog post takes a different approach while calculating articulation points in a graph. I have tried to explain the calculation of the articulation point in a graph using the author’s approach.</p><h3>The DFS Tree</h3><p>Those who have not heard about the DFS tree here is a short explanation about it. While I haven’t found an intuitive explanation of why the classical algorithms work for finding the articulation points, here I present you with an intuitive approach for calculating them.</p><p>DFS Tree is a tree of vertex traversal formed when we perform a depth-first search in a graph. Let’s say, we have a graph —</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/639/0*IF8jUsy9OCVNqqyM.png" /><figcaption>Animation of formation of DFS Tree. Taken from <a href="https://codeforces.com/blog/entry/68138">here</a></figcaption></figure><p>And we perform the depth-first search on it, we get the following tree. Note that the bold line refers to the path traversed by the dfs, and the light lines refer to the other paths that connect the vertices(later we will know that these are back-edges).</p><p>So our DFS tree looks like —</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/697/1*udfwUPhXS2iYRISPz6lZvQ.png" /></figure><p>Now by looking at the DFS Tree, we can say that there are few light lines that are present. We can define them as a back-edge between a parent vertex p and child vertex u. If we get a path from p-&gt;u other than the edge pu, then we have a back edge.</p><p>I have drawn out the DFS Tree in a whiteboard to demonstrate the key facts in it —</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*AlURlLdizgUOGvjSYCkrwA.jpeg" /><figcaption>Concentrate on the left part!</figcaption></figure><p>We have broken down our traversal of the graph into a dfs tree, and in the dfs tree, we have the set of a vertex in a certain level of dfs. You can see the vertex 3and 9in level 2.</p><p>Now there are certain facts that we can observe before we move on to the articulation point.</p><ul><li>We can easily find the back-edge in a graph through the light edges in a dfs tree.</li><li>The DFS tree simplifies the connection of a given vertex. Once we draw out a dfs tree, we can get a concise view without distorting the connection between the vertex. It is a simplified view of connections in a graph.</li></ul><p>With these two facts, we can code up our implementation for calculating the articulation point. We can use the fact that counting the number of light edges in the graph(in the dfs tree) and return the no. of back edges in a graph. The problem is reduced into an intuitive one.</p><blockquote>Note : The example graph out here, contains no bridges and articulation points. So don’t get surprised if you get zero bridges!</blockquote><h3>Calculating Articulation Points and Bridges</h3><h4>Calculating the number of bridges</h4><p>As the dfs tree makes finding the articulation points and bridges quite intuitive, we now approach the problem of finding the number of bridges.</p><p>We can run the dfs in the graph problem, and then find the bridges either using the typical low and disc array approach, or by using a dynamic programming approach. Note that I am not a fluent coder in dynamic programming, but the approach discussed out <a href="https://codeforces.com/blog/entry/68138">here</a> seemed quite intuitive.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/5020be441150f96cf2446580e0b01127/href">https://medium.com/media/5020be441150f96cf2446580e0b01127/href</a></iframe><p>So we start with two arrays — lvl and dp. The lvl array is for calculating the level of the vertices in the dfs tree. The dp array stores the state for each vertex about the number of edges. Before formally defining the dp, let me approach the recursive solution.</p><p>At each level, we have the following tasks —</p><ul><li>Calculate the level of the vertex.</li><li>Calculate the number of back edges in the given level for a given vertex. Actually, the level of the vertex doesn’t matter, we just want to calculate the number of back edges for a given vertex.</li></ul><p>The first one is quite simple :P. The second one is a bit complex, so let me break it down as follows -</p><ul><li>We want the number of back-edges for a given vertex. We can start with the leaf vertex, which has no children. Any edge going upwards is counted.</li><li>Also, any back edge that is going downwards is subtracted, as we want only the back edges going upwards.</li><li>We might also need to take care of the number of back edges in a subtree if the vertex is not a leaf vertex. So we add the number of back edges for the subtree.</li></ul><p>Now we have a recursive relation for each vertex —</p><blockquote><strong>count[v]</strong> = #back edges going up + #total back edges in a subtree — #back edges going down.</blockquote><p>Here, we can use dynamic programming for using the results computed for the child. Here we might double count the number of back edges for a given vertex, so we can reuse the number of back edges from the child.</p><p>So we use the following dp relation —</p><blockquote>dp[parent] = #back edges going up + Σdp[childs] — #back edges going down.</blockquote><p>Now how to calculate the #back edges going up and down? Fortunately, we can use the lvl array. We have three cases —</p><ul><li>If lvl of the unexplored vertex is NIL, we can initialize the child’s level as 1 + lvl[parent].</li><li>If we encounter a vertex that has been visited, this means we have a back edge, and we need to check if the back edge is going upwards or downwards. If the lvl[parent] &gt; lvl[child], we have a back edge which is going upwards, and we need to add the total back edge by one, or dp[parent] += 1.</li><li>Similarly, if we encounter a vertex that has been visited, this means we have a back edge, and we need to check if the back edge is going upwards or downwards. If the lvl[parent] &lt; lvl[child], we have a back edge which is going downwards, and we need to subtract the total back edge by one, or dp[parent] -= 1.</li></ul><p>We also need to subtract the parent-child edge, as we are counting it again.</p><figure><img alt="" src="https://cdn-images-1.medium.com/proxy/1*AlURlLdizgUOGvjSYCkrwA.jpeg" /><figcaption>Concentrate on the second part!</figcaption></figure><h4>Calculation of Articulation Points</h4><p>For the calculation of articulation points, we can re-use the dp array. Since dp array represents the number of back-edges for a given vertex, we can use the fact that an articulation point will have no back edge and its descendant subtree will also have no back-edges. So we can insert those vertices in a set of articulation point whose dp[i] = 0along with its parent.</p><p>Finally, I have drawn some explanations for the above approach and computed some values for each vertex. The best way to understand them is to draw out and see for yourself. Until then, Ciao Adios!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=bb0ac4666c63" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Google Summer of Code 2019 | Final Report | OpenAstronomy | NDCube]]></title>
            <link>https://yashrsharma44.medium.com/google-summer-of-code-2019-final-report-openastronomy-ndcube-65068b8571d8?source=rss-32565179cdfe------2</link>
            <guid isPermaLink="false">https://medium.com/p/65068b8571d8</guid>
            <category><![CDATA[gsoc]]></category>
            <dc:creator><![CDATA[Yash Sharma]]></dc:creator>
            <pubDate>Fri, 23 Aug 2019 17:49:46 GMT</pubDate>
            <atom:updated>2019-08-25T05:09:23.569Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/800/0*uRGLzjnCFvoPcs7F" /><figcaption>GSoC FTW!</figcaption></figure><h3>For those who are geeky and want to see the PRs submitted…</h3><p><a href="https://medium.com/@yashrsharma44/pull-requests-merged-in-for-gsoc19-ndcube-95a9fd15c8b6">Here is the link</a> where all my PRs for completing the project are present.</p><blockquote>Google Summer of Code (GSoC) is an online, international<br>program designed to encourage university student participation in open source software development.</blockquote><h4>Details of my Organisation and Project</h4><blockquote>Before I start writing my report, I would like to thank my mentors <a href="https://github.com/DanRyanIrish">Daniel Ryan</a> and <a href="https://github.com/cadair">Stuart Mumford</a>. They have been quite helpful in guiding me through the project, and have been quite responsive. Special thanks to <a href="https://github.com/nabobalis">Nabil Freij</a>, for guiding through the project here in SunPy/NDCube.</blockquote><p><a href="https://docs.sunpy.org/projects/ndcube/en/stable/api/ndcube.NDCube.html#ndcube.NDCube"><strong>NDCube</strong></a> 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. <a href="https://docs.sunpy.org/projects/ndcube/en/stable/api/ndcube.NDCube.html#ndcube.NDCube"><strong>NDCube</strong></a> is subclassed from <a href="http://docs.astropy.org/en/stable/api/astropy.nddata.NDData.html#astropy.nddata.NDData"><strong>astropy.nddata.NDData</strong></a>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 <a href="http://docs.astropy.org/en/stable/api/astropy.wcs.WCS.html#astropy.wcs.WCS"><strong>astropy.wcs.WCS</strong></a> and contains a few additional attributes to enable to keep track of its relationship to the data.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/400/0*uqnVlB46CcEgB4CV" /><figcaption>SunPy: The Sub-Organisation that I worked in.</figcaption></figure><p>My GSoC project was under <a href="https://openastronomy.org/">OpenAstronomy</a>, and NDCube is a SunPy affiliated subpackage for handling ND Data arrays and perform data-analysis on them.</p><p>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 &gt;2D 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.</p><p>My project with NDCube was to port the internal API to match all the proposals laid out in <a href="https://github.com/astropy/astropy-APEs/blob/master/APE14.rst">APE14</a> 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.</p><h4>Blogging and details of my work</h4><p>My weekly notes about my progress have been documented in my <a href="https://medium.com/@yashrsharma44">blog</a>. Feel free to check out and suggest changes if needed.</p><h4>Breakdown of my project</h4><p>As described in my <a href="https://github.com/yashrsharma44/GSoC-2019-Proposal">proposal</a>, I had broken down my project into three parts —</p><ul><li>Porting NDCubeBase to use APE14</li><li>Porting NDCubeSequence to APE14</li><li>Support plotting in NDCube</li></ul><p>All the associated PRs have been blogged in the <a href="https://medium.com/@yashrsharma44/pull-requests-merged-in-for-gsoc19-ndcube-95a9fd15c8b6">PR post</a> that I made earlier. Feel free to check them and gauge the progress that I made.</p><h4>Some Visuals associated with my project</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/643/1*jPvoayLdAkm8D8sWseUM1g.png" /><figcaption>Example of a WCS plotting with NDCube</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/635/1*BaYgBlsV9B6f5o-vEAa5sg.png" /><figcaption>Example of WCS Line Plotting with NDCube</figcaption></figure><h4>My Experience with working with NDCube/SunPy</h4><p>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.</p><p>I decided to list out the tasks which could not be completed, as the rest of the checkpoints were achieved successfully.</p><p><strong>Here are some tasks which I had planned but could not be done</strong></p><ul><li>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.</li><li>Completing <a href="https://github.com/sunpy/ndcube/projects/2#card-21344119">plotting</a> of NDCubeSequence — I had completed almost all of the tasks as I had planned in my <a href="https://github.com/sunpy/ndcube/projects/2">proposal</a> 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 <a href="https://github.com/sunpy/ndcube/pull/196">made a PR</a> but it remains open till the bug is fixed in the master branch.</li></ul><h4>My Experience with Google Summer of Code</h4><p>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.</p><p>There was <a href="https://numfocus.org/blog/meet-our-2019-gsoc-students-part-3">blogpost</a> 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 —</p><blockquote>Make sure you have a good understanding of the subparts of the project</blockquote><p>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.</p><blockquote>Make sure you have some backup tasks to fall back upon</blockquote><p>I have had moments when my work progress <a href="https://medium.com/@yashrsharma44/week-08-gearing-up-for-the-plotting-ii-e7e17493433b">dried</a> <a href="https://medium.com/@yashrsharma44/week-09-cadair-is-back-ee083d59c71e">out</a>, 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.</p><blockquote>Make sure you have fun</blockquote><p>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.</p><p>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.</p><blockquote>Ciaos Adios!</blockquote><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=65068b8571d8" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Pull Requests merged in for GSoC’19@NDCube]]></title>
            <link>https://yashrsharma44.medium.com/pull-requests-merged-in-for-gsoc19-ndcube-95a9fd15c8b6?source=rss-32565179cdfe------2</link>
            <guid isPermaLink="false">https://medium.com/p/95a9fd15c8b6</guid>
            <category><![CDATA[gsoc-2019]]></category>
            <dc:creator><![CDATA[Yash Sharma]]></dc:creator>
            <pubDate>Fri, 23 Aug 2019 17:34:46 GMT</pubDate>
            <atom:updated>2019-08-25T04:58:34.274Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*h6x8Ik2EwqaUmWrP.png" /><figcaption>Merging PRs!</figcaption></figure><blockquote>This blogpost deals with all the PRs that were merged/opened in NDCube/ SunPy / Astropy for completing the project.</blockquote><h4>NDCube</h4><blockquote>The PRs were filed according to the tasks allotted in the <a href="https://github.com/sunpy/ndcube/projects/2">task-tab</a> of GitHub</blockquote><p><strong>Merged PRs</strong></p><ul><li>PR for supporting APE14 for NDCube2.0 — <a href="https://github.com/sunpy/ndcube/pull/169">Link</a></li><li>PR for getting pixel_edges along with pixel_values in axis_world_coords — <a href="https://github.com/sunpy/ndcube/pull/174">Link</a></li><li>Support plotting to use pixel_edges instead of pixel_values —<a href="https://github.com/sunpy/ndcube/pull/176"> Link</a></li><li>Added a new build astropydev in azure-pipelines.yml file — <a href="https://github.com/sunpy/ndcube/pull/177">Link</a></li><li>Fixed the failing `axis_world_coords` after a NDCube is sliced — <a href="https://github.com/sunpy/ndcube/pull/185">Link</a></li><li>Support 1D plotting in NDCube using APE14 — <a href="https://github.com/sunpy/ndcube/pull/186">Link</a></li><li>Support 2D plotting in NDCube using APE14 — <a href="https://github.com/sunpy/ndcube/pull/188">Link</a></li><li>Fixes the bug associated with axes_coordinates — <a href="https://github.com/sunpy/ndcube/pull/189">Link</a></li><li>Update the ape14_rewrite branch with the master — <a href="https://github.com/sunpy/ndcube/pull/194">Link</a></li></ul><p><strong>Open PRs/Bug Fix PRs that needs to be merged</strong></p><ul><li>Support 3D plotting in NDCube using APE14 — <a href="https://github.com/sunpy/ndcube/pull/195">Link</a></li><li>Support plotting in NDCubeSequence using APE14 — <a href="https://github.com/sunpy/ndcube/pull/196">Link</a></li><li>Added tests for gWCS in NDCube —<a href="https://github.com/sunpy/ndcube/pull/197"> Link</a></li><li>Fixes a bug associated with axes_world_coords for APE14 branch — <a href="https://github.com/sunpy/ndcube/pull/199">Link</a></li></ul><h4>SunPy</h4><p><strong>Merged PRs</strong></p><ul><li>Added APE14 support in SunPy visualization — <a href="https://github.com/sunpy/sunpy/pull/3275">Link</a></li><li>Shifted the axis for calculation of edges_to_centers for LineAnimator — <a href="https://github.com/sunpy/sunpy/pull/3283">Link</a></li><li>Reverted the return arguments for ImageAnimatorWCS example —<a href="https://github.com/sunpy/sunpy/pull/3290"> Link</a></li></ul><h4>Astropy</h4><p><strong>Merged PRs</strong></p><ul><li>Corrected the message to work with None values in world_axis_physical_types — <a href="https://github.com/astropy/astropy/pull/8811">Link</a></li><li>Implement support for APE14 WCS in WCSAxes — <a href="https://github.com/astropy/astropy/commits?author=yashrsharma44">Link</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=95a9fd15c8b6" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[[Week 13] — Approaching the dusk — II]]></title>
            <link>https://yashrsharma44.medium.com/week-13-approaching-the-dusk-ii-233dd019fe77?source=rss-32565179cdfe------2</link>
            <guid isPermaLink="false">https://medium.com/p/233dd019fe77</guid>
            <category><![CDATA[gsoc-2019]]></category>
            <category><![CDATA[python3]]></category>
            <category><![CDATA[sunpy]]></category>
            <category><![CDATA[gsoc]]></category>
            <category><![CDATA[ndcube]]></category>
            <dc:creator><![CDATA[Yash Sharma]]></dc:creator>
            <pubDate>Fri, 23 Aug 2019 17:09:37 GMT</pubDate>
            <atom:updated>2019-08-23T17:09:37.037Z</atom:updated>
            <content:encoded><![CDATA[<h3>[Week 13] — Approaching the dusk — II</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*u6a4nnqwE2pBkET6.jpg" /><figcaption>Feels nostalgic after the end!</figcaption></figure><blockquote>This blog post deals with the entry of tasks that I did for the 13th week for the project under Google Summer of Code 2019.</blockquote><h4>Writing tests for gWCS</h4><p>I started working on writing up test cases for gWCS and after having a discussion with Cadair, I thought of keeping this task on hold. I started with some cases but then Cadair advised me of getting the plotting code up and running.</p><h4>Working out the NDCubeSequence — II</h4><p>I had earlier made some progress with NDCubeSequence , so most of the tasks were finished as far as porting to APE14 was concerned. I started modifying the tests of NDCubeSequence and potentially opened a can of worms(or bugs!). Since I had a good understanding of the plotting code of NDCubeSequence I started fixing the areas where the conflict of data type between the old and new API was visible.</p><p>I sent a <a href="https://github.com/sunpy/ndcube/pull/196">PR</a>, but to my dismay, there were some issues with the plotting of NDCubeSequence in the master branch that wasn’t working as expected. I had a discussion with Dan my other mentor, and he suggested that I should leave the bug as it is, and should focus on wrapping up my task.</p><h4>Wrapping up the project</h4><p>The project was mainly changing the internal API of NDCube, so it required little to no mention in the public documentation. The change of API, however, had some changes in the docstring, so that has been worked upon.</p><p>I had a joyous time in working with my mentors, particularly Cadair , because of his bubbly nature and ability to simplify doubts for me. I will soon write up a final report on my project, and how it is working.</p><blockquote>Until then, <br>Ciao Adios!</blockquote><h4>Link to my previous post</h4><ul><li>[Week 12] — Approaching the dusk — I: <a href="https://medium.com/@yashrsharma44/week-12-approaching-the-dusk-i-a4a3a67fa3ad">Link</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=233dd019fe77" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[[Week 12] — Approaching the dusk — I]]></title>
            <link>https://yashrsharma44.medium.com/week-12-approaching-the-dusk-i-a4a3a67fa3ad?source=rss-32565179cdfe------2</link>
            <guid isPermaLink="false">https://medium.com/p/a4a3a67fa3ad</guid>
            <category><![CDATA[ndcube]]></category>
            <category><![CDATA[gsoc-2019]]></category>
            <category><![CDATA[gsoc]]></category>
            <category><![CDATA[python3]]></category>
            <dc:creator><![CDATA[Yash Sharma]]></dc:creator>
            <pubDate>Sun, 18 Aug 2019 18:01:47 GMT</pubDate>
            <atom:updated>2019-08-23T16:51:56.750Z</atom:updated>
            <content:encoded><![CDATA[<h3>[Week 12] — Approaching the dusk — I</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1000/0*meuvOxNB4e9nYc72.jpg" /><figcaption>The end is approaching!</figcaption></figure><blockquote>This blog post deals with the entry of tasks that I did for the 12th week for the project under Google Summer of Code 2019.</blockquote><h4>Getting PR 189 merged</h4><p>This week was quite crucial as I had, in my earlier posts, tabulated out the list of tasks, which would roughly end my tasks associated with my GSoC project. Fortunately, my mentor Dan found out time to review my <a href="https://github.com/sunpy/ndcube/pull/189">PR</a>. He suggested some changes which I obliged and made the changes on the fly. This was crucial as I had already started playing with gWCS earlier, but due to the availability of Dan I had to revert back to the blocking work of plotting PR.</p><p>There were some nervous moments when Dan suggested that some parts of the plotting was not working as expected, but then agreed that there are far more changes that needs to be done before we can push NDCube, so he suggested me move forward with other tasks, and labelled it out of scope of GSoC. I finally got my PR merged, so it was small win for me.</p><h4>Rebasing the ape14_rewrite branch with master</h4><p>After the plotting fiasco was finally solved after 2 months, with the PR 189 nailing the coffin, I had to then rebase the changes in the master onto the ape14_rewrite branch. This seemed to be a herculean task, but after asking Cadair for some advice, he suggested that merging/rebasing is the only option and that I should do it complete peace of mind.</p><p>I started out with the rebasing, but there were lots of merge conflicts that needed to resolved. I solved each of them, and pushed the changes to GitHub for crosschecking the changes and whether it made any sense. I had no luck doing it on the first try, but after several iterations, I finally got the rebasing working for me. This was really challenging but at the same time, it got over much earlier than I expected.</p><h4>Working out the NDCubeSequence</h4><p>I had worked with NDCubeSequence quite before so I lost some of the knowledge of the workings of it. Fortunately, I had the notes of Dan who explained about the inner working of the plotting of NDCubeSequence , so I referred it. I started with changing the older methods of WCS with the APE14 ones, and at the same time I checked if the plotting was working as expected. This was a tedious process as the plotting depended on all of my previous work, and if I catch any bug due to the previous work, I may have to fix it before moving forward.</p><h4>Learning gWCS</h4><p>Cadair had earlier suggested me to complete the tests for gWCS and we had discussed the approach we might follow to write them. I started reading through the documentation of gWCS and started playing with some of the examples, before it might make any sense to me. Cadair also suggested some conftest.py files which contained some examples of gWCS which was quite useful for me to understand the framework of gWCS and how it was different from FITS-WCS.</p><p>I started working on the helper method which would help me in getting the gWCS object out of FITS-WCS. I had coded up the logic, but I had to write up the function. After writing the function, I tested it with existing FITS-WCS, and it was working great. This was really great, as I was making good progress.</p><h4>Tasks for the next week</h4><p>Phew! This was one of the busiest weeks of my coding period. I didn’t intend to push this close, but life happens so we must carry on with the work rather than criticizing our past.</p><p>The last week remains the week to wrap up my project, so here it seems my 2 tasks that need to wrap up —</p><ul><li>Writing tests for gWCS.</li><li>Writing tests for NDCubeSequence plotting.</li></ul><h4>Link to my previous post</h4><ul><li>[Week 11] — Fixing the dreaded bug — <a href="https://medium.com/@yashrsharma44/week-11-fixing-the-dreaded-bug-da89cea3fb98">Link</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=a4a3a67fa3ad" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[[Week 11] — Fixing the dreaded bug]]></title>
            <link>https://yashrsharma44.medium.com/week-11-fixing-the-dreaded-bug-da89cea3fb98?source=rss-32565179cdfe------2</link>
            <guid isPermaLink="false">https://medium.com/p/da89cea3fb98</guid>
            <category><![CDATA[sunpy]]></category>
            <category><![CDATA[gsoc]]></category>
            <category><![CDATA[python3]]></category>
            <category><![CDATA[gsoc-2019]]></category>
            <category><![CDATA[ndcube]]></category>
            <dc:creator><![CDATA[Yash Sharma]]></dc:creator>
            <pubDate>Sun, 04 Aug 2019 16:22:55 GMT</pubDate>
            <atom:updated>2019-08-04T16:22:55.561Z</atom:updated>
            <content:encoded><![CDATA[<h3>[Week 11] — Fixing the dreaded bug</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/0*ZC80yAC8yOQmHTXZ.png" /><figcaption>The joy of fixing a bug is unexplainable!</figcaption></figure><blockquote>This blog post deals with the entry of tasks that I did for the 11th week for the project under Google Summer of Code 2019.</blockquote><h4>Working on the APE14 in astropy plotting</h4><p>I had been working on the astropy branch, so I had been regularly pushing bug fixes to it, customizing the code, so the new support works for NDCube as well. I had sent a PR for supporting plotting for SlicedLowLevelWCS, but astrofrog the writer of the astropy PR suggested me to shift that into his PR, such that the git history remains elegant. I modified the <a href="https://github.com/astrofrog/astropy/pull/90">PR</a> and sent it.</p><p>I also had issues with SunPy not supporting APE14 methods in their master branch, so I sent a <a href="https://github.com/sunpy/sunpy/pull/3275">PR</a> adding one. This was an easy one, so got it merged quite fast.</p><h4>Merging up the PR176</h4><p>Well, this PR has been discussed quite a lot of times, such that it deserves a separate blog post about how much effort had gone into it for getting it merged.</p><p>I had worked on this <a href="https://github.com/sunpy/ndcube/pull/176">PR</a> earlier, so after discussing with Dan about the plan of course of action, I decided to fix the corner case, that was creating the issue. I sent a <a href="https://github.com/sunpy/sunpy/pull/3283">PR</a> to SunPy, and asked Dan and Cadair to review them. PyAstro was arranged this week, so it was quite hectic for them to do a code review. Somehow, Dan managed to take out time to review both of them, and I was swift enough to make the changes on the go so that the PR gets merged as fast. After some nitpicking and some conceptual errors :P, we finally agreed to a point that the PR was fixing all the bugs that it was intended to do so. This was a huge moment for me, as I was finally able to get it merged, after a lot of traversals. Thanks Dan for taking out the time, as I started to work on the next bug fix, associated with <a href="https://github.com/sunpy/ndcube/pull/189">axes_coordinates</a> for plotting.</p><h4>Planning up for writing the test-cases for gWCS</h4><p>This was something, that I wanted to discuss with Cadair, for I wanted to divert my mind from plotting and get something else done for NDCube2.0. I had the goal of getting the test-cases covered for NDCube so I thought that why not get it done now, before dealing closing the plotting. My progress is blocked with this <a href="https://github.com/sunpy/ndcube/pull/189">PR</a>, so I would like to get this merged before it closes the bug saga for plotting in NDCube. I will then have to merge the master with ape14_rewrite so that seems to be challenging for me.</p><h4>Potential roadblocks before the project gets completed</h4><p>This seems to be a rough estimate for me regarding the tasks that I need to cover before the project gets completed —</p><ul><li>Getting <a href="https://github.com/sunpy/ndcube/pull/189">PR189</a> merged</li><li>Merging the master with ape14_rewrite.</li><li>Completing the plotting for NDCubeSequence.</li><li>Writing tests for gWCS.</li><li>Writing documentation for the revamped portion of NDCube.</li></ul><p>Only the 3rd point is loosely coupled with the rest, as the others can depend on the previous ones to be completed before some work can be done. This seems frustrating, as even though 4 tasks seem to be left, these are quite small ones, which can be completed within a week. I am keeping my fingers crossed because once the 1st one gets merged, I can breeze through the rest of them, so I really hope that Dan reviews the first asap.</p><h4>Tasks for the next week</h4><p>My objective would be to complete the testing of gWCS which seems to be loosely coupled with the rest of the objectives. I would also wait on Dan reviewing PR189, so I would really hope that this gets done. If the test-writing turns out to be short, I would then switch to completing the plotting using APE14 for NDCubeSequence.</p><h4>Link to my previous post</h4><ul><li>[Week 10] — Dan is back! — <a href="https://medium.com/@yashrsharma44/week-10-dan-is-back-40c29e676479">Link</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=da89cea3fb98" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[[Week 10] — Dan is back!]]></title>
            <link>https://yashrsharma44.medium.com/week-10-dan-is-back-40c29e676479?source=rss-32565179cdfe------2</link>
            <guid isPermaLink="false">https://medium.com/p/40c29e676479</guid>
            <category><![CDATA[sunpy]]></category>
            <category><![CDATA[gsoc-2019]]></category>
            <category><![CDATA[ndcube]]></category>
            <category><![CDATA[python3]]></category>
            <category><![CDATA[gsoc]]></category>
            <dc:creator><![CDATA[Yash Sharma]]></dc:creator>
            <pubDate>Sun, 04 Aug 2019 15:45:39 GMT</pubDate>
            <atom:updated>2019-08-04T15:45:39.520Z</atom:updated>
            <content:encoded><![CDATA[<h3>[Week 10] — Dan is back!</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*mzgIO3z_L8LPmp8i.jpg" /><figcaption>This image is quite unrelated to the content</figcaption></figure><blockquote>This blog post deals with the entry of tasks that I did for the 10th week for the project under Google Summer of Code 2019.</blockquote><h4>Discussing plotting with Dan!</h4><p>This week started with me working through the 2D and 3D plotting code of NDCube. I had a discussion with Dan and Cadair regarding the telecon for the plotting code. I was really fortunate that somehow, Dan arranged out some time from his busy schedule to discuss the plotting code from <a href="https://docs.sunpy.org/en/latest/api/sunpy.visualization.animator.LineAnimator.html#sunpy.visualization.animator.LineAnimator">SunPy</a>.</p><p>I had worked on 3D NDCubes and modified the tests, to move forward with the tasks. On Wednesday, we had the telecon, so here it goes.</p><h4>Telecon with Dan and Cadair</h4><p>This telecon was much needed for me, more than the mentors to get a knowhow about my project, so I was apparently quite excited to meet and discuss some portion of code which I had researched a lot. After SunPy’s weekly community meeting, which takes place at 16:00 UTC(which anyone is invited for), I had a talk with Dan and Cadair. Phew!</p><p>We discussed the intricacies of how the LineAnimator of SunPy works, and I discussed the potential edge cases, which I felt was not being dealt with, so I raised them before Dan. After brainstorming with Dan, we finally came to a point, where there were some issues with some of the edge cases not being dealt in LineAnimator so, I discussed with him that I shall send a <a href="https://github.com/sunpy/sunpy/pull/3283">PR</a> fixing those, and Dan agreed to review it, since Cadair does not like the plotting and Dan had re-written the entire LineAnimator code of SunPy, so it was fair for him to review.</p><h4>Working on Astropy</h4><p>Since my plotting for NDCube using APE14 was using all the features that were being supported in this PR, I sent a couple of PRs, fixing some weird edge cases that were being raised when I was working with plotting. It was pretty difficult in segregating the errors being raised due to the plotting bug or due to the APE14 support PR in astropy. I was working on a local branch that had fixed most of the bugs of plotting in NDCube so it was much easier for me to understand the context of the error, that was being raised.</p><p>I submitted <a href="https://github.com/astrofrog/astropy/pull/90">two</a> <a href="https://github.com/astrofrog/astropy/pull/89">PRs</a> fixing them, and astrofrog, the writer of the PR to support APE14 in astropy was quite helpful in getting it merged.</p><h4>My views</h4><p>This week, to be honest, I had done work to my heart’s content, and I had some progress to show. Having a telecon with Dan was very much re-assuring for me, as it had become really difficult for me to gauge my progress, and the hurdles that emerged was confusing me, whether I had some shortcomings from my side, or my mentor was really busy(which he was :P).</p><h4>Tasks for the next week</h4><p>My list of task that I would like to get it completed would be to complete <a href="https://github.com/sunpy/ndcube/pull/176">PR176</a> and fix the bugs that haven’t resolved for a few months. I also need to back-port the changes back into ape14_rewrite branch in NDCube, so I also need to discuss them with Cadair about different possibilities to do so.</p><h4>For those who were wondering about the title of the blog-post…</h4><p>The title of the blogpost was inspired by my previous post(also I was lazy to think a new one :P). Also Dan had been outside the scene for so long, so it was quite a long time before he had a review about the work done.</p><h4>Link to my previous post</h4><ul><li>[Week 09] — Cadair is back!— <a href="https://medium.com/@yashrsharma44/week-09-cadair-is-back-ee083d59c71e">Link</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=40c29e676479" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[[Week 09] — Cadair is back!]]></title>
            <link>https://yashrsharma44.medium.com/week-09-cadair-is-back-ee083d59c71e?source=rss-32565179cdfe------2</link>
            <guid isPermaLink="false">https://medium.com/p/ee083d59c71e</guid>
            <category><![CDATA[python3]]></category>
            <category><![CDATA[gsoc-2019]]></category>
            <category><![CDATA[sunpy]]></category>
            <category><![CDATA[gsoc]]></category>
            <category><![CDATA[ndcube]]></category>
            <dc:creator><![CDATA[Yash Sharma]]></dc:creator>
            <pubDate>Sun, 21 Jul 2019 21:05:46 GMT</pubDate>
            <atom:updated>2019-07-21T21:05:46.839Z</atom:updated>
            <content:encoded><![CDATA[<h3>[Week 09] — Cadair is back!</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/615/0*QVh4wa0dPyosfvQ-.jpg" /><figcaption>Did you really think this post was about a mountain?</figcaption></figure><blockquote>This blog post deals with the entry of tasks that I did for the 9th week for the project under Google Summer of Code 2019.</blockquote><h4>Crawling through this week’s targets</h4><p>The target for this week was really clear for me — Get the bug fix <a href="https://github.com/sunpy/ndcube/pull/176">PR</a> merged, and hop onto something else. Sounds simple? Nah!</p><p>In spite of dedicating a week, I was still not able to get the bug-fix completed, as it later led to opening to a can of worms(bugs)!</p><p>Earlier, I had finally made some changes to the plotting code, and voila it was working. Note that I was able to understand most of the plotting semantics, and I was mostly convinced about my bug fix that fixed the two failing tests. This was a moment of sigh for me, as I finally solved the issue which was stagnant for a couple of months since I made the PR.</p><h4>Striking the reality</h4><p>However, the reality struck, as I was getting my code merged, my mentor @DanRyanIrish, reviewed the code and tried out a few examples from the docs( which in hindsight I should have done that!) which were failing drastically. This was quite scary for me as it seemed that all those week’s effort was gone into waste, and I was back to square one.</p><p>After recovering from the initial shock, I decided to go through the issues that Dan was having, and on close inspection, it was seeming to me that those were something which wasn’t something from my code. On trying the doc examples, the examples were breaking in an un-premeditated way, which was shocking and at the same time, a bit reassuring that my rewrite wasn’t creating an issue which was present earlier.</p><p>I had a discussion with Dan and he asked me to file an <a href="https://github.com/sunpy/ndcube/issues/187">issue</a>, as it was quite different from the issue which I was solving.</p><h4>Cadair is back!</h4><p>@Cadair is the name of my other mentor, <a href="http://github.com/cadair">Stuart Mumford</a>. He went for few weeks of excursion, and I was quite happy that he was back for SunPy. I had been working closely with him for the past few months, so I was really waiting for him to arrive back.</p><p>I discussed my issue with @Cadair and he suggested that we should hold a telecon, and I should get some insights about plotting from Dan. This was quite reassuring, as it can pretty become scary on managing stuff all alone.</p><p>@DanRyanIrish has been quite busy, so it was really difficult for him to be active all the time. With Cadair back in the scene, I discussed with him about stuff that needs to be worked upon. We decided to skip out the animate-1D plotting part of NDCube until Dan is free, and start with the 2D plotting.</p><h4>Back to track</h4><p>My previous bug isn’t fixed, but I have moved to tackle the 2D and 3D plotting. I have wasted around 3–4 days playing the waiting game, as the period between pushing the PR and getting reviewed took some time, and I was clueless about the progress. In the hindsight, I should have started with another task, and rather than playing the waiting game.</p><p>I have made two PRs for <a href="https://github.com/sunpy/ndcube/pull/188">2D</a> and 3D plotting, and those are still quite basic ones, but I will add more tests as I face any sort of issues. Currently, at the time of writing this post, I have incurred a bug, which I am discussing now 😛.</p><h4>Tasks for the next week</h4><p>For the next week, I have a telecon arranged with my mentors on a Wednesday, so hopefully, I can get insights about the plotting code. I also plan to work out the present bug that I am facing, so that would be next week’s priority tasks.</p><h4>Link to my previous post</h4><ul><li>[Week 08] — Gearing up for the plotting — II — <a href="https://medium.com/@yashrsharma44/week-08-gearing-up-for-the-plotting-ii-e7e17493433b">Link</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ee083d59c71e" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>