Atharva_Kulkarni's Blog

Sphinx Internationalization....

Published: 07/25/2019

So, after the first phase was over, I was really happy that I had got some work done on my project, and finally could move on to the biggest issue that I was going to face for completing the project - Internationalization. Before that, I had to first readjust the videos in the lecture files according to the subtopics, and I had that done quickly, and made the web build with that update as well. Now, it was time for translating the lecture files and the assignments , which were in Portuguese, to Spanish. Initially, I had a major concern as I didn't know any of those languages, but finally I decided that I would take help of Google Translate and my intuition as much as I can to translate the files.

I started with making sphinx quickstart projects in each clone of the master branch of the repository on my local system. Created the po files. And now, I had to translate all the strings that had been recognized, to Spanish. I started working on that, and it was tiresome, because I had to also make sure that I don't disturb the syntax of the Runestone components that made a big part of the files. I took care, and finally managed to translate all the po files using Google Translate. I had to tweak around with the rst files in between a lot. After that, I went on to making the mo files, and remove any syntax errors that might be present. However, there was a problem. The assignment files consisted majorly of Runestone components, and the text inside them was not getting detected by Sphinx. I kept that issue aside, and concentrated on the lectures.

Finally, it was now the turn to make the final web build in order to get the translated rst files, and then use them in the project and move on forward. But again, there was an issue. A problem popped up related to duplicate key ids, and I was not able to convert the po and mo files to translated documents. I then filed an issue in the Sphinx repository for help.

I started work on the remaining issues, which consisted of making automated subtitles and creating advanced assignments that can incorporate within them advanced Python libraries like Tkinter and Pygame.

I hope to make some headway this week.

View Blog Post

Weekly Check In

Published: 07/14/2019

What did you do this week?

I worked on the Translation of files. Using Sphinx and the sphinx-intl library of python, I generated doctrees, .pot files and .po and .mo files which will be used in the translation process. Using Google Translate and an online .po file editor, I worked on translating the lectures to Spanish.

What is coming up for next week?

I am going to complete the translation of lectures and assignments, try to contact Runestone to upload the course on the server and start working on the examples issues.

Did you face any issues?

I faced quite a few problems this week. Most of them were related to generation of .pot files without disturbing the lectures and the framework components within them. After that, the translation didnt work perfectly, there are quite a few glitches, as sometimes the components get disturbed and the build is not made. 

View Blog Post


Published: 07/06/2019

Hey there, so this is my first blog post ( combined for the last 3 weeks) on what I am actually working on, and what this project is all about. The aim of the project is to create a course using the Runestone framework as a base so as to teach Python in Spanish in a lucid and interactive manner; the content of the course is based on the famous course created by Fernando Masanori.

Since the 5 weeks, I have been working on this project. I have added and converted the examples present in the lecture files into interactive examples using ActiveCode , CodeLens and Datafile components of the Runestone framework. I then moved on to embedding the video lectures in the lecture files topic-wise, so as to add a nice supplement to the course work. After that, I embedded Disqus comment boxes in all the lecture files, so that students can interact with each other and ask doubts as well. The reason for adding interactive examples is to help students understand what actually is happening when a single line of code gets executed and understand the command flow in the code. This will help them a lot when writing their own programs, as they will then have a clear picture in their minds as to what each piece of code is supposed to do and how to use it to solve an issue.

I then worked on the assignments. I created test cases for the questions, and using components such as ActiveCode, MCQs and fill in the blanks of the Runestone framework, created a set of assignments to supplement the theory part of the course. These interactive assignments are designed to check whether a student has understood the basic concepts or not; they contain both basic and advanced level of questions to test all aspects of learning.

I faced quite a few problems while doing all of this, and some of them are still not cleared up. External libraries such as urllib and some advanced libraries such as tkinter and pygame cannot be used in the ActiveCode components to create interactive examples, due to which I have had to replace that particular block of code with static examples. Other than this, examples which required text files, were again not working as the course is yet not connected to Runestone's database. The ActiveCode component accepts data only from Datafile component when embedded in a file. This has been set aside as a separate issue to be worked on in the second phase.

Right now, I am working on translating the lectures by using Sphinx Internationalization and Google Translate. I am also trying to get the course up and running on the Runestone server with the help of one of their collaborators. And I am working on solving the issues discussed in the previous paragraph as well.

View Blog Post

Weekly Check In [25th June to 1st July]

Published: 07/01/2019

What did you do this week?

I completed the tests in the second type of assignments and made the pull request for the same. I filed an issue in the Runestone Components Github Repository regarding re-population of answers in the MCQ and Fill in the blanks components. I rearranged the videos according to the respective topics and added another file containing the remaining videos related to recursion.

What is coming up next week?

I will mainly work on the following things - 

  1. Issues related to usage of libraries such as urllib in the example components
  2. Translating lecture files to Spanish ( First batch ) using Sphinx Internationalization
  3. Contacting Runestone to help getting the course onto their server

Did you face any difficulties this week?

I faced some difficulties due to re-population of answers, which turned out to be just storage of cache data by browser. Still, the issue has been created so as to create an option to stop re-population completely. Other than this, I did not face any major issues.

View Blog Post

Weekly Check Ins [ 10th June - 24th June ] [ Combined blog post for 2 weeks ]

Published: 06/24/2019

What did you do these 2 weeks?

I completed making the interactive assignments using Runestone components. I have already made a pull request for the first type, the Coding Bat assignments, and I am going to make the pull request for the second type soon, after completing some test cases. I have also added the assignments to the GitHub Pages static build.

What is coming up this week?

This week I will work on  - 

  • Making the Pull Request for the second type of assignments.
  • Translating the lectures to Spanish
  • Working on the issues related to examples that require external libraries and databases

Did you get stuck anywhere?

Nope, I didn't get stuck anywhere with the assignments yet. However, there is one question that requires a database ( text file reading, runestone components use the runestone servers's database ), and that will be handled along with the example issue.

View Blog Post