Задать вопрос
  • Можно ли сделать такие края блока на css?

    Ankhena
    @Ankhena Куратор тега CSS
    Нежно люблю верстку
    Фоновым градиентом под нужным углом.
    Можно в один псевдо, можно вообще без него.
    Правда, по количеству кода варианты с градиентами не выигрывают перед идеей заинлайнить svg в css
    Ответ написан
    Комментировать
  • Можно ли сделать такие края блока на css?

    Get-Web
    @Get-Web Куратор тега CSS
    Front-End Developer
    Вариант с drop-shadow и clip-path:
    Ответ написан
    Комментировать
  • Дырка ли в межбанковской системе быстрых платежей (СБП)?

    @sanchez1408
    На самом деле 99% дело происходит так.
    Т.к. в Тинькофф форма перевода по номеру телефона общая, то при вводе номера телефона Тинькофф автоматически в фоне делает запросы по СБП в банки, подключенные к СБП, это нужно, чтобы вывести в интерфейсе Тинькоффа банки, в которых у клиента получателя еще есть счета.
    А по требованиям НСПК если в идет попытка перевода в банк, который подключен к СБП, но клиент не дал своего согласия на получение переводов в рамках СБП - банк получатель должен оповестить клиента (не все банки следуют этому требованию - пример Сбер), что ему пытались сделать перевод и ему надо "подключить СБП".
    Поэтому если искать виноватых, то скорее проблема в Тинькофф, что он пытается сделать клиентский сервис, супротив рекомендациям/требованиям НСПК и делает фоновые запросы.
    ВТБ тут всё честно делает.
    Ответ написан
    2 комментария
  • Тэги внутри ссылки это нормально?

    bingumd
    @bingumd
    ...
    Ответ написан
    Комментировать
  • Как поставить интерпретатор php в PhpStorm нужной мне версии?

    myks92
    @myks92
    Нашёл решение — пометь вопрос ответом!
    Чтобы интерпретатор PHPStorm работал правильно — нужно указать полный путь к интерпретатору. Это можно сделать двумя способами:
    1. Указать путь /usr/bin/php и изменить симлинк ($PATH) на новую версию PHP.
    2. Использовать полный путь к интерпретатору php8. Например /usr/bin/php8.0,/usr/local/Cellar/php@7.4/7.4.16/bin/php и т.д. Ваш путь может быть другим.

    Чтобы узнать путь текущего интерпретатора можно запустить команду :
    $ which php
    : /usr/bin/php
    Ответ написан
    Комментировать
  • Как защититься от двойного списания в многопоточном приложении?

    @rPman
    Блокировку во время траты уже сказали, но бывает что процесс может длиться достаточно долго, чтобы пользователь в соседнем окошке не смог совершить параллельно оплату (у него будет все висеть), поэтому блокировки реализуют программно

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

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

    если проверка прошла, то обе выполнятся

    Кто сказал что СУБД позволит выполнить обе транзакции с одними и теми же исходными данными?
    Если обе транзакции начали исполняться параллельно, прочитали одни и те же данные, и пытаются их перезаписать, как СУБД будет себя вести? Позволит ли она вообще отработать обеим транзакциям? Или одна их них подождёт, пока не закончит работу другая? Вопрос гораздо интереснее, чем кажется. И, что самое главное, неглупые люди уже подумали над ним. Очень хорошо подумали.

    В доках постгреса написано ещё лучше.

    Или лучше каждый раз пересчитыапть из истории?

    Запаритесь пересчитывать, это не масштабируется, сложность расчёта будет всё время расти. Если считаете, что можете накосячить с текущим балансом - сделайте возможность его пересчёта согласно истории пополнений/трат. Это называется денормализованными данными. Это один из тех случаев, когда оправдано применение хранимых процедур для актуализации таких данных. Т.е. вместо непосредственной записи одновременно и в историю пополнений/трат и в актуальный баланс прямо из приложения, вы вместо этого вызываете хранимую процедуру, которая атомарно как пишет новую операцию - это ваши основные данные - так и меняет нужным образом ваши денормализованные данные - т.е. ваш баланс. Заодно в этой же хранимке можно дополнительно проверить возможность списания. Это решение не очень хорошо масштабируется, и вообще хранимки это антипаттерн для современных модных-молодёжных распределённых приложений, но судя по вашим вопросам врядли вы отвечаете за разработку сервиса, где таких списаний десятки тысяч в секунду, так что вам хватит.

    Вот на SO ещё предлагают много решений этой классической проблемы, ни одно из которых не является идеальным и лучшим для всех ситуаций.
    Ответ написан
    Комментировать
  • "Умение профилировать и отлаживать свой код без использования функции dd/var_dump" - это как?

    karabanov
    @karabanov
    Системный администратор
    Это о xdebug
    Ответ написан
    Комментировать
  • Как узнать версию windows, если в заголовках и системе они разные?

    1. А зачем?
    2. Никак, тк в заголовке может идти буквально что угодно.
    3. Заголовок в этом случае вполне правдив, и говорит, что у тебя NT 6.1 - это и есть win7
    Ответ написан
    2 комментария
  • Как реализовать данную стрелку?

    Ankhena
    @Ankhena Куратор тега CSS
    Нежно люблю верстку
    Взять её в SVG и поставить, например, фоном. Или фоном псевдо.
    Если SVG много, их можно сложить в спрайт.
    Можно писать инлайном прямо в код CSS с помощью url-encoder
    Можно поставить в разметку, если так удобнее, только не забыв задать aria-hidden.
    Ответ написан
    2 комментария
  • Как авторизоваться в git с помощью токена?

    Токен используется в качестве пароля при аутентификации, вместо твоего обычного пароля.
    Но лучше настрой ssh-ключи и используй их.
    https://qna.habr.com/q/964989#answer_1913237
    Ответ написан
    8 комментариев
  • Как получить текст выбранного option'а?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Поскольку в показанном select'е у option'ов отсутствуют атрибуты value, то их значениями будет их текстовое содержимое. Так что в данном конкретном случае текст можно получить с помощью метода val.

    Ну а вообще:

    $('select').change(function() {
      const text = $(':checked', this).text();
      console.log(text);
    });

    Или, к чёрту jquery:

    document.querySelector('select').addEventListener('change', function(e) {
      const select = this;
      // или
      // const select = e.target;
      // const select = e.currentTarget;
    
      const [ option ] = select.selectedOptions;
      // или
      // const option = select[select.selectedIndex];
      // const option = select.querySelector(':checked');
      // const option = [...select.options].find(n => n.selected);
    
      const text = option.text;
      // или
      // const text = option.textContent;
      // const text = option.innerText;
    
      console.log(text);
    });
    Ответ написан
    Комментировать
  • Как исправить ошибки в Git при клонировании репозитория?

    Lynn
    @Lynn
    nginx, js, css
    У вас опечатка в слове auto в файле настроек гита.
    Ответ написан
    1 комментарий
  • PHP обрезает строку, хотя strlen выдаёт правильную длину, как это исправить?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    https://www.php.net/manual/ru/function.strlen.php
    Замечание:
    Функция strlen() возвратит количество байт, а не число символов в строке.
    ...
    mb_strlen() - Получает длину строки
    Ответ написан
    Комментировать
  • Что такое MVC и как его использовать?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    На мелких одноразовых задачах вида "сделать форму, которая бы сохраняла что-то в таблицу и забыть про нее" понять преимущества MVC невозможно.

    MVC - это не про сделать, а про поддерживать и развивать.

    Представим, что вместо обычной формы мы решим сделать ajax. Если у нас будет обычный винегрет из SQL, PHP и html, то придется переписывать его весь.
    Если же у нас нормальная структура, то просто заменим во View вызов шаблонизатора на json кодирование. то есть поменяем одну строчку кода.

    Допустим, в дополнение к форме нам нужно будет сделать консольную команду, которая берет данные из файла.

    Если используется обычный говнокод-подход, то придется все писать заново.
    При использовании MVC, надо будет в этой утилите написать только чтение из файла, а дальше просто вызвать метод модели, который у нас уже есть.
    Ответ написан
    Комментировать
  • Как блоку за контейнером содержимое сделать внутри контейнера?

    @andand44
    Классический вопрос.
    Выбрать подходящий способ отсюда https://css-tricks.com/full-width-containers-limit...
    И сделать внутри этого блока container
    .full-width {
      width: 100vw;
      position: relative;
      left: 50%;
      right: 50%;
      margin-left: -50vw;
      margin-right: -50vw;
    }

    <div class="full-width">
      <div class="container"></div>
    </div>
    Ответ написан
    3 комментария
  • Как решить ошибку Cannot GET /solm?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    Вангую у тебя сервер не настроен под тип роутинга history. Гугли как настраивать твой сервер под SPA(все не-API пути должны быть заёрнуты на index.html). Ну или переключи роутер в режим hash.
    Ответ написан
    Комментировать
  • Почему не выполняется условие в JavaScript?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Не понимаю, что сложного в том, чтобы зайти в документацию. И увидеть там
    dataType
    Type: String
    The type of data expected from the server. Default: Intelligent Guess (xml, json, script, text, html).

    То есть мало того что у нас древнее и никому не нужное жквери, так оно ещё и играет в угадайку.

    Вместо которой надо явно написать, в каком формате мы данные ожидаем.

    Плюс из пхп лучше не плеваться непонятными словами, а отправлять в нормальном формате, например json.

    Ну и PHP код - это конечно, ужас.
    Ответ написан
    Комментировать
  • Как в безопасном режиме Windows с поддержкой командной строки провернуть экран?

    borisdenis
    @borisdenis
    Ленив и вреден...
    Безопасный режим на то и безопасный, что в нём загружается минимально возможный набор только стандартных драйверов обеспечивающих работу ОС с целью восстановления. Драйвер видеокарты загружается только базовый, без всяких свистоперделок, он не умеет поворачивать экран. Так что никак.
    Ответ написан
    2 комментария
  • Интерфейсы в связке с абстрактными классами?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Смысл простой.
    Интерфейс - это публичный контракт. То, как класс виден внешнему миру.

    Абстрактный класс - это прототип внутренней реализации, то, как он устроен внутри.

    Так что дополнять можно и нужно.
    Ответ написан
    Комментировать