I desperately needed to extract the complete (and very lengthy)
command line I had written 6 months ago in a bash shell - which was
still running under screen. Read on to see how I eventually made
iMessage is a widely used secure messaging app and protocol across
the Apple ecosystem. Curious about what it would be like to run
iMessage on other platforms, we took a reverse engineering approach
to understand how iMessage operates and examine possibilities to
extend it to other platforms.
The goal of this article is to show how Apple leverages the fact
that it produces the hardware to protect its software. To explore
this, we will try to connect via Apple Push Notification (APN)
directly on the network level, and see what challenges we
face. Along the way, we’ll reverse engineer small parts of the
apsd daemon on macOS and the APN protocol itself using popular
When building a new project, it's a smart move to be very strict
right from the start. It is much harder to add more linting/typing
checks once you have 1000+ lines of code.
That's why I'm providing an opinionated list of libraries for your
new Python project. I might write a more in-depth article on the
best practices when building a web app with Python. For now, this is
mostly a checklist with some obvious recommendations.
Tags are coming to
tumblelog but it's a
slow process. All articles on my blog now have tags but the software
doesn't show them yet. In the evening I wrote a small Perl script that
uses those tags to create tweets in a format that can be used by
it works very neat.
A little later I noticed that Twitter cut off a significant part of
the date, as can be seen in the above screenshot. So I added a
rewrite rule with a permanent redirect to the NGINX configuration