This article is targeted to anyone who is looking to deliver Mp4 videos over internet. It provides technical details about the metadata that can hamper good encoding and delivery, causing poor playback performance.
Preparing video files for playback is a relatively straightforward process. One detail that is often perplexing, however, is the moov atom. An atom is a self-contained data unit that contains information about the video file. The moov atom, also referred to as the movie atom, defines the timescale, duration, display characteristics of the movie, as well as subatoms containing information for each track in the movie. The optimal location of the moov atom depends on the selected delivery method. …
When developing in ReactJS, running your app for testing is easy since you could use npm to run a quick dev-server and be done with it. Things get complicated when you need to host your ReactJs app for production. There are multiple ways to do that including serving directly with node using serve -s build
, to running as a part of other server-side apps e.g. using expressjs and using pm2 to continue serving. One of these methods is hosting your app as static site and then use client-side routing.
First thing to understand is the flow where, and how, a URL is interpreted. A simpler flow is, user sends a request for http://example.com/about
to the server, which would inspect the path of the URL, determine the page that user is requesting and then sends that page back. …
There are plenty of article of hosting an app on Linux systems, most of these are for Ubuntu and uses Nginx, however for those developers or DevOps teams who are using Apache on CentOS, this info is little scattered. In this article, first of a series, I will explain the method of successfully applying the SSL certificates in Apache on CentOS.
If you are looking for either of these, keep reading the upcoming articles in this series:
Step 1: Upload Certificate to…
What’s burning. What’s good. And what’s next.
Everything around us is going through the change forced upon by the recent global pandemic; businesses who had their operations planned out around the year based on intelligence from historical data were forced to adopt a new strategy to function — most of all, for end user engagement.
Almost nothing is ever going to be the same — it’s an evolving fact, if not an assessment of the immediate situation — even when we’d come out of this.
And, while every other industry is dealing with it in its own way, with their specific set of challenges, today — here I want to talk about Online Learning or eLearning. …
In this post I will be explaining the workflow of tracking of ad playback and user-engagement with ads by Server-Side Ad Insertion providers.
If you are looking for a place to start with understanding Dynamic Ad Insertion I recommend you read this great article by Eyevinn Technology.
To allow advertisers to serve different ads to individual viewers, DAI providers need to gauge audience insights and ad campaign performance, which enables the ad server to take decisions and make adjustments to optimize campaign performance in real-time. …
In this post I will explain how JavaScript works asynchronously even though it is a single-threaded language
Ever come across setTimeout() functions in JavaScript? You have probably used it to delay some processing to wait for some other operation to be completed, or in certain cases to mitigate those nasty race conditions? But, have you ever thought of what goes on behind the scenes?
Now we know that setTimeout takes two arguments — one is the function that contains the piece of code and second is the delay time in milliseconds (ms), like this:
setTimeout(()=>{ console.log(‘Hello’); }, 3000);
This looks all too easy, use the function, add the time and voila! — my code is asynchronous. And this does make sense, intuitively at least, for we did put the time to delay the execution, didn’t we? And now we expect it to execute at the end of expiration of this time; but lets not forget that JavaScript is single-threaded; this raises two questions — # 1 — Doesn’t this simply mean that if you delay something by X milliseconds the entire code should halt until those X ms are passed and you wouldn’t actually have asynchronous code execution and callbacks? (Well, at least the code execution; let’s put a pin into callbacks until later.) …
About