What Is the Difference Between VOD and OTT Streaming?

Featured Imgs 23

Today, there are a considerable number of sites that provide streaming services. Interest in them is overgrowing, but only some users understand the distinction between OTT and VOD. Let’s discuss these two concepts and explain whether they are different. Or has this border been completely erased?

Definition of VOD

Interest in streaming services is growing, especially during the pandemic, when many are forced to suspend their professional activities or start working remotely. While working from home, some people often watch videos in the background, which they previously could not do in the office. Many companies appreciated the benefits of remote work, so they extended this format after the end of the acute phase of the pandemic.

CSS Basics: Visibility: Hidden vs. Display: None

Category Image 052

visibility: hidden and display: none are two CSS properties that can be used to hide elements. While they may seem similar at first glance, there are some significant differences between them. In this article, we’ll explore these differences and provide some examples to illustrate their use.

The UX Designer Toolbox

Unlimited Downloads: 500,000+ Wireframe & UX Templates, UI Kits & Design Assets Starting at only $16.50 per month!

 

visibility: hidden

The visibility property in CSS determines whether or not an element is visible on the web page. If set to hidden, the element will be hidden from view, but it will still occupy space on the page. This means that any other elements that would normally be positioned after it will still be positioned as if the hidden element were still visible.

Here’s an example of how visibility: hidden works:

<!DOCTYPE html>
<html>
  <head>
    <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cstyle%3E%0A%20%20%20%20%20%20%23hidden-element%20%7B%0A%20%20%20%20%20%20%20%20visibility%3A%20hidden%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%3C%2Fstyle%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="&lt;style&gt;" title="&lt;style&gt;" />
  </head>
  <body>
    <p>This is some text before the hidden element.</p>
    <div id="hidden-element">
      <p>This element is hidden using visibility.</p>
    </div>
    <p>This is some text after the hidden element.</p>
  </body>
</html>

In this example, the #hidden-element is hidden using visibility: hidden. Notice that the element still occupies space on the page, and the text after it is still positioned as if it were visible.

display: none

The display property in CSS determines how an element is displayed on the web page. If set to none, the element will be completely removed from the page and will not occupy any space. This means that any other elements that would normally be positioned after it will be repositioned as if the hidden element were not present.

Here’s an example of how display: none works:

<!DOCTYPE html>
<html>
  <head>
    <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cstyle%3E%0A%20%20%20%20%20%20%23hidden-element%20%7B%0A%20%20%20%20%20%20%20%20display%3A%20none%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%3C%2Fstyle%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="&lt;style&gt;" title="&lt;style&gt;" />
  </head>
  <body>
    <p>This is some text before the hidden element.</p>
    <div id="hidden-element">
      <p>This element is hidden using display.</p>
    </div>
    <p>This is some text after the hidden element.</p>
  </body>
</html>

In this example, the #hidden-element is hidden using display: none. Notice that the element does not occupy any space on the page, and the text after it is repositioned as if the element were not present.

When to use visibility: hidden vs. display: none

Now that we’ve seen how visibility: hidden and display: none work, it’s important to consider when to use one over the other.

Use visibility: hidden when you want to hide an element from view but still want it to occupy space on the page. This can be useful when you want to reveal the element later or when you want to maintain the layout of the page.

Use display: none when you want to completely remove an element from the page and don’t want it to occupy any space. This can be useful when you want to completely hide an element and don’t plan to reveal it later.

How do I use email to benefit SEO?

Featured Imgs 20

Email marketing can indirectly benefit SEO in a few ways:

(1) Increased Website Traffic: Sending promotional emails with links to your website can drive traffic to your site, which can improve your search engine rankings over time.
(2) Social Shares: Encouraging your email subscribers to share your content on social media can increase your social media presence and improve your visibility in search engine results.
(3) Brand Awareness: Regularly sending emails to your subscribers can help build brand awareness and recognition, which can lead to increased searches for your brand on search engines.
(4) Quality Content: Email marketing is an excellent way to share high-quality content, such as blog posts or infographics, which can be shared on social media and linked to by other websites, improving your website's authority and relevance.
To maximize the SEO benefits of email marketing, consider the following tips:

(1) Optimize your email content for SEO by including relevant keywords in your subject lines, headlines, and body text.
(2) Use a clear and concise call-to-action (CTA) in your emails to encourage subscribers to visit your website and engage with your content.
(3) Segment your email list based on interests and behavior to provide targeted content and promotions to your subscribers.
(4) Monitor your email and website analytics to track the impact of your email campaigns on website traffic and engagement.
(5) Include social sharing buttons in your emails to encourage subscribers to share your content on social media.

Side nav menu with accordion sub-items

558fe5180e0e8fc922d31c23ef84d240

I've searched, but can't even find what to call this. Any links or code would help a ton. I want 8 main items to appear from a side-menu with 4 sub-items branching out to their right when clicked. As any sub-item is clicked, I'd like for 4 items below that to appear in an accordion-style fashion. The entire thing should never get any larger than 8x2.

Does this make sense? What am I looking for here? Thanks for any help you're able to provide.

Creating ‘Crap’ Faster Isn’t an Improvement

Category Image 062

Over the last few weeks, there’s been a lot of chatter about ChatGPT, a writing tool built in OpenAI. So much noise, in fact, that everyone from CNN, the NYT, Forbes, the Atlantic, the Washington Post, the Guardian, BBC, TechCrunch, CNet, and approximately a half billion techbruhs on YouTube had to sound off on it. All in the last two weeks.

The opinions range from incredulous to breathless to skeptical — albeit carefully so. Nobody really knows what the next few weeks will bring, and therefore nobody is willing to declare ChatGPT entirely one thing or another.

A Simple Method for Training GPT-2 To Generate Haiku Using the NanoGPT Repository

Featured Imgs 23

Purpose

In this article, I will show how to easily train GPT-class neural networks from home. Let me start by saying that we won’t train NN from scratch, as that would require 8 (eight!) A100-class GPUs at least and a massive dataset. Instead, we’ll focus on fine-tuning a pre-trained GPT-2 model using a smaller dataset, which anyone can easily make or find online. OpenAI has kindly released GPT-2 under Modified MIT License.

nanoGPT

We’ll use the nanoGPT repository created by Andrej Karpathy for fast and easy GPT training. He has a comprehensive video lecture explaining how GPT-2 works and how to train such a neural network. However, we’re interested in fine-tuning the model using our own dataset and seeing the difference from the original (GPT-2 trained by OpenAI).

Uber System Design

Featured Imgs 23

The popular implementations of the ride-hailing service are the following:

  • Uber
  • Lyft
  • Curb
  • Grab

Requirements

  • The rider can see all the available nearby drivers
  • The driver can accept a trip requested by the rider
  • The current location of the rider and driver should be continuously published on the trip confirmation

Data Storage

Database Schema

Chris’ Corner: Resizing, Conditionals, and Initials

Category Image 052

Ahmad Shadeed recently wrote:

I like to think of CSS as a conditional design language.

It totally is! We tend to think of stuff like @media queries as the conditional part:

@media (max-width: 550px) {
  .grid {
    grid-template-columns: 1fr;
  }
}

That’s true, and new stuff like container and style queries are giving us more “conditional” stuff to work with. But it might be better to think of literally everything in CSS as conditional. Every selector you can write is conditional in some way. Just a sector like aside is conditional — it says, only style elements that match that selector. To grok CSS, you are grokking a massive set of conditions. As Ahmad indicated:

.alert p:empty {
  display: none;
}

This is a big logical if statement. IF the element is a paragraph. IF that paragraph is empty. IF it is a child of another element with a class of alert. All those IFs have to be true for the styles to apply.


You could take conditional CSS another step up though, meaning conditions by which to load the entire .css file at all.

Vadim Makeev wrote up some interesting experiments around all this. Say you do:

<link rel="stylesheet" href="style.css" media="print">

The browser is smart enough not to load that CSS file at all (unless you’re printing, natch).

You can also do this:

<link rel="stylesheet" href="base.css">
<link rel="stylesheet" href="mobile.css"
  media="(max-width: 767px)"
>

Butttttt, the browser will actually load both of those files regardless if the media matches or not. So no obvious immediate benefit, but that’s where Vadim’s research comes in. While all the files with non-matching media (queries) still load, the browser is smart enough to make the non-matching stylesheets load with a lower priority. At least in Chrome and Firefox — Safari has some bug that makes the priority levels not provide the perf benefits.

Pretty cool I think. Doing this kind of work by hand feels onerous though, I’d love to see build processes deal with it automatically.


Ya know I was scared for Mozilla & Firefox for a while. Those big layoffs in 2020 included many browser engine engineers and it seemed like it would be hard to continue to be a viable browser engine alternative without a strong team there. But I was essentially wrong. Since then they’ve shipped plenty of important web platform features at a decent pace, including the ever-important Container Queries and new color formats. Putting MDN on GitHub happened after the layoffs too and that seems like a massive thing to get shipped.

Last year WIRED asked Is Firefox OK? There wasn’t really an answer there, but some good information. We know Google provides the bulk of their income, but they showed really strong growth with their own products and services, saying 14% of all revenue was that back in 2021. They’ve clearly been trying new stuff to increase that, so things look on the right track to me.

I like to see little stories like this: Mozilla fixed an 18-year old CSS bug in the Firefox browser. So they aren’t just playing catch up, they are getting details right along the way too. Better late than never. This one was a weird bug with ::first-letter, the real ticket for doing drop caps:

They said it was kind of a bandaid for now but still cool. Speaking of drop caps though… ::first-letter was always fraught for this purpose. Much better would be to support initial-letter. C’mon Firefox, you can do it!


Michelle Barker on Resizing with CSS:

One drawback is the resize control is only positioned in the bottom right corner of the element, and it’s not possible to style it. It would be nice to have this customiseable ability, and increase the area of the resize control.

Yes!

That’s literally my opening thing in Things CSS Could Still Use Heading Into 2023. Just imagine the CodePen editors. So many things resize, and the ability to do that in HTML and CSS alone would be super sweet. But probably with JavaScript callbacks so we can do stuff like save/persist what has changed in the UI.

And ya know, that makes me think about how we only just got a scrollend event in JavaScript, maybe we should get a resizeend event too.

Hierarchy in MDM: What and Why

Featured Imgs 23

What Is Hierarchy?

In master data management, hierarchy management is an essential component. It allows a comprehensive view of different domains within an organization. It links the relationship among customers, suppliers, products, locations, and other entities within the business. 

Hierarchy Used in Different Master Data Domains

Hierarchy in MDM is used in several domains, such as party master data, location master data, and product master data. Party master data includes the company, business contacts (customers, suppliers, and related business partners), and individuals (employees, customers, and contractors).  It deals with customers, providers, and other business entities. The accounts are settled in the department, legal representatives, and parent organization sequence at the national level; and then at the global level. 

Location master data occupies the external hierarchies around the globe ranging from continents to the down level to streets and buildings. In contrast, internal hierarchies include geographies such as sales districts and different regions in the organization. Product master data is related to external and internal products. External products may be UNSPSC, HS, ETIM, etc. Contrarily internal products are linked to reporting, purchasing, and sales of products, etc.

Weebly Tutorial: How to Use Weebly to Set Up a Website

Category Image 041
Weebly TutorialWeebly is a popular website builder and is highly rated amongst entrepreneurs and small business owners that want to create their own website or online store. The tool is generally considered very easy to use. However, if you’re new to it, you might be wondering what the best way to get started is. In this Weebly tutorial, we will walk through all the steps required to set up a new Weebly website and show you a few things you should consider before launching it.

How To Use CSS To Maintain Aspect Ratio For Responsive Design

Category Image 052

Maintaining the Aspect ratio of a div is a common requirement when creating responsive web designs. In this article, we’ll explore how to use CSS to maintain the Aspect ratio of a div as the window’s width changes.

To achieve this, we’ll use the padding hack. The padding hack is a technique that uses a percentage value for padding-top or padding-bottom to maintain the Aspect ratio of an element. The percentage value is calculated based on the width of the parent element. As the width of the parent element changes, the padding value will adjust to maintain the Aspect ratio of the child element.

Your Web Designer Toolbox
Unlimited Downloads: 500,000+ Web Templates, Icon Sets, Themes & Design Assets


 

Let’s start by creating a div element with a background color.

<div class="aspect-ratio"></div>

<style>
  .aspect-ratio {
    background-color: #ccc;
  }
</style>

To maintain the Aspect ratio of this div, we’ll set its padding-top to a percentage value. The percentage value will be calculated based on the desired Aspect ratio of the div. For example, if we want the Aspect ratio to be 16:9, we’ll set the padding-top to 56.25% (9/16 * 100).

.aspect-ratio {
  background-color: #ccc;
  padding-top: 56.25%;
}

Now, as the width of the parent element changes, the padding value will adjust as desired.

Here’s an example that shows how to use the padding hack on a div with a background image.

<div class="aspect-ratio" style="background-image: url('image.jpg')"></div>

<style>
  .aspect-ratio {
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    position: relative;
  }
  
  .aspect-ratio:before {
    content: "";
    display: block;
    padding-top: 56.25%;
  }
  
  .aspect-ratio > * {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  }
</style>

In this example, we are again using the padding hack, and we’re also using a pseudo-element (:before) to create the padding. We’re setting the position of the parent element to relative and the position of the child element to absolute to position the child element inside the parent element. We’re also setting the width and height of the child element to 100% to fill the parent element.

In conclusion, the padding hack is a simple and effective technique for maintaining the Aspect ratio of a div as the window’s width changes. By using a percentage value for padding-top or padding-bottom, we can calculate the padding value based on the desired Aspect ratio of the div. This technique is widely used in responsive web design and can be used to create a variety of layouts and designs. Be sure to check out our library of CSS articles and tutorials while you’re here!

How To Integrate Facial Recognition Technology in the Mobile App

Featured Imgs 23

A technology invented in 1967 has now reached our everyday using device-mobile phones. We are talking about Facial Recognition Technology (FRT). Though first used for policing, prevention, and security, we can now unlock our phones and even apps through FRT.

It uses a mixture of AI and biometric technology to identify the human face. The FRT technology has replaced long and complicated passwords and has made it easy for users to access the app. Such a technology adds another layer of security, ensuring the user's data is safe. 

How does a social marketing strategy work?

Featured Imgs 20

A social marketing strategy is a plan for using social media platforms to promote a brand, product, or service. Here are the general steps involved in creating and implementing a social marketing strategy:

(1) Define your objectives: Determine what you want to achieve with your social media presence. This could be anything from increasing brand awareness to driving sales.
(2) Identify your target audience: Define your target audience, including demographic information such as age, gender, location, and interests. This will help you create content that resonates with your audience.
(3) Choose your social media platforms: Identify which social media platforms your target audience uses the most, and focus your efforts on those platforms.
(4) Develop your content strategy: Create a plan for the type of content you'll create and share on social media. This could include posts, images, videos, and stories.
(5) Create a social media calendar: Plan out when you'll post content and what you'll post. This will help you stay organized and consistent with your social media activity.
(6) Engage with your audience: Respond to comments, messages, and mentions from your audience. This will help you build relationships and create a sense of community around your brand.
(7) Analyze your results: Use social media analytics tools to track your progress and see how your content is performing. This will help you make adjustments to your strategy and improve your results over time.
Overall, a social marketing strategy is about creating a consistent presence on social media that resonates with your target audience and helps you achieve your business objectives. By following these steps and continually refining your approach, you can create a successful social media presence that supports your overall marketing efforts.

1 view