Pull to refresh

All streams

Show first
Rating limit
Level of difficulty

CMake: the Case when the Project's Quality is Unforgivable

Reading time 11 min
Views 2K

Picture 1

CMake is a cross-platform system for automating project builds. This system is much older than the PVS-Studio static code analyzer, but no one has tried to apply the analyzer on its code and review the errors. As it turned out, there are a lot of them. The CMake audience is huge. New projects start on it and old ones are ported. I shudder to think of how many developers could have had any given error.
Read more →
Total votes 25: ↑23 and ↓2 +21
Comments 0

PVS-Studio Visits Apache Hive

Reading time 12 min
Views 1.2K
Рисунок 1

For the past ten years, the open-source movement has been one of the key drivers of the IT industry's development, and its crucial component. The role of open-source projects is becoming more and more prominent not only in terms of quantity but also in terms of quality, which changes the very concept of how they are positioned on the IT market in general. Our courageous PVS-Studio team is not sitting idly and is taking an active part in strengthening the presence of open-source software by finding hidden bugs in the enormous depths of codebases and offering free license options to the authors of such projects. This article is just another piece of that activity! Today we are going to talk about Apache Hive. I've got the report — and there are things worth looking at.
Read more →
Total votes 23: ↑20 and ↓3 +17
Comments 0

Qrator filtering network configuration delivery system

Reading time 6 min
Views 1.3K


TL;DR: Client-server architecture of our internal configuration management tool, QControl.
At its basement, there’s a two-layered transport protocol working with gzip-compressed messages without decompression between endpoints. Distributed routers and endpoints receive the configuration updates, and the protocol itself makes it possible to install intermediary localized relays. It is based on a differential backup (“recent-stable,” explained further) design and employs JMESpath query language and Jinja templating for configuration rendering.

Qrator Labs operates on and maintains a globally distributed mitigation network. Our network is anycast, based on announcing our subnets via BGP. Being a BGP anycast network physically located in several regions across the Earth makes it possible for us to process and filter illegitimate traffic closer to the Internet backbone — Tier-1 operators.

On the other hand, being a geographically distributed network bears its difficulties. Communication between the network points-of-presence (PoP) is essential for a security provider to have a coherent configuration for all network nodes and update it in a timely and cohesive manner. So to provide the best possible service for customers, we had to find a way to synchronize the configuration data between different continents reliably.
In the beginning, there was the Word… which quickly became communication protocol in need of an upgrade.
Read more →
Total votes 24: ↑23 and ↓1 +22
Comments 0

Checking the .NET Core Libraries Source Code by the PVS-Studio Static Analyzer

Reading time 59 min
Views 1.7K

Picture 19

.NET Core libraries is one of the most popular C# projects on GitHub. It's hardly a surprise, since it's widely known and used. Owing to this, an attempt to reveal the dark corners of the source code is becoming more captivating. So this is what we'll try to do with the help of the PVS-Studio static analyzer. What do you think – will we eventually find something interesting?
Read more →
Total votes 28: ↑25 and ↓3 +22
Comments 1

Machine Learning and Theory of Constraints

Reading time 3 min
Views 1.8K
Backlog prioritization requires simplification and weighting of tasks. Each one belongs to strategy like ads acquisition or CRO. We may consider turnover, operational costs, other metrics as input; profit margin, ROI — as output in case of retail. The perfect goal is to find 20/80 solution and focus resources on a single strategy at a time. Metrics tied to strategies gives the dimension of model. Sometimes unit economy relations are violated because of non-linearity. In practice it means low/insignificant correlation and poor regression. Example: it is impossible to separate acquisition and conversion — the quantity of acquisition affect its quality and vice versa. Decomposition of tasks/strategies assumes linear decomposition of nonlinear system. Besides nonlinear statistical evaluation of strategies is required when CJM can't be tracked or online/offline channels can't be separated.
Read more →
Total votes 13: ↑12 and ↓1 +11
Comments 2

Uber & Careem merger: How the emerging taxi hailing services will affect in MENA region?

Reading time 4 min
Views 2K
image

Managing your competition is an important skill that you need to have as a company. The management of competition can either be done by letting go of a market because it is too much to handle. You can also consider either selling yourself to a competition in a particular local market or acquiring them. Different companies adopted varied strategies according to the moment’s and the market’s demands.

Focus on Uber

Uber needs no introduction as a corporate or as a service provider. It has become synonymous with on-demand cab services and is slowly progressing towards providing many other services in the same fashion.

The phrase ‘Let's book an Uber’ has become common. In a decade, Uber has gained the status of a monopoly and has marked a prominent presence in more than 70 countries ever since its inception in 2009. However, it hasn't always been a bed of roses for Uber.

Uber has faced a lot of legal issues, some of them because of the legislature of the country, local drivers and passengers.
Read more →
Total votes 16: ↑15 and ↓1 +14
Comments 0

Using PVS-Studio Static Analyzer in C and C++ Development for Embedded Systems

Reading time 4 min
Views 1.2K

This article will tell you how to launch analysis of an embedded project and how to work with the analyzer's report. The PVS-Studio analyzer supports a number of compilers for embedded systems. The current version allows checking projects built with one of the following compilers under Window, Linux, and macOS:

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

The story of how PVS-Studio found an error in the library used in… PVS-Studio

Reading time 3 min
Views 1.2K

Picture 1

This is a short story about how PVS-Studio helped us find an error in the source code of the library used in PVS-Studio. And it was not a theoretical error but an actual one — the error appeared in practice when using the library in the analyzer.
Read more →
Total votes 27: ↑24 and ↓3 +21
Comments 0

Tips and tricks from my Telegram-channel @pythonetc, July 2019

Reading time 4 min
Views 1.3K

It is a new selection of tips and tricks about Python and programming from my Telegram-channel @pythonetc.

Previous publications


You can’t mutate closure variables by simply assigning them. Python treats assignment as a definition inside a function body and doesn’t make closure at all.
Read more →
Total votes 22: ↑21 and ↓1 +20
Comments 0

WinForms: Errors, Holmes

Reading time 17 min
Views 1K

Picture 5

We like to search for errors in Microsoft projects. Why? It's simple: their projects are usually easy to check (you can work in Visual Studio environment for which PVS-Studio has a convenient plugin) and they contain few errors. That's why the usual work algorithm is as follows: find and download an open source project from MS; check it; choose interesting errors; make sure there are few of them; write an article without forgetting to praise the developers. Great! Win-win-win: it took a little time, the bosses are glad to see new materials in the blog, and karma is fine. But this time «something went wrong». Let's see what we have found in the source code of Windows Forms and whether we should speak highly of Microsoft this time.
Read more →
Total votes 28: ↑26 and ↓2 +24
Comments 0

15 Must-Have Tools for Product Managers in 2019

Reading time 6 min
Views 3.7K
The main objective of any product manager is to ensure the process of product management runs smoothly and flawlessly: from the concept to release. However, it's all about the ideal world.

In order to present a brilliant product to the world, it is important to learn how to use convenient and multifunctional online tools that facilitate management and open up new opportunities for managers, expanding their professional horizons. In this article, you will find 15 smart tools that contribute to the professional success of product managers in 2019.

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

Getting Started with the PVS-Studio Static Analyzer for C++ Development under Linux

Reading time 4 min
Views 2K
PVS-Studio supports analyzing projects developed in C, C++, C#, and Java. You can use the analyzer under Windows, Linux, and macOS. This small article will tell you the basics of analyzing C and C++ code in Linux environment.

Installation


There are different ways to install PVS-Studio under Linux, depending on your distro type. The most convenient and preferred method is to use the repository, since it allows auto-updating the analyzer upon releasing new versions. Another option is to use the installation package, which you can get here.
Read more →
Total votes 27: ↑24 and ↓3 +21
Comments 0

Hell or high water: history of Russian popular science literature

Reading time 9 min
Views 2.9K
And our homeland's pushing us For reaching knowledge higher heights.

The available and interesting literature on science is a magic wand that helps the progress not to slow down and move forward. Thanks to interesting science literature, children begin to study voluntarily and with interest, while adults expand their horizons and do not allow the brain to relax. Biology, astronomy and mathematics supplant the saga about the elves and intergalactic ships. But while Western countries' nonfiction was always in smooth progress from Jules Verne to Eliezer S. Yudkowsky, then opposite it experienced both ups and downs in Russia.
Read more →
Total votes 22: ↑21 and ↓1 +20
Comments 6

Saving Routing State to the Disk in a Cross-Platform .NET Core GUI App with ReactiveUI and Avalonia

Reading time 17 min
Views 6.9K

image


User interfaces of modern enterprise applications are quite complex. You, as a developer, often need to implement in-app navigation, validate user input, show or hide screens based on user preferences. For better UX, your app should be capable of saving state to the disk when the app is suspending and of restoring state when the app is resuming.


ReactiveUI provides facilities allowing you to persist application state by serializing the view model tree when the app is shutting down or suspending. Suspension events vary per platform. ReactiveUI uses the Exit event for WPF, ActivityPaused for Xamarin.Android, DidEnterBackground for Xamarin.iOS, OnLaunched for UWP.


In this tutorial we are going to build a sample application which demonstrates the use of the ReactiveUI Suspension feature with Avalonia — a cross-platform .NET Core XAML-based GUI framework. You are expected to be familiar with the MVVM pattern and with reactive extensions before reading this note. Steps described in the tutorial should work if you are using Windows 10 or Ubuntu 18 and have .NET Core SDK installed. Let's get started! Source code of the app described in this tutorial is available on GitHub.

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

Get to Know the PVS-Studio Static Analyzer for Java

Reading time 4 min
Views 1.2K
Over the years, the PVS-Studio team has been developing the same-name static analyzer. At this point the analyzer represents a complex software solution, which provides the analysis of such programming languages, as C, C++, C# and Java on Windows, Linux and macOS platforms. Just recently the Java language joined the ranks of supported languages. The PVS-Studio analyzer has proved itself as a reliable tool among C++ and C# developers in quite some time, whereas for Java audience PVS-Studio is still a newcomer. Many haven't even heard of the analyzer, and those who had, aren't quite familiar with all its abilities. So in this article, I'd like to introduce PVS-Studio Java to you, talk about the ways to start it and its abilities.

Рисунок 3

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

Contextual Emotion Detection in Textual Conversations Using Neural Networks

Reading time 10 min
Views 3.7K

Nowadays, talking to conversational agents is becoming a daily routine, and it is crucial for dialogue systems to generate responses as human-like as possible. As one of the main aspects, primary attention should be given to providing emotionally aware responses to users. In this article, we are going to describe the recurrent neural network architecture for emotion detection in textual conversations, that participated in SemEval-2019 Task 3 “EmoContext”, that is, an annual workshop on semantic evaluation. The task objective is to classify emotion (i.e. happy, sad, angry, and others) in a 3-turn conversational data set.
Read more →
Total votes 37: ↑37 and ↓0 +37
Comments 0

Python Vs R — Data Science

Reading time 3 min
Views 3.7K
When mulling over the best programming language to use for data science, Python and R ring a bell (very quickly). While there are a lot of languages like C, C++, Java, Julia, Perl, and Scala, it's protected to state that Python and R are the harbingers in data science.

While a great deal of data researchers will discuss the customary shortcomings like data wrangling in R or data representation in Python, ongoing improvements like Altair for Python or R have adequately reacted to these shortcomings.

So which one would it be a good idea for you to decide for your next data investigation venture?

R has been ruling this space for a long time now. This bodes well as this programming language was explicitly intended for analysts.
Read more →
Total votes 11: ↑11 and ↓0 +11
Comments 0

PVS-Studio Looked into the Red Dead Redemption's Bullet Engine

Reading time 10 min
Views 4.5K
Picture 4

Nowadays there is no need to implement the physics of objects from scratch for game development because there are a lot of libraries for this purpose. Bullet was actively used in many AAA games, virtual reality projects, various simulations and machine learning. And it is still used, being, for example, one of the Red Dead Redemption and Red Dead Redemption 2 engines. So why not check the Bullet with PVS-Studio to see what errors static analysis can detect in such a large-scale physics simulation project.
Read more →
Total votes 34: ↑31 and ↓3 +28
Comments 0