WordPress Passes 40% Market Share of Alexa Top 10 Million Websites

WordPress has passed 40% market share of all websites, up from 35.4% in January 2020, as measured by W3Techs. These numbers are derived from the Alexa top 10 million websites, along with the Tranco top 1 million list. By W3Techs’ estimates, every two minutes, another top 10m site starts using WordPress.

Among the top 1,000 sites, WordPress’ market share is even higher at 51.8%, and captures a staggering 66.2% for new sites. In tracking the growth rate over the past 10 years, W3Techs shows WordPress sloping steadily upwards.

Matthias Gelbmann, CEO of W3Techs parent company Q-Success, explained the reasons behind this methodology:

The reason why we don’t count all the websites, is because there are so many domains that are unused or used for dubious purposes. We want to exclude the many millions of parked domains, spam sites and sites that simply have no real content. We are convinced that including all trash domains would make our statistics a lot less useful, as millions of them just run some software stack that auto-generates useless content.

In order to measure the “meaningful web,” W3Techs’ methodology excludes sites with default content pages displayed by Apache, Plesk, and cPanel, expired domains, and account suspended pages. It also excludes sites with the default WordPress message (“Hello world! Welcome to WordPress. This is your first post. Edit or delete it, then start writing!”).

In January, Squarespace overtook Drupal and Wix to become the 4th most popular CMS with 2.5% market share, trailing Joomla (3.4%), Shopify (5.3%), and WordPress (64.3%). Although most open source CMS’s are now in a gradual decline with proprietary competitors rising, WordPress remains a beacon of free software that continues to sustain its incredible growth.

In a time when some projects are abandoning open source principles when convenient for their business models, WordPress’ success has proven that an unwavering commitment to user freedoms does not have to be at odds with a thriving commercial ecosystem. These user freedoms are fiercely protected by the project’s leadership and passionate community of contributors. As a result, WordPress’ GPL licensing now underpins a multi-billion dollar economy of services, hosting companies, and entrepreneurs who have built their livelihoods using WordPress.

Every year I wonder when the project’s growth might slow down, but end up refreshing W3Techs’ site obsessively for a week in anticipation of another major milestone, as WordPress hovered at 39.9%. Naysayers love to claim that hordes of people will stop using WordPress when major, ambitious changes are proposed. But if W3Techs’ growth tracking is any indication, new website creators and those climbing the ranks to the Alexa top 10 million have not yet gotten tired of being greeted by the message: “Hello world! Welcome to WordPress. This is your first post. Edit or delete it, then start writing!”

problem with spaces in folder name

Hi guys

I'm having a bit of a problem with php and linux.
I'm using the following function, to find files with specific file extensions within a given folder and all subfolders :

function FindVideoFiles($startfolder,$specificextensions){
        $it = new RecursiveDirectoryIterator($startfolder);
        foreach( new RecursiveIteratorIterator($it) as $file) {
            if (in_array(strtoupper(substr($file, strrpos($file, '.') + 1)), $specificextensions)) {
                $files[]=array('nomedapasta'=>pathinfo($file,PATHINFO_DIRNAME));
            }
        }
        return $files;
}

$specificextensions is an array with 'avi','mkv' and 'mp4' as values.
$startfolder is a string with "/mnt/HD1_4TB/refazer/A View to a Kill" as value.

When i try to run the function, it throws me an error saying "failed to open dir: No such file or directory".
The weirdest thing is, if i change the $starfolder variable to "/mnt/HD1_4TB/refazer", the function works and return the files inside the folder "A View to a Kill" (even with spaces in folder name).
If i rename the folder "A View to a Kill" to "AViewtoaKill" and change the $startfolder variable to "/mnt/HD1_4TB/refazer/AViewtoaKill", the function also work.....
so..... i think that my problem is the spaces in the folder name.
Can someone help me on how i can solve this problem without removing the spaces in folder name ??

Thanks

RBAC Controls: The Key to Hardening a Kubernetes Cluster

If you’re using Kubernetes, you understand the importance of the API server. Referred to as 'the core of Kubernetes’ control plane' in the platform’s own documentation, the API server enables users, cluster elements, and external components to communicate with each other. Each of those communication instances constitutes a REST API call for which the API server is responsible. The API server subsequently treats everything in Kubernetes as an API object, the platform notes elsewhere on its website. As such, administrators can use the API to manipulate the state of pods, namespaces, and other API objects.

This functionality makes it imperative for administrators to keep the API locked down. To do that, they need to realize that the API generally comes exposed on every deployment for management purposes. This default configuration makes it possible for an unauthenticated actor to interact with publicly exposed Kubernetes clusters and manipulate what’s considered to be a valid request. They could then change some of the settings and configure the API to approve requests in a way that allows for malicious activity such as connecting to or downloading files from suspicious websites.

Smart Factory with Apache Kafka and 5G Campus Networks

The Fourth Industrial Revolution (also known as Industry 4.0) is the ongoing automation of traditional manufacturing and industrial practices using modern smart technology. Event Streaming with Apache Kafka plays a key role in processing massive volumes of data in real-time in a reliable, scalable, and flexible way of integrating with various legacy and modern data sources and sinks. This blog post explores Apache Kafka's relationship to modern telco infrastructures that leverage private 5G campus networks for Industrial IoT (IIoT) and edge computing.

Event Streaming with Kafka at the Disconnected Edge

Apache Kafka is the new black at the edge.

How Can I Quickly Integrate AppGallery Connect APM Into a Unity App?

When an app is used, such problems may occur; slow app launch, Application Not Responding (ANR), app crash, and network loading failure. These are the major issues that affect user experience.

To meet the increasing demands of diagnosing performance problems, more and more app performance monitoring services have emerged in the market. HUAWEI AppGallery Connect provides full-process quality services in app development, testing, release, and analysis. If you want to quickly experience this service, see the demo on GitHub.

Distributed Apps Need Dependency Management

This post was originally published as Why distributed apps need dependency management on the Architect.io blog on September 16, 2020.

Distributed cloud applications (a.k.a. microservices) have introduced an enormous amount of complexity into the design and operation of cloud software. What used to manifest itself as complexity hidden within a single process or runtime now finds itself spread across tens or hundreds of loosely coupled services. While all of these services can use different languages and can scale independently from one another, the distributed nature can often make the app as a whole hard to navigate, hard to deploy, and hard secure.

Machine Learning Model Analysis Using TensorBoard

Machine Learning is growing by leaps and bounds with new neural network models coming up regularly. These models are trained for a specific dataset and are proven for accuracy and processing speed. Developers need to evaluate ML models and ensure that they meet specific threshold values and functions as expected before deployment. There is a lot of experimenting going into improving the model performance, and visualizing differences become crucial while designing and training a model. TensorBoard helps visualize the model, making the analysis less complicated, as debugging becomes easier when one can see what the problem is.

General Practice to Train ML Models

The general practice is to use pre-trained models and perform Transfer Learning to re-train the model for a similar set of data. In a technique called Transfer Learning, a neural network model is first trained on a problem similar to the one that is being solved. One or more layers from the trained model are then used in a new model trained on the problem of interest.

How To Optimize WordPress Blog Content for Pinterest

How To Optimize WordPress Blog Content for PinterestAs a WordPress user, you’ve likely heard talk of Pinterest and the almost other-worldly power it possesses to drive FREE traffic to your website. And if you haven’t heard yet, please check out this epic post discussing how you can boost traffic to your WordPress site with Pinterest. There’s a reason why bloggers and WordPress […]

The post How To Optimize WordPress Blog Content for Pinterest appeared first on WPExplorer.

8 of the Best Software Testing Newsletters You Should Subscribe To

Newsletters are a great way to be continuously updated with what is happening around the world. What started as a formal exchange between officials in ancient Rome has become an essential part of the email newsroom. Instead of collecting and organizing the daily happenings in general, newsletters serve a specific purpose today. A newsletter helps us take a few minutes out of our busy schedule and keeps us connected with our fields of interest, be it technology or travel.

Over time newsletters have evolved with the reader’s interest shifting its focus. In earlier times, a newsletter was just news. Today, reader’s interest is more focused on specific blogs, articles, podcasts, webinars, and anything that can benefit a reader. While newsletters are of different types, our focus for this post would be computer geeks, specifically software testers. These software testing newsletters will introduce you to exciting concepts like metamorphic testing (happened with me!) while keeping you acquainted with the latest software testing news.

HTML Video Sources Should Be Responsive

Scott Jehl doesn’t mince words here:

Removing media support from HTML video was a mistake. It means that for every video we embed in HTML, we’re stuck with the choice of serving source files that are potentially too large or small for many users’ devices (resulting in poor performance, wasteful data consumption, and even sub-optimal quality on larger screens), or resorting to more complicated server-side or scripted or third-party solutions to deliver a correct size.

I remember when responsive images were just starting to come out. One way to explain it was to say it’s like <video> in that you can have multiple <source> elements inside which (in supporting browsers) allowed you to specify attributes like type (e.g. video format) and media (e.g. screen size). But then

Despite being implemented in multiple browsers, the feature was removed from browsers and the HTML specification, without any proposed replacement for the functionality it once provided. One exception is the feature was never removed from Webkit, so it still works in Safari browsers, which is great.

I don’t remember that. That feels like a big WTF moment (some background). I think of the web as being tremendous at backwards compatibility. It’s a rare day when we just yank stuff, and even more rare is a yanking with no alternative whatsoever.

So now with responsive images being a success (it’s a success, right? I can’t imagine how incredibly much bandwidth it has saved the world)… can’t we… put it back?

When I have an immediate need for this, I always think of Cloudinary, because I can alter the size and format of video by changing the URL. Like here’s a video URL where the video codec is automatically determined and the size is forced down to 400px:

https://res.cloudinary.com/css-tricks/video/upload/c_scale,q_auto,vc_auto,w_400/v1612795501/intro-patreon_jpd8er.mp4

It’s nice to have tools like this, but that doesn’t mean the platform shouldn’t be helping.

Direct Link to ArticlePermalink


The post HTML Video Sources Should Be Responsive appeared first on CSS-Tricks.

You can support CSS-Tricks by being an MVP Supporter.

The Right-Sizing Problem in Cloud Computing: Reasons and Solution

Today, businesses of every shape and size are reliant on the Internet — even the smallest ones have at least a website for representation and advertising, while some are run entirely online. However, maintaining a company’s own servers is a costly and tedious procedure, which creates the need in cloud computing services.

Cloud computing stands for the delivery of computing services on demand (storage and processing power) over the Internet.

HTTP Deep-Dive with Ballerina: Services

Anatomy of an HTTP Service

A Ballerina service’s structure and its semantics are defined by the service type, i.e. the type of listener attached. Let’s take a look at how a basic HTTP service is structured in Ballerina. 

  • Service name: The service name represents the base path of the HTTP service. This is an optional value, where if it’s kept empty, the base path defaults to the value “/”.

  • Listener object: Provides an instance of http:Listener to bind to a specific host/port.

  • Resource: A resource represents a specific subpath that can be accessed in relation to the service base path.

    • Accessor: The HTTP method used to access the resource. These can be any HTTP method: e.g., “get”, “put”, “post”, “delete”. Only a single accessor can be associated with a single resource. If you need to support multiple HTTP methods to a single resource, you can define distinct service resources with the same name and different accessors. The special accessor “default” can be used to dispatch all the requests with the resource path, regardless of the HTTP method.

    • Name: The name represents the path of the resource in relation to the service base path. You can provide hierarchical values as well, e.g., “foo/bar”. In this case, the final path to this resource would be “/base/foo/bar”.
      The special name “.” is used to represent the service itself in a resource. Thus, requests that are directly sent to the base path will be dispatched to this resource.
       
    • Return type: This is an optional return type, which can be of type anydata or http:Response. An anydata return value would be returned with an HTTP status code 200 OK.

The full source code for the hello service above is shown below. 

Platform, Connection, Security: A Guide to IoT App Development

App development has become an integral part of IoT device creation over the past decade. These days, it’s near impossible to find consumer connected devices that do not come with companion smartphone applications which offload most (if not all) of its display to the user handset. While a web-based UI will often be sufficient for industrial or enterprise-grade IoT devices, most manufacturers will have a hard time selling a consumer IoT device that can’t be controlled by the user’s smartphone. 

As IoT mobile app development has evolved into a required front end layer for the vast majority of today’s connected consumer products, device developers have some important decisions to make in creating an app which is safe, fast and affordable. Let’s sort custom builds from off the shelf platforms, and cloud connections from peer-to-peer, in this development guide to IoT apps.

Spring Boot on Quarkus: Magic or Madness?

Quarkus is a Java stack tailored for OpenJDK HotSpot (or OpenJ9 on zSeries) and GraalVM, crafted from optimized Java libraries and standards. It is a good choice for building highly-scalable applications while using lower amounts of CPU and memory resources than other Java frameworks. These applications can be traditional web applications, serverless applications, or even functions as a service.

There are many documented instances of organizations migrating their applications to Quarkus. In this article, let's see one such migration path from Spring Boot to Quarkus that is part magic and part madness! The magic will be some hand waving and performing the migration without changing a single line of code. The madness will be trying to figure out how it was done.

How to Write ETL Operations in Python

In this article, you’ll learn how to work with Excel/CSV files in a Python environment to clean and transform raw data into a more ingestible format. This is typically useful for data integration.

This example will touch on many common ETL operations such as filter, reduce, explode, and flatten.