Articles on ymartinez's Bloghttps://blogs.python-gsoc.orgUpdates on different articles published on ymartinez's BlogenFri, 27 Aug 2021 20:19:52 +0000Post #6: Final blog posthttps://blogs.python-gsoc.org/en/ymartinezs-blog/post-6-final-blog-post/<div class="crayons-article__main"> <div class="crayons-article__body text-styles spec__body"> <p>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.<br> 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 <a href="https://dev.to/ymartinez/">blog here</a>.</p> <h2> <a href="#what-are-you-working-on"> </a> What are you working on? </h2> <p>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 <a href="https://github.com/PyAr/PyZombis/wiki/GSoC-2021-Final-Code-Ybrahin-Martinez">PyZombis wiki</a>. </p> <h2> <a href="#what-have-you-struggled-with"> </a> What have you struggled with? </h2> <p>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!</p> </div> </div>ybrahimmartinez09@gmail.com (ymartinez)Fri, 27 Aug 2021 20:19:52 +0000https://blogs.python-gsoc.org/en/ymartinezs-blog/post-6-final-blog-post/Weekly Check-In #6: Tenth Weekhttps://blogs.python-gsoc.org/en/ymartinezs-blog/weekly-check-in-6-tenth-week/<div class="crayons-article__body text-styles spec__body"> <p>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.</p> <p>The last week was the final of the coding phase, it was a great experience, I learned a lot.</p> <h2> <a href="#what-did-you-do-this-week"> </a> What did you do this week? </h2> <p>Being the last week, I only made reviews of the PR of my colleagues, and additionally, I was finishing the <strong>Model View Controler</strong> 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.</p> <h2> <a href="#what-is-coming-up-next"> </a> What is coming up next? </h2> <p>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.</p> <h2> <a href="#did-you-get-stuck-anywhere"> </a> Did you get stuck anywhere? </h2> <p>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.</p> </div>ybrahimmartinez09@gmail.com (ymartinez)Fri, 20 Aug 2021 21:30:47 +0000https://blogs.python-gsoc.org/en/ymartinezs-blog/weekly-check-in-6-tenth-week/Post #5: Everything almost donehttps://blogs.python-gsoc.org/en/ymartinezs-blog/post-5-everything-almost-done/<div class="crayons-article__body text-styles spec__body"> <p>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.</p> <p>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. </p> <p><strong>Code</strong><br> </p> <div class="highlight js-code-highlight"> <pre class="highlight python"><code> <span class="kn">from</span> <span class="nn">browser</span> <span class="kn">import</span> <span class="n">document</span><span class="p">,</span> <span class="n">html</span> <span class="kn">from</span> <span class="nn">browser.widgets.dialog</span> <span class="kn">import</span> <span class="n">Dialog</span> <span class="c1"># Creación de un dialogo con el título </span><span class="n">d</span> <span class="o">=</span> <span class="n">Dialog</span><span class="p">(</span><span class="s">"Show de preguntas Zombis"</span><span class="p">,</span> <span class="n">top</span><span class="o">=</span><span class="mi">20</span><span class="p">,</span> <span class="n">left</span><span class="o">=</span><span class="mi">20</span><span class="p">)</span> <span class="c1"># Agrega elementos como botones y títulos </span><span class="n">d</span><span class="p">.</span><span class="n">panel</span> <span class="o">&lt;=</span> <span class="n">html</span><span class="p">.</span><span class="n">H3</span><span class="p">(</span> <span class="s">"Aprieta los botones"</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="s">"titulo_ventana"</span><span class="p">,</span> <span class="n">style</span><span class="o">=</span><span class="nb">dict</span><span class="p">(</span><span class="n">textAlign</span><span class="o">=</span><span class="s">"center"</span><span class="p">)</span> <span class="p">)</span> <span class="n">d</span><span class="p">.</span><span class="n">panel</span> <span class="o">&lt;=</span> <span class="n">html</span><span class="p">.</span><span class="n">BUTTON</span><span class="p">(</span><span class="s">"Correcto"</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="s">"btn_correcto"</span><span class="p">)</span> <span class="n">d</span><span class="p">.</span><span class="n">panel</span> <span class="o">&lt;=</span> <span class="n">html</span><span class="p">.</span><span class="n">BUTTON</span><span class="p">(</span><span class="s">"Incorrecto"</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="s">"btn_incorrecto"</span><span class="p">,</span> <span class="n">style</span><span class="o">=</span><span class="nb">dict</span><span class="p">(</span><span class="n">marginLeft</span><span class="o">=</span><span class="s">"5em"</span><span class="p">)</span> <span class="p">)</span> </code></pre> <div class="highlight__panel js-actions-panel"> <div class="highlight__panel-action js-fullscreen-code-action"> &lt;svg width="20px" height="20px" viewBox="0 0 24 24" class="highlight-action crayons-icon highlight-action--fullscreen-on"&gt;&lt;title&gt;Enter fullscreen mode&lt;/title&gt; &lt;path d="M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z"&gt;&lt;/path&gt; &lt;/svg&gt; &lt;svg width="20px" height="20px" viewBox="0 0 24 24" class="highlight-action crayons-icon highlight-action--fullscreen-off"&gt;&lt;title&gt;Exit fullscreen mode&lt;/title&gt; &lt;path d="M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z"&gt;&lt;/path&gt; &lt;/svg&gt; </div> </div> </div> <p><strong>Result</strong><br> <a class="article-body-image-wrapper" href="https://res.cloudinary.com/practicaldev/image/fetch/s--2oT-1f6A--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jl7ahi75d1ufot0l6oog.png"><img alt="Result Dialog" src="https://res.cloudinary.com/practicaldev/image/fetch/s--2oT-1f6A--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jl7ahi75d1ufot0l6oog.png"></a></p> <p>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...</p> <p><a class="article-body-image-wrapper" href="https://res.cloudinary.com/practicaldev/image/fetch/s--4PY9D5eN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ad29zwld72di3xqlt872.jpg"><img alt="Better done than perfect" src="https://res.cloudinary.com/practicaldev/image/fetch/s--4PY9D5eN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ad29zwld72di3xqlt872.jpg"></a></p> </div>ybrahimmartinez09@gmail.com (ymartinez)Tue, 10 Aug 2021 23:47:48 +0000https://blogs.python-gsoc.org/en/ymartinezs-blog/post-5-everything-almost-done/Weekly Check-In #5: Eighth Weekhttps://blogs.python-gsoc.org/en/ymartinezs-blog/weekly-check-in-5-eighth-week/<div class="crayons-article__body text-styles spec__body"> <p>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.</p> <h2> <a href="#what-did-you-do-this-week"> </a> What did you do this week? </h2> <p>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.</p> <h2> <a href="#what-is-coming-up-next"> </a> What is coming up next? </h2> <p>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...</p> <p style="text-align: center;"><a class="article-body-image-wrapper" href="https://i.giphy.com/media/4Hx5nJBfi8FzFWxztb/giphy.gif"><img alt="Houston we have a problem meme" src="https://i.giphy.com/media/4Hx5nJBfi8FzFWxztb/giphy.gif"></a></p> <p>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.</p> <h2> <a href="#did-you-get-stuck-anywhere"> </a> Did you get stuck anywhere? </h2> <p>Yes indeed, I had issues when I was updating the files, and I could solve it, replacing all content in the <code>_template</code> folder of the Runestone project with the new ones. </p> <p>So, Houston we did it!</p> <p style="text-align: center;"><a class="article-body-image-wrapper" href="https://i.giphy.com/media/UoqaD6XktrRMdAn5p4/giphy.gif"><img src="https://i.giphy.com/media/UoqaD6XktrRMdAn5p4/giphy.gif"></a></p> </div>ybrahimmartinez09@gmail.com (ymartinez)Sun, 08 Aug 2021 18:30:01 +0000https://blogs.python-gsoc.org/en/ymartinezs-blog/weekly-check-in-5-eighth-week/Post #4: Graphical user Interfacehttps://blogs.python-gsoc.org/en/ymartinezs-blog/post-4-graphical-user-interface/<div class="crayons-article__body text-styles spec__body"> <p>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</p> <p>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 <a href="https://docs.python.org/3/library/tkinter.html">tkinter</a> but now I refactored using Brython. </p> <p>In order to make this change, I used Brython's widgets to create <a href="https://brython.info/static_doc/en/widgets-dialog.html">dialogs</a>. 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.</p> <p style="text-align: center;"><a class="article-body-image-wrapper" href="https://res.cloudinary.com/practicaldev/image/fetch/s--X7wJnz18--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rwer2mulrde2n5i2tj28.png"><img alt="example dialog" src="https://res.cloudinary.com/practicaldev/image/fetch/s--X7wJnz18--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rwer2mulrde2n5i2tj28.png"></a></p> <p>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. </p> <p>I have done a <a href="https://github.com/PyAr/PyZombis/pull/139">PR</a> 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.</p> <p style="text-align: center;"><a class="article-body-image-wrapper" href="https://i.giphy.com/media/LOQyoLIojnizS949is/giphy.gif"><img alt="keep going meme" src="https://i.giphy.com/media/LOQyoLIojnizS949is/giphy.gif"></a></p> </div>ybrahimmartinez09@gmail.com (ymartinez)Sun, 25 Jul 2021 23:33:29 +0000https://blogs.python-gsoc.org/en/ymartinezs-blog/post-4-graphical-user-interface/Weekly Check-In #4: Sixth Weekhttps://blogs.python-gsoc.org/en/ymartinezs-blog/weekly-check-in-4-sixth-week/<div class="crayons-article__body text-styles spec__body"> <p>Hi everyone! this weekly post could be quick because I didn't have much information to report, however, it is good to maintain the rhythm in blogging.</p> <p style="text-align: center;"><a class="article-body-image-wrapper" href="https://i.giphy.com/media/NXp9HM6YeuS0U/giphy.gif"><img alt="" src="https://i.giphy.com/media/NXp9HM6YeuS0U/giphy.gif"></a></p> <h2> <a href="#what-did-you-do-this-week"> </a> What did you do this week? </h2> <p>This week I didn't do PR's, my activities were focusing on refactoring the graphic interface lesson of the course, in the original course this lesson was implemented using the libraries <code>tkinter</code> and <code>pygame</code>, but these libraries don't work in <code>runestone</code> so I was searching the best way to implement using the new module of <code>brython</code></p> <h2> <a href="#what-is-coming-up-next"> </a> What is coming up next? </h2> <p>I will finish this lesson and after that, focusing on finishing the MVC lesson to finish before the next sprint. </p> <h2> <a href="#did-you-get-stuck-anywhere"> </a> Did you get stuck anywhere? </h2> <p>I didn't, but I needed to searched and understood the <code>brython</code> syntaxis before coding the new lesson structure.</p> </div>ybrahimmartinez09@gmail.com (ymartinez)Tue, 20 Jul 2021 03:53:05 +0000https://blogs.python-gsoc.org/en/ymartinezs-blog/weekly-check-in-4-sixth-week/Post #3 : Not all is codinghttps://blogs.python-gsoc.org/en/ymartinezs-blog/post-3-not-all-is-coding/<div class="crayons-article__body text-styles spec__body"> <p>Hi again! This is my third blog post check out the previos. Also, it is the beginning of the 5th week of the GSoC, that is, the midpoint of my internship, the time passed so fast and it has been a great experience.</p> <p>During the last week, I was mainly working on two things:</p> <h3> <a href="#reorganize-my-second-milestone"> </a> Reorganize my second milestone. </h3> <p>Since in my initial proposal, I established my second milestone using the component raw::HTML of Sphinx and I would create HTML forms to explain in the course PyZombis how MVC works, however, the Brython module was implemented by one of my teammates and now I can implement the lessons of MVC using it. With this module, we can implement and expand lessons and the whole course in general. You can check the new issues that were created here in my project on GitHub.</p> <h3> <a href="#code-review-of-teammates-prs"> </a> Code review of teammates' PR's </h3> <p>Not all is coding, in fact, I can sure that most of the time is the second thing that you do during a project, so in this sense make code reviews is a good practice since this maintains order at work, however, not only is code review valuable for this purpose, we use a git-flow from the beginning of the project and an important step is the process of code review each other.</p> <p>These were my main activities and luckily I didn't have any struggle, however, I had to read the syntaxis and documentation of Brython, because I had to do it if I wanted to update my milestone correctly. This week I am going to work on my first set of issues in order to achieve my goals before finishing the third sprint. In addition, I am going to make the first review of my mentors, the required requirement by the GSoC. With nothing more to report, as Truman said...</p> <p style="text-align: center;"><a class="article-body-image-wrapper" href="https://i.giphy.com/media/uOFCju3KRFxwxScVfm/giphy.gif"><img alt="See you Truma" src="https://i.giphy.com/media/uOFCju3KRFxwxScVfm/giphy.gif"></a></p> </div>ybrahimmartinez09@gmail.com (ymartinez)Tue, 13 Jul 2021 19:01:55 +0000https://blogs.python-gsoc.org/en/ymartinezs-blog/post-3-not-all-is-coding/Weekly Check-In #3: Fourth Weekhttps://blogs.python-gsoc.org/en/ymartinezs-blog/weekly-check-in-3-fourth-week/<div class="crayons-article__body text-styles spec__body"> <p>Hi again! This is my fourth weekly check-in of my GSoC ‘21 internship in the Python Software Foundation, a little bit late I know but it will be the last time. If it is the first time reading one of my posts about my internship, you could get more information by checking the previous posts of the series.</p> <p>The last week was finished the second sprint, in the meeting with all team discuss all achievements that we got and we planned how it will the next sprint, before the GSoC's first evaluation. The first evaluation is going to be next week, so this week is important to review all lessons and quizzes for any problems that may be found.</p> <h2> <a href="#what-did-you-do-this-week"> </a> What did you do this week? </h2> <p>As I said in my second blog post I was working on finishing the lessons, this time I only made <a href="https://github.com/PyAr/PyZombis/pulls?q=is%3Apr+author%3Ay-martinez+created%3A2021-06-28..2021-07-04+">2 PRs</a>, but keep in mind that quantity is not meaning quality, so is still valuable if you made 1, 2 or 100 PR's, all is contribution.</p> <h2> <a href="#what-is-coming-up-next"> </a> What is coming up next? </h2> <p>I was writing this post and I figured out that all the PR's were successfully merged, so with this I finished my <a href="https://github.com/y-martinez/PyZombis/milestone/2">first milestone</a> of the internship, so it is great.</p> <p style="text-align: center;"><a class="article-body-image-wrapper" href="https://i.giphy.com/media/KYElw07kzDspaBOwf9/giphy.gif"><img alt="Celebration michael scott" src="https://i.giphy.com/media/KYElw07kzDspaBOwf9/giphy.gif"></a></p> <p>Now that I finished it with a week grace, as I said above I am going to review all the lessons and quizzes if I will found a problem I will make a PR to solve it in the meantime also I am going to reformulate my second milestone and the issues taking account the new Brython module created.</p> <h2> <a href="#did-you-get-stuck-anywhere"> </a> Did you get stuck anywhere? </h2> <p>For luck I didn't, I hope to maintain a rhythm like this for the rest of my internship, so see you soon. </p> <p style="text-align: center;"><a class="article-body-image-wrapper" href="https://i.giphy.com/media/IwAZ6dvvvaTtdI8SD5/giphy.gif"><img src="https://i.giphy.com/media/IwAZ6dvvvaTtdI8SD5/giphy.gif"></a></p> </div>ybrahimmartinez09@gmail.com (ymartinez)Thu, 08 Jul 2021 02:11:51 +0000https://blogs.python-gsoc.org/en/ymartinezs-blog/weekly-check-in-3-fourth-week/Post #2: It's better late than neverhttps://blogs.python-gsoc.org/en/ymartinezs-blog/post-2-it-s-better-late-than-never/<div class="crayons-article__body text-styles spec__body"> <p>Hi again! It's been some days since my last post. This post must have been posted last week, shame on me.</p> <p style="text-align: center;"><a class="article-body-image-wrapper" href="https://i.giphy.com/media/LQv5qSTo8lXVvPammo/giphy.gif"><img alt="" src="https://i.giphy.com/media/LQv5qSTo8lXVvPammo/giphy.gif"></a></p> <p>Despite that, it's better late than never. This is the second post of the series posts to my GSoC internship for the Python Software Foundation PSF, if you want to see more about what I am doing this summer check out the previous posts, and I hope that you enjoy them.</p> <p>That week I was working on finishing the problems in the lessons as I said in the previous post. I didn't know the actual status of them, however, it turned out they didn't have so many problems, but with serious issues of indentation, and code styling. I had done <a href="https://github.com/PyAr/PyZombis/pulls?q=is%3Apr+author%3Ay-martinez+created%3A2021-06-21..2021-06-27+">7 PR's</a> and I want to announce that they have been successfully merged, but they were still waiting for the mentors' review last Monday, with those I just only needed to finish solving an issue to finish my first milestone of the summer before the first evaluation.</p> <p style="text-align: center;"><a class="article-body-image-wrapper" href="https://i.giphy.com/media/R2m2NzVxQ3pbG/giphy.gif"><img alt="Almost close" src="https://i.giphy.com/media/R2m2NzVxQ3pbG/giphy.gif"></a></p> <p>Besides that, I forgot in my previous post to tell you that I applied to get a <a href="https://developer.twitter.com/en">Twitter developer account</a> because for the second milestone maybe it will be great to introduce an exercise using that API. The process was a little tedious since I had to respond to several questions regarding how and why I was going to use the Twitter API, explaining the specific details as much as I could. To summarize, if you want to get one, keep in mind the following inquiries that will be made to you:</p> <ul> <li>The core use case, intent, or business purpose for your use of the Twitter APIs.</li> <li>If you intend to analyze Tweets, Twitter users, or their content, share details about the analyses you plan to conduct, and the methods or techniques. </li> <li>If your use involves Tweeting, Retweeting, or liking content, share how you’ll interact with Twitter accounts, or their content.</li> <li>If you’ll display Twitter content off of Twitter, explain how, and where, Tweets and Twitter content will be displayed with your product or service, including whether Tweets and Twitter content will be displayed at row level, or aggregated.</li> </ul> <p>After of responded to all these inquiries correctly, I received this email:</p> <p><a class="article-body-image-wrapper" href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZhaMh6G1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i4a91a5q8ccd27toh6yt.png"><img alt="Twitter Developer Account" src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZhaMh6G1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i4a91a5q8ccd27toh6yt.png"></a></p> <p>So I got my Twitter developer account successfully. I am using its API with a Postman collection. I struggled to get my access to the token, but I resolved with the <a href="https://developer.twitter.com/en/docs/twitter-api">docs page</a>. I could get some tweets from my Twitter account, it was great. This experiment gave me an idea for an exercise to implement in the next milestone. I need to investigate more but I keep an eye on it.</p> </div>ybrahimmartinez09@gmail.com (ymartinez)Tue, 06 Jul 2021 05:31:28 +0000https://blogs.python-gsoc.org/en/ymartinezs-blog/post-2-it-s-better-late-than-never/Weekly Check-In #2: Second Weekhttps://blogs.python-gsoc.org/en/ymartinezs-blog/weekly-check-in-2-second-week/<div class="crayons-article__body text-styles spec__body"> <p>Hi again! this is my second weekly check-in, you can check the previous one in the <a href="https://dev.to/ymartinez/series/13144">series</a>.</p> <p>The second week of my GSoC internship is finishing and the first sprint as well. In this weekly check-in, I've got the good announcement that my team and I have made great progress during our first sprint. However, there is still a lot of work to do, so let's keep going.</p> <p style="text-align: center;"><a class="article-body-image-wrapper" href="https://i.giphy.com/media/mGK1g88HZRa2FlKGbz/giphy.gif"><img alt="Good job meme" src="https://i.giphy.com/media/mGK1g88HZRa2FlKGbz/giphy.gif"></a></p> <h2> <a href="#what-did-you-do-this-week"> </a> What did you do this week? </h2> <p>I continued work on the quizzes and I made <a href="https://github.com/PyAr/PyZombis/pulls?q=is%3Apr+author%3Ay-martinez+created%3A2021-06-14..2021-06-20+">4 PRs</a>, they are just waiting for the review of my mentors. This is great progress because, with these and the others ones that my teammate did, we have almost finished fixing and refactoring all the quizzes in the <a href="https://github.com/PyAr/PyZombis">PyZombis</a> course.</p> <h2> <a href="#what-is-coming-up-next"> </a> What is coming up next? </h2> <p>The next week I am going to start with the lessons. As far as I know, there aren't a lot of problems to resolves, however, I need to check out much deeper. I plan to finish all the lessons were assigned to me for the next week so wish me luck.</p> <p style="text-align: center;"><a class="article-body-image-wrapper" href="https://i.giphy.com/media/kVaj8JXJcDsqs/giphy.gif"><img alt="Good luck meme" src="https://i.giphy.com/media/kVaj8JXJcDsqs/giphy.gif"></a></p> <h2> <a href="#did-you-get-stuck-anywhere"> </a> Did you get stuck anywhere? </h2> <p>Yes indeed, as I said in my first post, at the beginning (check it <a href="https://dev.to/ymartinez/post-1-everyone-can-be-struggling-with-it-345o">here</a>), I got stuck using the library <code>playwright</code>. Besides that, I had some conflict problems in a file, but I resolved it by doing rebase. It is very powerful and useful so keep it out there, like an ace up one's sleeve 🧏</p> </div>ybrahimmartinez09@gmail.com (ymartinez)Sat, 19 Jun 2021 02:00:25 +0000https://blogs.python-gsoc.org/en/ymartinezs-blog/weekly-check-in-2-second-week/Blog Post #1 : Everyone can be struggling with ithttps://blogs.python-gsoc.org/en/ymartinezs-blog/blog-post-1-everyone-can-be-struggling-with-it/<div class="crayons-article__body text-styles spec__body"> <p>Hi again! this is the first blog post that I am writing, the previous was a check-in post. In these posts, I will summarize all the tasks that I will be doing in the GSoC, but without a formal structure so, shall we begin.</p> <p>The first week was finished and in general, it was great! I had to work in fix some of the problems that the quizzes had with my other teammate, we split all the quizzes to work on the same number of quizzes. In each quiz, I had to fixing and refactoring the exercises following the guidelines of <code>Runestone</code>, <code>ReStructuredText</code>, and <code>PEP8</code> to <code>Python</code>. In addition, I built tests using the playwright tool, as I said in my previous post, it is a tool to create automatized end-to-end tests, below there is an example and his result.</p> <p><em>The code</em><br> </p> <div class="highlight js-code-highlight"> <pre class="highlight python"><code><span class="k">def</span> <span class="nf">test_quiz5_10</span><span class="p">(</span><span class="n">page</span><span class="p">):</span> <span class="c1"># Go to http://localhost:8000/quiz/Quiz5.html </span> <span class="n">page</span><span class="p">.</span><span class="n">goto</span><span class="p">(</span><span class="s">"quiz/Quiz5.html"</span><span class="p">)</span> <span class="n">page</span><span class="p">.</span><span class="n">wait_for_load_state</span><span class="p">()</span> <span class="n">page</span><span class="p">.</span><span class="n">click</span><span class="p">(</span><span class="s">"text=def es_numero_ponteironuloville(numero):"</span><span class="p">)</span> <span class="n">page</span><span class="p">.</span><span class="n">press</span><span class="p">(</span> <span class="s">"text=es_numero_ponteironuloville(numero):"</span><span class="p">,</span> <span class="s">"ArrowDown"</span> <span class="p">)</span> <span class="n">page</span><span class="p">.</span><span class="n">press</span><span class="p">(</span><span class="s">"text=es_numero_ponteironuloville(numero):"</span><span class="p">,</span> <span class="s">"Tab"</span><span class="p">)</span> <span class="n">page</span><span class="p">.</span><span class="nb">type</span><span class="p">(</span> <span class="s">"text=es_numero_ponteironuloville(numero):"</span><span class="p">,</span> <span class="s">"return True"</span> <span class="p">)</span> <span class="n">page</span><span class="p">.</span><span class="n">click</span><span class="p">(</span><span class="s">"#q5_10 &gt;&gt; *css=button &gt;&gt; text=Run"</span><span class="p">)</span> <span class="n">page</span><span class="p">.</span><span class="n">hover</span><span class="p">(</span><span class="s">"#q5_10 &gt;&gt; text=You passed:"</span><span class="p">)</span> <span class="k">assert</span> <span class="p">(</span> <span class="n">page</span><span class="p">.</span><span class="n">inner_text</span><span class="p">(</span><span class="s">"#q5_10 &gt;&gt; text=You passed:"</span><span class="p">)</span> <span class="o">==</span> <span class="s">"You passed: 50.0% of the tests"</span> <span class="p">)</span> </code></pre> <div class="highlight__panel js-actions-panel"> </div> <p><em>The result of test</em><br> <a class="article-body-image-wrapper" href="https://res.cloudinary.com/practicaldev/image/fetch/s--CsG4jKTn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mvszxjcj43gm3onlr141.gif"><img alt="Result of test created with playwright" src="https://res.cloudinary.com/practicaldev/image/fetch/s--CsG4jKTn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mvszxjcj43gm3onlr141.gif"></a></p> <p>I have to say that despite being the first time I use it, it was kind of simple, however, the tests that I built weren't very complicated, but I don't know if this can change in the future 😅 .</p> <p>At the end of this week, I've done <a href="https://github.com/PyAr/PyZombis/pulls?q=is%3Apr+author%3Ay-martinez+is%3Aclosed+created%3A2021-06-07..2021-06-13">6 PR's</a>, 5 of which have been merged into the principal branch, and 1 is awaiting review. With these, I've closed <a href="https://github.com/y-martinez/PyZombis/issues?q=is%3Aissue+is%3Aclosed++created%3A2021-06-07..2021-06-13+linked%3Apr">2 issues</a> that were been created previously to achieve my first milestone successfully, so I think that I am going at good steps.</p> <p>Not all was easy because to ensure the PEP8 guidelines in the Python codes, I had to use <code>black</code> and <code>flake8</code> but only in the python codes, so I had to extract these portions from the Rst files in another one and save it such as a Python file and after that paste to the Rst files again, it wasn't a hard task however it was very repetitive, but I know that sometimes programming can be like this, the important thing is to keep going.</p> <p>Another thing that I was struggling with, was a problem that I found and for luck, I resolved it with the command <code>git rebase</code>. I heard about it but I didn't have to use it before. I can assure you, it has too much power even to rewrite the history of git (I will explain later on), although remember as uncle Ben said.</p> <p style="text-align: center;"><a class="article-body-image-wrapper" href="https://i.giphy.com/media/MCZ39lz83o5lC/giphy.gif"><img alt="" src="https://i.giphy.com/media/MCZ39lz83o5lC/giphy.gif"></a></p> <p>so, we have to be careful to use it 👌</p> <p>In this case, I used it because in a PR that created I renamed a file, and I fixed the exercises in there, however, for git, what I did was delete that file and create another with the code, and according to one of my mentors, isn't a good coding practice because it is difficult of review it, since you lost all the previous code and the diff shows only new things, for that reason I had to made a new PR only to rename that file, and after this one has been merged, I was able to finish the other one.</p> <p>Once that was merged I had a huge conflict problem with that file in that PR, so it was time to use the rebase power wisely.</p> <p>First, I had <code>checkout</code> to the main branch on my local computer, <code>pull</code> all the changes of my remote repository, after that I <code>checkout</code> again to the branch of my changes, and finally rebase this branch with my main branch. This sounds easy, but it was kind of stressful because I had to review each change of all the commits behind <code>HEAD</code>, that is, all the changes that I previously made in that branch, and only after resolving all the conflicts the results were that my changes were successfully added in front of <code>HEAD</code>, as if the previous commits had not existed, so somehow I changed the history of the project in git 🤯.</p> <p style="text-align: center;"><a class="article-body-image-wrapper" href="https://i.giphy.com/media/VhWVAa7rUtT3xKX6Cd/giphy.gif"><img alt="Quality work" src="https://i.giphy.com/media/VhWVAa7rUtT3xKX6Cd/giphy.gif"></a></p> </div></div>ybrahimmartinez09@gmail.com (ymartinez)Wed, 16 Jun 2021 04:16:21 +0000https://blogs.python-gsoc.org/en/ymartinezs-blog/blog-post-1-everyone-can-be-struggling-with-it/Weekly Check-In #1 Onboarding Periodhttps://blogs.python-gsoc.org/en/ymartinezs-blog/weekly-check-in-1-onboarding-period/<p>The last three weeks were an onboarding time for all interns in the GSoC, and today 7th June is starting the coding phase. Although I don't have experience in writing blogs, sometimes all that we need is to take a leap of faith 😊 so, I will be recording my experience and status on a series of blog posts. Follow me on this journey and I hope that you enjoy it.</p> <h2><a href="#what-did-you-do-these-weeks"></a> What did you do these weeks?</h2> <p>During these weeks I was working on getting familiarized with the <a href="https://runestoneinteractive.org/">Runestone</a> library, and the <a href="https://playwright.dev/python/docs/intro/">Playwright</a> library. The first one is a tool to create interactive books in different languages, Python in this case 👍, and the last one is a tool to create automated end-to-end tests on web apps.</p> <p>In addition, during the onboarding period I had two meetings with the mentors and the entire team, in the first one we met each other and talked about the status of the project, and the mentor merged all <a href="https://github.com/PyAr/PyZombis/pulls?q=is%3Apr+is%3Amerged++author%3Ay-martinez">PR's</a> that we had created during the application period.</p> <p>The second meeting with the mentors was more technical and it helped to coordinate how we are going to work on our tasks and schedule bi-weekly meetings following the Scrum methodology. For this, I split my initial proposal into <a href="https://github.com/y-martinez/PyZombis/issues">issues</a> and <a href="https://github.com/y-martinez/PyZombis/milestones">milestones</a> using Github, and for making all organized I put them in a <a href="https://docs.github.com/en/issues/organizing-your-work-with-project-boards">Github project board</a> as well.</p> <h2><a href="#what-is-coming-up-next"></a>What is coming up next?</h2> <p>In the first month of the coding period, I am going to work on my first milestone. More specifically in the next week, I am going to work to fix the current bugs on quizzes, adding an end-to-end test to ensure that everything is ok.</p> <p style="text-align: center;"><a class="article-body-image-wrapper" href="https://res.cloudinary.com/practicaldev/image/fetch/s--W2FeETXD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gnchm8d35rl38kniov3z.jpg"><img alt="Testing Code meme" src="https://res.cloudinary.com/practicaldev/image/fetch/s--W2FeETXD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gnchm8d35rl38kniov3z.jpg"></a></p> <h2><a href="#did-you-get-stuck-anywhere"></a>Did you get stuck anywhere?</h2> <p>Not yet, but if this happens I am going to find on the internet solutions and talk with my mentors 😅 and find solutions on the Internet.</p>ybrahimmartinez09@gmail.com (ymartinez)Mon, 07 Jun 2021 23:59:35 +0000https://blogs.python-gsoc.org/en/ymartinezs-blog/weekly-check-in-1-onboarding-period/