<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Edfringe on despatches</title><link>https://icle.es/tags/edfringe/</link><description>Recent content in Edfringe on despatches</description><generator>Hugo</generator><language>en</language><lastBuildDate>Tue, 14 Apr 2026 11:04:43 +0100</lastBuildDate><atom:link href="https://icle.es/tags/edfringe/index.xml" rel="self" type="application/rss+xml"/><item><title>Did They Have a Problem That Year?</title><link>https://icle.es/2026/04/14/did-they-have-a-problem-that-year/</link><pubDate>Tue, 14 Apr 2026 10:24:26 +0100</pubDate><guid>https://icle.es/2026/04/14/did-they-have-a-problem-that-year/</guid><description>&lt;p>2008 was a heck of a year for kraya, and for me. We were already operating
megabus.com in the UK, USA, and Canada, along with Oxford Tube, the sales
website for coach usa - all for Stagecoach.&lt;/p>
&lt;p>We were also working on the fringe website. We integrated the website with the
brand spanking new ticketing system - which cost nearly £900k.&lt;/p>
&lt;p>We were also hosting websites for Boots, Kellogg&amp;rsquo;s Food Service and dozens of
other clients.&lt;/p></description><content:encoded><![CDATA[<p>2008 was a heck of a year for kraya, and for me. We were already operating
megabus.com in the UK, USA, and Canada, along with Oxford Tube, the sales
website for coach usa - all for Stagecoach.</p>
<p>We were also working on the fringe website. We integrated the website with the
brand spanking new ticketing system - which cost nearly £900k.</p>
<p>We were also hosting websites for Boots, Kellogg&rsquo;s Food Service and dozens of
other clients.</p>
<p>All of this was held together by three or four developers, two systems
administrators and me.</p>
<p>On the 13 June (incidentally, I got married on the same date years later), as I
was just getting ready for a wild night on the town, a call comes through -
which John answers.</p>
<p>I still remember them laughing and then doing a double take &ldquo;oh, you&rsquo;re serious?
let me get Shri&rdquo;</p>
<p>It was the fringe. We&rsquo;d already known that they were having trouble with their
ticketing system. I&rsquo;d even pitched in, made suggestions - looked at their code
to try and help, but none of that was enough. I expected an update.</p>
<p>They wanted to know if we could put together an interim booking system for them
over the weekend. I wasn&rsquo;t sure. I told them I&rsquo;d speak to my team and get back
to them.</p>
<p>I wasn&rsquo;t involved with the work on the fringe up until this point. I knew very
little about it. I was focused on megabus.com. The US version of the site had a
big marketing campaign happening in a few days and that was what I was meant to
be focused on.</p>
<p>By the time I put the phone down, Chris, who had been the lead on the fringe
already had a answer. &ldquo;We can do it!&rdquo;</p>
<p>&ldquo;But how - it&rsquo;s got to take more than a weekend - right?&rdquo;</p>
<p>The fringe website was already built well and had a clean layer interfacing with
the new ticketing system. In fact, that was the bulk of the work that year.</p>
<p>So.. Chris told me - all we would have to do is to implement the functionality
within that thin layer, fattening it up.</p>
<p>He believed we could do it. I believed him.</p>
<p>I hopped in a cab, headed over to the fringe to talk it through. I didn&rsquo;t
promise them we&rsquo;d be able to get something ready by Monday, but I promised we&rsquo;d
do our best.</p>
<p>We were in the office on the weekend, writing code. I remember working on the
basket, sending diffs over email and generally having a good time.</p>
<p>I even had some megabus US fun to keep me entertained in the form of issues with
loading sheets - I was already in the office, so it was one step easier to fix.</p>
<p>One of the bits of functionality which took a surprising amount of time was the
seat allocation. None of us had to worry about that before - it was just
capacity management on megabus. For the fringe though, we had to allocate actual
seats with seat numbers and everything.</p>
<p>With the fringe we had multiple tables which all joined together (thanks
hibernate) to encode a tremendous amount of detail about the seating plans -
including their physical location on a map.</p>
<p>It was too much detail for us, so we had to simplify it all down to get it
working in the timeframe. We kept most of the rest of the structures intact to
keep the data migration easier once the ticketing system was fixed.</p>
<p>By Monday, we had each managed at the most 6 hours of sleep each of the previous
three nights. I still have vivid memories of a suit of armour that we put
together using packing material while we were waiting for bits of data or
details of logic.</p>
<p>I broke the MySQL replication at 01:24, fixed by 01:32</p>
<p>I remember the delirium setting in. Email sent to the client with &ldquo;fun fun fun
fun fun fun fun&rdquo; as the subject</p>
<p>There were random emails to my brother &ldquo;I&rsquo;m still here!&rdquo;</p>
<p>I also remember making makeshift beds with bubblewrap to get a wee nap here and
there. We were all so exhausted - pumped up on coffee and nicotine.</p>
<p>Finally at 03:35 on the Tue email to client: &ldquo;DONE DONE DONE DONE DONE NODE NODE
NODE NODE&rdquo;</p>
<p>Then at 05:33, requesting a PostgreSQL server rebuild for megabus US for their
marketing campaign.</p>
<p>At 10am on Tuesday, the fringe is finally able to sell tickets. The website
promptly fell over from the load, but we nurse it back and it sells 65k+ tickets
in the first week.</p>
<p>It would be at least two more weeks before the ticketing system is fixed and
brought back in.</p>
<p>For the work we did for them that year, and the previous one, we effectively
only charged about 30% - because that&rsquo;s all they could afford. This year, we
asked if they could put our name on the website.</p>
<p>Over the next two weeks(while megabus US was on their marketing campaign), we
fought many battles. There were 750 duplicate bookings. Numerous customer
complaints (thanks to our name being on the website) - almost all of them
blaming us for the failure of the ticketing system. People did not understand
that we put in the interim one, not the one that failed.</p>
<p>Press releases went out from the fringe - only two credited us. Both misspelt
the company name. Both called us a web design company — which, we were not, had
never been, and had no interest in becoming.</p>
<p>In truth, I wanted to be a hero - I think we all did. What we really wanted was
an acknowledgement of what we had done - which was nowhere to be found. We got
paid though - at least for a part of our effort.</p>
<p>For many years after that, I would tell people with pride - &ldquo;did you know - I
saved the fringe, back in 2008,&rdquo; which was inevitably met with something like
&ldquo;oh, did they have a problem that year?&rdquo;</p>
]]></content:encoded></item><item><title>Database Systems Compared</title><link>https://icle.es/2009/03/10/database-systems-compared/</link><pubDate>Tue, 10 Mar 2009 16:00:21 +0000</pubDate><guid>https://icle.es/2009/03/10/database-systems-compared/</guid><description>&lt;p>My first experiences of a computer started with
&lt;a href="http://en.wikipedia.org/wiki/DBase" title="Dbase on Wikipedia">DBase III+&lt;/a>which is
now &lt;a href="http://www.dbase.com/" title="dBASE">dBASE&lt;/a>, then went on to
&lt;a href="http://en.wikipedia.org/wiki/FoxPro_2" title="Foxpro 2 on Wikipedia">Foxpro&lt;/a>, now
&lt;a href="http://msdn.microsoft.com/en-us/vfoxpro/bb190288.aspx" title="Microsoft Visual Foxpro">Microsoft Visual Foxpro&lt;/a>.&lt;/p>
&lt;p>I have since used:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="http://www.filemaker.co.uk/" title="Filemaker Pro">Filemaker Pro&lt;/a>,&lt;/li>
&lt;li>&lt;a href="http://office.microsoft.com/en-us/access/default.aspx" title="Microsoft Access">Microsoft Access&lt;/a>,&lt;/li>
&lt;li>&lt;a href="http://www.microsoft.com/sqlserver/2008/en/us/default.aspx" title="Microsoft SQL Server">Microsoft SQL Server&lt;/a>,&lt;/li>
&lt;li>&lt;a href="http://www.mysql.com/" title="MySQL">MySQL&lt;/a>,&lt;/li>
&lt;li>&lt;a href="http://www.postgresql.org/" title="PostgreSQL">PostgreSQL&lt;/a>,&lt;/li>
&lt;li>&lt;a href="http://www.sqlite.org/" title="SQLite">SQLite&lt;/a> and&lt;/li>
&lt;li>&lt;a href="http://hsqldb.org/" title="HSQLDB">HSQLDB&lt;/a>.&lt;/li>
&lt;/ul>
&lt;p>I have not yet used:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="http://www.ibm.com/software/data/db2/" title="IBM DB2">IBM DB2&lt;/a>,&lt;/li>
&lt;li>&lt;a href="http://www.oracle.com/index.html" title="Oracle">Oracle&lt;/a>.&lt;/li>
&lt;/ul>
&lt;p>&lt;a href="http://en.wikipedia.org/wiki/Comparison_of_relational_database_management_systems" title="Compare DB Systems">Wikipedia has a list of database systems&lt;/a>.&lt;/p></description><content:encoded><![CDATA[<p>My first experiences of a computer started with
<a href="http://en.wikipedia.org/wiki/DBase" title="Dbase on Wikipedia">DBase III+</a>which is
now <a href="http://www.dbase.com/" title="dBASE">dBASE</a>, then went on to
<a href="http://en.wikipedia.org/wiki/FoxPro_2" title="Foxpro 2 on Wikipedia">Foxpro</a>, now
<a href="http://msdn.microsoft.com/en-us/vfoxpro/bb190288.aspx" title="Microsoft Visual Foxpro">Microsoft Visual Foxpro</a>.</p>
<p>I have since used:</p>
<ul>
<li><a href="http://www.filemaker.co.uk/" title="Filemaker Pro">Filemaker Pro</a>,</li>
<li><a href="http://office.microsoft.com/en-us/access/default.aspx" title="Microsoft Access">Microsoft Access</a>,</li>
<li><a href="http://www.microsoft.com/sqlserver/2008/en/us/default.aspx" title="Microsoft SQL Server">Microsoft SQL Server</a>,</li>
<li><a href="http://www.mysql.com/" title="MySQL">MySQL</a>,</li>
<li><a href="http://www.postgresql.org/" title="PostgreSQL">PostgreSQL</a>,</li>
<li><a href="http://www.sqlite.org/" title="SQLite">SQLite</a> and</li>
<li><a href="http://hsqldb.org/" title="HSQLDB">HSQLDB</a>.</li>
</ul>
<p>I have not yet used:</p>
<ul>
<li><a href="http://www.ibm.com/software/data/db2/" title="IBM DB2">IBM DB2</a>,</li>
<li><a href="http://www.oracle.com/index.html" title="Oracle">Oracle</a>.</li>
</ul>
<p><a href="http://en.wikipedia.org/wiki/Comparison_of_relational_database_management_systems" title="Compare DB Systems">Wikipedia has a list of database systems</a>.</p>
<p>Having worked with this range of database systems and having done copious
amounts of research into DB2, Oracle and other DB systems I have not mentioned,
I like answering the age old questions. Which is the best database system?</p>
<p>Ah! if only it was that simple. There is no database system that is appropriate
for any given requirement. But then, if you have been in the technology sector
long enough, you would already know that. It's all about using the right tool
for the job.</p>
<p>I separate these systems into two broad categories and Oracle. There are the
Desktop based database systems:</p>
<ul>
<li>DBase</li>
<li>Foxpro</li>
<li>SQLite</li>
<li>HSQLDB</li>
<li>Filemaker Pro</li>
<li>Microsoft Access</li>
<li>MySQL</li>
</ul>
<p>DBase, FoxPro, Filemaker Pro and Microsoft Access are essentially a GUI frontend
that has a database backing.</p>
<p>Access is the best choice for this purpose under the majority of circumstances.
Filemaker Pro is relevant in some. The usual reason to use DBase or FoxPro is
simply that the developer is used to it. This is not a good enough reason.</p>
<p>I have used DBase III+ for developing an office management suite back in 1994. I
have since used Filemaker Pro to develop a simple contact management database in
1998, Microsoft Access to develop a patient management system for a clinic.</p>
<p>SQLite, HSQLDB and MySQL are database engines that are to be utilised by popping
a frontend on top; sometimes the frontend is Microsoft Access. Microsoft Access
can also be used for its database engine.</p>
<p>Access is usually the worst choice for this except as a stopgap. There are
exceptions to this. One is for a web frontend if the site is not too busy and
its running on a microsoft platform. You don't have to go to the hassle of
installing anything on the server. The drivers will take care of it all.</p>
<p>HSQLDB becomes an obvious choice for a light java based application and SQLite
for any other lightweight applications.</p>
<p>MySQL is substantially more powerful and scales a lot better. I include it in
this section because it is a server grade database system that can also work
well in a desktop environment.</p>
<p>I have used Access for several web based systems and I have used HSQLDB for unit
testing hibernate and for a quick and dirty MP3 library that linked into
<a href="http://musicbrainz.org/" title="Musicbrainz">musicBrainz</a>. I have used SQLite in
passing to be utilised by open source products.</p>
<p>I have used MySQL with an Access frontend as a management suite for a website as
well.</p>
<p>And we have the server based database systems:</p>
<ul>
<li>MySQL</li>
<li>Microsoft SQL Server</li>
<li>IBM DB2</li>
<li>PostgreSQL</li>
</ul>
<p>MySQL was used as the backed database system for the edFringe.com website. This
was the perfect choice since the most important requirement was speed.
Particuarly with the Query Cache and Master Slave replication, MySQL was the
best choice.</p>
<p>SQL Server was used as the backend system for an online course for the Scottish
Enterprise around 1999/2000. While MySQL would have been a good choice this, it
was not of production quality at the time.</p>
<p>We have also used Ms SQL Server for an insurance company since all the
infrastructure was based on Windows and PostgreSQL did not have a viable Windows
version at the time.</p>
<p>We use PostgreSQL for megabus. While speed is absolutely critical, it is a
ticketing system which means that transactionality is absolutely critical.</p>
<p>While MySQL now has transactionality with innodb, it is still nowhere near as
good as the transactionality provided by PostgreSQL through MVCC (Multi-version
Concurrency Control). We could have used Ms SQL Server but the cost savings are
dramatic.</p>
<p>To summarise, each system has a specific use, specific strengths and weaknesses
and which should be used is highly dependent on what it is to be used for. I am
hopeful that the summary of what we have used each of these systems for us
useful in determining which one is best placed to solve any specific problem :-D</p>
<p>We have not yet used Oracle and it was a strong contender for megabus but the
serious heavyweight functionality provided by Oracle comes at a price and it is
not yet a cost effective option.</p>]]></content:encoded></item></channel></rss>