Pull to refresh
96
1
Майоров Павел @mayorovp

Senior Backend тыжDeveloper

Send message

Поднимаем Kubernetes с нуля

Level of difficultyMedium
Reading time10 min
Views55K

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

Читать далее
Total votes 30: ↑27 and ↓3+30
Comments55

Единица информации vs Понятие

Reading time4 min
Views14K

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

Менеджер, через которого я взаимодействую с арендодателем: «Что вам непонятно? Пишете обычное заявление, чтобы обеспечительный платёж зачли в счёт аренды». Стоп. На чьё имя, в какой форме?? Она варится в этих «обычных заявлениях» по 8 часов в день, а для меня это разовая задача.

В магазине в ряд лежат пакеты с печеньем.
— Дайте вот это печенье (показываю на конкретный пакет).
— Какое?
— Вот это (тяну указательный палец, он почти уже упирается в пакет).
— Это??
— Да.
— Это не печенье. Это галеты… [смотрит на меня, как на идиота]
Занавес.

Язык большинства инструкций можно понять только если ты УЖЕ умеешь пользоваться гаджетом. Их авторы разговаривают сами с собой. Да ещё терминами, каждый из которых требует отдельного обстоятельного ввода.

Читать далее
Total votes 48: ↑47 and ↓1+58
Comments115

Это Gaidai какой-то. Сервис HTTP сценариев

Reading time9 min
Views2.1K

Привет, Хабр, меня зовут Артем Кудряшов, некоторую кучу лет я работаю в ATI.SU — крупнейшей в России бирже грузоперевозок. В разное время я писал код, управлял командами и занимался другими весёлыми вещами. В статье, что вы видите, хочу рассказать об одном из наших сервисов с интересной функциональностью и крутым, по моему личному мнению, названием — Gaidai. Поехали.

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

Разных сообщений много: на момент написания статьи мы отправляем почти 350 типов сообщений. Вот так выглядит один из вариантов, который пользователь видит на сайте:

Читать далее
Total votes 9: ↑6 and ↓3+3
Comments1

CoroOS: концепт операционной системы для микроконтролеров на корутинах С++20

Reading time18 min
Views11K

Здравствуйте! Меня зовут Александр, и я работаю программистом микроконтроллеров.

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

И ваш автор не исключение.

Как по мне - дело не то чтобы запредельно сложное, сколько кропотливое. Если у вас, как и у меня, увлечение и(или) карьера крутится вокруг Arm Cortex-M серии, то вооружаемся стволами (раз, два и три) и выдвигаемся за Джеффом. Но, написав и запустив ядро своей "best of the best" оси около года назад, я вскоре забросил разработку, ибо как я ни креативил, вместо Сокола Тысячелетия у меня получался крепенький, но банальный и скучный велосипед.

А ведь хотелось оригинальности и бесстыдного выпендрёжа.

И тут в 20-й стандарт плюсов завезли корутины.

Читать далее
Total votes 24: ↑21 and ↓3+28
Comments28

Кватернионы. Решение одной навигационной задачи

Reading time10 min
Views11K

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

Читать далее
Total votes 28: ↑28 and ↓0+28
Comments5

C#: Знакомство с генераторами исходного кода

Reading time11 min
Views21K

image


Мы рады представить вам превью генераторов исходного кода. Это новая возможность, которая позволяет разработчикам C# анализировать пользовательский код и создавать новые файлы C#, которые в свою очередь могут добавляться в процесс компиляции. Это происходит при помощи нового компонента — генератора исходного кода (Source Generator).


Чтобы начать работу с генераторами понадобятся последние .NET 5 preview и Visual Studio preview. Примечание: чтобы построить генератор исходного кода пока требуется Visual Studio. Это будет изменено в следующем превью .NET 5.

Читать дальше →
Total votes 12: ↑11 and ↓1+17
Comments10

[Конспект админа] Что делать, если программа хочет прав администратора, а вы нет

Reading time7 min
Views202K


(с) Вася Ложкин.


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


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


Попробуем разобрать решения, которые позволят и программу запустить, и безопасника с финансистом не обозлить.

Читать дальше →
Total votes 86: ↑86 and ↓0+86
Comments88

Локализация приложений: как мы подружили перевод и разработку

Reading time14 min
Views28K


Привет, Хабр! Я ведущий разработчик системы локализации в Badoo. Мы работаем с несколькими большими проектами: Badoo, Bumble, Lumen и Chappy. Сейчас в системе локализации у нас находятся 150 000 фраз и текстов, переведённых на 52 языка. При этом каждое из наших приложений имеет свою аудиторию, свои рынки, свой стиль общения с пользователями, версии для веба и для мобильных платформ.


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


Статья написана по мотивам моего доклада на конференции Highload++ в ноябре.

Читать дальше →
Total votes 48: ↑46 and ↓2+61
Comments26

DevOps, балет и ниндзя: маленькие истории про начало IT-карьеры

Reading time15 min
Views9K
Давайте вспомним, как мы вообще пришли в IT? Кто-то завидовал черепашкам ниндзя, кто-то хотел переделать любимую игру, кто-то случайно пришел в кружок радиолюбителей, а кто-то вообще собирался заниматься балетом, — пути, приводящие человека в IT-индустрию, неисповедимы; может быть, это происходит потому, что сама эта индустрия требует от очень разных людей очень разных талантов, — и жизненный опыт иногда оказывается не меньшей ценностью, чем опыт профессиональный.

Совместно с проектом PostPost.Media мы в Lamoda собрали истории как наших коллег, так и предложили всем желающим написать свои. Наслаждайтесь самыми неожиданными сюжетами или впишите свою историю в общую картину, чтобы мы добавили ее в следующую подборку :)


Читать дальше →
Total votes 24: ↑23 and ↓1+25
Comments7

DevOps-инженеров не существует. Кто тогда существует, и что с этим делать?

Reading time7 min
Views25K


В последнее время такие объявления заполонили интернет. Несмотря на приятную зарплату, не может не смущать, что внутри написана дикая ересь. Вначале предполагается, что «DevOps» и «инженер» можно каким-то образом склеить вместе в одно слово, а далее идет рандомный список требований, часть которых явно скопирована из вакансии сисадмина.


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


Такие вакансии можно всячески порицать, но факт остается фактом: их много, и так устроен рынок на данный момент. Мы сделали девопс-конференцию и открыто заявляем: «DevOops — не для DevOps-инженеров». Тут многим покажется странным и диким: почему люди, делающие совершенно коммерческое мероприятие, идут против рынка. Сейчас всё объясним.

Читать дальше →
Total votes 29: ↑24 and ↓5+28
Comments35

Микросервисы: размер имеет значение, даже если у вас Kubernetes

Reading time7 min
Views31K
19 сентября в Москве состоялся первый тематический митап HUG (Highload++ User Group), который был посвящён микросервисам. На нём прозвучал доклад «Эксплуатация микросервисов: размер имеет значение, даже если у вас Kubernetes», в котором мы поделились обширным опытом компании «Флант» в области эксплуатации проектов с микросервисной архитектурой. В первую очередь он будет полезен всем разработчикам, задумывающимся о применении этого подхода в своём настоящем или будущем проекте.



Представляем видео с докладом (50 минут, гораздо информативнее статьи), а также основную выжимку из него в текстовом виде.

NB: Видео и презентация доступны также в конце этой публикации.
Total votes 40: ↑39 and ↓1+38
Comments23

Как работает альфа-композитинг

Reading time23 min
Views24K
image

Возможно, прозрачность не кажется какой-то интересной темой. Формат GIF, позволявший некоторым пикселям просвечивать сквозь фон, опубликован более 30 лет назад. Почти в каждом приложении для графического дизайна, выпущенном за последние два десятка лет, поддерживается создание полупрозрачного контента. Эти понятия давно перестали быть чем-то новым.

В своей статье я хочу показать, что на самом деле прозрачность в цифровых изображениях намного интереснее, чем кажется — в том, что мы воспринимаем как нечто само собой разумеющееся, есть невидимая глубина и красота.
Читать дальше →
Total votes 53: ↑53 and ↓0+53
Comments15

Криптографические атаки: объяснение для смятённых умов

Reading time33 min
Views54K
При слове «криптография» некоторые вспоминают свой пароль WiFi, зелёный замочек рядом с адресом любимого сайта и то, как трудно залезть в чужую почту. Другие вспоминают череду уязвимостей последних лет с говорящими аббревиатурами (DROWN, FREAK, POODLE...), стильными логотипами и предупреждением срочно обновить браузер.

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

За последние годы коллекция криптографических атак превратилась в зоопарк кричащих логотипов, набитых формулами научных статей и породила общее мрачное ощущение, что всё сломано. Но на самом деле многие из атак основаны на нескольких общих принципах, а бесконечные страницы формул часто сводятся к простым для понимания идеям.
Читать дальше →
Total votes 103: ↑103 and ↓0+103
Comments22

Data Version Control (DVC): версионирование данных и воспроизводимость экспериментов

Reading time8 min
Views33K
Эта статья — своеобразный мастер-класс «DVC для автоматизации ML экспериментов и версионирования данных», который прошел 18 июня на митапе ML REPA (Machine Learning REPA:
Reproducibility, Experiments and Pipelines Automation) на площадке нашего банка.

Тут я расскажу об особенностях внутренней работы DVC и способах применения его в проектах.

Примеры кода, используемые в статье доступны здесь. Код тестировался на MacOS и Linux (Ubuntu).

Читать дальше →
Total votes 37: ↑35 and ↓2+33
Comments1

У цветового треугольника не два, а один угол

Reading time16 min
Views42K
Как увидеть цвет, которого в природе не бывает?

image


Четыре года назад на Хабре был пост с интересным и полезным видео «Как устроен цвет». Лектор — Дмитрий Николаев, заведующий сектором зрительных систем ИППИ РАН.

Я сделал расшифровку (в меру своего понимания материала), потому что считаю и тему важной и подачу — отличнейшей. Пока набирал текст, чуть не поменял своё φ(λ). Слово спикеру:


Поговорим о математике и геометрии цвета, о том, какие абстрактные структуры заложены в этом слове.

Что такое «цвет» не знает никто.

Цвет — это что-то, о чем говорит человек, наблюдающий и познающий мир с помощью глаза.

Глаз регистрирует какие-то свойства электромагнитного излучения, называемого светом, попадающего в глаз, преломляющегося на хрусталике, проецируемого на сетчатку. «Колбочки» регистрируют какие-то мощностные свойства. И дальше внезапно человек говорит о каком-то «цвете».

В физике нет цвета, а есть спектральные свойства излучения.

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

Совершенно точно, «цвет» — психологический феномен. Цвет — это ощущение, к объективной физике не имеющий отношения.

Мы можем говорить о цвете вещей — красная рубашка — «краснота» рубашки напрямую никак не связана с тем, какое излучение придет от этой рубашки в глаз.
Total votes 97: ↑93 and ↓4+89
Comments26

Условие как компромисс

Reading time9 min
Views34K
Они объясняли мне: «У тебя есть апельсин, так? Теперь ты разрезаешь этот апельсин на конечное количество кусочков, складываешь их обратно в апельсин, и он становится таким же большим как солнце. Истина или ложь?»
— Между кусочками нет пространства? — Нет.
— Невозможно! Такого просто не может быть.
— Ха! Попался! Идите все сюда! Это теорема Того-то о безмерной мере!
И когда им кажется, что они поймали меня, я напоминаю им: «Но вы сказали апельсин! А апельсиновую кожуру невозможно разрезать на кусочки тоньше атомов».
— Но у нас есть условие непрерывности. Мы можем резать бесконечно!
— Нет, вы сказали апельсин, поэтому я принял, что вы имеете в виду настоящий апельсин.
Так что я всегда выигрывал. Если я угадывал — здорово. Если не угадывал, то всегда мог найти в их упрощении что-то, что они упускали из виду.

Ричард Фейнман. «Вы, конечно, шутите, мистер Фейнман!»

Пролог


Так получилось, что с самого детства я увлекаюсь занимательными задачами. Решал я их, как правило, хорошо и быстро, хотя не обходилось и без курьезов. Например, на олимпиаде по математике за седьмой класс, куда я попал, будучи в шестом, была задача: найти такой-то угол в треугольнике, обладающем такими-то свойствами. Мои познания в области геометрии были на тот момент весьма отрывочны, однако кое на что их всё же хватило. Недолго думая, я построил этот треугольник в тетради с помощью циркуля и линейки, а затем измерил нужный угол транспортиром. Это было практически как в том анекдоте про «найдите икс», когда ученик ткнул в букву «x» пальцем с радостным криком «вот он!».
Как интересно! Что же было дальше?
Total votes 59: ↑56 and ↓3+53
Comments79

Fluent 1.0: гибкая система локализации

Reading time7 min
Views6.6K


Fluent — семейство спецификаций, реализаций и практик для локализации, разработанной Mozilla. Сейчас она применяется в браузере Firefox. Используя Fluent, переводчики могут писать более естественные переводы на родном языке. Сегодня мы представляем спецификацию формата файлов Fluent версии 1.0. Приглашаем разработчиков переводческих инструментов попробовать его и рассказать о ваших впечатлениях.

Читать дальше →
Total votes 18: ↑18 and ↓0+18
Comments41

Алгоритм Дугласа-Пекера

Reading time5 min
Views16K

Предисловие


Не так давно пришлось поработать с упрощением полигональной цепи (процесс, позволяющий уменьшить число точек полилинии). В целом, данный тип задач очень распространен при обработке векторной графики и при построении карт. В качестве примера можно взять цепь, несколько точек которой попадают в один и тот же пиксель – очевидно, что все эти точки можно упростить в одну. Некоторое время назад я практически ничего не знал об этом от слова «совсем», в связи с чем, пришлось в быстром темпе восполнять необходимый багаж знаний по этой теме. Но каково было мое удивление, когда в интернете я не нашел достаточно полных руководств по этому вопросу… Мне приходилось отрывками искать информацию с совершенно разных источников и, после проведенного анализа, выстраивать все в общую картину. Занятие не из самых приятных, если честно. Поэтому мне хотелось бы написать цикл статей, посвященных алгоритмам упрощения полигональной цепи. Как раз-таки начать я решил с наиболее популярного алгоритма Дугласа-Пекера.


Читать дальше →
Total votes 40: ↑40 and ↓0+40
Comments10

Как распознать кракозябры?

Reading time1 min
Views429K
В комментариях к предыдущему посту про иероглифы сказали, что хорошо бы иметь такую же блок-схему для кракозябр.

Итак, вуаля!


За источник информации была взята статья из вики. В блок-схеме «UTF-16 → CP 866» означает, что исходная кодировка была «UTF-16», а распозналась она как «CP 866».

Как всегда — кликабельно. Исходник в .docx: здесь.
Total votes 429: ↑418 and ↓11+407
Comments64

[Пятничное] Сказ про то, как IT-сейл дрова пыталась продать, или Бэкстейдж одного тендера

Reading time6 min
Views7.3K
Ой, вот только не говорите мне, что никогда не готовили тендер за заказчика. Было же? Было? Вооот. Будь вы инженер, пресейл или, не дай Бог, юрист. Я уж не говорю про продавцов и менеджеров отдела закупок… Мы все (если перефразировать классика) писали понемногу чего-нибудь и как-нибудь. В общем, я тут вспомнила свой скромный опыт, сложила его с наблюдениями за коллегами и облекла в поэтическую форму. На документальность повествования не претендую, но, кажется, основное отразить получилось.

image
Читать дальше →
Total votes 39: ↑37 and ↓2+35
Comments6

Information

Rating
1,515-th
Location
Челябинск, Челябинская обл., Россия
Date of birth
Registered
Activity