• Hashing and its C++ applications

    Hash, salt, SHA-1, SHA-2, std::hash.. To a non-programming person that may come up as some kind of a recipe that just does not seem to add up. In a sense, this is indeed supposed to be a gibberish to any third party and a strong, helpful mechanism for us, programmers. 

    At the start of writing this article, I had one clear idea to get across the table: to finally unveil this mystery of hashing in C++ for beginners. I, a beginner myself, also wanted to solidify my knowledge in this area; so let’s get started.

    Read more
  • Uniform gravity, can it exist?

    • Analytics

    3.What's an ugly smiling face?

    It's the cat from curved space.

    V. Komen, I. Tikhonenkov

    Here we are discussing in general the majority of metrics for a stationary gravitation fields in one dimension. The only accepted approach so far to apply the equations of field (A. Einstein):

    10
  • Alpha Go && Alpha Go Zero

    Today I would like to discuss the games Chess and Go, the world's champions, algorithms and Al.

    In 1997, a computer program developed by IBM Deep Blue defeated the world Chess champion Garry Kasparov. Go remained the last board game in which humans were still better than machines.

    Why is that?

    Chess is primarily distinguished from Go by the number of variations for each move. Chess, the game is more predictable with more structured rules: we have value for each figure (e.g bishop = 3 pawns, rook = 5 pawns -> rook > bishop), some kind of openings and strategies. Go, in turn, has incredibly simple rules, which creates the complexity of the game for the machine. Go is one of the oldest board games. Until recently, it was assumed that a machine was not capable of playing on an equal footing with a professional player due to the high level of abstraction and the inability to sort through all possible scenarios - exactly as many valid combinations in a game on a standard 19×19 go-ban are 10180 (greater than the number of atoms in the visible universe).

    However, almost 20 years later, in 2015, there was a breakthrough. Google's Deep Mind company enhanced AlphaGo, which was the last step for the computer to defeat the world champions in board games. The AlphaGo program defeated the European champion and then, in March 2016 demonstrated a high level of play by defeating Lee Sedol, one of the strongest go players in the world, with a score of 4:1 in favour of the machine. A year later, Google introduced to the world a new version of AlphaGo - AlphaGoZero.

    Read more
  • lsFusion: Open-Source Rapid Application Development Platform

    lsFusion platform is designed for rapid development of business applications. It is distributed under the terms of a Lesser General Public License (LGPLv3). The source code of the platform is available on Github.

    lsFusion is best suited for creating complex systems with large numbers of entities and forms, where users need to input and process large amounts of data. However, the platform can also be used to quickly create simple applications instead of spreadsheets when Excel’s functionality is not enough.

    At the same time the use of the platform will not give a great advantage when developing applications aimed at interaction with a large number of “external” users or without the need for any complex calculations. You should also take into account that the web interface is a single page application using JavaScript. Therefore, the lsFusion platform is not well-suited for creating websites, for example.

    Read more
  • What is it about IT. And when will it all end

    Yes, we need IT

    The foundation of our civilization is tools. We didn't just evolve to a state that allowed us to use them, we began to improve them ourselves. The tools are becoming more intricate, more efficient and more perfect. It can be a hammer, an industrial robot, or a monetary relationship. 

    Some of our tools are difficult to grasp or comprehend, they are more like an element or a subject of study: the Internet, the media, the transport system. It is even difficult to call them tools, rather it is a reflection of our activities. For simplicity, we will call everything that people do with their own hands a tool, meaning that they speed us up, make our life easier and more comfortable.

    Why do we need tools? On the one hand, they help to solve emerging problems, on the other hand, they raise the standard of living. We enjoy creating tools. I would say it's one of our instincts. 

    For the functioning of our body, we need some amount of mathematics. The processes in our head reflect this math into our language. We can write the language in the form of symbols. With the help of symbols, we can convey the discovery of one person to another or a thousand others. This allows us to build more and more complex tools. And most importantly, we really like it: the brain encourages us every time we invent or achieve something. Therefore, our tools are developing with us. The mechanisms of their development and improvement are sewn into us.

    Migratory birds fly south in autumn, north in spring. It's their instinct. Ants build an anthill — it's their instinct. If people are left in satiety and peace, they begin to encode secret messages in the Bible, create complex etiquette, form mathematics, experiment with materials.

    Read more
  • Affordable as a Bus, Comfortable as a Taxi: A Promising Type of Public Transport for Large and Medium-Sized Cities.Part3

    • Opinion
    • Translation


    Translation provided by ChatGPT, link to the original article in Russian

    Link to Part 1: «Preliminary Analysis» (ру / eng )
    Link to Part 2: «Experiments on a Torus» (ру / eng )
    Link to Part 3: «Practically Significant Solutions» (ру / eng )
    Link to «Summary» (ру / eng )

    1 Playing Diplomacy


    1.1 What this work is about


    You're reading the third and final article in a series dedicated to minibus route schemes that would allow you to travel reasonably quickly, inexpensively, and most importantly, without any transfers, from any intersection to any other within a large city. You'll see many graphs, formulas, and figures below, but before we get to the technical part, I'd like to discuss the challenge of implementing this idea and invite you to participate in solving it.

    1.2 A puzzle for the talented and brave (Eccentrics are welcome: 🎶)


    I propose an adventure,
    I propose a game,
    I propose that you become part of a positive change in the lifestyle of almost a billion people around the planet,
    I can't do this alone.
    To start, I need your help with the following:
    Read more →
  • How to set up Gitlab CI/CD with Fastlane for iOS-project on a Mac mini

    • Tutorial

    Hello, everyone! I’m Yaroslav Fomenko, Doubletapp iOS-developer. Since the end of May, my department colleague and I have been working on implementation, improvement, and scaling of CI/CD for our projects. In this article, we want to share a guide on preparing the Xcode project and setting up runners, scripts, and configs, as well as explain how CI/CD helps us.

    To learn how and why we decided to use a Mac mini for CI/CD, click here.

    Read more
  • CI/CD for iOS-projects: device or cloud? What’s better, Doubletapp’s take

    • Review

    Hey, Habr! I’m Yaroslav Fomenko, Doubletapp iOS-developer. After our IOS department deployed our CI/CD on a Mac Mini, we got an idea of scaling and encapsulating it. So we started researching ways to do it. First we thought of Docker, but there was neither enough info about it nor any other possible ways. In this article, we’ll look at all possible solutions we found for the deployment of Gitlab CI/CD on a device and in the cloud.

    Read more
  • The Growing Field of Fraud Prevention: Insights and Career Opportunities

    • Opinion

    Hi Everyone,

    I would like to draw your attention to some key insights from two comprehensive reports, shedding light on the importance of fraud prevention as a burgeoning field with substantial job prospects. The original reports can be accessed through the link provided at the end of this message.

    Firstly, let's consider a couple of significant events from the previous year that remain highly relevant. Retail e-commerce sales surged to a staggering $5 trillion, with projections indicating a further increase to $8 trillion by 2026. Furthermore, the percentage of shoppers making cross-border purchases rose from 69% in 2019 to an impressive 76%.

    These statistics affirm that online shopping is not a passing trend, as consumers are willing to make purchases from international vendors, even if it means enduring longer delivery times in exchange for lower prices. From a fraud prevention perspective, this highlights the escalating number of non-domestic payments and the rise in the use of lost or stolen cards for purchasing goods that can be resold in the future. Notably, refund fraud is becoming increasingly prevalent. However, many businesses have adapted their protocols to accommodate these emerging challenges. One such positive development is the gradual disappearance of restrictions on using payment methods that do not match the account country.

    As cross-border purchases continue to proliferate, alternative payment methods are also on the rise. Current global statistics indicate that an average of four payment options are now available on merchant platforms. Additionally, open banking payment transactions are projected to surpass $330 billion globally by 2027, leading to a greater diversity of alternative payment methods. As companies embrace these methods, they are also becoming more aware of the associated risks. For instance, direct banking payment methods present unique challenges as they lack refund capabilities, while Buy Now Pay Later (BNPL) options introduce their own set of risks.

    Read more
  • Affordable as a Bus, Comfortable as a Taxi: A Promising Type of Public Transport for Large and Medium-Sized Cities.Part2

    • Opinion
    • Translation

    (Jean-Claude Mézières)

    Translation provided by ChatGPT, link to the original article in Russian

    Link to Part 1: «Preliminary Analysis» (ру / eng )
    Link to Part 2: «Experiments on a Torus» (ру / eng )
    Link to Part 3: «Practically Significant Solutions» (ру / eng )
    Link to «Summary» (ру / eng )

    Experiments on the Torus


    This is the second part of a study dedicated to exploring new public transportation movement schemes. In the first part, we examined the simplest non-stop scheme and a single-transfer scheme based on it, which can be implemented in a grid city on a plane. In this part, our city model will be a grid city on a «flat» torus. Unlike a rectangle, a torus has no edge, and the positions of all points on it are absolutely equivalent. Due to the absence of an edge and (transitive) symmetry, calculations for a toroidal city are simpler, and numerical results are nearly identical to those for a rectangular city on a plane. These two conditions make a toroidal grid city an ideal testing ground for new passenger transportation movement schemes. In this article, we will explore two such schemes on the torus, and in the next one, we will return to the plane and adapt the results obtained here for use under the realistic conditions of a rectangular city.

    The content of this study is not standalone and presupposes familiarity with the first part of the article. To understand Chapter 2, you will need a level of mathematics that corresponds roughly to the first two years of university; for everything else, high school level should suffice. It can be helpful to have a pencil and a piece of paper at hand while reading. If your browser displays formulas incorrectly, try refreshing the page a few times.
    Read more →
  • Uniform gravity, can it exist?

    • Analytics

    Uniform gravity, can it exist?

    1. The motion of a free particle-like cat

    V. Komen, I. Tikhonenkov

    Good morning! You've woke up. Having prepared coffee and toasts of bread you are drifting from a kitchen to a table before a large wall TV. The left hand keeps a small plate with toasts and the right one controls coffee level within your beloved mug. The life is plotted out for ten seconds to come. But Ervin is already worried that you, as usual, made conspiracy and decided not to share your breakfast with him. So the damned cat thrusts himself across you pass, hits your legs. By the next moment the plate, toasts and the mug are falling. And – yes! All those precious things reached a floor level by the same time. Physics...It's how it shows up, unexpected. And we used to identify ourselves as physicists. The unexpected thing is that we still do. It's whence our motivation originates. We cannot pass by any falling objects quietly.

    15
  • Affordable as a Bus, Comfortable as a Taxi: A Promising Type of Public Transport for Large and Medium-Sized Cities.Part1

    • Opinion
    • Translation

    (Jean-Claude Mézières)

    Translation provided by ChatGPT, link to the original article in Russian

    Link to Part 1: «Preliminary Analysis» (ру / eng )
    Link to Part 2: «Experiments on a Torus» (ру / eng )
    Link to Part 3: «Practically Significant Solutions» (ру / eng )
    Link to «Summary» (ру / eng )

    1. About this series of articles


    1.1 Central result


    If I haven't made a critical mistake, I have discovered an astonishing passenger transportation scheme with unique characteristics. Imagine this scenario: you are in a big city and need to get from point A to point B. All you need to do is walk to the nearest intersection and indicate the destination on your smartphone or a special terminal installed there. In a few minutes, a small but spacious bus will arrive for you. The bus is designed for easy entry without bending, and you can bring a stroller, bicycle, or even a cello inside. It provides comfortable seating where you can stretch your legs. This bus will take you to the nearest intersection to point B, and you will reach your destination without any transfers. The entire journey, including waiting at the stop, will take only 25-50% more time than if you were traveling by private car. Based on my estimation, in modern metropolises, this type of transportation will be widely adopted, and the cost of a trip on such buses will be similar to the fare of a regular city bus.

    Surprisingly, the reasoning behind these findings is based on relatively simple mathematics, and perhaps even a talented high school student, under fortunate circumstances, could have guessed them on their own. The practical significance of the topic and the modest level of mathematical requirements prompted me to make an effort to write the article in such a way that the reader could follow the path of discoveries, learn some research techniques, and gain a successful example to explain to their children the purpose of mathematics and how it can be applied in everyday life.
    Read more →
  • Pixel image rotation

    Brief problem formulation

    The program accepts as input the absolute path to the image in the bmp extension and the path where you save the result of the work. Then, it rotates the image by 90 degrees counterclockwise. Afterwards, the program saves the new image.

    The program is executed on C.

    Read more
  • How we built a Cyber Immune product using an open source library: stages, pitfalls, solutions

    • Translation
    Do you remember how, even before the pandemic set in, companies were striving to provide secure perimeter access for their telecommuters? Especially if super sensitive data was involved such as accounting information or corporate documents. The solutions were complex, bulky and expensive. Can you imagine just how critical it has become now?!

    image

    My name is Sergey Yakovlev, and I'm the head of the Kaspersky Thin Client project based on our proprietary operating system, KasperskyOS. A thin client is one of the main components of a virtual desktop infrastructure, which is a remote desktop access system. In this article, I will use such a client as an example of how you can build a secure (yet commercially viable!) product. I will cover the stages, the stumbling blocks, the problems and solutions. Let's go!
    Read more →
  • PostgreSQL 16: Part 5 or CommitFest 2023-03

    • Digest
    • Translation

    The end of the March Commitfest concludes the acceptance of patches for PostgreSQL 16. Let’s take a look at some exciting new updates it introduced.

    I hope that this review together with the previous articles in the series (2022-072022-092022-112023-01) will give you a coherent idea of the new features of PostgreSQL 16.

    Read more