Задать вопрос
  • Какими инструментами делать синхронное выполнение команд symfony по расписанию?

    glaphire
    @glaphire
    PHP developer
    Нет, крон просто "дергает" указанную команду, когда ее время наступило. Я думаю что лучше создать отдельную команду-список, которая будет по очереди вызывать команды на уровне кода и обеспечивать эту последовательность с промежуточными проверками. Чтобы решить эту задачу используя рэббит, нужно больше проверок, больше кода, вероятно что он тут не нужен
    Ответ написан
    3 комментария
  • Как извлечь названия программ из команды в bash?

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

    список всех программ расположенных в $PATH
    $ ls ${PATH//:/ } |awk 'NF && !/:$/'

    список, а точнее описание, встроенных(builtin) команд в оболочку bash можно посмотреть с помощью команды help
    $ help

    но думаю правильнее будет использовать type для определения типа команды
    $ type -t rg
    file
    $ type -t cd
    builtin

    $ type --help
    ...
    -t	output a single word which is one of `alias', `keyword',
    	`function', `builtin', `file' or `', if NAME is an alias,
    	shell reserved word, shell function, shell builtin, disk file,
    	or not found, respectively


    тип file по сути это чисто внешние программы, а builtin - внутреннии, на счет остальных могут быть нюансы, то есть при проверке через type оставляем тока те утилиты которые возвращают file.

    В итоге мы можем сгенерировать список(file.txt) чисто внешних программ из тех что лежат в $PATH:
    $ for i in $(ls ${PATH//:/ } |awk 'NF && !/:$/');do [[ $(type -t $i) == "file" ]] && echo $i;done > file.txt


    Допустим у нас есть файл test.txt с историей команд:
    sudo ls  | awk '!($NF ~ /\.[a-z]+$/)'
    for i in ~/*; do echo $(locate -c -r $i) $i; done | pv | sort -nr | bcat -t
    for f in *.zip; do unzip $f; done
    RACK_HANDLER=falcon rails s


    тогда:
    $ grep -o -w -n -f file.txt test.txt
    1:sudo
    1:awk
    2:pv
    2:sort
    3:zip
    3:unzip


    единственный недостаток это каждое совпадение пишет с новой строки, исправляем с помощью awk:
    $ grep -o -w -n -f file.txt test.txt |awk -F: '{if($1!=i){printf $2" "}else{print $2};i=$1}'
    sudo awk
    pv sort
    zip unzip


    если сравнивать с вашим шаблоном:
    sudo ls awk
    pv sort bcat
    unzip
    rails


    то мы видим что нету ls это из за того что, например, у меня это alias основанный на exa - внешней программе, хотя с таким же успехом это могла быть внутренняя программа, та же ls с подобранными ключами, но её бы тоже здесь бы не отобразило, в общем если алиасы включать в вывод то по идее их тоже нужно будет анализировать в отдельном обработчике.

    также естественно что иногда будут происходить косяки как например тут с zip при анализе строки
    for f in *.zip; do unzip $f; done
    zip тут не выступает в роли программы, но это всё же слово которое совпало с нашим списком утилит.
    bcat и rails не вывело так как данных программ не установленно.

    в общем если кратко то всё это реализовывается в два однострочника на bash:
    $ for i in $(ls ${PATH//:/ } |awk 'NF && !/:$/');do [[ $(type -t $i) == "file" ]] && echo $i;done > file.txt
    $ grep -o -w -n -f file.txt test.txt |awk -F: '{if($1!=i){printf $2" "}else{print $2};i=$1}'
    Ответ написан
    2 комментария
  • Почему сайт долго загружается?

    suffix_ixbt
    @suffix_ixbt
    https://www.babai.ru/
    А что Вы собственно хотели ?

    https://www.webpagetest.org/result/220218_AiDcRK_8AR/

    Загружается 115 элементов из которых чуть ли не 90% это сторонние загрузки !
    Ответ написан
    Комментировать
  • Как рассчитать "реальное" среднее время трека в наборе?

    usdglander
    @usdglander
    Yipee-ki-yay
    Вам нужно медиана?
    Ответ написан
    Комментировать
  • Как поставлять ssl сертификаты для docker image nginx в gitlab ci?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Сертификаты не должны быть частью docker image, и должны монтироваться снаружи. Тогда обновление сертификата не будет требовать нового билда продукта.
    Прокидывать снаружи их можно через mount
    Тогда обновил сертификат на маунте и перезапустил контейнер.
    Если жить в кубере/опенщифте - там сертификат можно в секрете хранить и монтировать как файл.
    Ответ написан
    Комментировать
  • Хотелось бы узнать как вы выбираете язык программирования для своих проектов?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Язык подбирают под задачу. Если проект делается под заказ, и под требования проекта подходят 2-3 языка, выбирают 1) Самый распространенный на рынке, с большим количеством спецов достаточной квалификации. 2) В случае сформированной команды - язык который хорошо знает большинство членов команды.

    Если это личный проект в аналогичных условиях - 1) Хорошо изученный язык, если проект задуман для выполнения в короткий срок или нужен как рабочий инструмент/коммерческий продукт. 2) Специально выбирается малознакомый язык, дабы сделать на нем что-то более-менее серьезное и прокачать скилл.

    Прочие маловстречающиеся случаи в принципе плюс-минус укладываются в описанные кейсы.
    Ответ написан
    3 комментария
  • Почему падает Redis server "Out Of Memory allocating 16400 bytes!"?

    @vitaly_il1
    DevOps Consulting
    Советую инсталлировать новую версию - 6.2 (https://redis.io/download). Или хотя бы 5.0.14 если действительно важно быть с 5.х.
    5.0.7 вышла больше двух лет назад.
    Ответ написан
    4 комментария
  • Как запускать докер контейнеры без установки Docker Desktop?

    Viji
    @Viji Автор вопроса
    DevOps Engineer
    вот собственно говоря ответ:

    https://lippertmarkus.com/2021/09/04/containers-wi...
    Ответ написан
    Комментировать
  • Как закрепить линзу в пластиковой или металлической трубе?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Термоклеевым пистолетом. Держит, даёт упругость и отодрать если что легко.
    Сначала любыми распорками, чтобы выставить углы, потом залить термоклеевым пистолетом, вытащить распорки и залить места, где они стояли.
    Ответ написан
    Комментировать
  • Как перенести bd Mysql c частично неработающего жесткого диска, примонтированного к работающей Linux?

    Melkij
    @Melkij
    DBA для вашего PostgreSQL?
    • перепроверяете, что СУБД остановлена и не запущена
    • находите datadir (например, /var/lib/mysql/ )
    • ставите на рабочей системе mariadb (или mysql - выясните, какая именно была установлена) той же самой версии
    • копируете целиком всё что есть в datadir в новое место жительства
    • запускаете СУБД и смотрите в лог
    Ответ написан
    6 комментариев
  • Планирую перейти с 1С на Golang на сколько реально в 42 года?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Почему не в SAP R3 ? или AXAPTA ?
    Ответ написан
    3 комментария
  • Планирую перейти с 1С на Golang на сколько реально в 42 года?

    @avost
    Судя по тому, что вы путаете фреймворк с языком, а го выбрали только потому, что считаете, что другие на нём будут тупить, ваш план обречён на провал. Если честно, не встречал среди программистов ни одного 1с-ника, а мой программерский стаж больше, чем возраст 1с. Я знаю, что такие в природе существуют, но не встречал. Вполне возможно, что у вас получится, но теория вероятностей работает против вас :).
    И попробуйте, всё же, разобраться чего вы всё-таки хотите. Сама постановка - флаттер проитив го, неверная. И "пойду в го потому, что я решил, что там все тупить будут" - ещё более неверная. А вообще, начните с питона.
    Ответ написан
    1 комментарий
  • Планирую перейти с 1С на Golang на сколько реально в 42 года?

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

    верно ли они говорят?

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

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

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

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

    В общем вы их спросите что они конкретно будут тюнить и почему. Нормальный специалист будет иметь что вам сказать. Причем объяснит четко и понятно.
    Ответ написан
    Комментировать
  • Golang в чём смысл?

    bingo347
    @bingo347
    Crazy on performance...
    Во-первых, любой бенчмарк можно написать так, что визуально будет выглядеть очень похоже, но на деле у одной технологии будут использоваться сильные стороны, а у другой нет (понятно кто выиграет). Притом это можно сделать как специально, дабы превознести одну из технологий, так и ненамеренно, просто потому-что человек писавший бенчмарк очень хорошо знает одну технологию и посредственно другую.
    Например, я вполне умею написать многие вещи на C, C# и Go, но знаю эти языки очень поверхностно, с другой стороны я очень хорошо знаю JS (в том числе достаточно много копался в кишках v8) и Rust, как думаете, кто победит, если я начну писать бенчмарки для сравнения этих 5 языков?

    хотя Golang изначально и задумывался, как яп для хайлоада
    Go изначально задумывался как ЯП, который сможет быстро освоить любой, кто базово знаком с программированием, дабы Google мог нанять тысячу джунов и они быстро прототипировали идеи без заморочек C/C++.

    А еще вся супер-пупер параллельность - на самом деле асинхронщина, работающая на небольшом пуле реальных потоков ОС. Притом без вариантов. Асинхронный рантайм - это тоже не бесплатно. На всяких I/O штуках асинхронщина показывает себя очень хорошо, но на сугубо вычислительных задачах - все ее преимущества становятся минусами. На шарпе есть контроль, где использовать асинхронщину, а где вынести вычисления в настоящий поток. На Go такой возможности нет.

    P.S. а вообще, в реальном мире Вы практически никогда не упретесь в производительность языка, ну разве что будете всюду втыкать самые неоптимальные алгоритмы. На деле бутылочным горлышком окажутся сеть и диски. И даже в сугубо вычислительных штуках Вы скорее упретесь в оперативку и процессорные кэши, а не в ЯП.
    Ответ написан
    2 комментария
  • Golang в чём смысл?

    1. Go был придуман в гугле для решения задач Гугла ещё задолго до того, как появился .net core со всем его перформансом.
    2. Go всё ещё порождает более компактные и не зависящие от окружения бинарники.
    3. Чтобы C# показывал результаты как в techempower - нужно писать код так, как никто его не пишет в реальном мире.
    В бэклоге . net команды даже пункты отдельные есть за то чтобы быть топ1 в бенчмарках
    4. Go всё ещё гораздо проще Шарпа, ибо п1
    Ответ написан
    Комментировать
  • Какую базу выбрать для bigdata?

    alexfilus
    @alexfilus
    Senior backend developer
    Звучит как задача для ClickHouse, Вроде как они недавно пофиксили производительность при отдельных инсертах без буфера. Даже если нет, есть схема с записью всех событий в Kafka и вычитыванием оттуда с помощью Materialized view в таблицу КликХауса. Эта схема точно рабочая и указанные нагрузки выдержит. Плюс отличное сжатие данных.
    Чистый PostgreSQL по производительности не сильно отличается от MySQL, а вот с дополнением TimescaleDB вставка становится очень быстрой, возможно вам его хватит. Там полноценный SQL и возможность редактировать данные без проблем. Неплохо сжимает.
    Про ScyllaDB уже написали.
    Ответ написан
    3 комментария
  • Алгоритм сопоставления двух текстов?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Начать с diff, потом docdiff. Последнее довольно неплохо диффает вордовские файлы.

    Главное забыл! Диссернетовкий детектор плагиата!
    Ответ написан
    1 комментарий