Custom WordPress Development to Boosts Your Enterprise’s Online Success

In today’s digital age, having a strong online presence is crucial for businesses of all sizes. For larger organizations, having a custom-built website that can adapt to their specific needs and stay up-to-date with the constantly evolving digital landscape is even more critical. This is where custom WordPress development comes in.

Custom WordPress development is a highly specialized process that involves building a website from scratch to meet the unique needs of a business. It offers a wide range of benefits, including greater scalability, better content management, expert guidance, and ongoing support and maintenance.

One of the most significant advantages of custom WordPress development is that it allows businesses to optimize their websites for search engines. By incorporating the latest SEO best practices, businesses can improve their website’s visibility, attract more organic traffic, and ultimately boost their online presence. Moreover, custom WordPress development can ensure that a website is accessible to all users, including those with disabilities, by ensuring ADA compliance.

Another key advantage of custom WordPress development is that it allows businesses to create websites that are secure and robust. Skilled developers can leverage their technical expertise to build a website that is not only highly functional but also secure against cyber threats. This is especially important for larger organizations that handle sensitive data and require a high level of security to protect their customers’ information.

In addition to its technical benefits, custom WordPress development can also provide businesses with expert guidance on content management. By working with experienced developers, businesses can learn how to create and manage high-quality content that resonates with their target audience. This, in turn, can help them build stronger relationships with their customers and position themselves as thought leaders in their industry.

Moreover, custom WordPress development can offer ongoing support and maintenance to ensure optimal website performance and functionality. This can minimize downtime, reduce the risk of technical issues, and maximize user engagement. By partnering with a custom WordPress development company, businesses can rest assured that their website is in good hands and focus on their core business activities.

In conclusion, custom WordPress development offers a wide range of benefits for larger organizations looking to establish a strong online presence. By leveraging the latest technology and trends, businesses can create a website that is not only well-designed and user-friendly but also optimized for search engines, secure, and accessible to all users. With expert guidance, ongoing support, and a custom approach tailored to their specific needs, businesses can position themselves for long-term success and growth in today’s digital landscape.

LN Webworks: Drupal 8, 9, 10 Functional and Unit Testing (Automation Testing)

LN Webworks: Drupal 8, 9, 10 Functional and Unit Testing (Automation Testing)

Automated testing is the process of creating and implementing code to decrease the manual human effort needed during software testing. This vital approach plays a crucial role in modern software development, where specialized tools and scripts are used to execute test cases, validate functionality, and identify potential issues. By automating repetitive and time-consuming tasks, significantly reduces the manual effort required, enabling testers to concentrate on more critical aspects of the testing process. Embracing automated testing enhances efficiency, accelerates the development lifecycle, and ensures consistent and reliable results across various environments and platforms.                                                                                             

Automation Testing in Drupal

 

Maquina, the engine for Rails

Building apps over time, I found some work that needs to be done on every application: Authentication, Authorization, Mailers, etc. I started extracting this standard functionality into a Rails engine a few years ago.
Later, tailwindscss, hotwire, stimulus, and phlex entered the picture, so I started the engine again with reusable UI patterns that take advantage of these tools. This is how Maquina was born.
https://mariochavez.io/desarrollo/2023/08/08/maquina-the-engine-for-rails/

Smoothing out the scrolling experience in Chrome on Android

Smoothing out the scrolling experience in Chrome on Android

Big performance wins can be found by taking a step back and tweaking what you already have. Today’s The Fast and the Curious post explores how we improved the scrolling experience of Chrome on Android, ultimately reducing slow scrolling jank by 2x. Read on to see how we discovered and evaluated the problem, and how that has helped us design a better browser experience going forward.

When measuring the performance of a browser, one might typically think of page load speed or WebVitals. On mobile where touch interactions are common we also prioritize your interaction with Chrome to ensure it is always smooth and responsive including on new form factors like foldables. A significant focus of late has been on reducing jank while you scroll.

We recently improved the scrolling experience of Chrome on Android by 2x by filtering noise and reducing visual jumps in the content presented on screen. To get this result, we had to take a step back and figure out the problem of why Chrome on Android was lagging behind Chrome on iOS. 

As we compared Chrome across platforms, we were hit with a particular observation. iOS Chrome scrolling was smooth and consistent whereas on Android, Chrome’s scrolling didn’t follow your finger as closely. However, our metrics were telling us that while janks occurred occasionally, they weren’t as common as our perception when comparing with Chrome on iOS. Thus we had ourselves a mystery which needed some investigation.

Investigating input to output rate

Our metrics flagged that we often received input at an inconsistent rate; but since the input rate was greater than the display’s frame rate, we usually had at least one input event to trigger the production of a frame to display. However, this frame might have consumed fewer or more input events, which could result in inconsistent shifting of content on screen even while scrolling at a fixed speed.

This problem of different input rate vs frame rate is a problem that Chrome has had to address before. Internally, we resample input to predict/extrapolate where the finger was at a consistent point relative to the frame we want to produce. This should result in each frame representing a consistent amount of time and should mean smooth scrolling regardless of noise in the input events. The ideal scenario is illustrated in the following diagram where blue dots are real input events, green are resampled input events, and the displayed scroll deltas would fluctuate if you were to use the real input events rather than resampling.



Okay so we already do resampling so what’s the problem?

A tale of woe and reimplementation

Input resampling inside of Chrome (and Android) were added back in 2019 as 90hz devices emerged and the problem above became more apparent (oscillating between 2 vs 1 input events per frame rather than consistently 2 input events per frame we usually see on 60hz devices). Android implemented multiple resampling algorithms (kalman, linear, etc.) and arrived at the conclusion that linear resampling (drawing a line between two points to figure out velocity and then extrapolate to the given timestamp) was good enough for their use cases. This fixed the problem for most Android apps, but didn’t address Chrome.

Due to historical reasons and web spec requirements for raw input, Chrome uses unbuffered input and thus as devices started to appear with sampling rates that didn’t fit with input, Chrome had to implement some version of resampling. Below we see that each frame (measuring the time from input to it being displayed) consumes a different amount of input events (2 for the first, 3 for the second, and 1 for the third), if we assume input is consistently arriving and each is exactly 30 pixels of displacement then ideally we should smooth it out to 60 pixels per frame as seen below:



However, while we were investigating the original mystery we discovered that reality was very different from the ideal situation pictured above. We found that the actual input movement of the screen was quite spiky and inconsistent (more than we expected) and that our predictor was improving things but not as much as desired. On the left is real finger displacement on a screen (each point is an input event) and on the right the result of our predictor of actual content offset after smoothing out (each point is a frame)



Frames are being presented consistently on the right, but the rate of displacement spikes between one to another isn’t consistent (-50 to -40 followed by another -52 being especially drastic). Human fingers don’t move this discretely (at frame level precision). Rather they should slide and flex in a gradient, speeding up or slowing down gradually. So we knew we had a problem here. We dug deeper into Chrome’s implementation and found there were some fundamental differences in Chrome’s implementation (which was supposedly a copy of Android’s).

1. Android uses the native C++ MotionEvent timestamp (with nanosecond precision), but Chrome uses Java MotionEvent.getEventTime & MotionEvent.getHistoricalEventTime (milliseconds precision). Unfortunately, nanosecond precision was not part of the public API. However, rounding of milliseconds can introduce error into our predictor when it  computes velocity between event timestamps.

2. Android’s implementation takes care when selecting the two input events so resampling is using the most relevant events. Chrome however uses a simple FIFO queue of input events, which can result in weird cases of using future events to predict velocity in the past in rare cases on high refresh rate devices.

We prototyped using Android’s resampling in Chrome, but found it was still not perfect for Chrome’s architecture resulting in some jank. To improve on it, we experimented with different algorithms, using automation to replay the same input over and over again and evaluating the screen displacement curves. After tuning, this landed at the 1€ filter implementation that visibly and drastically improved the scrolling experience. With this filter, the screen tracks closely to your finger and websites smoothly scroll, preventing jank caused by inconsistent input events. The improvement is visible in our manual validation, on both top-end and low-end devices (Here’s a redmi 9A video example).

Going forward!

In Android 14, the nanosecond API for java MotionEvents will be publicly exposed in the SDK so Chrome (and other apps with unbuffered input) will be able to call it. We also developed new metrics that track the quality of the scroll predictors frame, by creating a test app which introduced pixel level differences between frames (and no other form of jank) and running experiments to see what people would notice. These analysis can be read about here and will be used going forward for more exciting performance wins and to make this a visible area for tracking against regressions. In the end, after tuning and enabling the 1€ filter, our metrics show a 2x reduction in visible jank while scrolling slowly! This improvement is going live in M116 as the default, but will be launched all the way back to M110 and brings Chrome on Android on par with Chrome on iOS!

The moral of the story is: Sometimes metrics don’t cover all the cases and taking a step back and investigating from the top down and getting the lay of the land can end with a superior scrolling experience for users.

Post by: Stephen Nusko, Chrome Software Engineer


Cyber-attack on UK’s electoral registers revealed

The UK’s elections watchdog has revealed it has been the victim of a “complex cyber-attack” potentially affecting millions of voters. The Electoral Commission said unspecified “hostile actors” had managed to gain access to copies of the electoral registers, from August 2021. Hackers also broke into its emails and “control systems” but the attack was not discovered until October last year. The watchdog has warned people to watch out for unauthorised use of their data. That seems like a state-level attack, and such data could easily be used for online influence campaigns during elections, something that is happening all over the western world right now. I wonder just how bad the hack actually was? “Millions of voters” sounds bad, but… The commission says it is difficult to predict exactly how many people could be affected, but it estimates the register for each year contains the details of around 40 million people. Holy cow.

Bruno Meyer: Ações da Tupperware disparam quase 700% na bolsa de valores

Video by via Dailymotion Source As ações da Tupperware registram uma forte valorização nas últimas semanas. Desde o dia 20 de julho, os papéis da fabricante de potes passaram de US$ 0,67 para US$ 5,26, o equivalente a um salto de 685%. Assista ao Jornal da Manhã completo: https://www.youtube.com/watch?v=upfzGEUc8XM Baixe o app Panflix: https://www.panflix.com.br/ Baixe … Read more