The story of what not to do during development

The story of what not to do during development 3r33394. 3r3-31. Prologue: For a start, I will talk about the project, so that there would be ideas about how we worked on the project and to recreate the pain we felt. 3r33381.  3r33394. 3r33381.  3r33394. I, as a developer, joined the project in 2015-201? I don’t remember exactly, but he worked 2-3 years earlier. The project was very popular in its field, namely game servers. How strange it did not sound, but projects on game servers are being carried out to this day, I recently saw vacancies and worked a bit in one team. Since the game servers are built on the already created game, therefore...
+ 0 -

“Lock-free, or not lock-free, that is the question.” Or “Healthy sleep, worse than bitter radish”

 
3r3-31. 3r33347. On writing this article, I was moved by comments to the article "3r333. How to right and wrong sleep
".
3r33333.  
3r33347. This article will discuss the development of multi-threaded applications, the applicability of lock-free to some cases arising in the process of working on 3r339. LAppS
, about function 3r311. nanosleep
and scheduler violence.
3r33333.  
NB: Everything discussed concerns development in C ++ under Linux, but it can be applied to all POSIX.1-2008 compatible systems (with an eye on a specific implementation). 3r33333.  
3r33347. In general, everything ...
+ 0 -

DNS over TLS - We encrypt our DNS queries using Stunnel and Lua

 3r33466. 3r3-31. 3r33434. DNS over TLS - We encrypt our DNS queries using Stunnel and Lua
 3r33466.
source of the image is 3r3452.
 3r33466.
 3r33466. After the news that 3r3r16. "Google Public DNS silently turned on support for DNS over TLS"
I decided to try it. I already have Stunnel which will create an encrypted 3r320. TCP
tunnel to google. But programs usually communicate with DNS on UDP protocol. Therefore, we need a proxy that will send UDP packets to the TCP stream and back. We will write it on Lua .
 3r33466. 3r33434. The whole difference ...
+ 0 -

Implementation of cutscenes and sequences of actions in games

Implementation of cutscenes and sequences of actions in games 3r3992. 3r3-31. 3r3-3960. In this post I will talk about how you can implement action sequences and cutscenes in video games. This article is a translation of Here is this article and on the same topic I gave a talk on Lua in Moscow, so if you like watching a video more, you can watch here is . 3r3809.  3r3992. 3r3809.  3r3992. The article code is written in Lua, but can easily be written in other languages ​​(with the exception of the method that uses korutiny, since they are not in all languages). 3r3809.  3r3992. 3r33961. 3r3809.  3r3992. The article shows how to create a mechanism ...
+ 0 -

Traffic generation in the user's area

Traffic generation in the user's area
 
Generate traffic through MoonGen + DPDK + Lua in the artist's presentation
 
 
Neutralization of DDoS-attacks in real conditions requires preliminary testing and testing of various techniques. Network equipment and software should be tested in artificial conditions close to real ones - with intensive traffic flows simulating attacks. Without such experiments, it is extremely difficult to obtain reliable information about the specific features and limitations of any complex instrument.
 
 
In this material, we will uncover some of the traffic generation methods used in Qrator Labs.
 
 
WARNING ...
+ 0 -

We reduce the number of layers of architecture from 5 to 2

We reduce the number of layers of architecture from 5 to 2

 
Working on several open-source projects, one day I decided to simplify my life and developed an Upstream-module for nginx, which helped me to remove bulky layers of multi-layer architecture. It was a fun experience that I want to share in this article. My code is publicly available here: github.com/tarantool/nginx_upstream_module . You can lift it from scratch or download the Docker image from this link: hub.docker.com/r/tarantool/tarantool-nginx .
 
 
On the agenda:
 
 
 
Introduction and theory.
 
How to use these technologies.
 
Performance e...
+ 0 -

Neurobugurt. How we taught the neural network to come up memes a year before Stanford

Neurobugurt. How we taught the neural network to come up memes a year before StanfordBy writing this article I was pushed here by this news (+ 3r3r3? study
) About the invention of a meme generator by scientists from Stanford University. In my article, I will try to show that you do not need to be a scientist from Stanford to do interesting things with neural networks. In the article, I describe how in 2017 we trained a neural network on the body of about 3?000 texts and forced it to generate new Internet memes and memes (communication signs) in the sociological sense of the word. The algorithm of machine learning, technical and administrative difficulties that we have encountered...
+ 0 -

When calls to functions via the external interface are faster than native calls C

When calls to functions via the external interface are faster than native calls C Update: good discussion on Hacker News
 
 
David Yu on GitHub developed an interesting performance test for function calls via different external interfaces (Foreign Function Interfaces, FFI ).
 
 
He created a common object file ( .so ) With one simple function C. Then he wrote the code for repeatedly calling this function through each FFI with time measurement.
 
 
For C "FFI", he used the standard dynamic layout, rather than dlopen () . This difference is very important, since it really affects the test results. You can argue how fair this comparison ...
+ 0 -

Applications for Tarantool. Part 3. Testing and launching

The application for Tarantool is, in essence, a set of stored procedures used as an API. The data is processed on the storage side, which can significantly improve performance. However, support for stored procedures can turn into a nightmare.
 
Can. But not today.
 
Today we will consider the issues of ensuring the quality of the application. In particular, let's talk about testing, understand how to launch in production, how to use connectors, and also talk about the intricacies of migration of the data schema.
 
Applications for Tarantool. Part 3. Testing and launching ...
+ 0 -

Creating a game on Lua and LÖVE - 7

Creating a game on Lua and LÖVE - 7

 
Table of contents [/b]

Table of contents


 
 
Article 1
 
Part 1. The game cycle
 
Part 2. Libraries
 
Part 3. Rooms and areas
 
Part 4. Exercises
 
 
Article 2
 
Part 5. The basics of the game
 
Part 6. Basics of the class Player
 
 
Article 3
 
Part 7. Parameters and attacks of the player
 
Part 8. Enemies
 
 
Article 4
 
Part 9. The director and the game cycle
 
Part 10. Practice of writing code
 
Part 11. Passive skills
 
 
Article 5
 
Part 12. Other passive skills
 
 
...[/h]
+ 0 -