Pull to refresh

Technotext

Скрипты по сусекам: как создать инструмент для контроля количества серверных комплектующих на складе

Reading time11 min
Views4.9K

Всем привет, Хабр. Меня зовут Сергей, в Selectel я работаю в департаменте IaaS-продуктов и отвечаю за выделенные серверы, которые мы сдаем в аренду. Число клиентов растет каждый год — вместе с ними растет потребность в новых серверах и комплектующих. Чем больше становится оборудования, тем сложнее контролировать его наличие на складе и вовремя планировать новые поставки. Но это часть моей работы.

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

Увеличиваем FPS в аниме с помощью нейросети и GPU Tesla T4

Reading time7 min
Views31K

Привет, Хабр! Я Кирилл, работаю в техподдержке Selectel. Как-то я решил посмотреть легендарное аниме 1995 года «Призрак в доспехах» и не смог сдержать слез. В первую очередь оттого, что частота кадров в этом аниме – убийственные для моего зрения 23 кадра в секунду. В силу особенностей жанра аниме частота кадров на некоторых отрезках видео может достигать до 12 в секунду.

Страдать я не хотел, поэтому начал гуглить, какое решение может предложить мне мир IT. В итоге наткнулся на крайне интересную технологию — интерполяцию, которая используется почти везде, но мы о ней очень мало знаем. Под катом рассказываю, как она, нейросеть RIFE и сервер с GPU помогли мне посмотреть «Призрака» без головной боли.
Читать дальше →

«Эльбрус-8СВ» в дата-центре: реально ли сделать «импортозамещающий» сервер

Reading time6 min
Views35K

Привет, Хабр! Меня зовут Максим, я работаю тестировщиком оборудования в Selectel Lab. Кажется, сейчас как никогда важно иметь план Б, поэтому мы взяли на изучение процессор «Эльбрус-8СВ». Он шел в комплекте с материнской платой «2Э8СВ-EATX» производства компании МЦСТ.

Процессор впаян в плату, и возможность апгрейда материнской платы ограничена — точнее ее нет. Под катом рассказываю, как мы собирали и тестировали сервер на отечественном процессоре.
Читать дальше →

Домашний дата-центр: ошибки, результаты и советы

Reading time9 min
Views46K

Привет, Хабр! Меня зовут Ярослав, я стажер инженерно-технического отдела в Selectel. И несколько лет назад у меня была мечта — сделать домашний дата-центр. Я ее исполнил и хочу предупредить: не повторяйте моих ошибок, сохраните психику.

В статье делюсь опытом проектирования и сборки домашнего дата-центра. А также рассказываю, как случайно не сжечь серверный шкаф и за что провайдеры могут подать в суд. Подробности под катом.
Читать дальше →

Что такое MLOps? Самый подробный текст про работу с ML-системами, который вы найдете в интернете

Reading time25 min
Views36K


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

Сохраняйте текст в закладки, потому что на данный момент это, возможно, самое полное описание MLOps на русском языке (и не перевод очередной англоязычной статьи!). Подарим мерч Selectel тому, кто пришлет ссылку на более развернутое описание концепции в комментариях.
Читать дальше →

Персональный план профессионального развития: как построить его без мук и понять, нужен ли он вообще

Reading time5 min
Views28K

В большинстве IT-компаний сейчас сезон ревью и профессиональной рефлексии: что я сделал за год и вырос ли профессионально? Ответить на эти экзистенциальные вопросы проще, если у вас есть PDP, или персональный план развития. Это инструмент, который помогает системно и экологично по отношению к себе двигаться к цели.

Я — Лена Насыбуллина, методист продуктовых образовательных программ в Selectel. В этом тексте расскажу, чем полезен PDP и как его составить.
Читать дальше →

Укрепление Nginx с помощью Fail2ban: тестируем и оцениваем «профит»

Reading time10 min
Views27K

«Только запустил Nginx-приложение, а в access.log уже десятки записей с непонятными запросами, переборами паролей и другого» — типичная ситуация для незащищенного сервера. Это следствие работы «ботов» для сканирования белых сетей, поиска открытых портов, сбора информации о версиях запущенных служб и подбора паролей к сервисам.

В статье расскажу, как с помощью open source-инструмента Fail2ban укрепить Nginx и защитить сервисы от взлома. А также продемонстрирую способы блокирования DDoS-атак. Подробности под катом.
Читать дальше →

Обязан ли разработчик развиваться?

Reading time5 min
Views59K

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

Из каждого утюга раздаются возгласы, что разработчик должен развиваться день и ночь, ведь у нас такая профессия! Каждый должен обладать солидным профилем на гитхабе, для чего, придя домой после дня работы, обязан контрибутить в опенсорс-проекты. Впрочем, отдохнуть тоже можно — например, запустив в перерыве свой пет-проект и поучаствовав в хакатоне. Ночью можно совсем расслабиться и понабивать себе профиль в литкоде, а во время походов в туалет — прочитать пару статей.

Но действительно ли всё это надо? Разработчик в самом деле обязан проводить всё своё свободное время за написанием кода? А обязан ли разработчик постоянно развиваться?

Читать далее

Генерация файлов с Adobe

Reading time5 min
Views3.2K

Мне поставили задачу: сформировать документ через Adobe API. Требований было минимум - главное сформировать документ из шаблона. Шаблон я мог отформатировать в нужный мне формат без проблем. Но сам формат, как его использовать и как это связать с API я не знал. Поэтому нырнул в документацию.

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

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

Читать далее

Альтернатива сложным комбинациям: оценили надежность и удобство эмодзи-паролей

Reading time5 min
Views4.6K

Всем привет! Меня зовут Валерий Кузьменков, я работаю аналитиком информационной безопасности в Positive Technologies (если интересно, чем занимается мой отдел и почему специалисты этого направления уникальны на рынке, читайте другой наш пост).

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

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

Подробнее

Как за неделю превратить Open redirect в RCE

Level of difficultyMedium
Reading time17 min
Views12K

В этой статье я расскажу вам о том, как ровно год назад я связал в цепочку несколько проблем безопасности для достижения Удаленного выполнения кода (RCE) на нескольких серверах компании VK. Я постарался описать свои шаги в подробностях, так как мне самому, как постоянному читателю отчетов по баг-баунти, всегда хочется понять, как исследователь мыслит во время обнаружения необычных уязвимостей. Надеюсь, для вас эта статья будет интересна.

Читать далее

Как создаётся субстрат миров, в которых вы живёте

Reading time6 min
Views5K

Ежедневно вы живёте в произведениях созданных для вас: следите за развитием и взаимодействием персонажей, сами играете от их лица; изучаете в них магию, технологии, религию, мифологию, государства и тому подобнее. В этой статье пойдёт речь об их первооснове – субстрате.

Узнать

Как добавить Live Activity в существующий проект. Часть I

Reading time8 min
Views8.7K

Live Activity был показан Apple на презентации iOS 16 и нового iPhone с Dynamic Island. Обновление доступно только для тех, кто обновил iOS до 16.1. 

Меня зовут Азиз, я iOS-разработчик в inDrive. В статье расскажу, как мы добавляли Live Activity в наше iOS-приложение. Постараюсь ответить на все вопросы, которые возникли у нас в процессе разработки.

Читать далее

Вжух и собралось или как я ускорял сборку UI на базе kubernetes + jenkins и yarn + nx

Reading time9 min
Views5.2K

С распространением практики доставки непрерывных обновлений время сборки приложений стало критически важным параметром как для разработчиков, так и для бизнеса компании в целом. В данной статье описан мой опыт ускорения Frontend пайплайна Jenkins в Kubernetes на базе yarn и nx

Читать далее

Контекстные многорукие бандиты для рекомендации контента, или Не Бернулли единым

Reading time17 min
Views13K

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

Статья состоит из четырёх частей, переходите сразу ко второй или третьей, если знакомы с проблематикой, или читайте по порядку, чтобы составить полную картину:

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

Основные алгоритмы решения задачи многорукого бандита: эпсилон-жадный подход, сэмплирование Томпсона, Upper Confidence Bound.

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

Заметки о практической реализации — о тонкостях внедрения, бизнес-требованиях и результатах на примере сервиса рекомендации игр и стикеров.

Читать далее

ATWatch: Долгий путь разработки умных часов на Arduino

Reading time12 min
Views17K

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

Проект ещё начинался, когда я был в 9 классе школы. В университете к разработке присоединился мой друг Артём. Сейчас я закончил университет и темой моей работы стал данный проект.

Читать далее

Эмуляторы, симуляторы или тестовые фермы. Что выбрать для мобильного тестирования?

Reading time7 min
Views30K

Привет! Меня зовут Татьяна Дерягина, я QA-инженер из команды мобильного тестирования в СберМаркете. Моя команда работает дистанционно, находясь в разных городах России. Хочу рассказать, как как мы адаптировались к процессу тестирования, без большого количества реальных девайсов и не потеряли качество продукта.

Читать далее

Про Inbox, веселые легаси и динамические микрофронты

Reading time8 min
Views2.3K

Наш Альфа-Банк прекрасен. Мы его очень любим, но он такой большой-большой, разнообразный и сложный. Думаю, никого не удивил :) Наш ИТ-ландшафт содержит великое множество всякой «флоры и фауны», с которой необходимо считаться. То тут, то там, из глубоких Enterprise джунглей нам улыбаются и игриво подмигивают орды легаси-систем, каждая из которых живет своей собственной жизнью и поддерживается разными командами. Например, HR-вопросы — это SAP HCM, со своими потоками и фронтами, написанными на SAP UI5, Fiori, вопросы учета — SAP ERP, а есть ещё IBM Lotus Notes, системы документооборота и пр., и пр.

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

Всем привет, меня зовут Олег Кругляков, я руководитель направления в одной из команд клиентского пути сотрудника Alfa People. В статье хочу поделиться опытом создания сервиса, который объединяет все эти заявки в одном месте без «беготни» по разным системам. При всем при этом, он весело работает в браузере и весело работает в мобильном приложении, нордически выдерживая единый дизайн. Ну, приятно, чего греха таить ?

Читать далее

DDD, HEXAGON, HIBERNATE, не считая JOOQ. Часть 1

Reading time8 min
Views7.1K

Статья написана для java разработчиков, создающих системы со сложной предметной областью. Система, как правило, представлена сетью микросервисов или модульным монолитом. В рамках такой системы обычно содержится большое количество сущностей (JPA/JOOQ), которые одновременно используют как технические, так и бизнес-сущности. Смена технологической базы по прошествии нескольких лет разработки для такой системы является очень дорогостоящим решением. Доработки бизнес-функционала занимают большое количество времени.

В первой части статьи проведем теоретический обзор основных терминов и паттернов гексагональной архитектуры и Domain Driven Design или сокращенно DDD.

Какие проблемы вы сможете решить, прочитав статью

Вероятно,

Читать далее

Сборка мусора во Flutter

Reading time4 min
Views6.6K

В РСХБ мобильную разработку мы ведём преимущественно на Flutter. В новой статье поговорим об алгоритме, который используется в любом приложении – о сборщике мусора (англ. Garbage collection). Его основной задачей, как в любом высокоуровневом языке программирования, является наблюдение за ссылками и очистка областей памяти с целью предотвращения переполнения памяти. Под катом рассказываем о том, как во Flutter работает процесс сборки “мусора” - неактивных и неиспользуемых ссылок, а также локальных и глобальных экземпляров языка Dart.

В языке Dart применяется сборщик мусора по поколениям объектов. Сборщик мусора для сборки экземпляров с коротким жизненным циклом и сборщик мусора для долгоживущих экземпляров, переживших более одного цикла сборки мусора.

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

Читать далее