This document is intended specifically for existing users of
Enigmail, who want to start using Thunderbird 78 and its integrated
If you have never used the Enigmail Add-on, then you can skip this
Due to required technology changes, you'll experience a lot of
changes. We have tried to make the new OpenPGP functionality easier
to understand and use, but on the other hand, some features will
work differently than before, or might be missing.
Before you update to Thunderbird 78, you should read this whole
document, to understand the changes that you will see.
One of the most important color tricks I’ve ever learned was to
avoid using the color black in my work. Mrs. Zamula, my childhood
art teacher, first warned me about black when I was in middle
school. And I heard the same again multiple times at RISD. It sounds
weird at first, but it’s good advice.
Problem is, we see dark things and assume they are black
things. When, in reality, it’s very hard to find something that is
pure black. Roads aren’t black. Your office chair isn’t black. The
sidebar in Sparrow isn’t black. Words on web pages aren’t black.
The term JAMStack is meant to define a technology stack that relies
whole lot more than that. In this article, we will explore how this
concept is being expressed on the web.
You can find a lot of articles about how to prevent deadlocks in Go,
but most of them focus on concurrency patterns and synchronization
tools like mutexes. While it is important to know some techniques to
prevent them, a trap you can stumble across more easily without
noticing, are database transaction deadlocks.
A common strategy to make any system super-performant is
all software products, operating at scale, have multiple layers of
caches in their architectures. Caching, when done right, does wonder
to the response time and is one of the main reasons why products
work so well at a massive scale. Cache engines are limited by the
amount of memory available and hence once it gets full the engine
has to decide which item should be evicted and that is where an
eviction algorithm, like
unofficial standard functional programming library for a decade
(together with its major fork, Lodash). Its
most recent significant development is the move to ECMAScript 6
(ESM). Underscore 1.11 is the first version to be fully modular.
With the new modularity, you can now create a custom build of
Underscore with an even smaller footprint. At the same time, we
still provide the standard UMD build, which is perfect if you want
to get started quickly. The UMD bundle is easy to work with and it
has great cache retention if you load it from a CDN.
In 2011, Apple released Mac OS X
Lion which introduced
an enhanced scrollbar behavior that made scrollbars hidden by
default. The scrollbar appears when the user starts scrolling a
document and disappears after the scrolling stops.
It appears, however, that this enhancement did not only change the
user interface, but has also shaped how developers (don't) think
about that specific UI element when creating cross-platform
solutions. I call it scrollbar blindness.
Lately, for some reason, I've started to notice more of it. I have
been to numerous websites that have elements with overflow-y or
overflow-x set to scroll while the element is not meant to be
scrollable. For no apparent reason, some even set both x and y
axes scrollable or create multiple levels of stacked scrollbars.
The spacing between individual elements of a website and, in
particular, the vertical spacing, has been a regular matter of
debate between web designers and developers. Designers insist that
what they see in the browser doesn’t look at all like the layout
they originally designed. Developers respond that all the margins in
the style sheets exactly match the margins in the layout. So who is
right? The tricky thing is: In a way, they are both right.
Many people know how to use CSS to style websites, but when it comes
to CSS artwork, they get confused on how they are made.
So i thought it might be helpful if i share my humble experience
with you, I am going to discuss some important CSS knowledge you
will need to have, in order to make your own CSS art and enjoy it as
i do, let’s start🚀
If you want to be a sysadmin or network administrator of any kind,
there's a fundamental technology you really need to understand—DNS,
the Domain Name System. There was a time when a sysadmin with no
aspirations to managing Internet-accessible services might have
gotten by without understanding DNS, but that time is long, long
You can't learn everything there is to know about DNS in a single
article. But that's not what we're looking to do today; instead, we
want to give you a clear, concise guide to the structure and meaning
of the most important part of the Domain Name System: a zone file,
as seen in BIND, the Berkeley Internet Name Daemon.
Metasploit — A Walkthrough Of The Powerful Exploitation Framework
Metasploit is a penetration testing framework that helps you to find
and exploit vulnerabilities in systems. It gives you everything you
need from scanners to third-party integrations that you will need
throughout an entire penetration testing lifecycle.
This includes reconnaissance, scanning, exploitation, privilege
escalation, and maintaining access.
Kindle Collects a Surprisingly Large Amount of Data
Kindle services leverage reading data to offer some nice features
that traditional books can't offer: maintaining bookmarks and notes
between devices, keeping all devices synced with the last read page,
and more. It also shows ads and recommendations for next books to
read on the kindle.
I was curious to know if the Kindle was only sending the data
required for these services, or if other data about me was being
Bcrypt is a key derivation
which can be thought of as a slow hash
purpose is to slowly convert a piece of input data to a fixed-size,
deterministic, and unpredictable output. A common use-case is to
convert a password into an n-bit cryptographic key, which can then
be used for safe authentication.
Rust — Getting Started With The Most Loved Programming Language
Rust is a systems programming
that you can use to write applications with high performance. Rust
is being used by some of the top companies like Dropbox and
Cloudflare to deliver speed and concurrency to their customers.
Null-safety Part 1: The Fundamental Problem with Null
There are many different types of errors that programmers encounter
frequently, which they must guard their programs against. Of those
errors, few seem more pervasive than the infamous
NullPointerException (NPE), or it’s equivalents. The cause of
innumerable bugs and crashes, what programmer has not felt uneasy
about the ever-present threat of this bug in their code?
Python mmap: Improved File I/O With Memory Mapping
Python’s mmap provides memory-mapped file input and output
(I/O). It allows you to take advantage of lower-level operating
system functionality to read files as if they were one large
array. This can provide
significant performance improvements in code that requires a lot of