# Wednesday, December 28, 2011
I have some time to spend on the Street Lane project, so I am having a go at building a Chris Cornell Tramways brass kit of an ex Manchester "Pilcher" tram.  There is a good black and white picture by John Kaye in his Southend Corporation Transport West Riding gallery.  He says
Leeds 286 was one of six 'Pilcher' trams acquired from Manchester in 1948, after a trial car was purchased in 1946. Built in Manchester Corporation's Car Works in 1930-2 they seated 40/22 and were mounted on Peckham P35 trucks.
They were withdrawn between 1951 and 1954. 286 had been repainted into the red/cream livery three days before this photograph at the Hunslet terminus.
This is my first attempt at a brass kit and it has been a steep learning curve.  Some pictures to show progress follow.

         

Challenges to date have focused on soldering brass.  I have ended up using a blow torch end to my gas soldering iron which has given tolerable results.

posted on Wednesday, December 28, 2011 7:27:20 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] Trackback
# Thursday, December 22, 2011
The Information Standards Board for Health and Social Care have published a specification and change documentation
The standard describes how Christmas presents should be allocated to good and bad children in the run up to Christmas Eve. These presents will then be loaded onto Santa’s sleigh for delivery. The standard does not cover the production or delivery of the presents.
The change removes the requirement to provide at least two oranges to naughty children.

posted on Thursday, December 22, 2011 7:03:17 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] Trackback
# Monday, December 12, 2011

OK - like many people I need to get some toner for a colour printer, in my case a Lexmark C530DN

What I hadn't anticipated is that it is consistently cheaper to get a new printer than to get toner. This is madness.

  • Toner for existing printer circa £370 for 3000 sheets = 12.3 pence per sheet
  • Lexmark C543DN circa £135 for 2000 sheets = 6.75 pence per sheet
  • Lexmark C734 circa £375 for 4000 sheets = 9.375 pence per sheet
  • Lexmark C925de A3 circa 599 for 8500 sheets = 7 pence per sheet
  • Toner for C925de £721 for £8500 sheets = 8.5 pence per sheet
  • Black toner for C925de £117 for £8500 sheets = 1.3 pence per sheet

C925de is on its way - should last a year or two. When the toner runs out - buy another!

posted on Monday, December 12, 2011 12:44:33 PM (GMT Standard Time, UTC+00:00)  #    Comments [1] Trackback

Many thanks to Wes Richel for this quote

The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man.

George Bernard Shaw

posted on Monday, December 12, 2011 12:39:59 PM (GMT Standard Time, UTC+00:00)  #    Comments [0] Trackback
# Friday, October 21, 2011
Street Lane, nos. 39-47 Parade of Shops17th August 1935 On the left junction with Shaftesbury Avenue, no 39 Walter Barker grocers shop. Next no 41, Arthur Bentley junior has a bakers shop. George Edward Wormald has a butchers business at no 43. Then at No47 A flag advertising film is hanging from the wall. The shops continue until no 81 is reached at the junction with Sutherland Avenue.
(copyright Leeds Library and Information Service - see www.leodis.net)

posted on Friday, October 21, 2011 4:44:17 AM (GMT Daylight Time, UTC+01:00)  #    Comments [0] Trackback

Street Lane, nos. 39-71
17th August 1935 Shops on Street Lane, to the left no 39, at the junction with Shaftesbury Avenue ending with No 71 on the right. This is a bakers shop, business of Miss Florence Gadsby.

 

(copyright Leeds Library and Information Service - see www.leodis.net)
 

 

posted on Friday, October 21, 2011 4:40:35 AM (GMT Daylight Time, UTC+01:00)  #    Comments [0] Trackback

Street Lane, nos. 59-81 Parade of Shops
19th December 1932 Parade of shops, on the left no 59 are Harry Parsons, chemist and Raymond Malins, ironmonger, sharing a shop entrance. To the right, no 61 is Fred Burniston newsagent and Post office. Babies in their prams are outside the shops. An electric sign for the chemist is on the pavement.

(copyright Leeds Library and Information Service - see www.leodis.net)

posted on Friday, October 21, 2011 4:35:14 AM (GMT Daylight Time, UTC+01:00)  #    Comments [0] Trackback

I thought it would be helpful to provide some pictures of Street Lane in the time period I am modelling, which is just pre-war.  Here is the first of a few pictures:

 

 

Street Lane nos. 47-55 Parade of Shops
19th December 1932 On the left is no 47 Ernest Carrick Foster chemists shop is on the pavement. Next to the right is no 49 H Caress and son, drapers, then no51 Amos Webster, boot and shoe shop. The shops continue Newbys greengrocers at No55 is behind the delivery bike on the pavement. The shops end with no 81, at the junction with Sutherland Avenue.

(copyright Leeds Library and Information Service - see www.leodis.net)

 

 

posted on Friday, October 21, 2011 4:19:33 AM (GMT Daylight Time, UTC+01:00)  #    Comments [0] Trackback
# Saturday, October 08, 2011

Base board for the Street Lane project
This project should occupy quite a lot of my time. The idea came in 1986 when I started collecting model trams from Leeds City. Put simply, I am starting a model tramway, based on the parade of shops along Street Lane in Roundhay, set in 1938. So far the table is built. It is hinged against the wall so that it can be folded away when guests need the room.
Dimensions are 1.2m x 2'6", which reflects the fact that the wood came in metric and I think in feet and inches.

posted on Saturday, October 08, 2011 11:15:07 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] Trackback
# Tuesday, September 28, 2010
I have a content management system developed in visual basic DotNet which I use for some charities I support.  See

http://www.doncasterstgeorges.org.uk
http://www.DoncasterScouts.org.uk and
http://www.26doncaster.org.uk for examples.

Under the hood the data is stored in XML files rather than in a formal database.  I wanted to ensure that the hosted data is secure so have moved from using plain text XML to compressed and encrypted XML.  This has one main benefit - I feel comfortable using an e-mail message with the files attached to back up the data.

This post explains how I did this.  The encryption is using DES which is good enough and symmetric.  The DES service provider is used in many functions and subroutines so I created it as a function.  The compression is using the inbuilt DotNet GZIP compression routine which uses the standard deflate compression.  It seems particularly efficient on XML.

Imports System.Security.Cryptography
Imports System.IO.Compression
Imports System.Xml


    ' Generic code for encrypting XML serialisations


    Public Function DesSP() As DESCryptoServiceProvider
        Dim locDesSP As New DESCryptoServiceProvider
        locDesSP.IV = ASCIIEncoding.ASCII.GetBytes("ABCDEFGH") ' Any 8 characters
        locDesSP.Key = ASCIIEncoding.ASCII.GetBytes("12345678") ' Any 8 characters
        Return locDesSP
    End Function


I opted for a single routine to save any dataset as a compressed and encrypted file since the generic dataset type would suffice.

    Public Sub SaveXMLds(ByVal FileName As String, ByVal DS As DataSet)

        ' This subroutine serialises the specified data set as encrypted XML to the file specified
        ' It works by
        ' 1. creating a CryptoAPITransform using the DESCryptoServiceProvider which is symmetric
        ' 2. creating an filestream writing to a file
        ' 3. creating an encryption stream which uses the CryptoAPITransform to stream to the filestream
        ' 4. creating a compression stream which uses the gZipStream to stream to the encryption stream
        ' 5. creating a streamwriter to write to the encryption stream
        ' 6. creating an XMLwriter to convert the XML serialisation of the data set into a stream
        ' 7. finally, having all the plumbing in place, creating a simple serialisation of the dataset into the XMLwriter

        ' The flow becomes
        ' DataSet -> XML -> XMLWriter -> streamwriter -> Compression stream -> encryption stream -> filestream -> file

        Dim Encryptor As CryptoAPITransform
        Encryptor = DesSP.CreateEncryptor

        Dim OutFile As New FileStream(FileName, FileMode.Create, FileAccess.Write)
        Dim EncryptStream As New CryptoStream(OutFile, Encryptor, CryptoStreamMode.Write)
        Dim CompressStream As New GZipStream(EncryptStream, CompressionMode.Compress)
        Dim OutgoingStream As New StreamWriter(CompressStream)
        Dim OutgoingXML As XmlWriter = XmlWriter.Create(OutgoingStream)

        ' Save the data

        DS.WriteXml(OutgoingXML)

        ' Now time to tidy up afterwards and clean the pipework
        OutgoingXML.Flush()
        OutgoingXML.Close()
        OutgoingStream.Flush()
        OutgoingStream.Close()
        EncryptStream.Flush()
        EncryptStream.Close()

        ' close the file
        OutFile.Close()

    End Sub

For reading the dataset back in I opted for dataset type specific modules, following this example.  The pdsLibrary object in the example is used to cache the data for reads. 

The function is designed to return an XML file if it exists, and then save the XML dataset as a compressed, encrypted file deleting the XML file.  This is to enable the compressed encrypted data to be initially populated.

If the XML version does not exist, the function sets up the streams and reads the data into the typed dataset.


    Dim pdsLibrary As Library

    Public Function GetLibrary() As Library
        Dim fName As String = GetDBPath() + "\Library"
        Dim fNameDS As String = fName + ".zDS"
        Dim fNameXML As String = fName + ".XML"

        If pdsLibrary Is Nothing Then
            pdsLibrary = New Library

            If File.Exists(fNameXML) Then ' an XML file will be used to oferwrite the encrypted file
                pdsLibrary.ReadXml(fNameXML)
                SaveXMLds(fNameDS, pdsLibrary)
                File.Delete(fNameXML)
            ElseIf File.Exists(fNameDS) Then
                Dim Decryptor As CryptoAPITransform
                Decryptor = DesSP.CreateDecryptor
                Dim InFile As New FileStream(fNameDS, FileMode.Open, FileAccess.Read)
                Dim EncryptStream As New CryptoStream(InFile, Decryptor, CryptoStreamMode.Read)
                Dim CompressStream As New GZipStream(EncryptStream, CompressionMode.Decompress)
                Dim IncomingStream As New StreamReader(CompressStream)
                Dim IncomingXML As XmlReader = XmlReader.Create(IncomingStream)
                pdsLibrary.ReadXml(IncomingXML)
            End If
        End If

        GetLibrary = pdsLibrary
    End Function

If you find this useful or have comments, share them with me.

posted on Tuesday, September 28, 2010 12:14:20 PM (GMT Daylight Time, UTC+01:00)  #    Comments [0] Trackback