Many people represent functional programming as something very complex and "science-intensive", and representatives of the OP-community - aesthetic philosophers living in an ivory tower.
Until recently, such a view of things really was not far from the truth: we say FP, we mean Haskel and the theory of categories. Recently, the situation has changed and the functional paradigm is gaining momentum in web development, not without the help of F #, Scala and React. Let's take a look at the "patterns" of functional programming that are useful for solving everyday problems from the point of view of the OOP paradigm.
OOP is widely spread in the development of applied software for more than a decade. We are all familiar with SOLID and GOF. What will be their functional equivalent? .. Functions! Functional programming is simply "different" and offers other solutions.
In this article, I'll talk about the components that make up applications for Android, and about the ideas behind this architecture.
How Android works, part 1
How Android works, Part 3
On this Wednesday, August 30, at the office of Oracle, meeting JUG with Oleg Shelaev, Developer Advocate in the company ZeroTurnaround, which makes JRebel and XRebel. The topic of the meeting is the tools for creating multi-threaded Java programs (from designing bikes and starting threads to handles, to ForkJoinPools, green threads and transactional memory).
Of course, we asked which Java 9 chips are considered the most useful in ZeroTurnaround. As a result, they got hold of the article that you are reading right now. The original article Oleg published in the blog RebelLabs , there are many more interesting.
Performing daily tasks of the system administrator is considered safe when working through the SSH session. This article will discuss modern tools for conducting MITM attacks on the SSH protocol and how to protect against them.
You've probably heard of Project Quantum ... This is a project for substantial reworking of Firefox's insides to speed up the browser. In parts, we implement the experience of our experimental browser Servo and significantly improve the rest of the engine elements.
The project was compared with the replacement of an aircraft engine on the fly. We make changes to the Firefox component behind the component, so you can evaluate their effect in the next release of the browser as soon as it is ready.
Note. There are many illustrations under the cut. All of them are clickable (for viewing in higher resolution). If you stumble upon inaccurate translation and other errors - I will be grateful if you report this in the comments or in PM.
Let's move on to the most interesting - a selection of the most useful and interesting, in our opinion, tricks and hidden features of Chrome DevTools.
1. We inspect the animationThe animations in DevTools will allow you to slow down all the animations on the page or to move the "hands" animation.
In modern software very often there is a need to perform various operations with all kinds of money. However, until now, I have never found documentation, which would have brought together the basic rules for presenting amounts and implementing financial calculations. In this article, I will try to formulate those rules that have been compiled on the basis of personal experience.
WebRTC can work Peer-to-Peer and Peer-to-Server, where in the role of a feast, usually acts as a browser or mobile application. In this article, we'll show you how WebRTC works in Server-to-Server mode, what it does and how it works.
The artists painted bright graphics, the programmers built it into the game, the animators added movements - it would seem, everything is ready. But no, managers do not like:
You need to remove gray spots and white lines. Then the pulsating button jerks, there the progress bar goes with a ladder.You look at the game resources - there is nothing in them, all sprites are cropped. You read the code - the formulas are correct, there is enough shader accuracy. But the result was still unimportant. Where is the mistake?
A small poll for those who already know where the artifacts come from. What to do in this situation?
You need a powerful graphics card and fresh drivers;
It is worth making downloadable sets of graphics for all possible screen resolutions;
Square textures with the sizes of a degree of two do not have such problems;
This is all due to the compression of graphics (PVRTC / DXT5 / ETC1 / ...);
In the graphics editor you will have to smudge the edges slightly;
This should have happened, because we did not prepare graphic data;
Only antialiasing will help;
You need textures and targets in the premultiplied alpha mode.
What is the correct answer, why exactly and how to overcome the artifacts of graphics read under the cut.
I will introduce you to the full tutorial on HTML5 with a demo on the algorithm of machine learning the video game Flappy Bird. The purpose of this experiment is to write an artificial intelligence controller based on neural networks and a genetic algorithm.
That is, we want to create an AI robot that can learn the optimal game in Flappy Bird. As a result, our little bird can safely fly through obstacles. In the best scenario, she will never die.
After reading the theory behind this project, you can download the source code at the end of this tutorial. All code is written in HTML5 using the <a title="Phaser Framework" href="http://phaser.io/"> phaser </a> framework. In addition, we used the Synaptic Neural Network library to implement a neural network so that it would not be created from scratch.
DemoFirst, look at the demo to evaluate the algorithm in action:
Run in full-screen mode