IT Блог

Документации и переводы

Статьи на технические темы

Передать параметры при создании экземпляра дочернего класса mql

Если в базовом классе есть конструктор с параметрами, то при создании дочернего класса нужно добавить конструктор с передачей параметров в базовый класс.

Для наглядности сначала покажу пример без использования параметров в конструкторе:

class Base {
   public:
      void Base(){
         Print("Base: constructor is called");
      };
};

class Child : public Base {
   public:
      void Child(){
         Print("Child: constructor is called");
      };
};

В терминале во вкладке "Терминал \ Эксперты" мы видим результат выполнения кода:

2021.01.22 13:07:04.756    TestBot EURCHF,H1: Child: constructor is called
2021.01.22 13:07:04.756    TestBot EURCHF,H1: Base: constructor is called

Видно, что сначала выполнился код базового конструктора, а затем дочернего.


Динамический тег в компоненте vue 3

Для наглядности покажу на конкретном примере.

В SEO есть такое понятие, как циклические ссылки. Например, в меню обычно всегда размещают ссылки на разделы сайта вне зависимости, на какой странице мы находимся. Но если мы находимся на некоторой странице и url текущей страниц совпадает с url кого-то пункта меню, то такая ссылка становится циклической и для SEO это плохо (по крайней мере раньше так точно было).

Таким образом, при совпадении url лучше пункт меню не ссылкой делать тегом a, а использовать другой тег, например, span.

Во Vue есть специальная директива :is, значение которой и будет тегом при рендере:...


Uncaught SyntaxError: Must be called at the top of a `setup` function vue 3

Если в кратце: проблема в том, что ваша функция должна быть вызвана вверху функции setup(), а не быть вложенной в другую функцию (вызов которой происходит из setup()).

Проще понять наглядно, почему может возникнуть ошибка Uncaught SyntaxError: Must be called at the top of a `setup` function, на примере моего случая, когда для тестов я решил обернуть axios.get() в setTimeout:

<script>
    import { ref } from 'vue'
    import ui_state from "../state";
    import axios from "axios";

    export default {
        name: 'Component',

        setup() {
            const { locale_url } = ui_state

            const data = ref('')

            setTimeout(() => {
                axios.get(locale_url('/apps/'))
                    .then(response...

Где поменять тариф на продукты atlassian confluence jira

Когда только знакомишься с продуктами Atlassian, а точнее хочешь изменить настройки этих продуктов, может возникнуть ощущение, что настроек очень много и где найти нужную настройку.

Например, я сначала долго искал, где поменять тарифный план Confluence со стандартный на бесплатный. Оказалось меняется это на отдельном сайте во вкладке Продукты. Затем нужно выбрать в левом боковом меню нужный сайт и на открывшейся странице в том же боковом меню выбрать Управление подписками:


AppRegistryNotReady: The translation infrastructure cannot be initialized before the apps registry is ready

В общем случае ошибка:

django.core.exceptions.AppRegistryNotReady: The translation infrastructure cannot be initialized before the apps registry is ready. Check that you don't make non-lazy gettext calls at import time.

говорит о том, что где-то происходит вызов неленивых функций перевода во время импорта пакетов. Другими словами, во время импорта перевод должен быть ленивым, то есть использоваться функция ugettext_lazy (или pgettext_lazy).

Например, в моделях нужно использовать ugettext_lazy (вместо простого ugettext):

from django.db import models
from django.utils.translation import gettext_lazy as _


class MyModel(models.Model):
    title = models.CahrField(_('Title'))

Бывает по трейсбеку не понятно, где нужно поправить код, чтобы не возникала ошибка AppRegistryNotReady: The translation...


Добавить иконку в меню и на панель задач в Linux

Для добавления значка (иконки) на панель задач в Linux Mint, нужно сначала добавить иконку в меню, а затем уже можно будет её добавить на панель задач.

Более подробно, как добавить иконку в Linux Mint, смотрите ниже (в других версиях Linux должны быть похожие инструкции).

1. Нажать правой кнопкой мыши на кнопку “Меню” и нажать “Настройки”:

2. Нажать на кнопку “Открыть редактор меню”:

3. Выбрать необходимый раздел, куда нужно добавить иконку, и щёлкнуть "Новый элемент":

4. Прописать путь до скрипта (файла, который запускает программу) и добавить иконку щёлкнув по изображению "Ракеты" рядом с полями:

Для примера можно добавить в меню программу...


Автоматическое добавление якорей к заголовкам

Технически в html якорь для заголовков может выглядеть так:

<h2 id="my-title">Мой заголовок <a href="#my-title">¶</a></h2>
<p>Произвольный текст</p>

Результат выполнения такого кода:

Автоматически добавлять якорь к заголовкам можно как на стороне сервера, так и на стороне клиента. На стороне сервера придётся хранить дополнительный html-код, который будет загружаться из базы данных для отображения страницы, поэтому мне больше нравится посредством javascript добавлять якоря к заголовкам.

Постановка задачи

В зависимости от важных нужд вы можете изменить предлагаемый код. Я поставил перед собой следующие задачи.

С технической стороны

При наведении на заголовок должен появляться знак ссылки на якорь, а при отведении мышки этот знак скрывать.

1....


Подключиться к интернету через кабель linux mint

Когда в Linux Mint подключаешь кабель напрямую к компьютеру (не через роутер), то Linux может автоматически создать Ethernet-подключение, которое на первый взгляд должно быть верным:

Но, как ни странно, оно не работает. И я к тому же думал, что во вкладке Защита 802.1x нужно ввести логин и пароль от провайдера. Но оказалось, это не работает.

Нужно создать DSL подключение. Для этого нажимаем "Пуск \ Параметры \ Сетевые соединения" и в открывшимся окне нажимаем "Добавить":

Теперь можно ввести имя пользователя (логин) и пароль, выданный провайдером (в поле служба можно писать, что угодно):

Теперь должно работать:

Подключение через роутер

Через роутер как...


Типы ордеров в mql

OrderType() возвращает тип ордера в числовом виде:

Константа Значение Описание
OP_BUY 0 Ордер на покупку
OP_SELL 1 Ордер на продажу
OP_BUYLIMIT 2 Отложенный ордер на покупку по достижении заданного уровня, текущая цена выше уровня
OP_BUYSTOP 3 Отложенный ордер на покупку по достижении заданного уровня, текущая цена ниже уровня
OP_SELLLIMIT 4 Отложенный ордер на продажу по достижении заданного уровня, текущая цена ниже уровня
OP_SELLSTOP 5 Отложенный ордер на продажу по достижении заданного уровня, текущая цена выше уровня
OP_BALANCE 6 Пополнение или вывод со счёта
OP_CREDIT 7 Использование кредита
8 Оплата брокером партнёрского вознаграждения рибейт-партнёрам, являющееся частью спреда с каждой сделки клиента

Послать сообщение об ошибке на почту из django management commands

По умолчанию вы не сможете получать сообщение об ошибках, если management-команда выполняется через cron. Но это легко исправить: достаточно добавить в settings.py дополнительный logger:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'filters': {
        'require_debug_false': {
            '()': 'django.utils.log.RequireDebugFalse'
        }
    },
    'handlers': {
        'mail_admins': {
            'level': 'ERROR',
            'filters': ['require_debug_false'],
            'class': 'django.utils.log.AdminEmailHandler'
        }
    },
    'loggers': {
        # other loggers
        'management_commands': {
            'handlers': ['mail_admins'],
            'level': 'ERROR',
            'propagate': True,
        }
    }
}

А в manage.py обернуть команду execute_from_command_line(sys.argv) исключением Exception, например так:

if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings")

    from django.core.management import execute_from_command_line
    from logging import getLogger
    import traceback

    logger = getLogger('management_commands')

    try:...

Представляю вашему вниманию книгу, написанную моим близким другом Максимом Макуриным: Секреты эффективного управления ассортиментом.

Книга предназначается для широкого круга читателей и, по мнению автора, будет полезна специалистам отдела закупок и логистики, категорийным и финансовым менеджерам, менеджерам по продажам, аналитикам, руководителям и директорам, в компетенции которых принятие решений по управлению ассортиментом.

На данный момент нет специального поиска, поэтому я предлагаю воспользоваться обычной поисковой системой, например, Google, добавив "vivazzi" после своего запроса.

Попробуйте

Выберите валюту для отображения денежных единиц