My Journey with Sugar Labs: An Overview of My Work During GSOC Period
Editor’s note: This article is the first in a series of reports by this year’s Google Summer of Code contributors. The author of this report, Mohit Gupta, will be working with us on Music Blocks v3 throughout the summer. More articles by other contributors to follow and will be given the GSoC tag. Enjoy!
Greetings, MusicBlocks enthusiasts! So much has happened since my days as a newbie in the Google Summer of Code program (GSOC) – and I couldn’t be more excited to share it all with you today! Whether you’re a long-time follower or new to the world of SugarLabs, get ready for an update that will leave you inspired and informed. Let’s dive in!
Here are some of the specific things I worked on during GSoC Contribution phase:
- Made the “Take a Tour” section of the website mobile responsive.
- Fixed some broken images on the website.
- Proposed and implemented a screen recording feature.
- Worked on the full-screen feature for the website.
I am grateful for the opportunity to have participated in GSoC with Sugar Labs. I learned a lot and I am proud of the work I was able to contribute.
The next section of the blog will explore my journey during the early days of the coding period!
During the Coding Period:
Week 0
“I was eager to get started on my GSoC project, so I decided to start working on it one week early. I knew that my university exams would be coming up soon, so I wanted to make the most of my time. With the guidance of my mentors, I was able to make some significant progress this week.
I started by making the recording button more practical. Previously, the button could be clicked multiple times even if a recording was already in progress. This caused some confusion, so I made the button unclickable when a recording is already in process. So I made a commit that also changed the styling of the button and added a blinking effect to make it more noticeable when it’s in use.
I was also assigned my first task, which was to change the references for Lilypond in the code. I was able to successfully complete this task, and I am happy with the progress I have made so far. I know that these changes will be very helpful to users, and I am excited to continue working on the project.
Week 1
In the first week of my GSoC project, I was assigned a Z-index problem in which the Pie menu was hidden behind the Phrase Maker. I updated the z-index in the code, but this introduced another bug in which the Pie menu became glitchy. Additionally, when the widget was in full-screen mode, users were unable to exit out of the widget window.
I was able to solve this problem by updating the _docMouseDownHandler()
function in the js/widgets/widgetWindows.js
file. This function is called when the user clicks on the document, and it was previously preventing the user from clicking on the close button of the widget window when it was in full-screen mode.
I was relieved to have finally fixed the bugs, but I was also a little bit amused by the whole experience. I was starting to feel like a bug magnet but in the end, I was able to solve the problems and make the project better.
Week 2
In the second week , I was assigned a task to make the Play button disable when the music is already playing. This was to avoid multiple clicks of the Play button, which could cause performance issues on slow machines.
I solved this issue by using a different approach. Instead of disabling the Play button, I made it so that the user has to wait for a few seconds before they can click it again. This prevents multiple clicks from happening at the same time, and it also helps to improve performance on slow machines.
I was pretty proud of myself for coming up with this solution. It feels practical. They could still pause and resume the music, but they wouldn’t accidentally start the music twice.
Week 3
My university exams were in this week, so I was unable to contribute much to the project.. However, I did manage to work on a small issue regarding the pitch preview. The pitch preview button was not working, and there was no sound coming after pressing the button.
I was able to solve this issue by updating the code. I made sure that the pitch preview button was properly hooked up with the proper functions in the js/piemenus.js
file.
I was relieved to be able to fix the issue, even though I was limited by my exam schedule. I’m glad that I was able to contribute something to the project, and I’m looking forward to working on it more in the future.
Week 4
In this week, I made some updates to the recording button. I replaced the Google icon with an SVG icon, and I made some commits in which i exported the code from index.html
to JavaScript files.
After exporting the code, I discovered some bugs. For example, the recording button was not starting with a single click for the first time, and it was also possible to click the button multiple times when one recording was already in progress.
I was able to solve these bugs by updating the code. I made sure that the recording button was properly hooked up to the event listener, and I also made sure that the event listener was only triggered once per click.
I am excited to continue working on the Sugar Labs project and to make more progress in the coming weeks. I will be writing more blogs frequently to share my GSoC journey with the Sugar community.
I hope that you have enjoyed reading about my progress so far. I will be back soon with more updates..
Thank you for reading!