DebadityaPal's Blog

Blog Post #1: The Skeletal Framework ⚙️

DebadityaPal
Published: 06/16/2021

During this week, I analyzed the flow of data in my project and modelled the classes accordingly. The course data is expected to be stored in a YAML file, hence the first thing that I needed to implement was a YAML parser. Thankfully, Python has a package aptly named yaml for that specific purpose. The course file would have the following structure:

Now once we have the raw data from the YAML file, we need to give it some structure for ease of computation. I decided to have the following heirarchical structure.
  • Course
    • Chapter 1
      • Snippet 1
      • Snippet 2
      • Snippet 3
    • Chapter 2
      • Snippet 1
      • Snippet 2

Once this was decided, I went on to create the basic classes for a Course, Chapter and Snippet. My plan is to keep these classes as base classes so that in future if more features are to be added, the newer classes can simply inherit the base functionalities from these classes. However these classes will also need to have a few restrictions like, some mandatory fields of data, some mandatory functions being implemented for all subclasses that inherit this class and so on. For the latter I aim to explore metaclasses in Python. The metaclass can be used to control how a certain class behaves.
View Blog Post

Weekly Check-In #1: Setting Up 🌎

DebadityaPal
Published: 06/08/2021

What did I do this week?

I used the community bonding time to set up the documentation pipeline for my project. I decided on using ReadTheDocs, because who doesn't love free hosting and automated documentation. Since it integrates directly with Github Repositories and rebuilds itself automatically after every push, the entire process of keeping the documentation up to date is simplified.

What is coming next?

Now the main crux of my project begins, ie: Creating a Course Engine that can parse data files and serve courses over the terminal. I think I'll have to study how Python REPL works, that will be instrumental to this project. A package called Swirl has already done this in R. Maybe I'll take a look at them as well.

Did I get stuck anywhere?

ReadTheDocs was supposed to be simple, right? Well, it wasn't. Even after following their documentation to a T, the docs build was failing due to a Markdown module not found error. The module is called "myst-parser". so I had to dive deeper and try to understand how RTD handles module imports, I set up a configuration file and explicitly mentioned "myst-parser" as a dependency. It worked like a charm after that. Maybe I'll even open an issue in their repo regarding this issue.
View Blog Post

Coding Phase Starts! 🚀

DebadityaPal
Published: 06/08/2021

Hello there! I am Debaditya and I am working a project that is very close to my heart. Do you remember the not-so good old days when you just started exploring Open Source Development? Treading through huge codebases one file at a time, trying to understand what is going on, fixing one bug only to get bogged down by 5 more. Yeah, that was me 2 months ago 😅.

But since then, all the folks at Activeloop have helped me out quite a bit and today here we are! So I wanted to create something that would help the OSS Padawans who come after me. If asked "Do you like to read documentation?", I'm sure not more than 2 or 3 people in a room would say "Yes!". What if you could have short interactive code-along tutorials to teach the basics of a package? Suddenly the hands start going up. To throw in a cherry on top, let's say that these tutorials would be served at the comfortable local terminal of your system!

So that is my project. I will be creating a interactive onboarding environment for all those who want to learn about Activeloop's package: Hub

This concludes my first blog post, but don't worry, I'll be back in a few days!
View Blog Post