Задать вопрос
  • Можно ли написать функцию, которая меняет значение таблицы автоматически в зависимости от времени?

    @Vitsliputsli
    Шедулер на стороне СУБД, либо на стороне app. Но проще и лучше просто фиксировать время до которого резервирование активно и проверять его при опросе статуса.
    Ответ написан
    Комментировать
  • Планирую перейти с 1С на Golang на сколько реально в 42 года?

    @Vitsliputsli
    Будет тяжело. 1С - это не язык общего назначения, он достаточно специализирован, большую часть придется изучать с нуля. Для разработчика изучение нового языка - это просто освоение другого инструмента (если, конечно, у него есть хорошая база), но даже в этом случае не всякий работодатель адекватно воспринимает такой переход (могут относиться как к джуну). Для 1С тем более.
    20 лет на одном месте - это очень много. Таким людям сложнее осваивать новое, не только новый язык, любые новые подходы. А если компания за 20 лет не меняла свои подходы в разработке, то еще хуже.
    Многие работодатели смотрят на возраст. Некоторые кичатся своим "молодым проактивным коллективом". Некоторые тимлиды считают, что после 30, 35, 40 способность к обучению падает вплоть до необучаемости. Но если город большой, то обязательно найдете компанию, где весь коллектив 40+, либо компанию где нет подобных стереотипов.
    В конечно итоге, все зависит только от вас. Если не утратили способность изучать новое, и есть желание, то все получится.
    Ответ написан
    Комментировать
  • MVC (PHP): правильно ли понимаю слои?

    @Vitsliputsli
    Модель (Model) - слой работы с данными. мне сложно воспринять этот слой, т.к. вряд ли контроллер всегда работает напрямую с моделью ?

    Контроллер всегда напрямую работает с моделью.

    Наверняка же есть какие-то промежуточные слои ? Например Сервис ? А в сервисах уже вызываются DAO или Repository (кстати, в чем у них отличие?).

    Нет никаких промежуточных слоев. Какого рода логика будет в модели, это уже ваше право, MVC этим не занимается.
    Мысль MVC отделить обработку пользовательского ввода (Контроллер) и вывода (Представление) от внутренней логики приложения (Модель). Вот и все.

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

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

    @Vitsliputsli
    Для простых файлов csv можно воспользоваться командами ОС (в которых нет переносов строк внутри строки).
    К примеру, у меня поиск 9 000 000 строки используя php занимает 31 секунду, а через sed менее чем за пол секунды.
    Для сложных условий уже не такое большое различие.
    Ответ написан
  • Как вывести строки с бд в зависимости от их количества с ограничением?

    @Vitsliputsli
    Наверное, потому что:
    PDOStatement::fetch — Извлечение следующей строки из результирующего набора
    в то время, как есть:
    PDOStatement::fetchAll — Выбирает оставшиеся строки из набора результатов
    Ответ написан
    Комментировать
  • Какие проблемы с сетью решаются низкоуровневой отладкой?

    @Vitsliputsli
    Подскажите, какие проблемы с сетью реально встречаются на практике, которые можно обнаружить и решить таким способом?

    Проблем много и разные.
    Касательно неправильного порядка доставки TCP-пакетов, то такое возможно при балансировке нагрузки на несколько каналов, которые работают с разной скоростью.
    Или, например, при использовании в сети шифрования, видел такое на Dionis DPS, из-за распараллеливания расшифровки.
    BPF ничего не решает, только помогает обнаружить. Насколько BPF позволяет легче диагностировать трудно сказать.

    Может, что-то можно эмулировать на виртуалках?

    А зачем? Есть же tc, с возможностью эмуляции различных сетевых проблем.
    Ответ написан
    Комментировать
  • Почему выдает ошибку bash: npm: command not found?

    @Vitsliputsli
    Ну раз bash пишет что команда "npm" не найдена, вероятно стоит установить npm.
    Ответ написан
  • Взаимосвязанные сайты?

    @Vitsliputsli
    У каждого сайта есть свой сервер, своя статика и своя база данных. И все эти сервера находятся далеко друг от друга.

    Например XDCR.
    Ответ написан
    2 комментария
  • Какой будет ответ var_dump(0 == "wow"); ??

    @Vitsliputsli
    Нет, не так.
    В 7 версии: т.к. сравниваем число и строку, то преобразовываем строку в число (int)"wow" = 0, и сравниваем результат: 0 и 0 - true.
    В 8 версии: т.к. сравниваем число и строку, то проверяем содержит ли строка число, в данном случае - нет, не содержит (что-то вроде is_numeric("wow")), а раз не содержит - false.

    Отсюда вывод, не стоит использовать подобные конструкции. Всегда пользуйтесь сравнением с учетом типов, если нужно, то приводите к нужному типу вручную. Такая конструкция возможна только в самом крайнем случае.
    Ответ написан
    2 комментария
  • Стоит ли использовать эти настройки для pdo?

    @Vitsliputsli
    Немного погуглив выяснил что
    $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
    лучше не использовать.

    Да, лучше, если подразумевается вообще не указывать. PDO сам выберет лучшую настройку для конкретной СУБД.
    Ответ написан
  • Что лучше выбрать MariaDB or Mysql?

    @Vitsliputsli
    Лучше для чего?
    В сложных нагруженных решениях используют сборку Mysql от Percona, т.к. выбран нормальный движок для таблиц и отличные инструменты мониторинга. Большинство из них разработаны Percona. Отличные имеется ввиду для Mysql, для других решений бывает и лучше, и это не значит что mysql говно, просто везде свои плюсы и минусы.
    Хз почему ChairfaceChippendale пишет, что Percona куда-то канула, на последнем хайлоуде живее всех живых. Да и решения ни куда не исчезают, даже если бы и канула.
    Ответ написан
  • Как убедиться что сообщение дошло websocket?

    @Vitsliputsli
    В чате кроме онлайн отправки сообщений должен быть механизм отложенного получения. После соединения клиент проверяет накопившиеся сообщения. Периодически клиент проверяет потерянные сообщения. Если у сообщений последовательные ID, то по пропускам клиент также определяет потерянные сообщения.
    Как вариант контроль не на стороне клиента, а на стороне сервера. Тогда клиент подтверждает получение. Но это больше взаимодействий и хранения данных на стороне сервера.
    Ответ написан
    Комментировать
  • Как составить запрос для удаления строк, если таких строк больше чем X?

    @Vitsliputsli
    ROW_NUMBER, либо используйте переменную.
    Ответ написан
    Комментировать
  • Вирусы это частое или редкое явление?

    @Vitsliputsli
    Именно так, вирусов практически нет. Наверное, потому что они теперь легко перехватываются антивирусами. Но не уменьшилось кол-во других вредоносных программ, те же трояны, которые расчитывают на невнимательность и неосторожность пользователя. Дошло до того, что теперь вирусами называют любой вредоносный код в том числе трояны.
    Ответ написан
    Комментировать
  • В чем проблема с битностью у auditd?

    @Vitsliputsli
    Перепутаны местами список и действие, и путь до файла нужно указывать. Примерно так:
    auditctl -a exit,always -F arch=b64 -S open -F path=/etc
    Ответ написан
    Комментировать
  • Потенциальные проблемы программиста без послешкольного образования?

    @Vitsliputsli
    Может произойти. Тем более неизвестно как все сложится в жизни.
    Не хочется тратить 5 лет, есть заочное образование, за относительно небольшие деньги, показываясь раз в год, можно получить полностью официальную бумажку.
    Ответ написан
    Комментировать
  • Как через PHP запустить Python скрипт через pipenv?

    @Vitsliputsli
    Как и любую другую внешнюю команду - через system, exec или другую команду, которая больше подойдет.
    Ответ написан
    Комментировать
  • Что такое API в PHP?

    @Vitsliputsli
    "API - это интерфейс, для работы с какой либо сущностью/объектом/классом/бд"

    В какой-то степени - да. Но я бы определил так:
    API - это контракт между системами, каким образом данные передаются от одной к другой, т.е. некая спецификация описывающая формат обмена. Благодаря наличию контракта каждая из систем может однозначно определить, что запросила или ответила другая система.

    Здесь есть важные моменты: обе системы в курсе о спецификации и она не оставляет возможности иного толкования.
    И, кстати, зачастую эти системы могут быть написаны на разных языках, или переписаны на другие языки, но формат обмена остается универсальным, и одним и тем же.
    Ответ написан
    Комментировать
  • Как передать на бекенд требования к API?

    @Vitsliputsli
    Многие фронтендеры относятся к беку, как к некой обертке для работы с базой данной. Когда такие становится лидом команды и начинают диктовать свои требования беку, начинается ад, проект даже с простым беком превращается в нечто монструозное, разваливающиеся на ходу. Но, так как снаружи бек не виден, руководство считает, что дело в отдельных тупых бек-разработчиках, которые артачатся, не хотят работать и увольняются.
    Судя по вашим фразам, вы скорее всего один из них. Так как уверены, что приложение - это то, что на фронте, что api - это хрень, которая завязана на отображении информации на фронте, что разработчики бека не нужны при разработке архитектуры и вообще пофиг, что они там делают, главное чтобы давали то, что хочет фронт.
    Но, раз вопрос задан, значит сомнения вас посещают. Поэтому: приложение это не только фронт, а зачастую фронт это не самая сложная его часть. Бек - это не обертка над базой данных, и если вы поменяете значение в базе, это не значит, что к примеру, в потоковом вещании сменится кодек (вот, кому-то может и смешно, а мне в такой ситуации ни фига не было весело). С помощью API получают данные, поэтому не важно, что там у вас напроектировали дизайнеры, или как эти данные выводит фронт, API должен быть универсальным и не зависить от того как вы отображаете данные, поэтому, к примеру, бек может вам дать для получения данных несколько универсальных запросов, а не один специальный. В общем, все гораздо сложнее, и ваш вопрос как состыковать фронт и бек перерастает в вопрос как формировать архитектуру проекта, и как управлять командой.
    Ответ написан
    17 комментариев