Software Development

Industrial Programming Case Study – Glasgow Watersports

Prior to Xyroh, Andy was the founder of dotUK (A software development firm based out of Yarm and Stockton on Tees here in the North East),  again specialising as a developer in mobile apps, web applications and desktop software for a number of business clients – this is one of those portfolio case studies for an industrial programming project

Industrial Programming

Industrial Programming is a term reserved for the programming of industrial equipment, pumps, valves, etc to control and monitor any number of simplex or complex scenarios. In many small business scenarios the distinction is being blurred with the advent of ‘Internet of Things’ products such as Hue Lights, Ring doorbells, Tado home heating automation etc – the concept however is the same, you turn things on and off.

In this case we are using a combination of a web and mobile based dashboard to turn on and off the paddle sports course pumps as required, the dashboards being the visible, more traditional development side, but the industrial programming being what happens behind the scenes to interface with the pump infrastructure.

Project Summary

The Glasgow Watersports project is a multi phased industrial programming project that will ultimately empower the user to control and administer the canoe course pumps and lighting from mobile devices, and place site bookings over the web.

The core control system part of the project allows for programmatic control of the sites pump, lighting, and klaxon systems using the industry standard Modbus protocol. This is being offered in conjunction with Retroflo, a North East based Electrical Contractors and bringing on board their expertise in industrial process control.

Glasgow Watersports Industrial Programming Dashboard

The full flow of the development will commence with a web based booking system provided by dotUK, end user bookings are then pushed privately to the Glasgow Watersports site where the onsite infrastructure will allow users to access their booking and the control systems via any wifi enabled device.

Local users can then control the pump output (strength of water flow) on demand in accordance with the abilities and expectations of their group.

A full remit of expected industrial safety, and health and safety best practices are of course in place but this investment allows the end user, through dotUK’s software development expertise, to bring control and a more beneficial user experience to the end user.

Release 1.0 of XyrohLib,

Release 1.0 of XyrohLib, our multi platform C# interface to a number of common crash reporting and logging services;

– Log file recycles at 1MB or at a customisable int (bytes) value, eg

– Can get full log file path back from Lib

https://github.com/Xyroh/…

The case for ‘App Watcher’

App Watcher is a new service (actually that’s a fib, it’s been around more than 3 years, so that’s not a good start!), it’s a new ‘public’ service I offer that anyone can sign up to. So who is it for, what does it do, and what do you get for your £25.00 a month.

So who is it for? Anyone who has a website, eCommerce store, cloud app, mobile app backend or any other publicly available web based endpoint – so that’s all of us then! More importantly this should be something you depend upon, a revenue stream or application without which your business will struggle to operate. Within that it’s geared more towards the SME sector who don’t have dedicated, fully skilled IT and developer support on hand 24/7 – that combination is where App Watcher is of value.

Image

What does it do? Well on it’s own it merely monitors, it checks periodically to make sure that the monitored web service is up and responding – and then let’s you know if anything looks amiss – normally by email and / or SMS. Additionally we also keep an eye on the related domain name and any attached SSL Certificate to warn you when they are likely to expire so you can mitigate downtime before it happens – however none of that is particularly new, if all you want is monitors and alerts then there are great services already out there such as Pingdom for one that will look after.

So our justification, is the worst case scenario, we offer peace of mind that there will be real, dedicated, independent human support available – and already investigating – should your monitored web site, app or presence go down unexpectedly. As soon as is practical we will manually investigate, diagnose, and provide a report back letting you know exactly where the problem lies, and give you and indication as to who to speak to to get it resolved – and remain accessible until it’s back.

Consider the scenario, you’ve commissioned an e-commerce store a few years back, they person on staff familiar with the details is has since left, but the store is up and running, earning you money, and all is good – until the day it stops. What’s wrong, and how do you fix it?

  • Has the domain name expired? Ex employee registered a few domains – always good to keep control of your domains and not leave it to the hosting company, but who did he register them with? Have we paid the bill.
  • Who is it hosted with, possibly the developer you originally contracted, but you don’t have much to deal with her now as the site is all done, and chances are she set that up with a third party anyway, or even a reseller – will they act on out instructions, or was the hosting with the domain name company?
  • Or could it be the SSL Cert, vague memory of our IT firm setting something up, or was that for the mail server – I forget.
  • Where to start, and who do you trust, no one likes admitting an error so are the answers you’re getting back ones you can trust?

Image
This is where we come in, we’re independent so no vested interest in anything other than being truthful and honest. We also have years of experience, we know where to look, what to test, and how to come to a quick, accurate conclusion – and more importantly communicate that to you in ways that are useful, relevant, and helpful to pointing you in the direction of the resolution to your woes.

We’ll also provide you with a written report to use for your records, or to forward on upstream to any interested parties to help you bypass their first line support and give hard facts to the engineers that can resolve it, after all we’ve done the detective work for them.

All that, an insurance if you will, from just £25.00 per month, and no risk to you as no minimum term, you can cancel when you wish. To signup our see the options just head over to our signup page to get started or if you have any questions just drop us a message via help@xyroh.com.

Look forward to having you onboard.

Oops – How to fix when you’ve upgraded Visual Studio for Mac / Xamarin iOS and now being forced to upgrade Xcode and to Catalina 😬

What went wrong?

So, here’s the scenario, fire up Visual Studio for the Mac, not enough caffeine in the system, an ‘updates’ box pop up,  a Xamarin iOS update amongst many, you click ok, then instant regret 😟. Why you may ask, an update is good? No? Well not here.  Like many developers I have a reluctance to go to Mac OS Catalina (a lot of changes, and too many issues) and am quite happy in the stable, stable land of Mojave. So what have I done?

In essence I’ve upgraded the version of Xamarin iOS from somewhere in the 12.x range to 13.16. I knew the second I’d upgraded it had gone wrong, but opening a Xamarin iOS / Forms project instantly told me.  My selected version of Xamarin iOS required an Xcode upgrade to 11.x.  Off to the App Store I go, just to confirm, and of course;

UntitledImage

Mojave of course is 10.14, Catalina 10.15, so I have to upgrade right, and lose a day of productivity (or more) with it? Wrong.

The fix

So, the solution, first off come out of Visual Studio for Mac, and then drop to Terminal app.  Execute these commands line by line (entering your admin password when required);

rm -rf ~/Library/MonoTouch
sudo rm -rf /Library/Frameworks/Xamarin.iOS.framework
sudo rm -rf /Developer/MonoTouch
sudo pkgutil --forget com.xamarin.monotouch.pkg
sudo pkgutil --forget com.xamarin.xamarin-ios-build-host.pkg
sudo pkgutil --forget com.xamarin.xamarin.ios.pkg

In the meantime I had downloaded the latest 12.16 release of Xamarin iOS.  For me this is https://dl.xamarin.com/Mo… however your requirements may vary.  Should be as simple as tweaking the download url to suit, you can find 12.x version numbers over here on the Xamarin iOS 12 release notes page.

Once downloaded simply double click and install the package.  Then fire up Visual Studio for Mac and fingers crossed, all worked fine for me.

About me

Andy Flisher is a Mobile App Developer based in the North East of England with over 20 years software development experience. He is available for hire and specialises in cross platform mobile app development, web applications, desktop software, bespoke cloud architecture solutions and providing outsourced project management services.

What Is a PHP File?

What Is a PHP File? – Original article at Tutsplus

PHP is a server-side scripting language which is mostly used to build web-based applications. These may range from a very simple blog website to a full-fledged eCommerce website for selling products online. In fact, PHP is one of the most popular server-side scripting languages, with a very healthy market share.

For those that like to geek out, or just understand what’s going on under the scenes, the above link is a really good breakdown on how PHP (the server aside scripting language I use for a lot of my development projects) work.

Andy Flisher is a Web Developer based in the North East of England with over 20 years software development experience. He is available for hire and specialises in cross platform mobile app development, web applications, desktop software, bespoke cloud architecture solutions and providing outsourced project management services.

Arcus Platform version 3.0 updates

Busy start to 2020 for the Askaris Arcus platform, big version 3.0 release translating both the portal and offline tablet interfaces into the end users native language, which will be huge for our client’s Brazilian, Norwegian and other global Operations.

Up next will be a multi-year improvement to the Dropped Object inspection framework, and further translation improvements – including a self learning multi language translation process – this will allow reports to be carried out in a a native language and then proof read and translated into multiple additional languages – another huge time saver.

The Arcus platform is used predominantly in the OIl and Gas sector to facilitate audited regulatory inspections, but as a full Asset Management suite it has uses in many other sectors.

#assetmanagement #inspectionsoftware #askaris #arcus

Find out more at – https://askaris.com/

Chrome OS has stalled out – is there a tablet shaped future for Android?

Chrome OS has stalled out:

But Android apps, so far as I can tell, are basically the plan for Chrome. Certainly, Linux environment support is great for enthusiasts and developers, but there are very few commonly-used commercial applications available on Linux, with no sign that will change in the near future.

A comment not so much about Chrome OS, but it’s lack of good tablet optimised applications mirrors that of Android as a whole. The Arcus project I lead for Askaris runs primarily on Android powered tablets, but outside of the Atex rated specialised devices sourcing consistent hardware is a struggle, less and less good Android tablets available, and Chrome OS has probably hindered that, not helped it.

A chicken and an egg, no devices, so no users, so no demand, so no apps. Apple at least has the cash and incentive to have jumped into that cycle and invested / motivated. Outside of Samsung and Google (who keep making poor decisions!) who can do that for Android / Chrome OS?

Updating Apps that Use Web Views – Are you affected?

Updating Apps that Use Web Views – News – Apple Developer:

If your app still embeds web content using the deprecated UIWebView API, we strongly encourage you to update to WKWebView as soon as possible for improved security and reliability. WKWebView ensures that compromised web content doesn’t affect the rest of an app by limiting web processing to the app’s web view. And it’s supported in iOS and macOS, and by Mac Catalyst.
The App Store will no longer accept new apps using UIWebView as of April 2020 and app updates using UIWebView as of December 2020.

In layman terms if your app loads content from the web, eg a webpage or a web application then this could affect you. For Xyroh clients, especially those based on Xamarin forms this should’t be a problem as they already use WkWebView.

Worst affected will be those who have stale apps, or aren’t being regularly supported by the original developers – in those cases please get in touch, we can do an analysis of the original source code, let you know if affected, cost to fix and support going forward, and the side effects of doing nothing – basically let you make an informed decision.

Andy Flisher is a Software Developer based in the North East of England with over 20 years software development experience. He is available for hire and specialises in cross platform mobile app development, web applications, desktop software, bespoke cloud architecture solutions and providing outsourced project management services.

Xamarin Cross Platform Application Development – Book Review

This is a review of the recently published book “Xamarin Cross Platform Application Development” by Jonathan Peppers.

This book is openly marketed at existing, experienced C# developers so it’s certainly not for beginners, and whilst I don’t fall into this category the nature of projects I work in require mostly ‘linear’ development (Web, PHP, Perl, Python, VB etc over the years) so concepts like MVC, MVVM and in particular IOC (Inversion of Control) are newer and less clear. Thankfully this book has resolved that through it’s excellent practical examples.

One area this book doesn’t touch on hugely is the level of planning required for MVC applications, you can’t just ‘jump in and code’, but that’s potentially a book in itself, but what the book does very well for me, is explain the View, ViewModel, Model and Controller concepts in terms of the classes and data layers required. The book also introduces Interfaces (something I always saw as an unnecessary layer of complexity) which I now ‘get’ in terms of flexibility, and in particular to give the developer options in a cross platform environment.

The icing on the cake is ‘Inversion of Control’, whilst the book doesn’t particularly explain this convention in huge detail, I think it is actually to it’s credit, any more and the reader will be bogged down in unnecessary detail and complexity. It basically gives us the service layer that ‘glues’ the application together, allowing use to create and register our ViewModels as Services and thus make them available to use throughout the app with a single line of code. I’m sure that my description is not hugely more constructive than the words in the book themselves, but the working example of the XamChat application completes it.

Which is my main point, am sure many people work differently, but for me working examples of code are what makes it stick in my mind, it helps it all make sense. Throughout this book you will be building bit buy bit a working chat application, firstly in Xamarin.iOS (but using the all important cross platform and code sharing concepts learnt at the beginning of the book), and then re-implementing the same application logic in Xamarin.Android. The nice touch, which some may see as lazy, was that with the Android example you are taken to a certain point and then left to finish off using the examples you already have. A real, and practical exercise which I think will do the reader good. It wouldn’t be a huge leap further to recreate in Windows Phone, for the ultimate practical extension.

The Xamchat application is then extended through the Windows Azure platform to use their backend for data storage (a good example of how the same Interface can be re-used to store on different platforms), and to implement cross platform push notifications.

Lastly there are chapters on using Xamarin Components (including Xamarin.Mobile for Contacts, Camera and Location functionality), and actual App Store submission and their different processes, processes that even the most experienced developer can struggle with (Apple Certificates and Profile expiry anyone!).

In summary, this is an excellent book for any would be cross platform mobile application developer, yes you need a good understanding of C#, MVC and similar concepts, and the individual mobile platforms and general development processes themselves, and those things don’t come over night, but this book binds it all together with real world examples, working code (a novelty for some books) and actual code and methods you can take away and use in the real world.

Buy it, read it, and take as much as you can from it – “Xamarin Cross Platform Application Development” by Jonathan Peppers

Jacksons Law Livetrack – Case Management

Prior to Xyroh, Andy was the founder of dotUK (A software development firm based out of Yarm and Stockton on Tees here in the North East), again specialising as a developer in mobile apps, web applications and desktop software for a number of business clients – this is one of those portfolio case studies

Summary

Jacksons Law is a major North East law firm that advises both commercial and private clients and practices across all core areas of law. Their need was for a central information management portal that they could use to update and share information securely with clients with regards the progress of cases

Technical

Client Jacksons Law LLP – Major North East based Law Firm

Platforms Web

Technologies PHP, CSS, JQuery, Javascript, MySQL, Document Management

Development Web Development

Case Study

Jacksons Law practice law in a wide variety of practice areas and as such the individual needs, or specialisations of case management in one practice area can differ widely from those of another. In addition Jacksons have a wide variety of clients all of whom have a range of individual case and account reporting expectations, the challenge for dotUK was to present a solution that could encompass all needs, yet remain simple and manageable.

With Jacksons operating out of multiple sites, and to alleviate information security issues of allowing external users into their infrastructure it was decided that a web based system would be the most cost effective and simplistic to deploy and mange. In addition it would allow us to operate a mobile optimised interface for end client users that operate on site and on the road.

The system was built with a concept of case ‘Systems’ where a System mapped generally to a specific area of legal practise, eg Personal Injury, Conveyancing, Employment Law etc, in this way we could apply system specific modules to the cases within and

hence extend the specific functionality. This also allowed us to extend Systems for use by key clients, offering an enhanced branding experience for key client end users, enhanced and client specific reports and metrics, and internally SLA highlighting to ensure contractual targets were met.

The overall concept was however kept simple, allowing Jacksons staff to create cases within their permitted systems, allocating cases to end clients and updating cases with notes, attach documents, and report key milestones. In addition modules that allowed the client to keep track of running costs, and report on costs on a cost centre basis were created. External access is managed fully by Jacksons, with a hierarchy of client user permissions that allow data access to be restricted in a granular manner to department heads or end users as required.

The system is accessed over SSL as an industry standard, and is hosted on dotUK’s own Cloud hosting infrastructure here in the North East that allows use to offer high availability, fault tolerance, non interruptive snapshot backups and clustering options based on the clients requirements.

For more information, or to discuss case management or end user self service solutions tailored to your industry requirements please don’t hesitate to contact us for a consultation.