Pull to refresh

All streams

Show first
Rating limit
Level of difficulty

HDB++ TANGO Archiving System

Reading time 3 min
Views 1K
main

What is HDB++?


This is a TANGO archiving system, allows you to save data received from devices in the TANGO system.


Working with Linux will be described here (TangoBox 9.3 on base Ubuntu 18.04), this is a ready-made system where everything is configured.


What is the article about?


  • System architecture.
  • How to set up archiving.

It took me ~ 2 weeks to understand the architecture and write my own scripts for python for this case.


What is it for?


Allows you to store the history of the readings of your equipment.


  • You don't need to think about how to store data in the database.
  • You just need to specify which attributes to archive from which equipment.
Read more →
Rating 0
Comments 0

Run MongoDB Atlas locally for testing

Reading time 5 min
Views 1.8K

What happens to your MongoDB replica set when it comes to failures like network partitioning, restarting, reconfiguration of the existing topology, etc.? This question is especially important these days because of the popularity gained by the multi-cloud model where chances of these scenarios are quite realistic.


However, is there a solution, preferably a free one, for testing such cases that would obviate the need of writing manual scripts and poring over the official documentation? As software developers, we would be better off preparing our applications in advance to survive these failures.

Read more →
Rating 0
Comments 0

Free Heroes of Might and Magic II: Open-Source Project that You Want to Be Part of

Reading time 8 min
Views 3.8K

Recently we found out that the new version of the fheroes2 project was released. In our company there are many fans of Heroes of Might and Magic game series. So, we couldn't pass it up and checked the project by PVS-Studio.

Читать далее
Total votes 6: ↑6 and ↓0 +6
Comments 0

Algorithms in Go: Matrix Spiral

Reading time 5 min
Views 2.4K

Most solutions to algorithmic problems can be grouped into a rather small number of patterns. When we start to solve some problem, we need to think about how we would classify them. For example, can we apply fast and slowalgorithmic pattern or do we need to use cyclic sortpattern? Some of the problems have several solutions with different patterns. In this article of series Algorithms in Go we consider an algorithmic pattern that solves an entire class of the problems related to a matrix. Let's take one of such problems and see how we can handle it.

How can we traverse a matrix in a spiral order?

Read more
Total votes 3: ↑3 and ↓0 +3
Comments 0

Top 7 Technology Trends to Look out for in 2021

Reading time 4 min
Views 3.4K

Technology is as adaptable and compatible as mankind; it finds its way through problems and situations. 2020 was one such package of uncertain events that forced businesses to adapt to digital transformation, even to an extent where many companies started to consider the remote work culture to be a beneficiary long-term model. Technological advancements like Hyper automation, AI Security, and Distributed cloud showed how any people-centric idea could rule the digital era. The past year clearly showed the boundless possibilities through which technology can survive or reinvent itself. With all those learnings let's deep-dive and focus on some of the top technology trends to watch out for in 2021.

Read more
Rating 0
Comments 2

OOX 2.0: Out of order execution made easy

Reading time 13 min
Views 2K

As Intel Threading Building Blocks (TBB) is being refreshed using new C++ standard, deprecating tbb::task interface, the need for high-level tasking interface becomes more obvious. In this article, I’m proposing yet another way of defining what a high-level parallel task programming model can look like in modern C++. I created it in 2014 and it was my last contribution to TBB project as its core developer after 9 wonderful years of working there. However, this proposal has not been used in production yet, so a new discussion might help it to be adopted.

Read more
Total votes 10: ↑10 and ↓0 +10
Comments 0

Why PVS-Studio Uses Data Flow Analysis: Based on Gripping Error in Open Asset Import Library

Reading time 5 min
Views 653

Why PVS-Studio Uses Data Flow Analysis
An essential part of any modern static code analyzer is data flow analysis. However, from an outside perspective, the use of data flow analysis and its benefit is unclear. Some people still consider static analysis a tool searching for something in code according to a certain pattern. Thus, we occasionally write blog posts to show how this or that technology, used in the PVS-Studio analyzer, helps to identify another interesting error. Today, we have such an article about the bug found in the Base64, one of the encoding standard implementations of binary data.

Read more →
Total votes 2: ↑2 and ↓0 +2
Comments 0

Date Processing Attracts Bugs or 77 Defects in Qt 6

Reading time 24 min
Views 1.6K

PVS-Studio & Qt 6


The recent Qt 6 release compelled us to recheck the framework with PVS-Studio. In this article, we reviewed various interesting errors we found, for example, those related to processing dates. The errors we discovered prove that developers can greatly benefit from regularly checking their projects with tools like PVS-Studio.

Read more →
Total votes 1: ↑1 and ↓0 +1
Comments 0

Enrolling and using Token2 USB Security keys with UserLock MFA

Reading time 4 min
Views 1K

UserLock provides two-factor authentication & access management for Windows Active Directory. By adding two-factor authentication, contextual restrictions and real-time insight around logons, UserLock helps administrators to secure, monitor and respond to all users' access, UserLock reduces the risk of external attacks and internal security breaches while helping to address regulatory compliance.

Read more
Total votes 1: ↑1 and ↓0 +1
Comments 0

Koyaanisqatsi: The WYSIWYG-style byte-code CPU

Reading time 5 min
Views 1.4K
Draft diagram of core

SVG-File (actual draft)

Lyrics


Ancient times are known to everyone not with immortal works from Homer's only, but also with the Pythagorean multiplication table, Euclidean geometry and the Archimedes screw and the Pi, which we learned to use only relatively recently. In antiquity the art was not only to be able to write poetry and prose, but to design catapults or battering tools also, now there are rigid frameworks, when the discovering the new another beautiful formula is a formal words play only.
Mathematics rules the modern world completely, cynically intertwining with the world of art, intruding with calculations in all spheres of our recreation and everyday life, when the colors of masterpieces turning into poisonous colours.
Read more →
Total votes 2: ↑2 and ↓0 +2
Comments 0

Just for Fun: PVS-Studio Team Came Up With Monitoring Quality of Some Open Source Projects

Reading time 5 min
Views 1.1K

Static code analysis is a crucial component of all modern projects. Its proper application is even more important. We decided to set up a regular check of some open source projects to see the effect of the analyzer's frequent running. We use the PVS-Studio analyzer to check projects. As for viewing the outcome, the choice fell on SonarQube. As a result, our subscribers will learn about new interesting bugs in the newly written code. We hope you'll have fun.

Читать далее
Rating 0
Comments 1

How to Get Nice Error Reports Using SARIF in GitHub

Reading time 7 min
Views 1.5K

Let's say you use GitHub, write code, and do other fun stuff. You also use a static analyzer to enhance your work quality and optimize the timing. Once you come up with an idea - why not view the errors that the analyzer gave right in GitHub? Yeah, and also it would be great if it looked nice. So, what should you do? The answer is very simple. SARIF is right for you. This article will cover what SARIF is and how to set it up. Enjoy the reading!

Читать далее
Total votes 3: ↑3 and ↓0 +3
Comments 0

Top 7 Best Secure Video Streaming Platforms of 2022

Reading time 8 min
Views 4.4K

In this modern era of technological advancements, it is important to connect with people who matter the most to your business i.e. customers. Are you searching for a secure online video platform for your business?

Do you know what is secure streaming!

Well, various online video platforms can help you in providing seamless videos to your customers. But what we need is a secure online video platform that can also protect our digital content from various e-hazards. Read on to know more about some of the most secure online video platforms in the market.

Read more
Rating 0
Comments 0

Algorithms in Go: Dutch National Flag

Reading time 3 min
Views 2.7K

The flag of the Netherlands consists of three colors: red, white and blue. Given balls of these three colors arranged randomly in a line (it does not matter how many balls there are), the task is to arrange them such that all balls of the same color are together and their collective color groups are in the correct order.

For simplicity instead of colors red, white, and blue we will be dealing with ones, twos and zeroes.

Let's start with our intuition. We have an array of zeroth, ones, and twos. How would we sort it? Well, we could put aside all zeroes into some bucket, all ones into another bucket, and all twos into the third. Then we can fetch all items from the first bucket, then from the second, and from the last bucket, and restore all the items. This approach is perfectly fine and has a great performance. We touch all the elements when we iterate through the array, and then we iterate through all the elements once more when we "reassamble" the array. So, the overall time complexity is O(n) + O(n) ~= O(n). The space complexity is also O(n) as we need to store all items in the buckets.

Can we do better than that? There is no way to improve our time complexity. However, we can think of a more efficient algorithm in regard to space complexity. How would we solve the problem without the additional buckets?

Let's make a leap of faith and pretend that somehow we were able to process a part of the array. We iterate through part of the array and put encountered zeroes and ones at the beginning of the array, and twos at the end of the array. Now, we switched to the next index i with some unprocessed value x. What should we do there?

Read more
Total votes 8: ↑8 and ↓0 +8
Comments 4