Author: rob

  • error processing package apt-show-versions on Ubuntu 14.04 or Ubuntu 16.04

    When installing Webmin, I’ve sometimes come across an error installing a dependency package, apt-show-versions: This is caused by the fact that apt-show-versions can’t read compressed index files. Thankfully, the solution is quite simple: First, we need to tell APT not to compress the index. To do this we create an entry in a file called /etc/apt/apt.conf.d/02compress-indexes: If the file is…

  • How to ensure you can revert changes to function apps

    As I’ve been playing around with Azure Functions I’ve slowly outgrown the web-based editor. It’s not that it’s not useful, it’s just that I miss intellisense (I’ll come back to this in a later post), and I accidentally deployed a change which broke one of my functions. I’d made dozens of tiny changes, but I simply could not…

  • When Function App updates won’t save…

    I accidentally deployed a dodgy bit of code to one of my function apps. Then, even when I tried to revert to a “known good” version of my code via the GUI, it still didn’t work. No matter what I did, I kept getting the dreaded “Compilation Failed” error – but there was no more information. No…

  • National Rail LDBWS to Twitter

    I’ve been playing around with my Nextion and a Particle Photon for a while. The idea is to pull data from a variety of services and have it available on a display by the front door – things like the weather, the outside temperature (from my Netatmo), and the next 3 trains to Seven Sisters from our station.…

  • missing dependencies Microsoft.CodeAnalysis.CSharp.Scripting

    While trying to install the C# scripting package Microsoft.CodeAnalysis.CSharp.Scripting from nuget, but was getting odd messages about missing dependencies. I spent ages trying to figure it out as all the dependency versions appeared to match (e.g. however, eventually I discovered that you neeed .NET 4.6. Doh!

  • Logic Apps are so expensive!!

    I started writing EnfieldTownBot using Azure Logic Apps. It’s pretty easy, but i soon hit a challenge – it’s so expensive! My app was pretty simple – a trigger, a “for…each”, a condition and a http callout to my Twitter Poster Function App: So – if there are no delays, that’s (recurrence + httprequest + foreach + 3 x…

  • Quick and easy way to tweet from a function app

    After my last post, I spent some time looking through this. Eventually, I found a really lightweight class which does what i need. After spending some time adding some error handling to the api.request() method, I then wrapped a webrequest around it and created a function app. You can find it here: https://github.com/mnbf9rca/TwitterFunctionApp the app takes a simple JSON:…

  • BMW API now requires location, no bypass available

    Earlier this year, we got a new car, a BMW 3 series. It came subscribed to the BMW ConnectedDrive service, and that comes with an iPhone or Android app. So, of course, I immediately set about deconstructing the traffic to figure out what was going on, inspired by the work of Terence Eden. Unfortunately, BMW appears…

  • Twitter API without libraries – for posting as yourself (e.g. a bot)

    I have to say that the twitter API documentation is absolutely abysmal. It’s impossible to navigate – calls make reference to other calls but the major problem is that there are almost no examples – they almost all recommend that you use a library. So how on earth are you supposed to learn how the API…

  • How to: access the Honeywell Evohome API documentation

    Since writing this post, Honeywell has sold their products to Resideo, the new URL is: https://tccna.resideo.com/WebApi/Help/ApiIntroduction After my last post, I did some more digging. I found that the API is actually documented at https://tccna.honeywell.com/WebApi/Help/ApiIntroduction you need an APP ID to log in with (or OAuth app ID+secret).