This post describes how I setup a basic ADS-B receiver on a Raspberry PI Zero W using a USB RTL2832U based Software Defined Radio so that you can see any ADS-B equipped aircraft in your local area and present it on your own website.
Well done Oppy, you did way more than originally planned, but we knew this day would eventually come… RIP
This is a very hard post to write. It’s one I’ve been dreading, for years, literally years, but there’s no putting it off any longer.
Overnight last night the final, Final, FINAL ‘Wake up, please?’ commands were sent to Opportunity, the absolutely last throw of the last dice. Its been 8 months since we last heard anything from her, and even as those last commands were being beamed from Earth we all hoped against hope that Oppy would stir, and bleep back a last minute “Ha! Had you fooled! Surprise!!” reply –
But Opportunity didn’t answer.
Barring some kind of miracle it looks like this evening’s (7pm) NASA press conference will be for the announcement that Opportunity’s mission is finally over. This day was always going to come, and it’s important for everyone to remember that Oppy – which we hoped would last for 90 days after landing –…
View original post 1,263 more words
One part of the rewrite of all of my sites is to make dynamic content more real-time, specifically using Websockets, so that content is as close as live as it’s possible. For this I’m using the current RabbitMQ release running within a docker container with the web_stomp plugin enabled. With this I can then have a webpage connect over websockets directly into the message broker and listen for messages.
Now the problem. Most events are defined as some change within a database so I now need a method to allow a database trigger to be able to send a message to RabbitMQ without hindering performance – more so when some tables are being updated 20-40 times a second.
Fortunately PostgreSQL provides us with asynchronous notifications via the LISTEN and NOTIFY commands, so we can add a notify command to the trigger to a named queue and then have a separate process listen to that queue. All I needed to implement was an application that did the listening. Continue reading “Publishing messages to RabbitMQ from PostgreSQL”
It’s been a busy 6 months, trying to update all of my websites whilst commuting etc & it’s taking a long time especially as the front end’s are being done from scratch. If someone ever tells you it’s simple to move from a classic website to one using microservices, don’t believe them – it will take some time.
Anyhow, progress is progress. Here’s the current status:
- The blog is now on it’s own domain, new layout, still not happy about how it looks though.
- Documentation and API’s are now on the area51.onl site with more being added as I finish them.
- departureboards.mobi is almost complete, just got some minor layout issues to solve.
- uktra.in is next. Most of the backend stuff is done, just got to port the CMS over and rewrite the timetable search & real time search pages.
- map.lu is running to the point it’s now providing maps again to the other sites.
- maidstoneweather.com & the weather station are still sadly down. I’ve got the replacement electronics ready but again it’s finding time to fix it – it’s only taken a year so far :-S
- trainwatch.uk is still dormant – not found a use for that domain yet.
So there’s still plenty to do. When you spend 20+ hours just commuting on top of the working week it’s a problem, but I’m getting there.
This was from 2008 but again it applies to today’s potentially disastrous result
View original post 745 more words
Lets Encrypt is a new Certificate Authority (CA), run for the public’s benefit by the Internet Security Research Group (ISRG). At the time of writing it’s currently in Beta and is due to go public in December 2015.
Update: Lets Encrypt went into public -beta on December 3 2015. I have updated this article with the minor change needed to work with the live servers.
Now in the default mode, the standard Lets Encrypt client (it’s not the only one) can manage this automatically – however it’s not ideal if you have more than one server.
What I describe here is how to centralize managing certificate registration (& later renewal) on a central machine. When a certificate is then registered or renewed we can then copy the certs to the remote servers.
I’ve been beta testing the new Lets Encrypt Certificate Authority so have been adding HTTPS to various services however I hit on a problem where Chrome wasn’t showing the green padlock for a specific application. Instead it was showing the broken padlock because it was saying there was mixed content.
In https, mixed content is usually where you have a resource (css, image etc) thats being served in http instead.
So first I went in to developer tools to find that resource. Now it can be difficult to find, however one first tip is to go to the network tab and right click on any of the columns (e.g. Name) and ensure that scheme is ticked. This now adds a new column which should show https for everything. The one that shows http is the culprit.
Except in this case it didn’t. Everything was https. So what’s happening?
Well in Chrome it caches the https state with each resource, and in this instance I had https originally working with a test certificate. Now I have a real one, so chrome was being confused.
The solution was to restart chrome by opening a new tab and entering the url: chrome://restart
Once chrome restarts (it will restart every tab/window you have open) the problem was fixed.