New Plugin Adds Google-Doc Style Commenting to Gutenberg Blocks

Multidots, a development agency and WordPress VIP Agency Partner, has released a plugin that brings content collaboration to the block editor. The Google-Doc Style Gutenberg Block Commenting plugin landed on WordPress.org in October and is just starting to gain traction.

It adds inline commenting to the editor where users can highlight text or select entire blocks and leave a comment. Other users can leave comments and/or mark the thread as resolved for a collaborative editing experience. Alternatively, the post author can use comments for making notes on sections that need to be improved or reviewed prior to publishing. The features support the following editorial workflow:

  • Add comments on Gutenberg blocks
  • Reply to comment
  • Get feedback
  • Resolve it
  • Get email notification of resolved comments

Multidots has a live demo set up where you can test leaving comments, replies, and marking threads as resolved. The plugin is currently compatible with a range of text-based blocks that are part of a page or post. Commenting can be accessed by highlighting text and then clicking on the dropdown arrow in the toolbar. Inline comments can be displayed or hidden via the icon in the top toolbar.

The plugin restricts adding and editing comments to Super Administrators, Administrators, and Editors. These user roles can edit their own comments but cannot edit or delete those added by other users.

Google-Doc Style Gutenberg Block Commenting could be useful for organizations where multiple teams need to review content before publishing. Not having the ability to collaborate using the block editor may even be a deal breaker for some teams that are considering WordPress. When collaborating on posts in the past I have often used Google Docs just for the ability to give inline comments with notifications. This plugin cuts many time-consuming steps out of that process, such as obtaining collaborators’ Gmail addresses, pasting the most recent version of the post into a document, and ultimately having to paste it all back into the editor.

The plugin’s authors consider this a beta version and plan to add more features based on community feedback. After testing it, I found that resolved threads seem to disappear, but it might be helpful to have a lasting record of them. Users cannot comment on images or other types of non-text-based blocks, and this seems somewhat limiting. There are no notifications for comments – only resolved threads, which makes it difficult to know when content needs further review.

Multidots is planning for the next release to be a more optimized version with enhanced commenting features, including the ability to leave popup suggestions for adding/removing certain text at a specific location and asynchronous commenting. Anyone interested in following the progress or contributing can find the project on GitHub.

How to Build a Concurrent Chat App With Go and WebSockets

Go emerged from Google out of a need to build highly performant applications using an easy-to-understand syntax. It's a statically typed, compiled language developed by some of C's innovators, without the programming burden of manual memory management. Primarily, it was designed to take advantage of modern multicore CPUs and networked machines.

In this post, I'll demonstrate the capabilities of Go. We'll take advantage of Go's ability to create concurrent apps to build a chat app easily. On the backend, we'll use Redis as the intermediary to accept messages from the browser and send them to the subscribed clients. On the frontend, we'll use WebSockets via socket.io to facilitate client-side communication. We'll deploy it all on Heroku, a PaaS provider that makes it easy to deploy and host your apps. Just as Go makes programming such an application simple, Heroku makes it easy to supplement it with additional infrastructure.

Planning Poker Using Salesforce and Heroku

Feature teams often employ the concept of Planning Poker (or Scrum Poker) to help estimate the effort required to complete a given user story. Each team member is provided a set of cards, which are used to provide their estimate for the level of effort required for a given story. Most teams employ decks that utilize a Fibonacci-like sequence of the following values: 0, ½, 1, 2, 3, 5, 8, 13, 20, 40, 100.

Experienced scrum masters make teams aware that an eight-point story should be able to be broken into a three-point and five-point story. As a result, stories are typically not worthwhile to estimate as anything greater than a value of eight.

The Top Programming Languages Organizations Rely on Are Javascript, Python, and Java

Tidelift's annual managed open-source survey explores how technologists use open source to build applications at work. Over 600 people shared how they use open source software today, what holds them back, and what tools and strategies would help them use it even more effectively.

In this post, we share the sixth of nine key findings. If you don’t wait to wait for the rest of the results, you can download the full survey report right now.

Practical Transaction Handling in Microservice Architecture

Introduction

It’s challenging to handle the complexities that come with a distributed system when moving away from a monolith to microservice architecture (MSA). Transaction handling is at the front and center of this issue. A typical database transaction done in a web application using local transactions is now a complicated distributed transaction problem. In this article, we will discuss what causes this, the possible solutions, and the best practices in developing safe transactional software systems using MSA.

If you are already familiar with the related concepts behind database transactions and the intricacies of data consistency in a distributed system, you can skip to the section on "Data Modelling in Microservice Architecture" where we explore how to model data with a real-world use case.

How to Geo-Partition Data in Distributed SQL

We are excited to announce the availability of row-level geo-partitioning in YugabyteDB, a feature heavily requested by our user community and enterprise customers alike. This feature allows fine-grained control over pinning data in a user table (at a per-row level) to geographic locations, thereby allowing the data residency to be managed at the database level.

Making the nodes of a multi-region database cluster aware of the location characteristics of the data they store allows conforming to regulatory compliance requirements such as GDPR by keeping the appropriate subset of data local to different regions, and is arguably the most intuitive way to eliminate the high latency that would otherwise get incurred when performing operations on faraway, remote regions.

Deploy Friday E33 From Dev to Deploy With Helidon,

With cloud computing, several solutions were born to make the developer's life easier and simpler to develop. With that, the question arises: How will Java deal with solutions like NodeJS?

Let me introduce to you Oracle Helidon. Helidon was designed to be simple and fast and comprises two versions: Helidon SE and Helidon MP. Helidon SE features three core APIs to create a microservice -- a web server, configuration, and security -- for building microservices-based applications. In this talk, we'll explore this framework and make Java alive in the cloud era.

An Overview of Security Testing Tools in DevOps

Strategically, security testing tools blend into a DevOps workflow, essentially forming a DevSecOps model while improving production efficiency and minimizing software development costs. Such tools allow you to include testing and remediation of potential vulnerabilities throughout the Software Development Lifecycle (SDLC) as well as post-delivery Run & Maintain phases. Enabling a DevSecOps model ensures developers to adopt a secured development and delivery cycle without lagging productivity and attributing ‘security’ at the bottom of the SDLC. 

In one of my earlier articles, we discussed how Microservices are vulnerable and susceptible to attack vectors, and how implementing a DevSecOps model is always a sensible approach to ensure security best practices. 

A Postmodern ERP With Apache Kafka

Enterprise resource planning (ERP) exists for many years. It is often monolithic, complex, proprietary, batch, and not scalable. Postmodern ERP represents the next generation of ERP architectures. It is real-time, scalable, and open. A Postmodern ERP uses a combination of open source technologies and proprietary standard software. This blog post explores why and how companies, both software vendors and end-users, leverage event streaming with Apache Kafka to implement a Postmodern ERP.

What Is ERP (Enterprise Ressource Planning)?

Let's define the term "ERP" first. This is not an easy task, as ERP is used for concepts and various standard software products.

Migration From Mulesoft to Kumologica — Part 1

This is the first part of our four-part series we are publishing which takes you through the steps for migrating your application from Mulesoft to a serverless integration using Kumologica. Mulesoft follows the EAI (Enterprise application Integration) patterns based on which the Mulesoft processors and connectors are aligned. We will discuss some of these patterns as we move through the series.

Kumologica is one of the early players in this space which brings the benefits of the low-code integration capability of traditional integration like Mulesoft to the new world of ServerlessIt provides a drag and drop visual designer and low code approach to ensure the greatest speed and flexibility to support a wide range of integrations compatible with most of the platforms and cloud providers.

Block-Based Bosco, Second Full-Site Editing Theme Lands in the WordPress Directory

Screenshot of the Block-Based Bosco WordPress theme.

Fränk Klein, a Principal Engineer at Human Made, is now the second theme developer to release a block-based theme to the WordPress theme directory. Block-Based Bosco is a recreation of his Bosco theme, which he released in 2014.

Block-based themes, also called FSE (full-site editing) themes, are currently experimental. They require the use of the Gutenberg plugin, which will automatically detect their structure and activate the beta version of the site editor. This system allows users to experience a WordPress install that is comprised entirely of blocks. Widgets, nav menus, and the customizer screens are out. Everything from posts to site headers to navigation is handled through HTML templates, which users can customize via the site editor. It is still a raw experience but continually improves with each update of the Gutenberg plugin.

Just over a month ago, Themes Team representative Ari Stathopoulos released the first block-based theme, named Q, to the official theme directory. It was both a milestone in WordPress theming history and an invitation for developers to follow his lead.

We have since seen the initial work toward a block-based version of the upcoming Twenty Twenty-One default theme. It is not yet in the directory, but the community should expect it soon.

Developers like Klein and Stathopoulos are paving the way for others. For those who do not have the time or the inclination to scour the Gutenberg plugin’s code or follow dozens of tickets, they can take the easy route. Study the code of people who have done the legwork.

Klein has also written a detailed post titled What I Learned Building a Full-Site Editing Theme in which he goes into detail about his experience. Despite his optimism for the future of theming, he does not shy away from the problems he stumbled upon. It is a must-read for any theme author who is preparing to take the plunge into block-based theme building.

One thing that some developers may find surprising or may even make them feel slightly uncomfortable is that Klein spent much of his development time working from the site editor rather than in a code editor. “It’s likely that this will be the future workflow for creating themes,” he wrote. “Because not only can you edit a theme visually, but it’s also much more practical than writing block markup by hand. Especially because the interface makes it easy to discover the different options offered by blocks, so that you can adjust them as needed for your desired theme design.”

About the Theme

Block-Based Bosco WordPress theme in the Gutenberg site editor.
Block-Based Bosco in the site editor.

Block-Based Bosco is relatively simple. It is a one-column, no-sidebar theme, which is what most block-based themes will look like at the moment.

“Full-site editing themes are still missing a lot of essential features,” wrote Klein. “Therefore it’s important to choose a theme design that fits with these constraints. Else you’re going to have a very frustrating experience.”

Unlike Q, which is a bare-bones theme primarily for testing theme-related features, Block-Based Bosco is based on a design that users might want to actually use on a site, at least someday. Currently, full-site editing is not yet ready for use with production sites. The theme design holds up well for a simple personal blog.

There are things the theme could do better in the short term. Offering support for wide and full alignments would be ideal, particularly for a one-column theme. The editor and front-end content width also do not match, so it is not a perfect what-you-see-is-what-you-get experience. These are not make-or-break features for these types of experimental themes at this point. We are simply in the testing ground stage.

Right now, end-users need to start tinkering with themes like Block-Based Bosco — please do so on a test install and not a live site — and offering feedback. They also allow other developers to get more comfortable with a new system before it suddenly feels like it comes crashing down in 2021.

Opening Up the Theme Directory

One thing is obvious at this point. The WordPress theme directory needs to allow theme authors to upload block-based themes without hacks or other workarounds. Block-Based Bosco and similar themes are currently being shipped with dummy files, such as header.php and footer.php, and unnecessary PHP code in functions.php to bypass the Theme Check system. With these extra files and code removed, block-based themes are minuscule in comparison to traditional WordPress themes.

There is an open ticket on the WordPress Meta Trac and a patch for the Theme Check plugin. Someone needs to pull the trigger and make it happen.

Painting With the Web

Matthias Ott, comparing how painter Gerhard Richter paints (do stuff, step back, take a look) to what can be the website building process and what can wreck it:

[…] this reminds me of designing and building for the Web: The unpredictability, the peculiarities of the material, the improvisation, the bugs, the happy accidents. There is one crucial difference, though. By using static wireframes and static layouts, by separating design and development, we are often limiting our ability to have that creative dialogue with the Web and its materials.

Love that. I’ve long thought that translating a mockup directly to code, while fun in its own way, is a left-brained task and doesn’t encourage as much creativity as either playing around in a design tool or playing around in the code while you build without something specific in mind as you do it. You don’t just, like, entirely re-position things and make big bold changes as much when your brain is in that mode of making something you see in one place (a mockup) manifest itself in another place (the code).

Direct Link to ArticlePermalink


The post Painting With the Web appeared first on CSS-Tricks.

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

How to solve this? I got same answer

#include <iostream>


using namespace std;

int main ()

    int charge, aftercharge, parking_hours;

     cout << "please put your parking hours:    " ;
     cin >> parking_hours;

     if (parking_hours>=1)
     {
        charge = 1 ;
     }
     else if (parking_hours>=11)
    {
        charge = 2.50 ;
    }
     else if (parking_hours>=12)
     {
        charge = 6.00 ;

     }
     aftercharge = parking_hours*charge ;

     cout << "your bills RM" << aftercharge;
     cout << "this is your charge RM: " << parking_hours;

return 0;

Feature Modules in Angular – Why Required and When to Use?

Today, in this article, we will discuss the most significant features of Angular Framework i.e. Feature Modules. With the help of Angular Framework, we can develop both large-scale based application or small scale based application. Actually,  with the help of Angular Modules, we can be designed our application into a part of different modules so that we can manage the application in a much better way. Since, if we use one single block or module for our application, then when the application starts growing to incorporate the new features and functionalities, it becomes a tedious job to manage the entire mode under a single block or module. In the same place, if we use multiple modules or blocks, then the maintenance of the code is easier. In this way, we can incorporate the new functionality or features in a new module and then include that module in our application.

So, there are many possible ways to group the functionalities into modules and the decision always depends upon the developers to find the best way for the application. So, when we break the application into multiple modules, then it becomes one of the important responsibilities of developers to maintains all modules so that performance of the application can be boosted up. We can break the application into multiple modules and then import all modules references into the bootstrapped module. The result of this approach will be that application loading will be slow as the application size increases. So, the best approach is that break the application into multiple modules as a Feature Module which can provide the following benefits –