I'm still not a Mulesoft expert yet

After a very busy and difficult couple of months, the system I’d been working on is about to go live to ~27,000 users, and I’m feeling slightly pleased with myself. What should have been a simple integration morphed into a complex Mulesoft project. What a learning curve that was! The following is my experience with Mulesoft so far. I think the one advantage Mulesoft has over other platforms - and maybe its selling point - is that the Anypoint portal provides us with a single place from which numerous integrations, API specifications and deployment environments can be managed.

An alternative way of getting OAuth working in Anypoint Studio

Getting software to work with OAuth is usually one of the easiest things a developer could be tasked with, if s/hehas done it a few times: Create an HTTP client method that sends four values to an OAuth provider, then pass the response to the next HTTP client method as a variable to be used in the Authorization header. Doing that in Anypoint Studio, for a Mulesoft application, was an uphill struggle of resolving one error message after another.

Base Camp Journal - Blackpool

Robby and I made the five hour journey to the CMC site in south Blackpool. The weather was surprisingly bright and mild for late-October, even as the storm finally crossed the Atlantic and reached Britain, bringing 70Mph winds with it. Autumn had obviously arrived earlier up north, because most the leaves had gone from the trees. Blackpool’s promenade is several miles longer than the one in Brighton, and it has a North Shore and a South Shore, and three piers.

Getting used to Anypoint Studio

Anypoint Studio, as a development tool, comes with a steep learning curve - it’s essentially a rebranded version of Eclipse, with a lot of custom Java packages (there are a lot for the Mulesoft server) and a package manager pointing at the Exchange repo. Putting together a Mulesoft application, using the ’low code’ designer and DataWeave is easy enough, though I haven’t done any advanced data transformations yet. Currently it relays data from another Mulesoft API to an external service in a different format.

SimpleX Chat

The developers of SimpleX Chat are absolute legends! Clearly they’d thought outside the box when designing a messaging platform that combines End-to-End encryption, onion routing and distributed message queues. What makes SimpleX stand out is that the client applications are immediately usable, without any configuration. In fact, it’s even easier to use than WhatsApp. SimpleX has been around for a couple of years, but I’d only recently learned of it from someone who was also frustrated with the absence of messaging platforms that allow for anonymous communication.

Base Camp Journal - Getting stuck on a flooded battlefield in Gloucester.

Tewkesbury is a pretty village that retained much of its character from the beginning of the Tudor age, and has many pubs in the original buildings. The Black Bear, which was built in 1307, is one of them. There is a CMC site next to the Abbey, and that’s where Robby and I decided to spend the week. As I’d learned much later, we’d pitched Bertha on the very spot where the Battle of Tewkesbury was fought, in 1471.

Thread Safety in Azure Logic Apps

After resolving the previous issue with the Content-Type defect in the Azure Logic App’s storage connector, I ran into a second problem: The Web pages being generated were populated with the correct content type, but the incorrect content. I quickly discovered that was partly caused by a race condition and with how memory is managed by Azure. By default, a Logic App will run up to twenty instances of a ‘For Each’ loop in parallel, but this is multi-threading instead of true parallel processing.

Content-Type Problem with Azure Storage Connector

One of our Logic Apps, which we developed as a static site generator, began writing the Web pages to the storage account as octet stream files, and I narrowed down the problem to a defect in the storage account connector. I believe (but I’m not 100% certain yet) Microsoft’s developers hadn’t implemented the ‘"headers": {"Content-Type": "text/html"}’ code for the storage account connectors, and the file type, therefore, always defaults to octet stream.

Base Camp Journal - Norfolk

A belated post, as I’ve been quite busy the last couple of weeks. It was an eight hour drive from Cardiff to the Seacroft CMC site, on the coast of Norfolk, between Runton and Cromer. What probably made our stay at Seacroft more enjoyable was having a grass pitch, on a large section of green at the centre of the site. It was like being on a giant lawn during an exceptionally warm and sunny week, though Saturday was a washout.

Is Agile really to blame for the lack of innovation?

One of the central claims made by Moxie Marlinspike, during his discussion at the Black Hat conference appears nonsensical, because he referred to two entirely different meanings of ‘abstraction’, and was thus comparing two entirely different things: ‘We spent the past 20 years onboarding people into software by putting them into black box abstraction layers, and then putting them into organizations composed of black box abstraction layers, […] Marlinspike posited that security researchers, who routinely probe beneath surface-level abstractions, are better positioned to drive innovation in software development.