• Избегайте рекурсии в Python: вспомните о замыкании

    • Translation


    Вот что получается, когда кандидат наук заморачивается рекурсией…

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

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

    Приятного чтения!
  • Сборка контейнеров без Docker

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

    Читать далее
    • +17
    • 4.4k
    • 8
  • Что нас ждет в Wi-Fi 7, IEEE 802.11be?

    • Tutorial
    Недавно на рынок вышли устройства, поддерживающие технологию Wi-Fi 6 (IEEE 802.11ax), о которой много говорят. Но мало кто знает, что уже сейчас ведётся разработка нового поколения технологии Wi-Fi — Wi-Fi 7 (IEEE 802.11be). О том, что будет представлять собой Wi-Fi 7, в этой статье.

    Основные фичи Wi-Fi 7 (картинка из статьи https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9090146)
    Читать дальше →
  • DevOps инструменты не только для DevOps. Процесс построения инфраструктуры автоматизации тестирования с нуля

    Часть 1: Web / Android


    Примечание: данная статья является переводом на русский язык оригинальной статьи «DevOps tools are not only for DevOps. Building test automation infrastructure from scratch». Однако все иллюстрации, ссылки, цитаты и термины сохранены на языке оригинала, чтобы избежать искажения смысла при переводе на русский язык. Желаю вам приятного изучения!


    Читать дальше →
    • +20
    • 16.5k
    • 3
  • Руководство по Kubernetes, часть 2: создание кластера и работа с ним

    • Translation
    В прошлый раз мы рассмотрели два подхода к работе с микросервисами. В частности, один из них подразумевает применение контейнеров Docker, в которых можно выполнять код микросервисов и вспомогательных программ. Сегодня же мы, используя уже имеющиеся у нас образы контейнеров, займёмся работой с Kubernetes.


    Читать дальше →
    • +25
    • 63.8k
    • 5
  • Руководство по Kubernetes, часть 1: приложения, микросервисы и контейнеры

    • Translation
    • Tutorial
    По нашей просьбе Хабр создал хаб Kubernetes и нам приятно разместить первую публикацию в нём. Подписывайтесь!

    Kubernetes — это просто. Почему же банки платят мне за работу в этой сфере большие деньги, в то время как любой может освоить эту технологию буквально за несколько часов?


    Читать дальше →
  • 11 инструментов, делающих Kubernetes лучше

    • Translation


    Далеко не все серверные платформы, даже самые мощные и масштабируемые, удовлетворяют все потребности, как есть. Хотя Kubernetes и работает отлично сам по себе, ему может не хватить нужных частей для полноты. Вы всегда найдете частный случай, который игнорирует вашу нужду, или при котором Kubernetes не будет работать при установке по умолчанию — например, поддержка баз данных или работа CD.


    Здесь и появляются дополнения, расширения и прочие ништяки для этого оркестратора контейнеров, поддерживаемые широчайшим сообществом. В этой статье будет 11 лучших вещей, найденных нами. Нам самим в Southbridge они очень даже интересны, и мы планируем разобраться с ними практически — на винтики и гаечки разобрать и посмотреть, что внутри. Часть из них прекрасно дополнит любой кластер Kubernetes, другие же помогут решить частные задачи, не реализованные в типовой поставке Kubernetes.

    Читать дальше →
    • +16
    • 4.7k
    • 2
  • Учебный проект на Python: интерфейс в 40 строк кода (часть 2)

    • Translation
    image

    Демонстрация проекта Python с пользовательским интерфейсом никогда не была такой простой. С помощью Streamlit Framework вы можете создавать браузерный пользовательский интерфейс, используя только код Python. В этой статье мы будем создавать пользовательский интерфейс для программы лабиринта, подробно описанной в предыдущей статье.

    Streamlit


    Streamlit — это веб-фреймворк, предназначенный для исследователей данных для простого развертывания моделей и визуализаций с использованием Python. Это быстро и минималистично, а также красиво и удобно. Есть встроенные виджеты для пользовательского ввода, такие как загрузка изображений, ползунки, ввод текста и другие знакомые элементы HTML, такие как флажки и переключатели. Всякий раз, когда пользователь взаимодействует с потоковым приложением, сценарий python перезапускается сверху вниз, что важно учитывать при рассмотрении различных состояний вашего приложения.
    Вы можете установить Streamlit с помощью pip:

    pip install streamlit

    И запустите streamlit в скрипте Python:

    streamlit run app.py

    Варианты использования


    В предыдущей статье мы создали программу на Python, которая будет проходить лабиринт, учитывая файл изображения и начальное/конечное местоположения. Мы хотели бы превратить эту программу в одностраничное веб-приложение, где пользователь может загрузить изображение лабиринта (или использовать изображение лабиринта по умолчанию), настроить начальное и конечное местоположение лабиринта и увидеть пройденный лабиринт.
    Читать дальше →
  • А вы можете решить эти три (обманчиво) простые задачи на Python?

    • Translation
    С самого начала своего пути как разработчика программного обеспечения я очень любил копаться во внутренностях языков программирования. Мне всегда было интересно, как устроена та или иная конструкция, как работает та или иная команда, что под капотом у синтаксического сахара и т.п. Недавно мне на глаза попалась интересная статья с примерами того, как не всегда очевидно работают mutable- и immutable-объекты в Python. На мой взгляд, ключевое — это то, как меняется поведение кода в зависимости от используемого типа данных, при сохранении идентичной семантики и используемых языковых конструкциях. Это отличный пример того, что думать надо не только при написании, но и при использовании. Предлагаю всем желающим ознакомиться с переводом.



    Попробуйте решить эти три задачи, а потом сверьтесь с ответами в конце статьи.

    Совет: у задач есть кое-что общее, поэтому освежите в памяти решение первой задачи, когда перейдёте ко второй или третьей, так вам будет проще.
    Читать дальше →
  • Невыдуманные истории про сеть: как я учил физику на своих и чужих ошибках

      Привет, Хабр! Меня зовут Антон Клочков, я сетевой архитектор в компании DataLine, а также участник проекта linkmeup. Я занимаюсь сетями более 10 лет и за это время успел поработать в больших и маленьких телеком-операторах, крупных корпорациях и небольших бизнесах. 

      На практике я не раз убеждался, что физика упряма и обязательно отомстит за попытки пренебречь ее законами. За ошибки в физике сети я расплачивался квартальными премиями, исправлением косяков по ночам и «любовью» пользователей.  Зато такая школа жизни запоминается раз и навсегда.

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



      Дисклеймер: в статье собраны истории из моего опыта в больших и малых энтерпрайзах и операторах связи. Многие из них случились со мной или коллегами еще на заре карьеры. Большинство персонажей — собирательные образы, любые совпадения случайны. Мое мнение может не совпадать с мнением компании DataLine.
      Читать дальше →
    • Основы Linux от основателя Gentoo. Часть 1 (1/4): BASH, основы навигации

      • Translation

      Предисловие


      Об этом руководстве


      Добро пожаловать в первую из четырех частей обучающего руководства по основам Linux, разработанного чтобы подготовить вас к сдаче экзамена Linux Professional Institute 101. В нем вы познакомитесь с bash (стандартной оболочкой командного интерпретатора в Linux), узнаете о большинстве возможностей таких стандартных команд Linux, как ls, cp и mv, разберетесь в инодах, жестких и символьных ссылках, и многом другом. К концу этого руководства у вас сформируется некий фундамент знаний, и вы будете готовы к изучению основ администрирования Linux. К концу всего курса (8 частей), у вас будет достаточно навыков, чтобы стать системным администратором Linux и пройти сертификацию LPIC Level 1 от Linux Professional Institute, если конечно захотите.



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


      Читать дальше →
    • Что такое Windows PowerShell и с чем его едят? Часть 1: основные возможности

        Исторически утилиты командной строки в Unix-системах развиты лучше чем в Windows, однако с появлением нового решения ситуация изменилась.

        Windows PowerShell позволяет системным администраторам автоматизировать большинство рутинных задач. С ее помощью можно менять настройки, останавливать и запускать сервисы, а также производить обслуживание большинства установленных приложений. Воспринимать синее окошко как еще один интерпретатор команд было бы неправильно. Такой подход не отражает сути предложенных корпорацией Microsoft инноваций. На самом деле возможности Windows PowerShell гораздо шире: в небольшом цикле статей мы попробуем разобраться, чем решение Microsoft отличается от более привычных нам средств.


        Читать дальше →
      • Плезиохронная цифровая иерархия и поток E1

        Приветствую вас, друзья!

        В ходе изучения Цифровых систем передачи, а так же по рекомендации наставника, дабы лучше разобраться в изучаемом материале и разложить всё по полочкам, я постараюсь объяснить этот материал Вам, если это у меня получится, то можно считать, что я его усвоил хорошо. Надеюсь Вам будет интересно.
        В статье расскажу кратко о ЦСП и особенностях их построения, ПЦИ(PDH) и более подробно о потоке Е1 и его структуре.
        Читать дальше →
        • +7
        • 133k
        • 7
      • Еще немного про SDH и PDH

        Прослушав второй выпуск подкаста ЛинкМиАп опубликованного на habrahabr.ru у меня возникло желание дополнить и немного поправить сказанное в первой части выпуска посвященной SDH/PDH. Но так как все мои мысли не умещались в рамки обычного комментария, то я воспользовавшись майскими праздниками написал это пост.
        Читать дальше →
        • +16
        • 112k
        • 9
      • EPON/GPON-сети. Очевиден ли выбор?

          image

          Проникновение интернета в городах миллионниках по данным ФОМ на начало 2015 года уже составляло 80%. Сетью охвачены жители практически всех многоквартирных домов. За бортом остаются лишь жители частного сектора. Для операторов связи именно освоение частных домохозяйств может стать вариантом расширения своей абонентской базы, однако и здесь все не так просто. Взять этот сегмент через FTTB-сети не так-то просто, DSL безнадежно устарел, Wi-Fi быстр и легален только в глянцевых проспектах. Зато xPON успел подешеветь буквально до неприличия. На нем и остановимся подробней.
          Читать дальше →
        • [Не только студентам] Лабораторная работа в Packet Tracer

          Задание лабораторной работы


          Компания арендовала 3 помещения в бизнес центре. В этих помещениях есть только голые стены и розетки. Вы друг основателя фирмы и по совместительству сетевой и системный администратор. Вас попросили разработать схему сети.

          В сети должна быть реализована возможность связываться с любым из трёх помещений в компании, но при этом каждое помещение (отдел) должны быть изолированы.
          Также в третьем помещении необходимо создать беспроводную точку доступа. Эта точка должна иметь пароль junior17, должны автоматически выдаваться первые 20 адресов, SSID должен быть скрыт.

          Во втором отделе стоит не настроенный web сервер. Это тоже необходимо исправить. От Вас требуется реализовать в каждом помещении возможность получать доступ к серверу по url имени.

          В первом отделе 4 рабочих места, во втором — 2 рабочих места и сервер, третье помещение нужно для отдыха персонала (10 рабочих мест, в том числе 4 беспроводных).

          К сетевому оборудованию вам необходимо предоставить безопасный удаленный доступ (SSH).
          Обеспечить защиту портов доступа на коммутаторах (не более 2 адресов на интерфейсе, адреса должны быть динамически сохранены в текущей конфигурации, при попытке подключения устройства с адресом, нарушающим политику, на консоль должно быть выведено уведомление, порт должен быть отключен).

          Так как Вы давно дружны с директором он попросил Вас создать административную виртуальную сеть и задать ей имя KingMan.

          В средствах Вы ограничены. У Вас осталось с прошлой работы 3 коммутатора Cisco 2960, маршрутизатор Cisco 1941 и роутер Cisco WRT300N.

          Всю работу необходимо выполнить в бесплатной программе Packet Tracer.
          Читать дальше →
        • Всё об IP адресах и о том, как с ними работать

          • Tutorial
          Доброго времени суток, уважаемые читатели Хабра!

          Не так давно я написал свою первую статью на Хабр. В моей статье была одна неприятная шероховатость, которую моментально обнаружили, понимающие в сетевом администрировании, пользователи. Шероховатость заключается в том, что я указал неверные IP адреса в лабораторной работе. Сделал это я умышленно, так как посчитал что неопытному пользователю будет легче понять тему VLAN на более простом примере IP, но, как было, совершенно справедливо, замечено пользователями, нельзя выкладывать материал с ключевой ошибкой.
          Читать дальше →
        • GPS антенна своими руками за 5 минут

            Для приема GPS сигналов, можно изготовить несложную антенну, которая по своим возможностям будет соответствовать маленькой патч-антенне.

            Предлагаемая антенна — диполь, пассивная, поэтому небольшой выигрыш в токе потребления GPS модуля достигается.

            Принимаем центральную частоту GPS сигнала равной 1575.42 МГц, находим длину одного плеча антенны L/4 = 47.7 мм. Цифра справедлива для провода без изоляции. Провод в изоляции должен быть чуть короче. Длина плеч диполя и монополя отсчитывается от грани оплетки кабеля.

            Если половинка диполя одна, то это уже монополь. Я подготовил диполь и монополь.



            Антенны крепятся на короткий коаксиал с разъемом типа IPX.В качестве эталонной антенны используем активную маленькую патч-антенну. GPS-модуль NEO6.


            Читать дальше →
          • Как связаны длительность аренды DHCP и процесс сбора мусора в DNS

            • Translation
            В качестве предисловия. При общении с коллегами, отвечая на их вопросы о совместной настройке DNS и DHCP, часто отсылаю их к замечательной статье Шона Айви на Technet. К сожалению, аналогичного материала на русском языке я не находил. В очередной раз, устно переведя её знакомому, я решил оформить письменный перевод, чтобы иметь возможность отсылать к нему.

            Привет всем, меня зовут Шон Айви и я US PFE (Premier Field Engineer). Моя специализация — операционная система Windows и службы Active Directory. Проще говоря, я специализируюсь на Active Directory и связанных с ней сетевых службах. Недавно, у трёх разных клиентов, я помогал SCCM-администраторам, у которых была проблема с установкой SCCM агента. В логе ccm.log значилась ошибка Failed to get token for current process (5). Мы обнаружили, что проблема была не в SCCM, а во взаимодействии DNS и DHCP. Как оказалось, другие службы тоже испытывали связанные с этим проблемы, просто либо демонстрировали иные симптомы, либо не демонстрировали их совсем. Давайте поговорим о том почему так получалось и как это можно предотвратить!
            Читать дальше →
            • +15
            • 34.6k
            • 7
          • Кто такой DevOps и когда он не нужен



              Тема DevOps за последние несколько лет стала очень популярной. Многие мечтают в нее влиться, но, как показывает практика, часто только из-за уровня зарплат.

              Некоторые указывают в своем резюме DevOps, хотя не всегда знают и понимают суть термина. Кто-то считает, что изучив Ansible, GitLab, Jenkins, Terraform и им подобные (список можно продолжать на свой вкус), то сразу станет «девопсом». Это, конечно, не так.
              Читать дальше →