Как стать автором
Обновить
21
0
Антон @gpaw

пишу код. надеюсь, хороший.

Отправить сообщение

Автоматизация развертывания стенда Kubernetes

Уровень сложностиПростой
Время на прочтение22 мин
Количество просмотров8.2K

Автоматизация развертывания стенда Kubernetes

Что бывает когда стандартное и самое распространённое решение по изучению kubernetes по каким то причинам даёт осечку на твоей рабочей машине?

Ты начинаешь пилить свой велосипед конечно! Вот и я напилил. и он даже катается!)

Читать далее
Всего голосов 11: ↑11 и ↓0+11
Комментарии7

Самый быстрый и безопасный PNG декодер в мире

Уровень сложностиСложный
Время на прочтение16 мин
Количество просмотров7.4K

Декодер изображений PNG из стандартной библиотеки языка программирования Wuffs работает в 1.22–2.75 раза быстрее, чем libpng (широко используемая реализация PNG декодера на C с открытым исходным кодом), C-библиотеки libspng, lodepng и stb_image, а также самые популярные библиотеки для работы с PNG на Go и Rust.
Статья рассказывает о том, как именно достигается такая производительность.

Читать далее
Всего голосов 19: ↑18 и ↓1+23
Комментарии39

КОГДА УМЕСТЕН CAPS LOCK, как расставить акценты и другие заметки о типографике

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров3.7K

Привет. Меня зовут Костя, и я отвечаю за дизайн в AGIMA. Мы занимаемся дизайном интерфейсов. Особенность нашей работы в том, что во многих проектах мы не можем управлять контентом. Например, когда мы делаем какой-нибудь магазин, мы задаем «гнезда», в которые потом система или контент-менеджер вставит фото товаров, цену, описание и т. д. Каталог товаров формируется динамически, а состав главного меню может поменять продакт-оунер после A/B-тестов или хотелок инвестора. Даже надписи на кнопках правит UX-райтер.

Читать далее
Всего голосов 15: ↑15 и ↓0+15
Комментарии6

Тот же граф, только в другой руке?

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров4.5K

В 2015 году математик Ласло Бабай представил свой более эффективный алгоритм, решающий задачу изоморфизма графов (Graph Isomorphism, GI) за квазиполиномиальное время. На Хабре даже есть статья, освещающая это событие. Однако в дальнейшем сам учёный признал некоторую ошибочность своего подхода, что всё равно не повлияло на отношение большинства математиков к его открытию, поскольку даже получившийся вариант, решающий задачу за субэкспоненциальное время, оказался эффективнее существующих алгоритмов. Тем не менее учёный не остановился на этом и обнаружил ошибку. Опубликованные исправления алгоритма всё-таки привели к решению задачи изоморфизма за квазиполиномиальное время.

Проблема изоморфизма графов требует алгоритмов, которые могут определить, являются ли два графа структурно идентичными. На протяжении десятилетий эта задача занимала особый статус как одна из немногих естественно возникающих задач, уровень сложности которых трудно определить. Многие годы исследователи пытались выяснить, к чему она относится. Даже сейчас неизвестно, к какому классу относится задача, а абстрактно задачу рассматривают как нечто среднее — сложнее, чем P, но легче NP. Задачу из теории графов можно обобщить до общей проблемы изоморфизма, в смежных областях математики существуют идентичные задачи, например изоморфизм конечных групп.

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Комментарии2

Все яйца — в одну корзину. Как мы интегрировали автотесты с TestIt

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров2.9K
image

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

Системы управления тестированием (они же — TMS) значительно упрощают жизнь команде тестирования. Их десятки разных на рынке. Они нужны для ведения тестовой модели и описания кейсов, их версионирования, интеграции с автотестами и их запуска, сбора данных с них, составления и прохождения тест-планов, формирования разнообразных отчётов.

При большом количестве кейсов (а у нас их несколько тысяч) в тест-плане как автоматизированных, так и ручных тестов без TMS не обойтись.

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

image
Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии0

Что мы делали, когда Jira закончилась

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров15K
В недавнем прошлом многие IT-команды применяли в разработке линейку продуктов от Atlassian: Confluence, Jira и Bitbucket. Полноценный цикл разработки включал в себя до 70 различных операций и процессов: удобно, когда их можно реализовать в единой экосистеме.

Такой подход позволяет эффективно использовать ресурсы и закрывает разные потребности команды в «одном окне» — от идеи и оформления технической документации, распределения и контроля задач до этапа эксплуатации и обработки результатов тестирования.

image

К моменту официального ухода компании Atlassian из России многие банки, корпорации, IT-компании и представители малого бизнеса настолько привыкли к Jira, что сервис стал казаться незаменимым. Но Jira кончилась. Сегодня с продлением подписки есть проблемы, и нет уверенности в том, что завтра все данные будут доступны и что они надежно защищены. И когда дело дошло до поиска альтернатив, оказалось, что выбора-то практически и нет.
Читать дальше →
Всего голосов 35: ↑30 и ↓5+27
Комментарии38

Сети Docker изнутри: как Docker использует iptables и интерфейсы Linux

Время на прочтение7 мин
Количество просмотров155K

Я познакомился с Docker довольно давно и, как и большинство его пользователей, был мгновенно очарован его мощью и простотой использования. Простота является основным столпом, на котором основывается Docker, чья сила кроется в легких CLI-командах. Когда я изучал Docker, я захотел выяснить, что происходит у него в бэкграунде, как вообще все происходит, особенно что касается работы с сетью (для меня это одна из самых интересных областей).


Я нашел много разной документации о том, как создавать контейнерные сети и управлять ими, но в отношении того, как именно они работают, материалов намного меньше. Docker широко использует Linux iptables и bridge-интерфейсы для создания контейнерных сетей, и в этой статье я хочу подробно рассмотреть именно этот аспект. Информацию я почерпнул, в основном, из комментариев на github-е, разных презентаций, ну и из моего собственного опыта. В конце статьи можно найти список полезных ресурсов.


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

Читать дальше →
Всего голосов 27: ↑27 и ↓0+27
Комментарии18

Как разбить GPU на несколько частей и поделиться с коллегами: практическое пособие по работе с MIG

Время на прочтение13 мин
Количество просмотров8K

Привет, Хабр! Меня зовут Антон, я — DevOps-инженер в отделе Data- и ML-продуктов Selectel. Последние три месяца исследовал интересную проблематику — шеринг GPU между конкурентными процессами и пользователями. В русскоязычном сегменте не смог найти ни одного оригинального материала — только переводы англоязычных статей.

После посещения пары докладов понял, что тема особенно актуальна: компании знают о шеринге GPU как о технологии, но пока не применяют ее. У меня же накопилось достаточно материалов, чтобы осветить эту тему более подробно и показать, как работает шеринг GPU на практике. Интересно? Самое время погрузиться под кат!
Читать дальше →
Всего голосов 46: ↑46 и ↓0+46
Комментарии11

Простое должно быть простым: «Легкий» Load Testing

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров3.7K

Для чего вообще создаются разные инструменты?

Очевидно же - делать работу легче и помогать в достижении результата! Молотком проще забивать гвозди, чем камнем, а гвоздодером их быстрее доставать чем чем-либо другим.

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

Наши ожидания подкрепляются рекламными проспектами, убеждающими нас, что... все инструменты лучше всех конкурентов. Во всем!

В результате представляется сказочный путь к счастью:

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

Давайте пройдемся по этому пути, пытаясь решить некие задачи нагрузочного тестирования!

Будем сравнивать подходы различных инструментов под микроскопом, разглядывая дьявола, который спрятался в деталях ;)

Читать далее
Всего голосов 5: ↑3 и ↓2+3
Комментарии12

Gitlab-ci модульные pipelines для вашего enterprise

Уровень сложностиСложный
Время на прочтение7 мин
Количество просмотров12K

Привет, меня зовут Панов Михаил, я DevOps‑инженер МТС Digital. Хочу поделиться с вами опытом построения «модульных» pipelines на основе gitlab-ci. В этой статье я расскажу, что такое модульный CI/CD, из чего он состоит, для чего нужен и как поможет командам, поддерживающим большой список нетиповых репозиториев.

Читать далее
Всего голосов 13: ↑12 и ↓1+18
Комментарии5

Микросервисы Rust в серверном WebAssembly

Уровень сложностиСложный
Время на прочтение8 мин
Количество просмотров5.7K
image

Язык программирования Rust за последние несколько лет значительно распространился. Он несколько лет подряд считается самым любимым языком программирования среди разработчиков и включён в состав ядра Linux. Rust позволяет разработчикам писать корректные программы, обеспечивающие безопасность при работе с памятью, а также такие же компактные и быстрые, как на языке C. Он идеально подходит для создания инфраструктурного программного обеспечения, включая серверные приложения, от которых требуется высокая надёжность и производительность.
Читать дальше →
Всего голосов 21: ↑18 и ↓3+23
Комментарии11

Кто же такая это ваша LoRA

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров46K

В сети в последнее время регулярно мелькают статьи типа - как обучить Stable Diffusion генерировать ваши фотографии/фотографии в определенном стиле/фотографии определенного лора/такие фотографии итп.

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

Читать далее
Всего голосов 32: ↑30 и ↓2+35
Комментарии18

Регистрация ПАК (программно-аппаратных комплексов) в реестре российского ПО 2023

Время на прочтение6 мин
Количество просмотров11K

В реестре российского ПО стала доступна регистрация ПАК. Теперь компании смогут регистрировать программно-аппаратные комплексы в реестре и получать налоговые льготы: 7,6% страховых взносов и 0% налог на прибыль. В нашем материале мы собрали ответы на самые частые вопросы.

Оглавление:

Читать далее
Всего голосов 7: ↑4 и ↓3+1
Комментарии5

Числа с плавающей точкой для гуманитариев. Что это такое и как они работают

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров38K

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

В этой статье я простым языком попытаюсь изложить данную тему и помочь решить ряд вопросов: как на самом деле процессор хранит числа с плавающей точкой? Как точка хранится в памяти? Почему при сложении 0.1 + 0.2 получается ответ ~0.30000000000000004? Если по какому-то из этих вопросов вы чувствуете, что не можете дать точный ответ, то эта статья для вас.

Читать далее
Всего голосов 36: ↑35 и ↓1+39
Комментарии37

Вероятностные структуры данных и где они обитают

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров11K

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

В этой статье я сделаю обзор таких структур данных и расскажу, какую пользу они могут принести на практике. К базовым вероятностным структурам данных можно отнести фильтр Блума, HyperLogLog и Count-Min Sketch.

Читать далее
Всего голосов 33: ↑33 и ↓0+33
Комментарии8

Picodata: простое масштабирование Tarantool

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров9.6K

Привет! Сегодня я хочу познакомить вас с ПО, которое мы разрабатываем в нашей компанией — кластерной СУБД и сервером приложений на языке Rust. Мы профессионально занимаемся созданием и эксплуатацией решений на основе Tarantool и с некоторых пор начали разработку своего ПО, о котором и пойдёт речь.

Picodata — это дальнейшее развитие истории Tarantool, в которой учтен опыт эксплуатации этой СУБД и предложены решения как архитектурных, так и функциональных недостатков открытой версии Tarantool. Также, наше ПО проще запускать, настраивать и поддерживать в рабочем состоянии благодаря единой точке входа и интеграции всего инструментария в одном исполняемом файле. Мы создавали Picodata как изначально кластерную СУБД, которой удобно пользоваться. Если не верите, что российская СУБД может быть удобной, попробуйте — в конце этой статьи есть раздел Практикум, где можно сразу же попробовать собрать кластер самому на паре-тройке виртуальных машин или на вашем локальном компьютере. Сейчас же будет немного теории о том, как вообще работает распределенный кластер, что именно не так в “ванильном” Tarantool и что нам пришлось сделать чтобы это исправить.

Погрузиться в детали
Всего голосов 101: ↑101 и ↓0+101
Комментарии5

Что делает ChatGPT… и почему это работает?

Уровень сложностиСредний
Время на прочтение75 мин
Количество просмотров155K

То, что ChatGPT может автоматически генерировать что-то, что хотя бы на первый взгляд похоже на написанный человеком текст, удивительно и неожиданно. Но как он это делает? И почему это работает? Цель этой статьи - дать приблизительное описание того, что происходит внутри ChatGPT, а затем исследовать, почему он может так хорошо справляться с созданием более-менее осмысленного текста. С самого начала я должен сказать, что собираюсь сосредоточиться на общей картине происходящего, и хотя я упомяну некоторые инженерные детали, но не буду глубоко в них вникать. (Примеры в статье применимы как к другим современным "большим языковым моделям" (LLM), так и к ChatGPT).

Читать далее
Всего голосов 248: ↑248 и ↓0+248
Комментарии121

Service Desk или Help Desk. Как правильно выбрать? Основные отличия

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров23K

В статье расскажем в чем основные отличия между helpdesk и servicedesk системами, в чем бизнес-предназначение каждой из систем. Какие helpdesk и servicedesk есть на российском и зарубежном рынке, дополнительно рассмотрим такой тип систем как FSM-системы управления мобильными сотрудниками и автоматизации сервисных процессов.

Читать далее
Всего голосов 10: ↑9 и ↓1+14
Комментарии3

О некоторых нюансах юридического оформления разработки ПО

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров4.3K

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

Регистрация нематериального актива (НМА) это комплексное мероприятие, работа бухгалтера, юриста, владельца продукта и других вовлеченных лиц.

Читать далее
Всего голосов 4: ↑2 и ↓2+2
Комментарии5

Я написал одну из самых быстрых библиотек датафреймов

Уровень сложностиСложный
Время на прочтение9 мин
Количество просмотров9.9K
image

1. Вступление


У меня в портфолио есть несколько готовых пет-проектов на Rust, и я заметил, что позиция «а у нас уже получилась DataFrame?» нисколько меня не устраивает. Поэтому я подумал, не сделать ли мне элементарный контейнер, который решал бы мою конкретную задачу. Но этот проект вышел из-под контроля.

Год спустя, написав немало кода, я создал одну из самых быстрых библиотек датафреймов, применимую в Rust и Python. Вот мой первый официальный «Hello World» на polars, размещённый у меня в блоге. Надеюсь, что с помощью этого поста я смогу пояснить читателю некоторые решения, которые мне довелось принять при проектировании, и вам станет понятнее, как Polars работает под капотом.
Читать дальше →
Всего голосов 32: ↑26 и ↓6+29
Комментарии9

Информация

В рейтинге
Не участвует
Откуда
Рыбинск, Ярославская обл., Россия
Дата рождения
Зарегистрирован
Активность