Author: Classic Content Dev
Whether we are scrolling through our phones, navigating a website, controlling the car displays, or even using the controllers of our thermostats, it is the user interfaces that make up our experience on the screens. Digital displays on the black screens are all around us and constitute the majority of our online experience. In order to make the users stay and engage with the interface, it is imperative that businesses focus their attention on developing an amazing user interface or UI. A great way to make your user interface more intuitive and easy-to-navigate are by integrating it with React and Redux. What are React and Redux and what are their benefits in UI of your application or product development? Keep reading to know more.
What is React?
What is Redux?
Redux keeps the state of the application in store and each component can access any state that it needs from this store.
How can React be used and what are its benefits?
React is a way to build user interfaces. It is only concerned with the front-end. React makes user interfaces very easy to build by cutting each page into pieces. We call these pieces components.
- Putting Components Together: We can put React components inside other components. This is how a page can be built.
Why should React be used?
The following are some of the reasons why React should be used:
- Reusable Components: React provides a component-based structure. Tiny components like button, checkbox, dropdown etc., can be used to create wrapper components composed of those smaller components. And then higher-level wrapper components can be written. And, it goes on like that until you have this one root component and that component is your app.
- Clean Abstraction: One of the powerful sides of React is that it provides a good abstraction which means that it does not expose any complex internals to the user. A basic understanding of a component’s life cycles, states, and props are needed to master React.
- Redux: It is a kind of reinterpretation of flux architecture. It provides a single store which is not required in flux. There is only one single object where you keep all the application data. This makes it easier to observe and manipulate.
Why should Redux be used?
Understanding how Redux works:
There is a central store that holds the entire state of the application. Each component can access the stored state without having to send down props from one component to another.
There are three building parts: actions, store, and reducers.
- Actions in Redux: Actions are events. They are the only way you can send data from your application to your Redux store. The data can be from user interactions, API calls or even form submission. Actions are sent using the store.dispatch() method. As pure functions, they do not change the data in the object passed to it or perform any side effect in the application.
- Store in Redux: The store holds the application state. There is only one store in any Redux application. You can access the state stored, update the state, and register or unregister listeners via helper methods. When using Redux with React, states will no longer need to be lifted up, hence it makes it easier for you to trace which action causes any change.
Other benefits of using Redux:
- Redux makes the state predictable: In Redux, the state is always predictable. If the same state and action are passed to a reducer, the same result is always produced as reducers are pure functions. The state is also immutable and is never changed. This makes it possible to implement arduous tasks like infinite undo and redo.
- Maintainability: Redux is strict about how code should be organized so it makes it easier for someone with knowledge of Redux to understand the structure of any Redux application. This generally makes it easier to maintain.
- Debuggable for days: Redux makes it easy to debug an application. By logging actions and state, it is easy to understand coding errors, network errors and other forms of bugs that might come up during production.
- Ease of testing: It is easy to test Redux apps as functions used to change the state of pure functions.
- Redux can also be used for server-side rendering: With Redux, you can handle the initial render of the app by sending the state of an app to the server along with its response to the server request. The required components are then rendered in HTML and sent to the clients.
Author: Classic Content Dev
In the current digital space, web development has become imperative in establishing, scaling, and promoting any business. This is because we are living in a digital age, where the customer goes to Google before any other type of interaction with the brand. With a website at hand, companies can provide their customers with a platform to interact and relevant information to win their trust.
However, lately, web developers and web development companies have had one question in mind, “React or Angular, Which To Choose?” If you also have the same question, this write-up will eliminate all confusion.
It is used for the following purposes:
- Building user interfaces for single-page applications, typically, for handling the web layer for web and mobile apps.
- It can also be used to create reusable UI components.
- It allows developers to create large web applications that can alter data without reloading the page.
- Its purpose is to be large, scalable and simple. It works primarily on user interfaces in applications.
How can it be used effectively?
There are many ways that can help you use React more effective for your web development. If you are wondering how you can use React effectively, these are the ways to use it:
In 2015, Facebook had announced that React has native libraries. These libraries provide the React architecture to native applications like the IOS, Android, and UPD.
Single-Way data flow
In React, a set of unchangeable values are passed to the component’s renderer as properties in the HTML tags. The component cannot modify any properties but can issue a call back function which enables modifications. The complete process is known as “properties flow down; actions flow up”.
Virtual Document Object Model
React provides an in-memory data structure cache which computes the modifications and then updates the browser. This allows programmers to code as if the whole page is rendered on each modification.
Why should You Choose React For Development?
Although there are many hot and trending web development technologies in the digital ecosystem, React still comes out as one of the strongest technologies. Apart from being utilized by well-known apps such as Facebook, Instagram, and Netflix, proving its importance and usability, the following reasons would also prove why one should take React development services:
Easily To Learn
With basic and prior knowledge in programming, React becomes easy to learn and simple to grasp. In the case of “Domain-specific language” such as Angular, the learning process could become more tedious, however, with React, only the basic knowledge of CSS and HTML becomes necessary.
It can be used to create mobile applications and enables extensive code reusability. This allows the simultaneous production of IOS, Android and Web applications.
React utilizes one-way data binding and an application architecture called Flux. Flux controls the flow of data to components through on control point, which is the dispatcher. This allows for easier debugging of self-contained components of large ReactJS apps.
React does not require any built-in container for dependency. Modules such as Browserify, Require JS, ECMAScript 6 can be used via Babel to inject dependencies.
React Development Company can use React to develop applications that are easy to test. React views can be seen as functions of the state. The state can be manipulated by passing it through ReactJS view. Once this is done, the output, triggered actions, events, and functions can then be analyzed to test its functionality.
Angular is a web development platform built in TypeScript. It provides developers with excellent tools for creating the client-side of Web applications. It is a framework that is utilized for building single-page applications. Although companies can hire Angular Developers for better usage of the platform, many web development companies even outsource Angular development for getting their web apps built.
Why Take Angular Development Services?
Apart from being utilized for building websites such as YouTubeTV, Google Cloud, and Crunch Base, here are some of the reasons why companies should turn to Angular Development:
- Detailed Documentation
Angular allows for detailed documentation through which developers can find the necessary information without asking their colleagues. This allows developers to formulate technical solutions and solve emerging issues.
- Google Support
Angular has Google support, making it a reliable platform for developers to work on.
- Excellent ecosystem for third-party components
The increasing popularity of Angular has lead to the emergence of several additional tools and components that can be used in Angular apps. This has resulted in additional functionality and productivity improvements.
- Component-based architecture
According to this architecture, an app can be divided into its logical and independent components. These components can then be easily replaced, decoupled and reused in other parts of the app. Component independence also makes it easier to test a web app, ensuring that all the components work seamlessly.
CLI aids in the automation of the whole development process of an app. It is one of the most favored features of Angular. This makes app initialization, configuration, and development, much easier. It also enables the creation of a new Angular project, the addition of features to the project and end-to-end tests, with a few commands. It increases code quality and facilitates development.
- Angular Universal
It uses service-side rendering and provides many benefits to a project. It employs web-crawlers to improve the web app’s rank in the various service engines. It also decreased page load time and improves performance on mobile devices. These factors aid in increasing the number of users on the website.
Choosing between React and Angular Development
In order to check which development services would aid a project, the following factors need to be taken into consideration:
- Sustainability for projects of various sizes
- Search Engine Optimisation (SEO)
- Development Speed
- React: It employs an efficient approach to updating the DOM, which subsequently increases the app performance.
- Angular: It modifies the DOM directly in the browser which may not be convenient for users with older computers or slow mobile devices, because, updating the DOM will require a lot of CPU cycles and slow down applications. With too many bindings between the parts of the application, Angular displays delays which can utilize a lot of the memory from the client’s device.
Sustainability for projects of various sizes
For a Minimum Viable Project with basic features, Angular will prove to be better than React. This is because Angular already has the necessary features for developers to create such a project. However, in the case of adding new functionality to Angular, the developers will experience constraints owing to its rigid architecture.
You can hire React developers for creating single-page applications but is a viable choice only if the application grows in the future. Its flexible architecture allows more changes in web app development. However, it offers less functionality outside the box, which increases the time spent on the pre-development stages. If the resulting application is small, it would be more beneficial to use Angular, as the extra development required for React would be of no use, for such an application.
Search Engine Optimisation (SEO)
The speed for the development through either Angular or React depends on the number of libraries with ready functionality that are accessible to the developer. And the speed plays a vital role in your Search Engine Optimization.
The list of ReactJS libraries is hardly comprehensive. This makes the initial stages of an app development more tedious and difficult to navigate.
Angular has a more comprehensive list of libraries that can be instantly added to the app’s dependencies and can push-start its development.
One can choose a React Development Company for:
- The extended functionality of an application, in the future.
- An application that will update the views simultaneously and constantly.
- If a slower initial stage of development is feasible.
One can go for Angular Development Services for:
- A Minimum Viable Product
- An application that updates only several parts of one view at a time.
- If the development of an app needs to happen immediately.
Depending on the type of web application you require, you can choose between React and Angular development. Both are very powerful technologies or frameworks for creating web applications.
Classic Informatics, a leading web development company in Australia. Whether you are looking for extended teams for your React development or Angular development, we have expert developers to get it done. We follow an agile methodology and ensure that your project is completed successfully within the committed time. You can get in touch with us to hire React developers or Angular developers for your web app development.
Author: Classic Content Dev
The digitisation has hiked the web development and there are, now, several ways to design a website. It is also possible to retrofit a website with several customised apps that use a mix of web technologies. However, it is important to note that not all web technologies are a good fit for everyone. The best thing to do is to go through the software documentation for each and every coding environment, APIs, and framework. But, this is a time-consuming feat. That’s when this summary of the top eight hot and trending web development technologies comes to the rescue.
MEAN.js is a software conglomerate that encompasses MongoDB, Express, Angular JS, and Node JS. Using the respective capabilities of all these programming languages and the collective capabilities of their libraries, developers can quickly undertake lengthy projects. Compatible with MacOS, Windows, and Linux alike, MEAN stack provides a uniform coding experience that is bolstered by a very powerful DBMS in MongoDB. This means faster apps, rock steady performance, and support for the MVC architecture as well. Because of JSON, MEAN stack has been running very well with digital product agencies and enterprises alike.
Laravel is a PHP framework that has a lot of great features. Everything is configured very conveniently in Laravel from the Object-Oriented Libraries including the Authentication Library that makes security very easy to track and tweak. It also comes with its own built-in command-line called Artisan that makes the development part quite simple. The built-in Bcrypt and SQL statements make SQL injection tactics invalid. It also comes with a template engine called Blade and database migration that makes it quite simple for almost any developer to get started. Also, it is fully equipped to respond in both JSON and AJAX as needed. Fundable under Startups uses Laravel to great effect.
PHP 7 & LAMP Stack
LAMP stack stands for Linux, Apache, MySQL, PHP and with the inclusion of PHP 7, this is the preferred choice for many developers. Linux is a perfect environment for Apache, MySQL, and PHP. Apache has several inbuilt modules including mod_security, mod_deflate, mod_cache, and mod_rewrite that make the web server very easy to handle. MySQL is a simple but powerful SQL that allows lightning fast database connections and operations. PHP 7 with its JIT compiler makes script compilation and execution extremely fast. Also, PHP 7 throws an exception when it runs into an error instead of throwing a white screen of death. Scalability is a huge bonus with LAMP stack and PHP 7. So, it can be used effectively by mobile and desktop developers alike. WordPress uses LAMP stack with PHP 7 for great results.
Popularly known as ‘Tipton’, WordPress 4.9 brings some major changes to the entire WordPress environment. Ideal for small businesses to extremely large enterprises, WordPress 4.9 includes a compiler that flags syntax errors, enhanced menu customiser UX, and improved theme switching. The new Gallery widget makes it unnecessary to install a separate plugin for the same and the link previews are really nice. There are probably millions of websites running on WordPress. TechCrunch, BBC America, and The Walt Disney Company are some of the most prominent examples.
ASP.NET & MS SQL
ASP.NET coupled with MS SQL is lightning-fast and using MS WebMatrix, it becomes very simple to design small web pages. Using ASP.NET and MS SQL is perfect for small businesses as the .NET framework offers unparalleled support for Windows OS and MVC architecture. Also, ADO.NET is perfect for data management with the .NET framework and is a part of ASP.NET. Some of the most popular websites developed using ASP.NET MVC are GoDaddy, Microsoft, Ancestry, and StackOverflow.
Source: Creative Minds
Magento 2 eliminates the slow and cluttered feel of Magento 1 by including full caching of the web pages. This automatically reduces load time and with the new mobile-friendly themes, SEO is a lot easier. The admin interface has also been upgraded to include a drag-and-drop visual builder so that non-coders can create a beautiful website as well. There are lots of security upgrades as well, including the key integrations of PayPal, Worldpay, and Cybersource for better payment modules. Magento is perfect for building any type of e-commerce website quick and easy. Graze, Big Bus Tours, Seat Norway, and S’well have all used Magento 2 to great success.
Drupal has been as popular a CMS as WordPress or Magento but the new Drupal 8 integrates a lot of new features that make it easier for content management. This includes the integrated WYSIWYG editor that makes it possible to navigate to each page and edit them separately. The mobile-friendly themes have made SEO a much easier task as it is built for the ‘mobile-first’ ideology. Drupal 8 also comes with several other integrations such as official webmail, analytics, market automation, and other plugins. Some of the most popular websites running on Drupal 8 include Arsenal FC and InStyle.
It is a well-known fact that backends are usually meant for specific designs, but there are some limitations to the frontend development as well. In a world where developers get new tools and frameworks every day and the capabilities of each framework are also updated daily, there is no excuse for amateurish work. There is no one technology that is better than the rest and it is best to stick to whatever feels comfortable for development.
Author: Classic Informatics
AI, BI, IoT. Such abbreviations have become a to-go for the tech-savvy population. In fact, even if you aren’t a tech-enthusiast, chances of you stumbling over them is pretty high. Afterall, we all use smartphones, laptops, television and hundreds of other advanced devices.
The ‘IoT’ mentioned here is a short form for the ‘Internet of Things’. A network of connected things (and people), to be precise. This technology is tagging along with us in our day-to-day activities, thanks to the popularization of high-speed 4G or 5G broadband internet. The cost of connecting devices has gone down to several folds, more and more devices are being custom fitted with machine-readable identification tags and sensors to avail wifi facilities, and smartphones are no longer a new thing for the most of the population.
These factors have most definitely contributed to the ‘IoT’ storm we witness nowadays.
According to a study by Gartner, currently a total of 8.4 billion connected devices are in use and this number is estimated to reach a whopping 26 billion by 2020.
Three folds in three years!
Honestly, the rate with which the technology scenario is changing, this development is nothing surprising. We won’t bat an eyelash if this number surpasses 50 billion or even 100 billion.
All these numbers mean that nothing is impossible in the near future, at least on the technology front, not even a cyborg attack. But we don’t need to go there, for now.
Your smartphone is most likely to tell you if you are short of a grocery item at home, while you sit comfortably on your office desk. Or even reorder the supply from the nearby supermarket. The millions of possibilities lying ahead connected with IoT are surely mind-boggling!
Let’s delve deep into the advantages and the future prospects of this amazing technology feature!
Internet of Things: The Definition
Technopedia defines IoT as ‘a computing concept that describes the idea of everyday physical objects being connected to the internet and being able to identify themselves to other devices. The term is closely identified with RFID as the method of communication, although it also may include other sensor technologies, wireless technologies or QR codes.’
It further explains that the digitalised object here is no longer a simple ‘lone’ device. It now is associated with a number of surrounding objects and database data, apart from its user, showing ‘ambient intelligence.’
Thanks to this technology we now can save most of our precious time and space at home, in the office or anywhere else. Need a warm and comfy home? Automated heating might help you achieve that in seconds, no matter how far you’re from your apartment. They may even alert you if your medicines have expired or if your home has converted into a blazing inferno. In the case of the latter, they might direct a call to the fire department even before you get the alert message.
It is like having a loyal caretaker who looks after your health and habits, just they aren’t limited to the confinements of your home.
Key Features of the Internet of Things (IoT)
Now when we know the possibilities that come along with this glorious technology, let’s learn about its key features and how different industries can avail them for their benefit!
- Its quick alert feature can help almost every industry with their stock (and resources) keeping, maintaining and replenishing, individual tracking, inventory control, and logistics.
- IoT is known to deliver fast with maximum accuracy and minimum utilization of energy, a plus for all the industries.
- Healthcare industry utilizes IoT for patient monitoring. A series of sensors are placed on the patient’s body that helps deliver accurate vitals and details to the doctor-in-charge so they take an apt action without risking the patient’s life.
- IoT is a vital part of the home and office security devices, of course. Whether you talk about security alarms, surveillance cameras, door locks or sensors, they all form a part of the IoT network.
- GPS technology is also a great example of IoT. Know where exactly your goods are with their help.
- Undoubtedly, the greatest achievement of IoT would be its impact on the marketing field. It has successfully helped us tackle the massive data and information wave, getting us the handful of well-processed sensitive information. You now are free to come up with thousands of different ways to promote your business and thus bringing in more clients. The valuable data extracted helps improve the effectiveness of the advertising practice in action involving sending them directly to you on smartphones and computers.
- IoT has simplified the online shopping process too. It helps facilitate customer identification by fishing out the best products that meet your demand based on your previous clicks. It, thus, contributes to a better business process by helping the shop optimize their services based on the popular demands.
That’s just a small fraction of the millions of other things this advanced technology has made possible in today’s time. Stay put, there is a lot to come from IoT in the near future!
Author: Classic Content Dev
‘Simplicity- the art of maximizing the amount of work not done- is essential.’
– Agile Principle #10
The first step to any agile project is preparing a product backlog- a list of prioritised stories required to meet the set goal. If done well, this step helps make release and iteration planning a lot easier, saving you time to execute them perfectly.
Thus, it won’t be wrong to call product backlog the backbone of a successful sprint. Indeed an essential step.
But, as expected, ensuring a perfectly managed, super-effective and result-driven product backlog is a bit tricky. Complex, yes, but not entirely difficult.
Here are a few solid tips from our Agile experts for product owners and teams that generally face difficulty managing an overflowing backlog!
1. Implement Layers of Decomposition
Include layers of decomposition in your product backlog, including objective, feature, and user stories, to make it more efficient.
This technique will help you have a high-level conversation amongst the team, promoting a high delivery rate. Many web tools, like Atlassian JIRA, come built-in with this facility, further easing your work-process.
2. Use A Problem Board to Segregate Work
Rather than piling every story involved in the roadmap on your backlog, try going for a definite number of stories at one go.
Using a ‘Problem Board’ is the best way to do this.
Define your business goal, a metric that could help measure the work done, and features that could help get it done effectively. Problem Board segregates them on the basis of the set-priority and helps assign them accordingly.
This way you’ll get your work done in real time, without worrying over the ever-piling list of ‘to-do’ work.
3. Tier your Backlog
In order to resolve issues accumulating in your sprint process, you may follow a tier-system to manage the feedback received.
The first level may work as a raw review stage, wherein the product owner may quickly decide whether to keep the issue for further scrutinisation or pass it through. If kept, the feedback may move to the next ‘unprioritised’ level and then to ‘ready to feature’ level.
This practice would help product owner resolve issues at a much faster rate.
4. Be DEEP when you INVEST
Using DEEP as in Detailed, Emergent, Estimated, & Prioritised feature is another perfect way to manage your Product Backlog effectively.
Likewise, you may also follow the INVEST (Independent, Negotiable, Valuable, Estimable, Small, & Testable) checklist for high-quality user-stories
Whoa! We went a little deep there, didn’t we?
5. Keep Your Product Backlog Ready for the Next Sprint
It’s always better to be prepared with the next sprint beforehand.
Thus, make sure you have at least two sets of Product Backlog materials ‘ready for sprint’. It would help save you crucial time, further increasing the productivity.
But, also ensure that the items on the next sprint are clear, testable, and feasible.
6. Groom Your Product Backlog Regularly
Your Product Backlog needs constant attention in order to remain in a fit condition.
Assign a time-slot for Product Backlog grooming each sprint and make sure to follow it religiously. The team may gather and understand the tasks ahead, priority shifts, upcoming challenges and organisation’s take on it, and move or break their stories accordingly.
7. Don’t Waste your Time on ‘Out of Scope’ Issues
If you think an issue can never be reached, just close it. As simple as that.
There is no need dragging an issue that lies deep down on your priority list when you have a number of fresh and important issues popping up in your backlog.
You may always use those issues as a research material later.
Being a Product Owner, thus, isn’t an easy task. Its full time and you need to give your 100% to keep your Product Backlog alive and working. But if you keep the above points in mind, it may help you be the best one out there!
Go ahead, try them out!
Author: Classic Content Dev
The Terminator, Transcendence, Her, Wall-E; these movies are most definitely a treat for sci-fi lovers like us. Remember the use of animation, cool special effects, stunts, and that jaw-dropping plot-line?
There is another thing that is common amongst the stated movies- Human bots!
Yeah, Artificial Intelligence be wrecking us since 1984; the first Terminator movie!
Machine learning is no different. They have been here for some time and are going to be here forever, subtly embedded in our daily activities.
What makes your facebook or google search a lot easier? Who doesn’t let you feel alone on SNS by recommending ‘people to follow’? What makes you love Netflix so much? Yup, machine learning!
But, they aren’t here just for entertainment purposes per se. They have been a major part of the critical technology and business challenge-solving saga since they were first introduced. Including BI and Big Data!
We’ll be coming to that, but first, let’s know what AI and machine learning actually are and how they differ from each other!
Artificial Intelligence (AI) and Machine Learning- A Tale of Two Brothers
AI and machine learning; these two buzzwords have taken the whole tech world by storm. About a million of the world’s population searches for this specific keyword monthly, according to Google AdWords.
That’s a good amount of traffic, honestly.
Both the concepts look similar, talk about being ahead-of-the-time, are most definitely heavy. So it’s quite common for us to get them mixed.
We’re here to solve it for you. To begin:
Artificial Intelligence (AI): Is the ability of a digital computer or computer-controlled robot to perform tasks commonly associated with intelligent beings (1).
Machine Learning: A subset of Artificial Intelligence (AI) concerning with the implementation of computer software that can learn autonomously (2).
So to conclude, Machine learning is the more logical and algorithm-based subset of AI that uses predictive analytics to present AI out to the world. It finds patterns and comes up with the best suitable answers using prescriptive, cognitive and automated computational techniques. Face recognition, speech recognition, Google answers- they all use machine learning!
Now when you know them, scroll down to get acquainted with AI and Machine learning’s game-changing effect on BI and Big Data!
How AI and Machine Learning Are Changing The Face of BI and Big Data
Gone are days when you could survive with your old-school business intelligence tools. Legacy BI platforms are good, but not good enough to compete with the digitally advanced and automated world.
Thus, we need to embed a bit of future into our past tools. Enter Artificial Intelligence and Machine Learning!
Thanks to them, data is now analysed a hundred times faster with accuracy and automation helps reduce human error to a great extent- an ultimate recipe to increase the organisation’s profits.
The best part, AI and Machine learning aren’t limited to a specific field. Whether you are from machining industry or a hospital, a school or are crucial cloud service providers- they work for all!
The predictive and the detailed nature of AI and machine learning could help businesses improve their performance and cyber security by providing top-class services on:
- Facial Recognition and Image Classification
- Real-time Fraud Detection
- Image Tagging
- Pattern Detection
- Network Intrusion Detection
- Computer Server Monitoring
Other than this, leveraging AI and machine learning could give you a competitive advantage when human resources aren’t available (like with stars and planets discovery), or when you don’t know what lies ahead of you (GPS traffic details, for example), or to get different solutions for different individuals (medical cases are never the same).
These were only a few examples, AI and machine learning is actually making a lot more things possible with its future-assessing capabilities.
Integrating Artificial Intelligence with Business Intelligence
In a BI platform, visualisation dashboards are the best place to embed AI techniques. This comes in the form of real-time powered alerts like basic threshold alerts (Absolute value alerts, relative value alerts), pattern recognition alerts, and highly advanced neutral network alerts.
Let’s crack them one by one.
Threshold Alerts: Users are immediately notified when the values go outside the predefined threshold.
Absolute Value Alerts: A type of threshold alert wherein the users are notified when an observed value falls below or exceeds a predefined absolute value.
Relative Value Alerts: Another type of threshold alerts that works when the percentage difference between the observed value and previous value goes beyond or falls below the range defined.
Pattern Recognition Alerts: A specific algorithm- based alert that can help enhance dashboard experience and security.
Neutral Network Alerts: Triggers when any intrusion is detected and automatically activates -anti-malware functions on a network to kill the problem.
Engaging these alerts could help scale and smoothen your business process by defining key factors and alerting you as soon as any disruption occurs.
AI and machine learning are most definitely paving a way for an advanced BI and Big data practices. But, as AI scientists predict, this is just the beginning. We are yet to discover much more things that AI and machine learning are capable of!