Welcome back to another progress update on my GSoC'2023 journey.
Work Done (26th July - 10th August):
Let's begin with a dive into the work that's been accomplished. As I mentioned in my previous blog post, my primary focus this week was to complete a significant task: PR. This pull request involved designing and implementing a modal for an enhanced simulation area, where users could edit erroneous circuits. Over the course of 4-5 days, I brainstormed different approaches and attempted their implementation.
My goal was to create a modal that allowed users to edit erroneous circuits directly in the simulation area. This required careful thought and effort, and I explored various techniques to achieve this. However, I encountered challenges in finding an effective solution. Seeking guidance, I had a discussion with my mentors, where I shared my ideas and concerns. They advised me that implementing a simulation area with error editing functionality could be quite complex, and suggested prioritizing the core functionality and addressing UI concerns later.
Taking their advice, I focused on ensuring the proper working of the state machine and retaining the initially planned UI design. Essentially, whenever an error exists within the circuit, all tabs will remain hidden. Once the erroneous component is removed, all tabs become visible. This ensures a seamless user experience during circuit editing.
Moving forward, I tackled two key tasks related to data integrity:
- Delay 0 on Non-Input/Output Components:
The challenge here was that components could be set with a delay of 0, but this setting couldn't be saved. To address this, I implemented a solution by introducing a condition that allows components with a propagation delay of zero to be saved with the appropriate value. This ensures that components behave as expected, even with a delay of zero.
- Maintaining Wire Connections While Moving Components
In this challenge, I encountered issues with connected wires becoming disarrayed when moving a component. The existing system only checked if a component's nodes had moved to different y or x-coordinates. To prevent overlapping or collisions, I'm in the process of developing a more robust collision detection system. While this task is still a work in progress, I'm dedicated to finding a comprehensive solution.
What's Next?
As the end of the Google Summer of Code (GSoC) program draws near, I have a clear roadmap for the remaining tasks. With only a few days left, I have one task left to tackle:
- Identifying areas where defensive coding practices are needed instead of assuming data will always be in the proper format.
This task will be my focus in the upcoming weeks. Additionally, I'll be working on completing the pending work in PR.
Stay tuned for more updates and progress in the coming weeks!
Top comments (0)