ronaldduncan

Archive for the ‘software’ Category

Our Software Industry needs to step up to the crease and tell the world that we can write code

In business, Culture, management, software, technology on November 30, 2011 at 11:10 pm

8 years ago I had a very embarrassing meeting. I laughed at a major global company that had invested over $ 600 million in a shared system. It took 5 years for the companies representative to talk to me again.

I did not actually laugh initially. I did something much worse.

They explained what they had done, and I kept trying to understand how they could have taken so long and spent so much money, and they explained again and again, as I looked at them in complete disbelief.

I think they may have initially thought that I was impressed or astounded. They certainly thought that their system was amazing, a first of its kind, the best of the best etc. etc., and they had been jumping up and down shouting from the roof tops about its brilliance.

Eventually, I said “is that it, is that really all it does, its trivial” I was shocked. It was about 3 months effort for a competent developer on a decent platform. We had done something much much better 5 years before, and regarded it as nothing to boast about.

My shock showed. They were affronted and angry. I laughed from embarrassment, and was promptly shown the door.

It has taken a very long time to rebuild the relationship.

So it would be very nice, if other people could point out that the UK software industry does create great things, and that when someone from another culture says theirs is “Amazing” and we say that we have created something that is barely adequate. Our barely adequate may only be 100 or 1,000x better than their Amazing world beater.

Caching is king or how to make a fast web app

In Cloud, ecommerce, PaaS, software on November 30, 2011 at 10:35 pm

Your developers have created a brilliant new application, and you are new starting to get some traffic, but it is collapsing under the load, and you are having to throw hardware at the problem.  A solution is at hand in the form of caching.

Varnish is the first thing to give your app some polish, it is relatively slow as a reverse proxy compared to lighttp or nginx, but a massive improvement over dotNet, Java or php.  However these all use naïve caching where content is cached for a time out period and then checked again after the time out, so the load will soon over take you and you will need to move to the next level.

Intelligent caching has a number of levels so lets move to the top end the @UK  Platform Generator Cache.  The key differences are as follows:-

  • Compressed content
  • No time to live, but updating as content changes
  • Html Block level compression and de-duplication

The result is that the @UK  Platform Generator Cache can handle millions of pages per gig of memory and eliminates the issue of having to balance between out of date content and system load  since it never needs to go back to the database/middle ware to check if the cache is stale, because the cache is kept up to date in real time.

The result is that @UK can provide customers with free infrastructure since even high volume customers do not produce a measurable load on the system.   A typical customer using Php, java or dotNet for their web layer will see both web and database servers collapse before the @UK system starts to register a measurable load.

This means that @UK offers a migration service where it will provide an expanded infrastructure to the customer and some tuning to their application as part of an upgrade onto the @UK Platform, so that they can continue their expansion and then take the brakes off once they are on Platform Generator.

Understanding the cloud

In Cloud, ecommerce, software on November 30, 2011 at 10:09 pm

First it has been around a lot longer than you think and in a lot of different formats. The modern cloud came about from the requirements of online companies to solve the problems of providing 100% uptime and security on cheap hardware. Mainframes solved these problems a long time ago, but were not cheap.

The modern cloud was independently created by a number of ecommerce and software as a service companies whose revenues and reputations depended on providing 100% Security, and Availability to their customers. In the case of the ecommerce companies both @UK and Amazon derived 100% of their income from online sales, and had carried out pioneering work into low cost clustering, which is part of the basis for the modern cloud technology.

Amazon had virtually unlimited cash for their operations and consistently lost significant sums of money as they built the business. This meant that they threw hardware at the problem and needed tools and systems to manage a vast infrastructure.

@UK was created in 1999 by a leading software house @Software PLC, and missed out on the dot com boom for funding. Thus, @UK developed its cloud between 1999 and 2006 with minimal financial resources. This changed with the @UK IPO in 2006, however the philosophy of high quality software as the solution rather than hardware remained.

Cloud Application Stacks

The result is that @UK has developed a cloud application stack that is at least 100x more efficient than well know web software stacks such as

  • Linux Apache PHP and MySQL
  • Oracle Java and
  • Microsoft IIS, DotNet and SQL server

For most real world applications the level of change is not measurable since they collapse under load before a measurable change in load is recorded for the @UK system.

Clustered Storage and Virtualisation

The other parts of the modern cloud are clustered storage, and virtualisation. The first large scale deployments of clustered storage were by Google who created their own file system to cope with their requirement for large amounts of inexpensive storage. Cern (the creators of the web) also contributed to this effort with low cost hardware designs for their storage requirements.

Virtualisation has been around since the mainframe, however the x86 chip is difficult to virtualise and there are a limited number of virtualisation solutions for the older chips and they were often very inefficient. The new VT enabled chips mean that commodity x86 hardware now provides reasonably efficient virtual hosts.

It is the combination of low cost virtual hosts, clustered storage and the experience of managing clustered application stacks that created the modern cloud. However the problems that they were trying to solve of providing secure available applications have been around for a much longer time.

Cloud Delivers Security and Availability

This is why for most major cloud players the current concerns about cloud security and availability are things that they normally started to address over 10 years ago and solved a long long time ago.

The Government Needs to Answer back

In business, Cloud, contract management, ecommerce, eprocurement, management, p2p, software, source to pay, technology on November 28, 2011 at 9:50 pm

One of our more noisy US colleagues recently stated that the UK Government needs to do more in the cloud.  Given our experience the UK Government is doing lots in the cloud, they are just not doing it with our US colleague.
So I thought it would be helpful to provide a few examples of what the UK Government is doing in the cloud with my company @UK PLC a single UK cloud provider.
The major projects so far this year are as follows:-

  • February this year the National National Audit OfficeAudit office used our cloud services for an in depth analysis of NHS GeM Online Store for HE and FEprocurement (£ 500 million savings identified)
  •  August go live of the worlds first nationwide B2B card based marketplace for all UK Universities and Colleges
  • September launch of nationwide schools marketplace with all items carbon neutral voluntarily offset  by NHS Sustainable Development Unitthe suppliers as part of a drive for savings and sustainability(another world first).
  • September start of data collection for the NHS Sustainable Development UnitNHS carbon footprint project another world first looking at the carbon footprint of all the items purchased by the NHS.

Last year Richard Benyon the Minister for the Natural Environment launched our Green Marketplace and we passed the £ 100 billion of spend Analysed. We have users from every single major public sector body on our system, which we would suggest is a reasonable level of engagement in the cloud for a single supplier sample, and that our Government is doing interesting and innovative things.

New email system is brilliant

In business, Cloud, Email, software, ubuntu on October 4, 2010 at 10:46 pm

@UK PLC’s new cloud email system is brilliant.

I am in the midst of parallel running our new cloud email system vs Microsoft Exchange, and we have just been sending out 100’s of thousands of emails as part of our new green marketplace launch. The new cloud email system has been fast and responsive through out, where as exchange has frozen the computers that are connected to my exchange account.

I wanted to make sure that customers were not upset by our sending out emails, and so had all the emails send out with delivery and read status turned on to feedback to my own email address.

The result was hundreds of thousands of mails hitting my account at the same time, which was a great test of both systems.  Sue and my pc’s ground to a halt with outlook connected to exchange, but my PC was fine when just connected to our Cloud Email 4 business system.

In terms of managing the email, it was quick and straightforward with a reasonable imap client.  I have been experimenting with Mutt, which is brilliant if you like vi.   However, the great thing about imap is that virtually all email clients from Outlook to thunderbird support imap and work fine.

I was able to move tens of thousands of emails around quickly from folder to folder, and I was delighted with the speed and responsiveness. It was remarkable how much faster it was than exchange, especially as exchange is sitting on our local network and has about 30 accounts and our cloud email 4 business is in a remote data centre and has tens of thousands of domains a huge number of clients.

We are going to try and switch over from Exchange to cloud email 4 business as quickly as we can.

Text File formats – ASCII Delimited Text – Not CSV or TAB delimited text

In ASCII, development, File Formats, software, technology on October 31, 2009 at 3:09 pm

Unfortunately a quick google search on “ASCII Delimited Text” shows that IBM and Oracle failed to read the ASCII specification and both define ASCII Delimited Text as a CSV format.  ASCII Delimited Text should use the record separators defined as ASCII 28-31.

The most common formats are CSV (Comma Separated Values) and tab delimited text.  Tab delimited text breaks when ever you have either a field with a tab or a new line in it, and CSV breaks depending on the implementation on Quotes, Commas and lines. Sadly Quotes, Commas and Tab characters are very common in text, and this makes the formats extremely bad for exporting and importing data.  There are some other formats such as pipe (|) delimited text, and whilst better in that | is less frequently used they still suffer from being printable characters that are entered into text, and worst of all people, when they look at a file format and see the delimiter, think that it is a good idea to break things up with in fields using the same delimiter as the file format.

The most anoying thing about the whole problem is that it was solved by design in the ASCII character set.

If you use ASCII  31 as your field separator instead of comma or tab, and ASCII 30 as your record separator instead of new line.   Then you have a text file format that is trivial to write out and read in, with no restrictions on the text in fields or the need to try and escape characters.

It is even part of the design of the file encoding system.  The ASCII standard calls these fields

  • 31 Unit Separator
  • 30 Record Separator

And ASCII has two more levels with Group and File Separators

  • 29 Group Separator
  • 28 File Separator

See http://en.wikipedia.org/wiki/Unit_separator and
http://en.wikipedia.org/wiki/Delimiter#ASCII_Delimited_Text

In summary ASCII Delimited Text is using the last 4 control characters (28-31) for their purpose as field and record delimiters and not using CSV (Comma Separated Values)