The terms concurrency and parallelism are often used in relation
to multithreaded programs. At first it may seem as if concurrency
and parallelism may be referring to the same concepts. However,
concurrency and parallelism actually have different meanings. In
this concurrency vs. parallelism tutorial I will explain what these
concepts mean.
Just to be clear, in this text I look at concurrency and parallelism
within a single application - a single process. Not among multiple
applications, processes or computers.
Have you ever wondered what's inside your computer's power supply?
The task of a PC power supply is to convert the power from the wall
(120 or 240 volts AC) into stable power at the DC voltages that the
computer requires. The power supply must be compact and low-cost
while transforming the power efficiently and safely. To achieve
these goals, power supplies use a variety of techniques and are more
complex inside than you might expect. In this blog post, I tear down
a PC power supply and explain how it works.
The first beta release of the upcoming Postgres 14 release was made
available
yesterday. In
this article we'll take a first look at what's in the beta, with an
emphasis on one major performance improvement, as well as three
monitoring improvements that caught our attention.
Yep, this is the one. You can stop searching now. Just bookmark this
page and come back here when you wanna remember some basic tmux
keystroke or to setup a basic tmux config in a fresh Linux/Unix
box 😉
This course breaks down the fundamentals of CSS into digestible,
easy to understand pieces. Over the next few modules, you'll learn
how the core aspects of CSS work and how to use them effectively in
your projects.
In this modern era of web development, we don’t really need a
heavy-handed reset, or even a reset at all, because CSS browser
compatibility issues are much less likely than they were in the old
IE 6 days. That era was when resets such as
normalize.css came
about and saved us all heaps of hell. Those days are gone now and we
can trust our browsers to behave more, so I think resets like that
are probably mostly redundant.
Sometimes you need to grab a bigger hammer or just use more
appropriate tool for the task at hand. In case of debugging
workloads on Kubernetes, that appropriate tool would be kubectl debug, which is a new command added not too long ago (v1.18) that
allows you to debug running pods. It injects special type of
container called EphemeralContainer into problematic Pod allowing
you to poke around and troubleshoot.
This blog post introduces
Dylint, a tool for loading
Rust linting rules (or “lints”) from dynamic libraries. Dylint makes
it easy for developers to maintain their own personal lint
collections.
Previously, the simplest way to write a new Rust lint was to fork
Clippy, Rust’s de facto
linting tool. But this approach has drawbacks in how one runs and
maintains new lints. Dylint minimizes these distractions so that
developers can focus on actually writing lints.
In this tutorial on decorators, we’ll look at what they are and how
to create and use them. Decorators provide a simple syntax for
calling higher-order
functions.
By definition, a decorator is a function that takes another function
and extends the behavior of the latter function without explicitly
modifying it.
The Elder Race once ruled the entire Alastor cluster. Fierce
predators, they tore suns from the sky, leaving the worlds of their
enemies to freeze in the dark. Now only the Galleons are left:
living ships that sail the world river which girds Phaedra:
Alastor 824. After the death of his father, Gunnar arrives on that
ancient world, trying to find a new home. Having two girlfriends
sounds like a good start, but Lavoine is the deeply tricky daughter
of the last Voodoo queen, and Semele a fierce huntress who has sworn
never to kiss a boy until she Walks with the Galleons. And now
Lavoine is trying to wake up the Galleons and bring back the
Elders...
In the evening I started in Phaedra: Alastor
824,
a homage to Jack Vance by Tais Teng. As I am a huge fan of the former
and have read a stories collection I liked a lot by the latter I look
forward to read this book.
Learn Vim (the Smart Way) is a guide to learn the good parts of
Vim. This project was inspired by Steve Losh' Learn Vimscript the
Hard Way. I
thought it would be neat to do a broader, albeit less deep, overview
of Vim + Vimscript in 2021. So here it is!
The Linux ecosystem is a lot better than it was when I left five
years ago, but it still has a ways to go. I’ve had to do quite a bit
to get my system to a point where I can reliably and comfortably
work on my computer, without spending too much time working on my
computer. Don’t get me wrong, I do quite enjoy recompiling kernels
and tweaking my workflow - and Linux gives you the most control
there - but I still do want a machine I can feel at home in, and not
a permanent work-in-progress. Here’s a guide on what I ended up
doing to port over the functionality I missed from the Mac and
additional improvements made. It was a day or two of work but in the
end, I’m happy to say that I haven’t felt the urge to open up my Mac
since I finished, despite it being my happy home for the last
half-decade or more.
Due to JSON’s ubiquity, we end up reaching for JSON libraries
regularly when we have a project that needs to exchange data with
other systems. Whenever something becomes widespread and becomes an
“infrastructure”, it turns into a black-box in people’s minds.
One reason JSON got so popular is the fact that it’s simple. It’s
not the simplest solution to the problem, not by a long shot, but
it’s flexible enough to solve a lot of problems without becoming too
large. In this post we’ll be making a JSON serializer in Python that
can serialize arbitrary nested data structures in a few lines of
code. And more importantly, every part should be understandable and
self-contained.
In the evening I finished A
Desolation Called
Peace
by Arkady Martine. I had finished the main story the evening before,
and started in the glossary, but was to tired to finish the entire
book. While a slow read, in my opinion, I did like the book a
lot. I look forward to another sequel or a book set in the same universe.
Knowledge Graphs (KGs) have emerged as a compelling abstraction for
organizing the world’s structured knowledge, and as a way to
integrate information extracted from multiple data
sources. Knowledge graphs have started to play a central role in
representing the information extracted using natural language
processing and computer vision. Domain knowledge expressed in KGs is
being input into machine learning models to produce better
predictions. Our goals in this blog post are to (a) explain the
basic terminology, concepts, and usage of KGs, (b) highlight recent
applications of KGs that have led to a surge in their popularity,
and (c) situate KGs in the overall landscape of AI. This blog post
is a good starting point before reading a more extensive
survey or following research
seminars on this topic.
Getting your hands on real-world data to test your software is the
real deal. Nothing comes closer to reality than feeding an
application with actual data from the wild. But what if the amount
of data is more than you can handle? There are limitations on how
much time you can spend on test runs. Whether you are running tests
on a developer machine or as part of a Continuous Integration
system, you probably won't be able to crunch large amounts of data
each time you make a code change. Sooner or later, you will be
forced to shrink your test corpus to a more manageable size. This
article presents an approach that uses code coverage metrics to
determine a representative test data subset.
There are a lot of different kinds of neural networks that you can
use in machine learning projects. There are recurrent neural
networks, feed-forward neural networks, modular neural networks, and
more.
Convolutional neural networks are another type of commonly used
neural network. Before we get to the details around convolutional
neural networks, let's start by talking about a regular neural
network.
One of the best things about learning Python is that it’s applicable
in so many places. You can write code that runs anywhere, even on
embedded systems.
Half a decade after the first commit of the pioneering
ACSS, utility-first CSS is more popular than
ever. With
success comes many adepts but also a fair share of criticism. It’s a
good thing: polarized opinions mean topics matter enough for people
to care. Healthy debate contributes to identifying weaknesses and
fueling growth, while indifference would let it stagnate and die.