Week 15 Last Blog Post & Presentation Reflections

  • The presentations so far have been great. It was wonderful to hear what other groups are up to relative to my group. It was really interesting to see that different FOSS projects really have different ways of communications, contributing, etc.. I was able to present with my group on p5.js on Wednesday this week and it was really fun to compile together this semester’s memories basically. From our failed attempts to our success, we were all able to formulate our lessons learned and reflect upon those challenges. On Monday, I thought Godot was really interesting as that was a project I thought was too complicated to contribute too. I was really glad to hear that a group in our class was able to successfully contribute to it. Even they mentioned the complexity of game engines and it was really cool to see people so passionate about a project. Spicetify was also really interesting as they had a really visual project via extending a theme for spoity which is what Spicetify is built for. Open Food Facts was really cool too as they were able to
Read More

Week 14 Group Project & Class Discussion

  • I think last week’s assignment/exercise and class discussion regarding open source projects that are not software/coding related was pretty cool. I chose Precious Plastic which is a open plastic recycling group that provides people with ways to recycle plastic on their own. They like to say that everyone should have a “mini recycling plant” at home for unused plastic. I thought it was super cool because it fosters a community and helps people at almost no cost to have blueprints and make these things. Recycled plastic can then be made into furniture and sold on their marketplace which is super cool and eco-friendly. Speaking of making things, I also saw someone else choose a open 3d printer project that allows someone to 3d print a 3d printer which is kind of funny. A 3d printer being able to 3d print another 3d printer is just insane to me and it is so cool that the files to do this is openly available. Thingiverse, is another cool one where people can
Read More

Week 13 The Cathedral and the Bazaar Lessons and Group Progress

  • During the discussion and hearing other students thoughts on some of the lessons definitely did change my views on some of the lessons and also my favorite lesson. My favorite lesson (also the most voted for one) was “Good programmers know what to write. Great ones know what to rewrite (and reuse).” and I think it really interesting in class that someone mentioned how Open Source applies to this. Originally, I was just thinking about functional or even object oriented programming, where you do not want to create too much repetition through abstraction, inheritance etc.. But come to think about it as a programmer you almost always rely on someone else’s (open source) code too as they probably did it better than you. In a sense, high level languages built upon lower level languages are also using this principle when you use a high level language like python. Why rewrite say a framework like React.js when you can just use React which is
Read More

Week 12 - Tidepool and Group Work

  • Christopher Snider’s presentation was great and I was really glad that he was able to answer my question “Do you think Tidepool, as an open-source project in the healthcare space specifically diabetes space, being cleared by the FDA will lead to more potential healthcare related projects become open sourced?” as I was curious about the space and the role of open source in that space. I was really glad that he kept on repeating that the FDA was not the enemy and open-source software was not a problem for the FDA. Snider said that in fact they just had to be prepared for everything for the FDA and they are more than willing to help. The problem does not really lie with open-source which was my initial assumption. I think is this great to hear and if this knowledge is out maybe it can encourage more to build software services like Tidepool to truly serve certain communities in an open/cost-effective manner like Tidepool does for people suffering with diabetes. Tidepool’s whole purpose as open source is to provide transparency and with health-collecting organization that is always a risk that you are not in control of your data. I think Tidepool’s use of open source then is really different as it uses open source to empower the end-user, the consumer. Enterprise use of open source on the other hand is more like Yehuda’s
Read More

Week 11 - Open Source in the Industry

  • The “How InnerSource can accelerate culture change” is really interesting as it highlights the elements of open-sourcing that is fundementally good for all software development. Innersourcing which was highlighted in the video is essentially applying open sourcing methods to properietary software in organizations. Innersourcing using open source methods helps communication and builds community that may allow them to edge out the competition. This is really interesting as it essentially prepares companies to invest in OSPOs as these people who do innersourcing will also know the methods/ways of opensourcing which the video talks about. This serves as a
Read More

Week 10 - We're doing it(?) !!!

  • So my group (working on p5.js) had several meetings by now and I am glad to report that we are making trenmendous progress in multiple aspects of the project we are contributing to. We finally caught everyone up to speed and I figured out a good environment setup for everyone to run, test, and build the code all within the source files without much editing. We started the week off right after break with attempts to fix smaller bugs so that we can better understand the codebase individually. We initally all individually worked on separate bugs creating different branches on one fork and then claiming issues so that we can submit PRs.

  • I personally claimed and am done with an issue regarding image loading on attached graphic. This is my very first PR attempt so I am quite excited to get it code reviewed perhaps and seeing if it is a viable solution. This did really help me understand p5’s codebase and syntax/style throughout their source code.

Read More

Week 8 - Finalizing Project and Working As A Team

  • After much deliberation and our initial review of scikit-learn, we found that scikit-learn was too daunting and too out of our domain so we switched and decided that we will pick p5.js as our main project to contribute to. We chose p5.js as most of us (except one) are sufficient in javascript and p5.js is mainly a JS project. Furthermore, it seems that p5.js’s contributors are pretty active and code is reviewed decently in time for us to make PRs. The community seems nice too as their mission to make coding accessible and inclusive which is quite a commendable mission.
Read More

Week 7 FOSS People & Choosing Project

  • I think the fact that free/open source came from frustration from closed-source software is kind of funny, for example, Richard Stallman’s story regarding the closed-source Xerox printer at his university lab. I think the existence of open source and its history proves that it is a sustainable economic model and was a necessary model to counteract closed-source software. During the exercise, I looked at a couple of FOSS people. Linus Torvalds was quite interesting as I did not know before that he created Linux as a hobby project to be an alternative to another popular OS at the time called MINIX. It seems like a lot of these open-source projects sometimes start out small and
Read More

Week 6 Project Evaluations

  • The different projects that I have looked at so far have been all within my domain of interest. A lot of people did the groundwork for other project evaluations so I did not have to look and do too much work. MaterialUI and shadcn are some of my favorite open source projects as I am really into UX/UI based projects since they do a lot of the more menial work for the frontend. They also solve a lot of the issue with having to deal with complicated front-end frameworks. Pandas, scikit-learn and matplotlibs are also projects that have piqued my interest since they are all things I have used prior, I am glad to see that they are quite easy installs since they are in python and not much else
Read More

Week 5 Social Good and Ongoing Contributions

  • So I watched the videos on OpenStax and democratizing access to education. From, what I’ve learned I gathered that Open source educational software like OpenStax can be a great way to make education acessible throughout the world. It also adds a layer of customization that is not possible with premium licensed software that is close-gated and cannot cater to specific needs of specific students. With open source, these software can be modified for their specific usage. I found OpenStax to be quite amazing in that the creators say they implement machine learning and editable textbooks to make the experience more customized for the student and tailor the textbook experience to the students need. I think OpenStax also helps in that
Read More

Week 4 Browser Extension and Learning

My thoughts on working in a team setting

  • So I ended up finishing my extension “Seshy” with my group and it was a really fun and interesting experience trying to juggle providing good work/code and not ending up all doing the same thing among my groupmates. I would say the system we devised where we would communicate and assign tasks was pretty good. I was the one to look at all the merges and assign tasks and we split the tasks pretty evenly plus created extra branches so our work wouldn’t be conflicted. Learned some code conflict resolution tricks on my IDE this week and found an extension on VScode that simplifies a bit of the process of comparing code. Traditional conflict compare puts the original or changed code in a block while this extension has it on the side to compare which was nice for my visual understanding. For this project, I did a lot of the styling code and the setting the main functions while my group members figured out the browser permissions and played around with the skeleton I built for them. I thought this was really interactive as I’ve never coded in this setting with more than 2 people. Everyone in my group was super responsive and I like communication in a team especially in a clear manner. We used discord as our main form of communcation and realized that github issues is also a great way to keep track of tasks/bugs in our extension. I also learned that I am a good project leader and delegating things is definitely my strong suit. I really enjoyed it and hopefully this will remain the same in the future when we start working in groups on the open source projects.

  • This week in terms of personal contributions I worked on a lot of openstreet map edits especially around the areas that I frequent a lot of updates roads, aligned features, shops, fixed closed down shops, and certain street elements. It’s been fun since I start noticing a lot of these things down and started jotting them down on my notepad app on my phone. It’s nice to see the map edited in some areas like east side of FiDi near seaport that many people do not update as often. Even on the NYU campus too with all of these hip new restuarants opening I’ve been taking note and adding them. I was surprised to see how unmaintained Astor Place was with that being a pretty popular area. Shops from years ago were still there but surprisingly the new Wegmans was added onto the map. Overall, been really enjoying these edits.

  • In terms of the presentations this week my favorite tool was definitely “StudyTool” which plays and adds a side for satisfying videos on youtube. I thought the concept was really neat and can genuinely be a good study tool beyond being kind of funny by adding a subway surfer video to your browser page. Beyond that, the ticktok extesion is also really practical if someone plans on doing the pomodoro studying method/style.

Read More

Week 3 Git Activity and Extension

My thoughts on Git and working with Git

  • The git activity that we completed in class this week was very helpful and a good refresher for me personally I haven’t been forking other people’s repositories so learning what upstream is was really helpful for me to learn how to connect/link repositories together to keep files update to date. I also didn’t know that git is widely used in some circles now even non-CS people use git for collaboration which I didn’t know until this week. I think git is a powerful tool that I probably need to get more used to beyond the basic commands that I use for my own repositories as I don’t make merge/pull requests and instead just commit straight to my repos. I think it was great that Professor Klukowska setup this activity for the non-git users too. The newly introduced git config thing for merge/rebase was really interesting too as all of us students got to solve and fix the problem in class.

  • So I’ve started working on my extension named “Seshy” with my groupmates and git has been tremendous in version controlling and preventing version conflicts. My groupmates and I create separate branches and before merging I will check for any conflicts or issues and it’s been nice keeping things separated before merging together. I think the key was communication which we did through discord and we scheduled a time to meet to do some work for the extension. Our extension essentially tracks the user data in a browser session like clicks, session time, scrolling length etc. This was a great opportunity for me to learn how to collaborate with other people on an open source project that we all created. We added every file necessary to make it open source that we know of. I believe that we had some trouble splitting up work as we can’t necessarily work on the file sometimes if one person does a lot and forgets to push it to the main repository and keeps it on their local but it all comes to texting each other and communicating a bunch to make sure that we are all on the same page. In the end, we did split up the tasks quite evenly and it worked out on different branches then merging it all back together on the main. My biggest contributions so far have been making the skeleton for the extension and writing the readme. Writing the readme was interesting as I looked at other readmes and used them as templates for what I should write and do. It seems like a number of readmes also included installion instructions and contributing which I made sure to be separate (well at least some parts of the installation). Overall, I’ve been also learning a lot about how extensions work on FireFox from googling and researching how to implement my idea for our extension, Seshy. Been a lot of fun!

Read More

Week 2 Code Of Conduct

My Thoughts About CoC

  • Code of conduct is really important to a projects it helps contributors regarding possible issues like conflict resolution, who and where to contact the main contributors of the project, and finally set up the general rules. Furthermore, code of conduct is a good way to learn the essential values of project.I feel like a lot of people view code of conducts as a way of restricting potential contributors when it is meant to foster a better environment for developers. I think having a code of conduct definitely adds legitimacy to an open source project. Personally I would not contribute to a project without a code of conduct as a code of conduct sort of sets up the working environment of a project. Without having one, I wouldn’t know if the project has some sort of toxic setting that would be suitable for most people. Unless, the project is super interesting I would consider but it is practically the norm now to have a code of conduct on an open source project. Not saying that everyone will follow the code of conduct but it is still very good to have. Enforcing something like a CoC is just impossible online since CoC isn’t law but it can help deter people from potentially doing harm. I guess moderators can help like contributors who look at pull/issue/merge requests and see if anything harmful is happening that violates their code of conduct.

  • During the CoC activity I picked the blender coc to look at and it seems very simple which compared to the Go CoC that we all looked it which is also simple but much more detailed with specific issues like conflict resolutions. Like the Code Covenant’s CoC which is very basic, I think every project can adopt something similar and perhaps through that we can all foster better development environments for all developers alike!

Read More

Week 1 Learning About Open Source Development

My Thoughts About Open Source

  • I guess when I hear open source, I immediately think about the codebase being available to all. Available to all as in being accessible on demand without restrictions. Based off of the readings, I guess I was somewhat right about what it meant. However, I did note the distinction being free sofware versus open source. I personally think open source is great and a number of technologies that everyone uses daily would not be possible without some initial base project being open sourced like linux to android. Compared to closed source, open source offers people an incentive to contribute to build a community-based project that is to benefit all. This doesn’t mean, like we discussed in class, that open source will be solely used for good. As per the open source guidelines, nothing is stopping someone from doing something nefarious or illegal using open source software since there shall no discrimination against any group using or for what purpose. What is illegal is for the courts to decide. Though, open source, again, is amazing for providing otherwise perhaps paywall locked closed source software. Also with closed source software, we do not know what is exactly running with it (for all I know there can be a bitcoin miner as discovered with numerous softwares as of late) while open source, the users can check out the codebase and see if there is anything else going on. That being said, I want to contribute to open source and I found this class as probably a pretty good gateway to learning what I need and what I don’t need to know about contributing. As a beginner to this, I am grateful such class exists and I hope to learn more and be open about new technologies and where open source development takes me!

Some Open Source Projects That I’ve used

  • Immediately off the top of my head when I hear open source, I think about Asahi linux. As we know, Apple switched to their own silicon cpu/gpu/(apu?) chips which is ARM-based and is not very compatible with booting other sofware onto their hardware. Asahi linux is an open source project that seeks to create a remixed Fedora distro on M1, M2, etc. Apple silicon chips. I’ve been following this project a lot as I currently own an M1 mac and am planning on possibly making the switch or dual-booting if they eventually get more of their hardware-software connectivity issues fixed (like audio drivers). Another open source project, that I actually use daily is Wikipedia. I more or less read Wikipedia for fun, so it’s really great to see that something like Wikipedia exists and is actually very well maintained and accurate at most times. Another one is React which many people use to build the front-end of their websites. I actually used React in my own personal website. React is pretty great and is maintained by Meta which is great to see since many big tech companies maintain open source projects. Lastly, Neovim which is a fork of vim what I use almost daily as a daily driver when I am in the terminal. There’s even a whole custom GUI scene developed from Neovim depending on the user’s usage and needs which I think is really cool and not possible without it being open source.
Read More