• Какие преимущества у docker?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Основное, что дает докер - это изоляцию частей вашей системы друг от друга. За счет этого гораздо проще всё настраивать.
    - БД настраивается в отдельном докер-контейнере. В большинстве случаев вы используете стандартный образ и подаете ему только настройки.
    - nginx настраивается в отдельном контейнере вместе с certbot'ом, который будет обновлять вам сертификат ssl.
    - бэкенд поднимаетя в отдельном контейнере на стандартном порту (и порт не будет конфликтовать с другими бэкендами в других контейнерах на том же порту.
    - другие какие-то бэкенды и админки будут рядом сидеть в отдельны контейнерах и не будут конфликтовать друг с другом версиями библиотек. интерпретаторов и чего угодно
    - компиляция и сборка тоже делаются в контейнере, который не запускается в прод, но обеспечивает иоляцию этого процесса так, что другие разработчики легко приступят к работе без долгой и уникальной настройки своего рабочего места.

    Весь набор нужных контейнеров для проекта конфигурируется docker-compose файлом и в большинстве случаев при правильной настойке чтобы поднять дев-стенд или продакшн вам достаточно будет склонировать репу на комп и скомандывать docker-compose up.

    Про слои и переиспольование почитайте в документации к докеру. Докер-образы наследуются накладывая свои изменения слоями. Это экономит место на диске и упрощает всю систему минимизируя число возможных состояний.
    Вся файловая система контейнера не примонтированная извне будет стёрта и забыта при перезапуске контейнера. Так можно быть уверенным, что ваш бэкенд не оставляет лишних неучтенных побочных эффектив. Это упрошает отладку и поиск проблем.
    Ответ написан
    2 комментария
  • Как настроить VSCode чтобы в терминале выводилась ветка Git?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    Это не vscode фишка, а оболочки. В вашем случае это zsh.
    Ответ написан
    Комментировать
  • Почему все говорят что писать ботов это сложно?

    Vindicar
    @Vindicar
    RTFM!
    А сложность начинается, как только задачи, стоящие перед ботом, перерастают уровень примера в документации видеотуториале пятилетней давности.

    Нужно сделать несколько под-команд у команды. Напишу цепочку if-elif-else, делов то. Ой, а теперь простыня кода на пять экранов, в которой фиг чего найдёшь. Потому что нет привычки структурировать код.

    Нужно, чтобы несколько команд/событий формировали цепочку (сценарий). Например, пользователь отправил тре сообщения, первое с именем, второе с возрастом, третье с адресом. Ой, а как это сделать вообще? Не зная понятия "конечный автомат" (finite state machine, FSM), очень трудно догадаться, как тут поступить.

    Нужно, чтобы ботом могли пользоваться несколько человек. Ой, их данные перепутались! Потому что бот использует глобальные переменные.

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

    Нужно добавить боту графический интерфейс - админку. Ой, а работает или интерфейс, или сам бот! Потому что нужно представлять, как устроено большинство GUI-фреймворков, и как устроена асинхронное приложение. А заодно понимать многопоточность, вопросы синхронизации действий между двумя потоками, и особенности работы с asyncio в многопоточных приложениях. Потому что одним потоком тут обойтись будет очень непросто.

    Нужно хранить данные в БД. Ой, а почему у меня проблемы при записи в БД имени пользователя? А потому что погромист собирает SQL-запрос через форматирование строк. Надо было почитать доки, чтобы наткнуться на prepared statements, они же parameterized queries.

    Нужно хранить данные в БД. Вот только данные имеют связи многие-ко-многим. Я знаю! Я буду просто добавлять или удалять столбцы в таблицу! Потому что не освоены даже азы проектирования БД. Тут уже nuff said. И да, я такое видел на этом сайте.

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

    paran0id
    @paran0id
    Умный, но ленивый
    Поставьте виртуалку, в ней установите jenkins, подключайтесь к ней по ssh.
    Ответ написан
    Комментировать
  • Можно ли сказать, что Гит работает на блокчейне?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Нет. Гит не является блокчейном потому-как в него не закладывались требования по кворуму и гарантий уникальности и нефальсифицируемости истории.

    В git нет понятия блок. И нет алгоритмов POW для подтверждения потраченной работы.

    В git владелец может убить master-бранч что само по себе - принципиально невозможно в криптовалютных проектах

    UPD: Почему я привлекаю именно юзкейс криптовалют. Потому что в наше время блокчейн плотно ассоциирован именно с этой технологией. Хотя само по себе определение блокчейна может быть либеральнее чем я описал. Например POW может и не быть. Просто рассматривая git надо обозначить его сравнительные недостатки чтоб не было в теме попыток спекулировать просто на похожести этих двух технологий. Да они в чем-то похожи но блокчейн во много раз строже по безопасности. Ведь хранение журнала фин-операций - особая и деликатная задача.
    Ответ написан
    3 комментария
  • Как привзять домен для создание почты и на Яндексе и на Mail.ru?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Да, можно. Ставите разный вес этим MX-ам, и вперёд! Но вы бы сначала восстановили работу Yandex, стыдно же!
    Ответ написан
    24 комментария
  • Почему такой разброс цен в VPS/VDS?

    PleasantNews
    @PleasantNews
    Застрял из-за любви к острой пище в Бангкоке
    Потому что яндекс не занимается хостингом в понимании частных хостинговых компаний, которые кроме своих серверов и стоек, админов из солнечной Индии и битв с абузами ничего не знают и знать не желают.
    DOcean классная фирма, пока всё работает и полная (.) когда возникают подозрения, что они немного мухлюют со своими "капельками". Для быстрого запуска временных проектов и отладки - самое то.
    Найти адекватного провайдера - это как жизнь прожить, столько нервов - ужас.
    Про оплату - полно посредников, вполне адекватных, с отзывами и т.д.
    Тем более что можно договориться о скидке если платить раз в год. Нормуль и всё жужит!
    Ответ написан
    Комментировать
  • Почему такой разброс цен в VPS/VDS?

    @Drno
    потому что яндекс и мейл это уже госкомпании.
    потому что в РФ хорошая прибыль считает 500%, а не 20%-50%....
    ну и плюс всякие сертификации фсб, фстэк итд итп... которые нахер никому не нужны по сути.
    так же размещение сереров в РФ в ДЦ рф, ну по большей части...

    сиди там где дешевле и лучше, я вот на хетзнере сижу, мне всё по кайфу)
    а яндекс с мейлом с такими ценами пусть дальше лохопедов из госорганов ищут

    UPD - ты еще Селектел посмотри...)) с их ценами... я за треть цены на хетзнер серваки беру...
    Ответ написан
    3 комментария
  • Бесплатное приложение для mindmap'ов?

    @DmitryBahtenkov
    Software Engeneer
    Я использую Whimsical. Он условно-бесплатный, лимит на 500 элементов. Это почти полный аналог Miro, а лимита мне полностью хватает

    Аналогичные варианты:
    1. Canvas в рамках заметочника obsidian.md - просто и удобно, вопрос только в синхронизации файлов. Я решал это с помощью syncthing или onedrive
    2. Excalidraw - можно развернуть у себя или использовать как плагин в obsidian - неплохая рисовалка, майндмапы тоже можно там делать
    3. Mindmeister или Miro - три бесплатных майндмапа
    4. Ещё как некоторую альтернативу можно использовать Padlet
    Ответ написан
    Комментировать
  • Что такое чат бот в тг?

    HemulGM
    @HemulGM
    Delphi Developer, сис. админ
    Бот - это алгоритм, который имитирует пользователя. Видишь, тут вообще нет слова "чат".
    Бот в игре, бот в комментах.

    Чат-бот - это бот, который "подключен" к какому-либо мессенджеру или конкретно к чату. Он ждёт сообщение и реагирует на него по твоему алгоритму.
    Ответ написан
    Комментировать
  • Как отловить баг на продакшене?

    sergiks
    @sergiks Автор вопроса, куратор тега PHP
    ♬♬
    Нашли опытным путём некоторые действия, которые 100% приводили к нежелательному изменению данных.
    Перерыли весь их код – ничего.

    Глубокой ночью решились временно включить на проде дебажный режим кернела Symfony.

    И повторив запрос, в профайлере нашли причину: один из разработчиков накостылил изменения на проде в /vendor/ доктрин-бридже. Он ошибочно полагал, что это ни на что не повлияет и никак не связано с появившейся проблемой.

    Два дня «веселья».
    Ответ написан
    Комментировать
  • Как реализовать возможность добавления комментария к статье?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    Общая идея проста:
    1. Создать отдельную таблицу;
    2. Реализовать связь между таблицами;

    Как это реализовать на практике описано в любом структурированном материале (учебник/цикл статей и т.д.) по:
    • Реляционными базам данных (описаны общие принципы)
    • Django (описано, как эти принципы реализованы во фреймворке)

    Ответ написан
    Комментировать
  • Насколько полезно читать книги?

    saboteur_kiev
    @saboteur_kiev Куратор тега Книги
    software engineer
    Книга - величайшее достижение человечества.

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

    Какие-то вещи в видео нагляднее, но процент таких вещей несмотря на развитие технологий визуализации, все еще невелик.

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

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

    В принципе видеоролики могут быть более эффективными для для художников, спортсменов, и так далее.
    Для разработчиков - только отдельные моменты.
    Ответ написан
    1 комментарий
  • Можно ли запросить в NASA данные?

    Maksim_64
    @Maksim_64
    Data Analyst
    https://svs.gsfc.nasa.gov/cgi-bin/details.cgi?aid=4768 прям под таблицей такой же как у вас есть ссылка json или текстовый файл, со всей инфой как у вас за весь год. Загружайте.
    json - https://svs.gsfc.nasa.gov/vis/a000000/a004700/a004...

    txt - https://svs.gsfc.nasa.gov/vis/a000000/a004700/a004...
    Ответ написан
    1 комментарий
  • Как оценить количество ресурсов, необходимых для работы микросервиса?

    chupasaurus
    @chupasaurus
    Сею рефлекторное, злое, временное
    Нагрузочным тестированием.
    Для примера, предположим, что есть (сферический в вакууме) CRUD сервис ... Предположим, что точная оценка не требуется. Даже погрешность в несколько раз будет приемлемой.
    Сервисов в вакууме не бывает, разный код и внешние зависимости будут влиять по-разному на использование ресурсов с разбегом в несколько порядков.
    Например, для оценки latency существуют подобные таблицы
    Путаете физику с лирикой. В приведённой вами таблице значения вырастают из физических и технических ограничений.
    Ответ написан
    Комментировать
  • В чём состоит отличие между CG-NAT и обычным NAT?

    Loiqig
    @Loiqig
    инженер по сетям корпоративной сети
    Это и есть обычный NAT/NAPT просто заточенный на большое количество трансляций и максимальную утилизацию выделенных пулов адресов и портов. Существует BCP127 он же RFC6888 где описаны рекомендации и требования к построению NAT на больших объёмах. Предполагается что надо максимально снизить время жизни сессии, но не больше чем надо и позволить операторам крутить другие важные штуки, в частности ограничение по трансляциям, выделение блоков портов за раз, лимитирование использование памяти. Ничего принципаильно отличающегося от "обычного" NAT в нём нет.

    Ещё под это дело выделили целый 100.64.0.0/10 префикс, чтобы делать двойные трансляции и не пресекаться с другими провайдерами, если необходимо будет запириться напрямую, опять же чтобы не использовать публичные адреса.

    Провайдеры не часто используют терминологию Symmetric, Cone/Full Cone, Address-Re.... CgNAT как и просто NAT будет Symmetric или Address-Restricted или Port-Restricted, в разных реализациях по разному. Возможность установить соединение на адрес NAT - не самое главное в NAТ для провайдеров ;), провайдеры для этого белые IP продают.
    Ответ написан
    Комментировать
  • Как поднять на 1 машине certbot для обновления ssl своих сайтов на других машинах?

    martin74ua
    @martin74ua Куратор тега Linux
    Linux administrator
    certbot на одном сервере запрашивает и обновляет wildcard сертификаты для все ваших доменов.
    потом ансибл разливает каталог /etc/letsenctrypt на все нужные сервера и рестартует все необходимые сервисы...
    Ответ написан
    2 комментария
  • За сколько можно прокачаться не очень хорошему системному администратору до DevOps инженера?

    @Drno
    Реально. Уходи в линукс
    Ответ написан
    Комментировать