Search
Write a publication
Pull to refresh
0
0
Дмитрий @ex_ineris

QA Engineer

Send message

Замена 3-way merge на Server-Side Apply: как werf 2.0 решает проблемы Helm 3

Level of difficultyMedium
Reading time6 min
Views2.4K

В werf 1.2 для обновления ресурсов в Kubernetes мы использовали механизм под названием 3-way merge. Он достался нам от Helm 3, который мы использовали как подсистему развертывания. Хотя 3-way merge и решил часть проблем, существовавших в 2-way merge, многие проблемы, приводящие к некорректным обновлениям ресурсов, так и остались нерешёнными.

В werf 2.0 и Nelm мы пошли дальше и заменили 3-way merge на более современный механизм обновления ресурсов Kubernetes — Server-Side Apply. Он решает все проблемы 3-way merge и гарантирует корректные обновления ресурсов в кластере при развёртывании. В этой статье мы расскажем, какие проблемы испытывают пользователи Helm 3 и как Server-Side Apply помогает их преодолеть.

Читать далее

Дроиды и питоны: работаем с ADB на Python

Level of difficultyEasy
Reading time16 min
Views10K

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

И вот, тогда я узнал об одной прекрасной утилите - Android Debug Bridge, ADB. Прекрасный инструмент для работы с Android - подключил телефон, и занимайся чем хочешь. Но иногда так лень запоминать разные команды, вводить их каждый раз... Вот здесь на помощь приходит Python. Прекрасный язык с большими возможностями.

В этой статье я рассмотрю как работать с ADB через python.

Если вы - разработчик или тестировщик приложений для Android, просто обычный программист или юзер - то вы попали по адресу.

Читать далее

Работа программистом в Германии: как пережить испытательный срок

Reading time8 min
Views31K

Живу в Германии, работаю программистом в местной компании и хочу рассказать об одном из самых сложных и напряженных - по крайней мере, субъективно, - этапов работы - испытательном сроке (нем. Probezeit), о его особенностях, как формальных, так и неформальных и об отличие от российских реалий, с которыми мне довелось сталкиваться. Одним словом, если вы еще никогда не проходили испытательный срок на позиции разработчика junior'a, будь-то в Германии, России или какой либо другой стране, то этот текст точно для вас; ну а если же вы уже "тертый калач" и общее время пройденных вами испытательных сроков немногим короче, чем хвост у кометы Галлея, но вы никогда не взаимодействовали с немецкими фирмами, то и для вас этот небольшой экскурс в инокультурную корпоративную среду, надеюсь, также будет любопытен. Итак, погнали!

Читать далее

Omost — новый веб-интерфейс от создателя Controlnet, Fooocus и Forge: возможности и примеры

Level of difficultyEasy
Reading time4 min
Views5.6K

Всем привет! 

Omost, разработанный lllyasviel — это новый веб-интерфейс, который совмещает в себе возможности больших языковых моделей (LLM) и возможности генерации и изображений на SDXL моделях. Иными словами, SDXL и ChatGPT в одном флаконе

Название Omost (произношение: "almost") символизирует:

Каждый раз, когда вы используете Omost, ваше изображение почти готово

"O" означает "omni" (мультимодальный), а "most" означает стремление извлечь максимум из каждого изображения

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

Читать далее

Обзор OpenTofu 1.7.0: установка, миграция с Terraform, ключевые особенности

Level of difficultyEasy
Reading time11 min
Views7.9K

30 апреля из бета-тестирования вышел OpenTofu 1.7.0. Это Open Source-форк Terraform, который развивается под управлением Linux Foundation. Ранее мы уже писали о причинах разработки OpenTofu, связанных с изменением лицензионной политики HashiCorp в отношении своих продуктов. В этой же статье мы сделаем обзор версии 1.7.0: установим OpenTofu, выполним миграцию инфраструктуры с Terraform, а также рассмотрим ключевые особенности данного релиза.

Читать далее

Web APIs, которые функционально приближают веб-приложения к нативным

Level of difficultyMedium
Reading time6 min
Views18K

Исходные данные: мы с командой делаем банковское приложение. Веб-приложение. Не все поверят, но сегодня реально реализовать на вебе такой пользовательский опыт, от которого люди не будут скрипеть зубами и умолять вернуть им натив. Расскажу, какие Web API мы используем, раскрою тонкости и покажу примеры кода.

Читать далее

Основы работы с gRPC на Python: создание сервиса с использованием FastAPI. Часть II

Level of difficultyMedium
Reading time10 min
Views18K

Изучив основы gRPC в первой части нашей серии, мы теперь погрузимся в практическую реализацию gRPC сервиса на Python с использованием FastAPI и Piccolo ORM, чтобы показать, как это работает на примере тестового приложения.

Читать далее

Динамическое программирование на Python

Reading time4 min
Views15K

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

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

Читать далее

Об извлечении кода в Python

Reading time6 min
Views6.7K
Я начал изучать Python в 2009 году, столкнувшись с очень нетривиальной и, кстати, необычной задачей на этом языке. Тогда я разрабатывал приложение для ПК, где графический пользовательский интерфейс создавался на PyQT, а основным языком в программе был Python.

Чтобы скрыть код, я встроил интерпретатор Python в самостоятельный исполняемый файл Windows. Это можно сделать при помощи множества инструментов (напр., pyinstaller, pyexe), все они функционально похожи. Они компилируют в байт-код ваши скрипты, написанные на Python, а далее, связывая их с интерпретатором, укладывают в исполняемый файл. Если компилировать скрипты, понижая их до байт-кода, то злоумышленникам становится сложнее добраться до вашего исходного кода и взломать ваше приложение. Байт-код приходится извлекать из исполняемого файла и декомпилировать. Кроме того, таким способом можно выполнять обфускацию кода, и в результате код становится гораздо сложнее понимать.
Читать дальше →

От нуля до Тетриса: наше приключение с Python

Reading time3 min
Views6.4K

Часть 1: Денис, 10 лет

Привет всем! Меня зовут Дениска, и я хочу рассказать вам о нашем с папой увлекательном проекте! Всё началось с того, что играл с другом в мобильную игру. Мне стало очень интересно, как всё это работает: персонажи, графика, всё-всё! Я побежал к папе и спросил: "Папа, ты знаешь, как это приложение работает?".

Читать захватывающее приключение!

Рисуем фракталы на Rust и CUDA

Level of difficultyMedium
Reading time14 min
Views9.8K

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

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

Читать далее

Изучаем freeware вирус на ПК

Level of difficultyEasy
Reading time3 min
Views8.3K

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

Читать далее

Application Hosting. Обзор бесплатных и доступных хостингов приложений

Level of difficultyEasy
Reading time3 min
Views3.8K

Можно выделить следующие виды хостингов и облаков для развертывания приложений:

- VPS

- Serverless

- GitOps движки приложений

В этой статье мы не будем рассматривать VPS-хостинги, так как на эту тему уже есть множество подробных материалов и есть специализированные инструменты CI/СD.

Рассмотрим движки приложений и serverless.

Читать далее

Эволюция сети Ethernet на витой паре

Level of difficultyEasy
Reading time20 min
Views58K

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

Читать далее

Как освободить 20% времени тестировщиков: дизайн-ревью в Lamoda Tech

Level of difficultyEasy
Reading time4 min
Views4.6K

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

В один момент тестировщик позвал на помощь дизайнера. Тот попросил тестовый телефон, протестировал всю функциональность за 10 минут и нашел пять недочетов!

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

Меня зовут Наташа Филиппова, я руководитель группы разработки в Lamoda Tech. После запуска дизайн-ревью жизнь команды разделилась на «до» и «после», поэтому в этой статье я опишу наш опыт подробнее.

Читать далее

Стенд для нагрузочного тестирования на Testcontainers

Level of difficultyMedium
Reading time11 min
Views2.8K

Использование Testcontainers кардинально улучшило процесс работы с тестовыми сценариями. Благодаря этому инструменту, создание окружений для интеграционных тестов стало проще (см. статью Изоляция в тестах с Кафкой). Хотя нагрузочное тестирование встречается реже, чем функциональное, оно может быть гораздо более увлекательным. Изучение графиков и анализ работы конкретного сервиса может доставить настоящее удовольствие. Такие задачи редки, но для меня они особенно захватывающие.

Цель данной статьи — продемонстрировать подход к созданию стенда для нагрузочного тестирования в том виде, в котором пишутся обычные интеграционные тесты: в форме spock-тестов с использованием Testcontainers в среде Gradle проекта. В качестве утилит нагрузочного тестирования используются Gatling, WRK и Yandex.Tank.

Читать далее

Реализация принципа единственной ответственности на Python

Level of difficultyEasy
Reading time6 min
Views7.3K

Привет, Хабр!

Сегодня мы рассмотрим одну из основополагающих концепций SOLID-принципов — принцип единственной ответственности или сокращенно - SRP. Разберем, что такое SRP и как правильно его применять в Python.

Читать далее

WiFi-маршрутизаторы — это трекеры для массовой слежки

Reading time4 min
Views18K


Как известно, Android и iOS активно используют для позиционирования своих смартфонов информацию об окружающих точках доступа Wi-Fi. Периодически смартфон сканирует окружающее пространство на предмет окружающих BSSID (уникальные идентификаторы маршрутизаторов WiFi), также регистрирует свои координаты GPS — и отправляет информацию производителю операционной системы.

В свою очередь, Google и Apple предоставляют геопозиционную информацию всем желающим через открытые API.

Но исследователи из Мэрилендского университета (США) доказали, что детали реализации API позволяют отслеживать перемещение маршрутизаторов по миру, то есть следить за людьми.
Читать дальше →

Я проработал в IT больше 10 лет. Вот 5 вещей, которые я бы хотел знать, если бы начинал сейчас

Level of difficultyEasy
Reading time5 min
Views197K

Привет, дорогой Хабр. Душа просит выговориться, так что я пришел к тебе – заодно надеюсь поделиться чем-то полезным с молодыми айтишниками. За свою карьеру я прошел через фриланс, стажировки, корпорации, смену профессии и даже запуск собственного SaaS'а (об этом как-нибудь отдельно...). Я наделал кучу ошибок и набил болезненных шишек. Под катом я вспоминаю 5 важных уроков, которые я бы хотел получить 10 лет назад.

Под кат →

Лазер против камеры видеонаблюдения: что будет с матрицей и защитит ли IP-камеру DC-iris?

Level of difficultyEasy
Reading time7 min
Views57K

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

Так как же на самом деле лазеры влияют на маленькие сенсоры IP-камер видеонаблюдения? Давайте разбираться!

Читать далее

Information

Rating
8,199-th
Location
Днепр, Днепропетровская обл., Украина
Date of birth
Registered
Activity