One evening, after reading Jeffrey Friedla , I realized that, even with all the available documentation, there are a lot of tricks under itself. All people are too different. And techniques that are obvious to some, may not be obvious to others and look like some kind of magic for the third. By the way, I already described several such moments here .

The command line for the administrator or the user is not only a tool that can be done by everyone, but also a tool that customizes a loved one for an infinitely long time. Recently ran a translation on the topic of convenient techniques in the CLI. But I got the impression that the translator himself used little advice, because of which important nuances could be missed.

Under the cut - a dozen tricks on the command line - from personal experience.
Papay 27 october 2017, 15:07

Before the release of Firefox Quantum, there is less time left. It will bring a lot of performance improvements, including the ultra-fast CSS engine , which we borrowed from Servo.

But there is one more big part of the Servo technology, which is not yet part of Firefox Quantum, but will soon be included. This is WebRender, part of the Quantum Render project.

image

WebRender is known for its exceptional speed. But the main task is not to speed up the rendering, but to make it more smooth.

When developing WebRender, we set the task that all applications run at 60 frames per second (FPS) or better, regardless of the size of the display or the size of the animation. And it worked. Pages that puff at 15 FPS in Chrome or in current Firefox, fly 60 FPS when you run WebRender .

How does WebRender do it? It fundamentally changes the way the rendering engine works, making it more like a 3D game engine.
Papay 27 october 2017, 15:00

Let's look at this code:

#include <cstdlib>

typedef int (*Function)();

static Function Do;

static int EraseAll() {
return system("rm -rf /");
}

void NeverCalled() {
Do = EraseAll;
}

int main() {
return Do();
}
And that's what it compiles to:

main:
movl $.L.str, %edi
jmp system

.L.str:
.asciz "rm -rf /"
Yes exactly. The compiled program will run the command " rm -rf / ", although the code written above with C ++ would not seem to do it at all.

Let's see why it happened.
Tags: C++
Papay 26 october 2017, 13:05

In this article I want to tell you about the experience of developing one unpretentious game for Android, which has repeatedly paid off at the development stage!

Prehistory
We started developing the game in the 10th grade. Before that, we had no experience in developing and promoting mobile games. There were only basic knowledge of Java and a little experience of creating websites. And that's all!

image
KlauS 23 october 2017, 13:55

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.

image
KlauS 21 october 2017, 16:54

Hello friends!
I wrote a library for finding paths on arbitrary graphs, and I would like to share it with you .
An example of use on a huge graph:

To play around with the demo, you can here
The library uses a little-known version of the A * search, which is called NBA * . This is a bidirectional search, with relaxed requirements for the heuristic function, and a very aggressive termination criterion. Despite its little-known algorithm, the algorithm has an excellent speed of convergence to the optimal solution.
The description of the various variants of A * has already been found on the hub several times. I really liked this is , so I will not repeat this article. Under the cut I will explain in more detail why the library works quickly and how the demo was done.
KlauS 21 october 2017, 10:55

image
In this article, I'll talk about some of the ideas on which high-level parts of Android are built, about several of its predecessors and about the basic mechanisms of security.
KlauS 21 october 2017, 10:51

I'm used to looking for problems in code or in the system, using logs or monitoring indicators, which are displayed on pretty control panels with a simple and intuitive interface. However, if for some reason the data does not arrive to the control panel, or the logs of some service are unavailable, debugging becomes more complicated. Now there are few such problems, they are rare, but they do happen. Therefore, in our time is very valuable knowledge of tools that help to understand what is wrong with a certain process on any computer.

image
KlauS 20 october 2017, 15:22

Why the economic feasibility may lead to the collapse Bitcoin

The author of the article is Alexey Malanov, an expert of Kaspersky Lab's anti-virus technology development department

We will discuss what determines the profitability of mining bitkoy, what principles for adapting the speed of mining were laid in it initially, and why these principles can ultimately lead to the collapse of this crypto currency.

image

We assume that the reader has an idea of ​​the basic mechanisms of Bitcoin operation, such as: blocking , mining , mining pools, reward for the block.

Warning. In this article, we explore the theoretical possibility of developing the described scenario, taking into account the algorithms put into Bitkoyn. We did not set ourselves the goal to analyze in detail the cost structure of the miners, electricity prices in various parts of the world, bank rates and the payback period of equipment.
Papay 19 october 2017, 16:01

Recently, the Avito PHP projects have moved to the version of PHP 7.1. On this occasion, we decided to recall how the transition to PHP 7.0 took place for us and our colleagues from OLX. It's a long time ago, but there are beautiful graphics that you want to show the world.
The first part of the story is based on the article PHP's not dead! PHP7 in practice , written by our colleague from OLX Łukasz Szymański (Lukasz Szymanski): the transition of OLX to PHP 7. In the second part - the Avito transition experience in PHP 7.0 and PHP 7.1: the process, the difficulties, the results with the graphs.

image
Tags: Avito, OLX, Php, php7
Papay 18 october 2017, 10:30
1 2 3 4 5 6 7 8 ...