Are the primes scattered over the numerical axis like wind-dispersed seeds? Of course not: simplicity is not a matter of chance, but the result of elementary arithmetic. A number is simple if and only if no smaller positive integer except one does not divide it whole.
Here on Habré there was a correspondence about uneducated youth and the student and teacher spoke. Well, obviously there is something missing - namely, the opinion of the extreme in this process - the employer. This post we wrote in just two hours, because it boiled over the previous years. And this will not be a sterilized and verified article, but a cry of the soul.
The road to good work is always difficult and requires effort
Due to the fact that a relatively large (and very loud) part of IT lives in the next bubble of dotcoms (now startups), some representatives of this tribe, and especially all Evangelists and even HR, have the illusion of the following property.
A pier, any device, a framework or a way of operation sharply raises success of the enterprise. For example, "we all use the MacBook, and we already have a third round of investment." Or "we decided to open a travel agency, and hire only those programmers who do not get out of travel; we want all employees to share our values, and we already have a turnover of $ 100 million. " Or "as soon as we implemented React + Vue + Angular, our business went uphill, and we bought Google." And so on.
At first glance it seems absurd? - Yes, but we admit: Hype and hubbub are indisputable accompanying elements of the modern IT-world. Any phenomenon that is on the edge of public attention, and IT, of course, from such, can not absorb the characteristic features of the society of its time. In particular, the tendency to prevalence of form over content.
According to our rough estimate, based on 20 years of practice, earthwork can "lose" up to 50-60% of the budget. On reinforced concrete and finishing is exactly 30%. On the errors of re-registration in collisions, the cost of engineering increases by approximately 10%. It is for this simple reason, when the "evil customer" implements the BIM-model of the building, wild cries and groans begin on all sides.
BIM-control will now be on all state orders on a new standard, so the cries and groans will be especially epic.
Here I see the trace of all systems, I can get an accurate estimate for each node: and when I move or add an object I will receive updates in all project and working documents at once.
What is a BIM model? This is a three-dimensional model of a building where all systems are docked and tied together in one single plan. We put an outlet in the room - in the general estimate there was a new outlet and the corresponding cable meter. The error of this model is 2%. On paper, usually take a stock of 15%, and the surplus of this stock is desperately "lost."
Let's show you better examples than I will tell.
Image: TED Conference , CC BY-NC 2.0
In April 2017 published an article Will Gornalla from the University of British Columbia and Ilya Strebulaeva Stanford called "We bring venture business assessments to reality." In it, scientists analyzed the estimates of more than hundreds of world-famous companies (including technological ones) with an estimate of one billion dollars or more (the so-called "unicorns").
It turned out that these estimates do not always correspond to reality and can be repeatedly overstated. We publish the main findings of this study.
The story of how NASA, ESA, the Danish Technological University, neural networks, decision trees and other good people helped me find the best free hectare in the Far East, as well as in Africa, South America and other "so-so" places.
It all started when the author of Ruby on Rails confessed to the world:
Hello, my name is David. I would fail to write bubble sort on a whiteboard. I look code up on the internet all the time. I do not do riddles.- DHH (@dhh) February 21, 2017
Providers of the Russian Federation, for the most part, use the systems of deep traffic analysis (DPI, Deep Packet Inspection) to block sites included in the register of banned. There is no single standard for DPI, there is a large number of implementations from different DPI providers that differ in the type of connection and type of work.
There are two common types of DPI connection: passive and active.
Passive DPIPassive DPI-DPI connected to the provider network in parallel (not in the section) either through a passive optical splitter or using the mirroring of user traffic. This connection does not slow down the speed of the network provider in the case of insufficient DPI performance, which is why it is used by large providers. DPI with this type of connection can technically only detect an attempt to query for prohibited content, but not to suppress it. To circumvent this restriction and block access to the denied site, DPI sends a specially crafted HTTP packet to the user requesting the blocked URL, redirecting to the stub page of the provider, as if the requested resource itself had been sent by the user (the IP address of the sender and the TCP sequence are forged). Because the DPI is physically located closer to the user than the requested site, the forged response reaches the user's device faster than the real response from the site.
The Unreal Engine project continues to develop - new code is added, and previously written code is changed. The inevitable consequence of the development in a project? The emergence of new bugs in the code that a programmer wants to identify as early as possible. One of the ways to reduce the number of errors is the use of the static analyzer, 'PVS-Studio'. If you care about code quality, this article is for you.
Although, we did it (https://www.unrealengine.com/blog/how-pvs-studio-team-improved-unreal-engines-code) two years ago, since that time we got more work to do regards code editing and improvement. It is always useful and interesting to look at the project code base after a two-year break. There are several reasons for this.
First, we were interested to look at false positives from the analyzer. This work helped us improve our tool as well, which would reduce the number of unnecessary messages. Fighting false positives is a constant task for any developer of code analyzers.
The codebase of Unreal Engine has significantly changed over the two years. Some fragments were added, some were removed, sometimes entire folders disappeared. That's why not all the parts of the code got sufficient attention, which means that there is some work for PVS-Studio.
The fact that the company uses static analysis tools shows the maturity of the project development cycle, and the care given to ensuring the reliability and safety of the code.
We won't be talking about all the errors that we found and fixed, We will highlight only those that deserve attention, to our mind.
Read more - https://www.unrealengine.com/en-US/blog/static-analysis-as-part-of-the-process
P.S. Those who are willing, may take a look at other errors in the pull request on Github. To access the source code, and a specified pull request, you must have access to the Unreal Engine repository on GitHub. To do this, you must have accounts on GitHub and EpicGames, which must be linked on the website unrealengine.com. After that, you need to accept the invitation to join the Epic Games community on GitHub.Instruction (https://www.unrealengine.com/ue4-on-github).
IT conferences and meetings on programming languages see a growing number of speakers talking about static code analysis. Although this field is quite specific, there is still a number of interesting discussions to be found here to help programmers understand the methods, ways of use, and specifics of static code analysis. In this article, we have collected a number of videos on static analysis whose easy style of presentation makes them useful and interesting to a wide audience of both skilled and novice programmers.
What is Static Analysis?