Getting up an ADS-B receiver on a Raspberry PI

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.

Continue reading “Getting up an ADS-B receiver on a Raspberry PI”

(Almost) time to say goodbye…

Well done Oppy, you did way more than originally planned, but we knew this day would eventually come… RIP

The Road To Endeavour

oppy 1f b2

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.

So.

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

Publishing messages to RabbitMQ from PostgreSQL

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”

Slowly catching up with things…

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.

John Cleese’s “Letter to America”

This was from 2008 but again it applies to today’s potentially disastrous result

Things Are Looking Up...

Originally uploaded by Browserd.
Dear Citizens of America,

In view of your failure to elect a competent President and thus to govern yourselves, we hereby give notice of the revocation of your independence, effective immediately.
 
Her Sovereign Majesty, Queen Elizabeth II, will resume monarchical duties over all states, commonwealths and other territories (except Kansas, which she does not fancy), as from Monday next.

Your new prime minister, Gordon Brown, will appoint a governor for America without the need for further elections. Congress and the Senate will be disbanded. A questionnaire may be circulated next year to determine whether any of you noticed.

To aid in the transition to a British Crown Dependency, the following rules are introduced with immediate effect:

1. You should look up “revocation” in the Oxford English Dictionary. Then look up “aluminium,” and check the pronunciation guide. You will be amazed at just how…

View original post 745 more words

Centralizing Certificate Management of LetsEncrypt with a Raspberry PI

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.

Continue reading “Centralizing Certificate Management of LetsEncrypt with a Raspberry PI”

Fixing HTTPS mixed content issues in Chrome

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.