NSQ is an awesome and extremely simple distributed message queue. You can simply use it by publishing messages — that is arbitrary text, I often use JSON — on a so called "topic". A second process can than attach to a topic to consume messages on a so called "channel". Each messages is forwarded into each channel (at least once). This blag post covers deployment of NSQ in the simplest scenario: one box running everything. <a href="https://blag.nullteilerfrei.de/2023/10/13/install-nsq-on-debian-with-init-d-and-nginx/#more-5889" class="more-link">Do you want to know more?</a>


The official documentation on ArangoDB usage in Symfony is [literally from 2013](https://www.arangodb.com/2013/03/getting-started-with-arangodb-and-symfony-part1/) and hence targeting a pretty old Symfony version. This blag post will cover adding minimal ArangoDB support by hand. The actual database protocol and interacting will be handled by [ArangoDBClient](https://github.com/arangodb/arangodb-php). <a href="https://blag.nullteilerfrei.de/2023/04/04/use-arangodb-in-symfony-without-an-external-bundle/#more-5858" class="more-link">Show me what you've got!</a>


<a href="https://github.com/CTFd/CTFd">CTFd</a> is a Python-based open-source Capture The Flag (CTF) web app. I wanted to use it in a context where I didn't want to collect email addresses of the registering users. To archive this, I decided to take the easy way and hack myself around the problem: just hide the email-field in the registration form and generate a random address for every registration. <a href="https://blag.nullteilerfrei.de/2020/10/24/do-not-enforce-email-address-during-ctfd-registration/#more-5629" class="more-link">Show me the code!</a>


Recently I once again stumbled upon a detail of the HTTP specification involving the POST verb and "enforced" https. I'll document it here in an attempt to save other people the time (hopefully also future-me). <a href="https://blag.nullteilerfrei.de/2018/03/24/posting-post-getting-get/#more-4486" class="more-link">Do you want to know more?</a>


Flask pretty-prints response generated by the `flask.json.jsonify` function. Avoiding this on a per request basis doesn't seem to be intended: There is a configuration variable for the whole application: `JSONIFY_PRETTYPRINT_REGULAR`. But setting that to `False` minifies every JSON responses. And, in general, I enjoyed the pretty printed output. So implementing `X-PrettyPrint` - which seems to be a quasi-standard - also sounded like a the wrong way because it means replacing the call to `jsonify` by a custom implementation. This short story has a happy end though: Flask does not pretty-print the response if it receives an AJAX request. So one can just send the appropriate header: ``` curl -H 'X-Requested-With: XMLHttpRequest' "https://exmaple.com/api/endpoint.json"; ```


Spoiler: My main point in this post is not given away by the title. But first things first: What are all those words? <a href="https://blag.nullteilerfrei.de/2017/10/29/python-post-json-data-containing-a-datetime-object-with-requests-to-flask/#more-4316" class="more-link">Would you like to know more?</a>