Video by via Dailymotion Source A new 350kph high-speed rail line has made Libo in Southwest China’s Guizhou Province more accessible than ever before! WATCH MORE: https://thestartv.com/c/newsSUBSCRIBE: https://cutt.ly/TheStarLIKE: https://fb.com/TheStarOnline Go to Source
Daura e Tarjuma e Quran – Shuja Uddin Sheikh – 9th August 2023 – ARY Qtv
1st Time In Electronic Media’s History Complete Translation & Tafseer Of Quran Kareem.
#ShujaUddinSheikh #DauraeTarjumaeQuran #ARYQtv
Subscribe Here: https://bit.ly/3dh3Yj1
Official Facebook: https://www.facebook.com/ARYQTV/
Official Website: https://aryqtv.tv/
Watch ARY Qtv Live: http://live.aryqtv.tv/
Programs Schedule: https://aryqtv.tv/schedule/
Islamic Information: https://bit.ly/2MfIF4P
Android App: https://bit.ly/33wgto4
Custom WordPress Development to Boosts Your Enterprise’s Online Success
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)
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.
Maquina, the engine for Rails
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/
Nephio Community Gains Momentum with Release 1 to Simplify Cloud Native Network Automation
Read the original post at: Read More
The post Nephio Community Gains Momentum with Release 1 to Simplify Cloud Native Network Automation appeared first on Linux.com.
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