Mark's Personal Home Page

(a dog-leg from graduation, programming, consultancy and marketing to open-source application development)

Welcome

This is my personal web site. It covers some of my career, technical skills, some business philosophy and my views on the future of technologies that I'm interested in. Except that technology is a part of my personal life I've kept the subject off purely personal activities and interests. I live and work for my family.

One of my recent achievements that I'm really quite proud of is the development of an open-source billing application (see later). This runs under the Linux operating system and uses PHP as a dynamic html generator with MySQL as the back-end SQL database. When you read through the rest of this web site you'll see how much of an achievement it really was!!

e-Bills is the highest ranked web enabled billing solution on the web.

Read on for its history or click here to go directly to the solutions page.

My career - the early days

After graduating I always considered that my career direction had always been a very straight line. Believing this and accepting this was one of my biggest ever mistakes. In the early years of my career I failed to define the strategy that would control my destiny and focussed on the tactics. My second biggest mistake was marrying too young in life and reducing the emphasis on the development of my skills, networking with contacts / colleagues and making a great impression on my bosses.

Hindsight is a great, but it won't change the past: just the future. Hopefully my learning's can help someone else, but they also guide my own future. I'm very clear about many things now.

My early career was spent delving into speech related technologies with GEC (at the Hirst Research Centre Wembley, Middx). I learnt many skills including the finer details of speech synthesis and modelling the vocal tract. I also developed algorithms that ran under VAX/VMS, a Data General Eclipse and a PDP 11/60 with RSX-11M. These were developed in Fortran. One of my achievements on the PDP was the implementation of device drivers to achieve real-time input and output of speech. This was in 1981 - so quite an achievement. I also developed a compression scheme called MP-LPC (Multi-Pulse Linear Predictive Coding), which produced fantastic quality at a data rate less than 10kbps.

I also developed code for Digital Signal Processors (DSPs). I used the Texas Instruments TMS320 family and wrote all the code in assembler. This required great skill to a) get the algorithm correct; and b) ensure that it operated in real-time.

Then I set about developing an application (in Pascal and assembler under CP/M) to edit speech to be used with a phrase-store for use with the DSPs. This produced graphics and helped create the basic speech phrases that could be stored in EPROM. Then I designed the basic hardware for an automated announcement card for an exchange (the UXD-5) which was capable of simultaneous speech playback on 4 channels. It has two TMS320's (two channels of speech each) and an Intel 8086 controlling everything. The code for the 8086 was written in assembler!

The application, the DSP solutions and the fact that this was a great product that failed to make a market impact gave me an in-built need to deliver products to market. It was also at GEC that I used Unix and also nroff for doing documentation.

I really must thank Peter Bylanski and Dave Chong for their support and mentoring during this time. You both helped me develop skills that I have used for years!

From GEC I moved to Scicon, which was subsequently taken over by SD and then EDS. I learnt some great Project Management and Systems consultancy skills at Scicon. I was perhaps never as happy there. It was perhaps a period when I was too focused on family rather than career. The period gave me all those basic business courses that we all have to go through and management techniques.

I have particularly fond memories of Terry Ellison, who was a great mentor to two very good colleagues and myself.

Within Scicon there was a group of people who left to move to Crosfield Electronics, led by a rather notorious figurehead. Again the issue of taking products to market reared its head. This time, we had developed a PC card called the IGA, which capture images from a video source, display them and more importantly compress them. At its heart was a TMS32020 DSP: for which I wrote the image software and the application that interfaced to PC drivers for the card (which I also produced). This was in 1987 and the work was done in conjunction with a great hardware designer called Bob Worsley. There were many opportunities for this card. Some of these were followed through (for Crosfield and De La Rue), but many more were not. Some reasonable marketing could have built a solid business around this single product!

The IGA project came about because of some earlier work that I'd done in converting some (NASA I think) image compression algorithms that run on a bit-slice processor within a PDP-11 (known as Rabbit) onto a DSP (the TMS32020) running on a Q-bus card (known as mini-Rabbit) within a MicroVax. The algorithms used the Fast Cosine Transform and Huffman coding to produce a variable length bit-stream of compressed data. I became an expert in both of these areas (I'd written a great deal of Huffman coding stuff at GEC for speech). The Fast Cosine Transform is basically at the core of the know well-known JPEG standard (in those days it was forming as a committee). I also wrote the drivers for the Vax to interface the mini-Rabbit card, designed the Q-bus interface hardware and the code for the PALs (until now I'd forgotten all of that!).

I rejected the offer to join Crosfield, deciding to join 2 years later instead. It was in these two years that I gained some good client-facing and general consultancy / Project Management skills. I also worked on a huge bid requiring arrays of Digital Signal Processors. It was also a little boring though. I needed more of a challenge.

The notorious figurehead was still in place at Crosfield and many rows were had. It taught me to be strong and also laugh (yes I did) directly at adversity. Well if you've someone unreasonable ranting and raving at yourself and colleagues what else can you do?

My career - moving into solutions Marketing

After a year of consultancy work I moved into Marketing! This eventually led to me formalising these skills by doing a Diploma in Marketing, gaining registered status with the Chartered Institute of Marketing (CIM) and eventually was one of the first Chartered Marketers (1998). How many people even now have heard of a Chartered Marketer? This was a title I held for two years until I decided that neither the title nor the CIM gave any benefit to my career or future generation of revenue. I learnt some great skills from the CIM and it's a great base. However the CIM should really stay in their place and focus on Marketing Communications only (not Business Management). The CIM in their quest to be key to every business generate so much confusion and to many mixed messages. Guys, marcomms would be better for you (if you could get it right!). I know this sounds like a slag-off. It is of course, but I did benefit, I learnt and I met some really nice people.

De La Rue opened its doors to me in 1996. Three days after joining my grandmother died. For many reasons she was a key figure in my life. She was strong, determined, gentle and polite. She is still missed.

De La Rue was great. I enjoyed some good travel, we developed great solutions and it enabled me to delve more into international bid work and creating technical solutions. The MD was somewhat eccentric, a great source of amusement, frustration and everything else. It was at De La Rue that I started to become more independent and confident. There were certain individuals at Crosfield who had totally screwed up my confidence. Coupled with major change in my personal life didn't do me a great deal of good - De La Rue was the antidote. The team at De La Rue listened to me and gave me respect; my ideas were developed, used and turned into business wins.

The downside was a 140-mile round-trip commute. Not great. My company car travelled 85,000 miles in two years and it told on me too! I regretted leaving, but by then I was regarding work as a sequence of assignments that led me to bigger and better things. Staying still for too long or pursuing a straight-line career is no good for anyone.

Cable & Wireless then paid for the benefit of my skills, although I lost the company car. C&W was only ever a short-term 'assignment' and I was there for just under 2 years. It added pure telco experience onto my CV and I was able to increase my technical skills (slightly). For the last 8 months I was assigned to Project Manage the launch of an Internet Service throughout Europe. It was a great team, great boss and I was really starting to feel good about what I was delivering and importantly, myself.

My introduction to Linux

This was also the time I was introduced to Linux……

Since C&W I've focused on my own business, which has entailed providing Project Management and Consultancy services to a variety of businesses. The one big bonus to all of this is that as an outsider I feel able to add much more value than I ever did as an employee and also to feel much better about it.

I've had some great clients and I've made some really good friends. Mostly I've enjoyed my work, although recently I've missed out on international travel.

Oh, and the guy who gave me the inspiration to look at Linux in more depth was Ren Reynolds. Thanks Ren. Since then I hope I've communicated your enthusiasm to a wide group of individuals.

The development of e-bills

The in-between times (of which there have been a few) have been useful in developing my technical skills, which more recently has included e-Bills. I developed e-Bills for many reasons, including the fact that it was a challenge to myself to understand some real billing issues and prove that my judgement that businesses spend too much on billing was correct.

What I've ended up with is a multi-user web-enabled application with an SQL back-end. It is a reliable piece of business productivity software that can be installed on a Linux server within a business with the minimum of fuss. There is no impact on the desktop (so long as users are on a LAN and have a web-browser). It is also protected by a username and password. There are also in-built levels of security to prevent users trying to undermine the system.

e-Bills required the integration of many different components including PHP, which forms the bulk of the application, some JavaScript (which provides the user menus), MySQL which is the database and LaTeX which is used to produce printable and PDF format bills. Whilst it's a very simple system it is also very clever: it supports different billing scenarios and minimises user key clicks.

In addition I've written a "billing engine" in C. This churns through the database generating bills where they're needed. This application can also be called from the PHP code to produce a bill for a single contract. This allowed me to incorporate the code for all billing scenarios in one place. The option would have been to create a version in PHP too. I also felt this would have been too complicated. As it stands, the PHP code can produce bills with monthly or one-off charges and produces an error for other charge types. On my little Pentium PII server the billing engine churns out around 1000 bills per hour, which is faster than most printers could cope with.

If you're interested the Billing-with-e-Bills-HOWTO can be viewed here. Download compressed tar file containing the complete HOWTO by clicking here. The e-Bills code (yes - as PHP source) can be downloaded as a compressed tar from www.asplen.co.uk/billing. It is now released as Version 1.4 and there is a chargeable version at 2.0

e-Bills is capable of produces bills in any format you care to define and should therefore work in any English-speaking business. It will also work with any currency (including the Euro) and a range of tax mechanisms. I'm particularly keen to learn what other international improvements can be made.

Why release as Open Source?

Whilst I believe I can offer some great marketing skills to any business I must admit that direct sales of a product is tough work. In fact on your own its impossible!! I manage pretty well to generate consultancy revenue through networking: people like me and I try to offer the best value I can. However this direct sales stuff really is the domain of the few. On my own I'd be lucky to make one direct sale for lots of effort.

In stark contrast its much easier to publish some software on the Internet. With e-Bills I decided to distribute under the General Public Licence (www.gnu.org/copyleft/gpl.html). To fit with this you need to include a README notice of the full licence and a GPL header in each source file. One day I'll write a "Open source release procedures HOWTO".

If businesses can download my software and use it then fantastic: get on with it. I'm always pleased to hear about new features that may be required and how to make this software better: life is about learning.

Why did I develop using PHP?

I had a look at many options before developing a web-enabled application. There are many tools out there to consider. In the end I concluded that I wanted something that fitted into the open-source environment. That led to the choice of the Apache web server (www.apache.org which came with the Red Hat Linux www.redhat.com that I was running). Initially I ran this with FrontPage extensions and planned to use ChiliSoft ASP! To allow .asp files to run on it. I would have used IIS to generate the applications. I generated some basic code, but I must admit I found that the whole process was "somewhat out of my control". The applications didn't behave in a directly controllable fashion and they tried to be too. I had also seen a number of fairly good applications running over the Internet. Two things struck me: great features but wow what a long time to download; and even then responsiveness was not great.

So I opted for PHP, which is run as an Apache module. If you can write programmes in C then writing PHP is easy. It also integrates well with a variety of environments, although I admit to only using a couple.

One slight criticism of PHP is that whilst its great for churning out html (in fact anything) it does not integrate too closely with html. What I mean by this is that you need to use the "echo" or "printf" commands to write out pure html statements. The solution that I came up with was to create a .inc (include) file to create some very basic html directives, for example:

h1( "This is a heading" );

creates a header 1. I've done the same for all the other main styles and also to assist with some of the form options. These constructs make it far quicker to churn out code and to ensure a reasonable structure. The form directives also use the $PHP_SELF variable so that they can be safely moved from one file to another without causing too much disruption.

I also resisted using too much JavaScript and limited its scope to menu management. The key reasons for this were to ensure good control throughout the application (PHP is great for this); to allow compatibility with a variety of browsers; and ensure the code was maintainable. Given the strong database connectivity required it didn't make sense to include too much client-side functionality: leave it to the server.

The resulting application performs well and gives great user (i.e. immediate) user response.
Why use LaTeX for production of bills?
There were two basic options I considered here: Troff of Tex. I had some earlier experience of nroff (from my GEC days developing on a Unix server) and had also run version of nroff on a PC many years ago.

I recognised that the process to produce bills must be capable of running as a batch or background function to convert a billing template file into some usable format. The use of PDF files was appropriate because of the ease of viewing PDFs within a browser environment and the fact that editing of these files is not feasible.

This required that PHP should be able to process through a billing template and fill in the blanks with variables relevant to the current bill. This was achieved with PHP's 'eval' function and ensuring that the billing template file included PHP variables directly (they even start with the '$' symbol). I couldn't have wished for anything easier: the net result is that PHP (or the billing engine) produces a .tex file for subsequent processing by the tex processor. I'm pretty sure that this approach would also work for troff files too.

The consensus I got at the time seemed to be that LaTeX was more up-to-date, and contained greater support. Although I must say that its not been as problem-free as many packages that I've used. However, it does work and once the billing template file has been debugged LaTeX will work reliably and problem free.

The proof is in the pudding (as they say)

What the e-Bills development proves is that open-source web-enabled applications can be used as business productivity tools. In fact they can show many benefits over totally proprietary and expensive applications. The fact that software uses the existing browser means no additional disruption to the desktop, which in turn leads (I suggest) to a lower cost of ownership.

Businesses are also free to make their own enhancements (although I'd love the opportunity to include these in the baseline e-Bills) and they don't have to pay huge (any) licence costs.

What will I do next?

I have many great ideas for web-enabled applications and some of these are being developed. My approach now is to develop a generic architecture that can be shared across a range of applications. If anyone wants to contribute to this then please let me know! All of this feed the need (which I mentioned much earlier) to deliver products to market. In doing this I hope to increase the volume of Linux servers that are used within business applications (over and above) its usage as Internet web-servers (don't forget the same server that is used for e-Bills can be used for other web-enabled applications, as a file server, as an email server etc etc).

There are also a number (well large number) of enhancements that I want to make to e-Bills.

Beyond this I will look to take a more active roll in the use of Linux desktops in business environments. For the moment (and I may be wrong) it seems too early for this. Get the business servers in place first!

Watch this space …. Things are a happening!

Having recently reviewed the text here (after one year) there is little to change. e-Bills has made significant progress in that year and supports some great functionality. The choice of technology behind e-Bills is under constant review and I have yet to find any improvements. LaTeX was perhaps my biggest worry, but the bills produced by e-Bills can span multiple pages and include graphics for logos - what more would be needed.

I can be contacted on my personal email account: mark dot asplentaylor at tesco dot net and I do like to hear from people (but not SPAM)!

Business Concerns

Okay, so it would be nice to make some money out of Linux, but does the open source model really work? There have been plenty of discussions for and against. There is much passion on the subject and there are many advocates.

My learnings to date are that this is not the easiest way to make money and I certainly wouldn't want to bank on this approach! I have got some project work out of ebills and that has been interesting, but I want more. I also want to see some support revenue coming in. If I did, it might just provide the motivation to develop the parts that I feel are really needed. So if you are using ebills (and I know hundreds of you are) then think about making a modest donation via http://ebills.sourceforge.net or www.apslen.co.uk.

Perhaps we need to be more forceful with our words in the open source community? Perhaps we need to only provide some functions on a commercial basis? I don't know, but if open source is going to be a success then developers and development companies must receive a revenue from their labours!

The other concern I have is whether Linux really will catch on so much. We are presently in a tough economic climate and many businesses struggle to obtain contracts. I would have thought therefore that this was the time that businesses would say, "okay let us improve using open source", but many don't! I suspect that is because there are too few open source advocates in senior positions.

More on this in due course, but for the moment: 'hang on in there'.

© Copyright 2001-2003 Mark Asplen-Taylor