Every once a while we receive enquiry asking about our products, is source code for it available as open source. It is not, and here is why.
If you look at open source projects, you can see that they almost never compose core business of their creators. If it is created by individual developers, it might be to showcase their skills for potential employers, or hobby project. Very often companies sponsor or moreover are main contributors to the project. In these cases it is never core business of that company, instead that company is a main user of that project. Making the project open source brings multiple benefits for such a company:
- Developers and users around the world contribute to the project by reporting bugs and sending pull requests with fixes for such bugs or with implementation of new features. This lowers cost of development and support of the project.
- Using open source project makes easier for third parties to use services provided by the company as its core business. So at the end cost of open source development is transferred to those end customers of core business services and products anyway.
Here are some examples:
- Microsoft is strong supporter and now main contributor of .NET OPC UA SDK (https://github.com/OPCFoundation/UA-.NETStandard). Why? Because it makes easy for customers who is used to use Microsoft stack to collect industrial control data and push it to Microsoft Azure, which is its core business.
- Amazon is main contributor of the SDK for connecting to AWS IoT from a device using embedded C (https://github.com/aws/aws-iot-device-sdk-embedded-C ). Significant portion of this project is MQTT client functionality, so it can be used as a generic MQTT client library too. Although development of such MQTT client libraries is not what Amazon’s business is, they are main contributor and made is open source, to pave the way for customers to use core business – AWS IoT platform.
- InfluxData made InfluxDb (https://github.com/influxdata/influxdb) open source, because their core business is providing services hosting InfluxDb in the cloud, so they are main users of this project and benefit from making it open source.
- The same with Confluent and other service providers who are main contributors and users of Apache Kafka (https://github.com/apache/kafka).
One-Way Automation’s core business is development of OPC UA software for customers, including ogamma Visual Logger for OPC. We are not users of our products and they are not just hobby projects. For that reason our products are not open source. We need financial support in form of revenue from selling licenses in order to continue development and support of those products.
While I was searching for something else, the title caught my attension: Joel Test Score 10 of 12, and I was intrigued - what is that test about?
Opened the link and found this gem: The Joel Test: 12 Steps to Better Code
Agreed with every point.
By the way, the author is Joel Spolsky, CEO of StackOverflow.
Good stuff, I recommend to read.
For a while in the background I was wondering are there any open source PKI software which would have rich functionality and was at the same time reliable, with web based interface and with support of SCEP. Looks like I found one - EJBCA.
Below I am describing how I installed it on the VM hosted in the Windows Azure Cloud.
- Using Azure management portal, created new Virtual Machine from gallery - Ubuntu 14.04.1 LTS
Note: If you have MSDN subscription, then you should have Azure credits, which you can use towards using Azure service liek VM on the cloud, web site, or others. Refer to Microsot Azure web site for details.
- Enabled endpoints for SSH (port 22), and RDP, and https (publicv port 443, private port 8443, as EJBCA uses this port by default).
Note: to connect to the Ubuntu VM over SSH you can use the tool called PuTTY).
- Connected to the created VM over SSH. Installed xrdp following instructions given on http://c-nergy.be/blog/?p=5305 (basically it is installing xrdp itself and then installing xfce desktop environment and assiciating it with xfce). After that was able to connect to it from my laptop running Windows 8.
In case if the given above link is broken, here are the commands to run:
Installed firefox (sudo apt-get install firefox)
- sudo apt-get install xrdp
- sudo apt-get update
- sudo apt-get install xfce4
- echo xfce4-session >~/.xsession
- Launched firefox from terminal, and opened EJBCA web site, Documentation / Installation / Ubuntu quick start page.
- Installed OpenJDK following instructions;
- Downloaded JBOSS and EJBCA following instructions. Note that there was newer version of the EJBCA then referred in the documentaion, I did download newer one (ejbca_ce_6_2_0.zip).
- Followed further instrauctions, and finally got EJBCA web configuration site running.
Today I encountered the problem described here:
svn cleanup failed–previous operation has not finished; run cleanup if it was interrupted
Usually, an svn cleanup fixes most issues with tortoise svn. However, I ran into an issue which caused me some grief.
The specific error I was seeing:
Previous operation has not finished; run 'cleanup' if it was interrupted
Somehow, svn is stuck on the previous operation. We need to remove this operation from it’s ‘work queue’.
The data is stored in the wc.db sqllite database in the offending folder.
- 1. Install sqllite (32 bit binary for windows) from here
- 2. sqlite .svn/wc.db “select * from work_queue”
- The SELECT should show you your offending folder/file as part of the work queue. What you need to do is delete this item from the work queue.
- 3. sqlite .svn/wc.db “delete from work_queue”
- That’s it. Now, you can run cleanup again – and it should work. Or you can proceed directly to the task you were doing before being prompted to run cleanup (adding a new file etc.)
- Also, svn.exe (a command line tool) is part of the Tortoise installer – but is unchecked for some reason. Just run the installer again, choose ‘modify’ and select the ‘command line tools’.