• Как сделать такой эффект для курсора?

    victormayorov
    @victormayorov
    Frontend разработчик
    легко гуглиться
    Ответ написан
    1 комментарий
  • Можно ли рассторгнуть договор самозанятого?

    1. Не существует "договора самозанятого". Самозанятость - это статус, при котором ты можешь вместо НДФЛ платить НПД, а твой заказчик не обязан выступать твоим налоговым агентом.

    2. Ты просто заключил какой-то договор. В любом договоре должны быть условия для его расторжения, в том числе досрочного, если у договора есть срок.
    Если условий нет - используются общие основания: ГК РФ ст 450

    ГК РФ Статья 450. Основания изменения и расторжения договора
    В каких случаях можно изменить предмет или иное существенное условие договора

    1. Изменение и расторжение договора возможны по соглашению сторон, если иное не предусмотрено настоящим Кодексом, другими законами или договором.

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

    (абзац введен Федеральным законом от 08.03.2015 N 42-ФЗ)

    2. По требованию одной из сторон договор может быть изменен или расторгнут по решению суда только:

    1) при существенном нарушении договора другой стороной;

    2) в иных случаях, предусмотренных настоящим Кодексом, другими законами или договором.
    Существенным признается нарушение договора одной из сторон, которое влечет для другой стороны такой ущерб, что она в значительной степени лишается того, на что была вправе рассчитывать при заключении договора.

    3. ...

    4. Сторона, которой настоящим Кодексом, другими законами или договором предоставлено право на одностороннее изменение договора, должна при осуществлении этого права действовать добросовестно и разумно в пределах, предусмотренных настоящим Кодексом, другими законами или договором.

    (п. 4 введен Федеральным законом от 08.03.2015 N 42-ФЗ)


    Если это был договор на оказание услуг, то ты, как исполнитель, можешь в одностороннем порядке отказаться от оказания услуги, но ты обязан будешь вернуть все деньги, которые тебе выплатили авансом.
    Например:
    У тебя был договор на оказание услуг на 100к рублей, в рамках которого ты должен был оказать две услуги.
    При этом вы с заказчиком договорились, что плата будет вноситься частями: 50% аванс и 50% по факту выполнения.
    Первую услугу ты оказал, за что тебе оплатили положенные 50к и аванс 25к за следующую.
    Но вот ты отказываешься от своих обязательств - тебе нужно будет вернуть эти 25к аванса.
    (А то и ущерб, если в процессе ты ещё какой-то ущерб нанёс.)


    нужно искать новую работу, потому что на эти деньги тупо не прожить

    А вот это уже пахнет нарушением закона, тк у ваших отношений с заказчиком есть признак трудовой деятельности. (Как между работником и работодателем)
    Ответ написан
    Комментировать
  • Как происходит кеширование, если вызывает функция slow?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    В js функция не является чем-то особенным и неприкасновенным.

    function slow(x) { ... }
    Утириовано: создана функция и положена в переменную slow, аналогично:
    var slow;
    slow = function (x) { ... };


    slow = cachingDecorator(slow);
    Пишем в переменную результат вызова cachingDecorator с аргументом из slow.

    Всё происходит по порядку:
    0. Создаётся функция и кладётся в пременую slow.
    1. Берётся текушая функция из slow.
    2. Кладётся в аргуметы cachingDecorator.
    3. Результат cachingDecorator(slow) кладётся в переменную slow.

    Есть всякие нюансы и оговорки, но в целом не следует переусложнять, со всеми сущностями в js можно работать одинаково.
    Ответ написан
    5 комментариев
  • В чем разница записи массива через указатели?

    CityCat4
    @CityCat4 Куратор тега C
    //COPY01 EXEC PGM=IEBGENER
    разве они не аналогичные?

    Нет.
    *(current-1) // Взять значение по адресу current - 1
    (*current-1) // Взять значение пo адресу current и вычесть из него (значения) 1
    Ответ написан
    Комментировать
  • В чем разница записи массива через указатели?

    wataru
    @wataru
    Разработчик на С++, экс-олимпиадник.
    Проблема в том, что * выполняется перед вычетанием. *(current-1) - это предыдущий элемент. (*current-1) в плохой версии - это текущее значение минус 1.
    Ответ написан
    Комментировать
  • Что не так с алгоритмом шифрования фотографий?

    @U235U235
    Никогда не используй сжатие с потерями jpeg для таких целей. Используй PNG.
    Ответ написан
    2 комментария
  • Использование Linux?

    smorman
    @smorman
    When In Rome do as The Romans do...
    Переключись с Wayland на Xorg и будет тебе счастье!

    Все симптомы, что ты описал - это как раз из вяленого (Wayland), а он по умолчанию в последних релизах (x)buntu.
    Пока что основная масса желзяк (дрова к ним) не работают корректно или вообще не работают под ним из-за недоработок, а вернее нежелания разрабов допилить вяленого, как положено.

    Переключись на Xorg и всё будет работать, аки АК-47!

    Как это сделать?
    Вот в этом посте я дал ссылку на статью, как это сделать:
    пост
    Ответ написан
    5 комментариев
  • Как можно улучшить код?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Как можно улучшить код?

    - отформатировать по какому-нибудь стандарту, чтобы хотя бы строчки не гуляли влево-вправо.
    - пользоваться тернарным оператором вместо if когда это имеет смысл. На мой взгляд, d = n < 0 ? -n : n выглядит куда лучше семистрочного if/else.
    - не дублировать код когда этого легко избежать:
    if(n<0) {
        cout<<"-";
    }


    Ну и добавлю, что у этого кода есть проблема с обработкой входного значения -2147483648.
    Ответ написан
    Комментировать
  • Как некоторые сайты определяют что запрос от прокси?

    CORS-это не сайт, а браузер твой ругается. Выставляй корректные CORS-заголовки
    Ответ написан
    Комментировать
  • Как запустить сервер nodejs без порта?

    vabka
    @vabka Куратор тега Веб-разработка
    но не будет ли возникать конфликтов в работе клиента и сервера,

    Не должно. Просто разруливай по путям - что к бэку должно идти, а что на статику.

    А чтобы "без порта" надо запускать на 80 и 443 порте.
    Но если на этой же машине nginx стоит, то будет конфликт.
    Ответ написан
    Комментировать
  • Пару вопросов по использованию докера в продакшене?

    Griboks
    @Griboks
    Использовать докер в продакшене - нормальное решение?

    Да, но есть один нюанс... Судя по вашему вопросу, вы его точно не учли.

    Не упустил ли я какие-то важные команды, которые не используются при разработке, но нужны перед сборкой продакшена?

    Выкидываете build и git, создаёте docker registry, предварительно собираете образы (без гита, только полезные файлы в slim образе), пушите их в реестр, на проде прописываете нужные образы нужных версий. Поднимаете через compose + устанавливаете restart = unless stopped.

    после чего память на сервере закончилась

    Выкидываете git, делаете docker system prune раз в месяц, ставите в настройках демона ротацию логов.

    Автоматический бекап базы данных - ответственность самого сервиса (в коде делать дамп), докера (использовать какой-то image для бекапов) или сервера (непосредственно на сервере настроить крон)?

    Docker image не используется для бэкапов, потому что он не может изменять свои файлы. Файлы изменяются в контейнерах, volume или маунтах.
    Поэтому бэкап - это задача сервера. Только бэкапить надо не рядом с базой, а на другой сервер.

    Как не терять данные из бд при перезапусках контейнера?

    Контейнер не теряет файлы при перезапуске. Скорее всего, вы его тупо удаляете, а затем пересоздаёте.

    Но тк приложение работает в докере, я не могу выполнить nano app.logs для просмотра логов.

    Писать логи в другое место/ docker attach / docker cp / экспорт логов и метрик в сервис мониторинга.

    p.s.
    Вот вам линтер для обучения.
    Ответ написан
    Комментировать
  • Пару вопросов по использованию докера в продакшене?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    1. Использовать докер в продакшене - нормальное решение?

    Нормальное.
    3. У меня был сервер на 50 гигов

    Докер хранит все слои, образы и логи, периодически, необходимо чистить не используемые образы docker system prune.
    4. Автоматический бекап базы данных

    Я бы cron использовал для этого.
    5. Как не терять данные из бд при перезапусках контейнера?

    Не использовал, но слышал много хорошего про Docker volumes.
    6. Node.js приложение само пишет нужные мне логи и кладет в корень проекта.

    Docker volumes.
    Ответ написан
    Комментировать
  • Почему Response.status это значение, а status = { Response } это ссылка на Response?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Деструкция выглядит так: const { status } = result;
    Вы же создаёте переменную status и в неё записываете объект {result: result}.
    Поэтому возвращает ваша функция вот такую конструкцию:
    {
      data: ...,
      status: {
        result: result,
      }
    }
    Ответ написан
    Комментировать
  • Правильно ли понимаю работу ссылок в С++?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Это называется передача по ссылке/передача по значению. С амперсантом, передается ссылка на переменную. Иначе - копия значения переменной. Если вы будете менять копию значения, ничего вне функции не изменится, ведь вы копию меняете. А если будете менять значение ссылки, вы будете менять значение той же самой переменной.
    Ответ написан
    Комментировать
  • Не приходит в голову алгоритм лучше. Как сделать лучше?

    Lynn
    @Lynn
    nginx, js, css
    Откройте для себя циклы.
    https://doka.guide/js/loop/
    for (let i = 0; i < clickCount - 1; i++) {
        elementstypeWorkFirst[i].innerHTML = '';
    }
    Ответ написан
    Комментировать
  • Почему нельзя использовать std::function как аргумет шаблонной функции?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Потому что лямбда не ялвяется std::function. Компилятор, вообще говоря, может лямбду привести к типу std::function, но не в вашем случае. Вам надо, например, самим преобразовать лямбду в std::function:
    std::function<bool(int, int)> comp = [](int left, int right)
      {
        return left < right;
      };
      Sort(vec, comp);


    Сам компилятор тут это сделать не может, потому что ему тип к которму приводить-то неизвестен - он зависит от параметра шаблона T.

    Можно, еще, например, указать компилятору параметры шаблона, тогда все скомпилируется:
    Sort<int>(vec, [](int left, int right)
      {
        return left < right;
      });


    Но лучший вариант - не использовать std::function в шаблоне. Просто используйте какой-то typename U, у которого вы продполагаете существует operator(int, int). Если туда передать не function и не лябмду, оно не скомпилится:

    template <typename T, typename U>
    void Sort(std::vector<T>& vector, U comparison) {
        // Используете comparison, как-будто это std::function:
        if (comparison(1, 1)) return;
    };
    
    
    int main()
    {
      std::vector<int> vec = { 1, 2, 3, 4, 5, 7, 6, 9 ,8 };
    
      Sort(vec, [](int left, int right) -> bool
      {
        return left < right;
      });
        return 0;
    }
    Ответ написан
    Комментировать
  • Что и почему лучше подключить в C++? math.h или cmath? stdio.h или cstdio?

    @res2001
    Developer, ex-admin
    В С++ используют вариант где не указывают расширение .h в include. С расширением это для исходников на Си.
    Впрочем, как вы верно заметили, в плюсах это то же работает. Обычно внутри <cxxxx> просто делается #include <xxxx.h>
    Ответ написан
    Комментировать
  • Как справляться с зависимыми задачами?

    @d-stream
    Готовые решения - не подаю, но...
    Возможно это вначале покажется чутка избыточным, но по размышлению - нет:

    master == прод
    dev == ветка стабильной разработки, где живут более-менее целостные фичи
    feature_xx == опять же целостная, самостоятельная фича, привносящая осмысленный функционал и состоящая возможно из множества задач

    фичи отращиваются и возвращаются в ветку dev и их можно даже на уровне ветки протестировать
    в какой-то момент от ветки dev отращивается ветка release (по-сути релиз-кандидат) и потом по выпуску (релизу) вливается в master и dev
    go to 1

    при таком подходе в dev живёт достаточно стабильное решение, а ветках feature - конкретные фичи, которые к моменту влития в dev - в общем-то тоже стабильны и функциональны.

    ну и собственно релизный цикл получает некую "асинхронность" относительно цикла разработки:
    - захотел релиз-менеджер к юбилею фирмы выпустить релиз - пожалуйста - в dev есть пачка фич
    - накопилось осмысленное кол-во фич - вперёд в релиз
    - оттестирована конкретная ожидаемая фича - в релиз (ну и попутно менее значимые)

    сорри за слегка вольный пересказ по-сути большинства моделей ветвления гита, гитлаба, атлассиана и др.)
    Ответ написан
    Комментировать