Technicals | Custom Web Development Blog | ISSArt

Category - Technicals

Teсhnicals has been created in order to enable IT professionals to share their experiences and discuss it with others. Feel free to leave your comments and ideas in the comment box.

How to use Criteria API with Spring Boot

Brief summary

You often need to create queries with changeable conditions, for example, a query for a list with filtering by the columns on the side of the database. In this case, a good solution will be to use Criteria API – the API of JPA 2.0 specification. You can use JPQL queries, but this will lead to rather complicated code and the impossibility of checking the queries during the time of compilation. Criteria API also allows writing queries with validation while compiling and IDE tips.
Read More

Building Waypoints Using Augmented Reality

Introduction

A lot of time has passed since Augmented Reality (AR) and Virtual Reality (VR) were introduced to people, and it was a very promising announcement. The new technologies were supposed to change and improve multiple spheres of our life. Now we have a bunch of applications using AR technology. Those applications vary from games (like Warhammer 40,000 free blade, The Machines) to some examples that really help us in our everyday life (AR MeasureKit, Sky Guide AR, IKEA Place). All those applications use only the phone itself, but the most useful outcome of the technology is when it is combined with another. Augmented reality can be combined with GPS locations to provide visual directions in different situations. Today we have a lot of navigators which guide users from point A to point B. The thing is that the user can’t see this path in the real world. Only on the map. And here augmented reality comes to help us. Let’s build an augmented reality app which will guide us along the path displayed on the map. To perform augmented reality development, I will use the Swift language, but those examples can be easily converted to Objective-C code.
Read More

Meet Smart Contracts in Practice

If you know what a smart contract is, but you don’t know how to start working with it – you’re in the right place. We will start with creating a contract in a sandbox, then move to the Ethereum test network, next we will create our own node and connect to it from Java code. If you aren’t familiar with the Ethereum or smart contracts, you can read this article first.
Read More

How to Make ETL Simple and Intuitive with NiFi

Is it possible to implement ETL with an opportunity to make changes during execution and a completely visual processing process without writing code at all?

Yes, it is. With NiFi.

Implementation of ETL is one of the most common tasks now. Creating an aggregator site or simply integrating several enterprise applications leads to the need to solve the ETL task. You can solve this problem with the help of well-known frameworks, such as Apache Camel for example. But let’s try doing it with NiFi.
Read More

async/await syntax encourages frontend developers to develop incorrect code

await operator is an incredible new feature in ECMAScript 2017. There are many articles demonstrating how much you can benefit from it. I agree: asynchronous code was never so brief and clear as when it is written via async/await syntax.

Nevertheless, there is a significant pitfall you should be aware of while developing asynchronous front end code. Backend developers are safe: they can easily copy code from any of the articles above to their NodeJS application, and it will work just fine. Really! However, if you are going to run this code in a browser environment as is, it would be a serious mistake! None of the examples is correctly adjusted for the front end. This is a disaster: in the top 10 Google references on “async await”, I failed to find any examples correctly adjusted for the front end. Junior/middle JS developers and newcomers use these examples as the basis for their work and develop incorrect code that results in unexpected bugs and performance loss all over the place.

Read More

Flexible Data Model Design

Introduction

Data often changes. When it comes to integration, the data can change unpredictably. Of course, large vendors notify the community about the breaking changes in advance or give us some period for migration. However, if you implement your own component of a (distributed) system then you likely face a situation when, for example, Tom changed something, while you were working on your cool feature of a Java-application and now you have to fix some unexpected failures on your side. Or a customer asked you to include some small (or big) changes in the initial specifications and next day Tom found out that his part did not seem to be working.

Read More

Database: How To Make a Bad Thing Work Well

Our team uses software development and database best practice and it turned out that developers got used to some of it and stopped looking at it with a critical eye.

There is a widely known opinion that implementing a business logic on the DB side is a bad idea. In most cases it is true, and can be explained in many ways.

Read More

Multipartial Upload or How to Bring Amazon S3 and Legacy Code Together

A large part of software development projects today are either being developed for quite a long time, or received as a legacy from another team. Such code has been in most cases written by people no longer working in the team. Another pitfall can be the requirement to create an unchangeable and backward compatible API product. Under such conditions, the team have to provide the product support and even introduce new features. I encountered a similar problem connected with legacy code on one of ISSArt’s projects.

Read More

Search functionality design practices. Part 2

Implementation of the search functionality is a challenge for a software developer. Search-related requirements influence significantly on the final architecture of the system. In the first part we studied different filters and some practices of their implementation. In this part I will tell about the full text search.

Read More

Search functionality design practices. Part 1

The humanity had started searching long before the beginning of modern computer century. Thanks to the common sense people invented indices. Libraries, dictionaries, maps made the life easier for the next generations of knowledge hunters. And now you as a software developer face the necessity to implement your own search functionality. Usually you can meet search-related requirements at the end of the customer’s list. But, in my opinion, they influence significantly on the final architecture of the system. Furthermore, the search index is the foundation of searching, its design errors can lead to the wrong choice of storage or database that can break your system in general.

Read More