Задать вопрос
  • Как правильно организовать работу серверов?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    1. API
    2. Сервера могут общаться через базу данных
    3. Сервера могут общаться через брокер очередей
    4. Можно подумать насчет общего стораджа - S3, распределенная файловая система, просто сетевой диск замапленный на каждый сервер.

    Вопрос не в том, чтобы "как связать", вопрос зачем вам это надо, как вы себе представляете "связывание" и какая у него цель?
    Ответ написан
    1 комментарий
  • Ошибка при изменении класса хранилища объекта. Почему?

    @Looka Автор вопроса
    Отвечу частично сам.
    Восстановление работает командой:
    $ aws s3api restore-object --bucket awsexamplebucket --key dir1/example.obj --restore-request '{"Days":25,"GlacierJobParameters":{"Tier":"Standard"}}'

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

    Понять статус объекта можно так:
    $aws s3api head-object --bucket looka1 --key 1Cv77_Bin.zip
    { "AcceptRanges": "bytes",
    "Restore": "ongoing-request=\"true\"",
    "LastModified": "2019-11-01T10:50:19+00:00",
    "ContentLength": 10771150,
    "ETag": "\"f4fc5cdcfeccf75b3a432c1ae6c540f9\"",
    "VersionId": "CefbquFTCKrUa0xf5TEKv.2UdWCXNuNs",
    "ContentType": "application/zip",
    "Metadata": {},
    "StorageClass": "DEEP_ARCHIVE"
    }

    Обратить внимание:
    "Restore": "ongoing-request=\"true\""
    true - идет восстановление, falsh - восстановлен, есть доступ.

    Соответсвенно тоже самое делает в веб интерфейсе пункт Initial restore
    Но пункт доступен только для файлов, если в списке есть папка Dir\ то интерфейс не нает выбрать опцию восстановления, только изменить класс, который не работает для этого класса.

    А для  CLI решения для рекурсивного вызова не нашел, только. скрипты, а усложняется еще наличием кирилицы и пробелов в именах. В этом смысле вопрос остается. БУду признателен за подсказку и помощь.

    А кирилица не причем
    Ответ написан
    Комментировать
  • Как настроить PITR PostgreSQL?

    Melkij
    @Melkij
    DBA Team для вашего PostgreSQL?
    Для pitr вам нужен:
    - basebackup как основа, должно быть завершено его снятие до датывремени требуемого восстановления pitr
    - непрерывный архив всех и абсолютно каждого сегмента wal без пропусков от момента checkpoint перед снятием используемого в восстановлении basebackup и до требуемой точки восстановления

    database system was shut down at 2022-02-10 13:31:25 UTC
    starting point-in-time recovery to 2022-02-10 07:00:00+00

    Это, конечно, невозможно даже с корректным архивом WAL.
    У postgresql REDO recovery, а не UNDO. Pitr только вперёд от текущей позиции. И не раньше достижения точки консистентности состояния (окончания снятия basebackup)

    Чтобы не ходить по граблям консистентности ещё и файловой системы, basebackup предпочтительнее снимать с самого postgresql, а не снимком блочного устройства. Но в целом вариант предусмотренный, ничем неотличимый от обычного crash recovery вроде старта после пропадания электричества (лишь бы fsync работал на всех уровнях корректно и не игнорировался).
    Ответ написан
    6 комментариев
  • Будет ли недоступность сайта при смене DNS-серверов?

    suffix_ixbt
    @suffix_ixbt
    https://www.babai.ru/
    Нет, не будет если Вы не удалите зону со всеми записями со "старого" dns-хостинга, пока ns-сервера "нового" dns-хостинга (куда Вы зону скопировали) кэшируются везде.
    Ответ написан
    Комментировать
  • Для каких примерно целей программисту нужен computer science?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Можете отвечать этим выпендрёжникам, что computer science у всех в школе была.
    61f95ecd99b46818468684.png
    Ответ написан
    1 комментарий
  • Как рулить docker-compose в проде?

    DoctorStein
    @DoctorStein
    QNX, Linux, С++, С#, mono
    docker-compose не очень, сейчас в моде kubernetes. Но если очень хочется, то можно:
    1. Редактируем yaml и Dockerfile если надо. docker-compose build, docker-compose down, docker-compose up -d. Если изменения yaml большие, например меняется состав сервисов, то стоит down сначала, потом редактирование.
    2,3. По возможности локально image не собираются. Есть отдельный процесс разработки, image выкладываются в частный registry, откуда и берутся композом.
    4. Образы строятся на том, на чём удобно разработчику. Ни разу не было задачи заменить типа описанной. Но бывает наоборот - новая ОС, на ней запускаются старые проверенные докеры.
    5. docker-compse stop servicename
    Ответ написан
    4 комментария
  • Какие наиболее выгодные фриланс-биржи на русском языке?

    @Stalinko Куратор тега Фриланс
    PHP'шник и фрилансер до мозга костей
    Нормальные бывают не биржи, а знания.
    Пока знаний нет, будет высокая конкуренция и демпинг. И никакая биржа не спасёт. Нет такого чудесного поля дураков, где всем подряд раздают вкусные заказы.

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

    gbg
    @gbg
    Любые ответы на любые вопросы
    Теоретически, это можно сделать, если хешировать/солить ваш пароль на клиенте и не передавать на сервер.
    Практически, это все равно остается вопросом доверия между вами и сайтом - сегодня они не передают пароль при авторизации, завтра фронтенд Василий шото напутал, и пароль улетел не только в базу сайта, но и к кампании, которая предоставляет аудит пользовательских метрик.
    Ответ написан
    2 комментария
  • Как создать контейнер приложения, которое развернуто?

    @rPman
    в общем случае это невозможно
    docker файл это список команд, которые необходимо выполнить на 'нулевой системе' чтобы приложение заработало

    определить это автоматически почти невозможно, особенно отделить если на машине установлено несколько приложений, какие действия для каких приложений были сделаны.

    в некоторых случаях, пакетный менеджер linux предлагает вполне законченное описание того что нужно для того чтобы приложение заработало, к сожалению в реальности не все так просто, не все приложения корректно описаны, а для некоторых требуется ручная первоначальная настройка
    Ответ написан
    2 комментария
  • Закрытие бесплатного G Suite (Workspace), куда мигрировать?

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

    alexgp13
    @alexgp13
    Руководитель ИТ-проектов
    Многое зависит от особенностей конкретного человека. Я вот, например, с огромным трудом воспринимаю информацию в видеоуроках, а на прошлом месте работал с коллегой, который наоборот гораздо лучше воспринимал новое на слух, он как раз предпочитал видеоуроки.
    Ответ написан
    Комментировать
  • Достаточна ли защита сайта php?

    @d-sem
    Безопасность вещь комплексная и многое зависит от конкретной реализации. То что в одном месте закрывается (и то не факт, так как не известна реализация) один вектор мало влияет на общую безопасность.

    Например, у Вас может быть супер защищенный сайт, но рядом у вас в соседней папке у вас лежит приложение, которое принимает команду из пользовательского ввода и подкладывает ее в exec(). Или веб-сервер настроен так, что по отдельным запросам на другие виртуальные хосты отдает содержимое конфиг файлов. Или ньюансы срезания углов при разработке (добавим более тщательную фильтрацию полей позже. ага). Или внезапно выяснилось что в версии вашего ЯП, конкретной библиотеке или субд есть фундаментальная уязвимость.

    Хотите комплексно подойти к вопросу? Копайте в сторону изучения материалов от OWASP. Например, https://owasp.org/www-project-web-security-testing... Там достаточно много материалов для чеклистов. Или смотрите готовые чеклисты что проверять. Например, https://github.com/0xRadi/OWASP-Web-Checklist (я не говорю что это прям лучший чеклист, но посмотрите на число пунктов для быстрой оценки).

    Хотите подойти еще комплексней? Начните с книги для новичков по поиску узявимостей - Ловушка для багов. Полевое руководство по веб-хакингу | Яворски Питер https://www.piter.com/product_by_id/196618476

    А далее например обратите внимание на более сложную книгу как строить защиту в приложениях
    Безопасно by design | Берг Джонсон Д., Деоган Д., Савано Д. https://www.piter.com/product/bezopasno-by-design
    Там уже более основательно доводится доводится мысль как выстраивать защиту на основании архитектуры.
    Ответ написан
    Комментировать
  • Чему учит Марк Лутц?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    Но полистав pdf-файл этой книжки я не смог найти ни одного куска кода, который был бы для меня не понятен. Разве что незнакомые модули.


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

    Потом попробуй почитать стандартные вопросы на интервью для джуна.
    Ответ написан
    5 комментариев
  • Как повысить свои навыки в построении архитектуры сложных приложений?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Читать книги на эту тему, работать на проектах, где более опытные коллеги строят сложные архитектуры, участвовать в этом посильно.
    Ответ написан
    Комментировать
  • Как повысить свои навыки в построении архитектуры сложных приложений?

    bingo347
    @bingo347
    Crazy on performance...
    Если по теории, то мне в свое время вот эта книга помогла:
    https://www.litres.ru/robert-s-martin/chistaya-arh...

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

    Через несколько месяцев прочел еще раз, анализируя все затупы, что записал за это время в блокнот. После прочтения начал потихоньку рефакторить в существующих проектах места, которые уж очень жить мешали.

    Еще через пол года прочел третий раз, опять же с оглядкой на личный опыт. И тут я кажется уже совсем въехал. По крайней мере многие проблемы с организацией взаимодействия между компонентами стали разрешаться. И вообще появилось достаточно четкое понимание, как структурировать приложение и где разбивать его на компоненты.
    Ну и после 3 прочтения еще помог момент: мне дали с нуля проектировать новое, достаточно крупное приложение на Rust. Притом заказчик кричал "микросервисы - это круто, хочу, хочу, хочу", а тимлид мне сказал "давай монолит, но так чтоб потом легко было распилить, а то все сроки про**ем". Вот тут прямо вообще понимание пришло. Ну и плюс в Rust архитектурные компоненты очень хорошо ложатся на отдельные крейты (это такая единица компиляции в Rust), а компилятор в принципе не дает делать циклические зависимости между крейтами.

    Ну и недавно решил освежить память и перечитать еще раз. И на этот раз уже были мысли вроде "так если делать по другому, потом проблемы вылезут тут и тут".
    Ответ написан
    1 комментарий
  • Является ли порочной практика итеративных попыток сдачи тестировщикам сырых результатов работы?

    saboteur_kiev
    @saboteur_kiev Куратор тега Организация работы
    software engineer
    В итоге оказывается что во-первых было очень много багов, и во-вторых, требование программисты поняли не так, прочитали не все, да и в требованиях прямо каждая мелочь не была учтена. Программисты правят то что не нравится тестировщику и цикл повторяется снова и снова, пока вся команда не поймет задачу одинаково и результат не станет похожим на ожидаемый в требованиях.


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

    Эм, если все настолько плохо, что надо повторять цикл снова и снова, то где все это время был тимлид, который давал изначальную задачу?
    Его привлекать в первую очередь, чтобы он либо переобъяснил разработчикам все, либо поправил свои требования, чтобы они были понятнее.
    В моем понимании тимлид - это один из разработчиков, который ежедневно контролирует их работу, а не ждет пока ему принесут готовое через месяц.
    А так да, тестировщик помогает разработчикам правильно понять требования, но он не должен биться головой об стену в одиночку. Если разработчикам что-то неясно, они могут и сами поднять жёпку и сходить к тимлиду, к аналитикам, к тестировщикам чтобы понять задачу правильно.
    Ответ написан
    1 комментарий
  • Является ли порочной практика итеративных попыток сдачи тестировщикам сырых результатов работы?

    alexgp13
    @alexgp13
    Руководитель ИТ-проектов
    Это нормальная практика, когда тестировщик итеративно смотрит сырые варианты. В определенных ситуациях это лучше, чем сделать готовый вариант, отладив программистами все баги и понять, что надо то было совсем другое.

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

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

    @nApoBo3
    У вас вероятно очень специфические задачи если производительности ноутбука за "цена вопроса не имеет значения" вас не устраивает.
    Ноут лучшее решение.
    Альтернативы:
    Переносной накопитель. Ниже производительность, нужны современные интерфейсы, ниже надёжность, выше риск утраты включая возможность компрометации информации.
    Любая форма rdp или удаленного ПО. Зависимость от сети.
    Скриптованное окружение. Высокая сложность, издержки поддержки скриптов.

    Ноут лучшее решение, в стационарных условиях к нему подключается внешний монитор или два.
    Ответ написан
    2 комментария
  • В чем проблема с выводом?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Для большей ясности стоило бы приести пример выхлопа команды
    occtl --json show users
    Чтобы отвечающим не приходилось ставить VPN-сервер и подключать тестовых пользователей.
    Сходу видно, что вы запрашиваете результат в формате json, а затем парсите его грепами и awk'ом, что крайне бессмысленно и беспощадно. Почему бы не использовать jq для этой цели, а не пытаться забить шуруп молотком.
    Приведенная вами проблема связана с тем, что, вероятно, выхлоп в виде json происходит без гарантии порядка ключей, а ваш способ доставать из него данные весьма варварский.

    Да и проблемы в таком подходе на этом не ограничатся, ведь список пользователей может измениться между итерациями и даже между получаением имени и ip.
    Следовало бы единоразово получить все сырые данне, а затем вытаскивать из них нужное.
    Ответ написан
    Комментировать
  • Starlink от SpaceX - прощай звездное небо, кошмар астронома?

    @airbor
    Представьте себе 12 000 человек на поверхности всей земли. Ну то есть не 8 миллиардов как сейчас, а всего 12 000. Представляете эту плотность? Можно было бы всю жизнь искать кого-то и не встретить ни одного человека.

    А теперь поднимемся на высоту обриты, где площадь сферы еще больше. Значительно. И плотность еще меньше.

    12 000 - это нисколько. Вероятность врезаться в такой спутник примерно такая же как вероятность попасть в человека брошенным из космоса камушком, если бы на планете было не 8 миллиардов человек, а 12 000.
    Ответ написан
    3 комментария