Задать вопрос
  • Почему Linux предпочтительнее для администрирования и чем? Почему многие предпочитают её?

    dyuriev
    @dyuriev
    A posteriori
    Скорее всего под таким вопросом начнется всем уже известный срач. А пару человек еще упрекнут вас в том, что у них 30-50-70 процентов серверов под FreeBSD

    Мое скромное мнение
    • Бесплатность
      Да, сейчас кто-нибудь заявит о том что на Red Hat не дешевле, а иногда и дороже Windows, но большинство дистрибьютивов Linux бесплатны
    • Открытость
      Данный факт не ценишь ровно до того момента, как приходится сделать что-то, что не разжевано в интернете. Рано или поздно разработчик доходит до того момента, когда ползет в исходники с глубоким душевным вопросом "как это %&$ должно работать?". Ибо некоторые моменты либо документированы неправильно, либо не полностью, либо в коде досадная ошибка, которую никто не замечал ранее, ну или замечал, но багрепорт/коммит с фиксом разрабу не кидал.
      В Windows-среде, особенно если это сама система, а не прикладной софт, данный баг может вылиться в недели или месяцы страданий. Там только реверс-инжиринг, если саппорт вас игнорит.
    • Документированость
      Команда не сработала как ожидалось? man commandname
      Не помогло? Гляньте сайт разработчика, там обычно на столько обширное вики/документация, что увлечетесь чтением.
      Программа свежая и документация пока не исчерпывающая? Гляньте репозиторий, поиском найдите по исходнику место которое хотите вызвать параметрически - скорее всего там увидите комментарий разраба, кто писал этот код, заодно еще парочку недокументированных возможностей почерпнете.
      В конце концов, если вдруг вам станет интересно, почему сделано так, а не иначе - гляньте багзиллу проекта - скорее всего поиском найдете обсуждение данного куска кода.
    • Гибкость
      Воткнуть свой драйвер в прямо в ядро? Легко (если уж научитесь драйвера писать, то внедрить в ядро особых проблем не составит)
    • Повсеместность
      Че уж там сервера. Роутеры, телефоны, embedded-решения - там везде в кулуарах за редким исключением крутится ядро Linux и знакомые пакеты и команды. Этакая стандартизация.
    • Эффект IKEA
      Вы сами того не подозреваете, но когда по кирпичикам соберете этот чертов конструктор, заставите каждый винтик крутиться (с вероятностью стремящейся к 100%) так как вам надо, вы полюбите эту систему.

    И еще раз напоминаю, что это мое скромное личное мнение.

    Несомнено, сервера и на Windows бывают быстрые, стабильные, работающие 24/7/365 годами. Но так уж повелось.
    Ответ написан
    2 комментария
  • Проблема с MySql, кто знает?

    develx
    @develx
    Web developer
    if ($result == $email)
    Вы сравниваете в условии равенство объекта https://www.php.net/manual/ru/class.mysqli-result.php или false и строки, условие никогда true не будет.
    Ответ написан
    Комментировать
  • Есть сервисы или библиотека для склонения слов?

    Adamos
    @Adamos
    Тег "морфология" указан, бросаем в Гугль "PHP морфология", среди первых же ссылкок - phpMorphy.
    Быстрее, чем вопрос на Тостере.
    Ответ написан
    4 комментария
  • Почему функция ничего не возвращает?

    Kodenkos
    @Kodenkos
    Фрилансер
    Скорее всего строка в кодировке utf8, где 1 символ занимает 2 байта
    Ответ написан
    3 комментария
  • Альтернативные функции AJAX?

    hzzzzl
    @hzzzzl
    посмотри в нетворке еще и эту вкладку Websockets, наверняка там что-то происходит

    5f79a6220376b126620786.png
    Ответ написан
    5 комментариев
  • Альтернативные функции AJAX?

    DevMan
    @DevMan
    websockets.
    но они тож палятся в специальном табе.
    Ответ написан
    Комментировать
  • Как прокачать регулярное выражение?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    ну ты чОткий пацан, а через DOM дерево никак? или там strip_tags ?

    такое делается в два действия - сначала между тегами, потом чек на валидность

    попытка запихнуть в регулярку приводит к неизбежному БУМЦ рано или поздно
    Ответ написан
    2 комментария
  • Как перенаправить поисковик на HTML файл через nginx?

    @Sys3X Автор вопроса
    Разобрался.
    Нужно было вот так:

    rewrite ^ /file.html break;
    Ответ написан
    1 комментарий
  • Как увеличить max_execution_time?

    glaphire
    @glaphire Куратор тега PHP
    PHP developer
    Это неправильный подход для решения такой задачи, крупные файлы нужно парсить асинхронно (через очереди)
    Ответ написан
    3 комментария
  • Запрос в MySQL. Есть идея?

    Melkij
    @Melkij
    DBA для вашего PostgreSQL?
    Для поиска самих link_id
    select link_id from tablename
    group by link_id
    having count(*) = sum(flag  = 1)

    Либо
    select id from links
    where exists(select null from tablename where flag  = 1 and link_id = links.id) -- возможно это условие вам по задаче не нужно
    and not exists(select null from tablename where flag != 1 and link_id = links.id)


    Вычитывать сами строки можно попробовать через
    select ...
    from tablename t
    where t.flag = 1
    and not exists(select null from tablename sq where sq.link_id = t.link_id and sq.flag != 1)


    При том, какой из вариантов эффективнее - критично зависит от распределения данных. При большой числе различающихся link_id с малым числом строк на каждый link_id и малым ожидаемом числе подходящих строк под задачу может быть эффективнее именно
    select ... from tablename t where t.link_id in (
    select q.link_id from tablename q
    group by q.link_id
    having count(*) = sum(flag  = 1)
    )


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

    Третий запрос по ожиданию лучше отзовётся на случай малого числа flag = 1 строк в таблице.

    Самый быстрый на чтение вариант, впрочем, всё равно не выполнять обработку этого фильтра налету, а каким-то образом его материализовать и хранить предварительно рассчитанным.
    Ответ написан
    7 комментариев
  • Запрос в MySQL. Есть идея?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    например так:
    SELECT t.*
    FROM my_table t
    WHERE NOT EXISTS(
      SELECT null FROM my_table t2 WHERE t2.link_id = t.link_id and t2.flag=0
    )

    Можно и с джойном:
    WITH tt AS(SELECT DISTINCT link_id WHERE flag = 0)
    SELECT t1.*
    FROM
        my_table t1
        LEFT JOIN tt t2 ON t2.link_id = t.1link_id
    WHERE t2.link_id is None
    Ответ написан
    3 комментария
  • Как с помощью Elasticsearch получить более 1 000 000 записей?

    @Flying
    Выбирать произвольное количество результатов из Elasticsearch можно с использованием scroll API.

    Это более-менее аналог курсоров в базах данных. Таким образом вы, определяя размеры окна и время жизни токена можете подстроить выборку под свои задачи.

    У меня в проекте приходилось итерировать через scroll и больше миллиона документов - нормально работает.
    Ответ написан
    Комментировать
  • Как быстро скачать большое количество мелких изображений на сервер debian?

    vman
    @vman
    Если вы уже используете PHP, то, я бы попробовал сделать так:

    1) читаем пачку URL из списка (10,20... )
    2) через php.net/manual/ru/function.curl-multi-init.php инициалиируем и запускаем потоки
    3) ждем пока все потоки завершат работу
    4) переименовываем файлы
    5) сжимаем их
    6) повторяем п.1
    Ответ написан
    Комментировать
  • Функционал, потом верстка, или наоборот?

    @WhiteBearDev
    Бэтмэн
    Вариант 1.

    Верстальщику проще сверстать чистый html-код, чем потом разбираться в коде backend-разработчика. Не говоря о наличии сложных ветвлений, которое добавит путаницы и может привести к упущению некоторых веток
    Ответ написан
    4 комментария
  • Как правильно работать с пользователями в Docker-контейнерах?

    gecube
    @gecube
    системный администратор, программист... все дела..
    > Как работает параметр user при запуске докер-контейнеров и, самое главное - как обрабатывать его при написании своих Dockerfile'ов?

    никак. Параметр user это костыль, который позволяет софт запускать не от root'ового пользователя. Объяснять почему запускать в докере под пользователем 0 (root) что-либо - долго, но если кратко, то это очень плохо и не секурно. Соответственно, правильный путь Вы уже поняли:

    1. определять entrypoint контейнера как свой самописанный docker-entrypoint.sh скрипт
    2. в docker run оставить возможность передать ключ (точнее - переменную среды) USER
    3. в docker-entrypoint.sh его (ее, переменную среды) подхватывать и изменять через chmod/chown нужные файлы в bind-mount (каталогах, доступных и в контейнере, и на хосте) и через утилиту gosu переключаться в нужного пользователя
    4. и только как завершающий этап - запускать свой сервис в докере


    Что еще добавить. Все эти проблемы с chown/chmod возникают только если необходимо перегонять файлы между контейнером и хостом. Если этой задачи не стоит, то и все приседания и не нужны. А если все-таки нужно, то есть еще два способа это сделать без колдования с правами:
    • команда docker cp
    • использование pipe: docker exec container_name cat MY_FILE > path_on_host или аналогично
    Ответ написан
    4 комментария
  • Как правильно работать с пользователями в Docker-контейнерах?

    planc
    @planc
    user - это словесное представление для удобства, как домены в интернете
    у файла нет параметра имя юзера, имя группы юзера, там как ip адреса - номер юзера и номер группы юзера

    допустим я юзер dka на хосте uid/gid 1000

    у меня папка /tmp/docker с кодом

    я запускаю дебиан в контейнере и добавляю туда свою папку, которая будет /code
    docker run -v /tmp/docker:/code -it --rm debian bash


    создаю юзера внутри контейнера с uid 1000 gid 1000 ( как у моего юзера на хосте)
    root@364785fa76ce:/code# groupadd -g 1000 my_docker_user_group
    root@364785fa76ce:/code# useradd --uid 1000 --gid 1000 my_docker_user


    прыгаю под нового юзера с помощью su (в докер файле это директива USER)

    root@364785fa76ce:/code# su my_docker_user

    все, теперь я могу кодить на хосте, а запускать в контейнере и у меня не будет проблем с правами на файлы
    Ответ написан
    1 комментарий
  • REST FUL API на Laravel vs Микрофраемворк?

    ivanvorobei
    @ivanvorobei Автор вопроса
    iOS разработчик, канал https://t.me/sparrowcode
    Подведу итог для ищущих ответ:
    Laravel, Lumen, Slim, Silex и т.д. - фраемворки для разработки сайтов. Побочно на них можно реализовывать API.
    Если нужен голый роутинг - Slim
    Если нужны плюшки - Lumen

    Laravel для API излишен однозначно.
    Ответ написан
    Комментировать