• Static Analysis: baseline VS diff

    • Translation
    If you use static analyzers, you will have, sooner or later, to address the task of making their integration into existing projects easier, where fixing all warnings on legacy code is unfeasible.

    The purpose of this article is not to help with integration but rather to elaborate on the technicalities of the process: the exact implementations of warning suppression mechanisms and pros and cons of each approach.


    Read more →
  • Spring transaction management. Isolation and propagation


      In my opinion transaction management is a really important topic for each backend developer. In general, people don’t pay attention to it while using Spring framework.

      But I think, it is important to know how to use transactions properly. Because sometimes can happen that there was an exception thrown inside your method, but transaction was not rolled back and it is not clear why? Or some other “strange” cases.

      Read more →
    • Lossless ElasticSearch data migration

      • Translation

      Academic data warehouse design recommends keeping everything in a normalized form, with links between. Then the roll forward of changes in relational math will provide a reliable repository with transaction support. Atomicity, Consistency, Isolation, Durability — that's all. In other words, the storage is explicitly built to safely update the data. But it is not optimal for searching, especially with a broad gesture on the tables and fields. We need indices, a lot of indices! Volumes expand, recording slows down. SQL LIKE can not be indexed, and JOIN GROUP BY sends us to meditate in the query planner.

      Read more →
    • Boot Ubuntu via http/ftp server with pxe(diskless boot)

      • Tutorial


      PXE is a great solution for booting a diskless computer (or a computer without an OS installed). This method is often used for terminal stations and OS mass installation.

      Stock ubuntu (16.04) in pxe-mode can mount rootfs only from NFS. But this is not a great idea: any difficulties with the network/NFS server and the user gets problems.

      In my opinion, it's best to use other protocols, such as http/ftp. Once booting, you will have an independent system

      Read more →
    • EVVIS-QR1 USB Programmable TOTP hardware token

        imageToday, we are presenting a new type of TOTP hardware tokens — USB Programmable token that displays the OTP value as a QR code and also can send the current OTP value over USB as a part of its HID emulation feature.

        What is EVVIS-QR1?

        EVVIS-QR1 is a hardware device developed primarily for Electronic visit verification (EVV) information systems (hence the name). It is a standards-based TOTP hardware token that can also be programmed over USB. The OTP generated is shown on the display both as regular digits as well as a QR image. Both features (OTP shown as QR code and HID keyboard emulation) are intended to make it possible to minimize typos when entering the OTP.
        Read more →
      • Here are the most popular Video Conference APIs to be considered for your mobile app

          As the world rearranges into virtualized societal norms, the most convenient and simplified interaction for businesses or socially has come from video-based apps. Extensive use of these conferencing apps is trending Post COVID-19 pandemic. Statista.com has tracked the high number of video conference app downloads from AppStore and GoogleStore for the following:
          Video conferencing App / Country Hangouts Meet Houseparty Ms Teams Zoom
          USA 30 8 11 4
          France 23 30 16 2
          Germany 15 26 11 17
          Spain 64 2360 15 27
          Italy 140 423 30 55

          The convenience of these apps is defined by their rich-features: video calling, ability to share screens, and interact in real-time.
          Read more →
        • Ads
          AdBlock has stolen the banner, but banners are not teeth — they will be back

        • The Testcontainers’ MongoDB Module and Spring Data MongoDB Reactive in Action

          1. Introduction

          How can I easily test my MongoDB multi-document transaction code without setting up MongoDB on my device? One might argue that they have to set it up first because in order to carry out such a transaction it needs a session which requires a replica set. Thankfully, there is no need to create a 3-node replica set and we can run these transactions only against a single database instance.

          Read more →
        • C2x: the future C standard


            I strain to make the far-off echo yield
            A cue to the events that may come in my day.
            (‘Doctor Zhivago’, Boris Pasternak)

            I’ll be honest: I don’t write in pure C that often anymore and I haven’t been following the language’s development for a long time. However, two unexpected things happened recently: С won back the title of the most popular programming language according to TIOBE, and the first truly interesting book in years on this language was published. So, I decided to spend a few evenings studying material on C2x, the future version of C.

            Here I will share with you what I consider to be its most interesting new features.

            Read more →
          • Modern COBOL: Microservice Tutorial

            • Tutorial

            You will learn and implement a microservice in COBOL without Mainframe. You will structure the project, manage dependencies, implement automatic tests and build virtualized execution environment. Finally, you will publish the microservice on GitHub under Continuous Integration workflow.

            Read more →
          • PVS-Studio: analyzing pull requests in Azure DevOps using self-hosted agents

              Static code analysis is most effective when changing a project, as errors are always more difficult to fix in the future than at an early stage. We continue expanding the options for using PVS-Studio in continuous development systems. This time, we'll show you how to configure pull request analysis using self-hosted agents in Microsoft Azure DevOps, using the example of the Minetest game.
              Read more →
            • Top 10 Kotlin App Development Companies 2020-21


                Kotlin is a JVM compatible & Java interoperable language that is the most-encouraged language by Google for developing Android apps & production-grade systems. According to Snyk, over the last few years, Kotlin has gained a huge user and developer base for robust, and secure app development.

                The user-base has been shifted from 2.4% to 5.4%, that is a growth of 130% in the user population. This population growth and increment in its usage has made it the second most popular JVM language, that is quite surprising.

                The reason for Kotlin application development is its 100% interoperability with Java. Around 7.78% of the world developers use Kotlin as their primary coding language. According to insights.dice- Kotlin is used 96% for new projects and 36% for migrating applications from Java to Kotlin. You can use it directly with Java code to make it more efficient, and it works concurrently or without any issue.


                Many benchmark android applications of startups to moonshots have been built using Kotlin. Various startups and brands like EverNote, Twitter, Netflix, Slack, American Express, Airbnb, Adobe, and many others from different industry verticals opted for Kotlin app development.
                Read more →
              • IntelliJ IDEA: Structural Search and Replace

                • Translation
                • Tutorial

                Modern IDEs are very powerful tools that can help developers in all kinds of situations. Unfortunately, much of this power is often lost because many functions remain unknown to developers, hiding in the shadows.

                Simple example of the one of the such functions

                Did you know that when you press F2 in IntelliJ IDEA, the cursor will jump to the nearest error in the file? And in the absence of an error – to the nearest warning? It seems that this is a secret only a few people know about.

                Structural search and replace is one such pair of features. They can be extremely useful in situations where a whole variety of other functions can’t quite get the job done.

                In this post, I will present some of these situations and go beyond artificial cases by demonstrating examples of real code from two projects:

                1. 3D-engine for game development, jMonkeyEngine, which is an example of a big, interesting project.
                2. My own pet project, plantuml-native-image, where I experiment with compiling PlantUML into native executable code using GraalVM Native Image.

                In fact, it is this second project that encouraged me to write this post but I’m getting ahead of myself. First things first...

                Read more →
              • Small things that pollute your code

                  I'm not going to discuss global things like design patterns and so on, as there's enough literature on that topic. Instead, I'd like to attract your attention to some small things that still affect lucidity and maintainability of a code.

                  Polluting code with 'test-only' methods or access modifiers

                  First of all, if you give access to something that shouldn't be used in production code, it gets used sooner or later. Just because it exist. The argument that it's an internal stuff doesn't work as it absolutely shouldn't be matter, writing you a library or isolated project! Treat people who will add anything to your internal codebase the same way as if they use your existing code as a different library.

                  Thus, if for some reason in test, you need to call something that should not be called on prod — use reflection or whatever else but do not expose it in production code! And there's no reason to afraid of reflection for test proposes, at the end, you using Mockito, shouldn't it be bad in that case as well?
                  Read more →
                • Hire PHP Developers: Cost & Procedure


                    PHP has surely become the most ubiquitous language for the world today. Being around for a while, PHP is ruling the market, with expectations to dominate for years to come. Therefore, irrespective of the size of a business, PHP remains the first choice to get a sturdy and customizable website created.

                    However, It is important to understand that PHP is an art (Scripting language), you need to hire an artist (developer) to yield the best from it.

                    Choosing the best from the pool of more than 5 million PHP developers is a tedious task. Even more when you’re a noob into this industry. Apart from language skills, there are multiple other factors, such as budget, skills, experience that influence the decision to hire a particular remote PHP team.
                    Read more →
                  • PVS-Studio and Continuous Integration: TeamCity. Analysis of the Open RollerCoaster Tycoon 2 project

                      One of the most relevant scenarios for using the PVS-Studio analyzer is its integration into CI systems. Even though a project analysis by PVS-Studio can already be embedded with just a few commands into almost any continuous integration system, we continue to make this process even more convenient. PVS-Studio now supports converting the analyzer output to the TeamCity format-TeamCity Inspections Type. Let's see how it works.
                      Read more →
                    • Retinal detachment — what is important to know about it

                      • Translation
                      Retinal detachment is a formidable eye disease that, without surgical treatment, most often results in complete loss of vision.

                      The human eye can be compared with the device of the camera, the lens of which is the cornea with the lens, and the film is the retina, an extremely complex multi-layer structure that is connected to the visual divisions of the brain with the help of nerve fibers. Therefore, we can assume that the retina is a part of the brain.

                      Retinal detachment most often takes the patient by surprise — before it appears, a person may have excellent vision and may not present any complaints. The speed of propagation of the process is quite rapid, the treatment in the majority of cases is surgical.

                      The timeliness of the operation gives a chance to preserve vision; in Germany, according to the standard, the operation must be performed within 24 hours after the diagnosis. There are no such standards in Russia. But for each patient, I say that retinal detachment is “like fresh frozen fish” — in a couple of days it’s already “not the first freshness”.
                      Read more →
                    • Bionic eye — myths and reality

                      • Translation
                      Can you imagine what a person feels who does not see or almost does not see the world around? This condition is called blindness — the inability to perceive visual stimuli due to pathological disorders in the eye itself, in the optic nerves or in the brain. In 1972, the World Health Organization (WHO) adopted the following definition: a person is considered blind if the sharpness of central vision under conditions of maximum correction does not exceed 3/60. With this vision, a person in daylight conditions with maximum optics correction is unable to count fingers from a distance of 3 meters.

                      So for such cases, the idea of ​​electrical stimulation of the retina or visual cortex was proposed, the creation of a prosthesis that, by the mechanism of action, simulates the actual processes of transmission of electrical signals.

                      There are several variants of electronic implants, each year new ideas appear, but the term and the Bionic Eye itself were developed by Daniel Palanker, a staff member at Stanford University and his research group Biomedical Physics and Ophthalmic Technologies.

                      The implantation of the Argus II bionic eye model (by the way, the only model that has an EU brand, but not certified in Russia) was performed in Russia in July 2017 for one patient. And from all sources of television broadcasting we heard — now a person will be able to see the world as before. Hundreds of people are asked to put a bionic eye, and some also ask to “implant” the chips for super-vision.

                      So what do we have today and can the dream to see the world come true after it has lost sight?
                      Read more →