Java IoT Authors: Yeshim Deniz, Liz McMillan, Zakia Bouachraoui, Elizabeth White, William Schmarzo

Related Topics: Java IoT

Java IoT: Article

Dealing with Open Source Software

Part Two

In the first article of this series (see http://java.sys-con.com/read/108260.htm), I "bought" a gas station with a convenience store and a repair shop and started to think about automating this small business using various Java technologies. This time, I'm getting a crash course on open source software.

Mentality Shift
The most surprising thing is how quickly my programming preferences have changed after I left the corporate world and started working at my gas station. I used to easily recommend expensive software tools, application servers, RAID devices, grid servers, and fiber optic connectors. Need scalability? No problem. We'll create a cluster of two 8-CPU application servers. Let's allocate another $100K for the server licenses for our development, UAT, and contingency environments... But now I'm buying coffee beans in bulk quantities for my convenience store trying to save a couple of dollars. I'm wondering if CIOs of large firms know how much money has been spent just on unused software licenses? Oh well, it's none of my business, I've got a customer: "$20, regular, credit card"... Oops! The name on the card reads Bernard Golden.

"Excuse me, sir! Are you by any chance the author of the best-selling book Succeeding with Open Source?"

"Yes I am, but what makes me famous at a gas station?"

"I'm pumping gas during the day, but I read IT books and write Java programs in the evening. At this point I'm trying to figure out if I can use the open source software in my small business. Please help."

Bernard kindly agreed and here's our conversation.

What Is Open Source Software?

Yakov: Professional programmers make a living by developing software. On the other hand, there is large community of people who are willing to donate a couple of hours here and there to add a piece of code to an open source project without being paid for it. Why would they do this?

Bernard: There are a number of common reasons, and each contributor has his or her own combination of those reasons. First and foremost, contributors are often donating a piece of code that makes the product work better for them. Because the source of the product is available, they can improve it to better run in their environment. Contributing it makes sense because that way their fix becomes part of the mainstream code base and they don't have to reapply their changes to each future release of the product.

Other contributors do so out of interest in the technology - contributing allows them to explore a personal interest - and all of us benefit from their interest.

Other contributors are developing their skill set to enable them to obtain a better job or set them up for more interesting work in the future.

What's great about open source is it enables all of us to benefit from those individuals' creativity and passion.

Yakov: In 1999, I was hired by a large firm for a WebSphere project even though WebLogic was more popular back then. When I asked the manager why they chose IBM's application server, he replied, "We want to be sure that the company will be still around in 10 years." What if the key developers of a particular open source project lose their interest and stop working on it?

Bernard: The truth is you don't know if the key developers of a particular project will choose to remain involved with it. It makes sense to look at the size and quality of the development team to form an opinion about its capability and likely dedication to the project. That said, there is a pretty strong ethos in the open source community to arrange for a successor in the project, and most (if not all) projects with a strong community never face the issue of developer abandonment. Yakov: Does the term open source software really mean free software?

Bernard: Free is an ambiguous term in English, meaning both no cost and complete liberty. Open source is, at base, about liberty: liberty of use, liberty to modify, liberty to redistribute. Nothing in open source licenses forces the software to be distributed at no cost; however, the realities of unlimited distribution typically mean that software is distributed without license fees. Of course, many companies like Red Hat, JBoss, and Zope distribute their open source product with no license fee, but charge for additional services like support and training.

Yakov: I'm too busy with my customers and won't have time to contribute to any open source project. But I'd like to have all these liberties at no cost for automation of my small business. To be honest with you, I'm also thinking of selling some of my solutions to my fellow gas station owners. What type of software licenses fits my objectives?

Bernard: There is no blanket - or should I say mechanical! - answer. Open source licenses, broadly speaking, fall into two camps: so-called Berkeley licenses and GPL-style licenses. Berkeley-style licenses allow recipients of open source software to modify and redistribute without making the modified source code available, while GPL-style licenses require source availability if the modified open source product is itself distributed.

Depending on whether you're modifying an existing open source product or creating your own product from scratch, and even how the product is architected and distributed, makes a difference about the requirements and implications of the license. Before doing anything, you should understand these issues. Otherwise, you may find that your commercial product is really an open source product, with all that entails. An excellent resource for this subject is Larry Rosen's book Open Source Licensing: Software Freedom and Intellectual Property Law (Prentice Hall PTR, 2004).

Yakov: Should I be aware of any potential legal risks in this area? Say, for example, I've changed 10 lines of code of some free Java component to improve its functionality. Do I have to make these changes available to the entire world to avoid legal issues?

Bernard: The rule of thumb in open source is that any changes you make and use internally are perfectly fine. The challenge comes if you distribute the modified product, depending upon the license of the original product. Again, Rosen's book can provide a lot of help in this area.

More Stories By Yakov Fain

Yakov Fain is a Java Champion and a co-founder of the IT consultancy Farata Systems and the product company SuranceBay. He wrote a thousand blogs (http://yakovfain.com) and several books about software development. Yakov authored and co-authored such books as "Angular 2 Development with TypeScript", "Java 24-Hour Trainer", and "Enterprise Web Development". His Twitter tag is @yfain

Comments (2)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.

IoT & Smart Cities Stories
Bill Schmarzo, author of "Big Data: Understanding How Data Powers Big Business" and "Big Data MBA: Driving Business Strategies with Data Science," is responsible for setting the strategy and defining the Big Data service offerings and capabilities for EMC Global Services Big Data Practice. As the CTO for the Big Data Practice, he is responsible for working with organizations to help them identify where and how to start their big data journeys. He's written several white papers, is an avid blogge...
Nicolas Fierro is CEO of MIMIR Blockchain Solutions. He is a programmer, technologist, and operations dev who has worked with Ethereum and blockchain since 2014. His knowledge in blockchain dates to when he performed dev ops services to the Ethereum Foundation as one the privileged few developers to work with the original core team in Switzerland.
René Bostic is the Technical VP of the IBM Cloud Unit in North America. Enjoying her career with IBM during the modern millennial technological era, she is an expert in cloud computing, DevOps and emerging cloud technologies such as Blockchain. Her strengths and core competencies include a proven record of accomplishments in consensus building at all levels to assess, plan, and implement enterprise and cloud computing solutions. René is a member of the Society of Women Engineers (SWE) and a m...
Andrew Keys is Co-Founder of ConsenSys Enterprise. He comes to ConsenSys Enterprise with capital markets, technology and entrepreneurial experience. Previously, he worked for UBS investment bank in equities analysis. Later, he was responsible for the creation and distribution of life settlement products to hedge funds and investment banks. After, he co-founded a revenue cycle management company where he learned about Bitcoin and eventually Ethereal. Andrew's role at ConsenSys Enterprise is a mul...
In his general session at 19th Cloud Expo, Manish Dixit, VP of Product and Engineering at Dice, discussed how Dice leverages data insights and tools to help both tech professionals and recruiters better understand how skills relate to each other and which skills are in high demand using interactive visualizations and salary indicator tools to maximize earning potential. Manish Dixit is VP of Product and Engineering at Dice. As the leader of the Product, Engineering and Data Sciences team at D...
Dynatrace is an application performance management software company with products for the information technology departments and digital business owners of medium and large businesses. Building the Future of Monitoring with Artificial Intelligence. Today we can collect lots and lots of performance data. We build beautiful dashboards and even have fancy query languages to access and transform the data. Still performance data is a secret language only a couple of people understand. The more busine...
Whenever a new technology hits the high points of hype, everyone starts talking about it like it will solve all their business problems. Blockchain is one of those technologies. According to Gartner's latest report on the hype cycle of emerging technologies, blockchain has just passed the peak of their hype cycle curve. If you read the news articles about it, one would think it has taken over the technology world. No disruptive technology is without its challenges and potential impediments t...
If a machine can invent, does this mean the end of the patent system as we know it? The patent system, both in the US and Europe, allows companies to protect their inventions and helps foster innovation. However, Artificial Intelligence (AI) could be set to disrupt the patent system as we know it. This talk will examine how AI may change the patent landscape in the years to come. Furthermore, ways in which companies can best protect their AI related inventions will be examined from both a US and...
Bill Schmarzo, Tech Chair of "Big Data | Analytics" of upcoming CloudEXPO | DXWorldEXPO New York (November 12-13, 2018, New York City) today announced the outline and schedule of the track. "The track has been designed in experience/degree order," said Schmarzo. "So, that folks who attend the entire track can leave the conference with some of the skills necessary to get their work done when they get back to their offices. It actually ties back to some work that I'm doing at the University of San...
When talking IoT we often focus on the devices, the sensors, the hardware itself. The new smart appliances, the new smart or self-driving cars (which are amalgamations of many ‘things'). When we are looking at the world of IoT, we should take a step back, look at the big picture. What value are these devices providing. IoT is not about the devices, its about the data consumed and generated. The devices are tools, mechanisms, conduits. This paper discusses the considerations when dealing with the...