ymartinez's Blog

Post #6: Final blog post

Published: 08/27/2021

Hi everyone! this is my final blog post in the 2021 GSoC internship. The journey is almost over, it has been 2 months and I can't believe the fast that was.
Although this is the final post required by PSF, I am planning to create a blog post with more detailed information of my overall experience in this internship, but right now I am sick so I hope that will be the next week you can check my personal blog here.

What are you working on?

The last week I was working on document all my code, and also made a report with my activities in the internship, this report I made in the PyZombis wiki.

What have you struggled with?

As I said before, right now I am sick so, it was difficult for me made this report because I was such tired, and with terrible flu, but I needed to do that requirement, and I did it finally!

View Blog Post

Weekly Check-In #6: Tenth Week

Published: 08/20/2021

Hi everyone! this is the my final weekly check-in in my GSoC internship, if you want to know more about my whole internship, please check out the previous.

The last week was the final of the coding phase, it was a great experience, I learned a lot.

What did you do this week?

Being the last week, I only made reviews of the PR of my colleagues, and additionally, I was finishing the Model View Controler lesson, however, I am still finishing it since during the meeting with my mentors they gave me some suggestions. I hope to finish it in the next week but as a contribution of my own and not part of the code phase.

What is coming up next?

For this week I am going to be working on the report of my activities, this is a requirement to fulfill my last evaluation. I am doing this report on the PyZombis project wiki, hoping that anyone can see my journey, as well as all the activities during this internship.

Did you get stuck anywhere?

Last week I was stuck and I am still stuck in the writing of the lesson since the original course was very basic in this lesson, and since writing is not one of my strengths it has been difficult for me. However, I am progressing in that.

View Blog Post

Post #5: Everything almost done

Published: 08/10/2021

Hi everyone! This is my 5th blog post, and it is the last before the coding phase ends. I can't believe that almost 2 months have passed, the whole experience has been awesome, however, I am going deeper into it in the next post.

Last week I was working on modifying the graphical user interface. This change was necessary to improve the lesson's context, with this information the future students of the course can know more about the interfaces and the basic differences between them. In addition, I changed the initial position of dialogs to the left upper corner, this change helps to a better experience when creating the dialogs. I made a PR with this change and it is awaiting the mentors' review. Below there is a result of this change.


from browser import document, html
from browser.widgets.dialog import Dialog

# Creación de un dialogo con el título
d = Dialog("Show de preguntas Zombis", top=20, left=20)

# Agrega elementos como botones y títulos
d.panel <= html.H3(
    "Aprieta los botones",
d.panel <= html.BUTTON("Correcto", id="btn_correcto")

d.panel <= html.BUTTON("Incorrecto",

<svg width="20px" height="20px" viewBox="0 0 24 24" class="highlight-action crayons-icon highlight-action--fullscreen-on"><title>Enter fullscreen mode</title> <path d="M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z"></path> </svg> <svg width="20px" height="20px" viewBox="0 0 24 24" class="highlight-action crayons-icon highlight-action--fullscreen-off"><title>Exit fullscreen mode</title> <path d="M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z"></path> </svg>

Result Dialog

I made a few Proof of Concepts with different approaches until I found the best solution for my problem, however, one of the approaches that I used was inherited from the Brython class dialog and overwrote the methods that I needed. This approach was the optimal solution but I had a problem, the Brython interpreter did not allow me to do it and I had several issues with this, then I changed it to a simple solution, which can not be optimal, but remember...

Better done than perfect

View Blog Post

Weekly Check-In #5: Eighth Week

Published: 08/08/2021

Hi everyone! this is the 5th weekly check-in in my GSoC internship journey, if you want to know more about it, please check out the previous.

What did you do this week?

In the 8th week of my internship was working in update the templates files of the project, these files are using when the project is building with Runestone, these changed were proposed before the weekly meeting with my mentors since we had problems when one of my team split the lessons and the core's team of Runestone told her that would be a problem in the templates, so the solution was updated them.

What is coming up next?

The change on the templates files wasn't in my weekly plan, but I know that we would be having issues in the road as with any project...

Houston we have a problem meme

For that reason, in the next week I was going to work (I already did it, check-out the next post 😜) in modify the graphic user interface lesson to add more context information according to the mentor's review.

Did you get stuck anywhere?

Yes indeed, I had issues when I was updating the files, and I could solve it, replacing all content in the _template folder of the Runestone project with the new ones.

So, Houston we did it!

View Blog Post

Post #4: Graphical user Interface

Published: 07/25/2021

Hello everyone! this is the 4th post of my blog post series to the GSOC internship, you can check out all previous if you want to know more about it :D

At this opportunity, I was working on refactoring the graphical user interface lesson, this lesson in the original course was created using the library to create GUIs tkinter but now I refactored using Brython.

In order to make this change, I used Brython's widgets to create dialogs. This was the way that I found to simulate the behavior of the tkinter library. The result is quite similar, below is a screenshot of the result.

example dialog

These kinds of dialogs are created using the syntax of Brython and translated to HTML internally using javascript (without use javascript itself), and also you can put any element HTML inside using the same syntaxis, like buttons, input fields (any type), and so on.

I have done a PR that is waiting for my mentors' review, and in the meantime, I am going to work to make reviews of peers' PR and after that, I am going to work in the Model View Controller lesson, which is very important in the second milestone of my internship, so keep going.

keep going meme

View Blog Post