8.1 Why Build an Open Develop Community

Freedica is an example of an open software development tool. Four other important community based tools, include the Linux kernel, the Linux Debian Operating System, Libre Office Document Management System and the Joomla Content Management System. All of these community developed programs have established a security record that is about 100 times better than programs developed by corporations. In this article, we will review why and how to build an Open Develop Community.

01

What is an Open Develop Community?
The term “open development” software is a relatively new concept. Open development goes beyond “open source” programs. Open source merely means that the source code for the software has been publicly posted. Thus the code can be inspected to make sure it is free from hidden back doors. But open source programs can still be developed by closed source corporations using closed source Windows computer and stored on a closed source repository such as GitHub. These corporations can and have converted their open source programs into closed source programs once they can a market monopoly of users who become addicted to using their programs. The problem with letting greed control our computers and computer software is that billions of people rely on their computers and computer programs to share information and keep their businesses functioning.

A second less understood point is it costs next to nothing to make a copy of a program once it is written. We therefore need to take a stand and oppose corporations that are essentially blackmailing us because we have become addicted to their programs.

We need to break the cycle of addiction by using and promoting Open Development programs. We need to take a radically different path in terms of selecting the software we download to our computers, choosing the software we use to run our businesses, promoting the software we teach the next generation and developing the software we make for ourselves and for others.

8.2 Dark Side of Current Software Development

The best predictor of future behavior is past behavior.
Fo
ol me once, shame on you… fool me twice, shame on me.
(My mothers two favorite sayings)

In order to better understand why we need to change the software development tools we use, we will begin by explaining how software development currently occurs. As noted in our previous article, we are facing the most extreme concentration of wealth and power in human history. Just look at the S & P 500. You will see that the 4 largest corporations in history are all technology stocks. As of June 2023, the combined market capitalization of Microsoft, Google (Alphabet), Apple and Amazon is more than $6.6 trillion dollars – making these four tech corporations the richest corporations in human history.

01

There is a simple reason why the richest corporations in human history are all tech corporations. The reason is that tech corporations have almost no overhead. Their products, aka software programs, cost nothing to copy and a server farm such as AWS or Azure can generates billions in profit while being run by a small Tech team.

It is ironic that the profits of all four of these mega corporations come predominately from running open software Linux programs. Yet almost none of the profit goes back to the open software community. Instead, the profit is used to bribe politicians, rig elections, control the media and censor anyone who has the courage to challenge them.

In 2013, I published a book called Free Yourself from Microsoft and the NSA. In this 400 page book I outlined 30 years of crimes committed by Bill Gates and Microsoft. Much of this information I obtained by spending 20 years teaching courses at the nearest college to Microsoft – and having had more than 1000 Microsoft employees in my courses. You can download a free copy of this book at the following link: https://freeyourselffrommicrosoftandthensa.org/

In that book, we looked at serious problems with the Microsoft Windows operating system and a draconian startup program called UEFI. In this article, we will take a look at the current state of GIT Repository Hosts – which is where most software development currently occurs – in order to explain why you should not trust your Open Software project with any of the major GIT Repository Hosts.

8.3 Open Development Terms and Tools

The first step in assisting an Open Development project is learning some of the terms used by Open Development projects. The primary tool used to debug and improve Open Development code is called Git. In this article, we will explain Git terms as well as other terms used to develop and maintain an Open Development project.

Important Website Building Terms… HTML, CSS and PHP
Most open development includes learning the basics of website building tools such as HTML, CSS and PHP. Joomla and Freedica and NextCloud are all a graphical interfaces for PHP, CSS and HTML. Here is a bit of history on these three web building tools.

01

In 1990, Tim Berners Lee created a free Open Source language called HTML (the Hyper Text Markup Language) to make prettier web pages. Prior to this, web pages were only plain text files. HTML uses opening and closing brackets to separate different website objects. Here is an example of HTML for a Heading (which tells a web browser to make this text bigger and bolder than normal text):

<h1> This is a Title </h1>

HTML made web pages look better. But HTML was not good at either precisely controlling the appearance of web pages or defining the relationships between objects. These problems were solved by the introduction of two new tools called CSS and PHP.

On October 10, 1994, a coworker of Tim Berners Lee named Hakon Wium Lie published the first draft of Cascading HTML Style Sheets. This later was shortened to just Cascading Style Sheets or CSS. CSS uses Selectors and Classes to style or better define the appearance of HTML elements. Today, nearly all websites include one or more CSS style sheets. The current version of CSS is CSS 3.

02

In 1995, Rasmas Lerdorf created a free Open Source language called PHP which expanded HTML to work with and manage a database. PHP is the most common database management program in the world and runs about 80% of all data base driven websites. The current version of PHP is version 8.1. Here is an example of PHP code which simply displays some HTML text:

<?php echo '<p>Hello World</p>'; ?>

The above code simply tells the browser to display the words Hello World. Notice that the HTML brackets are simply placed inside of the PHP brackets. The goal of PHP is to extend HTML so your website can ask questions, called queries and thus work with a database. This is why PHP uses question marks in addition to brackets.

Important Database Terms
A database is a collection of related data stored on a computer as a series of inter-related tables. This data is defined and manipulated by a program called SQL which stands for Structured Query Language. The most common databases today are Object Oriented databases and Distributed Databases.

Database Objects are pieces of data. Each object has a Name and a Value. For example, we could define a Name called My First Name. The values might be David, Sue, Tom, etc. This is similar to a Table or Spreadsheet. But instead of just storing a single table, a database contains many tables. Also the data stored in a database is stored in a way that each table of data can be related to other tables of data.

Distributed databases are databases stored in different computers that work together in a connected network. The most common databases today are called Maria databases.

Many modern website building programs, such as the Joomla Content Management System, store data in a database. Joomla is a free Open Source graphical interface for the PHP database management program. There are other types of languages and other types of databases. But to keep things simple, we will assume we are working with a Maria database controlled by a PHP program.

Important Git Terms

What is Git?
Git is a code revision process created by Linux Torvalds, the founder of Linux in 2005 to improve the code of the Linux kernel. Git is an open development decentralized revision control system.

8.4 Use Git Cola to Post to Codeberg

Most experienced programmers are very comfortable using the terminal – also known as the Command Line Interface (CLI) to make changes to programs. They therefore use a program called Git to run a series of commands to modify, stage and commit their file changes. Here is an example of entering Git commands in the terminal taken from a tutorial intended to teach beginners how to use Git:

01

There are at least four major problems with using the terminal to teach beginners how to process code changes. The first problem is that most humans learn by associating new experiences with their previous experiences. The Command Line version of Git is so abstract that a beginner has nothing to associate it with.

The second problem is that entering commands in the terminal is also abstract. So entering Git commands in a terminal is an abstraction on top of an abstraction. It is like trying to teach Calculus to Third Graders. You are better off starting with addition and subtraction using oranges and apples.

The third problem is that the terminal is unforgiving. Even one word misspelled or one comma out of place and the whole process stops – often with the student having no idea as to what they did wrong or how to fix it.

The final and most important problem with expecting beginners to learn how to use the command line version of Git by entering a series of commands in a terminal is that most humans are visual learners. They learn faster and retain processes better when they have a graphical user interface to provide them with visual feedback. Failing to give beginners a graphical user interface means that many beginners will give up and conclude that Git is too complex and “over their head.”

This weeding out of beginners is harmful to open development projects because it means fewer people will be available to help improve the code of your open development program. Since our goal is to make it easier for beginners to learn how to modify, stage and commit files, we will use a graphical interface version of Git.

The best Open Source graphical interface for Git is a program called Git Cola which can be installed simply by going to the Debian Software Manager, doing a search for Git Cola and clicking Install.

How to Use Git Cola to Create your First Local Git Project
When Git Cola starts, it doesn't have any Git projects (which are commonly called Git repositories). Here is the Git Cola start screen:

02

Just as a word processor like Libre Office Writer isn't of much use without a document loaded, Git Cola isn't very useful without a project loaded. If you have a Git repository you want to contribute to, you can clone it by clicking the Clone button in the lower-left Git Cola window. But if you are a beginner, it is better to start with something easier.

We will therefore assume that you are using a laptop with Linux Debian installed and we will begin by opening your Debian file manager and creating a new top level folder called My Git Projects. Then open your Git Projects folder and create another folder called my-first-project.git.