As more and more software applications are operated in the cloud, stakeholders of applications originally developed for another platform wonder how they can make their application cloud ready. This article describes how we answer this question by analyzing cloud smells on a code level and cloud requirements on an architecture and infrastructure level during a software audit.
Several customers have asked us recently to analyze the cloud readiness of their code base which was originally developed for another target platform such as the (Windows) Desktop. They wanted to know whether their application could be operated in a cloud environment, which problems may occur and which actions they should take to make their application cloud ready.
I didn?t expect to be writing the second blog post only 12 hours after the first. But when the kids came downstairs this morning, they were unbelievably excited to do more coding. So here we are!
Eliezer and I discussed using more visual tooling (like Code World or Jupiter) for doing the learning, and I showed him what it looked like. It seems he?s got quite a bit of his father?s preferences, and wanted to stick to plain text for now. We?ll probably circle back to that kind of stuff after they get the basics. It will also give me a chance to get more comfortable with those offerings. (Thanks all for the recommendations on Reddit.)
Is increasing GP2 volumes size or increasing IOPS for IO1 volumes a valid method for scaling IO-bound workloads? In this post I'll focus on one question: how much can we improve performance if we use faster cloud volumes? This post is a continuance of previous cloud research posts:
To recap, in Amazon EC2 we can use gp2 and io1 volumes. gp2 performance can be scaled with size, i.e., for gp2 volume size of 500GB we get 1,500 iops; size 1,000GB creates 3,000 iops; and for 3,334GB, 10,000 iops, the maximum possible value. For io1 volumes we can "buy" throughput up to 30,000 iops.
My first encounter with Jenkins (actually, Hudson ? Jenkins was forked from Hudson many years ago) was almost a decade ago when I had to use it for Continuous Integration (CI). A few days ago, I had to work with it again. This time, it was for the task of Continuous Delivery (CD). Jenkins has undergone many changes over the years and seems to have evolved into quite a powerful tool with a lot of plugins.
My task was quite simple. I had to download a package in ZIP format from a repository and install it on a specific node. For this, I did the following:
The circumstances and personality traits that inspire someone to take on leadership responsibilities are a frequent source of interest among researchers. The latest effort, described in a recent paper from the University of Zurich, suggests that the key is our propensity for responsibility aversion. In other words, our willingness to make decisions that also affect others.
Participants in the study were given the choice of either making a decision themselves or passing it off to the group to make. The researchers made sure to distinguish between decisions that only impacted the individual themselves, and those where there were clear consequences for the entire group. As participants made their ruminations, their brains were being monitored using functional magnetic resonance imaging (fMRI).
In this article, we?ll learn to use Firebase Firestore and the Ignite UI for Angular Grid. The Firestore is Firebase NoSQL database offering so, before you start, I recommend that you learn more about both Firestore and Ignite UI for Angular.
In this article, we?ll learn to read data from Firestore and bind that data to the Ignite UI for Angular Grid. In the next article on this topic, we'll move through Create, Delete, and Update operations.
Full-text search is all about searching on the text; therefore, it does not matter if you are indexing and searching logs, genes in a DNA, your own data structure, and of course, language. They will all essentially work nearly the same way.
It was the year 2000, and I was on a flight to Mumbai. Peter, Johan, and I had been building an enterprise content management system (ECM) but kept running up against the challenge of using an RDBMS for querying connected data.
Deep Learning is a Machine Learning method that has taken the world by storm with its capabilities. In this article, we will discuss the meaning of Deep Learning With Python. Also, we will learn why we call it Deep Learning. Moreover, this article will go through Artificial Neural Networks and Deep Neural Networks, along with Deep Learning applications.
Deep Learning Definition
To define it in one sentence, we would say it is an approach to Machine Learning. To elaborate, Deep Learning is a method of Machine Learning that is based on learning data representations (or feature learning) instead of task-specific algorithms. We also call it deep structured learning or hierarchical learning. For feature learning, we observe three kinds of learning: supervised, semi-supervised, or unsupervised.
Get metrics on your fault-tolerant methods to find out whether your application is actually failing where you think it is. You can apply MicroProfile Fault Tolerance annotations to your methods then collect metrics from the MicroProfile Metrics /metrics endpoint to monitor exactly what happens if your application fails. Also in MicroProfile 2.0, you can collect metrics from the /metrics endpoint on individual Liberty components and you can configure authentication on the endpoint to make development easier. If you?ve not worked with metrics in Open Liberty before, take a look at our introductory Providing metrics from a microservice guide. If metrics isn?t your thing (seriously?!), there is even more in MicroProfile 2.0, it brings in Java EE 8 versions of CDI, JSON-P, and JAX-RS as well as adding JSON-B. It also provides updates to config, JWT, Open Tracing, and the REST Client specs.
About 20-years ago, cars just had one processor in them. Now cars have over forty processors and more than 100 million lines of code, five times the amount of code in a Boeing 747. Leading companies like General Motors are reinventing themselves by bringing more software development in-house as a competitive differentiator to address this trend. This involves rethinking the way they build applications for the cars themselves, and the business processes involved in building, distributing, and servicing them.
Ahmed Mahmoud, CIO for global manufacturing and supply chain at General Motors, said, "Every one of the processors in the car needs software. Your car is giving you the efficiency that you are expecting due to these microcontrollers, and processors in the car that need to be programmed, and you can think of it as a computer with four wheels. People are expecting enhancements on a regular basis just like you are expecting your phone to get updated over the air. In the future, you will notice that your cars will be updated over the air because that is what people expect."
The healthcare industry has goldmines of data at their disposal. However, healthcare companies have to comply with multiple regulations and ensure strict security while processing the data. This is why a DevOps approach to infrastructure management is very beneficial for healthcare.
The healthcare industry has grown and matured significantly over the decades. From shelves filled with files, it has moved on to utilizing the latest IT technology available, dedicated data centers and public or private cloud infrastructure. However, despite being a noble activity, healthcare is still a business and must be profitable. This said, when all the healthcare market players leverage the same type of hardware, a competitive edge must be gained elsewhere. Reputable experts predict 2018 to become the year of mass adoption of DevOps approach in enterprise healthcare industry, to respond to the ever-increasing requests for data-driven, interactive and responsive care.
Application performance monitoring (APM) is a section of IT that ensures applications are performing as expected. Application monitoring tools maintain this monitoring. The ultimate goal of performance monitoring is to supply end users with a top quality end-user experience.
Application monitoring tools give administrators the information they need to quickly figure out issues that negatively impact an application?s performance. Such tools can be specific to a selected application or monitor multiple applications on a constant network, grouping data concerning client CPU usage, memory demands, data output, and overall bandwidth.
Since Java 8, a lot of boilerplate code can be replaced with lambda expressions in our codebase. I really want to put out an article about Streams in Java, but since that only carries real value if we combine them with lambda expressions, I want to write about playing around with lambda expressions first.
Functional Interfaces in Java
A functional interface is an interface with a single abstract method, also known as SAM (Single Abstract Method) types. The concept was introduced in JDK 8, but there were interfaces prior to JDK 8 that compiled that definition. For example, Comparator has only one method:compare().
While containers can create more secure application development environments and dramatically speed up development, they can also introduce new security challenges. Containers are applications vulnerable to privilege escalation, zero-day attacks, hostile takeovers, and data exfiltration, and the later you discover a problem, the more difficult it is to mitigate the damage. This compelsDevOps and information security teams to facilitate security's"shift left" to the beginning of the development cycle. However, shifting left does not address the fact that deploying containers and migrating to cloud-native environments also necessitates the security team to ?shift up? to focus on its new priority: protecting the application tier.
IIoT technology is making pumps smarter. Smart pumps are intelligent devices that are connected to each other through IoT technology. Several pumps connected through such a platform can be remotely monitored by interested stakeholders, like a support team, manufacturers, rental services, and more, to track vital parameters of the pump operations. For instance, vibrations per minute can be monitored, and an increase beyond the threshold can be an indication towards an impending bearing failure. Again, the presence of vapor can be an indication towards liquid reaching vapor point, which can lead to dry running, overheating, and eventual damage of the product. With the help of IIoT Solutions, stakeholders can perform predictive maintenance as well as real-time monitoring to avoid eventual downtime.
The IoT platform for these IIoT integrated smart pumping solutions comprise of three significant parts:
When writing unit tests, it is common to initialize method input parameters and expected results in the test method itself. In some cases, using a small set of inputs is enough; however, there are cases in which we need to use a large set of values to verify all of the functionality in our code. Parameterized tests are a good way to define and run multiple test cases, where the only difference between them is the data. They can validate code behavior for a variety of values, including border cases. Parameterizing tests can increase code coverage and provide confidence that the code is working as expected.
There are a number of good parameterization frameworks for Java. In this article, we will look at three different frameworks commonly used with JUnit tests, with a comparison between them and examples of how the tests are structured for each. Finally, we will explore how to simplify and expedite the creation of parameterized tests.
MongoDB is always one step ahead of other database solutions in providing user-friendly suplog port with advance features rolled out to ease operations. The OpLog feature was used extensively by MongoDB connectors to pull out data updates and generate stream. OpLog feature banked on MongoDB's internal replication feature. While the feature was highly useful, it was complex and necessarily mean tailing of logs.
To simplify things, Change Streams as subscriber to all insert, update, delete MongoDB collection operations was introduced, which should go well with Node.js event-based architecture.
UI testing is an important part of quality assurance. Specifically, UI testing refers to the practice of testing front-end components to make sure that they do what they?re supposed to. If a user clicks the Login button, the login modal appears. If they click a link, they?re brought to the appropriate part of the application. With automation platforms, these individual tests can be linked together into workflows and automated. Business-driven development style tests can be created in this fashion. The UI can be tested to see that each individual path that a user may take is functional and that the interface is responding appropriately. Other platforms exist that allow these workflows to be tested on simulated resolutions and devices, ensuring that the user experience is consistent across all possible combinations of browser and device.
API testing lives a layer below UI testing. The UI is fed by these APIs and renders the DOM based upon conditions set by both the user and the developer. These conditions determine the sort of API call that?s made to populate the viewport. When we?re UI Testing, it could be argued that we are indirectly testing the API layer. It?s actually pretty fair to say so. Many of the actions that our UI platform will take will issue API calls. If the DOM rerenders correctly, we can assume to an extent that the API call was successful. The dangerous ground here is the assumption.
NumPy is a powerful Python library that is primarily used for performing computations on multidimensional arrays. The word NumPy has been derived from two words ? Numerical Python. NumPy provides a large set of library functions and operations that help programmers in easily performing numerical computations. These kinds of numerical computations are widely used in tasks like:
Machine Learning Models: while writing Machine Learning algorithms, one is supposed to perform various numerical computations on matrices. For instance, matrix multiplication, transposition, addition, etc. NumPy provides an excellent library for easy (in terms of writing code) and fast (in terms of speed) computations. NumPy arrays are used to store both the training data as well as the parameters of the Machine Learning models.
Image Processing and Computer Graphics: Images in the computer are represented as multidimensional arrays of numbers. NumPy becomes the most natural choice for the same. NumPy, in fact, provides some excellent library functions for fast manipulation of images. Some examples are mirroring an image, rotating an image by a certain angle, etc.
Mathematical tasks: NumPy is quite useful to perform various mathematical tasks like numerical integration, differentiation, interpolation, extrapolation, and many others. As such, it forms a quick Python-based replacement of MATLAB when it comes to Mathematical tasks.
The fastest and the easiest way to install NumPy on your machine is to use the following command on the shell: pip install numpy.
React Native has recently gained popularity among the mobile app developer community due to its cross-platform compatibility, quick development cycle, and better user experience. It is easier to develop, build and maintain apps using React Native.
For mobile apps, business success or failure is determined by user experience and retention rate. The retention rate can drop immediately if the application does not work properly, causing customers to switch to other apps or leave poor reviews in the app store. A fast response to critical errors is essential to minimize customer impact.
Established in 2018, the Machine Intelligence Technology Laboratory comprises of a group of outstanding scientists and engineers, with research centers located in Hangzhou, Beijing, Seattle, Silicon Valley, and Singapore. Machine Intelligence Technology Laboratory is Alibaba's core team responsible for the research and development of artificial intelligence technologies. Relying on Alibaba's valuable massive data and machine learning/deep learning technologies, the lab has developed image recognition, speech interaction, natural language understanding, intelligent decision-making, and other core artificial intelligence technologies. It fully empowers Alibaba Group's important businesses such as e-commerce, finance, logistics, social interaction, and entertainment, and also provides outputs to ecosystem partners to jointly build a smart future.
Microservice architecture (or, "microservices") has slowly emerged in recent years as a go-to method for development teams to create fast and robust enterprise applications. Microservice architecture breaks down complex tasks into smaller processes that operate independently and communicate through language-agnostic APIs. Typically, a microservice is single-task oriented. For example, one microservice component will authenticate a user to an application, while another may be responsible for conducting a search on data within the application.
Microservices Are Autonomous
Microservices are also known to be autonomous. A well-designed microservice will carry its data store that is not shared among other services. Also, the behavior of a microservice will have no impact on the behavior of another. There will be no side effects.
I?m working to break down the moving parts of API efforts over at the VA and working to provide as much relevant feedback as I possibly can. One of the components I?m wanting to think about more is the feedback loop for the VA API efforts. The feedback loop is one of the most essential aspects of doing an API and can quickly become one of the most debilitating, paralyzing, and nutrient starving aspects of operating an API platform if done wrong or if non-existent. However, the feedback loop is also one of the most valuable reasons for wanting to do APIs in the first place, providing the essential feedback you will need from consumers and the entire API ecosystem to move the API forward in a meaningful way.
Current Seeds of the VA API Feedback Loop
Current the VA is supporting the VA API developer portal using GitHub Issues and email. I mentioned in my previous review of the VA API developer portal that the personal email addresses provided for email support should be generalized, sharing the load when it comes to email support for the platform. Next, I?d like to address the usage of GitHub issues for support, along with email, and step back to look at how this contributes to, or could possibly take away from the overall feedback loop for the VAPI API effort. Defining what the basics of an API feedback loop for the VA might be.
Whether you are a Scrum Master or an Agile coach, sooner or later, you will run into a problem that?s outside of the team?s sphere of control. The question is: How do you solve impediments of this kind? What approach has worked best for you in the past?
Barry Overeem, Christiaan Verwijs, and I teamed up to provide some transparency in this matter and share your best techniques and approach with the Agile community. All it takes to contribute is five minutes of your time to participate in the anonymous "How to solve impediments" survey. (We expect results to be available in November.)
OptaPlanner, an open-source constraint resolver, finally supports multithreaded incremental solving. The speedup is spectacular. Even with just a few CPU cores, it triples the score calculation speed ? see the results below. To activate it, a single extra line in the configuration suffices.
The original feature request stems from 2007. Throughout the years, step by step, we diligently prepared the internal architecture for it, so now, after 10 years, we fully support it from 7.9.0.Final onwards.
The Java Platform Enterprise Edition 8 or Java EE 8 was released last year, along with Java 9 in September 2017. If you are a Java developer or someone who wants to learn Java EE for web development and looking for some courses to kickstart your learning, then you have come to the right place. In this article, I am going to share five awesome Java EE courses that cover both Java EE 7 and Java EE 8. If you are wondering what Java EE is and what Java EE 8 brings into the table, let me give you a brief overview of Java EE.
The Java EE is actually a collection of Java technologies and APIs designed to support "Enterprise" Applications, which can generally be classified as large-scale, distributed, transactional and highly-available applications designed to support mission-critical business requirements.