How to Set Up a Cron Job in cPanel Hosting (+ WP Cron)

Cron Jobs allow you to run scripts and automate repetitive tasks that can take up considerable time if done manually. In this post, we show you how to set up a cron job in cPanel and how to configure a real cron for WordPress.

This tutorial covers the following:

What is a Cron Job?

A cron job allows you to automate commands or scripts on your site that require being triggered at regular intervals or whenever specific events happen to complete repetitive tasks.

cPanel includes a software utility called cron (from the Greek word for time, Chronos). This utility lets you schedule tasks that your system runs repeatedly. These tasks are called cron jobs or cron schedules and they are run from a file called crontab (CRON TABle) that lists all the tasks that cron needs to execute.

You can set a command or script using cron jobs to run at a specific time every day, week, etc. For example, you could set a cron job to run a backup or delete temporary files to free up disk space on your server every week (or every two hours, or on a specific day of the month, or at 2:36 pm every Wednesday).

Once a cron job is set up, it then runs automatically as per your schedule.

Parts of a Cron Command

A Cron Command typically consists of four parts:

  • Timing: this part lets you set when you’d like your script to run by specifying regular intervals in terms of minutes, hours, days, months, and weekdays.
  • Execute: this part calls the PHP your cron job needs run, which is normally located in the path /usr/bin/php.
  • Script Path: this is the full path of the file you want to run (e.g. /home/user/public_html/index.php)
  • Output: this optional part lets you write the cron output to a file or discard it. For example, to discard the output may require adding something like this: /dev/null 2>&1.

Normally, any script that requires a cron job will provide you with the path or command you need to use that script. Your hosting provider may also supply or give you specific instructions for structuring your cron job commands. You then create a cron job using the path or command provided (and replace any placeholder strings in the line or command with your site’s details, if required).

In the screenshot below, for example, my cPanel dashboard has automatically provided some PHP command examples with my site’s username (helpservices) and a sample PHP version included in the command path.

PHP command examples.
PHP command examples.

Note: cPanel recommends having good knowledge of Linux commands to use cron jobs effectively and running your script past your hosting administrator before adding a cron job to avoid running into problems.

How to Set Up A Cron Job in cPanel

To set up a cron job in cPanel, log into your cPanel dashboard, then scroll down to the Advanced section and click on Cron Jobs.

cPanel Dashboard - Cron Jobs
Select Cron Jobs in cPanel’s Advanced section.

This brings up the Cron Jobs screen. Here, you can set up email notifications (see next section), add new cron jobs, and view a list of all the cron jobs you have set up and are currently running.

Scroll down to the Add New Cron Job section. You can either select select a preset interval for your cron job to run from the Common Settings drop-down menus or enter your own custom values using the following options:

  • Minute: The number of minutes between each time the cron job runs, or the minute of each hour on which you wish to run the cron job.
  • Hour: The number of hours between each time the cron job runs, or the hour of each day on which you wish to run the cron job.
  • Day: The number of days between each time the cron job runs, or the day of the month on which you wish to run the cron job.
  • Month: The number of months between each time the cron job runs, or the month of the year in which you wish to run the cron job.
  • Weekday: The days of the week on which you wish to run the cron job.
Cron - Common Settings
Cron – Common Settings text boxes.

The Common Settings menu contains typical cron job configuration settings with numbers or asterisks in parentheses indicating when the cron job should run.

Cron - Common Settings menu.
Cron – Common Settings menu.

If you select one of these settings, the system automatically populates the text boxes below with your selected settings.

So, for example, if we select the option to set up a cron job to run a script once per week…

Cron - Common Settings: Weekly schedule.
Let’s set our cron job to run once a week.

The text boxes will be automatically populated with the values of our selected setting.

Cron Job text boxes auto-populated with values to run once a week.
Cron Job text boxes auto-populated with values to run once a week.

In the example above, our cron job is scheduled to run every Sunday of every month at exactly midnight.

However, you can use the sub-drop-down menus to enter custom values into the text boxes. This lets you easily modify and adjust your cron job’s scheduled intervals.

Cron Job schedule with adjusted settings.
Adjust the settings of your cron job using the sub-drop-down menus and text boxes.

The last step is to enter the actual command you want your cron job to run. You must specify the absolute path to the command you wish to run.

Type or paste in the command into the Command: text box and click Add New Cron Job.

Cron job command
Type or paste in the cron job command.

This will add your cron job to the Current Cron Jobs list.

Current cron jobs
Your cron job has been added to the Current Cron Jobs list.

How to Get Email Notifications After Running Cron Jobs

You can opt to receive (or stop receiving) emails every time a cron job runs a command that produces an output.

This is useful if you want to know when one of your jobs fails to run and you want to review the errors.

Just scroll down to the Cron Email section, enter an email address, and click the Update Email button.

Cron Email
Get notified via email after a cron job is run.

You can also elect not to receive emails after cron jobs are run:

  • To disable email notifications for all cron jobs, remove the email address. To do this, leave the Email field blank and click the Update Email button. The current email address should display as (none).
  • To disable email notifications for a single cron job, add the information supplied by your host (see above screenshot) to redirect the command’s output to /dev/null. (e.g. /usr/local/cpanel/bin/is_script_stuck /dev/null 2>&1)

How to Edit a Cron Job

To edit your cron job settings, go to the Current Cron Jobs section and click the Actions > Edit link.

Edit cron job.
Edit cron job.

Change the values in the text boxes and click the Edit Line button to update your settings.

Edit cron job settings.
Edit cron job settings.

Your cron job settings are now updated.

Updated cron job settings.
Updated cron job settings.

How to Delete a Cron Job

To delete a cron job, go to the Current Cron Jobs section and click the Actions > Delete link.

Delete cron job.
Delete cron job.

Confirm your deletion by pressing the Delete button.

Confirm cron job deletion.
Confirm cron job deletion.

The selected cron job will be removed from the Current Cron Jobs section.

No cron jobs.
No current cron jobs.

Useful Tips and Additional Information on Using Cron Jobs

Here are some additional tips and useful information on using cron jobs:

If Cron Jobs Are Not Available in Your cPanel Dashboard

Some hosts do not allow users to run cron jobs. If your host has not made cron jobs available in your cPanel dashboard, you can still create and run cron jobs using external services like the ones listed below:

How to Check if Your Cron Job Has Run

Some cron jobs produce output (e.g. a file, email, or web page) and others do not. It is easier to check if the cron ran for jobs that produce output.

For cron jobs that perform tasks behind the scene and don’t produce output, you will need to have root access to your server to check the logs and determine if the job has run as scheduled.

You can check your server logs using an SSH client. Your host should provide the command to check the log for the cron script and the output will normally include the date and time the cron job has run, plus the server name, cron ID, cPanel username, and the command that ran. The name of the script should display at the end of the command.

How to Avoid Cronflicts

cPanel recommends exercising caution when scheduling cron jobs. You should allow enough time between cron jobs for the previous cron job to complete. If you schedule them to run too often, the server could start another cron job before the last cron job ends. This duplication can slow down your server and degrade its performance.

Additionally, many hosts recommend not setting crons to run at regular intervals smaller than 5 minutes apart (some hosts won’t even allow you to run them less than 15 minutes apart).

WordPress Cron (WP-Cron)

In addition to running cron jobs from your hosted server, WordPress also has an internal built-in function it uses to run scheduled tasks on WordPress sites, called WordPress Cron (WP-Cron, wp-cron.php).

WordPress core and many plugins need a scheduling system to perform time-based tasks. These rely on WP-Cron to run backend functions like checking for updates, creating backups, deleting old comments from trash, etc.

Many hosting services are shared, however, and do not provide access to the system scheduler. WP-Cron allows WordPress to run on just about any hosting environment.

Note: you can view and control cron events in the WP-Cron system using a plugin like WP Crontrol.

How To Configure a Real Cron For WordPress

Although the WordPress built-in Cron handler is a really useful feature, WP-Cron is not a real cron job. It only simulates what a system cron does. However, WP-Cron does not run continuously. It is only triggered whenever someone visits your website.

On high-traffic sites, WP-Cron is not an issue. As pointed out in the comments section of this post by one of our members (DavidAnderson of UpdraftPlus.com):

  • The code in WordPress core is invoked on page loading only if there is an overdue cron job (i.e. only if needed).
  • In a high traffic site, a cron job will run precisely on schedule. If you switch to an external cron caller, your cron job will only run when that schedule is hit.
  • High-traffic sites tend to be more complicated and so have more cron jobs. On WP-Cron, jobs run precisely when needed. Switching to an external cron vastly increases the chances of your cron jobs not running on time, as they will now only run to whatever frequency you set their task (every 10 minutes, 5 minutes, 1 minute, etc.).

On low-traffic sites, however, cron schedules can be missed if not enough frequent users visit the site to load a page.

While experts from both our team and member community maintain that you should not disable WP-Cron and use an external cron scheduler unless you know exactly what you are doing, if you are ever asked to disable WP-Cron, here’s how to do it:

To disable WP-Cron, open the wp-config.php file for editing and add the following before the “That’s all, stop editing! Happy publishing.” line:

define('DISABLE_WP_CRON', true);

Disable WP-Cron.
Disable WP-Cron.

Note: This disables WP-Cron from running on page load, not when called directly via wp-cron.php.

You can then, set up your system’s task scheduler to make a web request to the wp-cron.php file by creating a cron job and adding the following command (remember to replace yourdomain.com with your actual domain):

wget -q -O - http://yourdomain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1

One last point to mention here (once again, thanks to DavidAnderson for raising this):

The only real case for moving to an external cron is if you are on a very low-traffic site, you can’t schedule external visits for some reason (e.g. your site is password protected), and it’s important that those jobs run on time. Otherwise, just leave it alone and all will be well.

We agree with this. Hence, if your sites run on WPMU DEV hosting, we automatically run WP-Cron every 5 minutes. Having a default preset cron helps low traffic sites, as it guarantees scheduled tasks to run every 5 minutes at least.

Finally, as DavidAnderson also points out, if you have a lot of cron jobs, then even every 1 minute may not be enough to process them all. A number of popular plugins have jobs that are scheduled to run every minute. If those take significant time, they can delay others from running.

Cronfused Yet?

Don’t be! And if this seems too cronplicated, don’t worry. Fortunately, our team is here to provide 24/7 expert help and support with anything you need.

Adopting DataOps for Agile Data Management Processes

As businesses become AI-ready, efficient data management has acquired an unprecedented role in ensuring their success. Bottlenecks in the data pipeline can cause massive revenue loss while having a negative impact on reputation and brand value. Consequently, there’s a growing need for agility and resilience in data preparation, analysis, and implementation.

On the one hand, data-analytics teams extract value from incoming data, preparing and organizing it for the production cycle. On the other, they facilitate feedback loops that enable continuous integration and deployment (CI/CD) of new ideas.

7 Essential Tools for a Competent Data Scientist

A data scientist extracts manipulate and generate insights from humongous data. To leverage the power of data science, data scientists apply statistics, programming languages, data visualization, databases, etc.

So, when we observe the required skills for a data scientist in any job description, we understand that data science is mainly associated with Python, SQL, and R. The common skills and knowledge expected from a data scientist in the data science industry includes - Probability, Statistics, Calculus, Algebra, Programming, data visualization, machine learning, deep learning, and cloud computing. Also, they expect non-technical skills like business acumen, communication, and intellectual curiosity.

Create a Scale-Out Hive Cluster With a Distributed, MySQL-Compatible Database

Hive Metastore supports various backend databases, among which MySQL is the most commonly used. However, in real-world scenarios, MySQL's shortcoming is obvious: as metadata grows in Hive, MySQL is limited by its standalone performance and can't deliver good performance. When individual MySQL databases form a cluster, the complexity drastically increases. In scenarios with huge amounts of metadata (for example, a single table has more than 10 million or even 100 million rows of data), MySQL is not a good choice.

We had this problem, and our migration story proves that TiDB, an open-source distributed Hybrid Transactional/Analytical Processing (HTAP) database, is a perfect solution in these scenarios.

How to Migrate Data From Neo4j to Nebula Graph

This article mainly introduces how to migrate your data from Neo4j to Nebula Graph with Nebula Graph Exchange (or Exchange for short), a data migration tool backed by the Nebula Graph team. Before introducing how to import data, let’s first take a look at how data migration is implemented inside Nebula Graph.

Data Processing in Nebula Graph Exchange

The name of our data migration tool is Nebula Graph Exchange. It uses Spark as the import platform to support huge dataset import and ensure performance. The DataFrame, a distributed collection of data organized into named columns, provided by Spark supports a wide array of data sources. With DataFrame, to add new data source, you only need to provide the code for the configuration file to read and the Reader type returned by the DataFrame.

Improving ui-select Control

The ui-select directive to a select and multi-select control with a search feature, I have to say is a control very useful. You can use it with a static list or dynamically getting data from a server.

In this post, I want to show you how to configure and to use ui-select directive to add a paging behavior (NOTA: by default the ui-select directive have no paging functionality).

Lesson Learned on Groovy

Though I have worked on Java for more than a decade, I have not had a chance to work on Groovy. While working for API Integration into Jenkins CI/CD pipeline, I extensively used Groovy to invoke REST API, validate the user input parameters, and business logic for that. After that, I found that Groovy is a fascinating program language for Java developers.

Why Is Groovy Easy for Java Developers?

It allows to use the Java syntax liberally and tries to be as natural as possible for Java developers. It is an object-oriented dynamic programming language for Java virtual machine (JVM) and can be integrated smoothly with any Java Program. The groovy syntax is lucid, familiar, and direct that makes to develop projects faster and easier. It demands a shorter learning curve for Java Developer to develop, test, and integrate to make production-ready code in a short span.

Google Officially Releases Its Web Stories for WordPress Plugin

Web Stories for WordPress dashboard screen.
Web Stories for WordPress dashboard.

Two and a half months after the launch of its public beta, Google released its Web Stories for WordPress plugin. So far, the plugin has over 10,000 active installations and has garnered a solid five-star rating from four reviews.

Google created the Web Stories format through its AMP Project to allow publishers to create visually-rich stories. It is primarily geared toward mobile site visitors, allowing them to quickly jump through story pages with small chunks of content.

The Web Stories plugin creates a visual interface within WordPress for creating Stories. It breaks away from the traditional WordPress interface and introduces users to an almost Photoshop-like experience for building out individual Stories. The Stories editor is completely drag-and-drop.

The plugin also offers eight predesigned templates out of the box that cover a small range of niches. However, according to Google’s announcement, the company plans to add more templates in future updates.

Web Stories Are for Storytelling

“Firstly…the power of Stories,” wrote Jamie Marsland, founder of Pootlepress, in a Twitter thread. “Stories are how we (humans) see the world and share our experiences. Up to now the platforms that we have to tell stories have been limited to books/films/tv/websites/blogs/instagram stories etc.”

“Websites are ok for telling stories but in many ways the format doesn’t really fit the linear arc of storytelling. When Marshall McLuhan said ‘the medium is the message’ in 1964 he was talking about how the medium itself has a social impact, and change the communication itself…and the possibilities for what is communicated and how it is perceived. But we should keep coming back to Stories. Stories are the key here imo. Now we have an open format to tell Stories, and we have an open platform (WordPress) where those Stories can be told easily.”

Marsland finished his thread by saying that using Stories as a replacement for a brochure or website is a missed opportunity. He said that it was a platform for storytelling and should be used as such.

It is far too early to tell if Web Stories will simply be a fad or still in wide use years from now. The technology certainly lends itself well to telling stories, particularly in mobile format, but I doubt we have seen the best of what is possible on the web. The format feels too limited to be the end-all-be-all of storytelling. It is merely one medium that will live and die by its popularity with users.

With the right design skills, some people will craft beautiful Web Stories. And, that is just what Marsland has done with the first Story he shared:

Page from Jamie Marsland's first Web Story.
Page from the Wilson and Pootle Web Story by Jamie Marsland.

I agree with his conclusion. Web Stories should be about storytelling. When you move outside of that zone, the technology feels out of place.

Where I disagree is that websites are not ideal for storytelling. Ultimately, the WordPress block editor will allow artistic end-users to craft intricate stories, mixing content and design in ways that we have not seen. We are just now scratching the surface. I expect our community of developers to build more intricate tools than what the Web Stories plugin currently allows, and we can do so in a way that revolutionizes storytelling on the web.

New Features

The story editor for Google's Web Stories for WordPress plugin.
Story editor with Unsplash photo integration.

The Web Stories plugin now adds support for Unsplash images and Coverr videos out of the box. The plugin adds a new tab with a “media” icon. For users of the first beta version of the plugin, this may be a bit confusing. The previous media icon was for a tab that displayed the user’s media. Now, the user’s media is under the tab with the “upload” icon.

It is also not immediately clear that the Unsplash images and Coverr videos are not hosted on the site itself. There is a “powered by” notice at the bottom of the tab, but it can be easy to miss because it blends in with the media in the background.

Media from Unsplash and Coverr is hosted off-site and not downloaded to the user’s WordPress media library. I could find no mention of this in the plugin’s documentation. Such hotlinking was a cause for debate over the recent official release of the Unsplash plugin.

Google also announced it planned to add more “stock media integrations” in the near future. According to a document shared via a GitHub ticket, such future integrations may include Google Photos and GIF-sharing site Tenor.

Connecting Sequelize To a PostgreSQL Cluster

Prologue

In a previous post, I showed how to automate a PostgreSQL fault-tolerant cluster with Vagrant and Ansible.

This kind of setup makes our database cluster resilient to server failure and keeps the data available with no need for human interaction. But what about the apps using this database? Are they fault-tolerant too?

Availability, Maintainability, Reliability: What’s the Difference?

We live in an era of reliability where users depend on having consistent access to services. When choosing between competing services, no feature is more important to users than reliability. But what does reliability mean?

To answer this question, we’ll break down reliability in terms of other metrics within reliability engineering: availability and maintainability. Distinguishing these terms isn’t a matter of semantics. Understanding the differences can help you better prioritize development efforts towards customer happiness.

Anypoint Deployment Models Which One to Go For?

Being an Architect, Product Owner, or a CXO of your organization has already purchased a brand new Anypoint platform subscription or planning to get one based on evaluation of the platform and now In dilemma which subscription model to go for?

This article will help you to provide a 1000ft overview of various deployment options available in Anypoint platform and which one to go for. 

5 Benefits of Using Open Source Intelligence

Open Source Intelligence is information and data that is publicly available to the public and that can be used to protect your business and employees, as well as prioritize your tasks and solve security issues. 

Open-source intelligence is a rather new concept that gained popularity as technology developed. Some many businesses and companies have open-source teams. These teams collect data from the internet and analyze it, making it possible to identify any possible threat of cyber-attack. This is essential for every business that wants to protect its data and gain trust from its customers. Because as technology develops, so do the teams of cyber hackers that wait for the perfect occasion to use those breaches in your security.  

Google Spurns Chrome Extensions Developers with Deprecation of Web Store Payments API

In January of 2020, Google discovered a wave of fraudulent transactions that were taking place on the Chrome Web Store. As a result of these actions, Google suspended the ability to publish or update any commercial Chrome extensions and later suspended use of the platform’s payment API while their security teams looked for a solution. On Monday Google surprised everyone by announcing the deprecation of the Chrome Web Store API.

W3C Drops WordPress from Consideration for Redesign, Narrows CMS Shortlist to Statamic and Craft

The World Wide Web Consortium (W3C), the international standards organization for the web, is redesigning its website and will soon be selecting a new CMS. Although WordPress is already used to manage W3C’s blog and news sections of the website, the organization is open to adopting a new CMS to meet its list of preferences and requirements.

Studio 24, the digital agency selected for the redesign project, narrowed their consideration to three CMS candidates:

  1. Statamic
  2. Craft CMS
  3. WordPress

Studio 24 was aiming to finalize their recommendations in July but found that none of them complied with the W3C’s authoring tool accessibility guidelines. The CMS’s that were better at compliance with the guidelines were not as well suited to the other project requirements.

In the most recent project update posted to the site, Studio 24 reported they have shortlisted two CMS platforms. Coralie Mercier, Head of Marketing and Communications at W3C, confirmed that these include Statamic and Craft CMS.

WordPress was not submitted to the same review process as the Studio 24 team claims to have extensive experience working with it. In the summary of their concerns, Studio 24 cited Gutenberg, accessibility issues, and the fact that the Classic Editor plugin will stop being officially maintained on December 31st, 2021:

First of all, we have concerns about the longevity of WordPress as we use it. WordPress released a new version of their editor in 2018: Gutenberg. We have already rejected the use of Gutenberg in the context of this project due to accessibility issues.

If we choose to do away with Gutenberg now, we cannot go back to it at a later date. This would amount to starting from scratch with the whole CMS setup and theming.

Gutenberg is the future of WordPress. The WordPress core development team keeps pushing it forward and wants to roll it out to all areas of the content management system (navigation, sidebar, options etc.) as opposed to limiting its use to the main content editor as is currently the case.

This means that if we want to use WordPress long term, we will need to circumvent Gutenberg and keep circumventing it for a long time and in more areas of the CMS as time goes by. 

Another major factor in the decision to remove WordPress from consideration was that they found “no elegant solution to content localization and translation.”

Studio 24 also expressed concerns that tools like ACF, Fewbricks, and other plugins might not being maintained for the Classic Editor experience “in the context of a widespread adoption of Gutenberg by users and developers.”

“More generally, we think this push to expand Gutenberg is an indication of WordPress focusing on the requirements of their non-technical user base as opposed to their audience of web developers building custom solutions for their clients.”

It seems that the digital agency W3C selected for the project is less optimistic about the future of Gutenberg and may not have reviewed recent improvements to the overall editing experience since 2018, including those related to accessibility.

Accessibility consultant and WordPress contributor Joe Dolson recently gave an update on Gutenberg accessibility audit at WPCampus 2020 Online. He reported that while there are still challenges remaining, many issues raised in the audit have been addressed across the whole interface and 2/3 of them have been solved. “Overall accessibility of Gutenberg is vastly improved today over what it was at release,” Dolson said.

Unfortunately, Studio 24 didn’t put WordPress through the same content creation and accessibility tests that it used for Statamic and Craft CMS. This may be because they had already planned to use a Classic Editor implementation and didn’t see the necessity of putting Gutenberg through the paces.

These tests involved creating pages with “flexible components” which they referred to as “blocks of layout,” for things like titles, WYSIWYG text input, and videos. It also involved creating a template for news items where all the content input by the user would be displayed (without formatting).

Gutenberg would lend itself well to these uses cases but was not formally tested with the other candidates, due to the team citing their “extensive experience” with WordPress. I would like to see the W3C team revisit Gutenberg for a fair shake against the proprietary CMS’s.

W3C Is Prioritizing Accessibility Over Its Open Source Licensing Preferences

The document outlining the CMS requirements for the project states that “W3C has a strong preference for an open-source license for the CMS platform” as well as “a CMS that is long-lived and easy to maintain.” This preference may be due to the economic benefits of using a stable, widely adopted CMS, or it may be inspired by the undeniable symbiosis between open source and open standards.

“The industry has learned by experience that the only software-related standards to fully achieve [their] goals are those which not only permit but encourage open source implementations. Open source implementations are a quality and honesty check for any open standard that might be implemented in software…”

Open Source Initiative

WordPress is the only one of the three original candidates to be distributed under an OSD-compliant license. (CMS code available on GitHub isn’t the same.)

Using proprietary software to publish the open standards that underpin the web isn’t a good look. While proprietary software makers are certainly capable of implementing open standards, regardless of licensing, there are a myriad of benefits for open standards in the context of open source usage:

“The community of participants working with OSS may promote open debate resulting in an increased recognition of the benefits of various solutions and such debate may accelerate the adoption of solutions that are popular among the OSS participants. These characteristics of OSS support evolution of robust solutions are often a significant boost to the market adoption of open standards, in addition to the customer-driven incentives for interoperability and open standards.”

International Journal of Software Engineering & Applications

Although both Craft CMS and Statamic have their code bases available on GitHub, they share similarly restrictive licensing models. The Craft CMS contributing document states:

Craft isn’t FOSS
Let’s get one thing out of the way: Craft CMS is proprietary software. Everything in this repo, including community-contributed code, is the property of Pixel & Tonic.

That comes with some limitations on what you can do with the code:

– You can’t change anything related to licensing, purchasing, edition/feature-targeting, or anything else that could mess with our alcohol budget.
– You can’t publicly maintain a long-term fork of Craft. There is only One True Craft.

Statamic’s contributing docs have similar restrictions:

Statamic is not Free Open Source Software. It is proprietary. Everything in this and our other repos on Github — including community-contributed code — is the property of Wilderborn. For that reason there are a few limitations on how you can use the code:

Projects with this kind of restrictive licensing often fail to attract much contribution or adoption, because the freedoms are not clear.

In a GitHub issue requesting Craft CMS go open source, Craft founder and CEO Brandon Kelly said, “Craft isn’t closed source – all the source code is right here on GitHub,” and claims the license is relatively unrestrictive as far as proprietary software goes, that contributing functions in a similar way to FOSS projects. This rationale is not convincing enough for some developers commenting on the thread.

“I am a little hesitant to recommend Craft with a custom open source license,” Frank Anderson said. “Even if this was a MIT+ license that added the license and payment, much like React used to have. I am hesitant because the standard open source licenses have been tested.”

When asked about the licensing concerns of Studio 24 narrowing its candidates to two proprietary software options, Coralie Mercier told me, “we are prioritizing accessibility.” A recent project update also reports that both CMS suppliers W3C is reviewing “have engaged positively with authoring tool accessibility needs and have made progress in this area.”

Even if you have cooperative teams at proprietary CMS’s that are working on accessibility improvements as the result of this high profile client, it cannot compare to the massive community of contributors that OSD-compliant licensing enables.

It’s unfortunate that the state of open source CMS accessibility has forced the organization to narrow its selections to proprietary software options for its first redesign in more than a decade.

Open standards go hand in hand with open source. There is a mutually beneficial connection between the two that has caused the web to flourish. I don’t see using a proprietary CMS as an extension of W3C values, and it’s not clear how much more benefit to accessibility the proprietary options offer in comparison. W3C may be neutral on licensing debates, but in the spirit of openness, I think the organization should adopt an open source CMS, even if it is not WordPress.

How Choosing the Right Protocol Could Boost Your Profit

Introduction

High egress cost often comes out as a surprise. As David explains, egress cost could potentially go unnoticed at the initial stages of estimating expenses for a solution. In 2017, Apple paid more than $50 million as egress cost according to the post. Hence it is clear the size of the data matters for the cost-effectiveness of a solution. Data is transmitted between two or more systems via protocols. Since the early 90s protocols such as HyperText Transfer Protocol (HTTP) have been evolving. Further new protocols emerged over the years i.e gRPC, Thrift, Websockets, NATs, etc. There will be instances where multiple protocols would be compatible with a given paradigm, giving the option for solution designers to make a choice i.e if intended to send binary data between systems, one could choose HTTP as well as gRPC, Thrift, etc. This choice could be critical. This article would unveil the influence protocols have towards the data size by first evaluating a few selected protocols for similarities (since similarities give the option to choose between them). Subsequently will evaluate how these protocols differ semantically and articulate some hidden advantages they bring to reduce the data size transmitted over the network. Finally will present how reduced data size could increase revenue, discuss some of the roadblocks that would lead to making the wrong choice of protocol and possible ways to overcome them. 

Protocols Comparison

Differences make life easy, narrow down the scope, and gives a clear idea on the potential of the protocol. When things look similar it is up to the solution designer to choose the protocol. The familiarity of a protocol could influence giving precedence to it. “If everything is an apple, I’ll rather use the apple in my own tree”. While this choice would allow building a working solution, it might not be the most optimum. As a result, businesses would lose tons of revenue. The next sections in the article will elaborate on this.