Category Archives: Web/Internet

Scottish Developers Virtual Meetup

Developer groups quite often go through ups and downs, so after last holding an event back in May 2018 – the last one I attended was DDD Scotland almost three years ago – I thought Scottish Developers had long since disbanded. However I was really pleased to see a new event pop up on Meetup a week or two back organising a pandemic safe online virtual meetup with two very different speakers.

I have to say that one of the definite plus points amongst the numerous negatives for the lockdown is that many groups are discovering online groups and conferences. As the bigger tech hub in Scotland many of the events are held in Glasgow, so whilst I’ve taken days off to go to events like Code Craft Conf back in 2019, evening meetings are a lot more difficult. Going online allows much wider participation, so this event was hosted by Andrew in Caroline who were in different cities, with one speaker in Seattle in the USA, and the other in Aberdeen.

First up was Stephanie Stimac, a Microsoft employee on the Edge team whose talk was about the absolute minefield of HTML controls on web pages. This is a problem that has been around right from the earliest days of the web, and even almost thirty years later is still an issue – if you use the standard HTML controls in a web page by default they will use operating system components in a page and will look and function differently depending on which browser is being used to view the page, and especially if the browser is running on a different platform. This problem has never been fixed, web developers have merely worked around the problems initially by creating their own controls within pages, or more often than not using one of the now numerous frameworks that wrap up solutions to all these problems.

Thankfully, since I work very much in the middleware space, and with a standard browser for internal websites I don’t have to deal with browser complexities in my working life, however this did serve as a reminder of why I’ve always found doing that sort of stuff frustrating. This really is a problem that should have been solved long ago – Stephanie had some interesting statistics part way through her presentation of quite how many hours of developer time have been spend faffing around trying to deal with problems with the controls. Stephanie did offer some cause for hope, but we’re really not there yet.

The second talk, Gary Ewan Park talking about a Build Orchestration Tool called Cake was maybe more relevant to me, especially given that we’re in the process of moving our product builds from an ageing TeamCity platform to a modern Azure DevOps platform.

Although the build in TeamCity and ADO is doing the same task, how it does it is very different between the two, such that we currently have a specialist build team that is effectively recreating the TeamCity build for each of our products in ADO. Cake gets around that problem by moving the build into code. This means that the build can be run locally, and with one line in either TeamCity or ADO can be run the same way there too. The build orchestration is also written in standard C# – so the language that most .Net developers use, rather than particular configuration files for the build platform in use.

We’ll have to see whether we change how builds at work are done – as they’re the responsibility of a separate team who have been working on scripts in ADO specific YAML for a long while, but Cake does seem like a good way around the problem we’ve been having.

Anyway, it was a great restart for the Scottish Developers, and with another virtual meetup tentatively planned for April, hopefully not nearly so long to wait for another one.

If you want to watch the talks, a recording of the whole event is available on YouTube.

Dear Y-Cam Solutions, You’ve Lost a Customer

I’ve been a Y-Cam customer for a long while, I originally had one of their early Y-Cam Black cameras that had a pretty technical setup and was uploading to a local FTP server, I later added one of their newer Y-Cam Knight cameras that included a built in Micro-SD slot but again needed an FTP server to upload to. Over the years I tried a couple of different cloud services that took pictures and video uploaded by FTP to generate alerts.

Then Y-Cam decided to change direction – including cloud storage for images as part of the deal. They didn’t give an option to migrate existing customers onto the new platform, but instead launched a version of the existing camera with new firmware that hooked up to their HomeMonitor service. After doing the maths to work out how much I’d pay in subscription fees for the existing cameras I made the switch, and later bought one of their newer Y-Cam Evo cameras which similarly hooked up to their online service. Both cameras came with seven days of cloud storage for free forever, with options to upgrade to thirty days for a monthly charge. Subsequently the company has also launched an internet connected alarm system again with a monthly fee. I didn’t really need either of these, and just carried on with the free storage option.

The older cameras have been fine, the newer Evo was a bit of a disappointment and would quite frequently lose contact with the Y-Cam cloud servers, and Y-Cam made a total hash of launching a new iOS app so for a long while whilst the cameras would trigger and record video they wouldn’t actually raise alerts. They’ve never managed to handle having multiple users using the app properly so whilst our tadoº heating system app will switch the heating off when the last person leaves, and back on when the first person returns, whatever order we leave and come back in, the Y-Cam app can only handle locations from a single phone leading to a whole load of unnecessary alerts. Y-Cam have also consistently refused to allow their cameras to integrate in with any of the burgeoning home automation platforms such as Apple Homekit, Amazon Alexa or Google Home, or even allow their cameras to be accessed by integration platforms like If This Then That that could allow users to work around their limitations. However I’ve stuck with Y-Cam having invested in the cameras and because of the free storage.

Then this week I and all the other Y-Cam users got an e-mail from the company telling us that forever is actually ending in fourteen days, when the company will require us all to pay a monthly fee for each camera, or transfer to one of their higher cost services. No option to switch the camera to using local storage – either pay them a fee or they brick our cameras rendering them useless. The explanation in the email makes it pretty clear what has happened:

We have endeavoured to provide our cloud camera service and support without making a monthly subscription mandatory. However, it is no longer possible to continue without requiring a monthly fee to cover the cost of providing a service for Y-cam cloud camera users.

Basically their promotional material suggesting that all you need is their free service has worked rather too well, and the whole model was actually dependent on being able to up-sell users to the extended thirty day storage service, or to one of their alarms. The problem now is that rather than dropping the seven day storage for new customers and honouring the promise of seven day storage forever for the existing customers, they’ve decided to charge everybody, the result is a lot of very upset customers – search Twitter for some of the responses.

That left me with a choice, do I pay them, or switch platform? To be blunt having been early leaders in IP cameras they’ve rather been left behind, and certainly the existing cameras don’t really perform as well as I’d like. The connectivity issues, inability to have multiple users locations tracked to deactivate the cameras and the lousy software updates were just annoying on a free service, given my experience and the tacit admission in the e-mail that the company is in financial trouble doesn’t really give me confidence that if I pay up things will get any better.  If they’d actually fixed the location issues our cameras would be uploading a lot less footage to their cloud servers anyway, one of the reasons their cloud storage is costing so much is because the software is poor.

The old cameras still work fine, so I can swap back to using personal cloud storage, and having talked with colleagues who are running other cameras, yesterday I bought a Netatmo Welcome. Unlike Y-Cam who haven’t really much changed what their cameras do over the past decade, Netatmo have been innovating with facial recognition so the camera will only trigger if it sees someone it doesn’t recognise. Also rather than tie you to their cloud service Netatmo allow you to load footage to FTP or Dropbox much as Y-Cam did in the past. Apple Homekit integration is already in beta, and they have an extensive selection of actions on If This Then That allowing you to trigger all sorts of home automation from the camera.

The camera turned up today, and is now all set up and working – it wasn’t all plain sailing though as the automated setup struggled to connect to the Netatmo web service. After some digging around and a good deal of frustration this turned out to be because the camera uses an IPSec VPN to connect to the server. My current router is a Billion BiPAC 8800NL which has a whole set of Application Layer Gateway options including one for IPSec that was turned on, there are a number of online discussions suggesting that the BiPAC 8800NL Application Layer Gateway IPSec option breaks the Cisco Anyconnect Secure Mobile Client VPN and that the option should be shut off, so I tried turning it off on my router and the Netatmo camera instantly started working.

So after the teething troubles I now have one Y-Cam camera replaced, and if Y-Cam don’t relent and either grandfather existing customers, or issue firmware that allows us to use alternative storage, the other will go soon too. Y-Cam is a great example of a company that had a good start in the IP camera market, but managed to squander it – if they’d innovated maybe I’d have stayed, but paying for a service that had been sold to me as free, no way. Y-Cam’s loss is a gain for Netatmo.

Crowdsourced Flight Tracking

Earlier this week I had to head off to the airport to pick my wife up as she came back in on a transatlantic flight. As I’ve often done before I kept an eye on the flight using Flightradar24, and the Plane Finder app on my phone and the Apple TV.

Taking a look at the Flightradar24 site the Add Coverage link caught my eye – as I didn’t think there would be many people around with a spare radar station sitting around! However after a bit of reading it transpired that I didn’t need it.

Whilst in the past the online flight sites have been taking data from publicly available air traffic control feeds, now they are increasingly getting data picked up from ADS-B transmitters that aircraft increasingly use. Essentially each ADS-B equipped plane broadcasts a signal which encodes the location of the plane along with other details about their flight such as heading and altitude. The big advantage of the system is in areas that lack radar coverage improving safety, but since the signals broadcast on a similar frequency to DVB-T TV pictures it also means that a simple USB DVB-T receiver plugged into a home computer can be used to pick up the signals from the aircraft as well.

Given the really low cost of entry sites like FlightRadar24, PlaneFinder and FlightAware are significantly augmenting their data by offering their premium accounts for free to home users who supply data. You can use an existing PC, Mac or Linux box, but in order to get the account you need the computer to be running all the time, so a small low power computer like a Raspberry Pi is a much better option, and that is what is all three sites are suggesting. Whilst you could spend a large amount of money on fancy roof mounted aerials from my reading I figured that since we are located under the approach to Heathrow airport even the basic general purpose aerial that comes with the USB receiver would be enough to pick up a few planes. Additionally if I could get the Raspberry Pi feeding to all three sites – and there were plenty of people online saying that you could – I could get three premium accounts even for the potentially pretty small number of flights I could pick up.

So I drew up a shopping list.

First off, not having a USB DVB-T receiver I needed something to pick up the signals. I opted for the NooElec NESDR Mini 2 USB RTL-SDR & ADS-B Receiver Set which seemed to have pretty good reviews and which a number of people online were using – it also only cost £17.95 and included a basic aerial. I also needed a Raspberry Pi as although we have one, it’s part of the kids Kano so not something I can take over. I did look at whether to get the new Raspberry Pi 3, but since I didn’t need the extra speed or wifi I saved £6 and got the older Raspberry Pi 2 instead for £25.99. I also picked up a power supply, Raspberry Pi Case and memory card, and had all the bits for my DIY aircraft tracker for under £100.

Setting up the Raspberry Pi is pretty straightforward, you just need to grab a copy of the Raspbian operating system, install it onto the memory card and off you go. In fact you don’t even need a screen, keyboard and mouse if you have a bootable copy of the OS on the card as by default it has SSH access enabled so as long as it is plugged into a network once it is booted up you can access the Pi.

Once it was up and running, I initially opted for FlightRadar24, for no other reason as that was the site I’d initially read about feeding data from. That proved to be a bit of a mistake from the point of view of feeding to all three sites simultaneously. The basic idea is that you use the software from one site as the master feed, and then hook the other two bits of feeder software up to the third party data feed of the third. The trick seems to be to use the FlightAware software as the master feed and then tell the other two bits of software that they are talking to a receiver on port 30005 of localhost, then all three play nicely together. Once I’d swapped around and reinstalled the FlightAware software first I pretty soon had all three up and running and feeding data to their respective sites, alongside giving me information locally. If you start with the FlightAware software and a brand new SD card, you could also opt for their custom build of Raspbian with PiAware preinstalled which makes life a bit easier and is configured for optimal performance as a scanner.

There is a bit of variation between the software experiences. FlightAware is very much a command line setup, and connects to an account via username and password. Their local software is a simple page with a map of the planes and a list of their details. They have a much better experience on their main website, with probably the most detailed statistics on the performance of your receiver of the three sites. FlightRadar24 has a slightly better process, but still command line based, although when it is up and running the website is very basic just showing a list of the planes. You can however change the settings from the local website and restart without resorting to the command line. Plane Finder is by far the nicest local installation with an easy to use web based setup, and a nice local website that will give you a visualisation of the planes that your receiver is picking up, detailed log files, statistics of the performance of your receiver and the communication link with the internet, along with a web based settings page to reconfigure the software. Whilst all the sites give detailed step-by-step instructions that can guide a novice through, Plane Finder is by far the friendliest user experience.

So the big question is how well does it work?

IMG_5798I wasn’t expecting much from my little aerial sat on top of a filing cabinet in my office, but I was amazed. It’s certainly not picking up planes 200 miles away as a roof mounted aerial would, but it is picking up lots of flights within 50 miles, and one or two from a lot further away. It certainly picks up flights going in and out of Heathrow, especially when they’re coming in over Reading, along with quite a few flights over towards Gatwick and flights from further afield passing over the UK. In the forty-eight hours I’ve had it running it has picked up 2,859 distinct aircraft! If you compare my local radar view with the main site pages it’s clear I’m not getting everything, but I’m impressed by how many I’m picking up considering the cheap aerial and kit I’m using. Certainly if I wanted to spend a lot more money and get a proper roof mounted aerial I could probably track a load more.

So if you fancy a simple little project that’s not going to break the bank, and also want to contribute data to crowdsourced aircraft tracking I can certainly recommend building a Raspberry Pi based ADS-B tracker, and as a bonus you get access to all the fancy premium features on three of the main aircraft tracking sites. If you live in a populated area you’ll really only be adding resilience to the network, but if you’re in a more rural area there are definite gaps in coverage – there is a good map showing coverage on the FlightAware site – aside from that it’s also really quite fun if you’ve got kids to be able to point out a plane going overhead and say where the plane is travelling from or to.

Taxi

Recently I’ve been playing around with taxi apps on my phone.

For a while I’ve had Hailo on my iPhone for when I am in London, which is an app from a London startup that allows you to hail a black cab from your phone, but whilst that has expanded to other cities worldwide it doesn’t work in the UK anywhere outside the capital, so for day to day it’s not much use when I’m at home in the depths of Berkshire.

Since Hailo appeared, other competitors have turned up, the biggest and most notorious being Uber. The Moovit app that I have had on my phone for a while also for keeping track of buses and trains I’m using has had an Uber link up for a while, but again it hasn’t been that much use because Uber really only operated in the capital, however recently I noticed that rather than saying no cars available it would more frequently come up with availability for a car, particularly when I was in Reading. Whilst the company hadn’t officially expanded to Reading, they had expanded west along the M4 from London into Slough, Windsor and Maidenhead, and what I was seeing was cars who had carried passengers to Maidenhead becoming available when they had dropped their passengers in Reading and were heading back.

That caused me to take a look again and see whether any of the multitude of apps were usable for someone who didn’t live in the capital.

Hallo was definitely still only working with London black cabs, but GetTaxi, an Israeli startup with a similar concept to Hailo was now operating with the black cabs that operate in Reading. The only downside is that their service doesn’t operate outside Reading so whilst I could order a cab from Reading to home, I couldn’t request one in the reverse direction.

IMG_5766Uber would very occasionally offer me a ride even at home, but not often enough to rely on, so it looked like maybe there still wasn’t a viable option. However I came across another alternative thanks to a blogger I’d come across who worked as a minicab driver. There is lots of interesting stuff on his site, but the main point is that he lives in Brighton but operates mainly in London. He has worked for a variety of operators, including Uber, but is now working for large mini cab operator Addison Lee – the post where he discusses why he has gone to Addison Lee and is no longer working for Uber is well worth a read, but it also highlighted their investment in technology so I grabbed the app. I had seen Addison Lee cars operating around Reading so I knew they had expanded coverage to Berkshire – indeed since their sale to the Carlyle Group and the departure of their frequently controversial founder and CEO they are covering the whole country.

The app seems just as good as the equivalent apps for Uber, Hailo and GetTaxi, but unlike all of those it will offer me a taxi at my door, and allow me to book one at any time. Of course the on demand is not the five or ten minute wait you’d get in London – usually between thirty and sixty minutes at home – but booking an airport pick up or drop off the rates are comparable with any of the other cab firms I’ve used over the years, and they will also offer me a home to work, or work to home booking at a reasonable cost. The app also allows me to pay with Apple Pay or PayPal, and even retains the option to pay the driver cash (although one of the advantages of Hailo has always been that I never carry much cash these days, certainly not enough for a reasonable length cab journey). Certainly I’m going to give it a go next time I’m booking a cab, certainly can’t be as bad as some of the experiences we’ve had over the years.

IMG_5767As an experiment, having found a cab app that covered me at home, I then wondered how much their claim to cover the whole country really extended, and as yet, I haven’t found anywhere in the country it hasn’t offered me an estimate for an on demand request, or for a pre-booking, as long as one end of the journey or another is somewhere close to their main area in the south-east of England. This for example is a pickup request for the big hotel in the centre of Portree on the Isle of Skye, for which the app is quoting 295 minutes – whether they’d actually turn up if you made the on demand request is another matter as from experimentation 295 minutes seems to be some sort of maximum and is what it quotes in a number of places I’ve tried, but the app certainly suggests it will take a booking – an eye watering £1770 to come back home!

First Experiences with tadoº

We’ve joined the internet of things!

Old Heating Controller and ThermostatFor the past fifteen years, our heating has been run by much the same thing as most other people, a simple thermostat and programmer that gave us a limited ability to turn the heating and hot water off and on at set times during the week, and although we could vary the temperature in the house the heating would come on at whatever the temperature was set to.

tadoº Thermostat Showing TemperatureThis week the old thermostat and controller were taken out, and instead we had a tadoº system installed.

The kids like the illuminated temperature display, but it is doing rather more than just looking more high tech.

tadoº Extension BoxThe replacement thermostat and the replacement for the control box next to the hot water tank talk over a wireless link to a small box that is plugged into our internet router. On the tadoº website we can set the times to turn the heating and hot water off and on as we had done with the old programmer, however we can now set temperatures for individual periods, allowing us to set different temperatures for overnight and during the day for example.

However if it just replicated the functionality of the existing programmer and thermostat, aside from looking pretty and being able to set it up online it still wouldn’t add that much.

The main issue we’ve had with the traditional heating programming is that it doesn’t really fit with our pretty variable schedule, in order to accommodate the schedules for everybody during the week we end with up with a fairly generic schedule that ultimately results in the heating being on for a lot longer than it needs to be, and quite often the empty house will be being heated unnecessarily.

The other part of the tadoº system is a smartphone app that allows the system to tell if we are at home or not, and to not unnecessarily heat if nobody is home. Combined with the way the system tracks temperature changes and learns how the house heats up it should only be running the heating when needed.

So how has our first week been?

On the first morning the system turned on the heating two hours ahead of when we had set our wake up time, and therefore had the house warmer than it needed to be, however on the second day it learned from that and came on later. Having had a couple of really cold nights it has also turned the boiler on a couple of times during the night to prevent the overnight temperature falling too low. The presence detection has also worked well with the system turning the heating down for parts of the day when nobody was home, but also turning the heating back up again when they get home.

IMG_0398For techies like me you can also get loads more detail from the system of what the temperature is, and when the system is actually running the boiler – this is a graph of the temperature and boiler running from yesterday which was a day when Beth worked from home. You can see it running the boiler a few times in the early hours of the morning, then a big run to heat the house up for 6am (which it didn’t quite achieve) there is a shutdown when Beth took the kids to school, and a longer shutdown in the afternoon when she went out shopping and then to pick the kids up from school.

So on this day we saved a bit with those two periods when the heating wasn’t running, on another day when maybe we were out for longer the heating would be running for less time, we’ll have to see how this translates into our gas bill longer term.