This Research and Reflection Journal will contain all required and recommended activities in DGL 104 from week 8 through to the end of the semester.
# Week 8
##The Power of Processing: A Visual Arts Coding Language Introduction to Processing
Processing is a flexible software sketchbook and a language for learning how to code within the context of the visual arts. It's an open-source graphical library and integrated development environment (IDE) built for the electronic arts, new media art, and visual design communities with the purpose of teaching the fundamentals of computer programming in a visual context, and to serve as the foundation for electronic art projects. Processing is a powerful tool for creating visual art and animations. For example, the artist Marius Watz uses Processing to create intricate generative art pieces that explore the intersection of code and visual design. Additionally, Processing is widely used in educational settings to introduce students to coding concepts through visual art. The simplicity and visual feedback loop of Processing make it an excellent tool for teaching computational thinking. Prototyping is another key use of Processing, with designers and artists using it to develop visual designs and interactive installations. For instance, the interactive art installation 'The Pool' by Jen Lewin Studio was prototyped using Processing before being realized in a physical space.
Users of Processing
Processing is utilized by a diverse range of individuals and communities. Artists and designers are among the primary users of Processing, leveraging its capabilities to create interactive art installations, digital illustrations, and animations. For example, the artist and designer Joshua Davis has extensively used Processing to create dynamic digital illustrations that blend art and technology. Educators also play a crucial role in the Processing community, with teachers and professors using the language as a teaching tool to introduce students to programming concepts. Students across various educational levels, from high school to university, engage with Processing as an entry point into programming, digital art, and data visualization. Furthermore, researchers working in fields such as data visualization, human-computer interaction, and computational art rely on Processing for prototyping and exploring new concepts. For instance, the research project 'Seeing Data' by Stefanie Posavec and Giorgia Lupi utilized Processing to visualize complex data sets in an artistic and engaging manner.
Useful Resources for Processing
Several valuable resources exist for individuals interested in learning and utilizing Processing. The official Processing website, processing.org, is the primary source for downloading the Processing IDE, accessing reference materials, tutorials, and examples. 'Getting Started with Processing' by Casey Reas and Ben Fry is an essential book for beginners, providing a comprehensive introduction to the language and its capabilities. OpenProcessing, a community-driven platform, serves as a hub for sharing Processing sketches, exploring works by others, and learning through examples. The Coding Train on YouTube, managed by Daniel Shiffman, offers a wealth of video tutorials on Processing, covering basic to advanced topics in an engaging manner.
Why are these specific resources useful?
- The Processing website is the most authoritative source of information about Processing, providing everything from basic setup to advanced functionalities.
- "Getting Started with Processing" breaks down the basics in a very reader-friendly manner, making it ideal for beginners.
- OpenProcessing serves as both inspiration and education, showcasing the possibilities with Processing and allowing users to learn from real projects.
- The Coding Train makes learning to code in Processing (and other languages) fun and accessible, with Daniel Shiffman's enthusiasm and clear explanations making complex concepts understandable.
- Processing Foundation Forums offer a supportive community for problem-solving, advice, and showcasing projects, which is invaluable for learners at all levels.
For Community code project I choose Javascript because I don't have any experience in this language but as a part of our DGL course, i'm learning this and also getting interest more in front end development rather thsn the back end developer. Through this i might get to know more about the more libraries of Javascripts like NodeJS, ReactJs etc. I hope by learning this I will improve my skills and gain more experience and i believe that this would be a good practice.
WhatsApp is a messaging app offering end-to-end encrypted chat, voice, and video calls, along with group chat capabilities, document sharing, and multimedia messaging for global users.
"As a user, I want to manage a group chat efficiently, so that I can communicate and share information with multiple people simultaneously."
"As a user, I want to create a new group chat, so I can start a conversation with multiple contacts about a specific topic or event."
"As a user, I want to add new participants to an existing group chat, so that I can include all relevant people in the conversation."
"As a user involved in multiple group chats, I want to set custom notifications for specific groups, so I can easily distinguish important messages from casual conversations."
"As a user, I want to mute notifications for a busy group chat, so that I'm not constantly interrupted by non-urgent messages."
"As a user, I want to leave a group chat that is no longer relevant to me, so that I can keep my chat list organized and focused on active conversations."
- The app provides a clear option to create a new group from the main chat screen.
- Users can select multiple contacts from their contact list during the creation process.
- The user can set a group name and optionally add a group image.
- Group admins can add new participants through the group info screen.
- A search function is available to quickly find and add contacts.
- The app notifies all group members when a new participant is added.
- Users can access notification settings directly from the group info screen.
- Customization options include notification tone, vibration pattern, and popup notifications.
- Users can apply different settings to different groups.
- The mute option is easily accessible from both the main chat screen and within the group chat settings.
- Users can choose the duration of the mute (e.g., 8 hours, 1 week, 1 year).
- The app clearly indicates muted chats and allows users to unmute at any time.
- A "Leave Group" option is available within the group info settings.
- Upon selecting to leave, the app asks for confirmation to prevent accidental exits.
- The app notifies remaining group members that a user has left the group.
Through engaging discussions and shared experiences in DGL 104, I've been fascinated to learn how programming languages like Processing open creative avenues for artists and educators, blending code with visual arts. This interdisciplinary approach has broadened my perspective, showing me how code can transcend traditional boundaries.
For example, the work of artist and programmer Zach Lieberman showcases the innovative use of Processing to create interactive installations and digital art. His projects often involve the use of motion tracking and computer vision, demonstrating the potential of programming languages to bring art to life in dynamic and engaging ways. This fusion of technology and art has led to the development of new media art, where artists use code as a medium for creative expression.
Processing, with its focus on visual arts and interactive design, has provided a gateway for artists to explore the world of programming. Its simplicity and immediate visual feedback make it an ideal platform for beginners to experiment with code and create visually compelling projects. This aligns with the theory of constructionism, which emphasizes learning through making and creating artifacts. By engaging with Processing, artists and educators can embody this theory, fostering a deeper understanding of programming principles through hands-on experiences.
Python, as my next exploration, offers a versatile and accessible platform for beginners, making it an ideal choice for those looking to expand their programming skills. The language's readability and extensive libraries, such as NumPy and Pandas, have made it a popular choice for data science and machine learning applications. An example of Python's impact can be seen in the field of scientific research, where it has become a staple tool for data analysis and visualization.
# Week 9
We work in an open source community, where everyone from beginners to experts share challenges, share ideas, ask questions, and suggest improvements. Through this project, I am experiencing the practical application of coding. We started looking at open issues (or opportunities to participate) in selected open source projects on GitHub to see how we could most effectively contribute.
After reading the Community Code assignment and research and reflection journal instructions, it clearly showed me how to easily complete the project step-by-step.
To begin, it's beneficial to review the open source project's documentation, particularly the README files. These files offer insights into the project's objectives, functionality, and structure, along with guidelines, coding standards, and best practices for contributing. Reviewing the documentation also helps identify which tasks or issues have been addressed and which ones still need attention, providing opportunities for meaningful contributions.
Next, we will explore the CONTRIBUTING.md document.
This document provides detailed guidelines for contributing to the project, including the code of conduct, steps to set up a local development environment, requirements for submitting a pull request (PR), and instructions for running tests locally before pushing changes to GitHub. By reviewing this document, you can gain a clear understanding of the contribution process.
Task 1: The task involves visiting resources such as Good First Issue, Up for Grabs, and CodeTriage to discover potential projects that are aligned with the chosen language for community code, which in my case focuses on JavaScript.
Task 2: Reviewing the checklist helps in assessing whether any of the projects meet the criteria. This process helps narrow down the options to three projects that are relevant to the requirements.
Here are my three options:
- Thinkswell I found my first contribution from Good first issue. Thhinkwell is an open repo, there are many small JS projects, issue to work on. So I choose the issue/Project to Create a simple bulb on-off button in JS. It has 100 Contributers and till date it has 69 active issues.
- Openseadragon This Repo is an open-source, web-based viewer for zoomable images, implemented in pure JavaScript. It has 169 contributers with 442 active issues.
- Time-to-leave This repo provides Log work hours and get notified when it's time to leave the office and start to live. It has 151 contributers with 33 active issues.
-
Issue 1 Project : Bulb 0n/off switch Issue : Create a simple bulb on-off button in JS #969 This issue is create a switch where Bulb should light up on toggle on and dark on toggle off. As a beginner, i was looking for a project that i can work on easily and I found this to learn and practice my Javascript skills.
# Week 10
The Thinkswell community is very supportive. From their contribution guidelines, I understand that they take all the possible measures to make it a positive and harassment-free community. I went through the available docs and have recorded the learning in the CONTRIBUTING.md file.
I forked and cloned the project. In the issue, steps to recreate the issue were mentioned. I am working on that part.
From the pattern library issues, I selected Final README.md editing pass for formatting consistency #21 issue and I got assigned to the issue with one more student. Documentation is also a important part of git projects. That's why I choose this.
What is the hardest/most challenging thing you had to do this week for DGL 104? How did you overcome this challenge? I found most challenging part is to find the right pattern library. So i discussed with other students and I found one repo where I can help the other student to complete the issues.
# Week 11
I browsed through the issues and PRs of the pattern library. I spent some time browsing similar pattern library repos to identify things that can be added. I assign to review README.md files.
For the pattern library, I assigned by another student to work on README.md file. I have to review the following files
-
Creational/Dart/README
-
Creational/Javascript/README
-
Creational/ReactNative/README
-
MVC/README
-
observers/README So I go throughly and update the files with making changes in it.
# Week 12
As I was assigned to work along other student on Final README.md editing pass for formatting consistency #21 issue. I have to go through the check liat and have to make changes in the README.md files in the filies mentioned below:
- Creational/Dart/README
- Creational/Javascript/README
- Creational/ReactNative/README
- MVC/README
- observers/README During fixing the issues I found that few README.md files were empty. So rest of the files I updated with the corrections.
- Create a simple bulb on-off button in JS #969 thinkswell/javascript-mini-projects/issues/969
- time-to-leave thamara/time-to-leave/
- openseadragon openseadragon/openseadragon
Embarking on the DGL 104 Community Code project has been a transformative experience, offering a unique window into the collaborative world of open-source development. This journey was not just about writing code; it was about being part of a vibrant community, learning, growing, and contributing to something that extends far beyond individual efforts.
Contributing to open-source projects like Thinkswell and the Pattern Library was an enlightening venture. It underscored the significance of community-driven development in shaping the software landscape. Open source is the cornerstone of innovation in the tech world, and being able to contribute to it was both a privilege and a learning opportunity. It was about adding value to tools and frameworks that countless developers across the globe rely on.
For someone like me, who was exploring JavaScript in greater depth, this project was the perfect practical classroom. Tackling issues such as creating a simple bulb on/off switch in JavaScript was not just about applying what I had learned; it was about diving deeper, understanding the nuances, and enhancing my skills. It was a hands-on experience that broadened my understanding of programming concepts and best practices.
What truly stood out in this project was the sense of community. Engaging with other contributors, reviewing code, and discussing issues made me feel part of something bigger—a collective endeavor where everyone is working towards a common goal. This collaborative spirit is the lifeblood of open-source projects, and being immersed in it was both inspiring and humbling.
The path was not always smooth. Navigating through complex codebases, grasping the intricacies of different projects, and ensuring that my contributions were up to the mark were challenges that tested my resolve. However, these hurdles were stepping stones to growth. They taught me the value of persistence, the importance of reaching out for help, and the satisfaction that comes from overcoming obstacles.
Reflecting on my experience in DGL 104, I am filled with gratitude for the opportunity to contribute to the open-source ecosystem. It was a journey that went beyond coding—it was about learning, sharing, and being part of something greater. As I look ahead, I am excited to take the lessons learned from this project and apply them to future endeavors, continuing to grow as a developer and a collaborator in the ever-evolving world of technology.