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

QA Engineer

Send message

Xray на VDS сервере и маршрутизаторе Keneetic

Level of difficultyMedium
Reading time13 min
Views113K

Какие цели у этого руководства:
Обеспечение доступа через VDS сервер используя технологии xray, посредством маршрутизатора Keenetic и скрипта Xkeen.

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

Читать далее

Дата-центр ЦЕРН на 1 эксабайт: как хранят данные

Level of difficultyEasy
Reading time6 min
Views8.5K


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

Например, в Европейском центре ядерных исследований (ЦЕРН) работает один из крупнейших дата-центров в мире. Без этого вычислительного кластера мы бы искали бозон Хиггса ещё очень долго, а Стандартная модель так бы и осталась незавершённой.
Читать дальше →

Как работать с объектным хранилищем на Python

Reading time7 min
Views11K

Файлы в проекте можно хранить разными способами: локально на компьютере, в базе данных или S3-хранилище (объектное хранилище). Последнее — одно из самых популярных решений. Оно отличается надежностью и масштабируемостью. Использовать S3 можно не только в личных целях, но и для решения бизнес-задач. Для специалиста навык работы с объектным хранилищем востребован. Он поможет быстрее дойти до следующего уровня в карьере.

Под катом расскажем о преимуществах S3, научимся загружать и получать файлы, сверстаем небольшой сайт с его использованием!
Читать дальше →

Замена 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.

Читать далее

Information

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