Thursday, May 23, 2013

Essential EGL+Batch - Companion Book

The 2013-05-23 draft of a companion book for the Essential EGL+Batch video series is now available in PDF format. It includes instructions for installing EGL Development Tools on Linux, OS X and Windows. It includes the source code for lessons 1 thru 22. It includes additional information on EGL not presented in the video series.

Essential EGL+Batch - Lesson 25 SQL Select

Create an SQL record. Get records from a table and print them on the console.

Essential EGL+Batch - Lesson 24 SQL Delete, Insert and Update

Delete records with an EGL execute statement. Insert and update records.

Essential EGL+Batch - Lesson 23 SQL Drop and Create

Create a table with the EGL execute statement. Drop a table, if it exists.

Saturday, May 18, 2013

Open Source Software is Payback

The public continues to misunderstand free license and open source software after prolonged effort to educate, define and clarify. I suggest that there is a big difference between what should happen and what actually happens.

What should happen. Anyone who distributes a product should have superior social skills and talent for making their friends happy.

What actually happens. Both technical and social skill is needed to create a great software product. A programmer with high technical skill and low social skill will ultimately gets disillusioned, bitter and frustrated. No one wants to use software that is socially difficult and harsh, no matter what the possible benefit might be. Social skill is reflected in the end-user interface and especially reflected in an application programming interface (or API).

What should happen. Free license and open source software should fit under the umbrella of the commercial system and remove the risk for ultra-conservative corporate customers. It should compete with commercial software on the same turf. It should not be mysterious and unpalatable just because it costs less. (It does cost you something to use any software. Only the license is free.)

An open source open source project should have good "customer" service. It should listen to and satisfy "customer" complaints. It should offer a world-class web site and free technical support.

What actually happens. Open source software uses a bartering system. Bartering is the exchanges of goods or services without any regard to money. When you barter, neither are customers. Two parties are peers.

Anyone who visits your web site is your customer. According to the Malcolm Baldridge Total Quality Award, your "customer" is anyone who interacts with you, your goods and services. So, yes, you can have customers without any exchange of money. Some open source projects have excellent customer service. They treat their peers with dignity and social grace.

I produce free software tutorials and publish them on YouTube. It is my way of giving something back to the community. It is my way of improving my skills. I consider anyone who watches my video to be my customer.

Bartering typically happens when two parties come to an agreement about what will be exchanged. An agreement is made and then the exchange. But free license and open source is generally bad at bartering, too. In this model, an exchange involves parties that do not know each other and may take years. Your peer downloads your product anonymously. You build software in 2000 and someone downloads it in 2010. There is no (practical) recourse for failing to live up to an agreement. It is a cultural value, an honor system, bartering on faith. Some do not share the faith.

Never, ever distribute your free license and open source software with the hope that someday someone will return the favor. This is entirely wrongheaded. Make an effort. Distribute your software to return the favor to all of the free license and open source software that you have already used. Do not expect some future return on your investment. You are indebted. Your contribution is repayment. You have already benefitted.

Educate yourself on free license and open source. Listen to your peers. And when someone wants you to improve your software, be nice.