Prometheus vs. Grafana in 2023: A Detailed Comparison
Prometheus and Grafana are two big names in the open-source world of observability. Both are widely liked and used, with vibrant, opinionated communities, and they routinely build on top of each other.
So, how do Prometheus and Grafan stack up against each other? In this blog, we’ll compare them and examine:
Advanced and Dynamic Searching With Spring Data JPA
I have often been asked to develop advanced search services. By advanced search, I mean searches in which it’s possible to apply multiple filters on all (or almost all) fields such as like, between, in, greater than, etc.
So imagine having to build a service based on one or more entities capable of offering an endpoint that can be called like this (start keeping an eye out for special suffixes <propertyName><_suffix>):
How to check if websites is connected to google analytics?
Hello I have a website and i don't know if it has analytics connected to it. I have a plugin Site kit that says that my website is connected but when I try to connect to Bing webmaster tools as well, Bing says there are no websites linked to this analytics account.
Can anyone help?
Thanks in advance :D
Solving Media Object Float Issues With CSS Block Formatting Contexts
Let’s imagine we’re making a small component. It can be anything, really, but let’s use a media object as an example. Nicole Sullivan had a solid definition of media objects from way back in 2010, and you probably already know the pattern well: some form of media (often an image) on the left and text beside it on the right. The media could be an image or a video, for example.
This is the basic HTML for the layout, minimized for brevity:
<section class="container">
<article class="float-left">
<img src="https://picsum.photos/100">
<p>I've never had to cook or clean since I discovered Xyz. They perform all my tasks for me. I recommend them.</p>
<h3>Dan Somore</h3>
</article>
<!-- more articles -->
</section>
This HTML gives us a <section>
element that is the container for four <article>
elements, where each one is a testimonial container that holds an <img>
and a <div>
with a block of text — our media objects.
Let’s apply some light styling in CSS:
/* Give the parent container breathing room */
.container {
padding: 20px;
}
/*
Styles for each testimonial container
Each container is floated left
*/
.float-left {
border: 2px solid blue;
background-color: transparent;
float: left;
width: 45%;
min-height: 150px;
margin-bottom: 20px;
margin-right: 20px;
}
/* Testimonial images are floated left */
img {
float: left;
margin-right: 10px;
}
This code is by no means perfect. In fact, it introduces the wrapping and overflow issues we’re about to discuss. We will look at these issues together before getting into solutions.
Issue 1: Height Collapsing
When an element is floated in its container, it exits its normal document flow and into a floated position, making no contributions to the container’s height. In a container of many floated media objects, the container element’s height is collapsed to contain only non-floated elements. The collapsed height might be inconspicuous in containers without a border or non-floated elements and could disrupt the layout of other elements after a media object container. However, this issue can be easily discovered if there is a non-floated element in the container, among other floated elements.
Let’s add a border
to the parent container to see the height-collapsing effect.
The height of the content is what influences the height of the testimonial container. If the image were in the container’s flow, it would be taller than the text, and the container would adjust to it. But, alas, that’s not the case since we introduced a block formatting context when floating the image.
The popular solution with a single line of CSS on the testimonial’s parent container:
.container {
overflow: auto;
}
The BFC this generates establishes a new document flow within the page’s root element, containing all the container's child elements, including floated media objects. It effectively prevents the testimonial elements from being displaced beyond the parent container’s borders — no extra div
s or pseudo-elements are needed like the clearfix approach.
See the Pen Float Solutions: overflow: auto [forked] by Geoff Graham.
That certainly gets the job done! But I want to show you one more way to do this because I believe it’s the best of the bunch.
The Best Solution: display: flow-root
display: flow-root
was introduced to address inconsistencies associated with using overflow
for generating BFCs. In fact, display: flow-root
was explicitly designed to produce BFC, while the overflow
property is designed to manage content that surpasses its container. Consequently, overflow
can induce unintended side effects, from unwanted scrollbars to data loss.
That’s why I recommend using display: flow-root
. It is meant to create a BFC when you need it, whereas the other solutions are more like workarounds.
CSS block formatting contexts are great because they allow you to leave the main document flow, allowing elements to interact differently in a layout. But, of course, those different interactions can feel like buggy behavior if you’re unaware that you’re actually working in a different formatting context.
This is exactly why we have modern layout techniques like Flexbox and Grid. Before we had them, floats were a nice trick for faking columns. But the BFC they created wasn’t so nice. Hence clever workarounds like the clearfix to create a BFC to wrangle the other BFC.
Perhaps the bigger takeaway from all this, though, is to evaluate your layout strategy. If you’re reaching for a float, is it really the best option for what you’re trying to do? Because if so, you may as well embrace the natural text-wrapping behavior rather than trying to fight it. And if you don’t want to fight it, that’s a sure sign you ought to reach for a more modern layout technique, like Flexbox or Grid.
Resources
- CSS in Depth, Keith J. Grant
- Block formatting context (Mozilla Developer Network)
Further Reading On SmashingMag
- “Progressively Enhancing CSS Layout: From Floats To Flexbox To Grid”, Manuel Matuzović
- “Overflow Issues In CSS”, Ahmad Shadeed
- “Editorial Design Patterns With CSS Grid And Named Columns”, Rachel Andrew
- “Futuristic CSS”, Sacha Greif
10 Interesting JavaScript and CSS Libraries for July 2019
Better vanilla JS syntax, awesome CSS snippets and more cool libraries in our compilation for July 2019.
An Introduction to Subscription Options in MQTT
In Introduction to MQTT Publish-subscribe Pattern, we learned that we need to initiate a subscription with the server to receive corresponding messages from it. The topic filter specified when subscribing determines which topics the server will forward to us, and the subscription options allow us to customize the forwarding behavior of the server further.
In this article, we will focus on exploring the available subscription options in MQTT and their usage.
October Email Newsletter Guide: Ideas and Examples
This post is originally published on Designmodo: October Email Newsletter Guide: Ideas and Examples
October invites us into the full swing of autumn. The heat is over, and cold, chilly weather comes into play. Mid-fall is more than an excuse to break out your cardigan collection; it is a golden opportunity for email marketing …
For more information please contact Designmodo
WooCommerce vs Magento: Which Is Better for Ecommerce?
Selecting Among Electronic Data Room Providers
Does Tools give 100% correct answers?
Hello Everyone!
Let's have a debate about does tools like Semrush, Ahrefs etc give 100% correct information? Like you do not need anything else besides these tools?
I already know the answer just looking for your insights.
Static Proxies or Rotating Proxies: Which One Should You Choose?
Data center proxies come from servers in data centers, while residential proxies come from real people's connections. Static proxies mostly come from data centers, while rotating proxies are residential, although there are exceptions for Residential proxies.
Both IPv4 and IPv6 addresses can supply static and rotating proxies, but static IPv4 proxies may be harder to come by since they've all been assigned. IPv6, on the other hand, has trillions of available IP addresses.
It Takes 20 Minutes to Copyright a Website – Here’s How
Your content is copyrighted as soon as you hit the Publish button. But does that prevent copycats from potentially stealing …
It Takes 20 Minutes to Copyright a Website – Here’s How Read More »
The post It Takes 20 Minutes to Copyright a Website – Here’s How appeared first on .
Secrets Management Takes More Than Just Tools
Every company wants to have a good security posture, and most are investing in security tooling. According to Gartner, worldwide spending on security is forecast to grow 11.3% in 2023 to reach more than $188.3 billion.
However, despite all this spending, there are certain areas where problems are only getting worse, such as secrets sprawl. Reports now say over 50% of cyber attackers gained their initial foothold by exploiting compromised credentials. No organization wants to go through an indecent like Samsung or Nvidia or repeat Uber's unfortunate experience.