• Надо ли в День системного администратора поздравлять DevOps'ов?

    paran0id
    @paran0id
    Умный, но ленивый
    Это когда надо камплюхтер починить или картридж поменять - мы не сисадмины. А если поздравить - то пожалуйста.
    Ответ написан
    Комментировать
  • Как правильно настроить Nginx с Docker для статики?

    alekciy
    @alekciy
    Вёбных дел мастер
    1. Через создание location.
    2. Аналогично через location.
    3. Дублирования не происходит, т.к. volumes не копируется, а монтируется. Из возможных проблем там могут быть проблемы с правами на файлы.
    Ответ написан
    2 комментария
  • Приходилось ли вам сдавать код, который заведомо не работает? И зачем нужны альфа-версии, когда можно хорошо подумать и сделать сразу хорошо?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Что значит "не работает"?
    У вас есть список функционала который должен быть в альфа-версии, а вы его не сделали или он глючит/падает? Тогда это просто плохо сделанная работа.
    Если все что должно быть для альфа версии - сделано и работает, то все работает.

    А вот как планировать релизы, разработку продукта, когда и что выкатывать - это решают продакты. Если у вас вопросы и вы считаете что они как-то плохо все сделали, то в первую очередь эти вопрос стоит задать им. Выяснить почему так и в чем цель/задача альфа версии.
    Вы спросили, зачем эта альфа? какие цели преследует этот релиз, какие задачи хотят им закрыть?

    Альфа/бета и прочии версии тестирования продуктов придумали не для того чтобы "х-к х-к и в продакшен", а для решения весьма конкретных и серьезных задач.

    Может у вас и правда продакты бестолковые, которые просто напрягают девелоперов чтобы они "хоть что-то делали", потом затыкают дыры, не хотят подумать, и вообще творят безобразия и только вы можете спасти продукт с помощью армии тостера, а может быть и наоборот - это вы чего то не понимаете или не знаете.
    Вы точно и достоверно проверили оба варианта?

    Разве это не сэкономит больше ресурсов, чем потратит?

    Нет. Это потратит в 100 раз больше ресурсов. Просто потому что у вас нет необходимой информации чтобы все продумать и сделать "идеально". Поэтому часть вы просто придумаете, сознательно или нет. и чем заранее и полноценнее вы попытаетесь "продумать наперед все моменты", тем больше у вас будет фантазий. А потом, когда система будет запущена в реальном мире, выяснится что на самом все не так как вы думали, плюс половина того что вы действительно угадали за это время уже поменялась и тысячи человекочасов будут спущены в унитаз.

    Перфекционизм - это, во-первых, серьезная личная когнитивная проблема, которую надо решать, даже безотносительно рабочих моментов. Это иллюзия правильности которая парадоксальным образом приводит к тому что в реальности вы делаете все хуже.
    А во вторых, он загубил столько продуктов/проектов что вы себе не представляете.

    Избавитесь от перфекционизма, сможете делать по настоящему хорошие и качественные штуки, как бы странно это ни звучало.
    Ответ написан
    4 комментария
  • Есть ли разница для автовакуума как были удалены строки из таблицы?

    Melkij
    @Melkij
    PostgreSQL DBA
    После truncate автовакуум не запустится. Потому что зачем? Там пустой новый relfilenode для таблицы и всех индексов, что там пылесосить-то?
    Если из таблицы не нужны все данные - то truncate (или drop table) неисчислимо проще и быстрее для базы.
    Ответ написан
    Комментировать
  • Как сделать совместное редактирование данных на сайте?

    Robur
    @Robur
    Знаю больше чем это необходимо
    У меня была немного другая задача, но очень близкая, от реализации которой я в итоге отказался, но в процессе изучения как можно это решить, узнал про https://en.wikipedia.org/wiki/Conflict-free_replic...
    Такие структуры позволяют менять общие данные независимо и параллельно и затем их объединять в результат.

    Возможно это вам подскажет нужное направление мысли.
    Ответ написан
    2 комментария
  • Сервисы для тестирования email рассылки?

    @galaxy
    https://www.mail-tester.com/

    Просмотра с разных устройств и ящиков нет, зато полная картина по настройке smtp сервера, spam asassin и репутации.
    Ответ написан
    1 комментарий
  • Сколько времени занимает разработка?

    @Lightneron
    По срокам:
    2-3 суток разработка занимает в авральном режиме (при условии наличия контента заказчика, фото товаров, тексты позиций и т.п.). Если нужна не просто корзина на сайте (заказы на почту или на сайте же), а эквайринг, онлайн-касса и налоги с чеками по 54-ФЗ, интеграция с сервисами доставки — до месяца в аврале. Аврал стоит 2 цены. Важно заметить, что тут речь идёт о человеке-профи (который занимается только этим) или адекватной команде. Есть варьирование по срокам и в зависимости от того, будут ли посредники по кассам-налогам с ежемесячной арендной платой или кассу физически поставят у вас в прихожей\торговой точке, подключат к сети, зарегистрируют и т.д. т.е. при экономии — дольше т.к. настраивать надо, ехать надо, ставить и т.д. При аренде кассы и т.п. — быстрее, но с абонентской платой. COVID уже практически не тормозит процесса со стороны банков\налоговой.

    По деньгам:
    Сильно зависит от того кто делает, в каком регионе\стране разработчик, нужны ли документы, форма оплаты нал-безнал и нужных сроков. От 30 тыс. ₽ у одиночки-профи по шаблону и с некой "уникальной мобильной вёрсткой" или 50 тыс. ₽ у команды середнячков. Потолок за стандартный магазин — 150 тыс. ₽ при большом (больше тысячи) количестве товарных позиций и уникальном дизайне. На Битриксе? — Априори дороже, может даже кратно т.к. там возрастает расходная часть на платформу и разработчики хотят абонентской платы за каждый чих\модуль, а уникальная мобильная вёрстка может стоить как целый проект на бесплатной CMS у одиночки.

    Советы:
    Выбирать вам и делать это лучше всего на биржах фрилансеров. Постарайтесь максимально подробно описать проект (не "стандартный магазин с уникальной особенностью"), а область бизнеса, количество товарных позиций, предполагаемое количество покупателей в сутки, нужна онлайн-касса или нет и т.д., планируете интеграцию с CRM, бухгалтерией и т.п. Чем подробней вы опишите то что будут создавать вам люди, тем выше шанс, что вам ответят не по шаблону в вопросах цены и сроков.
    Успехов!
    Ответ написан
    Комментировать
  • Как сайты понимают, что их посетил бот на Selenium, а не реальный юзер?

    alekciy
    @alekciy
    Вёбных дел мастер
    Вариантов много. Из простого:
    • по User-Agent
    • по IP адресу через отслеживание количества запросов с одного адреса
    • по используемым публичным прокси (многие такие сервисы явно сообщают, о себе кто они)
    • и т.д.

    Из сложного:
    • отслеживают перемещение мыши
    • ведут аналитику на о типичных поведениях пользователя и ищуют анамалии


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

    @svsova Автор вопроса
    Техподдержка решила вопрос в 2 подхода. Вот вкратце.
    При анализе проблемы обнаружили, что на сервере устаревшие корневые сертификаты, в результате чего SSL соединение к почтовым серверам Яндекса завершалось ошибкой, пример:


    [root@name /]# echo | openssl s_client -servername smtp.yandex.ru -connect smtp.yandex.ru:465 2>&1 | grep 'Verify return code'
    Verify return code: 20 (unable to get local issuer certificate)
    [root@name /]#


    Добавили корневой сертификат Яндекса в список доверенных на сервере. Сейчас проблем с защищённым соединением к их почтовым серверам не наблюдаем:


    [root@name /]# echo | openssl s_client -servername smtp.yandex.ru -connect smtp.yandex.ru:465 2>&1 | grep 'Verify return code'
    Verify return code: 0 (ok)
    [root@name /]#


    У меня
    Немного изменилась ошибка.
    Было
    2020-05-25 19:59:25 SMTP ERROR: Failed to connect to server: (0)
    Стало
    2020-05-26 20:52:58 SMTP ERROR: Failed to connect to server: Connection refused (111)

    2 этап ТП:
    Произвели дополнительные настройки корневых сертификатов и указали в скрипте SMTP хост для подключения.


    Вот что вываливает тестовый скрипт при удачной отправке письма
    5ece0e271aa20037306272.jpeg

    Как это работает у меня.

    $mail->SMTPDebug = SMTP::DEBUG_SERVER;
    $mail->isSMTP();
    $mail->Host       = 'smtp.yandex.ru';
    $mail->SMTPAuth   = true;
    $mail->Username   = 'noreply@mydomain.ru';	
    $mail->Password   = 'пароль от ящика noreply@mydomain.ru';
        
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
    $mail->Port       = 465;


    Да ёщё полезный сервис чтоб проверить свои настройки https://www.smtper.net/ и понять что дело в хостинге а не в твоей голове ))

    PS вот еще можно на PHP проверить подключение
    var_dump(fsockopen("ssl://smtp.yandex.ru",465));
    
    результат 
    resource(2) of type (stream)
    
    если подключения нет пишет
    bool(false)

    Благодарю Всех кто откликнулся!!!
    Ответ написан
    Комментировать
  • Есть ли аналог selenium?

    coderisimo
    @coderisimo
    1) Selenuim не так уж и плох
    2) Selenoid - более легковесный и менее требователен к ресурсам (есть статьи на хабре !)

    Есть так же headless browsers on JS
    1) Старина ФАНТОМ
    2) Кукловод

    Есть и облачные штуки, которые не так дороги, как кажется.
    Пример - Привет из облака - здесь 500 запросов в день бесплатно, а за 700+ рублей в мес. получаешь 15000 запросов в день + прокси, что хорошо в отличии от ситуации когда ты долбишь сайт миллионом запросов в одного IP.
    Жирный плюс - там можно использовать python, js, php, c#
    Ответ написан
    Комментировать
  • Нужны ли навыки вёрстки системному администратору?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Потому что путают сисадмина с кем-то другим. Не ведитесь - это с высокой вероятностью низкооплачиваемое эникейство "подай-принеси".
    Ответ написан
    Комментировать
  • Не открывается сайт у некоторых людей?

    urec-borec
    @urec-borec Автор вопроса
    Любитель
    Нашёл зависимость в том что с какого бы устройства они не выходили, сайт не пашет. Я думаю что дело в их провайдере, либо в географическом положении

    Оказалось что ip cloudflare блочат
    Ответ написан
    3 комментария
  • Как сделать максимально автономный сервер?

    ValdikSS
    @ValdikSS
    1. Никаких «вечных серверов». Даже как-то неловко разъяснять такое. «Вечный сервер» — маркетинговый ход, фактически мошенничество, который закончится, как только компания изменит условия/реорганизуется/закроется. Следует читать как «ну, проработает года три, а далее — неизвестно».

    2. Непонятно, какого рода у вас информация, и что именно вы понимаете под словом «захостить», также непонятен критерий автономности. Разместить информацию в публичный доступ? Должна ли она индексироваться? Нужен ли для неё контроль доступа? По какому протоколу она должна быть доступна? Она будет нужна только вам через 10 лет, или кому-то еще? Это лицензированный контент, который могут удалить по DMCA (фильмы, сериалы, музыка)? Это персональные данные (сливы баз данных)? Информация популярна и/или востребована на данный момент? Есть вероятность, что она будет сравнительно востребована через 10 лет? Информация каталогизирована? Информация тематическая (например, архив, посвященный конкретной теме, области науки и т.п.)? Важно ли удобство и скорость доступа к информации?
    Технологий много, но они все разные, с разными назначениями. Ответы на перечисленные вопросы необходимы, чтобы отбросить неподходящие и подробно рассмотреть подходящие.

    3. Если информация публична и востребована, и будет востребована через 10 лет, то следует использовать DC++, BitTorrent + веб-хранилища с прямыми ссылками на файл, добавив ссылки в .torrent-файл, в виде webseed.
    Bittorrent существует с 2006 года, популярен, клиенты есть под все ОС, совместимость и надёжность отличные.
    DC++ всё еще имеет популярность. Основное преимущество перед Bittorrent: возможность поиска файла по его имени или названию директории, возможность лёгкого обновления и дополнения информации (нет привязки к «каталогу» в виде .torrent-файла)

    Если информация конфиденциальна или требует контроля доступа, и у вас и кого-либо другого не будет возможности как-либо поддерживать её в течение 10 лет (я не знаю вашу ситуацию, поэтому предположим, что вам грозит 10-летний тюремный срок), то, возможно, есть смысл оплатить облачное хранилище от крупных компаний (Google, Yandex, Microsoft, Apple) на 10 лет вперед. Это не даёт никаких гарантий, но считаю такой вариант более надёжным, нежели хостинг общего плана (и особенно VPS).

    Если информации немного, она не защищена авторскими правами, каталогизирована и полезна, можно банально разместить её на давно существующих бесплатных хостингах, вроде Ucoz, Google Sites, Neocities, загрузить на Bitbucket, Github, Sourceforge (последний поддерживает хранение больших файлов, которые можно скачать по прямой ссылке, вполне подойдёт в качестве webseed для торрента, к слову).

    Если не боитесь попробовать развивающиеся, но еще не устоявшиеся технологии, присмотритесь к IPFS. Он работает по принципу Bittorrent, но позволяет получать доступ к информации через HTTP, а также поддерживается крупными игроками в лице Cloudflare, у которой есть шлюз из интернета в IPFS: https://cloudflare-ipfs.com/
    Я держу несколько статичных сайтов с собственными доменами в IPFS, на домашнем компьютере, за шлюзом Cloudflare. Преимущества: все плюсы BitTorrent, возможность доступа как к сайту (в т.ч. на своём домене), индексация поисковиками, есть сервисы по долгосрочному платному хранению файлов (eternum.io, pinata.cloud), возможность лёгкого обновления информации. Недостатки: работает всё ещё достаточно медленно и нестабильно, только статичные сайты.

    4. Судя по вашему комментарию выше, у вас всего 100 ГБ медиафайлов. Это вообще ерунда. Если они публичны и представляют ценность хотя бы для узкого круга людей, можете захостить их у меня, через проект Schare: https://valdikss.org.ru/schare/
    Мой критерий автономности — максимальная независимость от сторонней инфраструктуры, поэтому файлы хостятся на домашнем сервере, а раздаются в сетях децентрализованного файлообмена.
    Ответ написан
    Комментировать
  • Как сделать максимально автономный сервер?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Я не специалист, но если это должно хоститься долго, об этом должна заботиться сама информация в таком материале: давать понимание читателям своей ценности и просить рехостинга/"зеркалирования" ими для выживания контента.

    Если информация ценна для людей - она сможет долго выживать таким способом.

    Главное - написать внутри: как лучше её рехостить так, чтобы другие могли её найти и прочитать, и почему это важно.

    По факту, это "вирусный" репост.

    Что важно сейчас: webarchive, github'ы и тематические wiki-сайты. Вот туда первым делом залить.

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

    Vamp
    @Vamp
    1. Проверьте синтаксическую корректность номера телефона. Все мобильные номера в РФ начинаются на +79 и имеют длину ровно 11 цифр. Проверку можно даже добавить в веб форму на уровне js. Это нельзя назвать защитой от хулиганов, но она отсеет реальные ошибки и опечатки, облегчив жизнь обычным пользователям.

    2. Пробейте номер по базе россвязи (файл DEF-9xx). Так вы определите номера, на которые 100% не будет доставки. В отличии от проверки синтаксиса, не выдавайте пользователю ответ о некорректном номере. На все номера отвечайте "Одноразовый код отправлен, введите его сюда", но на невалидные номера не отправляйте сообщение.

    3. Добавьте ограничение на количество отправляемых форм в минуту с одного IP и количество отправляемых сообщений на один и тот же номер (независимо от IP).

    4. Оцените сколько может быть отправок форм в день и поставьте общий лимит на все отправки смс за день. Это единственный реальный способ контролировать атаку на сливание бюджета. Да, реальные пользователи пострадают при достижении лимита, но вы не должны доводить до него - настройте мониторинг количества отправляемых смс и алертинг при достижении порога в 90% от лимита, чтобы у вас было время среагировать на атаку и отбить её до полного исчерпания лимита. Либо если это всплеск реальных пользователей (например, неожиданно удачная реакция на рекламу), то у вас будет время скорректировать лимит. Можно рассчитывать лимит как 2 * среднее количество отправок смс за последние Х дней, чтобы не приходилось править его вручную по мере естественного роста посещаемости. Формулу и процент для алертинга, разумеется, подберёте под свои требования. Но можете взять и мои за основу.

    Отдельно хочу рассказать про так называемые прямые мобильные номера. Они выглядят как городские (например, +7495), но в реальности являются мобильными и могут принимать смски. Проверка в пункте 1 не пропускает такие номера и нет никакого способа проверить без отправки смс является ли отдельно взятый городской номер прямым мобильным. Прямых номеров мало по сравнению с настоящими мобильными или настоящими городскими. К тому же у каждого прямого номера есть мобильный аналог, начинающийся на +79, которым пользователь может воспользоваться для регистрации. Поэтому предлагаю просто забить на прямые номера, а в случае жалоб на невозможность регистрации с прямым номером, рассказывать про существование мобильного аналога, который может быть прописан где-то в договоре с оператором на оказание услуг связи или узнать в техподдержке оператора и с которым можно спокойно зарегистрироваться.

    Обязательное требование email'а не усилит схему защиты, так как не проблема наштамповать реальных адресов со скриптом, автоматически прокликивающим подтверждающие ссылки во входящих письмах.

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

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Стейджинг и контроль версий не очень подходят т.к. область работ почти по всему ядру CMS и модулей + новые увесистые наработки.

    1. Подходят / не подходят, а если у вас всё это делается без стейджинга и контроля версий, я вам советую продать сайт пока возможность есть со всеми потрохами и поискать себя в другой области. Система контроля версий - это единственное, что потом позволит вам хотя бы задним числом понять кто не чист на руку и отомстить плохими отзывами в профиле.
    2. Не ищите дешевых фрилансеров без репутации и профиля, которым имело бы смысл дорожить.
    3. Держите репозиторий в гитхабе и старайтесь, чтобы разработчик от своего основного эккаунта кодил. Акк должен быть с активностью, историей, иначе что это за разработчик такой? Вообще верно в той поговорке сказано: "не гонялся бы ты, поп, за дешевизной".
    4. Дешевых нонейм-фрилансеров без истории опасно пускать в ядро. Отдавайте их код на ревью ребятам посерьёзнее, с репутацией. Ревью тоже работа, но обойдётся дешевле, чем закодить все эти фичи. За то опытный человек своим глазом глянет. С него потом и спросить можно как это он проглядел вредоносный коммит.
    5. Выносите всё что можно в опенсорс, но контрибьютьте корневой проект сами или через проверенных людей. Тут вам и бесплатные руки (если фичи полезные), илишние глаза для проверки на вшивость.
    6. Не хватает денег на крутых серьёзных разрабов с репутацией, делегируйте им хотя бы составление детального ТЗ и, как я выше уже написал, ревью.
    7. Помните, что порой лучшее - враг хорошего. Умейте выстраивать MVP. По Паретто 80% прибыли вам принесёт 20% фич. Сделайте их хорошо, а остальное, может быть, отпадёт за ненадобностью по факту.
    8. Как говорится "вам пора, и вам пора, с вентиляторным заводом заключать договора". Правильно коллега подметил в соседнем ответе. Вы ж не подпольную крипто-биржу, наверно, там кодите. Можно договора заключать с разрабами в белую. Лишний повод ему не гадить засветив реквизиты и подписавшись.
    Ответ написан
    1 комментарий
  • Для контейнеризации на rhel7 что лучше юзать: docker штатный (1..13) или podman? Какие плюсы и минусы?

    paran0id
    @paran0id
    Умный, но ленивый
    Кроме докера из штатных репов, есть ещё свеженький docker-ce из официальных репов докера.
    Ответ написан
    Комментировать
  • Как заблокировать доступ из других стран?

    @loonny
    Используйте плагин IP2Location Country Blocker или iQ Block Country
    Ответ написан
    Комментировать
  • Почему RAM диск оказался не быстрее SSD?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    На самом деле, скорость современного SSD может не уступать RAM, тут больше зависит от интерфейса и реализации рам драйва. Например полная поддержка спецификаций превращает RAM в довольно медленное устройство, а отключив его, можно значительно увеличить скорость.

    Я довольно долго пользоваться рамдиском, перебрал разный софт, долго сидел на softperfect ram disk.
    Но когда перешел на m.2 NVME ssd, понял что рамдиск не нужен.
    Ответ написан
    4 комментария