On Simplification in Software Design

Over reliance on a particular simplification in application design leads to an unhealthy monoculture, stifling innovation, increasing extinction potential and in many ways parallel to Ian Nairn’s ‘Outrage’ – an essay on Subtopia, a.k.a.  a tendency towards mono culture in architectural reality across Great Britain.


Overly zealous innovation in application design is disruptive, reducing the economy of scale of all applications in the set, and increasing the cost of ownership.

Some balance is clearly the answer but is there a particular balance that is most appropriate, given a particular organisational size?

BCS Guernsey – Digital Guernsey

“Given the importance of technology for our future well-being, suggestions that Guernsey should aspire to be in the Top 10 global jurisdictions for technology have been both promoted and rubbished by those in government and the wider Guernsey community during 2014.  ”

Titled ‘Digital Guernsey – Do We Have A Hope?’ – this presentation will summarise our current position, highlight some international leaders, look at current local plans and question how organised and resourced we are.  John Hollis, retired from Accenture, the global management consulting and technology firm, as a partner, having run various industry, functional or innovation centre parts of the firm in his 25 years there.  He is currently the Non States Member of the Treasury & Resources Board, States of Guernsey.

Members and Non-Members are welcome – book online at https://events.bcs.org/book/1241/

More information on the activities of the BCS Guernsey International Section is available at http://guernsey.bcs.org/



BCS Guernsey – From the Cold War to the Singularity… and Beyond

Thinking of going to Infosec 2014? Why bother…. Head to sunny Guernsey instead for free sandwiches and an hour of cyber and security insights from Colin Williams of SBL as part of BCS Guernsey’s 2014 lunchtime seminar series…
BCS Guernsey – From the Cold War to the Singularity… And Beyond
See you there!

Cross Application Semantic Back Button

The back button. A curious beast… What does it mean? Back is in the eye of the beholder, until now! To think of all the toil that went into coercing the back button to behave logically under the jsp mvc paradigm… And now, the Android back button works across apps – sacque magique! Open a web link from the facebook app, it opens in chrome. Press the back button and it returns to the facebook app 😀 cross-application-semantic-back-button  w00t!

Channel Island Submarine Cables

How Guernsey and Jersey are connected to the Information Super Highway….

  • http://www.cablemap.info/
  • http://www.submarinecablemap.com


Guernsey Uplinks

Inter Island Links

Jersey Uplinks

Channel Island Shared Uplinks



Permalinks 404 WordPress OSX in Users directory

If you’ve installed wordpress on OSX in your home directory and then enabled permalinks, you will find that you are getting 404’s when viewing your posts. Unless you add the following to your /private/etc/apache2/users/username.conf file. 🙂

<Directory /path/to/wordpress>
    Options Indexes MultiViews SymLinksIfOwnerMatch
    AllowOverride Options FileInfo

HP 1010 Shared from Debian via CUPS to OSX

The print server is on a different subnet to the print clients, so liberal sprinklings of ‘Allow All’ throughout the cupsd.conf file makes the webui ‘servername:631’ accessible from clients.

Use the server’s webui to add the USB connected local printer (the HP Laserjet 1010). Select ‘Share this printer’ and ensure that sharing is enabled in the server’s cupsd.conf file.

Add a ‘BrowsePoll servername:631’ line and a ‘BrowseRemoteProtocols cups’ line to the client’s cupsd.conf file to coerce the client to poll the remote server for printers.

Using the client’s webui, the printer should automatically show up within 30 seconds according to the fine manual.

TSQL Soft Delete

Ever needed to delete several million rows from a database ‘in the background’?

Just running a delete statement would lock the table, preventing any users from writing to it… It would also fill up your transaction log quite rapidly…

So why not batch it into chunks of 1000 and run each in its own transaction. Combined with an optional delay between batches, hardly anyone will notice all those deletions!

Declare CurToDelete Cursor For 

    Select top 9000 LoggingId from Logging 
        where foo like 'bar'

for read only

Open CurToDelete
Declare @DeleteThisId int
Fetch Next From CurToDelete Into @DeleteThisId


    declare @DeleteList table
        id int

    -- Delete in batches of 1000, then pause
    declare @batchsize int
    set @batchsize = 1000
    declare @havedeleted int
    set @havedeleted = 0

   -- put the next 1000 IDs into a TEMP table
    while (@havedeleted<=@batchsize) and @@FETCH_STATUS = 0 

       print cast(@DeleteThisId as varchar)

       insert into @DeleteList values ( @DeleteThisId )

       Fetch Next From CurToDelete Into @DeleteThisId

       set @havedeleted=@havedeleted+1
        --print @havedeleted    


    -- Actually do the deletion
    Begin Transaction

    delete from Logging 
        where LoggingID in (select ID from @DeleteList)
    -- clear the TEMP table
    delete from @DeleteList

    Commit Transaction

    -- Optional Delay
    --print 'waiting for 10...'
    --WaitFor Delay '00:00:10'


Close CurToDelete
deallocate CurToDelete

Ransom Virus + Fix

What a humdinger of a virus – encrypts all Office documents on the machine and switches the login screen to a ‘West Yorkshire Police’ logo and a ‘Pay Now’ button. The very cheek of it! Mcaffee does not know anything about it. Fortunately, Kaspersky have an app to fix it – http://support.kaspersky.com/faq/?qid=208286527 – and it does appear to work. Preventing the nasty login screen from reappearing is simply a case of renaming the executable, which gets dropped within your AppData folder under a randomly generated path.