RabbitMQ Summit 2019

David Ireland wrote “As Oliver Wyman were platinum sponsors of this years’ RabbitMQ Summit, a group of us were in attendance to contribute and hear the latest news from today’s RabbitMQ users. Our own Alex Thomas gave a talk: Using the Source-oriented Exchanges Pattern to Keep Events in Order. Another talk I particularly enjoyed was Lifting the Lid…”

By British Post Office (Scan of original(s)) [Public domain], via Wikimedia Commons

RabbitMQ and transactions

David Ireland wrote “RabbitMQ can’t (in general) participate in two phase commit. From a practical point of view, RabbitMQ can only make a message durable by adding it to a queue. This makes quite a few optimisations possible. Transaction participation would require RabbitMQ to spool messages temporarily on disk before adding them to a queue on transaction commit,…”

By J.smith (Own work) [CC BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0)], via Wikimedia Commons

Messaging, partition and consistency

David Ireland wrote “‘Why is this so hard?’ is a recurring theme of my RabbitMQ consulting at the moment. If a database gets a split brain, I just ask it to reconcile, and it mostly works. Why can’t RabbitMQ do that? Here is an attempt to explain that in fairly concrete terms. Imagine a simple system where a…”

By Skrrp (Own work) [CC BY 3.0 (http://creativecommons.org/licenses/by/3.0)], via Wikimedia Commons

RabbitMQ throughput: assigning blame

David Ireland wrote “Recently I looked at the instrumentation API to see what I could figure out about allocation performance. Actually, there’s a bunch of information available via erlang:system_info:  (rabbit@mrclumsy)2> erlang:system_info({allocator,binary_alloc}). [{instance,0, [{versions,"0.9","3.0"}, ... It’s far too long to include here, but it at least confirms the allocator is the best fit allocator. Erlang also promises that coalescing…”

By Szymon (Poczta Polska) [CC BY 2.0 (http://creativecommons.org/licenses/by/2.0)], via Wikimedia Commons

The end-to-end principle and RabbitMQ queue mirroring

David Ireland wrote “One of the foundations of the internet is the end-to-end principle as described by Saltzer, J. H., D. P. Reed, and D. D. Clark (1981) in End-to-End Arguments in System Design. This pretty much says queue mirroring as a reliability mechanism is a waste of time. You might argue it’s time the RabbitMQ team has spent…”

By Kander (Own work) [Public domain], via Wikimedia Commons

Bloated Rabbit – Part 1

David Ireland wrote “Can a rabbit with a 128Gb stomach swallow 128Gb of carrots? I’m working with a client at the moment, and they seem to be finding that no, it can’t. I want to figure out why not, so I’m going to have to find out a bit about Erlang memory management. RabbitMQ messages are stored as…”

Smart meters

David Ireland wrote “I’ve been using a micro-controller to automatically dim lights according to the time of day and ambient light conditions. At some point, I decided it would be easier to tinker with if I just used a raspberry pi, logged into it, and edited a python program. This doesn’t work: The pi basically can’t do PWM…”

By Kiran Foster from no fixed abode, New Zealand (doughnut) [CC BY 2.0 (http://creativecommons.org/licenses/by/2.0)], via Wikimedia Commons

Gemalto

David Ireland wrote “It’s claimed GCHQ were able to steal bulk keys from Gemalto a GSM SIM manufacturer. Assuming that GSM was a sane public key based system… Making SIMs can be like this: have a machine which generates key pairs, writes the private key into the SIM, and the public key to a file along with the…”

Why not program in Standard ML?

David Ireland wrote “I decided to learn a language from the ML family recently, because we are seeing quite a few good candidates whose strongest language is F# or OCAML. So I decided to learn Standard ML. Yes, I know, that makes no sense. But wait… Standard ML is really small and easily learned. If you know another…”

Honeycomb, 2001, Gavin Mackintosh, South Molton, UK. Creative Commons, via WikiCommons.

Java multi methods new home

David Ireland wrote “I’ve split Java multi-methods out of LShift’s Java library. That’s mostly because Guava has equivalents for just about everything else in the library, but the multi-methods part is still unique, as far as I’m aware. You can find it here. You can raise tickets there as well. For more information, see the original post. Here’s…”

By Alberto-g-rovi (Own work) [CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0) or GFDL (http://www.gnu.org/copyleft/fdl.html)], via Wikimedia Commons

When in Rome

David Ireland wrote “I’ve been trying to integrate js-sequence-diagrams into Trac. I’ve reached the point where I can choose between my sequence diagrams getting rendered, and the rest of the Javascript in Trac working. And it’s all because of an underscore… There’s a popular library in the Javascript world: underscore. In python _ is used to internationalize a…”

Facebook android security fail

David Ireland wrote “I wrote about the Ocado android applications ridiculous privileges  list a while back. Facebook has reminded me of it: Facebook app now reads your smartphone’s text messages? THE TRUTH. Facebook want to be able to capture the two factor auth message straight from your text messages, so they ask for access to all your text messages.…”

Small shouldn’t mean primitive

David Ireland wrote “The internet of things seems to be coming any day now, but the state of embedded development seems to be deplorable. Almost everything is written in C or C++. Device drivers are written over and over, once for each RTOS, or worse. When high level languages are available, they seem to be implemented directly on…”

Zabbix security incidents

David Ireland wrote “Someone discovered a vulnerability in Zabbix recently, and there’s this lovely, detailed description of an exploit based in it on Corelan Team. It’s lovely because it contains all the information I need to tell if my site is vulnerable, and to what extent. There’s also a really useless advisory on Packet Storm Security. Why is…”

The great GC vs reference counting debate

David Ireland wrote “I read a blog post post recently to the effect that GC is too expensive in mobile devices, Steve Jobs was right, reference counting is the way. It’s titled ‘why mobile web apps are slow’. I’m inclined to take issue with this: It’s a long since resolved dispute, and GC won. I don’t want Steve…”

Android app security

David Ireland wrote “Reading Japanese govt: Use operator-run app stores, not Google Play reminded me of an app that I use a lot, but who’s permissions are a cause for concern: Ocado on the Go. The Ocado app wants to use your phone’s video camera, so it can scan bar codes. This is a legitimate requirement: there’s no way…”