Breadcrumbs

Interview: David Mytton of Olate Ltd.

Here Ethan interviews David Mytton of Olate Ltd (external link). Olate produces Olate Download, a download management program, and iono, a powerful software licensing system.

Getting to Know David

Lowter: To start off, could you tell us a little bit about yourself?

My name is David Mytton, I live in England, UK, and I am the Managing Director and Lead Developer of software company, Olate Ltd. Managing the business and software development are my primary roles within Olate, which I founded April 2003. Although back then Olate (external link) was a webmaster resource site. In February this year, my business partner and I formed Olate as a Limited Company ready for the launch of our flagship product, iono.

I originally got into PHP at the beginning of 2003. I started web development using ASP and did some web design jobs for a few local companies. I was eventually converted to PHP and haven't looked back since! I haven't really been doing programming for that long, relatively of course, but I feel I have gained a massive amount of knowledge and experience in just 2 years running a website, and then a company - which was my ultimate goal. I am currently playing around with the Microsoft .NET languages, specifically C#.

But despite my ventures with programming and computing, I really enjoy writing. Olate was originally a webmaster resource site providing tutorials and articles for other website owners to help them make the most of the internet. I have written several articles for Sitepoint (external link), the majority of which have been interviews of key figures. This includes Zack Urlocker from MySQL, Kier Darby from vBulletin, Matt Mecham from Invision Power Services and even Andi Gutmans and Zeev Suraski, the founders of Zend and PHP Architect! To top that off, a book I have written (Invision Power Board 2: User Guide) is due to be published in June. This can be preordered from the publisher (external link) but I'm also proud to say it is on Amazon (external link) too!

As well as running Olate, I am a full time student studying Advanced Level English, Business Studies, Computer Science and Physics. In my spare time I enjoy scuba diving and fencing, and I am also a member of the PHP Documentation Team (the team who writes and maintains the PHP manual at php.net).

Lowter: How did you get started in web design and web programming?

I started looking at web design when I was 13 and started my own web design business when I was 14. I bought a book and started learning ASP. I did a few websites for some clients and then stopped to concentrate on school work. About 2 years ago, I started learning PHP and now I concentrate solely on the programming side. I'm not a good designer - that is where my business partner comes in! Programming is my favourite aspect of web development. It is now very nice to just be able to 'do it' - I don't need to constantly look up everything in books (my friends have all my PHP books at the moment) and occasionally I will look something up in the PHP manual. It takes a while to know it instinctively, but it is much more fun when you do! However when it comes to interface design for desktop applications, I can do that!

Lowter: What was your involvement in the development of iono?

During 2004, I was working on our free, open source product, Olate Download 2.2. During this, I was interested in how the application could be protected and licensed to specific 'customers'. I used the then only existing system to do this, but it turned out that the existing users of Olate Download did not want to be restricted by licenses. So I decided not to implement it.

After I had finished Olate Download 3.0 in September last year, I thought that I would revive the idea of a licensing platform and bring another solution onto the market. The only existing product needed a lot of improvement, in my opinion, and I thought I could provide an alternative solution. And so I developed iono to do just that!

Working with Matt, we developed a solution to the selling and licensing of software (specifically PHP software, although iono actually supports any programming language). I was doing the majority of development since Matt had other work ongoing, and over the period October 2004 - March 2005 I worked on iono. Matt handled all the design work and I did most of the programming.

Lowter: From your publications you appear to be an avid open source supporter. How do you think the open source community has changed since you've paid attention to it? As a closed source software producer, how do you feel the open source community will ever make a profit?

I don't think the open source movement has changed much in the year and half I have been working with it. The major problem with most open source projects is they are done in spare time on a voluntary basis. I think businesses believe that because they pay for software, it is going to have guaranteed support and continued development. This is sometimes true, but is not always the case. But a great example of how open source has been used well is with MySQL. Their database system is free under under an open source license, but they also offer a paid license with support and other services. Enterprise customers can pay and smaller customers (or even larger ones) can get MySQL for no cost. Support is a key issue with open source software and something that open source developers need to consider if they want larger customers to take notice of their products.

I think being the developer of both open and closed source products gives me a good level of knowledge and experience so I can decide how to continue product development. Olate Download was our original product and built up knowledge and our reputation. That has aided the sale of iono and will hopefully do the same with future products. It also offers some protection so people can't accuse us of trying to stifle open source with our licensing system.

What I don't always agree with is the way the GPL/GNU attempts to prevent commercial companies from including GPL libraries in their software. The LGPL, which Olate Download is released on, allows anyone to use any portion of the software in any product (subject to the license/copyright restrictions of course). However the GPL makes it difficult for a GPL library to be included in a commercial (closed source) application. The GNU are encouraging developers to use the GPL and not the LGPL which I think not only reduces the usage of a developer's code but also forces developers to reinvent the wheel (and possibly increase software costs). Apart from that crucial aspect of GPL'd software, I fully support the nature of open source.

Lowter: In your article "Why You Need Coding Standards" you mentioned the fact that there is more than one coding standard guideline. Do you feel that having a variety of "standards" has any true benefits? Do you think that web programming will ever come to have standards as web design has?

I don't think there will ever be coding standards like we have for CSS, HTML, XHTML etc. Even though those standards do exist, few people actually adhere to them and the coding standards I was discussing in my article were code layout on a syntactical level. It is important to have standards within a project and/or organisation so that all programmers can understand each other's code and keep code neat. Programmers are renowned for thinking their code is too messy and rewriting large portions of it when it really doesn't need rewriting. Coding standards will help to keep source code tidy and prevent that!

Olate Products

Lowter: Olate produces two products - Olate Download and Iono. Could you briefly explain these products and their features?

Olate Download is a free, open source download manager which was written by myself and Matt Eunson, my business partner during the Summer of 2004. The aim was to improve upon the original product I wrote in 2003/early-2004 to allow website owners to create their own download system on their website. It has not always been on the Lesser General Public License like it is now, but it has always been a free product. We have a dedicated developer who is working on the improvement of the system, David Salisbury.

iono is designed specifically for software developers to allow them easily sell their software in a secure manner. It can be difficult to keep track of who is using your software and where, and iono allows you to do this. A couple of the main features include the ability to have your product automatically exported from a CVS repository, have the source code encoded (using ionCube Encoder, Zend Encoder, or any other system you can think of!) and then packaged up into a zip, tar, tar.gz or tar.bz2 file so the customer can download it. This is handled all dynamically and executed on demand!

Another key feature that we're working on ready for the v1.2 release is called iono Desktop. This comes free with any iono license and allows you to manage everything that iono does from your desktop system. This includes checking licenses, approving orders and managing customers. You can be notified of new orders from the system tray and manage them from your PC. Not only that but iono Desktop is compatible not just with Windows, but with Mac and Linux too!

Lowter: Currently only the Developer's Version of iono allows you access to the source code. How much source code is revealed? How easy is iono to adapt to your own system?

iono is designed specifically for software developers. The PHP code is commented using the PHPDoc syntax and we publish full source code documentation to accompany the product. The whole application is object orientated with all the iono functions within several classes. This means that you can easily integrate with the application to access certain functions. The advantage of this is that you can customise the way iono works, or if you already have an order system, you can just use the functions of iono you need.

iono also uses an advanced templating system to ensure that you can customise iono to suit your website design. If you look on the iono website (external link) - you can try out the demo. Then you can compare the frontend to the one we use on our own website (external link) and also to one of the iono customers (external link). You can see in those 3 examples how the templates can be changed!

Encoding source code is a sensitive issue with many people. Personally, I like to be able to access the source code of applications I'm working with because I can make simple tweaks as necessary. But some people just don't need or want to be able to do this. With the iono licenses, we offer different versions to suit different people. The majority of our customers don't use the source code, so they buy the cheaper licenses. But the developer license gives you access to the source. Only 1 file is encoded, and that is the file that contains the licensing code itself. Everything else is completely open.

But even if you don't get the source code, we provide the source for all the templates and you also get the iono source code documentation so you can access the functions even if you can't see their code.

Lowter: What encryption software does iono support? How easy is it to integrate encryption software?

I suppose iono supports anything that PHP can also support. If you have the source code then you can freely integrate anything you like into iono. One of our customers is using iono to sell and license her Windows application which uses serial keys you might recognise from other products like Windows, MS Office, Macromedia/Adobe products etc. iono is extremely flexible!

Lowter: How easily are payment gateways integrated into iono?

Extremely easily! iono uses a modular system so you just need to copy and then edit one of the existing payment gateways, then add a database entry from the option in the admin control panel - iono will support any gateway you can think of, you just need to create the module. But you don't have to - if iono doesn't support your gateway then we'll add support for no extra charge. And usually within 48 hours.

Lowter: What does iono do to secure transactions, distributions, and orders?

The transactions themselves aren't really secured by iono since everything is handled by 3rd party payment processors. What iono does have a say in is the way the software is distributed and how the communication between the product and the iono installation is handled.

Once your software is ready to be downloaded (i.e. any actions like CVS export, encoding, archiving, etc) have been done, the file is sitting in a directory called the release_source/ directory. This is ideally outside the web root directory so it cannot be browsed. This file (e.g. file.zip) is then copied to a directory in the web public directory release_distribution/. However, it is renamed so a random string is added to the beginning (e.g. ae665b-file.zip). The customer then downloads the file. This means that nobody can guess the name of the file, and they cannot access the source (since it is out of the web root). The files in release_distribution/ can then be deleted after a certain period of time.

Communication between the product and your own iono installation uses normal sockets (for now, we are working on another method which will not require this). The data is not encrypted, but a hash is sent which is based upon a unique string specific to each iono installation. This is compared and checked to ensure the data matches. Several other checks are performed, but I won't reveal them here, for security.