Tag: open-source

  • Chaste Tris Repository Update 2026

    For the past 5 years, I have had the repository of my Chaste Tris game hosted on GitHub. However, the code has been out of date compared to my local machine, and also very badly organized. I have taken a bit of time this weekend, besides doing school work, to organize the repositories for the 3 games I have made: Chaste Tris, Chaste Puyo, and Chaste Panel.

    The reasons for this are many. First of all, having the code Open Source does nobody any good if it is too confusing for them. Also, I included the GPL3 license in all the repositories so that it is clear that this is Free Software. The repositories for these three games are below.

    https://github.com/chastitywhiterose/chastetris
    https://github.com/chastitywhiterose/Chaste-Puyo
    https://github.com/chastitywhiterose/Chaste-Panel

    Recently, I have been reading and watching a lot of content about the terms Open Source vs. Free Software and why these terms are usually, but not always, the same thing. Following an email conversation I had with Richard Stallman, I believe I can make some analogies that will help the average person understand it better.

    When something is Open Source, it means the source code is available for you to read, but it may have a license restricting you from using it to modify or fork from the Software to make your own version. Just having the source available does not do much good if you are restricted legally from making the best use of it.

    Free Software, on the other hand, is concerned with the Freedom to use the Software as you wish. I believe this section from the GPL3 makes it very clear.

    *When we speak of free Software, we are referring to Freedom, not price. Our General Public Licenses are designed to make sure that you have the Freedom to distribute copies of free Software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the Software or use pieces of it in new free programs, and that you know you can do these things.

    To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the Software, or if you modify it: responsibilities to respect the Freedom of others.

    For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.

    To make the difference between Open Source and Free Software even clearer. Consider that some people think of Veganism as a diet that involves not eating animals, but don’t understand the ethical reasons for this. They might think it is a healthy diet to eat only plants, which is true, but it is not the primary motivation. These people may still buy or wear fur or leather, hunt animals for sport, or breed puppies to sell them. Their diet may be Vegan but their mindset is not.

    Free Software advocates who care about the Freedom of people to control their Software are like ethical Vegans who are trying to communicate clearly what it is all about. Just as an ethical Vegan like me is concerned with avoiding hurting animals, a Free Software Advocate cares about users controlling their Software in terms of performance, portability, privacy(as in not being spied on by Microsoft or Apple), and the ability to choose which Software they want to use, and if they are smart enough, invent their own.

    As someone who has been working with Free Software for many years, I care about this distinction as much as Richard Stallman, but I also know that many people are using Open Source and mean the same thing. I don’t believe that these people should be shamed for using the terms they have learned to use. I just believe we need to hold people accountable when they advertise something as Open Source but then restrict users in a way that makes the source closed to being used in the way that people like me have always meant when they said Open Source.

    Also, fun fact, did you know that the source code for Chaste Tris has always been included in the Steam release? You have to navigate to the installed files, but the source is always there.

    https://store.steampowered.com/app/1986120/Chaste_Tris/

    My Tetris game was never meant to compete with existing Tetris games, but it contains all of the elements required to make a cross-platform game. I still dream of making a small original game, unlike anything the world has seen before. Just like Chaste Tris, it will also be Free as in Freedom, just like all of the best Software has been.

  • Chapter 10: Software Licenses

    This blog has turned into most of my rants about computer programming recently, but I still play and teach Chess in case you are interested. But tonight, I spent some time writing another chapter of my programming book, Chastity’s Code Cookbook.

    Chapter 10: Software Licenses

    Perhaps it could be said that once you have written a program, what you do with it is even more important. For most of my life, I never considered the concept of copyright or ownership of the toy programs I wrote. I figured that unless I made a great game or operating system that I would not need to consider writing the terms and conditions about what people can or should do with my work.

    And even now, I don’t think my programs have enough of an impact for anyone to care about software licenses. However, I have found some software licenses that are compatible with my personal philosophy for how software should be shared and distributed.

    Generally, I only recommend software that is considered “Free Software” by the definitions of the Free Software Foundation.

    I have been an advocate of Free Software as it is directly tied to Freedom of speech. I am well aware that Software Freedom and Open source are usually, but not always, the same thing. This page by the FSF on the GNU project links to licenses where you can read the full text. However, I will also provide my summaries based on my understanding.

    https://www.gnu.org/licenses/license-list.html

    GNU GENERAL PUBLIC LICENSE Version 3

    https://www.gnu.org/licenses/gpl-3.0.html

    This section is the abridged and simplified version by Chastity White Rose. In case of confusion, see the original text.

    The General Public License guarantees your Freedom to change a program licensed under it and to share it with others. However, when you share it with others, they must have the same Freedom you do. Therefore, you must give others access to your source code if you choose to distribute your own modified version.

    Part of this Freedom is to include the source code when you distribute it. Source code is the preferred form of the program that makes it possible and/or easy to modify, provided you know the programming language being used. Examples include source files for languages such as C, C++, Assembly, Pascal, or Java. Also included in this definition are build scripts written in Bash, Windows Batch, GNU Make, or any similar system.

    In my opinion, the benefit of the GPL3, as well as past and future versions of it, is that it declares the author does not intend it to be used in proprietary programs. As a programmer and author, I would not want a big tech company to come along and use my code for evil purposes or to restrict others from accessing what I intended to be free.

    At the time of this writing, I don’t think anything I have written is in danger of being misused. Still, I hope that people use my programs if they find them useful, modify them to make them more useful to their purposes, and share their work with others who go on to do the same.

    The reason for restricting proprietary use is so that another person or company can’t take my code, claim to be the original owner, and turn it into something opposed to what I intended. More importantly, I never want someone to charge money for my software. Specifically in the case of software written by me, Chastity White Rose, Free Software is free as in Free Speech and Free Price.

    Considering all this, I place all my code in this book under the GPL3 license so that the Free Software Foundation and entire world of Open Source and Free Software nerds can take action on my behalf if someone ever tries to restrict my work after my death. These words are my statement that you can’t steal what was made to be free.

    GNU Lesser General Public License Version 3

    https://www.gnu.org/licenses/lgpl-3.0.html

    The Lesser GPL is very much like the regular GPL with an important exception. It is to allow proprietary programs to use a library. At first, I didn’t see the point of this; however, when I read the following article, I came to understand better.

    https://www.gnu.org/licenses/why-not-lgpl.html

    The reason it was to the advantage of the Free Software community to allow the GNU C library to be linked by proprietary programs is that it prevents the need for those developers to rely on other proprietary software.

    When I think about it, would I really want someone to have to rely on a C compiler or library made by Microsoft or Apple because they couldn’t use GNU Libc for the proprietary game they made? No, I wouldn’t want that. I will explain my reasons for this.

    Basically, complying with the normal GPL3 prevents someone from profiting from their work. If you are required to provide the source code, then anyone smart enough to compile it on their system can copy and modify your game infinitely without paying you.

    The Lesser GPL3 allows someone, for example, to use a free library to implement the graphics, sound, etc., for their game or utility program without providing the source code to their own program, which uses these libraries, but does not copy code from it.

    In short, if you want to make money, you probably want the Lesser GPL, but if you just want to be a nice person and make your code free for the education and entertainment of all people without promise of reward, the normal GPL serves the purpose best in my opinion.

    There are hundreds of other software licenses to be considered if you have written a program and want to decide which terms to release it under. You can, of course, create your own from scratch, but it might be worth reading about those that already exist to see if they match your ideals.

    Free vs. Proprietary

    I am not against proprietary programs when they are video games for entertainment only. I also believe the programmers should be paid for their work, like any other job, to help them survive.

    But my personal ideals are different from those of most programmers. My goal is to write books to share my code and to teach people how to do things, but I don’t plan to profit off the code because I value individual Freedom more than I do money. I hope that even after my death, others will still learn the joy of computer programming and use it to make great things.

    Writing computer software isn’t just a hobby or a business; it is a ministry. Think about all the software that has been written to create the internet and allow people to write books and share them with the world. Think about the programmers who made video and audio recording, encoding, and formatting possible.

    This book is about computer programming, not religion, but I must say, if you had a message that would save the lives or the souls of others, would you really want to be restricted in what manner you use to share that information? Therefore, I propose that Free Software is a necessity in light of Digital Rights Management and companies like Amazon removing ebooks from people’s devices that they have already paid for.

    Traditional books are dying, and bookstores are closing. If we don’t work together to stop digital book burning, then we lose the final method of sharing words of eternal value.