Very often we've heard that some frameworks fit together so good, that they are considered as "match made in heaven". In this article I would like to share our experience regarding integration of those frameworks.
Our new public speech synthesis in super-high quality, 10x faster and more stable
In our last article we made a bunch of promises about our speech synthesis.
After a lot of hard work we finally have delivered upon these promises:
- Model size reduced 2x;
- New models are 10x faster;
- We added flags to control stress;
- Now the models can make proper pauses;
- High quality voice added (and unlimited "random" voices);
- All speakers squeezed into the same model;
- Input length limitations lifted, now models can work with paragraphs of text;
- Pauses, speed and pitch can be controlled via SSML;
- Sampling rates of 8, 24 or 48 kHz are supported;
- Models are much more stable — they do not omit words anymore;
This is a truly break-through achievement for us and we are not planning to stop anytime soon. We will be adding as many languages as possible shortly (the CIS languages, English, European languages, Hindic languages). Also we are still planning to make our models additional 2-5x faster.
We are also planning to add phonemes and a new model for stress, as well as to reduce the minimum amount of audio required to train a high-quality voice to 5 — 15 minutes.
The Python and Django conferences you don't want to miss in 2022
![](https://webcf.waybackmachine.org/web/20220415065911im_/https://habrastorage.org/getpro/habr/upload_files/6e0/e36/38f/6e0e3638f3b15e43bf11f35528ebec04.jpg)
Quick reminder for those, who would like to broaden their horizons: there is “PyCon DE Berlin 2022 ” coming up already next week!
Django admin dynamic Inline positioning
Recently I've received an interesting request from a client about one of our Django projects.
He asked if it would be possible to show an inline component above other fields in the Django admin panel.
At the beginning I thought, that there shouldn't be any issue with that.
Though there was no easy solution other then installing another battery to the project. My gut feeling told me, there were another way around that problem.
Working with digital infrared passive motion sensor PYD 1588
![](https://webcf.waybackmachine.org/web/20220415065911im_/https://habrastorage.org/getpro/habr/upload_files/0ee/0fa/405/0ee0fa405bf0c0f2cc837f0ee85b2e5a.jpg)
In this article, there is the work with the PYD 1588 digital Infrared passive motion sensor introduced. The PYD 1588 is a serial opposed format, two element detector based on pyroceramic produced by the Excelitas Technologies. This sensor represents a low-power (3.0 uA with 1.8 V source voltage as in the documentation said) passive component with two sensible elements, which measure the thermal infrared radiation stream.
The signal is converted to a digital value using Sigma-Delta and DSP techniques. A configurable motion detection unit is implemented, which can generate an interrupt recognized by the external microcontroller (MCU) in case motion is detected. The motion detection unit contributes to significant device energy efficiency increasing via putting the MCU to a low-power sleep mode with no periodic raw data request and its analyzing necessity.
Comparison between SwiftUI vs UIKit — Choosing the right framework
![](https://webcf.waybackmachine.org/web/20220415065911im_/https://habrastorage.org/getpro/habr/upload_files/281/bd1/117/281bd11175cb7dd0701e0e076c6c7540.png)
There has been a lot of debate going on among iOS developers with regards to the comparison between SwiftUI and UIKit. Have you been planning to develop a chat app for iOS and are confused as to which framework you should opt for?
Fret not! We have got your back. In this article, we shall discuss all the relevant aspects revolving around these two and compare them in detail. Stay with us and read on!
As iOS developers, you must be knowing about both the UIKit and Swift UI frameworks. However, we would like to provide you with a quick overview to refresh your understanding. Let's take them up one by one
The journey of scaling up a production Elasticsearch cluster
![](https://webcf.waybackmachine.org/web/20220415065911im_/https://habrastorage.org/getpro/habr/upload_files/fc2/c70/f0f/fc2c70f0f852580cc2da7ff0a59642d0.jpg)
In this article, I will tell you about a-few-years journey of scaling the Elasticsearch cluster in production environment, which is one of the vital elements of the iPrice technology stack.
I will describe challenges we encountered and how we approached them.
Math introduction to Deep Theory
![](https://webcf.waybackmachine.org/web/20220415065911im_/https://habrastorage.org/getpro/habr/upload_files/1ca/d4c/c02/1cad4cc02df9881be59b66da8d7c567f.png)
In this article, we would like to compare the core mathematical bases of the two most popular theories and associative theory.
Electron + web camera (cpp-ffmpeg)
![](https://webcf.waybackmachine.org/web/20220415065911im_/https://habrastorage.org/getpro/habr/upload_files/ecd/e65/dfb/ecde65dfbeaa547772004ac33999ffb7.png)
An example of using Electron + React JS and a native ffmpeg addon to access a webcamera
This guide may be helpful to someone who is trying to find a way
to work with Electron if they need to use a c++ library or code
I was looking for a more realistic example than a simple 'hello world' and i didn't succeed
Here are the links in advance:
- electron - https://github.com/khomin/electron_camera_ffmpeg
- addon - https://github.com/khomin/electron_ffmpeg_addon_camera
So let me share my experience...
Queries in PostgreSQL. Sequential Scan
Queries in PostgreSQL. Sequential scan
In previous articles we discussed how the system plans a query execution and how it collects statistics to select the best plan. The following articles, starting with this one, will focus on what a plan actually is, what it consists of, and how it is executed.
In this article, I will demonstrate how the planner calculates execution costs. I will also discuss access methods and how they affect these costs, and use the sequential scan method as an illustration. Lastly, I will talk about parallel execution in PostgreSQL, how it works, and when to use it.
I will use several seemingly complicated math formulas later in the article. You don't have to memorize any of them to get to the bottom of how the planner works; they are merely there to show where I get my numbers from.
Riddles of the fast Fourier transform
![](https://webcf.waybackmachine.org/web/20220415065911im_/https://habrastorage.org/getpro/habr/upload_files/2bb/80d/ef8/2bb80def83e482e2604a98b7a282d06b.png)
• The method of phase-magnitude interpolation (PMI)
• Accurate measure of frequency, magnitude and phase of signal harmonics
• Detection of resonances
The Fast Fourier Transform (FFT) algorithm is an important tool for analyzing and processing signals of various nature.
It allows to reconstruct magnitude and phase spectrum of a signal into the frequency domain by magnitude sample into the time domain, while the method is computationally optimized with modest memory consumption.
Although there is not losing of any information about the signal during the conversion process (calculations are reversible up to rounding), the algorithm has some peculiarities, which hinder high-precision analysis and fine processing of results further.
The article presents an effective way to overcome such "inconvenient" features of the algorithm.
How does Rust treat Strings and Vectors internally
![](https://webcf.waybackmachine.org/web/20220415065911im_/https://habrastorage.org/getpro/habr/upload_files/805/e16/8d0/805e168d05e0e4b20d6bdaa73eb6aab8.png)
In Rust strings can be represented in two ways:
a) String type
b) String slice
String type:
String type is defined as a struct of the following structure:
Depending on arch (in my case x86 64bit it is 24byte)
{
pointer to the address where string characters are stored (8b)
capacity (8b)
length (8b)
}
Enabling Apache Camel metrics in Spring Boot Actuator Prometheus
![](https://webcf.waybackmachine.org/web/20220415065911im_/https://habrastorage.org/getpro/habr/upload_files/4ef/4db/a33/4ef4dba333d123061f04a555c8735aaf.png)
In this article I have described problems I have faced during integration Apache Camel with Spring Boot Actuator Prometheus for collecting metrics and my solution to solve this problem (which I haven't found over the internet).
Traffic mirroring through HPE Virtual Connect
![](https://webcf.waybackmachine.org/web/20220415065911im_/https://habrastorage.org/getpro/habr/upload_files/fef/dee/f7e/fefdeef7e0b3b6cab595f8ae7594564e.png)
In this article I'd like to describe different traffic mirroring options for HPE Virtual Connect modules. I try to answer two questions: "What options work and why?" and "How different traffic mirroring cases can be implemented?"
Creating a Weather Predictions App Using Flutter
![](https://webcf.waybackmachine.org/web/20220415065911im_/https://habrastorage.org/getpro/habr/upload_files/c63/21e/833/c6321e83325d3cf31ffa53b9728da6b6.jpeg)
This article describes how to develop a real-time weather prediction app in Flutter using the Tomorrow.io Weather API. The app consists of a single screen that displays the current weather and a 4-day daily forecast for a specific location. We’re creating this prediction app on Flutter because it is an open-source UI development kit, which means it can be integrated beautifully into desktop and mobile apps across various platforms, making it scalable.
Even shell scripts require unit tests
![](https://webcf.waybackmachine.org/web/20220415065911im_/https://habrastorage.org/getpro/habr/upload_files/424/0a3/bb9/4240a3bb98775b4fc9e56783319b3927.jpg)
Once a upon a time I moved to brand new project. And without much thought, I decided to take DevOps responsibilities (after a long period of Frontend). Huge mono-repository (Angular and Node.js) gives rise to many specific problems. And this project was no exception. At the very beginning CI/CD duration was about 1.5h. And that was the biggest problem to take care of.
But at first, I want to talk about "Bourne again shell", cause CI/CD automation almost entirely was implemented by means of shell scripts (Bash). In context of huge mono-repo even regular build becomes a piece of odd stuff. That`s why a huge amount of scripts with complicated logic inside (build, test, deploy, generation of release notes, collection of logs and metrics, ...) was another significant problem.
Regardless of lang, quality of complex logic should be under control. It is no secret that key aspect of code quality control - is tests. For example, to refactor safely major logic should be covered with tests. We decided to keep shell scripts untouched and cover the major ones with tests before any refactoring. Of course, it is possible to use Jest (or Mocha) with a bunch of awful utils to test shell scripts. This approach is a bit wordy and has no value if scripts under test is written in Bash. Also I have no idea how to mock external shell commands (such as curl, ls, touch, npm, ...) with Jest or similar framework.
Analysis of UE5 Rendering Technology: Nanite
![](https://webcf.waybackmachine.org/web/20220415065911im_/https://habrastorage.org/getpro/habr/upload_files/b1e/097/437/b1e097437e0547c1bac5d991a9fd4443.png)
After Epic released the UE5 technology demo at the beginning of 2021, the discussion about UE5 has never stopped. Related technical discussions mainly centered on two new features: global illumination technology Lumen and extremely high model detail technology Nanite. There have been some articles [1 ][2] analyzing Nanite technology in more detail. This article mainly starts from the RenderDoc analysis and source code of UE5, combined with some existing technical data, aims to provide an intuitive and overview understanding of Nanite, and clarify its algorithm principles and design ideas, without involving too many source code level Implementation details.
Introducing into calamares bootloader
Overview
Sometimes all of us need to make a graphical installer for one's own linux distro. It goes without saying that you are able to use a distro-specific installer like Anaconda for RedHat-based or DebianInstaller for debian-based. On the other hand Calamares is a graphical installer which is not aligned with only one package manager.
I want to share my experience how to make a universal install solution with GUI. I did not find any complete article about it, hence, I reinvented the wheel.
UE5 Lumen Implementation Analysis
![](https://webcf.waybackmachine.org/web/20220415065911im_/https://habrastorage.org/getpro/habr/upload_files/ecf/6c1/42b/ecf6c142b33416536b2d004dcdaa114c.png)
Lumen is UE5’s GI system, it is different from the traditional real-time GI which only includes the contribution of indirect diffuse reflection. It also includes indirect diffuse reflection and indirect highlight, providing a new set of complete indirect lighting. Lumen supports both hardware-based RTX and software-based Trace algorithms. The starting point of this article is that Lumen GI uses the process, algorithm, and data structure analysis of indirect diffuse reflection part based on software Trace to understand the basic principle and operation mechanism of Lumen from a macro perspective.
The core of Lumen includes the following parts:
URL Search Params
Somehow I saw code in the project of a neighboring team that generated a string with URL parameters for subsequent insertion into the iframe
src attribute.
This article may seem superfluous, obvious or too simple, but since this occurs in wildlife, you should not be silent about it, but rather share best-practices.