Jason Snell has published his annual Six Colors Apple Report Card
year 55 voters (hand-selected by Snell) graded Apple in 12 areas. I
was one of them, and,
thought it only fair to publish my grades and remarks here at Daring
Fireball. Comments in [brackets] are additional commentary I wrote
now, and were not included in what I submitted to Snell.
PostgreSQL comes with a plethora of configuration options, but
changing the default settings of some of these options drastically
improves the observability of your PostgreSQL server. You’ll want to
set and configure these options before issues crop up in production,
as they can provide information essential to understanding and
resolving those issues.
Read on to learn more about the settings and extensions that expose
metrics and information about the inner workings of your PostgreSQL
A worker pool is a pool where a specified number of workers(usually
goroutine) created and run to pick up tasks. This can allow multiple
tasks to be ran at the same time while keeping the number of workers
a fixed number to avoid overuse of resource in the program.
There are usually two approaches of creating worker pool.
One is with fixed number of workers pre-created
One is creating worker when needed until the max number of workers
In this post, we will cover the demonstration of creating fixed
number of workers pre-ahead. This approach is usually used when one
knows there are lots of tasks to be ran at the same time and the
chance of reaching to max allowed worker would be high.
The term 'Mock Objects' has become a popular one to describe special
case objects that mimic real objects for testing. Most language
environments now have frameworks that make it easy to create mock
objects. What's often not realized, however, is that mock objects
are but one form of special case test object, one that enables a
different style of testing. In this article I'll explain how mock
objects work, how they encourage testing based on behavior
verification, and how the community around them uses them to develop
a different style of testing.
JSON Web Token (JWT) is a data exchange format that can be used to
ensure the authenticity of a message. JWTs are widely used in the
industry — they were first proposed in 2010 and then standardized in
RFC 7519, and they’re used in
the OpenID Connect specification. In
this blog post, I’ll explain what they are and why they’re useful,
along with how we use them at PSPDFKit.
Rewriting your git history, removing files permanently
You know that adding secrets to your git
(even a private one) is a bad idea, because doing so risks
exposing confidential information to the world. But mistakes were
made, and now you need to figure out how to excise confidential
information from your repo. Because git keeps a history of
everything, it’s not often enough to simply remove the secret,
commit, and push: we might need to do a bit of deep cleaning.
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
Next step is to make the tags also visible on Plurrrr itself, but that
will take probably a week or two more as I am quite busy with work.
A closer look at Raspberry Pi RP2040 Programmable IOs (PIO)
The popularity of Raspberry
board powered by RP2040
has made every reader wanting to know more about the board and
chip. So today we will be talking about RP2040’s Programmable IOs, a
feature that makes it different from most other microcontroller
LZ4 is a really fast compression algorithm with a reasonable
compression ratio, but unfortunately there is limited documentation
on how it works. The only explanation (not spec, explanation) can
on the author's blog, but I think it is less of an explanation and
more of an informal specification.
This blog post tries to explain it such that anybody (even new
beginners) can understand and implement it.
A whisperjewel has summoned Dirk t’Larien to Worlorn, and a love he
thinks he lost. But Worlorn isn’t the world Dirk imagined, and Gwen
Delvano is no longer the woman he once knew. She is bound to another
man, and to a dying planet that is trapped in twilight. Gwen needs
Dirk’s protection, and he will do anything to keep her safe, even if
it means challenging the barbaric man who has claimed her. But an
impenetrable veil of secrecy surrounds them all, and it’s becoming
impossible for Dirk to distinguish between his allies and his
enemies. In this dangerous triangle, one is hurtling toward escape,
another toward revenge, and the last toward a brutal, untimely
O’Reilly lists almost all of the
animals from their covers,
even if “animals” is a bit of a loose term that encompasses
“Catholic Priests” (Ethics of Big
“Soldiers or rangers, with rifles”
can page through that list 20 results at a time, or search it. But,
as with most lists I see online, I want to grab the entire list at
once. Show me a paginated resources and I’ll show you the program I
automated to unpaginate it.
In the evening I finished The
by Jo Nesbø; what a read. While very slow (to me) it is also
very good. Recommended.
Changing the color of an SVG icon
Today, for work, I had to change the color of an SVG icon from black
to red (#ff0000) when a certain event occurred. I used the img
element to display the SVG icon. Just adding a class with color set
to the aforementioned hexadecimal color code didn't work. So I Googled
and found an article called Change Color of SVG on
Hover by Chris
I decided to give the filter trick mentioned in this article a try and
used the recommended online
tool created by Barrett Sonntag
which calculates the correct filter settings. When the class got added
to the img element it indeed changed to red.