Making PostgreSQL Backups 100x Faster via EBS Snapshots and pgBackRest

Featured Imgs 23

If you have experience running PostgreSQL in a production environment, you know that maintaining database backups is a daunting task. In the event of a catastrophic failure, data corruption, or other forms of data loss, the ability to quickly restore from these backups will be vital for minimizing downtime. If you’re managing a database, maintaining your backups and getting your recovery strategy in order is probably the first check on your checklist. 

Perhaps, this has already given you one headache or two because creating and restoring backups for large PostgreSQL databases can be a very slow process.

Hasdx and Stable Diffusion: Comparing Two AI Image Generation Models

Featured Imgs 23

Generating realistic images from text prompts is an exceptionally useful capability enabled by recent advances in AI. In this post, we'll compare two of the top text-to-image models available today — hasdx and Stable Diffusion — to better understand their strengths, differences, and ideal use cases.

First, some background. Both hasdx and Stable Diffusion leverage deep learning techniques to generate images that remarkably match text descriptions provided by the user. This makes them invaluable for creators, designers, and businesses who want to quickly ideate visual concepts, create prototyping assets, or produce custom images and media.

How to Customize and Style Your WordPress Forms (2 Easy Methods)

Category Image 091

Are you wondering how to style your WordPress forms?

You can customize your forms to match your WordPress website’s design. This can create a more visually appealing and professional look for your site and improve the user experience.

In this article, we will show you how to easily customize and style WordPress forms, step by step.

Customize and style your WordPress forms

Why Customize and Style Your WordPress Forms?

When you add a form to your WordPress website using a plugin, you will notice that its layout is usually simple and plain-looking.

For example, if you add a registration form to your website using a user-registration form plugin, then you will see that its layout is a bit boring. This can fail to capture your visitor’s attention and even discourage them from filling out the form.

Registration form preview

By customizing your forms, you can match them to your WordPress theme and your branding to make them more attractive.

This can lead to more conversions because styled WordPress forms are easier to navigate and can encourage more users to fill them in.

Styled form preview

Styled forms can also increase your brand awareness among users. For instance, you can use your website logo and signature company colors to make your form more memorable and effective.

Having said that, let’s see how to easily customize and style your WordPress forms, step by step. We will cover 2 methods in this post, and you can use the quick links below to jump to the one you want to use:

Method 1: How to Customize and Style WordPress Forms With WPForms (Code Free Method)

You can easily customize and style your WordPress forms using WPForms. It is the best WordPress contact form plugin on the market, used by over 6 million websites.

WPForms comes with a drag-and-drop builder that makes it super easy to create any kind of form you want. Plus, it even has built-in customization options for your form that don’t require any coding.

First, you need to install and activate the WPForms plugin. For detailed instructions, you may want to see our step-by-step guide on how to install a WordPress plugin.

Note: WPForms also has a free version that you can use for this tutorial. However, we will be using the premium plugin because it has more settings and options.

Upon activation, you need to visit the WPForms » Settings page from the WordPress admin sidebar to enter your license key.

You can find this information in your account on the WPForms website.

Entering the WPForms license key

Once you’ve done that, head over to the WPForms » Add New screen from the WordPress dashboard.

This will take you to the ‘Select a Template’ page, where you can start by typing a name for your form. After that, you can pick any form template that you want and click the ‘Use Template’ button under it.

For the sake of this tutorial, we will be creating and adding a simple contact form to our website.

Choose the contact form template

This will launch the template in the WPForms form builder, where you will see a form preview on the right and form fields in the left column.

From here, you can drag and drop any form field of your choice to the form according to your liking.

For detailed instructions, see our tutorial on how to create a contact form in WordPress.

Save your form

Once you are done customizing your form, simply click the ‘Save’ button at the top to exit the form builder.

After that, you need to visit the WPForms » Settings page from the WordPress dashboard and check the ‘Use Modern Markup’ option. If you fail to check this box, then the WPForms customization settings won’t be available in the block editor.

Don’t forget to click the ‘Save Changes’ button to store your settings.

Enable modern markup in WPForms

Next, open the page or post where you want to add the form that you just created.

From here, you need to click the add block ‘+’ button in the top left corner of the screen to open the block menu and add the WPForms block.

Once you have added the block, simply select the form that you want to add to your site from the dropdown menu within the block itself.

Add the WPForms block

Now that you’ve added the form, it’s time to customize it and style it.

To do this, you must open the block panel on the right side of the screen and scroll down to the ‘Field Styles’ section.

From here, you can select a size for your form fields from the dropdown menu and even set a border radius for them.

Change form field size and radius

Next, you can change the background, text, and border color of the form fields by using the color picker tool.

Here, you can use your brand’s signature colors or other colors that are used on the rest of your WordPress blog to create a visually appealing form.

Change field color

Once you’ve done that, scroll down to the ‘Label Styles’ section, where you can select the font size of the labels from the dropdown menu.

After that, you can also change the font color of the labels, sub-labels, and error messages that will be displayed in your form.

Configure label style

To customize the button in your form, you need to scroll down to the ‘Button Styles’ section and choose its size from the dropdown menu.

You can also set a border radius and change the background and text color of the form button.

Configure button style

Once you’ve finished customizing the form, simply click the ‘Update’ or ‘Publish’ button at the top to store your settings.

Now, you can visit your site to view the styled WordPress form in action.

Form customization preview

Method 2: How to Style WordPress Forms With CSS (Advanced Customization)

If you don’t want to use the customization options offered by WPForms or you want to apply different customizations with CSS, then you can also use a custom CSS snippet.

To do this, first, you will have to create a form using WPForms, which is the #1 form builder on the market.

It is a drag-and-drop builder that comes with many templates that you can use to create contact forms, file upload forms, registration forms, RSVP forms, and much more.

For detailed instructions, you can see our tutorial on how to create a contact form in WordPress or see method 1.

Once you have created a form, it’s time to customize it using WPCode, which is the best WordPress code snippets plugin on the market.

WPCode WordPress code snippets plugin

It is the easiest and safest way to add CSS code for styling your WordPress form.

First, you will need to install and activate the WPCode plugin. For detailed instructions, you may want to see our beginner’s guide on how to install a WordPress plugin.

Note: WPCode has a free version. However, you will need the premium plan of the plugin to unlock the ‘CSS Snippet’ option.

Upon activation, visit the Code Snippets » + Add Snippet page from the WordPress dashboard.

Once you are there, just click the ‘Use Snippet’ button under the ‘Add Your Custom Code (New Snippet)’ option.

Add new snippet

This will take you to the ‘Create Custom Snippet’ page, where you can start by typing a name for your code snippet.

After that, select the ‘CSS Snippet’ option from the dropdown menu in the right corner of the screen.

Choose CSS snippet option from the dropdown menu

Next, copy and paste the following code into the ‘Code Preview’ box:

#wpforms-0000 .wpforms-form {
    background-color: #ADD8E6 !important;
	font-family: 'Arial', sans-serif !important;
    padding: 20px 15px !important;
    border: 3px solid #666 !important;
    border-radius: 20px !important;
}

Once you’ve done that, you will have to replace the default shortcode at the top with the shortcode of the form that you want to customize.

To do this, visit the WPForms » All Forms page from the WordPress dashboard and copy the WPForms ID number of the form that you want to style.

copy the form ID number

After that, paste the ID number of the form next to the wpforms- line in the code. Now, all the code will be executed in this specific form only.

Next, you can easily change the hex code for the background color, add a font family of your choice, and configure the padding and border radiuses of the form by changing the code snippet.

Add form ID number in the code snippet

Once you have done that, scroll down to the ‘Insertion’ section and select the ‘Auto Insert’ mode.

The code will automatically be executed on your site upon activation.

Choose an insertion method

Finally, scroll back to the top of the page and toggle the switch to ‘Active’.

After that, click the ‘Save Snippet’ button to store your settings

Save form styling snippet

Now, the WordPress form will automatically be customized according to the CSS snippet, and you can go view it.

However, if you haven’t added the form to your website yet, then just open a page or post in the block editor.

Once you are there, click the ‘+’ button in the top left corner to open the block menu and add the WPForms block.

Add the WPForms block

After that, select the form that you styled using the CSS snippet from the dropdown menu in the block itself.

Finally, click the ‘Update’ or ‘Publish’ button to store your settings.

Now, you can visit your WordPress site to see the customized form in action.

Form CSS styling preview

Bonus: How to Create Custom Website Pages

Styling WordPress forms is just one way to make your site more attractive and visually interesting. You can also design your own fully customized website pages using SeedProd.

It is the best WordPress page builder plugin on the market that allows you to create attractive pages without using any code.

SeedProd comes with a drag-and-drop builder, pre-made templates and site kits, easy customization options, color palettes, and advanced page blocks. Plus, you can easily embed your WPForms forms within the SeedProd editor.

Adding a contact form to your maintenance page

You can even use SeedProd to create a viral waitlist page, a sales page, a maintenance page, a coming soon page, and so much more.

For more details, you can see our tutorial on how to create a landing page in WordPress.

We hope this article helped you learn how to customize and style your WordPress forms. You may also want to see our tutorial on how to add a coupon code field to WordPress forms and our comparison of WPForms vs. Gravity Forms vs. Formidable Forms.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

The post How to Customize and Style Your WordPress Forms (2 Easy Methods) first appeared on WPBeginner.

How To Make Codable Work With Swift’s New Observation Framework and the @Observable Macro in SwiftUI

Featured Imgs 23

With Swift 5.9 and Xcode 15 introduced in this year’s WWDC, there is a new take on how observation is implemented and integrated with SwiftUI. The new macro capability in Swift has enabled the replacement of the protocol ObservableObject and property wrappers like @Published, @ObservedObject and @StateObjectwith the new @Observable macro. The new Observation framework brings several advantages, aiming for simpler usage and improved performance by updating only the views directly affected by changes in the data model.

Check out the documentation for a comprehensive introduction to the Observation framework.

Aperture in Action: How We Solved PostgreSQL Performance Challenges

Featured Imgs 23

Even thirty years after its inception, PostgreSQL continues to gain traction, thriving in an environment of rapidly evolving open-source projects. While some technologies appear and vanish swiftly, others, like the PostgreSQL database, prove their longevity, illustrating that they can withstand the test of time. It has become the preferred choice by many organizations for data storage, from general data storage to an asteroid tracking database. Companies are running PostgreSQL clusters with petabytes of data.

Operating PostgreSQL on a large scale in a production environment can be challenging. Companies have experienced downtime and performance problems, resulting in financial losses and diminished trust, especially if the outages extend beyond a few hours. A case in point is the GitLab database outage in Jan 2017. Though there were many attributes to how this outage happened, to emphasize how overload can play a significant role, in their timeline, they explained how much time it took to control overload happening at that time, which cost them hours to control it.

Techno Security and Digital Forensics Conference East 2023

Featured Imgs 23

If you have ever heard of Wilmington, North Carolina, it might be because the WW2 battleship North Carolina is moored there, or that it is a historically significant shipping town, or because of its role in the US-British Revolutionary War. But starting in 2023, it is also known as the East Coast home for the Techno Security and Digital Forensics Conference, which was previously held in Myrtle Beach. 2023 also marked the 23rd year of the conference and community, this year bringing together just over 1,000 total participants.

Many of the sessions were directed at law enforcement officers, leaning into the digital forensics side of the conference, and a lot of the attendees worked with various government agencies. There were also plenty of sessions for the general security community as well. Here are just a few of the highlights from this enlightening cybersecurity event.

Squarespace Ecommerce Review: Does It Beat the Competition?

Category Image 025
Squarespace Ecommerce review.Squarespace, in its most basic form, is a popular platform for building general websites. Its ecommerce plans, however, turn any Squarespace site into an online store capable of showcasing products and processing payments. Our hands-on Squarespace Ecommerce review will help you decide whether it’s the right place for your store.

Display list of months, sorted in order of rainfall, highest to lowest

558fe5180e0e8fc922d31c23ef84d240

Hi everyone, was wondering if maybe someone could help me. I'm new to coding and have an assignment to do. The assignment is as follows:

Write a program that lets the user enter the total rainfall for each of 12 months into an array of doubles. The program should calculate and display the total rainfall for the year, the average monthly rainfall, and the months with the highest and lowest amounts.

The program should display a list of months, sorted in order of rainfall, from highest to lowest

Input Validation: Do not accept negative numbers for monthly rainfall figures.

Include the following functions
Calculate total rainfall
Calculate the average rainfall
Find the largest amount of rainfall
Find the smallest amount of rainfall
Sort the array of rainfall data
Display the sorted data.
Display Array

what I have so fa

#include <iostream>
#include <string>
#include <iomanip>
using namespace std;

// Months, double, things needed
   const int MONTHS = 12; //Number of elements
   string name[MONTHS] = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" };
   int i = 0; //Loop index
   double rainFall[MONTHS];
   double total = 0, avg = 0, highRain = 0, lowRain = 0;
   string highMonth;
   string lowMonth;

   int main()
{

   for (int i = 0; i < MONTHS; i++)
   {
      //input total rainfall for each month
      cout << "Enter rainfall for " <<name[i] << ": " << endl;
      cin >> rainFall[i];
      // input validation -- negative inputs not allowed
      while (rainFall[i] < 0)
      {
         //notify user of the error
         cout << "invalid data (negative rainfall) -- retry" << endl;
         //get new input
         cin >> rainFall[i];
      }
      //total rainfall
      total += rainFall[i];
   }

   //average rainfall
   avg = total / 12;

// Max or most rainfall
   highRain = rainFall[0];
   highMonth = name[0];

   for (int i = 1; i < MONTHS; i++)
   {
      if (rainFall[i] > highRain)
      {
         highMonth = name[i];
         highRain = rainFall[i];
      }
   }

//least or less rainfall
   lowRain = rainFall[0];
   lowMonth = name[0];

   for (int i = 1; i < MONTHS; i++)
   { 
      if (rainFall[i] < lowRain)
      {
         lowMonth = name[i];
         lowRain = rainFall[i];
      }
   }
// Display calculations --> average and total rainfall, most and least rainfall
   cout << "\n"; 
   cout << "Total rainfall: " << total << endl;
   cout << "Average: " << avg << endl;
   cout << "Most rainfall in " << highMonth << " with an amount of " << highRain << endl;
   cout << "Least rainfall in " << lowMonth << " with an amount of " << lowRain << endl;
  cout << "\n"; 

// Display a list of months, sorted in order of rainfall, from high to low
  for (i = 0; i < MONTHS; i++) {
      cout << name[i] << " " << rainFall[i] << endl;
   }

   return 0;
}

I was wondering if anyone knew how to go about sorting it? I just cant seem to wrap my head about it.
Thank you in advance!

Chris’ Corner: Can Has Blurs, Filters, and Masks

Category Image 052

You’ve seen CSS’ new :has() selector right?

There are all these “basic” use cases that leave me smiling because the solutions of the past were inelegant at best, and now are easy and satisfying. Here’s one:

  1. You want margin below your <h2>
  2. … unless there is a <time> right below it, then no margin
  3. … but put the margin below the <time> instead.

One approach to this with :has() is just a few lines and reads very clearly to me:

h2 {
  margin-block-end: 1.2rem;
  &:has(+ time) {
    margin-block-end: 0;
  }
  &:has(+ time) + time {
    margin-block-end: 1.2rem;
  }
}
Demo

But as I mentioned, that’s a “basic” use case. The power of :has() is very deep, as it allows for inspection from any DOM element down the tree, then moving as far back up as needed. It’s a bit hard to wrap my mind around that sometimes. Like Jim Neilsen said:

I feel like lots of people have their own little oh yeah! moments with this CSS feature. Michelle Barker blogged a few of them, including an interesting combination with the :target selector. Does a certain “have” an element that is targetted? Yes? Animate the grid to reveal an otherwise hidden area:

Poking around my own code bases, I can see it starting to sprinkle in. It’s interested to see when it comes to unknown data coming into templates. Here’s a JSX example:

<div class="things">
  {things.map(thing => {
    return(
      <div class="thing" key={thing.id}>
        <h3 data-category={thing.category}>{thing.name}</h3>
        {thing.text}
      </div>
    );
  })
</div>

Here I’ve spat out a total arbitrary list of “things”. I found it most useful to have the data-category attribute on the header, as direct styling with that was useful. But what if the parent needs styling based on that? Easy:

.thing:has([data-category="widget"]) {
   background: yellow;
}

More, what if the entire group needs a special style? And if it does, make all the headers smaller?

.things:has([data-category="widget"]) h3 {
  font-size: 80%;
}

Go down, then back up!

I’m even very-mindblown-y on the idea that quantity queries are now easy. Does this list have at least 11 items in it? Yes? Then do something:

ol:has(li:nth-child(11)) {
  color: red;
}

Get out of dodge.


We’ve had blend modes in CSS for a while. You use mix-blend-mode when you’re trying to blend an elements content with it’s background. You use background-blend-mode when layering backgrounds and wanting to blend those.

It still strikes me as a surprisingly cool thing we have access to directly in CSS. And it’s niche enough that when I see it used, it’s usually a pleasant surprise.

Brad Woods has an awesome article showing off how they work. Interactive examples really does blending justice here.

Those look dramatic, but blending can be rather subtle. Brad has all sorts of other examples like blending gradients over images, blending textures, blending patterns, that all end up quite nice and the fact that they are programmatic just feels cool and powerful.

Koding Kitty has a similarly good explanation page, specifically using provided Tailwind class names to do the blending over top a single-color icon. I always thought Robin did a good job on the old CSS-Tricks page as well.

You know what I always think of with blending, though? It’s not a CSS property that you just learn and then you know it. All you can learn is the general category of what it can do and the circumstances it might be useful. Then, you have to guess and test your way to a good outcome. One might argue a lot of CSS is that way, but I feel like blending is particularly this way.


Speaking of excellent interactive tutorials!

Artur Bień is all over it in Blur Vignette effect in CSS.

How would you pull of this in CSS?

Quickly, it’s to layer two copies of the image, blur the top one, and use a mask to only reveal the edges of the blurred version. The hard part is crafting the mask. Artur does it with 6 layered gradients which gets the effect just right.

Don’t miss the Windows 98-ish interactive demo at the bottom which lets you totally control different Aspects of the effect.

Artur is the master of getting these kind of details right. Check out this quick screencast video he tweeted about getting a “glass overlay” effect just right. I’d be like “that’s what backdrop-filter is for!” That’s in there, but it doesn’t account for the, as Artur puts it:

In reality we see glass objects reflecting light even before they are placed directly between our eyes and the light source.


Well we’ve touched on filters, blending, and masking, I suppose it’s not out of line to hit shadows too. I enjoyed Preethi Sam’s thinking differently in A Few Interesting Ways To Use CSS Shadows For More Than Depth. Shadows can have properties that make them quite un-shadow-like, like having zero blur, being inside an element, being whatever color you want, and even being layered. Like how good are these hovers?

Nothing wrong with using shadows for shadows though! I ran across boxshadows.xyz the other day and it’s a pretty nice tool for doing layered shadows that have a better depth effect than any one shadow alone can do.

I just love that sort of look. It’s intense looking in that exact example, but a slightly more subtle version with a bigger shadow behind and a slight lighting effect inset on top is just a really juicy effect that works well on the web.

You know what else is hot right now? Blurred and colored blobs as backgrounds. As ever, you can make those as images and use a background-image (I’ve seen Figma plugins like this and this). But it’s fun to do programmatically of course as you can color them as needed, make different sizes, and even animate them.

Andrew Walpole took a crack at it with Glowing Blurred Backgrounds with CSS. The filter property does the heavy lifting getting the blurryness going, but getting the shapes together in which to blur is very clever.

Below the (left) turns to the (right).

A Comprehensive Guide to Data Visualization: An Effective Way of Telling Stories With “Data”

Featured Imgs 23

The technique of presenting data in a graphical style is known as data visualization. People can now detect connections and patterns that are tough to see in the raw data. The use of graphs, maps, charts, and other visual tools to portray information and data is more meaningful with data visualization. We can quickly comprehend any patterns, trends, or anomalies in a data set thanks to their visualizations.

Because it enables people to easily understand difficult ideas through graphics, data visualization may also be used to communicate complex ideas effectively and fast. This holds true even for complex data sets since data visualization sheds light on the connections between different variables, enabling you to make sense of things that might otherwise go unnoticed if you were just reading a data set.

A Beginners Guide to SQL Window Functions

Featured Imgs 23

Hello there! Are you interested in learning about SQL window functions? Well, let's not waste any time and set sail on a journey to explore some of the most fundamental window functions in SQL! We'll be navigating through some exciting SQL concepts that will help you analyze data like a pro. So, buckle up and get ready to learn!

Prerequisites

To follow along with this tutorial, you will need: 

Navigating Vector Databases and Search Through the Prism of Colors

Category Image 062

Vector technology in AI, often referred to with implementations, vector indexes, and vector search, offers a robust mechanism index and query through high-dimensional data entities spanning images, text, audio, and video. Their prowess becomes evident across diverse spectrums like similarity-driven searches, multi-modal retrieval, dynamic recommendation engines, and platforms leveraging the Retrieval Augmented Generation (RAG) paradigm. Due to its potential impact on a multitude of use cases, vectors have emerged as a hot topic. As one delves deeper, attempting to demystify the essence of "what precisely is vector search?", they are often greeted by a barrage of terms — AI, LLM, generative AI — to name a few. This article aims to paint a clearer picture (quite literally) by likening the concept to something we all know: colors.

Infinite hues bloom,

EclipseStore: Storing More Complex Data Structures

Featured Imgs 23

In the first part of my series, I showed how to prepare EclipseStore for use in a project. We also initialized the StorageManager and saved, modified, and deleted the first data. But what about more complex structures? Can you use inheritance? To do this, we will now create a small class model.

First, let's look at what inheritance looks like. To do this, we take an interface called BaseInterfaceA, an implementation BaseClassA and a derivative LevelOneA. We will now try to save this and see how it behaves depending on the input when saving.