Привет! Меня зовут Виталий. Я — Android‑разработчик в Альфа‑Банке. За время собеседований я заметил одну любопытную вещь: даже опытные котлиноводы частенько не в курсе такой мощной фичи, как Kotlin Contracts.
В этой статье я закрою пробел и простым языком расскажу, как Contracts помогают компилятору лучше понимать ваши намерения и как с их помощью можно навести порядок там, где раньше приходилось полагаться на волю случая. Покажу не только рабочие примеры, но и открою внутреннюю кухню: разберёмся, как устроен Contracts DSL, какие эффекты доступны и что на самом деле происходит, когда вы даёте компилятору обещания.
Всё максимально честно, с живыми иллюстрациями и практическими советами. Даже если раньше вы смотрели на Contracts как на тайный клуб для избранных — после этой статьи они перестанут быть чем‑то пугающим.
Читать далееСрочно нужен человек — HR присылает резюме — быстренько интервью — берём. Через три месяца выясняется, что кандидат не подходит. Ещё месяц уходит на увольнение, потом снова поиск. В итоге полгода потеряно.
Читать далее«Как ИИ-робот изменил мой быт: честный эксперимент с 3i P10 Ultra»
6 функций робота, которые покорили меня: битва с шерстью, навигация как у Tesla, горячая мойка без разводов, выдвижная насадка для плинтусов, станция «всё в одном», голосовое управление.
Читать далееСегодня данные являются ключевым ресурсом для любого бизнеса. Но прежде чем они превратятся в полезную информацию, пригодную для принятия решений, данные проходят длительный и многоступенчатый путь — от извлечения до представления конечному пользователю. Именно этот процесс получил название ETL (Extract, Transform, Load).
Процесс ETL включает:
Читать далееРабота без логов, это как вождение автомобиля вслепую. Ехать можно, но недолго и не туда.
Почти в каждом проекте логи нужны. И нужны инструменты, которые умеют с ними работать. А с этим исторически у нас была проблема.
В облаке Amvera, проекты пользователей, в большинстве своём, небольшие. А инструменты на рынке, такие как Elasticsearch очень требовательны к выделяемым ресурсам и сложны в настройке.
Странно поднимать телеграм-бота, который потребляет 100 мб. оперативной памяти и ставить для его логов Elastic на 16 Гб.
Логичным решением является создание мультиарендной системы. Когда мы собираем логи в какой-то большой базе данных, и каждому пользователю даём доступ только к его логам. Звучит замечательно, но на практике реализовать это не так легко. На создание приемлемого решения у нас ушло несколько итераций. И мы хотим поделиться опытом, чтобы другие не наступали на наши грабли и могли сделать сразу хорошо.
Читать далееНемного железа, немного софта, много времени, и у вас появится легендарная панель управления с интерактивным планом дома.
Вот как это сделатьПо долгу службы я много общаюсь с релокантами-айтишниками - теми, кто уже уехал или планирует переезд. Делюсь с вами подборкой Telegram-каналов, которые помогут:
- искать международные вакансии;
- узнавать последние новости о странах релокации;
- вливаться в нетворк и комьюнити;
- качать английский для IT и digital.
Читать далееПривет, Хабр! Меня зовут Анатолий Кохан, я — DevOps-инженер в К2Тех.
Когда мы вводим в браузере имя сервера или доменное имя сайта, выполняем ping или запускаем любое удаленное приложение, операционная система должна преобразовать указанные имена в IP-адреса. Этот процесс называется разрешением доменного имени. На первый взгляд он может показаться весьма прозрачным, однако за ним скрывается многослойный механизм.
Данная статья — начало серии, посвященной низкоуровневой архитектуре разрешения имен. Поговорим о том, как устроен этот процесс в Linux на уровне ядра, различных библиотек C и системных вызовов.
Читать далееСегодня почти каждый веб-проект использует иконки. Это отличный инструмент визуальной коммуникации, который помогает акцентировать внимание на элементах интерфейса. Существует хорошая статья о том, почему стоит использовать иконки — "Icons in Web Design". Но эта статья отвечает на другой вопрос — как их использовать?
Читать далееВсем привет! Меня зовут Владислав Малков, я ведущий консультант SAP в команде ГИС-контроля Lenta tech. С 2018 года я участвую в проекте маркировки товаров и сегодня хочу рассказать, как мы в «Ленте» выстроили собственную IT-систему, для работы с миллионами маркированных товаров каждый день. Вы узнаете, как устроена система Gismark, почему мы не взяли готовое решение с рынка и какие уроки извлекли, автоматизируя один из самых комплексных процессов в ритейле.
Читать далееАвтоматизация тестирования API — задача, с которой сталкиваются даже опытные инженеры, но многие всё ещё предпочитают полагаться на ручные запросы в Postman, а затем переносят их в код — и так годами. Но можно ли избежать этого лишнего шага? В этой статье мы покажем, как настроить эффективную автоматизацию тестов API с Postman и Newman, интегрируя их в процессы CI/CD, чтобы избежать ошибок и повысить производительность.
Читать далееНа связи Анна Астахова, директор по развитию ИТ-интегратора «Белый код». В регионах есть локальные аптечные сети, для которых внедрять стандартный набор дашбордов выходит накладно. Но и потребность в том, чтобы анализировать показатели, у такого бизнеса тоже есть. Рассказываю, какое решение нашли.
Читать далееВскрывая коробку с семейными фотографиями на чердаке, я столкнулся с молчаливыми лицами прошлого. Кто эти люди? Как они связаны со мной? Так начался мой путь в генеалогию. Я выбрал бесплатные инструменты, но быстро узнал их реальные ограничения. Расскажу о своем опыте, шаг за шагом, о том, как систематизировать историю семьи без бюджета. Конечно, если приобрести лицензионные платные программы, всё становится гораздо проще, но достичь результата можно и без этого.
Читать далееПривет! На связи Михаил Шпаков, руководитель разработки в Timeweb Cloud.
Мы создаём облако, в котором удобно запускать и управлять проектами: от простых ВДС до масштабных решений с Kubernetes и десятками интеграций. Мы много думаем о том, как сделать инфраструктуру не только стабильной, но и понятной.
Когда вы работаете в облаке, всё выглядит структурировано: список серверов, IP-адресов, баз данных, кластеров. Но в какой-то момент возникает вопрос: а как всё это связано между собой?
Что подключено к балансировщику? В какой сети находятся серверы? Почему не пингуется база? Ответы есть, но они спрятаны в разных разделах интерфейса или требуют обращения в поддержку.
Мы в Timeweb Cloud решили это изменить. Инфраструктура — это карта, а не таблица. Её нужно рисовать, а не запоминать.
Мы сделали визуальную карту, на которой можно не просто увидеть ресурсы, но и настроить их расположение как в реальной жизни: сгруппировать, пояснить, добавить связи и комментарии. Это не просто картинка — это инструмент, который помогает понимать, как всё устроено, и быстрее находить проблемы.
Это как перейти от чтения логов к полноценной карте: наглядно, понятно, живо. Визуализация стала тем самым недостающим элементом, который помогает по-настоящему понять, как устроена инфраструктура.
Читать далееПривет, Хабр! Меня зовут Дмитрий Иванов, я начальник отдела эксплуатации IT-инфраструктуры RUTUBE, что на наши деньги переводится как SRE-тимлид. В этой статье разберу задачу доставки контента и расскажу и решениях, которые помогают нам в RUTUBE.
Дано: с одной стороны у нас 17,7 млн ежедневных пользователей, а с другой — 400 млн единиц контента. Оба эти показателя постоянно увеличиваются, а география присутствия пользователей расширяется.
Требуется: показывать всем нашим пользователям видео из библиотеки быстро, надежно и эффективно.
Читать далееВсем привет! Меня зовут Александр Кулик, я .NET-разработчик из проекта шопинга в Т-Банке. Занимаюсь бэкенд-разработкой по интеграции и адаптации данных от наших партнеров и внешних сервисов, а также созданием собственных разработок в области платежных операций для B2B-сферы.
Довольно долго я решал разнообразные проблемы во время реализации систем для бизнеса или пользователей. Со временем стал замечать, что каждый раз, приступая к проектированию или разработке, я выбираю между тремя вариантами.
Уверен, многие разработчики сталкивались с таким выбором, а потом с выявленными проблемами — и сожалели о своем решении. Как показала моя практика, нет серебряной пули и всегда, несмотря на выбранный вариант, приходится мириться с недостатками того или иного подхода. В статье на примере одной задачи покажу недостатки и преимущества использования нескольких библиотек.
Читать далееСегодня поговорим о том, что многие делают, но мало кто делает правильно — о безопасной разработке и DevSecOps. Для этого мы пригласили Романа Гаголушко, руководителя отдела консалтинга безопасной разработки в Бастионе. Передаем ему слово.
Небольшой дисклеймер.
За годы работы в сфере безопасности разработки я насмотрелся:
— на вопиющие случаи игнорирования базовых принципов безопасности (и не только при разработке);
— на неэффективные попытки внедрения Dev «Sec» Ops;
— на откровенную и безрезультатную имитацию бурной деятельности;
— на такую же безрезультатную трату бюджета при закупке неподходящих инструментов анализа кода;
— на безразличие;
— на нежелание видеть очевидные вещи;
— на непонимание ИБ и БР со стороны разработки.
В этой статье я расскажу о типичных ошибках компаний, которые совершают все (от маленьких и не очень стартапов до больших и не очень корпораций), поделюсь практическими советами по организации процессов безопасной разработки. Напоследок расскажу, как обстоят дела с регулированием, и немного поговорю о трендах.
Читать далееВ последнее время часто звучат мрачные прогнозы (и даже скрытая реклама) о том, что крупные языковые модели (LLM) уничтожат программирование как профессию. Многие обсуждения лишены нюансов, поэтому я хотел бы внести свои пояснения. С одной стороны звучат заявления вроде: «Я использовал $LLM_SERVICE_PROVIDER, чтобы создать маленькую временную программу, и скоро все программисты останутся без работы за $ARBITRARY_TIME_WINDOW». С другой – категорический отказ признавать какую-либо пользу таких инструментов. Думаю, лучше всего прояснить эту ситуацию можно на примере другой отрасли, где подобные технологии появились раньше: перевод.
Читать далееКаждый год мы проводим масштабные международные соревнования по кибербезопасности Standoff, которые собирают сильнейших специалистов blue team и red team. Очередная кибербитва Standoff 15 проходила на киберфестивале Positive Hack Days 21–24 мая. Формат соревнований предполагает столкновение команд защитников и атакующих в рамках максимально реалистичной инфраструктуры, которая имитирует компании из различных отраслей.
В ходе соревнования защитники используют средства защиты информации (СЗИ) не только для обнаружения и расследования, но и для реагирования и отражения атак. В числе средств защиты была и PT Sandbox — продвинутая песочница для защиты от неизвестного вредоносного программного обеспечения (ВПО), использующая почти все современные методы обнаружения вредоносов. На Standoff песочница подсвечивает почтовые угрозы и помогает остальным средствам защиты понять, является ли тот или иной файл, найденный в сети или на конечных точках, вредоносным.
Кибербитва — это важное испытание для экспертизы PT Sandbox, своего рода ежегодный экзамен. На Standoff мы проверяем способность песочницы обнаруживать техники злоумышленников и корректируем ее экспертизу. А в этой статье мы решили поделиться с вами тем, что же наловила песочница и какие инструменты наиболее популярны у красных команд. Это интересно, потому что атакующие в ходе соревнований ограничены по времени, у них нет возможности месяцами готовить атаку на инфраструктуру, а значит, в соревновании точно будут задействованы самые надежные, ходовые инструменты и методы, доступные и реальным злоумышленникам.
ПокопатьсяSteam Deck — вторая самая успешная портативная платформа после Nintendo Switch. Карманным игровое устройство от Valve не назовешь, но зато оно может запускать значительную часть библиотеки Steam. А удобное управление, сочетающее стики с сенсорными панелями и экраном, позволяет играть в большинство жанров: от экшенов и файтингов до стратегий и квестов.
Кроме того, на «Палубу» от Гейба можно установить настоящий Windows и даже использовать с внешним монитором как полноценный ПК. Короче говоря, Steam Deck — это один из лучших игровых девайсов современности. Специально для тех, кто недавно приобрел это чудо-устройство, и пока не знает во что на нем будет комфортно играть — наша подборка.
Читать далее