Iain's IT Solutions Ltd.

Iain's IT Solutions Ltd Mobile Nav Menu

News Archive


March
2019

Upgrading a PHP MySQL web application from PHP version 5.6 to 7.2.  Changes made so far:

- Updated the TCPDF library as it had each() functions which are deprecated.
- Changed the way I create dynamic variables from $$variableName or $$row['name'] to ${$variableName} or ${$row['name']} - so adding curly braces.
- Optional variables in function need a default value.


January
2019

Finally figured out how to deploy and update Excel Add-ins and create nice ribbon menu items to run them.  Uses Custom UI Editor with XML editing, a batch file and a VBScript file.

Adding audit log to PHP MySQL web application.  Storing date and time of change, value before, value after the user who made the change.


April
2017

Installed Visual Studio Community 2017 and upgraded some of my VS2013 applications to 2017.  All seems to have gone okay.


March
2017

Doing a presentation on the range of my IT services to local businesses at the Independents' Breakfast Club

Figuring out the Facebook API.  The aim is to have a news item on my bespoke CMS and post it to Facebook - so a news item can be entered in one place (the CMS) and posted automatically to Facebook.

Working on an MS Office reporting application.  VBA code behind a Form in MS Word is run to import and format data from multiple Excel workbooks.  The result is a nicely formatted report in MS Word which is exported to PDF.


February
2017

Did some testing of Google Cloud Platform - Cloud Spanner.  I was able to create and host a MySQL database on their server.  Perhaps on my next web database project I'll host the database with them.


January
2017

Set up a VPS using Webmin, added a domain and after a lot trial and error, got it working.  Also set up SFTP to upload files to the new domain.  Until now, I've only used cPanel.  This seems to be the level above - good learning experience.

Connecting a C#/Visual Studio/Windows Forms application to a local MySQL database.

Did some testing of HTML5 Local Storage.  It persists nicely if you close the tab, the browser and restart the PC.  It's cleared if you clear browser history and cookies.  Could be useful for a new project where storing data while offline is required - without the need for PDAs or a mobile app.

Redesign/rebrand of my online invoicing system icq32.co.uk.  Responsive/mobile friendly layout with a nice slide-down menu when viewed on a mobile.

Adding throttling to a PHP email sending mechanism.  Emails are sent from a private members website to all signed up members.  Due to sending frequency limits imposed by the web host, we couldn't send to all members in one go, so a cron was used to send emails to subsets of members at timed intervals.


November
2016

Upgrading my website content management system - making it responsive/mobile friendly


October
2016

Working on an Excel application with lots of quite complicated VBA coding. It's using Excel as a database, which has its advantages and disadvantages...


September
2016

Adding a range of new features to a web-based back office invoicing system.

Moving a number of websites from one hosting company to another.  Along with the site files, databases and content, locally hosted emails were also moved.


August
2016

Working on a web-based multiple choice quiz.  Mainly written in JavaScript.  Stats gathered on time taken for each question and users can give feedback on why they got answers right or wrong.

Added a feedback feature to my online invoicing system icq32.co.uk. From any page on the site, users can click a button, type in problems or indeed compliments about that page and send it to me.

It should help promote continuous improvement of the system through user feedback. 

Went live with a clean, simple responsive website furwood.co.uk


July
2016

Building a data backing up tool to back up a large number of large documents on a website.  The process brings together PHP, Cron jobs and a C# desktop application.


June
2016

Working on a range of updates to a php, Web based, mobile friendly CRM system.

Learning about systems and processes needed by companies attaining ISO accreditation. 

Working on creating png images dynamically with php.  What's interesting is that the src of an img tag can be a php file.

Working on a range of updates to an online invoicing and process management system for a builders company.  The system has helped them achieve ISO 9001 accreditation.


April
2016

Making php execute inside css files, so styling info can be pulled from a database.  This has some interesting uses in extending the features of my content management package.  For example users being able to set colours and fonts in the CMS.

Updating the favicon.ico on my site - matching its colour and design roughly to my logo - to maintain brand consistency.

Working on a JavaScript web app - so no PHP involved.  I'm learning some new HTML5 techniques for local data storage and also integrating Google maps via their API.

It's that time of year again - tax return!  It's a straightforward task if you use a nice online invoicing system like www.icq32.co.uk


March
2016

Working my way though my own website - making it responsive/mobile friendly.  Retrofitting responsiveness to a site not originally built as responsive.

Making my website content management system responsive/mobile friendly.


February
2016

Finished making my online invoicing system responsive/mobile friendly - so it makes doing invoicing from your phone a whole lot easier.  https://www.icq32.co.uk

Adding a "Keep me logged in" checkbox to the content management section on one of my sites.

For a website I built with a system for booking into meetings, I added the ability to download the meeting details to a .ics vCalendar file.  This allows users to easily add the entry to their local calendar.

Finally managed to get a sample SQLite database working with C#.  The official site and documentation doesn't make it easy...This should allow me to create a file system based database to work with a C# desktop application.  So no dependency on Microsoft Access being installed.

Installed PhoneGap on my PC & my Android phone - taking my first small steps into app development using HTML/CSS/JS rather than native.


January
2016

Accessing a gmail box with PHP, iterating over emails in the inbox, finding all emails with a particular subject and extracting text from those emails.

Finally figured out how to have parent and child sub-forms in a Visual Studio C# Windows Forms application.  This should make for some nice user interfaces without ending up with loads of individual forms opened at the same time.  It's quite tricky though to get nice - is a lot easier in MS Access.

Doing some testing of my websites on the new Windows 10 Edge browser.  All seems to be working fine - I'm not seeing any major CSS issues.

Taking data from a C#/Windows Forms/SQL Server desktop system and building a process to upload it to a PHP/MySQL web application.  The purpose it to allow read-only access to the desktop data online.  It's a nice project where I'm doing both desktop and web development.


December
2015

Using JQuery to vary the height of a textarea relative to the height of the window, so it always fills the screen and you don't have to scroll to the save button.

Upgrading my Windows 7 Ultimate laptop to Windows 10.  Apart from the new colour scheme being a bit flat, the process was fine - no dramas.

Doing work with a media player embedded in a C#/Visual Studio/Windows Forms desktop application - playing songs, creating playlists and adjusting the playback speed.

Doing some research into using xml as a local database for a c# windows forms application.


November
2015

Rebuilding the indbc.co.uk website with a simple, responsive design, content management and a bespoke module in my CMS to manage members attendance at meetings and events.

Making a start on a new C#/Visual Studio/Windows Forms application which won't have an SQL database.  I'm looking to use the local file system instead.

Upgrades & a 2nd data conversion on a desktop document management system I built using Visual Studio/C#/Windows Forms/SQL Server.


October
2015

Adding upgrades to an MS Word/VBA/MS Forms applications.


September
2015

Using VBA to import awkwardly structured data from Excel to nicely formatted tables in Word.


August
2015

Using jQuery Mobile to add touch-screen swiping to images in an image gallery.

Transferring data from an old slow Windows laptop to a MAC, including iTunes.

Making more parts of my ICQ32.co.uk online invoicing system responsive so it works nicer on a mobile device.

Adding graphs to PDFs on an online ticketing system.

I've pulled my hair out trying to add Facebook share buttons on a site.  I looked into a 3rd party app which could help and found AddToAny.  Looks pretty good and simply to embed a whole range of share buttons.


July
2015

Finally figured out how to pass command line parameters into a C# Windows Forms application.  I pass a command in to the opening of my FTP application to decide whether to download backup files or not.

Working on a jQuery/AJAX form auto-save which saves a form's data to the database discretely (without the page reloading) on a timed interval.  The tricky part was making it work with a tinymce rich text editor, but I got it working.

Added the ability to take hand-written signatures on my ICQ32.co.uk invoicing system.  People can write their signature online with a mouse or with their finger on a touch screen (iPad, iPhone) and the image is stored in the database.  A good step towards paperless signatures.

Working on adding some new features on my online invoicing system icq32.co.uk.


June
2015

I got domain validation working on a MailChimp account, so the "on behalf of" message detailing the MailChimp's mailserver is no longer displayed in recipients Outlook From field.

Finally got round to doing some AJAX work with JQuery & JSON.  JQuery really does make life easier.

I'm working on a multi-select, checked, dropdown control for an ASP intranet web application.  It's the first time I've made one of these.  It works very nice.

Planning stages of making mobile friendly, responsive versions of two of my existing sites.  Demand for mobile friendly sites is increasing and I'm offering it as standard now on new sites.

Changing my domain email service provider for myself and some of my clients.  Compared to free email accounts, domain email is such an expensive hassle...

Updating a C# console application which is run from a Windows Service.  The service runs on a Windows server.  It kicks off the .exe application which polls every 10 seconds, looking for text files, parses out their contents and puts it into an SQL Server database.

I'm adding a set of updates and new features to a Visual Studio/Windows Forms/C#/SQL Server desktop application.

I'm continuing work on a Microsoft Visual Web Developer/VB.Net/SQL Server/ASP intranet application.

Re-coding the Blackheath Luncheon Club website - removing all the code generated by the software package the site with was designed with and re-coding with my own hand-written html/css/js/php.  It should make maintenance and updating of the site a whole lot easier.

Adding my custom CMS package to an existing website.


May
2015

Starting work on a web application which hosts all my application user manuals - so a central places for all manuals which I and my clients can update.  A better process than Word docs floating back and forward or a web site which only I can update.


April
2015

Using TCPDF and JPGraph to build a PDF report into an online helpdesk ticketing system.  The report contains text, tabulated and bar chart data.


March
2015

Various updates to an online quoting and invoicing system built on my ICQ32.co.uk invoicing system.

Trying to figure out a Drupal website...it's very difficult.


February
2015

Used Visual Studio to build my first Windows Service.  I used 'installutil' to install it and can see it on the list of Component Services

I use SQL Server almost every day, but for some reason the service doesn't start automatically - despite it being set to automatic.  So I made a small batch (.bat) file which starts the service.  I can run this file with a couple of keystrokes, so makes starting the service very quick.


January
2015

Started work on a new project - a C#/SQL Server/Windows Forms/Visual Studio desktop application for managing and creating documents.

Finally made a breakthrough with fully automated MySQL database creation for my ICQ32 online invoicing system. A very slick signup process will be coming soon.


December
2014

Using imap libraries in PHP to iterate over emails in a mail box. This opens up all kinds of interesting possibilities - such as what I've done here in this news feed - if I send a news item in a structured email to a particular email account, it's picked up and fed onto my site, so saves having to log into the content management to put up a news item.

Adding a custom button to a tinymce rich text editor toolbar.  It inserts a placeholder at the cursor position which is used by the php tcpdf pdf creation library to force a page break at that point.

Doing some basic photo editing with Microsoft Picture Manager and trusty old Paint.  Also using Pixlr to copy sections of a photo and add a drop shadow.  This is one of my weakest areas as as I find Photoshop impossible - but am making some progress.

Integrating the sending of SMS messages into a C#/Windows Forms/SQL Server desktop system

Adding new recurring diary entries to my icq32.co.uk online invoicing system - including a custom one of '3rd Wednesday of Every Month'


November
2014

Installing a kitchen in my new flat by myself and quite enjoying the process.  I've bought a circular saw and a spirit level and everything - using a laser range finder is particularly satisfying...


September
2014

Moving house across South London to Greenwich.  I lost my old land line number - which is annoying - so I've put my new one on my contact page - will updated on my other sites as soon as I get time.


August
2014

On the diary of my ICQ32 invoicing system, I used the jQuery HoverIntent plugin to add a delay to the pop-ups showing full details of each diary entry - so the divs don't pop-up when you move the cursor across the screen.  Works really nicely.

Adding some enhancements to the reports on my guest house availability calendar app - RoomCalendar.co.uk.

Giving my personal recipes website a responsive design.  Is a very basic site with 6 pages and took the best part of a day to redesign.  It did have a jQuery mobile version on a sub-domain, and although it was nice, I never really liked it - I prefer this responsive design.
http://www.handymatch.co.uk/

Foraging for apples and plums and making stewed apples, plum jam, Chinese plum sauce and plum juice.  The fruit this year is really good and my freezer is filling up!

Tidying and upgrading some of the code in my website content management package.

Added a filter to one of my Excel Spreadsheets.  Used VBA code.  When I type some text in a cell and hit Enter, rows containing that text are displayed and rows which don't contain it are hidden.  As it's custom, the filter can look across multiple columns.

Using Chart.js to add some nice bar charts, line graphs and pie charts to some of my web applications.  I've added some nice bar charts to my ICQ32.co.uk online invoicing system.


July
2014

Just found a bug and solved quite a satisfying problem on a client's website (which I support, but someone else built!).  If you have any problems or errors on your website or web application - perhaps with PHP/JavaScript/CMS/HTML/CSS - get in touch - I may be able to help.

Made SEO friendly URLs for my blog items on this site - by adding the blog title to the URL.  The ID is parsed so no need to ensure unique titles.  This also means the old URL which only has the ID will continue to work - as they've been indexed in Google.

Speeding up the availability report on my RoomCalendar.co.uk site.


June
2014

Added a web page meta tags extractor to the Developer Tools section of my site.  Good for quickly pulling the page titles and descriptions when doing some SEO work.

Google Fonts.  Looked into and tested installing a font on a webpage from the Google Fonts library.  Looks like a good way to get more interesting fonts on a webpage without using images.


May
2014

Ongoing work on the ASP.NET/VB.NET/SQL Server intranet web application

Researching eCommerce - bespoke V's package.  I'd prefer to do bespoke, but I think using a package is a better solution for the client.

Making a plan to do my tax return soon - should be straightforward with my online invoicing system icq32.co.uk


April
2014

Early stages of building an ASP.NET/VB.NET/SQL Server intranet web application

Adding Sage CSV export to an PHP/MySQL accounting web application


March
2014

Went live with a new section to the Francis Drake Bowls Club website - the league fixtures and results.  The results of each match at entered into the content management.  Calculations are done automatically to total up the results and generate the league table.

My scanner doesn't have a feeder, so only scans one page to pdf at a time.  To create multi-page scanned pdfs I wrote a small C# console application to merge pdfs together.

Found a new HTML5 thing today - a data attribute.  Add this to an element "data-someattribute='value'" and retrieve it with jQuery with $(elem).data("someattribute").  Really handy way to pass extra data on complicated web apps.  "someattribute" has to be all lower case.


February
2014

One of my external hard drives packed up - couldn't browse files/folders with explorer and it kept asking me to format the drive - which I didn't.  Downloaded some recovery software and after it ran for around 24hrs, the recovery worked and I got my files back!

Had a look into making a Chrome Extension.  Got a "hello world" one working, just need a project now to develop a real one.

Using tcpdf to create some very pretty pdfs on a PHP/MySQL web application.

Adding a diary to the icq32.co.uk invoicing system.

Finally got round to setting up a client mailing list and sending my first newsletter.  Trying out MailChimp.


January
2014

Went live with a new website www.TheLiftCompany.org.uk

Working with sftp for the first time.  I had to install Swish to allow remote browsing with Windows Explorer - which works well, although it keeps timing out after a minute or so, then Explorer freezes - very annoying.  There can also be a delay after uploading a file and it working on the website - also very annoying... - Because the timing out is so infuriation, I did some research, downloaded the SSH.net dll, added it to my C# ftp application and coded in sftp uploading.

Pulling my hair out trying set up a new PC with Windows 8...has taken the best part of a day and I'm still not done.  Installing 83 Windows updates, downloading the huge Windows 8.1 upgrade (left that download running over-night), taking too long figuring out how to close windows and how to set the IE10 home page and all while navigating between the 2 different desktops.


December
2013

Ongoing work on the accounting and CRM system, with the responsive design.  Using tcpdf to produce very pretty pdf quotes.

About to start work on designing a mobile version of the Security Keyholding website 


November
2013

Trying to cut images from their background - I find it almost impossible with PhotoShop - but I found this site which works really well.  clippingmagic.com  A couple needed some touching up - some erasing with pixlr.com/editor/ another really good image editing tool.  I use Inkscape for drawing small, simple vector graphics - the combination of these 3 tools is very useful.

For the first time, had a shot of a Nokia Lumia phone with Windows OS - was able to test my mobile and responsive sites - all working nicely.

As part of this site - for the first time I've made a drop-down navigation menu - under the Developer Tools and Web Apps items.

Redesigned this site and went live.  Has content management and nice urls.  Makes updating this news feed and my clients list a lot easier.  I also updated my htaccess to redirect old html pages to their new equivalents - so inbound links aren't broken.  The site has a font installed for the large home page text - first time I've done that.

Started work on a CRM, sales and accounting system for a lift company.  PHP/MySQL web application which has a responsive design so the one system can be used on desktop and mobile devices.


October
2013

Went live with with an eCommerce online shop Angela McNeill Interiors.

Upgrading the content management on an existing site

Add an SSL certificate to one of my web applications.

Working on a mobile version of one of my other sites - details to come when it's live.

Went live with a bespoke quoting, invoicing and accounts system built from a stand-alone copy of my icq32.co.uk invoicing system.

Building two content managed websites.


September
2013

Made my image gallery website plugin responsive, so it's size adjusts automatically based on screen size.

Went live with a new website I designed and built. D. Baggia - Mobile Knife Grinding. This also has a mobile version.

Went live with a new content managed website for a chimney sweep/stove installer. LondonAndKentChimneyServices.co.uk

Built myself MS Access database - imports all my sent emails from Outlook and allows me to do advanced searching.


August
2013

Integrating PayPal online payments into my icq32.co.uk invoicing system.

Implementing .htaccess rules to give the above site nice urls

Adding new features to an SQL Server/C#/Windows Forms desktop application.

Upgrades to my icq32.co.uk online invoicing system - allowing users to set up usernames and passwords for their clients - to let them log in to view (read only) their invoices and quotes.

Redesign of my clients page


July
2013

Went live with a new content managed website for a local bowls club. FrancisDrakeBowlsClub.org

Invoicing, quotes, purchase orders and expenses system - built on a stand-alone copy of my ICQ32 accounts package - includes Sage CSV export.

Upgrades to an Microsoft Word/Microsoft Forms document creation macro

Series of behind-the-scenes upgrades and refinements to icq32.co.uk invoicing system


June
2013

Visual Studio/C#/SQL Server database development - including creating HTML documents optimised for iPhone browser.

Adding PayPal eCommerce to an existing website

Transitioning from a sole trader to a limited company


May
2013

Sourcing and testing a JavaScript rich text editor for my content managed sites - and a JS data picker

Writing a general use image compressing routine in PHP

Tax return - straight-forward task using my icq32.co.uk invoicing system.

Building a work diary web application for my own projects - to record all the work I do and time taken to show to clients


April
2013

Excel VBA function to convert an Excel table into a MySQL INSERT statement (saving Excel to csv and uploading with PHPMyAdmin just didn't work where the data contained single quotes and speech marks)

Excel VBA work

Adding a csv invoice uploader to ICQ32.co.uk

Bunch of small upgrades to ICQ32.co.uk online invoicing


March
2013

Desktop app which runs in my tray, clicking it shows a list of links to documents and folders I use regularly - to allow me to access them quickly.

Using InkScape to make a repository of images used in my various websites. For example delete, add, modify, save icons.

Replacing the PHP MySQL extensions with MySQLi and building a new PHP database handling class to process all database calls

Expanding an existing website - adding a Bikes For Sale section to TriumphHincklyParts.co.uk and building content management - allowing the client to upload details and photos of bikes they have for sale


February
2013

Starting to use the 960 grid system library to allow me to lay web pages out quicker

Bespoke mailing list for sending out mailshots

Taking over support of the RelianceLifts.co.uk website


January
2013

Access database for quote generating and storing parts details for a lift engineering company - includes embedding a web browser controls in a MS Access forms

Some refinements to my FTP tool - allowing me to easily open a network location in Windows Explorer

Redesigning the clients page on my ICQ32.co.uk invoicing system - removing the AJAX

Excel VBA report merging macro


December
2012

HTML5 drag and drop file uploading

Adding wee Christmas tree to this page - HTML5 Canvas with JavaScript flashing lights.

Pulling my hair out trying to learn the basics of Photoshop

Building new mini availability report for RoomCalendar.co.uk


November
2012

Fully taking over all aspects Blackheath Luncheon Club website

Providing remote Excel support to the head chef of the Dubai royal family yacht

Setting up Google AdWords for a client

New website - LiftPro - London Lift Engineers


October
2012

Connecting Microsoft Access database to Excel spreadsheet to do reporting on my bank transactions

Adding a new custom module to my online invoicing system for one client

Automating Excel report compiling

New availability report layout for RoomCalendar.co.uk


September
2012

Improving search facility on the Triumph Hinckley Parts website

Adding some Amazon affiliate marketing to my blog

Adding data backup to Angela McNeill Interiors content management - including zipping photos


August
2012

Creating a free version of RoomCalendar.co.uk - guesthouse availability calendar

Adding some enhancements to my eCommerce shop - users can now add options to products for buyers to choose - lists of colours, sizes for example

Completing my tax return with the help of the Tax report I added my ICQ32 online invoicing system.

Have taken over support and development of a Visual Studio/C#/SQL Server desktop application


July
2012

Some Excel VBA macro work

Redesign of the site Angela McNeill Interiors

Adding content management to the Blackheath Luncheon Club website

Adding a shop to this site


June
2012

Excel2Web - tool to upload your Excel spreadsheets to the web

Upgrades to ICQ32.co.uk online invoicing

Website mailing list application

Excel multi-currency bespoke invoicing application


May
2012

New website project with content management TriumphHinckleyParts.co.uk

ASP to PHP website conversion

eCommerce site, with shopping basket and payment integration

ICQ32 online invoicing upgrades


April
2012

Adding a bookings module to Room Calendar

Content updates on three websites

Adding an expenses module to ICQ32 online invoicing

Upgrades an Excel VBA spreadsheet macro


March
2012

Upgrading and adding PDF email support to a contractor maintenance web application

Styling & integrating a WordPress blog into an existing website

Some enhancements to my FTP file uploading tool


February
2012

Adding some nice HTML5 tweaks to this site

Building 2 websites - PhotoShop PSD to HTML/CSS/JavaScript conversion

ICQ invoicing upgrades: Adding data backups users can run themselves, users can now have details of 2 bank accounts they?d like their invoices paid to, enabled html formatting tags to be applied to invoice & details, improved the Sent emails report, emails to clients can now have uploaded attachments and some other refinements

Fix to RoomCalendar to properly record half day check-in/check-out


January
2012

Installing and testing my sites on IE9

Building a live support/instant messenger

Adding email alerts to my blog

Adding new reports to the ICQ invoicing application


December
2011

Re-branding ICQ homepage

Adding purchase orders to ICQ online invoicing

Adding new features to RoomCalendar.co.uk - guesthouse room availability web app

Adding a regular expression tester to my site


November
2011

Adding a text extractor to my site - for email addresses and URLs

Adding multiple currencies to the invoicing web app

Upgrading the email audit log in the ICQ online invoicing system

Small upgrade to one of my Excel/SQL Server applications


October
2011

New build: Online human resources system

Adding a Services section to my site


September
2011

Adding a read-only user login profile to the ICQ invoicing system

New build: Room availability calendar for guesthouse/B&B/hotel

Adding recurring invoices to the ICQ invoicing system

Adding a CAPTCHA image to my blog as it was getting spammed


August
2011

Refinements and new report for the online stock/sales system

Adding a blog to this site

Adding thank-you emails to the ICQ invoicing system

Redesign of my own website

New build: Online stock control, sales and reporting

New build: Online invoicing system

On my C#/Windows Form FTP application I added a command line parameter to toggle downloading/not downloading all data backup files. By turning off the downloading, the tool opens really quickly and I can open an instance of it while another instance is opening and downloading.