Задать вопрос
  • Как гарантировать монотонное увеличение значения поля при параллельных транзакциях с максимальным быстродействием?

    @Vitsliputsli
    А почему транзакция? Или они неявные? Инсерт должен быть атомарным или все таки итерирование сиквенса и следующая вставка не атомарны?
    В любом случае, вы решаете не ту задачу. Если идет гонка, значит события одномоменты и нам должно быть без разницы в каком порядке они отработают. Но, раз это важно, значит эти события зависимы, если так, то манипуляции с вставкой не помогут, сегодня вы победите порядок коммитов, а завтра будет гонка при получении сиквенса и тут уже ничего не сделаешь. Зависимые события должны обрабатываться последовательно в одном потоке, т.е. в вашем случае их должен обрабатывать один продюсер, иначе никак, если даже сегодня заработает, то завтра малейшая флуктуация поменяет порядок. Как альтернатива вы можете построить сложную логику проверки зависимостей, но контролировать такой код будет гораздо сложнее.
    Ответ написан
    Комментировать
  • Какие бывают биты типов файлов в Linux и где это применять?

    @Vitsliputsli
    Коды в доке: https://www.opennet.ru/man.shtml?topic=stat&catego.... Представления они для человека. Тип задается при создании, не думаю, что его можно поменять, т.к. разные типы - это совершенно разные структуры.
    Ответ написан
    Комментировать
  • Как в PHP использовать в родителе константу или статическую переменную из потомка?

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

    @Vitsliputsli
    Можно, но сперва изучите вакансии, чтобы иметь представление о рынке.
    Несмотря на повсеместный пиетет перед этой профессией, она вполне себе обычная. Это труд схожий с обычным тестированием, скурпулезный и монтонный. Как и в разработке, на первых парах в нем нет места для творчества, и это изменится лишь если повысите квалификацию и устроитесь в компанию, которая поощряет исследования.
    Знания нужные пентестеру те же, что и разработчику. Так как безопасное ПО создает именно разработчик. Другое дело, что на практике разработчики знают мало, из-за узкой специализации и игнорирования вопросов безопасности. Так, скорее всего, по фронту вам дадут только знания безопасности во фронте, а это очень маленькая часть. Да, и на беке зачастую многие вопросы безопасности игнорируются, тупо изза незнания. Поэтому хотя эти знания и необходимы, в разработке с вас будут требовать чаще иное, например структуризация кода, которая пентестеру не интересна.
    Ответ написан
    Комментировать
  • Стоит ли делить таблицу на две?

    @Vitsliputsli
    Queue и Information это разные сущности. Зачем их объединять? Нормализация управляет отношениями, а не таблицами, тут нет противоречия.
    Что вы выиграете объединив таблицы?
    Ответ написан
    Комментировать
  • Как разговаривать с кошкой удалённо через веб-камеру и колонки?

    @Vitsliputsli
    Любая видеосвязь с автоответом, например в Skype можно настроить автоответ на звонок.
    Ответ написан
    Комментировать
  • Как вытащить строку из текста?

    @Vitsliputsli
    Используйте регулярные выражения, в зависимости от вариативности текста, от обобщенного:
    /<b>(.*)<\/b>/
    до более узкого:
    /\(длина, ширина, высота\): <b>(\d+ x \d+ x \d+)<\/b> см. /
    Ответ написан
    Комментировать
  • Как вести базу знаний всех обновлений, исправлений и изменений, вносимых в проект?

    @Vitsliputsli
    Confluence, обычно в нем ведут базу знаний, также там есть теги - labels.
    Ответ написан
    Комментировать
  • Как правильно решить задачу?

    @Vitsliputsli
    select
        names.id,
        names.name,
        ages.age
    from names
    left join ages on names.id=ages.id and names.name='Андрей'
    Ответ написан
    Комментировать
  • Как распознавать в php слова (типо систем компьютерной алгебры)?

    @Vitsliputsli
    Берете транслятор, если на основе php, то например phplrt. И пишите грамматику вашего языка. Перед написанием рекомендую прочитать "книгу дракона", это прям библия компиляторов, как минимум главы про грамматику.
    Ответ написан
    Комментировать
  • Как выбрать данные, если нет в одной таблице, то взять из другой?

    @Vitsliputsli
    1) если вам нужен кеш, то используйте его как кеш. т.е. берите из кеша горячие данные, если их там нет, то идите за холодными данными.
    2) то, что вы попытались сделать, больше похоже на шардирование, когда данные делят на несколько таблиц, чтобы было меньше данных в одной таблице. Так ли это нужно? У вас сотни миллионов строк в таблице? Но и шардирование делается не так, выбирается критерий деления для пользователей, такой чтобы вы заранее знали в какой таблице лежит пользователь.
    А сейчас изза соединений производительность только ухудшается.
    Ответ написан
    Комментировать
  • Как автоматизировать запросы в Postgresql?

    @Vitsliputsli

    существует ли какой-то инструмент который позволяет запускать SQL-запросы от аналитиков и чтобы это было прозрачно и с логами?
    Рассматривали вариант репозиторий с CI/CD куда аналитик кладет свой SQL-запрос.


    Да хоть сами такой напишите, это просто.
    Но, проблема не в этом, работать от принципа "сломали прод - щас по логам найдем кто" это очень хреновый вариант. Я к тому, что подобные запросы, должны верифицироваться, и желательно не только админами, но и техническим руководителем проекта. Да это долго, да тяжко для всех участников, но это лучше, чем положить прод.
    Только так, если дорожите стабильностью.
    Если какието запросы делаете слишком часто - очевидна необходимость автоматизации, добавления функционала в админку, т.к. при большом кол-ве, фактор человеческой ошибки вырастет. А само наличие таких запросов, если их мало, нормально для большинства систем.
    Ответ написан
    Комментировать
  • От чего зависит количество единоверменных запросов, которые может обрабатывать БД?

    @Vitsliputsli
    Кол-во параллельных операций в один момент времени зависит от кол-ва ядер процессора.
    Только вот запрос к БД это не атомарная инструкция процессора, а значит СУБД может выполнять множество запросов, выставляя их на паузу в произвольном месте и переключаяясь на другие запросы. А как это будет, слишком завязано на сами запросы, что они делают, как блокируют друг друга, и от предпочтений СУБД.
    Ответ написан
    2 комментария
  • Как лучше построить архитектуру ML-сервиса?

    @Vitsliputsli
    Если подразумевается высокая нагрузка:
    Т.к. параллелизм, то сервис лучше писать на Go, Python тут плохой вариант.
    А вместо rest лучше grpc, если для модели нужно много данных.
    Ответ написан
    2 комментария
  • Как искать работу мидлу, если не разу не работал?

    @Vitsliputsli
    Стоит ли подавать резюме на мидл или синьор разработчика или лучше поработать джуном.

    Не стоит. Мидл и тем более сеньор, который придет на собеседование и будет с опаской поглядывать на собеседующего, а вдруг что.... Такой никогда не пройдет собеседование.
    Если же вы уверены в своих силах, то в чем проблема?

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

    @Vitsliputsli

    Почему следующий код на PHP печатает 7, а не 12?

    Потому что это не js. А global работает ровно так как описано в доке, по-другому никак, т.к. область видимости работает иначе в языке.
    А делать надо так, чтобы функция внутри себя не обращалась с произвольными данными извне, только с теми, которые вы заранее объявили. Только так можно контролировать код. А значит global не нужен.
    Ответ написан
    Комментировать
  • Как пробросить подключение к удаленной базе данных mysql в phpstorm?

    @Vitsliputsli

    Но когда я хочу выполнить скрипт на локальном проекте в phpstorm

    PHPStorm - это IDE, она не выполняет скрипты. Скрипты выполняет интерпретатор.
    Ответ написан
    Комментировать
  • Какие методики продуктивного глубокого освоения многих направлений программирования можно взять на вооружение?

    @Vitsliputsli
    Не обманывайте себя, он знает также мало, как и все остальные. Просто спрашивает он то, что знает, и разумеется не спросит то, что не знает. А получилось ли так, что ваш круг знаний не совпал с его, или действительно ваш круг знаний слишком мал однозначно сказать нельзя.
    То, что вы плотно не работали с брокерами сообщений или ActiveRecord вообще ничего не значит. Тоже самое про алгоритмы, хотя тут с оговорками, смотря о чем была речь. Опять же, что подразумевается под "внутреннее устройство баз данных", если что из себя представляет B-Tree, то middle должен это знать, а если сколько раз MySQL в отличие от PostgreSQL записывает каждую строчку на диск, то не обязательно.
    И это, не говоря о том, что спросить он мог не то, что вам понадобится для работы, и даже не то, что сам использует, а то что вчера прочитал на Хабре и чем решил выпендриться.
    Ответ написан
    Комментировать
  • Нужна концепция, часто ли используете блок схемы скриптов и чем пользуетесь?

    @Vitsliputsli
    Иногда. Как составляющая ТЗ (заказчик оформляет, либо уже внутренний аналитик). Как средство взаимодействия между заказчиком, аналитиками, разработчиками, тестировщиками. Описывается примитивная логика, но которой много, между разработчиками оно не нужно.
    Ответ написан
    Комментировать
  • Как вынести запросы rest api на постоянное соединение?

    @Vitsliputsli
    Хочется вынести одно постоянно соединение api(или части запросов) на одно постоянное соединение. Остальной сайт и странички будут работать с множественными соединениями.

    Выделите для api отдельный пул php-fpm воркеров из 1 штуки.
    Ответ написан
    Комментировать